ungetestet, aber Du müsstest doch "nur" statt != mit < vergleichen.
Also
Code: Alles auswählen
if(EgBeschattungWest.state < iSoll)
Gruß,
INT5749
ungetestet, aber Du müsstest doch "nur" statt != mit < vergleichen.
Code: Alles auswählen
if(EgBeschattungWest.state < iSoll)
Code: Alles auswählen
rule "azimuth Sonnenstand West( Terasse)"
when
Item PositionAzimuth changed
then
val nPos = (PositionAzimuth.state as Number).floatValue // Azimuth
val nWolken = Bewoelkung.state as Number // Bewölkungsgrad
var iSoll = OFF // Default Befehl
if(nPos > 220 && nPos < 253 && nWolken < 20)
iSoll = ON
if(EgBeschattungWest.state != iSoll) {
EgBeschattungWest.sendCommand(iSoll.toString)
logInfo("Azimuth","Rollo {} (Azimuth {}°, Wolken {}%)",(if(iSoll == ON) "zu" else "auf"), nPos, nWolken)
}
end
OK, mein Fehler. Die von Dir geshare-te Rule fährt ja das Rollo nicht direkt, sondern setzt nur ON/OFF.
Code: Alles auswählen
rule "azimuth Sonnenstand West( Terasse)"
when
Item PositionAzimuth changed
then
val nPos = (PositionAzimuth.state as Number).floatValue // Azimuth
val nWolken = Bewoelkung.state as Number // Bewölkungsgrad
var iSoll = OFF // Default Befehl
if(nPos > 220 && nPos < 253 && nWolken < 20)
iSoll = ON
if(EgBeschattungWest.state != iSoll) {
EgBeschattungWest.sendCommand(iSoll.toString)
logInfo("Azimuth","Rollo {} (Azimuth {}°, Wolken {}%)",(if(iSoll == ON) "zu" else "auf"), nPos, nWolken)
}
end
OK, dies geht sicher nicht in meine Richtung, sondern eher in die Richtung von z.B. Udo und vielen anderen hier
Dann könnte z.B. folgendes funktionieren
Code: Alles auswählen
rule "azimuth Sonnenstand West( Terasse)"
when
Item PositionAzimuth changed
then
val nPos = (PositionAzimuth.state as Number).floatValue // Azimuth
val nWolken = Bewoelkung.state as Number // Bewölkungsgrad
if(nPos > 220 && nPos < 253 && nWolken < 20)
iSoll = 50 // Höhe für Beschattung
if(EgBeschattungWest.state < iSoll) {
EgBeschattungWest.sendCommand(iSoll)
logInfo("Azimuth","Rollo {} (Azimuth {}°, Wolken {}%)", iSoll, nPos, nWolken)
}
end