Ich stehe mit diesen Rules in OpenHAB wirklich auf Kriegsfuß.
Ich habe einen Türkontakt für die Haustür, eine HUE Lampe Farbig und einen Point, der ON/OFF ist (zeigt an, ob die Alarmanlage an oder aus ist).
Verstanden habe ich: Trigger ist der Auslöser. Also sage ich: Wenn der Türkontakt auf „OPEN“ geht.
Dann soll ein Script ausgeführt werden. Habe mich mit Blockly, ECMA und DSL versucht. Aber ich bin zu dumm für sowas.

Es soll nämlich nun der Status des POINT abgefragt werden. Wenn der ON ist, soll die Lampe rot leuchten und nach 5 Sekunden aus gehen.
Wenn der POINT OFF ist, soll die Lampe grün leuchten und nach 5 Sekunden ausgehen
Also sieht mein Script in DSL so aus:
if (Zustand_Alarmanlage == ON) {
Alarm_Light_Farbe.sendCommand("358,100,100")
} else {
Alarm_Light_Farbe.sendCommand("110,100,100")
}
end
Thread::sleep(5000)
Alarm_Light_Farbe.sendCommand("OFF")
Leider macht die Rule gar nichts.
Ich finde auch keine ordentliche Anleitung im Netz, wie man DSL programmiert. Die tollen Videos machen alles andere, nicht das was ich brauche.
Dass was dort gezeigt wird, kann ich auch…
Klar… ich kann zwei Rules bauen:
1. Rule:
WHEN Trigger ist der Türkontakt = OPEN
THEN Script
Alarm_Light_Farbe.sendCommand("358,100,100")
Thread::sleep(5000)
Alarm_Light_Farbe.sendCommand("OFF")
BUT ONLY IF Zustand_Alarmanlage == ON
2. Rule:
WHEN Trigger ist der Türkontakt = OPEN
THEN Script
Alarm_Light_Farbe.sendCommand("110,100,100")
Thread::sleep(5000)
Alarm_Light_Farbe.sendCommand("OFF")
BUT ONLY IF Zustand_Alarmanlage == OFF
Aber es kann ja nicht im Sinne des Erfinders sein, dass man im Script keine If then else Anweisung einbauen kann, oder?
Ich habe noch kein Script im internet gefunden…. Ist das wirklich so kompliziert?
Ich brauche doch eigentlich zum Programmieren meiner Regeln nur folgendes:
- auslesen von items (items.messagetext in Java kann ich, verstehe nicht, warum man sowas kompliziertes wie „ itemRegistry.getItem('RST2_Heizkorperthermostat_Windfang_Luftfeuchtigkeit').getState“ verwenden muss… Das Ergebnis ist das gleiche…)
- schreiben in items (events.sendCommand('Laden_EQA', OFF); in Java kann ich)
- if then else Sätze
- Timer (geht wie oben beschrieben in Java und DSL)
- Versand von Mails/WhatsApp/Nachrichten (das kann ich in Java)
Wo kann man die Grundsätze von Rules und Scripten mal lernen? Wie gesagt, die Tutorials könnte ich alle selber machen, die bringen mich nicht weiter. Vielleicht finde ich auch nicht die richtigen. Das Problem ist, deutschsprachiges Material zu finden. Das ist nur was für Engländer und Amerikaner…. Daher bin ich froh, dass das Forum hier deutsch spricht.
Danke an alle…
