Anwesenheitserkennung mittels BT und RASPBERRY

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

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

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von elvthg » 16.05.2017, 01:21

Hi,

sieht erstmal nicht schlecht aus, ich habe die 142 auf beiden RPi's installiert und die Konfig übernommen:

Code: Alles auswählen

16.05.2017 00:50:03 [INFO    ] Load Config file.. /opt/spot/spot.cfg
16.05.2017 00:50:03 [ERROR   ] Sensor 10.20.30.29 responded with an empty device list - sensor_com.py - update_dict_with_response
16.05.2017 00:50:17 [INFO    ] Load Config file.. /opt/spot/spot.cfg
16.05.2017 00:50:17 [INFO    ] Preparing to run in daemon mode
16.05.2017 00:50:18 [INFO    ] Starting to collect parameters
16.05.2017 00:50:20 [INFO    ] Connection to the CCU establish (RX): 10.20.30.25
16.05.2017 00:50:20 [INFO    ] All parameters collected. System OK -> STARTING WORK
16.05.2017 00:50:53 [INFO    ] Sensor :10.20.30.29 (rpi-hm) is online
16.05.2017 00:50:53 [INFO    ] Sensor :10.20.30.32 (rpi-zw1) is online
16.05.2017 00:56:32 [INFO    ] OUT - TG since 2017-05-16-00:52:38.
16.05.2017 01:08:02 [INFO    ]  IN - TG since 2017-05-16-01:08:02. Seen by : 10.20.30.32 
Aufgefallen ist mir allerdings, das die Erkennung echt lange dauert (>5 min) und scheinbar nur vom RPi0 erfolgt, obwohl der RPi3 definitiv näher ist - allerdings reagiert bei letzterem mein Handy auch nicht der "l2ping".

Könnte also sein, das BT da Probleme macht, seit dort YAHM drauf läuft und das Funkmodul sich mit BT um die PINs "streitet".

Vielen Dank, viele Grüße,

thg

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

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von elvthg » 27.05.2017, 13:10

Moin Marius,

und, Lämpchen angekommen? :-)

