FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Rewe2000 am 12 November 2019, 20:19:24

Titel: Externe Zeitvorgabe über Attribut oder perl Variable
Beitrag von: Rewe2000 am 12 November 2019, 20:19:24
Hallo,

da beim Doif sehr viel möglich ist, ist es wahrscheinlich, dass ich da irgendwo einen Fehler mache.
Externe Zeitvorgaben (hier nur Sekunden) funktionieren über eine Dummy (LaufzeitSec) oder über ein Reading problemlos.

{[+[LaufzeitSec]];
Log 3, "Doif wurde bearbeitet"}


Ist es aber auch möglich die Zeitvorgabe über eine Perl Variable vorzugeben oder ggf. von einem Attribut eines Device zu beziehen?
Wenn ja, wie muss ich die Zeit angeben, damit diese auch als Zeit erkannt wird.

{my $Laufzeitvorgabe = 300;
[+[$Laufzeitvorgabe]];
Log 3, "Doif wurde bearbeitet"}

Obiges Beispiel bringt die Fehlermeldung:
error: Wrong timespec : either HH:MM:SS or {perlcode}

Das Modul ist vorbildlich dokumentiert, mit sehr vielen Beispielen, doch irgendwie hab ich das nicht gefunden, wonach ich gesucht habe.

Danke für eure Hilfe

Gruß Reinhard

Titel: Antw:Externe Zeitvorgabe über Attribut oder perl Variable
Beitrag von: Damian am 12 November 2019, 23:00:18
Zitat von: Rewe2000 am 12 November 2019, 20:19:24
Hallo,

da beim Doif sehr viel möglich ist, ist es wahrscheinlich, dass ich da irgendwo einen Fehler mache.
Externe Zeitvorgaben (hier nur Sekunden) funktionieren über eine Dummy (LaufzeitSec) oder über ein Reading problemlos.

{[+[LaufzeitSec]];
Log 3, "Doif wurde bearbeitet"}


Ist es aber auch möglich die Zeitvorgabe über eine Perl Variable vorzugeben oder ggf. von einem Attribut eines Device zu beziehen?
Wenn ja, wie muss ich die Zeit angeben, damit diese auch als Zeit erkannt wird.

{my $Laufzeitvorgabe = 300;
[+[$Laufzeitvorgabe]];
Log 3, "Doif wurde bearbeitet"}

Obiges Beispiel bringt die Fehlermeldung:
error: Wrong timespec : either HH:MM:SS or {perlcode}

Das Modul ist vorbildlich dokumentiert, mit sehr vielen Beispielen, doch irgendwie hab ich das nicht gefunden, wonach ich gesucht habe.

Danke für eure Hilfe

Gruß Reinhard

Du kannst Laufzeiten über Perlvariablen im Perl-Modus nutzen, siehe: https://fhem.de/commandref_DE.html#DOIF_set_Exec