Hallo zusammen, kann mir vielleicht einer bei folgender Logik behilflich sein.
Ich möchte die Treppenlichtfunktion ausnutzen, um bei Bewegung im Gaestebad ein Radio einzuschalten, das nach bestimmter Zeit Inaktivität wieder ausgeschaltet wird. Leider habe ich hier Schwierigkeitem.
0/7/221 => GA HLK vom Präsenzmelder (Wert 1/An oder 0/aus, DPT: 1.001
8/0/30 => GA Radio Multihome (Wert 1/An oder 0/aus, DPT: 1.001
Ich möchte im Prinzip, wenn Bewegung im Gaestebad erkannt wird, dass das Radio eingeschaltet wird (sofern nicht bereits an) und nach zB 300 Sekunden keiner Bewegung mehr das Radio auf der GA 8/0/30 wieder ausgeschaltet wird.
Delay funktioniert ja nur für das Ausschalten, ich bräuchte aber eine Logik für beides, Einschalten ohne delay und Ausschalten mit delay und falls möglich sogar noch eine Verlängerung der Treppenlichtfunktion wenn in der DelayZeit wiederum eine Bewegung gemeldet wird.
Nachtrag:
Habe noch einen neuen Versuch gemacht, irgendwie funktioniert es aber nicht:
Ich möchte die Treppenlichtfunktion ausnutzen, um bei Bewegung im Gaestebad ein Radio einzuschalten, das nach bestimmter Zeit Inaktivität wieder ausgeschaltet wird. Leider habe ich hier Schwierigkeitem.
0/7/221 => GA HLK vom Präsenzmelder (Wert 1/An oder 0/aus, DPT: 1.001
8/0/30 => GA Radio Multihome (Wert 1/An oder 0/aus, DPT: 1.001
Ich möchte im Prinzip, wenn Bewegung im Gaestebad erkannt wird, dass das Radio eingeschaltet wird (sofern nicht bereits an) und nach zB 300 Sekunden keiner Bewegung mehr das Radio auf der GA 8/0/30 wieder ausgeschaltet wird.
Code:
PMgaestewcMPD => { receive=>['0/7/221','8/0/30'], transmit=>'8/0/30', debug => 1, translate => sub { if (int($input->[0]) > 0 && int($input->[1]) == 0) { return 1 }; else { return "cancel" }; ????? -> hier Bedingung wenn kein Bewegung mehr nach XXX Sekunden auf transmit eine 0 senden, also im Prinzip delay, aber delay gilt ja leider nicht für die If Bedingung sonder für die ganze Logik }, },
Nachtrag:
Habe noch einen neuen Versuch gemacht, irgendwie funktioniert es aber nicht:
Code:
# GaesteWC HLK 1 und MPD aus -> sende 1 pm_gaestewc_mpd_an => { receive => ['0/7/221','8/0/30'], transmit => '8/0/30', cool => 1, translate => sub { plugin_log($plugname, "\r\n pm_gaestewc_mpd_an: input1 ".$input->[0] . " input2 " .$input->[1]); if (int($input->[0]) > 0 && int($input->[1]) == 0) { return 1; } else { return undef; } }, debug => 1, }, # # pm_gaestewc_mpd nach 30 Sekunden automatisch wieder aus (Treppenlichtfunktion) delay_pm_gaestewc_mpd_aus => { receive => '0/7/221', transmit => '8/0/30', delay => '120', reply_to_read_requests => 1, translate => sub { plugin_log($plugname, "\r\ delay_pm_gaestewc_mpd_aus: ".$input); if ( defined $input && int($input) == 1 ) { return 0; } else { return undef; } }, debug => 1 },
Kommentar