From d635aefb96b545b58f1941292850ce9af8382b93 Mon Sep 17 00:00:00 2001 From: rxf Date: Sun, 28 Dec 2025 08:43:17 +0000 Subject: [PATCH] Create project --- .gitignore | 1 + README.md | 9 + flows.json | 12851 ++++++++++++++++++++++++++++++++++++++++++++++ flows_cred.json | 3 + package.json | 12 + 5 files changed, 12876 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 flows.json create mode 100644 flows_cred.json create mode 100644 package.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c9c01a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.backup \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..c7c74e6 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +smarthome +========= + +Alle Flows für die Smarthome-Steuerung + +### About + +This is your project's README.md file. It helps users understand what your +project does, how to use it and anything else they may need to know. \ No newline at end of file diff --git a/flows.json b/flows.json new file mode 100644 index 0000000..c770b16 --- /dev/null +++ b/flows.json @@ -0,0 +1,12851 @@ +[ + { + "id": "86a9e7aa0c304b46", + "type": "tab", + "label": "Daten in InfluxDB schreiben", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "5bea18a0180b611e", + "type": "tab", + "label": "Bad_Licht_Lüfter", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "7a4080d8574c7aec", + "type": "tab", + "label": "Terassenlicht", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "32e861899dcd9239", + "type": "tab", + "label": "Waschmaschine", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "85bb16dbe6fb391c", + "type": "tab", + "label": "Rollladen_Alle", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "9f826196c06ea578", + "type": "tab", + "label": "CL_Fenster_Heizung", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "c4c5067b315c581d", + "type": "tab", + "label": "Bambulab", + "disabled": false, + "info": "Temperatur und Feuchte im AMS\n", + "env": [] + }, + { + "id": "809a218ad0189c5f", + "type": "tab", + "label": "Dragino_52T", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "0f906ba2e4239518", + "type": "tab", + "label": "Aussen", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "c23febdb48bc9327", + "type": "tab", + "label": "EZ_Licht", + "disabled": false, + "info": "# Licht im Esszimmer\n\nWird mit dem Bewegungsmelder über der Türe \n**Ein** geschaltet, wenn der Helligkeits-Sensor \neine Helligkeit über _helltop_ meldet. Andernfalls ist das Auslösen gesperrt.\n**AUS** geschaltet wird nur mit dem Schalter. Wird der Schalter auf **AUS** geschaltet, \nwird das Wiedereinschalten durch den BW-Melder für 5 sec gesperrt.\nLiegt die Helligkeit unter _hellbot_, so wird das schalten durch den BW freigegeben\n\n## Versionen\nV1.0.0 2025-06-30 rxf\n - Erster Versuch\n\n\n", + "env": [] + }, + { + "id": "f3d03e63c0a7d73a", + "type": "tab", + "label": "TV-Szene_old", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "50665df0b8356ca9", + "type": "tab", + "label": "TV_Szene", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "0ecc4a0267296324", + "type": "tab", + "label": "Garage", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "5e52b4b48abccb4a", + "type": "tab", + "label": "Licht_CL", + "disabled": false, + "info": "## Beschreibung\nDas Clo-Licht mit dem Präsenzmelder bzw. dem Taste EIN/Aus-Schalten.\nBie Starten des Präsenzmelders wird das Lich EIN geschaltet. Ist die Uhrzeit \nzwischen 0:00 jnd 7:00 ME(S)Z, dann wird 'gedimmed' eingeschlatet, zu allen anderen Zeiten mit voller Helligkeit.\nIst der Präsenzmelder abgelaufen, wird wieder AUS geschaltet.\n\nGleiches gilt für den Handtaster.\nEIN lange gedrückt schaltet auf jeden Fall voll hell EIN.\n\n## Version\nVersion | Datum | Author | Bemerkung\n-------|--------|-------|---\nV 1.1 | 2025-10-16 | rxf | Präsenzmelder Reaktion nur bei Änderung\nV 1.0 | 2025-10-06 | rxf | erste lauffähige Version\n", + "env": [] + }, + { + "id": "cada61fae691e52f", + "type": "tab", + "label": "Licht_Computer", + "disabled": false, + "info": "## Beschreibung\nDas Licht am Computer wird mit dem Taster. bzw dem Bewegungsmelder geschaltet.\n\nDer Taster (HM-Taster) schaltet das Licht direkt ON/OFF (da ist ein Aktor mit eingebaut).\nDas EIN-Schalten mit dem Tasten stezt ein Dauer-Flag, so dass der Ablauf des Timers\nkeine Wirkung mehr zeigt. Erst das AUS-Schalten mit dem Taster läscht das Dauer-Flag wieder.\n\nPer Bewegungsmelder wird das Licht für eine bestimmete Zeit (z.Zt. 5min) EIN geschaltet.\nDer Timer wird von weiteren Bewegungen nachgetriggert.\n\n## Version\nVersion | Datum | Author | Bemerkung\n-------|--------|-------|---\nV 1.0 | 2025-10-06 | rxf | erste lauffähige Version\n", + "env": [] + }, + { + "id": "d7346bc232ce6ad2", + "type": "tab", + "label": "Computertisch_HB", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "24fa477cc8f07351", + "type": "tab", + "label": "Licht_FL", + "disabled": false, + "info": "## Beschreibung\nDas Flur-Licht mit dem Bewegungsmelder bzw. dem Taster EIN/Aus-Schalten.\nBeim Starten des Bewegungsmelders wird das Licht EIN geschaltet. Ist die Uhrzeit \nzwischen 0:00 und 8:00 ME(S)Z, dann wird 'gedimmed' eingeschlatet (nur eine \nder 3 Flammen, alle anderen sind AUS), zu allen anderen Zeiten mit voller Helligkeit.\nIst der Bewegungsmelder abgelaufen, wird wieder AUS geschaltet.\n\nBei EIN-Schalten mit dem Taster bleiben die Lampen auf EIN, bis sie mit dem Taster \nwieder AUS geschaltet werden.\n\nAdaptiert von dem iobroker Script.\n\n## Version\nVersion | Datum | Author | Bemerkung\n-------|--------|-------|---\nV 1.1 | 2025-10-21 | rxf | Licht bis 8:00 gedimmed\nV 1.0 | 2025-10-13 | rxf | erste lauffähige Version\n", + "env": [] + }, + { + "id": "958848d44d119e45", + "type": "tab", + "label": "Briefkasten", + "disabled": false, + "info": "## Beschreibung\nWenn am Briefkasten die Klappe geöffnet wird, dann\nwird ein Signal ausgelöst. Daraufhin wird eine\nPUSH-Nachricht auf das Handy/Watch gesendet.\n\n## Version\nVersion | Datum | Author | Bemerkung\n-------|--------|-------|---\nV 1.0 | 2025-10-13 | rxf | erste lauffähige Version\n", + "env": [] + }, + { + "id": "9af67c7112bb80c5", + "type": "tab", + "label": "Computertisch_rxf", + "disabled": false, + "info": "", + "env": [] + }, + { + "id": "168cd2080e21b71d", + "type": "junction", + "z": "86a9e7aa0c304b46", + "x": 960, + "y": 2780, + "wires": [ + [ + "4b70842673899382", + "8b9ab3a5f87659ca" + ] + ] + }, + { + "id": "80c8ea47336a8e19", + "type": "junction", + "z": "86a9e7aa0c304b46", + "x": 900, + "y": 380, + "wires": [ + [ + "0fed74f96c718b5f", + "4ec35d1ec93a275d" + ] + ] + }, + { + "id": "19c631abc815d4c7", + "type": "junction", + "z": "86a9e7aa0c304b46", + "x": 940, + "y": 120, + "wires": [ + [ + "e7113fd1f1cb5375", + "057123c49327e982", + "4d375d7b71ed95af" + ] + ] + }, + { + "id": "4b7b9693aed95eb0", + "type": "junction", + "z": "86a9e7aa0c304b46", + "x": 880, + "y": 1180, + "wires": [ + [ + "df52eb75d71fc1d0" + ] + ] + }, + { + "id": "1bb091e608dd2ace", + "type": "junction", + "z": "7a4080d8574c7aec", + "x": 920, + "y": 840, + "wires": [ + [ + "f809e339a2a3808a", + "aadb62d1e501514e" + ] + ] + }, + { + "id": "c46bc662805c3ea3", + "type": "junction", + "z": "86a9e7aa0c304b46", + "x": 520, + "y": 2180, + "wires": [ + [ + "7371b0de49444879" + ] + ] + }, + { + "id": "21a3752d5b338a61", + "type": "junction", + "z": "86a9e7aa0c304b46", + "x": 1100, + "y": 1300, + "wires": [ + [ + "af03a5e1a841517a" + ] + ] + }, + { + "id": "b023da7344e3bad8", + "type": "junction", + "z": "86a9e7aa0c304b46", + "x": 1040, + "y": 320, + "wires": [ + [ + "8e697f374b0d59c2", + "0fed74f96c718b5f", + "71da459e1eb610b3" + ] + ] + }, + { + "id": "e641c1e401bb8c58", + "type": "junction", + "z": "86a9e7aa0c304b46", + "x": 820, + "y": 560, + "wires": [ + [ + "80c8ea47336a8e19" + ] + ] + }, + { + "id": "90ce85278d757821", + "type": "junction", + "z": "9f826196c06ea578", + "x": 1120, + "y": 480, + "wires": [ + [ + "cb958466b4f4951d", + "5a999538205738cd", + "0d09956c322460bc" + ] + ] + }, + { + "id": "3d0189e0d1661e53", + "type": "junction", + "z": "9f826196c06ea578", + "x": 580, + "y": 520, + "wires": [ + [ + "60c4434b2d846c46", + "8877d804c0a2c596", + "dec850c65b5c8c5a" + ] + ] + }, + { + "id": "2583cb353da1a31e", + "type": "junction", + "z": "9f826196c06ea578", + "x": 880, + "y": 380, + "wires": [ + [] + ] + }, + { + "id": "0c0faa8d4cd3b990", + "type": "junction", + "z": "9f826196c06ea578", + "x": 1160, + "y": 780, + "wires": [ + [ + "dbb38ac3029b3aac" + ] + ] + }, + { + "id": "44ca85124df5860f", + "type": "junction", + "z": "5bea18a0180b611e", + "x": 480, + "y": 1240, + "wires": [ + [ + "7bea3b0a9a3fa867", + "c5e47b82a3d54979", + "dd0f0be1678b1a2d" + ] + ] + }, + { + "id": "7fc8a93be966e775", + "type": "junction", + "z": "5bea18a0180b611e", + "x": 840, + "y": 1260, + "wires": [ + [ + "73c3385ab4453988", + "9583b4c1c7b73c86" + ] + ] + }, + { + "id": "daa5b689b37b84c0", + "type": "junction", + "z": "86a9e7aa0c304b46", + "x": 960, + "y": 2940, + "wires": [ + [ + "0c73b4f2ae547ad3", + "ed1e5e52559341a9" + ] + ] + }, + { + "id": "54605c8c74454a94", + "type": "junction", + "z": "5bea18a0180b611e", + "x": 400, + "y": 1120, + "wires": [ + [ + "08509a2c0848ff01", + "4c621c845cbad50a", + "8f20d4e5e473a9fb", + "96934666499d9111", + "6327d8d395b6d0d1" + ] + ] + }, + { + "id": "72073df2b886b72a", + "type": "junction", + "z": "7a4080d8574c7aec", + "x": 920, + "y": 900, + "wires": [ + [ + "2258ca1fe98d9c60", + "4d22db93cf0e6e0c" + ] + ] + }, + { + "id": "a6381ef4be3a869b", + "type": "junction", + "z": "85bb16dbe6fb391c", + "x": 791.1000061035156, + "y": 422.1000061035156, + "wires": [ + [ + "97aed912c480bc99", + "651da90bdb2f954f", + "4785a5b4933cd3fe" + ] + ] + }, + { + "id": "21431dc5a7600959", + "type": "junction", + "z": "7a4080d8574c7aec", + "x": 1300, + "y": 500, + "wires": [ + [ + "044e9a90c4c664af", + "5036edec1efbf944" + ] + ] + }, + { + "id": "dcd9fe37c8f6fa3e", + "type": "junction", + "z": "7a4080d8574c7aec", + "x": 580, + "y": 320, + "wires": [ + [ + "c65ab1792c3c7187", + "f015cb3114009f49" + ] + ] + }, + { + "id": "b4d4592c5aa03410", + "type": "junction", + "z": "85bb16dbe6fb391c", + "x": 800, + "y": 1400, + "wires": [ + [ + "4a7b886cc55c59ef", + "321074393c65012a" + ] + ] + }, + { + "id": "443f14b7b45672c6", + "type": "junction", + "z": "85bb16dbe6fb391c", + "x": 1000, + "y": 1760, + "wires": [ + [ + "b019206106626e9e", + "ff14f67020e558bc" + ] + ] + }, + { + "id": "d28e11d867e00655", + "type": "junction", + "z": "85bb16dbe6fb391c", + "x": 1320, + "y": 2180, + "wires": [ + [ + "37e1477bb82c8327", + "c3553c69292506a3" + ] + ] + }, + { + "id": "bb27fa58b206470d", + "type": "junction", + "z": "5e52b4b48abccb4a", + "x": 260, + "y": 540, + "wires": [ + [ + "c524071a9f1dfc46" + ] + ] + }, + { + "id": "f2fdc53a556ca09f", + "type": "junction", + "z": "5e52b4b48abccb4a", + "x": 700, + "y": 360, + "wires": [ + [ + "b67fa2b35568dbc8", + "aeec1b4c30abf869" + ] + ] + }, + { + "id": "1bbeae1601480cbe", + "type": "junction", + "z": "cada61fae691e52f", + "x": 600, + "y": 380, + "wires": [ + [ + "4b9c876d10aa67d9", + "061c53e4290c9b81" + ] + ] + }, + { + "id": "b73499056a181c50", + "type": "junction", + "z": "24fa477cc8f07351", + "x": 1243.25, + "y": 396.25, + "wires": [ + [ + "64a3b1673c147a50", + "94cc16fc47e3b577" + ] + ] + }, + { + "id": "c46833d59903b816", + "type": "mqtt-broker", + "name": "", + "broker": "mqtt", + "port": "1883", + "clientid": "", + "autoConnect": true, + "usetls": false, + "protocolVersion": "4", + "keepalive": "60", + "cleansession": true, + "birthTopic": "", + "birthQos": "0", + "birthPayload": "", + "birthMsg": {}, + "closeTopic": "", + "closeQos": "0", + "closePayload": "", + "closeMsg": {}, + "willTopic": "", + "willQos": "0", + "willPayload": "", + "willMsg": {}, + "userProps": "", + "sessionExpiry": "" + }, + { + "id": "db07a39246cf7003", + "type": "influxdb", + "hostname": "127.0.0.1", + "port": "8086", + "protocol": "http", + "database": "database", + "name": "nuccy", + "usetls": false, + "tls": "", + "influxdbVersion": "2.0", + "url": "http://192.168.178.92:8086", + "rejectUnauthorized": true + }, + { + "id": "6718450508849828", + "type": "ui_base", + "theme": { + "name": "theme-light", + "lightTheme": { + "default": "#0094CE", + "baseColor": "#0094CE", + "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", + "edited": true, + "reset": false + }, + "darkTheme": { + "default": "#097479", + "baseColor": "#097479", + "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", + "edited": true, + "reset": false + }, + "customTheme": { + "name": "Untitled Theme 1", + "default": "#4B7930", + "baseColor": "#4B7930", + "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif", + "reset": false + }, + "themeState": { + "base-color": { + "default": "#0094CE", + "value": "#0094CE", + "edited": false + }, + "page-titlebar-backgroundColor": { + "value": "#0094CE", + "edited": false + }, + "page-backgroundColor": { + "value": "#fafafa", + "edited": false + }, + "page-sidebar-backgroundColor": { + "value": "#ffffff", + "edited": false + }, + "group-textColor": { + "value": "#1bbfff", + "edited": false + }, + "group-borderColor": { + "value": "#ffffff", + "edited": false + }, + "group-backgroundColor": { + "value": "#ffffff", + "edited": false + }, + "widget-textColor": { + "value": "#111111", + "edited": false + }, + "widget-backgroundColor": { + "value": "#0094ce", + "edited": false + }, + "widget-borderColor": { + "value": "#ffffff", + "edited": false + }, + "base-font": { + "value": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif" + } + }, + "angularTheme": { + "primary": "indigo", + "accents": "blue", + "warn": "red", + "background": "grey", + "palette": "light" + } + }, + "site": { + "name": "Node-RED Dashboard", + "hideToolbar": "false", + "allowSwipe": "false", + "lockMenu": "false", + "allowTempTheme": "true", + "dateFormat": "DD/MM/YYYY", + "sizes": { + "sx": 48, + "sy": 48, + "gx": 3, + "gy": 3, + "cx": 3, + "cy": 3, + "px": 0, + "py": 0 + } + } + }, + { + "id": "51bf0475.ddfd2c", + "type": "ui_group", + "name": "", + "tab": "512b6562849dadee", + "order": 2, + "disp": true, + "width": "8", + "collapse": false, + "className": "" + }, + { + "id": "c398618f77baaf6f", + "type": "ewelink-credentials" + }, + { + "id": "37bd8485e5bff627", + "type": "mongodb4-client", + "name": "", + "protocol": "mongodb", + "hostname": "", + "port": "", + "dbName": "smarthome", + "appName": "", + "authSource": "", + "authMechanism": "DEFAULT", + "tls": false, + "tlsCAFile": "", + "tlsCertificateKeyFile": "", + "tlsInsecure": false, + "connectTimeoutMS": "30000", + "socketTimeoutMS": "0", + "minPoolSize": "0", + "maxPoolSize": "100", + "maxIdleTimeMS": "0", + "uri": "mongodb+srv://rexfue:9JzUXgrZgy1BUqwU@cluster0.2bjs2fc.mongodb.net/?retryWrites=true&w=majority", + "advanced": "{}", + "uriTabActive": "tab-uri-advanced" + }, + { + "id": "874361936f1ce815", + "type": "mongodb4-client", + "name": "", + "protocol": "mongodb", + "hostname": "mongodb", + "port": "", + "dbName": "smarthome", + "appName": "", + "authSource": "", + "authMechanism": "DEFAULT", + "tls": false, + "tlsCAFile": "", + "tlsCertificateKeyFile": "", + "tlsInsecure": false, + "connectTimeoutMS": "30000", + "socketTimeoutMS": "0", + "minPoolSize": "0", + "maxPoolSize": "100", + "maxIdleTimeMS": "0", + "uri": "", + "advanced": "{}", + "uriTabActive": "tab-uri-simple" + }, + { + "id": "512b6562849dadee", + "type": "ui_tab", + "name": "Bad", + "icon": "dashboard", + "order": 2, + "disabled": false, + "hidden": false + }, + { + "id": "c7cf83a81a522047", + "type": "mqtt-broker", + "name": "", + "broker": "192.168.178.92", + "port": "1883", + "clientid": "", + "autoConnect": true, + "usetls": false, + "protocolVersion": "3", + "keepalive": "60", + "cleansession": true, + "birthTopic": "", + "birthQos": "0", + "birthPayload": "", + "birthMsg": {}, + "closeTopic": "", + "closeQos": "0", + "closePayload": "", + "closeMsg": {}, + "willTopic": "", + "willQos": "0", + "willPayload": "", + "willMsg": {}, + "userProps": "", + "sessionExpiry": "" + }, + { + "id": "8a3b8c7fb995c0cc", + "type": "ui_tab", + "name": "Außen", + "icon": "dashboard", + "order": 5, + "disabled": false, + "hidden": false + }, + { + "id": "650272fe9af6cd24", + "type": "ui_group", + "name": "Außen", + "tab": "8a3b8c7fb995c0cc", + "order": 1, + "disp": true, + "width": 8, + "collapse": false, + "className": "" + }, + { + "id": "553e9caf7ebabdd6", + "type": "ui_tab", + "name": "AMS", + "icon": "dashboard", + "order": 3, + "disabled": false, + "hidden": false + }, + { + "id": "0da5c56696a7e8e9", + "type": "ui_group", + "name": "Leistung/Energie", + "tab": "553e9caf7ebabdd6", + "order": 3, + "disp": true, + "width": "6", + "collapse": false, + "className": "" + }, + { + "id": "a8dc70a6237173a2", + "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": "bf39f7747c4cb89e", + "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": "f6d4eacee867782a", + "type": "ui-page", + "name": "Page 1", + "ui": "a8dc70a6237173a2", + "path": "/page1", + "icon": "home", + "layout": "grid", + "theme": "bf39f7747c4cb89e", + "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": 2, + "className": "", + "visible": true, + "disabled": false + }, + { + "id": "fc870cba84c7ab0b", + "type": "ui-group", + "name": "Tor", + "page": "f6d4eacee867782a", + "width": "6", + "height": "1", + "order": 2, + "showTitle": true, + "className": "", + "visible": "true", + "disabled": "false", + "groupType": "default" + }, + { + "id": "e3645fc2dca1359f", + "type": "ui_spacer", + "z": "c4c5067b315c581d", + "name": "spacer", + "group": "0da5c56696a7e8e9", + "order": 3, + "width": 1, + "height": 1 + }, + { + "id": "99402d723b2b1e21", + "type": "ui_spacer", + "z": "c4c5067b315c581d", + "name": "spacer", + "group": "0da5c56696a7e8e9", + "order": 5, + "width": 1, + "height": 1 + }, + { + "id": "3f1a3bcbb0c8aa3b", + "type": "ui_spacer", + "z": "c4c5067b315c581d", + "name": "spacer", + "group": "0da5c56696a7e8e9", + "order": 6, + "width": 1, + "height": 1 + }, + { + "id": "500baab117305070", + "type": "ui_spacer", + "z": "c4c5067b315c581d", + "name": "spacer", + "group": "0da5c56696a7e8e9", + "order": 7, + "width": 1, + "height": 1 + }, + { + "id": "2a375d53c7031e98", + "type": "ui_spacer", + "z": "c4c5067b315c581d", + "name": "spacer", + "group": "0da5c56696a7e8e9", + "order": 8, + "width": 1, + "height": 1 + }, + { + "id": "adf34916dc6801e6", + "type": "ui_spacer", + "z": "c4c5067b315c581d", + "name": "spacer", + "group": "0da5c56696a7e8e9", + "order": 9, + "width": 1, + "height": 1 + }, + { + "id": "4e5d8ea99e128609", + "type": "ui_spacer", + "z": "0f906ba2e4239518", + "name": "spacer", + "group": "650272fe9af6cd24", + "order": 1, + "width": 1, + "height": 1 + }, + { + "id": "7e0b4d54629e83fd", + "type": "ui_spacer", + "z": "0f906ba2e4239518", + "name": "spacer", + "group": "650272fe9af6cd24", + "order": 3, + "width": 1, + "height": 1 + }, + { + "id": "5496b07c554bcd4d", + "type": "ui_spacer", + "z": "0f906ba2e4239518", + "name": "spacer", + "group": "650272fe9af6cd24", + "order": 4, + "width": 1, + "height": 1 + }, + { + "id": "b156ad0584ac7fbb", + "type": "ui_spacer", + "z": "0f906ba2e4239518", + "name": "spacer", + "group": "650272fe9af6cd24", + "order": 6, + "width": 1, + "height": 1 + }, + { + "id": "f77e63041443e335", + "type": "ui_spacer", + "z": "c23febdb48bc9327", + "name": "spacer", + "group": "51bf0475.ddfd2c", + "order": 1, + "width": 1, + "height": 1 + }, + { + "id": "00567b32fc89bd1e", + "type": "ui_spacer", + "z": "c23febdb48bc9327", + "name": "spacer", + "group": "51bf0475.ddfd2c", + "order": 3, + "width": 1, + "height": 1 + }, + { + "id": "8c01f9a37aebd235", + "type": "ui_spacer", + "z": "c23febdb48bc9327", + "name": "spacer", + "group": "51bf0475.ddfd2c", + "order": 4, + "width": 1, + "height": 1 + }, + { + "id": "09ded2e5c01ce729", + "type": "ui_spacer", + "z": "c23febdb48bc9327", + "name": "spacer", + "group": "51bf0475.ddfd2c", + "order": 6, + "width": 1, + "height": 1 + }, + { + "id": "dbdce4bcc146f440", + "type": "config-log", + "logname": "bwlog.config", + "logdir": "logs", + "stamp": "utc", + "logstyle": "plain", + "logrotate": true, + "logcompress": false, + "logrotatecount": "5", + "logsize": "1000" + }, + { + "id": "18fed68ccdfeed7d", + "type": "ui_tab", + "name": "Garage", + "icon": "dashboard", + "order": 4, + "disabled": false, + "hidden": false + }, + { + "id": "f46af736de5b6e66", + "type": "ui_group", + "name": "Tor", + "tab": "18fed68ccdfeed7d", + "order": 1, + "disp": true, + "width": "6", + "collapse": false, + "className": "" + }, + { + "id": "e33c07a1b417c92b", + "type": "ui-group", + "name": "Garage", + "page": "", + "width": "6", + "height": "1", + "order": -1, + "showTitle": true, + "className": "", + "visible": "true", + "disabled": "false", + "groupType": "default" + }, + { + "id": "acf7e619a617fc9a", + "type": "ui-group", + "name": "Computer-Tisch", + "page": "f6d4eacee867782a", + "width": "6", + "height": "1", + "order": 1, + "showTitle": true, + "className": "", + "visible": "true", + "disabled": "false", + "groupType": "default" + }, + { + "id": "bc1acb6b016af1c1", + "type": "ui_group", + "name": "Switch", + "tab": "", + "order": 1, + "disp": true, + "width": "6", + "collapse": false, + "className": "" + }, + { + "id": "8e9c5cd2ce20e067", + "type": "ui-group", + "name": "Computer_Tisch", + "page": "d5934943e3944009", + "width": "6", + "height": "1", + "order": 1, + "showTitle": true, + "className": "", + "visible": "true", + "disabled": "false", + "groupType": "default" + }, + { + "id": "2a373aa10f8ffea7", + "type": "ui-page", + "name": "Computertisch", + "ui": "a8dc70a6237173a2", + "path": "/page1", + "icon": "home", + "layout": "grid", + "theme": "bf39f7747c4cb89e", + "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": 4, + "className": "", + "visible": "true", + "disabled": "false" + }, + { + "id": "d5934943e3944009", + "type": "ui-page", + "name": "Page Name", + "ui": "a8dc70a6237173a2", + "path": "Switch", + "icon": "home", + "layout": "grid", + "theme": "bf39f7747c4cb89e", + "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": 3, + "className": "", + "visible": "true", + "disabled": "false" + }, + { + "id": "9a5095b780d6917f", + "type": "ui-page", + "name": "CT", + "ui": "a8dc70a6237173a2", + "path": "ct", + "icon": "home", + "layout": "grid", + "theme": "bf39f7747c4cb89e", + "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": "2dd3b81710d6bd0a", + "type": "ui-group", + "name": "Group Name", + "page": "9a5095b780d6917f", + "width": "6", + "height": "1", + "order": 1, + "showTitle": true, + "className": "", + "visible": "true", + "disabled": "false", + "groupType": "default" + }, + { + "id": "group1", + "type": "ui_group", + "name": "Computer_Tisch", + "tab": "tab1", + "order": 1, + "disp": true, + "width": "6", + "collapse": false, + "className": "" + }, + { + "id": "tab1", + "type": "ui_tab", + "name": "Haussteuerung", + "icon": "dashboard", + "order": 1 + }, + { + "id": "4d2812cbd43e95b7", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "home66/therme/#", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 250, + "y": 120, + "wires": [ + [ + "b46b0bf234319843" + ] + ] + }, + { + "id": "b46b0bf234319843", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "Temps und gas aufbereiten", + "func": "if(msg.topic.endsWith('temperaturen')) {\n msg.measurement = 'temperaturen'\n}\nif (msg.topic.endsWith('gas')) {\n msg.measurement = 'gas'\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 740, + "y": 120, + "wires": [ + [ + "19c631abc815d4c7" + ] + ] + }, + { + "id": "4d6143b4be180dd3", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "shellies/shelly1-heizung/relay/0", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 290, + "y": 180, + "wires": [ + [ + "f56dfe96cef6c9e1" + ] + ] + }, + { + "id": "057123c49327e982", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 2", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1140, + "y": 60, + "wires": [] + }, + { + "id": "2d6c833e73164d1d", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "hm/status/#", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 230, + "y": 380, + "wires": [ + [ + "64b86058df0b6cfa", + "5a02638b83e73915", + "70f1977a1c65189e", + "28a9cda816b00391" + ] + ] + }, + { + "id": "70f1977a1c65189e", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "erstelle ist/soll-Temps und Ventile", + "func": "let rooms = [\"BA\", \"FL\", \"WZ\", \"SZ\", \"EZ\"] \nlet topics = [\n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\", \"factor\": 100 }, // BA\n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\", \"factor\": 100 }, // FL \n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\", \"factor\": 100 }, // WZ \n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\", \"factor\": 100 }, // SZ \n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\", \"factor\": 100 }, // EZ\n]\nlet pos = msg.topic.indexOf('Heizung_')\nlet room = ''\nif ((msg.topic.indexOf('Heizung_SZ_Gruppe') != -1) || (msg.topic.indexOf('Heizung_SZ_R') != -1)) {\n return\n}\nroom = msg.topic.substring(pos+8,pos+10)\nmsg.payload = { [room] : msg.payload.val}\nlet r = 0\nfor (let x of rooms) {\n if(x == room) {\n break;\n }\n r++\n}\nif (r === 5) {\n return\n}\nif (msg.topic.endsWith(topics[r].valve)) {\n msg.measurement = 'valves'\n msg.payload[rooms[r]] = msg.payload[rooms[r]] * topics[r].factor\n return msg;\n}\nif (msg.topic.endsWith(topics[r].ist)) {\n msg.measurement = 'istTemps'\n return msg;\n}\nif (msg.topic.endsWith(topics[r].set)) {\n msg.measurement = 'setTemps'\n return msg;\n}\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 540, + "y": 380, + "wires": [ + [ + "80c8ea47336a8e19", + "68fb5ddae066f989", + "500b1d7a2efc63fb" + ] + ] + }, + { + "id": "8e697f374b0d59c2", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 3", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1120, + "y": 280, + "wires": [] + }, + { + "id": "96d0fc338d673e0f", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "home66/vzlogger/#", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 250, + "y": 900, + "wires": [ + [ + "cf55cbbf405be02b", + "67608e37315c60dd", + "980ffcb9b3562a71" + ] + ] + }, + { + "id": "cf55cbbf405be02b", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "Arbeit und Leistung aufbereiten", + "func": "if(msg.topic.indexOf('chn0') != -1) {\n msg.payload = { 'arbeit' : msg.payload}\n}\nif (msg.topic.indexOf('chn1') != -1) {\n msg.payload = { 'leistung': msg.payload }\n}\nif (msg.topic.endsWith('id')) {\n return\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 650, + "y": 900, + "wires": [ + [ + "9b487a1cd42204f8", + "69596ad6efc4ec53" + ] + ] + }, + { + "id": "8b9ab3a5f87659ca", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 4", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1160, + "y": 2740, + "wires": [] + }, + { + "id": "350e1f59b14c56a6", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "home66/shellyplus1-luefter/status/switch:0", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 320, + "y": 2780, + "wires": [ + [ + "ae19cf4b8a59083a" + ] + ] + }, + { + "id": "ae19cf4b8a59083a", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "extract Lüfterzusatnd", + "func": "if (msg.payload.output == true) {\n msg.payload = {'luefter': 70}\n} else {\n msg.payload = { 'luefter': 52 }\n}\nflow.set(\"luefter\", msg.payload)\nmsg.measurement = 'bad'\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 740, + "y": 2780, + "wires": [ + [ + "168cd2080e21b71d" + ] + ] + }, + { + "id": "f58e17d96a889284", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "hm/status/Waschmaschine_Messwerte/#", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 320, + "y": 1240, + "wires": [ + [ + "385274fd5a2c8804" + ] + ] + }, + { + "id": "3a825455dd3990c4", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 5", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1480, + "y": 1100, + "wires": [] + }, + { + "id": "df52eb75d71fc1d0", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "extract die Messwerte", + "func": "let value = msg.payload.val\nlet send = false\nif (msg.topic.endsWith('ENERGY_COUNTER')) {\n msg.payload = {'arbeit': value}\n send = true\n}\nif (msg.topic.endsWith('POWER')) {\n msg.payload = { 'leistung': value }\n send = true\n}\nif (msg.topic.endsWith('CURRENT')) {\n msg.payload = { 'strom': value }\n send = true\n}\nif (msg.topic.endsWith('VOLTAGE')) {\n msg.payload = { 'spannung': value }\n send = true\n}\nif (msg.topic.endsWith('FREQUENCY')) {\n msg.payload = { 'frequenz': value }\n send = true\n}\nif(send) {\n return msg;\n}", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1220, + "y": 1180, + "wires": [ + [ + "56b1402383445da7", + "3a825455dd3990c4" + ] + ] + }, + { + "id": "dbc14572b5888996", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "hm/status/Trockner_Messwerte/#", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 290, + "y": 1300, + "wires": [ + [ + "fe861bd491c3e005" + ] + ] + }, + { + "id": "fe861bd491c3e005", + "type": "change", + "z": "86a9e7aa0c304b46", + "name": "", + "rules": [ + { + "t": "set", + "p": "measurement", + "pt": "msg", + "to": "trockner", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 620, + "y": 1300, + "wires": [ + [ + "4b7b9693aed95eb0", + "8a73c559561e08d5" + ] + ] + }, + { + "id": "385274fd5a2c8804", + "type": "change", + "z": "86a9e7aa0c304b46", + "name": "", + "rules": [ + { + "t": "set", + "p": "measurement", + "pt": "msg", + "to": "waschmaschine", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 620, + "y": 1240, + "wires": [ + [ + "4b7b9693aed95eb0", + "391f3b9a3bacdd88" + ] + ] + }, + { + "id": "b525905be3687eb5", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "go-eCharger/010343/status", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 280, + "y": 1660, + "wires": [ + [ + "b602d56c5ecdf7fc", + "74e21176399f1d13" + ] + ] + }, + { + "id": "ae107129cb3cf180", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 6", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1120, + "y": 1600, + "wires": [] + }, + { + "id": "b602d56c5ecdf7fc", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "daten vorbereiten", + "func": "let zustand = parseInt(msg.payload.car)\nif ((zustand > 1) && (zustand <= 4)) {\n let strom = [msg.payload.nrg[4], msg.payload.nrg[5], msg.payload.nrg[6]]\n let power = [msg.payload.nrg[7], msg.payload.nrg[8], msg.payload.nrg[9], msg.payload.nrg[11]]\n msg.payload = { \"I1\": strom[0], \"I2\": strom[1], \"I3\": strom[2], \"P1\": power[0], \"P2\": power[1], \"P3\": power[2], \"Ptot\": power[3], \"gesamt\": parseInt(msg.payload.eto)}\n return msg;\n}", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 690, + "y": 1660, + "wires": [ + [ + "ae107129cb3cf180", + "b14419e197014f22", + "c71309141de72ef5" + ] + ] + }, + { + "id": "f56dfe96cef6c9e1", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "on/off umwandeln", + "func": "if(msg.payload == 'on') {\n msg.payload = {'zustand':80}\n} else {\n msg.payload = {'zustand':0}\n}\nmsg.measurement = 'heizung'\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 710, + "y": 180, + "wires": [ + [ + "19c631abc815d4c7" + ] + ] + }, + { + "id": "ac75a0c76db05a3a", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "extrahiere Fenster/Tuere", + "func": "let pos = -1\nif (msg.topic.indexOf('STATE') !== -1) {\nif ((pos = msg.topic.indexOf('/Fenster_')) !== -1) {\n msg.measurement = 'fenster'\n let stop = msg.topic.indexOf(':')\n msg.room = msg.topic.substring(pos + 9, pos + (stop-pos))\n return msg\n}\nif ((pos = msg.topic.indexOf('/Tuere_')) !== -1) {\n msg.measurement = 'tueren'\n msg.room = msg.topic.substring(pos + 7, pos + 9) + '_terasse'\n return msg\n}\n}", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 650, + "y": 320, + "wires": [ + [ + "32ae0b973871f2f9", + "b00cbdd7007ca2cf" + ] + ] + }, + { + "id": "e7113fd1f1cb5375", + "type": "influxdb out", + "z": "86a9e7aa0c304b46", + "influxdb": "db07a39246cf7003", + "name": "influx_nuccy", + "measurement": "", + "precision": "", + "retentionPolicy": "", + "database": "database", + "precisionV18FluxV20": "s", + "retentionPolicyV18Flux": "", + "org": "citysensor", + "bucket": "therme", + "x": 1190, + "y": 120, + "wires": [] + }, + { + "id": "0fed74f96c718b5f", + "type": "influxdb out", + "z": "86a9e7aa0c304b46", + "influxdb": "db07a39246cf7003", + "name": "influx_nuccy", + "measurement": "", + "precision": "", + "retentionPolicy": "", + "database": "database", + "precisionV18FluxV20": "s", + "retentionPolicyV18Flux": "", + "org": "citysensor", + "bucket": "heizung_temps", + "x": 1190, + "y": 380, + "wires": [] + }, + { + "id": "9b487a1cd42204f8", + "type": "influxdb out", + "z": "86a9e7aa0c304b46", + "influxdb": "db07a39246cf7003", + "name": "influx_nuccy", + "measurement": "vzlogger", + "precision": "", + "retentionPolicy": "", + "database": "database", + "precisionV18FluxV20": "s", + "retentionPolicyV18Flux": "", + "org": "citysensor", + "bucket": "strom", + "x": 1190, + "y": 900, + "wires": [] + }, + { + "id": "4b70842673899382", + "type": "influxdb out", + "z": "86a9e7aa0c304b46", + "influxdb": "db07a39246cf7003", + "name": "influx_nuccy", + "measurement": "", + "precision": "", + "retentionPolicy": "", + "database": "database", + "precisionV18FluxV20": "s", + "retentionPolicyV18Flux": "", + "org": "citysensor", + "bucket": "temp_hum", + "x": 1190, + "y": 2780, + "wires": [] + }, + { + "id": "56b1402383445da7", + "type": "influxdb out", + "z": "86a9e7aa0c304b46", + "influxdb": "db07a39246cf7003", + "name": "influx_nuccy", + "measurement": "", + "precision": "", + "retentionPolicy": "", + "database": "database", + "precisionV18FluxV20": "s", + "retentionPolicyV18Flux": "", + "org": "citysensor", + "bucket": "keller", + "x": 1530, + "y": 1180, + "wires": [] + }, + { + "id": "b14419e197014f22", + "type": "influxdb out", + "z": "86a9e7aa0c304b46", + "influxdb": "db07a39246cf7003", + "name": "influx_nuccy", + "measurement": "goecharger", + "precision": "", + "retentionPolicy": "", + "database": "database", + "precisionV18FluxV20": "s", + "retentionPolicyV18Flux": "", + "org": "citysensor", + "bucket": "auto", + "x": 1210, + "y": 1660, + "wires": [] + }, + { + "id": "69596ad6efc4ec53", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 7", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 960, + "y": 880, + "wires": [] + }, + { + "id": "0630e94e251d736f", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "SZ-TH_1", + "topic": "zigbee2mqtt/TH_1", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 1860, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "398d48e8f6da9b50", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "KT-TH_2", + "topic": "zigbee2mqtt/TH_2", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 1920, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "d9df2ad9c5de5c68", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 2", + "func": "const s2r = [\n { name: \"TH_1\", room: \"SZ\" }, \n { name: \"TH_2\", room: \"KT\" },\n { name: \"TH_3\", room: \"CL\" }, \n { name: \"TH_4\", room: \"KU\" },\n { name: \"TH_5\", room: \"WZ\" },\n { name: \"TH_6\", room: \"EZ\" },\n { name: \"TH_7\", room: \"FL\" },\n { name: \"TH_8\", room: \"KO\" },\n { name: \"TH_9\", room: \"AU\" },\n { name: \"Temp_Feuchte_Mini_1\", room: \"BA\" },\n { name: \"Licht_Sensor\", room: \"BD\" }\n]\nlet room = \"\"\nlet s = msg.topic.split('/')\nfor (let x of s2r) {\n if (x.name === s[1]) {\n room = x.room\n break\n }\n}\nmsg.measurement = room\ndelete msg.payload.linkquality\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 920, + "y": 2120, + "wires": [ + [ + "3ccd32cf4a9e4b11", + "9bed2a1b764095c8" + ] + ] + }, + { + "id": "3ccd32cf4a9e4b11", + "type": "influxdb out", + "z": "86a9e7aa0c304b46", + "influxdb": "db07a39246cf7003", + "name": "influx_nuccy", + "measurement": "", + "precision": "", + "retentionPolicy": "", + "database": "database", + "precisionV18FluxV20": "s", + "retentionPolicyV18Flux": "", + "org": "citysensor", + "bucket": "raumtemps", + "x": 1230, + "y": 2120, + "wires": [] + }, + { + "id": "60864469aca4d41f", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "CL-TH_3", + "topic": "zigbee2mqtt/TH_3", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 1980, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "3966fc5ef51dfa41", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "KÜ-TH_4", + "topic": "zigbee2mqtt/TH_4", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 2040, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "3704bd2b85fa9c7e", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "BA-TH_Mini", + "topic": "zigbee2mqtt/Temp_Feuchte_Mini_1", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 230, + "y": 2340, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "9bed2a1b764095c8", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 28", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1180, + "y": 2020, + "wires": [] + }, + { + "id": "7371b0de49444879", + "type": "delay", + "z": "86a9e7aa0c304b46", + "name": "", + "pauseType": "rate", + "timeout": "5", + "timeoutUnits": "seconds", + "rate": "1", + "nbRateUnits": "2", + "rateUnits": "second", + "randomFirst": "1", + "randomLast": "5", + "randomUnits": "seconds", + "drop": true, + "allowrate": false, + "outputs": 1, + "x": 680, + "y": 2180, + "wires": [ + [ + "d9df2ad9c5de5c68", + "7d644edb8b6448d7" + ] + ] + }, + { + "id": "5a1c90bf0fc446ea", + "type": "mongodb4", + "z": "86a9e7aa0c304b46", + "clientNode": "874361936f1ce815", + "mode": "collection", + "collection": "", + "operation": "", + "output": "toArray", + "maxTimeMS": "0", + "handleDocId": false, + "name": "", + "x": 1250, + "y": 2260, + "wires": [ + [ + "50002a84d65e7602" + ] + ] + }, + { + "id": "7d644edb8b6448d7", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 6", + "func": "const s2r = [\n { name: \"TH_1\", room: \"SZ\" }, \n { name: \"TH_2\", room: \"KT\" },\n { name: \"TH_3\", room: \"EZ\" }, \n { name: \"TH_4\", room: \"KU\" },\n { name: \"TH_5\", room: \"WZ\" },\n { name: \"TH_6\", room: \"EZ\" },\n { name: \"TH_7\", room: \"FL\" },\n { name: \"TH_8\", room: \"KO\" },\n { name: \"TH_9\", room: \"AU\" },\n { name: \"Temp_Feuchte_Mini_1\", room: \"BA\" }, \n { name: \"Licht_Sensor\", room: \"BD\" } \n]\nlet room = \"\"\nlet s = msg.topic.split('/')\nfor (let x of s2r) {\n if (x.name === s[1]) {\n room = x.room\n break\n }\n}\nmsg.operation = \"insertOne\"\nmsg.collection = \"th_sensoren\"\ndelete msg.payload.linkquality\nmsg.payload.room = room\nmsg.payload.datetime = new Date()\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 920, + "y": 2260, + "wires": [ + [ + "dd4f303cf0ebd60a", + "5a1c90bf0fc446ea" + ] + ] + }, + { + "id": "dd4f303cf0ebd60a", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 29", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1240, + "y": 2200, + "wires": [] + }, + { + "id": "50002a84d65e7602", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 30", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1480, + "y": 2260, + "wires": [] + }, + { + "id": "cf5b8ae7977ea244", + "type": "comment", + "z": "86a9e7aa0c304b46", + "name": "Therme und Zustand der Heizung", + "info": "", + "x": 290, + "y": 80, + "wires": [] + }, + { + "id": "7c1b27bef0c78bc3", + "type": "comment", + "z": "86a9e7aa0c304b46", + "name": "Heizthermostaten und Fenster", + "info": "", + "x": 280, + "y": 280, + "wires": [] + }, + { + "id": "5ac03690ed6fee05", + "type": "comment", + "z": "86a9e7aa0c304b46", + "name": "Stromverbrauch", + "info": "", + "x": 240, + "y": 860, + "wires": [] + }, + { + "id": "f742570145e0755a", + "type": "comment", + "z": "86a9e7aa0c304b46", + "name": "Waschmaschine, Trockner, Spülaschine und Kühlschrank", + "info": "", + "x": 370, + "y": 1200, + "wires": [] + }, + { + "id": "9627b35d46599282", + "type": "comment", + "z": "86a9e7aa0c304b46", + "name": "Auto laden", + "info": "", + "x": 220, + "y": 1620, + "wires": [] + }, + { + "id": "636e159306eff1e8", + "type": "comment", + "z": "86a9e7aa0c304b46", + "name": "Raum-Temperaturen und -Feuchte", + "info": "", + "x": 300, + "y": 1820, + "wires": [] + }, + { + "id": "15a2df0897bfbc32", + "type": "comment", + "z": "86a9e7aa0c304b46", + "name": "Bad Lüfterzustand", + "info": "", + "x": 250, + "y": 2740, + "wires": [] + }, + { + "id": "68fb5ddae066f989", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 7", + "func": "let rooms = [\"BA\", \"WZ\", \"FL\", \"SZ\"]\nlet topics = [\n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\" }, // BA\n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\" }, // EZ \n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\" }, // WZ \n { \"valve\": \"VALVE_STATE\", \"set\": \"SET_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\" }, // FL \n { \"valve\": \"VALVE_STATE\", \"set\": \"SET_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\" } // SZ \n]\nlet pos = msg.topic.indexOf('Heizung_')\nif (pos === -1) {\n return\n}\nif ((msg.topic.indexOf('Heizung_SZ_Gruppe') != -1) || (msg.topic.indexOf('Heizung_SZ_2') != -1)) {\n return\n}\nlet room = ''\nroom = msg.topic.substring(pos + 8, pos + 10)\nlet r = 0\nfor (let x of rooms) {\n if (x == room) {\n break;\n }\n r++\n}\nif (r === 5) {\n return\n}\nlet value = msg.payload[room]\nlet payload = context.get('payload') || {}\ncontext.set('payload', payload)\nlet count = context.get('count') || 0\ncontext.set('count', count)\n\nif (msg.topic.endsWith(topics[r].valve)) {\n payload.valve = value\n count = count + 2\n context.set('payload', payload)\n context.set('count', count)\n}\nif (msg.topic.endsWith(topics[r].ist)) {\n payload.istTemp = value\n context.set('payload', payload)\n count++\n context.set('count', count)\n}\nif (msg.topic.endsWith(topics[r].set)) {\n payload.setTemp = value\n context.set('payload', payload)\n count++\n context.set('count', count)\n}\nif (count === 4) {\n msg.payload = context.get('payload')\n msg.payload.datetime = new Date()\n msg.payload.metadata = {\"room\": room, \"type\": \"heizung\"}\n context.set('payload', {})\n context.set('count',0)\n msg.collection = \"heizung\"\n msg.operation = \"insertOne\"\n return msg\n}\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 820, + "y": 460, + "wires": [ + [ + "41e91705b7bcaecb", + "d91c151996747c1c" + ] + ] + }, + { + "id": "41e91705b7bcaecb", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 31", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1180, + "y": 460, + "wires": [] + }, + { + "id": "b4c2ba1e12901286", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 32", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1180, + "y": 520, + "wires": [] + }, + { + "id": "e6a1fd9420880250", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "hm/status/Kuehlschrank_Messwerte:2/#", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 320, + "y": 1360, + "wires": [ + [ + "c0f6dadd964ce99a" + ] + ] + }, + { + "id": "c0f6dadd964ce99a", + "type": "change", + "z": "86a9e7aa0c304b46", + "name": "", + "rules": [ + { + "t": "set", + "p": "measurement", + "pt": "msg", + "to": "kuehlschrank", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 620, + "y": 1360, + "wires": [ + [ + "4b7b9693aed95eb0", + "46d53fd1857f29b8" + ] + ] + }, + { + "id": "32ae0b973871f2f9", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 8", + "func": "let val = msg.payload.val\nlet x = 2\nif (!val) {\n x = 0\n} else if (val <= 1) {\n x = 1\n}\nmsg.payload = { [msg.room]: x }\nlet ro = msg.room.split('_')\nglobal.set(`fenster_${msg.room}`, x)\nmsg.debug = `fenster_${msg.room}`\nmsg.room = ro[0]\nreturn msg\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 880, + "y": 320, + "wires": [ + [ + "b023da7344e3bad8" + ] + ] + }, + { + "id": "4ec35d1ec93a275d", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 33", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1120, + "y": 420, + "wires": [] + }, + { + "id": "277743dd937f456d", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "zigbee2mqtt/spuelmaschine", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 280, + "y": 1420, + "wires": [ + [ + "8def8664ad59b9f1" + ] + ] + }, + { + "id": "1a993a311e617f0a", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "extract die Messwerte", + "func": "msg.payload = {\n 'arbeit': msg.payload.energy,\n 'leistung': msg.payload.power\n}\nmsg.measurement = 'spuelmaschine'\nreturn msg;\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 780, + "y": 1420, + "wires": [ + [ + "6a8991fdab7a3434", + "56b1402383445da7", + "40b7e603ef1e9c58" + ] + ] + }, + { + "id": "d91c151996747c1c", + "type": "mongodb4", + "z": "86a9e7aa0c304b46", + "clientNode": "874361936f1ce815", + "mode": "collection", + "collection": "", + "operation": "", + "output": "toArray", + "maxTimeMS": "0", + "handleDocId": false, + "name": "", + "x": 970, + "y": 520, + "wires": [ + [ + "b4c2ba1e12901286" + ] + ] + }, + { + "id": "c71309141de72ef5", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 10", + "func": "msg.payload.wallbox = 1\nmsg.operation = \"insertOne\"\nmsg.collection = \"auto\"\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 930, + "y": 1740, + "wires": [ + [ + "062d4d20ef2912da" + ] + ] + }, + { + "id": "062d4d20ef2912da", + "type": "mongodb4", + "z": "86a9e7aa0c304b46", + "clientNode": "874361936f1ce815", + "mode": "collection", + "collection": "", + "operation": "", + "output": "toArray", + "maxTimeMS": "0", + "handleDocId": false, + "name": "", + "x": 1190, + "y": 1740, + "wires": [ + [ + "71508f12e88f8608" + ] + ] + }, + { + "id": "71508f12e88f8608", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 34", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1380, + "y": 1740, + "wires": [] + }, + { + "id": "3569c43cd47502ee", + "type": "mongodb4", + "z": "86a9e7aa0c304b46", + "clientNode": "874361936f1ce815", + "mode": "collection", + "collection": "", + "operation": "", + "output": "toArray", + "maxTimeMS": "0", + "handleDocId": false, + "name": "", + "x": 1190, + "y": 960, + "wires": [ + [ + "f7e8254c72cfe335" + ] + ] + }, + { + "id": "f7e8254c72cfe335", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 35", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1360, + "y": 960, + "wires": [] + }, + { + "id": "67608e37315c60dd", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 11", + "func": "let pl = flow.get('pl') || {}\nif (msg.topic.indexOf('chn0') != -1) {\n pl.arbeit = msg.payload\n flow.set('pl', pl)\n}\nif (msg.topic.indexOf('chn1') != -1) {\n pl.leistung = msg.payload\n msg.payload = pl \n flow.set('pl', {})\n msg.operation = \"insertOne\"\n msg.collection = \"strom\"\n msg.payload.meta = 0\n msg.payload.datetime = new Date()\n return msg;\n}\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 590, + "y": 960, + "wires": [ + [ + "1eadf1113bdf28a7", + "3569c43cd47502ee" + ] + ] + }, + { + "id": "1eadf1113bdf28a7", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 36", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 860, + "y": 1000, + "wires": [] + }, + { + "id": "fe04f6c77be768d2", + "type": "config", + "z": "86a9e7aa0c304b46", + "name": "", + "properties": [ + { + "p": "cnt", + "pt": "flow", + "to": "0", + "tot": "num" + }, + { + "p": "pl", + "pt": "flow", + "to": "[]", + "tot": "json" + } + ], + "active": true, + "x": 230, + "y": 800, + "wires": [] + }, + { + "id": "980ffcb9b3562a71", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 12", + "func": "if (msg.topic.indexOf('chn1') != -1) {\n msg.topic = 'Gesamt-Leistung [Wh]'\n return msg;\n}", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 590, + "y": 840, + "wires": [ + [] + ] + }, + { + "id": "6a8991fdab7a3434", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 13", + "func": "msg.maschine = \"spuelmaschine\"\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1150, + "y": 1420, + "wires": [ + [ + "af03a5e1a841517a" + ] + ] + }, + { + "id": "af03a5e1a841517a", + "type": "change", + "z": "86a9e7aa0c304b46", + "name": "", + "rules": [ + { + "t": "set", + "p": "operation", + "pt": "msg", + "to": "insertOne", + "tot": "str" + }, + { + "t": "set", + "p": "collection", + "pt": "msg", + "to": "maschinen", + "tot": "str" + }, + { + "t": "set", + "p": "payload.maschine", + "pt": "msg", + "to": "measurement", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1300, + "y": 1300, + "wires": [ + [ + "0b62dc3894e2849f", + "34d7609bd881bc68" + ] + ] + }, + { + "id": "391f3b9a3bacdd88", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 14", + "func": "let plw = flow.get('plw') || {}\nlet cnt = flow.get('cntw') || 0\nlet value = msg.payload.val\nif (msg.topic.endsWith('ENERGY_COUNTER')) {\n plw.arbeit = value\n flow.set('plw', plw)\n cnt += 1\n flow.set('cntw', cnt)\n}\nif (msg.topic.endsWith('POWER')) {\n plw.leistung = value\n flow.set('plw', plw)\n cnt += 1\n flow.set('cntw', cnt)\n}\nif (msg.topic.endsWith('CURRENT')) {\n plw.strom = value\n flow.set('plw', plw)\n cnt += 1\n flow.set('cntw', cnt)\n}\nif (msg.topic.endsWith('VOLTAGE')) {\n plw.spannung = value\n flow.set('plw', plw)\n cnt += 1\n flow.set('cntw', cnt)\n}\nif (msg.topic.endsWith('FREQUENCY')) {\n plw.frequenz = value\n flow.set('plw', plw)\n cnt += 1\n flow.set('cntw', cnt)\n}\nif (cnt === 5) {\n cnt = 0\n msg.payload = plw\n plw = {}\n flow.set('plw', plw)\n flow.set('cntw', cnt)\n msg.payload.maschine = msg.measurement\n return msg\n}\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 930, + "y": 1240, + "wires": [ + [ + "21a3752d5b338a61" + ] + ] + }, + { + "id": "0b62dc3894e2849f", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 37", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1500, + "y": 1260, + "wires": [] + }, + { + "id": "07c8e1eea03e88c0", + "type": "config", + "z": "86a9e7aa0c304b46", + "name": "", + "properties": [ + { + "p": "plw", + "pt": "flow", + "to": "{}", + "tot": "json" + }, + { + "p": "cntw", + "pt": "flow", + "to": "0", + "tot": "num" + }, + { + "p": "plt", + "pt": "flow", + "to": "{}", + "tot": "json" + }, + { + "p": "cntt", + "pt": "flow", + "to": "0", + "tot": "num" + }, + { + "p": "plk", + "pt": "flow", + "to": "{}", + "tot": "json" + }, + { + "p": "cntk", + "pt": "flow", + "to": "0", + "tot": "num" + } + ], + "active": true, + "x": 690, + "y": 1180, + "wires": [] + }, + { + "id": "8a73c559561e08d5", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 15", + "func": "let plt = flow.get('plt') || {}\nlet cnt = flow.get('cntt') || 0\nlet value = msg.payload.val\nif (msg.topic.endsWith('ENERGY_COUNTER')) {\n plt.arbeit = value\n flow.set('plt', plt)\n cnt += 1\n flow.set('cntt', cnt)\n}\nif (msg.topic.endsWith('POWER')) {\n plt.leistung = value\n flow.set('plt', plt)\n cnt += 1\n flow.set('cntt', cnt)\n}\nif (msg.topic.endsWith('CURRENT')) {\n plt.strom = value\n flow.set('plt', plt)\n cnt += 1\n flow.set('cntt', cnt)\n}\nif (msg.topic.endsWith('VOLTAGE')) {\n plt.spannung = value\n flow.set('plt', plt)\n cnt += 1\n flow.set('cntt', cnt)\n}\nif (msg.topic.endsWith('FREQUENCY')) {\n plt.frequenz = value\n flow.set('plt', plt)\n cnt += 1\n flow.set('cntt', cnt)\n}\nif (cnt === 5) {\n cnt = 0\n msg.payload = plt\n plt = {}\n flow.set('plt', plt)\n flow.set('cntt', cnt)\n msg.payload.maschine = msg.measurement\n return msg\n}\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 930, + "y": 1300, + "wires": [ + [ + "21a3752d5b338a61" + ] + ] + }, + { + "id": "46d53fd1857f29b8", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 16", + "func": "let plk = flow.get('plk') || {}\nlet cnt = flow.get('cntk') || 0\nlet value = msg.payload.val\nif (msg.topic.endsWith('ENERGY_COUNTER')) {\n plk.arbeit = value\n flow.set('plk', plk)\n cnt += 1\n flow.set('cntk', cnt)\n}\nif (msg.topic.endsWith('POWER')) {\n plk.leistung = value\n flow.set('plk', plk)\n cnt += 1\n flow.set('cntk', cnt)\n}\nif (msg.topic.endsWith('CURRENT')) {\n plk.strom = value\n flow.set('plk', plk)\n cnt += 1\n flow.set('cntk', cnt)\n}\nif (msg.topic.endsWith('VOLTAGE')) {\n plk.spannung = value\n flow.set('plk', plk)\n cnt += 1\n flow.set('cntk', cnt)\n}\nif (msg.topic.endsWith('FREQUENCY')) {\n plk.frequenz = value\n flow.set('plk', plk)\n cnt += 1\n flow.set('cntk', cnt)\n}\nif (cnt === 5) {\n cnt = 0\n msg.payload = plk\n plk = {}\n flow.set('plk', plk)\n flow.set('cntk', cnt)\n msg.payload.maschine = msg.measurement\n return msg\n}\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 930, + "y": 1360, + "wires": [ + [ + "21a3752d5b338a61" + ] + ] + }, + { + "id": "d7ec58f8201534a5", + "type": "mongodb4", + "z": "86a9e7aa0c304b46", + "clientNode": "874361936f1ce815", + "mode": "collection", + "collection": "", + "operation": "", + "output": "toArray", + "maxTimeMS": "0", + "handleDocId": false, + "name": "", + "x": 1370, + "y": 1400, + "wires": [ + [ + "030e4ec5b7dcf040" + ] + ] + }, + { + "id": "030e4ec5b7dcf040", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 38", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1560, + "y": 1400, + "wires": [] + }, + { + "id": "34d7609bd881bc68", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 17", + "func": "msg.payload.datetime = new Date()\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1510, + "y": 1340, + "wires": [ + [ + "d7ec58f8201534a5" + ] + ] + }, + { + "id": "4d375d7b71ed95af", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 18", + "func": "msg.payload.meta = msg.measurement\nmsg.operation = 'insertOne'\nmsg.collection = 'therme'\nmsg.payload.datetime = new Date()\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1070, + "y": 180, + "wires": [ + [ + "357915e1a4f40858", + "fdcedbc2241a3978" + ] + ] + }, + { + "id": "357915e1a4f40858", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 39", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1260, + "y": 180, + "wires": [] + }, + { + "id": "fdcedbc2241a3978", + "type": "mongodb4", + "z": "86a9e7aa0c304b46", + "clientNode": "874361936f1ce815", + "mode": "collection", + "collection": "", + "operation": "", + "output": "toArray", + "maxTimeMS": "0", + "handleDocId": false, + "name": "", + "x": 1277.1666259765625, + "y": 234.16665649414062, + "wires": [ + [ + "b6f5d9d1a657e773" + ] + ] + }, + { + "id": "b6f5d9d1a657e773", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 40", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1457.1666259765625, + "y": 234.16665649414062, + "wires": [] + }, + { + "id": "71da459e1eb610b3", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 19", + "func": "msg.payload.datetime = new Date()\nmsg.operation = 'insertOne'\nmsg.collection = 'heizung'\nmsg.payload.metadata = { \"room\": msg.room, \"type\": \"fenster\"}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1330, + "y": 340, + "wires": [ + [ + "31d348a98878d4dd", + "4fe3a7b1afc0e974" + ] + ] + }, + { + "id": "31d348a98878d4dd", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 41", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1520, + "y": 340, + "wires": [] + }, + { + "id": "4fe3a7b1afc0e974", + "type": "mongodb4", + "z": "86a9e7aa0c304b46", + "clientNode": "874361936f1ce815", + "mode": "collection", + "collection": "", + "operation": "", + "output": "toArray", + "maxTimeMS": "0", + "handleDocId": false, + "name": "", + "x": 1410, + "y": 420, + "wires": [ + [ + "781ebe816973e5c9" + ] + ] + }, + { + "id": "781ebe816973e5c9", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 42", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1590, + "y": 420, + "wires": [] + }, + { + "id": "63b409f7976b2641", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "zigbee2mqtt/Fenster_KU", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 270, + "y": 460, + "wires": [ + [ + "10226e67b42c5834", + "f0dc770e2e070185" + ] + ] + }, + { + "id": "100d7d6d607c4ced", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 43", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 680, + "y": 500, + "wires": [] + }, + { + "id": "10226e67b42c5834", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 21", + "func": "let val = msg.payload.contact ? 0 : 2\nmsg.measurement = \"fenster\"\nmsg.room = \"KU\"\nmsg.payload = {\"KU\": val}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 510, + "y": 460, + "wires": [ + [ + "100d7d6d607c4ced", + "b023da7344e3bad8" + ] + ] + }, + { + "id": "f0dc770e2e070185", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 46", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 480, + "y": 420, + "wires": [] + }, + { + "id": "7143b077418a0ee1", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "zigbee2mqtt/Heizung_EZ", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 270, + "y": 540, + "wires": [ + [ + "3416084b2fb9fafd", + "1ed600c02b5a76a9" + ] + ] + }, + { + "id": "3416084b2fb9fafd", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "isttemp", + "func": "msg.payload = { \"EZ\": msg.payload.local_temperature}\nmsg.measurement = 'istTemps'\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 520, + "y": 560, + "wires": [ + [ + "e641c1e401bb8c58" + ] + ] + }, + { + "id": "1ed600c02b5a76a9", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "solltemp", + "func": "msg.payload = { \"EZ\": msg.payload.current_heating_setpoint}\nmsg.measurement = 'setTemps'\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 520, + "y": 600, + "wires": [ + [ + "64535942f5bbf593" + ] + ] + }, + { + "id": "64535942f5bbf593", + "type": "delay", + "z": "86a9e7aa0c304b46", + "name": "", + "pauseType": "delay", + "timeout": "2", + "timeoutUnits": "milliseconds", + "rate": "1", + "nbRateUnits": "1", + "rateUnits": "second", + "randomFirst": "1", + "randomLast": "5", + "randomUnits": "seconds", + "drop": false, + "allowrate": false, + "outputs": 1, + "x": 690, + "y": 600, + "wires": [ + [ + "e641c1e401bb8c58" + ] + ] + }, + { + "id": "500b1d7a2efc63fb", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 49", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 880, + "y": 240, + "wires": [] + }, + { + "id": "64b86058df0b6cfa", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 50", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 500, + "y": 260, + "wires": [] + }, + { + "id": "3c7a45cc11a1e159", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "hm/status/Fenster_CL_Schließer:1/LEVEL", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 320, + "y": 660, + "wires": [ + [ + "03c6d6de44dec66f" + ] + ] + }, + { + "id": "03c6d6de44dec66f", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "function 24", + "func": "msg.room = \"CL\"\nmsg.measurement = \"fenster\"\nmsg.payload = { \"val\": msg.payload.val === 0 ? 0 : 2}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 610, + "y": 660, + "wires": [ + [ + "32ae0b973871f2f9", + "51add0f4c146549e" + ] + ] + }, + { + "id": "b00cbdd7007ca2cf", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 67", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 700, + "y": 260, + "wires": [] + }, + { + "id": "51add0f4c146549e", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 68", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 820, + "y": 660, + "wires": [] + }, + { + "id": "0c73b4f2ae547ad3", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 80", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1160, + "y": 2900, + "wires": [] + }, + { + "id": "b0e34b04e7c21554", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "home66/shellyplus1-CL_Heizung/status/switch:0", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 340, + "y": 2940, + "wires": [ + [ + "5394fb15cad14baa" + ] + ] + }, + { + "id": "5394fb15cad14baa", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "extract Heizungs-Zustand", + "func": "if (msg.payload.output == true) {\n msg.payload = {'CL': 2}\n} else {\n msg.payload = { 'CL': 0 }\n}\nmsg.measurement = 'heizung'\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 750, + "y": 2940, + "wires": [ + [ + "daa5b689b37b84c0" + ] + ] + }, + { + "id": "ed1e5e52559341a9", + "type": "influxdb out", + "z": "86a9e7aa0c304b46", + "influxdb": "db07a39246cf7003", + "name": "influx_nuccy", + "measurement": "", + "precision": "", + "retentionPolicy": "", + "database": "database", + "precisionV18FluxV20": "s", + "retentionPolicyV18Flux": "", + "org": "citysensor", + "bucket": "heizung_temps", + "x": 1190, + "y": 2940, + "wires": [] + }, + { + "id": "5b6e3a306a5f92a6", + "type": "comment", + "z": "86a9e7aa0c304b46", + "name": "Clo Heizung", + "info": "", + "x": 230, + "y": 2900, + "wires": [] + }, + { + "id": "74e21176399f1d13", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 84", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 540, + "y": 1600, + "wires": [] + }, + { + "id": "5a02638b83e73915", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "erstelle ist/soll-Temps und Ventile", + "func": "let rooms = [\"BA\", \"FL\", \"WZ\", \"SZ_L\", \"SZ_R\", \"EZ\"] \nlet topics = [\n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\", \"factor\": 100 }, // BA\n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\", \"factor\": 100 }, // FL \n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\", \"factor\": 100 }, // WZ \n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\", \"factor\": 100 }, // SZ_L \n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\", \"factor\": 100 }, // SZ_R \n { \"valve\": \"LEVEL\", \"set\": \"SET_POINT_TEMPERATURE\", \"ist\": \"ACTUAL_TEMPERATURE\", \"factor\": 100 }, // EZ\n]\nlet heiz = msg.topic.indexOf('Heizung_') \nlet room = ''\nif (msg.topic.indexOf('Heizung_SZ_Gruppe') != -1) {\n return\n}\nif(heiz !== -1) {\n let posUL =msg.topic.indexOf('_')\n let posDP = msg.topic.indexOf(':')\n let room = msg.topic.substring(posUL+1, posDP)\n msg.payload = { [room]: msg.payload.val }\n let r = 0\n for (let x of rooms) {\n if(x == room) {\n break;\n }\n r++\n }\n if (r === 6) {\n return\n }\n if (msg.topic.endsWith(topics[r].valve)) {\n msg.measurement = 'valves'\n msg.payload[rooms[r]] = msg.payload[rooms[r]] * topics[r].factor\n return msg;\n }\n if (msg.topic.endsWith(topics[r].ist)) {\n msg.measurement = 'istTemps'\n return msg;\n }\n if (msg.topic.endsWith(topics[r].set)) {\n msg.measurement = 'setTemps'\n return msg;\n }\n}\nreturn", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1180, + "y": 620, + "wires": [ + [ + "5276fa50a2eb5ce1", + "80c8ea47336a8e19" + ] + ] + }, + { + "id": "5276fa50a2eb5ce1", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 85", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1660, + "y": 620, + "wires": [] + }, + { + "id": "744a1dd669f48f25", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "WZ-TH_5", + "topic": "zigbee2mqtt/TH_5", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 2100, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "75c8f63de2daf4d7", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "EZ-TH_6", + "topic": "zigbee2mqtt/TH_6", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 2160, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "b453e5721438cbba", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "BA-Licht_Sensor", + "topic": "zigbee2mqtt/Licht_Sensor", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 240, + "y": 2400, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "28a9cda816b00391", + "type": "delay", + "z": "86a9e7aa0c304b46", + "name": "", + "pauseType": "delay", + "timeout": "200", + "timeoutUnits": "milliseconds", + "rate": "1", + "nbRateUnits": "1", + "rateUnits": "second", + "randomFirst": "1", + "randomLast": "5", + "randomUnits": "seconds", + "drop": false, + "allowrate": false, + "outputs": 1, + "x": 430, + "y": 320, + "wires": [ + [ + "ac75a0c76db05a3a" + ] + ] + }, + { + "id": "8def8664ad59b9f1", + "type": "delay", + "z": "86a9e7aa0c304b46", + "name": "", + "pauseType": "rate", + "timeout": "5", + "timeoutUnits": "seconds", + "rate": "1", + "nbRateUnits": "2", + "rateUnits": "second", + "randomFirst": "1", + "randomLast": "5", + "randomUnits": "seconds", + "drop": true, + "allowrate": false, + "outputs": 1, + "x": 560, + "y": 1420, + "wires": [ + [ + "1a993a311e617f0a" + ] + ] + }, + { + "id": "7001bf2e1553a988", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "", + "topic": "zigbee2mqtt/Kühlschrank-Keller", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 290, + "y": 1480, + "wires": [ + [ + "66a5938c04feedd3", + "f75301d12f8a9864" + ] + ] + }, + { + "id": "66a5938c04feedd3", + "type": "delay", + "z": "86a9e7aa0c304b46", + "name": "", + "pauseType": "rate", + "timeout": "5", + "timeoutUnits": "seconds", + "rate": "1", + "nbRateUnits": "2", + "rateUnits": "second", + "randomFirst": "1", + "randomLast": "5", + "randomUnits": "seconds", + "drop": true, + "allowrate": false, + "outputs": 1, + "x": 560, + "y": 1480, + "wires": [ + [ + "18cd451ff71bedd4" + ] + ] + }, + { + "id": "6f1a1a62f041e743", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 96", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1300, + "y": 1540, + "wires": [] + }, + { + "id": "f75301d12f8a9864", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 97", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 540, + "y": 1540, + "wires": [] + }, + { + "id": "18cd451ff71bedd4", + "type": "function", + "z": "86a9e7aa0c304b46", + "name": "extract die Messwerte", + "func": "msg.payload = {\n 'arbeit': msg.payload.energy * 1000,\n 'leistung': msg.payload.power\n}\nmsg.measurement = 'kellerkuehlschrank'\nreturn msg;\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 780, + "y": 1480, + "wires": [ + [ + "56b1402383445da7", + "6f1a1a62f041e743" + ] + ] + }, + { + "id": "40b7e603ef1e9c58", + "type": "debug", + "z": "86a9e7aa0c304b46", + "name": "debug 98", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1320, + "y": 1480, + "wires": [] + }, + { + "id": "4aab29782d540f65", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "FL-TH_7", + "topic": "zigbee2mqtt/TH_7", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 2220, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "ebbaceeb44477ab8", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "KO-TH_8", + "topic": "zigbee2mqtt/TH_8", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 2280, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "d71061b44547a25b", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "BA-TH_Mini", + "topic": "zigbee2mqtt/Temp_Feuchte_Mini_2", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 230, + "y": 2460, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "ec3bf322733a6acd", + "type": "comment", + "z": "86a9e7aa0c304b46", + "name": "Daten in Influx- und Mongo-DB", + "info": "## Beschreibung\nAlle relevanten Daten einlesen und in die Influx sowie in die MongoDB eintragen\n\n## Version\nVersion | Datum | Author | Bemerkung\n-------|--------|-------|---\nV 1.0 | 2025-06-02 | rxf | erste versionierte Version\n", + "x": 190, + "y": 40, + "wires": [] + }, + { + "id": "78dc562ea48c2e17", + "type": "mqtt in", + "z": "86a9e7aa0c304b46", + "name": "AU-TH_9", + "topic": "zigbee2mqtt/TH_9", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 2520, + "wires": [ + [ + "c46bc662805c3ea3" + ] + ] + }, + { + "id": "57a1c06c3e4fa14a", + "type": "comment", + "z": "86a9e7aa0c304b46", + "name": "ging hier mal auf ein chart", + "info": "", + "x": 810, + "y": 840, + "wires": [] + }, + { + "id": "e094b15a0b12dd71", + "type": "mqtt in", + "z": "5bea18a0180b611e", + "name": "", + "topic": "zigbee2mqtt/BW_Bad", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 400, + "wires": [ + [ + "39299c31e4d89e89" + ] + ] + }, + { + "id": "64c9a0386c6c4bda", + "type": "inject", + "z": "5bea18a0180b611e", + "name": "true", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "{\"occupancy\": true}", + "payloadType": "json", + "x": 190, + "y": 260, + "wires": [ + [ + "db3bdc733260e6d9" + ] + ] + }, + { + "id": "a7c7d0815a1922cb", + "type": "inject", + "z": "5bea18a0180b611e", + "name": "false", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "{\"occupancy\": false}", + "payloadType": "json", + "x": 190, + "y": 300, + "wires": [ + [ + "db3bdc733260e6d9" + ] + ] + }, + { + "id": "b503163ce306ae60", + "type": "debug", + "z": "5bea18a0180b611e", + "name": "debug 14", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1160, + "y": 300, + "wires": [] + }, + { + "id": "db3bdc733260e6d9", + "type": "function", + "z": "5bea18a0180b611e", + "name": "detect_motion", + "func": "if (msg.payload.occupancy === true) {\n flow.set('motion', true)\n msg.payload = {'state': 'on'}\n} else {\n flow.set('motion', false)\n msg.payload = {'state':'off'}\n}\nmsg.motion = flow.get('motion')\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 800, + "y": 280, + "wires": [ + [ + "b503163ce306ae60", + "3e15eb6386d83e69" + ] + ] + }, + { + "id": "ae2040efa33f36eb", + "type": "config", + "z": "5bea18a0180b611e", + "name": "", + "properties": [ + { + "p": "motion", + "pt": "flow", + "to": "false", + "tot": "bool" + }, + { + "p": "timerruns", + "pt": "flow", + "to": "false", + "tot": "bool" + } + ], + "active": true, + "x": 210, + "y": 140, + "wires": [] + }, + { + "id": "3e15eb6386d83e69", + "type": "mqtt out", + "z": "5bea18a0180b611e", + "name": "", + "topic": "zigbee2mqtt/Licht_Bad/set", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1580, + "y": 160, + "wires": [] + }, + { + "id": "5a5d4b59103be390", + "type": "comment", + "z": "5bea18a0180b611e", + "name": "Bad Licht ", + "info": "## Beschreibung\nSteuerung des Lichtes über den Bewegungsmelder\n* Bei Bewegung das Licht einschalten\n* Wenn der BW-Melder keine Bewegung mehr meldet, Licht wieder ausschalten\n* zusätzlich mit dem ZigBeee-Taster das Lich ausschalten (kurzer Druck) oder einschalten (langer Druck)\nÜber Den ZigBee-Sensor wird die Tewperatur und die Feuchtigkeit erfasst. Mit der Feuchtigkeit wqird der Lüfter gesteuert.\n\n## Versionen\nVersion | Datum | Author| Bemerkungen\n---------|------|-------|--------\nV1.2.0 | 2025-06-09| rxf| Die Messwerte des TH-Sensors werden per MQTT zum CYD gesendet\nV1.1.0 | 2024-08-18 | rxf | Feuchtegrenzen auf 75 - 70\nV1.0.0 | 2024-01-19 | rxf |erste (versionierte) Version", + "x": 200, + "y": 40, + "wires": [] + }, + { + "id": "1c20a44ecff599ce", + "type": "comment", + "z": "5bea18a0180b611e", + "name": "BW-Melder auswerden", + "info": "", + "x": 860, + "y": 320, + "wires": [] + }, + { + "id": "864fa5197cfa5346", + "type": "comment", + "z": "5bea18a0180b611e", + "name": "init flow.motion und flow.timerruns", + "info": "", + "x": 280, + "y": 100, + "wires": [] + }, + { + "id": "58052a7d6c8599e9", + "type": "comment", + "z": "5bea18a0180b611e", + "name": "Lüftersteuerung", + "info": "", + "x": 180, + "y": 980, + "wires": [] + }, + { + "id": "cdf4518bfa30e7e5", + "type": "mqtt in", + "z": "5bea18a0180b611e", + "name": "Get Feuchte (Temp_Feuchte_Mini_1)", + "topic": "zigbee2mqtt/Temp_Feuchte_Mini_1", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 240, + "y": 1120, + "wires": [ + [ + "54605c8c74454a94" + ] + ] + }, + { + "id": "5c18bf91dba3cc42", + "type": "config", + "z": "5bea18a0180b611e", + "name": "Init Schwellen", + "properties": [ + { + "p": "feuchteH_fix", + "pt": "flow", + "to": "75", + "tot": "num" + }, + { + "p": "feuchteL", + "pt": "flow", + "to": "70", + "tot": "num" + }, + { + "p": "feuchteH", + "pt": "flow", + "to": "75", + "tot": "str" + } + ], + "active": true, + "x": 200, + "y": 1040, + "wires": [] + }, + { + "id": "08509a2c0848ff01", + "type": "switch", + "z": "5bea18a0180b611e", + "name": "Vergleich gg. Schwellen", + "property": "payload.humidity", + "propertyType": "msg", + "rules": [ + { + "t": "gte", + "v": "feuchteH", + "vt": "flow" + }, + { + "t": "lte", + "v": "feuchteL", + "vt": "flow" + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 650, + "y": 1120, + "wires": [ + [ + "bbf2e3a4222f9f99" + ], + [ + "7fc8a93be966e775" + ] + ] + }, + { + "id": "ad7ee5e4e67ea173", + "type": "trigger", + "z": "5bea18a0180b611e", + "name": "Lüfter EIN 30min", + "op1": "1", + "op2": "0", + "op1type": "num", + "op2type": "num", + "duration": "30", + "extend": false, + "overrideDelay": false, + "units": "min", + "reset": "", + "bytopic": "all", + "topic": "topic", + "outputs": 1, + "x": 1250, + "y": 1120, + "wires": [ + [ + "44743756141dc419" + ] + ] + }, + { + "id": "73c3385ab4453988", + "type": "change", + "z": "5bea18a0180b611e", + "name": "Stop Lüfter", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "0", + "tot": "num" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1010, + "y": 1260, + "wires": [ + [ + "44743756141dc419" + ] + ] + }, + { + "id": "44743756141dc419", + "type": "function", + "z": "5bea18a0180b611e", + "name": "Kommando für den Lüfter", + "func": "let cmnd = { \"id\": 0, \"src\": \"home66/shellyplus1-Luefter/result\", \"method\": \"Switch.Set\", \"params\": { \"id\": 0, \"on\": true } }\ncmnd.params.on = msg.payload === 0 ? false : true\nmsg.payload = cmnd\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1650, + "y": 1120, + "wires": [ + [ + "72863c87c3f96f89", + "c18e34f3d68aaaa8" + ] + ] + }, + { + "id": "c18e34f3d68aaaa8", + "type": "mqtt out", + "z": "5bea18a0180b611e", + "name": "Luefter", + "topic": "home66/shellyplus1-luefter/rpc", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1880, + "y": 1120, + "wires": [] + }, + { + "id": "a4e2923614139df9", + "type": "mqtt in", + "z": "5bea18a0180b611e", + "name": "Get Fenster-Zustand", + "topic": "hm/status/Fenster_BA:1/STATE", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 190, + "y": 1180, + "wires": [ + [ + "39df9277bba3e49b" + ] + ] + }, + { + "id": "7bea3b0a9a3fa867", + "type": "switch", + "z": "5bea18a0180b611e", + "name": "Fester AUF ?", + "property": "payload.val", + "propertyType": "msg", + "rules": [ + { + "t": "neq", + "v": "0", + "vt": "num" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 610, + "y": 1320, + "wires": [ + [ + "7fc8a93be966e775" + ] + ] + }, + { + "id": "4c621c845cbad50a", + "type": "debug", + "z": "5bea18a0180b611e", + "name": "debug 74", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 520, + "y": 1060, + "wires": [] + }, + { + "id": "72863c87c3f96f89", + "type": "debug", + "z": "5bea18a0180b611e", + "name": "debug 75", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 1880, + "y": 1040, + "wires": [] + }, + { + "id": "dd0f0be1678b1a2d", + "type": "debug", + "z": "5bea18a0180b611e", + "name": "debug 77", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 600, + "y": 1180, + "wires": [] + }, + { + "id": "bbf2e3a4222f9f99", + "type": "gate", + "z": "5bea18a0180b611e", + "name": "Sperre bei Fenster offen", + "controlTopic": "control", + "defaultState": "open", + "openCmd": "open", + "closeCmd": "close", + "toggleCmd": "toggle", + "defaultCmd": "default", + "statusCmd": "status", + "persist": false, + "storeName": "memory", + "x": 970, + "y": 1120, + "wires": [ + [ + "ad7ee5e4e67ea173" + ] + ] + }, + { + "id": "c5e47b82a3d54979", + "type": "function", + "z": "5bea18a0180b611e", + "name": "Sperre steuern", + "func": "msg.topic = 'control'\nmsg.payload = msg.payload.val === 0 ? 'open' : 'close'\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 620, + "y": 1240, + "wires": [ + [ + "bbf2e3a4222f9f99" + ] + ] + }, + { + "id": "9583b4c1c7b73c86", + "type": "change", + "z": "5bea18a0180b611e", + "name": "", + "rules": [ + { + "t": "set", + "p": "reset", + "pt": "msg", + "to": "true", + "tot": "bool" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1000, + "y": 1180, + "wires": [ + [ + "ad7ee5e4e67ea173" + ] + ] + }, + { + "id": "1d61c975bc3d2f90", + "type": "ui_chart", + "z": "5bea18a0180b611e", + "name": "", + "group": "51bf0475.ddfd2c", + "order": 9, + "width": 0, + "height": 0, + "label": "Feuchte (6h) [%]", + "chartType": "line", + "legend": "false", + "xformat": "HH:mm", + "interpolate": "bezier", + "nodata": "", + "dot": false, + "ymin": "40", + "ymax": "100", + "removeOlder": "6", + "removeOlderPoints": "", + "removeOlderUnit": "3600", + "cutout": 0, + "useOneColor": false, + "useUTC": false, + "colors": [ + "#ff2600", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 1, + "useDifferentColor": false, + "className": "", + "x": 760, + "y": 1400, + "wires": [ + [] + ] + }, + { + "id": "8f20d4e5e473a9fb", + "type": "change", + "z": "5bea18a0180b611e", + "name": "extract Feuchte", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "payload.humidity", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 440, + "y": 1400, + "wires": [ + [ + "1d61c975bc3d2f90", + "233c12b67382d05f" + ] + ] + }, + { + "id": "233c12b67382d05f", + "type": "ui_gauge", + "z": "5bea18a0180b611e", + "name": "Feuchte [%]", + "group": "51bf0475.ddfd2c", + "order": 8, + "width": 4, + "height": 3, + "gtype": "gage", + "title": "Feuchte", + "label": "%", + "format": "{{value | number:0}}", + "min": 0, + "max": "100", + "colors": [ + "#00f900", + "#fefb00", + "#ca3838" + ], + "seg1": "65", + "seg2": "70", + "diff": false, + "className": "", + "x": 750, + "y": 1440, + "wires": [] + }, + { + "id": "96934666499d9111", + "type": "change", + "z": "5bea18a0180b611e", + "name": "extract Temperatur", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "payload.temperature", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 450, + "y": 1480, + "wires": [ + [ + "53175fefcf646de7" + ] + ] + }, + { + "id": "53175fefcf646de7", + "type": "ui_gauge", + "z": "5bea18a0180b611e", + "name": "Temp [°C]", + "group": "51bf0475.ddfd2c", + "order": 7, + "width": 4, + "height": 3, + "gtype": "gage", + "title": "Temperatur", + "label": "°C", + "format": "{{value | number:1}}", + "min": "10", + "max": "30", + "colors": [ + "#fefb00", + "#00f900", + "#ca3838" + ], + "seg1": "20", + "seg2": "25", + "diff": false, + "className": "", + "x": 740, + "y": 1480, + "wires": [] + }, + { + "id": "39df9277bba3e49b", + "type": "delay", + "z": "5bea18a0180b611e", + "name": "", + "pauseType": "rate", + "timeout": "5", + "timeoutUnits": "seconds", + "rate": "1", + "nbRateUnits": "3", + "rateUnits": "second", + "randomFirst": "1", + "randomLast": "5", + "randomUnits": "seconds", + "drop": true, + "allowrate": false, + "outputs": 1, + "x": 360, + "y": 1240, + "wires": [ + [ + "44ca85124df5860f" + ] + ] + }, + { + "id": "62d9999cfa88e04c", + "type": "debug", + "z": "5bea18a0180b611e", + "name": "debug 83", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 840, + "y": 1720, + "wires": [] + }, + { + "id": "101627ad20bd3221", + "type": "inject", + "z": "5bea18a0180b611e", + "name": "", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "5", + "crontab": "", + "once": true, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 170, + "y": 1600, + "wires": [ + [ + "90b71633dbcf0508" + ] + ] + }, + { + "id": "90b71633dbcf0508", + "type": "moment", + "z": "5bea18a0180b611e", + "name": "", + "topic": "", + "input": "", + "inputType": "msg", + "inTz": "Europe/Berlin", + "adjAmount": 0, + "adjType": "days", + "adjDir": "add", + "format": "HH:mm dddd, DD.MMMM.YYYY", + "locale": "de-DE", + "output": "", + "outputType": "msg", + "outTz": "Europe/Berlin", + "x": 540, + "y": 1600, + "wires": [ + [ + "62d9999cfa88e04c", + "0b22b57891c28178", + "cd3d4752f89b88a7" + ] + ] + }, + { + "id": "0b22b57891c28178", + "type": "function", + "z": "5bea18a0180b611e", + "name": "function 27", + "func": "msg.payload = msg.payload.slice(0,5)\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 850, + "y": 1600, + "wires": [ + [ + "b66905309b53413c" + ] + ] + }, + { + "id": "ca109b34a75ebdd8", + "type": "ui_text", + "z": "5bea18a0180b611e", + "group": "51bf0475.ddfd2c", + "order": 2, + "width": 6, + "height": 1, + "name": "", + "label": "", + "format": "{{msg.payload}}", + "layout": "row-center", + "className": "", + "style": false, + "font": "", + "fontSize": 16, + "color": "#000000", + "x": 1090, + "y": 1660, + "wires": [] + }, + { + "id": "cd3d4752f89b88a7", + "type": "function", + "z": "5bea18a0180b611e", + "name": "function 28", + "func": "msg.payload = msg.payload.slice(6)\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 850, + "y": 1660, + "wires": [ + [ + "ca109b34a75ebdd8" + ] + ] + }, + { + "id": "9cf37ec3efd343f4", + "type": "comment", + "z": "5bea18a0180b611e", + "name": "Uhrzeit/Datum anzeigen", + "info": "", + "x": 200, + "y": 1540, + "wires": [] + }, + { + "id": "7666de38e0c78821", + "type": "mqtt in", + "z": "5bea18a0180b611e", + "name": "", + "topic": "zigbee2mqtt/Licht_Sensor", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 230, + "y": 580, + "wires": [ + [ + "2dca96030ed7400a" + ] + ] + }, + { + "id": "2dca96030ed7400a", + "type": "function", + "z": "5bea18a0180b611e", + "name": "function 29", + "func": "\nconst helltop = 30\nconst hellbot = 29\n\nlet hell = msg.payload.illuminance_lux\nmsg.topic = 'control'\nif (hell >= helltop) {\n msg.payload = 'close'\n} else if (hell <= hellbot) {\n msg.payload = 'open'\n} else {\n msg.payload = ''\n}\nmsg.debug = hell\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 470, + "y": 580, + "wires": [ + [ + "97c0459e38d05b12" + ] + ] + }, + { + "id": "97c0459e38d05b12", + "type": "debug", + "z": "5bea18a0180b611e", + "name": "debug 86", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 700, + "y": 540, + "wires": [] + }, + { + "id": "12a5d45e8c5c2cd4", + "type": "mqtt in", + "z": "5bea18a0180b611e", + "name": "", + "topic": "hm/status/Aussen_Temp:1/HUMIDITY", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 570, + "y": 1000, + "wires": [ + [ + "a9ca6c0bd73ace79" + ] + ] + }, + { + "id": "1c622155cfa7829b", + "type": "debug", + "z": "5bea18a0180b611e", + "name": "debug 87", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1000, + "y": 880, + "wires": [] + }, + { + "id": "a9ca6c0bd73ace79", + "type": "function", + "z": "5bea18a0180b611e", + "name": "function 30", + "func": "// Wenn die Außen-Feuchte größer als die eingestellte Schwelle ( 70%) ist, \n// die Aussen-Feuchte als Schwelle einstellen. rxf 2024-06-21\nlet aussen = msg.payload.val\nlet FHc = flow.get('feuchteH_fix')\nif (aussen >= FHc) {\n flow.set('feuchteH',aussen)\n} else {\n flow.set('feuchteH',FHc)\n}\nmsg.debug = {'aussen': aussen, 'FH': flow.get('feuchteH')}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 890, + "y": 1000, + "wires": [ + [ + "1c622155cfa7829b" + ] + ] + }, + { + "id": "7b704165ea73fb53", + "type": "inject", + "z": "5bea18a0180b611e", + "name": "Lüfter OFF", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "0", + "payloadType": "num", + "x": 1380, + "y": 1240, + "wires": [ + [ + "44743756141dc419" + ] + ] + }, + { + "id": "46ae2c2281786830", + "type": "inject", + "z": "5bea18a0180b611e", + "name": "Lüfter ON", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "1", + "payloadType": "num", + "x": 1380, + "y": 1000, + "wires": [ + [ + "44743756141dc419" + ] + ] + }, + { + "id": "b66905309b53413c", + "type": "ui_text", + "z": "5bea18a0180b611e", + "group": "51bf0475.ddfd2c", + "order": 5, + "width": 6, + "height": 1, + "name": "", + "label": "", + "format": "{{msg.payload}}", + "layout": "row-center", + "className": "", + "style": false, + "font": "", + "fontSize": 16, + "color": "#000000", + "x": 1090, + "y": 1600, + "wires": [] + }, + { + "id": "c97f3aa37eefed90", + "type": "ui_button", + "z": "5bea18a0180b611e", + "name": "Lüfter AUS", + "group": "51bf0475.ddfd2c", + "order": 11, + "width": 0, + "height": 0, + "passthru": false, + "label": "Lüfter AUS", + "tooltip": "", + "color": "", + "bgcolor": "", + "className": "", + "icon": "", + "payload": "0", + "payloadType": "num", + "topic": "topic", + "topicType": "msg", + "x": 850, + "y": 1340, + "wires": [ + [ + "7fc8a93be966e775" + ] + ] + }, + { + "id": "4b8932afb8a042fe", + "type": "ui_button", + "z": "5bea18a0180b611e", + "name": "Lüfter EIN", + "group": "51bf0475.ddfd2c", + "order": 10, + "width": 0, + "height": 0, + "passthru": false, + "label": "Lüfter EIN", + "tooltip": "", + "color": "", + "bgcolor": "", + "className": "", + "icon": "", + "payload": "1", + "payloadType": "num", + "topic": "topic", + "topicType": "msg", + "x": 980, + "y": 1060, + "wires": [ + [ + "ad7ee5e4e67ea173" + ] + ] + }, + { + "id": "de26f47a8e122baa", + "type": "inject", + "z": "5bea18a0180b611e", + "name": "Löschen", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "[]", + "payloadType": "json", + "x": 180, + "y": 1320, + "wires": [ + [ + "1d61c975bc3d2f90" + ] + ] + }, + { + "id": "ba02106d76f177c8", + "type": "comment", + "z": "5bea18a0180b611e", + "name": "Messdaten am CYD senden", + "info": "", + "x": 480, + "y": 840, + "wires": [] + }, + { + "id": "6327d8d395b6d0d1", + "type": "function", + "z": "5bea18a0180b611e", + "name": "function 38", + "func": "msg.payload = { \"temperature\": msg.payload.temperature, \"humidity\": msg.payload.humidity}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 430, + "y": 900, + "wires": [ + [ + "4d24b528fd30ef07", + "7c5937954819772a" + ] + ] + }, + { + "id": "4d24b528fd30ef07", + "type": "mqtt out", + "z": "5bea18a0180b611e", + "name": "sendMesswertetoCYD", + "topic": "CYD/Bad/set/messwerte", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 700, + "y": 900, + "wires": [] + }, + { + "id": "7c5937954819772a", + "type": "debug", + "z": "5bea18a0180b611e", + "name": "debug 124", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 750, + "y": 840, + "wires": [] + }, + { + "id": "1d61e05b26b9a2e0", + "type": "flogger", + "z": "5bea18a0180b611e", + "name": "Log", + "logfile": "bwbad.log", + "inputchoice": "object", + "inputobject": "payload", + "inputobjectType": "msg", + "inputmoustache": "Recieved payload {{payload}} and topic {{topic}}", + "loglevel": "INFO", + "logconfig": "dbdce4bcc146f440", + "sendpane": "", + "x": 810, + "y": 400, + "wires": [ + [] + ] + }, + { + "id": "39299c31e4d89e89", + "type": "delay", + "z": "5bea18a0180b611e", + "name": "", + "pauseType": "rate", + "timeout": "5", + "timeoutUnits": "seconds", + "rate": "1", + "nbRateUnits": "1", + "rateUnits": "second", + "randomFirst": "1", + "randomLast": "5", + "randomUnits": "seconds", + "drop": true, + "allowrate": false, + "outputs": 1, + "x": 480, + "y": 400, + "wires": [ + [ + "1d61e05b26b9a2e0", + "db3bdc733260e6d9" + ] + ] + }, + { + "id": "194c0a7b693f1b35", + "type": "ui_button", + "z": "5bea18a0180b611e", + "name": "Licht_EIN", + "group": "51bf0475.ddfd2c", + "order": 12, + "width": 0, + "height": 0, + "passthru": false, + "label": "Licht EIN", + "tooltip": "", + "color": "", + "bgcolor": "", + "className": "", + "icon": "", + "payload": "{\"state\":\"on\"}", + "payloadType": "json", + "topic": "topic", + "topicType": "msg", + "x": 1060, + "y": 100, + "wires": [ + [ + "3e15eb6386d83e69" + ] + ] + }, + { + "id": "361c18ca3e0631c7", + "type": "ui_button", + "z": "5bea18a0180b611e", + "name": "Licht_AUS", + "group": "51bf0475.ddfd2c", + "order": 13, + "width": 0, + "height": 0, + "passthru": false, + "label": "Licht AUS", + "tooltip": "", + "color": "", + "bgcolor": "", + "className": "", + "icon": "", + "payload": "{\"state\":\"off\"}", + "payloadType": "json", + "topic": "topic", + "topicType": "msg", + "x": 1050, + "y": 160, + "wires": [ + [ + "3e15eb6386d83e69" + ] + ] + }, + { + "id": "43631c7945a1a3d4", + "type": "finite-state-machine", + "z": "7a4080d8574c7aec", + "name": "", + "fsmDefinition": "{\"state\":{\"status\":\"OFF\",\"data\":{\"x\":2}},\"transitions\":{\"OFF\":{\"ons\":{\"status\":\"ON\",\"data\":{\"x\":1}},\"inte\":{\"status\":\"DIMUP\",\"data\":{\"x\":3}},\"inta\":\"OFF\",\"offs\":\"OFF\"},\"ON\":{\"offs\":{\"status\":\"OFF\",\"data\":{\"x\":2}},\"inta\":{\"status\":\"DIMDN\",\"data\":{\"x\":4}},\"inte\":\"ON\",\"ons\":\"ON\"},\"DIMUP\":{\"ons\":{\"status\":\"DIMSTOP\",\"data\":{\"x\":5}},\"offs\":{\"status\":\"DIMSTOP\",\"data\":{\"x\":5}},\"inta\":{\"status\":\"DIMDN\",\"data\":{\"x\":4}},\"inte\":\"DIMUP\"},\"DIMDN\":{\"ons\":{\"status\":\"DIMSTOP\",\"data\":{\"x\":5}},\"offs\":{\"status\":\"DIMSTOP\",\"data\":{\"x\":5}},\"inte\":{\"status\":\"DIMUP\",\"data\":{\"x\":6}},\"inta\":\"DIMDN\"},\"DIMSTOP\":{\"offs\":{\"status\":\"OFF\",\"data\":{\"x\":2}},\"inte\":{\"status\":\"DIMUP\",\"data\":{\"x\":6}},\"ons\":{\"status\":\"ON\",\"data\":{\"x\":1}},\"inta\":{\"status\":\"DIMDN\",\"data\":{\"x\":4}}}}}", + "sendInitialState": true, + "sendStateWithoutChange": false, + "showTransitionErrors": true, + "x": 580, + "y": 840, + "wires": [ + [ + "612a4f20e2182a9c" + ] + ] + }, + { + "id": "8d41f502dca266de", + "type": "debug", + "z": "7a4080d8574c7aec", + "name": "debug 23", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1320, + "y": 740, + "wires": [] + }, + { + "id": "84c6256c809ac7ae", + "type": "inject", + "z": "7a4080d8574c7aec", + "name": "SET ON", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "ons", + "payload": "", + "payloadType": "date", + "x": 270, + "y": 760, + "wires": [ + [ + "43631c7945a1a3d4" + ] + ] + }, + { + "id": "9652b1cc3b7ec79f", + "type": "inject", + "z": "7a4080d8574c7aec", + "name": "DIM UP", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "inte", + "payload": "", + "payloadType": "date", + "x": 270, + "y": 880, + "wires": [ + [ + "43631c7945a1a3d4" + ] + ] + }, + { + "id": "6d6d89222a3cea69", + "type": "inject", + "z": "7a4080d8574c7aec", + "name": "SET OFF", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "offs", + "payload": "", + "payloadType": "date", + "x": 280, + "y": 820, + "wires": [ + [ + "43631c7945a1a3d4" + ] + ] + }, + { + "id": "fbf197f1684f6b93", + "type": "inject", + "z": "7a4080d8574c7aec", + "name": "DIM DOWN", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "inta", + "payload": "", + "payloadType": "date", + "x": 290, + "y": 940, + "wires": [ + [ + "43631c7945a1a3d4" + ] + ] + }, + { + "id": "612a4f20e2182a9c", + "type": "switch", + "z": "7a4080d8574c7aec", + "name": "", + "property": "trigger.topic", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "ons", + "vt": "str" + }, + { + "t": "eq", + "v": "offs", + "vt": "str" + }, + { + "t": "eq", + "v": "inte", + "vt": "str" + }, + { + "t": "eq", + "v": "inta", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 4, + "x": 810, + "y": 840, + "wires": [ + [ + "1bb091e608dd2ace" + ], + [ + "1bb091e608dd2ace" + ], + [ + "72073df2b886b72a" + ], + [ + "72073df2b886b72a" + ] + ] + }, + { + "id": "823db4f3eabd9ed9", + "type": "inject", + "z": "7a4080d8574c7aec", + "name": "reset", + "props": [ + { + "p": "control", + "v": "reset", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "x": 270, + "y": 640, + "wires": [ + [ + "43631c7945a1a3d4" + ] + ] + }, + { + "id": "f809e339a2a3808a", + "type": "function", + "z": "7a4080d8574c7aec", + "name": "set commands", + "func": "let cmds = [\n {},\n {\"turn\": \"on\", \"brightness\": 100},\n { \"turn\": \"off\", \"brightness\": 20},\n { \"brightness_step_onoff\": \"ON\", \"brightness_step\" : 20},\n { \"brightness_step\": -20 },\n]\nmsg.topic = \"shellies/terassenlichtdimmer/light/0/set\",\nmsg.payload = cmds[msg.payload.data.x]\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1060, + "y": 840, + "wires": [ + [ + "8d41f502dca266de", + "d36259b976d8e1b6" + ] + ] + }, + { + "id": "aadb62d1e501514e", + "type": "debug", + "z": "7a4080d8574c7aec", + "name": "debug 99", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1060, + "y": 740, + "wires": [] + }, + { + "id": "d36259b976d8e1b6", + "type": "mqtt out", + "z": "7a4080d8574c7aec", + "name": "Set Brightness", + "topic": "", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1380, + "y": 840, + "wires": [] + }, + { + "id": "2258ca1fe98d9c60", + "type": "function", + "z": "7a4080d8574c7aec", + "name": "Calculate Dimmer Value", + "func": "// Hole aktuellen Wert\nlet current = flow.get(\"currentBrightness\");\nlet step = 10;\n\n// if (msg.payload === \"up\") {\nif (msg.payload.data.x === \"3\") {\n current += step;\n// } else if (msg.payload === \"down\") {\n} else if (msg.payload.data.x === \"4\") {\n current -= step;\n}\n\n// Begrenzung\ncurrent = Math.min(100, Math.max(0, current));\n\n// Speichere neuen Wert wieder\nflow.set(\"currentBrightness\", current)\n\n// Sende neuen Wert\nreturn {\n topic: \"shellies/terassenlichtdimmer/light/0/set\",\n payload: JSON.stringify({brightness: current})\n};", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1090, + "y": 920, + "wires": [ + [ + "d36259b976d8e1b6" + ] + ] + }, + { + "id": "4d22db93cf0e6e0c", + "type": "debug", + "z": "7a4080d8574c7aec", + "name": "debug 103", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1050, + "y": 980, + "wires": [] + }, + { + "id": "dfef00940ec7580f", + "type": "mqtt in", + "z": "7a4080d8574c7aec", + "name": "Get Brightness", + "topic": "shellies/terassenlichtdimmer/light/0/status", + "qos": "0", + "datatype": "json", + "broker": "c7cf83a81a522047", + "nl": false, + "rap": false, + "inputs": 0, + "x": 280, + "y": 1120, + "wires": [ + [ + "12864d031884af3b" + ] + ] + }, + { + "id": "68dc958f994b800c", + "type": "debug", + "z": "7a4080d8574c7aec", + "name": "debug 106", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "debug", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 850, + "y": 1120, + "wires": [] + }, + { + "id": "12864d031884af3b", + "type": "function", + "z": "7a4080d8574c7aec", + "name": "function 33", + "func": "flow.set('currentBrightness', msg.payload.brightness);\nmsg.debug = { 'current': flow.get(\"currentBrightness\") };\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 530, + "y": 1120, + "wires": [ + [ + "68dc958f994b800c" + ] + ] + }, + { + "id": "0401edb8829d4114", + "type": "mqtt in", + "z": "7a4080d8574c7aec", + "name": "", + "topic": "hm/status/Licht_Terasse_Taster_EZ_AUS:1/#", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 330, + "y": 220, + "wires": [ + [ + "dcd9fe37c8f6fa3e" + ] + ] + }, + { + "id": "7d8167ba339056f6", + "type": "switch", + "z": "7a4080d8574c7aec", + "name": "", + "property": "topic", + "propertyType": "msg", + "rules": [ + { + "t": "regex", + "v": "hm/status/Licht_Terasse_Taster_[EW]Z_EIN:2/PRESS_SHORT", + "vt": "str", + "case": false + }, + { + "t": "regex", + "v": "hm/status/Licht_Terasse_Taster_[EW]Z_EIN:2/PRESS_LONG", + "vt": "str", + "case": false + }, + { + "t": "regex", + "v": "hm/status/Licht_Terasse_Taster_[EW]Z_AUS:1/PRESS_SHORT", + "vt": "str", + "case": false + }, + { + "t": "regex", + "v": "hm/status/Licht_Terasse_Taster_[EW]Z_AUS:1/PRESS_LONG", + "vt": "str", + "case": false + }, + { + "t": "regex", + "v": "hm/status/Fernbedienung_EZ:3/PRESS_SHORT", + "vt": "str", + "case": false + }, + { + "t": "regex", + "v": "hm/status/Fernbedienung_EZ:4/PRESS_SHORT", + "vt": "str", + "case": false + } + ], + "checkall": "true", + "repair": false, + "outputs": 6, + "x": 650, + "y": 540, + "wires": [ + [ + "7f14dc9af27f8bd1" + ], + [ + "2ae860a36fb049e5" + ], + [ + "61d54e74a7994032" + ], + [ + "d191446223eaab19" + ], + [ + "7f14dc9af27f8bd1" + ], + [ + "61d54e74a7994032" + ] + ] + }, + { + "id": "7f14dc9af27f8bd1", + "type": "change", + "z": "7a4080d8574c7aec", + "name": "set ons", + "rules": [ + { + "t": "set", + "p": "topic", + "pt": "msg", + "to": "ons", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1060, + "y": 440, + "wires": [ + [ + "21431dc5a7600959" + ] + ] + }, + { + "id": "61d54e74a7994032", + "type": "change", + "z": "7a4080d8574c7aec", + "name": "set offs", + "rules": [ + { + "t": "set", + "p": "topic", + "pt": "msg", + "to": "offs", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1060, + "y": 520, + "wires": [ + [ + "21431dc5a7600959" + ] + ] + }, + { + "id": "2ae860a36fb049e5", + "type": "change", + "z": "7a4080d8574c7aec", + "name": "set inte", + "rules": [ + { + "t": "set", + "p": "topic", + "pt": "msg", + "to": "inte", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1060, + "y": 480, + "wires": [ + [ + "21431dc5a7600959" + ] + ] + }, + { + "id": "d191446223eaab19", + "type": "change", + "z": "7a4080d8574c7aec", + "name": "set inta", + "rules": [ + { + "t": "set", + "p": "topic", + "pt": "msg", + "to": "inta", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1060, + "y": 560, + "wires": [ + [ + "21431dc5a7600959" + ] + ] + }, + { + "id": "044e9a90c4c664af", + "type": "debug", + "z": "7a4080d8574c7aec", + "name": "debug 24", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1360, + "y": 400, + "wires": [] + }, + { + "id": "60241be912584962", + "type": "comment", + "z": "7a4080d8574c7aec", + "name": "Einlesen der Taste(n) und entsprechend schalten", + "info": "", + "x": 340, + "y": 80, + "wires": [] + }, + { + "id": "ddd298fb94173ac0", + "type": "comment", + "z": "7a4080d8574c7aec", + "name": "Zustand der Lampen erfassen und speichern", + "info": "", + "x": 370, + "y": 1060, + "wires": [] + }, + { + "id": "c65ab1792c3c7187", + "type": "debug", + "z": "7a4080d8574c7aec", + "name": "debug 112", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "topic", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 610, + "y": 120, + "wires": [] + }, + { + "id": "d8eb30b64b6f498d", + "type": "mqtt in", + "z": "7a4080d8574c7aec", + "name": "", + "topic": "hm/status/Licht_Terasse_Taster_EZ_EIN:2/#", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 330, + "y": 280, + "wires": [ + [ + "dcd9fe37c8f6fa3e" + ] + ] + }, + { + "id": "5f8734fdd567239b", + "type": "mqtt in", + "z": "7a4080d8574c7aec", + "name": "", + "topic": "hm/status/Licht_Terasse_Taster_WZ_AUS:1/#", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 330, + "y": 340, + "wires": [ + [ + "dcd9fe37c8f6fa3e" + ] + ] + }, + { + "id": "a94c889f77ae36e8", + "type": "mqtt in", + "z": "7a4080d8574c7aec", + "name": "", + "topic": "hm/status/Licht_Terasse_Taster_WZ_EIN:2/#", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 330, + "y": 400, + "wires": [ + [ + "dcd9fe37c8f6fa3e" + ] + ] + }, + { + "id": "f015cb3114009f49", + "type": "gate", + "z": "7a4080d8574c7aec", + "name": "Sperre 500ms ab start", + "controlTopic": "control", + "defaultState": "closed", + "openCmd": "open", + "closeCmd": "close", + "toggleCmd": "toggle", + "defaultCmd": "default", + "statusCmd": "status", + "persist": false, + "storeName": "memory", + "x": 860, + "y": 320, + "wires": [ + [ + "7d8167ba339056f6" + ] + ] + }, + { + "id": "64d85bf30e7f9328", + "type": "inject", + "z": "7a4080d8574c7aec", + "name": "", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": true, + "onceDelay": "0.5", + "topic": "control", + "payload": "open", + "payloadType": "str", + "x": 730, + "y": 180, + "wires": [ + [ + "f015cb3114009f49" + ] + ] + }, + { + "id": "a78e77b1cac64c85", + "type": "comment", + "z": "7a4080d8574c7aec", + "name": "Versions", + "info": "### 2025-04-16 \n - Lampen via shelly-dimmer (WLAN) steuern\n - vorerst KEIN dimmen", + "x": 260, + "y": 1720, + "wires": [] + }, + { + "id": "c939d013db672b80", + "type": "mqtt in", + "z": "7a4080d8574c7aec", + "name": "", + "topic": "hm/status/BW-Melder_Hausecke_Werte/BRIGHTNESS", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 400, + "y": 1460, + "wires": [ + [ + "d05c8f7232adabb9", + "e4ca623718246f41" + ] + ] + }, + { + "id": "4772b066d7878d2a", + "type": "function", + "z": "7a4080d8574c7aec", + "name": "Bewegung und Helligkeit erfassen", + "func": "if (msg.payload.val == true) {\n let zeit = new Date()\n let hours = zeit.getHours()\n let bright = flow.get(\"bwbright\")\n if (((bright <=45) && (hours >=12) || (bright <= 25) )) {\n msg.topic = \"ons\"\n } else {\n msg = {}\n return\n }\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 820, + "y": 1520, + "wires": [ + [ + "33712bfc21d053b2", + "a850e42af835643c", + "57bf4f05da232301" + ] + ] + }, + { + "id": "4832fc2a7e967204", + "type": "config", + "z": "7a4080d8574c7aec", + "name": "", + "properties": [ + { + "p": "bwbright", + "pt": "flow", + "to": "255", + "tot": "num" + } + ], + "active": true, + "x": 270, + "y": 1400, + "wires": [] + }, + { + "id": "d05c8f7232adabb9", + "type": "change", + "z": "7a4080d8574c7aec", + "name": "", + "rules": [ + { + "t": "set", + "p": "bwbright", + "pt": "flow", + "to": "payload.val", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 770, + "y": 1460, + "wires": [ + [] + ] + }, + { + "id": "453a30dad029b1c1", + "type": "mqtt in", + "z": "7a4080d8574c7aec", + "name": "", + "topic": "hm/status/BW-Melder_Hausecke_Werte/MOTION", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 390, + "y": 1520, + "wires": [ + [ + "4772b066d7878d2a", + "d2fb71c033187a21" + ] + ] + }, + { + "id": "f417dbeef1ec1c99", + "type": "link in", + "z": "7a4080d8574c7aec", + "name": "link2FSM", + "links": [ + "33712bfc21d053b2", + "5b7afc64acaa87a3", + "5036edec1efbf944" + ], + "x": 345, + "y": 1000, + "wires": [ + [ + "43631c7945a1a3d4" + ] + ] + }, + { + "id": "33712bfc21d053b2", + "type": "link out", + "z": "7a4080d8574c7aec", + "name": "linkfromBW", + "mode": "link", + "links": [ + "f417dbeef1ec1c99" + ], + "x": 1055, + "y": 1520, + "wires": [] + }, + { + "id": "a850e42af835643c", + "type": "delay", + "z": "7a4080d8574c7aec", + "name": "", + "pauseType": "delay", + "timeout": "2", + "timeoutUnits": "minutes", + "rate": "1", + "nbRateUnits": "1", + "rateUnits": "second", + "randomFirst": "1", + "randomLast": "5", + "randomUnits": "seconds", + "drop": false, + "allowrate": false, + "outputs": 1, + "x": 780, + "y": 1640, + "wires": [ + [ + "f2123b748d136d35" + ] + ] + }, + { + "id": "f2123b748d136d35", + "type": "change", + "z": "7a4080d8574c7aec", + "name": "", + "rules": [ + { + "t": "set", + "p": "topic", + "pt": "msg", + "to": "offs", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 980, + "y": 1640, + "wires": [ + [ + "5b7afc64acaa87a3" + ] + ] + }, + { + "id": "5b7afc64acaa87a3", + "type": "link out", + "z": "7a4080d8574c7aec", + "name": "link out 1", + "mode": "link", + "links": [ + "f417dbeef1ec1c99" + ], + "x": 1135, + "y": 1640, + "wires": [] + }, + { + "id": "5036edec1efbf944", + "type": "link out", + "z": "7a4080d8574c7aec", + "name": "link out 2", + "mode": "link", + "links": [ + "f417dbeef1ec1c99" + ], + "x": 1415, + "y": 500, + "wires": [] + }, + { + "id": "e4ca623718246f41", + "type": "debug", + "z": "7a4080d8574c7aec", + "name": "debug 116", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 770, + "y": 1380, + "wires": [] + }, + { + "id": "d2fb71c033187a21", + "type": "debug", + "z": "7a4080d8574c7aec", + "name": "debug 117", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 750, + "y": 1700, + "wires": [] + }, + { + "id": "57bf4f05da232301", + "type": "debug", + "z": "7a4080d8574c7aec", + "name": "debug 118", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1090, + "y": 1400, + "wires": [] + }, + { + "id": "d60cab7f2cab4c92", + "type": "mqtt in", + "z": "32e861899dcd9239", + "name": "", + "topic": "hm/status/Waschmaschine_Messwerte/POWER", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 280, + "y": 160, + "wires": [ + [] + ] + }, + { + "id": "5c83b51c60782513", + "type": "mqtt in", + "z": "32e861899dcd9239", + "name": "", + "topic": "hm/status/Trockner_Messwerte/POWER", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 260, + "y": 320, + "wires": [ + [] + ] + }, + { + "id": "64a29e1d4b5956bf", + "type": "trigger", + "z": "32e861899dcd9239", + "name": "", + "op1": "", + "op2": "0.5,1,60,1", + "op1type": "nul", + "op2type": "str", + "duration": "10", + "extend": true, + "overrideDelay": false, + "units": "s", + "reset": "", + "bytopic": "all", + "topic": "topic", + "outputs": 1, + "x": 1010, + "y": 140, + "wires": [ + [ + "7cd4a894e2e7af94", + "e2fefc7a04ba05bd", + "17e982a92338ea0d", + "29643ede22f9f99e" + ] + ] + }, + { + "id": "b0db50ff9e196beb", + "type": "switch", + "z": "32e861899dcd9239", + "name": "", + "property": "payload.val", + "propertyType": "msg", + "rules": [ + { + "t": "gte", + "v": "10", + "vt": "str" + }, + { + "t": "eq", + "v": "0", + "vt": "str" + }, + { + "t": "else" + } + ], + "checkall": "true", + "repair": false, + "outputs": 3, + "x": 670, + "y": 160, + "wires": [ + [ + "64a29e1d4b5956bf" + ], + [ + "a5ca5c36a9f4e32d", + "6443a894ab9e0832" + ], + [] + ] + }, + { + "id": "a5ca5c36a9f4e32d", + "type": "debug", + "z": "32e861899dcd9239", + "name": "debug 51", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 960, + "y": 200, + "wires": [] + }, + { + "id": "7cd4a894e2e7af94", + "type": "debug", + "z": "32e861899dcd9239", + "name": "debug 52", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1300, + "y": 140, + "wires": [] + }, + { + "id": "29643ede22f9f99e", + "type": "mqtt out", + "z": "32e861899dcd9239", + "name": "", + "topic": "hm/set/MP3_Funkgong_Lautsprecher:2/SUBMIT", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1610, + "y": 240, + "wires": [] + }, + { + "id": "85682833ed51a630", + "type": "mqtt out", + "z": "32e861899dcd9239", + "name": "", + "topic": "hm/set/MP3_Funkgong_LED:1/SUBMIT", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1580, + "y": 400, + "wires": [] + }, + { + "id": "56f138c8f45a9671", + "type": "inject", + "z": "32e861899dcd9239", + "name": "", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 800, + "y": 60, + "wires": [ + [ + "64a29e1d4b5956bf", + "66801bd1f3c5265b" + ] + ] + }, + { + "id": "66801bd1f3c5265b", + "type": "debug", + "z": "32e861899dcd9239", + "name": "debug 53", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1180, + "y": 60, + "wires": [] + }, + { + "id": "e2fefc7a04ba05bd", + "type": "change", + "z": "32e861899dcd9239", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "1,10,108000,18", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1280, + "y": 400, + "wires": [ + [ + "85682833ed51a630" + ] + ] + }, + { + "id": "fd5f3e59ca66b2b5", + "type": "change", + "z": "32e861899dcd9239", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "1,0,108000,18", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1280, + "y": 480, + "wires": [ + [ + "85682833ed51a630" + ] + ] + }, + { + "id": "17e982a92338ea0d", + "type": "trigger", + "z": "32e861899dcd9239", + "name": "", + "op1": "true", + "op2": "0", + "op1type": "bool", + "op2type": "str", + "duration": "-10", + "extend": false, + "overrideDelay": false, + "units": "s", + "reset": "", + "bytopic": "all", + "topic": "topic", + "outputs": 1, + "x": 870, + "y": 540, + "wires": [ + [ + "e2fefc7a04ba05bd", + "57af589ae07099a6" + ] + ] + }, + { + "id": "6443a894ab9e0832", + "type": "function", + "z": "32e861899dcd9239", + "name": "function 22", + "func": "msg.reset=true\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 770, + "y": 340, + "wires": [ + [] + ] + }, + { + "id": "57af589ae07099a6", + "type": "debug", + "z": "32e861899dcd9239", + "name": "debug 54", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1100, + "y": 640, + "wires": [] + }, + { + "id": "250ee9f1d0857360", + "type": "cronplus", + "z": "85bb16dbe6fb391c", + "name": "", + "outputField": "payload", + "timeZone": "", + "storeName": "", + "commandResponseMsgOutput": "output1", + "defaultLocation": "", + "defaultLocationType": "default", + "outputs": 1, + "options": [ + { + "name": "schedule1", + "topic": "topic1", + "payloadType": "default", + "payload": "", + "expressionType": "solar", + "expression": "0 * * * * * *", + "location": "48.776826823252065 9.12689208984375", + "offset": "1", + "solarType": "selected", + "solarEvents": "sunset" + } + ], + "x": 300, + "y": 240, + "wires": [ + [ + "f5f74747f3241572", + "b4044b0b254cdb10", + "98a6e8131db36434", + "dff4436ff2609e04", + "6628459ca05fbb46" + ] + ] + }, + { + "id": "f5f74747f3241572", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 56", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 600, + "y": 180, + "wires": [] + }, + { + "id": "f6eb416d29c11459", + "type": "cronplus", + "z": "85bb16dbe6fb391c", + "name": "", + "outputField": "payload", + "timeZone": "Europe/Berlin", + "storeName": "", + "commandResponseMsgOutput": "output1", + "defaultLocation": "48.804783197350694 9.19624328613281", + "defaultLocationType": "fixed", + "outputs": 1, + "options": [ + { + "name": "schedule1", + "topic": "topic1", + "payloadType": "bool", + "payload": "true", + "expressionType": "cron", + "expression": "0 01 08 * * * *", + "location": "48.776826823252065 9.12689208984375", + "offset": "1", + "solarType": "selected", + "solarEvents": "sunset" + } + ], + "x": 300, + "y": 640, + "wires": [ + [ + "4fe48863da435da3", + "e539eb3078484934", + "b1af785904e1d579" + ] + ] + }, + { + "id": "4fe48863da435da3", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 57", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 600, + "y": 580, + "wires": [] + }, + { + "id": "b4044b0b254cdb10", + "type": "change", + "z": "85bb16dbe6fb391c", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "{\"value\": true}", + "tot": "json" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 620, + "y": 240, + "wires": [ + [ + "da4e75e34226398c" + ] + ] + }, + { + "id": "da4e75e34226398c", + "type": "mqtt out", + "z": "85bb16dbe6fb391c", + "name": "Rollladen RUNTER", + "topic": "hm/set/HM-RCV-50 BidCoS-RF:14/PRESS_SHORT", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 910, + "y": 240, + "wires": [] + }, + { + "id": "e539eb3078484934", + "type": "change", + "z": "85bb16dbe6fb391c", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "{\"value\": true}", + "tot": "json" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 620, + "y": 640, + "wires": [ + [ + "6115b6432e6d7331" + ] + ] + }, + { + "id": "6115b6432e6d7331", + "type": "mqtt out", + "z": "85bb16dbe6fb391c", + "name": "Rollladen HOCH", + "topic": "hm/set/HM-RCV-50 BidCoS-RF:15/PRESS_SHORT", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 900, + "y": 640, + "wires": [] + }, + { + "id": "98a6e8131db36434", + "type": "change", + "z": "85bb16dbe6fb391c", + "name": "WZ RUNTER", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "{\"state\": \"CLOSE\"}", + "tot": "json" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 610, + "y": 380, + "wires": [ + [ + "a6381ef4be3a869b" + ] + ] + }, + { + "id": "651da90bdb2f954f", + "type": "mqtt out", + "z": "85bb16dbe6fb391c", + "name": "Rollladen_WZ_Terasse", + "topic": "zigbee2mqtt/Rollladen_WZ_Terasse/set", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1040, + "y": 420, + "wires": [] + }, + { + "id": "37f655dd992a96e1", + "type": "mqtt in", + "z": "85bb16dbe6fb391c", + "name": "Terassen_Tuere_WZ", + "topic": "hm/status/Tuere_EZ_Terasse:1/STATE", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 310, + "y": 1080, + "wires": [ + [ + "5fcda4ffe01eac84", + "a9c14e6b70e1a25c" + ] + ] + }, + { + "id": "5fcda4ffe01eac84", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 58", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 520, + "y": 1020, + "wires": [] + }, + { + "id": "a9c14e6b70e1a25c", + "type": "function", + "z": "85bb16dbe6fb391c", + "name": "set wz_tuere", + "func": "flow.set('wz_tuere',msg.payload.val === 0 ? 'closed' : 'open')\nreturn", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 530, + "y": 1080, + "wires": [ + [] + ] + }, + { + "id": "dff4436ff2609e04", + "type": "function", + "z": "85bb16dbe6fb391c", + "name": "Sperre bei Tuere offen", + "func": "let wz_tuere = flow.get('wz_tuere')\nif(wz_tuere === 'closed') {\n msg.payload = {'level': 0}\n return msg\n}\nreturn", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 640, + "y": 300, + "wires": [ + [ + "c1b26f635fca8471", + "eddf32b9553b7bf7" + ] + ] + }, + { + "id": "c3f624e89f905286", + "type": "mqtt out", + "z": "85bb16dbe6fb391c", + "name": "Terasse_EZ_Rollladen RUNTER", + "topic": "hm/set/Rollladen_EZ_Terasse:1/LEVEL", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1130, + "y": 300, + "wires": [] + }, + { + "id": "3b1689d24cfe558c", + "type": "config", + "z": "85bb16dbe6fb391c", + "name": "", + "properties": [ + { + "p": "wz_tuere", + "pt": "flow", + "to": "closed", + "tot": "str" + } + ], + "active": true, + "x": 290, + "y": 440, + "wires": [] + }, + { + "id": "c1b26f635fca8471", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 59", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 880, + "y": 180, + "wires": [] + }, + { + "id": "8becdfb004ab2930", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Init wz_tuere mit 'closed'", + "info": "", + "x": 330, + "y": 400, + "wires": [] + }, + { + "id": "22510f7142a2b49c", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Rollladen RUNTER fahren", + "info": "", + "x": 330, + "y": 180, + "wires": [] + }, + { + "id": "22e2b8a1fe59d08e", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Rollladen RAUF fahren", + "info": "", + "x": 320, + "y": 580, + "wires": [] + }, + { + "id": "4522c4d09b388471", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Rollladen Steuerung", + "info": "## Beschreibung\nAlle Rollläden nach Zeit auf und zu fahren. Bei Esszimmer-TerassenTüre Sperre beachten: wenn Türe offen, dann **nicht** fahren. \nZusätzlich EZ und WZ per Hand mit der FB\n\n**Zeiten:** \n* Morgens um 8:01 AUF fahren, außer SZ\n* SZ um 10:01 AUF fahren\n* alle mit Sonnenuntergang ZU fahren\n\n## Version\nVersion | Datum | Author | Bemerkung\n-------|--------|-------|---\nV 1.2 | 2025-06-14 | rxf | WZ via FB dazu\nV 1.1 | 2024-01-19 | rxf | SZ später AUF\nV 1.0 | 2024-01-18 | rxf | erste lauffähige Version\n", + "x": 310, + "y": 40, + "wires": [] + }, + { + "id": "eddf32b9553b7bf7", + "type": "delay", + "z": "85bb16dbe6fb391c", + "name": "", + "pauseType": "delay", + "timeout": "1", + "timeoutUnits": "seconds", + "rate": "1", + "nbRateUnits": "1", + "rateUnits": "second", + "randomFirst": "1", + "randomLast": "5", + "randomUnits": "seconds", + "drop": false, + "allowrate": false, + "outputs": 1, + "x": 880, + "y": 300, + "wires": [ + [ + "c3f624e89f905286" + ] + ] + }, + { + "id": "b1af785904e1d579", + "type": "change", + "z": "85bb16dbe6fb391c", + "name": "WZ RAUF", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "{\"state\": \"OPEN\"}", + "tot": "json" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 600, + "y": 460, + "wires": [ + [ + "a6381ef4be3a869b" + ] + ] + }, + { + "id": "8ece69214fcd72b8", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Zustand WZ_Tuere in die Variable flow.wz_tuere übernehmen", + "info": "", + "x": 440, + "y": 980, + "wires": [] + }, + { + "id": "2e16b8205b7ff65e", + "type": "cronplus", + "z": "85bb16dbe6fb391c", + "name": "", + "outputField": "payload", + "timeZone": "Europe/Berlin", + "storeName": "", + "commandResponseMsgOutput": "output1", + "defaultLocation": "48.804783197350694 9.19624328613281", + "defaultLocationType": "fixed", + "outputs": 1, + "options": [ + { + "name": "schedule1", + "topic": "topic1", + "payloadType": "bool", + "payload": "true", + "expressionType": "cron", + "expression": "0 01 10 * * * *", + "location": "48.776826823252065 9.12689208984375", + "offset": "1", + "solarType": "selected", + "solarEvents": "sunset" + } + ], + "x": 300, + "y": 840, + "wires": [ + [ + "a82c0e12257e5658" + ] + ] + }, + { + "id": "a82c0e12257e5658", + "type": "change", + "z": "85bb16dbe6fb391c", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "{\"value\": true}", + "tot": "json" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 620, + "y": 840, + "wires": [ + [ + "949513f21e37f3a0" + ] + ] + }, + { + "id": "949513f21e37f3a0", + "type": "mqtt out", + "z": "85bb16dbe6fb391c", + "name": "Rollladen_SZ HOCH", + "topic": "hm/set/HM-RCV-50 BidCoS-RF:16/PRESS_SHORT", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 920, + "y": 840, + "wires": [] + }, + { + "id": "169651885ddf2042", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Schalfzimmer / Küche Rollladen später RAUF fahren", + "info": "", + "x": 410, + "y": 780, + "wires": [] + }, + { + "id": "4908d84ea02b3ac6", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "ACHTUNG: wz_tuer muss ez_tuere heißen !!", + "info": "", + "x": 1030, + "y": 580, + "wires": [] + }, + { + "id": "97aed912c480bc99", + "type": "mqtt out", + "z": "85bb16dbe6fb391c", + "name": "Rollladen_EZ_Fenster", + "topic": "zigbee2mqtt/Rollladen_EZ_Fenster/set", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1040, + "y": 480, + "wires": [] + }, + { + "id": "e6fccfc16daf4a4a", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Rollladen Esszimmer per Hand mit FB steuern", + "info": "Rollladen Esszimmer per Hand mit FB steuern\n", + "x": 390, + "y": 1200, + "wires": [] + }, + { + "id": "7e7f4612c52ecd10", + "type": "mqtt in", + "z": "85bb16dbe6fb391c", + "name": "", + "topic": "hm/status/Fernbedienung_EZ:6/PRESS_SHORT", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 260, + "y": 1380, + "wires": [ + [ + "d0fc562e3e042ec2", + "f3b518c46df5c580" + ] + ] + }, + { + "id": "4a7b886cc55c59ef", + "type": "mqtt out", + "z": "85bb16dbe6fb391c", + "name": "Rollladen_EZ_Fenster", + "topic": "zigbee2mqtt/Rollladen_EZ_Fenster/set", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1180, + "y": 1400, + "wires": [] + }, + { + "id": "c313fd79c83682d8", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Init mv_up und mv_down auf 'false'", + "info": "", + "x": 440, + "y": 1240, + "wires": [] + }, + { + "id": "a99f7f8ffd5d3b1f", + "type": "config", + "z": "85bb16dbe6fb391c", + "name": "", + "properties": [ + { + "p": "mv_down", + "pt": "flow", + "to": "false", + "tot": "bool" + }, + { + "p": "mv_up", + "pt": "flow", + "to": "false", + "tot": "bool" + } + ], + "active": true, + "x": 370, + "y": 1280, + "wires": [] + }, + { + "id": "d0fc562e3e042ec2", + "type": "function", + "z": "85bb16dbe6fb391c", + "name": "function 34", + "func": "msg.debug = { \"down\": flow.get(\"mv_down\"), \"up\": flow.get(\"mv_up\") }\nif (flow.get(\"mv_down\")) {\n flow.set(\"mv_down\", false)\n msg.payload = {\"state\": \"STOP\"}\n} else {\n flow.set(\"mv_down\", true)\n flow.set(\"mv_up\", false)\n msg.payload = { \"state\": \"CLOSE\" }\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 610, + "y": 1380, + "wires": [ + [ + "b4d4592c5aa03410" + ] + ] + }, + { + "id": "18194a1929c92902", + "type": "function", + "z": "85bb16dbe6fb391c", + "name": "function 35", + "func": "msg.debug = { \"down\": flow.get(\"mv_down\"), \"up\": flow.get(\"mv_up\") }\nif (flow.get(\"mv_up\")) {\n flow.set(\"mv_up\", false)\n msg.payload = {\"state\": \"STOP\"}\n} else {\n flow.set(\"mv_up\", true)\n flow.set(\"mv_down\", false)\n msg.payload = { \"state\": \"OPEN\" }\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 610, + "y": 1440, + "wires": [ + [ + "b4d4592c5aa03410" + ] + ] + }, + { + "id": "321074393c65012a", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 120", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 950, + "y": 1320, + "wires": [] + }, + { + "id": "f3b518c46df5c580", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 121", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 610, + "y": 1320, + "wires": [] + }, + { + "id": "a6a991677946f29a", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 122", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 610, + "y": 1500, + "wires": [] + }, + { + "id": "2a16e8007850444c", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Rollladen Terasse Wohnzimmer per Hand mit FB steuern", + "info": "Rollladen Esszimmer per Hand mit FB steuern\n", + "x": 430, + "y": 1600, + "wires": [] + }, + { + "id": "8e6b4c1289347aee", + "type": "mqtt in", + "z": "85bb16dbe6fb391c", + "name": "", + "topic": "hm/status/#", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 290, + "y": 1780, + "wires": [ + [ + "72d506b0ee3d6235", + "e177b4e42bf5e579" + ] + ] + }, + { + "id": "72d506b0ee3d6235", + "type": "switch", + "z": "85bb16dbe6fb391c", + "name": "", + "property": "topic", + "propertyType": "msg", + "rules": [ + { + "t": "regex", + "v": "hm/status/Fernbedienung_WZ:6/PRESS_SHORT", + "vt": "str", + "case": false + }, + { + "t": "regex", + "v": "hm/status/Fernbedienung_WZ:5/PRESS_SHORT", + "vt": "str", + "case": false + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 530, + "y": 1780, + "wires": [ + [ + "32d56f9caeabe77d", + "1b92472304349d6e" + ], + [ + "cc879229bc85c5d6", + "d2e53cb53b6b93c3" + ] + ] + }, + { + "id": "44044d80bc651c59", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Init mv_upW und mv_downW auf 'false'", + "info": "", + "x": 430, + "y": 1640, + "wires": [] + }, + { + "id": "4d4d7bde15354a25", + "type": "config", + "z": "85bb16dbe6fb391c", + "name": "", + "properties": [ + { + "p": "mv_downW", + "pt": "flow", + "to": "false", + "tot": "bool" + }, + { + "p": "mv_upW", + "pt": "flow", + "to": "false", + "tot": "bool" + } + ], + "active": true, + "x": 350, + "y": 1680, + "wires": [] + }, + { + "id": "32d56f9caeabe77d", + "type": "function", + "z": "85bb16dbe6fb391c", + "name": "function 41", + "func": "if (flow.get(\"mv_downW\")) {\n flow.set(\"mv_downW\", false)\n msg.payload = {\"state\": \"STOP\"}\n} else {\n flow.set(\"mv_downW\", true)\n msg.payload = { \"state\": \"CLOSE\" }\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 790, + "y": 1740, + "wires": [ + [ + "443f14b7b45672c6" + ] + ] + }, + { + "id": "cc879229bc85c5d6", + "type": "function", + "z": "85bb16dbe6fb391c", + "name": "function 42", + "func": "if (flow.get(\"mv_upW\")) {\n flow.set(\"mv_upW\", false)\n msg.payload = {\"state\": \"STOP\"}\n} else {\n flow.set(\"mv_upW\", true)\n msg.payload = { \"state\": \"OPEN\" }\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 790, + "y": 1800, + "wires": [ + [ + "443f14b7b45672c6" + ] + ] + }, + { + "id": "b019206106626e9e", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 127", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1150, + "y": 1660, + "wires": [] + }, + { + "id": "1b92472304349d6e", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 128", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 770, + "y": 1640, + "wires": [] + }, + { + "id": "d2e53cb53b6b93c3", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 129", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 790, + "y": 1900, + "wires": [] + }, + { + "id": "e177b4e42bf5e579", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 130", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 470, + "y": 1880, + "wires": [] + }, + { + "id": "ff14f67020e558bc", + "type": "mqtt out", + "z": "85bb16dbe6fb391c", + "name": "Terasse_WZ_Rollladen", + "topic": "zigbee2mqtt/Terasse_WZ_Rollladen/set", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1180, + "y": 1760, + "wires": [] + }, + { + "id": "4785a5b4933cd3fe", + "type": "mqtt out", + "z": "85bb16dbe6fb391c", + "name": "Rolladen_WZ_groß", + "topic": "zigbee2mqtt/Rollladen_WZ_groß/set", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1030, + "y": 360, + "wires": [] + }, + { + "id": "4aa20b1fba84c75d", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Rollladen Wohnzimmer_groß per Hand mit FB steuern", + "info": "Rollladen Esszimmer per Hand mit FB steuern\n", + "x": 420, + "y": 2020, + "wires": [] + }, + { + "id": "1b3f2482868d365c", + "type": "mqtt in", + "z": "85bb16dbe6fb391c", + "name": "", + "topic": "hm/status/#", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 290, + "y": 2200, + "wires": [ + [ + "6d1949c48f1432b0", + "1b13d8e6d4278579" + ] + ] + }, + { + "id": "3289b7e058d79737", + "type": "switch", + "z": "85bb16dbe6fb391c", + "name": "", + "property": "topic", + "propertyType": "msg", + "rules": [ + { + "t": "regex", + "v": "hm/status/Fernbedienung_WZ:4/PRESS_SHORT", + "vt": "str", + "case": false + }, + { + "t": "regex", + "v": "hm/status/Fernbedienung_WZ:3/PRESS_SHORT", + "vt": "str", + "case": false + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 830, + "y": 2200, + "wires": [ + [ + "6c1cf4bdaba813e2", + "cda63c1cf0b7f671" + ], + [ + "1819ea0b09240e1c", + "3cb17e998bc9c005" + ] + ] + }, + { + "id": "8648665e86d3093c", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Init mv_upWg und mv_downWg auf 'false'", + "info": "", + "x": 460, + "y": 2060, + "wires": [] + }, + { + "id": "b05d4a49bb06fd7f", + "type": "config", + "z": "85bb16dbe6fb391c", + "name": "", + "properties": [ + { + "p": "mv_downWg", + "pt": "flow", + "to": "false", + "tot": "bool" + }, + { + "p": "mv_upWg", + "pt": "flow", + "to": "false", + "tot": "bool" + }, + { + "p": "moving", + "pt": "flow", + "to": "STOP", + "tot": "str" + } + ], + "active": true, + "x": 370, + "y": 2100, + "wires": [] + }, + { + "id": "6c1cf4bdaba813e2", + "type": "function", + "z": "85bb16dbe6fb391c", + "name": "function 43", + "func": "if (flow.get(\"mv_downWg\")) {\n flow.set(\"mv_downWg\", false)\n msg.payload = {\"state\": \"STOP\"}\n} else {\n flow.set(\"mv_downWg\", true)\n msg.payload = { \"state\": \"CLOSE\" }\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1110, + "y": 2160, + "wires": [ + [ + "d28e11d867e00655" + ] + ] + }, + { + "id": "1819ea0b09240e1c", + "type": "function", + "z": "85bb16dbe6fb391c", + "name": "function 44", + "func": "if (flow.get(\"mv_upWg\")) {\n flow.set(\"mv_upWg\", false)\n msg.payload = {\"state\": \"STOP\"}\n} else {\n flow.set(\"mv_upWg\", true)\n msg.payload = { \"state\": \"OPEN\" }\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1110, + "y": 2220, + "wires": [ + [ + "d28e11d867e00655" + ] + ] + }, + { + "id": "37e1477bb82c8327", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 139", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1470, + "y": 2080, + "wires": [] + }, + { + "id": "cda63c1cf0b7f671", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 140", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1090, + "y": 2060, + "wires": [] + }, + { + "id": "3cb17e998bc9c005", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 141", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1110, + "y": 2300, + "wires": [] + }, + { + "id": "6d1949c48f1432b0", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 142", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 470, + "y": 2300, + "wires": [] + }, + { + "id": "c3553c69292506a3", + "type": "mqtt out", + "z": "85bb16dbe6fb391c", + "name": "Rollladen_WZ_groß", + "topic": "zigbee2mqtt/Rollladen_WZ_groß/set", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1490, + "y": 2180, + "wires": [] + }, + { + "id": "7d7d6d068f5d7679", + "type": "mqtt out", + "z": "85bb16dbe6fb391c", + "name": "Rollladen_Bad", + "topic": "hm/set/HmIP-BROLL 001122699A8CF1:4/LEVEL", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 980, + "y": 60, + "wires": [] + }, + { + "id": "d80ecbb7ab989368", + "type": "inject", + "z": "85bb16dbe6fb391c", + "name": "", + "props": [ + { + "p": "payload" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "0", + "payloadType": "num", + "x": 730, + "y": 40, + "wires": [ + [ + "7d7d6d068f5d7679" + ] + ] + }, + { + "id": "a74853beabb476b8", + "type": "inject", + "z": "85bb16dbe6fb391c", + "name": "", + "props": [ + { + "p": "payload" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "1", + "payloadType": "num", + "x": 730, + "y": 80, + "wires": [ + [ + "7d7d6d068f5d7679" + ] + ] + }, + { + "id": "6628459ca05fbb46", + "type": "change", + "z": "85bb16dbe6fb391c", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "0", + "tot": "num" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 620, + "y": 120, + "wires": [ + [] + ] + }, + { + "id": "20c0ea10cd7ab201", + "type": "mqtt in", + "z": "85bb16dbe6fb391c", + "name": "", + "topic": "zigbee2mqtt/Rollladen_WZ_groß", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 350, + "y": 2380, + "wires": [ + [ + "afec1e97d767106b" + ] + ] + }, + { + "id": "afec1e97d767106b", + "type": "debug", + "z": "85bb16dbe6fb391c", + "name": "debug 150", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 610, + "y": 2600, + "wires": [] + }, + { + "id": "87e1aebf8e137d61", + "type": "change", + "z": "85bb16dbe6fb391c", + "name": "", + "rules": [ + { + "t": "set", + "p": "moving", + "pt": "flow", + "to": "payload.moving", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 640, + "y": 2380, + "wires": [ + [] + ] + }, + { + "id": "79de0e699a26b940", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "", + "info": "Mit Hilfe von flow.moving ebntscheiden, was zu tun ist\n\n\n", + "x": 1020, + "y": 2520, + "wires": [] + }, + { + "id": "61bdcede70944d96", + "type": "comment", + "z": "85bb16dbe6fb391c", + "name": "Rolladen wird intern mit Zeitsteuerung bedient", + "info": "", + "x": 1070, + "y": 20, + "wires": [] + }, + { + "id": "1b13d8e6d4278579", + "type": "function", + "z": "85bb16dbe6fb391c", + "name": "block first message", + "func": "// function node\nlet alreadySeen = context.get(\"alreadySeen\") || false;\n\nif (!alreadySeen) {\n // erste Message blockieren\n context.set(\"alreadySeen\", true);\n return null;\n} else {\n // alle weiteren durchlassen\n return msg;\n}\n", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 570, + "y": 2200, + "wires": [ + [ + "3289b7e058d79737" + ] + ] + }, + { + "id": "24f6d467e40e1f52", + "type": "mqtt in", + "z": "85bb16dbe6fb391c", + "name": "", + "topic": "hm/status/Fernbedienung_EZ:5/PRESS_SHORT", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 260, + "y": 1440, + "wires": [ + [ + "a6a991677946f29a", + "18194a1929c92902" + ] + ] + }, + { + "id": "dec850c65b5c8c5a", + "type": "change", + "z": "9f826196c06ea578", + "name": "Heizung AUS", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "{\"heizung\": false}", + "tot": "json" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 870, + "y": 700, + "wires": [ + [ + "0c0faa8d4cd3b990" + ] + ] + }, + { + "id": "c6630df47928ad37", + "type": "mqtt out", + "z": "9f826196c06ea578", + "name": "Schalte Heizung", + "topic": "home66/shellyplus1-CL_Heizung/rpc", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1600, + "y": 740, + "wires": [] + }, + { + "id": "0f53a1d42ad808ad", + "type": "debug", + "z": "9f826196c06ea578", + "name": "debug 60", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1580, + "y": 680, + "wires": [] + }, + { + "id": "0d09956c322460bc", + "type": "mqtt out", + "z": "9f826196c06ea578", + "name": "CL_Fenster AUF/ZU", + "topic": "hm/set/Fenster_CL_Schließer:1/LEVEL", + "qos": "0", + "retain": "false", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1440, + "y": 480, + "wires": [] + }, + { + "id": "8877d804c0a2c596", + "type": "change", + "z": "9f826196c06ea578", + "name": "Fenster AUF", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "1", + "tot": "num" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 950, + "y": 520, + "wires": [ + [ + "90ce85278d757821" + ] + ] + }, + { + "id": "5bb5a5648ca0b59b", + "type": "change", + "z": "9f826196c06ea578", + "name": "Fenster ZU", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "0", + "tot": "num" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 950, + "y": 380, + "wires": [ + [ + "90ce85278d757821" + ] + ] + }, + { + "id": "60c4434b2d846c46", + "type": "trigger", + "z": "9f826196c06ea578", + "name": "", + "op1": "", + "op2": "0", + "op1type": "nul", + "op2type": "str", + "duration": "15", + "extend": false, + "overrideDelay": false, + "units": "min", + "reset": "", + "bytopic": "all", + "topic": "topic", + "outputs": 1, + "x": 730, + "y": 460, + "wires": [ + [ + "5bb5a5648ca0b59b" + ] + ] + }, + { + "id": "c78ffd7fe4b7c449", + "type": "comment", + "z": "9f826196c06ea578", + "name": "Einfacher 2-Punkt-Regler", + "info": "", + "x": 330, + "y": 840, + "wires": [] + }, + { + "id": "e8cae05d1778740f", + "type": "mqtt in", + "z": "9f826196c06ea578", + "name": "Ist-Temp einlesen", + "topic": "zigbee2mqtt/TH_3", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 300, + "y": 960, + "wires": [ + [ + "09f36287e0cd1806", + "bbea70ddefbcae21" + ] + ] + }, + { + "id": "ee53aeaca9b44ccc", + "type": "function", + "z": "9f826196c06ea578", + "name": "2-Punkt-Regler (Hysteres = +/- °)", + "func": "let t = msg.payload.temperature\nlet hys = flow.get(\"hysterese\")\nlet soll = flow.get(\"soll\")\nif ( t >= (soll + hys)) {\n msg.payload = {\"heizung\": false}\n return msg;\n} else if (t <= (soll - hys)) {\n msg.payload = {\"heizung\": true}\n return msg;\n}\nreturn", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 990, + "y": 880, + "wires": [ + [ + "0c0faa8d4cd3b990" + ] + ] + }, + { + "id": "09f36287e0cd1806", + "type": "debug", + "z": "9f826196c06ea578", + "name": "debug 71", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 500, + "y": 1060, + "wires": [] + }, + { + "id": "9afb590d1584942d", + "type": "comment", + "z": "9f826196c06ea578", + "name": "CL-Fentster/Heizung Steuerung", + "info": "## Beschreibung\n* Clo-Fenster per Taste auf/zu \n* Clo-Heizung mit einfachem 2-Punkt-Regler regeln\n* Wenn Fenter offen, den Regler abschalten (und auch die Heizung)\n* Zustand der heizung nach Influx speichern\n## Version\nVersion | Datum | Author | Bemerkung\n-------|--------|-------|---\nV 1.1 | 2024-01-26 | rfxf | Reglerperre bei offenem Fenster\nV 1.0 | 2024-01-25 | rxf | erste lauffähige Version\n", + "x": 630, + "y": 80, + "wires": [] + }, + { + "id": "72d923fab4928420", + "type": "config", + "z": "9f826196c06ea578", + "name": "Soll = 17 / Hysteres = 0.5", + "properties": [ + { + "p": "soll", + "pt": "flow", + "to": "17", + "tot": "num" + }, + { + "p": "hysterese", + "pt": "flow", + "to": "0.5", + "tot": "num" + }, + { + "p": "aussen", + "pt": "flow", + "to": "5.0", + "tot": "num" + }, + { + "p": "fenster", + "pt": "flow", + "to": "1", + "tot": "num" + } + ], + "active": true, + "x": 350, + "y": 900, + "wires": [] + }, + { + "id": "b6dd8b419d5a5f4b", + "type": "delay", + "z": "9f826196c06ea578", + "name": "", + "pauseType": "rate", + "timeout": "5", + "timeoutUnits": "seconds", + "rate": "1", + "nbRateUnits": "1", + "rateUnits": "second", + "randomFirst": "1", + "randomLast": "5", + "randomUnits": "seconds", + "drop": true, + "allowrate": false, + "outputs": 1, + "x": 710, + "y": 960, + "wires": [ + [ + "ee53aeaca9b44ccc", + "339ebd7135c745e3" + ] + ] + }, + { + "id": "d9c24a6b480f3977", + "type": "inject", + "z": "9f826196c06ea578", + "name": "AUF", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "{\"val\": true}", + "payloadType": "json", + "x": 230, + "y": 540, + "wires": [ + [ + "3d0189e0d1661e53" + ] + ] + }, + { + "id": "b7692a5803fcffd6", + "type": "inject", + "z": "9f826196c06ea578", + "name": "ZU", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "{\"val\": false}", + "payloadType": "json", + "x": 230, + "y": 320, + "wires": [ + [ + "5bb5a5648ca0b59b" + ] + ] + }, + { + "id": "dbb38ac3029b3aac", + "type": "function", + "z": "9f826196c06ea578", + "name": "Kommand für Heizung", + "func": "let cmnd = { \"id\": 0, \"src\": \"home66/shellyplus1-CL_Heizung/result\", \"method\": \"Switch.Set\", \"params\": { \"id\": 0, \"on\": true } }\ncmnd.params.on = msg.payload.heizung\nmsg.payload = cmnd\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1320, + "y": 740, + "wires": [ + [ + "0f53a1d42ad808ad" + ] + ] + }, + { + "id": "bbea70ddefbcae21", + "type": "gate", + "z": "9f826196c06ea578", + "name": "Reglersperre", + "controlTopic": "control", + "defaultState": "open", + "openCmd": "open", + "closeCmd": "close", + "toggleCmd": "toggle", + "defaultCmd": "default", + "statusCmd": "status", + "persist": false, + "storeName": "memory", + "x": 510, + "y": 960, + "wires": [ + [ + "b6dd8b419d5a5f4b" + ] + ] + }, + { + "id": "cb958466b4f4951d", + "type": "function", + "z": "9f826196c06ea578", + "name": "Abh. vom Fenster und Aussentemp die Sperre aktivieren", + "func": "msg.topic = 'control'\nif ((flow.get('aussen') < 5.0) && (flow.get('fenster') == 1)) {\n msg.payload = 'close'\n} else {\n msg.payload = 'open'\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 730, + "y": 780, + "wires": [ + [ + "bbea70ddefbcae21", + "5945403023bb86b1" + ] + ] + }, + { + "id": "339ebd7135c745e3", + "type": "debug", + "z": "9f826196c06ea578", + "name": "debug 72", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 980, + "y": 1020, + "wires": [] + }, + { + "id": "1afc34ece687e69a", + "type": "mqtt in", + "z": "9f826196c06ea578", + "name": "Fenster-Taster", + "topic": "zigbee2mqtt/Taster_Fenster_Clo", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 230, + "y": 460, + "wires": [ + [ + "ed6781a1e76023ec", + "add4ce358561c508" + ] + ] + }, + { + "id": "ed6781a1e76023ec", + "type": "debug", + "z": "9f826196c06ea578", + "name": "debug 95", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 400, + "y": 380, + "wires": [] + }, + { + "id": "add4ce358561c508", + "type": "switch", + "z": "9f826196c06ea578", + "name": "", + "property": "payload.action", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "double", + "vt": "str" + }, + { + "t": "eq", + "v": "single", + "vt": "str" + }, + { + "t": "eq", + "v": "hold", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 3, + "x": 410, + "y": 460, + "wires": [ + [ + "5bb5a5648ca0b59b" + ], + [ + "3d0189e0d1661e53" + ], + [] + ] + }, + { + "id": "d808e1fc5b17d4ee", + "type": "comment", + "z": "9f826196c06ea578", + "name": "Fenster AUF mit Taster steuern", + "info": "", + "x": 210, + "y": 260, + "wires": [] + }, + { + "id": "a982aaaf74cc2374", + "type": "mqtt in", + "z": "9f826196c06ea578", + "name": "AU-TH_9", + "topic": "zigbee2mqtt/TH_9", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 640, + "wires": [ + [ + "8b12280fb9b51f3b" + ] + ] + }, + { + "id": "8b12280fb9b51f3b", + "type": "change", + "z": "9f826196c06ea578", + "name": "", + "rules": [ + { + "t": "set", + "p": "aussen", + "pt": "flow", + "to": "payload.temperature", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 400, + "y": 640, + "wires": [ + [ + "cb958466b4f4951d", + "348387098c4753ab" + ] + ] + }, + { + "id": "5a999538205738cd", + "type": "change", + "z": "9f826196c06ea578", + "name": "", + "rules": [ + { + "t": "set", + "p": "fenster", + "pt": "flow", + "to": "payload", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1200, + "y": 300, + "wires": [ + [ + "a88111ca76d9ca90" + ] + ] + }, + { + "id": "5945403023bb86b1", + "type": "debug", + "z": "9f826196c06ea578", + "name": "debug 176", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1130, + "y": 620, + "wires": [] + }, + { + "id": "56e1ca51ff084b29", + "type": "debug", + "z": "9f826196c06ea578", + "name": "debug 177", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1630, + "y": 300, + "wires": [] + }, + { + "id": "a88111ca76d9ca90", + "type": "change", + "z": "9f826196c06ea578", + "name": "", + "rules": [ + { + "t": "set", + "p": "debug", + "pt": "msg", + "to": "fenster", + "tot": "flow" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1420, + "y": 300, + "wires": [ + [ + "56e1ca51ff084b29" + ] + ] + }, + { + "id": "348387098c4753ab", + "type": "debug", + "z": "9f826196c06ea578", + "name": "debug 178", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 590, + "y": 640, + "wires": [] + }, + { + "id": "9e617dec92526da1", + "type": "comment", + "z": "c4c5067b315c581d", + "name": "Versionen", + "info": "2025-06-05\n * TH-Messung entfernt - Sensor ausgebaut\n2025-04-25\n * Strommessung hinzugefügt \n2025-04-16 \n * Erste Version (Temperatur und Feuchte im AMS)\n", + "x": 180, + "y": 720, + "wires": [] + }, + { + "id": "5db66ea7384e3781", + "type": "mqtt in", + "z": "c4c5067b315c581d", + "name": "", + "topic": "zigbee2mqtt/3D-Printer", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 220, + "y": 580, + "wires": [ + [ + "841d8fbbaeeacd08", + "e867e1618d362fc2", + "76e948abc826d12c", + "26cb98962c8201d2" + ] + ] + }, + { + "id": "841d8fbbaeeacd08", + "type": "debug", + "z": "c4c5067b315c581d", + "name": "debug 114", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 490, + "y": 460, + "wires": [] + }, + { + "id": "e867e1618d362fc2", + "type": "change", + "z": "c4c5067b315c581d", + "name": "extract Power", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "payload.power", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 500, + "y": 540, + "wires": [ + [ + "9a3b86ebd0ddf361", + "4646eb4d3c433c9f" + ] + ] + }, + { + "id": "9a3b86ebd0ddf361", + "type": "ui_gauge", + "z": "c4c5067b315c581d", + "name": "Leistung [W]", + "group": "0da5c56696a7e8e9", + "order": 4, + "width": 4, + "height": 3, + "gtype": "gage", + "title": "Leistung", + "label": "W", + "format": "{{value | number:0}}", + "min": 0, + "max": "1000", + "colors": [ + "#00f900", + "#fefb00", + "#ca3838" + ], + "seg1": "65", + "seg2": "70", + "diff": false, + "className": "", + "x": 810, + "y": 580, + "wires": [] + }, + { + "id": "76e948abc826d12c", + "type": "change", + "z": "c4c5067b315c581d", + "name": "extract energy", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "payload.energy", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 500, + "y": 620, + "wires": [ + [ + "460ea14e2e032af1" + ] + ] + }, + { + "id": "f77c691ecf9a5d74", + "type": "comment", + "z": "c4c5067b315c581d", + "name": "Strom- und Energieverbrauch des 3D-Druckers", + "info": "", + "x": 300, + "y": 400, + "wires": [] + }, + { + "id": "460ea14e2e032af1", + "type": "ui_text", + "z": "c4c5067b315c581d", + "group": "0da5c56696a7e8e9", + "order": 10, + "width": 0, + "height": 0, + "name": "", + "label": "Energie [kWh]", + "format": "{{msg.payload}}", + "layout": "row-spread", + "className": "", + "style": false, + "font": "", + "fontSize": 16, + "color": "#000000", + "x": 820, + "y": 640, + "wires": [] + }, + { + "id": "d1be1dee36dec090", + "type": "debug", + "z": "c4c5067b315c581d", + "name": "debug 108", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 870, + "y": 280, + "wires": [] + }, + { + "id": "da2d052c1ad91392", + "type": "inject", + "z": "c4c5067b315c581d", + "name": "", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "5", + "crontab": "", + "once": true, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 200, + "y": 160, + "wires": [ + [ + "b295efa151b6762b" + ] + ] + }, + { + "id": "b295efa151b6762b", + "type": "moment", + "z": "c4c5067b315c581d", + "name": "", + "topic": "", + "input": "", + "inputType": "msg", + "inTz": "Europe/Berlin", + "adjAmount": 0, + "adjType": "days", + "adjDir": "add", + "format": "HH:mm dddd, DD.MMMM.YYYY", + "locale": "de-DE", + "output": "", + "outputType": "msg", + "outTz": "Europe/Berlin", + "x": 570, + "y": 160, + "wires": [ + [ + "d1be1dee36dec090", + "d15b28b792c632be", + "b681921a082ccc74" + ] + ] + }, + { + "id": "23cb224f997e2270", + "type": "ui_text", + "z": "c4c5067b315c581d", + "group": "0da5c56696a7e8e9", + "order": 1, + "width": 6, + "height": 1, + "name": "", + "label": "", + "format": "{{msg.payload}}", + "layout": "row-center", + "className": "", + "style": false, + "font": "", + "fontSize": 16, + "color": "#000000", + "x": 1120, + "y": 160, + "wires": [] + }, + { + "id": "d15b28b792c632be", + "type": "function", + "z": "c4c5067b315c581d", + "name": "function 36", + "func": "msg.payload = msg.payload.slice(0,5)\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 880, + "y": 160, + "wires": [ + [ + "23cb224f997e2270" + ] + ] + }, + { + "id": "e4651cb96187a1e8", + "type": "ui_text", + "z": "c4c5067b315c581d", + "group": "0da5c56696a7e8e9", + "order": 2, + "width": 6, + "height": 1, + "name": "", + "label": "", + "format": "{{msg.payload}}", + "layout": "row-center", + "className": "", + "style": false, + "font": "", + "fontSize": 16, + "color": "#000000", + "x": 1120, + "y": 220, + "wires": [] + }, + { + "id": "b681921a082ccc74", + "type": "function", + "z": "c4c5067b315c581d", + "name": "function 37", + "func": "msg.payload = msg.payload.slice(6)\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 880, + "y": 220, + "wires": [ + [ + "e4651cb96187a1e8" + ] + ] + }, + { + "id": "10eae0ccc12c2ca7", + "type": "comment", + "z": "c4c5067b315c581d", + "name": "Uhrzeit/Datum anzeigen", + "info": "", + "x": 220, + "y": 100, + "wires": [] + }, + { + "id": "06d9278ab0a140fd", + "type": "influxdb out", + "z": "c4c5067b315c581d", + "influxdb": "db07a39246cf7003", + "name": "influx_nuccy", + "measurement": "energy", + "precision": "", + "retentionPolicy": "", + "database": "database", + "precisionV18FluxV20": "s", + "retentionPolicyV18Flux": "", + "org": "citysensor", + "bucket": "bambulab", + "x": 1150, + "y": 520, + "wires": [] + }, + { + "id": "26cb98962c8201d2", + "type": "function", + "z": "c4c5067b315c581d", + "name": "Energie und Leistung aufbereiten", + "func": "let energie = msg.payload.energy\nlet leistung = msg.payload.power\nmsg.payload = { \"energy\": energie, \"power\": leistung}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 800, + "y": 440, + "wires": [ + [ + "06d9278ab0a140fd", + "7dacb32c0c4349f3" + ] + ] + }, + { + "id": "7dacb32c0c4349f3", + "type": "debug", + "z": "c4c5067b315c581d", + "name": "debug 115", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1130, + "y": 400, + "wires": [] + }, + { + "id": "4646eb4d3c433c9f", + "type": "ui_chart", + "z": "c4c5067b315c581d", + "name": "", + "group": "0da5c56696a7e8e9", + "order": 11, + "width": 0, + "height": 0, + "label": "Leistung [W]", + "chartType": "line", + "legend": "false", + "xformat": "HH:mm", + "interpolate": "linear", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": 1, + "removeOlderPoints": "", + "removeOlderUnit": "3600", + "cutout": 0, + "useOneColor": false, + "useUTC": false, + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 1, + "useDifferentColor": false, + "className": "", + "x": 810, + "y": 520, + "wires": [ + [] + ] + }, + { + "id": "4bdd760c05e46e13", + "type": "mqtt in", + "z": "809a218ad0189c5f", + "name": "", + "topic": "v3/rxf-dragon@ttn/devices/eui-a84041cd51845801/up", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 520, + "y": 360, + "wires": [ + [ + "5cfe529a77eb844a", + "28865e9efcafe076" + ] + ] + }, + { + "id": "5cfe529a77eb844a", + "type": "function", + "z": "809a218ad0189c5f", + "name": "function 31", + "func": "let temp = msg.payload.uplink_message.decoded_payload.TempC_SHT;\nmsg.payload = temp;\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 990, + "y": 360, + "wires": [ + [ + "59d0203a8c248b14" + ] + ] + }, + { + "id": "59d0203a8c248b14", + "type": "debug", + "z": "809a218ad0189c5f", + "name": "debug 91", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1260, + "y": 200, + "wires": [] + }, + { + "id": "28865e9efcafe076", + "type": "debug", + "z": "809a218ad0189c5f", + "name": "debug 92", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 900, + "y": 200, + "wires": [] + }, + { + "id": "bad2a4fc86c51c5a", + "type": "mqtt in", + "z": "809a218ad0189c5f", + "name": "", + "topic": "CYD/get/bme280", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 400, + "y": 1200, + "wires": [ + [ + "74a9304e2fcad6f6" + ] + ] + }, + { + "id": "74a9304e2fcad6f6", + "type": "debug", + "z": "809a218ad0189c5f", + "name": "debug 94", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 800, + "y": 1200, + "wires": [] + }, + { + "id": "15e659e7b43b515f", + "type": "mqtt in", + "z": "0f906ba2e4239518", + "name": "AU-TH_9", + "topic": "zigbee2mqtt/TH_9", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 120, + "y": 280, + "wires": [ + [ + "20164c80f59227d8", + "3f110343e1134af2", + "884c239551e42737" + ] + ] + }, + { + "id": "ecb94b091cd1f66a", + "type": "comment", + "z": "0f906ba2e4239518", + "name": "Aussentemp und Feuchte über TH_9", + "info": "", + "x": 200, + "y": 200, + "wires": [] + }, + { + "id": "00912540c5b96fee", + "type": "comment", + "z": "0f906ba2e4239518", + "name": "Versionen", + "info": "### V 1.0.1 2025-06-14\n- Anzeigebereiche angepasst\n\n### V 1.0.0 2025-06-13 rxf \n - erste Version\n", + "x": 120, + "y": 620, + "wires": [] + }, + { + "id": "20164c80f59227d8", + "type": "change", + "z": "0f906ba2e4239518", + "name": "extract Feuchte", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "payload.humidity", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 480, + "y": 240, + "wires": [ + [ + "6694c350a7e2a73d", + "537d68c0ccdf391c" + ] + ] + }, + { + "id": "3f110343e1134af2", + "type": "change", + "z": "0f906ba2e4239518", + "name": "extract Temperatur", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "payload.temperature", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 490, + "y": 320, + "wires": [ + [ + "4ed54768bc70c1a4", + "c89ac3b91ed84fad" + ] + ] + }, + { + "id": "6694c350a7e2a73d", + "type": "ui_gauge", + "z": "0f906ba2e4239518", + "name": "Feuchte [%]", + "group": "650272fe9af6cd24", + "order": 8, + "width": 4, + "height": 3, + "gtype": "gage", + "title": "Feuchte", + "label": "%", + "format": "{{value | number:0}}", + "min": 0, + "max": "100", + "colors": [ + "#00f900", + "#fefb00", + "#ca3838" + ], + "seg1": "65", + "seg2": "70", + "diff": false, + "className": "", + "x": 790, + "y": 240, + "wires": [] + }, + { + "id": "4ed54768bc70c1a4", + "type": "ui_gauge", + "z": "0f906ba2e4239518", + "name": "Temp [°C]", + "group": "650272fe9af6cd24", + "order": 7, + "width": 4, + "height": 3, + "gtype": "gage", + "title": "Temperatur", + "label": "°C", + "format": "{{value | number:1}}", + "min": "-5", + "max": "40", + "colors": [ + "#fefb00", + "#00f900", + "#ca3838" + ], + "seg1": "20", + "seg2": "25", + "diff": false, + "className": "", + "x": 780, + "y": 320, + "wires": [] + }, + { + "id": "537d68c0ccdf391c", + "type": "ui_chart", + "z": "0f906ba2e4239518", + "name": "", + "group": "650272fe9af6cd24", + "order": 10, + "width": 0, + "height": 0, + "label": "Feuchte (12h)", + "chartType": "line", + "legend": "false", + "xformat": "HH:mm", + "interpolate": "bezier", + "nodata": "", + "dot": false, + "ymin": "20", + "ymax": "100", + "removeOlder": "12", + "removeOlderPoints": "", + "removeOlderUnit": "3600", + "cutout": 0, + "useOneColor": false, + "useUTC": false, + "colors": [ + "#ff2600", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 1, + "useDifferentColor": false, + "className": "", + "x": 800, + "y": 180, + "wires": [ + [] + ] + }, + { + "id": "c89ac3b91ed84fad", + "type": "ui_chart", + "z": "0f906ba2e4239518", + "name": "", + "group": "650272fe9af6cd24", + "order": 9, + "width": 0, + "height": 0, + "label": "Temperatur (12h)", + "chartType": "line", + "legend": "false", + "xformat": "HH:mm", + "interpolate": "bezier", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "12", + "removeOlderPoints": "", + "removeOlderUnit": "3600", + "cutout": 0, + "useOneColor": false, + "useUTC": false, + "colors": [ + "#ff2600", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 1, + "useDifferentColor": false, + "className": "", + "x": 810, + "y": 380, + "wires": [ + [] + ] + }, + { + "id": "677353f9f99004f4", + "type": "debug", + "z": "0f906ba2e4239518", + "name": "debug 125", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 810, + "y": 600, + "wires": [] + }, + { + "id": "45a2c2f5f2299b5a", + "type": "inject", + "z": "0f906ba2e4239518", + "name": "", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "5", + "crontab": "", + "once": true, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 140, + "y": 480, + "wires": [ + [ + "bdb81a85a63f4c01" + ] + ] + }, + { + "id": "bdb81a85a63f4c01", + "type": "moment", + "z": "0f906ba2e4239518", + "name": "", + "topic": "", + "input": "", + "inputType": "msg", + "inTz": "Europe/Berlin", + "adjAmount": 0, + "adjType": "days", + "adjDir": "add", + "format": "HH:mm dddd, DD.MMMM.YYYY", + "locale": "de-DE", + "output": "", + "outputType": "msg", + "outTz": "Europe/Berlin", + "x": 510, + "y": 480, + "wires": [ + [ + "677353f9f99004f4", + "b967ef1739fb527e", + "b4280379538b0983" + ] + ] + }, + { + "id": "346535a9b36c16fb", + "type": "ui_text", + "z": "0f906ba2e4239518", + "group": "650272fe9af6cd24", + "order": 2, + "width": 6, + "height": 1, + "name": "", + "label": "", + "format": "{{msg.payload}}", + "layout": "row-center", + "className": "", + "style": false, + "font": "", + "fontSize": 16, + "color": "#000000", + "x": 1060, + "y": 480, + "wires": [] + }, + { + "id": "b967ef1739fb527e", + "type": "function", + "z": "0f906ba2e4239518", + "name": "function 39", + "func": "msg.payload = msg.payload.slice(0,5)\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 820, + "y": 480, + "wires": [ + [ + "346535a9b36c16fb" + ] + ] + }, + { + "id": "38d631e6e368ec0f", + "type": "ui_text", + "z": "0f906ba2e4239518", + "group": "650272fe9af6cd24", + "order": 5, + "width": 6, + "height": 1, + "name": "", + "label": "", + "format": "{{msg.payload}}", + "layout": "row-center", + "className": "", + "style": false, + "font": "", + "fontSize": 16, + "color": "#000000", + "x": 1060, + "y": 540, + "wires": [] + }, + { + "id": "b4280379538b0983", + "type": "function", + "z": "0f906ba2e4239518", + "name": "function 40", + "func": "msg.payload = msg.payload.slice(6)\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 820, + "y": 540, + "wires": [ + [ + "38d631e6e368ec0f" + ] + ] + }, + { + "id": "18e62028647f6375", + "type": "comment", + "z": "0f906ba2e4239518", + "name": "Uhrzeit/Datum anzeigen", + "info": "", + "x": 160, + "y": 420, + "wires": [] + }, + { + "id": "884c239551e42737", + "type": "debug", + "z": "0f906ba2e4239518", + "name": "debug 126", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 470, + "y": 380, + "wires": [] + }, + { + "id": "119761fc6def37fc", + "type": "mqtt in", + "z": "c23febdb48bc9327", + "name": "", + "topic": "zigbee2mqtt/BW_EZ", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 190, + "y": 560, + "wires": [ + [ + "6aaf0ce933e87e18" + ] + ] + }, + { + "id": "a6f9f85bbcdf9c08", + "type": "inject", + "z": "c23febdb48bc9327", + "name": "true", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "{\"occupancy\": true}", + "payloadType": "json", + "x": 170, + "y": 620, + "wires": [ + [ + "6a38296bdc7f5b48" + ] + ] + }, + { + "id": "278dd227c934cf3e", + "type": "inject", + "z": "c23febdb48bc9327", + "name": "false", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "{\"state\": \"off\"}", + "payloadType": "json", + "x": 170, + "y": 480, + "wires": [ + [ + "8878a0a8f089e449" + ] + ] + }, + { + "id": "6a38296bdc7f5b48", + "type": "function", + "z": "c23febdb48bc9327", + "name": "detect_motion", + "func": "if (msg.payload.occupancy === true) {\n msg.payload = { \"state\": \"on\" }\n}\nreturn msg", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 700, + "y": 560, + "wires": [ + [ + "07aef6302a97f782" + ] + ] + }, + { + "id": "d7a2aacda7b7c6f0", + "type": "comment", + "z": "c23febdb48bc9327", + "name": "BW-Melder auswerden", + "info": "", + "x": 300, + "y": 440, + "wires": [] + }, + { + "id": "21699ca5b334aad9", + "type": "mqtt in", + "z": "c23febdb48bc9327", + "name": "", + "topic": "zigbee2mqtt/Licht_Sensor", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 210, + "y": 220, + "wires": [ + [ + "ae73fbc132c8739b", + "f931533dc540c3dd", + "a42ac93c1b57f66f" + ] + ] + }, + { + "id": "ae73fbc132c8739b", + "type": "function", + "z": "c23febdb48bc9327", + "name": "check brightness", + "func": "\nconst helltop = flow.get('helltop')\nconst hellbot = flow.get('hellbot')\n\nlet hell = msg.payload.illuminance_lux\nflow.set('hell',hell)\nmsg.topic = 'control'\nif (hell >= helltop) {\n msg.payload = 'close'\n} else if (hell <= hellbot) {\n msg.payload = 'open'\n} else {\n msg.payload = ''\n}\nmsg.debug = hell\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 810, + "y": 220, + "wires": [ + [ + "fdabc8011c980271", + "07aef6302a97f782" + ] + ] + }, + { + "id": "fdabc8011c980271", + "type": "debug", + "z": "c23febdb48bc9327", + "name": "debug 132", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1030, + "y": 160, + "wires": [] + }, + { + "id": "8878a0a8f089e449", + "type": "mqtt out", + "z": "c23febdb48bc9327", + "name": "", + "topic": "zigbee2mqtt/Licht_EZ/set", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1350, + "y": 480, + "wires": [] + }, + { + "id": "55308243b9caa038", + "type": "comment", + "z": "c23febdb48bc9327", + "name": "Esszimmer-Lich mit BW-Melder einschalten", + "info": "", + "x": 270, + "y": 140, + "wires": [] + }, + { + "id": "f931533dc540c3dd", + "type": "debug", + "z": "c23febdb48bc9327", + "name": "debug 133", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 550, + "y": 160, + "wires": [] + }, + { + "id": "95c7050915719e38", + "type": "debug", + "z": "c23febdb48bc9327", + "name": "debug 134", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 650, + "y": 420, + "wires": [] + }, + { + "id": "a42ac93c1b57f66f", + "type": "change", + "z": "c23febdb48bc9327", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "payload.illuminance_lux", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 500, + "y": 300, + "wires": [ + [ + "14c06742e472c598" + ] + ] + }, + { + "id": "14c06742e472c598", + "type": "ui_chart", + "z": "c23febdb48bc9327", + "name": "Helligkeit", + "group": "51bf0475.ddfd2c", + "order": 14, + "width": 0, + "height": 0, + "label": "Helligkeit [lux]", + "chartType": "line", + "legend": "false", + "xformat": "HH:mm", + "interpolate": "cubic", + "nodata": "", + "dot": false, + "ymin": "", + "ymax": "", + "removeOlder": "1", + "removeOlderPoints": "", + "removeOlderUnit": "3600", + "cutout": 0, + "useOneColor": false, + "useUTC": false, + "colors": [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5" + ], + "outputs": 1, + "useDifferentColor": false, + "className": "", + "x": 740, + "y": 300, + "wires": [ + [] + ] + }, + { + "id": "a9f57cca28d627b2", + "type": "trigger", + "z": "c23febdb48bc9327", + "name": "", + "op1": "1", + "op2": "0", + "op1type": "str", + "op2type": "str", + "duration": "5", + "extend": false, + "overrideDelay": false, + "units": "s", + "reset": "", + "bytopic": "all", + "topic": "topic", + "outputs": 1, + "x": 720, + "y": 720, + "wires": [ + [ + "1cb685b17d224d65", + "7c251e525a41894a" + ] + ] + }, + { + "id": "07aef6302a97f782", + "type": "gate", + "z": "c23febdb48bc9327", + "name": "", + "controlTopic": "control", + "defaultState": "closed", + "openCmd": "open", + "closeCmd": "close", + "toggleCmd": "toggle", + "defaultCmd": "default", + "statusCmd": "status", + "persist": false, + "storeName": "memory", + "x": 1090, + "y": 560, + "wires": [ + [ + "8878a0a8f089e449" + ] + ] + }, + { + "id": "0fd539e44e929b0d", + "type": "mqtt in", + "z": "c23febdb48bc9327", + "name": "", + "topic": "zigbee2mqtt/Licht_EZ", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 200, + "y": 780, + "wires": [ + [ + "a15bd5e1992ac0c9" + ] + ] + }, + { + "id": "a15bd5e1992ac0c9", + "type": "function", + "z": "c23febdb48bc9327", + "name": "filter switch OFF", + "func": "if (msg.payload.state === 'OFF') {\n msg.payload.state = \"off\"\n return msg\n} else {\n return\n}", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 480, + "y": 780, + "wires": [ + [ + "a9f57cca28d627b2", + "a4bee93573dca19e" + ] + ] + }, + { + "id": "a4bee93573dca19e", + "type": "debug", + "z": "c23febdb48bc9327", + "name": "debug 135", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 810, + "y": 820, + "wires": [] + }, + { + "id": "90fc735f458f4e7f", + "type": "debug", + "z": "c23febdb48bc9327", + "name": "debug 136", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1130, + "y": 800, + "wires": [] + }, + { + "id": "1cb685b17d224d65", + "type": "function", + "z": "c23febdb48bc9327", + "name": "block 5 sec", + "func": "msg.topic = 'control'\nif ((msg.payload !== \"1\") \n && (flow.get('hell') <= flow.get('hellbot')))\n{\n msg.payload = 'open'\n} else {\n msg.payload = 'close'\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 910, + "y": 720, + "wires": [ + [ + "90fc735f458f4e7f", + "07aef6302a97f782" + ] + ] + }, + { + "id": "6aaf0ce933e87e18", + "type": "delay", + "z": "c23febdb48bc9327", + "name": "", + "pauseType": "rate", + "timeout": "5", + "timeoutUnits": "seconds", + "rate": "1", + "nbRateUnits": "2", + "rateUnits": "second", + "randomFirst": "1", + "randomLast": "5", + "randomUnits": "seconds", + "drop": true, + "allowrate": false, + "outputs": 1, + "x": 420, + "y": 560, + "wires": [ + [ + "6a38296bdc7f5b48", + "95c7050915719e38" + ] + ] + }, + { + "id": "ebcd60f5dc498faf", + "type": "comment", + "z": "c23febdb48bc9327", + "name": "Schalter AUS verwenden", + "info": "", + "x": 310, + "y": 720, + "wires": [] + }, + { + "id": "eb96b094fdcf4325", + "type": "config", + "z": "c23febdb48bc9327", + "name": "", + "properties": [ + { + "p": "helltop", + "pt": "flow", + "to": "23", + "tot": "num" + }, + { + "p": "hellbot", + "pt": "flow", + "to": "20", + "tot": "num" + }, + { + "p": "hell", + "pt": "flow", + "to": "255", + "tot": "num" + } + ], + "active": true, + "x": 170, + "y": 300, + "wires": [] + }, + { + "id": "7c251e525a41894a", + "type": "debug", + "z": "c23febdb48bc9327", + "name": "debug 138", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 890, + "y": 620, + "wires": [] + }, + { + "id": "60dea7cbf33ac553", + "type": "mqtt in", + "z": "f3d03e63c0a7d73a", + "name": "", + "topic": "hm/status/Fernbedienung_WZ:8/PRESS_SHORT", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 280, + "y": 180, + "wires": [ + [ + "d3f1c881b02e2c53" + ] + ] + }, + { + "id": "d3f1c881b02e2c53", + "type": "debug", + "z": "f3d03e63c0a7d73a", + "name": "debug 143", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 630, + "y": 220, + "wires": [] + }, + { + "id": "d94c54cfe5cd1d51", + "type": "mqtt out", + "z": "f3d03e63c0a7d73a", + "name": "Switch TV", + "topic": "home66/TV_Set/tasmota_91EF90/cmnd/Power", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c7cf83a81a522047", + "x": 1120, + "y": 360, + "wires": [] + }, + { + "id": "cd4515f4520b5a09", + "type": "change", + "z": "f3d03e63c0a7d73a", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "TOGGLE", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 690, + "y": 340, + "wires": [ + [ + "d94c54cfe5cd1d51", + "640884bd2ad77e87" + ] + ] + }, + { + "id": "640884bd2ad77e87", + "type": "debug", + "z": "f3d03e63c0a7d73a", + "name": "debug 144", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 970, + "y": 220, + "wires": [] + }, + { + "id": "4d9ee0b3a98f9ecc", + "type": "mqtt in", + "z": "f3d03e63c0a7d73a", + "name": "", + "topic": "home66/TV_Set/tasmota_91EF90/RESULT", + "qos": "2", + "datatype": "auto-detect", + "broker": "c7cf83a81a522047", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 300, + "y": 460, + "wires": [ + [ + "7eb33a45338feef5" + ] + ] + }, + { + "id": "7eb33a45338feef5", + "type": "debug", + "z": "f3d03e63c0a7d73a", + "name": "debug 145", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 650, + "y": 460, + "wires": [] + }, + { + "id": "d5abe885374036ff", + "type": "debug", + "z": "f3d03e63c0a7d73a", + "name": "debug 146", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 570, + "y": 640, + "wires": [] + }, + { + "id": "4dd6f7360e609f7c", + "type": "amazon-echo-hub", + "z": "f3d03e63c0a7d73a", + "port": "80", + "processinput": 0, + "discovery": true, + "x": 110, + "y": 600, + "wires": [ + [ + "45162f25bf2a6d56" + ] + ] + }, + { + "id": "45162f25bf2a6d56", + "type": "amazon-echo-device", + "z": "f3d03e63c0a7d73a", + "name": "Fernsehzimmer", + "topic": "", + "x": 320, + "y": 600, + "wires": [ + [ + "d5abe885374036ff" + ] + ] + }, + { + "id": "e18430497d913cde", + "type": "mqtt out", + "z": "50665df0b8356ca9", + "name": "TV", + "topic": "zigbee2mqtt/Fernsehzimmer_TV/set", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 930, + "y": 180, + "wires": [] + }, + { + "id": "65a1124265c13aa8", + "type": "mqtt out", + "z": "50665df0b8356ca9", + "name": "Stehlampe", + "topic": "zigbee2mqtt/Fernsehzimmer_Stehlampe/set", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 950, + "y": 240, + "wires": [] + }, + { + "id": "8ea3be75cc59e7a7", + "type": "mqtt out", + "z": "50665df0b8356ca9", + "name": "Speaker_links", + "topic": "zigbee2mqtt/Fernsehzimmer_Speaker_L/set", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 960, + "y": 300, + "wires": [] + }, + { + "id": "7ef58c7dfed536fc", + "type": "mqtt out", + "z": "50665df0b8356ca9", + "name": "Speaker_rechts", + "topic": "zigbee2mqtt/Fernsehzimmer_Speaker_R/set", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 960, + "y": 360, + "wires": [] + }, + { + "id": "9a8d7f02825226c6", + "type": "mqtt in", + "z": "50665df0b8356ca9", + "name": "", + "topic": "hm/status/Fernbedienung_WZ:8/PRESS_SHORT", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 260, + "y": 280, + "wires": [ + [ + "019ee62cd2acb5e9", + "afa8f96664965262" + ] + ] + }, + { + "id": "019ee62cd2acb5e9", + "type": "debug", + "z": "50665df0b8356ca9", + "name": "debug 147", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 550, + "y": 120, + "wires": [] + }, + { + "id": "91f195d26c30ec10", + "type": "config", + "z": "50665df0b8356ca9", + "name": "Init=AUS", + "properties": [ + { + "p": "zustand", + "pt": "flow", + "to": "false", + "tot": "bool" + } + ], + "active": true, + "x": 160, + "y": 140, + "wires": [] + }, + { + "id": "afa8f96664965262", + "type": "function", + "z": "50665df0b8356ca9", + "name": "function 45", + "func": "if(flow.get(\"zustand\")) {\n msg.payload = {\"state\":\"off\"}\n flow.set(\"zustand\", false);\n} else {\n msg.payload = {\"state\":\"on\"}\n flow.set(\"zustand\",true)\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 630, + "y": 280, + "wires": [ + [ + "65a1124265c13aa8", + "6d1503bbf62a8f8a", + "e18430497d913cde", + "8ea3be75cc59e7a7", + "7ef58c7dfed536fc" + ] + ] + }, + { + "id": "6d1503bbf62a8f8a", + "type": "debug", + "z": "50665df0b8356ca9", + "name": "debug 148", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 830, + "y": 500, + "wires": [] + }, + { + "id": "79ea2cb386e68ca8", + "type": "mqtt in", + "z": "50665df0b8356ca9", + "name": "", + "topic": "hm/status/Fernbedienung_WZ:7/PRESS_SHORT", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 260, + "y": 360, + "wires": [ + [ + "01358c07ae591f06" + ] + ] + }, + { + "id": "01358c07ae591f06", + "type": "change", + "z": "50665df0b8356ca9", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "{\"state\":\"toggle\"}", + "tot": "json" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 590, + "y": 360, + "wires": [ + [ + "65a1124265c13aa8" + ] + ] + }, + { + "id": "fadd02998c4721cb", + "type": "inject", + "z": "50665df0b8356ca9", + "name": "", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 160, + "y": 200, + "wires": [ + [ + "afa8f96664965262" + ] + ] + }, + { + "id": "047b7e518869d992", + "type": "mqtt in", + "z": "0ecc4a0267296324", + "name": "Garage", + "topic": "zigbee2mqtt/Garage_Lage", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 210, + "y": 160, + "wires": [ + [ + "7d2608e123cb20e2" + ] + ] + }, + { + "id": "7d2608e123cb20e2", + "type": "change", + "z": "0ecc4a0267296324", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "payload.contact", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 420, + "y": 160, + "wires": [ + [ + "6cdc240600056e05", + "1c146292c683907e" + ] + ] + }, + { + "id": "1c146292c683907e", + "type": "switch", + "z": "0ecc4a0267296324", + "name": "", + "property": "payload", + "propertyType": "msg", + "rules": [ + { + "t": "true" + }, + { + "t": "false" + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 630, + "y": 160, + "wires": [ + [ + "5d40fb71b2a7bc31" + ], + [ + "7c3d5e4ef2946916" + ] + ] + }, + { + "id": "6cdc240600056e05", + "type": "debug", + "z": "0ecc4a0267296324", + "name": "debug 149", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 650, + "y": 40, + "wires": [] + }, + { + "id": "7c3d5e4ef2946916", + "type": "change", + "z": "0ecc4a0267296324", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "offen", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 840, + "y": 200, + "wires": [ + [ + "0e7b4c897c2f06fb" + ] + ] + }, + { + "id": "5d40fb71b2a7bc31", + "type": "change", + "z": "0ecc4a0267296324", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "geschlossen", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 840, + "y": 120, + "wires": [ + [ + "0e7b4c897c2f06fb" + ] + ] + }, + { + "id": "0e7b4c897c2f06fb", + "type": "ui_text", + "z": "0ecc4a0267296324", + "group": "f46af736de5b6e66", + "order": 2, + "width": 6, + "height": 1, + "name": "", + "label": "Garagen-Tor ist ", + "format": "{{msg.payload}}", + "layout": "col-center", + "className": "", + "style": false, + "font": "", + "fontSize": 16, + "color": "#000000", + "x": 1160, + "y": 160, + "wires": [] + }, + { + "id": "5751328b8a4dfe7e", + "type": "mqtt in", + "z": "5e52b4b48abccb4a", + "name": "Licht_EIN", + "topic": "hm/status/Licht_CL_Taster:2/PRESS_SHORT", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 140, + "y": 500, + "wires": [ + [ + "1704dd3490cd04f9", + "bb27fa58b206470d" + ] + ] + }, + { + "id": "3ee09ac2b43e4d6f", + "type": "mqtt in", + "z": "5e52b4b48abccb4a", + "name": "Licht_AUS", + "topic": "hm/status/Licht_CL_Taster:1/PRESS_SHORT", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 140, + "y": 400, + "wires": [ + [ + "1704dd3490cd04f9", + "d334cab05c2ac237" + ] + ] + }, + { + "id": "88d62fd9d77b3a0d", + "type": "mqtt in", + "z": "5e52b4b48abccb4a", + "name": "Praesenz_STATUS", + "topic": "hm/status/Praesenz_CL:1/PRESENCE_DETECTION_STATE", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 170, + "y": 820, + "wires": [ + [ + "23b5777254c385d5", + "1957d3d704e555bf" + ] + ] + }, + { + "id": "7b468773ced37ba4", + "type": "mqtt in", + "z": "5e52b4b48abccb4a", + "name": "Praesenz_HELL", + "topic": "hm/status/Praesenz_CL:1/ILLUMINATION", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 160, + "y": 1000, + "wires": [ + [ + "1f2b0592eaef8062", + "cd14e969f1373dc7" + ] + ] + }, + { + "id": "1704dd3490cd04f9", + "type": "debug", + "z": "5e52b4b48abccb4a", + "name": "debug 151", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 350, + "y": 460, + "wires": [] + }, + { + "id": "23b5777254c385d5", + "type": "debug", + "z": "5e52b4b48abccb4a", + "name": "debug 152", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 390, + "y": 760, + "wires": [] + }, + { + "id": "801c09779a45c35c", + "type": "comment", + "z": "5e52b4b48abccb4a", + "name": "Licht im Clo schalten", + "info": "", + "x": 180, + "y": 60, + "wires": [] + }, + { + "id": "cd174c96e63b05ca", + "type": "config", + "z": "5e52b4b48abccb4a", + "name": "", + "properties": [ + { + "p": "switchtime", + "pt": "flow", + "to": "7:00", + "tot": "str" + }, + { + "p": "hell", + "pt": "flow", + "to": "{\"on\":254,\"off\":0,\"dimmed\":5}", + "tot": "json" + }, + { + "p": "hellschwelle", + "pt": "flow", + "to": "200", + "tot": "num" + }, + { + "p": "dauer", + "pt": "flow", + "to": "false", + "tot": "bool" + }, + { + "p": "dimmit", + "pt": "flow", + "to": "false", + "tot": "bool" + }, + { + "p": "inRange", + "pt": "flow", + "to": "false", + "tot": "bool" + } + ], + "active": true, + "x": 150, + "y": 120, + "wires": [] + }, + { + "id": "b67fa2b35568dbc8", + "type": "mqtt out", + "z": "5e52b4b48abccb4a", + "name": "Licht_Clo schalten", + "topic": "zigbee2mqtt/Licht_Clo/set", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1170, + "y": 360, + "wires": [] + }, + { + "id": "c65bc52df69c10b8", + "type": "inject", + "z": "5e52b4b48abccb4a", + "name": "EIN", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 150, + "y": 560, + "wires": [ + [ + "bb27fa58b206470d" + ] + ] + }, + { + "id": "9f8212dc16798c71", + "type": "inject", + "z": "5e52b4b48abccb4a", + "name": "AUS", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 150, + "y": 340, + "wires": [ + [ + "d334cab05c2ac237" + ] + ] + }, + { + "id": "d334cab05c2ac237", + "type": "function", + "z": "5e52b4b48abccb4a", + "name": "function 47", + "func": "let hell = flow.get('hell')\nmsg.payload = {\"brightness:\": hell.off, \"state\": \"OFF\"}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 410, + "y": 360, + "wires": [ + [ + "f2fdc53a556ca09f" + ] + ] + }, + { + "id": "aeec1b4c30abf869", + "type": "debug", + "z": "5e52b4b48abccb4a", + "name": "debug 154", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 850, + "y": 300, + "wires": [] + }, + { + "id": "1f2b0592eaef8062", + "type": "change", + "z": "5e52b4b48abccb4a", + "name": "", + "rules": [ + { + "t": "set", + "p": "brightness", + "pt": "flow", + "to": "payload.val", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 390, + "y": 1000, + "wires": [ + [] + ] + }, + { + "id": "e784bc2e16350df6", + "type": "function", + "z": "5e52b4b48abccb4a", + "name": "function 48", + "func": "let cmd = {\"brightness\": flow.get(\"hell\").off, \"state\": \"OFF\"}\nmsg.debug = flow.get(\"brightness\")\nif (flow.get(\"brightness\") <= flow.get(\"hellschwelle\")) {\n cmd.state = \"ON\"\n if (flow.get(\"dimmit\")) {\n cmd.brightness = flow.get(\"hell\").dimmed\n } else {\n cmd.brightness = flow.get(\"hell\").on\n }\n} else {\n if (!flow.get(\"dauer\")) {\n cmd.brightness = flow.get(\"hell\").off\n cmd.state = \"OFF\"\n } else {\n return\n }\n}\nmsg.payload = cmd\nmsg.dimmit = flow.get(\"dimmit\")\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1070, + "y": 520, + "wires": [ + [ + "13dd48470c18de01", + "b67fa2b35568dbc8" + ] + ] + }, + { + "id": "13dd48470c18de01", + "type": "debug", + "z": "5e52b4b48abccb4a", + "name": "debug 155", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1270, + "y": 540, + "wires": [] + }, + { + "id": "185a9ec7519dc617", + "type": "change", + "z": "5e52b4b48abccb4a", + "name": "dimmit = true", + "rules": [ + { + "t": "set", + "p": "dimmit", + "pt": "flow", + "to": "true", + "tot": "bool" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 870, + "y": 500, + "wires": [ + [ + "e784bc2e16350df6" + ] + ] + }, + { + "id": "243527a4ed9677f2", + "type": "change", + "z": "5e52b4b48abccb4a", + "name": "dimmit = false", + "rules": [ + { + "t": "set", + "p": "dimmit", + "pt": "flow", + "to": "false", + "tot": "bool" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 880, + "y": 560, + "wires": [ + [ + "e784bc2e16350df6" + ] + ] + }, + { + "id": "f4179743bfab440b", + "type": "debug", + "z": "5e52b4b48abccb4a", + "name": "debug 156", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 870, + "y": 440, + "wires": [] + }, + { + "id": "ca7a99dfeec30d7a", + "type": "debug", + "z": "5e52b4b48abccb4a", + "name": "debug 157", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 870, + "y": 620, + "wires": [] + }, + { + "id": "c71ad44ea1919a1f", + "type": "comment", + "z": "5e52b4b48abccb4a", + "name": "Taster", + "info": "", + "x": 130, + "y": 200, + "wires": [] + }, + { + "id": "b73e324cb657b77a", + "type": "comment", + "z": "5e52b4b48abccb4a", + "name": "Präsenzmelder", + "info": "", + "x": 160, + "y": 760, + "wires": [] + }, + { + "id": "240e77ac37e4ab11", + "type": "inject", + "z": "5e52b4b48abccb4a", + "name": "Präsenz", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 150, + "y": 880, + "wires": [ + [ + "d7ea1566d262d866" + ] + ] + }, + { + "id": "59b3ea2f26b6ba6e", + "type": "comment", + "z": "5e52b4b48abccb4a", + "name": "ToDos", + "info": " 2025-10-05\n - EIN mit Dppelklick oder lange drücken -> auf jeden Fall VOLL an\n - AUS schalten, wenn Pröäsenzmelder abgelaufen???", + "x": 370, + "y": 140, + "wires": [] + }, + { + "id": "1957d3d704e555bf", + "type": "rbe", + "z": "5e52b4b48abccb4a", + "name": "Änderung", + "func": "rbe", + "gap": "", + "start": "", + "inout": "out", + "septopics": true, + "property": "payload.val", + "topi": "topic", + "x": 380, + "y": 820, + "wires": [ + [ + "477e0b5253814940" + ] + ] + }, + { + "id": "cd14e969f1373dc7", + "type": "debug", + "z": "5e52b4b48abccb4a", + "name": "debug 158", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 370, + "y": 1060, + "wires": [] + }, + { + "id": "d7ea1566d262d866", + "type": "debug", + "z": "5e52b4b48abccb4a", + "name": "debug 153", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 350, + "y": 940, + "wires": [] + }, + { + "id": "477e0b5253814940", + "type": "switch", + "z": "5e52b4b48abccb4a", + "name": "", + "property": "payload.val", + "propertyType": "msg", + "rules": [ + { + "t": "true" + }, + { + "t": "else" + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 590, + "y": 820, + "wires": [ + [ + "c524071a9f1dfc46" + ], + [ + "1931573da98cf297" + ] + ] + }, + { + "id": "59cdada341642ec0", + "type": "link in", + "z": "5e52b4b48abccb4a", + "name": "link in 4", + "links": [ + "1931573da98cf297" + ], + "x": 275, + "y": 320, + "wires": [ + [ + "d334cab05c2ac237" + ] + ] + }, + { + "id": "1931573da98cf297", + "type": "link out", + "z": "5e52b4b48abccb4a", + "name": "link out 4", + "mode": "link", + "links": [ + "59cdada341642ec0" + ], + "x": 805, + "y": 820, + "wires": [] + }, + { + "id": "3d40074bcd2159fe", + "type": "mqtt in", + "z": "5e52b4b48abccb4a", + "name": "Licht_EIN LANG", + "topic": "hm/status/Licht_CL_Taster:2/PRESS_LONG_RELEASE", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 160, + "y": 260, + "wires": [ + [ + "3e7ad9f7cf672943" + ] + ] + }, + { + "id": "3e7ad9f7cf672943", + "type": "function", + "z": "5e52b4b48abccb4a", + "name": "function 49", + "func": "let hell = flow.get('hell')\nmsg.payload = {\"brightness\": hell.on, \"state\": \"ON\"}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 370, + "y": 260, + "wires": [ + [ + "f2fdc53a556ca09f" + ] + ] + }, + { + "id": "413ab63614d7e8ae", + "type": "function", + "z": "5e52b4b48abccb4a", + "name": "function 55", + "func": "flow.set(\"inRange\", msg.payload)\nmsg.flow = {\"inRange\":flow.get(\"inRange\")}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 450, + "y": 640, + "wires": [ + [] + ] + }, + { + "id": "c524071a9f1dfc46", + "type": "switch", + "z": "5e52b4b48abccb4a", + "name": "", + "property": "inRange", + "propertyType": "flow", + "rules": [ + { + "t": "true" + }, + { + "t": "else" + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 670, + "y": 540, + "wires": [ + [ + "f4179743bfab440b", + "185a9ec7519dc617" + ], + [ + "243527a4ed9677f2", + "ca7a99dfeec30d7a" + ] + ] + }, + { + "id": "cronplus-example", + "type": "cronplus", + "z": "5e52b4b48abccb4a", + "name": "Tagesbereich 0h00-7h00", + "outputField": "payload", + "timeZone": "Europe/Berlin", + "storeName": "", + "commandResponseMsgOutput": "output1", + "defaultLocation": "", + "defaultLocationType": "default", + "outputs": 1, + "options": [ + { + "name": "start_day", + "topic": "day_status", + "payloadType": "bool", + "payload": "true", + "expressionType": "cron", + "expression": "0 0 * * *", + "location": "", + "offset": "0", + "solarType": "all", + "solarEvents": "sunrise" + }, + { + "name": "end_day", + "topic": "day_status", + "payloadType": "bool", + "payload": "false", + "expressionType": "cron", + "expression": "0 7 * * *", + "location": "", + "offset": "0", + "solarType": "all", + "solarEvents": "sunset" + } + ], + "x": 190, + "y": 640, + "wires": [ + [ + "debug-cron", + "413ab63614d7e8ae" + ] + ] + }, + { + "id": "debug-cron", + "type": "debug", + "z": "5e52b4b48abccb4a", + "name": "cron-plus out", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "x": 460, + "y": 680, + "wires": [] + }, + { + "id": "2a163678c183f7b7", + "type": "mqtt in", + "z": "cada61fae691e52f", + "name": "Taster EIN", + "topic": "hm/status/BW_und_Licht_Computer_EIN:2/PRESS_SHORT", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 120, + "y": 320, + "wires": [ + [ + "d7f792c42cbfe06d", + "b4d5c00e4cd75824" + ] + ] + }, + { + "id": "22ed5b3f6134906f", + "type": "mqtt in", + "z": "cada61fae691e52f", + "name": "Taster AUS", + "topic": "hm/status/BW_und_Licht_Computer_AUS:1/PRESS_SHORT", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 120, + "y": 440, + "wires": [ + [ + "d7f792c42cbfe06d", + "91ac60447c871156" + ] + ] + }, + { + "id": "70ffcc45ee8d6609", + "type": "mqtt in", + "z": "cada61fae691e52f", + "name": "Bewegung", + "topic": "hm/status/BW_und_Licht_Computer_BW:3/MOTION", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 120, + "y": 580, + "wires": [ + [ + "497f61982cae2820" + ] + ] + }, + { + "id": "4b9c876d10aa67d9", + "type": "mqtt out", + "z": "cada61fae691e52f", + "name": "Licht schalten", + "topic": "hm/set/Licht_FL:1/STATE", + "qos": "", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 860, + "y": 380, + "wires": [] + }, + { + "id": "d7f792c42cbfe06d", + "type": "debug", + "z": "cada61fae691e52f", + "name": "debug 159", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 330, + "y": 380, + "wires": [] + }, + { + "id": "497f61982cae2820", + "type": "rbe", + "z": "cada61fae691e52f", + "name": "", + "func": "rbe", + "gap": "", + "start": "", + "inout": "out", + "septopics": true, + "property": "payload", + "topi": "topic", + "x": 270, + "y": 580, + "wires": [ + [ + "1eecf88297b623b6", + "37de6d27e96a8cc9" + ] + ] + }, + { + "id": "5e1cb610e0441e30", + "type": "mqtt in", + "z": "cada61fae691e52f", + "name": "Helligkeit", + "topic": "hm/status/BW_und_Licht_Computer_BW:3/BRIGHTNESS", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 120, + "y": 220, + "wires": [ + [ + "ea8cb124d2847297" + ] + ] + }, + { + "id": "ea8cb124d2847297", + "type": "change", + "z": "cada61fae691e52f", + "name": "", + "rules": [ + { + "t": "set", + "p": "brightness", + "pt": "flow", + "to": "payload.val", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 310, + "y": 220, + "wires": [ + [] + ] + }, + { + "id": "ddd3bb585a921f90", + "type": "config", + "z": "cada61fae691e52f", + "name": "", + "properties": [ + { + "p": "brightness", + "pt": "flow", + "to": "0", + "tot": "num" + }, + { + "p": "minhell", + "pt": "flow", + "to": "500", + "tot": "num" + }, + { + "p": "timeout", + "pt": "flow", + "to": "120000", + "tot": "num" + }, + { + "p": "dauer", + "pt": "flow", + "to": "false", + "tot": "bool" + } + ], + "active": true, + "x": 110, + "y": 160, + "wires": [] + }, + { + "id": "1eecf88297b623b6", + "type": "function", + "z": "cada61fae691e52f", + "name": "function 50", + "func": "if (msg.payload.val) { // motion erkannt\n if (flow.get(\"brightness\") < flow.get(\"minhell\")) { //dunkel genug?\n msg.payload = true // also LICHT ein\n msg.trigger = \"START\" // und den Timer starten\n return msg\n }\n} // keine Bedingung erfüllt \nreturn null", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 470, + "y": 580, + "wires": [ + [ + "f82dcb7922b70666", + "1bbeae1601480cbe" + ] + ] + }, + { + "id": "061c53e4290c9b81", + "type": "debug", + "z": "cada61fae691e52f", + "name": "debug 161", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 850, + "y": 320, + "wires": [] + }, + { + "id": "37de6d27e96a8cc9", + "type": "debug", + "z": "cada61fae691e52f", + "name": "debug 162", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 450, + "y": 520, + "wires": [] + }, + { + "id": "b4d5c00e4cd75824", + "type": "function", + "z": "cada61fae691e52f", + "name": "function 51", + "func": "msg.payload = true\nflow.set(\"dauer\", true)\nmsg.debug = {\"dauer\": flow.get(\"dauer\")}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 330, + "y": 320, + "wires": [ + [ + "1bbeae1601480cbe" + ] + ] + }, + { + "id": "f82dcb7922b70666", + "type": "controltimer", + "z": "cada61fae691e52f", + "name": "", + "timerType": "delay", + "timerDurationUnit": "minute", + "timerDurationType": "num", + "timerDuration": 5, + "timerLoopTimeoutUnit": "second", + "timerLoopTimeoutType": "num", + "timerLoopTimeout": 0, + "loopTimeoutMessageType": "str", + "loopTimeoutMessage": "LOOP_TIMEOUT", + "timerMaxLoopIterationsType": "num", + "timerMaxLoopIterations": 0, + "loopMaxIterationsMessageType": "str", + "loopMaxIterationsMessage": "MAX_LOOP_ITERATIONS", + "isRunningTimerProgressVisible": true, + "outputReceivedMessageOnTimerTrigger": true, + "outputReceivedMessageOnTimerHalt": true, + "startTimerOnReceivalOfUnknownMessage": false, + "resetTimerOnReceivalOfUnknownMessage": false, + "resetTimerOnReceivalOfStartAction": true, + "continueTimerOnReceivalOfStartAction": false, + "isDebugModeEnabled": true, + "timerTriggeredMessageType": "str", + "timerTriggeredMessage": "TIMER_TRIGGERED", + "timerHaltedMessageType": "str", + "timerHaltedMessage": "TIMER_HALTED", + "isStartActionEnabled": true, + "isStopActionEnabled": true, + "isResetActionEnabled": true, + "isPauseActionEnabled": true, + "isContinueActionEnabled": true, + "actionPropertyNameType": "str", + "actionPropertyName": "trigger", + "startActionNameType": "str", + "startActionName": "START", + "stopActionNameType": "str", + "stopActionName": "STOP", + "resetActionNameType": "str", + "resetActionName": "RESET", + "pauseActionNameType": "str", + "pauseActionName": "PAUSE", + "continueActionNameType": "str", + "continueActionName": "CONTINUE", + "x": 680, + "y": 580, + "wires": [ + [ + "db90be542ef8a846", + "6b162a83be4e0357" + ], + [ + "ab112caae7aec05c" + ] + ] + }, + { + "id": "db90be542ef8a846", + "type": "debug", + "z": "cada61fae691e52f", + "name": "debug 163", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 910, + "y": 560, + "wires": [] + }, + { + "id": "ab112caae7aec05c", + "type": "debug", + "z": "cada61fae691e52f", + "name": "debug 164", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 910, + "y": 600, + "wires": [] + }, + { + "id": "91ac60447c871156", + "type": "function", + "z": "cada61fae691e52f", + "name": "function 52", + "func": "msg.payload = false\nflow.set(\"dauer\", false)\nmsg.debug = { \"dauer\": flow.get(\"dauer\") }\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 330, + "y": 440, + "wires": [ + [ + "1bbeae1601480cbe" + ] + ] + }, + { + "id": "6b162a83be4e0357", + "type": "function", + "z": "cada61fae691e52f", + "name": "function 53", + "func": "msg.payload = true\nif (!flow.get(\"dauer\")) {\n msg.payload = false\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 690, + "y": 500, + "wires": [ + [ + "1bbeae1601480cbe" + ] + ] + }, + { + "id": "e4559ddf72d34aab", + "type": "comment", + "z": "cada61fae691e52f", + "name": "Computerlicht schalten", + "info": "", + "x": 160, + "y": 80, + "wires": [] + }, + { + "id": "17027ee4b655a094", + "type": "mqtt in", + "z": "d7346bc232ce6ad2", + "name": "", + "topic": "hm/status/Fernbedienung_SZ:5/PRESS_SHORT", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 360, + "y": 260, + "wires": [ + [ + "fded1b1c3c8003b8", + "fda9d0eb939d1171" + ] + ] + }, + { + "id": "b470aa0bfc91f275", + "type": "mqtt in", + "z": "d7346bc232ce6ad2", + "name": "", + "topic": "hm/status/Fernbedienung_SZ:6/PRESS_SHORT", + "qos": "2", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 360, + "y": 380, + "wires": [ + [ + "e1af73fa8d71f6cf", + "3e8ce1e22b848488" + ] + ] + }, + { + "id": "601e7dacd6fbf0a5", + "type": "mqtt out", + "z": "d7346bc232ce6ad2", + "name": "Schalte Tisch", + "topic": "home66/computertisch/tasmota_9906F5/cmnd/POWER", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c7cf83a81a522047", + "x": 1480, + "y": 320, + "wires": [] + }, + { + "id": "aed9276a361a5532", + "type": "change", + "z": "d7346bc232ce6ad2", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "true", + "tot": "bool" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 940, + "y": 260, + "wires": [ + [ + "601e7dacd6fbf0a5", + "de08f4af3d4b95c3" + ] + ] + }, + { + "id": "25162170e35487b2", + "type": "change", + "z": "d7346bc232ce6ad2", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "false", + "tot": "bool" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 940, + "y": 380, + "wires": [ + [ + "601e7dacd6fbf0a5", + "76ee810bf1329fcb" + ] + ] + }, + { + "id": "de08f4af3d4b95c3", + "type": "debug", + "z": "d7346bc232ce6ad2", + "name": "debug 165", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1370, + "y": 160, + "wires": [] + }, + { + "id": "76ee810bf1329fcb", + "type": "debug", + "z": "d7346bc232ce6ad2", + "name": "debug 166", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 1350, + "y": 440, + "wires": [] + }, + { + "id": "fded1b1c3c8003b8", + "type": "debug", + "z": "d7346bc232ce6ad2", + "name": "debug 167", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 630, + "y": 140, + "wires": [] + }, + { + "id": "e1af73fa8d71f6cf", + "type": "debug", + "z": "d7346bc232ce6ad2", + "name": "debug 168", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 630, + "y": 480, + "wires": [] + }, + { + "id": "fda9d0eb939d1171", + "type": "rbe", + "z": "d7346bc232ce6ad2", + "name": "", + "func": "rbe", + "gap": "", + "start": "", + "inout": "out", + "septopics": true, + "property": "payload", + "topi": "topic", + "x": 690, + "y": 260, + "wires": [ + [ + "aed9276a361a5532" + ] + ] + }, + { + "id": "3e8ce1e22b848488", + "type": "rbe", + "z": "d7346bc232ce6ad2", + "name": "", + "func": "rbe", + "gap": "", + "start": "", + "inout": "out", + "septopics": true, + "property": "payload", + "topi": "topic", + "x": 690, + "y": 380, + "wires": [ + [ + "25162170e35487b2" + ] + ] + }, + { + "id": "82edfa2b4ee8173d", + "type": "mqtt in", + "z": "24fa477cc8f07351", + "name": "Licht_EIN", + "topic": "hm/status/Licht_FL_Taster:2/PRESS_SHORT", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 120, + "y": 540, + "wires": [ + [ + "900fb8cfa81c1c78", + "e97a865b25b05125" + ] + ] + }, + { + "id": "7070ebdad11c28ba", + "type": "mqtt in", + "z": "24fa477cc8f07351", + "name": "Licht_AUS", + "topic": "hm/status/Licht_FL_Taster:1/PRESS_SHORT", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 120, + "y": 440, + "wires": [ + [ + "900fb8cfa81c1c78", + "dad88ec88637a80d" + ] + ] + }, + { + "id": "fc859002d4cea4de", + "type": "mqtt in", + "z": "24fa477cc8f07351", + "name": "BW-Melder - Bewegung", + "topic": "zigbee2mqtt/BW_Flur", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 170, + "y": 760, + "wires": [ + [ + "113d2d1f763c3e51", + "ae34425583e89658" + ] + ] + }, + { + "id": "900fb8cfa81c1c78", + "type": "debug", + "z": "24fa477cc8f07351", + "name": "debug 169", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 430, + "y": 500, + "wires": [] + }, + { + "id": "113d2d1f763c3e51", + "type": "debug", + "z": "24fa477cc8f07351", + "name": "debug 170", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 370, + "y": 700, + "wires": [] + }, + { + "id": "c917d83fb018b79a", + "type": "comment", + "z": "24fa477cc8f07351", + "name": "Licht im kleinen Flur schalten", + "info": "", + "x": 180, + "y": 100, + "wires": [] + }, + { + "id": "adf7807d515f04de", + "type": "config", + "z": "24fa477cc8f07351", + "name": "", + "properties": [ + { + "p": "switchtime", + "pt": "flow", + "to": "8:00", + "tot": "str" + }, + { + "p": "hell", + "pt": "flow", + "to": "{\"on\":254,\"off\":0,\"dimmed\":2}", + "tot": "json" + }, + { + "p": "hellschwelle", + "pt": "flow", + "to": "85", + "tot": "num" + }, + { + "p": "dauer", + "pt": "flow", + "to": "false", + "tot": "bool" + }, + { + "p": "dimmit", + "pt": "flow", + "to": "false", + "tot": "bool" + } + ], + "active": true, + "x": 130, + "y": 160, + "wires": [] + }, + { + "id": "94cc16fc47e3b577", + "type": "mqtt out", + "z": "24fa477cc8f07351", + "name": "Licht_Flur 2/3 schalten", + "topic": "zigbee2mqtt/Licht_Flur/set", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1480, + "y": 640, + "wires": [] + }, + { + "id": "cf21339a19638648", + "type": "inject", + "z": "24fa477cc8f07351", + "name": "EIN", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 130, + "y": 600, + "wires": [ + [ + "e97a865b25b05125" + ] + ] + }, + { + "id": "b25b0a585b9c376a", + "type": "inject", + "z": "24fa477cc8f07351", + "name": "AUS", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "", + "payloadType": "date", + "x": 130, + "y": 380, + "wires": [ + [ + "dad88ec88637a80d" + ] + ] + }, + { + "id": "dad88ec88637a80d", + "type": "function", + "z": "24fa477cc8f07351", + "name": "function 54", + "func": "let hell = flow.get('hell')\nmsg.payload = {\"brightness:\": hell.off, \"state\": \"OFF\"}\nflow.set(\"dauer\",false)\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 390, + "y": 400, + "wires": [ + [ + "b73499056a181c50" + ] + ] + }, + { + "id": "5d88b7d9f6abf18f", + "type": "function", + "z": "24fa477cc8f07351", + "name": "Licht_M dimmed", + "func": "msg.payload = { \"brightness\": flow.get(\"hell\").dimmed, \"state\": \"ON\" }\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1090, + "y": 580, + "wires": [ + [ + "56f57534bb2da1aa", + "64a3b1673c147a50" + ] + ] + }, + { + "id": "56f57534bb2da1aa", + "type": "debug", + "z": "24fa477cc8f07351", + "name": "debug 172", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 1450, + "y": 480, + "wires": [] + }, + { + "id": "c93664edb4f1cbe1", + "type": "debug", + "z": "24fa477cc8f07351", + "name": "debug 173", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 870, + "y": 560, + "wires": [] + }, + { + "id": "285a95f249c162f8", + "type": "debug", + "z": "24fa477cc8f07351", + "name": "debug 174", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 830, + "y": 700, + "wires": [] + }, + { + "id": "cd2f58605d7fa622", + "type": "comment", + "z": "24fa477cc8f07351", + "name": "Taster", + "info": "", + "x": 110, + "y": 320, + "wires": [] + }, + { + "id": "ff514b3f39c15a2e", + "type": "comment", + "z": "24fa477cc8f07351", + "name": "Bewegungsmelder", + "info": "", + "x": 150, + "y": 700, + "wires": [] + }, + { + "id": "715c08af97321fcc", + "type": "comment", + "z": "24fa477cc8f07351", + "name": "ToDos", + "info": " 2025-10-05\n - EIN mit Dppelklick oder lange drücken -> auf jeden Fall VOLL an\n - AUS schalten, wenn Pröäsenzmelder abgelaufen???", + "x": 350, + "y": 180, + "wires": [] + }, + { + "id": "ae34425583e89658", + "type": "rbe", + "z": "24fa477cc8f07351", + "name": "Änderung", + "func": "rbe", + "gap": "", + "start": "", + "inout": "out", + "septopics": true, + "property": "payload.occupancy", + "topi": "topic", + "x": 400, + "y": 760, + "wires": [ + [ + "0878fcb497332129" + ] + ] + }, + { + "id": "0878fcb497332129", + "type": "switch", + "z": "24fa477cc8f07351", + "name": "", + "property": "payload.occupancy", + "propertyType": "msg", + "rules": [ + { + "t": "true" + }, + { + "t": "else" + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 570, + "y": 760, + "wires": [ + [ + "1c9a5dd9d9435fbb" + ], + [ + "7b90fe83fb107a42" + ] + ] + }, + { + "id": "78777c3b9220cbf7", + "type": "link in", + "z": "24fa477cc8f07351", + "name": "link in 5", + "links": [ + "18b32b07d1da54bb" + ], + "x": 255, + "y": 360, + "wires": [ + [ + "dad88ec88637a80d" + ] + ] + }, + { + "id": "18b32b07d1da54bb", + "type": "link out", + "z": "24fa477cc8f07351", + "name": "link out 5", + "mode": "link", + "links": [ + "78777c3b9220cbf7" + ], + "x": 925, + "y": 780, + "wires": [] + }, + { + "id": "521da502d71794ec", + "type": "inject", + "z": "24fa477cc8f07351", + "name": "", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "{\"brightness\": 200, \"state\": \"ON\"}", + "payloadType": "json", + "x": 1170, + "y": 760, + "wires": [ + [ + "94cc16fc47e3b577" + ] + ] + }, + { + "id": "64a3b1673c147a50", + "type": "mqtt out", + "z": "24fa477cc8f07351", + "name": "Licht_Flur Mitte schalten", + "topic": "zigbee2mqtt/Licht_Flur_M/set", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1490, + "y": 580, + "wires": [] + }, + { + "id": "bfc0a82d33f4b9fc", + "type": "function", + "z": "24fa477cc8f07351", + "name": "Lich 1/M/3 ON", + "func": "let cmd = {\"brightness\": flow.get(\"hell\").on, \"state\": \"ON\"}\nmsg.payload = cmd\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1080, + "y": 680, + "wires": [ + [ + "94cc16fc47e3b577", + "64a3b1673c147a50" + ] + ] + }, + { + "id": "6cabe865e5a19791", + "type": "function", + "z": "24fa477cc8f07351", + "name": "Licht 1/3 OFF", + "func": "msg.payload = { \"brightness\": flow.get(\"hell\").off, \"state\": \"OFF\" }\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 1080, + "y": 620, + "wires": [ + [ + "94cc16fc47e3b577" + ] + ] + }, + { + "id": "6f152bacfc68d241", + "type": "function", + "z": "24fa477cc8f07351", + "name": "function 56", + "func": "flow.set(\"inRange\", msg.payload)\nmsg.flow = {\"inRange\":flow.get(\"inRange\")}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 430, + "y": 240, + "wires": [ + [] + ] + }, + { + "id": "aa96208d86e9ca3b", + "type": "cronplus", + "z": "24fa477cc8f07351", + "name": "Tagesbereich 0h00-7h00", + "outputField": "payload", + "timeZone": "Europe/Berlin", + "storeName": "", + "commandResponseMsgOutput": "output1", + "defaultLocation": "", + "defaultLocationType": "default", + "outputs": 1, + "options": [ + { + "name": "start_day", + "topic": "day_status", + "payloadType": "bool", + "payload": "true", + "expressionType": "cron", + "expression": "0 0 * * *", + "location": "", + "offset": "0", + "solarType": "all", + "solarEvents": "sunrise" + }, + { + "name": "end_day", + "topic": "day_status", + "payloadType": "bool", + "payload": "false", + "expressionType": "cron", + "expression": "00 8 * * *", + "location": "", + "offset": "0", + "solarType": "all", + "solarEvents": "sunset" + } + ], + "x": 170, + "y": 240, + "wires": [ + [ + "29eb172c3a133df4", + "6f152bacfc68d241" + ] + ] + }, + { + "id": "29eb172c3a133df4", + "type": "debug", + "z": "24fa477cc8f07351", + "name": "cron-plus out", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "x": 440, + "y": 300, + "wires": [] + }, + { + "id": "1c9a5dd9d9435fbb", + "type": "switch", + "z": "24fa477cc8f07351", + "name": "", + "property": "inRange", + "propertyType": "flow", + "rules": [ + { + "t": "true" + }, + { + "t": "else" + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 650, + "y": 640, + "wires": [ + [ + "5d88b7d9f6abf18f", + "6cabe865e5a19791", + "c93664edb4f1cbe1" + ], + [ + "bfc0a82d33f4b9fc", + "285a95f249c162f8" + ] + ] + }, + { + "id": "e97a865b25b05125", + "type": "change", + "z": "24fa477cc8f07351", + "name": "", + "rules": [ + { + "t": "set", + "p": "dauer", + "pt": "flow", + "to": "true", + "tot": "bool" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 420, + "y": 560, + "wires": [ + [ + "bfc0a82d33f4b9fc" + ] + ] + }, + { + "id": "7b90fe83fb107a42", + "type": "function", + "z": "24fa477cc8f07351", + "name": "function 57", + "func": "if ( flow.get(\"dauer\") ) {\nreturn null;\n}\nreturn msg", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 750, + "y": 780, + "wires": [ + [ + "18b32b07d1da54bb", + "f6ca8f68169ef489" + ] + ] + }, + { + "id": "f6ca8f68169ef489", + "type": "debug", + "z": "24fa477cc8f07351", + "name": "debug 175", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "statusVal": "", + "statusType": "auto", + "x": 930, + "y": 840, + "wires": [] + }, + { + "id": "a1b2c3d4.push", + "type": "pushover", + "z": "958848d44d119e45", + "name": "Push aufs iPhone", + "device": "iphonerxf", + "title": "Briefkasten", + "priority": 0, + "sound": "pushover", + "url": "", + "url_title": "", + "html": false, + "x": 1330, + "y": 240, + "wires": [] + }, + { + "id": "927a2143c96dc0cc", + "type": "mqtt in", + "z": "958848d44d119e45", + "name": "", + "topic": "zigbee2mqtt/Briefkasten_Switch", + "qos": "0", + "datatype": "auto-detect", + "broker": "c46833d59903b816", + "nl": false, + "rap": true, + "rh": 0, + "inputs": 0, + "x": 270, + "y": 240, + "wires": [ + [ + "d72d7548f9c77cf6" + ] + ] + }, + { + "id": "d72d7548f9c77cf6", + "type": "rbe", + "z": "958848d44d119e45", + "name": "", + "func": "rbe", + "gap": "", + "start": "", + "inout": "out", + "septopics": false, + "property": "payload.contact", + "topi": "topic", + "x": 530, + "y": 240, + "wires": [ + [ + "5fd55a9958176900", + "1156238102556e13" + ] + ] + }, + { + "id": "1156238102556e13", + "type": "debug", + "z": "958848d44d119e45", + "name": "Briefkasten_Switch_gefiltert", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "statusVal": "", + "statusType": "auto", + "x": 760, + "y": 160, + "wires": [] + }, + { + "id": "5fd55a9958176900", + "type": "switch", + "z": "958848d44d119e45", + "name": "isOpen?", + "property": "payload.contact", + "propertyType": "msg", + "rules": [ + { + "t": "false" + }, + { + "t": "else" + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 740, + "y": 240, + "wires": [ + [ + "810fc68217dd8490" + ], + [] + ] + }, + { + "id": "810fc68217dd8490", + "type": "change", + "z": "958848d44d119e45", + "name": "Meldungs-Text", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "POST - Klappe betätigt", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1020, + "y": 240, + "wires": [ + [ + "a1b2c3d4.push" + ] + ] + }, + { + "id": "switch1", + "type": "ui_switch", + "z": "9af67c7112bb80c5", + "name": "Lampe", + "label": "Monitore", + "tooltip": "", + "group": "group1", + "order": 1, + "width": 0, + "height": 0, + "passthru": true, + "decouple": "false", + "topic": "licht/wohnzimmer", + "topicType": "str", + "style": "", + "onvalue": "true", + "onvalueType": "bool", + "onicon": "", + "oncolor": "", + "offvalue": "false", + "offvalueType": "bool", + "officon": "", + "offcolor": "", + "animate": true, + "className": "", + "x": 610, + "y": 200, + "wires": [ + [ + "debug1", + "cc9ef585fe86bc66" + ] + ] + }, + { + "id": "debug1", + "type": "debug", + "z": "9af67c7112bb80c5", + "name": "Debug", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "payload", + "targetType": "msg", + "x": 810, + "y": 140, + "wires": [] + }, + { + "id": "cc9ef585fe86bc66", + "type": "mqtt out", + "z": "9af67c7112bb80c5", + "name": "", + "topic": "home66/computertisch_rxf/tasmota_990612/cmnd/POWER", + "qos": "0", + "retain": "", + "respTopic": "", + "contentType": "", + "userProps": "", + "correl": "", + "expiry": "", + "broker": "c46833d59903b816", + "x": 1140, + "y": 200, + "wires": [] + }, + { + "id": "ba2d91b3b3393fc0", + "type": "inject", + "z": "9af67c7112bb80c5", + "name": "EIN-Schalten", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "true", + "payloadType": "bool", + "x": 370, + "y": 160, + "wires": [ + [ + "switch1" + ] + ] + }, + { + "id": "21a0932d03d99deb", + "type": "inject", + "z": "9af67c7112bb80c5", + "name": "AUS-Schalten", + "props": [ + { + "p": "payload" + }, + { + "p": "topic", + "vt": "str" + } + ], + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "topic": "", + "payload": "false", + "payloadType": "bool", + "x": 370, + "y": 260, + "wires": [ + [ + "switch1" + ] + ] + } +] \ No newline at end of file diff --git a/flows_cred.json b/flows_cred.json new file mode 100644 index 0000000..b77624e --- /dev/null +++ b/flows_cred.json @@ -0,0 +1,3 @@ +{ + "$": "a5da4d8ddfe236d371e9cfb713dda026GacQ5+3xYunmp7cLN97oGi64ebTxC5yAQSM5hcmdw01Pun401t+YWETIfhexMSGfkxY1mIyp57rwIv6k9GBPkrQR0N1RxdjG4PBE31c3i0/g7OjE2ljZ9M6Y+smpbUP2PJ06I8lPLFMKSrCOnrlIKMZQRrILORW9cm6TfLyBdOnf3kxt0rFEGs7lx4J2O/1QXS+5qGKJILgisoBEYgnJPuq7MHitg0K99mpdHJ4aPZ2N2Q==" +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..01cbc3d --- /dev/null +++ b/package.json @@ -0,0 +1,12 @@ +{ + "name": "smarthome", + "description": "Alle Flows für die Smarthome-Steuerung", + "version": "0.0.1", + "dependencies": {}, + "node-red": { + "settings": { + "flowFile": "flows.json", + "credentialsFile": "flows_cred.json" + } + } +} \ No newline at end of file