Hallo,
habe jetzt ein paar Tage rumgestümpert und irgendwie ist nie das dabei herausgekommen was ich wollte.
Folgendes möchte ich umsetzen:
Wenn ich nach Hause komme (4.Etage) soll Keymatic automatisch die Wohnungstür öffnen.
Mein PI überwacht die Anwesenheit meines Iphones über Bluetooth, sowie über die Fritzbox die Anwesenheit über Wlan.
Da erfahrungsgemäß die BT-Anwesenheit zuerst detektiert wird, sollte doch eigentlich ein
define haustuer_auf notify (Iphone_Wlan_Anwesenheit:off|Iphone_BT_Anwesenheit:on) set Wohnungstuer open
funktionieren.
Tut es aber nicht und ich habe das dumme Gefühl, dass ich da nen Denkfehler mache.
Hat das schon mal jemand so oder so ähnlich gemacht und kann mir da aufs Pferd helfen?
Tim
Hallo Tim,
ob WLAN-Anwesenheit off oder on ist, spielt ja eigentlich für den Use-Case erst mal gar keine Rolle.
Würde ich zumindest in einem ersten Schritt mal aus der ganzen Geschichte rauslassen und mich nur auf das eigentliche detektieren der BT-Anwesenheit konzentrieren.
So wie ich das sehe, passt die Logik für beides hier eh nicht. Das notify würde entweder ausgelöst, wenn WLAN-Anwesenheit auf off geht oder wenn BT-Anwesenheit auf on geht.
Im schlimmsten Fall würde also deine Wohnungstüre, nachdem du gegangen bist und erst irgendwann danach die WLAN-Anwesenheit auf off ginge, wieder geöffnet.
Bist du sicher, dass du den Event dafür auch korrekt mit der regex erschlägst?
Wie sieht das denn im Eventmonitor aus? Sind da eventuell noch irgendwo Leerzeichen drin?
Gruß Benni.
Ich werde welk...
Also:
define haustuer_auf notify Iphone_BT_Anwesenheit:on.* set Wohnungstuer open
funktioniert.
In Anlehnung http://www.fhemwiki.de/wiki/Notify (http://www.fhemwiki.de/wiki/Notify) sollte doch ein dort vorhandenes Beispiel
define nt.allerolloszu notify (R1ZU|R2ZU|R6ZU) {
my $r1 = Value("R1ZU");;
my $r2 = Value("R2ZU");;
my $r3 = Value("R6ZU");;
if ($r1 eq "on" && $r2 eq "on" && $r3 eq "on") {
fhem "set LEDalleRolloZu on"
} else {
fhem "set LEDalleRolloZu off"
}
}
auf meinen Anwendungsfall umgemünzt so aussehen:
define haustuer_auf notify (Iphone_BT_Anwesenheit|Iphone_Wlan_Anwesenheit) {
my $s1 = Value("Iphone_BT_Anwesenheit");;
my $s2 = Value("Iphone_Wlan_Anwesenheit");;
if ($s1 eq "on" && $s2 eq "off") { fhem "set Wohnungstuer open" } else { fhem "set Homestatus weg"} }
Funzt nur nicht... :-(
Hallo,
Zitatdefine haustuer_auf notify Iphone_BT_Anwesenheit:on.* set Wohnungstuer open
funtioniert. Beim anderen Versuch prüfst Du nur auf "on" und nicht auf "on.*" wenn also noch etwas (Leerzeichen z.B.) hinter dem on steht ist "on" false und "on.*" true.
Auch ich versteh nicht, warum das Wlan mit eingebunden wird. Was ist, wenn BT und Wlan dich annähernd gleichzeitig erkennen - dann soll die Türe zu bleiben ?
Gruß Christoph
Zitat von: zauberfee am 20 Februar 2016, 00:51:29
Hallo,
habe jetzt ein paar Tage rumgestümpert und irgendwie ist nie das dabei herausgekommen was ich wollte.
Folgendes möchte ich umsetzen:
Wenn ich nach Hause komme (4.Etage) soll Keymatic automatisch die Wohnungstür öffnen.
Mein PI überwacht die Anwesenheit meines Iphones über Bluetooth, sowie über die Fritzbox die Anwesenheit über Wlan.
Bist Du sicher, dass das eine gute Idee ist? Ich stelle mir nur gerade vor, dass das iPhone in der Nacht neu startet und deshalb nach dem reboot der notify die Haustür öffnet, da ja das iPhone neu per Bluetooth/im Wlan erkannt wird?
Zum Lachen ist ja das hier ja wunderbar dargestellt: https://www.youtube.com/watch?v=_CQA3X-qNgA (https://www.youtube.com/watch?v=_CQA3X-qNgA), aber mit dem obigen Ansatz könnte es ähnlich werden...
Johannes
sehr cooles video :-)
also, um einen kurzfristigen verlust des bluetooth-kontakts zu "überstehen" habe ich sowohl bluetooth als auch wlan über ein watchdog "abgepuffert".
ob das ganze zuverlässig funktioniert, würde ich dann (sollte es überhaupt mal laufen) ein paar tage simulieren mit einer weniger sicherheitsrelevanten aktion als "tür auf".
@Christoph ja, genau das ist der plan.
leider hat das ersetzen des "on" durch "on.*" nun bewirkt, dass nun bei wlan-abwesenheit und dann erkennung der bluetooth-anwesenheit die ELSE-anweisung ausgeführt wird.
um es kurz zu machen- ich finde eure sicherheitsbedenken nachvollziehbar, aber würde mich dennoch freuen, wenn mir mit der korrekten abfrage jemand helfen könnte, denn langsam nervt es, dass es nicht funktioniert.
Zitat von: zauberfee am 21 Februar 2016, 19:27:35
mit der korrekten abfrage
Zitat von: Benni am 20 Februar 2016, 07:39:20
Wie sieht das denn im Eventmonitor aus?
Wie sehen denn die abzufangenden Events nun tatsächlich aus?