hier mal eine rule die @romibaer benötigt. der grund für die veröffentlichung hier ist die notwendige komplexität der rules. ich bin also verbesserungsvorschläge offen.
die rules können natürlich auch als normales optisches feedback bei einbruch (fenster gehen auf bei aktivem alarm o.ä.) genutzt werden.
dafür muss nur der "fenster ist offen timer" entfernt werden und bspw mit "member of" als rule trigger gearbeitet werden....bei Interesse ggf hier nachfragen
das ganze macht also folgendes:
- lassen frau/hund/kind/mann das fenster/die tür unbesichtigt auf fängt lampe x nach 1min für 2min an zu blinken
- wird das fenster geschlossen wird die farbe der lampe wieder auf den vorherigen wert gesetzt
- sind die 2min um wird die farbe der lampe wieder auf den vorherigen wert gesetzt
folgende items werden verwendet:
HueStripe_Farbe -> (zeile 5,10, 33, 44) muss auf den itemnamen geändert werden der den colorchannel der hue lampe nutzt
HueStripe -> (zeile 15,16, 19 2x) muss auf den itemnamen geändert werden der den dimmerchannel der hue lampe nutzt
Fenster -> (zeile 3,9,29) muss auf den itemnamen geändert werden der das/die zu überwachende fenster/tür darstellt
Switch Fenster_Ueberwachung muss als Dummy in der itemsdatei angelegt werden
String Fenster_Ueberwachung_Farbe muss als Dummy in der itemsdatei angelegt werden
rule "fensteralarm"
when
Item Fenster changed from CLOSED to OPEN
then
val ausgangswert = HueStripe_Farbe.state.toString
Fenster_Ueberwachung_Farbe.sendCommand(ausgangswert)
createTimer(now.plusMinutes(1), [|
if (Fenster.state == OPEN){
HueStripe_Farbe.sendCommand("354,100,100")
Fenster_Ueberwachung.sendCommand(ON)
createTimer(now.plusSeconds(1), [|
while (Fenster_Ueberwachung.state == ON){
Thread::sleep(700)
if (HueStripe.state == 0){
HueStripe.sendCommand(100)
}
else {
HueStripe.sendCommand((HueStripe.state as Number) - 25)
}
}
])
}
])
end
rule "fensteralarm aus bei fenster zu"
when
Item Fenster changed from OPEN to CLOSED
then
Fenster_Ueberwachung.sendCommand(OFF)
createTimer(now.plusSeconds(2), [|
HueStripe_Farbe.sendCommand(Fenster_Ueberwachung_Farbe.state.toString)
])
end
rule "fensteralarm aus nach x min"
when
Item Fenster_Ueberwachung changed from OFF to ON
then
createTimer(now.plusMinutes(2), [|
Fenster_Ueberwachung.sendCommand(OFF)
createTimer(now.plusSeconds(2), [|
HueStripe_Farbe.sendCommand(Fenster_Ueberwachung_Farbe.state.toString)
])
])
end
Alles anzeigen
ein paar grundlegende infos:
- nicht wundern über die mini-timer, die sind notwendig um kleine lags der datenübermittlung auszugleichen, ausserdem ist es möglich so thread::sleep zu umgehen
- in zeile 7 schicken wir den aktuellen wert der hues zu unserem dummy um nach dem optischen alarm die hue wieder in den ursprünglichen wert zu versetzen
- in zeile 8 wird festgelegt nach welcher zeit die lampe blinkt
- zeile 10 legt den hsb wert der alarmfarbe fest....in dem beispiel rot
- zeile 15-20...könnte man auch simpel mit on/off machen...das fade-out sieht bei den hues aber schon recht nett aus
- zeile 41 legt fest, nach welcher zeit das blinken aufhört