Rules / Scripts mit DateTime / Tageszeiten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
oh3twh
Beiträge: 20
Registriert: 26. Jan 2021 15:26
Answers: 0

Rules / Scripts mit DateTime / Tageszeiten

Beitrag von oh3twh »

Hi *,

ich habe bisher mit der MainUI nur sehr einfache Rules "geklickt".
Jetzt habe ich einen Präsenz-Melder und ich möchte abhängig der Tageszeit meine Hue-Leuchten mit unterschiedlichen Color/Brightness anschalten.

Also einfach formuliert sowas:
If (now) is:
08:00 - 11:59
* Color = .. ; Brightness ..
12:00 - 14:59
* Color = .. ; Brightness ..
15:00 - 20:59:
* Color = .. ; Brightness ..
default:
* Color = .. ; Brightness ..

Wie packt man das jetzt an? OH3 verwirrt mich leider mit sehr vielen Ansätzen. (Rules, Scirpts, EcmaScript; Blockly. )
Wir "rechne" ich mit Zeiten bzw. mit "NOW" und welche Sprache (EcmaScript, Java, etc.) sollte ich nehmen?

Mein Ansatz wäre, das ich in der Präsenz-Rule einfach ein Script ausführen lassen, das die o.g. Logik abbildet/implementiert.
Wie würdet ihr das machen?

danke für eure hinweise
twh

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Rules / Scripts mit DateTime / Tageszeiten

Beitrag von int5749 »

Hallo twh

eine Idee (ohne den Trigger zu kennen, evtl. ist dies die Erkennung einer Präsenz?)

Code: Alles auswählen

rule "Colour by time"
when
    "Ich brauche einen Trigger"
then
    if ((now.toLocalTime.getHour >= 8) && (now.toLocalTime.getHour <= 11)) {
        * Color = .. ; Brightness ..
    } else if ((now.toLocalTime.getHour >= 12) && (now.toLocalTime.getHour <= 14)) {
        * Color = .. ; Brightness ..
    } else if ((now.toLocalTime.getHour >= 15) && (now.toLocalTime.getHour <= 21)) {
        * Color = .. ; Brightness ..
    } else {
        * Color = .. ; Brightness .. 
    }
end
VG
int5749
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

oh3twh
Beiträge: 20
Registriert: 26. Jan 2021 15:26
Answers: 0

Re: Rules / Scripts mit DateTime / Tageszeiten

Beitrag von oh3twh »

Hi,

d.h. in den Code Abschnitt von der Rule könne ich die Logik entsprechend hinterlegen?

Mein Trigger ist "When ITEM-PRESENCE has changed from CLOSED TO OPEN". (Also der Zigbee Bewgungsmelder) .> Das funktioniert alles prima. Nur frage ich mich wie und wo ich meine Zeit-Logik hinterlegen kann und wie man überhaupt Zeit-Logik programmiert. Mir ist das Programmier-Sprachen Modell leider nicht klar.

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Rules / Scripts mit DateTime / Tageszeiten

Beitrag von int5749 »

Ja,

Du brauchst dann eigentlich nur noch * Color = .. ; Brightness .. durch den Befehl für die Wunschfarbe tauschen.
Mit Deinem Trigger-Item sollte es wie folgt ausschauen:

Code: Alles auswählen

rule "Colour by time"
when
    Item ITEM-PRESENCE changed to OPEN
then
    if ((now.toLocalTime.getHour >= 8) && (now.toLocalTime.getHour <= 11)) {
        * Color = .. ; Brightness ..
    } else if ((now.toLocalTime.getHour >= 12) && (now.toLocalTime.getHour <= 14)) {
        * Color = .. ; Brightness ..
    } else if ((now.toLocalTime.getHour >= 15) && (now.toLocalTime.getHour <= 21)) {
        * Color = .. ; Brightness ..
    } else {
        * Color = .. ; Brightness .. 
    }
end
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Rules / Scripts mit DateTime / Tageszeiten

Beitrag von udo1toni »

Alternativ kannst Du auch einfach zu den Zeitpunkten, zu denen der HSB-Wert geändert werden soll, jeweils eune Rule starten, die den Sollwert in ein Color Item speichert.
In der Presence Rule kopierst Du dann den Wert des Items in das Item der Lampe.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten