Zur Präsenzerkennung nutze ich Bluetooth BLE.
OpenHAB mäßig funktioniert seit Monaten alles bestens: u.a. komme ich nach Hause, BLE am Schlüsselbund wird erkannt, OH3 legt ein Switch um -> Musik (Google Assistant) schaltet ein...
In letzter Zeit ist es passiert das, obwohl der Schlüsselbund und ich zuhause sind, die Musik sich "Grundlos" eingeschaltet hat. Ich nehme an das der ESP32, der das Signal scannt, zwischendurch neu bootet. Der ESP32 fährt hoch, erkennt den G-Tag am Schlüsselbund "changed to ON" und OH3 schaltet die Musik ein.
Gibt es eine Möglichkeit das die Rule zusätzlich prüft, wie lange der BLE Switch schon online ist bzw. wie lange er vor der ON-Schaltung auf OFF geschaltet war?
Meine Idee dabei: schaltet der BLE Switch auf ON prüft die Rule, ob er vorher z.B. mindestens 30 min OFF war und schaltet die Musik ein. Hat der ESP32 neu gebootet war er ja nicht mindestens 30 min auf OFF und die Musik bleibt aus...
Der Übersichtlichkeit halber vereinfache ich die Rule hier mal:
sie schaut ob der BLE Switch auf ON wechselt, ob es nachmittags ist (Switch der per "Time cron" geschaltet wird) und ob ich das erste mal am Tag nach Hause komme (Counter der bei jedem ON einmal hochzählt).
Oder gibt es ne schlauere Lösung für mein Problem?
Code: Alles auswählen
var Number gruenCount = 0 // Variable fuer Counter wird auf "0" gesetzt
rule "G-Tag gruen"
when
Item KuecheGenericMQTT_KuecheBLEgruen changed to ON // G-Tag gruen EIN geloggt
then
if(UHR_nachmittags.state == ON) { // und es ist werktags zwischen 13:00 und 19:00 Uhr
if(gruenCount > 0){ //Abfrage: ist gruenCount schon hochgezählt? Wenn ja -> Abbruch
return;
}
ChromecastAudio_URIabspielen.sendCommand("http://icecast.ndr.de/ndr/ndr2/hamburg/mp3/128/stream.mp3") // streamt Radio
ChromecastAudio_Lautstarke.sendCommand(40)
gruenCount = gruenCount + 1 // Counter wird um "1" hochgezaehlt
}
end