Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Mehrere Objektwerte in CSV schreiben *gelöst*

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Mehrere Objektwerte in CSV schreiben *gelöst*

    This topic has been deleted. Only users with topic management privileges can see it.
    • surfer09
      surfer09 @bahnuhr last edited by surfer09

      @bahnuhr ?? Ich bin doch im NodeRed Unterforum? Um was sollte es denn sonst gehen? Aber trotzdem Danke für dein Java Skript!

      1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @bahnuhr last edited by Homoran

        @bahnuhr sagte in Mehrere Objektwerte in CSV schreiben:

        Warum noch ein weiterer thread ?

        weil es hier um node-red geht

        Screenshot_20240312-211214_Firefox.jpg

        1 Reply Last reply Reply Quote 1
        • mickym
          mickym Most Active @surfer09 last edited by mickym

          OK - ich habe Deinen Flow importiert.

          bcda536b-21bb-4ce9-9aae-7ad46182569d-image.png

          Das ist eigentlich ganz easy. Du musst halt alles in einem Objekt sammeln. Nachdem Deine Zeilen ja wohl alle Daten enthalten sollen - gehe ich nicht davon aus, dass Du warten möchtest bis jeder Wert triggert?

          Du könntest dann selbst triggern und alle Werte sammeln, die Du in eine Zeile schreiben willst. Oder was willst Du? Aber wie gesagt erst musst Du Dir überlegen, wann Du eine Zeile schreiben möchtest. Du kannst natürlich auch jedesmal eine Zeile schreiben, wenn sich nur ein Wert geändert hat.

          Wenn die Werte alle über eine Wildcard sammeln kannst, dann kannst Du auch eine list Node verwenden. Wie sehen denn Deine Daten aus?

          surfer09 1 Reply Last reply Reply Quote 0
          • surfer09
            surfer09 @mickym last edited by surfer09

            @mickym Genau, der hintere Teil mit der Datei wird sich vermutlich nicht ändern. Nur ich bin jetzt total überfordert wie und wo ich die 3 Werte unterbringe. Alle 3 Datenpunkte werden mit Blockly um 23:59 mit den aktuellen Werte überschrieben. Am besten wäre, wenn die Werte dann kurz danach in die CSV geschossen werden.
            Ich benötige Spalte 1 Datum/Uhrzeit der Übertragung, Spalte 2 Wert1, Spalte 3 Wert2, Spalte 4 Wert3. Die Werte sind alles Dezimalwerte mit 2 Nachkommastellen wenn das wichtig ist.

            Müssen diese beiden Kollegen dann pro Datenpunkt angelegt werden?

            IMG_0071.jpeg

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @surfer09 last edited by mickym

              @surfer09 Ja genau - wenn die 3 DP zur gleichen Zeit geschrieben werden, dann ist es am Einfachsten Du kopierst diese 2 Node noch 2 mal mit unterschiedlichen Imput und topic

              ea8bcdb2-3232-4f71-9da7-54b368e1747b-image.png

              Du musst nur dafür Sorge tragen, dass der topic dann Deinen Spalten entspricht unt unterschiedlich ist.

              In der JOIN Node

              5b28a877-4f1d-4bf4-9162-e7df18c416cd-image.png

              machst Du den Haken raus, dass jede nachfolgende Antwort geschrieben wird. Und setzt die Anzahl auf 3 - dann muss von jeder IN Node ein Wert kommen - bevor der Flow weitergeht. Es wird also gewartet bis alle 3 Werte aktualisiert wurden.

              In der nachfolgenden Change NOde musst dann nur noch die beiden Spalten in msg.columns der beiden anderen Werte einfügen:

              fd019536-f28b-4b3f-9403-76bdb6c16189-image.png

              Diese müssen mit den topics matchen.

              Das war es dann auch schon.

              Um das Ganze zu testen, musst du zumindest alle 3 Werte einmal aktualisieren - kannst du auch in der Objektansicht des iobrokers machen, indem du den Wert nochmal schreibst.

              surfer09 1 Reply Last reply Reply Quote 1
              • surfer09
                surfer09 @mickym last edited by surfer09

                @mickym Danke für diese tolle Anleitung! 🙂 Ich habe jetzt allerdings noch eine Kleinigkeit.

                In der erzeugten Datei fehlen die Spaltenüberschriften:

                mstsc_0vRwHSZY77.jpg

                Eigentlich hatte ich doch definiert?!

                [
                    {
                        "id": "1f2e3e76bc22eaf5",
                        "type": "tab",
                        "label": "Stromverbrauch Übersicht",
                        "disabled": false,
                        "info": "",
                        "env": []
                    },
                    {
                        "id": "c89470695baf12cc",
                        "type": "ioBroker in",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "Gestriger-Stromverbrauch-inkl-Netzbezug",
                        "attrname": "",
                        "topic": "0_userdata.0.PV-Anlage.Gestriger-Stromverbrauch-inkl-Netzbezug",
                        "payloadType": "value",
                        "onlyack": "",
                        "func": "all",
                        "gap": "",
                        "fireOnStart": "false",
                        "outFormat": "MQTT",
                        "x": 420,
                        "y": 240,
                        "wires": [
                            [
                                "f66599290600f4d8"
                            ]
                        ]
                    },
                    {
                        "id": "cc9f98ec38dad97b",
                        "type": "file",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "",
                        "filename": "I:\\CSV\\Stromverbrauch_Übersicht.csv",
                        "filenameType": "str",
                        "appendNewline": false,
                        "createDir": false,
                        "overwriteFile": "false",
                        "encoding": "cp1252",
                        "x": 2910,
                        "y": 320,
                        "wires": [
                            []
                        ]
                    },
                    {
                        "id": "439d2a3a5f5b523d",
                        "type": "csv",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "",
                        "sep": ";",
                        "hdrin": "",
                        "hdrout": "none",
                        "multi": "one",
                        "ret": "\\r\\n",
                        "temp": "",
                        "skip": "0",
                        "strings": true,
                        "include_empty_strings": "",
                        "include_null_values": "",
                        "x": 2220,
                        "y": 320,
                        "wires": [
                            [
                                "e05b34f6096c6b4d"
                            ]
                        ]
                    },
                    {
                        "id": "dc242a92a7abcdd9",
                        "type": "change",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "",
                        "rules": [
                            {
                                "t": "set",
                                "p": "reset",
                                "pt": "msg",
                                "to": "true",
                                "tot": "bool"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 2050,
                        "y": 260,
                        "wires": [
                            [
                                "439d2a3a5f5b523d"
                            ]
                        ]
                    },
                    {
                        "id": "9e53a2c71f32654a",
                        "type": "change",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "",
                        "rules": [
                            {
                                "t": "set",
                                "p": "columns",
                                "pt": "msg",
                                "to": "Datum & Uhrzeit,Stromverbrauch inkl. Netzbezug,Netzbezug,Stromverbrauch Haus von PV",
                                "tot": "str"
                            },
                            {
                                "t": "set",
                                "p": "payload[\"Datum & Uhrzeit\"]",
                                "pt": "msg",
                                "to": "",
                                "tot": "date"
                            },
                            {
                                "t": "set",
                                "p": "payload[\"Datum & Uhrzeit\"]",
                                "pt": "msg",
                                "to": "$moment().locale(\"de\").tz('Europe/Berlin').format('DD.MM.YYYY HH:mm:ss')",
                                "tot": "jsonata"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 1660,
                        "y": 300,
                        "wires": [
                            [
                                "6d90d97e2c1f4927"
                            ]
                        ]
                    },
                    {
                        "id": "6d90d97e2c1f4927",
                        "type": "switch",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "NewFile?",
                        "property": "fNewFile",
                        "propertyType": "flow",
                        "rules": [
                            {
                                "t": "true"
                            },
                            {
                                "t": "false"
                            }
                        ],
                        "checkall": "true",
                        "repair": false,
                        "outputs": 2,
                        "x": 1850,
                        "y": 300,
                        "wires": [
                            [
                                "dc242a92a7abcdd9"
                            ],
                            [
                                "439d2a3a5f5b523d"
                            ]
                        ]
                    },
                    {
                        "id": "f66599290600f4d8",
                        "type": "change",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "Stromverbrauch inkl. Netzbezug",
                        "rules": [
                            {
                                "t": "set",
                                "p": "topic",
                                "pt": "msg",
                                "to": "Stromverbrauch inkl. Netzbezug",
                                "tot": "str"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 770,
                        "y": 240,
                        "wires": [
                            [
                                "cad5874ffe081a65"
                            ]
                        ]
                    },
                    {
                        "id": "e05b34f6096c6b4d",
                        "type": "change",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "fNewFile = false",
                        "rules": [
                            {
                                "t": "set",
                                "p": "fNewFile",
                                "pt": "flow",
                                "to": "false",
                                "tot": "bool"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 2390,
                        "y": 320,
                        "wires": [
                            [
                                "e5d2ec578c236fb9"
                            ]
                        ]
                    },
                    {
                        "id": "e5d2ec578c236fb9",
                        "type": "change",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "",
                        "rules": [
                            {
                                "t": "set",
                                "p": "filename",
                                "pt": "msg",
                                "to": "I:\\CSV\\Stromverbrauch_Übersicht.csv",
                                "tot": "str"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 2600,
                        "y": 320,
                        "wires": [
                            [
                                "cc9f98ec38dad97b"
                            ]
                        ]
                    },
                    {
                        "id": "cad5874ffe081a65",
                        "type": "change",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "Zahlen  Komma",
                        "rules": [
                            {
                                "t": "set",
                                "p": "payload",
                                "pt": "msg",
                                "to": "$formatNumber(payload, \"#,####\", {'decimal-separator':',', 'grouping-separator':'.'} )\t",
                                "tot": "jsonata"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 1320,
                        "y": 300,
                        "wires": [
                            [
                                "16d2ba80b692091d",
                                "694d4a67103a09b9"
                            ]
                        ]
                    },
                    {
                        "id": "16d2ba80b692091d",
                        "type": "join",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "",
                        "mode": "custom",
                        "build": "object",
                        "property": "payload",
                        "propertyType": "msg",
                        "key": "topic",
                        "joiner": "\\n",
                        "joinerType": "str",
                        "accumulate": false,
                        "timeout": "",
                        "count": "3",
                        "reduceRight": false,
                        "reduceExp": "",
                        "reduceInit": "",
                        "reduceInitType": "",
                        "reduceFixup": "",
                        "x": 1480,
                        "y": 300,
                        "wires": [
                            [
                                "9e53a2c71f32654a"
                            ]
                        ]
                    },
                    {
                        "id": "6cebbec48955b658",
                        "type": "change",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "fNewFile = false",
                        "rules": [
                            {
                                "t": "set",
                                "p": "fNewFile",
                                "pt": "flow",
                                "to": "false",
                                "tot": "bool"
                            },
                            {
                                "t": "set",
                                "p": "payload",
                                "pt": "msg",
                                "to": "File found - fNewFile=false",
                                "tot": "str"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 1710,
                        "y": 400,
                        "wires": [
                            [
                                "1463c0a51e142c55"
                            ]
                        ]
                    },
                    {
                        "id": "a4484cd91c127f61",
                        "type": "change",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "fNewFile = true",
                        "rules": [
                            {
                                "t": "set",
                                "p": "fNewFile",
                                "pt": "flow",
                                "to": "true",
                                "tot": "bool"
                            },
                            {
                                "t": "set",
                                "p": "payload",
                                "pt": "msg",
                                "to": "File not found - fNewFile=true",
                                "tot": "str"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 1710,
                        "y": 480,
                        "wires": [
                            [
                                "1463c0a51e142c55"
                            ]
                        ]
                    },
                    {
                        "id": "1463c0a51e142c55",
                        "type": "debug",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "",
                        "active": true,
                        "tosidebar": false,
                        "console": false,
                        "tostatus": true,
                        "complete": "payload",
                        "targetType": "msg",
                        "statusVal": "payload",
                        "statusType": "msg",
                        "x": 1900,
                        "y": 440,
                        "wires": []
                    },
                    {
                        "id": "694d4a67103a09b9",
                        "type": "fs-ops-access",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "",
                        "path": "I:\\CSV",
                        "pathType": "str",
                        "filename": "Stromverbrauch_Übersicht.csv",
                        "filenameType": "str",
                        "read": true,
                        "write": true,
                        "throwerror": false,
                        "x": 1410,
                        "y": 400,
                        "wires": [
                            [
                                "6cebbec48955b658"
                            ],
                            [
                                "a4484cd91c127f61"
                            ]
                        ]
                    },
                    {
                        "id": "e4c4bc1098c16a5e",
                        "type": "ioBroker in",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "Netzbezug-Vortag-23-59",
                        "attrname": "",
                        "topic": "0_userdata.0.PV-Anlage.Netzbezug-Vortag-23-59",
                        "payloadType": "value",
                        "onlyack": "",
                        "func": "all",
                        "gap": "",
                        "fireOnStart": "false",
                        "outFormat": "MQTT",
                        "x": 370,
                        "y": 320,
                        "wires": [
                            [
                                "042a57214d3861d4"
                            ]
                        ]
                    },
                    {
                        "id": "042a57214d3861d4",
                        "type": "change",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "Netzbezug",
                        "rules": [
                            {
                                "t": "set",
                                "p": "topic",
                                "pt": "msg",
                                "to": "Netzbezug",
                                "tot": "str"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 670,
                        "y": 320,
                        "wires": [
                            [
                                "cad5874ffe081a65"
                            ]
                        ]
                    },
                    {
                        "id": "ed0362d319bee9a9",
                        "type": "ioBroker in",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "Stromverbrauch-Haus-von-PV-Vortag-23-59",
                        "attrname": "",
                        "topic": "0_userdata.0.PV-Anlage.Stromverbrauch-Haus-von-PV-Vortag-23-59",
                        "payloadType": "value",
                        "onlyack": "",
                        "func": "all",
                        "gap": "",
                        "fireOnStart": "false",
                        "outFormat": "MQTT",
                        "x": 430,
                        "y": 420,
                        "wires": [
                            [
                                "a0360e6a43ea4b41"
                            ]
                        ]
                    },
                    {
                        "id": "a0360e6a43ea4b41",
                        "type": "change",
                        "z": "1f2e3e76bc22eaf5",
                        "name": "Stromverbrauch Haus von PV",
                        "rules": [
                            {
                                "t": "set",
                                "p": "topic",
                                "pt": "msg",
                                "to": "Stromverbrauch Haus von PV",
                                "tot": "str"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 790,
                        "y": 420,
                        "wires": [
                            [
                                "cad5874ffe081a65"
                            ]
                        ]
                    }
                ]
                

                Eine weitere Frage wäre noch: Glücklicherweise sind das ja jetzt alles Zahlenwerte. Was wäre wenn jetzt noch ein weiterer Wert hinzukommen würde, der Text enthält?
                Müsste das dann so aussehen?

                firefox_6FmgljTV9B.jpg

                surfer09 1 Reply Last reply Reply Quote 0
                • surfer09
                  surfer09 @surfer09 last edited by

                  Ich glaube, das mit den Spaltenüberschriften habe ich gefunden. Ob das so richtig ist? Bei meinem Test hat es zumindest funktioniert 🙂

                  firefox_s7GeVR8xy6.jpg

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @surfer09 last edited by

                    @surfer09 wenn es funktioniert ist doch bestens. ja irgendwo in der csv node definiert man das und die Überschriften sind ja durch msg.coöumns festgelegt.
                    Vielleicht wirst ja doch noch ein NodeRed Fan: 😉😉

                    surfer09 1 Reply Last reply Reply Quote 0
                    • surfer09
                      surfer09 @mickym last edited by

                      @mickym 🙂 🙂 Im Prinzip funktioniert das ja alles wunderbar, wenn man weiß an welchen Schrauben man drehen muss 😉

                      1 Reply Last reply Reply Quote 0
                      • A
                        Amutep last edited by

                        Moin

                        Gut das das Thema gerade auf ist habe da auch eine Frage. Ich habe 3 Werte siehe Flow diese 3 Werte möchte ich in die CSV schreiben. Funktioniert auch soweit nur werden die Werte unterschiedlich aktualisiert und dann habe ich in meiner CSV ein durcheinander.
                        Mit nur einem Wert klappt das problemlos.

                        Screenshot 2024-03-17 113836.png

                        Danke euch

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Amutep last edited by

                          @amutep nun dann mach vorne nicht so ein Durcheinander und sorge dafür, dass es 4 unterschiedliche topics sind. dann wartet sie auch bis alle 4 getriggert wurden. wenn du willst, dass nur am Anfang auf alle 4 gewartet wird und dann bei je dem Update eine neue Zeile geschrieben wird, dann halt den Haken bei jeder nachfolgenden Nachricht einen Haken machen

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          1.1k
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          5
                          15
                          716
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo