FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: cbear am 25 Januar 2015, 16:14:02

Titel: [solved] Verwendung von "localtime" und "strftime" in notify-Definitionen
Beitrag von: cbear am 25 Januar 2015, 16:14:02
Ihr Lieben,

nachdem ich nun schon lange mitlese, möchte ich aus aktuellen Anlass meine erste eigene Frage stellen:

Es geht um die pulsweitenmodulierte Steuerung von Stellantrieben. Über das PID20-Modul werden Aussteuerungsgrade in % berechnet und als Status des dummys "PWMheat_Bad" ausgegeben. Sind diese Grade >9%, rechne ich sie für eine PWM-Zykluszeit von 10min in Sekunden um, für die der Stellantrieb geöffnet werden sein ("secon"). Nach Ablauf von "secon" sollen die Antriebe wieder schließen. Dafür möchte ich "on-till" verwenden.


define PWMheat_Bad dummy
attr PWMheat_Bad alias Aussteuerungsgrad PWM Bad

define notificationdummy_PWMheat_Bad notify PWMheat_Bad {;;\
my $percentage = Value("PWMheat_Bad");;\
if ($percentage>9) {;;\
        my $secon = ($percentage/100*600);;\
        my $turnoff = (strftime("%H:%M:%S",localtime(time()+$secon)));;\
fhem("set Bad_Heizung on-till $turnoff");;\
} else {;;\
    fhem("set Bad_Heizung off");;\
}}



Wie ich es auch drehe, ich komme ich über die folgenden Errors nicht hinweg. Für das %-Zeichen in "strftime" wird scheinbar immer der Wert von $percentage übernommen, als würde es sich bei den % in "%H:%M:%S" um Platzhalter handeln:

2015.01.25 16:02:38 3: set Bad_Heizung on-till 42H:42M:42S : on-till: Wrong timespec 42H:42M:42S: either HH:MM:SS or {perlcode}
2015.01.25 16:02:38 3: notificationdummy_PWMheat_Bad return value: on-till: Wrong timespec 42H:42M:42S: either HH:MM:SS or {perlcode}


Hat jemand eine Idee? Bestimmt ist es nur ein Anfängerfehler, den ich aber partout nicht entdecke.
Titel: Antw:Verwendung von "localtime" und "strftime" in notify-Definitionen
Beitrag von: stromer-12 am 25 Januar 2015, 16:40:50
Das % muss im notify maskiert werden, verdopple es mal.
Titel: Antw:Verwendung von "localtime" und "strftime" in notify-Definitionen
Beitrag von: cbear am 25 Januar 2015, 16:51:42
Fantastisch, so funktioniert es. Vielen Dank!  :)