Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Quautiputzli
Beiträge: 317
Registriert: 29. Okt 2020 19:53
Answers: 2

Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen

Beitrag von Quautiputzli »

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.
Servus

Quautiputzli
Beiträge: 317
Registriert: 29. Okt 2020 19:53
Answers: 2

Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen

Beitrag von Quautiputzli »

Bin mir nicht ganz sicher, ob ich das richtig mache.

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))
auf:

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))
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

Code: Alles auswählen

val Boolean isTemperature = ((Wetter_Aussentemperatur.state as Number).floatValue < (Wetter_Aussentemperatur.minimumSince(now.minusHours(1), "influxdb").state as DecimalType -(temperatureHysteresis)))
gibt es diesen Fehler:

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
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?
Servus

TomW80
Beiträge: 60
Registriert: 7. Mai 2021 19:11

Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen

Beitrag von TomW80 »

Hallo,

Mein Problem mit dem folgenden Fehler ist nun behoben.
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
Allerdings taucht jetzt noch folgende Fehlermeldung auf. cupra6 (klick) hatte die auch schon, aber ich habe keine Lösung dazu gesehen.
2021-06-13 20:19:31.469 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Verschattung beenden': Cannot assign a value in null context.
Hier der Teilcode "Verschattung beenden". Ich habe hier noch ein paar Diagnosemeldungen eingebaut um den Fehler zu finden.

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 --------------------
Hier der Auszug aus der openhab.log
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.
Jemand eine Idee was den Fehler veursacht?

Quautiputzli
Beiträge: 317
Registriert: 29. Okt 2020 19:53
Answers: 2

Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen

Beitrag von Quautiputzli »

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:

Code: Alles auswählen

AutoShading_End_last.postUpdate(now.toString())
heißt es bei mir:

Code: Alles auswählen

AutoShading_End_last.postUpdate(new DateTimeType())
Ich nutze OH3
Servus

Noobie02
Beiträge: 9
Registriert: 3. Feb 2021 15:50

Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen

Beitrag von Noobie02 »

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.

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.

TomW80
Beiträge: 60
Registriert: 7. Mai 2021 19:11

Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen

Beitrag von TomW80 »

Quautiputzli 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:

Code: Alles auswählen

AutoShading_End_last.postUpdate(now.toString())
heißt es bei mir:

Code: Alles auswählen

AutoShading_End_last.postUpdate(new DateTimeType())
Ich nutze OH3
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.5
Aber ich versuche es mal.

cupra6
Beiträge: 35
Registriert: 4. Jan 2019 22:09

Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen

Beitrag von cupra6 »

TomW80 hat geschrieben: 16. Jun 2021 20:40 Hallo,

Mein Problem mit dem folgenden Fehler ist nun behoben.
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
Allerdings taucht jetzt noch folgende Fehlermeldung auf. cupra6 (klick) hatte die auch schon, aber ich habe keine Lösung dazu gesehen.
2021-06-13 20:19:31.469 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Verschattung beenden': Cannot assign a value in null context.
Hier der Teilcode "Verschattung beenden". Ich habe hier noch ein paar Diagnosemeldungen eingebaut um den Fehler zu finden.

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 --------------------
Hier der Auszug aus der openhab.log
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.
Jemand eine Idee was den Fehler veursacht?
Hi,

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.

Benutzeravatar
udo1toni
Beiträge: 13859
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen

Beitrag von udo1toni »

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

TomW80
Beiträge: 60
Registriert: 7. Mai 2021 19:11

Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen

Beitrag von TomW80 »

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.
Die Variablen sind am Anfang der Rule definiert.

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
Gibt es eine Möglichkeit das Problem zu beheben, oder soll ich es einfach ignorieren?

Gruß Tom

Benutzeravatar
udo1toni
Beiträge: 13859
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Elektrischen Rolladen abhängig von Sonnenstand und Wetter steuern lassen

Beitrag von udo1toni »

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)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten