Hauptmenü

DOIF mit Regex und Zeit

Begonnen von th1984, 21 Mai 2019, 19:18:17

Vorheriges Thema - Nächstes Thema

th1984

Hallo,

ich hab ein Problem mit dem DOIFs, speziell in der Verbindung mit Regex und Zeit. Ich habe folgendes DOIF:

([["^GWH_Server_mcp1_13$:^time1$"]])(set $DEVICE on-for-timer 300)

Derzeit soll es nur mal ein Device und Reading triggern. Also ganz simpel eigentlich, nur funktioniert es nicht. Wenn ich jetzt aber das Regex rausnehme:

([[GWH_Server_mcp1_13:time1]])(set $DEVICE on-for-timer 300)

Dann funktioniert es. Jetzt könnte ich natürlich einige DOIFs anlegen, nur finde ich das irgendwie nicht so elegant gelöst. Wo liegt mein Fehler?

Fehlermeldung: timer_01_c01
error: Wrong timespec : either HH:MM:SS or {perlcode}

Hab ich irgendwo eine Klammer falsch?

Danke
Thomas

amenomade

So kannst Du meiner Meinung nach nicht arbeiten: die Syntax ["regex"] bedeutet ein Ereignistrigger, bewertet aber nicht den Wert und ergibt dann kein Timespec, das wiederum in [] als Zeittrigger benutzt werden könnte.

Und wenn es die Zeit kalkulieren würde, dann wäre es ein Zeittrigger, und $DEVICE würde nicht das Device enthalten.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

th1984

Danke für die Antwort, jetzt verstehe ich das glaube ich. Dann bleibt mir wohl nichts anderes über als ein paar DoIfs anzulegen. Oder hast du eine Idee wie ich eine Anzahl von Devices eben nach der Uhrzeit abfragen kann?

Damian

Zitat von: th1984 am 22 Mai 2019, 08:36:10
Danke für die Antwort, jetzt verstehe ich das glaube ich. Dann bleibt mir wohl nichts anderes über als ein paar DoIfs anzulegen. Oder hast du eine Idee wie ich eine Anzahl von Devices eben nach der Uhrzeit abfragen kann?

Wie willst du (mehrere) Angaben auf Uhrzeit abfragen?

Uhrzeit-Angaben im DOIF sind Zeittrigger, sie werden nicht abgefragt, sie werden definiert und wecken das Modul zu definierten Zeit. Man kann mit einer Angabe auch nur einen Zeittrigger definieren und nicht mehrere. Es gibt daneben Zeitintervalle, diese können triggern, lassen sich aber auch sinnvoll "abfragen".
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF