Kombinierte UND und ODER Verknüpfung funzt nicht

Begonnen von locodriver, 13 Mai 2013, 13:44:21

Vorheriges Thema - Nächstes Thema

locodriver

Hallo miteinander!

Ich hatte bis jetzt folgende Zeilen in der cfg um den Rolali in Abhängigkeit von Sonnenuntergang und Monat zu schließen - was auch wunderbar gefunzt hat:

define WZ_Rolali_runter at *{sunset(0,"17:00","22:00")} {if ($month<5 || $month> 9) {fhem "set WZ_Rolali Zu"}}
attr WZ_Rolali_runter room 001Wohnzimmer


Jetzt will ich das Ganze um eine manuell gesteuerten Schalter erweitern, der die Automatik ein- bzw. ausschaltet. Der Schalter ist so definiert:

define Rolaautomatik dummy
attr Rolaautomatik alias Rolaauto
attr Rolaautomatik devStateIcon Ein:switch.on Aus:switch.off
attr Rolaautomatik eventMap on:Ein off:Aus
attr Rolaautomatik room 010Wohnung
attr Rolaautomatik webCmd Ein:Aus


Bei einem List Rolaautomatik wird je nach Stellung on bzw. off zurückgegeben.

Der angepasste Code sieht z.Z. so aus (zum Testen mit fester Uhrzeit anstelle Sonnenuntergang):

define WZ_Rolali_runter at *20:59 {if ((Value("Rolaautomatik") eq "Ein")&& $month<5 || $month>9)}{fhem "set WZ_Rolali Zu"}
attr WZ_Rolali_runter room 001Wohnzimmer


Wenn die Zeit erreicht ist wird im Eventmonitor die Definition gelöscht und wieder neu angelegt (was ja darauf deutet, das die Def. korrekt aufgerufen und bearbeitet wird). Ich bekomme im allg. log folgende Fehlermeldung:

2013.05.11 20:59:00 3: syntax error at (eval 71) line 1, at EOF

bzw. gestern:

2013.05.12 20:59:00 3: syntax error at (eval 125) line 1, at EOF

Ich hatte auch schon vor einigen Tagen andere Verknüpfungen ausprobiert, da kamen dann Fehlermeldungen in folgender Art:

2013.05.07 20:33:00 3: syntax error at (eval 177) line 1, near ") &"
syntax error at (eval 177) line 1, near "}}"

2013.05.07 20:35:00 3: syntax error at (eval 186) line 1, near ") and"
syntax error at (eval 186) line 1, near "}}"

2013.05.07 20:37:00 3: syntax error at (eval 191) line 1, near ") and"

2013.05.07 20:39:00 3: syntax error at (eval 198) line 1, near ") and"

2013.05.07 20:41:00 3: syntax error at (eval 203) line 1, near ") &"

2013.05.07 20:43:00 3: syntax error at (eval 208) line 1, near ") &"

2013.05.07 20:47:00 3: syntax error at (eval 213) line 1, near ") &"

2013.05.07 20:49:00 3: syntax error at (eval 221) line 1, near ") &&"


Ich hatte mit verschiedenen Kombinationen von Operatoren und Klammern experimentiert.

Der Code soll leisten:
Wenn Rolaauto eq Ein und (Monat<5 oder Monat>9) dann Rolali schließen.

Ich sehe sicher den Wald vor lauter Bäumen nicht, aber ich komme einfach nicht mehr weiter :-( und wäre für einen Tipp sehr dankbar.
die Codezeilen sind alle aus der cfg kopiert, also nicht aus den jeweiligen Funktionsdefinitionen.

Danke Uwe.

fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

MisterEltako

define WZ_Rolali_runter at *20:59 {\
  if ((Value("Rolaautomatik") eq "Ein")&& (($month<5) || ($month>9)))}{\
     fhem "set WZ_Rolali Zu";;\
  }
}
attr WZ_Rolali_runter room 001Wohnzimmer


D.h.:  wenn Rolaautomatik ist "Ein" und  Ergebnis von Monat ist kleiner als 5 oder größer als 9 ist wahr  -----> dann set WZ_Rolali_runter

MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

locodriver

Danke für die schnelle Reaktion. Fehlt da nicht noch eine öffnende geschweifte Klammmer? Im log kommt:

syntax error at (eval 144) line 1, at EOF
Unmatched right curly bracket at (eval 144) line 1, at end of line
syntax error at (eval 144) line 1, near "}}"


Ich habe mal die "überflüssige" 2. schließende geschweifte Klammer weggelassen, aber das ist es nicht.
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

MisterEltako

OK, zu schnell geschrieben, bitte probiere es so:

define WZ_Rolali_runter at *20:59 {\
  if ((Value("Rolaautomatik") eq "Ein")&& (($month<5) || ($month>9))){\
     fhem "set WZ_Rolali Zu";;\
  }\
}
attr WZ_Rolali_runter room 001Wohnzimmer


MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

locodriver

Danke MrEltako - es funzt. Ich hatte schon ein paar Haare verloren.
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster