Rule mit mehreren AND Abfragen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Rule mit mehreren AND Abfragen

Beitrag von Cyrelian »

Hi,

irgendwie stehe ich gerade auf dem Schlauch. Ich habe mehrere Rules, in denen ich AND und OR verknüpfe...laufen alle einwandfrei. Beispiel diese hier:

Code: Alles auswählen

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.

Code: Alles auswählen

rule "Test"

when
        Time cron  "0/30 * * * * ?"
then
        if (KuecheMotionSensor_Switch.state == ON && KuecheMotionSensor_Lux.state < 50 && TerrassenMotionSensor_Darkness.state = ON){
				logInfo("rules", "Bewegungssensor (Küche) starte Timer")
		}
end
Hier kommt der Fehler:

Code: Alles auswählen

[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
CYA
Cyrelian
von udo1toni » 7. Jul 2022 12:43
Oh. Glatt übersehen, auch bei mir (Copy & Paste...) Du hast beim zweiten Vergleich = statt == geschrieben.
Gehe zur vollständigen Antwort

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Rule mit mehreren AND Abfragen

Beitrag von udo1toni »

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:

Code: Alles auswählen

rule "Test"
when
    Time cron  "0/30 * * * * ?"
then
    if(KuecheMotionSensor_Switch.state == ON && (KuecheMotionSensor_Lux.state as Number).intValue < 50 && TerrassenMotionSensor_Darkness.state = ON) {
        logInfo("rules", "Bewegungssensor (Küche) starte Timer")
    }
end
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: Rule mit mehreren AND Abfragen

Beitrag von Cyrelian »

HI Udo,

dank dir für die schnelle Rückmeldung. Seltsamerweise kommt die gleiche Meldung auch mit deiner Rule.

Code: Alles auswählen

rule "Test"
when
    Time cron  "0/30 * * * * ?"
then
    if(KuecheMotionSensor_Switch.state == ON && (KuecheMotionSensor_Lux.state as Number).intValue < 50 && TerrassenMotionSensor_Darkness.state = OFF) {
        logInfo("rules", "Bewegungssensor (Küche) starte Timer")
    }
end

Code: Alles auswählen

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?

Code: Alles auswählen

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

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Rule mit mehreren AND Abfragen

Beitrag von udo1toni »

Oh. Glatt übersehen, auch bei mir (Copy & Paste...) Du hast beim zweiten Vergleich = statt == geschrieben.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: Rule mit mehreren AND Abfragen

Beitrag von Cyrelian »

wie war dass mit dem Wald und den Bäumen :lol: .

Sauber, Dank Dir

Antworten