[gelöst]ReadingValDoIf wird zu EventDoIf bei regex ?

Begonnen von juppzupp, 15 März 2018, 14:26:33

Vorheriges Thema - Nächstes Thema

juppzupp

hi all,

stehe gerade auf dem schlauch.
Ein ([View_Home_Cal:"^tomorrow_..._summary:.morgen2$"]) (set dummymorgen on)
funktioniert. (Ich möchte den Kalendar auf den eintrag "morgen2" durchsuchen)

Jetzt möchte ich aber, das das nur zu einer bestimmten Uhrzeit ausgeführt wird, und so dachte ich ([13:01] and [?View_Home_Cal:"^tomorrow_..._summary:.morgen2$"]) (set dummymorgen on)


würde mir helfen.

Triggert aber nicht. Sobal ich Fragezeichen und Gänsefüßchen verwende, sieht man im list auf das DOIF, das aus ReadingValDoIf ein EventDoIf  wird.

Bug, Feature , PEBKAC ?

Danke !

Damian

Zitat von: juppzupp am 15 März 2018, 14:26:33
hi all,

stehe gerade auf dem schlauch.
Ein ([View_Home_Cal:"^tomorrow_..._summary:.morgen2$"]) (set dummymorgen on)
funktioniert. (Ich möchte den Kalendar auf den eintrag "morgen2" durchsuchen)

Jetzt möchte ich aber, das das nur zu einer bestimmten Uhrzeit ausgeführt wird, und so dachte ich ([13:01] and [?View_Home_Cal:"^tomorrow_..._summary:.morgen2$"]) (set dummymorgen on)


würde mir helfen.

Triggert aber nicht. Sobal ich Fragezeichen und Gänsefüßchen verwende, sieht man im list auf das DOIF, das aus ReadingValDoIf ein EventDoIf  wird.

Bug, Feature , PEBKAC ?

Danke !

Angaben in Anführungszeichen bedeuten Event, also ein kurzzeitiges Ereignis, welches im Eventmonitor erscheint und nicht von Dauer ist. Um 13:01 Uhr wird es das Ereignis nicht geben.

Du willst aber wissen, ob es ein solches Reading gibt, was etwas ganz anderes ist als ein Ereignis.

Du hast Glück. Ich habe vor kurzem bei den Aggregationsfunktionen  https://fhem.de/commandref_DE.html#DOIF_aggregation etwas eingebaut, was dieses leistet :)

[<function>:<format>:"<regex device>:<regex event>":<reading>|"<regex reading>":<condition>,<default>]

hier: ([13:01] and [?#"^tomorrow_..._summary":"^morgen2$"] > 0) (set dummymorgen on)


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

juppzupp

Super, Danke Dir !


Ich hatte mich durch folgenden Absatz in der commandref fehl leiten lassen
ZitatZeitintervalle, Readings und Status ohne Trigger   back

Angaben in eckigen Klammern, die mit einem Fragezeichen beginnen, führen zu keiner Triggerung des Moduls, sie dienen lediglich der Abfrage.

da hatte ich verstanden das während des triggers (in meinem fall die uhrzeit) die readings ausgewertet werden.

Du hast mich mit aggregation aber auf die richtige spur gesetzt. ein bisschen feintuning und dann klappt es :

([18:27] and [#"View_Home_Cal":"^tomorrow_..._summary":"morgen2"] > 0) (set dummymorgen on)


merci !

Damian

Zitat von: juppzupp am 15 März 2018, 18:34:20
Super, Danke Dir !


Ich hatte mich durch folgenden Absatz in der commandref fehl leiten lassen
da hatte ich verstanden das während des triggers (in meinem fall die uhrzeit) die readings ausgewertet werden.

Du hast mich mit aggregation aber auf die richtige spur gesetzt. ein bisschen feintuning und dann klappt es :

([18:27] and [#"View_Home_Cal":"^tomorrow_..._summary":"morgen2"] > 0) (set dummymorgen on)


merci !

OK. Da habe ich wohl fälschlicherweise das Reading für das Device gehalten, dennoch solltest du das Fragezeichen davorsetzen, denn deine Bedingung wird bei jedem Event von "View_Home_Cal" unnötig vom DOIF bearbeitet, da sie aufgrund der and-Verknüpfung nur um 18:27 Uhr wahr sein kann.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF