if ((AutoHoliday.state == ON) && (now.isBefore((Sonnenaufgang_Time.state as DateTimeType).getZonedDateTime.toInstant.toEpochMilli) || now.isAfter((Sonnenuntergang_Time.state as DateTimeType).getZonedDateTime.toInstant.toEpochMilli))) {
..........
}
Aber diese mit drei AND Verknüpfungen bekomme ich nicht an fliegen. Mit zwei AND Verknüpfungen läuft sie. Ich vermute fast ich hab falsch geklammert, ich finde den Fehler aber nicht.
[internal.handler.ScriptActionHandler] - Script execution of rule with UID 'test-1' failed: An error occurred during the script execution: Could not invoke method: org.eclipse.xtext.xbase.lib.BooleanExtensions.operator_and(boolean,boolean) on instance: null in test
Nein, die Fehlermeldung besagt ja, dass einer der angegebenen Parameter null ist. Also entweder hast Du einen Schreibfehler bei einem der Itemnamen oder Du musst beim Vergleich des Helligkeitssensors explizit nach Number casten. Oder ist das Item am Ende vielleicht ein UoM Item? dann sollte es so aussehen:
Script execution of rule with UID 'test-1' failed: An error occurred during the script execution: Could not invoke method: org.eclipse.xtext.xbase.lib.BooleanExtensions.operator_and(boolean,boolean) on instance: null in test
jetzt habe ich mal die Reihenfolge geändert und siehe da, es geht...warum?
rule "Test"
when
Time cron "0/30 * * * * ?"
then
if (KuecheMotionSensor_Switch.state == ON && TerrassenMotionSensor_Darkness.state = OFF && (KuecheMotionSensor_Lux.state < 50)) {
logInfo("rules", "Bewegungssensor (Küche) starte Timer")
}
end
die ITEMS sind zwei mal Typ Switch und einmal Number