Seite 1 von 1
Rules, Haustürlicht schalten
Verfasst: 28. Feb 2022 18:03
von Cruise
Hallo, ich möchte eine Rule erstellen, die es mir ermöglicht, das Haustürlicht für 2 Minuten ein zu schalten wenn ich nach Hause komme und mein Handy sich im Netzwerk einloggt.
Ich habe schon ein Item über das Network-Binding erstellt (Handy) welches den Onlinestatus sendet.
Geplant habe ich folgendes:
Wenn "Handy" = ON und Uhrzeit zwischen 20 und 06 Uhr dann "HTLicht" an, warte 2 Minuten, "HTLicht" aus.
Ich bekomme das auch soweit eingebunden, jedoch leider nicht die Verzögerung.
Da ich keine Ahnung von Javascript habe, habe ich den itemchange-trigger genutzt.
Kann mir da jemand ein passendes script erstellen?
Gruß Flo
Re: Rules, Haustürlicht schalten
Verfasst: 28. Feb 2022 19:17
von udo1toni
Das Einfachste ist es, dem Licht-Item über die Metadaten eine Ausschaltzeit mitzugeben. Das ist aber natürlich nur sinnvoll, wenn das Licht nicht unter anderen Umständen dauerhaft eingeschaltet sein soll.
Ansonsten reicht es aber, ein weiteres Item anzulegen, welches nur die Aufgabe hat, über Deine Rule mit eingeschaltet zu werden. Dieses versiehst Du dann mit dem Delay und lässt eine zweite Rule auf das Ausschalten dieses Items reagieren. Diese zweite Rule kümmert sich dann darum, das eigentliche Item auszuschalten.
Re: Rules, Haustürlicht schalten
Verfasst: 28. Feb 2022 19:19
von int5749
Hallo Flo,
poste doch mal Deinen bisherigen Versuch und welche Items Dir zur Verfügung stehen. Mit so wenig Informationen ist es mehr raten und Glaskugel schauen. btw: wie schnell wird Dein Handy erkannt? Bei meinen iPhones und dem Fritzbox TR Binding dauert dies schon mal 2-3 Minuten, da habe ich das Licht schneller selber eingeschaltet
VG int5749
Re: Rules, Haustürlicht schalten
Verfasst: 28. Feb 2022 19:33
von Cruise
Danke für die Antworten,
das Handy wird fast in Echtzeit erkannt. Abfrage ist minütlich.
Anbei mein bisheriger Versuch:
Code: Alles auswählen
configuration: {}
triggers:
- id: "1"
configuration:
itemName: CATS42_Online
state: ON
previousState: OFF
type: core.ItemStateChangeTrigger
conditions:
- id: "2"
configuration:
startTime: 20:00
endTime: 06:00
type: core.TimeOfDayCondition
actions:
- inputs: {}
id: "3"
configuration:
itemName: swHaustuer_swHTPWR
command: ON
type: core.ItemCommandAction
- inputs: {}
id: "4"
configuration:
type: application/javascript
script: wait 120000
type: script.ScriptAction
- inputs: {}
id: "5"
configuration:
itemName: swHaustuer_swHTPWR
command: OFF
type: core.ItemCommandAction
Re: Rules, Haustürlicht schalten
Verfasst: 28. Feb 2022 20:50
von int5749
Ohh, OK. Dann bin ich raus. Ich erstelle ausschließlich Rules Dateien

Die neue Main UI nutze ich nur für ein paar pages.
Aber es gibt ja einige hier, welche auch schon die Main UI für Rules nutzen

Re: Rules, Haustürlicht schalten
Verfasst: 1. Mär 2022 00:26
von udo1toni
So wie es aussieht, hast Du einfach drei Actions erzeugt, die erste und dritte schaltet das Item, die zweite führt den javaScript Befehl wait aus.
So funktioniert openHAB aber nicht.
Die drei Actions laufen unabhängig voneinander.
Das heißt, sie werden zeitgleich ausgeführt.
was Du haben möchtest, ist eine Ausführung nacheinander in einer bestimmten Reihenfolge, dazu müssen alle Befehle innerhalb des selben Scripts stehen.
Tipp am Rande: Selbst wenn Du Dich mit JavaScript auskennst: JavaScript ist nicht die erste Wahl bei der Programmierung von openHAB Regeln.
Hintergrund hierzu ist ist die Tatsache, dass man aus der DSL heraus direkt mit Items arbeiten kann, während alle anderen Sprachen den Umweg über die Registry gehen müssen.
Item einschalten und nach einer fixen Zeit ausschalten:
Code: Alles auswählen
configuration: {}
triggers:
- id: "1"
configuration:
itemName: CATS42_Online
state: ON
previousState: OFF
type: core.ItemStateChangeTrigger
conditions:
- inputs: {}
id: "2"
configuration:
startTime: 20:00
endTime: 06:00
type: core.TimeOfDayCondition
actions:
- inputs: {}
id: "3"
configuration:
type: application/vnd.openhab.dsl.rule
script: |-
swHaustuer_swHTPWR.sendCommand(ON)
createTimer(now.plusMinutes(2),[|
swHaustuer_swHTPWR.sendCommand(OFF)
])
type: script.ScriptAction
Re: Rules, Haustürlicht schalten
Verfasst: 1. Mär 2022 17:35
von Cruise
Vielen Dank!
jetzt funktioniert es.