Anfänger braucht hilfe mit timer bzw. Zeitverzögerung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
canstar
Beiträge: 14
Registriert: 11. Jan 2021 22:04
Answers: 0

Anfänger braucht hilfe mit timer bzw. Zeitverzögerung

Beitrag von canstar »

Hi,

ich bin blutiger Anfänger mit OpenHab und besitze leider auch nur wenig Programmierkenntnisse, will mich da aber reinfuchsen :)

Nun wollte ich gerne den Rolladen (mit Shelly 2.5) an einem Fenster (mit Shelly Window Sensor) nach 10min herunterfahren lassen, damit nicht zu lange gelüftet wird.

Leider komme ich mit dem timer nicht weiter. Ich habe eine Rule, die ein Script auslöst, wenn der Sensor OPEN meldet, leider nur sofort und wenn ich versuche einen Timer einzufügen, scheint das script nicht mehr zu laufen, denn es passiert nix nach der angegebenen Timer Zeit.
Hier meine Rule die funktioniert:

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: DWsensor
      state: OPEN
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/javascript
      script: >-
        	events.sendCommand('rolloBad_Steuerung0offen100geschlossen', '100') 
    type: script.ScriptAction
Mit einem eingefügten Timer wie folgt funktioniert es nicht mehr:

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: DWsensor
      state: OPEN
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/javascript
      script: >
        
        Timer.createTimer(now.plusMinutes(10) [|
        	events.sendCommand('rolloBad_Steuerung0offen100geschlossen', '100') ]
    type: script.ScriptAction
Habe auch schon diverse optionen für das Timer command durchprobiert, leider bisher alles ohne Erfolg. Ich hoffe hier kann mir jemand helfen.

Es gibt zwar viele Anleitungen und Hilfestellungen, allerdings bezieht sich davon vieles auf OpenHab2 und ist (anscheinend) nicht so einfach auf OH3, welches ich auf einem Raspberry4 laufen habe, anzuwenden

Vielen Dank bereits und viele Grüße
canstar

ThomasW
Beiträge: 33
Registriert: 9. Jan 2021 16:12
Answers: 1

Re: Anfänger braucht hilfe mit timer bzw. Zeitverzögerung

Beitrag von ThomasW »

Hey, versuche es mal indem du das script mit der Rule DSL erstellst und dann folgendes benutzt

Code: Alles auswählen

createTimer(now.plusMinutes(10),[| 
rolloBad_Steuerung0offen100geschlossen.sendCommand(100) 
])
OH3 auf RPI4,
Heizungssteuerung: Fritz DECT,
Zigbee: Conbee2 über Phoscon-GW: Aqara Opple Schalter, Aqara Temperatursensoren, Aqara Fenstersensoren, Aqara Aktoren, IKEA Lichter
Astro Binding
DWDUnwetter Binding
OpenWeatherMap Binding
FritzBox TR 064 Binding
iRobot Binding
Telegramm Binding für Benachrichtigungen und Steuerung von unterwegs
Rolladensteuerung: Rademacher DuoFern über HTTP Binding

canstar
Beiträge: 14
Registriert: 11. Jan 2021 22:04
Answers: 0

Re: Anfänger braucht hilfe mit timer bzw. Zeitverzögerung

Beitrag von canstar »

@ThomasW super, vielen Dank, das klappt!

Die erste Frage die sich mir daraus stellt ist natürlich: Warum? Was macht dabei den unterschied?

Und die zweite Frage natürlich: Wie kann ich es umgehen, dass der Rolladen nach Ablauf des Timers herunterfährt obwohl ich das Fenster bereits wieder geschlossen habe? Für "Rolladen hoch wenn Fenster" zu habe ich eine andere Regel, wobei sich sicherlich auch beides geschickter in einer bewerkstelligen lässt. Aber wie gesagt, ich stecke noch in den Kinderschuhen ;)

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Anfänger braucht hilfe mit timer bzw. Zeitverzögerung

Beitrag von Darkwin101 »

