Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. IoBroker Nodes (Nachricht nach Zustand weiterleiten?)

    NEWS

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    IoBroker Nodes (Nachricht nach Zustand weiterleiten?)

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

      Ich bin gerade dabei auf NodeRed in IoBroker umzusteigen.
      Aktuell läuft alles auf Redmatic (NodeRed auf der CCU). Da dies nicht mehr weiter entwickelt wird, steige ich um.

      In NodeRed gibt es Nodes für IoBroker. Leider fehlt mir die Möglichkeit Nachrichten in Abhängigkeit eines Zustandes weiter zu leiten.

      In RedMatic gibt es eine Node die folgendes macht.
      Nachricht abhängig von einem Zustand eines Aktors oder einer Systemvariablen weiterleiten.

      Kann ich dies auch mit den IoBroker Nodes umsetzen?

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

        @schmello Du kannst doch entweder direkt filtern, wenn sich Zustand geändert hat oder nicht - ansonsten kannst Du doch mit eine Switch-Node alles so filtern, wie Du es brauchst? Zustände von anderen Aktoren kannst Du entweder über Flow-Variablen im Kontext speichern oder fragst sie über die ioBroker get Nodes ab. Also alles möglich - Du musst halt die Nodes entsprechend nutzen.

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

          @mickym

          Ich habe folgenden Flow den ich nun in NodeRed/IoBroker umsetzten muss.
          Lüfter ist eine Tasmota Node. Die Funksteckdose ist eine CCU Node.
          Im Grunde habe ich nun alles als Objekte in IoBroker und benötige nur die IoBroker Nodes.

          node.jpg

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

            @schmello Du musst halt bissi genauer beschreiben. Also was triggert? Der Lüfter? Muss die Steckdose geschaltet werden oder ein Status ausgelesen werden, was passiert hinten mit der Lüfternode und wie verhinderst Du Endlosschleifen? Warum muss da was hin geschrieben werden. Mit den jetzigen Infos kann man Dir schlecht helfen.

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

              @mickym

              Sry für die späte Antwort.

              Ich habe folgende Situation.
              Bildschirmfoto 2022-12-30 um 21.58.28.png
              Wenn ich meine Wlan Steckdose Schalte muss der Zustand des Virtuellen Schalters in meiner Homematic CCU geschalten werden.
              Schalte ich den Virtuellen Schalter meine CCU soll die Tasmota Wlan Steckdose geschalten werden.

              Vor einigen Tagen war der Aufbau wie im erste Beitrag.
              Die Node in der Mitte hatte einen Eingang und Ausgang. So eine Node fehlt mir in Iobroker/Nodered

              Desweiteren hatte ich vorher eine Node die in Abhängigkeit eines Zustand von einem Datenpunkt Nachrichten weiter geleitet hat.
              Bildschirmfoto 2022-12-30 um 22.06.06.png
              Das True Signal geht erst zur Lampe wenn die mittleren beiden Datenpunkte einen Wert X hatten. Dies konnte ich in der Node Einstellen. Diese Möglichkeit finde ich in den IoBroker Nodes leider auch nicht.
              Bildschirmfoto 2022-12-30 um 22.07.23.png

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

                @schmello Ich blick den Flow nicht ganz - warum das alles so ist. Aber Du kannst 2 iobroker get nodes verwenden, ob andere Datenpunkte auszulesen und einer Nachrichteneigenschaft zuzuweisen. Diese kannst du dann in einer Switch Node abfragen.

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

                  @mickym

                  Ich glaube ganz verstehen wir uns nicht 🙂

                  Der wert True muss vom Inject Node in den Node Lampe Ein.
                  Dabei soll dieser Wert nur durch gelassen werden wenn bei den anderen beiden Datenpunkten ein Wert X vorhanden ist.

                  Ein Beispiel wäre.

                  Wenn PV Strom im Überschuss vorhanden ist (True Signal) und Regensensor X ist false und Bodenfeuchtesensor ist false wird die Lampe/Pumpe eingeschaltet.

                  Dies konnte ich bisher genauso umsetzten. Leider habe ich diese Nodes nicht mehr, sondern aktuell die von IoBroker 🙂
                  Und deren Nodes können das nicht. Vielleicht habe ich auch ein kompletten Denkfehler. Sicherlich führen viele Node nach Rom 😄

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

                    @schmello Du musst den Regensensor und den Bodenfeuchtesensor über eine get-Node auslesen und eine msg eigenschaft zuweisen.

                    Ich denke Du verstehst nicht was ich gesagt habe.

                    6b0683ab-3e30-4100-a7f4-75ccdfbcc18c-image.png

                    [
                       {
                           "id": "65777d228eab1d89",
                           "type": "inject",
                           "z": "289f539dcc33814e",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "",
                           "payload": "true",
                           "payloadType": "bool",
                           "x": 150,
                           "y": 4440,
                           "wires": [
                               [
                                   "194ead54ebbbdcfc"
                               ]
                           ]
                       },
                       {
                           "id": "194ead54ebbbdcfc",
                           "type": "ioBroker get",
                           "z": "289f539dcc33814e",
                           "name": "",
                           "topic": "regensensor",
                           "attrname": "regen",
                           "payloadType": "value",
                           "errOnInvalidState": "nothing",
                           "x": 330,
                           "y": 4440,
                           "wires": [
                               [
                                   "d01a79051e6780b9"
                               ]
                           ]
                       },
                       {
                           "id": "d01a79051e6780b9",
                           "type": "ioBroker get",
                           "z": "289f539dcc33814e",
                           "name": "",
                           "topic": "bodenfeuchte",
                           "attrname": "bodenfeuchte",
                           "payloadType": "value",
                           "errOnInvalidState": "nothing",
                           "x": 560,
                           "y": 4440,
                           "wires": [
                               [
                                   "d51ccba0c66e49b9"
                               ]
                           ]
                       },
                       {
                           "id": "d51ccba0c66e49b9",
                           "type": "switch",
                           "z": "289f539dcc33814e",
                           "name": "bodenfeuchte und regen = false",
                           "property": "bodenfeuchte or regen\t",
                           "propertyType": "jsonata",
                           "rules": [
                               {
                                   "t": "false"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 1,
                           "x": 830,
                           "y": 4440,
                           "wires": [
                               [
                                   "d85b2ca33ccc7a1b"
                               ]
                           ]
                       },
                       {
                           "id": "d85b2ca33ccc7a1b",
                           "type": "debug",
                           "z": "289f539dcc33814e",
                           "name": "Lampe",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 1050,
                           "y": 4440,
                           "wires": []
                       }
                    ]
                    

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

                      Wow Riesen dank 🙂 Bringt mich schon mal ein ganzes Stück weiter.
                      Wäre ich nie hin gekommen.

                      Wie wäre denn der Aufbau wenn der Regensensor einen Wert zwischen 5 und 10 haben muss und der Bodenfeuchtesensor bei false bleibt.
                      Also beide nicht den gleichen Wert haben. Ich glaube wenn ich das noch weiß kann ich mir bei dem Thema wieder alles hin basteln 🙂

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

                        @schmello Grundsätzlich kannst Du es zur besseren Übersicht bei UND die Bedinungen halt in Reihe schalten. Dann werden die Ausdrücke nicht so kompliziert und ggf. einfacher zu warten - wenn die Logik einem einen Knoten in den Kopf macht.

                        Im Prinzip ist jede switch Node ein Filter der passiert werden muss:

                        23619d00-0fb8-4b72-9fa8-b2f9f6f291dc-image.png

                        [
                           {
                               "id": "65777d228eab1d89",
                               "type": "inject",
                               "z": "289f539dcc33814e",
                               "name": "",
                               "props": [
                                   {
                                       "p": "payload"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "payload": "true",
                               "payloadType": "bool",
                               "x": 150,
                               "y": 4440,
                               "wires": [
                                   [
                                       "194ead54ebbbdcfc"
                                   ]
                               ]
                           },
                           {
                               "id": "194ead54ebbbdcfc",
                               "type": "ioBroker get",
                               "z": "289f539dcc33814e",
                               "name": "",
                               "topic": "regensensor",
                               "attrname": "regen",
                               "payloadType": "value",
                               "errOnInvalidState": "nothing",
                               "x": 310,
                               "y": 4440,
                               "wires": [
                                   [
                                       "973072271e34da0a"
                                   ]
                               ]
                           },
                           {
                               "id": "d01a79051e6780b9",
                               "type": "ioBroker get",
                               "z": "289f539dcc33814e",
                               "name": "",
                               "topic": "bodenfeuchte",
                               "attrname": "bodenfeuchte",
                               "payloadType": "value",
                               "errOnInvalidState": "nothing",
                               "x": 760,
                               "y": 4440,
                               "wires": [
                                   [
                                       "d51ccba0c66e49b9"
                                   ]
                               ]
                           },
                           {
                               "id": "d51ccba0c66e49b9",
                               "type": "switch",
                               "z": "289f539dcc33814e",
                               "name": "bodenfeuchte = false",
                               "property": "bodenfeuchte",
                               "propertyType": "msg",
                               "rules": [
                                   {
                                       "t": "false"
                                   }
                               ],
                               "checkall": "true",
                               "repair": false,
                               "outputs": 1,
                               "x": 980,
                               "y": 4440,
                               "wires": [
                                   [
                                       "d85b2ca33ccc7a1b"
                                   ]
                               ]
                           },
                           {
                               "id": "d85b2ca33ccc7a1b",
                               "type": "debug",
                               "z": "289f539dcc33814e",
                               "name": "Lampe",
                               "active": true,
                               "tosidebar": true,
                               "console": false,
                               "tostatus": false,
                               "complete": "payload",
                               "targetType": "msg",
                               "statusVal": "",
                               "statusType": "auto",
                               "x": 1170,
                               "y": 4440,
                               "wires": []
                           },
                           {
                               "id": "973072271e34da0a",
                               "type": "switch",
                               "z": "289f539dcc33814e",
                               "name": "regen zwischen 5 und 10",
                               "property": "regen",
                               "propertyType": "msg",
                               "rules": [
                                   {
                                       "t": "btwn",
                                       "v": "5",
                                       "vt": "num",
                                       "v2": "10",
                                       "v2t": "num"
                                   }
                               ],
                               "checkall": "true",
                               "repair": false,
                               "outputs": 1,
                               "x": 530,
                               "y": 4440,
                               "wires": [
                                   [
                                       "d01a79051e6780b9"
                                   ]
                               ]
                           }
                        ]
                        

                        Die Frage ist nur, ob Du den trigger richtig gewählt hast - aber ich will dir da nichts drein reden, wenn du meinst, dass Deine Logik so passt. Du könntest ja auch beide Nodes triggern lassen und nur bei entsprechenden Bedingungen durchlassen. Eine andere Möglichkeit ist die Trigger über den Flow Kontext zu speichern und dann abzufragen.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        573
                        Online

                        32.0k
                        Users

                        80.5k
                        Topics

                        1.3m
                        Posts

                        2
                        10
                        364
                        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