Anwesenheitserkennung mittels BT und RASPBERRY

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

marius.jaworowski@gmail.com
Beiträge: 26
Registriert: 30.04.2016, 11:50

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von marius.jaworowski@gmail.com » 28.04.2017, 11:28

Hey,

deine Theorie über Probleme bei gleichzeitiger BT und WLAN Nutzung klingt schlüssig.. Hoffentlich gibt es ein Fix dafür in der Zukunft ..

Dein Problem kenne ich so bisher nicht, wir können aber versuchen den timeout etwas anzupassen. Am schnellsten geht es über einen kleine Anpassung in der Datei: bluetoothserver.py zu finden in den Core VZ

Code: Alles auswählen

def checkdevice(mac):
    try:
        result2 = bluetooth.lookup_name(mac, timeout=2)
    except (bluetooth.btcommon.BluetoothError, NameError) as e:
        log("bluetooth python Module is not installed - returning : devices are not present", "error")
        result2 = "None"
        time.sleep(3)
dort kannst Du den Eintrag von
timeout=2
auf
timeout=5
ändern.

Du kannst auch versuchen direkt aus der Shell einen ping manuel zu starten. Am besten wenn das Handy im Standby ist

Code: Alles auswählen

sudo l2ping -c 1 4A:8D:73:40:E3:F1

elvthg
Beiträge: 44
Registriert: 06.06.2016, 02:46
Hat sich bedankt: 3 Mal

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von elvthg » 28.04.2017, 15:03

Moin, moin,
elvthg hat geschrieben:Bissel "doof" ist gerade, das Spot mein Handy nicht finden will, obwohl btctl sage, das es da sein:
bin jetzt erstmal wieder zur 1.29 zurück, damit funktioniert zumindest mein Handy, wenngleich das andere hin und her toggelt.

Viele Grüße, elvthg

elvthg
Beiträge: 44
Registriert: 06.06.2016, 02:46
Hat sich bedankt: 3 Mal

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von elvthg » 29.04.2017, 00:00

Hallo Marius,
marius.jaworowski@gmail.com hat geschrieben:deine Theorie über Probleme bei gleichzeitiger BT und WLAN Nutzung klingt schlüssig.. Hoffentlich gibt es ein Fix dafür in der Zukunft ..
ich befürchte, das ein 5 GHz-WLAN-Stick hier die zielführende Variante ist, alternativ vielleicht extra Antennen für BT/WLAN, ich meine für den Pi3 gibt es dazu Anleitungen.
Dein Problem kenne ich so bisher nicht, wir können aber versuchen den timeout etwas anzupassen. Am schnellsten geht es über einen kleine Anpassung in der Datei: bluetoothserver.py zu finden in den Core VZ
...
dort kannst Du den Eintrag von
timeout=2
auf
timeout=5
ändern.
Das habe ich nun gemacht und es scheint, als ob es dadurch zumindest nicht mehr zu dem ständigen OUT/IN kommt. Allerdings dauert es nun auch rund 1,5 Minuten bis der Pi3 eine Änderung mitbekommt. Eigentlich waren die 45+ Sekunden, die mit der 1.29 halbwegs zuverlässig gingen eigentlich schon zu lange, deshalb hatte ich die Idee mit dem zweiten Sensor, der mein Handy einfach schon deutlich früher erkennt.

Da muss ich also noch optimieren, aber nicht mehr heute.
Du kannst auch versuchen direkt aus der Shell einen ping manuel zu starten. Am besten wenn das Handy im Standby ist

Code: Alles auswählen

sudo l2ping -c 1 4A:8D:73:40:E3:F1
Stressfrei, reagiert sofort, nach dem Ausschalten vom BT und dem wieder Einschalten, ist der Ping sofort wieder da:

Code: Alles auswählen

root@pi3:/opt/spot# l2ping -c 1 ..:..:..:..:..:48
Ping: ..:..:..:..:..:48 from ..:..:..:..:..:16 (data size 44) ...
40 bytes from ..:..:..:..:..:48 id 0 time 37.53ms
1 sent, 1 received, 0% loss

root@pi3:/opt/spot# l2ping -c 1 ..:..:..:..:..:72
Can't connect: Host is down

root@pi3:/opt/spot# l2ping -c 1 ..:..:..:..:..:48
Ping: ..:..:..:..:..:48 from ..:..:..:..:..:16 (data size 44) ...
40 bytes from ..:..:..:..:..:48 id 0 time 9.91ms
1 sent, 1 received, 0% loss

root@pi3:/opt/spot# l2ping -c 1 ..:..:..:..:..:48
Ping: ..:..:..:..:..:48 from ..:..:..:..:..:16 (data size 44) ...
40 bytes from ..:..:..:..:..:48 id 0 time 9.99ms
1 sent, 1 received, 0% loss

root@pi3:/opt/spot# l2ping -c 1 ..:..:..:..:..:48
Can't connect: Host is down

root@pi3:/opt/spot# l2ping -c 1 ..:..:..:..:..:48
Ping: ..:..:..:..:..:48 from ..:..:..:..:..:16 (data size 44) ...
40 bytes from ..:..:..:..:..:48 id 0 time 36.32ms
1 sent, 1 received, 0% loss

Vielen Dank für Deine Mühe,

Grüße elvthg

elvthg
Beiträge: 44
Registriert: 06.06.2016, 02:46
Hat sich bedankt: 3 Mal

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von elvthg » 04.05.2017, 02:09

Hallo Marius,
elvthg hat geschrieben:
marius.jaworowski@gmail.com hat geschrieben:deine Theorie über Probleme bei gleichzeitiger BT und WLAN Nutzung klingt schlüssig.. Hoffentlich gibt es ein Fix dafür in der Zukunft ..
ich befürchte, das ein 5 GHz-WLAN-Stick hier die zielführende Variante ist, alternativ vielleicht extra Antennen für BT/WLAN, ich meine für den Pi3 gibt es dazu Anleitungen.
es gab heute ein neues Firmware-Update, keine Ahnung was das gemacht hat, ich habe es mal installiert.

Aber, ich habe mir auch einen 5 GHz-Stick besorgt (TP-Link TL-WDN3200 N600, ca. 10 EUR) und an den Pi0 gehängt und ich muss sagen, tut. Keinerlei Probleme mit WLAN, keine Abbrüche und die BT-Erkennung geht einfach besser :-)

Etwas unschön ist, das der Stick selber fast so gross wie der Pi0 ist, dazu noch das Adapter-Kabel, sieht nicht wirklich toll aus :-( Aber ich habe noch einen Nano-Stick für rund 20 EUR bestellt, mal sehen ob der auch tut und dann schaue ich nach einem kleinen Adapter auf MicroUSB.


Erkenne ich im Nicht-Debug-Modus eigentlich irgendwie, das der zweite Sensor gefunden wurde? Und gibt es eine Reihenfolge in der Spot und extra Sensor geladen werden müssen?

Im Debug-Modus ist das ja recht ausführlich, beim Pi3 steht da z.B.:

Code: Alles auswählen

debug    Rediscovering Sensor and devices. Loop : 1
debug    Connecting to the CCU to get device list : 10.20.30.25
debug    sending broadcast to discover the sensors
debug    2 sensors discovered : {'10.20.30.29': '10002 ', '10.20.30.32': '10002 '}
...
Und der Pi0 meldet:

Code: Alles auswählen

debug    Sensor - Checking command: 
debug    Waiting for connection
debug    Client is connected, IP : ('10.20.30.29', 57438)
debug    Sensor - Checking command: ping
debug    Received ping, responding with True
Damit ist klar, tut wie es soll :-)

Aber ohne Debug steht da gar nichts zum zweiten Sensor:

Code: Alles auswählen

04.05.2017 02:05:43 [INFO    ] Preparing to run in daemon mode
04.05.2017 02:05:44 [INFO    ] Starting to collect parameters
04.05.2017 02:05:47 [INFO    ] Connection to the CCU establish (RX): 10.20.30.25
04.05.2017 02:05:47 [INFO    ] All parameters collected. System OK -> STARTING WORK
04.05.2017 02:06:17 [INFO    ] Sensor is online
Und beim Pi0 als Sensor:

Code: Alles auswählen

04.05.2017 02:01:09 [INFO    ] Preparing to run in daemon mode
04.05.2017 02:01:09 [INFO    ] Bind the socket to the IP:Port : 10.20.30.32:10002
...
Wäre gut, wenn es da im Log eine Info zu gäbe!

Ein Problem gibt es wohl noch, startet man den Spot auf dem Pi3, und erst danach den Sensor auf dem Pi0, dann kommt im Debug-Log:

Code: Alles auswählen

debug    sending broadcast to discover the sensors
debug    2 sensors discovered : {'10.20.30.29': '10003 ', 'None': '10002 '}
Startet man den Sensor auf dem Pi0 neu, erscheint dann statt "None" die korrekte IP-Adresse!


Vielen Dank für Deine Mühe,

Grüße elvthg


PS: Und eine RGB-LED habe ich nun an den GPIO 19, 20 und 21 angeschlossen, da kann ich also auch weiter machen :-)

dtp
Beiträge: 10683
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 330 Mal
Danksagung erhalten: 507 Mal

Re: Anwesenheitserkennung mittels Bluetooth und RASPBERRY

Beitrag von dtp » 04.05.2017, 07:50

Homeberry hat geschrieben:Bei mir würde es daran scheitern dass ich aus Akkugründen und auch wegen sonstiger fehlender Notwendigkeit Bluetooth meistens abgeschaltet habe. Man würde sich also einen Zwang auferlegen, ohne den das Haus nicht mehr funktioniert wie es soll.
Bedenkt bei solchen Spielereien auch dass BT evtl. mal ausfällt, dass der Raspberry ausfällt, dass es Empfangsstörungen geben könnte wenn man länger in Keller oder Garten etc ist. Oder ganz einfach das Smartphone leer oder aus sonstigen Gründen abgeschaltet ist und nicht mehr erkannt wird.
Wer dann seine Alarmanlage von so etwas abhängig macht oder automatisch Licht ausschaltet und so weiter, der erlebt seine Überraschung.
Der Energiebedarf von BT wäre eher meine geringste Sorge. Der ist wirklich vernachlässigbar. Ich lasse BT bei all meinen Geräten permanent an. Mit WLAN sieht's da aber schon anders aus. Trotzdem kann ich die Vorbehalte verstehen. Bei uns (Familie mit zwei Kindern im Alter von 6 und 8 Jahren) kommt diese Lösung leider auch nicht in Betracht, weil die Kinder keine entsprechenden BT-Geräte besitzen und in nächster Zeit auch nicht besitzen werden. Daher kam nur eine An- und Abwesenheitserkennung in Frage, die komplett ohne Smart Devices (Smartphones, Smart Watches, Smartbands, etc.) auskommt.

Meine seit nunmehr bestimmt zwei Jahren absolut problemlos funktionierende Lösung hatte ich hier mal skizziert. Ist sicherlich auch nichts für jeden, da man dazu zwingend die Haustür zur Abwesenheitsdetektion von außen abschließen muss, aber da das allein schon aus versicherungstechnischen Gründen angeraten ist, ist dieser Zwang nicht ganz so dramatisch. Wer allerdings die Abwesenheitserkennung zum automatischen Verriegeln der Haustür nutzen will, für den ist diese Lösung definitiv nichts. Und auch Keymatic-User müssten sich daran gewöhnen, die Tür von innen immer mit der Hand zu schließen. Da ich aber kein großer Freund der Keymatic bin, ist die Lösung optimal für uns.

