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. mit Node-Red per HomeConnect den Geschirrspüler starten

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    mit Node-Red per HomeConnect den Geschirrspüler starten

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      frankyboy73 last edited by frankyboy73

      Hi, mir fällt da gerade ein, du brauchst ja auch ne Ausgabe ob die Bedingung nicht erfüllt ist und bei der Lösung mit Switches auch ein true und false als Ausgabe. Habe das noch mal angepasst.
      Bosch1.JPG

      [
          {
              "id": "d73c98e2.9ea268",
              "type": "ioBroker get",
              "z": "523fbe1.477244",
              "name": "Geschirrspüler Fernsatrt",
              "topic": "",
              "attrname": "payload",
              "payloadType": "value",
              "x": 530,
              "y": 340,
              "wires": [
                  [
                      "3e8c5459.06247c"
                  ]
              ]
          },
          {
              "id": "38f320e2.91c3a",
              "type": "ioBroker get",
              "z": "523fbe1.477244",
              "name": "",
              "topic": "Active Programm",
              "attrname": "payload",
              "payloadType": "value",
              "x": 870,
              "y": 340,
              "wires": [
                  [
                      "3a22e2f.e30901e"
                  ]
              ]
          },
          {
              "id": "2a5d258b.fb779a",
              "type": "ioBroker get",
              "z": "523fbe1.477244",
              "name": "PV Leistung",
              "topic": "",
              "attrname": "payload",
              "payloadType": "value",
              "x": 1170,
              "y": 340,
              "wires": [
                  [
                      "7ab1948f.c52f3c"
                  ]
              ]
          },
          {
              "id": "3e8c5459.06247c",
              "type": "switch",
              "z": "523fbe1.477244",
              "name": "true",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "eq",
                      "v": "true",
                      "vt": "str"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 1,
              "x": 710,
              "y": 340,
              "wires": [
                  [
                      "38f320e2.91c3a"
                  ]
              ]
          },
          {
              "id": "3a22e2f.e30901e",
              "type": "switch",
              "z": "523fbe1.477244",
              "name": "false?",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "eq",
                      "v": "false",
                      "vt": "str"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 1,
              "x": 1030,
              "y": 340,
              "wires": [
                  [
                      "2a5d258b.fb779a"
                  ]
              ]
          },
          {
              "id": "7ab1948f.c52f3c",
              "type": "switch",
              "z": "523fbe1.477244",
              "name": ">5000",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "gt",
                      "v": "5000",
                      "vt": "str"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 1,
              "x": 1310,
              "y": 340,
              "wires": [
                  [
                      "612dcfe.fca2b3",
                      "5a698f6b.d4c9a"
                  ]
              ]
          },
          {
              "id": "612dcfe.fca2b3",
              "type": "trigger",
              "z": "523fbe1.477244",
              "op1": "",
              "op2": "0",
              "op1type": "nul",
              "op2type": "str",
              "duration": "10",
              "extend": false,
              "units": "min",
              "reset": "",
              "bytopic": "all",
              "name": "",
              "x": 780,
              "y": 480,
              "wires": [
                  [
                      "d73c98e2.9ea268"
                  ]
              ]
          },
          {
              "id": "d0e58f58.bd0d6",
              "type": "ioBroker in",
              "z": "523fbe1.477244",
              "name": "",
              "topic": "Geschirspüler Fernstart",
              "payloadType": "value",
              "onlyack": "",
              "func": "rbe",
              "gap": "",
              "x": 120,
              "y": 280,
              "wires": [
                  [
                      "d73c98e2.9ea268",
                      "defb4feb.df46b"
                  ]
              ]
          },
          {
              "id": "aa3d10f9.ea131",
              "type": "ioBroker in",
              "z": "523fbe1.477244",
              "name": "",
              "topic": "Active Programm",
              "payloadType": "value",
              "onlyack": "",
              "func": "rbe",
              "gap": "",
              "x": 100,
              "y": 340,
              "wires": [
                  [
                      "d73c98e2.9ea268",
                      "213c853d.36504a"
                  ]
              ]
          },
          {
              "id": "4ac82860.d64cd8",
              "type": "ioBroker in",
              "z": "523fbe1.477244",
              "name": "",
              "topic": "PV Leistung",
              "payloadType": "value",
              "onlyack": "",
              "func": "rbe",
              "gap": "",
              "x": 90,
              "y": 380,
              "wires": [
                  [
                      "d73c98e2.9ea268",
                      "8a00def.c6d192"
                  ]
              ]
          },
          {
              "id": "defb4feb.df46b",
              "type": "switch",
              "z": "523fbe1.477244",
              "name": "false",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "eq",
                      "v": "false",
                      "vt": "str"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 1,
              "x": 450,
              "y": 440,
              "wires": [
                  [
                      "bdf487ac.319b58"
                  ]
              ]
          },
          {
              "id": "213c853d.36504a",
              "type": "switch",
              "z": "523fbe1.477244",
              "name": "true?",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "eq",
                      "v": "true",
                      "vt": "str"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 1,
              "x": 450,
              "y": 480,
              "wires": [
                  [
                      "bdf487ac.319b58"
                  ]
              ]
          },
          {
              "id": "8a00def.c6d192",
              "type": "switch",
              "z": "523fbe1.477244",
              "name": "<5000",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "lt",
                      "v": "5000",
                      "vt": "str"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 1,
              "x": 450,
              "y": 520,
              "wires": [
                  [
                      "bdf487ac.319b58"
                  ]
              ]
          },
          {
              "id": "5a698f6b.d4c9a",
              "type": "function",
              "z": "523fbe1.477244",
              "name": "true",
              "func": "msg.payload = true;\nreturn msg;",
              "outputs": 1,
              "noerr": 0,
              "x": 1450,
              "y": 340,
              "wires": [
                  []
              ]
          },
          {
              "id": "bdf487ac.319b58",
              "type": "function",
              "z": "523fbe1.477244",
              "name": "false",
              "func": "msg.payload = false;\nreturn msg;",
              "outputs": 1,
              "noerr": 0,
              "x": 1450,
              "y": 400,
              "wires": [
                  []
              ]
          }
      ]
      

      Bosch2.JPG

      [
          {
              "id": "ca75efe.bc75c1",
              "type": "function",
              "z": "523fbe1.477244",
              "name": "Funktion",
              "func": "if(msg.var1 == 'true' & msg.var2 == 'false' & msg.var3 > '5000') {\n    msg.payload = true;\n }\nelse{\n    msg.payload = false;\n}\n\nreturn msg;",
              "outputs": 1,
              "noerr": 0,
              "x": 1100,
              "y": 640,
              "wires": [
                  [
                      "bb820c17.dc36c"
                  ]
              ]
          },
          {
              "id": "8b1d74e.9d92688",
              "type": "ioBroker get",
              "z": "523fbe1.477244",
              "name": "Geschirrspüler Fernsatrt",
              "topic": "",
              "attrname": "var1",
              "payloadType": "value",
              "x": 510,
              "y": 640,
              "wires": [
                  [
                      "d53f73a2.7eb0c"
                  ]
              ]
          },
          {
              "id": "d53f73a2.7eb0c",
              "type": "ioBroker get",
              "z": "523fbe1.477244",
              "name": "",
              "topic": "Active Programm",
              "attrname": "var2",
              "payloadType": "value",
              "x": 750,
              "y": 640,
              "wires": [
                  [
                      "4ff8f925.9c6d78"
                  ]
              ]
          },
          {
              "id": "4ff8f925.9c6d78",
              "type": "ioBroker get",
              "z": "523fbe1.477244",
              "name": "PV Leistung",
              "topic": "",
              "attrname": "var3",
              "payloadType": "value",
              "x": 930,
              "y": 640,
              "wires": [
                  [
                      "ca75efe.bc75c1"
                  ]
              ]
          },
          {
              "id": "b6a16e59.16b1e",
              "type": "trigger",
              "z": "523fbe1.477244",
              "op1": "",
              "op2": "0",
              "op1type": "nul",
              "op2type": "str",
              "duration": "10",
              "extend": false,
              "units": "min",
              "reset": "",
              "bytopic": "all",
              "name": "",
              "x": 840,
              "y": 720,
              "wires": [
                  [
                      "8b1d74e.9d92688"
                  ]
              ]
          },
          {
              "id": "65763ff.16b89c",
              "type": "ioBroker in",
              "z": "523fbe1.477244",
              "name": "",
              "topic": "Geschirspüler Fernstart",
              "payloadType": "value",
              "onlyack": "",
              "func": "rbe",
              "gap": "",
              "x": 200,
              "y": 580,
              "wires": [
                  [
                      "8b1d74e.9d92688"
                  ]
              ]
          },
          {
              "id": "3a49ef16.452ba",
              "type": "ioBroker in",
              "z": "523fbe1.477244",
              "name": "",
              "topic": "Active Programm",
              "payloadType": "value",
              "onlyack": "",
              "func": "rbe",
              "gap": "",
              "x": 180,
              "y": 640,
              "wires": [
                  [
                      "8b1d74e.9d92688"
                  ]
              ]
          },
          {
              "id": "8a00676c.b3ea98",
              "type": "ioBroker in",
              "z": "523fbe1.477244",
              "name": "",
              "topic": "PV Leistung",
              "payloadType": "value",
              "onlyack": "",
              "func": "rbe",
              "gap": "",
              "x": 170,
              "y": 680,
              "wires": [
                  [
                      "8b1d74e.9d92688"
                  ]
              ]
          },
          {
              "id": "bb820c17.dc36c",
              "type": "switch",
              "z": "523fbe1.477244",
              "name": "",
              "property": "payload",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "true"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 1,
              "x": 650,
              "y": 720,
              "wires": [
                  [
                      "b6a16e59.16b1e"
                  ]
              ]
          }
      ]
      
      1 Reply Last reply Reply Quote 0
      • D
        Dancekid last edited by Dancekid

        Guten Morgen Frankyboy,

        die Prüfung alle 10 Minuten kann man auch weglassen, wenn er selber feststellt wann alle 3 Eingänge richtig sind.
        Leider ist der Fernstart=TRUE auch nach dem Start des Geschirrspülers noch aktiv....

        Hatte zuerst versucht das in Blockly zu bauen

        2b2f0d6d-4d5a-4e44-b752-7248e921e0a4-grafik.png

        Prüfe alle 10 Minuten in der Zeit zwischen 10.00 - 18.00 Uhr, ob alle 3 Bedingungen = TRUE sind, dann starte das Programm.
        Die 3. Bedingung prüft, ob bereits ein Programm läuft und müßte lauten:
        Wenn BSH_Common_Root_ActiveProgramm = leer / null, dann starte

        Danke für die Beispiele.

        Schaue mir gleich Deine Beispiele an. Besonders wie man die 3 Bedingungen in eine Function einbaut ist wichtig für mich.

        Gruß Michael

        1 Reply Last reply Reply Quote 0
        • D
          Dancekid last edited by

          Hallo Frankyboy,

          habe zuerst 'null' probiert und dann ''.

          Mit der 2. Variante funktioniert es jetzt.

          Vielen Dank.

          40197fed-7a0b-4ddf-8bc0-f0bc0784f418-grafik.png

          Grüße Michael Roth

          F 1 Reply Last reply Reply Quote 0
          • F
            frankyboy73 @Dancekid last edited by

            @Dancekid
            Hi, das freut mich.
            Falls du mit ner Zeitlichen Abfrage arbeiten willst, Cron/Zeitplan gibts auch für Node Red, falls du das noch nicht weißt. Muss aber erst installiert werden. Unter Palette, installieren. node-red-contrib-cron

            1 Reply Last reply Reply Quote 0
            • D
              Dancekid last edited by Dancekid

              Guten Morgen Frankyboy,

              das schaue ich mir gleich noch an mit CRON; wo muss ich den denn einfügen ?
              Derzeit läuft Node-Red jede Minute durch; wollte eigentlich nur die unnötigen Läufe vermeiden.

              05ceba74-a22e-4e93-9dfb-694430844bd8-grafik.png

              Jetzt sagt er CRON Expression falsch.

              0 0/10 9-18 ? * * *
              Laut CRON Expression Generator sollte das bedeuten: zwischen 09.00 und 18.00 alle 10 Minuten starten ?!

              Muss man immer IOBroker IN + IOBroker GET verwenden oder reicht nur GET ?

              Was ist der Unterschied zwischen GET und GET Objekt ?

              Gruß Michael

              F 1 Reply Last reply Reply Quote 0
              • F
                frankyboy73 @Dancekid last edited by

                @Dancekid
                Hi, der Node Red Contrib Cron ist etwas anders als der Standart. Der erste Stern ist für die Sekunde, wenn man die nicht braucht macht man den einfach weg. Für deinen Fall sollte das so Klappen 0/10 9-18 * * *, Von Minute 0 an jede 10. Minute bis Minute 59, in der Zeit zwischen 9 bis 18.
                Du musst nicht immer In und Get verwenden. Die In Nodes senden ne Message bei Änderung oder Aktualisierung, je nachdem was eingestellt ist. Die Get Nodes holen sich einen Wert wenn sie durchlaufen werden. Dafür braucht man dann allerdings nen Trigger der ein Signal an ihren Eingang schickt, entweder ne In Node oder ne Injekt oder Cron, usw.
                Mit der Get Objekt habe ich mich noch nicht so viel beschäftigt. Da wird glaube ich eher der Name, bzw. das Topic des Objekts ausgelesen, damit man es weiter verarbeiten kann um eventuell Anzuzeigen welches Geträt etwas gemeldet hat. Bei der Get Node ist es der Zustand bzw. der Wert, man kann die Get aber auch auf Objekt umstellen.

                1 Reply Last reply Reply Quote 0
                • D
                  Dancekid last edited by

                  Hallo Frankyboy,

                  ich habe noch ein Problem beim Start des Geschirrspülers.

                  In den Objekten wird der State "BSH_Common_Root_ActiveProgram" als "leer" angezeigt.

                  Beim Auslesen über Node-Red wird allerdings noch der letzte Status angezeigt.
                  Habe IOBroker-Get und IOBroker-IN probiert.

                  Gibt es da noch einen Trick ?

                  Gruß Michael

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    frankyboy73 @Dancekid last edited by

                    @Dancekid
                    Hi, eigentlich kann nur das ausgelesen werden was auch in dem Moment im Objekt drin steht. Wenn ich da was reinschreibe und das Objekt dann wieder leer mache, wird es mir auch sofort als leer angezeigt. Auch nur ein Leerzeichen wird mir als Leerzeichen angezeigt. Mache ich das weg, wird auch wieder nix angezeigt. Warum das bei dir so nicht klappt verstehe ich nicht. Node Red speichert selber keine Objektinhalte, sondern holt sich die Werte aus den Objekten, bei der In Node bei Änderung oder Aktualisierung, bei der Get Node wenn sie durchlaufen wird.
                    Man kann höchsten hinter die IN Node oder die Get Node ne Verzögerung machen, z.B. 10 Minuten, dann holt die Node sich den Wert und der wird dann erst 10 Minuten später weitergegeben, dann hätte man nen 10 Minuten alten Wert und keinen aktuellen.
                    Sonst zeig doch mal deinen aktuellen Flow.
                    Test1.JPG

                    1 Reply Last reply Reply Quote 0
                    • D
                      Dancekid last edited by

                      Guten Morgen Frankyboy,

                      habe jetzt den Flow geändert und lese jetzt den Betriebsstatus aus.

                      ausgeschaltet = ...inactive
                      geschlossen & angeschaltet = ...ready

                      ca844402-4e7e-4ea3-80f1-c536fac66c0c-grafik.png

                      So funktioniert der Start bei mir ab 6.000 PV-Leistung.

                      Gruß Michael

                      F 1 Reply Last reply Reply Quote 0
                      • F
                        frankyboy73 @Dancekid last edited by

                        @Dancekid
                        Hi, danke für die Rückmeldung, schön das du es hinbekommen hast.

                        Ich habe gesehen das du hinter der Funktion Node noch einen Switch hast, wahrscheinlich um die Nachricht nur durchzulassen wenn ein true kommt.
                        Falls es dich interessiert, das kann man auch in der Funktion Node lösen. Habe ich aber auch erst die Tage gecheckt wie das geht. Dazu das else payload = false wegmachen. Das return Message mit in die Klammer vom true rein. Dann wird nur eine Nachricht ausgegeben wenn diese Bedingung erfüllt ist. Macht man das return msg nicht mit in die Klammer und die Bedingung ist nicht erfüllt, leitet die Funktion Node die ankommenden Nachrichten einfach durch, was dann zu Problemen führen kann.
                        Message1.JPG
                        Will man mehrere Bedingungen Abfragen und nur ne Ausgabe haben wenn eine von denen erfüllt ist, aber wenn keine erfüllt ist auch keine Ausgabe, muss man das return msg bei jeder Abfrage hinten in die Klammer mit einfügen.
                        Message2.JPG
                        Aber das nur zur Info, viel Erfolg weiterhin.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        1.0k
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        2
                        14
                        3255
                        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