Rules in openHAB nach anpassbarer Zeit in der Benutzeroberfläche auslösen

In diesem Beitrag zeige ich dir, wie du eine Rule in openHAB nach einer bestimmten Zeit auslösen kannst, welche du in der Benutzeroberfläche von openHAB, wie z.B. der Basic UI oder App, auswählen kannst.

Das könnte z.B. nützlich sein, wenn du eine Automation als Wecker nutzen möchtest, welchen du einstellen musst oder beispielsweise eine flexible Lichtsteuerung, die nicht mit fester Zeit oder z.B. bei Sonnenauf- oder untergang geschaltet werden soll, so wie ich es in diesem Artikel gezeigt habe.

Items erstellen

Als erstes benötigst du dafür die passenden Items. Diese kannst du in den Konfigurationsdateien deiner openHAB-Installation verwalten.

Erstelle nun also folgende Items, welche du aber natürlich auch anpassen kannst:

Number automatik_stunde "Stunde" <time>
Number automatik_minute "Minute" <time>Code-Sprache: JavaScript (javascript)

Dies sind ganz einfache Items, welche einen Nummernwert speichern können. Sie tragen in der Sitemap dann den Namen „Stunde“ und „Minute“ und haben ein Uhr-Icon. Wenn du dies gerne verändern möchtest, kann ich dir sehr diesen Artikel empfehlen.

Wenn du möchtest, kannst du noch einen Schalter erstellen, mit dem du die Automatik aktivieren oder deaktivieren kannst. Folgenden Code könntest du verwenden:

Switch automatik "Automatik"Code-Sprache: PHP (php)

Elemente in der Sitemap

Um das ganze nun auch verändern zu können, musst du in der Sitemap Setpoint-Elemente hinzufügen. In diesem Beispiel erstelle ich noch einen Frame um die Einstellungen und füge den zuvor erstellten Schalter hinzu.

Frame label="Automatik" {
        Switch item=automatik label="Automatik"
        Setpoint item=automatik_stunde label="Stunde [%s h]" step=1 minValue=1 maxValue=23
        Setpoint item=automatik_minute label="Minute [%s m]" step=1 minValue=1 maxValue=59
}Code-Sprache: PHP (php)

Wenn du die Sitemap noch mehr anpassen möchtest, kannst du das in diesem Artikel nachlesen.

Die Werte für die Minuten sind hier bewusst nur von 1 bis 59 gewählt, da es bei mir Probleme damit gab, wenn auch 0 oder 60 eingestellt werden können, aber vielleicht funktioniert das ja bei dir ;-). Für mich reicht das aber vollkommen aus, da ich nicht auf die Minute genau einstellen muss und die 2 Minuten für mich verkraftbar sind.

Rule erstellen

Jetzt musst du die eben erstellten Dinge nur noch in der Automatik verbinden. Bei der Regel wird minütlich abgefragt, ob die eingestellte Zeit erreicht ist oder nicht. Wenn das der Fall ist, wird überprüft, ob der Schalter aktiviert ist und dann werden entsprechend die Befehle ausgeführt. Hier kannst du dann beispielsweise Lampen, Rollladen oder andere Dinge schalten.

rule "Automatik"
when
    Time cron "0 0/1 * 1/1 * ? *"
then
    if (automatik.state == ON) {
	var sollMinute = (automatik_minute.state as DecimalType).intValue
	var sollStunde = (automatik_stunde.state as DecimalType).intValue
 
	    if (sollMinute == now.getMinuteOfHour && sollStunde == now.getHourOfDay){
	        // Deine Befehle
            }
    }
endCode-Sprache: JavaScript (javascript)

Weitere Informationen zu Rules findest du auch in diesem Artikel.

Test in der Basic UI

Und das war’s schon! Jetzt sollte es so wie hier, oder ähnlich aussehen, je nachdem, wie du deine Items und Elemente der Sitemap benannt und konfiguriert hast.

Einstellbare Zeitautomatik in der Basic UI
Endergebnis in der Basic UI
Hinweis: Mit Sternchen (*) markierte Links auf dieser Seite sind Werbelinks. Beim Kauf darüber erhalte ich eine kleine Provision, der Preis bleibt für dich aber gleich. Damit unterstützt du mich, sodass ich weiterhin kostenlosen Inhalt auf diesem Blog anbieten kann ;-).

Wofür setzt du die Automation mit anpassbarer Zeit in der UI ein? Hast du noch Schwierigkeiten bei der Einrichtung? Teile das gerne in den Kommentaren!

Bitte bedenke, dass alle Kommentare manuell freigeschaltet werden müssen. Das kann teilweise ein bisschen dauern, du kannst dich aber mit der unten aufgeführten Funktion benachrichtigen lassen, wenn er beantwortet wurde. Das heißt auch, dass Beleidigungen, Spam oder pure Werbung keine Chance haben, auf die Website zu kommen. Deine Email-Adresse wird selbstverständlich nicht veröffentlicht. Erforderliche Felder sind mit * oder (erforderlich) markiert.