Nur mal so als mögliche Alternative, weil der TO ja behauptet hatte, dass die meisten Ansätze in Verbindung mit der CCU unbrauchbar seien.
marius.jaworowski@gmail.com hat geschrieben:Sobald ich nach Hause komme, wird die Heizung wieder hochgefahren und wenn es draussen dunkel ist das Licht angemacht.
Also das Hochfahren der Heizung beim Nachhausekommen wäre mir definitiv deutlich zu spät. Meine Heizung steuere ich grundsätzlich nicht in Abhängigkeit von An- und Abwesenheit. Aber wir haben auch ein Haus nach EnEV 2012, das die Wärme recht gut speichern kann. Zudem ist im EG eine FBH verbaut, und die müsste ich bestimmt drei bis fünf Stunden vor Anwesenheit wieder "hochfahren", damit ich mich wohl fühle, wenn ich das Haus betrete.

Das Licht im Flur geht bei uns übrigens auch automatisch mit dem Aufschließen der Haustür an, wenn es ausreichend dunkel ist. Zudem werden eine Minute nach der erkannten Abwesenheit sämtliche Verbraucher im Haus ausgeschaltet, die über die HomeMatic gesteuert werden, und die Alarmmeldung für eine detektierte Bewegung und Fensterbetätigung aktiviert. 48 Stunden nach Abwesenheit schaltet sich dann noch die Anwesenheitssimulation ein. Über sämtliche dieser Vorgänge lasse ich mich per Telegram informieren.

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

elvthg
Beiträge: 44
Registriert: 06.06.2016, 02:46
Hat sich bedankt: 3 Mal

Re: Anwesenheitserkennung mittels Bluetooth und RASPBERRY

Beitrag von elvthg » 04.05.2017, 11:57

dtp hat geschrieben:Ist sicherlich auch nichts für jeden, da man dazu zwingend die Haustür zur Abwesenheitsdetektion von außen abschließen muss, aber da das allein schon aus versicherungstechnischen Gründen angeraten ist, ist dieser Zwang nicht ganz so dramatisch.
das mit dem Magnet im Schloss hat natürlich was, muss ich mal überlegen ob das ein Ansatz wäre um die Homematic zu steuern. Leider ist die ja eher träge, sodass man nichts machen kann, was quasi sofort funktionieren soll.

Aber bei mir kommt der Automatismus sowieso nur für das zweite Schloss in Frage, weil ich zu faul bin, mit zwei Schlüsseln rum zu hantieren. Außerdem kommt niemand rein, wenn ich (nur) meinen Schlüssel verliere.
Wer allerdings die Abwesenheitserkennung zum automatischen Verriegeln der Haustür nutzen will, für den ist diese Lösung definitiv nichts.
Das war einer der Hauptgründe, ein Schloss "manuell", das andere automagisch, damit gibt es einen Sicherheitsgewinn ohne "Komfortverlust", das war mir wichtig.
Das Licht im Flur geht bei uns übrigens auch automatisch mit dem Aufschließen der Haustür an, wenn es ausreichend dunkel ist. Zudem werden eine Minute nach der erkannten Abwesenheit sämtliche Verbraucher im Haus ausgeschaltet, die über die HomeMatic gesteuert werden, und die Alarmmeldung für eine detektierte Bewegung und Fensterbetätigung aktiviert. 48 Stunden nach Abwesenheit schaltet sich dann noch die Anwesenheitssimulation ein.
Das mit dem Licht im Flur mache ich auch, allerdings über einen Türkontakt, das Ausschalten von den übrigen Lampen muss ich noch machen, allerdings "feingranularer", weil ich z.B. auch möchte, das das Licht im Kinderzimmer ausgeht wenn die aus dem Haus sind, egal ob sonst noch jemand da ist oder nicht.

Alarm&Co muss ich noch besser machen, da habe ich aber im Moment nicht so richtig Zeit für.
Über sämtliche dieser Vorgänge lasse ich mich per Telegram informieren.
Ich mache das z.Z. noch per E-Mail, was aber blöd ist, weil es nicht in Echtzeit geht, was ich eigentlich wollte.

Messenger habe ich mir auch schon überlegt, aber auf meinem Handy läuft nix was Gurgel braucht.

