Zwischen sunset und 00:00 h mit DOIF-Perl

Begonnen von TomLee, 21 September 2018, 09:40:09

Vorheriges Thema - Nächstes Thema

TomLee


Damian

Es war die korrekte Syntax (man muss natürlich das aktuelle DOIF-Version haben ;) )

Perl-Mode

DOIF {if ([{sunset}-00:00] and [Garagentor:open]) {fhem "set Licht_Garage on-for-timer 300"}}

oder

FHEM-Mode

DOIF ([{sunset}-00:00]  and [Garagentor:open]) (set Licht_Garage on-for-timer 300)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

TomLee

#2
Bei mir möchte das nicht oder ich steh auf dem Schlauch:

Internals:
   DEF        {if ([{sunrise}-13:00] and [du_Test] eq "on") {fhem "set Mi_Wecklicht off"}}
   MODEL      Perl
   NAME       doif_Test3
   NR         431
   NTFY_ORDER 50-doif_Test3
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-09-21 12:44:42   Device          du_Test
     2018-09-21 12:44:42   block_01        condition c01: syntax error, line 1, near "13:"

     2018-09-21 12:44:42   e_du_Test_STATE on
     2018-09-21 12:40:19   mode            enabled
     2018-09-21 12:40:19   state           initialized
   Regex:
   condition:
     0          if ([{sunrise}-13:00] and InternalDoIf($hash,'du_Test','STATE') eq "on") {fhem "set Mi_Wecklicht off"}
   devices:
     0           du_Test
     all         du_Test
   helper:
     event      gtanke: 1.46
     globalinit 1
     last_timer 0
     sleeptimer -1
     triggerDev du_Test
     triggerEvents:
       gtanke: 1.46
     triggerEventsState:
       gtanke: 1.46
   internals:
     0           du_Test:STATE
     all         du_Test:STATE
   itimer:
   perlblock:
     0         
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:


98_DOIF.pm 17373 2018-09-19 19:15:59Z Damian

edit:

Hab mir gerade angeschaut was in sunrise drinsteht, kann ja nicht gehen.

Gestern abend hatte ich auf jedenfall noch

98_DOIF.pm 17291 2018-09-06 18:37:03Z Damian

und da gings mit sunset nicht. Schau heute abend nochmal.

Ellert

[{sunrise}-13:00] wird nicht als DOIF-Syntax erkannt sondern als Subtraktion, sollte eigentlich nicht so sein.

Damian

Zitat von: Ellert am 21 September 2018, 13:06:23
[{sunrise}-13:00] wird nicht als DOIF-Syntax erkannt sondern als Subtraktion, sollte eigentlich nicht so sein.

ja, ich habe es gerade auch feststellen müssen. Es gibt wohl noch eine Inkompatibilität zum FHEM Modus. Den Fehler werde ich heute noch bereinigen.

Was bewusst im Perlmodus nicht mehr geht, ist die Angabe von Zeittriggern mit Sekunden z. B.

if ([3600]) ...

Bedeutung: 3600 Sekunden nach Mitternacht.

Diese Angaben wurden selten benutzt und lassen sich besser in HH:MM angeben (hier [01:00]).

Dadurch können im Perlmodus jetzt Arrays z. B. $a[1] angegeben werden, ohne dass es fälschlicher Weise als Zeittrigger erkannt wird.




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

Damian

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