FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Navigator am 22 April 2014, 20:44:55

Titel: Dimmer ramp-on-time funktioniert nicht im Notify mit Perl Code
Beitrag von: Navigator am 22 April 2014, 20:44:55
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?
Titel: Antw:Dimmer ramp-on-time funktioniert nicht im Notify mit Perl Code
Beitrag von: Navigator am 23 April 2014, 15:56:48
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?

Titel: Antw:Dimmer ramp-on-time funktioniert nicht im Notify mit Perl Code
Beitrag von: Puschel74 am 23 April 2014, 16:03:52
Hallo,

schau mal im EventMonitor welche Events Helligkeit hat.
Das notify triggert auf jedes dieser Events.

Grüße
Titel: Antw:Dimmer ramp-on-time funktioniert nicht im Notify mit Perl Code
Beitrag von: Navigator am 23 April 2014, 16:30:11
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
Titel: Antw:Dimmer ramp-on-time funktioniert nicht im Notify mit Perl Code
Beitrag von: Puschel74 am 23 April 2014, 16:43:12
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
Titel: Antw:Dimmer ramp-on-time funktioniert nicht im Notify mit Perl Code
Beitrag von: Navigator am 23 April 2014, 16:47:38
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.
Titel: Antw:Dimmer ramp-on-time funktioniert nicht im Notify mit Perl Code
Beitrag von: Puschel74 am 23 April 2014, 16:50:17
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
Titel: Antw:Dimmer ramp-on-time funktioniert nicht im Notify mit Perl Code
Beitrag von: Navigator am 23 April 2014, 17:00:17
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.