Gelöst: DOIF mit zyklischem Aufruf: Error Code

Begonnen von bmwfan, 04 Oktober 2020, 16:30:42

Vorheriges Thema - Nächstes Thema

bmwfan

Hallo,
ich bekomme den zyklischen Aufruf (jede Stunde) eines DOIF nicht hin. Vielleicht hat mir jemand einen Tip.

Erster Versuch nach Wiki:
(([11:00-19:00,+:60|1234] and !$we) or [10:00-19:00,+:60|57])
Fehlermeldung error: Wrong timespec :60: either HH:MM:SS or {perlcode} wird gemeldet.

Dann nach dieser Fehlermeldung mit HH:MM:SS versucht: (([11:00-19:00,+01:00:00|1234] and !$we) or [10:00-19:00,+01:00:00|57]) versucht. Ebenfalls Fehlermeldung.

Wie ist denn die korrekte Eingabe, damit jede volle Stunde die Konditionen für die Auslösung eines Triggers abgefragt werden?

So sieht das ganze DOIF aus:
((([Wetter_Pro:fc0_tempMax] > 22 and [Gart_UniSen_25:luminosity.av] > 200 and
([Wetter_Pro:fc0_weatherDay] =~ "sonnig" or [Wetter_Pro:fc0_weatherDay] =~ "heiter" or [Wetter_Pro:fc0_weatherDay] =~ "unterschiedlich bewölkt"))
or [EG_UniSen_06:temperature] >= 24 or [Wetter_Pro:fc0_tempMax] > 25 or [Gart_UniSen_25:luminosity.av] > 600) and ($month >= 4 && $month <= 10)
and (([11:00-19:00,+:60|1234] and !$we) or [10:00-19:00,+:60|57]) and [?du_Beschattung_Haus_Mittag] ne "ja") (set du_Beschattung_Haus_Mittag ja)
## Beschattung notwendig wenn Vorhersage Aussentemp. > 22 °C UND (heiter oder sonnig oder unterschiedlich bewölkt) ODER Aussentemp. > 26 °C ODER WZ-Temp >= 22°C ODER Helligkeit Garten zu hoch und immer nur zwischen April und Oktober, Überprüfung jede Stunde, wenn Dummy Beschatten nicht auf ja (sonst jede Stunde trigger)
DOELSEIF ([du_Tageslicht] eq "dunkel") (set du_Beschattung_Haus_Mittag nein) ## Bei Sonnenuntergang Merker zurücksetzen


Grüße Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HM-LAN, Jalousienaktoren HmWired, Shelly-Devices; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

Damian

siehe: https://fhem.de/commandref_DE.html#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet

+:60 kommt dort nicht vor, die findest du auch nicht auf einem Ziffernblatt, du solltest +:00 nehmen ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

bmwfan

Geändert und im Test. Hatte +:59 versucht, wollte aber 1 Stunde. Dass +:00 1 Stunde bedeutet hatte ich nicht vermutet.

Danke
Synology DS720+ mit Docker-Container und Haupt-FHEM, HM-LAN, Jalousienaktoren HmWired, Shelly-Devices; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

Damian

Zitat von: bmwfan am 04 Oktober 2020, 18:13:04
Geändert und im Test. Hatte +:59 versucht, wollte aber 1 Stunde. Dass +:00 1 Stunde bedeutet hatte ich nicht vermutet.

Danke

ja, ich werde die Doku ergänzen, dort ist tatsächlich 0 nicht angegeben.

Für stündliche Wiederholungen ist eher diese Syntax vorgesehen: https://fhem.de/commandref_DE.html#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet_alle_X_Stunden

hier dann z.B.:

[11:00-19:00,[+[1]:00]|1234]

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

xenos1984

Zitat von: Damian am 04 Oktober 2020, 18:26:12
Für stündliche Wiederholungen ist eher diese Syntax vorgesehen: https://fhem.de/commandref_DE.html#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet_alle_X_Stunden

hier dann z.B.:

[11:00-19:00,[+[1]:00]|1234]
...wobei die aber sagt:
ZitatFormat: [+[h]:MM] mit: h sind Stundenangaben zwischen 2 und 23 und MM Minuten zwischen 00 und 59
Gut zu wissen, wenn also auch eine Stunde geht statt mindestens zwei ;)

Damian

Zitat von: xenos1984 am 04 Oktober 2020, 22:02:07
...wobei die aber sagt:Gut zu wissen, wenn also auch eine Stunde geht statt mindestens zwei ;)

ja, da muss ich die Doku an beiden Stellen anpassen.

Ist auch nicht schlecht, wenn das Modul mehr kann, als ich niedergeschrieben habe, besser als andersrum ;)

es war noch eine Klammer zu viel, es muss vielmehr heißen:

[11:00-19:00,+[1]:00]|1234]
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

bmwfan

Zitates war noch eine Klammer zu viel, es muss vielmehr heißen:

Code: [Auswählen]

[11:00-19:00,+[1]:00]|1234]

Du bist der Entwickler des Moduls, aber ich frage trotzdem: Sicher?
So ist dann aber die Anzahl öffnender und schliessender Klammern unterschiedlich. Ich dachte immer, das darf nicht sein.

Gruß Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HM-LAN, Jalousienaktoren HmWired, Shelly-Devices; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

xenos1984


Damian

Zitat von: xenos1984 am 05 Oktober 2020, 07:08:19
Vermutlich eher so:
[11:00-19:00,+[1]:00|1234]

ja, war gestern wohl schon spät ;)

PS. Aktualisierte Commandref ab heute verfügbar.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF