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. String aufteilen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    String aufteilen

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

      @mickym Natürlich, ohne wäre es noch schwieriger geworden mit der Fehlersuche.
      Ich bin von Beruf Weinbauer, da macht man in der Freizeit auch gerne einmal etwas anderes, daher hat es auch Spass gemacht. Dieser Flow ist allerdings erst der Anfang.
      Wie bereits erwähnt möchte ich noch Feuchtigkeitssensoren einbauen. Zudem hängt am Wasserhan ein Zähler. Da ist das Ziel dass ich einen Schlauchbruch erkenne, das Ventil schliesse und eine Meldung bekomme. Das schwierige wird sein dass ich bei jedem Ventil ein Wert hinterlegen muss welcher nicht überschritten werden sollte. Diese müssen teilweise summiert werden wenn mehrere Ventile offen sind. Zudem muss ich berücksichtigen dass beim öffnen eines Ventils mehr Wasser fliesst bis der Schlauch voll ist....
      Falls das alles einmal läuft, könnte ich auch noch den Wetterbericht einbinden. Aber bis dann ist Winter.

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

        @hafo sagte in String aufteilen:

        @mickym Natürlich, ohne wäre es noch schwieriger geworden mit der Fehlersuche.
        ...
        Falls das alles einmal läuft, könnte ich auch noch den Wetterbericht einbinden. Aber bis dann ist Winter.

        Mache ich gerade mit der AccuWeather API aber nicht mit vis sondern dem NodeRed Dashbord. 😉

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

          @mickym Hier ist noch der abgeänderte Flow mit den Rechner falls es jemandem hilft.
          bew3.json

          Das Vis funktioniert nun perfekt, auch wenn es optisch noch besser geht.
          1.jpg

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

            @hafo Na das schaut doch ganz gut aus. Und die sich mit der Materie beschäftigen, wissen wieviel Arbeit da drin steckt. 😉

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

              @mickym So, meine flows sind nun fast fertig, ich habe alles noch ein bisschen überarbeitet.
              -anzeige der Restlaufzeit
              -einschalten eines Ventils für eine bestimmte Zeit ohne das Programm zu beeinflussen
              -eingeschaltete Ventile sind gut Sichtbar und können beim draufklicken ausgeschaltet werden
              -es können verschiedene Programme zugewiesen werden, aktuell gibt es:
              -Timer (normale Steuerung über Zeitschaltuhr)
              -Timer+Sensor (die Bewässerung wird nur gestartet wenn der Sensor auf true)
              -Stundentimer (Sensoren werden Stündlich abgelesen)
              2.jpg
              Es ist nun auch einfach möglich zusätzliche Programme zu machen, z.B für Wettervorhersagen...
              Dafür habe ich zwei Tabs gut gefüllt
              3.jpg
              4.jpg

              Falls jemand an den Flows interessiert ist, einfach melden. Ich kann dann auch Tips zum einbauen geben. Es sollte relativ einfach übertragbar sein sofern ich alles richtig gemacht habe 😬

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

                @hafo Na herzlichen Glückwunsch!!!

                Nachdem alles nun gut läuft - hätte ich noch einen kleinen Punkt zur Optimierung der Flows. Ich hatte am Anfang auch lange Bäume, aber man kann die ggf. noch vereinfachen, indem man den msg.topic dynamisch zusammenstellt.
                So bleibt ja bei jedem Flow Stardzeit, Laufzeit immer gleich.
                So könnten man das quasi etwas vereinfachen in dem man dies nochmal hierarchisch aufbaut. Aber das kannst Dir ja mal für später im Auge behalten.

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

                  @mickym das habe ich mir gedacht. Allerdings wollte ich einfach mal fertig werden, daher habe ich nicht lange nach Vereinfachungen gesucht. Aber bei meinem nächsten grösseren Projekt kann ich mich da sicher noch steigern.

                  H 1 Reply Last reply Reply Quote 0
                  • H
                    hafo @hafo last edited by

                    @hafo Ich versuche gerade die Sensoren einzubinden.
                    Es gibt für jeden Kanal ein Sensorobjekt. Ist es true wird bewässert, ist es false bleibt das Ventil zu. Bei einem Feuchtigkeitssensor pro Kanal ist das einfach,
                    1.jpg
                    Aber wie mache ich das am besten wenn es mehrere Sensoren gibt, und ich bewässern möchte wenn einer von ihnen unter 40% fällt?
                    Das wäre am einfachsten, aber dann wird der Wert ja nie auf false gesetzt.
                    2.jpg
                    Ich könnte ihn natürlich nach jedem bewässern auf false setzen, aber das ist irgendwie nicht meine Lösung.

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

                      @hafo Hier habe ich mal erklärt, wie man mehrere Datenpunkte in einem Objekt zusammenfasst und dann anschließend mit UND oder ODER Verknüpft und dann einen Alarm auslöst bzw. in Deinem Fall halt die Bewässerung.

                      Oder kurz in Worten ausgedrückt. Du sammelst alles per Wildcard ein, sammelst ggf. mit Modifizierung des Topic alle Ventile mit true (<40%) oder false (>= 40%) in einem Objekt. Verknüpfst alles mit ODER - sprich, wenn eines unter 40% ist, dann wird Bewässerung ausgelöst. Steigen die Sensoren wieder über 40% wird der Alarm bzw. die Bewässerung automatisch wieder aufgehoben. Die Feuchtigkeitssensoren sollten ja dann wieder automatisch über 40% liefern, sobald genügend bewässert ist.

                      Wenn Du nicht mit Wildcards arbeiten kannst, weil Deine Sensoren nicht hierarchisch aufgebaut sind, dann musst halt alle iobroker-In Nodes, die zu einem Objekt zusammengefasst werden sollen über eine JOIN Node vereinigen.

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

                        @mickym Vielen Dank für den Tipp. Das werde ich gleich testen. Leider sind alle Sensoren im selben Verzeichnis, da wird es schwierig mit Wildcards wenn ich das richtig verstehe.

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

                          @hafo Entweder dann mit eben mit einzelnen IN-Nodes oder Wildcards mit einem Switch Node und dann mit regulären Ausdrücken verzweigen - das wäre bei einer flachen Struktur am elegantesten. 😉

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

                            @mickym Da wird ja immer eine ganze Menge übermittelt bei jeder Anfrage
                            3.jpg
                            Leider nicht der Name, sondern höchstens die ID. Da wird es schwierig mit dem Switch Node.
                            4.jpg
                            Damit wäre das wohl geklärt, ich arbeite mit den In Nodes

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

                              @hafo wie du meinst - man kann zum Beispiel eine iobroker IN Node definieren, die wie folgt aussieht:

                              zigbee.0.*.soil_moisture
                              

                              Dann kommen nur noch Feuchtigkeitswerte aus der In Node - anschließend gruppiert man diese über switch Nodes - aber kannst Du natürlich auch mit einzelnen Nodes machen.

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

                                @mickym Mein Problem ist halt dass ich am Ende unter Zigbee.0.* etwa 20 solcher Sensoren habe, die aber unterschiedlichen Ventilen zugeordnet werden müssen. Aber ist ja kein Ding, ich sammle sie einzeln auf dann sollte es passen.

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

                                  @hafo lieber einfache Variante für den Anfang - da sieht man dann auch grafisch welche Sensoren zusammengehören.

                                  1 Reply Last reply Reply Quote 0
                                  • H
                                    hafo @hafo last edited by

                                    @hafo Eigentlich ist für mich diese Variante am einfachsten
                                    5.jpg
                                    Ich kann so einfach jeden Sensor vorne anhängen und gut ist. Jetzt muss ich nur noch nach jedem Bewässern den Sensor auf false stellen.
                                    Ich bin gerade etwas Müde, vielleicht versuche ich deinen Weg später noch. Eigentlich möchte ich mich da ja ein bisschen mehr einarbeiten.

                                    Vielen Dank und schöne Grüsse

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

                                      @hafo Gar kein Problem - soll ja auch erst mal so einfach wie möglich sein, dass ist ja der Sinn von Node Red.

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

                                        @mickym Meine Variante funktioniert ja gar nicht. Bei einem Regen habe ich nichts was den Wert auf false stellt. Daher hier der nächste Versuch

                                        [
                                           {
                                               "id": "bbb6248f.e4902",
                                               "type": "ioBroker out",
                                               "z": "7febe846.5c589",
                                               "name": "Chili Sensor",
                                               "topic": "0_userdata.0.InOut.Chili_Sensor",
                                               "ack": "false",
                                               "autoCreate": "false",
                                               "stateName": "",
                                               "role": "",
                                               "payloadType": "",
                                               "readonly": "",
                                               "stateUnit": "",
                                               "stateMin": "",
                                               "stateMax": "",
                                               "x": 970,
                                               "y": 860,
                                               "wires": []
                                           },
                                           {
                                               "id": "6f80e402.d8337c",
                                               "type": "ioBroker in",
                                               "z": "7febe846.5c589",
                                               "name": "Chili3",
                                               "topic": "zigbee.0.00124b000ef65c21.soil_moisture",
                                               "payloadType": "value",
                                               "onlyack": "",
                                               "func": "rbe",
                                               "gap": "",
                                               "fireOnStart": "false",
                                               "x": 130,
                                               "y": 820,
                                               "wires": [
                                                   [
                                                       "595bdded.3e165c"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "1f132e98.d3d539",
                                               "type": "ioBroker in",
                                               "z": "7febe846.5c589",
                                               "name": "Chili2",
                                               "topic": "zigbee.0.00124b000ef65c31.soil_moisture",
                                               "payloadType": "value",
                                               "onlyack": "",
                                               "func": "rbe",
                                               "gap": "",
                                               "fireOnStart": "false",
                                               "x": 130,
                                               "y": 900,
                                               "wires": [
                                                   [
                                                       "7a7654a3.986c2c"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "c89b7d56.14baf8",
                                               "type": "change",
                                               "z": "7febe846.5c589",
                                               "name": "true",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "true",
                                                       "tot": "bool"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 370,
                                               "y": 800,
                                               "wires": [
                                                   [
                                                       "d5b8c310.b6e018"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "7263c2e8.47571c",
                                               "type": "change",
                                               "z": "7febe846.5c589",
                                               "name": "false",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "false",
                                                       "tot": "bool"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 370,
                                               "y": 840,
                                               "wires": [
                                                   [
                                                       "d5b8c310.b6e018"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "595bdded.3e165c",
                                               "type": "switch",
                                               "z": "7febe846.5c589",
                                               "name": "40",
                                               "property": "payload",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "lte",
                                                       "v": "40",
                                                       "vt": "num"
                                                   },
                                                   {
                                                       "t": "gt",
                                                       "v": "40",
                                                       "vt": "num"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 2,
                                               "x": 250,
                                               "y": 820,
                                               "wires": [
                                                   [
                                                       "c89b7d56.14baf8"
                                                   ],
                                                   [
                                                       "7263c2e8.47571c"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "d5b8c310.b6e018",
                                               "type": "change",
                                               "z": "7febe846.5c589",
                                               "name": "chili3",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "send.chili3",
                                                       "pt": "flow",
                                                       "to": "payload",
                                                       "tot": "msg"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 490,
                                               "y": 820,
                                               "wires": [
                                                   [
                                                       "df11cbcc.1cf698"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "95b1ffd7.dcbbe",
                                               "type": "change",
                                               "z": "7febe846.5c589",
                                               "name": "chili2",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "send.chili2",
                                                       "pt": "flow",
                                                       "to": "payload",
                                                       "tot": "msg"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 490,
                                               "y": 900,
                                               "wires": [
                                                   [
                                                       "df11cbcc.1cf698"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "750221a0.016ad8",
                                               "type": "change",
                                               "z": "7febe846.5c589",
                                               "name": "true",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "true",
                                                       "tot": "bool"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 370,
                                               "y": 880,
                                               "wires": [
                                                   [
                                                       "95b1ffd7.dcbbe"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "c15815ff.a96c18",
                                               "type": "change",
                                               "z": "7febe846.5c589",
                                               "name": "false",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "false",
                                                       "tot": "bool"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 370,
                                               "y": 920,
                                               "wires": [
                                                   [
                                                       "95b1ffd7.dcbbe"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "7a7654a3.986c2c",
                                               "type": "switch",
                                               "z": "7febe846.5c589",
                                               "name": "40",
                                               "property": "payload",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "lte",
                                                       "v": "40",
                                                       "vt": "num"
                                                   },
                                                   {
                                                       "t": "gt",
                                                       "v": "40",
                                                       "vt": "num"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 2,
                                               "x": 250,
                                               "y": 900,
                                               "wires": [
                                                   [
                                                       "750221a0.016ad8"
                                                   ],
                                                   [
                                                       "c15815ff.a96c18"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "df11cbcc.1cf698",
                                               "type": "change",
                                               "z": "7febe846.5c589",
                                               "name": "flow - payload",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "send",
                                                       "tot": "flow"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 640,
                                               "y": 860,
                                               "wires": [
                                                   [
                                                       "575dfbc4.d2bfdc",
                                                       "35c2165f.34b4ca"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "575dfbc4.d2bfdc",
                                               "type": "debug",
                                               "z": "7febe846.5c589",
                                               "name": "",
                                               "active": true,
                                               "tosidebar": true,
                                               "console": false,
                                               "tostatus": false,
                                               "complete": "payload",
                                               "targetType": "msg",
                                               "statusVal": "",
                                               "statusType": "auto",
                                               "x": 830,
                                               "y": 1000,
                                               "wires": []
                                           },
                                           {
                                               "id": "35c2165f.34b4ca",
                                               "type": "function",
                                               "z": "7febe846.5c589",
                                               "name": "oder",
                                               "func": "\n\nvar x;\n\nvar obj = msg.payload;\n\nvar bIsBoolean=false;\n\n \n\nfor (x in obj) {\n\n  bIsBoolean = bIsBoolean || obj[x];\n\n  \n\n}\n\n \n\nmsg.payload=bIsBoolean;\n\nreturn msg;\n",
                                               "outputs": 1,
                                               "noerr": 0,
                                               "initialize": "",
                                               "finalize": "",
                                               "libs": [],
                                               "x": 810,
                                               "y": 860,
                                               "wires": [
                                                   [
                                                       "3a022217.5c304e",
                                                       "bbb6248f.e4902"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "3a022217.5c304e",
                                               "type": "debug",
                                               "z": "7febe846.5c589",
                                               "name": "",
                                               "active": true,
                                               "tosidebar": true,
                                               "console": false,
                                               "tostatus": false,
                                               "complete": "false",
                                               "statusVal": "",
                                               "statusType": "auto",
                                               "x": 970,
                                               "y": 940,
                                               "wires": []
                                           }
                                        ]
                                        


                                        1.jpg
                                        Damit sollte es klappen. Ich arbeite wieder mit den Flow variablen, das kenne ich bereits und so funktioniert alles etwa gleich.

                                        Testlauf:
                                        2.jpg

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

                                          @hafo Nun ich sehe das etwas anders.

                                          Ich würde es erst mal als Alarm betrachten, also genau umgekehrt.

                                          Wenn alles über 40% dann falls und erst wenn unter 40% dann true. Damit würden alle bei Regen auf false stehen und es gibt keine Bewässerung.

                                          Wenn man noch mehr intelligenz haben will kann man diesen Alarm auch noch filtern, wenn Regen innerhalb einer bestimmten Zeit angekündigt ist.

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

                                            @mickym naja, ob da im hintergrund false oder true steht ist für mich nicht wichtig.
                                            Den Wetterbericht hätte ich gerne noch eingebaut, leider ist es mit unseren Meteorologen gleich wie mit den Virologen. Sie wissen nicht was sie tun.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            852
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            141
                                            8096
                                            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