Threema tut wunderbar, aber das kann man nur mit viel Geld automatisieren, Signal läuft inzwischen möglicherweise weil die den Google-Zwang endlich entfernt haben und mit Telegram habe ich mich bislang noch weniger als mit Signal beschäftigt, bei Telegram weiß ich noch nichtmal ob das überhaupt bei mir läuft.

Aber mit Telegram kann man Chatbots programmieren, was natürlich was hätte :-)

Im Momemt tendiere ich aber eher zu einer IRC- oder Jabber-Lösung, beides völlig offen und meines Wissens gut automatisierbar, aber ich muss erst schauen was es für Apps gibt die auch laufen und wie immer fehlt mir Zeit :-)

Grüße elvthg

dtp
Beiträge: 10683
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 330 Mal
Danksagung erhalten: 507 Mal

Re: Anwesenheitserkennung mittels Bluetooth und RASPBERRY

Beitrag von dtp » 04.05.2017, 12:28

elvthg hat geschrieben:Leider ist die ja eher träge, sodass man nichts machen kann, was quasi sofort funktionieren soll.
Was heißt denn "träge" bei Dir? Also bei mir reagiert die HomeMatic nach dem Ab- oder Aufschließen eigentlich binnen einer Sekunde. Bevor ich z.B. nach dem Aufschließen der Haustür den Flur betreten habe, ist das Licht schon an. So schnell kann ich definitiv nicht den Lichtschalter betätigen. Beim Abschließen habe ich ja sowieso ein Delay eingebaut, um zu verhindern, dass man bei einem versehentlichen Detektieren der Abwesenheit und einer Bewegung mit einem Alarm konfrontiert wird. In dem Fall hat man dann 60 Sekunden Zeit, um die Haustür wieder aufzuschließen. Alternativ kann man auch auf eine bestimmte Stelle des Wandtablet-Displays drücken, um den Countdown zu stoppen. Beides funktioniert aber nur, solange der Countdown läuft.
elvthg hat geschrieben: Aber mit Telegram kann man Chatbots programmieren, was natürlich was hätte :-)
Ich finde Telegram absolut genial. Es läuft eigentlich auf fast jeder aktuell verfügbaren Plattform (also Windows 10 Desktop und Mobile, Mac OS X, iOS, watchOS, Android und auch als Browser-Addon; Linux weiß ich jetzt gerade nicht), ist kostenlos und extrem anpassbar. Hinzu kommt, dass man auch Dateien, wie Bilder oder Soundfiles, übertragen kann. Ich würde mir zwar noch eine App für meinen Samsung-TV wünschen, aber man kann ja nicht alles haben. ;) Außerdem bietet Telegram leider immer noch keine Unterstützung für farbige Texte. Und auch was die Differenzierung von Nachrichten durch unterschiedliche Alarmierungstöne innerhalb einer Gruppe angeht, besteht Verbesserungsbedarf. Trotzdem, Telegram ist aus meiner Sicht extrem zuverlässig und auch ziemlich schnell.

Emails sind aus meiner Sicht nicht nur zu langsam, sie bietet auch bei Weitem nicht die Übersicht einer Push-Nachrichten-App.

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

marius.jaworowski@gmail.com
Beiträge: 26
Registriert: 30.04.2016, 11:50

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von marius.jaworowski@gmail.com » 05.05.2017, 20:06

Hi,

die Reihenfolge wie Spot die Sensoren abfragt hängt davon ab welcher Sensor sich wie schnell beim Discovery-Prozess gemeldet hat. In der Theorie sollte es der Sensor sein der auf dem Pi3 (zusammen mit Spot) läuft.

Das "Discovery" wird einmal beim Start durchgeführt und dann nach jedem 15ten Durchlauf. Wird jedoch eine Problem mit einem Sensor festgestellt, so wird ein Discovery schon bei den nächsten Durchlauf initialisiert. Der aktuelle Lauf wird mit den übrigen Sensoren fortgeführt.
Daraus ergibt sich, dass Sensoren beliebig hinzugefügt oder entfernt werden können. Man muss eigentlich nur warten. Übrigens, das Discovery fragt auch von der CCU die zu prüfenden Geräte immer mit ab. Mein Ziel bei der Entwicklung von Spot war es, Spot interaktionsfrei zu machen.

Ich werde in der kommenden Woche die Log-Meldungen ausbauen, sodass man erkennt welche Sensoren verwendet werden. Die RGB LED Geschichte werde ich auch versuchen zu implementieren. Muss mir aber noch so eine LED erst besorgen. Ich werde es so wie beim "pifacecad LCD Display" machen und es bei jeden Sensor konfigurierbar machen. Hast Du schon etwas für die LED Steuerung fertig?

Gruß

elvthg
Beiträge: 44
Registriert: 06.06.2016, 02:46
Hat sich bedankt: 3 Mal

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von elvthg » 07.05.2017, 01:18

marius.jaworowski@gmail.com hat geschrieben:Mein Ziel bei der Entwicklung von Spot war es, Spot interaktionsfrei zu machen.
das macht Sinn :-)
Ich werde in der kommenden Woche die Log-Meldungen ausbauen, sodass man erkennt welche Sensoren verwendet werden.
Das wäre besser, nicht zuviel, aber so viel, das man zumindest erkennt welche Sensoren gefunden wurden. Vielleicht geht ja sogar, das man logt welcher Sensor welches Gerät erkannt hat.
Die RGB LED Geschichte werde ich auch versuchen zu implementieren. Muss mir aber noch so eine LED erst besorgen.
Ich hätte noch zwei da, wenn Du mir als PM Deine Postadresse schickst, stecke ich die in einen Umschlag und schick sie Dir!
Ich werde es so wie beim "pifacecad LCD Display" machen und es bei jeden Sensor konfigurierbar machen. Hast Du schon etwas für die LED Steuerung fertig?
Nicht wirklich, ich bin in Python nicht so richtig fit, insbesondere nicht was Hintergrundprozesse, Multithreading usw. anbelangt, bislang kann ich die LEDs nur an bzw. ausschalten.

Es wäre aber Klasse, wenn man ein Unterprogramm hätte, dem man einen RGB-Wert, eine Dauer und eine Blinkfrequenz übergeben könnte, die das dann macht. Rufe ich innerhalb dieser "Dauer" diese Routine erneut auf, muss das natürlich berücksichtigt werden, ich tendiere dazu, das dann die vorherige Ausgabe abgebrochen und die neue ausgeführt wird.


Ich war heute in Kassel beim HM-Forums-Treffen, war super informativ, insbesondere den Vortrag von Jens Maus mit RaspiMatic fand ich Klasse, allerdings präferiere ich eine Lösung auf Basis von YAHM, weil ich dabei mein flexibles Linux als Unterbau behalten kann.

Cool wäre, wenn man RaspiMatic direkt als Container einbinden könnte, anstatt die original CCU2-Firmware zu nehmen, Jens hat da schon ein paar sinnige Verbesserungen eingebaut.

Grüße,

elvthg
Zuletzt geändert von elvthg am 14.05.2017, 22:08, insgesamt 1-mal geändert.

marius.jaworowski@gmail.com
Beiträge: 26
Registriert: 30.04.2016, 11:50

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von marius.jaworowski@gmail.com » 14.05.2017, 13:02

Hi,

habe mir bereits ein paar RGB-LED bestellt, diese müssten bald ankommen. Aber vielen Dank für dein Angebot :)
Ich habe eine Update von Spot auf GitHab übertragen. Zu den Neuerungen gehört :
- eine verbesserte Ausgabe welcher Sensor online/offline geht
- Bei Clients die in die Homezone kommen, wir auch angezeigt von welchem Sensor sie erkannt wurden. (ist noch kein Tracking)
- Neben der IP Adresse wird auch der Hostname des Sensors angezeigt.

Leider konnte ich die neue Version noch nicht ausführlich testen..

Antworten

Zurück zu „Projektvorstellungen“