Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. [gelöst] Überwachung eingeschaltete Verbraucher

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

[gelöst] Überwachung eingeschaltete Verbraucher

Scheduled Pinned Locked Moved Node-Red
9 Posts 3 Posters 1.1k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    Tontechniker
    wrote on last edited by Tontechniker
    #1

    Ich hab hier was in Node Red versucht, was nicht wie gewünscht funktioniert.
    Überwachung Leuchten.jpg
    "Überwachung Leuchten Garten" soll true werden, wenn eine von beiden oder beide Leuchten true sind.
    Kann mir da vielleicht jemand auf die Sprünge helfen. In Blockly habe ich es gebaut und es funktioniert. Nun möchte ich es aber in Node Red realisieren.

    H 1 Reply Last reply
    0
    • T Tontechniker

      Ich hab hier was in Node Red versucht, was nicht wie gewünscht funktioniert.
      Überwachung Leuchten.jpg
      "Überwachung Leuchten Garten" soll true werden, wenn eine von beiden oder beide Leuchten true sind.
      Kann mir da vielleicht jemand auf die Sprünge helfen. In Blockly habe ich es gebaut und es funktioniert. Nun möchte ich es aber in Node Red realisieren.

      H Offline
      H Offline
      Hc-Yami
      wrote on last edited by
      #2

      @tontechniker ich nutze dafür das node "boolean logic":
      https://flows.nodered.org/node/node-red-contrib-boolean-logic

      4ccecb8b-dc46-4f98-a850-b04b4bce0d50-grafik.png

      Anstelle des AND wäre es bei dir natürlich OR-Gatter.

      Grüße

      T 1 Reply Last reply
      0
      • H Hc-Yami

        @tontechniker ich nutze dafür das node "boolean logic":
        https://flows.nodered.org/node/node-red-contrib-boolean-logic

        4ccecb8b-dc46-4f98-a850-b04b4bce0d50-grafik.png

        Anstelle des AND wäre es bei dir natürlich OR-Gatter.

        Grüße

        T Offline
        T Offline
        Tontechniker
        wrote on last edited by
        #3

        @hc-yami
        Hallo!
        Wie installiere ich die zusätzliche Logic in Node Red?

        mickymM 1 Reply Last reply
        0
        • T Tontechniker

          @hc-yami
          Hallo!
          Wie installiere ich die zusätzliche Logic in Node Red?

          mickymM Online
          mickymM Online
          mickym
          Most Active
          wrote on last edited by mickym
          #4

          @tontechniker Es geht aber auch ohne zusätzliche Nodes - man kann diese zwar installieren - entweder über den Adapter oder über den Pallettenmanager.
          Wenn Du es über den Adapter einträgst, wird es vom backitup Adapter dann wieder mitinstalliert, dafür siehst Du die Versionen nicht:

          79e4a886-7fc9-454d-8d86-bf38605c471a-image.png

          oder über den Pallettenmanager in NodeRed -
          176a7474-3150-4603-94eb-6556910dd50e-image.png

          das hat den Vorteil, dass Du direkt zusätzliche Nodes suchen kannst, um das System zu erweitern:

          f7ce2ee8-37de-4ee4-8133-7cf9a6bacbc1-image.png
          Ausserdem sieht man dort auch gleich, ob es eine neue Version von einzelnen Nodes gibt. Das ist vergleichbar mit Adaptern im iobroker!


          Ich bin aber bei den logischen Verknüfungen bislang ohne zusätzliche Nodes ausgekommen.

          In dem Fall habe ich mir 2 Function Nodes gebastelt 😉 und in die Bibliothek übernommen.
          8ef231f6-6cd2-46ca-bf27-552857a73f5a-image.png
          ODER:

          var x;
          var obj = msg.payload;
          var bIsBoolean=false;
          
          for (x in obj) {
            bIsBoolean = bIsBoolean || obj[x];
            
          }
          
          msg.payload=bIsBoolean;
          return msg;
          

          40beb74b-4364-4b0b-841a-1d88802160ca-image.png
          UND:

          var x;
          var obj = msg.payload;
          var bIsBoolean=true;
          
          for (x in obj) {
            bIsBoolean = bIsBoolean && obj[x];
            
          }
          
          msg.payload=bIsBoolean;
          return msg;
          

          und nutze diese Methode - zur Überwachung.

          Bei nur 2 kann man auch eine Kombi aus iobroker-IN und iobroker-GET nutzen und diese dann mit einer Change Node auswerten.

          Wie gesagt die Methode, die ich nutze ist insofern einfach, da Du dann einfach ein neues Gerät dranhängst.

          So hier mal zum Ausprobieren:

          12e90c07-4d3b-4cc6-b623-ccec3e135338-image.png

          und hier der Flow:

          [
             {
                 "id": "5dd6c628.eabcc8",
                 "type": "function",
                 "z": "ddd9c66f.f652d8",
                 "name": "OR - only one object need to be TRUE ",
                 "func": "var x;\nvar obj = msg.payload;\nvar bIsBoolean=false;\n\nfor (x in obj) {\n  bIsBoolean = bIsBoolean || obj[x];\n  \n}\n\nmsg.payload=bIsBoolean;\nreturn msg;\n",
                 "outputs": 1,
                 "noerr": 0,
                 "initialize": "",
                 "finalize": "",
                 "libs": [],
                 "x": 950,
                 "y": 280,
                 "wires": [
                     [
                         "f16f42a4.2d9ca"
                     ]
                 ]
             },
             {
                 "id": "77b979f1.0e0fb8",
                 "type": "inject",
                 "z": "ddd9c66f.f652d8",
                 "name": "",
                 "props": [
                     {
                         "p": "payload"
                     },
                     {
                         "p": "topic",
                         "vt": "str"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "Rundumleuchten",
                 "payload": "true",
                 "payloadType": "bool",
                 "x": 520,
                 "y": 240,
                 "wires": [
                     [
                         "50c11015.09b72"
                     ]
                 ]
             },
             {
                 "id": "f608bbdb.2e1878",
                 "type": "inject",
                 "z": "ddd9c66f.f652d8",
                 "name": "Wege",
                 "props": [
                     {
                         "p": "payload"
                     },
                     {
                         "p": "topic",
                         "vt": "str"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "Wege",
                 "payload": "false",
                 "payloadType": "bool",
                 "x": 530,
                 "y": 300,
                 "wires": [
                     [
                         "50c11015.09b72"
                     ]
                 ]
             },
             {
                 "id": "50c11015.09b72",
                 "type": "join",
                 "z": "ddd9c66f.f652d8",
                 "name": "",
                 "mode": "custom",
                 "build": "object",
                 "property": "payload",
                 "propertyType": "msg",
                 "key": "topic",
                 "joiner": "\\n",
                 "joinerType": "str",
                 "accumulate": true,
                 "timeout": "",
                 "count": "1",
                 "reduceRight": false,
                 "reduceExp": "",
                 "reduceInit": "",
                 "reduceInitType": "",
                 "reduceFixup": "",
                 "x": 710,
                 "y": 280,
                 "wires": [
                     [
                         "5dd6c628.eabcc8"
                     ]
                 ]
             },
             {
                 "id": "f16f42a4.2d9ca",
                 "type": "debug",
                 "z": "ddd9c66f.f652d8",
                 "name": "Überwachung Garten",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 1250,
                 "y": 280,
                 "wires": []
             },
             {
                 "id": "b7d97386.7c2f6",
                 "type": "inject",
                 "z": "ddd9c66f.f652d8",
                 "name": "reset",
                 "props": [
                     {
                         "p": "reset",
                         "v": "true",
                         "vt": "bool"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "x": 570,
                 "y": 120,
                 "wires": [
                     [
                         "50c11015.09b72"
                     ]
                 ]
             }
          ]
          

          Falls Du später einmal, dass Ergebnis Deiner Überwachung in einem anderen Flow brauchst, kannst Du so das ganze Objekt in einen JSON String umwandeln und in einem Datenpunkt abspeichern und später wieder holen. Sprich meine Geräte werden alle überwacht und in unterschiedliche Datenpunkte (z. Bsp. Batterieüberwachung, Schaltzustand wie bei Dir gerade, Online Status etc.) gespeichert. Ändert sich was triggert das einen ganz anderen Flow um mir einen Alarm zu signalisieren.

          Hier mal ein Beispiel für die Online Überwachung - sprich Geräte sind im Netz ansprechbar.

          Zusammen mit den Dir bestens bekannten Trigger-Nodes aus der Statusüberwachung kann man sich dann ein hervorragendes Überwachungssystem basteln. 😉

          904dd999-5588-47fb-b46f-61cadee72145-image.png

          So sieht dann der Inhalt des Datenpunktes aus dem Flow aus:

          {"Thermometer Bad":true,"Präsenz Küche":true,"Präsenz Büro":true,"Würfel Wohnzimmer":true,"Präsenz Bad":true,"Präsenz Wohnzimmer Essbereich":true,"Präsenz Wohnzimmer":true,"Präsenz Diele":true,"Thermometer Küche":true,"Präsenz Flur":true,"Würfel Schlafzimmer":true,"Präsenz Schlafzimmer":true}
          

          Um das Ganze wieder in einem ALARM Flow zu verarbeiten - einfach wieder den JSON String in ein Objekt umwandeln und mit den von mir vorgestellten Logik - Nodes verarbeiten. In diesem Fall soll es ja Alarm geben, wenn ein Gerät offline ist, deshalb hier im Gegensatz zu Deiner Anforderung die UND Node:

          67ee0e4d-712e-4546-81fe-6a03540bca42-image.png

          So kann man dann in seiner Visualisierung Gerätegruppen zum Verbindungsstatus überwachen:

          5e4a5f6b-3ecc-4b94-bcab-3c780d5a4bac-image.png

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          mickymM 1 Reply Last reply
          1
          • mickymM mickym

            @tontechniker Es geht aber auch ohne zusätzliche Nodes - man kann diese zwar installieren - entweder über den Adapter oder über den Pallettenmanager.
            Wenn Du es über den Adapter einträgst, wird es vom backitup Adapter dann wieder mitinstalliert, dafür siehst Du die Versionen nicht:

            79e4a886-7fc9-454d-8d86-bf38605c471a-image.png

            oder über den Pallettenmanager in NodeRed -
            176a7474-3150-4603-94eb-6556910dd50e-image.png

            das hat den Vorteil, dass Du direkt zusätzliche Nodes suchen kannst, um das System zu erweitern:

            f7ce2ee8-37de-4ee4-8133-7cf9a6bacbc1-image.png
            Ausserdem sieht man dort auch gleich, ob es eine neue Version von einzelnen Nodes gibt. Das ist vergleichbar mit Adaptern im iobroker!


            Ich bin aber bei den logischen Verknüfungen bislang ohne zusätzliche Nodes ausgekommen.

            In dem Fall habe ich mir 2 Function Nodes gebastelt 😉 und in die Bibliothek übernommen.
            8ef231f6-6cd2-46ca-bf27-552857a73f5a-image.png
            ODER:

            var x;
            var obj = msg.payload;
            var bIsBoolean=false;
            
            for (x in obj) {
              bIsBoolean = bIsBoolean || obj[x];
              
            }
            
            msg.payload=bIsBoolean;
            return msg;
            

            40beb74b-4364-4b0b-841a-1d88802160ca-image.png
            UND:

            var x;
            var obj = msg.payload;
            var bIsBoolean=true;
            
            for (x in obj) {
              bIsBoolean = bIsBoolean && obj[x];
              
            }
            
            msg.payload=bIsBoolean;
            return msg;
            

            und nutze diese Methode - zur Überwachung.

            Bei nur 2 kann man auch eine Kombi aus iobroker-IN und iobroker-GET nutzen und diese dann mit einer Change Node auswerten.

            Wie gesagt die Methode, die ich nutze ist insofern einfach, da Du dann einfach ein neues Gerät dranhängst.

            So hier mal zum Ausprobieren:

            12e90c07-4d3b-4cc6-b623-ccec3e135338-image.png

            und hier der Flow:

            [
               {
                   "id": "5dd6c628.eabcc8",
                   "type": "function",
                   "z": "ddd9c66f.f652d8",
                   "name": "OR - only one object need to be TRUE ",
                   "func": "var x;\nvar obj = msg.payload;\nvar bIsBoolean=false;\n\nfor (x in obj) {\n  bIsBoolean = bIsBoolean || obj[x];\n  \n}\n\nmsg.payload=bIsBoolean;\nreturn msg;\n",
                   "outputs": 1,
                   "noerr": 0,
                   "initialize": "",
                   "finalize": "",
                   "libs": [],
                   "x": 950,
                   "y": 280,
                   "wires": [
                       [
                           "f16f42a4.2d9ca"
                       ]
                   ]
               },
               {
                   "id": "77b979f1.0e0fb8",
                   "type": "inject",
                   "z": "ddd9c66f.f652d8",
                   "name": "",
                   "props": [
                       {
                           "p": "payload"
                       },
                       {
                           "p": "topic",
                           "vt": "str"
                       }
                   ],
                   "repeat": "",
                   "crontab": "",
                   "once": false,
                   "onceDelay": 0.1,
                   "topic": "Rundumleuchten",
                   "payload": "true",
                   "payloadType": "bool",
                   "x": 520,
                   "y": 240,
                   "wires": [
                       [
                           "50c11015.09b72"
                       ]
                   ]
               },
               {
                   "id": "f608bbdb.2e1878",
                   "type": "inject",
                   "z": "ddd9c66f.f652d8",
                   "name": "Wege",
                   "props": [
                       {
                           "p": "payload"
                       },
                       {
                           "p": "topic",
                           "vt": "str"
                       }
                   ],
                   "repeat": "",
                   "crontab": "",
                   "once": false,
                   "onceDelay": 0.1,
                   "topic": "Wege",
                   "payload": "false",
                   "payloadType": "bool",
                   "x": 530,
                   "y": 300,
                   "wires": [
                       [
                           "50c11015.09b72"
                       ]
                   ]
               },
               {
                   "id": "50c11015.09b72",
                   "type": "join",
                   "z": "ddd9c66f.f652d8",
                   "name": "",
                   "mode": "custom",
                   "build": "object",
                   "property": "payload",
                   "propertyType": "msg",
                   "key": "topic",
                   "joiner": "\\n",
                   "joinerType": "str",
                   "accumulate": true,
                   "timeout": "",
                   "count": "1",
                   "reduceRight": false,
                   "reduceExp": "",
                   "reduceInit": "",
                   "reduceInitType": "",
                   "reduceFixup": "",
                   "x": 710,
                   "y": 280,
                   "wires": [
                       [
                           "5dd6c628.eabcc8"
                       ]
                   ]
               },
               {
                   "id": "f16f42a4.2d9ca",
                   "type": "debug",
                   "z": "ddd9c66f.f652d8",
                   "name": "Überwachung Garten",
                   "active": true,
                   "tosidebar": true,
                   "console": false,
                   "tostatus": false,
                   "complete": "payload",
                   "targetType": "msg",
                   "statusVal": "",
                   "statusType": "auto",
                   "x": 1250,
                   "y": 280,
                   "wires": []
               },
               {
                   "id": "b7d97386.7c2f6",
                   "type": "inject",
                   "z": "ddd9c66f.f652d8",
                   "name": "reset",
                   "props": [
                       {
                           "p": "reset",
                           "v": "true",
                           "vt": "bool"
                       }
                   ],
                   "repeat": "",
                   "crontab": "",
                   "once": false,
                   "onceDelay": 0.1,
                   "topic": "",
                   "x": 570,
                   "y": 120,
                   "wires": [
                       [
                           "50c11015.09b72"
                       ]
                   ]
               }
            ]
            

            Falls Du später einmal, dass Ergebnis Deiner Überwachung in einem anderen Flow brauchst, kannst Du so das ganze Objekt in einen JSON String umwandeln und in einem Datenpunkt abspeichern und später wieder holen. Sprich meine Geräte werden alle überwacht und in unterschiedliche Datenpunkte (z. Bsp. Batterieüberwachung, Schaltzustand wie bei Dir gerade, Online Status etc.) gespeichert. Ändert sich was triggert das einen ganz anderen Flow um mir einen Alarm zu signalisieren.

            Hier mal ein Beispiel für die Online Überwachung - sprich Geräte sind im Netz ansprechbar.

            Zusammen mit den Dir bestens bekannten Trigger-Nodes aus der Statusüberwachung kann man sich dann ein hervorragendes Überwachungssystem basteln. 😉

            904dd999-5588-47fb-b46f-61cadee72145-image.png

            So sieht dann der Inhalt des Datenpunktes aus dem Flow aus:

            {"Thermometer Bad":true,"Präsenz Küche":true,"Präsenz Büro":true,"Würfel Wohnzimmer":true,"Präsenz Bad":true,"Präsenz Wohnzimmer Essbereich":true,"Präsenz Wohnzimmer":true,"Präsenz Diele":true,"Thermometer Küche":true,"Präsenz Flur":true,"Würfel Schlafzimmer":true,"Präsenz Schlafzimmer":true}
            

            Um das Ganze wieder in einem ALARM Flow zu verarbeiten - einfach wieder den JSON String in ein Objekt umwandeln und mit den von mir vorgestellten Logik - Nodes verarbeiten. In diesem Fall soll es ja Alarm geben, wenn ein Gerät offline ist, deshalb hier im Gegensatz zu Deiner Anforderung die UND Node:

            67ee0e4d-712e-4546-81fe-6a03540bca42-image.png

            So kann man dann in seiner Visualisierung Gerätegruppen zum Verbindungsstatus überwachen:

            5e4a5f6b-3ecc-4b94-bcab-3c780d5a4bac-image.png

            mickymM Online
            mickymM Online
            mickym
            Most Active
            wrote on last edited by mickym
            #5

            @Tontechniker

            Heute würde ich übrigens den Flow zur Überwachung noch etwas anders machen. Da nun die Wildcards funktionieren, ergeben sich neue Möglichkeiten 😉 .

            Aber das hat bei mir anfangs nicht funktioniert, deswegen das sind Flows - als ich noch mehr in den Kinderschuhen steckte.

            Heute kann man den Flow ganz schnell vereinfachen:

            dd5c2c39-3251-408d-825f-bfa1b246ffed-image.png

            [
               {
                   "id": "63b3416e.7b51d",
                   "type": "debug",
                   "z": "d31cee8e.b9b1a",
                   "name": "Objekt",
                   "active": true,
                   "tosidebar": true,
                   "console": false,
                   "tostatus": false,
                   "complete": "payload",
                   "targetType": "msg",
                   "statusVal": "",
                   "statusType": "auto",
                   "x": 990,
                   "y": 420,
                   "wires": []
               },
               {
                   "id": "3f1f91ad.64efde",
                   "type": "join",
                   "z": "d31cee8e.b9b1a",
                   "name": "",
                   "mode": "custom",
                   "build": "object",
                   "property": "payload",
                   "propertyType": "msg",
                   "key": "topic",
                   "joiner": "\\n",
                   "joinerType": "str",
                   "accumulate": true,
                   "timeout": "",
                   "count": "1",
                   "reduceRight": false,
                   "reduceExp": "",
                   "reduceInit": "",
                   "reduceInitType": "",
                   "reduceFixup": "",
                   "x": 810,
                   "y": 420,
                   "wires": [
                       [
                           "63b3416e.7b51d",
                           "6564d620.5d7168"
                       ]
                   ]
               },
               {
                   "id": "6564d620.5d7168",
                   "type": "json",
                   "z": "d31cee8e.b9b1a",
                   "name": "",
                   "property": "payload",
                   "action": "",
                   "pretty": false,
                   "x": 1000,
                   "y": 480,
                   "wires": [
                       [
                           "f89bf821.7fafb8"
                       ]
                   ]
               },
               {
                   "id": "f89bf821.7fafb8",
                   "type": "debug",
                   "z": "d31cee8e.b9b1a",
                   "name": "JSON String",
                   "active": true,
                   "tosidebar": true,
                   "console": false,
                   "tostatus": false,
                   "complete": "payload",
                   "targetType": "msg",
                   "statusVal": "",
                   "statusType": "auto",
                   "x": 1170,
                   "y": 480,
                   "wires": []
               },
               {
                   "id": "b920bc98.99539",
                   "type": "ioBroker in",
                   "z": "d31cee8e.b9b1a",
                   "name": "",
                   "topic": "zigbee.0.*.available",
                   "payloadType": "value",
                   "onlyack": "",
                   "func": "all",
                   "gap": "",
                   "fireOnStart": "false",
                   "x": 250,
                   "y": 420,
                   "wires": [
                       [
                           "a7a458ba.812fb8"
                       ]
                   ]
               },
               {
                   "id": "a7a458ba.812fb8",
                   "type": "ioBroker list",
                   "z": "d31cee8e.b9b1a",
                   "name": "",
                   "topic": "",
                   "objType": "state",
                   "regex": "",
                   "asArray": "false",
                   "onlyIDs": "false",
                   "withValues": "true",
                   "x": 450,
                   "y": 420,
                   "wires": [
                       [
                           "55387a39.997264"
                       ]
                   ]
               },
               {
                   "id": "55387a39.997264",
                   "type": "change",
                   "z": "d31cee8e.b9b1a",
                   "name": "",
                   "rules": [
                       {
                           "t": "set",
                           "p": "topic",
                           "pt": "msg",
                           "to": "payload.common.name",
                           "tot": "msg"
                       },
                       {
                           "t": "set",
                           "p": "payload",
                           "pt": "msg",
                           "to": "payload.val",
                           "tot": "msg"
                       }
                   ],
                   "action": "",
                   "property": "",
                   "from": "",
                   "to": "",
                   "reg": false,
                   "x": 630,
                   "y": 420,
                   "wires": [
                       [
                           "3f1f91ad.64efde"
                       ]
                   ]
               },
               {
                   "id": "6ddcc4e6.9e8dfc",
                   "type": "inject",
                   "z": "d31cee8e.b9b1a",
                   "name": "reset",
                   "props": [
                       {
                           "p": "reset",
                           "v": "true",
                           "vt": "bool"
                       }
                   ],
                   "repeat": "",
                   "crontab": "",
                   "once": false,
                   "onceDelay": 0.1,
                   "topic": "",
                   "x": 660,
                   "y": 360,
                   "wires": [
                       [
                           "3f1f91ad.64efde"
                       ]
                   ]
               }
            ]
            

            In diesem Fall muss man also bei neuen Geräten - den Flow nicht mehr ändern, da diese nun automatisch über die Wildcards überwachst werden.
            Das muss ich aber selbst alles noch implementieren. 😉

            Jedenfalls wenn sich ein Zustand ändert dann aktualisiert sich das Objekt automatisch sobald sich der Datenpunkt ändert.

            90a13a82-86ba-4632-aa51-84ff1da3d8ac-image.png

            Noch ein kleiner Nebeneffekt - die iobroker get und iobroker in Nodes - geben nicht die vollständigen Objektinformationen.

            Die iobroker - list Node aber schon!!!

            Damit ist es möglich auch auf die Aufzählungsfunktionen, wie Räume und Funktionen des Objektes zuzugreifen und ggf. zu filtern!!!!

            screen.png

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            T 2 Replies Last reply
            1
            • mickymM mickym

              @Tontechniker

              Heute würde ich übrigens den Flow zur Überwachung noch etwas anders machen. Da nun die Wildcards funktionieren, ergeben sich neue Möglichkeiten 😉 .

              Aber das hat bei mir anfangs nicht funktioniert, deswegen das sind Flows - als ich noch mehr in den Kinderschuhen steckte.

              Heute kann man den Flow ganz schnell vereinfachen:

              dd5c2c39-3251-408d-825f-bfa1b246ffed-image.png

              [
                 {
                     "id": "63b3416e.7b51d",
                     "type": "debug",
                     "z": "d31cee8e.b9b1a",
                     "name": "Objekt",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 990,
                     "y": 420,
                     "wires": []
                 },
                 {
                     "id": "3f1f91ad.64efde",
                     "type": "join",
                     "z": "d31cee8e.b9b1a",
                     "name": "",
                     "mode": "custom",
                     "build": "object",
                     "property": "payload",
                     "propertyType": "msg",
                     "key": "topic",
                     "joiner": "\\n",
                     "joinerType": "str",
                     "accumulate": true,
                     "timeout": "",
                     "count": "1",
                     "reduceRight": false,
                     "reduceExp": "",
                     "reduceInit": "",
                     "reduceInitType": "",
                     "reduceFixup": "",
                     "x": 810,
                     "y": 420,
                     "wires": [
                         [
                             "63b3416e.7b51d",
                             "6564d620.5d7168"
                         ]
                     ]
                 },
                 {
                     "id": "6564d620.5d7168",
                     "type": "json",
                     "z": "d31cee8e.b9b1a",
                     "name": "",
                     "property": "payload",
                     "action": "",
                     "pretty": false,
                     "x": 1000,
                     "y": 480,
                     "wires": [
                         [
                             "f89bf821.7fafb8"
                         ]
                     ]
                 },
                 {
                     "id": "f89bf821.7fafb8",
                     "type": "debug",
                     "z": "d31cee8e.b9b1a",
                     "name": "JSON String",
                     "active": true,
                     "tosidebar": true,
                     "console": false,
                     "tostatus": false,
                     "complete": "payload",
                     "targetType": "msg",
                     "statusVal": "",
                     "statusType": "auto",
                     "x": 1170,
                     "y": 480,
                     "wires": []
                 },
                 {
                     "id": "b920bc98.99539",
                     "type": "ioBroker in",
                     "z": "d31cee8e.b9b1a",
                     "name": "",
                     "topic": "zigbee.0.*.available",
                     "payloadType": "value",
                     "onlyack": "",
                     "func": "all",
                     "gap": "",
                     "fireOnStart": "false",
                     "x": 250,
                     "y": 420,
                     "wires": [
                         [
                             "a7a458ba.812fb8"
                         ]
                     ]
                 },
                 {
                     "id": "a7a458ba.812fb8",
                     "type": "ioBroker list",
                     "z": "d31cee8e.b9b1a",
                     "name": "",
                     "topic": "",
                     "objType": "state",
                     "regex": "",
                     "asArray": "false",
                     "onlyIDs": "false",
                     "withValues": "true",
                     "x": 450,
                     "y": 420,
                     "wires": [
                         [
                             "55387a39.997264"
                         ]
                     ]
                 },
                 {
                     "id": "55387a39.997264",
                     "type": "change",
                     "z": "d31cee8e.b9b1a",
                     "name": "",
                     "rules": [
                         {
                             "t": "set",
                             "p": "topic",
                             "pt": "msg",
                             "to": "payload.common.name",
                             "tot": "msg"
                         },
                         {
                             "t": "set",
                             "p": "payload",
                             "pt": "msg",
                             "to": "payload.val",
                             "tot": "msg"
                         }
                     ],
                     "action": "",
                     "property": "",
                     "from": "",
                     "to": "",
                     "reg": false,
                     "x": 630,
                     "y": 420,
                     "wires": [
                         [
                             "3f1f91ad.64efde"
                         ]
                     ]
                 },
                 {
                     "id": "6ddcc4e6.9e8dfc",
                     "type": "inject",
                     "z": "d31cee8e.b9b1a",
                     "name": "reset",
                     "props": [
                         {
                             "p": "reset",
                             "v": "true",
                             "vt": "bool"
                         }
                     ],
                     "repeat": "",
                     "crontab": "",
                     "once": false,
                     "onceDelay": 0.1,
                     "topic": "",
                     "x": 660,
                     "y": 360,
                     "wires": [
                         [
                             "3f1f91ad.64efde"
                         ]
                     ]
                 }
              ]
              

              In diesem Fall muss man also bei neuen Geräten - den Flow nicht mehr ändern, da diese nun automatisch über die Wildcards überwachst werden.
              Das muss ich aber selbst alles noch implementieren. 😉

              Jedenfalls wenn sich ein Zustand ändert dann aktualisiert sich das Objekt automatisch sobald sich der Datenpunkt ändert.

              90a13a82-86ba-4632-aa51-84ff1da3d8ac-image.png

              Noch ein kleiner Nebeneffekt - die iobroker get und iobroker in Nodes - geben nicht die vollständigen Objektinformationen.

              Die iobroker - list Node aber schon!!!

              Damit ist es möglich auch auf die Aufzählungsfunktionen, wie Räume und Funktionen des Objektes zuzugreifen und ggf. zu filtern!!!!

              screen.png

              T Offline
              T Offline
              Tontechniker
              wrote on last edited by
              #6

              @mickym
              Vielen Dank für Deine ausführlichen Antworten! Habe mir erst einmal die Logikmodule in Node Red istalliert und mache damit die ersten Versuche.
              Gruß
              Hans

              1 Reply Last reply
              0
              • mickymM mickym

                @Tontechniker

                Heute würde ich übrigens den Flow zur Überwachung noch etwas anders machen. Da nun die Wildcards funktionieren, ergeben sich neue Möglichkeiten 😉 .

                Aber das hat bei mir anfangs nicht funktioniert, deswegen das sind Flows - als ich noch mehr in den Kinderschuhen steckte.

                Heute kann man den Flow ganz schnell vereinfachen:

                dd5c2c39-3251-408d-825f-bfa1b246ffed-image.png

                [
                   {
                       "id": "63b3416e.7b51d",
                       "type": "debug",
                       "z": "d31cee8e.b9b1a",
                       "name": "Objekt",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 990,
                       "y": 420,
                       "wires": []
                   },
                   {
                       "id": "3f1f91ad.64efde",
                       "type": "join",
                       "z": "d31cee8e.b9b1a",
                       "name": "",
                       "mode": "custom",
                       "build": "object",
                       "property": "payload",
                       "propertyType": "msg",
                       "key": "topic",
                       "joiner": "\\n",
                       "joinerType": "str",
                       "accumulate": true,
                       "timeout": "",
                       "count": "1",
                       "reduceRight": false,
                       "reduceExp": "",
                       "reduceInit": "",
                       "reduceInitType": "",
                       "reduceFixup": "",
                       "x": 810,
                       "y": 420,
                       "wires": [
                           [
                               "63b3416e.7b51d",
                               "6564d620.5d7168"
                           ]
                       ]
                   },
                   {
                       "id": "6564d620.5d7168",
                       "type": "json",
                       "z": "d31cee8e.b9b1a",
                       "name": "",
                       "property": "payload",
                       "action": "",
                       "pretty": false,
                       "x": 1000,
                       "y": 480,
                       "wires": [
                           [
                               "f89bf821.7fafb8"
                           ]
                       ]
                   },
                   {
                       "id": "f89bf821.7fafb8",
                       "type": "debug",
                       "z": "d31cee8e.b9b1a",
                       "name": "JSON String",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 1170,
                       "y": 480,
                       "wires": []
                   },
                   {
                       "id": "b920bc98.99539",
                       "type": "ioBroker in",
                       "z": "d31cee8e.b9b1a",
                       "name": "",
                       "topic": "zigbee.0.*.available",
                       "payloadType": "value",
                       "onlyack": "",
                       "func": "all",
                       "gap": "",
                       "fireOnStart": "false",
                       "x": 250,
                       "y": 420,
                       "wires": [
                           [
                               "a7a458ba.812fb8"
                           ]
                       ]
                   },
                   {
                       "id": "a7a458ba.812fb8",
                       "type": "ioBroker list",
                       "z": "d31cee8e.b9b1a",
                       "name": "",
                       "topic": "",
                       "objType": "state",
                       "regex": "",
                       "asArray": "false",
                       "onlyIDs": "false",
                       "withValues": "true",
                       "x": 450,
                       "y": 420,
                       "wires": [
                           [
                               "55387a39.997264"
                           ]
                       ]
                   },
                   {
                       "id": "55387a39.997264",
                       "type": "change",
                       "z": "d31cee8e.b9b1a",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "topic",
                               "pt": "msg",
                               "to": "payload.common.name",
                               "tot": "msg"
                           },
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "payload.val",
                               "tot": "msg"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 630,
                       "y": 420,
                       "wires": [
                           [
                               "3f1f91ad.64efde"
                           ]
                       ]
                   },
                   {
                       "id": "6ddcc4e6.9e8dfc",
                       "type": "inject",
                       "z": "d31cee8e.b9b1a",
                       "name": "reset",
                       "props": [
                           {
                               "p": "reset",
                               "v": "true",
                               "vt": "bool"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "x": 660,
                       "y": 360,
                       "wires": [
                           [
                               "3f1f91ad.64efde"
                           ]
                       ]
                   }
                ]
                

                In diesem Fall muss man also bei neuen Geräten - den Flow nicht mehr ändern, da diese nun automatisch über die Wildcards überwachst werden.
                Das muss ich aber selbst alles noch implementieren. 😉

                Jedenfalls wenn sich ein Zustand ändert dann aktualisiert sich das Objekt automatisch sobald sich der Datenpunkt ändert.

                90a13a82-86ba-4632-aa51-84ff1da3d8ac-image.png

                Noch ein kleiner Nebeneffekt - die iobroker get und iobroker in Nodes - geben nicht die vollständigen Objektinformationen.

                Die iobroker - list Node aber schon!!!

                Damit ist es möglich auch auf die Aufzählungsfunktionen, wie Räume und Funktionen des Objektes zuzugreifen und ggf. zu filtern!!!!

                screen.png

                T Offline
                T Offline
                Tontechniker
                wrote on last edited by Tontechniker
                #7

                @mickym
                Ein Problem habe ich noch bei dem Logik-Modul "ODER". Nach einem Neustart des Systems müssen alle Eingänge (bei mir bis zu 14 "ORs") einmal geschaltet werden (true, false). Wenn das nicht geschieht, funktioniert das "OR" nicht richtig. Dafür gibt es vermutlich keine Lösung!?
                Gruß
                Hans

                mickymM 1 Reply Last reply
                0
                • T Tontechniker

                  @mickym
                  Ein Problem habe ich noch bei dem Logik-Modul "ODER". Nach einem Neustart des Systems müssen alle Eingänge (bei mir bis zu 14 "ORs") einmal geschaltet werden (true, false). Wenn das nicht geschieht, funktioniert das "OR" nicht richtig. Dafür gibt es vermutlich keine Lösung!?
                  Gruß
                  Hans

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  wrote on last edited by mickym
                  #8

                  @tontechniker Wie gesagt ich nutze die Logik-Nodes nicht und kenne sie auch nicht in der Anwendung.

                  Meine ODER Node funktioniert ja anhand von der Objekteigenschaften eines Objektes. Sprich es werden nur die Eigenschaften miteinander verknüpft.

                  Wenn Du es über die JOIN Node machst kannst über die Anzahl der benötigten Nachrichten steuern, dass erst 14 Nachrichten (verschiedener Topics) eingegangen sein müssen, bevor eine Nachricht geschickt wird.

                  Ansonsten kannst Du ja mittels der iobroker IN Nodes wenn Du KEINE Wildcards verwendest, am Anfang den IST Zustand senden.

                  7200e008-3e87-4c13-af94-ff7aedae3b31-image.png

                  Du kannst auch ein Objekt als JSON Speichern, dass Du zur Initialisierung wieder ausliest

                  .... UND .. UND ... UND.

                  Da musst selbst kreativ werden - und wie gesagt diese LOGIK-Nodes, die Du ja verwendest benutze ich nicht und kenne sie auch nicht.

                  @Hc-Yami hat sie Dir doch diese Logic-Nodes empfohlen, vielleicht kann er ja weiterhelfen.

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  T 1 Reply Last reply
                  1
                  • mickymM mickym

                    @tontechniker Wie gesagt ich nutze die Logik-Nodes nicht und kenne sie auch nicht in der Anwendung.

                    Meine ODER Node funktioniert ja anhand von der Objekteigenschaften eines Objektes. Sprich es werden nur die Eigenschaften miteinander verknüpft.

                    Wenn Du es über die JOIN Node machst kannst über die Anzahl der benötigten Nachrichten steuern, dass erst 14 Nachrichten (verschiedener Topics) eingegangen sein müssen, bevor eine Nachricht geschickt wird.

                    Ansonsten kannst Du ja mittels der iobroker IN Nodes wenn Du KEINE Wildcards verwendest, am Anfang den IST Zustand senden.

                    7200e008-3e87-4c13-af94-ff7aedae3b31-image.png

                    Du kannst auch ein Objekt als JSON Speichern, dass Du zur Initialisierung wieder ausliest

                    .... UND .. UND ... UND.

                    Da musst selbst kreativ werden - und wie gesagt diese LOGIK-Nodes, die Du ja verwendest benutze ich nicht und kenne sie auch nicht.

                    @Hc-Yami hat sie Dir doch diese Logic-Nodes empfohlen, vielleicht kann er ja weiterhelfen.

                    T Offline
                    T Offline
                    Tontechniker
                    wrote on last edited by
                    #9

                    @mickym
                    Danke! Das war der entscheidende Hinweis für mich als Anfänger!
                    Im Node "ioBroker in", "Fire by start: send message at start (only without wildcards in ID)" auswählen.
                    Gruß
                    Hans

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    232

                    Online

                    32.4k

                    Users

                    81.4k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe