Mahlzeit...
ich bin gerade dabei meine Lichtsteuerung umzuschreiben. Dabei fällt mir auf, das der Befehl set Leuchte_Deko dim25%% 448
direkt eingeben den Dimmer für 448 Sekunden wie erwartet hochdimmt. In einem Notify bewirkt der Code ...
Helligkeit {my $Lichtsensor=ReadingsVal("Helligkeit","temperature","");
if($Lichtsensor < 70 && Value("Anwesenheit") eq "ANWESEND"){fhem ("set Leuchte_Deko dim25%% 448")}}
Hier bewirkt das "set" Kommando nur ein sofortiges ansteuern der 25% Dimmfunktion, die Zeitangabe wird nicht beachtet. Kann es sein, das hier in Perl Schreibweise der Befehl nicht komplett umgesetzt wird?
Ich denke ich habe den Fehler gefunden. Das notify triggert sich mehrfach, was zu Folge hat das die Dimmfunition auf Zeit von den Dimmern übergangen wird. Ein doppelter identischer Aufruf der Dimmfunktion kombiniert mit ramp-on-time lässt FS20 Dimmer sofort den Dimmwert ansteuern. Warum das Script sich mehrfach triggert, das muss ich wohl noch ergründen... oder hat jemand auf die schnelle einen Tip für mich?
Hallo,
schau mal im EventMonitor welche Events Helligkeit hat.
Das notify triggert auf jedes dieser Events.
Grüße
Hallo Puschel,
im Monitor sehe ich das eine Structure getriggert wird, das ist eigentich nur der Verbund aller Lampen mit gemeinsamen Schalter. Das ganze läuft drei mal durch. Ansonsten ist "Helligkeit" nirgends verknüpft.
2014-04-23 16:25:08 structure Alle_Leuchten LastDevice: Leuchte_Deko
2014-04-23 16:25:08 structure Alle_Leuchten LastDevice_Abs: Leuchte_Deko
2014-04-23 16:25:08 structure Alle_Leuchten undefined
2014-04-23 16:25:08 FS20 Leuchte_Deko dim25% 448
2014-04-23 16:25:08 structure Alle_Leuchten LastDevice: Leuchte_Deko
2014-04-23 16:25:08 structure Alle_Leuchten LastDevice_Abs: Leuchte_Deko
2014-04-23 16:25:08 structure Alle_Leuchten undefined
2014-04-23 16:25:08 FS20 Leuchte_Deko dim25% 448
2014-04-23 16:25:08 structure Alle_Leuchten LastDevice: Leuchte_Deko
2014-04-23 16:25:08 structure Alle_Leuchten LastDevice_Abs: Leuchte_Deko
2014-04-23 16:25:08 structure Alle_Leuchten undefined
2014-04-23 16:25:08 FS20 Leuchte_Deko dim25% 448
2014-04-23 16:25:08 structure Alle_Leuchten LastDevice: Leuchte_Deko
2014-04-23 16:25:08 structure Alle_Leuchten LastDevice_Abs: Leuchte_Deko
2014-04-23 16:25:08 structure Alle_Leuchten undefined
2014-04-23 16:25:08 FS20 Leuchte_Deko dim25% 448
2014-04-23 16:25:08 HMS Helligkeit temperature: 63.7
2014-04-23 16:25:08 HMS Helligkeit battery: ok
2014-04-23 16:25:08 HMS Helligkeit type: HMS100T
2014-04-23 16:25:08 HMS Helligkeit T: 63.7 Bat: ok
Hallo,
Zitat2014-04-23 16:25:08 HMS Helligkeit temperature: 63.7
2014-04-23 16:25:08 HMS Helligkeit battery: ok
2014-04-23 16:25:08 HMS Helligkeit type: HMS100T
2014-04-23 16:25:08 HMS Helligkeit T: 63.7 Bat: ok
4 mal Helligkeit = 4 mal trigger des notify
Grüße
Ahhh... alles klar. Es war mir bis jetzt nicht bewusst, das alle Events von diesem Sensor mit gleichem Zeitstempel auch mehrfach triggern. Für mich sah das ganze wie nur eines aus. Danke, wieder was gelernt.
Hallo,
ZitatDas notify triggert auf jedes dieser Events.
Bau das regexp deines notify passend und das notify wird nur einmal getriggert.
Helligkeit:temperature.*
Nun triggert dein notify nur wenn temperatur übertragen wird.
Am Sensor ein event-on-change-reading und das notify triggert nur noch wenn sich die Temperatur am Sensor auch tatsächlich geändert hat.
Grüße
Danke, mach ich so. Das löst bei mir auch gleichzeitig das Problem des mehrfachen Aufrufs der identischen Dimmeransteuerung per ramp-on obwohl sich der Wert nicht ändert. Ich wollte erst eine Sperre einbauen bis die Ramp Zeit durchgelaufen ist um diesen FS20 Di Bug!? zu umgehen.
Nochmals, vielen Dank.