Regel Openhab
-
- Beiträge: 138
- Registriert: 6. Okt 2019 13:20
Regel Openhab
Hallo zusammen,
ich würde gerne ab einer bestimmten INnentemperatur die Jalousien auf 50% fahren.
Meine Regle dafür wäre:
rule "Sonnenschutz"
when
Item Indoor_Temp changed //FUNKTIONIERT
then
if
(Indoor_Temp >= 22.5)
{
EGSchiebetuere.sendCommand(10)
EGBlumenfenster.sendCommand(10)
EGWohnzimmer.sendCommand(10)
EGBalkontuere.sendCommand(10)
}
end
Leider stimmt etws in der Zeile " (Indoor_Temp >= 22.5) " nicht.
Ich bekomme immer die Fehlermeldung Unknown variable or command '>='; line 68, column 7, length 19
Kann mir jemand weiterhelfen?
Besten Dank
ich würde gerne ab einer bestimmten INnentemperatur die Jalousien auf 50% fahren.
Meine Regle dafür wäre:
rule "Sonnenschutz"
when
Item Indoor_Temp changed //FUNKTIONIERT
then
if
(Indoor_Temp >= 22.5)
{
EGSchiebetuere.sendCommand(10)
EGBlumenfenster.sendCommand(10)
EGWohnzimmer.sendCommand(10)
EGBalkontuere.sendCommand(10)
}
end
Leider stimmt etws in der Zeile " (Indoor_Temp >= 22.5) " nicht.
Ich bekomme immer die Fehlermeldung Unknown variable or command '>='; line 68, column 7, length 19
Kann mir jemand weiterhelfen?
Besten Dank
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Regel Openhab
...bestimmt

Poste mal dein Item. Das ist bestimmt ein Quantity-Typ.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 138
- Registriert: 6. Okt 2019 13:20
Re: Regel Openhab
Hi,
anbei das item:
Number:Temperature Indoor_Temp "Temperature [%.1f %unit%]" <temperature> { channel = "netatmo:NAMain:home:Wohnzimmer:Temperature" }
anbei das item:
Number:Temperature Indoor_Temp "Temperature [%.1f %unit%]" <temperature> { channel = "netatmo:NAMain:home:Wohnzimmer:Temperature" }
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Regel Openhab
Indoor_Temp ist ein Item. Im Vergleich möchtest Du den Status des Items verwenden. Entsprechend musst Du ein .state anhängen. Damit das Ganze komplett sicher ist, sollte die Rule eher so aussehen:
Der erste Vergleich fängt die Situation ab, dass der Status des Items keine gültige Temperatur enthält, sondern z.B. NULL oder UNDEF.
Das Konstrukt (Indoor_Temp.state as Number).floatValue schneidet die Einheit °C von der Temperatur ab.
Code: Alles auswählen
rule "Sonnenschutz"
when
Item Indoor_Temp changed
then
if(!(Indoor_Temp.state instanceof Number)) {
logWarn("sunprotect","Indoor_Temp liefert keine Zahl! ({})",Indoor_Temp.state)
return;
}
if((Indoor_Temp.state as Number).floatValue >= 22.5) {
EGSchiebetuere.sendCommand(10)
EGBlumenfenster.sendCommand(10)
EGWohnzimmer.sendCommand(10)
EGBalkontuere.sendCommand(10)
}
end
Das Konstrukt (Indoor_Temp.state as Number).floatValue schneidet die Einheit °C von der Temperatur ab.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Regel Openhab
Udo hat's schon gelöst. Wollte dir den gleichen Tipp geben.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 138
- Registriert: 6. Okt 2019 13:20
Re: Regel Openhab
Hammer,
vielen Dank an euch! Funktioniert.
vielen Dank an euch! Funktioniert.
-
- Beiträge: 138
- Registriert: 6. Okt 2019 13:20
Re: Regel Openhab
Hallo zusammen,
ich habe das Problem das eine Regel nicht ausgeführt wird. Wenn ich allerdings die Uhrzeit abändee zum testen funktioniert sie.
Eigentlich ein echt banales Ding. Fehlermeldungen im Logging bekomme ich auch nicht.
Hat da jemand eine Idee was das Problem sein kann?
Der Code der rules datei anbei.
//rule "Beschattung Eltern um 1:00 Uhr schliessen"
rule "beschattungschliessen"
when
Time cron " 0 0 1 ? * * "
then {
DGEltern.sendCommand(DOWN)
}
end
ich habe das Problem das eine Regel nicht ausgeführt wird. Wenn ich allerdings die Uhrzeit abändee zum testen funktioniert sie.
Eigentlich ein echt banales Ding. Fehlermeldungen im Logging bekomme ich auch nicht.
Hat da jemand eine Idee was das Problem sein kann?
Der Code der rules datei anbei.
//rule "Beschattung Eltern um 1:00 Uhr schliessen"
rule "beschattungschliessen"
when
Time cron " 0 0 1 ? * * "
then {
DGEltern.sendCommand(DOWN)
}
end
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Regel Openhab
Code bitte immer als Code markieren 
Die Leerzeichen um den cron Ausdruck sind eher unüblich. Die geschweiften Klammern sind falsch. Die Rule sollte eigentlich eher so aussehen:
Um zu sehen, ob die Rule getriggert wird, kannst Du eine Logmeldung einbauen:
(entweder nach oder vor dem .sendCommand)

Die Leerzeichen um den cron Ausdruck sind eher unüblich. Die geschweiften Klammern sind falsch. Die Rule sollte eigentlich eher so aussehen:
Code: Alles auswählen
rule "Beschattung schließen"
when
Time cron "0 0 1 ? * *" // üblicher: "0 0 1 * * ?"
then
DGEltern.sendCommand(DOWN)
end
Code: Alles auswählen
logInfo("schatten","DGEltern wird geschlossen.")
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 138
- Registriert: 6. Okt 2019 13:20
Re: Regel Openhab
Hi Udo,
danke dir jetzt funkitoniert est super.
Sag mal wie kann ich denn den Code so einfügen wie du das wünscht?
danke dir jetzt funkitoniert est super.
Sag mal wie kann ich denn den Code so einfügen wie du das wünscht?
-
- Beiträge: 167
- Registriert: 1. Jun 2020 17:29
Re: Regel Openhab
Vollständigen Editor Öffnen und dann hast du oben mehrere Balken da gibt es den Balken </>
Da fügst du deinen Code zwischen den beiden code in den eckigen klammern ein
Da fügst du deinen Code zwischen den beiden code in den eckigen klammern ein