Der Faulheit halber nimmt man dasfertige C't Setup.
Nur leider crasht der NodeRed- Container beim Start, darum ersetzt man das C't Image im docker-compose.yml vor dem ersten Start dann doch mit dem Original von NodeRed und setzt die Ports und Network modes wie in einer älteren Version, dann geht's jedenfalls 
version: '3.6' services: nodered: #image: ghcr.io/ct-open-source/ctnodered:latest image: nodered/node-red ports: - "1880:1880" volumes: - ./data/nodered:/data - /etc/localtime:/etc/localtime depends_on: - mqtt restart: always # network_mode: "host" environment: - TZ=Europe/Berlin mqtt: image: "eclipse-mosquitto" ports: - "1883:1883" - "9001:9001" volumes: - ./data/mqtt:/mosquitto - /etc/localtime:/etc/localtime restart: always environment: - TZ=Europe/Berlin zigbee: image: koenkk/zigbee2mqtt volumes: - ./data/zigbee:/app/data - /run/udev:/run/udev:ro - /etc/localtime:/etc/localtime devices: - "/dev/ttyACM0:/dev/ttyACM0" - "/dev/ttyACM1:/dev/ttyACM1" restart: always privileged: true ports: - 1881:1881 environment: - TZ=Europe/Berlin
Wenn man die ersten MQTT- Node einrichtet: Der lokale MQTT Server läuft dann auf dem Host mqtt und muß auch mit dem Namen als Server angegeben werden.
Beim Start mit docker compose up nodered with nodered über fehlende Schreibrechte im data- Folder meckern, das korrigiert man mit 
sudo chmod a+rwx -R data
Die aktuelle Version von mosquitto beendet sich, wenn sie keine config/mosquitto.conf findet und lauscht per Default nur an localhost. Man muß die Config also erst bauen:
cd docker/nodered/data/mqtt sudo mkdir -p config sudo nano config/mosquitto.conf
mit dem Inhalt
listener 1883 allow_anonymous true
Wenn bis dahin alles geklappt hat, wird das Gerät als Device angezeigt, wenn man eine alexa-smart-home-v3 anlegt.
Wenn man dann die Google- Anbindung geschafft hat, kann man mit einer Debug- Node wunderbar die Node- Events reinkommen sehen, wenn man die Google Home Kommandos spricht
Hier der komplette Node-Red-Code
[
    {
        "id": "806162448d18ac14",
        "type": "tab",
        "label": "Nachtlichter",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "d044ea01444a971e",
        "type": "tab",
        "label": "Morgensonne",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "67a1adb0.e42284",
        "type": "tab",
        "label": "Sunrise",
        "disabled": false,
        "info": ""
    },
    {
        "id": "8e566f01.3cb7e",
        "type": "tab",
        "label": "Nathalie Nachtlicht",
        "disabled": false,
        "info": ""
    },
    {
        "id": "d81b425e4d857f1d",
        "type": "tab",
        "label": "Vitrine",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "06e0f70d4768d26a",
        "type": "tab",
        "label": "Ladekontrolle",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "b9dc955b9fa84b3f",
        "type": "tab",
        "label": "Arbeitszimmer",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "a835cf98310dcb70",
        "type": "tab",
        "label": "SatIP Empfänger",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "128b9e6ffb5a44da",
        "type": "tab",
        "label": "Dashboard Morgenlichter",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "32c1fd5e.098ec2",
        "type": "tab",
        "label": "Zuul- Websocket",
        "disabled": false,
        "info": ""
    },
    {
        "id": "20f5b48f.283ffc",
        "type": "subflow",
        "name": "Timer Settings (2)",
        "info": "",
        "category": "",
        "in": [
            {
                "x": 500,
                "y": 320,
                "wires": [
                    {
                        "id": "dd09ea56.667bf8"
                    }
                ]
            }
        ],
        "out": [
            {
                "x": 740,
                "y": 320,
                "wires": [
                    {
                        "id": "dd09ea56.667bf8",
                        "port": 0
                    }
                ]
            }
        ],
        "env": [
            {
                "name": "TimerNumber",
                "type": "num",
                "value": ""
            },
            {
                "name": "PayloadON",
                "type": "str",
                "value": ""
            },
            {
                "name": "PayloadOFF",
                "type": "str",
                "value": ""
            }
        ],
        "color": "#DDAA99"
    },
    {
        "id": "059bca2abc83dd01",
        "type": "mqtt-broker",
        "name": "mqtt",
        "broker": "mqtt",
        "port": "1883",
        "clientid": "",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "4",
        "keepalive": "60",
        "cleansession": true,
        "autoUnsubscribe": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "sessionExpiry": ""
    },
    {
        "id": "4025a95e85247f7b",
        "type": "websocket-client",
        "path": "ws://zuulac:8000/",
        "tls": "",
        "wholemsg": "false",
        "hb": "0",
        "subprotocol": ""
    },
    {
        "id": "84ca84997ca40b2b",
        "type": "alexa-smart-home-v3-conf",
        "username": "steffenkoehler",
        "mqttserver": "mq-red.cb-net.co.uk",
        "webapiurl": "red.cb-net.co.uk",
        "contextName": "memory"
    },
    {
        "id": "f68a58dad3a415d7",
        "type": "ui-base",
        "name": "My Dashboard",
        "path": "/dashboard",
        "appIcon": "",
        "includeClientData": true,
        "acceptsClientConfig": [
            "ui-notification",
            "ui-control"
        ],
        "showPathInSidebar": false,
        "headerContent": "page",
        "navigationStyle": "default",
        "titleBarStyle": "default",
        "showReconnectNotification": true,
        "notificationDisplayTime": 1,
        "showDisconnectNotification": true,
        "allowInstall": true
    },
    {
        "id": "6b4a8aa538269f22",
        "type": "ui-theme",
        "name": "Default Theme",
        "colors": {
            "surface": "#ffffff",
            "primary": "#0094CE",
            "bgPage": "#eeeeee",
            "groupBg": "#ffffff",
            "groupOutline": "#cccccc"
        },
        "sizes": {
            "density": "default",
            "pagePadding": "12px",
            "groupGap": "12px",
            "groupBorderRadius": "4px",
            "widgetGap": "12px"
        }
    },
    {
        "id": "faa61e092a1033e6",
        "type": "ui-page",
        "name": "Lichter",
        "ui": "f68a58dad3a415d7",
        "path": "/page1",
        "icon": "home",
        "layout": "grid",
        "theme": "6b4a8aa538269f22",
        "breakpoints": [
            {
                "name": "Default",
                "px": "0",
                "cols": "3"
            },
            {
                "name": "Tablet",
                "px": "576",
                "cols": "6"
            },
            {
                "name": "Small Desktop",
                "px": "768",
                "cols": "9"
            },
            {
                "name": "Desktop",
                "px": "1024",
                "cols": "12"
            }
        ],
        "order": 1,
        "className": "",
        "visible": "true",
        "disabled": "false"
    },
    {
        "id": "a08df7b2703d7adf",
        "type": "ui-group",
        "name": "Schalter",
        "page": "faa61e092a1033e6",
        "width": 6,
        "height": 1,
        "order": 1,
        "showTitle": true,
        "className": "",
        "visible": "true",
        "disabled": "false",
        "groupType": "default"
    },
    {
        "id": "dd09ea56.667bf8",
        "type": "function",
        "z": "20f5b48f.283ffc",
        "name": "",
        "func": "var x = env.get(\"TimerNumber\"); \nvar y = env.get(\"PayloadON\"); \nvar z = env.get(\"PayloadOFF\"); \n\nflow.set(\"$parent.Timer\"+x, x);\nflow.set(\"$parent.Payload\"+x+\"_on\", y);\nflow.set(\"$parent.Payload\"+x+\"_off\", z);\n\n\n\nmsg.payload = \"Your timer \" + x + \" has been set\";\n\nreturn msg;\n",
        "outputs": 1,
        "noerr": 0,
        "x": 600,
        "y": 320,
        "wires": [
            []
        ]
    },
    {
        "id": "dd504f7211099e5f",
        "type": "schedex",
        "z": "806162448d18ac14",
        "name": "Dunkelheit",
        "passthroughunhandled": false,
        "suspended": false,
        "lat": "53.327275",
        "lon": "8.477777",
        "ontime": "21:45",
        "ontopic": "",
        "onpayload": "ON",
        "onoffset": 0,
        "onrandomoffset": 0,
        "offtime": "sunrise",
        "offtopic": "",
        "offpayload": "OFF",
        "offoffset": 0,
        "offrandomoffset": 0,
        "mon": true,
        "tue": true,
        "wed": true,
        "thu": true,
        "fri": true,
        "sat": true,
        "sun": true,
        "x": 370,
        "y": 80,
        "wires": [
            [
                "8896526d3968af27"
            ]
        ]
    },
    {
        "id": "f89cb08278b19366",
        "type": "link out",
        "z": "806162448d18ac14",
        "name": "Abends",
        "mode": "link",
        "links": [],
        "x": 1025,
        "y": 120,
        "wires": []
    },
    {
        "id": "db71b6d178e1f608",
        "type": "switch",
        "z": "806162448d18ac14",
        "name": "An und Aus",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            },
            {
                "t": "false"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 870,
        "y": 140,
        "wires": [
            [
                "f89cb08278b19366"
            ],
            [
                "c3a7a8cb9d0e9066"
            ]
        ]
    },
    {
        "id": "c3a7a8cb9d0e9066",
        "type": "link out",
        "z": "806162448d18ac14",
        "name": "Morgens",
        "mode": "link",
        "links": [
            "26cc962b9d3bfc79",
            "6a33b4045fa24a5c",
            "f2493ce1650268f2"
        ],
        "x": 1025,
        "y": 160,
        "wires": []
    },
    {
        "id": "427d398252fc6ea6",
        "type": "link out",
        "z": "806162448d18ac14",
        "name": "Dunkelheit",
        "mode": "link",
        "links": [
            "fa74251f3690f52d"
        ],
        "x": 1105,
        "y": 80,
        "wires": []
    },
    {
        "id": "227713a38e9c3fb2",
        "type": "alexa-smart-home-v3",
        "z": "806162448d18ac14",
        "conf": "84ca84997ca40b2b",
        "device": "39313",
        "acknowledge": true,
        "name": "Morgensonne",
        "topic": "Sonne",
        "x": 490,
        "y": 280,
        "wires": [
            [
                "3903df5baa7e7504",
                "fe656d0e17f4f7d0"
            ]
        ]
    },
    {
        "id": "3903df5baa7e7504",
        "type": "debug",
        "z": "806162448d18ac14",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 690,
        "y": 400,
        "wires": []
    },
    {
        "id": "39c6967ec7775363",
        "type": "switch",
        "z": "806162448d18ac14",
        "name": "ON-OFF",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            },
            {
                "t": "false"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 940,
        "y": 280,
        "wires": [
            [
                "90a61768daa0b5f6"
            ],
            [
                "2a9339433f2b2d8f"
            ]
        ]
    },
    {
        "id": "90a61768daa0b5f6",
        "type": "link out",
        "z": "806162448d18ac14",
        "name": "Morgensonne An",
        "mode": "link",
        "links": [
            "f2493ce1650268f2",
            "dd715b75ba033f3e"
        ],
        "x": 1095,
        "y": 280,
        "wires": []
    },
    {
        "id": "2a9339433f2b2d8f",
        "type": "link out",
        "z": "806162448d18ac14",
        "name": "Morgensonne Aus",
        "mode": "link",
        "links": [
            "6a33b4045fa24a5c",
            "f2493ce1650268f2"
        ],
        "x": 1095,
        "y": 320,
        "wires": []
    },
    {
        "id": "5f38f775dfbeaa9c",
        "type": "inject",
        "z": "806162448d18ac14",
        "name": "Aktuelle On/Off Abfrage",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "info_local",
        "payloadType": "str",
        "x": 120,
        "y": 80,
        "wires": [
            [
                "dd504f7211099e5f"
            ]
        ]
    },
    {
        "id": "5f4aed668c312586",
        "type": "debug",
        "z": "806162448d18ac14",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 850,
        "y": 40,
        "wires": []
    },
    {
        "id": "daa0f2e77175b08e",
        "type": "inject",
        "z": "806162448d18ac14",
        "name": "Dunkelheit OFF",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "OFF",
        "payloadType": "str",
        "x": 100,
        "y": 140,
        "wires": [
            [
                "dd504f7211099e5f"
            ]
        ]
    },
    {
        "id": "f5c4577f9a766627",
        "type": "debug",
        "z": "806162448d18ac14",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 730,
        "y": 220,
        "wires": []
    },
    {
        "id": "4e2d2c2d49f4f418",
        "type": "function",
        "z": "806162448d18ac14",
        "name": "Treshold Ping failures",
        "func": "\nvar previous = context.get('ping_treshold')||0;\nvar trigger_level = 120 // 120 ticks a 6 ticks per min = 20 mins delay\nif ( msg.payload === false){\n    if (previous< trigger_level){\n        previous ++\n        if (previous >= trigger_level){\n            // negative trigger\n            previous=trigger_level\n            context.set('ping_treshold',previous)\n            msg.payload=false\n            return msg // returns false as falling edge\n        }\n        context.set('ping_treshold',previous)\n    }\n}else{\n    if (previous > 0){\n        previous=0 \n        // positive trigger\n        context.set('ping_treshold',previous)\n        msg.payload=true\n        return msg\n    }\n}\nreturn null\n",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 420,
        "y": 180,
        "wires": [
            [
                "f5c4577f9a766627",
                "72f133dddbb8e1c6"
            ]
        ]
    },
    {
        "id": "5f6ed5a33d387b50",
        "type": "ping",
        "z": "806162448d18ac14",
        "protocol": "Automatic",
        "mode": "timed",
        "name": "",
        "host": "Pixel-8",
        "timer": "20",
        "inputs": 0,
        "x": 70,
        "y": 180,
        "wires": [
            [
                "4e2d2c2d49f4f418"
            ]
        ]
    },
    {
        "id": "8896526d3968af27",
        "type": "change",
        "z": "806162448d18ac14",
        "name": "ONOFF to Bool",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "ON",
                "fromt": "str",
                "to": "true",
                "tot": "bool"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "OFF",
                "fromt": "str",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 600,
        "y": 80,
        "wires": [
            [
                "427d398252fc6ea6",
                "5f4aed668c312586",
                "db71b6d178e1f608"
            ]
        ]
    },
    {
        "id": "fe656d0e17f4f7d0",
        "type": "change",
        "z": "806162448d18ac14",
        "name": "ONOFF to Bool",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "ON",
                "fromt": "str",
                "to": "true",
                "tot": "bool"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "OFF",
                "fromt": "str",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 740,
        "y": 280,
        "wires": [
            [
                "39c6967ec7775363"
            ]
        ]
    },
    {
        "id": "72f133dddbb8e1c6",
        "type": "switch",
        "z": "806162448d18ac14",
        "name": "Allow only FALSE message",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "false"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 740,
        "y": 180,
        "wires": [
            [
                "c3a7a8cb9d0e9066"
            ]
        ]
    },
    {
        "id": "08df6f023ea8dc6b",
        "type": "mqtt out",
        "z": "d044ea01444a971e",
        "name": "Morgensonne",
        "topic": "home/sunrise1/set",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "059bca2abc83dd01",
        "x": 1560,
        "y": 620,
        "wires": []
    },
    {
        "id": "4926620580762ce5",
        "type": "inject",
        "z": "d044ea01444a971e",
        "name": "",
        "props": [
            {
                "p": "payload",
                "v": "{\"state\":\"ON\"}",
                "vt": "json"
            },
            {
                "p": "topic",
                "v": "",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"state\":\"ON\"}",
        "payloadType": "json",
        "x": 930,
        "y": 720,
        "wires": [
            [
                "1464bde8027b0004"
            ]
        ]
    },
    {
        "id": "6e8216935c42e810",
        "type": "inject",
        "z": "d044ea01444a971e",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"state\":\"OFF\"}",
        "payloadType": "json",
        "x": 920,
        "y": 800,
        "wires": [
            [
                "1464bde8027b0004"
            ]
        ]
    },
    {
        "id": "dd715b75ba033f3e",
        "type": "link in",
        "z": "d044ea01444a971e",
        "name": "Sonnemaufgang An",
        "links": [
            "90a61768daa0b5f6",
            "b812abcfda391d30"
        ],
        "x": 195,
        "y": 620,
        "wires": [
            [
                "b3f70f0813abc7c6"
            ]
        ]
    },
    {
        "id": "6a33b4045fa24a5c",
        "type": "link in",
        "z": "d044ea01444a971e",
        "name": "Sonne aus",
        "links": [
            "2a9339433f2b2d8f",
            "c3a7a8cb9d0e9066"
        ],
        "x": 845,
        "y": 580,
        "wires": [
            [
                "b7be36446f2f8e9d"
            ]
        ]
    },
    {
        "id": "aefc43ca878864ba",
        "type": "mqtt in",
        "z": "d044ea01444a971e",
        "name": "",
        "topic": "home/sunrise1",
        "qos": "2",
        "datatype": "json",
        "broker": "059bca2abc83dd01",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 180,
        "y": 300,
        "wires": [
            [
                "e70d130e6ede457a",
                "5c6263f34f1cc806"
            ]
        ]
    },
    {
        "id": "e5120db2242d1916",
        "type": "function",
        "z": "d044ea01444a971e",
        "name": "ChangedState",
        "func": "var previous = context.get('previous')||'';\nvar msg_state=msg.payload.state\nif (previous!= msg_state){\n    context.set('previous',msg_state);\n    msg.payload=msg_state;\n    return msg;\n}else{\n    return null;\n}",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 400,
        "y": 380,
        "wires": [
            [
                "74c89caddb018cce"
            ]
        ]
    },
    {
        "id": "e029be296f1ef9a9",
        "type": "inject",
        "z": "d044ea01444a971e",
        "name": "Sunrise Movie",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"effect\":\"sunrise\",\"transition\":\"600\"}",
        "payloadType": "json",
        "x": 930,
        "y": 760,
        "wires": [
            [
                "1464bde8027b0004"
            ]
        ]
    },
    {
        "id": "d3e4cb9ab0f34fdf",
        "type": "change",
        "z": "d044ea01444a971e",
        "name": "Switch ON",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 570,
        "y": 460,
        "wires": [
            [
                "d7203ba84b2cd31f",
                "0c36fc7b7736a319"
            ]
        ]
    },
    {
        "id": "b3f70f0813abc7c6",
        "type": "change",
        "z": "d044ea01444a971e",
        "name": "Request Sunrise",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"effect\":\"sunrise\",\"transition\":\"600\"}",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 330,
        "y": 620,
        "wires": [
            [
                "d3e4cb9ab0f34fdf",
                "1464bde8027b0004"
            ]
        ]
    },
    {
        "id": "74c89caddb018cce",
        "type": "change",
        "z": "d044ea01444a971e",
        "name": "ONOFF to Bool",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "ON",
                "fromt": "str",
                "to": "true",
                "tot": "bool"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "OFF",
                "fromt": "str",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 600,
        "y": 380,
        "wires": [
            [
                "d7203ba84b2cd31f",
                "616848466ff2e8d2"
            ]
        ]
    },
    {
        "id": "b7be36446f2f8e9d",
        "type": "change",
        "z": "d044ea01444a971e",
        "name": "bool to State",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "true",
                "fromt": "bool",
                "to": "{\"state\": \"ON\"}",
                "tot": "json"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "false",
                "fromt": "bool",
                "to": "{\"state\": \"OFF\"}",
                "tot": "json"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1070,
        "y": 460,
        "wires": [
            [
                "1464bde8027b0004"
            ]
        ]
    },
    {
        "id": "d7203ba84b2cd31f",
        "type": "ui-switch",
        "z": "d044ea01444a971e",
        "name": "Morgensonne",
        "label": "Morgensonne",
        "group": "a08df7b2703d7adf",
        "order": 9,
        "width": 0,
        "height": 0,
        "passthru": false,
        "decouple": false,
        "topic": "payload",
        "topicType": "msg",
        "style": "",
        "className": "",
        "layout": "row-spread",
        "clickableArea": "switch",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "",
        "oncolor": "",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "",
        "offcolor": "",
        "x": 800,
        "y": 460,
        "wires": [
            [
                "b7be36446f2f8e9d",
                "231a6371e2b10277"
            ]
        ]
    },
    {
        "id": "4755f75988167ecd",
        "type": "ui-button",
        "z": "d044ea01444a971e",
        "group": "a08df7b2703d7adf",
        "name": "Effekt 1",
        "label": "Effekt 1",
        "order": 3,
        "width": 0,
        "height": 0,
        "emulateClick": false,
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "iconPosition": "left",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "buttonColor": "",
        "textColor": "",
        "iconColor": "",
        "enableClick": true,
        "enablePointerdown": false,
        "pointerdownPayload": "",
        "pointerdownPayloadType": "str",
        "enablePointerup": false,
        "pointerupPayload": "",
        "pointerupPayloadType": "str",
        "x": 960,
        "y": 880,
        "wires": [
            [
                "1464bde8027b0004"
            ]
        ]
    },
    {
        "id": "458d2ac841454277",
        "type": "ui-button",
        "z": "d044ea01444a971e",
        "group": "a08df7b2703d7adf",
        "name": "Effekt 2",
        "label": "Effekt 2",
        "order": 2,
        "width": 0,
        "height": 0,
        "emulateClick": false,
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "iconPosition": "left",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "buttonColor": "",
        "textColor": "",
        "iconColor": "",
        "enableClick": true,
        "enablePointerdown": false,
        "pointerdownPayload": "",
        "pointerdownPayloadType": "str",
        "enablePointerup": false,
        "pointerupPayload": "",
        "pointerupPayloadType": "str",
        "x": 960,
        "y": 940,
        "wires": [
            [
                "1464bde8027b0004"
            ]
        ]
    },
    {
        "id": "911823150a09f3bc",
        "type": "ui-button",
        "z": "d044ea01444a971e",
        "group": "a08df7b2703d7adf",
        "name": "Effekt 3",
        "label": "Effekt 3",
        "order": 1,
        "width": 0,
        "height": 0,
        "emulateClick": false,
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "iconPosition": "left",
        "payload": "",
        "payloadType": "str",
        "topic": "topic",
        "topicType": "msg",
        "buttonColor": "",
        "textColor": "",
        "iconColor": "",
        "enableClick": true,
        "enablePointerdown": false,
        "pointerdownPayload": "",
        "pointerdownPayloadType": "str",
        "enablePointerup": false,
        "pointerupPayload": "",
        "pointerupPayloadType": "str",
        "x": 960,
        "y": 1000,
        "wires": [
            [
                "1464bde8027b0004"
            ]
        ]
    },
    {
        "id": "616848466ff2e8d2",
        "type": "debug",
        "z": "d044ea01444a971e",
        "name": "debug 1",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 820,
        "y": 300,
        "wires": []
    },
    {
        "id": "231a6371e2b10277",
        "type": "debug",
        "z": "d044ea01444a971e",
        "name": "debug 2",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 820,
        "y": 360,
        "wires": []
    },
    {
        "id": "e70d130e6ede457a",
        "type": "debug",
        "z": "d044ea01444a971e",
        "name": "debug 3",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 680,
        "y": 180,
        "wires": []
    },
    {
        "id": "0c36fc7b7736a319",
        "type": "debug",
        "z": "d044ea01444a971e",
        "name": "debug 5",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 700,
        "y": 560,
        "wires": []
    },
    {
        "id": "1464bde8027b0004",
        "type": "function",
        "z": "d044ea01444a971e",
        "name": "store state in Flow",
        "func": "flow.set(\"state\", msg.payload.state);\nreturn msg;",
        "outputs": 1,
        "timeout": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1310,
        "y": 620,
        "wires": [
            [
                "08df6f023ea8dc6b",
                "1469e0fefc27aa2f"
            ]
        ]
    },
    {
        "id": "1469e0fefc27aa2f",
        "type": "debug",
        "z": "d044ea01444a971e",
        "name": "Morgensonne Input",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 1550,
        "y": 460,
        "wires": []
    },
    {
        "id": "5c6263f34f1cc806",
        "type": "function",
        "z": "d044ea01444a971e",
        "name": "react on wrong state",
        "func": "var correct_state = flow.get('state');\nnode.warn(correct_state);\nvar msg_state=msg.payload.state\nif (correct_state == \"OFF\" && msg_state ==\"ON\"){\n    msg.payload=false; // try to switch the lamp off again\n    node.warn(\"Try to switch off\");\n    return [null, msg];\n}else{\n    return [msg, null];\n}",
        "outputs": 2,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 580,
        "y": 60,
        "wires": [
            [
                "e5120db2242d1916"
            ],
            [
                "b7be36446f2f8e9d"
            ]
        ]
    },
    {
        "id": "3fec84a9.e74f6c",
        "type": "inject",
        "z": "67a1adb0.e42284",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"effect\":\"sunrise\",\"transition\":600}",
        "payloadType": "json",
        "x": 280,
        "y": 200,
        "wires": [
            [
                "163d12b6.a7b6fd"
            ]
        ]
    },
    {
        "id": "163d12b6.a7b6fd",
        "type": "mqtt out",
        "z": "67a1adb0.e42284",
        "name": "",
        "topic": "home/sunrise2/set",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "059bca2abc83dd01",
        "x": 710,
        "y": 160,
        "wires": []
    },
    {
        "id": "deef52c7.5f52e",
        "type": "inject",
        "z": "67a1adb0.e42284",
        "name": "",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"state\":\"OFF\"}",
        "payloadType": "json",
        "x": 300,
        "y": 240,
        "wires": [
            [
                "163d12b6.a7b6fd"
            ]
        ]
    },
    {
        "id": "5bf020f9.803f4",
        "type": "inject",
        "z": "67a1adb0.e42284",
        "name": "",
        "props": [
            {
                "p": "payload",
                "v": "{\"state\":\"ON\"}",
                "vt": "json"
            },
            {
                "p": "topic",
                "v": "",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"state\":\"ON\"}",
        "payloadType": "json",
        "x": 290,
        "y": 280,
        "wires": [
            [
                "163d12b6.a7b6fd"
            ]
        ]
    },
    {
        "id": "3ebdb00c.5f7a3",
        "type": "inject",
        "z": "67a1adb0.e42284",
        "name": "",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"effect\":\"aqua\"}",
        "payloadType": "json",
        "x": 300,
        "y": 40,
        "wires": [
            [
                "163d12b6.a7b6fd"
            ]
        ]
    },
    {
        "id": "7a921fd3.17fb7",
        "type": "inject",
        "z": "67a1adb0.e42284",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"effect\":\"sunrise\",\"loop\":\"false\"}",
        "payloadType": "json",
        "x": 280,
        "y": 120,
        "wires": [
            [
                "163d12b6.a7b6fd"
            ]
        ]
    },
    {
        "id": "3121006f.2d812",
        "type": "inject",
        "z": "67a1adb0.e42284",
        "name": "",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"effect\":\"sunrOse\"}",
        "payloadType": "json",
        "x": 310,
        "y": 160,
        "wires": [
            [
                "163d12b6.a7b6fd"
            ]
        ]
    },
    {
        "id": "62633276.25399c",
        "type": "inject",
        "z": "67a1adb0.e42284",
        "name": "",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"effect\":\"sunrise\"}",
        "payloadType": "json",
        "x": 310,
        "y": 80,
        "wires": [
            [
                "163d12b6.a7b6fd"
            ]
        ]
    },
    {
        "id": "ab71e19d.8f1ab",
        "type": "mqtt in",
        "z": "8e566f01.3cb7e",
        "name": "",
        "topic": "stat/sonoff522BFF/POWER",
        "qos": "2",
        "datatype": "auto",
        "broker": "059bca2abc83dd01",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 160,
        "y": 100,
        "wires": [
            [
                "4b855817.514258",
                "72fc0a46.dfb914"
            ]
        ]
    },
    {
        "id": "4b855817.514258",
        "type": "debug",
        "z": "8e566f01.3cb7e",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 390,
        "y": 40,
        "wires": []
    },
    {
        "id": "3ea4ffbd.61c7b",
        "type": "mqtt out",
        "z": "8e566f01.3cb7e",
        "name": "",
        "topic": "cmnd/sonoff522BFF/POWER",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "059bca2abc83dd01",
        "x": 1520,
        "y": 220,
        "wires": []
    },
    {
        "id": "7d9fda11.feee64",
        "type": "inject",
        "z": "8e566f01.3cb7e",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "topic",
        "payload": "false",
        "payloadType": "bool",
        "x": 860,
        "y": 280,
        "wires": [
            [
                "17737f6e08e44023"
            ]
        ]
    },
    {
        "id": "af4205d9.42c1d8",
        "type": "inject",
        "z": "8e566f01.3cb7e",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "topic",
        "payload": "true",
        "payloadType": "bool",
        "x": 860,
        "y": 220,
        "wires": [
            [
                "17737f6e08e44023"
            ]
        ]
    },
    {
        "id": "72fc0a46.dfb914",
        "type": "function",
        "z": "8e566f01.3cb7e",
        "name": "ChangesOnly",
        "func": "var previous = context.get('previous')||'';\n\nif (previous!= msg.payload){\n    context.set('previous',msg.payload);\n    return msg;\n}else{\n    return null;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 400,
        "y": 100,
        "wires": [
            [
                "93856a67c260212f"
            ]
        ]
    },
    {
        "id": "fa74251f3690f52d",
        "type": "link in",
        "z": "8e566f01.3cb7e",
        "name": "Nachtlicht",
        "links": [
            "427d398252fc6ea6"
        ],
        "x": 1015,
        "y": 320,
        "wires": [
            [
                "a16ab5789893380a",
                "17737f6e08e44023"
            ]
        ]
    },
    {
        "id": "a16ab5789893380a",
        "type": "debug",
        "z": "8e566f01.3cb7e",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 1290,
        "y": 320,
        "wires": []
    },
    {
        "id": "d634211e59f88f22",
        "type": "ui-switch",
        "z": "8e566f01.3cb7e",
        "name": "Nathalies Licht",
        "label": "Nathalie Licht",
        "group": "a08df7b2703d7adf",
        "order": 4,
        "width": 0,
        "height": 0,
        "passthru": false,
        "decouple": false,
        "topic": "topic",
        "topicType": "msg",
        "style": "",
        "className": "",
        "layout": "row-spread",
        "clickableArea": "switch",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "",
        "oncolor": "",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "",
        "offcolor": "",
        "x": 840,
        "y": 100,
        "wires": [
            [
                "17737f6e08e44023"
            ]
        ]
    },
    {
        "id": "17737f6e08e44023",
        "type": "change",
        "z": "8e566f01.3cb7e",
        "name": "Bool to ONOFF",
        "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": 1240,
        "y": 260,
        "wires": [
            [
                "3ea4ffbd.61c7b"
            ]
        ]
    },
    {
        "id": "93856a67c260212f",
        "type": "change",
        "z": "8e566f01.3cb7e",
        "name": "ONOFF to Bool",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "ON",
                "fromt": "str",
                "to": "true",
                "tot": "bool"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "OFF",
                "fromt": "str",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 620,
        "y": 100,
        "wires": [
            [
                "d634211e59f88f22"
            ]
        ]
    },
    {
        "id": "fd35e0f9d1f37657",
        "type": "mqtt in",
        "z": "d81b425e4d857f1d",
        "name": "",
        "topic": "stat/tasmota_77CE12/POWER",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "059bca2abc83dd01",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 170,
        "y": 120,
        "wires": [
            [
                "ea9b7c21cb80a28e"
            ]
        ]
    },
    {
        "id": "23e2248f994f1c94",
        "type": "mqtt out",
        "z": "d81b425e4d857f1d",
        "name": "",
        "topic": "cmnd/tasmota_77CE12/POWER",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "059bca2abc83dd01",
        "x": 1730,
        "y": 240,
        "wires": []
    },
    {
        "id": "067ae418c00b5ac7",
        "type": "inject",
        "z": "d81b425e4d857f1d",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "topic",
        "payload": "true",
        "payloadType": "bool",
        "x": 1140,
        "y": 220,
        "wires": [
            [
                "45cc3e34cb24ba26"
            ]
        ]
    },
    {
        "id": "1253680161c34dbd",
        "type": "inject",
        "z": "d81b425e4d857f1d",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "topic",
        "payload": "false",
        "payloadType": "bool",
        "x": 1140,
        "y": 280,
        "wires": [
            [
                "45cc3e34cb24ba26"
            ]
        ]
    },
    {
        "id": "ea9b7c21cb80a28e",
        "type": "function",
        "z": "d81b425e4d857f1d",
        "name": "ChangesOnly",
        "func": "var previous = context.get('previous')||'';\n\nif (previous!= msg.payload){\n    context.set('previous',msg.payload);\n    return msg;\n}else{\n    return null;\n}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 460,
        "y": 120,
        "wires": [
            [
                "afe41f2d4c6a8cf8"
            ]
        ]
    },
    {
        "id": "26cc962b9d3bfc79",
        "type": "link in",
        "z": "d81b425e4d857f1d",
        "name": "Nachtlicht",
        "links": [
            "2a9339433f2b2d8f",
            "90a61768daa0b5f6",
            "b812abcfda391d30",
            "c3a7a8cb9d0e9066"
        ],
        "x": 1215,
        "y": 340,
        "wires": [
            [
                "45cc3e34cb24ba26"
            ]
        ]
    },
    {
        "id": "e8b4d50fcafcd810",
        "type": "ui-switch",
        "z": "d81b425e4d857f1d",
        "name": "Vitrine",
        "label": "Vitrine",
        "group": "a08df7b2703d7adf",
        "order": 5,
        "width": 0,
        "height": 0,
        "passthru": false,
        "decouple": false,
        "topic": "topic",
        "topicType": "msg",
        "style": "",
        "className": "",
        "layout": "row-spread",
        "clickableArea": "switch",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "",
        "oncolor": "",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "",
        "offcolor": "",
        "x": 930,
        "y": 120,
        "wires": [
            [
                "45cc3e34cb24ba26"
            ]
        ]
    },
    {
        "id": "45cc3e34cb24ba26",
        "type": "change",
        "z": "d81b425e4d857f1d",
        "name": "Bool to ONOFF",
        "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": 1440,
        "y": 240,
        "wires": [
            [
                "23e2248f994f1c94"
            ]
        ]
    },
    {
        "id": "afe41f2d4c6a8cf8",
        "type": "change",
        "z": "d81b425e4d857f1d",
        "name": "ONOFF to Bool",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "ON",
                "fromt": "str",
                "to": "true",
                "tot": "bool"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "OFF",
                "fromt": "str",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 720,
        "y": 120,
        "wires": [
            [
                "e8b4d50fcafcd810",
                "39b92997dd7d90f0"
            ]
        ]
    },
    {
        "id": "39b92997dd7d90f0",
        "type": "debug",
        "z": "d81b425e4d857f1d",
        "name": "debug 4",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 940,
        "y": 380,
        "wires": []
    },
    {
        "id": "c7d551328dabd0f5",
        "type": "mqtt in",
        "z": "06e0f70d4768d26a",
        "name": "",
        "topic": "stat/tasmota_502D3E/POWER",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "059bca2abc83dd01",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 190,
        "y": 120,
        "wires": [
            [
                "ded4c03b26bcb68c"
            ]
        ]
    },
    {
        "id": "7ed17a2f56647345",
        "type": "mqtt out",
        "z": "06e0f70d4768d26a",
        "name": "",
        "topic": "cmnd/tasmota_502D3E/POWER",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "059bca2abc83dd01",
        "x": 1750,
        "y": 240,
        "wires": []
    },
    {
        "id": "e69d4e3b68941ae6",
        "type": "inject",
        "z": "06e0f70d4768d26a",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "topic",
        "payload": "true",
        "payloadType": "bool",
        "x": 1160,
        "y": 220,
        "wires": [
            [
                "dbeb78b2d34e56df"
            ]
        ]
    },
    {
        "id": "580ad27a111e2632",
        "type": "inject",
        "z": "06e0f70d4768d26a",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "topic",
        "payload": "false",
        "payloadType": "bool",
        "x": 1160,
        "y": 280,
        "wires": [
            [
                "dbeb78b2d34e56df"
            ]
        ]
    },
    {
        "id": "ded4c03b26bcb68c",
        "type": "function",
        "z": "06e0f70d4768d26a",
        "name": "ChangesOnly",
        "func": "var previous = context.get('previous')||'';\n\nif (previous!= msg.payload){\n    context.set('previous',msg.payload);\n    return msg;\n}else{\n    return null;\n}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 480,
        "y": 120,
        "wires": [
            [
                "0912574b39ac87fc"
            ]
        ]
    },
    {
        "id": "7f182a302d2fe5ed",
        "type": "ui-switch",
        "z": "06e0f70d4768d26a",
        "name": "Ladekontrollleuchte",
        "label": "Ladekontrollleuchte",
        "group": "a08df7b2703d7adf",
        "order": 6,
        "width": 0,
        "height": 0,
        "passthru": false,
        "decouple": false,
        "topic": "topic",
        "topicType": "msg",
        "style": "",
        "className": "",
        "layout": "row-spread",
        "clickableArea": "switch",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "",
        "oncolor": "",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "",
        "offcolor": "",
        "x": 990,
        "y": 120,
        "wires": [
            [
                "dbeb78b2d34e56df"
            ]
        ]
    },
    {
        "id": "dbeb78b2d34e56df",
        "type": "change",
        "z": "06e0f70d4768d26a",
        "name": "Bool to ONOFF",
        "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": 1460,
        "y": 240,
        "wires": [
            [
                "7ed17a2f56647345"
            ]
        ]
    },
    {
        "id": "0912574b39ac87fc",
        "type": "change",
        "z": "06e0f70d4768d26a",
        "name": "ONOFF to Bool",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "ON",
                "fromt": "str",
                "to": "true",
                "tot": "bool"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "OFF",
                "fromt": "str",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 740,
        "y": 120,
        "wires": [
            [
                "7f182a302d2fe5ed",
                "cb62523d5a2e5810"
            ]
        ]
    },
    {
        "id": "cb62523d5a2e5810",
        "type": "debug",
        "z": "06e0f70d4768d26a",
        "name": "debug 6",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 960,
        "y": 380,
        "wires": []
    },
    {
        "id": "03a73c51116f6b71",
        "type": "mqtt in",
        "z": "06e0f70d4768d26a",
        "name": "",
        "topic": "wallbox/e66368254f8e2d2c/data",
        "qos": "2",
        "datatype": "json",
        "broker": "059bca2abc83dd01",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 290,
        "y": 480,
        "wires": [
            [
                "e0b4f19d4822145c",
                "750690d13173326a",
                "90245f37cb1ea996"
            ]
        ]
    },
    {
        "id": "e0b4f19d4822145c",
        "type": "debug",
        "z": "06e0f70d4768d26a",
        "name": "Wallbox",
        "active": true,
        "tosidebar": false,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 500,
        "y": 580,
        "wires": []
    },
    {
        "id": "750690d13173326a",
        "type": "ui-chart",
        "z": "06e0f70d4768d26a",
        "group": "a08df7b2703d7adf",
        "name": "Stromaufnahme",
        "label": "Wallbox",
        "order": 10,
        "chartType": "line",
        "category": "topic",
        "categoryType": "msg",
        "xAxisLabel": "",
        "xAxisProperty": "",
        "xAxisPropertyType": "timestamp",
        "xAxisType": "time",
        "xAxisFormat": "",
        "xAxisFormatType": "auto",
        "xmin": "",
        "xmax": "",
        "yAxisLabel": "",
        "yAxisProperty": "payload.signal",
        "yAxisPropertyType": "msg",
        "ymin": "",
        "ymax": "",
        "bins": 10,
        "action": "append",
        "stackSeries": false,
        "pointShape": "circle",
        "pointRadius": 4,
        "showLegend": true,
        "removeOlder": 1,
        "removeOlderUnit": "3600",
        "removeOlderPoints": "",
        "colors": [
            "#0095ff",
            "#ff0000",
            "#ff7f0e",
            "#2ca02c",
            "#a347e1",
            "#d62728",
            "#ff9896",
            "#9467bd",
            "#c5b0d5"
        ],
        "textColor": [
            "#666666"
        ],
        "textColorDefault": true,
        "gridColor": [
            "#e5e5e5"
        ],
        "gridColorDefault": true,
        "width": 6,
        "height": 8,
        "className": "",
        "interpolation": "linear",
        "x": 740,
        "y": 480,
        "wires": [
            []
        ]
    },
    {
        "id": "90245f37cb1ea996",
        "type": "function",
        "z": "06e0f70d4768d26a",
        "name": "Hysteresis",
        "func": "var previous = context.get('previous')||false;\n\nif (previous && msg.payload.signal<1000){\n    previous=false\n    context.set('previous',previous);\n    msg.payload=previous\n    return msg;\n}else if \n(! previous && msg.payload.signal>2000){\n    previous=true\n    context.set('previous',previous);\n    msg.payload=previous\n    return msg;\n}\nelse {\n    return null;\n}",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 690,
        "y": 260,
        "wires": [
            [
                "dbeb78b2d34e56df"
            ]
        ]
    },
    {
        "id": "71b11e7cd31cdd39",
        "type": "mqtt in",
        "z": "b9dc955b9fa84b3f",
        "name": "",
        "topic": "ESPURNA-CB3DC3/relay/1",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "059bca2abc83dd01",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 160,
        "y": 120,
        "wires": [
            [
                "871d578729d17faa"
            ]
        ]
    },
    {
        "id": "64d0e733d7309e4a",
        "type": "mqtt out",
        "z": "b9dc955b9fa84b3f",
        "name": "",
        "topic": "ESPURNA-CB3DC3/relay/1/set",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "059bca2abc83dd01",
        "x": 1370,
        "y": 200,
        "wires": []
    },
    {
        "id": "f78873543d55a1c9",
        "type": "inject",
        "z": "b9dc955b9fa84b3f",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "topic",
        "payload": "true",
        "payloadType": "bool",
        "x": 880,
        "y": 180,
        "wires": [
            [
                "29884ef27095bb7d"
            ]
        ]
    },
    {
        "id": "c4373aa5e7abbf09",
        "type": "inject",
        "z": "b9dc955b9fa84b3f",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "topic",
        "payload": "false",
        "payloadType": "bool",
        "x": 880,
        "y": 240,
        "wires": [
            [
                "29884ef27095bb7d"
            ]
        ]
    },
    {
        "id": "43a7818120e07cb7",
        "type": "function",
        "z": "b9dc955b9fa84b3f",
        "name": "ChangesOnly",
        "func": "var previous = context.get('previous')||'';\n\nif (previous!= msg.payload){\n    context.set('previous',msg.payload);\n    return msg;\n}else{\n    return null;\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 580,
        "y": 120,
        "wires": [
            [
                "5857b25ae32aafbb"
            ]
        ]
    },
    {
        "id": "f2493ce1650268f2",
        "type": "link in",
        "z": "b9dc955b9fa84b3f",
        "name": "Nachtlicht",
        "links": [
            "2a9339433f2b2d8f",
            "90a61768daa0b5f6",
            "b812abcfda391d30",
            "c3a7a8cb9d0e9066"
        ],
        "x": 895,
        "y": 300,
        "wires": [
            [
                "29884ef27095bb7d"
            ]
        ]
    },
    {
        "id": "5857b25ae32aafbb",
        "type": "ui-switch",
        "z": "b9dc955b9fa84b3f",
        "name": "Arbeitszimmer",
        "label": "Arbeitszimmer",
        "group": "a08df7b2703d7adf",
        "order": 7,
        "width": 0,
        "height": 0,
        "passthru": false,
        "decouple": false,
        "topic": "topic",
        "topicType": "str",
        "style": "",
        "className": "",
        "layout": "row-spread",
        "clickableArea": "switch",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "",
        "oncolor": "",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "",
        "offcolor": "",
        "x": 820,
        "y": 100,
        "wires": [
            [
                "29884ef27095bb7d"
            ]
        ]
    },
    {
        "id": "29884ef27095bb7d",
        "type": "change",
        "z": "b9dc955b9fa84b3f",
        "name": "Bool to ONOFF",
        "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": 1120,
        "y": 200,
        "wires": [
            [
                "64d0e733d7309e4a"
            ]
        ]
    },
    {
        "id": "871d578729d17faa",
        "type": "change",
        "z": "b9dc955b9fa84b3f",
        "name": "Number to Bool",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "1",
                "fromt": "num",
                "to": "true",
                "tot": "bool"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "0",
                "fromt": "num",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 400,
        "y": 120,
        "wires": [
            [
                "43a7818120e07cb7"
            ]
        ]
    },
    {
        "id": "a78a2e025fcd8c09",
        "type": "mqtt in",
        "z": "a835cf98310dcb70",
        "name": "",
        "topic": "stat/tasmota_33C654/POWER",
        "qos": "2",
        "datatype": "auto",
        "broker": "059bca2abc83dd01",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 140,
        "y": 100,
        "wires": [
            [
                "305070209b180bbd",
                "69d5d46fee845fcd"
            ]
        ]
    },
    {
        "id": "305070209b180bbd",
        "type": "debug",
        "z": "a835cf98310dcb70",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 370,
        "y": 40,
        "wires": []
    },
    {
        "id": "bd4230dc4eea4557",
        "type": "mqtt out",
        "z": "a835cf98310dcb70",
        "name": "",
        "topic": "cmnd/tasmota_33C654/POWER",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "059bca2abc83dd01",
        "x": 850,
        "y": 160,
        "wires": []
    },
    {
        "id": "bd88385b6c9e80a3",
        "type": "inject",
        "z": "a835cf98310dcb70",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "On",
        "payload": "ON",
        "payloadType": "str",
        "x": 570,
        "y": 160,
        "wires": [
            [
                "bd4230dc4eea4557"
            ]
        ]
    },
    {
        "id": "975e796daf41f1de",
        "type": "inject",
        "z": "a835cf98310dcb70",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "Aus",
        "payload": "OFF",
        "payloadType": "str",
        "x": 580,
        "y": 220,
        "wires": [
            [
                "bd4230dc4eea4557"
            ]
        ]
    },
    {
        "id": "69d5d46fee845fcd",
        "type": "function",
        "z": "a835cf98310dcb70",
        "name": "ChangesOnly",
        "func": "var previous = context.get('previous')||'';\n\nif (previous!= msg.payload){\n    context.set('previous',msg.payload);\n    return msg;\n}else{\n    return null;\n}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 380,
        "y": 100,
        "wires": [
            [
                "697db4e52ce07ec6"
            ]
        ]
    },
    {
        "id": "697db4e52ce07ec6",
        "type": "ui-switch",
        "z": "a835cf98310dcb70",
        "name": "SatTV- Power",
        "label": "SatIP",
        "group": "a08df7b2703d7adf",
        "order": 8,
        "width": 0,
        "height": 0,
        "passthru": false,
        "decouple": false,
        "topic": "topic",
        "topicType": "msg",
        "style": "",
        "className": "",
        "layout": "row-spread",
        "clickableArea": "switch",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "",
        "oncolor": "",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "",
        "offcolor": "",
        "x": 600,
        "y": 100,
        "wires": [
            [
                "bd4230dc4eea4557"
            ]
        ]
    },
    {
        "id": "f788f61c153d70b3",
        "type": "ui_time_scheduler",
        "z": "128b9e6ffb5a44da",
        "group": "Schalter",
        "name": "",
        "startDay": "1",
        "refresh": 60,
        "devices": [
            "Morgensonne"
        ],
        "singleOff": false,
        "onlySendChange": false,
        "customPayload": false,
        "eventMode": true,
        "eventOptions": [
            {
                "label": "Ein",
                "event": "ON"
            }
        ],
        "sendTopic": false,
        "lat": "53.32738518075729",
        "lon": "",
        "customContextStore": "",
        "outputs": 2,
        "order": 16,
        "width": 0,
        "height": 0,
        "x": 470,
        "y": 300,
        "wires": [
            [
                "be4a5bddf35ba028"
            ],
            [
                "033b7a6461592678",
                "b812abcfda391d30"
            ]
        ]
    },
    {
        "id": "be4a5bddf35ba028",
        "type": "debug",
        "z": "128b9e6ffb5a44da",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 790,
        "y": 300,
        "wires": []
    },
    {
        "id": "033b7a6461592678",
        "type": "debug",
        "z": "128b9e6ffb5a44da",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 790,
        "y": 360,
        "wires": []
    },
    {
        "id": "b812abcfda391d30",
        "type": "link out",
        "z": "128b9e6ffb5a44da",
        "name": "Morgensonne an",
        "mode": "link",
        "links": [
            "dd715b75ba033f3e",
            "f2493ce1650268f2"
        ],
        "x": 595,
        "y": 420,
        "wires": []
    },
    {
        "id": "95de46d2.506628",
        "type": "websocket out",
        "z": "32c1fd5e.098ec2",
        "name": "zuul",
        "server": "",
        "client": "4025a95e85247f7b",
        "x": 970,
        "y": 260,
        "wires": []
    },
    {
        "id": "555024da.a2d69c",
        "type": "websocket in",
        "z": "32c1fd5e.098ec2",
        "name": "Zuul",
        "server": "",
        "client": "4025a95e85247f7b",
        "x": 50,
        "y": 240,
        "wires": [
            [
                "3c6d3630.41e21a"
            ]
        ]
    },
    {
        "id": "4786210e.c8c08",
        "type": "debug",
        "z": "32c1fd5e.098ec2",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 990,
        "y": 200,
        "wires": []
    },
    {
        "id": "ed3f53ff.e57f5",
        "type": "comment",
        "z": "32c1fd5e.098ec2",
        "name": "Client",
        "info": "",
        "x": 90,
        "y": 60,
        "wires": []
    },
    {
        "id": "9ed49469.3c9358",
        "type": "json",
        "z": "32c1fd5e.098ec2",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 370,
        "y": 240,
        "wires": [
            [
                "c262156a.4af558",
                "a28d858a.f80338"
            ]
        ]
    },
    {
        "id": "e9b01134.ce2ed",
        "type": "change",
        "z": "32c1fd5e.098ec2",
        "name": "Set OTP Parameters",
        "rules": [
            {
                "t": "set",
                "p": "payload.type",
                "pt": "msg",
                "to": "ac_otprequest",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload.config.result",
                "pt": "msg",
                "to": "zuul_active",
                "tot": "flow"
            },
            {
                "t": "set",
                "p": "payload.config.msg",
                "pt": "msg",
                "to": "zuul_msg",
                "tot": "flow"
            },
            {
                "t": "set",
                "p": "payload.config.type",
                "pt": "msg",
                "to": "qrcode",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload.config.keypadchars",
                "pt": "msg",
                "to": "1234567890ABCD",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "payload.config.length",
                "pt": "msg",
                "to": "10",
                "tot": "num"
            },
            {
                "t": "set",
                "p": "payload.config.valid_time",
                "pt": "msg",
                "to": "60",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 760,
        "y": 260,
        "wires": [
            [
                "4786210e.c8c08",
                "95de46d2.506628"
            ]
        ]
    },
    {
        "id": "c262156a.4af558",
        "type": "switch",
        "z": "32c1fd5e.098ec2",
        "name": "OTP Request",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "jsonata_exp",
                "v": "payload.type = \"otprequest\"",
                "vt": "jsonata"
            },
            {
                "t": "jsonata_exp",
                "v": "payload.type = \"tokenstate\"  and  payload.config.valid = true",
                "vt": "jsonata"
            },
            {
                "t": "else"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 3,
        "x": 520,
        "y": 240,
        "wires": [
            [
                "e9b01134.ce2ed"
            ],
            [
                "665b57f8.5d4768",
                "34cec614d74bf158"
            ],
            []
        ]
    },
    {
        "id": "3c6d3630.41e21a",
        "type": "function",
        "z": "32c1fd5e.098ec2",
        "name": "Kill Session",
        "func": "msg._session = \"\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 230,
        "y": 240,
        "wires": [
            [
                "9ed49469.3c9358"
            ]
        ]
    },
    {
        "id": "9d6e5f0.a99c5a",
        "type": "inject",
        "z": "32c1fd5e.098ec2",
        "name": "TRUE",
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "A",
        "payload": "true",
        "payloadType": "bool",
        "x": 110,
        "y": 540,
        "wires": [
            [
                "4808ec97.fa80b4"
            ]
        ]
    },
    {
        "id": "a7f4c80.7e8b738",
        "type": "inject",
        "z": "32c1fd5e.098ec2",
        "name": "FALSE",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "A",
        "payload": "false",
        "payloadType": "bool",
        "x": 110,
        "y": 600,
        "wires": [
            [
                "4808ec97.fa80b4"
            ]
        ]
    },
    {
        "id": "4808ec97.fa80b4",
        "type": "rbe",
        "z": "32c1fd5e.098ec2",
        "name": "Detect Change",
        "func": "rbe",
        "gap": "",
        "start": "",
        "inout": "out",
        "property": "payload",
        "x": 300,
        "y": 560,
        "wires": [
            [
                "925f2da0.bef99",
                "9952b919.359a08"
            ]
        ]
    },
    {
        "id": "925f2da0.bef99",
        "type": "change",
        "z": "32c1fd5e.098ec2",
        "name": "zuul_active",
        "rules": [
            {
                "t": "set",
                "p": "zuul_active",
                "pt": "flow",
                "to": "payload",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 730,
        "y": 560,
        "wires": [
            []
        ]
    },
    {
        "id": "f4ae387f.d10208",
        "type": "change",
        "z": "32c1fd5e.098ec2",
        "name": "zuul_msg_Ok",
        "rules": [
            {
                "t": "set",
                "p": "zuul_msg",
                "pt": "flow",
                "to": "Hinein spaziert! Dein QRCode ist {0} Sekunden gültig",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 740,
        "y": 600,
        "wires": [
            []
        ]
    },
    {
        "id": "9952b919.359a08",
        "type": "switch",
        "z": "32c1fd5e.098ec2",
        "name": "Set OTP Message",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            },
            {
                "t": "false"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 510,
        "y": 620,
        "wires": [
            [
                "f4ae387f.d10208"
            ],
            [
                "e274611f.2f38e"
            ]
        ]
    },
    {
        "id": "e274611f.2f38e",
        "type": "change",
        "z": "32c1fd5e.098ec2",
        "name": "zuul_msg_Denied",
        "rules": [
            {
                "t": "set",
                "p": "zuul_msg",
                "pt": "flow",
                "to": "Passt gerade nicht..",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 750,
        "y": 640,
        "wires": [
            []
        ]
    },
    {
        "id": "58cf6248.7a406c",
        "type": "websocket out",
        "z": "32c1fd5e.098ec2",
        "name": "zuul",
        "server": "",
        "client": "4025a95e85247f7b",
        "x": 970,
        "y": 140,
        "wires": []
    },
    {
        "id": "595c27c8.759778",
        "type": "template",
        "z": "32c1fd5e.098ec2",
        "name": "Send Token",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"type\": \"ac_tokenquery\", \"config\":{ \"token\": \"{{{payload}}}\", \"doorid\": \"1\" } }",
        "output": "json",
        "x": 730,
        "y": 140,
        "wires": [
            [
                "58cf6248.7a406c",
                "4786210e.c8c08"
            ]
        ]
    },
    {
        "id": "5769967d.e270b8",
        "type": "mqtt out",
        "z": "32c1fd5e.098ec2",
        "name": "",
        "topic": "qrdoor/e661308e3728732/open",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "059bca2abc83dd01",
        "x": 1050,
        "y": 340,
        "wires": []
    },
    {
        "id": "a28d858a.f80338",
        "type": "debug",
        "z": "32c1fd5e.098ec2",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 510,
        "y": 340,
        "wires": []
    },
    {
        "id": "3a7fb79f.fd3da8",
        "type": "mqtt in",
        "z": "32c1fd5e.098ec2",
        "name": "",
        "topic": "qrdoor/e661308e3728732/code",
        "qos": "2",
        "datatype": "utf8",
        "broker": "059bca2abc83dd01",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 210,
        "y": 140,
        "wires": [
            [
                "595c27c8.759778",
                "4786210e.c8c08"
            ]
        ]
    },
    {
        "id": "665b57f8.5d4768",
        "type": "change",
        "z": "32c1fd5e.098ec2",
        "name": "Filter Door-ID",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.config.msg.doorid",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 740,
        "y": 480,
        "wires": [
            [
                "6e298f59.4ff2f",
                "fa57583d.4a4738"
            ]
        ]
    },
    {
        "id": "6e298f59.4ff2f",
        "type": "mqtt out",
        "z": "32c1fd5e.098ec2",
        "name": "Modem",
        "topic": "serial/dial",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "059bca2abc83dd01",
        "x": 980,
        "y": 480,
        "wires": []
    },
    {
        "id": "fa57583d.4a4738",
        "type": "debug",
        "z": "32c1fd5e.098ec2",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 940,
        "y": 560,
        "wires": []
    },
    {
        "id": "34cec614d74bf158",
        "type": "change",
        "z": "32c1fd5e.098ec2",
        "name": "Set ON time",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "5",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 750,
        "y": 340,
        "wires": [
            [
                "5769967d.e270b8"
            ]
        ]
    },
    {
        "id": "c29d994684d5fb7a",
        "type": "global-config",
        "env": [],
        "modules": {
            "node-red-contrib-alexa-smart-home": "0.4.68",
            "@flowfuse/node-red-dashboard": "1.26.0",
            "node-red-contrib-schedex": "1.10.7",
            "node-red-node-ping": "0.3.3",
            "node-red-contrib-ui-time-scheduler": "1.17.2"
        }
    }
]