Ok, danke für den Tipp. Dass || eine oder-Verknüpfung ist, wusste ich nicht. Das habe ich mir aus MadDogs Rule geklaut und es als und-Verknüpfung interpretiert.
Jetzt klappt es, danke!
Jetzt klappt es, danke!
rule "Öffne alle Rollos,wenn Lucas zwischen 6 Uhr und 9 Uhr wach wird" when Item Shutter_G1OG_Child received command UP then if (now.getHourOfDay >= 6 && now.getHourofDay <= 9) then Shutter_GKG_Kitchen.sendCommand(UP) Shutter_GKG_Living.sendCommand(UP) end
import org.openhab.core.library.types.* import java.lang.Math // Constants var Number K = 0.017453 // Change this reflecting your destination var Number latitude = 49.656030 var Number longitude = 08.649870 rule "Set Sun sonnenhoehe and Dawn States" when Time cron "0 0/5 * * * ?" then var Number tageszahl var Number deklination var Number zeitgleichung var Number stundenwinkel var Number x var Number y var Number sonnenhoehe var Number azimut var month = now.getMonthOfYear var day = now.getDayOfMonth var hour = now.getHourOfDay var minute = now.getMinuteOfHour // Source: http://www.jgiesen.de/SME/tk/index.htm tageszahl = (month - 1) * 30 + day + hour / 24 deklination = -23.45 * Math::cos((K * 360 * (tageszahl + 10) / 365).doubleValue) zeitgleichung = 60.0 * (-0.171 * Math::sin((0.0337*tageszahl+0.465).doubleValue) - 0.1299 * Math::sin((0.01787*tageszahl-0.168).doubleValue)) stundenwinkel = 15.0 * (hour.doubleValue + (minute.doubleValue/60.0) - (15.0-longitude)/15.0 - 12.0 + zeitgleichung/60.0) x = Math::sin((K * latitude).doubleValue()) * Math::sin((K * deklination).doubleValue()) + Math::cos((K * latitude).doubleValue()) * Math::cos((K * deklination).doubleValue()) * Math::cos((K * stundenwinkel).doubleValue()) y = - (Math::sin((K*latitude).doubleValue) * x - Math::sin((K*deklination).doubleValue)) / (Math::cos((K*latitude).doubleValue) * Math::sin(Math::acos(x.doubleValue))) sonnenhoehe = Math::asin(x.doubleValue) / K var break = hour.doubleValue + (minute.doubleValue/60.0) <= 12.0 + (15.0-longitude)/15.0 - zeitgleichung/60.0 if (break) { azimut = Math::acos(y.doubleValue) / K } else { azimut = 360.0 - Math::acos(y.doubleValue) / K } logDebug("Sun.rules", "month: " + month) logDebug("Sun.rules", "day: " + day) logDebug("Sun.rules", "hour: " + hour) logDebug("Sun.rules", "minute: " + minute) logDebug("Sun.rules", "tageszahl: " + tageszahl) logDebug("Sun.rules", "deklination: " + deklination) logDebug("Sun.rules", "zeitgleichung: " + zeitgleichung) logDebug("Sun.rules", "stundenwinkel: " + stundenwinkel) logDebug("Sun.rules", "x: " + x) logDebug("Sun.rules", "y: " + y) logDebug("Sun.rules", "sonnenhoehe: " + sonnenhoehe) logDebug("Sun.rules", "azimut: " + azimut) logDebug("Sun.rules", "Calculated new SunHeight angle '" + sonnenhoehe + "°'") logDebug("Sun.rules", "Calculated new Azimut angle '" + azimut + "°'") // Berechnungen auf den Bus schicken ... Sun_Height.postUpdate(sonnenhoehe) Sun_Azimut.postUpdate(azimut) end rule "calculate dawn" when Item Sun_Height changed then Sun_Dawn_Solar.postUpdate( if (Sun_Height.state < 0) ON else OFF ) Sun_Dawn_Civil.postUpdate( if (Sun_Height.state < -3.5) ON else OFF ) Sun_Dawn_Nautical.postUpdate( if (Sun_Height.state < -12) ON else OFF ) Sun_Dawn_Astronomical.postUpdate( if (Sun_Height.state < -18) ON else OFF) end rule "Schliesse Rollaeden bei Sonnenuntergang" when Item Sun_Dawn_Civil changed to ON then Shutter_GKG_Kitchen.sendCommand(DOWN) Shutter_GKG_Living.sendCommand(DOWN) Shutter_GEG_LivingWindow.sendCommand(DOWN) Shutter_GEG_LivingBalkon.sendCommand(DOWN) Shutter_GEG_Living.sendCommand(DOWN) Shutter_GEG_LivingTerrasse.sendCommand(DOWN) Shutter_GEG_Toilet.sendCommand(DOWN) Shutter_GEG_KitchenEast.sendCommand(DOWN) Shutter_GEG_KitchenSouth.sendCommand(DOWN) Shutter_G1OG_Bath.sendCommand(DOWN) Shutter_G1OG_Parents1.sendCommand(DOWN) Shutter_G1OG_Parents2.sendCommand(DOWN) Shutter_G1OG_Zimmer1.sendCommand(DOWN) Shutter_G1OG_Zimmer2.sendCommand(DOWN) Shutter_GDG_Buero.sendCommand(DOWN) Shutter_GDG_Buero2.sendCommand(DOWN) Shutter_GDG_Zimmer.sendCommand(DOWN) end rule "oeffne Rollaeden bei Sonnenaufgang" when Item Sun_Dawn_Solar changed to OFF then Shutter_GKG_Kitchen.sendCommand(UP) Shutter_GKG_Living.sendCommand(UP) Shutter_GEG_LivingWindow.sendCommand(UP) Shutter_GEG_LivingBalkon.sendCommand(UP) Shutter_GEG_Living.sendCommand(UP) Shutter_GEG_LivingTerrasse.sendCommand(UP) Shutter_GEG_Toilet.sendCommand(UP) Shutter_GEG_KitchenEast.sendCommand(UP) Shutter_GEG_KitchenSouth.sendCommand(UP) Shutter_G1OG_Bath.sendCommand(UP) Shutter_G1OG_Zimmer1.sendCommand(UP) Shutter_G1OG_Zimmer2.sendCommand(UP) Shutter_GDG_Buero.sendCommand(UP) Shutter_GDG_Buero2.sendCommand(UP) end rule "Öffne wenn Lucas zwischen 6 Uhr und 9 Uhr wach wird" when Item Shutter_G1OG_Child received command UP then if (now.getHourofDay >= 6 && now.getHourofDay <= 9) then Shutter_GKG_Kitchen.sendCommand(UP) Shutter_GKG_Living.sendCommand(UP) Shutter_GEG_LivingWindow.sendCommand(UP) Shutter_GEG_LivingBalkon.sendCommand(UP) Shutter_GEG_Living.sendCommand(UP) Shutter_GEG_LivingTerrasse.sendCommand(UP) Shutter_GEG_Toilet.sendCommand(UP) Shutter_GEG_KitchenEast.sendCommand(UP) Shutter_GEG_KitchenSouth.sendCommand(UP) Shutter_G1OG_Bath.sendCommand(UP) Shutter_G1OG_Parents1.sendCommand(UP) Shutter_G1OG_Parents2.sendCommand(UP) Shutter_G1OG_Zimmer1.sendCommand(UP) Shutter_G1OG_Zimmer2.sendCommand(UP) Shutter_GDG_Buero.sendCommand(UP) Shutter_GDG_Buero2.sendCommand(UP) Shutter_GDG_Zimmer.sendCommand(UP) Shutter_GDG_Zimmer.sendCommand(UP) end
rule "Öffne alle Rollos,wenn Lucas zwischen 6 Uhr und 9 Uhr wach wird" when Item Shutter_G1OG_Child received command UP then if (now.getHourOfDay >= 6 && now.getHourOfDay <= 9) { Shutter_GKG_Kitchen.sendCommand(UP) Shutter_GKG_Living.sendCommand(UP) } end
Shutter_GKG_Living.sendCommand(UP)
sendCommand(Shutter_GKG_Living, UP)
now.getHourOfDay == 15
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar