Warten auf Aktor im Flow?

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Antworten
Brainpurge
Beiträge: 106
Registriert: 08.11.2017, 17:56
System: CCU und Access Point
Hat sich bedankt: 16 Mal

Warten auf Aktor im Flow?

Beitrag von Brainpurge » 06.12.2021, 09:51

Hallo,

vielleicht kann mir jemand helfen. Ich möchte als Auslöser die Variable Anwesenheit setzen, diese soll aber erst auslösen, wenn ein Bewegungsmelder eine Bewegung erkannt hat, d.h. er müsste auf den Wert warten. Wie kann ich das in Node-Red umsetzen? Problem mit der Anwesenheit ist, dass diese schon auf Anwesend umschaltet, wenn ich noch nicht im Haus bin, was ja wegen der Heizung auch so gewünscht ist und HomeAssistent da schon auf anwesend umstellt.

Jemand einen Tipp?

Code: Alles auswählen

[{"id":"addf0cc1.54cdf","type":"ccu-sysvar","z":"c038ca9b.bbe678","name":"Anwesenheit 2","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":false,"x":90,"y":420,"wires":[["63eb9fea.8558f"]]},{"id":"8d32fa5b.896e38","type":"change","z":"c038ca9b.bbe678","name":"Willkommen zu Hause","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":830,"y":420,"wires":[["81f3b410.f019b8"]]},{"id":"63eb9fea.8558f","type":"switch","z":"c038ca9b.bbe678","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":250,"y":420,"wires":[["60499ee6.77394"],[]]},{"id":"81f3b410.f019b8","type":"delay","z":"c038ca9b.bbe678","name":"","pauseType":"delayv","timeout":"10","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":1010,"y":420,"wires":[["501766e2.62eb58"]]},{"id":"fde814ea.16e1c8","type":"trigger","z":"c038ca9b.bbe678","name":"","op1":"","op2":"true","op1type":"pay","op2type":"bool","duration":"0","extend":false,"overrideDelay":false,"units":"s","reset":"true","bytopic":"all","topic":"topic","outputs":1,"x":540,"y":500,"wires":[[]]},{"id":"60499ee6.77394","type":"ccu-switch","z":"c038ca9b.bbe678","name":"","ccuConfig":"38263145.35ea0e","iface":"HmIP-RF","channel":"00091A498F00F4:1 HmIP-SMI 00091A498F00F4:1","sysvar":"Alarmmeldungen","sysvarProperty":"value","datapoint":"MOTION","datapointProperty":"value","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":430,"y":420,"wires":[["8d32fa5b.896e38"],[]]},{"id":"38263145.35ea0e","type":"ccu-connection","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":false,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","tls":false,"inSecure":false,"authentication":false,"username":"","password":"","queueTimeout":"5000","queuePause":"250","contextStore":""}]
CCU 3 mit Firmware 3.67.10 + AccessPoint mit Firmware 2.4.28

Brainpurge
Beiträge: 106
Registriert: 08.11.2017, 17:56
System: CCU und Access Point
Hat sich bedankt: 16 Mal

Re: Warten auf Aktor im Flow?

Beitrag von Brainpurge » 06.12.2021, 14:24

Hab es mit einer Variable lösen können per IPS

Mit Beginn der Anwesenheit wird die Variable ComingHome auf true gesetzt, welche 15min aktiv ist. Sobald innerhalb von 15min eine Bewegung erkannt wird, wird ComingHome wieder auf false gesetzt, dies verhindert, das die Abläufe bei ComingHome nur einmal ablaufen.
CCU 3 mit Firmware 3.67.10 + AccessPoint mit Firmware 2.4.28

grissly
Beiträge: 24
Registriert: 13.10.2020, 20:31
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 4 Mal

Re: Warten auf Aktor im Flow?

Beitrag von grissly » 07.12.2021, 20:21

Brainpurge hat geschrieben:
06.12.2021, 14:24
Hab es mit einer Variable lösen können per IPS

Mit Beginn der Anwesenheit wird die Variable ComingHome auf true gesetzt, welche 15min aktiv ist. Sobald innerhalb von 15min eine Bewegung erkannt wird, wird ComingHome wieder auf false gesetzt, dies verhindert, das die Abläufe bei ComingHome nur einmal ablaufen.
Ich würde sowas mit dem Node "node-red-contrib-hold" umsetzen. Erst mit Empfang einer Nachricht mit msg.trigger=true wird die gehaltene Nachricht vom hold-rode weitergeleitet.

Grüße

Christoph

Brainpurge
Beiträge: 106
Registriert: 08.11.2017, 17:56
System: CCU und Access Point
Hat sich bedankt: 16 Mal

Re: Warten auf Aktor im Flow?

Beitrag von Brainpurge » 07.12.2021, 20:34

Danke für den Hinweis 8)
CCU 3 mit Firmware 3.67.10 + AccessPoint mit Firmware 2.4.28

McPan
Beiträge: 222
Registriert: 29.11.2021, 07:04
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 12 Mal
Danksagung erhalten: 44 Mal

Re: Warten auf Aktor im Flow?

Beitrag von McPan » 08.12.2021, 07:03

Das könnte fertig so aussehen:

Code: Alles auswählen

[
    {
        "id": "53d1bba4.67db84",
        "type": "ccu-sysvar",
        "z": "36e29d55.8c866a",
        "name": "Anwesenheit",
        "ccuConfig": "38263145.35ea0e",
        "topic": "ReGaHSS/${Name}",
        "change": true,
        "cache": true,
        "x": 830,
        "y": 140,
        "wires": [
            [
                "c2d4adef.26c5d"
            ]
        ]
    },
    {
        "id": "c2d4adef.26c5d",
        "type": "ui_dropdown",
        "z": "36e29d55.8c866a",
        "name": "",
        "label": "Anwesenheit",
        "place": "Select option",
        "group": "46fbe67a.90cd18",
        "order": 0,
        "width": 0,
        "height": 0,
        "passthru": false,
        "options": [
            {
                "label": "Anwesend",
                "value": true,
                "type": "bool"
            },
            {
                "label": "Nicht Anwesend",
                "value": false,
                "type": "bool"
            }
        ],
        "payload": "",
        "topic": "",
        "x": 830,
        "y": 220,
        "wires": [
            [
                "53d1bba4.67db84"
            ]
        ]
    },
    {
        "id": "22e2f12e.223b46",
        "type": "ccu-rpc-event",
        "z": "36e29d55.8c866a",
        "name": "RPC:MOTION",
        "iface": "HmIP-RF",
        "ccuConfig": "38263145.35ea0e",
        "rooms": "",
        "roomsRx": "str",
        "functions": "",
        "functionsRx": "str",
        "device": "<GERÄTE_ID_ANPASSEN!>",
        "deviceRx": "str",
        "deviceName": "",
        "deviceNameRx": "str",
        "deviceType": "",
        "deviceTypeRx": "str",
        "channel": "<GERÄTE_ID_ANPASSEN!>:3",
        "channelRx": "str",
        "channelName": "",
        "channelNameRx": "str",
        "channelType": "",
        "channelTypeRx": "str",
        "channelIndex": "",
        "channelIndexRx": "str",
        "datapoint": "MOTION",
        "datapointRx": "str",
        "change": true,
        "working": false,
        "cache": false,
        "topic": "${CCU}/${Interface}/${channelName}/${datapoint}",
        "x": 250,
        "y": 140,
        "wires": [
            [
                "38898daf.7f916a"
            ]
        ]
    },
    {
        "id": "38898daf.7f916a",
        "type": "switch",
        "z": "36e29d55.8c866a",
        "name": "MOTION?",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            },
            {
                "t": "false"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 630,
        "y": 140,
        "wires": [
            [
                "53d1bba4.67db84"
            ],
            []
        ]
    },
    {
        "id": "14cc1a3.10d8ce6",
        "type": "comment",
        "z": "36e29d55.8c866a",
        "name": "Bewegungsmelder, INTERFACE und GERÄTENUMMER im Node anpassen!",
        "info": "",
        "x": 270,
        "y": 80,
        "wires": []
    },
    {
        "id": "54118279.27d924",
        "type": "comment",
        "z": "36e29d55.8c866a",
        "name": "Bewegung erkannt?",
        "info": "",
        "x": 650,
        "y": 80,
        "wires": []
    },
    {
        "id": "2e3af418.e1129c",
        "type": "comment",
        "z": "36e29d55.8c866a",
        "name": "die Systemvariable \"Anwesenheit\"",
        "info": "",
        "x": 1040,
        "y": 100,
        "wires": []
    },
    {
        "id": "3b91baf8.71cb4e",
        "type": "comment",
        "z": "36e29d55.8c866a",
        "name": "kann auch über's Dashboard umgeschaltet werden. Falls nicht gewünscht diesen Node entfernen",
        "info": "",
        "x": 1230,
        "y": 260,
        "wires": []
    },
    {
        "id": "38263145.35ea0e",
        "type": "ccu-connection",
        "name": "localhost",
        "host": "localhost",
        "regaEnabled": true,
        "bcrfEnabled": true,
        "iprfEnabled": true,
        "virtEnabled": true,
        "bcwiEnabled": false,
        "cuxdEnabled": false,
        "regaPoll": true,
        "regaInterval": "30",
        "rpcPingTimeout": "60",
        "rpcInitAddress": "127.0.0.1",
        "rpcServerHost": "127.0.0.1",
        "rpcBinPort": "2047",
        "rpcXmlPort": "2048",
        "tls": false,
        "inSecure": false,
        "authentication": false,
        "username": "",
        "password": "",
        "queueTimeout": "5000",
        "queuePause": "250",
        "contextStore": ""
    },
    {
        "id": "46fbe67a.90cd18",
        "type": "ui_group",
        "name": "Variablen",
        "tab": "36fb2145.947dee",
        "order": 1,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "36fb2145.947dee",
        "type": "ui_tab",
        "name": "Variablen",
        "icon": "dashboard",
        "order": 3
    }
]
Der Beweungsmelder-Kanal wird per RPC-Event abgefragt. Im Anschluss wird geprüft, ob im RPC-Event eine Bewegung erkannt wird (payload = true), nur dann wird die Systemvariable Abwesenheit gesetzt. "Keine" Bewegung" bedeutet ja nicht zwangsläufig "nicht Anwesend". Falls doch, kann der Switch-Node entfallen. Weiter ist noch ein Auswahlfeld für die Systemvariable "Anwesenheit" im Dashboard vorhanden. Falls das auch nicht gewünscht ist, kann dieser Node auch einfach entfallen.

Achtung: im RPC-Event-Node muss noch das Geräte-Interface (steht hier im Beispiel auf "HmIP-RF") und die Gerätenummer an die realen Gegebenheiten angepasst werden!

Gruß,
Marco
Grüße,
Marco

Elektrische Bauteile funktionieren mit Rauch. Der Beweis: tritt der Rauch aus, funktioniert das Bauteil nicht mehr!
Raspberrymatic @ RPi3b+, HmIP mit RPi-RF-MOD

Antworten

Zurück zu „RedMatic“