Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Daten 1 mal im Monat schreiben

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

Daten 1 mal im Monat schreiben

Scheduled Pinned Locked Moved Node-Red
6 Posts 2 Posters 503 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    SaschaH2511
    wrote on last edited by
    #1

    Hallo Zusammen

    stehe gerade vor einem Kleinen Problem und vieleicht hat hier jemand eine Passende Lösung.

    Ich Lese Daten von Stromzählern wasserzählern etc. ab.
    Diese Daten möchte ich gerne für die Weitere Verarbeitung in eine csv schreiben.
    Soweit gut und Funktioniert.

    Allerdings werden die Daten ja permanente geschrieben was die csv nur ünnötig Groß macht.
    Ich Benötige die Werte nur am 1sten des Monats in der csv.

    Weis jemand wie ich das am einfachsten steuern kann ?
    aa4cf908-605c-4cdd-a6b1-407b7d2c007e-grafik.png
    323d4ad4-f7af-4bb8-8ac2-2d38fc39f552-grafik.png
    901ecb9a-b841-465f-aaf3-525d9168d2f4-grafik.png

    mickymM 1 Reply Last reply
    0
    • S SaschaH2511

      Hallo Zusammen

      stehe gerade vor einem Kleinen Problem und vieleicht hat hier jemand eine Passende Lösung.

      Ich Lese Daten von Stromzählern wasserzählern etc. ab.
      Diese Daten möchte ich gerne für die Weitere Verarbeitung in eine csv schreiben.
      Soweit gut und Funktioniert.

      Allerdings werden die Daten ja permanente geschrieben was die csv nur ünnötig Groß macht.
      Ich Benötige die Werte nur am 1sten des Monats in der csv.

      Weis jemand wie ich das am einfachsten steuern kann ?
      aa4cf908-605c-4cdd-a6b1-407b7d2c007e-grafik.png
      323d4ad4-f7af-4bb8-8ac2-2d38fc39f552-grafik.png
      901ecb9a-b841-465f-aaf3-525d9168d2f4-grafik.png

      mickymM Online
      mickymM Online
      mickym
      Most Active
      wrote on last edited by mickym
      #2

      @saschah2511 nimm eine cron-plus Node. Die triggert wann du es Dir wünschst.

      https://flows.nodered.org/node/node-red-contrib-cron-plus

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      S 1 Reply Last reply
      0
      • mickymM mickym

        @saschah2511 nimm eine cron-plus Node. Die triggert wann du es Dir wünschst.

        https://flows.nodered.org/node/node-red-contrib-cron-plus

        S Offline
        S Offline
        SaschaH2511
        wrote on last edited by
        #3

        @mickym soweit verstanden und auch schon eingebaut aber wie verknüpf ich das nun? (wie ein und)
        der Ausgang der Funktion 18 schreibt ja immer !

        Muss da ja jetzt irgendwie dazwischen das das dann nur zur eingestellten zeit durchgeht in die write file

        mickymM 1 Reply Last reply
        0
        • S SaschaH2511

          @mickym soweit verstanden und auch schon eingebaut aber wie verknüpf ich das nun? (wie ein und)
          der Ausgang der Funktion 18 schreibt ja immer !

          Muss da ja jetzt irgendwie dazwischen das das dann nur zur eingestellten zeit durchgeht in die write file

          mickymM Online
          mickymM Online
          mickym
          Most Active
          wrote on last edited by mickym
          #4

          @saschah2511 Na durch irgendwas wird der Flow ja getriggert. Wenn Du das aus den iobroker-In Nodes nimmst, dann ersetze die durch die Cron Node und hol Dir die Werte über iobroker-get Nodes. Man sieht halt nur einen Miniausschnitt.

          Die andere Möglichkeit ist - Du kannst es so lassen wie es ist und nutzt eine switch Node um zu filtern - zusätzlich nimmst Du noch ein trigger Node, damit in dem gewünschten Zeitfenster nur eine Nachricht durchkommt. Das geht auch.

          Ich würde allerdings die 1. Methode verwenden und genau auf den Punkt triggern und die Werte holen.

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          S 1 Reply Last reply
          0
          • mickymM mickym

            @saschah2511 Na durch irgendwas wird der Flow ja getriggert. Wenn Du das aus den iobroker-In Nodes nimmst, dann ersetze die durch die Cron Node und hol Dir die Werte über iobroker-get Nodes. Man sieht halt nur einen Miniausschnitt.

            Die andere Möglichkeit ist - Du kannst es so lassen wie es ist und nutzt eine switch Node um zu filtern - zusätzlich nimmst Du noch ein trigger Node, damit in dem gewünschten Zeitfenster nur eine Nachricht durchkommt. Das geht auch.

            Ich würde allerdings die 1. Methode verwenden und genau auf den Punkt triggern und die Werte holen.

            S Offline
            S Offline
            SaschaH2511
            wrote on last edited by
            #5

            @mickym Muss leider nochmal Stören

            komm hier echt nicht weiter bzw. versteh es warscheinlich einfach nicht.

            Meine Werte Hole ich leider nicht über einen IO Brocker sondern habe die Direkt in Node Red und im Endefekt Spukt die Funktion 18 Folgendes Aus was genau so in die CSV muss ! Jedoch nur 1 Mal im Monat !
            Test2.JPG
            Crone-Plus soweit verstanden Würde auch Funktionieren gibt ein Payload zur eingestellten Zeit aus !

            Aber wie Verknüpf ich das jetzt das ich nur wenn Crone Plus sein Ausgang bringt die SCV Mit dem Inhalt der Function 18 beschrieben wird ?
            TEST.JPG

            mickymM 1 Reply Last reply
            0
            • S SaschaH2511

              @mickym Muss leider nochmal Stören

              komm hier echt nicht weiter bzw. versteh es warscheinlich einfach nicht.

              Meine Werte Hole ich leider nicht über einen IO Brocker sondern habe die Direkt in Node Red und im Endefekt Spukt die Funktion 18 Folgendes Aus was genau so in die CSV muss ! Jedoch nur 1 Mal im Monat !
              Test2.JPG
              Crone-Plus soweit verstanden Würde auch Funktionieren gibt ein Payload zur eingestellten Zeit aus !

              Aber wie Verknüpf ich das jetzt das ich nur wenn Crone Plus sein Ausgang bringt die SCV Mit dem Inhalt der Function 18 beschrieben wird ?
              TEST.JPG

              mickymM Online
              mickymM Online
              mickym
              Most Active
              wrote on last edited by mickym
              #6

              Du schreibst den Inhalt Deiner function 18 in einer Flowvariable und die cronnode holt diese dann ab:

              Deine function 18 - speicher die payload in einer Flow variablen - z.Bsp SML

              dann machst den Ausgang Deiner function Node einfach weg:

              82f5937f-191c-4919-90ad-9ed5fa1e6af2-image.png

              Deine payload speicherst Du in einer Flow variable:

              msg.payload = {
                  "SML.Total.in" : 5000,
                  "SML.Total.out": 15000,
                  "SML.Power_curren": 500,
              
                  "Time" : new Date()
              }
              
              flow.set ("SML", msg.payload);
              
              

              Die function Node selbst gibt nichts mehr aus!!! (Also return msg; als letzte Zeile kannst wegschmeissen und die Ausgänge der function Node auf 0 stellen).
              EDIT: Kannst natürlich auch den Ausgang dran lassen, um zu Debug Zwecken irgendwas mit einer Debug Node zu kontrollieren!! Wichtig ist ja nur die Speicherung im Flow-Kontext.

              In Deinem Kontext sind aber die Inhalt gespeichert und werden aktualisiert.

              2e4d010f-a24a-43a2-afb1-c9060808ad80-image.png

              Die cron-plus Node holt nun den Inhalt der Flowvariablen ab und Du schreibst in die csv:

              5b3a7a29-b73c-4ead-8c32-eff460baf7e7-image.png

              Hier der Beispielflow zum Import:

              [
                  {
                      "id": "5d827132f180d9ea",
                      "type": "function",
                      "z": "00b2bb10c6f72961",
                      "name": "function 18",
                      "func": "msg.payload = {\n    \"SML.Total.in\" : 5000,\n    \"SML.Total.out\": 15000,\n    \"SML.Power_curren\": 500,\n\n    \"Time\" : new Date()\n}\n\nflow.set (\"SML\", msg.payload);\n// return msg;",
                      "outputs": 0,
                      "noerr": 0,
                      "initialize": "",
                      "finalize": "",
                      "libs": [],
                      "x": 390,
                      "y": 500,
                      "wires": []
                  },
                  {
                      "id": "2245ac4b3ce16c32",
                      "type": "inject",
                      "z": "00b2bb10c6f72961",
                      "name": "trigger",
                      "props": [
                          {
                              "p": "payload"
                          }
                      ],
                      "repeat": "",
                      "crontab": "",
                      "once": false,
                      "onceDelay": 0.1,
                      "topic": "",
                      "payload": "",
                      "payloadType": "date",
                      "x": 190,
                      "y": 500,
                      "wires": [
                          [
                              "5d827132f180d9ea"
                          ]
                      ]
                  },
                  {
                      "id": "73eb8037e9423096",
                      "type": "cronplus",
                      "z": "00b2bb10c6f72961",
                      "name": "",
                      "outputField": "payload",
                      "timeZone": "",
                      "persistDynamic": false,
                      "commandResponseMsgOutput": "output1",
                      "outputs": 1,
                      "options": [
                          {
                              "name": "SML",
                              "topic": "monthlySML",
                              "payloadType": "flow",
                              "payload": "SML",
                              "expressionType": "cron",
                              "expression": "0 0 0 1 * * *",
                              "location": "",
                              "offset": "0",
                              "solarType": "all",
                              "solarEvents": "sunrise,sunset"
                          }
                      ],
                      "x": 420,
                      "y": 560,
                      "wires": [
                          [
                              "2698d7c79fc129a6",
                              "c5e7d602db5a4f04"
                          ]
                      ]
                  },
                  {
                      "id": "66e2ea42728c843c",
                      "type": "inject",
                      "z": "00b2bb10c6f72961",
                      "name": "manueller Trigger",
                      "props": [
                          {
                              "p": "payload"
                          },
                          {
                              "p": "topic",
                              "vt": "str"
                          }
                      ],
                      "repeat": "",
                      "crontab": "",
                      "once": false,
                      "onceDelay": 0.1,
                      "topic": "trigger",
                      "payload": "SML",
                      "payloadType": "str",
                      "x": 200,
                      "y": 560,
                      "wires": [
                          [
                              "73eb8037e9423096"
                          ]
                      ]
                  },
                  {
                      "id": "2698d7c79fc129a6",
                      "type": "debug",
                      "z": "00b2bb10c6f72961",
                      "name": "SML zur CSV Node",
                      "active": true,
                      "tosidebar": true,
                      "console": false,
                      "tostatus": false,
                      "complete": "payload",
                      "targetType": "msg",
                      "statusVal": "",
                      "statusType": "auto",
                      "x": 630,
                      "y": 540,
                      "wires": []
                  },
                  {
                      "id": "c5e7d602db5a4f04",
                      "type": "file",
                      "z": "00b2bb10c6f72961",
                      "d": true,
                      "name": "",
                      "filename": "test.csv",
                      "filenameType": "str",
                      "appendNewline": true,
                      "createDir": false,
                      "overwriteFile": "false",
                      "encoding": "none",
                      "x": 620,
                      "y": 600,
                      "wires": [
                          []
                      ]
                  }
              ]
              

              =============================================================================================

              Du musst halt dafür Sorge tragen, dass zum Zeitpunkt halt was korrektes im Flowkontext drin steht.

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              779

              Online

              32.4k

              Users

              81.6k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Home
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe