Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen
-
- Beiträge: 317
- Registriert: 29. Okt 2020 19:53
Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen
Okay, werde ich versuchen wenn ich wieder zuhause bin.
rrd4j ist installiert, und auch auf default gesetzt, aber keinerlei Definition im Ordner $OPENHAB_CONF/persistence.
rrd4j ist installiert, und auch auf default gesetzt, aber keinerlei Definition im Ordner $OPENHAB_CONF/persistence.
Servus
-
- Beiträge: 317
- Registriert: 29. Okt 2020 19:53
Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen
Bin mir nicht ganz sicher, ob ich das richtig mache.
Muss ich von:
auf:
abändern, oder was muss da alles raus?
Zumindest bei der Temp gibt es noch ein Problem, da bei mir die Werte mit Einheit daherkommen. Mit diesem code
gibt es diesen Fehler:
Wie muss ich die rule ändern, damit die vergangenen Werte richtig ausgewertet werden? Werden die in der Persistence auch mit Einheit gespeichert?
Bei dem Regen und den Wolken bin ich mir auch nicht sicher ob das so passt. Auch die sind bei mir mit Einheit. Die Wolken werden z.B. mit "35 %" angezeigt, wenn man auf Analyse klickt jedoch mit "0.35" Beim Regen scheint es um den Faktor 1000 zu wenig sein. Sollte ich dort lieber auf Werte ohne Einheit umstellen?
Muss ich von:
Code: Alles auswählen
val Boolean isRainLastHour = (Wetter_Regen.maximumSince(now.minusHours(1), "influxdb").state >= (minPrecip))
val Boolean isCloudLastHour = (Wetter_Bewolkung.averageSince(now.minusHours(1), "influxdb")as Number >= (cloudHysteresis))
Code: Alles auswählen
val Boolean isRainLastHour = (Wetter_Regen.maximumSince(now.minusHours(1).state) >= (minPrecip))
val Boolean isCloudLastHour = (Wetter_Bewolkung.averageSince(now.minusHours(1)as Number) >= (cloudHysteresis))
Zumindest bei der Temp gibt es noch ein Problem, da bei mir die Werte mit Einheit daherkommen. Mit diesem code
Code: Alles auswählen
val Boolean isTemperature = ((Wetter_Aussentemperatur.state as Number).floatValue < (Wetter_Aussentemperatur.minimumSince(now.minusHours(1), "influxdb").state as DecimalType -(temperatureHysteresis)))
Code: Alles auswählen
2021-06-14 20:20:50.743 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'Rollo_auto-2' failed: Could not cast 23.58 °C to org.openhab.core.library.types.DecimalType; line 238, column 90, length 88 in Rollo_auto
Bei dem Regen und den Wolken bin ich mir auch nicht sicher ob das so passt. Auch die sind bei mir mit Einheit. Die Wolken werden z.B. mit "35 %" angezeigt, wenn man auf Analyse klickt jedoch mit "0.35" Beim Regen scheint es um den Faktor 1000 zu wenig sein. Sollte ich dort lieber auf Werte ohne Einheit umstellen?
Servus
-
- Beiträge: 60
- Registriert: 7. Mai 2021 19:11
Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen
Hallo,
Mein Problem mit dem folgenden Fehler ist nun behoben.
Hier der Auszug aus der openhab.log
Mein Problem mit dem folgenden Fehler ist nun behoben.
Allerdings taucht jetzt noch folgende Fehlermeldung auf. cupra6 (klick) hatte die auch schon, aber ich habe keine Lösung dazu gesehen.2021-04-28 20:31:32.741 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Verschattung beenden': cannot invoke method public abstract int java.lang.Number.intValue() on null
Hier der Teilcode "Verschattung beenden". Ich habe hier noch ein paar Diagnosemeldungen eingebaut um den Fehler zu finden.2021-06-13 20:19:31.469 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Verschattung beenden': Cannot assign a value in null context.
Code: Alles auswählen
//------------- Verschattung beenden -------------------
val shadingEnd = [GroupItem shutter |
val String logPrefix = "Verschattung deaktivieren - "
val Map<String, Number> targetHights = newHashMap (
"EG_Gaestezimmer_Rollo" -> 50,
"EG_Wohnzimmer_Rollo" -> 50,
"Jalousie_Wohnzimmer_3M1" -> 100,
// "Lamelle_Wohnzimmer_3M1" -> 50,
// "Jalousie_Esszimmer_West_4M1" -> 100,
// "Jalousie_Esszimmer_West_4M2" -> 100,
// "Jalousie_Esszimmer_Sued_4M3" -> 100,
// "Jalousie_Esszimmer_Sued_4M4" -> 100,
// "Lamelle_Esszimmer_West_4M1" -> 50,
// "Lamelle_Esszimmer_West_4M2" -> 50,
// "Lamelle_Esszimmer_Sued_4M3" -> 50,
// "Lamelle_Esszimmer_Sued_4M4" -> 50,
"Jalousie_Kueche_5M1" -> 50,
// "Lamelle_Kueche_5M1" -> 0,
"Rollo_OG_Bad_Osten" -> 50,
"Rollo_OG_Kind2_Sueden" -> 50,
"Rollo_OG_Kind2_Osten" -> 50,
"Rollo_OG_Buero" -> 50,
"Rollo_OG_Kind1_Westen" -> 45,
"Rollo_OG_Kind1_Sueden" -> 50
)
// Rollladen öffnen
logInfo("rules", logPrefix + "Rollladen werden geoeffnet")
logInfo("rules", logPrefix + "ShutterListe=" + shutter.allMembers )
shutter.allMembers.forEach[ blind |
// TEST 05.06.21
var Number TEST1 = blind.state as Number
var Number TEST2 = targetHights.get(blind.name.toString()).intValue
logInfo("rules", logPrefix + "TEST1: " + TEST1)
logInfo("rules", logPrefix + "TEST2: " + TEST2)
// TEST ENDE
if ((blind.state as Number) == targetHights.get(blind.name.toString()).intValue) {
logInfo("rules", logPrefix + "Oeffne Rollladen: " + blind.name.toString())
blind.sendCommand(UP)
//Pushnachricht versenden
// sendPushoverMessage(pushoverBuilder("Verschattung für (" + blind.name.toString() + ") beendet, Rollladen wird geöffnet."))
} else {
logInfo("rules", logPrefix + "Rollladen: (" + blind.name.toString() + ") wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.")
}
]
// Letzte Ausführung mit entsprechendem Zeitstempel belegen
AutoShading_End_last.postUpdate(now.toString())
//Variablen zurücksetzen
isActiveWest = false
isActiveEast = false
isActiveSouth = false
return true;
]
/* ------------- Verschattung RULES --------------------
Jemand eine Idee was den Fehler veursacht?2021-06-13 20:19:31.279 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rain false
2021-06-13 20:19:31.283 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rain2 0.0
2021-06-13 20:19:31.281 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung aktivieren - Verschattung (Rollläden) wird nicht ausgeführt, Elevation für das Beenden der Verschattung (22) ist groesser als aktuelle (8.556874205511525)
2021-06-13 20:19:31.288 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Clouds2 null
2021-06-13 20:19:31.297 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Clouds false
2021-06-13 20:19:31.308 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Temperatur false
2021-06-13 20:19:31.321 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Verschattung Rollläden beenden
2021-06-13 20:19:31.330 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen werden geoeffnet
2021-06-13 20:19:31.334 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - ShutterListe=[Jalousie_Kueche_5M1 (Type=RollershutterItem, State=100, Label=Jalousie, Category=rollershutter, Tags=[Rollershutter], Groups=[EG_Kueche, gRollos, g_EG_Rollos, gRollos_W, g_EG_Rollos_W, gShading]), Rollo_OG_Kind2_Osten (Type=RollershutterItem, State=54, Label=Rolladen Osten, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Kind2, gRollos, g_OG_Rollos, gRollos_O, g_OG_Rollos_O, gShading]), Rollo_OG_Kind2_Sueden (Type=RollershutterItem, State=50, Label=Rolladen Süden, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Kind2, gRollos, g_OG_Rollos, gRollos_S, g_OG_Rollos_S, gShading]), Rollo_OG_Bad_Osten (Type=RollershutterItem, State=0, Label=Rolladen Osten, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Bad, gRollos, g_OG_Rollos, gRollos_O, g_OG_Rollos_O, gShading]), Rollo_OG_Kind1_Sueden (Type=RollershutterItem, State=50, Label=Rolladen Süden, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Kind1, gRollos, g_OG_Rollos, gRollos_S, g_OG_Rollos_S, gShading]), EG_Gaestezimmer_Rollo (Type=RollershutterItem, State=0, Label=Rolladen, Category=rollershutter, Tags=[Rollershutter], Groups=[EG_Gaestezimmer, gRollos, g_EG_Rollos, gRollos_O, g_EG_Rollos_O, gShading]), Rollo_OG_Buero (Type=RollershutterItem, State=50, Label=Rolladen Süden, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Buero, gRollos, g_OG_Rollos, gRollos_S, g_OG_Rollos_S, gShading]), Jalousie_Wohnzimmer_3M1 (Type=RollershutterItem, State=100, Label=Jalousie Süden, Category=rollershutter, Tags=[Rollershutter], Groups=[EG_Wohnzimmer, gRollos, g_EG_Rollos, gRollos_S, g_EG_Rollos_S, gShading]), Rollo_OG_Kind1_Westen (Type=RollershutterItem, State=45, Label=Rolladen Westen, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Kind1, gRollos, g_OG_Rollos, gRollos_W, g_OG_Rollos_W, gShading]), EG_Wohnzimmer_Rollo (Type=RollershutterItem, State=46, Label=Rolladen Osten, Category=rollershutter, Tags=[Rollershutter], Groups=[EG_Wohnzimmer, gRollos, g_EG_Rollos, gRollos_O, g_EG_Rollos_O, gShading])]
2021-06-13 20:19:31.339 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 100
2021-06-13 20:19:31.341 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.345 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen: (Jalousie_Kueche_5M1) wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.
2021-06-13 20:19:31.348 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 54
2021-06-13 20:19:31.351 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.355 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen: (Rollo_OG_Kind2_Osten) wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.
2021-06-13 20:19:31.358 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 50
2021-06-13 20:19:31.360 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.364 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Oeffne Rollladen: Rollo_OG_Kind2_Sueden
2021-06-13 20:19:31.369 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 0
2021-06-13 20:19:31.372 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.377 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen: (Rollo_OG_Bad_Osten) wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.
2021-06-13 20:19:31.380 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 50
2021-06-13 20:19:31.383 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.389 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Oeffne Rollladen: Rollo_OG_Kind1_Sueden
2021-06-13 20:19:31.393 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 0
2021-06-13 20:19:31.396 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.402 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen: (EG_Gaestezimmer_Rollo) wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.
2021-06-13 20:19:31.410 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 50
2021-06-13 20:19:31.413 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.418 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Oeffne Rollladen: Rollo_OG_Buero
2021-06-13 20:19:31.433 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 100
2021-06-13 20:19:31.437 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 100
2021-06-13 20:19:31.442 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Oeffne Rollladen: Jalousie_Wohnzimmer_3M1
2021-06-13 20:19:31.446 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 45
2021-06-13 20:19:31.449 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 45
2021-06-13 20:19:31.453 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Oeffne Rollladen: Rollo_OG_Kind1_Westen
2021-06-13 20:19:31.459 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 46
2021-06-13 20:19:31.461 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.465 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen: (EG_Wohnzimmer_Rollo) wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.
2021-06-13 20:19:31.469 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Verschattung beenden': Cannot assign a value in null context.
-
- Beiträge: 317
- Registriert: 29. Okt 2020 19:53
Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen
Vielleicht kann openhab bei einem Rolladen den aktuellen Wert nicht ermitteln. Ich würde mal ein paar Rolläden aus der Gruppe nehmen, und dann schrittweise immer einen dazu.
Update:
Nein, ich seh grad, dass wohl alle Rolläden dabei waren, dann kann es eigentlich nur am Ende der Funktion sein.
Ich hab ja hier was anderes stehen, anstatt:
heißt es bei mir:
Ich nutze OH3
Update:
Nein, ich seh grad, dass wohl alle Rolläden dabei waren, dann kann es eigentlich nur am Ende der Funktion sein.
Ich hab ja hier was anderes stehen, anstatt:
Code: Alles auswählen
AutoShading_End_last.postUpdate(now.toString())
Code: Alles auswählen
AutoShading_End_last.postUpdate(new DateTimeType())
Servus
-
- Beiträge: 9
- Registriert: 3. Feb 2021 15:50
Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen
Hallo,
ich würde gerne noch einmal zu einem ähnlichen Thema um eure Unterstützung bitten.
Ich möchte meine Rollos abhängig von einem Helligkeitssensor und Temperatursensor in die Mittelposition (halb AUF bzw. 50%) fahren.
Dazu habe ich folgende Items:
- Helligkeitssensor (AnalogBlocks_NAQ4) (Werte von 20 lux bis 980 lux)
- Temperatursensor (NovelanLAD9Warmepumpe_Aussentemp) (Werte -°C bis max. 50°C)
- Rollo-Items für Mittelpositionen
RolloSpeisMittelpos_State
RolloKuecheWestMittelpos_State
RolloWoZiOstMittelpos_State
Zielsetzung wäre, eine Rule zu haben, die bewirkt, dass bei einer Helligkeit von 900 lux und einer Außentemperatur von größer 25°C die o.g. Mittelpos-Items angesteuert werden, so dass die Rollos halb zu fahren, um zu beschatten.
Super komfortabel wäre auch, zwei Slider oder Stepper zu haben, anhand derer ich die Schwellwerte in Bezug auf die Helligkeit und Außentemperatur je nach Bedarf variabel einstellen könnte.
Ich habe versucht, in OH3 eine neue Rule mit WHEN / THEN zu erstellen, aber ich glaube das passt so nicht, denn nichts passiert.
Anbei mal der Code.
Wichtig ist, dass falls die Rollos schon zu, als AB-gefahren wurden, diese dann geschlossen bleiben und nicht auf Mittelposition fahren.
Es wäre super, wenn ihr mir hierzu etwas weiterhelfen könntet.
Vielen Dank.
ich würde gerne noch einmal zu einem ähnlichen Thema um eure Unterstützung bitten.
Ich möchte meine Rollos abhängig von einem Helligkeitssensor und Temperatursensor in die Mittelposition (halb AUF bzw. 50%) fahren.
Dazu habe ich folgende Items:
- Helligkeitssensor (AnalogBlocks_NAQ4) (Werte von 20 lux bis 980 lux)
- Temperatursensor (NovelanLAD9Warmepumpe_Aussentemp) (Werte -°C bis max. 50°C)
- Rollo-Items für Mittelpositionen
RolloSpeisMittelpos_State
RolloKuecheWestMittelpos_State
RolloWoZiOstMittelpos_State
Zielsetzung wäre, eine Rule zu haben, die bewirkt, dass bei einer Helligkeit von 900 lux und einer Außentemperatur von größer 25°C die o.g. Mittelpos-Items angesteuert werden, so dass die Rollos halb zu fahren, um zu beschatten.
Super komfortabel wäre auch, zwei Slider oder Stepper zu haben, anhand derer ich die Schwellwerte in Bezug auf die Helligkeit und Außentemperatur je nach Bedarf variabel einstellen könnte.
Ich habe versucht, in OH3 eine neue Rule mit WHEN / THEN zu erstellen, aber ich glaube das passt so nicht, denn nichts passiert.
Anbei mal der Code.
Code: Alles auswählen
triggers:
- id: "1"
configuration:
itemName: AnalogBlocks_NAQ4
previousState: "930"
type: core.ItemStateChangeTrigger
conditions:
- inputs: {}
id: "5"
configuration:
itemName: NovelanLAD9Warmepumpe_Aussentemp
state: "25"
operator: ">"
type: core.ItemStateCondition
actions:
- inputs: {}
id: "2"
configuration:
itemName: RolloSpeisMittelpos_State
command: ON
type: core.ItemCommandAction
- inputs: {}
id: "3"
configuration:
itemName: RolloKuecheWestMittelpos_State
command: ON
type: core.ItemCommandAction
- inputs: {}
id: "4"
configuration:
itemName: RolloWoZiOstMittelpos_State
command: ON
type: core.ItemCommandAction
Wichtig ist, dass falls die Rollos schon zu, als AB-gefahren wurden, diese dann geschlossen bleiben und nicht auf Mittelposition fahren.
Es wäre super, wenn ihr mir hierzu etwas weiterhelfen könntet.
Vielen Dank.
-
- Beiträge: 60
- Registriert: 7. Mai 2021 19:11
Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen
Das kann eigentlich nicht sein, da es bei "AutoShading_Start_last.postUpdate(now.toString())" anscheinend funktioniert, da müsste ja das gleiche Problem auftreten. Auch verwende ich noch OH2.5Quautiputzli hat geschrieben: ↑17. Jun 2021 06:45 Update:
Nein, ich seh grad, dass wohl alle Rolläden dabei waren, dann kann es eigentlich nur am Ende der Funktion sein.
Ich hab ja hier was anderes stehen, anstatt:heißt es bei mir:Code: Alles auswählen
AutoShading_End_last.postUpdate(now.toString())
Ich nutze OH3Code: Alles auswählen
AutoShading_End_last.postUpdate(new DateTimeType())
Aber ich versuche es mal.
-
- Beiträge: 35
- Registriert: 4. Jan 2019 22:09
Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen
Hi,TomW80 hat geschrieben: ↑16. Jun 2021 20:40 Hallo,
Mein Problem mit dem folgenden Fehler ist nun behoben.
Allerdings taucht jetzt noch folgende Fehlermeldung auf. cupra6 (klick) hatte die auch schon, aber ich habe keine Lösung dazu gesehen.2021-04-28 20:31:32.741 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Verschattung beenden': cannot invoke method public abstract int java.lang.Number.intValue() on nullHier der Teilcode "Verschattung beenden". Ich habe hier noch ein paar Diagnosemeldungen eingebaut um den Fehler zu finden.2021-06-13 20:19:31.469 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Verschattung beenden': Cannot assign a value in null context.Hier der Auszug aus der openhab.logCode: Alles auswählen
//------------- Verschattung beenden ------------------- val shadingEnd = [GroupItem shutter | val String logPrefix = "Verschattung deaktivieren - " val Map<String, Number> targetHights = newHashMap ( "EG_Gaestezimmer_Rollo" -> 50, "EG_Wohnzimmer_Rollo" -> 50, "Jalousie_Wohnzimmer_3M1" -> 100, // "Lamelle_Wohnzimmer_3M1" -> 50, // "Jalousie_Esszimmer_West_4M1" -> 100, // "Jalousie_Esszimmer_West_4M2" -> 100, // "Jalousie_Esszimmer_Sued_4M3" -> 100, // "Jalousie_Esszimmer_Sued_4M4" -> 100, // "Lamelle_Esszimmer_West_4M1" -> 50, // "Lamelle_Esszimmer_West_4M2" -> 50, // "Lamelle_Esszimmer_Sued_4M3" -> 50, // "Lamelle_Esszimmer_Sued_4M4" -> 50, "Jalousie_Kueche_5M1" -> 50, // "Lamelle_Kueche_5M1" -> 0, "Rollo_OG_Bad_Osten" -> 50, "Rollo_OG_Kind2_Sueden" -> 50, "Rollo_OG_Kind2_Osten" -> 50, "Rollo_OG_Buero" -> 50, "Rollo_OG_Kind1_Westen" -> 45, "Rollo_OG_Kind1_Sueden" -> 50 ) // Rollladen öffnen logInfo("rules", logPrefix + "Rollladen werden geoeffnet") logInfo("rules", logPrefix + "ShutterListe=" + shutter.allMembers ) shutter.allMembers.forEach[ blind | // TEST 05.06.21 var Number TEST1 = blind.state as Number var Number TEST2 = targetHights.get(blind.name.toString()).intValue logInfo("rules", logPrefix + "TEST1: " + TEST1) logInfo("rules", logPrefix + "TEST2: " + TEST2) // TEST ENDE if ((blind.state as Number) == targetHights.get(blind.name.toString()).intValue) { logInfo("rules", logPrefix + "Oeffne Rollladen: " + blind.name.toString()) blind.sendCommand(UP) //Pushnachricht versenden // sendPushoverMessage(pushoverBuilder("Verschattung für (" + blind.name.toString() + ") beendet, Rollladen wird geöffnet.")) } else { logInfo("rules", logPrefix + "Rollladen: (" + blind.name.toString() + ") wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.") } ] // Letzte Ausführung mit entsprechendem Zeitstempel belegen AutoShading_End_last.postUpdate(now.toString()) //Variablen zurücksetzen isActiveWest = false isActiveEast = false isActiveSouth = false return true; ] /* ------------- Verschattung RULES --------------------
Jemand eine Idee was den Fehler veursacht?2021-06-13 20:19:31.279 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rain false
2021-06-13 20:19:31.283 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rain2 0.0
2021-06-13 20:19:31.281 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung aktivieren - Verschattung (Rollläden) wird nicht ausgeführt, Elevation für das Beenden der Verschattung (22) ist groesser als aktuelle (8.556874205511525)
2021-06-13 20:19:31.288 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Clouds2 null
2021-06-13 20:19:31.297 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Clouds false
2021-06-13 20:19:31.308 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Temperatur false
2021-06-13 20:19:31.321 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Verschattung Rollläden beenden
2021-06-13 20:19:31.330 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen werden geoeffnet
2021-06-13 20:19:31.334 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - ShutterListe=[Jalousie_Kueche_5M1 (Type=RollershutterItem, State=100, Label=Jalousie, Category=rollershutter, Tags=[Rollershutter], Groups=[EG_Kueche, gRollos, g_EG_Rollos, gRollos_W, g_EG_Rollos_W, gShading]), Rollo_OG_Kind2_Osten (Type=RollershutterItem, State=54, Label=Rolladen Osten, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Kind2, gRollos, g_OG_Rollos, gRollos_O, g_OG_Rollos_O, gShading]), Rollo_OG_Kind2_Sueden (Type=RollershutterItem, State=50, Label=Rolladen Süden, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Kind2, gRollos, g_OG_Rollos, gRollos_S, g_OG_Rollos_S, gShading]), Rollo_OG_Bad_Osten (Type=RollershutterItem, State=0, Label=Rolladen Osten, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Bad, gRollos, g_OG_Rollos, gRollos_O, g_OG_Rollos_O, gShading]), Rollo_OG_Kind1_Sueden (Type=RollershutterItem, State=50, Label=Rolladen Süden, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Kind1, gRollos, g_OG_Rollos, gRollos_S, g_OG_Rollos_S, gShading]), EG_Gaestezimmer_Rollo (Type=RollershutterItem, State=0, Label=Rolladen, Category=rollershutter, Tags=[Rollershutter], Groups=[EG_Gaestezimmer, gRollos, g_EG_Rollos, gRollos_O, g_EG_Rollos_O, gShading]), Rollo_OG_Buero (Type=RollershutterItem, State=50, Label=Rolladen Süden, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Buero, gRollos, g_OG_Rollos, gRollos_S, g_OG_Rollos_S, gShading]), Jalousie_Wohnzimmer_3M1 (Type=RollershutterItem, State=100, Label=Jalousie Süden, Category=rollershutter, Tags=[Rollershutter], Groups=[EG_Wohnzimmer, gRollos, g_EG_Rollos, gRollos_S, g_EG_Rollos_S, gShading]), Rollo_OG_Kind1_Westen (Type=RollershutterItem, State=45, Label=Rolladen Westen, Category=rollershutter, Tags=[Rollershutter], Groups=[OG_Kind1, gRollos, g_OG_Rollos, gRollos_W, g_OG_Rollos_W, gShading]), EG_Wohnzimmer_Rollo (Type=RollershutterItem, State=46, Label=Rolladen Osten, Category=rollershutter, Tags=[Rollershutter], Groups=[EG_Wohnzimmer, gRollos, g_EG_Rollos, gRollos_O, g_EG_Rollos_O, gShading])]
2021-06-13 20:19:31.339 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 100
2021-06-13 20:19:31.341 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.345 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen: (Jalousie_Kueche_5M1) wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.
2021-06-13 20:19:31.348 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 54
2021-06-13 20:19:31.351 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.355 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen: (Rollo_OG_Kind2_Osten) wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.
2021-06-13 20:19:31.358 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 50
2021-06-13 20:19:31.360 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.364 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Oeffne Rollladen: Rollo_OG_Kind2_Sueden
2021-06-13 20:19:31.369 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 0
2021-06-13 20:19:31.372 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.377 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen: (Rollo_OG_Bad_Osten) wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.
2021-06-13 20:19:31.380 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 50
2021-06-13 20:19:31.383 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.389 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Oeffne Rollladen: Rollo_OG_Kind1_Sueden
2021-06-13 20:19:31.393 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 0
2021-06-13 20:19:31.396 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.402 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen: (EG_Gaestezimmer_Rollo) wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.
2021-06-13 20:19:31.410 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 50
2021-06-13 20:19:31.413 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.418 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Oeffne Rollladen: Rollo_OG_Buero
2021-06-13 20:19:31.433 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 100
2021-06-13 20:19:31.437 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 100
2021-06-13 20:19:31.442 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Oeffne Rollladen: Jalousie_Wohnzimmer_3M1
2021-06-13 20:19:31.446 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 45
2021-06-13 20:19:31.449 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 45
2021-06-13 20:19:31.453 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Oeffne Rollladen: Rollo_OG_Kind1_Westen
2021-06-13 20:19:31.459 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST1: 46
2021-06-13 20:19:31.461 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - TEST2: 50
2021-06-13 20:19:31.465 [INFO ] [eclipse.smarthome.model.script.rules] - Verschattung deaktivieren - Rollladen: (EG_Wohnzimmer_Rollo) wird nicht geoeffnet, da dieser zwischenzeitlich manuell verändert wurde.
2021-06-13 20:19:31.469 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Verschattung beenden': Cannot assign a value in null context.
also, die 1. Fehlermeldung:
Rule 'Verschattung beenden': cannot invoke method public abstract int java.lang.Number.intValue() on null
kommt bei mir dann, wenn ich die einzelne Rolllos in der Map auskommentiere bzw. nicht anspreche.
D.h. mal angenommen ich habe eine Gruppe gRollladenWest. Zu dieser Gruppe gehören 3 Rollladen:
Shutter_EG_Office
Shutter_EG_Kitchen
Shutter_EG_Floor
Sobald ich "nur" einen Rollladen aus dieser Gruppe aus der Map herausnehme, kommt diese Fehlermeldung:
Rule 'Verschattung beenden': cannot invoke method public abstract int java.lang.Number.intValue() on null
Die 2. Fehlermeldung: "Cannot assign a value in null context" wird verursacht durch folgende Zeilen:
//Variablen zurücksetzen
isActiveWest = false
isActiveEast = false
isActiveSouth = false
Ich hab momentan keine Lösung dafür, aber vlt. die Profis hier.
Ich hab auch über weitere Variablen nachgedacht, z.B. isDeActiveWest = false, aber vlt. kann man das anders lösen.
Ich habe für jede Hausseite ein extra if-Statement erstellt, die genauso wie beim Runterfahren, beim wieder Hochfahren einzeln getriggert werden.
Zuletzt geändert von cupra6 am 20. Jun 2021 11:26, insgesamt 1-mal geändert.
- udo1toni
- Beiträge: 13859
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen
Die Fehlermeldung ist vollkommen logisch. Die Variablen sind in dem Kontext der Funktion überhaupt nicht definiert (selbst wenn sie global definiert sein sollten - das ist nicht klar - ist der Kontext einer Funktion so weit ich weiß nicht vererbt, globale Variablen sind da schlicht nicht vorhanden.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 60
- Registriert: 7. Mai 2021 19:11
Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen
Die Variablen sind am Anfang der Rule definiert.udo1toni hat geschrieben: ↑18. Jun 2021 19:31 Die Fehlermeldung ist vollkommen logisch. Die Variablen sind in dem Kontext der Funktion überhaupt nicht definiert (selbst wenn sie global definiert sein sollten - das ist nicht klar - ist der Kontext einer Funktion so weit ich weiß nicht vererbt, globale Variablen sind da schlicht nicht vorhanden.
Code: Alles auswählen
import java.util.Map
var Boolean message = true
val String filename = "shutter.rules"
// Values und Variablen für die Verschattung
//val Number blindClosed = 100
//val Number blindOpen = 0
//val Number blindTranslucent = 35
var Number closingAzimuth_west = 181
var Number closingAzimuth_south = 111
var Number closingAzimuth_east = 65
var Number closingCloudiness = 20
val Number cloudHysteresis = 45 //die Mindestbewölkung in der letzten Stunde
var Number openingTemperature = 22
var Number closingTemperature = 24
val Number temperatureHysteresis = 4 //Temperaturabfall von min. 4 Grad in der letzten Stunde
val Number minPrecip = 5 //die Mindestmenge an Regen in der letzten Stunde
var Boolean isActiveWest = false
var Boolean isActiveEast = false
var Boolean isActiveSouth = false
var Boolean isActiveBalkon = false
Gruß Tom
- udo1toni
- Beiträge: 13859
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen
Du darfst Die Variablen nicht innerhalb der Funktion nutzen.
Im Übrigen sind sie vermutlich eher vor der ersten Rule definiert, nicht am Anfang der Rule (eine Rule beginnt mit dem Schlüsselwort rule, es können mehrere Rules in einer rules-Datei gespeichert werden)
Im Übrigen sind sie vermutlich eher vor der ersten Rule definiert, nicht am Anfang der Rule (eine Rule beginnt mit dem Schlüsselwort rule, es können mehrere Rules in einer rules-Datei gespeichert werden)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet