Lichtwecker - Aktion vor klingeln auslösen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
DavGre
Beiträge: 84
Registriert: 11. Mär 2019 15:47
Answers: 0

Lichtwecker - Aktion vor klingeln auslösen

Beitrag von DavGre »

Hallo zusammen,

ich stehe mal wieder vor einem Problem.
Ich nutze die OH Android App und sende meine Weckereinstellungen an das Item AlarmClock, wie es in der OH Dokumentation beschrieben ist (https://www.openhab.org/docs/apps/andro ... to-openhab). So habe ich meinen kleinen Lichtwecker realisiert, was auch wunderbar funktioniert.

Hier die entsprechende rule::

Code: Alles auswählen

rule "1. Alarm auslösen"
when
    Item AlarmClock received command
then
    if (receivedCommand instanceof DateTimeType) {
        val epoch = receivedCommand.toLocaleZone.zonedDateTime.toInstant.toEpochMilli
        logInfo("alarm", "Alarm gesetzt für {} ({})", receivedCommand.toLocaleZone, epoch)
        if (timerAlarm !== null) {
            logInfo("alarm", "Alarm neu angesetzt")
            timerAlarm.reschedule(receivedCommand.toLocaleZone.zonedDateTime)
        } else {
            logInfo("alarm", "Neuer Alarm")
            timerAlarm = createTimer(receivedCommand.toLocaleZone.zonedDateTime, [ |
        	Nebenlicht_SZ_1.sendCommand(ON)
        	Nachtmodus.sendCommand(OFF)                
        	logInfo("alarm", "Alarm abgelaufen")
                timerAlarm = null
            ])
        }
    } else {
        if (timerAlarm !== null) {
            timerAlarm.cancel
            timerAlarm = null
        }
        logInfo("alarm", "Alarm abgebrochen")
    }
end
Ich würde nur gerne noch folgendes realisieren:
Die beiden Items "Nebenlicht_SZ_1" und "Nachtmodus" sollen 2 Minuten bevor der Wecker klingelt geschaltet werden.

Wie kann ich das realisieren?

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

Re: Lichtwecker - Aktion vor klingeln auslösen

Beitrag von int5749 »

Hallo alleine,

da fallen mir 2 Möglichkeiten ein.

1) Du stellst den AlarmClock 2 auf 2 Min. früher und arbeitest in der Rule mit einem Timer um eben die 2 Minuten nach dem schalten der Items zu warten, bis der WEcker los geht

2) Eine 2. Rule, welche Nachts z.b. 4 Uhr wenn der Wecker auch mal um 5 Uhr starten kann und stellst dann einen Timer wo Du die Differenz von "Jetzt bis zum WeckerStart . 2Min als Minute vorgibst. Hier < klick mich, ich bin ein link > habe ich dies z.B. umgesetzt.

Eigentlich finde ich Weg 1 am besten, da dies dann direkt zusammen gehört.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

DavGre
Beiträge: 84
Registriert: 11. Mär 2019 15:47
Answers: 0

Re: Lichtwecker - Aktion vor klingeln auslösen

Beitrag von DavGre »

Ja, Regel 1 würde ich auch bevorzugen. Wie ergänze ich das denn in meiner rule? MIt Timern und Zeitberechnungen tue ich mich noch sehr schwer :?

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

Re: Lichtwecker - Aktion vor klingeln auslösen

Beitrag von int5749 »

DavGre hat geschrieben: 5. Dez 2021 14:39 Ja, Regel 1 würde ich auch bevorzugen. Wie ergänze ich das denn in meiner rule? MIt Timern und Zeitberechnungen tue ich mich noch sehr schwer :?
Also eine Möglichkeit wäre es wie folgt

Code: Alles auswählen

var Timer tAlarmClock = null          //ACHTUNG: Dies muss in der Rules Datei nach oben, vor alle Rules


rule "1. Alarm auslösen"
when
    Item AlarmClock received command
then
    tAlarmClock?.cancel     //zur Sicherheit einen laufenden Timer beenden
   
    Nebenlicht_SZ_1.sendCommand(ON)
    Nachtmodus.sendCommand(OFF)                
    tAlarmClock = createTimer(now.plusMinutes(2),[|    //2 Minuten Timer

          HIER KOMMT DANN DER CODE HIN, DER NACH ABLAUFEN DES TIMERS AUSGEFÜHRT WERDEN SOLL.

    ])

end
Viele Grüße

int5749
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

DavGre
Beiträge: 84
Registriert: 11. Mär 2019 15:47
Answers: 0

Re: Lichtwecker - Aktion vor klingeln auslösen

Beitrag von DavGre »

Ah, glaube ich habe dich missverstanden. Das würde ja so nicht klappen, da das Item Alarmclock mit der Zeit von meinem Handywecker gespeist wird. Der Lichtwecker soll aber VOR meinem Handywecker starten. Quasi als sanftes aufwachen. Dann ist es wohl doch die andere Lösung. Muss ich mir morgen mal genauer ansehen.

Antworten