Ich kämpfe mit einer rule zur automatischen Beschattung.
Weil die Temperaturen und die Winkel Einheiten enthalten, scheinen die Vergleiche nicht zu funktionieren.
Hab schon einige Varianten ausprobiert, die man so findet. Richtig schlau bin ich aus dem Rechnen bzw. Umschreiben nicht geworden.
Hier die rule:
Code: Alles auswählen
rule "Verschattung"
when
Item azimuth received update
then
val maxTemp = 20|"°C"
//
if ( Rollo_ALL_1 == 0 && localDailyForecastHours03MaxTemperature >= maxTemp && azimuth >= 90.0|"°" && azimuth <= 110.0|"°" && elevation >= 30.0|"°" ) {
logInfo("rolloshutdown" ,"Morgen - Beschattung Ost aktiviert")
gRollerEast.sendCommand(80)
}
else if ( Rollo_ALL_1 == 0 && localDailyForecastHours03MaxTemperature >= maxTemp && azimuth >= 110.0|"°" && azimuth <= 130.0|"°" && elevation >= 30.0|"°" ) {
logInfo("rolloshutdown" ,"Vormittag - Beschattung Süd-Ost aktiviert")
Rollo_EG_Wohnzimmer.sendCommand(0)
Rollo_EG_Esszimmer_S.sendCommand(80)
}
else if ( Rollo_ALL_1 == 0 && localDailyForecastHours03MaxTemperature >= maxTemp && azimuth >= 130.0|"°" && azimuth <= 230.0|"°" && elevation >= 30.0|"°" ) {
logInfo("rolloshutdown" ,"Mittag - Beschattung Süd aktiviert")
gRollerEast.sendCommand(0)
gRollerSouth.sendCommand(80)
}
else if ( Rollo_ALL_1 == 0 && localDailyForecastHours03MaxTemperature >= maxTemp && azimuth >= 230|"°" && azimuth <= 250|"°" && elevation >= 30|"°" ) {
logInfo("rolloshutdown" ,"Nachmittag - Beschattung Süd-West aktiviert")
Rollo_EG_Esszimmer_S.sendCommand(0)
Rollo_EG_Kueche_W.sendCommand(80)
}
else if ( Rollo_ALL_1 == 0 && localCurrentTemperature >= maxTemp && azimuth >= 250|"°" && azimuth <= 320|"°" && elevation >= 1|"°" ) {
logInfo("rolloshutdown" ,"Abend - Beschattung West aktiviert")
gRollerSouth.sendCommand(0)
gRollerWest.sendCommand(80)
}
else
logInfo("rolloshutdown" ,"Keine Beschattung erforderlich")
Rollo_ALL_1.sendCommand(0)
end