DOIF Zeitberechnung führt zu Syntax Error

Begonnen von dikay, 10 Oktober 2015, 23:21:54

Vorheriges Thema - Nächstes Thema

dikay

Hallo zusammen,

ich komme bei einem DOIF aktuell nicht weiter und hoffe ihr könnt mir helfen.
FHEM bringt immer einen Syntax-Error obwohl meiner Meinung nach eigentlich alles passen müsste.

Und zwar möchte ich über 2 Dummys den gewünschten Endzeitpunkt und die Dauer des Waschmaschinenprogramms manuell definieren. Das DOIF soll dann den Startzeitpunkt selbst berechnen und entsprechend loslegen.

dummy Plan_WAS_WashingMachine_DoneTime HH:MM
dummy Plan_WAS_WashingMachine_Duration "off" oder HH:MM

define DoIf_Plan_WAS_WashingMachine DOIF ([Plan_WAS_WashingMachine_Duration] ne "off" and [([Plan_WAS_WashingMachine_DoneTime]-[Plan_WAS_WashingMachine_Duration])])
(do something...)


Beim DOIF ich dann den Syntax-Error:
DoIf_Plan_WAS_WashingMachine DOIF: syntax error at (eval 1282) line 2, near "-)
"
: ([Plan_WAS_WashingMachine_DoneTime]-[Plan_WAS_WashingMachine_Duration])


Mein erster Test hingegen scheint problemlos zu laufen, da ich zuerst die Befürchtung hatte, dass er sich an dem möglichen "off" stören könnte:
define DoIf_Plan_WAS_WashingMachine DOIF ([Plan_WAS_WashingMachine_Duration] ne "off" and [[Plan_WAS_WashingMachine_DoneTime]])
(do something...)


Danke im Voraus
Grüße
dikay

Ellert

Bei einer älteren DOIF Version hat die Subtraktion nicht funktioniert, mach mal ein Update des Moduls.

dikay

Habe gerade ein Update + Restart gemacht. Der Fehler ist leider immer noch fast der selbe:


DoIf_Plan_WAS_WashingMachine DOIF: syntax error at (eval 76) line 2, near "-)
"
: ([Plan_WAS_WashingMachine_DoneTime]-[Plan_WAS_WashingMachine_Duration])

Sunny

Moin dikay,

hast Du per "setList" und "readingList" die Dummys für die abfrage vorbereitet?

Hier mal ein Beispiel von einem Dummy:
define Heizung_d dummy
attr Heizung_d event-on-change-reading .*
attr Heizung_d icon edit_settings
attr Heizung_d readingList Tag Nacht Frost Modus Nacht_Interval Tag_Interval
attr Heizung_d setList state:An,Aus,Auto,Eco Modus:Sommer,Winter,Wartung Frost:0,1 Nacht_Interval:0,60,300,600,900,1800,3600 Tag_Interval:0,60,300,600,900,1800,3600
attr Heizung_d webCmd "state":state:"Modus":Modus:"Frost":Frost:Interval Nacht:Nacht_Interval:Interval Tag:Tag_Interval:


Vielleicht hilft es Dir weiter...

Viele Grüße
Sunny

PS: Für DOIF kann, dann  z.B: [Heizung_d:Tag_Interval] genutzt werden.
oder bei Dir z.B.: [[dummy:zeit1]-[dummy:zeit2]]
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

Damian

Zitat von: dikay am 13 Oktober 2015, 21:02:05
Habe gerade ein Update + Restart gemacht. Der Fehler ist leider immer noch fast der selbe:


DoIf_Plan_WAS_WashingMachine DOIF: syntax error at (eval 76) line 2, near "-)
"
: ([Plan_WAS_WashingMachine_DoneTime]-[Plan_WAS_WashingMachine_Duration])


Poste hier die Ausgaben von Version DOIF

Gruß

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

dikay

Hier zunächst die Version:
File       Rev   Last Change

98_DOIF.pm  9422 2015-10-10 18:39:11Z damian-s


Und hier meine Dummys:

define Plan_WAS_WashingMachine_DoneTime dummy
attr setList state:13:00,13:30,14:00,14:30,15:00,15:30,16:00,16:30,17:00,17:30,18:00
webCmd state

define Plan_WAS_WashingMachine_Duration dummy
attr setList state:off,01:00,01:30,02:00,02:30,03:00,03:30,04:00
webCmd state


(Die Dummys sollen schön und einfach per iOS Smallscreen funktionieren, was ich bisher mit mehreren Readings in einem Dummy irgendwie nicht hinbekommen habe.)

Danke!