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. Wasserregulierung Aquarium

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wasserregulierung Aquarium

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Aphofis last edited by mickym

      @aphofis sagte in Wasserregulierung Aquarium:

      Ich bin es nicht gewohnt, das jemand die Geduld mitbringt etwas zu erklären!
      Also ich habe mich schon gebremst.

      Naja wenn ich die Geduld nicht mitbringen würde, dann wirst Du die Zusammenhänge nicht begreifen und wirst auf kurz oder lang immer frustriert bleiben.

      Also erzeuge aus der payload mittels einer Change Node ein Objekt, in dem Du die payload in eine Eigenschaft payload.data verschiebst. Die Debugausgabe bitte posten.

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

        Naja wenn ich die Geduld nicht mitbringen würde, dann wirst Du die Zusammenhänge nicht begreifen und wirst auf kurz oder lang immer frustriert bleiben.

        Das will ich auch nicht und es ist echt toll das du mir das beibringen willst.

        Also erzeuge aus der payload mittels einer Change Node ein Objekt, in dem Du die payload in eine Eigenschaft payload.data verschiebst. Die Debugausgabe bitte posten.

        payload.data verstehe ich nicht wie das gemeint ist

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

          @aphofis sagte in Wasserregulierung Aquarium:

          payload.data verstehe ich nicht wie das gemeint ist

          Nun über die Punktnotation kann man Eigenschaft eines Objektes ansprechen. Deswegen nochmals hast Du Dir die Definition von Arrays und Objekten angeschaut und kannst mir sagen, wie diese definiert sind.
          Lies dieses Posting mit dem Link nochmals durch: https://forum.iobroker.net/post/1191559

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

            @mickym
            nein wann sollte ich mir das angucken wenn ich hier beim lernen bin.

            mickym Aphofis 2 Replies Last reply Reply Quote 0
            • mickym
              mickym Most Active @Aphofis last edited by

              @aphofis Na in dem Link habe ich Dir die Definitionen gepostet. Das hatte ich Dir doch vor 45 Minuten geschrieben.

              Also dann kopiere ich das nochmal hier rein:

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

              Also ein ARRAY beginnt IMMER mit einer ECKIGEN Klammer und schließt mit einer ECKIGEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt.

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

              Also ein OBJEKT beginnt IMMER mit einer GESCHWEIFTEN Klammer und schließt mit einer GESCHWEIFTEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt. Ein Element besteht immer aus einer Eigenschaft in Anführungszeichen und dann ein Doppelpunkt und dann dem Wert der Eigenschaft. So wie Du es zuerst gemacht hast.

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

                Also ist ein Array eine selbst definierte ausgabe an payload Daten.
                was genau ein Object ist weiß ich nicht

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

                  @mickym sagte in Wasserregulierung Aquarium:
                  Ich glaube ich denke zu kompliziert.
                  Hatte ich gesehen, gelesen und solala verstanden.

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

                    @aphofis sagte in Wasserregulierung Aquarium:

                    Also ist ein Array eine selbst definierte ausgabe an payload Daten.
                    was genau ein Object ist weiß ich nicht

                    Ich habe Dir die Definitionen gerade im vorigen Post beschrieben .
                    84f9fce5-2aca-46b8-bb02-ae91263e5d30-image.png

                    und so sollte es dann aussehen. Sprich die payload ist nun ein Objekt mit der Eigenschaft data.

                    b7efee7c-6be8-4bd8-acfd-39a736d0c06a-image.png

                    Also nochmal ein Objekt hat ein oder mehrere Eigenschaften.

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

                    Also ein OBJEKT beginnt IMMER mit einer GESCHWEIFTEN Klammer und schließt mit einer GESCHWEIFTEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt. Ein Element besteht immer aus einer Eigenschaft in Anführungszeichen und dann ein Doppelpunkt und dann dem Wert der Eigenschaft. So wie Du es zuerst gemacht hast.

                    Siehe auch: https://www.w3schools.com/js/js_objects.asp

                    10272071-af36-4ac9-863b-491cce88b181-image.png

                    und in NodeRed und in JSON werden Objekte so dargestellt.

                    Wenn Du aus dem Debugfenster ein Wert rauskopierst und hier in CodeTags kopiert, dann sieht das payload Objekt so aus:

                    copy path.gif

                    Der Pfad ist wie Du die Eigenschaft im Objekt ansprichst.

                    07de958b-31f8-43a3-b4a6-584a2b22680d-image.png

                    Code-Tags.gif

                    {"data":20}
                    
                    1 Reply Last reply Reply Quote 1
                    • Aphofis
                      Aphofis @Aphofis last edited by

                      Also array in eckige klammern gesetzt.
                      Object in geschwigten klammern
                      Was deffiniert ein Array und was ein Object.
                      Also zB wie in dem Thread sind die Tankstellen der Bereich (Array) in dem die einzelnen Punkte aufgelistet sind aber was ist dann ein Object.?

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

                        @aphofis sagte in Wasserregulierung Aquarium:

                        Also zB wie in dem Thread sind die Tankstellen der Bereich (Array) in dem die einzelnen Punkte aufgelistet sind aber was ist dann ein Object.?

                        Lies Dir mal das vorige Posting genau durch - also ein Objekt ist eine logische Einheit mit verschiedenen Eigenschaften. Diese Eigenschaften können alle Datentypen, als auch weitere Objekte sein.

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

                          @mickym sagte in Wasserregulierung Aquarium:

                          en können alle Datentypen, als auch

                          Ok nur wo definiere ich das es ein Object ist.

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

                            @aphofis sagte in Wasserregulierung Aquarium:

                            @mickym sagte in Wasserregulierung Aquarium:

                            en können alle Datentypen, als auch

                            Ok nur wo definiere ich das es ein Object ist.

                            Siehe Definition:

                            Also ein OBJEKT beginnt IMMER mit einer GESCHWEIFTEN Klammer und schließt mit einer GESCHWEIFTEN Klammer ab und die einzelnen Elemente werden durch ein Komma getrennt. Ein Element besteht immer aus einer Eigenschaft in Anführungszeichen und dann ein Doppelpunkt und dann dem Wert der Eigenschaft. So wie Du es zuerst gemacht hast.

                            Ein Objekt definierst Du also durch die geschweiften Klammern.

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

                              @mickym sagte in Wasserregulierung Aquarium:

                              lemente werden durch ein Komma getren

                              Das mir ja nun auch klar, nur in welcher node setze ich das object!?

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

                                Ein Array hat KEINE Eigenschaften, sondern ist eine Aufzählung (in Blockly nennt man das Liste) von Daten. Diese sind aber nur durch ihre Position ansprechbar, aber nicht durch Eigenschaftsnamen.

                                89afed07-3973-4788-950f-0dcf3daa59b5-image.png

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

                                  @aphofis sagte in Wasserregulierung Aquarium:

                                  @mickym sagte in Wasserregulierung Aquarium:

                                  lemente werden durch ein Komma getren

                                  Das mir ja nun auch klar, nur in welcher node setze ich das object!?

                                  Nun Du kannst ein Objekt selbst definieren indem Du in der Change Node/Inject ein Objekt definierst:

                                  Objekte und Arrays kannst Du in NodeRed über die JSON Schreibweise definieren:

                                  1725759d-042c-4fe0-a917-b495f434bad5-image.png

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

                                    So ich denke wir machen dann morgen weiter mit ein paar Grundlagen.

                                    Hier nun die Auflösung der Aufgabe:

                                    66ba77ff-6082-4ef3-9618-6167cb1dd8b3-image.png

                                    Du siehst nun dass die payload Eigenschaft in eine payload Eigenschaft data verschoben wird. Somit wird aus der payload automatisch ein Objekt.

                                    Ich denke wir machen morgen weiter, wenn Du nichts dagegen hast.

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

                                      Ansonsten kann man mit einer Change Node - eine Nachrichteneigenschaft auf eine Konstante setzen

                                      e4d5562c-f56d-4a45-ab59-7f6084128a29-image.png

                                      Also eine Konstante vom Typ einer Zeichenkette, einer Zahl, eines Boolean, eines JSON Objekt (Objekt, Array) oder eines Buffer.

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

                                        @mickym
                                        Alter Schwede, jetzt habe ich es verstanden.
                                        Das ja mega einfach wenn man erstmal die Basics kennt.
                                        ist es so korrekt!?
                                        Screenshot 2024-08-16 040146.png

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

                                          @aphofis Na was Du halt willst, das ist ein Nachrichteigenschaft object mit einem Array.

                                          Wie gesagt ich habe Dir nun noch das Setzen auf Konstanten im vorigen Post gezeigt.

                                          Und wenn es komplexere Berechnungen geht, dann nimmst Du JSONATA

                                          96093b0e-8707-4703-ad01-b6d9f7c20d6e-image.png

                                          Wenn du also etwas mit der payload berechnen willst, dann kannst Du auch die payload mit 5,1 multiplizieren.

                                          5a0f9d6f-972a-4c59-bd46-e776bb3b107d-image.png

                                          Dafür braucht mal also keine extra Nodes.

                                          Hier mal etwas zum Nachlesen was JSONATA kann: https://docs.jsonata.org/overview

                                          Diese supermächtige Bibliothek kannst Du in verschiedenen Nodes ansprechen. Aber für heute mach ich mal Schluss, aber sollte Dir für Deinen Flow weiterhelfen.

                                          Gute N8

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

                                            @mickym
                                            Also ich hab die Struktur noch nicht ganz verstanden, was erzeugt was in inject und change node und ist iobroker get richtig für das abgreifen der Datenpunkte !?
                                            Vielleicht schnalle ich das einfach auch nicht aber ich denke wenn ich den richtigen aufbau verstehe klappt das. Also wie erstellt man einen array und wie wird ein Objekt erstellt.

                                            [
                                                {
                                                    "id": "415ea6773572ec75",
                                                    "type": "inject",
                                                    "z": "e96d40e5c03c8e73",
                                                    "name": "",
                                                    "props": [
                                                        {
                                                            "p": "daten",
                                                            "v": "[\"durchfluss\", \"tag\", \"jahr\", \"gesamt\"]",
                                                            "vt": "jsonata"
                                                        },
                                                        {
                                                            "p": "durchfluss",
                                                            "v": "",
                                                            "vt": "num"
                                                        },
                                                        {
                                                            "p": "tag",
                                                            "v": "",
                                                            "vt": "num"
                                                        },
                                                        {
                                                            "p": "jahr",
                                                            "v": "",
                                                            "vt": "num"
                                                        },
                                                        {
                                                            "p": "gesamt",
                                                            "v": "",
                                                            "vt": "num"
                                                        }
                                                    ],
                                                    "repeat": "",
                                                    "crontab": "",
                                                    "once": false,
                                                    "onceDelay": 0.1,
                                                    "topic": "",
                                                    "x": 90,
                                                    "y": 480,
                                                    "wires": [
                                                        [
                                                            "ac6a78552d4978e1",
                                                            "7b7c9c2aa869088d",
                                                            "7dc01f92f518b643",
                                                            "53d2919475160265"
                                                        ]
                                                    ]
                                                },
                                                {
                                                    "id": "e9f685375022ecfd",
                                                    "type": "debug",
                                                    "z": "e96d40e5c03c8e73",
                                                    "name": "debug 15",
                                                    "active": true,
                                                    "tosidebar": true,
                                                    "console": false,
                                                    "tostatus": false,
                                                    "complete": "true",
                                                    "targetType": "full",
                                                    "statusVal": "",
                                                    "statusType": "auto",
                                                    "x": 800,
                                                    "y": 480,
                                                    "wires": []
                                                },
                                                {
                                                    "id": "01adccb7d5de8cbb",
                                                    "type": "change",
                                                    "z": "e96d40e5c03c8e73",
                                                    "name": "",
                                                    "rules": [
                                                        {
                                                            "t": "set",
                                                            "p": "durchfluss",
                                                            "pt": "msg",
                                                            "to": "durchfluss * 5.1",
                                                            "tot": "jsonata"
                                                        },
                                                        {
                                                            "t": "set",
                                                            "p": "jahr",
                                                            "pt": "msg",
                                                            "to": "durchfluss * 5.1 / 1000 + jahr",
                                                            "tot": "jsonata"
                                                        },
                                                        {
                                                            "t": "set",
                                                            "p": "gesamt",
                                                            "pt": "msg",
                                                            "to": "durchfluss * 5.1 / 1000 + gesamt",
                                                            "tot": "jsonata"
                                                        },
                                                        {
                                                            "t": "set",
                                                            "p": "tag",
                                                            "pt": "msg",
                                                            "to": "durchfluss * 5.1 + tag",
                                                            "tot": "jsonata"
                                                        }
                                                    ],
                                                    "action": "",
                                                    "property": "",
                                                    "from": "",
                                                    "to": "",
                                                    "reg": false,
                                                    "x": 590,
                                                    "y": 480,
                                                    "wires": [
                                                        [
                                                            "e9f685375022ecfd"
                                                        ]
                                                    ]
                                                },
                                                {
                                                    "id": "ac6a78552d4978e1",
                                                    "type": "ioBroker get",
                                                    "z": "e96d40e5c03c8e73",
                                                    "name": "durchfluss",
                                                    "topic": "0_userdata.0.Test_Wasser.Test_Durchfluss",
                                                    "attrname": "durchfluss",
                                                    "payloadType": "value",
                                                    "errOnInvalidState": "nothing",
                                                    "x": 370,
                                                    "y": 480,
                                                    "wires": [
                                                        [
                                                            "01adccb7d5de8cbb"
                                                        ]
                                                    ]
                                                },
                                                {
                                                    "id": "7dc01f92f518b643",
                                                    "type": "ioBroker get",
                                                    "z": "e96d40e5c03c8e73",
                                                    "name": "jahr",
                                                    "topic": "0_userdata.0.Test_Wasser.Test_Wasser_Jahr",
                                                    "attrname": "jahr",
                                                    "payloadType": "value",
                                                    "errOnInvalidState": "nothing",
                                                    "x": 350,
                                                    "y": 600,
                                                    "wires": [
                                                        []
                                                    ]
                                                },
                                                {
                                                    "id": "7b7c9c2aa869088d",
                                                    "type": "ioBroker get",
                                                    "z": "e96d40e5c03c8e73",
                                                    "name": "tag",
                                                    "topic": "0_userdata.0.Test_Wasser.Test_Wasser_Tag",
                                                    "attrname": "tag",
                                                    "payloadType": "value",
                                                    "errOnInvalidState": "nothing",
                                                    "x": 350,
                                                    "y": 540,
                                                    "wires": [
                                                        []
                                                    ]
                                                },
                                                {
                                                    "id": "53d2919475160265",
                                                    "type": "ioBroker get",
                                                    "z": "e96d40e5c03c8e73",
                                                    "name": "gesamt",
                                                    "topic": "0_userdata.0.Test_Wasser.Test_Wasser_Gesamt",
                                                    "attrname": "gesamt",
                                                    "payloadType": "value",
                                                    "errOnInvalidState": "nothing",
                                                    "x": 360,
                                                    "y": 660,
                                                    "wires": [
                                                        []
                                                    ]
                                                }
                                            ]
                                            


                                            Screenshot 2024-08-16 054254.png
                                            Screenshot 2024-08-16 054708.png
                                            Die Daten werden in das Object geschrieben aber nicht in den Array. Irgendwo habe ich einen Denkfehler.
                                            und jetzt sage ich erstmal Gute Nacht und schon mal vielen vielen dank für deine Lektionen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            694
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            147
                                            9327
                                            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