Zeiten rechnen (Delay) in Regeln

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
AndreM77
Beiträge: 127
Registriert: 2. Feb 2021 21:31
Answers: 0

Zeiten rechnen (Delay) in Regeln

Beitrag von AndreM77 »

Hi,

ich möchte 30 Minuten Sonnenuntergang die Dachfensterrolladen schließen. Wie bringe ich das der Regel bei.

Zum Sonnenuntergang selbst geht es.

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      thingUID: astro:sun:61479
      event: START
      channelUID: astro:sun:61479:civilDusk#event
    type: core.ChannelEventTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: gDachrolloPosition
      command: DOWN
    type: core.ItemCommandAction
Aber wie rechne ich 30 Minuten drauf? Hilfsitem = Sonnenuntergang + 30 Minuten und dann ist das Hilfsitem der Trigger? Dann muss ich das Hilfsitem ja aller 24h aktualisieren. Klingt irgendwie umständlich. Geht es auch smarter?

Danke!

Grüße
André
von BOP » 14. Sep 2021 17:31
AndreM77 hat geschrieben: 14. Sep 2021 08:12 Wie geht das mit den Stufen beim civildusk? Wo kann man mehr dazu lesen?
Ich verweise mal ganz stumpf auf:
https://www.timeanddate.de/astronomie/daemmerung-phasen

Zu Udos Option 1:
Astro1.jpg
Astro2.jpg
Gehe zur vollständigen Antwort
--
Connectivity: Z-WAVE, TCP/IP, Velux KLF200, Hue Bridge und IO-Homecontrol
Backend: openHAB 4.0.2 im Docker Container auf QNAP NAS
UI: HABPanel auf Amazon Fire 8

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

Re: Zeiten rechnen (Delay) in Regeln

Beitrag von udo1toni »

Muss es wirklich immer exakt 30 Minuten sein?

Option 1: setze ein Offset im Channel set#event (das ist Sonnenuntergang)
Option 2: nutze andere Channel (civilDusk -> bürgerliche Dämmerung, nauticDusk -> Nautische Dämmerung. astroDusk -> Astronomische Dämmerung).
Die einzelnen Stufen entsprechen 0°, -6°, -12° und -18° Höhenlinie der Sonne. (Diese Variante kann auch mit Option 1 kombiniert werden.)
Option 3: nutze direkt den Höhenwinkel (elevation).

Es ist hingegen keine Option, die Uhrzeit auszurechnen und in ein Item zu schreiben, denn dann müsstest Du ständig eine Rule triggern, die prüft, ob der Zeitpunkt überschritten wurde. Ein Item kann nur dann eine Rule triggern, wenn es ein Update oder eine Command erhält. Beim Update kann man noch unterscheiden, ob es sich um eine Werteänderung handelt.
Die event Channel werden vom Binding bereit gestellt. die werden als Timer im Scheduler angelegt, wobei die Zeitpunkte der Ausführung vom Binding berechnet werden.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

AndreM77
Beiträge: 127
Registriert: 2. Feb 2021 21:31
Answers: 0

Re: Zeiten rechnen (Delay) in Regeln

Beitrag von AndreM77 »

Nein, dass wäre sogar besser. Mir geht es letztlich nur darum, die Rollo's erst zu schließen, wenn es dunkel ist.

Wie geht das mit den Stufen beim civildusk? Wo kann man mehr dazu lesen?

Danke & Grüße
--
Connectivity: Z-WAVE, TCP/IP, Velux KLF200, Hue Bridge und IO-Homecontrol
Backend: openHAB 4.0.2 im Docker Container auf QNAP NAS
UI: HABPanel auf Amazon Fire 8

ubi
Beiträge: 7
Registriert: 3. Sep 2019 13:27
Answers: 0

Re: Zeiten rechnen (Delay) in Regeln

Beitrag von ubi »

Ich habe das so gelöst:


Da wird nach erreichen von Sonnenstand ein Timer gestartet und dann Rolladen heruntergefahren.

Code: Alles auswählen

rule "Rolladen Abends RUnterfahren nach Sonnenstand"
when
    Item Tageszeit_dummy changed 

then
    if (!(Tageszeit_dummy.state instanceof Number)) {        return;    }
    if(Tageszeit_dummy.state as Number == 4 )
    if (timer === null) {
            timer = createTimer(now.plusSeconds(900), [ |
                logInfo("Rolladen TImer", "Started fuer 15 min")
                timer = null  // Cancels the timer 1 when run out
                {sendCommand(Rolladen_Gruppe, 100) }
               
     ])
     
      }        
end

Tagestände sind im Tageszeit_dummy item per rule definiert und werden per rule upgedatet:

Code: Alles auswählen

rule "Sonnenaufgang"
when
    Channel 'astro:sun:home:rise#event' triggered START
then
    Tageszeit_dummy.postUpdate(1)
end

rule "Tageslicht"
when
    Channel 'astro:sun:home:daylight#event' triggered START
then
    Tageszeit_dummy.postUpdate(2)
end

usw. bis du alle Stände hast.

BOP
Beiträge: 197
Registriert: 23. Sep 2018 19:43
Answers: 1

Re: Zeiten rechnen (Delay) in Regeln

Beitrag von BOP »

AndreM77 hat geschrieben: 14. Sep 2021 08:12 Wie geht das mit den Stufen beim civildusk? Wo kann man mehr dazu lesen?
Ich verweise mal ganz stumpf auf:
https://www.timeanddate.de/astronomie/daemmerung-phasen

Zu Udos Option 1:
Astro1.jpg
Astro2.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

AndreM77
Beiträge: 127
Registriert: 2. Feb 2021 21:31
Answers: 0

Re: Zeiten rechnen (Delay) in Regeln

Beitrag von AndreM77 »

ah, cool @Bop! Das ist ja noch viel einfacher. Danke!
--
Connectivity: Z-WAVE, TCP/IP, Velux KLF200, Hue Bridge und IO-Homecontrol
Backend: openHAB 4.0.2 im Docker Container auf QNAP NAS
UI: HABPanel auf Amazon Fire 8

AndreM77
Beiträge: 127
Registriert: 2. Feb 2021 21:31
Answers: 0

Re: Zeiten rechnen (Delay) in Regeln

Beitrag von AndreM77 »

BOP hat geschrieben: 14. Sep 2021 17:31 Astro1.jpg
Astro2.jpg
Ist das OH2 oder OH3? Ich hab ein OH3 und hab dort im Channel keine Option "Verschiebung". Soll das jetzt via Profile gehen? Da habe ich, wenn ich es richtig gelesen hab, aber auch keine Option etwas zu addieren/verschieben.

Danke!

P.S. Ich hab's! In OH3 kann man sich über das Item durchhangeln und sieht es in der Channel-Übersicht. Danke!
--
Connectivity: Z-WAVE, TCP/IP, Velux KLF200, Hue Bridge und IO-Homecontrol
Backend: openHAB 4.0.2 im Docker Container auf QNAP NAS
UI: HABPanel auf Amazon Fire 8

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

Re: Zeiten rechnen (Delay) in Regeln

Beitrag von udo1toni »

Nein, Du brauchst da kein Item... Du gehst ins Thing (Sonne...), in die Channels, suchst Dir den entsprechenden Channel raus, gehst auf configure Channel und verstellst das Offset. Man bemerke, dass pro Channel drei Parameter gesetzt werden können, earliest, latest und offset. earliest und latest sind die Grenzwerte, die eingehalten werden. Offset ist die Verschiebung im Minuten.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

ubi
Beiträge: 7
Registriert: 3. Sep 2019 13:27
Answers: 0

Re: Zeiten rechnen (Delay) in Regeln

Beitrag von ubi »

Auch wenn dieses Thema schon gelöst ist habe ich noch eine Alternative ohne dummy item,
denn das wolltest du ja explizit nicht ( sorry für mein falsches Posting oben)

Wenn ein bestimmter Sonnenstand erreicht wird, wird ein timer erstellt und nach ablauf vom Timer die Rolladen heruntergefahren.

Code: Alles auswählen

// Globale Variablen immer zu Beginn der Datei definieren!
var Timer timer = null

rule "Rollo Sonnenuntergang_civildusk"
when
    Channel 'astro:sun:home:civilDusk#event' triggered START
  
then
   if (timer === null) {
            timer = createTimer(now.plusSeconds(900), [ |
                logInfo("Rolladen TImer", "Started fuer 15 min")
                timer = null  // Cancels the timer 1 when run out
                {sendCommand(Rolladen_Gruppe, 100) }   
     ])
     
      }        
end

AndreM77
Beiträge: 127
Registriert: 2. Feb 2021 21:31
Answers: 0

Re: Zeiten rechnen (Delay) in Regeln

Beitrag von AndreM77 »

Hab vielen Dank @ubi
--
Connectivity: Z-WAVE, TCP/IP, Velux KLF200, Hue Bridge und IO-Homecontrol
Backend: openHAB 4.0.2 im Docker Container auf QNAP NAS
UI: HABPanel auf Amazon Fire 8

Antworten