Bei mir "läuft's" leider gerade nicht besonders rund, weder mit der 1.39, noch der 1.42 :-(

Grund dürfte sein, das ich die CCU2 durch einen Raspi mit Funkmodul und YAHM ersetzt habe und die das Funkmodul und Bluetooth nicht vertragen, häufig waren die Geräte von YAHM nicht mehr erreichbar, da half nur ein Neustart von Modul, YAHM und/oder dem Raspi :-(

Ich habe daher auch BT auf dem Raspi3 deaktiviert, jetzt läuft zumindest YAHM mit dem Funkmodul halbwegs stabil, aber natürlich geht der Spot-Sensor nun nicht mehr und damit ist die Anwesenheitserkennung in der Wohnung deutlich schlechter, weil der Pi0 am "anderen" Ende hängt.

Ich werde also wohl oder über einen weiteren Sensor installieren müssen, mal sehen ob ich einen Pi3 mit Kabel oder einen Pi0 mit 5 GHz-WLAN nutze, bislang haben haben sich BT und WLAN auf dem Pi0 ziemlich "beharkt", sodass die 2,4 GHz-WLAN Verbindung äußerst unzuverlässig war.

Bislang habe ich leider den Nano-WLAN-Stick mit 802.11ac (Asus USB-AC51) nur mit 2,4 GHz zum Laufen bekommen, was nichts bringt, weil ich 5 GHz brauche.


Jetzt zum Spot:

Die 1.42 scheint eigentlich ganz gut zu laufen, zumindest wenn man sie im "Debug-Modus" überwacht. Die Anwesenheit wird manchmal recht flott erkannt, ca. 45 Sekunden, kann aber auch 5 Minuten dauern, für die "Abwesenheit" muss man immer lange warten, etwa 4 - 5 Minuten bis das bei der Homematic ankommt. Der Spot-Sensor erkennt das Fehlen des Geräts jedoch "unverzüglich", das vorhanden sein , trotz erfolgreichen "l2ping" jedoch nicht unbedingt.

Das ging schonmal besser. Logs folgen noch ...


EDIT: Noch 'ne Frage: kann man den Spot eigentlich ohne lokalen Sensor starten?


Vielen Dank,

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 » 30.05.2017, 15:23

Hi,

Spot ohne den Lokalen Sensor startst du folgendermassen:

Code: Alles auswählen

python spot.py -n -d
der "-n" Parameter unterdrückt den Start.

Die lange Erkennungsdauer hatte ich oft, als sich BT und WLAN auf meinen Rb0 bekriegt hatten. Wenn die Verbindung abbricht laufen Prozesse ins timeout und das akkumuliert sich schnell. Kann nur spekulieren ob es bei Dir auch der Fall ist. Jedenfalls, wenn du die Wahl zwischen WLAN oder Netzwerkkabel hast, würden ich immer das letzte vorziehen.

Versuch auch einmal die Geräte noch einem mit dem Ri3 zu pairen (pair) so wie in meinem Einrichtungsbeschreibung beschrieben.


Die LED Diode ist noch nicht angekommen. Die Post ist nicht mehr was es einmal war :(
Wenn es bis ende der Wochen nicht kommt, bestelle ich mir die noch einmal. Hast du ein Link für mich, welche du bestellt hast?

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 » 30.05.2017, 18:19

marius.jaworowski@gmail.com hat geschrieben:Spot ohne den Lokalen Sensor startst du folgendermassen:

Code: Alles auswählen

python spot.py -n -d
der "-n" Parameter unterdrückt den Start.
das kann ich doch bestimmt auch im Init-Script eintragen?

Gibt es auch einen Parameter, der den Log-Level erhöht, also nicht (nur) -l was dann ja auf der Konsole läuft, sondern das es in die Logs geschrieben wird.

Es scheint, als ob der Spot seine Sensoren manchmal verliert:

Code: Alles auswählen

30.05.2017 11:14:33 [INFO    ] Sensor : None . Disconnected
30.05.2017 11:16:03 [INFO    ] Sensor : None . Disconnected
30.05.2017 11:17:31 [INFO    ] Sensor : None . Disconnected
...
30.05.2017 11:59:39 [INFO    ] Sensor : None . Disconnected
30.05.2017 12:00:14 [INFO    ] Sensor : None . Disconnected
Erst ein Neustart beider Sensoren hat das Problem "gelöst":

Code: Alles auswählen

30.05.2017 12:00:27 [INFO    ] Sensor :10.20.30.33 (rpi-zw2) is online
30.05.2017 12:00:50 [INFO    ] Sensor : None . Disconnected
30.05.2017 12:01:22 [ERROR   ] Sensor None timeout - sensor_com.py - display_msg
30.05.2017 12:01:47 [INFO    ] Sensor :10.20.30.32 (rpi-zw1) is online
30.05.2017 12:28:56 [INFO    ]  IN - LG since 2017-05-30-12:28:56. Seen by : 10.20.30.33 
30.05.2017 13:36:00 [INFO    ] OUT - LG since 2017-05-30-13:30:53.
30.05.2017 14:08:40 [INFO    ]  IN - LG since 2017-05-30-14:08:40. Seen by : 10.20.30.33 
30.05.2017 17:15:24 [INFO    ] OUT - LG since 2017-05-30-17:10:15.
Die lange Erkennungsdauer hatte ich oft, als sich BT und WLAN auf meinen Rb0 bekriegt hatten. Wenn die Verbindung abbricht laufen Prozesse ins timeout und das akkumuliert sich schnell. Kann nur spekulieren ob es bei Dir auch der Fall ist. Jedenfalls, wenn du die Wahl zwischen WLAN oder Netzwerkkabel hast, würden ich immer das letzte vorziehen.
Ich auch, aber die RPi0 haben kein LAN und zudem sind die an einer Stelle, wo ich froh bin, Strom hinzubekommen. Aber WLAN und BT gehen auf meinen RPi0 sowieso gar nicht, ich habe daher beiden einen USB-Stick verpasst, dem einen einen "grossen" der 5 GHz kann, dem anderen einen Nano-Stick, der auch 5 GHz könnte, was ich aber nicht zum Laufen bekomme, daher nur 2,4 GHz. Aber immerhin geht damit beides, er verliert also nicht mehr die Netzwerk-Verbindung, wie das zuvor immer der Fall war.
Versuch auch einmal die Geräte noch einem mit dem Ri3 zu pairen (pair) so wie in meinem Einrichtungsbeschreibung beschrieben.
Damit ging es ja ganz gut, bis ich das HM-Funkmodul in Betrieb genommen habe, danach gar nicht mehr, daher habe ich auf dem RPi3 WLAN und BT deaktiviert.
Die LED Diode ist noch nicht angekommen. Die Post ist nicht mehr was es einmal war :(
Ganz schlecht, die hatte ich vor über einer Woche abgeschickt (kleiner Polster-Umschlag) :-(
Wenn es bis ende der Wochen nicht kommt, bestelle ich mir die noch einmal. Hast du ein Link für mich, welche du bestellt hast?
Die hatte ich bestellt:
https://www.elv.de/lucky-light-led-ll-5 ... 0-mcd.html

Sind aber gerade nicht lieferbar, ich warte jetzt auch schon ein paar Wochen auf die, die ich nachbestellt hatte :-(


Viele Grüße,

thg

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

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von elvthg » 31.05.2017, 12:50

elvthg hat geschrieben:
Die LED Diode ist noch nicht angekommen. Die Post ist nicht mehr was es einmal war :(
Ganz schlecht, die hatte ich vor über einer Woche abgeschickt (kleiner Polster-Umschlag) :-(
immerhin sind sie nicht "verloren" gegangen, sondern kamen heute zurück "Empfänger nicht zu ermitteln". Adresse ist genau die, die Du mir als PM geschickt hattest, wenn Du die nochmal überprüfst und ggf. ergänzt, dann würde ich sie nochmal rausschicken ...

Viele Grüße,

thg

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 » 09.06.2017, 17:01

Hi,
ich habe ein Update für Spot hochgeladen. Eine der Neuerungen ist die Unterstützung einer RGB-LED. An dieser Stelle möchte ich mich an elvthg bedanken, der mir zwei RGB-LED zugeschickt hat.

Um Spot zu Aktualisieren empfehle ich die folgenden Schritte:

Code: Alles auswählen

cd /opt/
mv /opt/spot /tmp/ttspot
sudo git clone https://github.com/red-ip/spot.git
sudo chown -R pi /opt/spot
sudo chmod -R g+w /opt/spot
mv /tmp/ttspot/log/spot_check.log /opt/spot/log
python /opt/spot/spot.py -s
Bei diesen Vorgang wird die Konfigurationsdatei neu erstellt. Ihr könnt die alte mit dem folgenden Befehl einsehen:

Code: Alles auswählen

more /tmp/ttspot/spot.cfg 
Übernimmt die CCU IP und die Timer Einstellungen in die neue Konfigurationsdatei.

Code: Alles auswählen

mcedit /opt/spot/spot.cfg 
Denkt dran auch die Sensoren mit zu aktualisieren.

RGB-LED SUPPORT
Über eine normal RGB-LED kann die Anwesenheit am Sensor ausgegeben werden. Die RGB-LED
wird in der Konfigurationsdatei mit "rgbled_support = True" aktiviert. Ihr könnt dort auch die verwendeten GPIO's anpassen.
rgbled_red = 24
rgbled_green = 23
rgbled_blue = 25

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

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von elvthg » 10.06.2017, 16:12

Hallo Marius,

fleissig, fleissig, vielen Dank für Deine Arbeit :-)

Die neue Version ist installiert und die LED leuchtet, mal grün, mal blau, mal rot :-)

Was bedeutet blau? Grün/Rot sind anwesend/nicht anwesend, aber blau ist so ein "Zwischending".

Könnte man mit dem spot.py auch irgendwie Variablen von der CCU2 abfragen und dann mit der LED anzeigen? So als Rückmeldung das alles geklappt hat?


Ansonsten "kämpfe" ich leider immer noch mit meinen Sensoren (beides RPi0-W), der eine ist zu weit "um die Ecke" und verliert mein Handy immer, bei dem anderen bekomme ich das WLAN nicht stabil zum Laufen :-(

Die BT-Erkennung vom Spot-Sensor legt das integrierte WLAN nach etwa 1 Min. mehr oder weniger "lahm" (28% packet loss), den 5 GHz Nano-USB von Asus bekomme ich nach einem Update nicht mehr zum Laufen (das Kernel-Modul läßt sich nicht laden) und der 5 GHz USB-Stick des funktionierenden RPi0-W ist riesig, genauso gross wie der Pi0 selbst, mit einem fetten Adapter-Kabel dran :-(

Sieht fast so aus, als ob die Pi0-W nicht für den Zweck geeignet wären und ich doch wieder einen RPi3 mit Kabel nehmen muss :-(


Vielen Dank nochmal,

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 » 11.06.2017, 04:15

Hallo,

gerade "will" der Spot auf dem "Hauptknoten" nicht, ein Sensor läuft dort nicht:

Code: Alles auswählen

root@rpi-hm:/opt/spot# python spot.py -n -l
info     Load Config file.. /opt/spot/spot.cfg
------------------- Spot 1.5.2 -------------------
------------------- Log DEBUG manual set to True -------------------
debug    DEBUG LOG manual set to True 
Terminal Mode
info     Starting to collect parameters
debug    checking if ip interface is ready
debug    IP interface is ready to go! local IP : 10.20.30.29
debug    Running Auto Discovery for Sensors 
debug    sending broadcast to discover the sensors
debug    1 sensors discovered : {'10.20.30.32': '10002 '}
debug    Getting Devices for check from CCU2
debug    Connecting to the CCU to get device list : 10.20.30.25
info     Connection to the CCU establish (RX): 10.20.30.25
Traceback (most recent call last):
  File "spot.py", line 538, in <module>
    main()
  File "spot.py", line 204, in main
    devices_to_check = discovery_devices()
  File "spot.py", line 148, in discovery_devices
    devices_to_check = get_device_to_check()
  File "/opt/spot/core/homematic.py", line 35, in get_device_to_check
    root = ET.fromstring(html)                                              # read the xml information
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1301, in XML
    return parser.close()
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1654, in close
    self._raiseerror(v)
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1506, in _raiseerror
    raise err
xml.etree.ElementTree.ParseError: no element found: line 1, column 61
Ein Neustart des Raspis hat nichts gebracht, erst als ich auch den Sensor neu gestartet hatte, gibt es wieder. Irgendeine Idee?

Grüße elvthg

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 » 12.06.2017, 01:02

Hi,
scheint als würde das Addon "XML-API" auf der CCU nicht antworten.

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

Re: Anwesenheitserkennung mittels BT und RASPBERRY

Beitrag von elvthg » 12.06.2017, 01:18

Moin, moin,

"ging" alles so nicht mehr :-(

Den zweiten Pi0 habe ich nun "still" gelegt und Spot auf dem Raspi, auf dem auch YAHM läuft, deaktiviert. Dafür habe ich einen neuen Pi3 in Betrieb genommen, über Kabel, und dort Spot installiert. Tut bislang erstmal prinzipiell, obige Probleme sind damit "gelöst".

Trotzdem scheint es dort auch einen Fehler zu geben:

Code: Alles auswählen

debug    Rediscovering Sensor and devices. Loop : 15
debug    Connecting to the CCU to get device list : 10.20.30.25
debug    sending broadcast to discover the sensors
debug    2 sensors discovered : {'None': '10002 ', '10.20.30.32': '10002 '}
debug    checking if : None . ready to receive the device list
debug    Sensor ping failed to : None . Moving on to the next sensor
info     Sensor : None . Disconnected
debug    checking if : 10.20.30.32 . ready to receive the device list
debug    10.20.30.32 . is ready to receive the device list. Sending list..
debug    10.20.30.32 done..
debug    Beginning to calculate the presence information from the Sensors
debug    xx:xx:xx:xx:xx:xx remains unavailable
debug    xx:xx:xx:xx:xx:xx remains unavailable
debug    xx:xx:xx:xx:xx:xx is still present. Loop : 15 Seen by : 10.20.30.32 
debug    xx:xx:xx:xx:xx:xx is first time no seen. Loop : 15
debug    xx:xx:xx:xx:xx:xx remains unavailable
debug    xx:xx:xx:xx:xx:xx is still present. Loop : 15 Seen by : 10.20.30.32 
debug    xx:xx:xx:xx:xx:xx remains unavailable
debug    2 of 7 are in the coverage of Spot
debug    going sleep for 20.0 s
Warum findet Spot seinen eigenen, lokalen Sensor nicht?

Bislang ging das eigentlich immer ...

EDIT: Es scheint sogar so zu sein, das er seinen Sensor "verliert", denn nach dem Reboot war auch der Lokale erstmal da:

Code: Alles auswählen

info     Load Config file.. /opt/spot/spot.cfg
------------------- Spot 1.5.2 -------------------
------------------- Log DEBUG manual set to True -------------------
debug    DEBUG LOG manual set to True 
Terminal Mode
Local Sensor Mode Enabled - You will need to stop the Sensor manually : python spot_sensor.py -s
debug    Script file is present, OK .
debug    Script is already running, OK .
info     Starting to collect parameters
debug    checking if ip interface is ready
debug    IP interface is ready to go! local IP : 10.20.30.28
debug    Running Auto Discovery for Sensors 
debug    sending broadcast to discover the sensors
debug    2 sensors discovered : {'10.20.30.28': '10002 ', '10.20.30.32': '10002 '}
debug    Getting Devices for check from CCU2
debug    Connecting to the CCU to get device list : 10.20.30.25
info     Connection to the CCU establish (RX): 10.20.30.25
info     All parameters collected. System OK -> STARTING WORK
debug    checking if : 10.20.30.28 . ready to receive the device list
debug    10.20.30.28 . is ready to receive the device list. Sending list..
debug    10.20.30.28 done..
...
debug    going sleep for 20.0 s
debug    checking if : 10.20.30.28 . ready to receive the device list
debug    Sensor ping failed to : 10.20.30.28 . Moving on to the next sensor
info     Sensor : 10.20.30.28 . Disconnected
debug    checking if : 10.20.30.32 . ready to receive the device list
debug    10.20.30.32 . is ready to receive the device list. Sending list..
Grüße elvthg

Antworten

Zurück zu „Projektvorstellungen“