Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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.5k

Daten 1 mal im Monat schreiben

Geplant Angeheftet Gesperrt Verschoben Node-Red
6 Beiträge 2 Kommentatoren 503 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    SaschaH2511
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              753

              Online

              32.5k

              Benutzer

              81.6k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe