Regel Sonnenaufgang mit Zeitverzögerung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
PeterA
Beiträge: 1052
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von PeterA »

Hast Du denn den Rolladen über die Shelly App Kalibriert?
Nur dann geht das anfahren auf eine bestimmte Position
- OpenHab 2.4
#PWRUP

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Wohnort: bei Mannheim

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von Joe »

Hi Peter,
ja Du ich kann alle Positionen über OH anfahren das ist nicht das Problem. Mein Problem ist die Regel mit Timer die nicht funktioniert.
Ich mache etwas falsch aber finde den Fehler nicht.

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Wohnort: bei Mannheim

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von Joe »

Hi habe gestern Abend nochmals versucht den Timer mit in die Steuerung einzubinden, mir fallen jetzt bald die Haare aus....
Habe ich in OH etwas übersehen, muss ich noch was installieren oder muss etwas umgestellt werden ich finde die Lösung nicht.

Code: Alles auswählen

var Timer tRollladen = null

rule "Rollladen_2100" 
  when        
    Channel 'astro:sun:local:set#event' triggered START //Sonnenuntergang 21:00 Uhr
  then
      logInfo("shutter","Rule getriggert")
      tRollladen?.cancel
      tRollladen=createTimer(now.plusMinutes(5), [|    //Sonnenuntergang plus x-Minuten
        logInfo("shutter","Rollladen fahren")
        Studio_1_Pro.sendCommand(11) 		       //Rollladen auf 11%
      ]) 
end

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von sihui »

Joe hat geschrieben: 16. Mai 2019 07:50 ich finde die Lösung nicht.
Welche logInfo bekommst du denn in deinem Log? Hat Astro getriggert? Oder läuft nur der Timer nicht?
Es gab mal einen Bug in openHAB, da musste hinter der eckigen Klammer ein Leerzeichen eingefügt werden, ich habe den Github Issue nicht weiter verfolgt aber einen Versuch wäre es wert:

Code: Alles auswählen

tRollladen=createTimer(now.plusMinutes(5), [ |
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Wohnort: bei Mannheim

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von Joe »

Hi Sihui,
danke für den Tipp mit dem Leerzeichen, ich werde das gleich heute Abend inkl. Log-File mal testen.

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Wohnort: bei Mannheim

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von Joe »

Hi zusammen,
so gestern Abend hat die Regel funktioniert allerdings nur 1x. Der Log dazu schaut wie folgt aus:
beim zweiten Versuch 5 Min. später hat sich nichts mehr getan.
2019-05-17 06:44:29.604 [WARN ] [eneric.internal.generic.ChannelState] - Command 'stop' not supported by type 'RollershutterValue': null
In der MAP habe ich jedoch alle Kommandos beschrieben.

Code: Alles auswählen

0=close
100=open
stop=stop
99=stop

ON=on
OFF=off
off=OFF
on=ON

UP=up
up=UP
DOWN=down
down=DOWN

OPEN=open
CLOSE=close
open=OPEN
close=CLOSE
Leider kann ich keine Dateien mit Bildern mehr anhängen (Das Kontingent für Dateianhänge ist bereits vollständig ausgenutzt.) super als ob es nicht genug Probleme gibt das jetzt auch noch :evil:
Zuletzt geändert von Joe am 17. Mai 2019 07:44, insgesamt 1-mal geändert.

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von sihui »

Joe hat geschrieben: 17. Mai 2019 07:34 beim zweiten Versuch 5 Min. später hat sich nichts mehr getan.
Jetzt weißt du aber das nicht der Timer das Problem ist sondern die Konfiguration deines Items.
Joe hat geschrieben: 17. Mai 2019 07:34 Leider kann ich keine Dateien mit Bildern mehr, anhängen.
Alternativ kann man einen Bilderdienst nutzen, z.B. https://picr.de/
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von peter-pan »

Zum Testen deiner Regel benutzt du am besten ein "Dummy-Item.Z.B.:

Code: Alles auswählen

Switch      Dummy1                                "Testschalter Dummy1 [%s]"
da der Sonnenuntergang ja nur einmal am Tag ist. Den Schalter kannst du dann einfach durch auskommentieren, wieder stilllegen.

Dann sieht deine Regel in etwa so aus:

Code: Alles auswählen

var Timer tRollladen = null

rule "Rollladen_2100" 
  when
    Item Dummy1 changed to ON or        
    Channel 'astro:sun:local:set#event' triggered START //Sonnenuntergang 21:00 Uhr
  then
      logInfo("shutter","Rule getriggert")
      tRollladen?.cancel
      tRollladen=createTimer(now.plusMinutes(5), [|    //Sonnenuntergang plus x-Minuten
        logInfo("shutter","Rollladen fahren")
        Studio_1_Pro.sendCommand(11) 		       //Rollladen auf 11%
      ]) 
end
Was das positionieren deine Rolladens mit dem Shelly2 anbelangt, schaust du am besten hier im Forum, da gibt es bestimmt schon Lösungen. Evtl. hilft hier ein zusätzliches Dimmer-Item für den Shelly. Ich denke, dass @Peter Aschinger oder @udo1toni dazu was sagen können.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Wohnort: bei Mannheim

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von Joe »

Hi Peter,
hat soweit gut funktioniert.
Ich habe jetzt die Regeln mit unterschiedlichen Zeiten zum hochfahren des Rollos geschalten.
Die erste und zweit Regel funktioniert ohne Probleme, sobald jedoch die 3 starten sollte kommt nachfolgende Fehlermeldung im Log.

Code: Alles auswählen

2019-05-18 08:39:00.970 [INFO ] [lipse.smarthome.model.script.shutter] - ********Rollladen fahren********

2019-05-18 08:39:00.975 [ERROR] [org.quartz.core.JobRunShell         ] - Job DEFAULT.2019-05-18T08:39:00.967+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {

  logInfo(<XStringLiteralImpl>,<XStringLiteralImpl>)

  <XFeatureCallImplCustom>.sendCommand(<XNumberLiteralImpl>)

  sendTelegram(<XStringLiteralImpl>,<XStringLiteralImpl>)

} ] threw an unhandled Exception: 

java.lang.NullPointerException: null

	at org.eclipse.smarthome.model.script.engine.ScriptError.<init>(ScriptError.java:66) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:140) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:902) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:865) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:224) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluateArgumentExpressions(XbaseInterpreter.java:1116) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1046) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:992) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:772) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:220) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:447) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:228) ~[?:?]

	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:204) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:190) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) ~[?:?]

	at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) ~[?:?]

	at com.sun.proxy.$Proxy188.apply(Unknown Source) ~[?:?]

	at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:49) ~[?:?]

	at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]

	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [107:org.eclipse.smarthome.core.scheduler:0.10.0.oh240]
Sag Dir der Fehler etwas?

Benutzeravatar
Joe
Beiträge: 200
Registriert: 10. Okt 2018 12:22
Wohnort: bei Mannheim

Re: Regel Sonnenaufgang mit Zeitverzögerung

Beitrag von Joe »

anbei nochmals die Regeln für den ganzen Tag.

Gib es eine Möglichkeit die Regeln etwas zu komprimieren, da ich ca. 13 Rollos habe die ich steuern möchte wir das etwas unübersichtlich.
Hat jemand eine Idee für mich?

Code: Alles auswählen

var Timer tRollo = null                                 //Timer zurückgesetzt

rule "Studio_Sonnenaufgang_80" 
  when       
    Channel 'astro:sun:local:rise#event' triggered START      //Sonnenaufgang ca. 5:40 Uhr
  then
        logInfo("shutter","********Rule getriggert********")  //schreibe Log Info
      tRollo?.cancel
      tRollo=createTimer(now.plusMinutes(60), [|        //Sonnenaufgang plus 60-Minuten (ca. 6:40 Uhr)
        logInfo("shutter","********Rollladen fahren********") //schreibe Log Info
        Studio_1_Pro.sendCommand(80) 		                      //Rollladen auf 80% geschlossen
        sendTelegram("bot1", "Studio Rollo 80% geschlossen")  
      ]) 
end

rule "Studio_Sonnenaufgang_40" 
  when     
    Channel 'astro:sun:local:rise#event' triggered START      //Sonnenaufgang ca. 5:40 Uhr
  then
        logInfo("shutter","********Rule getriggert********")  //schreibe Log Info
      tRollo?.cancel
      tRollo=createTimer(now.plusMinutes(120), [|       //Sonnenaufgang plus 120-Minuten (ca. 7:40 Uhr)
        logInfo("shutter","********Rollladen fahren********") //schreibe Log Info
        Studio_1_Pro.sendCommand(40) 		                      //Rollladen auf 40% geschlossen
        sendTelegram("bot1", "Studio Rollo 40% geschlossen")  
end

rule "Studio_Sonnenaufgang_0" 
  when      
    Channel 'astro:sun:local:rise#event' triggered START      //Sonnenaufgang ca. 5:40 Uhr
  then
        logInfo("shutter","********Rule getriggert********")  //schreibe Log Info
      tRollo?.cancel
      tRollo=createTimer(now.plusMinutes(240), [|       //Sonnenaufgang plus 120-Minuten (ca.9:40)
        logInfo("shutter","********Rollladen fahren********") //schreibe Log Info
        Studio_1_Pro.sendCommand(0) 		                      //Rollladen zu 2% offfen
        sendTelegram("bot1", "Studio Rollo zu 0% offen")     
      ]) 
end

rule "Studio_Sonnenuntergang_50" 
  when     
    Channel 'astro:sun:local:set#event' triggered START         //Sonnenuntergang ca. 21:00 Uhr
  then
        logInfo("shutter","********Rule getriggert********")    //schreibe Log Info
      tRollo?.cancel
      tRollo=createTimer(now.plusMinutes(0), [|           //Sonnenuntergang plus 0-Minuten
        logInfo("shutter","********Rollladen fahren********")   //schreibe Log Info
        Studio_1_Pro.sendCommand(50) 		                        //Rollladen zu 50% geschlossen
        sendTelegram("bot1", "Studio Rollo zu 50% geschlossen") 
      ]) 
end

rule "Studio_Sonnenuntergang_100" 
  when      
    Channel 'astro:sun:local:set#event' triggered START          //Sonnenuntergang ca. 21:00 Uhr
  then
        logInfo("shutter","********Rule getriggert********")     //schreibe Log Info
      tRollo?.cancel
      tRollo=createTimer(now.plusMinutes(50), [|           //Sonnenuntergang plus 90-Minuten
        logInfo("shutter","********Rollladen fahren********")    //schreibe Log Info
        Studio_1_Pro.sendCommand(99) 		                         //Rollladen zu 50% geschlossen
        sendTelegram("bot1", "Studio Rollo zu 100% geschlossen") 
      ]) 
end

Möglicherweise kommt aufgrund der Anzahl an Regeln dieser Fehler, heute morgen ging zum Beispiel nicht mehr der Rollo war immer noch unten :-(

Antworten