Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Lichtsteuerung m. XIAOMI Bewegungsmeldern & Zigbee Adapter

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    912

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Lichtsteuerung m. XIAOMI Bewegungsmeldern & Zigbee Adapter

Geplant Angeheftet Gesperrt Verschoben Node-Red
node-redtemplate
7 Beiträge 2 Kommentatoren 453 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • mickymM Online
    mickymM Online
    mickym
    Most Active
    schrieb am zuletzt editiert von
    #1

    Nachdem hier manchmal Lösungen vorgestellt werden, die meist mit Blockly oder JavaScript erstellt wurden, hier mal meine "Lichtautomatik" die ich mit NodeRed implementiert habe. Das ganze ist in einem Subflow implementiert, sodass man eine InNode mit dem Zigbee Datenpunkt (illuminance oder occupancy) als Eingang für den Subflow verwendet. Am Ausgang 1 kommt "on" oder "off" zum Ein- Ausschalten, am 2. Ausgang kommt "true" oder "false" an - der die Entscheidung ausgibt.
    Man kann auch theoretisch andere Trigger verwenden, da die Auswertung der Licht-und Bewegungssensoren nochmals unabhängig vom Trigger im Subflow erfolgt. Somit ist es egal, ob die Lichtautomatik durch einen veränderten Lichtwert oder durch eine Bewegung ausgelöst wird.

    Die Lichtautomatik kann durch eine globale Variable komplett ausgeschaltet werden. Damit die Lichtautomatik funktioniert muss eine globale Variable "gLichtautomatik" = "auto" sein.

    Die Funktion hat folgende Steuerungen:

    Man gibt 2 Schwellenwerte On und Off damit kann man die Standards 10 und 20 Lux überschreiben. Das Ganze ist in der Node Beschreibung alles beschrieben.

    Unter dem On Level wird bei erkannter Bewegung ausgeschaltet, bei Erreichen des Off Levels unabhängig von der Bewegung immer ausgeschaltet, dazwischen wird nicht eingeschaltet sondern nur ausgeschaltet, wenn keine Bewegung erkannt wurde.

    Es kann auch ein anderer "illuminance" - Datenpunkt zur Steuerung verwendet werden. Damit ist es möglich ein Zimmer für die Lichtsteuerung zu nutzen, in dem der Bewegungsmelder günstig platziert ist und damit spärlich beleuchtet Räume vernünftig gesteuert werden können.

    Auch die On und Off Levels können überschrieben werden.

    Dann kann man noch einen Datenpunkt definieren - bei dem man das Ausschalten durch eine NIcht-Erkannte Bewegung blockieren kann.
    Beispiel: Man liegt auf der Couch beim Fernsehen. Man bewegt sich über das definierte Zeitintervall nicht, das Licht soll aber nicht nach 5 Minuten ausschalten, weil keine Bewegung erkannt wird. Schaut man allerdings nicht fern, soll das Licht 5 Minuten nach einer nicht mehr erkannten Bewegung ausgeschaltet werden.

    Alles in der Node BEschreibung beschrieben . Ein inaktiver Node dient als Beispiel.

    [
       {
           "id": "2cc07195.fb6b8e",
           "type": "subflow",
           "name": "Automatik",
           "info": "# Standardfunktion\n\nSchaltet das Licht getriggert durch Präsenzmelder, entweder durch Helligkeit oder Präsenz. Die Nachrichten dienen jedoch nur als Trigger und die Werte werden nicht verwendet. \nMan kann auch nur den Präsenztrigger oder nur den Helligkeitstrigger verwenden.\n\nDie Werte werden intern ausgelesen, in dem an das Topic als Pfad \"illuminance\" oder \"occupancy\" angehängt werden.\n\n2 Licht Level sind entscheidend für 3 Optionen:\n\n * On-Level: Unter diesem Helligkeitslevel steuert die Präsenz true=on und false=off das Licht.\n * Off-Level: Über diesem Level wird das Licht immer abgeschaltet - unabhängig ob an- oder abwesend.\n * Unter dem Off-Level wird bei abwesend ausgeschaltet, aber nicht mehr eingeschaltet. Ist jedoch jemand anwesend, bleibt das Licht in diesem Zwischenlevel eingeschaltet.\n \n## Optionen:\nDas Standardverhalten kann, wie folgt geändert werden:\n - `msg.blockOff` - liest einen Datenpunkt aus, der true/false liefern muss. Liefert der Datenpunkt true, wird bei Anwesenheit das Licht unter dem On-Level eingeschaltet, aber bei Abwesenheit nicht ausgeschaltet.\n - `msg.level` - Objekt mit On und Off - als nummerische Werte, um die Standardlevels von 10 (level.On) und 20 (level.Off) zu überschreiben.\n - `msg.differentIlluminanceSensor` kann ein Datenpunkt angegeben werden, der einen anderen Sensor zur Helligkeitsmessung verwendet.",
           "category": "Licht",
           "in": [
               {
                   "x": 60,
                   "y": 220,
                   "wires": [
                       {
                           "id": "7d8625c0.270b0c"
                       }
                   ]
               }
           ],
           "out": [
               {
                   "x": 3880,
                   "y": 220,
                   "wires": [
                       {
                           "id": "a1913266.b7a64",
                           "port": 0
                       },
                       {
                           "id": "a3759e52.8d6d5",
                           "port": 0
                       }
                   ]
               },
               {
                   "x": 3640,
                   "y": 480,
                   "wires": [
                       {
                           "id": "596a348d.60d00c",
                           "port": 0
                       },
                       {
                           "id": "83cc4a6f.b425b8",
                           "port": "1"
                       },
                       {
                           "id": "7619683d.ee6d08",
                           "port": 0
                       }
                   ]
               }
           ],
           "env": [],
           "color": "#FDF0C2",
           "outputLabels": [
               "on/off = Licht an oder aus",
               "false/true = Präsenz für Entscheidung"
           ],
           "icon": "node-red/light.svg",
           "status": {
               "x": 1720,
               "y": 300,
               "wires": [
                   {
                       "id": "af0d09af.81ce18",
                       "port": 0
                   }
               ]
           }
       },
       {
           "id": "e736cf60.2f42a",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "to Number",
           "rules": [
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "$number(msg.payload)\t",
                   "tot": "jsonata"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 2410,
           "y": 260,
           "wires": [
               [
                   "a2314ead.ae2f2",
                   "450b0c8a.d98aa4"
               ]
           ]
       },
       {
           "id": "a1913266.b7a64",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "Licht = off",
           "rules": [
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "off",
                   "tot": "str"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 3680,
           "y": 240,
           "wires": [
               []
           ]
       },
       {
           "id": "a3759e52.8d6d5",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "translate",
           "rules": [
               {
                   "t": "change",
                   "p": "payload",
                   "pt": "msg",
                   "from": "true",
                   "fromt": "bool",
                   "to": "on",
                   "tot": "str"
               },
               {
                   "t": "change",
                   "p": "payload",
                   "pt": "msg",
                   "from": "false",
                   "fromt": "bool",
                   "to": "off",
                   "tot": "str"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 3680,
           "y": 180,
           "wires": [
               []
           ]
       },
       {
           "id": "596a348d.60d00c",
           "type": "switch",
           "z": "2cc07195.fb6b8e",
           "name": "= false",
           "property": "payload",
           "propertyType": "msg",
           "rules": [
               {
                   "t": "false"
               }
           ],
           "checkall": "true",
           "repair": false,
           "outputs": 1,
           "x": 3390,
           "y": 480,
           "wires": [
               [
                   "a1913266.b7a64"
               ]
           ]
       },
       {
           "id": "d3d0cae1.c8b4b8",
           "type": "switch",
           "z": "2cc07195.fb6b8e",
           "name": "gLicht ?",
           "property": "gLicht",
           "propertyType": "global",
           "rules": [
               {
                   "t": "eq",
                   "v": "off",
                   "vt": "str"
               },
               {
                   "t": "eq",
                   "v": "on",
                   "vt": "str"
               }
           ],
           "checkall": "true",
           "repair": false,
           "outputs": 2,
           "x": 3100,
           "y": 260,
           "wires": [
               [
                   "a1913266.b7a64"
               ],
               [
                   "28577d78.21e272"
               ]
           ]
       },
       {
           "id": "a7920e08.78d6a",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "Define topics",
           "rules": [
               {
                   "t": "set",
                   "p": "fTopicIlluminace",
                   "pt": "flow",
                   "to": "payload & \"/illuminance\"",
                   "tot": "jsonata"
               },
               {
                   "t": "set",
                   "p": "fTopicOccupancy",
                   "pt": "flow",
                   "to": "payload & \"/occupancy\"",
                   "tot": "jsonata"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 850,
           "y": 220,
           "wires": [
               [
                   "2eb4595b.2652a6",
                   "20c6e147.ba639e"
               ]
           ]
       },
       {
           "id": "be9e3607.2d4388",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "rules": [
               {
                   "t": "set",
                   "p": "topic",
                   "pt": "msg",
                   "to": "fTopicIlluminace",
                   "tot": "flow"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 1340,
           "y": 60,
           "wires": [
               [
                   "23bb673c.06c4c8"
               ]
           ]
       },
       {
           "id": "2eb4595b.2652a6",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "rules": [
               {
                   "t": "set",
                   "p": "topic",
                   "pt": "msg",
                   "to": "fTopicOccupancy",
                   "tot": "flow"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 1060,
           "y": 260,
           "wires": [
               [
                   "1b8306b4.840a99",
                   "1043128.8f5ffee"
               ]
           ]
       },
       {
           "id": "23bb673c.06c4c8",
           "type": "ioBroker get",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "topic": "",
           "attrname": "payload",
           "payloadType": "value",
           "x": 1530,
           "y": 60,
           "wires": [
               [
                   "a4be4f25.58cba"
               ]
           ]
       },
       {
           "id": "1b8306b4.840a99",
           "type": "ioBroker get",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "topic": "",
           "attrname": "payload",
           "payloadType": "value",
           "x": 1370,
           "y": 260,
           "wires": [
               [
                   "79e4a500.79734c",
                   "af0d09af.81ce18"
               ]
           ]
       },
       {
           "id": "68c985e.c9cc07c",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "Identify",
           "rules": [
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "topic",
                   "tot": "msg"
               },
               {
                   "t": "change",
                   "p": "payload",
                   "pt": "msg",
                   "from": ".",
                   "fromt": "str",
                   "to": "/",
                   "tot": "str"
               },
               {
                   "t": "change",
                   "p": "payload",
                   "pt": "msg",
                   "from": "(\\S*)\\/.*$",
                   "fromt": "re",
                   "to": "$1",
                   "tot": "str"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 680,
           "y": 220,
           "wires": [
               [
                   "a7920e08.78d6a"
               ]
           ]
       },
       {
           "id": "a4be4f25.58cba",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "rules": [
               {
                   "t": "set",
                   "p": "fHelligkeit",
                   "pt": "flow",
                   "to": "payload",
                   "tot": "msg"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 1740,
           "y": 60,
           "wires": [
               [
                   "612f0788.c5e618"
               ]
           ]
       },
       {
           "id": "79e4a500.79734c",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "rules": [
               {
                   "t": "set",
                   "p": "fPräsenz",
                   "pt": "flow",
                   "to": "payload",
                   "tot": "msg"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 1570,
           "y": 260,
           "wires": [
               [
                   "612f0788.c5e618"
               ]
           ]
       },
       {
           "id": "df7213b8.015d1",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "Helligkeit",
           "rules": [
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "fHelligkeit",
                   "tot": "flow"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 2240,
           "y": 260,
           "wires": [
               [
                   "e736cf60.2f42a"
               ]
           ]
       },
       {
           "id": "5e826235.20a2ac",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "Präsenz",
           "rules": [
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "fPräsenz",
                   "tot": "flow"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 3060,
           "y": 140,
           "wires": [
               [
                   "83cc4a6f.b425b8",
                   "ba687478.aa9248"
               ]
           ]
       },
       {
           "id": "28577d78.21e272",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "Präsenz",
           "rules": [
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "fPräsenz",
                   "tot": "flow"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 3060,
           "y": 480,
           "wires": [
               [
                   "596a348d.60d00c"
               ]
           ]
       },
       {
           "id": "7d8625c0.270b0c",
           "type": "switch",
           "z": "2cc07195.fb6b8e",
           "name": "Ist gLichtautomatik = auto ?",
           "property": "gLichtautomatik",
           "propertyType": "global",
           "rules": [
               {
                   "t": "eq",
                   "v": "auto",
                   "vt": "str"
               }
           ],
           "checkall": "true",
           "repair": false,
           "outputs": 1,
           "x": 240,
           "y": 220,
           "wires": [
               [
                   "2c9575b4.b3a1da",
                   "4e3912d3.5f411c"
               ]
           ]
       },
       {
           "id": "20c6e147.ba639e",
           "type": "switch",
           "z": "2cc07195.fb6b8e",
           "name": "differentIlluminanceSensor ?",
           "property": "differentIlluminanceSensor",
           "propertyType": "msg",
           "rules": [
               {
                   "t": "null"
               },
               {
                   "t": "else"
               }
           ],
           "checkall": "true",
           "repair": false,
           "outputs": 2,
           "x": 1080,
           "y": 80,
           "wires": [
               [
                   "26cda5d2.1729ca",
                   "be9e3607.2d4388"
               ],
               [
                   "51ca8ffe.70cd2",
                   "6964139c.8c847c"
               ]
           ]
       },
       {
           "id": "26cda5d2.1729ca",
           "type": "debug",
           "z": "2cc07195.fb6b8e",
           "d": true,
           "name": "undefined",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "payload",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 1320,
           "y": 20,
           "wires": []
       },
       {
           "id": "51ca8ffe.70cd2",
           "type": "debug",
           "z": "2cc07195.fb6b8e",
           "d": true,
           "name": "differentIlluminanceSensor",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "payload",
           "targetType": "msg",
           "x": 1380,
           "y": 160,
           "wires": []
       },
       {
           "id": "6964139c.8c847c",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "rules": [
               {
                   "t": "set",
                   "p": "topic",
                   "pt": "msg",
                   "to": "differentIlluminanceSensor",
                   "tot": "msg"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 1340,
           "y": 120,
           "wires": [
               [
                   "44f0728b.a891bc"
               ]
           ]
       },
       {
           "id": "44f0728b.a891bc",
           "type": "ioBroker get",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "topic": "",
           "attrname": "payload",
           "payloadType": "value",
           "x": 1530,
           "y": 120,
           "wires": [
               [
                   "ac87e4f.ad4a818"
               ]
           ]
       },
       {
           "id": "ac87e4f.ad4a818",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "rules": [
               {
                   "t": "set",
                   "p": "fHelligkeit",
                   "pt": "flow",
                   "to": "payload",
                   "tot": "msg"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 1740,
           "y": 120,
           "wires": [
               [
                   "612f0788.c5e618"
               ]
           ]
       },
       {
           "id": "725b8b7c.c46724",
           "type": "switch",
           "z": "2cc07195.fb6b8e",
           "name": "blockOff ?",
           "property": "blockOff",
           "propertyType": "msg",
           "rules": [
               {
                   "t": "null"
               },
               {
                   "t": "else"
               }
           ],
           "checkall": "true",
           "repair": false,
           "outputs": 2,
           "x": 720,
           "y": 380,
           "wires": [
               [
                   "9b1825b.7f06ad8"
               ],
               [
                   "d84afaef.08ca08"
               ]
           ]
       },
       {
           "id": "d84afaef.08ca08",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "rules": [
               {
                   "t": "set",
                   "p": "topic",
                   "pt": "msg",
                   "to": "blockOff",
                   "tot": "msg"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 900,
           "y": 400,
           "wires": [
               [
                   "f495ba59.100cd8"
               ]
           ]
       },
       {
           "id": "f495ba59.100cd8",
           "type": "ioBroker get",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "topic": "",
           "attrname": "payload",
           "payloadType": "value",
           "x": 1090,
           "y": 400,
           "wires": [
               [
                   "409a5f7c.3b997"
               ]
           ]
       },
       {
           "id": "9b1825b.7f06ad8",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "rules": [
               {
                   "t": "set",
                   "p": "fBlockOff",
                   "pt": "flow",
                   "to": "false",
                   "tot": "bool"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 910,
           "y": 360,
           "wires": [
               []
           ]
       },
       {
           "id": "409a5f7c.3b997",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "rules": [
               {
                   "t": "set",
                   "p": "fBlockOff",
                   "pt": "flow",
                   "to": "payload",
                   "tot": "msg"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 1290,
           "y": 400,
           "wires": [
               []
           ]
       },
       {
           "id": "f8345bc7.8cfbe8",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "debug blockOff",
           "rules": [
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "fBlockOff",
                   "tot": "flow"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 2220,
           "y": 320,
           "wires": [
               [
                   "99359e6b.17f01",
                   "97f9290c.dd19c8"
               ]
           ]
       },
       {
           "id": "99359e6b.17f01",
           "type": "debug",
           "z": "2cc07195.fb6b8e",
           "d": true,
           "name": "debug blockOff",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "payload",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 2440,
           "y": 320,
           "wires": []
       },
       {
           "id": "83cc4a6f.b425b8",
           "type": "switch",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "property": "payload",
           "propertyType": "msg",
           "rules": [
               {
                   "t": "false"
               },
               {
                   "t": "true"
               }
           ],
           "checkall": "true",
           "repair": false,
           "outputs": 2,
           "x": 3230,
           "y": 140,
           "wires": [
               [
                   "7619683d.ee6d08"
               ],
               [
                   "a3759e52.8d6d5"
               ]
           ]
       },
       {
           "id": "7619683d.ee6d08",
           "type": "switch",
           "z": "2cc07195.fb6b8e",
           "name": "fBlockOff = false?",
           "property": "fBlockOff",
           "propertyType": "flow",
           "rules": [
               {
                   "t": "false"
               }
           ],
           "checkall": "true",
           "repair": false,
           "outputs": 1,
           "x": 3410,
           "y": 120,
           "wires": [
               [
                   "a3759e52.8d6d5",
                   "13d1d0d8.071e3f"
               ]
           ]
       },
       {
           "id": "2c9575b4.b3a1da",
           "type": "trigger",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "op1": "",
           "op2": "",
           "op1type": "nul",
           "op2type": "payl",
           "duration": "100",
           "extend": true,
           "units": "ms",
           "reset": "",
           "bytopic": "all",
           "outputs": 1,
           "x": 480,
           "y": 220,
           "wires": [
               [
                   "68c985e.c9cc07c",
                   "725b8b7c.c46724",
                   "564d92bf.d3499c"
               ]
           ]
       },
       {
           "id": "612f0788.c5e618",
           "type": "trigger",
           "z": "2cc07195.fb6b8e",
           "name": "",
           "op1": "",
           "op2": "",
           "op1type": "nul",
           "op2type": "payl",
           "duration": "100",
           "extend": true,
           "units": "ms",
           "reset": "",
           "bytopic": "all",
           "outputs": 1,
           "x": 2020,
           "y": 260,
           "wires": [
               [
                   "f8345bc7.8cfbe8",
                   "df7213b8.015d1"
               ]
           ]
       },
       {
           "id": "564d92bf.d3499c",
           "type": "switch",
           "z": "2cc07195.fb6b8e",
           "name": "level ?",
           "property": "level",
           "propertyType": "msg",
           "rules": [
               {
                   "t": "null"
               },
               {
                   "t": "else"
               }
           ],
           "checkall": "true",
           "repair": false,
           "outputs": 2,
           "x": 670,
           "y": 500,
           "wires": [
               [
                   "84067941.fa6c28"
               ],
               [
                   "e08747e9.e1d9f8"
               ]
           ]
       },
       {
           "id": "84067941.fa6c28",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "Define levels",
           "rules": [
               {
                   "t": "set",
                   "p": "fLevel.On",
                   "pt": "flow",
                   "to": "10",
                   "tot": "num"
               },
               {
                   "t": "set",
                   "p": "fLevel.Off",
                   "pt": "flow",
                   "to": "20",
                   "tot": "num"
               },
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "fLevel",
                   "tot": "flow"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 850,
           "y": 480,
           "wires": [
               [
                   "8a28727d.3669c"
               ]
           ]
       },
       {
           "id": "8a28727d.3669c",
           "type": "debug",
           "z": "2cc07195.fb6b8e",
           "d": true,
           "name": "currentLevels",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "payload",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 1080,
           "y": 500,
           "wires": []
       },
       {
           "id": "e08747e9.e1d9f8",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "Define levels",
           "rules": [
               {
                   "t": "set",
                   "p": "fLevel.On",
                   "pt": "flow",
                   "to": "level.On",
                   "tot": "msg"
               },
               {
                   "t": "set",
                   "p": "fLevel.Off",
                   "pt": "flow",
                   "to": "level.Off",
                   "tot": "msg"
               },
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "fLevel",
                   "tot": "flow"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 850,
           "y": 520,
           "wires": [
               [
                   "8a28727d.3669c"
               ]
           ]
       },
       {
           "id": "a2314ead.ae2f2",
           "type": "switch",
           "z": "2cc07195.fb6b8e",
           "name": "fLevel.On < Lux > fLevel.Off",
           "property": "payload",
           "propertyType": "msg",
           "rules": [
               {
                   "t": "lt",
                   "v": "fLevel.On",
                   "vt": "flow"
               },
               {
                   "t": "gt",
                   "v": "fLevel.Off",
                   "vt": "flow"
               },
               {
                   "t": "lte",
                   "v": "fLevel.Off",
                   "vt": "flow"
               }
           ],
           "checkall": "false",
           "repair": false,
           "outputs": 3,
           "x": 2700,
           "y": 260,
           "wires": [
               [
                   "5e826235.20a2ac"
               ],
               [
                   "d3d0cae1.c8b4b8"
               ],
               [
                   "28577d78.21e272"
               ]
           ]
       },
       {
           "id": "450b0c8a.d98aa4",
           "type": "debug",
           "z": "2cc07195.fb6b8e",
           "d": true,
           "name": "Helligkeit",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "payload",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 2590,
           "y": 180,
           "wires": []
       },
       {
           "id": "ba687478.aa9248",
           "type": "debug",
           "z": "2cc07195.fb6b8e",
           "d": true,
           "name": "vor block",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "payload",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 3240,
           "y": 60,
           "wires": []
       },
       {
           "id": "13d1d0d8.071e3f",
           "type": "debug",
           "z": "2cc07195.fb6b8e",
           "d": true,
           "name": "nach block",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "payload",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 3610,
           "y": 60,
           "wires": []
       },
       {
           "id": "97f9290c.dd19c8",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "status blockOff",
           "rules": [
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "\"blockiere off = \" & payload ",
                   "tot": "jsonata"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 2420,
           "y": 400,
           "wires": [
               []
           ]
       },
       {
           "id": "af0d09af.81ce18",
           "type": "change",
           "z": "2cc07195.fb6b8e",
           "name": "topic & payload ",
           "rules": [
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "topic & \" = \" & payload ",
                   "tot": "jsonata"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 1560,
           "y": 300,
           "wires": [
               []
           ]
       },
       {
           "id": "4e3912d3.5f411c",
           "type": "debug",
           "z": "2cc07195.fb6b8e",
           "d": true,
           "name": "Lichtautomatik Eingang",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "payload",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 540,
           "y": 160,
           "wires": []
       },
       {
           "id": "1043128.8f5ffee",
           "type": "debug",
           "z": "2cc07195.fb6b8e",
           "d": true,
           "name": "welcher Präsenzmelder",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "topic",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 1310,
           "y": 300,
           "wires": []
       },
       {
           "id": "d5156296.63584",
           "type": "debug",
           "z": "2821dd31.a0dd62",
           "name": "",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "false",
           "statusVal": "",
           "statusType": "auto",
           "x": 1770,
           "y": 1340,
           "wires": []
       },
       {
           "id": "63301386.4493ec",
           "type": "inject",
           "z": "2821dd31.a0dd62",
           "name": "",
           "props": [
               {
                   "p": "payload"
               },
               {
                   "p": "topic",
                   "vt": "str"
               }
           ],
           "repeat": "",
           "crontab": "",
           "once": false,
           "onceDelay": 0.1,
           "topic": "",
           "payload": "Kann natürlich auch ein iobroker IN node sein",
           "payloadType": "str",
           "x": 840,
           "y": 1360,
           "wires": [
               [
                   "d22cfac8.4174a8",
                   "92eba9fc.5671e8"
               ]
           ]
       },
       {
           "id": "d22cfac8.4174a8",
           "type": "ioBroker get",
           "z": "2821dd31.a0dd62",
           "name": "Büro Anwesenheit Occupancy",
           "topic": "zigbee.0.00000000000000e1.occupancy",
           "attrname": "payload",
           "payloadType": "value",
           "x": 1080,
           "y": 1360,
           "wires": [
               [
                   "87fd0691.9946b8",
                   "7643056f.b963ac"
               ]
           ]
       },
       {
           "id": "92eba9fc.5671e8",
           "type": "change",
           "z": "2821dd31.a0dd62",
           "name": "",
           "rules": [
               {
                   "t": "set",
                   "p": "gLichtautomatik",
                   "pt": "global",
                   "to": "auto",
                   "tot": "str"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 1080,
           "y": 1300,
           "wires": [
               []
           ]
       },
       {
           "id": "87fd0691.9946b8",
           "type": "subflow:2cc07195.fb6b8e",
           "z": "2821dd31.a0dd62",
           "name": "",
           "env": [],
           "x": 1560,
           "y": 1360,
           "wires": [
               [
                   "d5156296.63584"
               ],
               []
           ]
       },
       {
           "id": "7643056f.b963ac",
           "type": "change",
           "z": "2821dd31.a0dd62",
           "d": true,
           "name": "überschreibe Standards",
           "rules": [
               {
                   "t": "set",
                   "p": "level.On",
                   "pt": "msg",
                   "to": "90",
                   "tot": "num"
               },
               {
                   "t": "set",
                   "p": "level.Off",
                   "pt": "msg",
                   "to": "120",
                   "tot": "num"
               },
               {
                   "t": "set",
                   "p": "differentIlluminanceSensor",
                   "pt": "msg",
                   "to": "zigbee/0/1111111111111111/illuminance",
                   "tot": "str"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 1350,
           "y": 1420,
           "wires": [
               [
                   "87fd0691.9946b8"
               ]
           ]
       }
    ]
    

    Vielleicht gibt es ja für den einen oder anderen Anregungen .

    Hier noch der Screenshot mit der Beschreibung des Subflows:

    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.

    F 1 Antwort Letzte Antwort
    1
    • mickymM mickym

      Nachdem hier manchmal Lösungen vorgestellt werden, die meist mit Blockly oder JavaScript erstellt wurden, hier mal meine "Lichtautomatik" die ich mit NodeRed implementiert habe. Das ganze ist in einem Subflow implementiert, sodass man eine InNode mit dem Zigbee Datenpunkt (illuminance oder occupancy) als Eingang für den Subflow verwendet. Am Ausgang 1 kommt "on" oder "off" zum Ein- Ausschalten, am 2. Ausgang kommt "true" oder "false" an - der die Entscheidung ausgibt.
      Man kann auch theoretisch andere Trigger verwenden, da die Auswertung der Licht-und Bewegungssensoren nochmals unabhängig vom Trigger im Subflow erfolgt. Somit ist es egal, ob die Lichtautomatik durch einen veränderten Lichtwert oder durch eine Bewegung ausgelöst wird.

      Die Lichtautomatik kann durch eine globale Variable komplett ausgeschaltet werden. Damit die Lichtautomatik funktioniert muss eine globale Variable "gLichtautomatik" = "auto" sein.

      Die Funktion hat folgende Steuerungen:

      Man gibt 2 Schwellenwerte On und Off damit kann man die Standards 10 und 20 Lux überschreiben. Das Ganze ist in der Node Beschreibung alles beschrieben.

      Unter dem On Level wird bei erkannter Bewegung ausgeschaltet, bei Erreichen des Off Levels unabhängig von der Bewegung immer ausgeschaltet, dazwischen wird nicht eingeschaltet sondern nur ausgeschaltet, wenn keine Bewegung erkannt wurde.

      Es kann auch ein anderer "illuminance" - Datenpunkt zur Steuerung verwendet werden. Damit ist es möglich ein Zimmer für die Lichtsteuerung zu nutzen, in dem der Bewegungsmelder günstig platziert ist und damit spärlich beleuchtet Räume vernünftig gesteuert werden können.

      Auch die On und Off Levels können überschrieben werden.

      Dann kann man noch einen Datenpunkt definieren - bei dem man das Ausschalten durch eine NIcht-Erkannte Bewegung blockieren kann.
      Beispiel: Man liegt auf der Couch beim Fernsehen. Man bewegt sich über das definierte Zeitintervall nicht, das Licht soll aber nicht nach 5 Minuten ausschalten, weil keine Bewegung erkannt wird. Schaut man allerdings nicht fern, soll das Licht 5 Minuten nach einer nicht mehr erkannten Bewegung ausgeschaltet werden.

      Alles in der Node BEschreibung beschrieben . Ein inaktiver Node dient als Beispiel.

      [
         {
             "id": "2cc07195.fb6b8e",
             "type": "subflow",
             "name": "Automatik",
             "info": "# Standardfunktion\n\nSchaltet das Licht getriggert durch Präsenzmelder, entweder durch Helligkeit oder Präsenz. Die Nachrichten dienen jedoch nur als Trigger und die Werte werden nicht verwendet. \nMan kann auch nur den Präsenztrigger oder nur den Helligkeitstrigger verwenden.\n\nDie Werte werden intern ausgelesen, in dem an das Topic als Pfad \"illuminance\" oder \"occupancy\" angehängt werden.\n\n2 Licht Level sind entscheidend für 3 Optionen:\n\n * On-Level: Unter diesem Helligkeitslevel steuert die Präsenz true=on und false=off das Licht.\n * Off-Level: Über diesem Level wird das Licht immer abgeschaltet - unabhängig ob an- oder abwesend.\n * Unter dem Off-Level wird bei abwesend ausgeschaltet, aber nicht mehr eingeschaltet. Ist jedoch jemand anwesend, bleibt das Licht in diesem Zwischenlevel eingeschaltet.\n \n## Optionen:\nDas Standardverhalten kann, wie folgt geändert werden:\n - `msg.blockOff` - liest einen Datenpunkt aus, der true/false liefern muss. Liefert der Datenpunkt true, wird bei Anwesenheit das Licht unter dem On-Level eingeschaltet, aber bei Abwesenheit nicht ausgeschaltet.\n - `msg.level` - Objekt mit On und Off - als nummerische Werte, um die Standardlevels von 10 (level.On) und 20 (level.Off) zu überschreiben.\n - `msg.differentIlluminanceSensor` kann ein Datenpunkt angegeben werden, der einen anderen Sensor zur Helligkeitsmessung verwendet.",
             "category": "Licht",
             "in": [
                 {
                     "x": 60,
                     "y": 220,
                     "wires": [
                         {
                             "id": "7d8625c0.270b0c"
                         }
                     ]
                 }
             ],
             "out": [
                 {
                     "x": 3880,
                     "y": 220,
                     "wires": [
                         {
                             "id": "a1913266.b7a64",
                             "port": 0
                         },
                         {
                             "id": "a3759e52.8d6d5",
                             "port": 0
                         }
                     ]
                 },
                 {
                     "x": 3640,
                     "y": 480,
                     "wires": [
                         {
                             "id": "596a348d.60d00c",
                             "port": 0
                         },
                         {
                             "id": "83cc4a6f.b425b8",
                             "port": "1"
                         },
                         {
                             "id": "7619683d.ee6d08",
                             "port": 0
                         }
                     ]
                 }
             ],
             "env": [],
             "color": "#FDF0C2",
             "outputLabels": [
                 "on/off = Licht an oder aus",
                 "false/true = Präsenz für Entscheidung"
             ],
             "icon": "node-red/light.svg",
             "status": {
                 "x": 1720,
                 "y": 300,
                 "wires": [
                     {
                         "id": "af0d09af.81ce18",
                         "port": 0
                     }
                 ]
             }
         },
         {
             "id": "e736cf60.2f42a",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "to Number",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "$number(msg.payload)\t",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 2410,
             "y": 260,
             "wires": [
                 [
                     "a2314ead.ae2f2",
                     "450b0c8a.d98aa4"
                 ]
             ]
         },
         {
             "id": "a1913266.b7a64",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "Licht = off",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "off",
                     "tot": "str"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 3680,
             "y": 240,
             "wires": [
                 []
             ]
         },
         {
             "id": "a3759e52.8d6d5",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "translate",
             "rules": [
                 {
                     "t": "change",
                     "p": "payload",
                     "pt": "msg",
                     "from": "true",
                     "fromt": "bool",
                     "to": "on",
                     "tot": "str"
                 },
                 {
                     "t": "change",
                     "p": "payload",
                     "pt": "msg",
                     "from": "false",
                     "fromt": "bool",
                     "to": "off",
                     "tot": "str"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 3680,
             "y": 180,
             "wires": [
                 []
             ]
         },
         {
             "id": "596a348d.60d00c",
             "type": "switch",
             "z": "2cc07195.fb6b8e",
             "name": "= false",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "false"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 1,
             "x": 3390,
             "y": 480,
             "wires": [
                 [
                     "a1913266.b7a64"
                 ]
             ]
         },
         {
             "id": "d3d0cae1.c8b4b8",
             "type": "switch",
             "z": "2cc07195.fb6b8e",
             "name": "gLicht ?",
             "property": "gLicht",
             "propertyType": "global",
             "rules": [
                 {
                     "t": "eq",
                     "v": "off",
                     "vt": "str"
                 },
                 {
                     "t": "eq",
                     "v": "on",
                     "vt": "str"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 2,
             "x": 3100,
             "y": 260,
             "wires": [
                 [
                     "a1913266.b7a64"
                 ],
                 [
                     "28577d78.21e272"
                 ]
             ]
         },
         {
             "id": "a7920e08.78d6a",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "Define topics",
             "rules": [
                 {
                     "t": "set",
                     "p": "fTopicIlluminace",
                     "pt": "flow",
                     "to": "payload & \"/illuminance\"",
                     "tot": "jsonata"
                 },
                 {
                     "t": "set",
                     "p": "fTopicOccupancy",
                     "pt": "flow",
                     "to": "payload & \"/occupancy\"",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 850,
             "y": 220,
             "wires": [
                 [
                     "2eb4595b.2652a6",
                     "20c6e147.ba639e"
                 ]
             ]
         },
         {
             "id": "be9e3607.2d4388",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "topic",
                     "pt": "msg",
                     "to": "fTopicIlluminace",
                     "tot": "flow"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1340,
             "y": 60,
             "wires": [
                 [
                     "23bb673c.06c4c8"
                 ]
             ]
         },
         {
             "id": "2eb4595b.2652a6",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "topic",
                     "pt": "msg",
                     "to": "fTopicOccupancy",
                     "tot": "flow"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1060,
             "y": 260,
             "wires": [
                 [
                     "1b8306b4.840a99",
                     "1043128.8f5ffee"
                 ]
             ]
         },
         {
             "id": "23bb673c.06c4c8",
             "type": "ioBroker get",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "topic": "",
             "attrname": "payload",
             "payloadType": "value",
             "x": 1530,
             "y": 60,
             "wires": [
                 [
                     "a4be4f25.58cba"
                 ]
             ]
         },
         {
             "id": "1b8306b4.840a99",
             "type": "ioBroker get",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "topic": "",
             "attrname": "payload",
             "payloadType": "value",
             "x": 1370,
             "y": 260,
             "wires": [
                 [
                     "79e4a500.79734c",
                     "af0d09af.81ce18"
                 ]
             ]
         },
         {
             "id": "68c985e.c9cc07c",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "Identify",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "topic",
                     "tot": "msg"
                 },
                 {
                     "t": "change",
                     "p": "payload",
                     "pt": "msg",
                     "from": ".",
                     "fromt": "str",
                     "to": "/",
                     "tot": "str"
                 },
                 {
                     "t": "change",
                     "p": "payload",
                     "pt": "msg",
                     "from": "(\\S*)\\/.*$",
                     "fromt": "re",
                     "to": "$1",
                     "tot": "str"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 680,
             "y": 220,
             "wires": [
                 [
                     "a7920e08.78d6a"
                 ]
             ]
         },
         {
             "id": "a4be4f25.58cba",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "fHelligkeit",
                     "pt": "flow",
                     "to": "payload",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1740,
             "y": 60,
             "wires": [
                 [
                     "612f0788.c5e618"
                 ]
             ]
         },
         {
             "id": "79e4a500.79734c",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "fPräsenz",
                     "pt": "flow",
                     "to": "payload",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1570,
             "y": 260,
             "wires": [
                 [
                     "612f0788.c5e618"
                 ]
             ]
         },
         {
             "id": "df7213b8.015d1",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "Helligkeit",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "fHelligkeit",
                     "tot": "flow"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 2240,
             "y": 260,
             "wires": [
                 [
                     "e736cf60.2f42a"
                 ]
             ]
         },
         {
             "id": "5e826235.20a2ac",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "Präsenz",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "fPräsenz",
                     "tot": "flow"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 3060,
             "y": 140,
             "wires": [
                 [
                     "83cc4a6f.b425b8",
                     "ba687478.aa9248"
                 ]
             ]
         },
         {
             "id": "28577d78.21e272",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "Präsenz",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "fPräsenz",
                     "tot": "flow"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 3060,
             "y": 480,
             "wires": [
                 [
                     "596a348d.60d00c"
                 ]
             ]
         },
         {
             "id": "7d8625c0.270b0c",
             "type": "switch",
             "z": "2cc07195.fb6b8e",
             "name": "Ist gLichtautomatik = auto ?",
             "property": "gLichtautomatik",
             "propertyType": "global",
             "rules": [
                 {
                     "t": "eq",
                     "v": "auto",
                     "vt": "str"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 1,
             "x": 240,
             "y": 220,
             "wires": [
                 [
                     "2c9575b4.b3a1da",
                     "4e3912d3.5f411c"
                 ]
             ]
         },
         {
             "id": "20c6e147.ba639e",
             "type": "switch",
             "z": "2cc07195.fb6b8e",
             "name": "differentIlluminanceSensor ?",
             "property": "differentIlluminanceSensor",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "null"
                 },
                 {
                     "t": "else"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 2,
             "x": 1080,
             "y": 80,
             "wires": [
                 [
                     "26cda5d2.1729ca",
                     "be9e3607.2d4388"
                 ],
                 [
                     "51ca8ffe.70cd2",
                     "6964139c.8c847c"
                 ]
             ]
         },
         {
             "id": "26cda5d2.1729ca",
             "type": "debug",
             "z": "2cc07195.fb6b8e",
             "d": true,
             "name": "undefined",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1320,
             "y": 20,
             "wires": []
         },
         {
             "id": "51ca8ffe.70cd2",
             "type": "debug",
             "z": "2cc07195.fb6b8e",
             "d": true,
             "name": "differentIlluminanceSensor",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "x": 1380,
             "y": 160,
             "wires": []
         },
         {
             "id": "6964139c.8c847c",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "topic",
                     "pt": "msg",
                     "to": "differentIlluminanceSensor",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1340,
             "y": 120,
             "wires": [
                 [
                     "44f0728b.a891bc"
                 ]
             ]
         },
         {
             "id": "44f0728b.a891bc",
             "type": "ioBroker get",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "topic": "",
             "attrname": "payload",
             "payloadType": "value",
             "x": 1530,
             "y": 120,
             "wires": [
                 [
                     "ac87e4f.ad4a818"
                 ]
             ]
         },
         {
             "id": "ac87e4f.ad4a818",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "fHelligkeit",
                     "pt": "flow",
                     "to": "payload",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1740,
             "y": 120,
             "wires": [
                 [
                     "612f0788.c5e618"
                 ]
             ]
         },
         {
             "id": "725b8b7c.c46724",
             "type": "switch",
             "z": "2cc07195.fb6b8e",
             "name": "blockOff ?",
             "property": "blockOff",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "null"
                 },
                 {
                     "t": "else"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 2,
             "x": 720,
             "y": 380,
             "wires": [
                 [
                     "9b1825b.7f06ad8"
                 ],
                 [
                     "d84afaef.08ca08"
                 ]
             ]
         },
         {
             "id": "d84afaef.08ca08",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "topic",
                     "pt": "msg",
                     "to": "blockOff",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 900,
             "y": 400,
             "wires": [
                 [
                     "f495ba59.100cd8"
                 ]
             ]
         },
         {
             "id": "f495ba59.100cd8",
             "type": "ioBroker get",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "topic": "",
             "attrname": "payload",
             "payloadType": "value",
             "x": 1090,
             "y": 400,
             "wires": [
                 [
                     "409a5f7c.3b997"
                 ]
             ]
         },
         {
             "id": "9b1825b.7f06ad8",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "fBlockOff",
                     "pt": "flow",
                     "to": "false",
                     "tot": "bool"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 910,
             "y": 360,
             "wires": [
                 []
             ]
         },
         {
             "id": "409a5f7c.3b997",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "fBlockOff",
                     "pt": "flow",
                     "to": "payload",
                     "tot": "msg"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1290,
             "y": 400,
             "wires": [
                 []
             ]
         },
         {
             "id": "f8345bc7.8cfbe8",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "debug blockOff",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "fBlockOff",
                     "tot": "flow"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 2220,
             "y": 320,
             "wires": [
                 [
                     "99359e6b.17f01",
                     "97f9290c.dd19c8"
                 ]
             ]
         },
         {
             "id": "99359e6b.17f01",
             "type": "debug",
             "z": "2cc07195.fb6b8e",
             "d": true,
             "name": "debug blockOff",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 2440,
             "y": 320,
             "wires": []
         },
         {
             "id": "83cc4a6f.b425b8",
             "type": "switch",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "false"
                 },
                 {
                     "t": "true"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 2,
             "x": 3230,
             "y": 140,
             "wires": [
                 [
                     "7619683d.ee6d08"
                 ],
                 [
                     "a3759e52.8d6d5"
                 ]
             ]
         },
         {
             "id": "7619683d.ee6d08",
             "type": "switch",
             "z": "2cc07195.fb6b8e",
             "name": "fBlockOff = false?",
             "property": "fBlockOff",
             "propertyType": "flow",
             "rules": [
                 {
                     "t": "false"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 1,
             "x": 3410,
             "y": 120,
             "wires": [
                 [
                     "a3759e52.8d6d5",
                     "13d1d0d8.071e3f"
                 ]
             ]
         },
         {
             "id": "2c9575b4.b3a1da",
             "type": "trigger",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "op1": "",
             "op2": "",
             "op1type": "nul",
             "op2type": "payl",
             "duration": "100",
             "extend": true,
             "units": "ms",
             "reset": "",
             "bytopic": "all",
             "outputs": 1,
             "x": 480,
             "y": 220,
             "wires": [
                 [
                     "68c985e.c9cc07c",
                     "725b8b7c.c46724",
                     "564d92bf.d3499c"
                 ]
             ]
         },
         {
             "id": "612f0788.c5e618",
             "type": "trigger",
             "z": "2cc07195.fb6b8e",
             "name": "",
             "op1": "",
             "op2": "",
             "op1type": "nul",
             "op2type": "payl",
             "duration": "100",
             "extend": true,
             "units": "ms",
             "reset": "",
             "bytopic": "all",
             "outputs": 1,
             "x": 2020,
             "y": 260,
             "wires": [
                 [
                     "f8345bc7.8cfbe8",
                     "df7213b8.015d1"
                 ]
             ]
         },
         {
             "id": "564d92bf.d3499c",
             "type": "switch",
             "z": "2cc07195.fb6b8e",
             "name": "level ?",
             "property": "level",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "null"
                 },
                 {
                     "t": "else"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 2,
             "x": 670,
             "y": 500,
             "wires": [
                 [
                     "84067941.fa6c28"
                 ],
                 [
                     "e08747e9.e1d9f8"
                 ]
             ]
         },
         {
             "id": "84067941.fa6c28",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "Define levels",
             "rules": [
                 {
                     "t": "set",
                     "p": "fLevel.On",
                     "pt": "flow",
                     "to": "10",
                     "tot": "num"
                 },
                 {
                     "t": "set",
                     "p": "fLevel.Off",
                     "pt": "flow",
                     "to": "20",
                     "tot": "num"
                 },
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "fLevel",
                     "tot": "flow"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 850,
             "y": 480,
             "wires": [
                 [
                     "8a28727d.3669c"
                 ]
             ]
         },
         {
             "id": "8a28727d.3669c",
             "type": "debug",
             "z": "2cc07195.fb6b8e",
             "d": true,
             "name": "currentLevels",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1080,
             "y": 500,
             "wires": []
         },
         {
             "id": "e08747e9.e1d9f8",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "Define levels",
             "rules": [
                 {
                     "t": "set",
                     "p": "fLevel.On",
                     "pt": "flow",
                     "to": "level.On",
                     "tot": "msg"
                 },
                 {
                     "t": "set",
                     "p": "fLevel.Off",
                     "pt": "flow",
                     "to": "level.Off",
                     "tot": "msg"
                 },
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "fLevel",
                     "tot": "flow"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 850,
             "y": 520,
             "wires": [
                 [
                     "8a28727d.3669c"
                 ]
             ]
         },
         {
             "id": "a2314ead.ae2f2",
             "type": "switch",
             "z": "2cc07195.fb6b8e",
             "name": "fLevel.On < Lux > fLevel.Off",
             "property": "payload",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "lt",
                     "v": "fLevel.On",
                     "vt": "flow"
                 },
                 {
                     "t": "gt",
                     "v": "fLevel.Off",
                     "vt": "flow"
                 },
                 {
                     "t": "lte",
                     "v": "fLevel.Off",
                     "vt": "flow"
                 }
             ],
             "checkall": "false",
             "repair": false,
             "outputs": 3,
             "x": 2700,
             "y": 260,
             "wires": [
                 [
                     "5e826235.20a2ac"
                 ],
                 [
                     "d3d0cae1.c8b4b8"
                 ],
                 [
                     "28577d78.21e272"
                 ]
             ]
         },
         {
             "id": "450b0c8a.d98aa4",
             "type": "debug",
             "z": "2cc07195.fb6b8e",
             "d": true,
             "name": "Helligkeit",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 2590,
             "y": 180,
             "wires": []
         },
         {
             "id": "ba687478.aa9248",
             "type": "debug",
             "z": "2cc07195.fb6b8e",
             "d": true,
             "name": "vor block",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 3240,
             "y": 60,
             "wires": []
         },
         {
             "id": "13d1d0d8.071e3f",
             "type": "debug",
             "z": "2cc07195.fb6b8e",
             "d": true,
             "name": "nach block",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 3610,
             "y": 60,
             "wires": []
         },
         {
             "id": "97f9290c.dd19c8",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "status blockOff",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "\"blockiere off = \" & payload ",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 2420,
             "y": 400,
             "wires": [
                 []
             ]
         },
         {
             "id": "af0d09af.81ce18",
             "type": "change",
             "z": "2cc07195.fb6b8e",
             "name": "topic & payload ",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "topic & \" = \" & payload ",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1560,
             "y": 300,
             "wires": [
                 []
             ]
         },
         {
             "id": "4e3912d3.5f411c",
             "type": "debug",
             "z": "2cc07195.fb6b8e",
             "d": true,
             "name": "Lichtautomatik Eingang",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 540,
             "y": 160,
             "wires": []
         },
         {
             "id": "1043128.8f5ffee",
             "type": "debug",
             "z": "2cc07195.fb6b8e",
             "d": true,
             "name": "welcher Präsenzmelder",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "topic",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1310,
             "y": 300,
             "wires": []
         },
         {
             "id": "d5156296.63584",
             "type": "debug",
             "z": "2821dd31.a0dd62",
             "name": "",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "false",
             "statusVal": "",
             "statusType": "auto",
             "x": 1770,
             "y": 1340,
             "wires": []
         },
         {
             "id": "63301386.4493ec",
             "type": "inject",
             "z": "2821dd31.a0dd62",
             "name": "",
             "props": [
                 {
                     "p": "payload"
                 },
                 {
                     "p": "topic",
                     "vt": "str"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "payload": "Kann natürlich auch ein iobroker IN node sein",
             "payloadType": "str",
             "x": 840,
             "y": 1360,
             "wires": [
                 [
                     "d22cfac8.4174a8",
                     "92eba9fc.5671e8"
                 ]
             ]
         },
         {
             "id": "d22cfac8.4174a8",
             "type": "ioBroker get",
             "z": "2821dd31.a0dd62",
             "name": "Büro Anwesenheit Occupancy",
             "topic": "zigbee.0.00000000000000e1.occupancy",
             "attrname": "payload",
             "payloadType": "value",
             "x": 1080,
             "y": 1360,
             "wires": [
                 [
                     "87fd0691.9946b8",
                     "7643056f.b963ac"
                 ]
             ]
         },
         {
             "id": "92eba9fc.5671e8",
             "type": "change",
             "z": "2821dd31.a0dd62",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "gLichtautomatik",
                     "pt": "global",
                     "to": "auto",
                     "tot": "str"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1080,
             "y": 1300,
             "wires": [
                 []
             ]
         },
         {
             "id": "87fd0691.9946b8",
             "type": "subflow:2cc07195.fb6b8e",
             "z": "2821dd31.a0dd62",
             "name": "",
             "env": [],
             "x": 1560,
             "y": 1360,
             "wires": [
                 [
                     "d5156296.63584"
                 ],
                 []
             ]
         },
         {
             "id": "7643056f.b963ac",
             "type": "change",
             "z": "2821dd31.a0dd62",
             "d": true,
             "name": "überschreibe Standards",
             "rules": [
                 {
                     "t": "set",
                     "p": "level.On",
                     "pt": "msg",
                     "to": "90",
                     "tot": "num"
                 },
                 {
                     "t": "set",
                     "p": "level.Off",
                     "pt": "msg",
                     "to": "120",
                     "tot": "num"
                 },
                 {
                     "t": "set",
                     "p": "differentIlluminanceSensor",
                     "pt": "msg",
                     "to": "zigbee/0/1111111111111111/illuminance",
                     "tot": "str"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 1350,
             "y": 1420,
             "wires": [
                 [
                     "87fd0691.9946b8"
                 ]
             ]
         }
      ]
      

      Vielleicht gibt es ja für den einen oder anderen Anregungen .

      Hier noch der Screenshot mit der Beschreibung des Subflows:

      screen.png

      F Offline
      F Offline
      frankyboy73
      schrieb am zuletzt editiert von
      #2

      @mickym
      Hi, feine Sache. Gefällt mir.
      Da ich meine Sensoren über Deconz angebunden habe, musste ich das nur etwas abändern und mit presence und lux arbeiten. Auch musste ich bei den Switches im Subflow zur abfrage der Präsens die Abrage von boolean (Wahr/Falsch) auf String (True und False) abändern, aus meinen input und getnodes erhalte ich nen String und keinen Boolean.
      Hinzu kommt das die Ordnerstruktur bei Deconz etwas komisch ist. Hier werden für jeden Bewegungsmelder immer 2 Ordner (als hätte man Sensoren) angelegt, in einem ist der Presence in einem der Luxwert, daher muss ich mit deiner Variante arbeiten als hätte ich 2 Sensoren einen für die Präsens und einen für den Lichtwert.

      Schöne Grüße Frank

      mickymM 1 Antwort Letzte Antwort
      0
      • F frankyboy73

        @mickym
        Hi, feine Sache. Gefällt mir.
        Da ich meine Sensoren über Deconz angebunden habe, musste ich das nur etwas abändern und mit presence und lux arbeiten. Auch musste ich bei den Switches im Subflow zur abfrage der Präsens die Abrage von boolean (Wahr/Falsch) auf String (True und False) abändern, aus meinen input und getnodes erhalte ich nen String und keinen Boolean.
        Hinzu kommt das die Ordnerstruktur bei Deconz etwas komisch ist. Hier werden für jeden Bewegungsmelder immer 2 Ordner (als hätte man Sensoren) angelegt, in einem ist der Presence in einem der Luxwert, daher muss ich mit deiner Variante arbeiten als hätte ich 2 Sensoren einen für die Präsens und einen für den Lichtwert.

        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #3

        @frankyboy73 said in Lichtsteuerung m. XIAOMI Bewegungsmeldern & Zigbee Adapter:

        @mickym
        Hi, feine Sache. Gefällt mir.
        Da ich meine Sensoren über Deconz angebunden habe, musste ich das nur etwas abändern und mit presence und lux arbeiten. Auch musste ich bei den Switches im Subflow zur abfrage der Präsens die Abrage von boolean (Wahr/Falsch) auf String (True und False) abändern, aus meinen input und getnodes erhalte ich nen String und keinen Boolean.
        Hinzu kommt das die Ordnerstruktur bei Deconz etwas komisch ist. Hier werden für jeden Bewegungsmelder immer 2 Ordner (als hätte man Sensoren) angelegt, in einem ist der Presence in einem der Luxwert, daher muss ich mit deiner Variante arbeiten als hätte ich 2 Sensoren einen für die Präsens und einen für den Lichtwert.

        Hallo Frank,

        freut mich, dass das Ganze doch einen Praxiswert hat und Du das entsprechend anpassen konntest. Das mit der Umstellung des Switches von Boolean auf String habe ich genau in umgekehrter bei mir gemacht. Das liegt aber wahrscheinlich daran, dass ich die Default-Einstellung des Adapters geändert habe und ich die Orginaltypen beibehalten wollte. Andererseits ist die Default Einstellung insofern praktisch, weil Du halt immer nur Strings aus dem iobroker erhälst, egal wie der Orgnialwert aussah.

        screen.png

        Hoffentlich tut auch alles so, wie Du erwartest. ;) - Die Default-Werte im Luxbereich muss man sicher anpassen, sonst schaltet ggf. das Licht - nachdem es eingeschaltet wurde sofort wieder aus. ;) Ich fand diesen Subflow halt insofern ganz anschaulich, da er zeigt wie man durch den Einsatz von Variablen auch im Bereich Node-Red eine gewisse "Unabhängig" erreichen kann und wann aus meiner Sicht der Einsatz von den Subflows überhaupt Sinn macht. Also das man sie möglichst mehrfach einsetzen kann (wie ein Unterprogramm), wenn Du verstehst was ich meine. ;)

        screen.png

        Vielen Dank für Deine Rückmeldung!

        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.

        F 1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @frankyboy73 said in Lichtsteuerung m. XIAOMI Bewegungsmeldern & Zigbee Adapter:

          @mickym
          Hi, feine Sache. Gefällt mir.
          Da ich meine Sensoren über Deconz angebunden habe, musste ich das nur etwas abändern und mit presence und lux arbeiten. Auch musste ich bei den Switches im Subflow zur abfrage der Präsens die Abrage von boolean (Wahr/Falsch) auf String (True und False) abändern, aus meinen input und getnodes erhalte ich nen String und keinen Boolean.
          Hinzu kommt das die Ordnerstruktur bei Deconz etwas komisch ist. Hier werden für jeden Bewegungsmelder immer 2 Ordner (als hätte man Sensoren) angelegt, in einem ist der Presence in einem der Luxwert, daher muss ich mit deiner Variante arbeiten als hätte ich 2 Sensoren einen für die Präsens und einen für den Lichtwert.

          Hallo Frank,

          freut mich, dass das Ganze doch einen Praxiswert hat und Du das entsprechend anpassen konntest. Das mit der Umstellung des Switches von Boolean auf String habe ich genau in umgekehrter bei mir gemacht. Das liegt aber wahrscheinlich daran, dass ich die Default-Einstellung des Adapters geändert habe und ich die Orginaltypen beibehalten wollte. Andererseits ist die Default Einstellung insofern praktisch, weil Du halt immer nur Strings aus dem iobroker erhälst, egal wie der Orgnialwert aussah.

          screen.png

          Hoffentlich tut auch alles so, wie Du erwartest. ;) - Die Default-Werte im Luxbereich muss man sicher anpassen, sonst schaltet ggf. das Licht - nachdem es eingeschaltet wurde sofort wieder aus. ;) Ich fand diesen Subflow halt insofern ganz anschaulich, da er zeigt wie man durch den Einsatz von Variablen auch im Bereich Node-Red eine gewisse "Unabhängig" erreichen kann und wann aus meiner Sicht der Einsatz von den Subflows überhaupt Sinn macht. Also das man sie möglichst mehrfach einsetzen kann (wie ein Unterprogramm), wenn Du verstehst was ich meine. ;)

          screen.png

          Vielen Dank für Deine Rückmeldung!

          F Offline
          F Offline
          frankyboy73
          schrieb am zuletzt editiert von frankyboy73
          #4

          @mickym Hi, ja das mit der String/ Bool Ausgabe der Nodes wollte ich auch schon mal ändern, momentan muss ich die Strings für die Ausgabe alle wieder in Bools wandeln. Das könnte ich mir dann sparen. Allerdings ist mein Node Red mittlerweile so groß geworden, das dieses einige Zeit in Anspruch nehmen wird. Und man kann ja leider nicht schrittweise vorgehen, sondern nur komplett.

          Edit: Da fällt mir ein, die ganzen Zahlenwerte wären dann ja auch nicht mehr Strings sondern Numbers, das wird ja lustig.

          Ich habe mit deinem Subflow jetzt ne weile rumgetestet und die Funktion gefällt mir sehr gut, auch die Möglichkeit das Ausschalten zu blockieren ist sehr sinnvoll. Ne Möglichkeit das einschalten zu blockieren, werde ich mir wohl auch noch einbauen.
          Mit der Anpassung der Helligkeit stimme ich dir zu, ich habe 5 Xiaomi BW und die liefern extrem unterschiedliche Lux Werte.
          Super ist der Vorteil das ich jetzt nicht mehr für jeden BW einen riesigen Flow brauche, sondern mir nur noch den anpassten Subflow einbinden muss.

          Schöne Grüße Frank

          mickymM 1 Antwort Letzte Antwort
          0
          • F frankyboy73

            @mickym Hi, ja das mit der String/ Bool Ausgabe der Nodes wollte ich auch schon mal ändern, momentan muss ich die Strings für die Ausgabe alle wieder in Bools wandeln. Das könnte ich mir dann sparen. Allerdings ist mein Node Red mittlerweile so groß geworden, das dieses einige Zeit in Anspruch nehmen wird. Und man kann ja leider nicht schrittweise vorgehen, sondern nur komplett.

            Edit: Da fällt mir ein, die ganzen Zahlenwerte wären dann ja auch nicht mehr Strings sondern Numbers, das wird ja lustig.

            Ich habe mit deinem Subflow jetzt ne weile rumgetestet und die Funktion gefällt mir sehr gut, auch die Möglichkeit das Ausschalten zu blockieren ist sehr sinnvoll. Ne Möglichkeit das einschalten zu blockieren, werde ich mir wohl auch noch einbauen.
            Mit der Anpassung der Helligkeit stimme ich dir zu, ich habe 5 Xiaomi BW und die liefern extrem unterschiedliche Lux Werte.
            Super ist der Vorteil das ich jetzt nicht mehr für jeden BW einen riesigen Flow brauche, sondern mir nur noch den anpassten Subflow einbinden muss.

            mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #5

            @frankyboy73 Ja die Umstellung auf die Originaltypen hat bei mir auch eine Zeit gedauert und bis alles wieder fehlerfrei lief dauerte auch länger als gedacht. Über die Selektion der Nodes mussten hauptsächlich die Switches geändert werden.
            Ja die Bools und die Zahlen bleiben wieder Zahlen - aber Du kannst Dir ja mal überlegen, wieviel Aufwand Du reingesteckt hast, Zahlenstrings wieder in Zahlen oder Strings wieder in Bools zu konvertieren. Die Idee der Adapterentwickler war wohl, dass man sich mit der Option um den Datentyp keine Gedanken machen sollte, sondern man sich darauf verlassen kann, dass nur Strings rauskommen. ;) Problematisch finde ich nur, dass die Adapterentwickler solche Einstellungen als "Default" vorgeben. Für Anfänger ist es in meinen Augen eher befremdlich, wenn aus den iobroker Nodes nur Strings rauskommen. Allerdings ist es bei MQTT Nodes auch so.

            Falls Du über Change Nodes die Strings überall konvertiert hast, ist der Aufwand nicht so hoch - da die Konvertierung dann halt einfach ignoriert wird - sprich diese Änderungen einfach nicht greifen.

            Aber auch hier gilt, es gibt ja keinen Zwang das zu machen. Mich hat es halt nur genervt, dass ich immer alles konvertieren musste.

            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.

            F 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @frankyboy73 Ja die Umstellung auf die Originaltypen hat bei mir auch eine Zeit gedauert und bis alles wieder fehlerfrei lief dauerte auch länger als gedacht. Über die Selektion der Nodes mussten hauptsächlich die Switches geändert werden.
              Ja die Bools und die Zahlen bleiben wieder Zahlen - aber Du kannst Dir ja mal überlegen, wieviel Aufwand Du reingesteckt hast, Zahlenstrings wieder in Zahlen oder Strings wieder in Bools zu konvertieren. Die Idee der Adapterentwickler war wohl, dass man sich mit der Option um den Datentyp keine Gedanken machen sollte, sondern man sich darauf verlassen kann, dass nur Strings rauskommen. ;) Problematisch finde ich nur, dass die Adapterentwickler solche Einstellungen als "Default" vorgeben. Für Anfänger ist es in meinen Augen eher befremdlich, wenn aus den iobroker Nodes nur Strings rauskommen. Allerdings ist es bei MQTT Nodes auch so.

              Falls Du über Change Nodes die Strings überall konvertiert hast, ist der Aufwand nicht so hoch - da die Konvertierung dann halt einfach ignoriert wird - sprich diese Änderungen einfach nicht greifen.

              Aber auch hier gilt, es gibt ja keinen Zwang das zu machen. Mich hat es halt nur genervt, dass ich immer alles konvertieren musste.

              F Offline
              F Offline
              frankyboy73
              schrieb am zuletzt editiert von
              #6

              @mickym Hi, die Umstellung hat super funktioniert, ein paar Kleinigkeiten hatte ich übersehen und erst später bemerkt. Aber das ist ein anderes Thema.
              Deinen Subflow finde ich echt super, klappt gut. Ich habe ihn mir noch etwas angepasst, Zusätzlich ne Funktion direkt On steuern (Lichtautomatik On) und nen Delay über nen Trigger für das Ausschalten ("msg.delay" in Millisekunden) in der Change Node "Standartwerte ändern" auswählbar. Super Sache, danke dafür.

              Schöne Grüße Frank

              mickymM 1 Antwort Letzte Antwort
              0
              • F frankyboy73

                @mickym Hi, die Umstellung hat super funktioniert, ein paar Kleinigkeiten hatte ich übersehen und erst später bemerkt. Aber das ist ein anderes Thema.
                Deinen Subflow finde ich echt super, klappt gut. Ich habe ihn mir noch etwas angepasst, Zusätzlich ne Funktion direkt On steuern (Lichtautomatik On) und nen Delay über nen Trigger für das Ausschalten ("msg.delay" in Millisekunden) in der Change Node "Standartwerte ändern" auswählbar. Super Sache, danke dafür.

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von
                #7

                @mickym Freut mich. :) Das war ja auch Sinn der Sache, dass man mal sieht, was man mit ein paar Flow Variablen und dem Subflow (quasi als Unterprogramm) alles zaubern kann. ;)

                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.

                1 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                727

                Online

                32.6k

                Benutzer

                82.2k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe