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?
--
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
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
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
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:
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
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
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
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
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.
// 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
--
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