Seite 1 von 2
Regel Openhab
Verfasst: 11. Mai 2020 10:57
von Markus_JE
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
Re: Regel Openhab
Verfasst: 11. Mai 2020 11:07
von peter-pan
Markus_JE hat geschrieben: ↑11. Mai 2020 10:57
Kann mir jemand weiterhelfen?
...bestimmt

.
Poste mal dein Item. Das ist bestimmt ein Quantity-Typ.
Re: Regel Openhab
Verfasst: 11. Mai 2020 11:08
von Markus_JE
Hi,
anbei das item:
Number:Temperature Indoor_Temp "Temperature [%.1f %unit%]" <temperature> { channel = "netatmo:NAMain:home:Wohnzimmer:Temperature" }
Re: Regel Openhab
Verfasst: 11. Mai 2020 11:28
von udo1toni
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:
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
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.
Re: Regel Openhab
Verfasst: 11. Mai 2020 11:32
von peter-pan
Udo hat's schon gelöst. Wollte dir den gleichen Tipp geben.
Re: Regel Openhab
Verfasst: 11. Mai 2020 13:03
von Markus_JE
Hammer,
vielen Dank an euch! Funktioniert.
Re: Regel Openhab
Verfasst: 5. Jun 2020 12:20
von Markus_JE
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
Re: Regel Openhab
Verfasst: 5. Jun 2020 13:28
von udo1toni
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:
Code: Alles auswählen
rule "Beschattung schließen"
when
Time cron "0 0 1 ? * *" // üblicher: "0 0 1 * * ?"
then
DGEltern.sendCommand(DOWN)
end
Um zu sehen, ob die Rule getriggert wird, kannst Du eine Logmeldung einbauen:
(entweder nach oder vor dem .sendCommand)
Re: Regel Openhab
Verfasst: 22. Jun 2020 11:30
von Markus_JE
Hi Udo,
danke dir jetzt funkitoniert est super.
Sag mal wie kann ich denn den Code so einfügen wie du das wünscht?
Re: Regel Openhab
Verfasst: 22. Jun 2020 19:57
von Pepe1907
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