Weil ein einmal angestoßener Timer abläuft und das ausführt was du ihm gesagt hast eine Änderung des Status des startenden Timers ändert daran erstmal nichts außer du baust das mit in deine Rule ein.
Also etwa im Grundprinzip wenn Status Fenster Status wird geändert.
Wenn Fenster Status Offen dann starte Timer nach Ablauf mache XY
Wenn Fenster Status geschlossen breche eventuell gestartete Timer ab
Dazu muss der Timer aber Global definiert werden und einen eindeutigen Namen bekommen ich kann die leider nicht mitteilen wie das definieren eines globalen Timer über die UI funktioniert. Darum benutzen viele noch die Textfiles um sowas zu erledigen

canstar
Beiträge: 14
Registriert: 11. Jan 2021 22:04
Answers: 0

Re: Anfänger braucht hilfe mit timer bzw. Zeitverzögerung

Beitrag von canstar »

@Darkwin101, das klingt logisch.

Ich denke ich könnte einfach nach Ablauf des Timers nochmals prüfen, ob das Fenster offen ist oder nicht. Wenn ja, dann Rolladen runter, wenn nein, dann einfach nichts weiter unternehmen.

Damit würde ich mir auch die extra Rule fürs öffnen sparen!

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Anfänger braucht hilfe mit timer bzw. Zeitverzögerung

Beitrag von Darkwin101 »

Ja das geht matürlich


Gesendet von iPad mit Tapatalk

canstar
Beiträge: 14
Registriert: 11. Jan 2021 22:04
Answers: 0

Re: Anfänger braucht hilfe mit timer bzw. Zeitverzögerung

Beitrag von canstar »

Ohne es jetzt testen zu können, sollte eine der beiden Optionen funktionieren:

Code: Alles auswählen

createTimer(now.plusMinutes(10),[| 
     if FenstersensorBad_Kontakt.getState() == CLOSED {}
     else rollobad_Steuerung0offen100geschlossen.sendCommand(DOWN) 
])
oder

Code: Alles auswählen

createTimer(now.plusMinutes(10),[| 
     if FenstersensorBad_Kontakt.getState(CLOSED) {}
     else rollobad_Steuerung0offen100geschlossen.sendCommand(DOWN) 
])
oder ist beides total verkehrt?

ThomasW
Beiträge: 33
Registriert: 9. Jan 2021 16:12
Answers: 1

Re: Anfänger braucht hilfe mit timer bzw. Zeitverzögerung

Beitrag von ThomasW »

Das sieht schonmal brauchbar aus wenn du mit ungleich CLOSED arbeitest kannst du dir den else teil sparen

Code: Alles auswählen

createTimer(now.plusMinutes(10),[| 
     if (FenstersensorBad_Kontakt.getState() != "CLOSED") {
     rollobad_Steuerung0offen100geschlossen.sendCommand(DOWN) }
])
OH3 auf RPI4,
Heizungssteuerung: Fritz DECT,
Zigbee: Conbee2 über Phoscon-GW: Aqara Opple Schalter, Aqara Temperatursensoren, Aqara Fenstersensoren, Aqara Aktoren, IKEA Lichter
Astro Binding
DWDUnwetter Binding
OpenWeatherMap Binding
FritzBox TR 064 Binding
iRobot Binding
Telegramm Binding für Benachrichtigungen und Steuerung von unterwegs
Rolladensteuerung: Rademacher DuoFern über HTTP Binding

canstar
Beiträge: 14
Registriert: 11. Jan 2021 22:04
Answers: 0

Re: Anfänger braucht hilfe mit timer bzw. Zeitverzögerung

Beitrag von canstar »

Hi,

ich hatte hier gestern totalen quatsch geschrieben. Also es funktioniert leider noch nicht. Sobald der timer abgelaufen ist, fährt das Rollo runter. Egal, ob das Fenster bereits wieder geschlossen ist oder nicht :(

Edit2:
Ich glaub, ich hab den Fehler gefunden! Mit CLOSED anstatt "CLOSED" scheint es zu funktionieren!

Antworten