Rollershutter bei An- bzw. Abwesenheit und Sonnenuntergang

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

Moderatoren: Cyrelian, seppy

Antworten
curius
Beiträge: 78
Registriert: 1. Aug 2019 10:10

Rollershutter bei An- bzw. Abwesenheit und Sonnenuntergang

Beitrag von curius »

Hallo Leute,

ich würde mal wieder eine kleine Unterstützung hinsichtlich meiner Rule benötigen...
Diese automatisiert meine Rollladen bei An- und Abwesenheit.

Wird die Alarmanlage "extern scharf" geschaltet (Armed_ext1 = ON) dann fahren die Rollladen nach unten.
Wird die Alarmanlage wieder "unscharf" geschaltet (Armed_ext1 = OFF) dann fahren die Rollladen wieder nach oben.
Um die ganze Rule ein- bzw. ausschalten zu können, gibt es noch einen Switch (Rollladen_Abw), womit man die Funktion aktivieren bzw. deaktivieren kann.

Code: Alles auswählen

// bei An- bzw. Abwesenheit => Rollladen öffnen / schließen
rule "Bei An- bzw. Abwesenheit => Rollladen öffnen / schließen"
when
    Item Armed_ext1 changed 
then
    if (Rollladen_Abw.state == ON && Armed_ext1.state == ON) { 
        gRollershutter.sendCommand(100)
    }
    else if (Rollladen_Abw.state == ON && Armed_ext1.state == OFF) {
        gRollershutter.sendCommand(0)
    }
end
Die Rule funktioniert soweit auch einwandfrei...

Jetzt suche ich noch einen Tipp, wie ich diese Rule erweitern kann um zu erkennen, ob der Sonnenuntergang bereits gestartet hat.
Derzeit werden ja unabhängig davon wann ich nach Hause komme und die Alarmanlage deaktiviere die Rollladen nach oben gefahren.
Komme ich jedoch erst um beispielsweise 23:00 Uhr nach Hause, sollten diese jedoch gleich geschlossen bleiben (nach Beginn Sonnenuntergang).

Das Astro Binding habe ich installiert und damit steuere ich zusätzlich auch schon bereits meine Rollläden bei Sonnenauf- bzw. Sonnenuntergang mit dieser Rule (Beispiel für Nachtposition - geschlossen):

Code: Alles auswählen

// bei Sonnenuntergang => Rollo Nachtposition
rule "Bei Sonnenuntergang => Rollo Nachtposition"
when
    Channel "astro:sun:home:set#event" triggered START
then
    if (Rollladen_Sonne.state == ON) {
    gRollershutter_EG.sendCommand(DOWN)
    }
end
Wie kann ich jetzt meine Rule für die Rollladensteuerung erweitern um den Beginn des Sonnenuntergangs aus dem Astro Binding noch zusätzlich abzufragen?

Meine Idee wäre, dass ich beim Triggern des Channels für den Sonnenuntergang eine Variable setze und diese dann in der Rule für die Abwesenheitsautomatik abfrage...
... oder gibt es noch eine einfachere Methode?

Werden Variablen welche in einer Rule definiert werden, auch in einer anderen Rule erkannt (global)?
Bin für jeden Tipp dankbar.

Vielen Dank!

Grüße
Christian

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

Re: Rollershutter bei An- bzw. Abwesenheit und Sonnenuntergang

Beitrag von udo1toni »

Du kannst einfach ein Proxy Item anlegen:

Code: Alles auswählen

rule "Sonnenuntergang"
when
    Channel "astro:sun:home:set#event" triggered START
then
    Nacht.postUpdate(ON)
end

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

rule "Rollladen öffnen / schließen"
when
    Item Armed_ext1 changed or
    Item Nacht changed or
    Item Rollladen_Abw changed
then
    var Boolean bZu = false
    if(Rollladen_Abw.state == ON && Armed_ext1.state == ON) bZu = true
    if(Nacht.state == ON) bZu = true
    gRollerShutter.sendCommand(if(bZu) 100 else 0)
end
Die Idee dahinter: Die Rule wird durch die drei wesentlichen Items getriggert (wahlweise kann man natürlich den letzten Trigger auch weg lassen).
Default wird die Gruppe aufgefahren. ist eine der beiden Bedingungen erfüllt, wird die Gruppe zugefahren.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

curius
Beiträge: 78
Registriert: 1. Aug 2019 10:10

Re: Rollershutter bei An- bzw. Abwesenheit und Sonnenuntergang

Beitrag von curius »

:lol:

Besten Dank dafür...
Genial einfach ;)
Ich denke immer zu kompliziert... ich hoffe das wird noch besser. :lol:

Grüße
Christian

Antworten