Frage zu DOIF in Kombination mit regulärem Ausdruck

Begonnen von josburg, 17 April 2016, 20:06:02

Vorheriges Thema - Nächstes Thema

josburg

Hallo,

ich habe mit Hilfe des statistics-Modul folgende Statistik angelegt ("SENSOR_HUETTE" mißt die Außentemperatur):

define Statistik statistics SENSOR_HUETTE
attr Statistik minAvgMaxReadings TEMP


Hiermit erhalte ich folgendes Reading (auch im Anhang als Screenshot):

statTEMPDay   Min: 7.5 Avg: 9.2 Max: 10.9   2016-04-17 18:59:55


Was funktioniert bisher?
define Schalter_Zisterne DOIF ([21:00-21:10] and [SENSOR_HUETTE:TEMP] > 14.0 (set SCHALTER_ZISTERNE on-for-timer 600) DOELSE ()
Mit diesem DOIF schalte ich die Zisterne täglich zwischen 21 und 21:10 Uhr ein, wenn die Temperatur > 14 Grad ist.

Gerne möchte ich das Einschalten aber abhängig von der Tageshöchst-Temperatur machen.
Die Tageshöchst-Temperatur (in diesem Fall also die 10.9 Grad) möchte ich gerne in einem DOIF als Bedingung weiter verwenden.
Also dachte ich mir, dass ich die fett gekennzeichnete Stelle ersetze
define Schalter_Zisterne DOIF ([21:00-21:10] and [b][SENSOR_HUETTE:TEMP] > 14.0[/b] (set SCHALTER_ZISTERNE on-for-timer 600) DOELSE ()
durch diesen regulären Ausdruck:

".*?Max: (-?\d+(\.\d+)?)"

Also so:
define Schalter_Zisterne DOIF ([21:00-21:10] and [SENSOR_REGENSENSOR:statREGENMENGE:".*?Max: (-?\d+(\.\d+)?)"] > 14.0) (set SCHALTER_ZISTERNE on-for-timer 600) DOELSE ()

Der reguläre Ausdruck sollte stimmmen, diesen habe ich hier getestet:
https://regex101.com/
siehe Screenshot im Anhang.

Wenn ich jetzt das DOIF wie hier beschrieben
define Schalter_Zisterne DOIF ([21:00-21:10] and [SENSOR_REGENSENSOR:statREGENMENGE:".*?Max: (-?\d+(\.\d+)?)"] > 14.0) (set SCHALTER_ZISTERNE on-for-timer 600) DOELSE ()
anlegen möchte, erhalte ich folgende Fehlermeldung:
unknown expression format: ".*?Max


Kann mir jemand helfen - irgendwie scheint es mit dem DOIF und dem regulären Ausdruck Probleme zu geben.

Vielen Dank für Eure Unterstützung.

Viele Grüße
Jens

josburg

Hallo,

um es nochmals kurz und präzise zu formulieren:

Wenn ich jetzt das DOIF wie hier beschrieben
define Schalter_Zisterne DOIF ([21:00-21:10] and [SENSOR_REGENSENSOR:statREGENMENGE:".*?Max: (-?\d+(\.\d+)?)"] > 14.0) (set SCHALTER_ZISTERNE on-for-timer 600) DOELSE ()
anlegen möchte, erhalte ich folgende Fehlermeldung:

unknown expression format: ".*?Max


Kann mir jemand helfen - irgendwie scheint es mit dem DOIF und dem regulären Ausdruck Probleme zu geben.

Vielen Dank für Eure Unterstützung.

Viele Grüße
Jens

Damian

Zitat von: josburg am 17 April 2016, 20:46:15
Hallo,

um es nochmals kurz und präzise zu formulieren:

Wenn ich jetzt das DOIF wie hier beschrieben
define Schalter_Zisterne DOIF ([21:00-21:10] and [SENSOR_REGENSENSOR:statREGENMENGE:".*?Max: (-?\d+(\.\d+)?)"] > 14.0) (set SCHALTER_ZISTERNE on-for-timer 600) DOELSE ()
anlegen möchte, erhalte ich folgende Fehlermeldung:

unknown expression format: ".*?Max


Kann mir jemand helfen - irgendwie scheint es mit dem DOIF und dem regulären Ausdruck Probleme zu geben.

Vielen Dank für Eure Unterstützung.

Viele Grüße
Jens
Ich habe damit keine Probleme. Hast du die aktuelle Version vom 03.03 ?

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

josburg

Hallo Damian, das war der richtige Tipp! Vielen Dank, ein Update hat geholfen... Grüße Jens


Gesendet von iPhone mit Tapatalk