FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: maluk am 07 Mai 2018, 20:40:06

Titel: Modul für Netgear Arlo-Kameras (Python-Version)
Beitrag von: maluk am 07 Mai 2018, 20:40:06
Bitte beachten: dieses Modul habe ich inzwischen durch ein neues Modul ersetzt, das kein Python mehr benötigt (siehe https://forum.fhem.de/index.php/topic,94025.0.html). Das nachfolgend beschriebene Modul wird daher nicht mehr weiterentwickelt.

Arlo Sicherheitskameras von NETGEAR werden über eine Basisstation an die Arlo Cloud angebunden. Dieses Modul nutzt das Python-Modul "arlo" (https://github.com/jeffreydwalter/arlo). Für die Kommunikation wird ein Python-Prozess als Server gestartet, der die Verbindung zur Arlo Cloud aufbaut und per HTTP Befehle von FHEM empfängt.

Um das Modul nutzen zu können, müssen zunächst einige Python-Module installiert werden:

Falls Pip noch nicht installiert ist, zunächst dieses installieren:

sudo apt-get install python-pip
sudo apt-get install python-cffi


Danach mit pip folgende Module installieren:


sudo pip install urllib3[secure]
sudo pip install sseclient
sudo pip install git+https://github.com/jeffreydwalter/arlo
sudo pip install fhem


Falls dies nicht funktioniert, kann man noch mit dem Parameter "-i https://pypi.python.org/simple" den Server festlegen, von dem die Installations-Informationen geholt werden sollen,
also z.B. sudo pip install -i https://pypi.python.org/simple cffi

Die beiden Dateien 49_Arlo.pm und 49_Arlo.py herunterladen und nach /opt/fhem/FHEM kopieren. Der fhem-User muss später Leserechte auf die beiden Dateien haben. Falls FHEM nicht neu gestartet werden soll, kann das Modul mit reload 49_Arlo geladen werden.

Nun muss die Verbindung zur Arlo Cloud hergestellt werden. Dies erfolgt in FHEM mit folgendem Befehl:

define Arlo_Cloud Arlo ACCOUNT hans.mustermann@xyz.de meinPasswort

hans.mustermann@xyz.de durch die E-Mail-Adresse ersetzen, mit der man bei Arlo registriert ist, meinPasswort durch das Passwort dort. Nach dem Define wird der Python-Server auf Port 8001 gestartet. Sollte dieser Port bereits durch einen anderen Prozess belegt sein, kann beim Define als dritter Parameter hinter Username und Passwort ein anderer Port angeben werden.

Nach der erfolgreichen Definition des Account kann auf dem neu erzeugten Device set Arlo_Cloud autocreate aufgerufen werden. Dies legt die Basistation(en) an, die zu dem Arlo Account zugeordnet sind. Das neue Device befindet sich im Raum Arlo.

Um die Kameras anzulegen, muss auf dem Device der Basisstation erneut ein autocreate ausgeführt werden: set Arlo_Basisstation autocreate, wobei Arlo_Basisstation durch die erkannte Basissation zu ersetzen ist. Danach sind die Kameras ebenfalls im Raum Arlo vorhanden.

Folgende Funktionen stehen für die Devices zur Verfügung:

Account:
Basisstation:
Kamera:

Noch einige Hinweise zur Funktionsweise:
Das Modul wird vermutlich nur unter Linux funktionieren. Es muss auf jeden Fall ein Verzeichnis /tmp vorhanden sein und der FHEM-User muss Schreibzugriff auf dieses Verzeichnis haben. Der Python-Server schreibt ein Logfile /tmp/arlo.log, in dem man bei Problemen evtl. Hinweise findet. Um mehr Details zu bekommen, kann in 49_Arlo.py der Loglevel temporär auf DEBUG gesetzt werden.
Danach muss über FHEM der Server neu gestartet werden (zuerst set Arlo_Cloud stopServer, kurz warten, dann set Arlo_Cloud startServer).

Der Python-Server verbindet sich über Telnet wieder mit FHEM, um Befehle absetzen zu können. Wenn für Telnet ein Passwort in FHEM hinterlegt ist, wird dieses aus der Konfiguration ausgelesen und an den Python-Server übergeben. Ich habe bisher noch nicht ohne Telnet-Passwort getestet. Es müsste eigentlich funktionieren, falls es aber Probleme gibt bitte melden.

Der Python-Server bekommt über einen separaten Thread Änderungen vom Arlo Cloudserver mit. Wenn z.B. Bewegung erkannt wird, ändert sich der activityState der betroffenen Kamera zuerst auf alertStreamActive. Wenn man in FHEM Events bei Bewegung auslösen möchte, muss man dieses Reading überwachen.

Eigentlich bekommt FHEM alle Änderungen über den Python-Server mit. Trotzdem ist ein Auto-Polling implementiert, das jede Stunde den Status der Basisstation und der Kameras abfrägt. Um das Poll-Intervall anzupassen, muss an der Basisstation in FHEM das Attribut interval gesetzt werden (in Sekunden, also 1 Stunde = 3600). Um das Polling komplett zu deaktivieren, muss das Attribut disable für die Basisstation auf 1 gesetzt werden.

Bitte beachten, dass der Python-Server aktuell nur mit einer Basisstation funktioniert. Falls jemand mehrere Basisstationen im Einsatz hat, bitte melden.

Update 10.05.2018:
- Bugfixing beim Starten von Aufnahmen. Während der Aufnahme gibt es jetzt auch ein reading streamUrl mit einem RTSPS-Link zur aktuellen Aufnahme
- Probleme mit falscher Reihenfolgen im Python-Pfad für einige Raspberries behoben

Update 12.05.2018
- an der Basisstation kann mit set mode <Mode-Name> ein benutzerdefinierter Modus gesetzt werden (alternativ zu arm/disarm)

Update 19.05.2018
- am Cloud-Device können jetzt die Attribute downloadDir und downloadLink gesetzt werden. Damit werden die Videos und Bilder aus der Cloud auf das lokale System kopiert.

Update 21.06.2018
- bei Verbindungsabbrüchen (z.B. DSL-Zwangstrennung) erfolgt korrekter neuer Verbindungsaufbau zum Netgear-Server
- Sirene der Basisstation kann jetzt ausgelöst werden (set siren on/off)
- Helligkeit der Kameras kann angepasst werden (set brigtness)

Update 22.06.2018
- Unterstützung mehrerer Basisstationen

Update 14.10.2018
- Umstellung auf NonBlocking-Calls zum Server
- Angabe des Server-Ports beim Define des Cloud-Devices wurde ignoriert

Update 21.10.2018
- Telnet-Port und -Passwort können im define des Cloud-Devices jetzt optional manuell gesetzt werden. Normalerweise werden beide Parameter automatisch erkannt.

Update 24.11.2018
- verbessertes Fehler-Handling bei Verbindungsabbrüchen
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 07 Mai 2018, 22:37:00
Hallo maluk,

gerade alles eingerichtet. Bis auf leichte Installationsprobleme wg. fehlende Abhängigkeiten klappt alles.
Basis Station und Kameras werden mittels autocreate erkannt. Arm/Disarm funktioniert auch zuverlässig.
Als nächstes werde ich versuchen die Aufnahmen abzufragen.

Danke für das Modul.

Grüße,
Vampy

Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 07 Mai 2018, 22:49:57
Der Server verbraucht die verfügbare CPU, Arlo log ist voll mit dieser Warnung:


2018-05-07 22:27:53,331 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-07 22:27:53,340 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-07 22:27:53,349 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-07 22:27:53,357 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-07 22:27:53,366 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 08 Mai 2018, 13:39:28
sehr cool!! Werde ich über Auffahrt ausprobieren.

Was das ganze abrunden würde, wäre noch ein Event/Reading sobald motion detected wurde.  Dies brauche ich, um die Alarmanlage auszulösen. Z.Z. mach ich den Umweg via IFTTT. Ginge sowas?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 08 Mai 2018, 17:53:53
Das Deinstallieren von sseclient-py hat den CPU Verbrauch wesentlich reduziert und die Warnungen im Log sind weg.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 08 Mai 2018, 20:15:25
Ich bin mir nicht sicher, ob das Python-Arlo-Modul ohne sseclient funktioniert. Versuche mal folgendes: stoppe den Python-Server, installiere nochmal sseclient-py, lösche /tmp/arlo.log und starte dann nochmal den Python-Server. Danach bitte mal die ersten Zeilen von /tmp/arlo.log posten, vielleicht erkennt man dort den Fehler.

Ich verwende das Modul auf einem Cubietruck und bei mir verbraucht das Modul meistens zwischen 0,3 und 0,7% CPU.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 08 Mai 2018, 20:38:54
Hab ich gemacht:
2018-05-08 20:34:20,971 INFO: Started arlo http server on port 8001
2018-05-08 20:34:20,974 INFO: Start event handler
2018-05-08 20:34:20,980 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-08 20:34:20,989 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-08 20:34:20,998 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-08 20:34:21,007 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-08 20:34:21,022 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-08 20:34:21,034 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-08 20:34:21,043 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-08 20:34:21,052 WARNING: 'EventStream' object has no attribute 'event_stream_thread'
2018-05-08 20:34:21,061 WARNING: 'EventStream' object has no attribute 'event_stream_thread'


Den Trick mit sseclient-py habe ich von hier: https://github.com/jeffreydwalter/arlo/issues/54

Arm/Disarm funktioniert wunderbar, aber den Rest bekomme ich nicht hin. Es werden auch keine Readings angelegt.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 08 Mai 2018, 21:05:41
Kannst du mal noch im FHEM-Log prüfen, ob dort noch um 20:34 Uhr  irgendwelche Fehlermeldungen von Python ausgegeben wurden?

Aber wahrscheinlich ist das tatsächlich die Lösung, da sseclient ja bestehen bleibt. Wenn der Rest nicht funktioniert, bitte mal in meinem Modul 49_Arlo.py den Log-Level auf DEBUG stellen. Dort müsste man dann eigentlich Events sehen, die von Arlo zurückgesendet werden.

Hast du in der Basisstation das set autocreate ausgeführt? Falls ja, wurden keine Kameras erkannt?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 08 Mai 2018, 21:22:20
@choetzu: das Event für deine Alarmanlage kannst du ganz leicht über Notify erzeugen:

define Terasse_Bewegung notify Kamera_Terrasse:activityState:.alertStreamActive { Log 1, "Bewegung auf Terrasse erkannt"}

Kamera_Terrasse ist in diesem Beispiel der FHEM Device-Name der betroffenen Kamera. Wenn Bewegung erkannt und die Aufnahme gestartet wird, wechselt das Reading activityState auf den Wert alertStreamActive. Der wird einfach obe abgefragt und eine Aktion ausgeführt (im Beispiel die Ausgabe ins Logfile).
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 08 Mai 2018, 21:22:40
Ab 20:34 steht folgendes im FHEM log:

Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0xb60f4cf0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0xb60f4810>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0xb60f4cf0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0xb60f4810>> ignored


autocreate hat funktioniert und die Kameras wurden erkannt.

Und hier noch Arlo.log mit Debug:

2018-05-08 21:25:57,331 DEBUG: Starting new HTTPS connection (1): arlo.netgear.com
2018-05-08 21:25:58,017 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/login/v2 HTTP/1.1" 200 630
2018-05-08 21:25:58,256 DEBUG: https://arlo.netgear.com:443 "GET /hmsweb/users/devices HTTP/1.1" 200 None
2018-05-08 21:25:58,290 INFO: Started arlo http server on port 8001
2018-05-08 21:25:58,293 INFO: Start event handler
2018-05-08 21:25:58,586 DEBUG: https://arlo.netgear.com:443 "GET /hmsweb/client/subscribe?token=*************************** HTTP/1.1" 200 None
2018-05-08 21:25:59,152 DEBUG: Starting new HTTPS connection (2): arlo.netgear.com
2018-05-08 21:25:59,729 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 None
2018-05-08 21:26:29,526 DEBUG: https://arlo.netgear.com:443 "GET /hmsweb/users/devices HTTP/1.1" 200 3520
2018-05-08 21:26:29,672 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:26:29,775 DEBUG: {u'resource': u'modes', u'to': u'HS*******99_web', u'action': u'is', u'from': u'48E4******CE', u'transId': u'web!18c9********50', u'properties': {u'active': u'mode0', u'modes': [{u'rules': [], u'type': u'disarmed', u'name': u'', u'id': u'mode0'}, {u'rules': [u'rule0', u'rule2'], u'type': u'armed', u'name': u'', u'id': u'mode1'}, {u'rules': [u'rule1'], u'name': u'test', u'id': u'mode2'}]}}
2018-05-08 21:26:29,779 INFO: Send command to FHEM: set myArloCloud reading 48E4****CE state disarmed
2018-05-08 21:26:29,816 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:26:30,426 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 08 Mai 2018, 21:47:27
Offensichtlich sind sseclient-py und jeffreydwalter/arlo inkompatibel, daher war die Deinstallation von sseclient-py richtig. Werden bei deinen Kameras die Readings batteryLevel, chargingState, signalStrength und state korrekt angezeigt? Diese Readings werden angelegt/aktualisiert, wenn man set Basisstation updateReadings aufruft.

Außerdem kannst du noch prüfen, in welchem Intervall im /tmp/arlo.log der Request "POST /hmsweb/users/devices/notify" ausgeführt wird. Das sollte nur alle 30 Sekunden erfolgen. Bis vor ein paar Tagen hatte jeffreydwalter/arlo noch einen Fehler und hat alle 2 Sekunden diese Heartbeat-Request ausgeführt.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 08 Mai 2018, 22:00:52
Das ist ja das Problem, die Readings werden erst gar nicht angelegt.


2018-05-08 21:26:29,816 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:26:30,426 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:27:00,846 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:27:31,342 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:28:02,303 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:28:38,529 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:29:09,216 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:29:39,741 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:29:40,346 DEBUG: https://arlo.netgear.com:443 "GET /hmsweb/users/devices HTTP/1.1" 200 3518
2018-05-08 21:29:40,491 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:29:40,631 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4*****CE HTTP/1.1" 200 16
2018-05-08 21:30:10,137 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:30:40,630 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:31:11,108 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:31:41,597 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 21:32:12,042 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 22:01:52,688 DEBUG: Resetting dropped connection: arlo.netgear.com
2018-05-08 22:01:53,409 DEBUG: https://arlo.netgear.com:443 "GET /hmsweb/users/devices HTTP/1.1" 200 3522
2018-05-08 22:01:53,554 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16
2018-05-08 22:01:53,696 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E4******CE HTTP/1.1" 200 16


Die 30 Sekunden scheinen eingehalten zu werden, aber seit 21:32 gibt es keinen LogEintrag mehr, obwohl der Server noch läuft.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 08 Mai 2018, 22:11:49
i
Zitat von: maluk am 08 Mai 2018, 21:22:20
@choetzu: das Event für deine Alarmanlage kannst du ganz leicht über Notify erzeugen:

define Terasse_Bewegung notify Kamera_Terrasse:activityState:.alertStreamActive { Log 1, "Bewegung auf Terrasse erkannt"}

Kamera_Terrasse ist in diesem Beispiel der FHEM Device-Name der betroffenen Kamera. Wenn Bewegung erkannt und die Aufnahme gestartet wird, wechselt das Reading activityState auf den Wert alertStreamActive. Der wird einfach obe abgefragt und eine Aktion ausgeführt (im Beispiel die Ausgabe ins Logfile).
Super herzlichen Dank.

Ich habs auch grad gemäss deiner Anleitung installiert. Basisstation und die Kameras wurden alle erkannt. Aber ich habe genau das selbe Problem wie Vampy20. Da geht die Post ab im Log...

Leider weiss ich nicht, wie man sseclient-py deinstalliert. Mit
sudo apt remove sseclient-py
hat es nicht funktioniert.

Ich habe nun alles wieder deleted. Warte bis Vampy20 Problem gelöst ist...

Lg c
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 08 Mai 2018, 22:13:23
Zitat von: choetzu am 08 Mai 2018, 22:11:49
Leider weiss ich nicht, wie man sseclient-py deinstalliert. Mit

Versuch es mit
sudo pip uninstall sseclient-py
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 08 Mai 2018, 22:32:57
Zitat von: Vampy20 am 08 Mai 2018, 22:13:23
Versuch es mit
sudo pip uninstall sseclient-py

danke. ich teste es morgen. Bei dir funktioniert es ohne sseclient-py problemlos? Nicht dass ich es lösche und dann sind andere Programme/Module davon abhängig.

danke. lg c
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 08 Mai 2018, 23:07:09
Ich habe das Modul jetzt auf einem Raspberry 2 bei mir installiert und kann das Problem nachvollziehen. Lösung gibt es heute keine mehr, aber Nachvollziehbarkeit ist ja das Wichtigste beim Fehlersuchen  :)
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 08 Mai 2018, 23:32:20
Ich habe das Problem gefunden - auf dem Raspberry muss sseclient aktualisiert werden:

sudo pip install --upgrade sseclient

Ich hatte bei mir vorher noch cffi aktualisiert, aber das hatte keine Auswirkung. Daher bitte nur ausführen, falls der obige Upgrade alleine nicht hilft:

sudo apt-get update
sudo apt-get install libffi-dev
sudo pip install --upgrade cffi
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 09 Mai 2018, 08:13:24
danke. ich habe es gemäss deiner Anleitung gemacht.

bei mir kommt es weiterhin zu den Fehlermeldungen:

Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12eb0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75f12dd0>> ignored
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 09 Mai 2018, 19:58:30
sseclient aktualisiert, leider immer noch keine Readings vorhanden :-(

ich habe mal versucht mittels Logausgaben zu debuggen:


sub Arlo_Python($$) {
.......
  my ($err, $data) = HttpUtils_BlockingGet({
    url => "http://localhost:$port/$subtype?device=$name&cmd=$command&basestationId=$basestationId&cameraId=$cameraId",
    timeout => 15, noshutdown => 1});
  Log3 $name, 3, "Vampy: Komme hier vorbei";

  if ($err) {
    Log3 $name, 2, "Error occured when calling Arlo daemon: $err";
  } elsif ($data) {
    Log3 $name, 3, "Vampy: Hier nicht mehr";
.......


Evtl. hilft das weiter
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 09 Mai 2018, 21:09:43
@Vampy20: wichtig sind die Ausgaben aus /tmp/arlo.log. Auf jeden Fall muss dort der Loglevel auf DEBUG stehen, damit man alle Aktivitäten erkennen kann. Die Rückmeldungen kommen nicht bei den Aufrufen von FHEM, sondern asynchron über SSE. Wenn SSE funktioniert, kann es auch noch am Zurückschreiben nach FHEM liegen. Ist bei dir Telnet in FHEM aktiviert? Falls ja, verwendest du ein Passwort?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 09 Mai 2018, 21:22:23
@choetzu: bitte prüfe mal, ob dem FHEM-Logfiles Arlo-Fehlermeldungen findest. Falls nicht bitte mal in der Datei /usr/local/lib/python2.7/dist-packages/Arlo.py in Zeile 58 pass durch raise ersetzen. Danach stopServer und startServer ausführen und die beiden Logfiles prüfen (/tmp/arlo.log und FHEM-Log). Eigentlich müsste es dann eine Fehlermeldung geben, weil es ja offensichtlich Probleme beim Aufbau des EventStream gibt.

Ich hätte nicht gedacht, dass Python solche Probleme verursacht :(
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 09 Mai 2018, 21:32:37
Telnet ist eingerichtet (ohne Pwd  :o)

Im Arlo.log ist nichts anderes zu sehen als das was ich gestern schon gepostet habe.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 09 Mai 2018, 21:35:45
Ich glaube wir kommen der Sache näher. Nachdem ich dein ersten Post noch einmal durchgelesen habe, habe ich ein Pwd für Telnet eingerichtet. Jetzt habe ich im Arlo.log Einträge wie diesen

2018-05-09 22:06:09,530 INFO: Send command to FHEM: set myArloCloud readings 4N7***F on 67 2
2018-05-09 22:06:09,534 WARNING: [Errno 32] Broken pipe
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: phil82 am 09 Mai 2018, 22:34:35
Hallo maluk,

erstmal Danke für dein Modul. Sowas kann ich gut gebrauchen.
Ich hab mir vor zwei Wochen ein recht einfaches Skript mit dem Python-Arlo-Modul und dem Python-Fhem-Modul gebaut. Allerdings nur ein recht einfaches Python Sktipt, dass auf Bewegungen reagiert und die URLs an Dummy-Devices meldet. Das Skript lauft bei mir unter Python3.

Da dein Skipt auf dem ersten Blick recht viel versprechend aussieht, habe ich es direkt ausprobiert. Ich scheitere aktuell aber an dem Autocreate für die Kameras. Das Autocreate für die Basisstation (also set arloAccount autocreate) hat funktioniert und die Basisstation wird angelegt.

Bei "set arloBasis autocreate" bekommt ich aber folgende Fehler im Fhem-Log:

127.0.0.1 - - [09/May/2018 22:17:06] "GET /BASESTATION?device=sysArloBasis&cmd=autocreate&basestationId=48xxxxxxxxxxx7F&cameraId= HTTP/1.0" 200 -
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.7/SocketServer.py", line 652, in __init__
    self.handle()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
    self.handle_one_request()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
    method()
  File "FHEM/49_Arlo.py", line 274, in do_GET
    self.wfile.write(response.strip())
  File "/usr/lib/python2.7/socket.py", line 320, in write
    data = str(data) # XXX Should really reject non-string non-buffers
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 29: ordinal not in range(128)


Bei "set arloBasis updateReading" bekomme ich folgenden Fehler im Fhem-Log:

127.0.0.1 - - [09/May/2018 22:17:52] "GET /BASESTATION?device=sysArloBasis&cmd=updateReadings&basestationId=48xxxxxxxxxxx7F&cameraId= HTTP/1.0" 200 -
2018.05.09 22:17:53 1: ERROR: empty name in readingsBeginUpdate
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBeginUpdate           called by ./FHEM/49_Arlo.pm (300)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)
2018.05.09 22:17:53 1: readingsUpdate(,batteryLevel,93) missed to call readingsBeginUpdate first.
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (301)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)
2018.05.09 22:17:53 1: readingsUpdate(,signalStrength,4) missed to call readingsBeginUpdate first.
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (302)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)
2018.05.09 22:17:53 1: readingsUpdate(,state,on) missed to call readingsBeginUpdate first.
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (303)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)
2018.05.09 22:17:53 1: ERROR: empty name in readingsBeginUpdate
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBeginUpdate           called by ./FHEM/49_Arlo.pm (300)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)
2018.05.09 22:17:53 1: readingsUpdate(,batteryLevel,79) missed to call readingsBeginUpdate first.
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (301)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)
2018.05.09 22:17:53 1: readingsUpdate(,signalStrength,3) missed to call readingsBeginUpdate first.
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (302)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)
2018.05.09 22:17:53 1: readingsUpdate(,state,on) missed to call readingsBeginUpdate first.
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (303)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)
2018.05.09 22:17:53 1: ERROR: empty name in readingsBeginUpdate
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBeginUpdate           called by ./FHEM/49_Arlo.pm (300)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)
2018.05.09 22:17:53 1: readingsUpdate(,batteryLevel,96) missed to call readingsBeginUpdate first.
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (301)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)
2018.05.09 22:17:53 1: readingsUpdate(,signalStrength,3) missed to call readingsBeginUpdate first.
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (302)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)
2018.05.09 22:17:53 1: readingsUpdate(,state,on) missed to call readingsBeginUpdate first.
2018.05.09 22:17:53 1: stacktrace:
2018.05.09 22:17:53 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (303)
2018.05.09 22:17:53 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.09 22:17:53 1:     main::Arlo_Set                      called by fhem.pl (3545)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.09 22:17:53 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.09 22:17:53 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.09 22:17:53 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.09 22:17:53 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.09 22:17:53 1:     main::telnet_Read                   called by fhem.pl (3550)
2018.05.09 22:17:53 1:     main::CallFn                        called by fhem.pl (708)


/tmp/arlo.log sieht harmlos aus:

2018-05-09 22:16:40,670 INFO: Start event handler
2018-05-09 22:16:40,678 INFO: Started arlo http server on port 8001
2018-05-09 22:17:36,162 INFO: Send command to FHEM: set sysArlo reading 48xxxxxxxxxxx7F state armed
2018-05-09 22:17:36,782 INFO: Send command to FHEM: set sysArlo readings 4Nxxxxxxxxxxx9E on 93 4
2018-05-09 22:17:36,783 INFO: Send command to FHEM: set sysArlo readings 4NxxxxxxxxxxxF6 on 79 3
2018-05-09 22:17:36,784 INFO: Send command to FHEM: set sysArlo readings 4NxxxxxxxxxxxE7 on 96 3
2018-05-09 22:17:53,009 INFO: Send command to FHEM: set sysArlo reading 48E5787BA0B7F state armed
2018-05-09 22:17:53,575 INFO: Send command to FHEM: set sysArlo readings 4Nxxxxxxxxxxx9E on 93 4
2018-05-09 22:17:53,576 INFO: Send command to FHEM: set sysArlo readings 4NxxxxxxxxxxxF6 on 79 3
2018-05-09 22:17:53,576 INFO: Send command to FHEM: set sysArlo readings 4NxxxxxxxxxxxE7 on 96 3


Hast du irgendeine Idee?

Ich hatte im übrigen ebenfalls einige Probleme mit Installtion und hab mir zwischenzeitlich irgendwie die Python-Installtion zerschossen. Das lag aber eher an der Fehlersucher nach dem oben genannten Problem.

Gruß
Philipp
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 09 Mai 2018, 22:47:18
Hallo phil82,

ich vermute mal, dass du in deinen Kamera-Namen Sonderzeichen/Umlaute verwendet hast. Falls ja, bitte mal temporär Kamera umbenennen.

Die Perl-Fehler in FHEM sind dann Folgefehler, da er versucht Kameras zu aktualisieren, die nicht vorhanden sind. Das kann man natürlich fehlertoleranter programmieren und das werde ich auch nachholen.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 09 Mai 2018, 23:20:28
@Vampy20: es müsste eigentlich auch ohne Passwort gehen. Vorher kamen die FHEM-Befehle nie im arlo.log, oder? Nehme dein Passwort nochmal raus und prüfe, ob dann immer noch "Broken pipe" kommt. Ich habe jetzt meine Raspberry-Installation auch wieder kaputt gemacht - cffi und sseclient deinstalliert und neu installiert, seither funktioniert es bei mir auch nicht mehr richtig.

Ich suche noch nach dem eigentlichen Fehler, der sich aber in dem Arlo-Modul befindet, das ich auch nur eingebunden habe. Es gibt bestimmte Konstellationen, wann das Modul nicht regulär startet. Das Problem scheint aber nur auf dem Raspberry aufzutreten.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 09 Mai 2018, 23:20:52
Zitat von: maluk am 09 Mai 2018, 21:22:23
@choetzu: bitte prüfe mal, ob dem FHEM-Logfiles Arlo-Fehlermeldungen findest. Falls nicht bitte mal in der Datei /usr/local/lib/python2.7/dist-packages/Arlo.py in Zeile 58 pass durch raise ersetzen. Danach stopServer und startServer ausführen und die beiden Logfiles prüfen (/tmp/arlo.log und FHEM-Log). Eigentlich müsste es dann eine Fehlermeldung geben, weil es ja offensichtlich Probleme beim Aufbau des EventStream gibt.

Ich hätte nicht gedacht, dass Python solche Probleme verursacht :(

Hallo, meine Fehlermeldungen sind aush dem FHEM-Logfile. Es sind tausende. Ich habe dann Schluss wieder deinstalliert. Folgende Meldung kam auch noch ganz am Schluss.

Exception AttributeError127.0.0.1 - - [09/May/2018 08:13:41] "GET /SHUTDOWN HTTP/1.0" 200 -
: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75ed6810>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x75ed6250>> ignored



Ich habe pass durch raise ersetzt und danach im /tmp/arlo.log geschaut. Gleiche Situation:

2018-05-09 23:17:29,821 INFO: Start event handler
2018-05-09 23:17:29,822 WARNING: __init__() got an unexpected keyword argument 'session'
2018-05-09 23:17:29,824 INFO: Started arlo http server on port 8001
2018-05-09 23:17:29,824 WARNING: __init__() got an unexpected keyword argument 'session'
2018-05-09 23:17:29,826 WARNING: __init__() got an unexpected keyword argument 'session'
2018-05-09 23:17:29,827 WARNING: __init__() got an unexpected keyword argument 'session'
2018-05-09 23:17:29,829 WARNING: __init__() got an unexpected keyword argument 'session'
2018-05-09 23:17:29,830 WARNING: __init__() got an unexpected keyword argument 'session'
.....usw
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 09 Mai 2018, 23:25:58
da ich nicht wusste wie genau ich stopServer/startServer mache (FHEM? Phyton?) hab ich einfach einen Restart vom Raspi gemacht.

Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: phil82 am 09 Mai 2018, 23:56:39
Zitat von: maluk am 09 Mai 2018, 22:47:18
Hallo phil82,

ich vermute mal, dass du in deinen Kamera-Namen Sonderzeichen/Umlaute verwendet hast. Falls ja, bitte mal temporär Kamera umbenennen.

Die Perl-Fehler in FHEM sind dann Folgefehler, da er versucht Kameras zu aktualisieren, die nicht vorhanden sind. Das kann man natürlich fehlertoleranter programmieren und das werde ich auch nachholen.

@maluk:
Ja genau das war das Problem. Die eine Kamera hieß "Haustür". Jetzt "Haustuer".
Bei mir läuft das Modul dann erstmal soweit. Snapshot und Aufnahmen haben erstmal funktioniert. Weitere Tests laufen.

@choetzu:
Das Problem mit dem "EventStream" liegt vermutlich an irgendeinem "sseclient"-Pythonmodul. Wenn bei mit "sseclient-py" installiert ist, dann bekomme ich genau diese Fehlermeldungen von dir. Gleiches Problem hatte auch Vampy20.
Schau mal mit
sudo pip list
nach, welche Python-Modele installiert sind.
Bei mit ist es:
  arlo (1.1.3)
  certifi (2018.4.16)
  cffi (1.11.5)
  chardet (3.0.4)
  cryptography (1.7.1)
  enum34 (1.1.6)
  fhem (0.5.1)
  idna (2.6)
  ipaddress (1.0.17)
  keyring (10.1)
  keyrings.alt (1.3)
  monotonic (1.5)
  pip (9.0.1)
  ply (3.9)
  pyasn1 (0.1.9)
  pycparser (2.18)
  pycrypto (2.6.1)
  pygobject (3.22.0)
  pyOpenSSL (16.2.0)
  PySocks (1.6.8)
  pyxdg (0.25)
  requests (2.18.4)
  SecretStorage (2.3.1)
  setuptools (33.1.1)
  six (1.11.0)
  sseclient (0.0.19)
  urllib3 (1.22)
  wheel (0.29.0)
Die in Fett sind vermutlich die relevanten.
Siehe auch https://github.com/jeffreydwalter/arlo unter Note2
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: phil82 am 10 Mai 2018, 00:56:34
Hallo zusammen,

ich hab jetzt etwas weiter geteset und den Debug-Modus eingeschaltet.

Aktuell habe ich folgendes Problem:
Wenn kein Telnet-Passwort vergeben wird, dann funktioniert die Verbindung zu Fhem nicht richtig.
Das liegt meiner Meinung daran, dass fhemPassword = None (Zeile 320) gesetzt wird und der Verbindungsaufbau in "fhemConnection(self)" mit None erfolgt. Damit scheint das Fhem-Modul nicht zurecht zu kommen und hängt sich auf.
Das hat zur Folge, dass die Camera-Reading nicht gesetzt werden, keine Bewegungserkennung erfolgt und ein "updateReading" nicht "ankommt". Ich glaub sogar, dass dieser Arlo-Event-Stream nicht mehr verarbeitet wird, da nur ein Event im Log-File steht.
Ich hab bei mir einfach fhemPassword = "" gesetzt, dann funktioniert der Aufbau.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 10 Mai 2018, 09:30:42
hallo phil82
herzlichen Dank für deine Hilfe. Ich habe erneut sseclient-py gelöscht. Und jetzt kommen die Fehlermeldungen nicht mehr. Komisch, das habe ich schonmal gemacht und da hats nicht geklappt. Vermutlich ein Anwenderfehler ;)

Dafür aber habe ich nun etliche andere Fehlermeldung analog deinem Post #23

Telnet hat beim mir ein Passwort.

Da ich leider keinen Beitrag zur Problemlösung beitragen kann, werde ich einfach als Testperson zur Verfügung stehen und berichten ob was geht oder nicht. ;) Ich hoffe, das ist OK.

Lg c
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 10 Mai 2018, 10:44:33
Ich kann jetzt schon recht sicher sagen, dass das Problem auf dem Raspberry mit einer veralteten Version von urllib3 zu tun hat. Ihr könnt auf jeden Fall schon mal versuchen, mit sudo pip install -U urllib3 die urllib3 auf den neuesten Stand zu bringen.

Ich habe bei mir das Problem, dass im Python-Path /usr/lib/python2.7/dist-packages vor /usr/local/lib/python2.7/dist-packages. Daher wird immer die veraltete (von Debian installierte) Version von urllib3 verwendet. Ich werde noch etwas experimientieren und Euch auf dem Laufenden halten.

Ihr könnt ganz einfach prüfen, ob Ihr auch betroffen seid. Bitte folgendes Mini-Python-Pogramm schreiben und ausführen:

import sys
print(sys.path)


Falls die Reihenfolge hier auch falsch ist, könnt Ihr vermutlich mit folgendem Dirty Hack schnell zum Ergebnis kommen:

cd /usr/lib/python2.7/dist-packages
sudo mv urllib3 urllib3_org


So findet Python die veraltete Version von urllib3 nicht mehr und nimmt die richtige Version aus /usr/local/lib/python2.7/dist-packages

Auf meinem Cubietruck läuft alles korrekt, da dort die Python-Path-Reihenfolge richtig ist, also /usr/local/lib vor /usr/lib
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 10 Mai 2018, 10:54:51
Danke für den Hinweis, ich habe deine Änderung übernommen und 49_Arlo.py neu hochgeladen. Ohne Test funktioniert halt doch nichts  ;)

Zitat von: phil82 am 10 Mai 2018, 00:56:34
Hallo zusammen,

ich hab jetzt etwas weiter geteset und den Debug-Modus eingeschaltet.

Aktuell habe ich folgendes Problem:
Wenn kein Telnet-Passwort vergeben wird, dann funktioniert die Verbindung zu Fhem nicht richtig.
Das liegt meiner Meinung daran, dass fhemPassword = None (Zeile 320) gesetzt wird und der Verbindungsaufbau in "fhemConnection(self)" mit None erfolgt. Damit scheint das Fhem-Modul nicht zurecht zu kommen und hängt sich auf.
Das hat zur Folge, dass die Camera-Reading nicht gesetzt werden, keine Bewegungserkennung erfolgt und ein "updateReading" nicht "ankommt". Ich glaub sogar, dass dieser Arlo-Event-Stream nicht mehr verarbeitet wird, da nur ein Event im Log-File steht.
Ich hab bei mir einfach fhemPassword = "" gesetzt, dann funktioniert der Aufbau.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 10 Mai 2018, 11:05:18
Jetzt läufts mit der urprunglichen Version. Die Readings werden angelegt und Snapshot Funktion konnte ich auch ausprobieren. Die Lösung lag im "Dirty Hack 8)":

Zitat von: maluk am 10 Mai 2018, 10:44:33
Falls die Reihenfolge hier auch falsch ist, könnt Ihr vermutlich mit folgendem Dirty Hack schnell zum Ergebnis kommen:

cd /usr/lib/python2.7/dist-packages
sudo mv urllib3 urllib3_org


Danke für den Support.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 10 Mai 2018, 11:33:20
Zitat von: Vampy20 am 10 Mai 2018, 11:05:18
Jetzt läufts mit der urprunglichen Version. Die Readings werden angelegt und Snapshot Funktion konnte ich auch ausprobieren. Die Lösung lag im "Dirty Hack 8)":

Danke für den Support.

Super, ich hatte schon an mir selber gezweifelt  :) Aber warum der Raspberry die Pfade verdreht, ist mir immer noch ein Rätsel.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 10 Mai 2018, 11:37:53
Zitat von: phil82 am 09 Mai 2018, 23:56:39
@maluk:
Ja genau das war das Problem. Die eine Kamera hieß "Haustür". Jetzt "Haustuer".
Bei mir läuft das Modul dann erstmal soweit. Snapshot und Aufnahmen haben erstmal funktioniert. Weitere Tests laufen.

Ich habe 49_Arlo.py jetzt angepasst und neu hochgeladen. Es kommt jetzt auch mit Umlauten zurechtkommt. Falls du es ausprobieren möchtest, kannst du die Kamera wieder in Haustür umbenennen, das FHEM-Device löschen und danach nochmal autocreate aufrufen.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 10 Mai 2018, 11:41:16
Zitat von: choetzu am 10 Mai 2018, 09:30:42
hallo phil82
herzlichen Dank für deine Hilfe. Ich habe erneut sseclient-py gelöscht. Und jetzt kommen die Fehlermeldungen nicht mehr. Komisch, das habe ich schonmal gemacht und da hats nicht geklappt. Vermutlich ein Anwenderfehler ;)

Dafür aber habe ich nun etliche andere Fehlermeldung analog deinem Post #23

Telnet hat beim mir ein Passwort.

Da ich leider keinen Beitrag zur Problemlösung beitragen kann, werde ich einfach als Testperson zur Verfügung stehen und berichten ob was geht oder nicht. ;) Ich hoffe, das ist OK.

Lg c

Falls die Namen deiner Basisstation oder Kameras Umlaute enthalten, kannst du 49_Arlo.py jetzt nochmal herunterladen und ersetzen. Das müsste dann funktionieren. Ansonsten bitte nochmal die Fehlermeldungen posten.

Natürlich ist OK, einfach als Testperson zur Verfügung zu stehen. Wie man sieht, kann ja noch alles mögliche schiefgehen, wenn ein Modul bei einem selbst läuft.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 10 Mai 2018, 11:49:33
Status Update:
Arm/Disarm der Basisstation - Check
An/Aus der Kameras - Check
Snapshot Funktion und update des Snapshot-URL-Readings - Check
Bewegung wird erkannt - Check
Update der Video-URL-Readings - Geht noch nicht
Start/Stop Aufnahme - Geht noch nicht

Aus dem FHEM log:

2018.05.10 11:32:42 2: Error occured when calling Arlo daemon: http://localhost:8001/CAMERA?device=Arlo_Strasse&cmd=startRecording&basestationId=48E4****CE&cameraId=4N7****7B: Select timeout/error:
2018.05.10 11:33:15 2: Error occured when calling Arlo daemon: http://localhost:8001/CAMERA?device=Arlo_Strasse&cmd=stopRecording&basestationId=48E4***CE&cameraId=4N7***7B: Select timeout/error:


Aus dem Arlo.log, keine Ahnung warum es da einen Shift in den Timestamps gibt:

2018-05-10 11:30:27,678 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E****CE HTTP/1.1" 200 None
2018-05-10 11:30:43,397 DEBUG: https://arlo.netgear.com:443 "GET /hmsweb/users/devices HTTP/1.1" 200 3520
2018-05-10 11:30:43,684 DEBUG: {u'action': u'is', u'resource': u'cameras/4N7****7B', u'transId': u'48E****CE!f711fa51!1525944643340', u'from': u'48E****CE', u'properties': {u'dateStarted': 1231253255, u'activityState': u'startUserStream'}}
2018-05-10 11:30:43,687 INFO: Send command to FHEM: set myArloCloud reading 4N7****7B activityState startUserStream
2018-05-10 11:30:43,756 DEBUG: {u'resource': u'cameras/4N7****7B', u'to': u'HS8RD6Y-183-15673699_web', u'action': u'is', u'from': u'48E****CE', u'transId': u'web!d24b4caf.ffa368!1525944643420', u'properties': {u'streamURL': u'rtsp://vzwow74-z1-prod.vz.netgear.com:443/vzmodulelive/4N7****7B_1525944643516?ingressToken=40***********************************************************************&version=v1&cameraId=4N7****7B', u'activityState': u'startUserStream'}}
2018-05-10 11:30:43,759 INFO: Send command to FHEM: set myArloCloud reading 4N7****7B activityState startUserStream
2018-05-10 11:30:45,982 DEBUG: {u'action': u'is', u'resource': u'cameras/4N7****7B', u'transId': u'48E****CE!00d74359!1525944645654', u'from': u'48E****CE', u'properties': {u'dateStarted': 1231255573, u'activityState': u'userStreamActive'}}
2018-05-10 11:30:45,985 INFO: Send command to FHEM: set myArloCloud reading 4N7****7B activityState userStreamActive
2018-05-10 11:30:46,759 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/startStream HTTP/1.1" 200 None
2018-05-10 11:30:58,309 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E****CE HTTP/1.1" 200 16
2018-05-10 11:31:17,070 DEBUG: {u'action': u'is', u'resource': u'cameras/4N7****7B', u'transId': u'48E****CE!195c4aa4!1525944676729', u'from': u'48E****CE', u'properties': {u'dateStarted': 1231286648, u'activityState': u'idle'}}
2018-05-10 11:31:17,073 INFO: Send command to FHEM: set myArloCloud reading 4N7****7B activityState idle
2018-05-10 11:31:28,804 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/users/devices/notify/48E****CE HTTP/1.1" 200 None
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 10 Mai 2018, 16:02:46
Ich habe jetzt nochmal eine neue Version von 49_Arlo.pm und 49_Arlo.py hochgeladen. Bitte nach dem Tausch der Dateien in FHEM reload 49_Arlo.pm und set <ArloCloud> stopServer und danach set <ArloCloud> startServer aufrufen.

In der Version ist das Problem mit dem Start der Aufnahmen gelöst. In der alten Version hat sich der Python-Server dabei häufiger mal aufgehängt, das sollte jetzt nicht mehr passieren.

Außerdem habe ich eine Routine eingebaut, mit der die Reihenfolge des Python-Pfades für die Libraries beim Start korrigiert wird, falls sie falsch ist.

@Vampy20: du kannst den Dirty Hack wieder rückgängig machen und unter /usr/lib/python2.7/dist-packages urllib3_org wieder in urllib3 umbenennen.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 10 Mai 2018, 16:13:38
Vielen Dank für die schnelle Reaktion, jetzt Läuft alles auch ohne "Dirty Hack".
Jetzt geht die Arbeit bei mir erst richtig los, die vorhandene Informationen im TabletUI zu verpacken ;-)

Grüße,
Vampy
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: FrankieSOC am 10 Mai 2018, 18:59:35
Hallo maluk,

habe dein Modul installiert und es klappt direkt. Vielen Dank.
Die Funktion "alertStreamActive" ist klasse, so muss es nicht mehr über iFTTT laufen und der Bewegungsmelder reagiert schneller.

VG Frank
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 10 Mai 2018, 23:45:57
Hallo,

ich bin neidisch, bei mir läuft es noch nciht wie gewünscht.

Ich habe folgendes Problem. Ich hatte 5 Arlo Cameras in Betrieb. 3 davon habe ich mit neuen Arlo Pro ausgewechselt (Garten, Eingang, Terasse). Die "alten" habe ich auch vorher gelöscht. Doch nun werden die alten Cameras durch autocreate erstellt, obschon ich sie entfernt habe. Und komisch ist auch, dass die neuen Arlo Pro cameras zwar unten gelistet werden, jedoch nicht als device erstellt

018.05.10 23:24:49 3: Executed command: set Arlo_BasisSecurity camera EingangUG 48B4567362847
2018.05.10 23:24:49 3: Executed command: set Arlo_BasisSecurity camera Reserve 48B4567M62BA4
2018.05.10 23:24:49 3: Executed command: set Arlo_BasisSecurity camera Feriencam 48B457777DD1A
2018.05.10 23:24:50 3: Executed command: set Arlo_BasisSecurity camera Innen 48B45BS62C960
2018.05.10 23:24:50 3: Executed command: set Arlo_BasisSecurity camera Gartenhaus 4N7166SCB0068
2018.05.10 23:24:50 3: Executed command: set Arlo_BasisSecurity camera Terasse 4N7166SUA94B2
2018.05.10 23:24:50 3: Executed command: set Arlo_BasisSecurity camera Gartenhaus 52M17C73B68C1
2018.05.10 23:24:50 3: Executed command: set Arlo_BasisSecurity camera EingangUG 52M17C7EB23E7
2018.05.10 23:24:50 3: Executed command: set Arlo_BasisSecurity camera Terasse 52M17C7LABB66


Cams mit den Codes 52.... sind die neuen Arlo Pros, die "alten" haben entweder 47... oder 48...  Lediglich die camera Innen ist connected

Eine Minute nach der Installation kam folgende Fehlermeldung im Log

Thu May 10 23:25:41 2018] fhem.pl: Use of uninitialized value in concatenation (.) or string at ./FHEM/49_Arlo.pm line 166.
127.0.0.1 - - [10/May/2018 23:25:41] "GET /BASESTATION?device=Arlo_BasisSecurity&cmd=updateReadings&basestationId=48E3577FA00FD&cameraId= HTTP/1.0" 200 -
2018.05.10 23:25:42 1: ERROR: empty name in readingsBeginUpdate
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBeginUpdate           called by ./FHEM/49_Arlo.pm (300)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 4536.
2018.05.10 23:25:42 1: readingsUpdate(,batteryLevel,45) missed to call readingsBeginUpdate first.
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (301)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 4536.
2018.05.10 23:25:42 1: readingsUpdate(,signalStrength,4) missed to call readingsBeginUpdate first.
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (302)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 4536.
2018.05.10 23:25:42 1: readingsUpdate(,state,on) missed to call readingsBeginUpdate first.
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (303)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $d in hash element at fhem.pl line 4221.
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $d in hash element at fhem.pl line 4296.
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $dev in hash element at fhem.pl line 3426.
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value in concatenation (.) or string at ./FHEM/49_Arlo.pm line 306.
2018.05.10 23:25:42 1: ERROR: empty name in readingsBeginUpdate
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBeginUpdate           called by ./FHEM/49_Arlo.pm (300)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 4536.
2018.05.10 23:25:42 1: readingsUpdate(,batteryLevel,83) missed to call readingsBeginUpdate first.
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (301)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 4536.
2018.05.10 23:25:42 1: readingsUpdate(,signalStrength,3) missed to call readingsBeginUpdate first.
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (302)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 4536.
2018.05.10 23:25:42 1: readingsUpdate(,state,on) missed to call readingsBeginUpdate first.
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (303)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $d in hash element at fhem.pl line 4221.
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $d in hash element at fhem.pl line 4296.
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $dev in hash element at fhem.pl line 3426.
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value in concatenation (.) or string at ./FHEM/49_Arlo.pm line 306.
2018.05.10 23:25:42 1: ERROR: empty name in readingsBeginUpdate
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBeginUpdate           called by ./FHEM/49_Arlo.pm (300)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 4536.
2018.05.10 23:25:42 1: readingsUpdate(,batteryLevel,91) missed to call readingsBeginUpdate first.
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (301)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 4536.
2018.05.10 23:25:42 1: readingsUpdate(,signalStrength,4) missed to call readingsBeginUpdate first.
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (302)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 4536.
2018.05.10 23:25:42 1: readingsUpdate(,state,off) missed to call readingsBeginUpdate first.
2018.05.10 23:25:42 1: stacktrace:
2018.05.10 23:25:42 1:     main::readingsBulkUpdate            called by ./FHEM/49_Arlo.pm (303)
2018.05.10 23:25:42 1:     main::Arlo_Camera_Readings          called by ./FHEM/49_Arlo.pm (127)
2018.05.10 23:25:42 1:     main::Arlo_Set                      called by fhem.pl (3549)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (1781)
2018.05.10 23:25:42 1:     main::DoSet                         called by fhem.pl (1813)
2018.05.10 23:25:42 1:     main::CommandSet                    called by fhem.pl (1194)
2018.05.10 23:25:42 1:     main::AnalyzeCommand                called by fhem.pl (1044)
2018.05.10 23:25:42 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (241)
2018.05.10 23:25:42 1:     main::telnet_Read                   called by fhem.pl (3554)
2018.05.10 23:25:42 1:     main::CallFn                        called by fhem.pl (708)
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $d in hash element at fhem.pl line 4221.
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $d in hash element at fhem.pl line 4296.
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value $dev in hash element at fhem.pl line 3426.
[Thu May 10 23:25:42 2018] fhem.pl: Use of uninitialized value in concatenation (.) or string at ./FHEM/49_Arlo.pm line 306.


Ich habe nun die "alten" Cams rausgelöscht. So dass ich nur noch die Innen habe. Die Fehlermeldung ist seither nicht mehr erschienen. Wie komme ich wohl an die neuen 52er Cams? Ist da evtl. das Problem, dass die neuen gleich heissen, wie die alten? Obschon entfernt?

lg c
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 11 Mai 2018, 10:02:38
Ich habe nochmal eine neue Version von 49_Arlo.pm hochgeladen, die die Fehlermeldungen im FHEM-Log behebt. Allerdings bleibt dein Grundsatzproblem bestehen, dass deine neuen Cams nicht angelegt werden. Das Problem dabei ist, dass Arlo zuerst deine alten Cams liefert und danach unter gleichem Namen die neuen. Kannst du die alten Cams in der Arlo App nicht löschen? Oder tauchen Sie dort gar nicht mehr auf?

Mit folgendem Trick kannst du die neuen Cams auf jeden Fall einbinden.

Benenne deine alten Kameras in FHEM um:
rename Arlo_Gartenhaus Arlo_Gartenaus_alt
rename Arlo_Terasse Arlo_Terasse_alt
rename Arlo_EingangUG  Arlo_EingangUG_alt


Danach nochmal im Basistation-FHEM-Device set autocreate aufrufen. Die neuen Kameras sollten jetzt da sein.

Alternativ kannst du auch die Defintion der falschen FHEM-Devices anpassen, indem du die Seriennummern der neuen Kameras aus dem Logfile als letzten Parameter der Kamera-Defintion einträgst (also die Seriennummern der alten Kameras überschreibst).
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 11 Mai 2018, 12:32:52
Welches Video wird unter lastVideoUrl verlinkt, die letzte manuell getriggerte Aufnahme oder die tatsächlich letzte Aufnahme, egal ob manuell oder durch Bewegung?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 11 Mai 2018, 17:46:00
Hey maluk
Danke hat geklappt. Super. Nun stehen alle Cams auf ,,initialized". Die Readings wurden zuletzt nach dem fhem-Restart aktualisiert, um 16:35. Seither ist nix mehr passiert. Im Log steht dass um 17:35 die BaseStation ein updateReading gemacht hat, jedoch ohne Wirkung.
Snapshot geht bei mir auch nicht. Und Aufnehmen auch net. Hier ein Reading meiner Gartenhaus Cam:

batteryLevel
44
2018-05-11 16:28:58

signalStrength
4
2018-05-11 16:28:58

state
on
2018-05-11 16:29:16

Irgendwas geht noch nicht .. hmm. Telnet ist mit passwort versehen.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 11 Mai 2018, 21:52:12
Die Readings sind unverändert, stand 16:35.
Nun kam noch folgende Fehlermeldung um 21:30 dazu

Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pyarlo/base_station.py", line 54, in thread_function
    self.__sseclient = sseclient.SSEClient(data)
  File "/usr/local/lib/python2.7/dist-packages/sseclient.py", line 39, in __init__
    self._connect()
  File "/usr/local/lib/python2.7/dist-packages/sseclient.py", line 47, in _connect
    self.resp = requester.get(self.url, stream=True, **self.requests_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 494, in request
    prep = self.prepare_request(req)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 437, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/usr/local/lib/python2.7/dist-packages/requests/models.py", line 305, in prepare
    self.prepare_url(url, params)
  File "/usr/local/lib/python2.7/dist-packages/requests/models.py", line 379, in prepare_url
    raise MissingSchema(error)
MissingSchema: Invalid URL '<Response [200]>': No schema supplied. Perhaps you meant http://<Response [200]>?



EDIT: ich bin ungeduldig, deshalb hab ich nochmals alle Arlo devices entfernt und nochmals neu installiert. Und die alten Cams entfernt sowie die neuen hinzugefügt. Nun scheint es zu laufen, inkl. Snapshot. Ich beobachte es weiter. Lg c
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 12 Mai 2018, 09:04:39
Sorry, wenn ich hier spame, aber ich habe grad ne Scheissfreude am Modul.  :)

Maluk, wie sieht es eigentlich mit der Integration von Modus/scene aus? Jetzt kann man ja nur arm oder disarm machen.  Ich möchte aber auch nur alle Aussen Cams einschalten ohne z.B die Innencamera.  Ich habe das bislang wie folgt gelöst. Hat auch super geklappt. Könnte man dies evtl. Auch in die Arlo-BasisStation einbauen? Wäre brutal praktisch und würde das ganze abrunden.

https://forum.fhem.de/index.php/topic,71933.msg757367.html#msg757367

Lg c
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 12 Mai 2018, 14:00:49
Seit heute Nacht habe ich folgende Einträge im Arlo.log und das System lässt sich nicht bedienen:

2018-05-12 12:46:08,767 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-12 12:56:08,771 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-12 13:06:08,775 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-12 13:16:08,779 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-12 13:26:08,783 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-12 13:36:08,787 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-12 13:46:08,792 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-12 13:56:08,797 INFO: Timeout occured in handle arlo events - restart event handler


Nach einem Restart des Servers geht's wieder.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: phil82 am 12 Mai 2018, 14:57:17
Zitat von: Vampy20 am 10 Mai 2018, 16:13:38
Vielen Dank für die schnelle Reaktion, jetzt Läuft alles auch ohne "Dirty Hack".
Jetzt geht die Arbeit bei mir erst richtig los, die vorhandene Informationen im TabletUI zu verpacken ;-)

Grüße,
Vampy
@Vampy: Ich habe meine Kamera im TabletUI als Popup und Video-Tag eingebunden. Für das Video habe ich mir ein eigenes Widget gebaut, bzw. das Image-Widget kopiert und angepasst. Das ist jetzt kein ausgereiftes Plugin, aber für einfache Videos reicht es. Irgendwelche "Bedinelemente" habe ich aktuell nicht im TabletUI.


Ansonsten läuft die Arlo-Anbindung ganz gut.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 12 Mai 2018, 22:50:43
Zitat von: Vampy20 am 12 Mai 2018, 14:00:49
Seit heute Nacht habe ich folgende Einträge im Arlo.log und das System lässt sich nicht bedienen:

...

Nach einem Restart des Servers geht's wieder.

Ich hatte auch schon ähnliche Probleme. Ich habe dann in der Datei /usr/local/lib/python2.7/dist-packages/Arlo.py in der Heartbeat-Funktion in Zeile 294 den Heartbeat-Intervall von 30.0 auf 90.0 erhöht. Seither läuft es bei mir ohne Probleme. Versuche das einfach mal und führe danach set ArloCloud stopServer und set ArloCloud startServer aus. Ich wollte eigentlich in dem Modul eine Möglichkeit, den Timeout von außen setzen zu können, aber Jeffrey Walter hat zunächst nur die früheren 2 Sekunden für den Heartbeat auf 30 Sekunden erhöht (siehe https://github.com/jeffreydwalter/arlo/issues/68). Falls die Erhöhung auf 90 Sekunden auch bei dir die Probleme behebt, werde ich nochmal auf ihn zugehen, damit er das Modul entsprechend anpasst.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 13 Mai 2018, 00:05:20
Zitat von: choetzu am 12 Mai 2018, 09:04:39
Sorry, wenn ich hier spame, aber ich habe grad ne Scheissfreude am Modul.  :)

Maluk, wie sieht es eigentlich mit der Integration von Modus/scene aus? Jetzt kann man ja nur arm oder disarm machen.  Ich möchte aber auch nur alle Aussen Cams einschalten ohne z.B die Innencamera.  Ich habe das bislang wie folgt gelöst. Hat auch super geklappt. Könnte man dies evtl. Auch in die Arlo-BasisStation einbauen? Wäre brutal praktisch und würde das ganze abrunden.

https://forum.fhem.de/index.php/topic,71933.msg757367.html#msg757367

Lg c

Es freut mich, dass bei dir jetzt auch alles klappt  :)

Ich habe die Basisstation jetzt um folgenden Befehl erweitert:
set ArloBasestation mode Modus-Name

Damit sollte das funktionieren, was du machen möchtest. Bitte die beiden Dateien herunterladen, reload 49_Arlo in FHEM ausführen und danach set ArloCloud stopServer und set ArloCloud startServer ausführen.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 13 Mai 2018, 09:31:09
Heute Nacht hatte ich die selben Probleme. Ich werde den Wert wie vorgeschlagen auf 90 erhöhen und berichten.

@Phil82: Danke, ich hatte gestern zufällig die selbe Idee. Ich werde mal unsere Lösungen vergleichen und berichten ob ich etwas zusätzliches hab.

Edit:
@Phil82: Deine Lösung ist viel eleganter gelöst. Ich habe anstatt dem "poster" Attribute einfach "src" benutzt. Auch hatte ich die Optionen direkt im Widget hart codiert. Zusätzlich hatte ich noch dieses Attribut gesetzt, scheint aber nicht notwendig zu sein:

elemMyVideo.attr('type', 'application/x-mpegurl');
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 13 Mai 2018, 11:14:53
Zitat von: maluk am 13 Mai 2018, 00:05:20
Es freut mich, dass bei dir jetzt auch alles klappt  :)

Ich habe die Basisstation jetzt um folgenden Befehl erweitert:
set ArloBasestation mode Modus-Name

Damit sollte das funktionieren, was du machen möchtest. Bitte die beiden Dateien herunterladen, reload 49_Arlo in FHEM ausführen und danach set ArloCloud stopServer und set ArloCloud startServer ausführen.

herzlichen Dank. Sehr cool. Ich habe - wie beschrieben - beide Dateien neu hochgeladen. Leider geht es nun nicht mehr. Ich habe alles auf Initialized. Ein FHEM Restart hat folgende Fehlermeldung gebracht.

Traceback (most recent call last):
  File "FHEM/49_Arlo.py", line 381, in <module>
    main(sys.argv[1:])
  File "FHEM/49_Arlo.py", line 361, in main
    startService(int(argv[4]))
  File "FHEM/49_Arlo.py", line 330, in startService
    server.socket.close()
NameError: global name 'server' is not defined


Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 13 Mai 2018, 12:04:33
Es sieht so aus, als ob der HTTP-Server nicht gestartet werden konnte. Dies kann u.a. daran liegen, dass der alte Prozess noch hängt und den Port 8001 blockiert. Bitte prüfen mal folgendes:
sudo ps -ef | grep 49_Arlo

Prüfen, ob eine Zeile der folgende Art kommt:
fhem     24914     1  0 May12 ?        00:03:50 python FHEM/49_Arlo.py

Falls ja, muss der Prozess gekillt werden (24914 durch die Prozess-ID deines Prozesses ersetzen):
sudo kill -9 24914

Danach muss der Server manuell mt set ArloCloud startServer gestartet werden. Alternativ kannst du natürlich auch deine Raspberry neu starten.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 13 Mai 2018, 13:34:46
Zitat von: maluk am 13 Mai 2018, 12:04:33
Es sieht so aus, als ob der HTTP-Server nicht gestartet werden konnte. Dies kann u.a. daran liegen, dass der alte Prozess noch hängt und den Port 8001 blockiert. Bitte prüfen mal folgendes:
sudo ps -ef | grep 49_Arlo

Prüfen, ob eine Zeile der folgende Art kommt:
fhem     24914     1  0 May12 ?        00:03:50 python FHEM/49_Arlo.py

Falls ja, muss der Prozess gekillt werden (24914 durch die Prozess-ID deines Prozesses ersetzen):
sudo kill -9 24914

Danach muss der Server manuell mt set ArloCloud startServer gestartet werden. Alternativ kannst du natürlich auch deine Raspberry neu starten.

genau, das wars... herzlichen Dank. Gibt es eine Möglichkeit dies zu automatisieren oder muss ich dies immer wieder manuell machen?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: erwe am 13 Mai 2018, 17:56:29
Guten Tag und vielen Dank für das tolle Modul.

Nun kann ich in den Garten gehen und werde nicht mehr gefilmt!

Vielen Dank!

Meine "Netgear Arlo Q VMC3040-100PES Smart Home HD-Überwachungskamera" wird allerdings nicht erkannt.

Hast Du einen Tipp?

Grüße und Danke, erwe
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 14 Mai 2018, 10:06:16
Guten Morgen,

ich habe diese Nacht erneut eine Fehlermeldung gehabt, so um 05:00 Uhr. Keine Ahnung was das bedeutet.


Exception in thread HeartbeatThread:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 296, in Heartbeat
    self.Ping(basestation)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 394, in Ping
    return self.NotifyAndGetResponse(basestation, {"action":"set","resource":"subscriptions/"+self.user_id+"_web","publishResponse":False,"properties":{"devices":[basestation_id]}})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 379, in NotifyAndGetResponse
    transId = self.Notify(basestation, body)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 370, in Notify
    self.request.post('https://arlo.netgear.com/hmsweb/users/devices/notify/'+body['to'], body, headers={"xcloudId":basestation.get('xCloudId')})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 150, in post
    return self._request(url, 'POST', params, headers)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 141, in _request
    raise HTTPError('Request ({0} {1}) failed'.format(method, url), response=r)
HTTPError: Request (POST https://arlo.netgear.com/hmsweb/users/devices/notify/48E3577FA00FD) failed


Andere Frage:
Wie kann ich diese Logeinträge ausschalten? Mit Verbose 0 gehts nicht.

127.0.0.1 - - [14/May/2018 05:11:31] "GET /BASESTATION?device=Arlo_BasisSecurity&cmd=updateReadings&basestationId=48E3577FA00FD&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [14/May/2018 06:11:32] "GET /BASESTATION?device=Arlo_BasisSecurity&cmd=updateReadings&basestationId=48E3577FA00FD&cameraId= HTTP/1.0" 200 -


Danke.

lg und guten Wochenstart
c
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 14 Mai 2018, 17:10:17
Zitat von: Vampy20 am 13 Mai 2018, 09:31:09
Heute Nacht hatte ich die selben Probleme. Ich werde den Wert wie vorgeschlagen auf 90 erhöhen und berichten.

Hi maluk,

leider habe ich auch mit 90 Sekunden immer noch das Problem, gegen 1 Uhr Nachts "verabschiedet" sich der Server.

Grüße,
Vampy
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: luke666s am 14 Mai 2018, 22:03:12
ich habe eine Arlo Pro Base und eine ArloQ ... das Autocreate auf Cloud findet aber nur die Arlo Base... und das autocreate in der Base dann logischerweise nur die wireless cams...
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: erwe am 15 Mai 2018, 07:30:09
Moin, moin,

Nach ein paar Tagen Erfahrung:

Die Systemauslastung auf dem Rapi 3B steigt mit der Installation des Moduls von 1% auf 16 bis 24%, der Energieverbrauch steigt von 3W auf 5W.
Das modulseitige Abschalten des Servers hat bei mit keine Änderung der Last ergeben.

LG, erwe
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 15 Mai 2018, 10:07:48
Hi maluk,

kannst Du bitte eine Download Funktion einführen, die Links werden nach einiger Zeit ungültig.

Vielen Dank,
Vampy
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 16 Mai 2018, 20:54:37
Ich war ein paar Tage geschäftlich unterwegs und konnte daher nicht antworten.

@choetzu: die Exception sagt mir so nichts. Arbeitet der Python Server danach weiter oder muss du ihn dann erneut starten? Die Ausgaben des Python HTTP-Service kann man von FHEM aus leider nicht unterdrücken. Das Problem ist, dass ich den Python Server von FHEM aus starte. Alles, was der Prozess auf die Konsole ausgeben möchtet, landet daher im FHEM Logfile.

@erwe: die Arlo Q kenne ich nicht, wird aber vermutlich über die API nicht gefunden (wie von luke666s geschrieben). Bzgl. erhöhter Last solltest du über den Linux-Befehl top mal prüfen, welcher Prozess die CPU verbraucht (also python oder perl).

@Vampy20: gibt es vor dem Absturz nachts um 1 Fehlermeldungen oder ungewöhnliche Einträge in arlo.log oder FHEM-Log? I

Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 16 Mai 2018, 21:13:51
Zitat von: Vampy20 am 15 Mai 2018, 10:07:48
kannst Du bitte eine Download Funktion einführen, die Links werden nach einiger Zeit ungültig.

Wie meinst du das genau? Dass automatisch beim Bereitstellen eines neuen Video downgeloaded wird? Oder einen Befehl am Device, mit dem man sich die Liste der Videos geben lassen kann und dann gezielt Videos herunterlädt?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 17 Mai 2018, 09:22:30
Zitat von: maluk am 16 Mai 2018, 20:54:37
@Vampy20: gibt es vor dem Absturz nachts um 1 Fehlermeldungen oder ungewöhnliche Einträge in arlo.log oder FHEM-Log? I

Hi maluk,

im arlo.log gibt es keine Fehlermeldungen, dafür aber im FHEM log:

Exception in thread HeartbeatThread:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 296, in Heartbeat
    self.Ping(basestation)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 394, in Ping
    return self.NotifyAndGetResponse(basestation, {"action":"set","resource":"subscriptions/"+self.user_id+"_web","publishResponse":False,"properties":{"devices":[basestation_id]}})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 379, in NotifyAndGetResponse
    transId = self.Notify(basestation, body)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 370, in Notify
    self.request.post('https://arlo.netgear.com/hmsweb/users/devices/notify/'+body['to'], body, headers={"xcloudId":basestation.get('xCloudId')})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 150, in post
    return self._request(url, 'POST', params, headers)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 133, in _request
    r = self.session.post(url, json=params, headers=headers)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 555, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 490, in send
    raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer'))


Bzgl. der download Funktion, ich benutze das TabletUI um das jeweils letzte Video einer Kamera anzuzeigen. Dies funktioniert nur so lange die URL gültig ist. Deswegen wollte ich die Videos lokal kopieren (überschreiben) um diese auch dann verfügbar zu haben wenn sich länger nichts mehr getan hat. Gestern ist mir eine Idee eingefallen, wie ich dies mit einem Notify und wget probierten könnte. Ich werde berichten.

Grüße, Vampy
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: ChrisKoh am 18 Mai 2018, 16:03:08
Hallo, vielen Dank für das Modul! Darauf habe ich schon gewartet!

Leider bekomme ich bei der Installation schon einen Fehler:


pi@fhem:~ $ sudo pip install sseclient
The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting sseclient
From cffi callback <function _verify_callback at 0x7558eeb0>:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 309, in wrapper
    _lib.X509_up_ref(x509)
AttributeError: 'module' object has no attribute 'X509_up_ref'
From cffi callback <function _verify_callback at 0x7558ebf0>:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 309, in wrapper
    _lib.X509_up_ref(x509)
AttributeError: 'module' object has no attribute 'X509_up_ref'
  Could not find a version that satisfies the requirement sseclient (from versions: )
No matching distribution found for sseclient


kann jemand damit etwas anfangen?

Dankeschön!
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 18 Mai 2018, 17:50:56
Hi ChrisKoh,

hast Du schon das hier probiert?

sudo -H pip install sseclient

Grüße,
Vampy
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 18 Mai 2018, 20:02:58
Hi Vampy,

"connection reset by peer" heißt, dass der Server die Verbindung getrennt hat. Dies kann aber auch durch andere Komponenten, z. B. Firewalls oder Proxies passieren.

Passiert das immer um 1 Uhr nachts? Passiert da irgendetwas in deinem Netzwerk bzw. mit deinem Internet-Anschluss? Falls du DSL und eine FritzBox hast, schaue mal nach, wann die Verbindung zum DSL zum letzten Mal neu aufgebaut wurde. Ich habe inzwischen Kabel, aber vorher bei DSL wurde glaube ich regelmäßig die Verbindung getrennt und neu aufgebaut.

Auf jeden Fall solltest du auch prüfen, ob du die korrekte OpenSSL-Version installiert hast (siehe https://github.com/jeffreydwalter/arlo/issues/39)

Gruß
maluk
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 18 Mai 2018, 20:38:20
Hi maluk,

ja ich benutze noch ne altmodische DLS Leitung  ;) aber zwischen der Zwangstrennung und dem "Vorfall" liegen 9 Minuten.

Arlo.log:
2018-05-18 00:13:17,628 INFO: Send command to FHEM: set myArloCloud readings 4N7278S37397B on 61 3
2018-05-18 01:18:12,542 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-18 01:28:12,546 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-18 01:38:12,550 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-18 01:48:12,554 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-18 01:58:12,558 INFO: Timeout occured in handle arlo events - restart event handler
2018-05-18 02:08:12,562 INFO: Timeout occured in handle arlo events - restart event handler


Router:

18.05.18 01:09:13 Internetverbindung wurde erfolgreich hergestellt. IP-Adresse: 4***, DNS-Server: 2*** und 2***5, Gateway: 8***, Breitband-PoP: a***
18.05.18 01:09:12 Internetverbindung wurde getrennt.
18.05.18 01:09:12 Die Internetverbindung wird kurz unterbrochen, um der Zwangstrennung durch den Anbieter zuvorzukommen.


Ich habe auch die OpenSSL-Version überprüft, scheint ok zu sein: OpenSSL 1.0.1t  3 May 2016

Liegt es evtl. an der neuen IP Adresse die jede Nacht zugewiesen wird??

Grüße,
Vampy
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 18 Mai 2018, 21:14:34
Das scheint aber schon damit zusammen zu hängen. Du könntest mal versuchen, im Heartbeat von /usr/local/lib/python2.7/dist-packages/Arlo.py das Exception-Handling so zu verändern, dass alle Exceptions verschluckt werden und der Heartbeat trotzdem immer weiter läuft. Ändere dazu die Zeile 297 in der Heartbeat-Methode wie folgt ab:

alt:
                except queue.Empty:
neu:
                except:

Danach musst du den Python-Server neu staten.

Ansonsten könntest du auch in FHEM mit "at" 2 Timer einrichten: einer, der kurz um 1 Uhr den Server stoppt (set ArloCloud stopServer) und einen weiteren, der um 1:15 Uhr den Server wieder startet (set ArloCloud startServer) . Das ist zwar nicht so richtig toll, wäre aber ein Workaround.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 18 Mai 2018, 21:23:33
Zitat von: Vampy20 am 17 Mai 2018, 09:22:30
Bzgl. der download Funktion, ich benutze das TabletUI um das jeweils letzte Video einer Kamera anzuzeigen. Dies funktioniert nur so lange die URL gültig ist. Deswegen wollte ich die Videos lokal kopieren (überschreiben) um diese auch dann verfügbar zu haben wenn sich länger nichts mehr getan hat. Gestern ist mir eine Idee eingefallen, wie ich dies mit einem Notify und wget probierten könnte. Ich werde berichten.

Ich werde da was einbauen, du brauchst also nichts mit Notify und wget probieren. Ich habe vor, dass man als Attribut ein Download-Verzeichnis setzen kann. Wenn dieses gesetzt ist, wird beim Bereitstellen eines Videos oder Snapshot jeweils eine Kopie dort abgelegt. Vielleicht schaffe ich es heute noch, ansonsten kommt es am Wochenende. Das Modul von Jeffrey Walter enthält die Methoden DownloadRecording und DownloadSnapshot, das ist also nur eine Kleinigkeit.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: ChrisKoh am 18 Mai 2018, 21:33:27
Zitat von: Vampy20 am 18 Mai 2018, 17:50:56
Hi ChrisKoh,

hast Du schon das hier probiert?

sudo -H pip install sseclient

Grüße,
Vampy

Hi Vampy,

leider gleicher Fehler :(


pi@fhem:~ $ sudo -H pip install sseclient
The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting sseclient
From cffi callback <function _verify_callback at 0x754adeb0>:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 309, in wrapper
    _lib.X509_up_ref(x509)
AttributeError: 'module' object has no attribute 'X509_up_ref'
From cffi callback <function _verify_callback at 0x754adbf0>:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 309, in wrapper
    _lib.X509_up_ref(x509)
AttributeError: 'module' object has no attribute 'X509_up_ref'
  Could not find a version that satisfies the requirement sseclient (from versions: )
No matching distribution found for sseclient
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 18 Mai 2018, 21:42:11
Hi ChrisKoh,

welche OpenSSL-Version ist bei dir installiert? Gebe mal folgenden Befehl ein:

openssl version

Hier sollte eine Version 1.0 installiert sein. Falls du noch 0.9.x installiert hast, liegt dein Problem wahrscheinlich daran. Welche Betriebssystem-Version hast du bei dir installiert? Jessie oder Wheezy?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: ChrisKoh am 18 Mai 2018, 21:54:06
Zitat von: maluk am 18 Mai 2018, 21:42:11
Hi ChrisKoh,

welche OpenSSL-Version ist bei dir installiert? Gebe mal folgenden Befehl ein:

openssl version

Hier sollte eine Version 1.0 installiert sein. Falls du noch 0.9.x installiert hast, liegt dein Problem wahrscheinlich daran. Welche Betriebssystem-Version hast du bei dir installiert? Jessie oder Wheezy?

Hi maluk,

pi@fhem:/opt/fhem/FHEM $ openssl version
OpenSSL 1.1.0f  25 May 2017



pi@fhem:/opt/fhem/FHEM $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 18 Mai 2018, 22:11:12
Da kann ich nur bedingt helfen, da ich noch jessie installiert habe, nicht stretch. Aber zu dem Problem gibt es mehrere Treffer, wenn man über Google sucht, z.B.

https://github.com/pyca/pyopenssl/issues/728
https://www.raspberrypi.org/forums/viewtopic.php?t=204149
https://stackoverflow.com/questions/48506436/error-installing-prettytable-on-ubuntu-with-pip

Offensichtlich passen die Versionen von OpenSSL und PyOpenSSL nicht zusammen. Versuche mal den Tipp aus dem einen Thread: sudo pip uninstall pyOpenSSL. Falls das nichts hilft, würde ich pyOpenSSL nochmal mit sudo pip install --upgrade pyOpenSSL installieren.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 19 Mai 2018, 00:14:21
Ich habe gerade eine neue Version von 49_Arlo.pm und 49_Arlo.py hochgeladen. In dieser Version stehen am Cloud-Device (Subtype ACCOUNT) 2 neue Attribute bereit:

downloadDir: hier kann optional ein Verzeichnis angegeben werden, in das die Videos und Bilder kopiert werden sollen, die in der Arlo Cloud erzeugt werden. Die Bilder / Videos werden immer überschrieben, es ist nur die letzte Version lokal vorhanden. Hier sollte man ein Verzeichnis unter /opt/fhem/www angeben, also z.B. /opt/fhem/www/arlo. Der fhem-User benötigt Schreibrechte in diesem Verzeichnis. Also für das Beispiel wie folgt vorgehen:
cd /opt/fhem/www
sudo mkdir arlo
sudo chown fhem arlo


downloadLink: falls statt den Cloud-Links die lokalen Kopien in den Attributen der Kamera-Devices verlinkt werden sollen, muss zusätzlich zu downloadDir das Attribut downloadLink gesetzt werden, und zwar in der Form http://hostname:8083/fhem/arlo, falls die Dateien wie im Beispiel oben in das Verzeichnis /opt/fhem/www/arlo kopiert werden.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Vampy20 am 19 Mai 2018, 13:07:52
Hi maluk,

vielen Dank für die schnelle Umsetzung, funktioniert soweit für Snapshots und selbst gestartete Aufnahmen. Bei Aufnahmen welche durch Bewegung ausgelöst werden werden keine Videos heruntergeladen.

Die Änderung bzgl. der DSL Verbindung hatte leider keinen Erfolg. Ich werde den von Dir vorgeschlagenen Workaround ausprobieren.

Grüße,
Vampy
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 19 Mai 2018, 21:23:50
Hi Vampy,

bei mir werden auch Videos heruntergeladen, die durch Bewegung ausgelöst werden. Kannst du die aufgenommenen Videos über die Arlo App anzeigen? Falls ja, bitte im 49_Arlo.py wieder den Debug-Modues einstellen und prüfen, ob am Ende der Aufnahme ein solcher Event kommt:

2018-05-19 21:17:53,137 DEBUG: {u'recordingStopped': True, u'resource': u'mediaUploadNotification', u'uniqueId': ....

Grüße
maluk
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 20 Mai 2018, 00:08:01
Hey Maluk, ich habe immer noch eine Scheissfreude an deinem Modul. Die Reaktionszeit bei Motion ist im Vergleich zu IFTTT einfach nur herrlich.. danke nochmals für deine Mühe.

Ich hab grad gesehen, dass Arlo als Hilfsmodul in der CommandRef gelistet ist. Wann wird es im Update verfügbar sein? Lg c
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: ChrisKoh am 20 Mai 2018, 11:56:14
Zitat von: maluk am 18 Mai 2018, 22:11:12
Da kann ich nur bedingt helfen, da ich noch jessie installiert habe, nicht stretch. Aber zu dem Problem gibt es mehrere Treffer, wenn man über Google sucht, z.B.

https://github.com/pyca/pyopenssl/issues/728
https://www.raspberrypi.org/forums/viewtopic.php?t=204149
https://stackoverflow.com/questions/48506436/error-installing-prettytable-on-ubuntu-with-pip

Offensichtlich passen die Versionen von OpenSSL und PyOpenSSL nicht zusammen. Versuche mal den Tipp aus dem einen Thread: sudo pip uninstall pyOpenSSL. Falls das nichts hilft, würde ich pyOpenSSL nochmal mit sudo pip install --upgrade pyOpenSSL installieren.


sudo pip uninstall pyOpenSSL hat geholfen :)

Vielen Dank für die Unterstützung!!!
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: ChrisKoh am 21 Mai 2018, 11:34:59
127.0.0.1 - - [21/May/2018 09:16:52] "GET /BASESTATION?device=Arlo_Arbeitszimmer&cmd=updateReadings&basestationId=xxxxxxxxxxxx&cameraId= HTTP/1.0" 200 -
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.7/SocketServer.py", line 652, in __init__
    self.handle()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
    self.handle_one_request()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
    method()
  File "FHEM/49_Arlo.py", line 318, in do_GET
    response = arloService.processCommand(fhemDevice, subtype, command, basestationId, cameraId)
  File "FHEM/49_Arlo.py", line 279, in processCommand
    self.updateReadings(fhemDevice, basestationId)
  File "FHEM/49_Arlo.py", line 211, in updateReadings
    devices = self.arlo.GetDevices()
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 732, in GetDevices
    devices = self.request.get('https://arlo.netgear.com/hmsweb/users/devices')
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 148, in get
    return self._request(url, 'GET', params, headers, stream, raw)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 127, in _request
    r = self.session.get(url, params=params, headers=headers, stream=stream)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 521, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 490, in send
    raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', BadStatusLine("''",))


Das ist mir noch aufgefallen. Kann man das Ignorieren?

Grüße!
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 23 Mai 2018, 19:08:59
Hallo,

ich habe eine ähnliche oder die selbe Nachticht. Das Problem war, dass danach die Kameras nicht mehr bei motion ins FHEM Reading geschrieben haben. Und somit mein DOIF nicht ausgelöst haben.

Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.7/SocketServer.py", line 652, in __init__
    self.handle()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
    self.handle_one_request()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
    method()
  File "FHEM/49_Arlo.py", line 318, in do_GET
    response = arloService.processCommand(fhemDevice, subtype, command, basestationId, cameraId)
  File "FHEM/49_Arlo.py", line 279, in processCommand
    self.updateReadings(fhemDevice, basestationId)
  File "FHEM/49_Arlo.py", line 211, in updateReadings
    devices = self.arlo.GetDevices()
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 710, in GetDevices
    devices = self.request.get('https://arlo.netgear.com/hmsweb/users/devices')
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 144, in get
    return self._request(url, 'GET', {}, headers, stream)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 127, in _request
    r = self.session.get(url, headers=headers, stream=stream)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 521, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 490, in send
    raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', BadStatusLine("''",))


hat jemand eine Ahnung, was das sein könnte?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 23 Mai 2018, 21:38:07
Ich habe eine neue Version von 49_Arlo.py hochgeladen, die zumindest dafür sorgt, dass die Exception nicht zum Absturz des Servers führt. Ob das Euer Problem löst, kann ich allerdings nicht sagen, da es bei mir nicht auftritt. Bitte mal die neue Datei runterladen und den Python-Server stoppen und starten.

Habt Ihr einen DSL- oder Kabel-Anschluß? Bei DSL gibt es einmal täglich die Zwangtrennung, siehe Problem von Vampy20. Ich habe einen Kabelanschluß bei Unitymedia, dort wird die Verbindung nur getrennt, wenn ich meine FritzBox neu starte.

@choetzu: ich habe inzwischen Zugang zum FHEM-Repository beantragt, muss aber noch ein paar Änderungen vornehmen, damit ich das Modul einchecken kann. So lange müsst Ihr leider die Updates noch über den Thread hier beziehen. In der CommandRef taucht das Modul auf, da ich die entsprechende Hilfe in das FHEM-Modul integriert habe.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 24 Mai 2018, 22:26:37
hallo malux
super, danke. Ich habe die Datei gestern aktualisiert. Die Fehlermeldung kommt zwar nicht mehr, aber dafür läuft m.E. das System nicht wirklich "zuverlässig". Ich habe z.B. ein DOIF welches bei einer bestimmten Helligkeit den Befehl "set BasisStation mode Aussen" abgibt. Es klappt manchmal und manchmal eben nicht, wie heute Abend.

Das war im Log:
27.0.0.1 - - [24/May/2018 21:22:09] "GET /BASESTATION?device=Arlo_BasisSecurity&cmd=mode-Aussen&basestationId=48E3577FA00FD&cameraId= HTTP/1.0" 200 -

Also eigentlich korrekt. Aber es blieb "disarmed". Eine Ahnung wieso?

Lg c
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: FrankieSOC am 25 Mai 2018, 15:34:09
Hallo Maluk,

habe heute auf deine neue Version gewechselt und habe nach ein paar Stunden diese Meldung bekommen.

Exception in thread EventStream:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 283, in QueueEvents
    for event in event_stream:
  File "/usr/local/lib/python2.7/dist-packages/sseclient.py", line 65, in __next__
    next_chunk = next(self.resp_iterator)
  File "/usr/lib/python2.7/dist-packages/requests/models.py", line 653, in generate
    for chunk in self.raw.stream(chunk_size, decode_content=True):
  File "/usr/lib/python2.7/dist-packages/urllib3/response.py", line 256, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "/usr/lib/python2.7/dist-packages/urllib3/response.py", line 186, in read
    data = self._fp.read(amt)
  File "/usr/lib/python2.7/httplib.py", line 578, in read
    return self._read_chunked(amt)
  File "/usr/lib/python2.7/httplib.py", line 620, in _read_chunked
    line = self.fp.readline(_MAXLINE + 1)
  File "/usr/lib/python2.7/socket.py", line 476, in readline
    data = self._sock.recv(self._rbufsize)
  File "/usr/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.py", line 188, in recv
    data = self.connection.recv(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 995, in recv
    self._raise_ssl_error(self._ssl, result)
  File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 851, in _raise_ssl_error
    raise ZeroReturnError()
ZeroReturnError


Viele Grüße
Frank
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: ChrisKoh am 26 Mai 2018, 10:46:12
Hi,

aus aktuellem Anlass das Arlo aufgefordert hat sein Passwort zu ändern.

Gibt es einen komfortablen weg dies bei einem bereits definierten Arlo_Cloud Device zu tun ohne es zu löschen und neu Anzulegen?

Grüße!
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: phil82 am 26 Mai 2018, 23:13:56
Zitat von: ChrisKoh am 26 Mai 2018, 10:46:12
Hi,

aus aktuellem Anlass das Arlo aufgefordert hat sein Passwort zu ändern.

Gibt es einen komfortablen weg dies bei einem bereits definierten Arlo_Cloud Device zu tun ohne es zu löschen und neu Anzulegen?

Grüße!

Ich hab einfach das define bearbeitet und das neue Passwort eingetragen. Direkt in FHEM - also nicht die config-Datei. Einfach das letzte "crypt:irgendwas" mit dem Passwort ersetzten. Das Modul verschlüsselt das Passwort dann automatisch und ersetzt es durch ein "crypt:blabla".
E-Mail habe ich verschlüsselt gelassen

Danach Arlo-Server neustarten, fertig.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 27 Mai 2018, 21:35:38
Danke phil82, du warst schneller als ich. Genau das ist die einfachste Möglichkeit, das Passwort zu ändern.

Um die Probleme mit den Verbindungsabbrüchen werde ich mich noch kümmern, ich habe allerdings gerade etwas wenig Zeit. Ihr braucht also etwas Geduld.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 27 Mai 2018, 22:12:58
Hallo,
Bei mir hat das mit dem Passwort setzen nicht geklappt. Hab dann das Device Arlo_Cloud (und nur dieses) gelöscht und neu installiert. Hat bestens geklappt!
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 28 Mai 2018, 09:23:44
maluk, soll ich weiterhin solche Fehlermeldungen im Log posten? Ich weiss natürlich nicht, ob die einen mit den anderen zusammenhängen oder gar gleich sind. Nicht dass du uns noch ein Burnout kriegst ;)

127.0.0.1 - - [28/May/2018 06:22:32] "GET /BASESTATION?device=Arlo_BasisSecurity&cmd=updateReadings&basestationId=48E3577FA00FD&cameraId= HTTP/1.0" 200 -
Exception in thread EventStream:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 278, in QueueEvents
    for event in event_stream:
  File "/usr/local/lib/python2.7/dist-packages/sseclient.py", line 72, in __next__
    self._connect()
  File "/usr/local/lib/python2.7/dist-packages/sseclient.py", line 47, in _connect
    self.resp = requester.get(self.url, stream=True, **self.requests_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 521, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 508, in send
    raise ConnectionError(e, request=request)
ConnectionError: HTTPSConnectionPool(host='arlo.netgear.com', port=443): Max retries exceeded with url: /hmsweb/client/subscribe?token=2_5zFf-pYXsPmNlfAxZt3OJYeDD2UcpSusqfWLqd6--xGKiH3CAv4GYlSQyXgsjDVhLfrpjHk-Fif4GKQmMadBDuFuZrHCPPb5qL6vzRX1WnVUGkCifGpKxCk1fVVK1kg-Kh0mu-ejdfVQLF6MaJuH_TZUzQI371hgj5i8yPr5PZ9L (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x75e100b0>: Failed to establish a new connection: [Errno -2] Name or service not known',))
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: luke666s am 30 Mai 2018, 14:16:58
Hi Maluk,

ich habe mal die "setReadingAndDownload" aus der 49_Arlo.py so angepasst, dass, wenn man die sachen "lokal" speichert, alle bilder und videos mit timestamp gespeichert werden :)

  def setReadingAndDownload(self, reading, url, cameraId, fileSuffix, recording):
    if url != None:
      date = time.strftime("%Y%m%d%H%M%S", time.gmtime())
      if self.downloadDir != '-':
        if recording:
          self.arlo.DownloadSnapshot(url, self.downloadDir + '/' + cameraId + '_' + date + fileSuffix)
        else:
          self.arlo.DownloadRecording(url, self.downloadDir + '/' + cameraId + '_' + date + fileSuffix)
      if self.downloadLink != '-':
        self.executeFhemCommand('reading', cameraId, reading + ' ' + self.downloadLink + '/' + cameraId + '_' + date + fileSuffix)
      else:
        self.executeFhemCommand('reading', cameraId, reading + ' ' + url)


hintergund: ich hab einen share von meinem NAS auf dazu genutzt und da ich da ja genug platz habe, soll bitte auch erstmal alles gespeichert werden...
vielleicht magst du es ja übernehmen bzw konfigurierbar machen :)
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 03 Juni 2018, 12:45:43
Hey maluk, wo stehst du z.Z. ? Ich muss nach wie vor mind 1mal pro Tag stopServer und startServer machen und manchmal sogar noch ein kill.. also läuft noch nicht zuverlässig.

Ansonsten tiptop
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 03 Juni 2018, 21:51:29
Ich bin gerade leider am Renovieren. Ich versuche mal, nächste oder übernächste Woche mich um das Problem zu kümmern. Ich kann es nachvollziehen, wenn ich die Internet-Verbindung kappe. Das muss ich irgendwie erkennen und dann intern den Arlo-Prozess stoppen und neu starten.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 05 Juni 2018, 12:17:24
Hi maluk

Habe vor 2 Tagen auch den Versuch gestartet, mein bisheriges "arlo-Gefriemel" mit Deinem Modul zu ersetzen.
Hat mit der aktuell anhängenden Version schon sehr gut funktioniert, vielen Dank für Deine Arbeit !!!

Einzig die Readings der Cameras gingen nicht ein (Broken-Pipe-Error).Die Lösung war, den Heartbeat auf 90.0 zu setzen.
Seit dem läuft es super auf dem TestServer (RPi Zero W)

Wenn Du die Möglichkeit hättest, das Modul zu erweitern, würde ich mir folgendes wünschen:
Support für mehr als eine BasisStation
Support für die (4000) Sirene vzgw. als Device
Also nochmals herzlichen Dank für das Modul.Grüße
mi.ke
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 05 Juni 2018, 13:55:57
Zitat von: mi.ke am 05 Juni 2018, 12:17:24

Support für mehr als eine BasisStation


Gerade gesehen, dass scheint ja schon zu funktionieren.
sensationell
Cheers
mi.ke


Titel: Keine Readings, nur eingeschränkte Funktion
Beitrag von: m0urs am 06 Juni 2018, 11:54:40
Hallo,

habe heute das Arlo-Modul installiert. Funktioniert insoweit, das ich meine Base Station sowie die beiden Kameras auch angezeigt bekomme. Ich kann den Modus auf "Arm" und "Disarm" setzen und das wird dann auch korrekt ausgeführt. Allerdings werden mir keine Readings angezeigt und ich kann auch z.B. keinen eigenen Modus setzen. In den Logs, auch mit DEBUG, sehe ich nicht wirklich eine Fehlermeldung. 

Hier im Thread gab es ja schon das Problem, dass keine Readings angezeigt werden. Irgendwie scheine ich aber die zündende Idee, was ich tun muss, um das zu beseitigen, nicht richtig gefunden zu haben.

Könnte mir noch mal jemand auf die Sprünge helfen? Vielen Dank!

P.S. Ein Stop des Servers via FHEM funktioniert anscheinend auch nicht. Es bleibt der python Prozess zurück und ich muss ihn manuell killen. Ein Start funktioniert dann wieder via Web-GUI.
Titel: Antw:Keine Readings, nur eingeschränkte Funktion
Beitrag von: choetzu am 06 Juni 2018, 13:38:36
Zitat von: m0urs am 06 Juni 2018, 11:54:40
Hallo,

habe heute das Arlo-Modul installiert. Funktioniert insoweit, das ich meine Base Station sowie die beiden Kameras auch angezeigt bekomme. Ich kann den Modus auf "Arm" und "Disarm" setzen und das wird dann auch korrekt ausgeführt. Allerdings werden mir keine Readings angezeigt und ich kann auch z.B. keinen eigenen Modus setzen. In den Logs, auch mit DEBUG, sehe ich nicht wirklich eine Fehlermeldung. 

Hier im Thread gab es ja schon das Problem, dass keine Readings angezeigt werden. Irgendwie scheine ich aber die zündende Idee, was ich tun muss, um das zu beseitigen, nicht richtig gefunden zu haben.

Könnte mir noch mal jemand auf die Sprünge helfen? Vielen Dank!

P.S. Ein Stop des Servers via FHEM funktioniert anscheinend auch nicht. Es bleibt der python Prozess zurück und ich muss ihn manuell killen. Ein Start funktioniert dann wieder via Web-GUI.

Hast du nach dem Stop/Start jeweils ein "set Arlo_Basis updateReadings" gemacht? Das vergisst man leicht ;)

Ich habe seit zwei Tagen folgendes Doif als Workaround am Laufen:

([Arlo_Restart_Dummy:"push"])
(set Arlo_Cloud stopServer)
(set Arlo_Cloud startServer)
(set Arlo_BasisSecurity updateReadings)

DOELSE


Sobald ich beim dummy "push" auslöse, wird der Server getoppt (wait 0), wieder gestartet (wait 10) und dann eben das updateReading gemacht (wait 10). Geht eigentlich soweit gut. Ich musste bislang kein manuelles Prozess killing durchführen. Beobachte weiter.

Ich will dann - bis das Problem gelöst ist - in einem nächsten Schritt das Doif nicht nur via push auslösen, sondern automatisieren.  Melde mich dann.
Titel: Antw:Keine Readings, nur eingeschränkte Funktion
Beitrag von: m0urs am 06 Juni 2018, 16:12:18
Zitat von: choetzu am 06 Juni 2018, 13:38:36
Hast du nach dem Stop/Start jeweils ein "set Arlo_Basis updateReadings" gemacht?

Ja, das habe ich ausgeführt. Es kommt zwar keine Fehlermeldung, aber es erscheinen auch keine Readings :-(
Titel: Antw:Keine Readings, nur eingeschränkte Funktion
Beitrag von: m0urs am 06 Juni 2018, 19:23:15
Zitat von: m0urs am 06 Juni 2018, 16:12:18
Ja, das habe ich ausgeführt. Es kommt zwar keine Fehlermeldung, aber es erscheinen auch keine Readings :-(

Ich sehe im Log auch keinerlei Einträge der Form

"INFO: Send command to FHEM: "

Da die Readings ja, wenn ich es richtig verstehe, via Telnet-Kommandos an FHEM erzeugt werden, würde ich vermuten, dass irgendwie keine Kommunikation via Telnet stattfindet.

Ich habe Telnet mit und ohne Passwort probiert.

Was mir auffällt: Wenn ich vom Linux-Prompt ein Telnet auf FHEM mache, muss ich immer einmal Return-Taste drücken, bevor ich den "fhem>" Prompt bekomme. Ist das normal? Oder hat das eventuell etwas mit dem Problem zu tun?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 07 Juni 2018, 21:58:06
Dein Problem muss auf jeden Fall mit der Telnet-Kommunikation zusammenhängen. Erscheinen irgendwelche Fehlermeldungen im FHEM-Log? Und war die Installation von python-fhem (sudo pip install fhem) erfolgreich?

Falls du hier nichts findest, kannst du in 49_Arlo.py die Zeile 352 (os.remove('/tmp/arlo_params')) auskommentieren und danach den Python-Server neu starten. Danach solltest du in der Datei /tmp/arlo_params sehen, mit welchem Telnet-Port und Telnet-Passwort das Python-Modul versucht, auf FHEM zuzugreifen. Falls die Werte korrekt sind und trotzdem nichts funktioniert, bitte folgendes Python-Programm ausführen (Telnet-Passwort und ggf. Telnet-Port anpassen, falls nicht 7072 verwendet wird):

import fhem
fhem = fhem.Fhem('localhost', port=7072, password='myFhemTelnetPassword')
fhem.connect()
g = fhem.get_dev_state('global')
print g


Mit diesem Mini-Programm sollte die Konfiguration des global-Device von FHEM ausgegeben werden. Falls dies nicht passiert, gibt es ein Problem mit der Kommunikation zwischen Python und FHEM. In diesem Fall bitte die Fehlermeldung posten.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: m0urs am 08 Juni 2018, 08:44:48
Zitat von: maluk am 07 Juni 2018, 21:58:06
Erscheinen irgendwelche Fehlermeldungen im FHEM-Log? Und war die Installation von python-fhem (sudo pip install fhem) erfolgreich?

Keine Fehlermeldungen und die Installation von python-fhem habe ich gerade noch mal neu gemacht. Erfolgreich.

Zitat von: maluk am 07 Juni 2018, 21:58:06
Falls du hier nichts findest, kannst du in 49_Arlo.py die Zeile 352 (os.remove('/tmp/arlo_params')) auskommentieren und danach den Python-Server neu starten. Danach solltest du in der Datei /tmp/arlo_params sehen, mit welchem Telnet-Port und Telnet-Passwort das Python-Modul versucht, auf FHEM zuzugreifen.

Sieht für mich ok aus. Ich nutze (derzeit) kein Telnet-Passwort. Hatte das aber auch schon mal mit Passwort versucht:


<arlo_user> <arlo_password> Arlo_Cloud 8001 - - 7072



Zitat von: maluk am 07 Juni 2018, 21:58:06
Falls die Werte korrekt sind und trotzdem nichts funktioniert, bitte folgendes Python-Programm ausführen (Telnet-Passwort und ggf. Telnet-Port anpassen, falls nicht 7072 verwendet wird):

Funktioniert einwandfrei. (Ich habe aber noch zwei Logging-Zeilen eingefügt, da sonst ein Fehler kam):


import fhem
import logging
logging.basicConfig()
fhem = fhem.Fhem('localhost', port=7072, password='')
fhem.connect()
g = fhem.get_dev_state('global')
print g


Hier noch der Output vom /tmp/arlo.log nach Neustart FHEM und einmal manuell updateReadings:


2018-06-08 08:42:10,959 INFO: Starting new HTTPS connection (1): arlo.netgear.com
2018-06-08 08:42:12,282 DEBUG: "POST /hmsweb/login/v2 HTTP/1.1" 200 None
2018-06-08 08:42:12,382 DEBUG: "GET /hmsweb/users/devices HTTP/1.1" 200 4108
2018-06-08 08:42:12,385 INFO: Start event handler
2018-06-08 08:42:12,392 INFO: Started arlo http server on port 8001
2018-06-08 08:42:13,262 DEBUG: "GET /hmsweb/client/subscribe?token=<hier_war_das_token> HTTP/1.1" 200 None
2018-06-08 08:43:13,733 INFO: Starting new HTTPS connection (2): arlo.netgear.com
2018-06-08 08:43:14,017 DEBUG: "GET /hmsweb/users/devices HTTP/1.1" 200 None
2018-06-08 08:43:14,064 DEBUG: "POST /hmsweb/users/devices/notify/4RD3837TA2965 HTTP/1.1" 200 None
2018-06-08 08:43:14,132 DEBUG: "POST /hmsweb/users/devices/notify/4RD3837TA2965 HTTP/1.1" 200 None


Ich bin ratlos ...
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: m0urs am 08 Juni 2018, 15:42:57
Nachtrag:

Ich habe mal Logging-Zeilen am Beginn der beiden Funktionen "executeFhemCommand" und "fhemConnection" eingefügt:


def executeFhemCommand(self, command, deviceId, params):
    logging.debug('URS: Enter executeFhemCommand')
    fhemCommand = 'set ' + self.fhemDevice + ' ' + command + ' ' + deviceId + ' ' + params
    logging.info('Send command to FHEM: ' + fhemCommand)
    self.fhemConnection().send_cmd(fhemCommand)

  def fhemConnection(self):
    logging.debug('URS: Enter fhemConnection')
    if self.fhem == None:
      self.fhem = fhem.Fhem('localhost', port=self.fhemPort, password=self.fhemPassword)
      self.fhem.connect()
    return self.fhem



Müssten diese Zeilen nicht für einen Output im Log sorgen, sobald die Prozedure mal aufgerufen wird?

Beide Prozeduren produzieren nämlich keinen Logeintrag und scheinen überhaupt nicht aufgerufen zu werden, wenn ich ein "updateReading" mache? Oder verstehe ich da was falsch?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: m0urs am 10 Juni 2018, 09:30:14
Ich hab mein Problem gelöst. Nachdem auch Versuche mit den Python-Examples von der Arlo-Library nicht erfolgreich waren, auf einem zweiten (Test) Raspberry aber liefen, habe ich noch mal alle von Arlo.py benötigten Python-Module deinstalliert und sie durch "pip install arlo" noch mal neu installieren lassen.

Nun funktioniert auch das Fhem-Modul und die Readings  werden angelegt!
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: m0urs am 10 Juni 2018, 19:34:50
Und wenn ich jetzt noch eine Bitte loswerden dürfte: Besteht die Möglichkeit noch einzubauen, dass man die Helligkeit setzen kann (Wert: brightness, -2 bis +2). Habs versucht selbst einzubauen, aber da ich wenig Erfahrung mit Perl und Python habe bin ich nicht so recht zum Ziel gekommen. Hintergrund ist, das ich nachts, wenn es ganz dunkel ist, die Helligkeit auf Maximum setzen möchte, damit das Bild besser wird. Tagsüber muss das dann aber wieder zurück auf den Normalwert.

Vielen Dank schon mal im voraus!
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 17 Juni 2018, 20:05:42
Zitat von: maluk am 07 Mai 2018, 20:40:06

Bitte beachten, dass der Python-Server aktuell nur mit einer Basisstation funktioniert. Falls jemand mehrere Basisstationen im Einsatz hat, bitte melden.


meld.....meld....meld....meld....meld.....meld....meld....meld....


Zitat von: mi.ke am 05 Juni 2018, 13:55:57
Gerade gesehen, dass scheint ja schon zu funktionieren.
sensationell
Cheers
mi.ke

Also, da bin ich wohl zu kurz gesprungen.
Erkannt wird die 2.te BAsisStation und auch die CAMs, aber es kommen keine  Readings (aussen lastVideo.*)

Könntest Du, wenn Deine Renovierung beendet ist, mal schauen, ob Du mir weiterhelfen könntest?

Vielen Dank und Grüße

mi.ke



Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: FrankieSOC am 18 Juni 2018, 18:46:13
Hallo Zusammen,

ich weiß nicht mehr wo ich suchen soll.
Ein paar Minuten nach einem Neustart (17:52), erhalte ich diese Fehlermeldung.(zwischen 18:22 - 18:24)

Exception in thread EventStream:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 283, in QueueEvents
    for event in event_stream:
  File "/usr/local/lib/python2.7/dist-packages/sseclient.py", line 65, in __next__
    next_chunk = next(self.resp_iterator)
  File "/usr/lib/python2.7/dist-packages/requests/models.py", line 653, in generate
    for chunk in self.raw.stream(chunk_size, decode_content=True):
  File "/usr/lib/python2.7/dist-packages/urllib3/response.py", line 256, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "/usr/lib/python2.7/dist-packages/urllib3/response.py", line 186, in read
    data = self._fp.read(amt)
  File "/usr/lib/python2.7/httplib.py", line 578, in read
    return self._read_chunked(amt)
  File "/usr/lib/python2.7/httplib.py", line 620, in _read_chunked
    line = self.fp.readline(_MAXLINE + 1)
  File "/usr/lib/python2.7/socket.py", line 476, in readline
    data = self._sock.recv(self._rbufsize)
  File "/usr/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.py", line 188, in recv
    data = self.connection.recv(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 995, in recv
    self._raise_ssl_error(self._ssl, result)
  File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 851, in _raise_ssl_error
    raise ZeroReturnError()
ZeroReturnError


In der arlo.log gibt es keine Fehlermeldung. der letzte Eintrag ist von 18:18.

Nach der Fehlermeldung kann ich die Kamera nach on /off oder amr /disarm schalten, aber es gibt keine Readings mehr.
Und weiter habe ich beobachtet, dass der Stromverbrauch vom "Server" massiv ansteigt. (siehe Bild)

Wenn ich in der Arlo_Cloud StopServer ausführe, sinkt der Stromverbrauch wieder. Mit einem StartServer bringe ich das System, aber nicht mehr zum laufen, ich muss ihn wirklich neustarten.

Hat wer einen Tipp?

Viele Grüße
Frank
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 18 Juni 2018, 22:50:23
Die Probleme werden vermutlich alle durch irgendwelche Verbindungsabbrüche verursacht. Offensichtlich kommt der EventHandler in der Arlo-Library dabei aus dem Tritt und empfängt danach keine Events mehr vom Server. Dies erklärt, warum man noch Aktionen ausführen kann, aber keinen Statuswechsel mehr mitbekommt.

Da dies außerhalb meines Codes liegt, brauche ich noch etwas für die genaue Analyse und die Problemlösung. Ich muss irgendwie erkennen, dass der EventHandler "gestorben" ist und muss dann das Arlo-Modul neu starten. Also bitte noch etwas Geduld.

Die Sirene werde ich auf jeden Fall auch noch einbinden, das ist kein großer Aufwand. 2 Basisstationen sind für mich etwas schwer zu testen, da ich nur eine habe, aber auch darum werde ich mich kümmern - allerdings erst nach der Lösung für die Verbindungsabbrüche.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: FrankieSOC am 19 Juni 2018, 20:35:43
So, ich habe nochmals ein wenig getestet und habe mein Docker Image auf Stretch upgedatet.
Die Installation hatte nicht direkt geklappt, ich musste zusätzlich das Modul "pyOpenSSL" installieren.

RUN pip install pyOpenSSL
RUN pip install urllib3[secure]
RUN pip install sseclient
RUN pip install git+https://github.com/jeffreydwalter/arlo
RUN pip install fhem


Das System läuft und seit 4 Stunden klappt alles. Ich bin gespannt.  ;)

Viele Grüße
Frank
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 21 Juni 2018, 23:19:11
Jetzt endlich das lang erwartete Update: ich habe das Verhalten des EventStreamThread so angepasst, dass er eigentlich eine korrekte neue Verbindung aufbauen müsste, wenn Abbrüche wie DSL Zwangstrennung auftreten. Bitte unbedingt testen und Rückmeldung geben, damit ich weiß, ob das Problem behoben ist. Wenn eines solche Situation auftritt, kann es bis zu 5 Minuten dauern, bis die Verbindung wieder korrekt steht.

Außerdem habe ich 2 gewünschte Features umgesetzt:
Die aktualisierten Module hängen am ersten Eintrag zum Download.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 22 Juni 2018, 12:33:25
Wasserstandsmeldung:Letzte Version installiert.
- EventStreamThread: Ich log es mal mit und berichte
- brightness funktioniert bei der 3000er und 4000er Kamera Serie gut
- Sirene hatte ich im ersten Versuch Probleme, kann aber an meiner 2.ten Basisstation hängen.

btw. Hilft es Dir, wenn ich Dir eine Basisstation zum testen schicke?
Ich hab noch eine 3000 rumliegen.
Cheers
mi.ke
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: m0urs am 22 Juni 2018, 19:18:30
Zitat von: maluk am 21 Juni 2018, 23:19:11
  • Bei Kameras kann jetzt die Helligkeit mit set brightness etwas angepasst werden. Gültige Werte sind von -2 bis +2.

Vielen, lieben Dank!
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 22 Juni 2018, 23:28:56
Zitat von: mi.ke am 22 Juni 2018, 12:33:25
btw. Hilft es Dir, wenn ich Dir eine Basisstation zum testen schicke?
Ich hab noch eine 3000 rumliegen.

Ich habe gerade eine neue Version von 49_Arlo.py hochgeladen, die mit mehreren Basisstationen funktionieren müsste. Ich war ursprünglich nur zu faul, eine Liste von Basisstationen anzulegen, da ich in Python auch nicht hundertprozentig fit bin. Bitte teste mal - wir sollten das auch ohne Zusendung der Basisstation hinkriegen.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: supernova1963 am 23 Juni 2018, 08:03:55
Hallo maluk,

tolles Modul. Die Installation gem. Anleitung (https://forum.fhem.de/index.php/topic,87602.msg800309.html#msg800309) hat auf Anhieb funktioniert.

Danke,

Gernot
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 24 Juni 2018, 17:39:40
Zitat von: maluk am 21 Juni 2018, 23:19:11
Jetzt endlich das lang erwartete Update: ich habe das Verhalten des EventStreamThread so angepasst, dass er eigentlich eine korrekte neue Verbindung aufbauen müsste, wenn Abbrüche wie DSL Zwangstrennung auftreten. Bitte unbedingt testen und Rückmeldung geben, damit ich weiß, ob das Problem behoben ist. Wenn eines solche Situation auftritt, kann es bis zu 5 Minuten dauern, bis die Verbindung wieder korrekt steht.

Außerdem habe ich 2 gewünschte Features umgesetzt:

  • An der Basisstation kann jetzt die Sirene ein- und ausgeschaltet werden. ACHTUNG: ich glaube, die Sirene ist ganz schön laut. Wenn Ihr es etwas leiser und/oder kürzer möchtet, 49_Arlo.py in Zeile 251 anpassen (volume/duration).
  • Bei Kameras kann jetzt die Helligkeit mit set brightness etwas angepasst werden. Gültige Werte sind von -2 bis +2.
Die aktualisierten Module hängen am ersten Eintrag zum Download.

Hallo maluk,
danke fürs Update. Bin grad am Testen. Beim Restart von FHEM kam folgende Fehlermeldung:

Traceback (most recent call last):
  File "FHEM/49_Arlo.py", line 406, in <module>
    main(sys.argv[1:])
  File "FHEM/49_Arlo.py", line 402, in main
    startService(int(argv[3]))
  File "FHEM/49_Arlo.py", line 373, in startService
    server.socket.close()
NameError: global name 'server' is not defined


NameError? Was kann das sein? Danke für die Hilfe.
Lg C
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 24 Juni 2018, 20:38:01
Für mich sieht es aus, als ob dein alter Server-Prozess noch läuft und daher der Port belegt ist. Schaue mal mit ps -ef | grep python ob noch ein alter Python-Prozess läuft. Falls diesen killen und nochmal neu starten. Falls das nichts hilft, bitte nochmal das /tmp/arlo.log prüfen, ob dort ein Hinweis steht, warum der Server bei dir nicht startet.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 24 Juni 2018, 20:41:33
pi        3719  3685  0 20:40 pts/0    00:00:00 grep --color=auto python
fhem     28558     1  0 17:16 ?        00:00:26 python FHEM/49_Arlo.py


läuft ja nur einer, oder?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 24 Juni 2018, 21:25:25
Genau deshalb konnte der Python-Server nicht gestartet werden, weil schon einer läuft und den Port blockiert. Bei jedem weiteren startServer kommt die von dir genannte Fehlermeldung. Wenn udu den Prozess mit sudo kill -9 28558 den laufenden Server stoppen und danach aus FHEM am Cloud-Device startServer aufrufen. Dann sollte der Fehler nicht mehr kommen.

Alternativ kannst du auch mal versuchen, stopServer in FHEM aufzurufen und prüfen, ob der Python-Prozess dann verschwindet.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 25 Juni 2018, 07:33:53
Zitat von: maluk am 24 Juni 2018, 21:25:25
Genau deshalb konnte der Python-Server nicht gestartet werden, weil schon einer läuft und den Port blockiert. Bei jedem weiteren startServer kommt die von dir genannte Fehlermeldung. Wenn udu den Prozess mit sudo kill -9 28558 den laufenden Server stoppen und danach aus FHEM am Cloud-Device startServer aufrufen. Dann sollte der Fehler nicht mehr kommen.

Alternativ kannst du auch mal versuchen, stopServer in FHEM aufzurufen und prüfen, ob der Python-Prozess dann verschwindet.

herzlichen Dank. Es ist also der selbe Fehler wie schon bereits in einem meiner ersten Posts. Ich habe ein Workaround mittels DOIF gemacht, wo der Server stopt,startet und updatet. ISt aber nicht wirklich die Lösung. Woher kommt das?

hier noch der Logauszug:

2018-06-24 17:12:52,829 WARNING: [Errno 32] Broken pipe
2018-06-24 17:12:55,348 INFO: Start event handler
2018-06-24 17:14:14,643 INFO: Send command to FHEM: set Arlo_Cloud reading 48E3577FA00FD state disarmed
2018-06-24 17:14:14,644 WARNING: [Errno 32] Broken pipe
2018-06-24 17:14:15,460 INFO: Send command to FHEM: set Arlo_Cloud readings 48B45BS62C960 on 95 4
2018-06-24 17:14:15,461 WARNING: [Errno 32] Broken pipe
2018-06-24 17:16:05,609 INFO: Stopped event handler
2018-06-24 17:16:17,063 INFO: Start event handler
2018-06-24 17:16:17,071 INFO: Started arlo http server on port 8001
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 25 Juni 2018, 11:50:41
@choetzu

Zitat von: mi.ke am 05 Juni 2018, 12:17:24
. . . . (Broken-Pipe-Error).Die Lösung war, den Heartbeat auf 90.0 zu setzen.


@maluk

Die Version mit der 2.ten Basisstation verursacht bei mir "Hänger"
und zwar, betrifft dies entweder die erste oder die zweite, anscheinend abhängig von der Startreihenfolge.Hier die Fehlermeldung:


Exception in thread EventStream:Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 291, in QueueEvents
    self.event_streams[basestation_id].Disconnect()
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 96, in Disconnect
    self.Unregister()
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 116, in Unregister
    if self.heartbeat_thread != threading.current_thread():
AttributeError: 'EventStream' object has no attribute 'heartbeat_thread'

Exception AttributeError: "'EventStream' object has no attribute 'heartbeat_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0xb51ef250>> ignored


Auch die Zwangstrennung lässt die Verbindung "abrauchen".

Es hilft dann noch nicht mal ein reboot des Rechners, ich musste das BaseStation-Device löschen und neuanlegen lassen.

Wenn Du zum nachstellen weiteren LOGs brauchst, sag Bescheid.
Bin jetzt erstmal zurück auf die Version vom 21.06.2018

Danke und Grüße

mi.ke
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 25 Juni 2018, 19:16:09
Danke mi.ke. Doch wie und wo setzt man diesen heartbeat auf 90.0?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 26 Juni 2018, 00:06:18
Zitat von: maluk am 12 Mai 2018, 22:50:43

Ich hatte auch schon ähnliche Probleme. Ich habe dann in der Datei /usr/local/lib/python2.7/dist-packages/Arlo.py in der Heartbeat-Funktion in Zeile 294 den Heartbeat-Intervall von 30.0 auf 90.0 erhöht. Seither läuft es bei mir ohne Probleme. Versuche das einfach mal und führe danach set ArloCloud stopServer und set ArloCloud startServer aus. Ich wollte eigentlich in dem Modul eine Möglichkeit, den Timeout von außen setzen zu können, aber Jeffrey Walter hat zunächst nur die früheren 2 Sekunden für den Heartbeat auf 30 Sekunden erhöht (siehe https://github.com/jeffreydwalter/arlo/issues/68 (https://github.com/jeffreydwalter/arlo/issues/68)). Falls die Erhöhung auf 90 Sekunden auch bei dir die Probleme behebt, werde ich nochmal auf ihn zugehen, damit er das Modul entsprechend anpasst.


cheers


mi.ke
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 26 Juni 2018, 22:10:18
hallo mi.ke. danke. hab ich so gemacht und heute morgen neu gestartet. Heute Nachmittag kam dann folgende Meldung:

Exception in thread HeartbeatThread:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 296, in Heartbeat
    self.Ping(basestation)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 394, in Ping
    return self.NotifyAndGetResponse(basestation, {"action":"set","resource":"subscriptions/"+self.user_id+"_web","publishResponse":False,"properties":{"devices":[basestation_id]}})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 379, in NotifyAndGetResponse
    transId = self.Notify(basestation, body)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 370, in Notify
    self.request.post('https://arlo.netgear.com/hmsweb/users/devices/notify/'+body['to'], body, headers={"xcloudId":basestation.get('xCloudId')})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 150, in post
    return self._request(url, 'POST', params, headers)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 141, in _request
    raise HTTPError('Request ({0} {1}) failed'.format(method, url), response=r)
HTTPError: Request (POST https://arlo.netgear.com/hmsweb/users/devices/notify/48E3575FAEEFD) failed
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 27 Juni 2018, 10:50:27
@maluk

Heute Nacht zur Zeit der DSL-Zwangstrennung  blieb wieder alles hängen.
(mein automatisches DOIF zum Python-Servers hatte ich zu Testzwecken ausgeschaltet)
Die verwendete Version des Moduls ist die vom 21.06.2018.

Meldung im arlo.log
2018-06-27 03:52:42,011 INFO: Timeout occured in handle arlo events - restart event handler

Meldungen im Fhem-Log:
Exception in thread HeartbeatThread:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 301, in Heartbeat
    self.Ping(basestation)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 399, in Ping
    return self.NotifyAndGetResponse(basestation, {"action":"set","resource":"subscriptions/"+self.user_id+"_web","publishResponse":False,"properties":{"devices":[basestation_id]}})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 384, in NotifyAndGetResponse
    transId = self.Notify(basestation, body)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 375, in Notify
    self.request.post('https://arlo.netgear.com/hmsweb/users/devices/notify/'+body['to'], body, headers={"xcloudId":basestation.get('xCloudId')})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 154, in post
    return self._request(url, 'POST', params, headers, raw)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 133, in _request
    r = self.session.post(url, json=params, headers=headers)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 555, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 490, in send
    raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer'))



Cheers
mi.ke
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: tom44 am 29 Juli 2018, 22:12:16

Hallo Maluk,

Leider funktioniert bei mir die Adresse unten nicht, es wird kein einziges package gefunden.
Zitat
Falls dies nicht funktioniert, kann man noch mit dem Parameter "-i https://pypi.python.org/simple" den Server festlegen, von dem die Installations-Informationen geholt werden sollen,
also z.B. sudo pip install -i https://pypi.python.org/simple cffi

es mag vielleicht eine blöde Frage sein. Wie komme ich denn an eine aktuelle Adresse, um die packages herunterzuladen?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 30 Juli 2018, 21:06:02
Hallo tom44,

normalerweise brauchst du den Parameter -i https://pypi.python.org/simple nicht angeben. Ich musste nur auf meinem Cubietruck die sudo pip install Befehle vor dem zu installierenden Paket um -i https://pypi.python.org/simple erweitern, also sudo pip install -i https://pypi.python.org/simple urllib3[secure] usw. Funktioniert das bei dir nicht?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: tom44 am 30 Juli 2018, 21:47:15
Hallo Maluk,

danke für deine Antwort. Nein, es wird - wenn ich das richtig interpretiere - nicht das richtige Verzeichnis gefunden. Beim ersten Versuch (ohne Adresse) findet er nicht das package (von mir fett hervorgehoben), beim zweiten Versuch (mit Adresse) findet er keine distribution ...
:
Zitat
XXX@raspberrypi:~# sudo apt-get install python-cffi
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package python-cffi
XXX@raspberrypi:~# sudo pip install -i https://pypi.python.org/simple python-cf                                   fi
Downloading/unpacking python-cffi
  Could not find any downloads that satisfy the requirement python-cffi
No distributions at all found for python-cffi
Storing complete log in /root/.pip/pip.log

Hast Du vielleicht eine Idee, was bei mir falsch läuft?

LG Tom
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 31 Juli 2018, 11:31:34
Hi Maluk.

Ich wollte noch mal nachfragen wegen der Untertützung für die 2. BasisStation.

Die Version vom 22.06.2018 macht leider extreme Probleme.
(Fehlerbeschreibung in Antwort 117 (https://forum.fhem.de/index.php/topic,87602.msg814276.html#msg814276))

Danke und Grüße

mi.ke
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 01 August 2018, 10:05:05
Zitat von: choetzu am 26 Juni 2018, 22:10:18
hallo mi.ke. danke. hab ich so gemacht und heute morgen neu gestartet. Heute Nachmittag kam dann folgende Meldung:

Exception in thread HeartbeatThread:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 296, in Heartbeat
    self.Ping(basestation)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 394, in Ping
    return self.NotifyAndGetResponse(basestation, {"action":"set","resource":"subscriptions/"+self.user_id+"_web","publishResponse":False,"properties":{"devices":[basestation_id]}})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 379, in NotifyAndGetResponse
    transId = self.Notify(basestation, body)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 370, in Notify
    self.request.post('https://arlo.netgear.com/hmsweb/users/devices/notify/'+body['to'], body, headers={"xcloudId":basestation.get('xCloudId')})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 150, in post
    return self._request(url, 'POST', params, headers)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 141, in _request
    raise HTTPError('Request ({0} {1}) failed'.format(method, url), response=r)
HTTPError: Request (POST https://arlo.netgear.com/hmsweb/users/devices/notify/48E3575FAEEFD) failed


Hi maluk
auch bei mir kommt noch die folgende Fehlermeldung.

Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.7/SocketServer.py", line 652, in __init__
    self.handle()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
    self.handle_one_request()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
    method()
  File "FHEM/49_Arlo.py", line 320, in do_GET
    except ConnectionError as e:
NameError: global name 'ConnectionError' is not defined


Gibts da wirklich keine Möglichkeit dies zu beheben?

danke.

An die anderen: seht ihr einen Workaround diese Logeinträge "auszuschalten"?

127.0.0.1 - - [31/Jul/2018 23:19:29] "GET /BASESTATION?device=Arlo_BasisSecurity&cmd=updateReadings&basestationId=48E3577FA00FD&cameraId= HTTP/1.0" 200 -
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: tobias.vorberg am 01 August 2018, 15:28:24
Hi,

ich habe alles Installiert bekommen und das Modul eingebunden.
Nach dem "define Arlo_Cloud Arlo ACCOUNT hans.mustermann@xyz.de meinPasswort" kommt im FHEM-Log folgende Meldung:

Traceback (most recent call last):
  File "FHEM/49_Arlo.py", line 12, in <module>
    from Arlo import Arlo
ImportError: No module named Arlo

Es gibt dann den Raum Arlo und die Arlo_Cloud, aber ohne Funktion.
Mit Autocreate lasst sich auch nichts weiter anlegen.
Ich habe mal versucht einen anderen Port anzugeben als dritten Parameter, aber der geht immer Automatisch auf 8001

Jemand eine Idee?

Tobias
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: tobias.vorberg am 01 August 2018, 20:23:31
Hat sich erledigt. Nach dem ich alles sauber neu installiert habe läuft es ohne Fehler.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 01 August 2018, 21:45:07
Zitat von: tom44 am 30 Juli 2018, 21:47:15
Hallo Maluk,

danke für deine Antwort. Nein, es wird - wenn ich das richtig interpretiere - nicht das richtige Verzeichnis gefunden. Beim ersten Versuch (ohne Adresse) findet er nicht das package (von mir fett hervorgehoben), beim zweiten Versuch (mit Adresse) findet er keine distribution ...
:
Hast Du vielleicht eine Idee, was bei mir falsch läuft?

LG Tom

Wenn du mit pip installierst, musst du python- weglassen, also sudo pip install cffi
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 01 August 2018, 21:49:57
mi.ke / choetzu - ich habe Euch nicht vergessen, aber momentan so viel um die Ohren, dass ich leider nicht dazu komme, mich um das Modul zu kümmern. Das Problem mit den Verbindungsabbrüchen trifft mich manchmal auch, da auch bei Internet über Kabel ab und zu die Verbindung abbricht. Das Problem daran ist, dass der Fehler schwer zu reproduzieren ist.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 01 August 2018, 22:10:55
Hi choetzu,

an der Fehlermeldung sehe ich, dass du nicht die aktuellste Version installiert hast. Lade dir mal die letzte Version herunter und starte den Python Server nochmal neu.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 01 August 2018, 22:35:02
Hi Maluk,
Kein Stress, wir sind glaub ich, alle happy, dass schon soviel mit dem Modul möglich ist !!

Aber nicht die Version vom 22.06.2018 nehmen, sondern die vom 21.06.2018.
Das einzige was dort nicht funktioniert ist, dass der "Heartbeat" bei wegbrechen der Internetverbindung abbricht.
Dann einfach automatische den Python-Server (mit DOIF oder notify) neustarten.

Ich schreibe bei jeder Aktualisierung der Readings (default 1 Std.) einen timestamp mit in ein Kamera-Reading. Wenn das Delta zu JETZT() > 3800 ist, wird der Python-Server neugestartet.
Und nachts zwischen 3:30 und 4:00 Uhr gibt es eine DSL-Zwangstrennung, da läuft das Script öfter und das Delta ist kleiner.

So läuft das Modul schon 3-4 Wochen sauber durch (bei einer Basisstation, die Kamera an der Zweiten, hat nicht alle Readings, die Base schaltet aber brav die Modis um)

Grüße

mi.ke

PS.
Ich häng Euch mal die Raw Definition des Neustart DOIFs an. Vielleicht hilft es ja jemandem.


defmod Arlo_Server_ueberwachnung_di DOIF ([Arlo_Server_Restart:"restart"]) \
   (set Arlo_Cloud stopServer)\
   (set Arlo_Cloud startServer)\
   (set Arlo_Aussenbereich updateReadings)\
   (set Arlo_Innenbereich updateReadings)\
   (set Arlo_Server_Restart fuse)\
DOELSEIF\
([Arlo_Server_Restart:"update"]) \
   (set Arlo_Aussenbereich updateReadings)\
   (set Arlo_Innenbereich updateReadings)\
   (set Arlo_Server_Restart fuse)\
DOELSE


attr Arlo_Server_ueberwachnung_di do always
attr Arlo_Server_ueberwachnung_di room Arlo
attr Arlo_Server_ueberwachnung_di timestamp-on-change-reading state
attr Arlo_Server_ueberwachnung_di wait 0,10,10,10,2:0,10,10,2
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 01 August 2018, 22:54:35
Zitat von: maluk am 01 August 2018, 22:10:55
Hi choetzu,

an der Fehlermeldung sehe ich, dass du nicht die aktuellste Version installiert hast. Lade dir mal die letzte Version herunter und starte den Python Server nochmal neu.


done. Danke für den Hinweis. Und auch ich bin froh, wenn du von Zeit zu Zeit dran arbeitest. Null Stress, aber mach mal was ;) Nur Spass.. Schliesse mich mi.ke an.

@mi.ke Ich habe ähnliche DOIFs. Was ich aber noch nicht gelöst habe, ist, wenn FHEM nach einem Update All neu gestartet werden muss. Da muss ich immer manuell den Server neu starten.

lg c
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 01 August 2018, 23:07:10
Zitat von: choetzu am 01 August 2018, 22:54:35
Was ich aber noch nicht gelöst habe, ist, wenn FHEM nach einem Update All neu gestartet werden muss. Da muss ich immer manuell den Server neu starten.

Du macht doch wohl keine automatischen "Update All" ?!?!? :o

Naja, Otto (Otto123) hier aus dem Forum hat in seinem Blog dazu etwas sehr schön aufbereitet.
http://heinz-otto.blogspot.com/2017/08/raspberry-ausschalten-mit-fhem.html (http://heinz-otto.blogspot.com/2017/08/raspberry-ausschalten-mit-fhem.html)


Cheers
mi.ke
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 02 August 2018, 09:00:38
Danke mi.ke. Toller Hinweis! Aber jetzt muss man noch irgendwo einbauen, dass sich das Modul von maluk automatisch nach dem bootet restartet. Wie hast du das gelöst?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 02 August 2018, 09:11:58
Ich hab auf jedem fhem Rechner ein notify "NachNeuStart_n"
Dort schreib ich rein, was er nach dem Neustart tun soll.  8)

defmod NachNeuStart_n notify global:INITIALIZED {\
{fhem ("sleep 5")};;\
my $NST = ReadingsTimestamp("NachNeuStart","state",0);;\
{fhem ("............")};;\
{Log 3, ("#######################################")};;\
{Log 3, ("####     Server neu gestartet     #####")};;\
{Log 3, ("#######################################")};;\
}


Cheers
mi.ke
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: fhemfrederik am 03 August 2018, 08:57:47
Hallo,

ich habe eine ArloQ und eine Arlo Baby. Mein "Arlo_Cloud-Device" steht auf "Initialized". Autocreate zeigt nichts an. Werden nur Kameras mit Basistation unterstützt? Ist da noch was geplant?

Viele Grüße
Frederik
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: hugo am 12 August 2018, 18:33:45
Hallo, bekomme immer diese Fehlermeldung beim install von "sudo pip install git+https://github.com/jeffreydwalter/arlo"
Collecting git+https://github.com/jeffreydwalter/arlo
  Cloning https://github.com/jeffreydwalter/arlo to ./pip-1zjkUe-build
  Error [Errno 2] Datei oder Verzeichnis nicht gefunden while executing command git clone -q https://github.com/jeffreydwalter/arlo /tmp/pip-1zjkUe-build
Cannot find command 'git'

Danke für die Hilfe.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 12 August 2018, 20:50:44
Du musst offensichtlich noch GIT installieren:

sudo apt-get install git
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 12 August 2018, 20:57:50
Zitat von: fhemfrederik am 03 August 2018, 08:57:47
Hallo,

ich habe eine ArloQ und eine Arlo Baby. Mein "Arlo_Cloud-Device" steht auf "Initialized". Autocreate zeigt nichts an. Werden nur Kameras mit Basistation unterstützt? Ist da noch was geplant?

Viele Grüße
Frederik

Ich habe beide Kameras leider nicht. ArloQ wird von Jeffrey Walter's Modul unterstützt. Ich kann mal in einer der nächsten Versionen versuchen, die Unterstützung für die Kamera blind einzubauen. Ob das dann funktioniert, kann ich leider nicht versprechen.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: hugo am 13 August 2018, 07:27:38
Zitat von: maluk am 12 August 2018, 20:50:44
Du musst offensichtlich noch GIT installieren:

sudo apt-get install git

vielen Dank für die Hilfe, nach dem install von git und uninstall von pyOpenSSL " sudo pip uninstall pyOpenSSL" hat es soweit funktioniert.
Ihr seid so Super  :)
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: phil82 am 28 August 2018, 19:50:47
Hallo maluk,

ich hab eine Implementierungsanfrage: Kann die Telnet-Verbindung zur Fhem-Instanz per SSL abgesichert werden?

Bei mir lauft dein Arlo-Modul recht stabil und wirklich gut. Allerdings würde ich den Telnet-Port gerne per SSL absicher.
Dazu muss beim Aufbau der Telnet-Verbindung use_ssl=True stehen - hab ich bei mir schon modifiziert und funktioniert.
Zeile 157     self.fhem = fhem.Fhem('localhost', port=self.fhemPort, password=self.fhemPassword, use_ssl=True)

Perfekt wäre natürlich eine entsprechende Konfiguration über das Fhem-Device - dann kann das jeder für sich konfiguieren  ;)

Danke und Gruß
Philipp
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 29 August 2018, 11:01:35
Hallo

Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 286, in QueueEvents
    self.event_streams[basestation_id].Disconnect()
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 96, in Disconnect
    self.Unregister()
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 116, in Unregister
    if self.heartbeat_thread != threading.current_thread():
AttributeError: 'EventStream' object has no attribute 'heartbeat_thread'


Gibts dazu Neuigkeiten? Ich mache nach jedem FHEM Restart ein stopServer/StartServer...
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: tom44 am 05 September 2018, 20:55:50
Zitat von: maluk am 01 August 2018, 21:45:07
Wenn du mit pip installierst, musst du python- weglassen, also sudo pip install cffi

Hi Maluk,

leider funktioniert auch das nicht bei mir .....  :P

XXX@raspberrypi:~# sudo apt-get install cffi
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package cffi
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 07 September 2018, 09:52:33
Bei der Installation über pip musst du statt apt-get pip aufrufen:

sudo pip install cffi
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Azze am 09 September 2018, 13:59:56
Hi,

wie kann ich bei Bewegung, ein Snapshot machen?

define Test_Bewegung notify Arlo_Cam:activityState:.alertStreamActive { "set Arlo_Cam snapshot" }


das funktioniert leider nicht.

das kommt als Fehler
Arlo Arlo_4N71657S8EDCC error: Invalid camera activity state change.: From alertStreamActive to fullFrameSnapshot
Arlo Arlo_Cloud reading 4N71657S8EDCC error Invalid camera activity state change.: From alertStreamActive to fullFrameSnapshot



Gruß
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 09 September 2018, 15:57:27
Zitat von: Azze am 09 September 2018, 13:59:56

wie kann ich bei Bewegung, ein Snapshot machen?

define Test_Bewegung notify Arlo_Cam:activityState:.alertStreamActive { "set Arlo_Cam snapshot" }


das funktioniert leider nicht.



Die Lösung heisst: weniger Klammern und Anführungszeichen

Cheers
mi.ke

PS.
Wenn Du geschweifte Klammern öffnest, wird ein Perl-Befehlhl erwartet, Du bleibst aber in fhem.
Also entweder ohne Klammern oder so :
{fhem("xxxxxxx")}
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Azze am 10 September 2018, 12:35:03
Hallo,

leider funktioniert das auch nicht. Wird kein Snapshot gemacht.
Führe ich den set Arlo_Cam snapshot manuell durch, macht er es.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: AnDiBaCkE am 17 September 2018, 22:22:25
Hallo zusammen,

ich habe mein Arlo System erfolgreich im FHEM implementiert. Danke das ich mich hier schlau lesen konnte.
Eine Frage habe ich jedoch noch in die Runde: Ist es bei euch auch so, dass die manuellen Snapshots aus FHEM heraus nicht in der Arlo App auftauchen?
Bei Videos funktioniert es. Jedoch wenn ich ein Snapshot aus der App mache wird es auch angezeigt.
Der Download von Snapshots und Videos funktioniert einwandfrei.

Vielen Dank im Voraus!
Gruß,
AnDiBaCkE
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 23 September 2018, 22:12:55
Zitat von: AnDiBaCkE am 17 September 2018, 22:22:25
Ist es bei euch auch so, dass die manuellen Snapshots aus FHEM heraus nicht in der Arlo App auftauchen?

Das ist bei mir auch so. Für mich passt es aber, ich benutze die Arlo App nur, wenn ich live streamen will. Was mir aber beim Testen deiner Frage aufgefallen ist, dass ich Snapshots problemlos mit den drei Pro2 Cameras machen kann, aber mit der Camera der ersten Generation klappt es nicht. Es wird auch kein Reading erstellt. Ist das bei Euch auch so?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: AnDiBaCkE am 24 September 2018, 21:13:35
Hallo Choetzu,

bei mir klappt es mit der Arlo 1 sowie 2 Pro.

Gruß,
AnDiBaCkE
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 25 September 2018, 23:33:04
Hallo AnDiBaCkE,

auch wenn man über die App selbst einen Snapshot erstellt (unter Gerät - Videoeinstellung) ist dieser danach nicht in der Bibliothek sichtbar. Laut Arlo-Support ist das wohl normal, siehe https://community.arlo.com/t5/Arlo/Taking-SnapShot/td-p/5982

Dort ist auch beschrieben, dass man einen Livestream starten und dann einen Bild aufnehmen muss, damit es gespeichert wird. Allerdings ist das eine andere API, das wird in FHEM nicht funktioineren (siehe https://github.com/jeffreydwalter/arlo/wiki/Record-Video-and-Triggering-Snapshots - ich habe TriggerFullFrameSnapshot implementiert, die Methode zur Bildaufnahme während des Streamens ist TriggerStreamSnapshot).

Gruß
maluk
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 25 September 2018, 23:40:25
Zitat von: Azze am 10 September 2018, 12:35:03
Hallo,

leider funktioniert das auch nicht. Wird kein Snapshot gemacht.
Führe ich den set Arlo_Cam snapshot manuell durch, macht er es.

Schaust du hier in der Arlo App oder in FHEM? In der Arlo App sind die Snapshots nicht sichtbar (siehe oben), in FHEM müsste der Snapshot über das Reading snapshotUrl abrufbar sein. Falls du den Snapshot nicht sofort selbst herunterlädst, musst du downloadDir und downloadLink im Cloud-Device definieren (siehe "Device specific help").
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: AnDiBaCkE am 26 September 2018, 19:24:27
Hallo maluk,

Danke für deine Rückmeldung.
Die Snapshot Funktion über Videoeinstellung ist mir noch gar nicht aufgefallen.
Ich habe bisher immer ein Livestream der Kamera gestartet und dann ein Snapshot gemacht. Das stützt deine These. Na dann muss ich damit leben...

Ist es deinerseits geplant das Modul noch hinsichtlich der Router Zwangstrennung zu aktualisieren?
Bei mir funktioniert der Workaround leider nicht zuverlässig.

Vielen Dank!

Gruß,
AnDiBaCkE
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mike.d am 30 September 2018, 22:45:16
bei mir funktioniert das Polling nicht - es wird eine Statusänderung der Kameras (bei tideplan-änderungen aus der app) nicht in fhem dargestellt.  ich bin mir nicht sicher auf welcher Ebene ich auf Fehlersuche gehen sollte!? Kann mir jemand helfen?

im log findet sich folgendes:

2018-09-28 11:31:10,673 WARNING: ('Connection aborted.', error("(104, 'ECONNRESET')",))
2018-09-29 04:31:35,694 WARNING: ('Connection aborted.', error("(104, 'ECONNRESET')",))
2018-09-30 02:31:44,847 WARNING: ('Connection aborted.', BadStatusLine("''",))
2018-09-30 04:31:45,632 WARNING: ('Connection aborted.', error("(104, 'ECONNRESET')",))
2018-09-30 07:31:47,005 WARNING: ('Connection aborted.', BadStatusLine("''",))
2018-09-30 09:31:47,750 WARNING: ('Connection aborted.', BadStatusLine("''",))
2018-09-30 11:31:48,397 WARNING: ('Connection aborted.', error("(104, 'ECONNRESET')",))
2018-09-30 18:31:51,983 WARNING: ('Connection aborted.', BadStatusLine("''",))
2018-09-30 21:31:53,130 WARNING: ('Connection aborted.', BadStatusLine("''",))
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 03 Oktober 2018, 19:12:53
Solche Fehler kommen normal nur, wenn die Internet-Verbindung abgebrochen ist. Hast du den Server mal neu gestartet?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mike.d am 04 Oktober 2018, 19:10:58
es ist besser geworden, nachdem ich jetzt jede Stunde den Server neu starte....    8)

aber kann mir jemand sagen, wie ich die Log-Einträge in fhem unterdrücken kann!?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 07 Oktober 2018, 18:54:37
Zitat von: mike.d am 04 Oktober 2018, 19:10:58
aber kann mir jemand sagen, wie ich die Log-Einträge in fhem unterdrücken kann!?

Zitat von: maluk am 16 Mai 2018, 20:54:37
Die Ausgaben des Python HTTP-Service kann man von FHEM aus leider nicht unterdrücken. Das Problem ist, dass ich den Python Server von FHEM aus starte. Alles, was der Prozess auf die Konsole ausgeben möchtet, landet daher im FHEM Logfile.

nope, hab auch schon gefragt. geht leider nicht..
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mike.d am 08 Oktober 2018, 10:04:54
vielen Dank - mit den regelmäßigen restarts läufts jetzt zumindest stabil! :-)
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 10 Oktober 2018, 23:15:41
geht bei Euch das Modul noch? Bei mir scheint es nicht zu gehen, aber auch keine Fehlermeldung erscheint..
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 10 Oktober 2018, 23:32:10
Zitat von: choetzu am 10 Oktober 2018, 23:15:41
geht bei Euch das Modul noch?


Keine Veränderung.
Geht was vorher ging, geht nicht, was vorher nicht ging  8)
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Niko1987 am 11 Oktober 2018, 21:50:57
Hallo zusammen,

hab heute auch Arlos bekommen. Ich versuche heut schon den halben Tag das Modul zu installieren. Hab bereits alle Bisherigen Tips mehrmals durchprobiert und alles mal neu installiert.
Bekomme im Fhem Log immer folgende Meldung:

Traceback (most recent call last):
  File "FHEM/49_Arlo.py", line 406, in <module>
    main(sys.argv[1:])
  File "FHEM/49_Arlo.py", line 402, in main
    startService(int(argv[3]))
  File "FHEM/49_Arlo.py", line 373, in startService
    server.socket.close()
NameError: global name 'server' is not defined


im Arol.log erscheint folgendes:

2018-10-11 21:45:59,174 DEBUG: Starting new HTTPS connection (1): arlo.netgear.com:443
2018-10-11 21:46:00,677 DEBUG: https://arlo.netgear.com:443 "POST /hmsweb/login/v2 HTTP/1.1" 200 None
2018-10-11 21:46:00,782 DEBUG: https://arlo.netgear.com:443 "GET /hmsweb/users/devices HTTP/1.1" 200 None
2018-10-11 21:46:00,786 INFO: Start event handler


Kann mir hier jemand weiterhelfen?

Vielen Dank im Voraus
Gruß
Flo
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 12 Oktober 2018, 09:16:50
Zitat von: Niko1987 am 11 Oktober 2018, 21:50:57
Bekomme im Fhem Log immer folgende Meldung:

NameError: global name 'server' is not defined


Hast Du das schon probiert?
Ist die gleiche Fehlermeldung wie bei Dir und passt auch zum "halben Tag"

https://forum.fhem.de/index.php/topic,87602.msg814109.html#msg814109

Cheers
mi.ke
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Niko1987 am 12 Oktober 2018, 10:08:46
Guten Morgen Mi.ke,

ja das hab ich versucht.
bei mir läuft nur:
grep --color=auto python


Dieser hat ja nichts mit dem Arlo zu tun oder muss ich den auch killen?

Danke
Gruß
Flo
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 12 Oktober 2018, 10:26:50
Zitat von: Niko1987 am 12 Oktober 2018, 10:08:46
. . .  oder muss ich den auch killen?

Nein, ich denke nicht
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Niko1987 am 12 Oktober 2018, 11:59:29
kann es sein das mein Telnet hier nichts durchlässt?

Gruß
Flo
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Hembo am 12 Oktober 2018, 15:57:44
So ich frage mich gerade ob ich der einzige bin der das Problem hat:

über set arm / disarm, sowie Sirene etc. funktioniert super! Jedoch wenn ich versuche einen Modus anzusprechen klappt nichts. Auch wenn ich den Modus in der Arlo App auswähle bleibt der letzte Status laut state reading bestehen. Ein statusrefresh habe ich natürlich gemacht, genauso wie den Server neu gestartet & den ganzen Pi. Wenn ich arm / disarm in der Arlo app anklicke wird es auch problemlos an FHEM übertragen. Stehe etwas auf dem Schlauch, da ich die Modis gern für FHEM->homekit verwenden würde...

Dann noch kurz die Frage ob es möglich ist die Bewegung der Kameras abzufragen ohne Aufzeichnung (in der App eine Regel mit Bewegungserkennung aber ohne Video -> verursacht eine Push Meldung ohne Aufzeichnung - sehe ich jedoch im Kamera Reading nicht)

Vorerst vielen Dank für Eure Hilfe

Und ein RIEEEEESEN DANK dafür dass es das Modul überhaupt gibt!!
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: sparkiie am 12 Oktober 2018, 20:10:19
Ich habe das Modul vor einigen Tagen installiert und hatte auch ständig das Problem, dass der Server abgestürzt. Readings und Befehle sind dadurch natürlich nicht durchgegangen.

Nun habe ich heute alles noch einmal neu aufgesetzt und bekomme es gar nicht mehr ans laufen. Nicht einmal die Basis wird per Autocreate angelegt.

Log im FHEM sagt:
Traceback (most recent call last):
  File "FHEM/49_Arlo.py", line 406, in <module>
    main(sys.argv[1:])
  File "FHEM/49_Arlo.py", line 402, in main
    startService(int(argv[3]))
  File "FHEM/49_Arlo.py", line 373, in startService
    server.socket.close()
NameError: global name 'server' is not defined
2018.10.12 20:05:02 2: Error occured when calling Arlo daemon: http://localhost:8001/ACCOUNT?device=Arlo_Cloud&cmd=autocreate&basestationId=&cameraId=: Select timeout/error:


Arlo Log:
2018-10-12 20:04:48,407 INFO: Start event handler
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: sparkiie am 12 Oktober 2018, 21:42:56
Irgendwie hat er die Basis nun gefunden.

Im Arlo Log steht:
Errno32: Brocken pipe

Allerdings läuft die Cloud auf Port 8001 und FHEM Telnet Port ist 7020.
Beim definieren der Cloud wird die Port Info als 3. Argument ignoriert. Den FHEM Port kann ich nicht auf 8001 stellen:
telnetPort: Can't open server port at 8001: Address already in use

Heartbeat auf 90 hat nichts geändert.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Niko1987 am 13 Oktober 2018, 09:26:00
Guten morgen,

bei mir klappt es jetzt einigermaßen:

Mein Landroid Mähroboter hat den Port 8001 belegt.
Das hab ich per SSH mit netstat --tcp --listening --programs --numeric rausgefunden.
Um den Port für das Arlo Modul zu ändern hat es bei mir nicht ausgereicht den Port als 3. Argument beim define anzugeben.
Ich musste zusätzlich im 49_Arlo.pm den Port ändern.

$hash->{DEF} = "ACCOUNT $cryptUser $cryptPasswd";
      $hash->{SERVER_PORT} = "8002";


danach das Modul neu laden und mir define Arlo_Cloud Arlo ACCOUNT hans.mustermann@xyz.de meinPasswort 8002 das Device anlegen.

Seit dem klappt die Verbindung.

Ich wollte mal testweise in der Datei /usr/local/lib/python2.7/dist-packages/Arlo.py in Zeile 58 pass durch raise ersetzen.
Jedoch befindet sich in meinem Fall in diesem Ordner keine Arlo.py.
Ist diese Datei versteckt?.

Bei mir tauchen diese Meldungen bei jedem updateReadings im FileLog auf.
127.0.0.1 - - [13/Oct/2018 08:37:41] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=4RD17278A053E&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [13/Oct/2018 08:38:41] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [13/Oct/2018 08:39:41] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [13/Oct/2018 08:40:41] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [13/Oct/2018 08:41:41] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -



hin und wieder auch:
127.0.0.1 - - [13/Oct/2018 06:18:08] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -
Exception in thread HeartbeatThread:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 305, in Heartbeat
    self.Ping(basestation)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 408, in Ping
    return self.NotifyAndGetResponse(basestation, {"action":"set","resource":"subscriptions/"+self.user_id+"_web","publishResponse":False,"properties":{"devices":[basestation_id]}})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 388, in NotifyAndGetResponse
    transId = self.Notify(basestation, body)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 379, in Notify
    self.request.post('https://arlo.netgear.com/hmsweb/users/devices/notify/'+body['to'], body, headers={"xcloudId":basestation.get('xCloudId')})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 158, in post
    return self._request(url, 'POST', params, headers, raw)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 137, in _request
    r = self.session.post(url, json=params, headers=headers)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 559, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 512, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 622, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 495, in send
    raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', error("(104, 'ECONNRESET')",))


Vielen Dank für eure Hilfe

Gruß
Flo
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: sparkiie am 13 Oktober 2018, 19:58:52
Ich bin mittlerweile sich ein Stück weiter.
Meine Readings etc. funktionieren immer für ca. 2-3h. Danach muss ich das Telnet Password neu setzen, den Server stoppen und wieder starten. Dann geht es wieder ein passt Stunden!

Wo liegt denn das  Problem?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 14 Oktober 2018, 08:41:51
Zitat von: Hembo am 12 Oktober 2018, 15:57:44
über set arm / disarm, sowie Sirene etc. funktioniert super! Jedoch wenn ich versuche einen Modus anzusprechen klappt nichts. Auch wenn ich den Modus in der Arlo App auswähle bleibt der letzte Status laut state reading bestehen. Ein statusrefresh habe ich natürlich gemacht, genauso wie den Server neu gestartet & den ganzen Pi. Wenn ich arm / disarm in der Arlo app anklicke wird es auch problemlos an FHEM übertragen. Stehe etwas auf dem Schlauch, da ich die Modis gern für FHEM->homekit verwenden würde...

Ein Modus wird in der Form set <Basisstation> mode <Modus-Name aus App>, also z.B. set Arlo_Basisstation mode Terrasse, falls der Modus in der App den Namen Terrasse hat. Hast du das so gemacht? Falls ja, kam irgendeine Fehlermeldung in /tmp/arlo.log oder im FHEM-Log?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 14 Oktober 2018, 09:04:52
Zitat von: Niko1987 am 13 Oktober 2018, 09:26:00
danach das Modul neu laden und mir define Arlo_Cloud Arlo ACCOUNT hans.mustermann@xyz.de meinPasswort 8002 das Device anlegen.

Dass die Port-Angabe ignoriert wird, ist ein Bug, den ich gerade behoben habe. Die neue Version habe ich hochgeladen.

Zitat
Ich wollte mal testweise in der Datei /usr/local/lib/python2.7/dist-packages/Arlo.py in Zeile 58 pass durch raise ersetzen.
Jedoch befindet sich in meinem Fall in diesem Ordner keine Arlo.py.
Ist diese Datei versteckt?.

Suche einfach, wo die Datei bei dir liegt: sudo find / -name Arlo.py

Zitat
Bei mir tauchen diese Meldungen bei jedem updateReadings im FileLog auf.
127.0.0.1 - - [13/Oct/2018 08:37:41] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=4RD17278A053E&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [13/Oct/2018 08:38:41] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [13/Oct/2018 08:39:41] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [13/Oct/2018 08:40:41] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [13/Oct/2018 08:41:41] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -


Das ist das typische Verhalten nach Verbindungsabbrüchen. Der Python-Server hat eine Dauerverbindung zum Arlo-Server. Mein Python-Server nimmt Befehle entgegen und sendet sie zum Arlo-Server. Der Background-Thread mit der Dauerverbindung erhält normalerweise dann die Status-Änderung vom Arlo-Server. Diese Rückmeldungen wäre dann im Logfile zu sehen. Wenn der Thread aber vorher abgestürzt ist, funktioniert das nicht mehr.

Eigentlich habe ich etwas eingebaut, dass die Verbindung neu aufgebaut wird, wenn sie abbricht, aber das funktioniert nicht immer. Leider ist das alles sehr schwer zu reproduzieren, daher konnte ich das Problem bisher noch nicht lösen. Aber ich werde mich auf jeden Fall noch darum kümmern, da es natürlich nervig ist, wenn man nie genau weiß, ob das Modul jetzt gerade funktioniert oder nicht.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: sparkiie am 14 Oktober 2018, 09:16:04
Zitat von: maluk am 14 Oktober 2018, 09:04:52
Eigentlich habe ich etwas eingebaut, dass die Verbindung neu aufgebaut wird, wenn sie abbricht, aber das funktioniert nicht immer. Leider ist das alles sehr schwer zu reproduzieren, daher konnte ich das Problem bisher noch nicht lösen. Aber ich werde mich auf jeden Fall noch darum kümmern, da es natürlich nervig ist, wenn man nie genau weiß, ob das Modul jetzt gerade funktioniert oder nicht.

Vielen Dank für deine Arbeit!

Ich Frage mich, inwiefern die Abbrüche mit dem Telnet vom FHEM zu tun haben. Ich muss nach jedem Abbruch etwas am Telnet ändern (z.B. ein Passwort setzen) oder FHEM neu starten, damit ich die Basis wieder ansprechen kann!
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 14 Oktober 2018, 09:33:36
Hast du mehrere Telnet-Devices definiert? Der Telnet-Port wird ermittelt, indem das erste Telnet-Device, das nicht das interne Attribut TEMPORARY gesetzt hat, gelesen wird. Für mich sieht es so aus, als ob es bei dir ein weiteres Telnet-Device gibt und du durch die Änderung des Telnet-Ports das richtige Device wieder auf Platz 1 bringst.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 14 Oktober 2018, 09:57:18
Zitat von: Niko1987 am 13 Oktober 2018, 09:26:00
127.0.0.1 - - [13/Oct/2018 06:18:08] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -
Exception in thread HeartbeatThread:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 305, in Heartbeat
    self.Ping(basestation)
...


Das Muster, dass der Verbindungsabbruch durch den Heartbeat verursacht wird, zieht sich sowohl durch Eure Meldungen als auch meine Verbindungsabbrüche, die allerdings deutlich seltener auftreten als hier beschrieben. Es sieht für mich so aus, als ob ein Verbindungsfehler im Heartbeat dazu führt, dass der Heartbeat-Thread komplett abstürzt und dadurch keine Heartbeat-Signale mehr an den Arlo-Server gesendet werden. Dadurch wird der Arlo-Server vermutlich irgendwann einfach die Verbindung abbrechen.

Das Exception Handling im Heartbeat-Thread ist quasi nicht vorhanden. Daher habe ich Modul /usr/local/lib/python2.7/dist-packages/Arlo.py in Zeile 308 folgende 2 Zeilen eingefügt:


                except Exception as e:
                    print(e)


Die modifizierte Heartbeat-Methode sieht jetzt also wie folgt aus:


        def Heartbeat(self, stop_event):
            while not stop_event.wait(90.0):
                try:
                    self.Ping(basestation)
                except queue.Empty:
                    pass
                except Exception as e:
                    print(e)


Es wäre super, wenn Ihr die Anpassung bei Euch auch vornehmen und danach den Python-Server neu starten könntet. Falls dies die Lösung ist, werde ich dies an Jeffrey Walter melden, der ja der Autor des Python-Moduls ist, das ich intern verwende.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: sparkiie am 14 Oktober 2018, 10:09:06
Zitat von: maluk am 14 Oktober 2018, 09:33:36
Hast du mehrere Telnet-Devices definiert? Der Telnet-Port wird ermittelt, indem das erste Telnet-Device, das nicht das interne Attribut TEMPORARY gesetzt hat, gelesen wird. Für mich sieht es so aus, als ob es bei dir ein weiteres Telnet-Device gibt und du durch die Änderung des Telnet-Ports das richtige Device wieder auf Platz 1 bringst.

Ich nutze bewusst keine anderen Telnet-Devices.
Bei Verwendung eines Telnet Passwort werden devices wie telnetforblockingfn###### angelegt.
Im Moment läuft es ohne Passwort und einem at, das den Server jede Stunde stoppt und wieder startet.

Allerdings hat es sich über Nacht auch wieder aufgehangen....
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 14 Oktober 2018, 10:20:52
Zitat von: sparkiie am 14 Oktober 2018, 10:09:06
Ich nutze bewusst keine anderen Telnet-Devices.
Bei Verwendung eines Telnet Passwort werden devices wie telnetforblockingfn###### angelegt.
Im Moment läuft es ohne Passwort und einem at, das den Server jede Stunde stoppt und wieder startet.

Allerdings hat es sich über Nacht auch wieder aufgehangen....

Ich beschreibe mal kurz, was intern passiert: es werden alle telnet-Devices durchsucht und aus dem ersten Telnet-Device ohne TEMPORARY-Internal wird das interne Attribut PORT gelesen. Dies ist dann der Telnet-Port, über den kommuniziert wird. Danach werden die allowed-Devices durchsucht, bis ein Device gefunden wird, das im Attribut validFor das vorher gefundene Telnet-Device stehen hat. Falls ein solches allowed-Device gefunden wir, wird das Attribut password als Telnet-Passwort verwendet.

Vielleicht hilft dir diese Beschreibung bei der Fehlersuche. Alternativ kann ich mein Modul auch so anpassen, dass man optional Telnet-Port und Telnet-Passwort manuell angeben kann, dann hast du es selbst in der Hand, mit welchen Parametern der Server aufgerufen wird.

Wichtig: der Port, den man im Cloud-Device angebeben kann, ist nicht der Telnet-Port sondern der Port, unter dem der Python-Server-Prozess läuft. Dieser muss auf jeden Fall vom Telnet-Port abweichen, da dieser von FHEM belegt ist.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Niko1987 am 14 Oktober 2018, 15:22:45
Servus,

danke. Hab das mal geändert.

Mal sehen :) Im Log bleibt aber immernoch ein eintrag bei jedem UpdateReadings und bei jedem cmd an eine Cam

127.0.0.1 - - [14/Oct/2018 15:10:59] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:25] "GET /BASESTATION?device=Arlo_Arlo&cmd=arm&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:44] "GET /BASESTATION?device=Arlo_Arlo&cmd=disarm&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:45] "GET /BASESTATION?device=Arlo_Arlo&cmd=disarm&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:48] "GET /BASESTATION?device=Arlo_Arlo&cmd=arm&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:52] "GET /CAMERA?device=Arlo_Hof&cmd=off&basestationId=xxx&cameraId=4N7167SKCDA8D HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:55] "GET /CAMERA?device=Arlo_Hof&cmd=on&basestationId=xxx&cameraId=xxxHTTP/1.0" 200 -


Gruß
Flo
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: sparkiie am 14 Oktober 2018, 19:52:18
Zitat von: maluk am 14 Oktober 2018, 10:20:52
Vielleicht hilft dir diese Beschreibung bei der Fehlersuche. Alternativ kann ich mein Modul auch so anpassen, dass man optional Telnet-Port und Telnet-Passwort manuell angeben kann, dann hast du es selbst in der Hand, mit welchen Parametern der Server aufgerufen wird.

Wichtig: der Port, den man im Cloud-Device angebeben kann, ist nicht der Telnet-Port sondern der Port, unter dem der Python-Server-Prozess läuft. Dieser muss auf jeden Fall vom Telnet-Port abweichen, da dieser von FHEM belegt ist.

Das mit den Ports hatte ich erst falsch interpretiert, nun aber soweit verstanden.
Es wäre schön, wenn man den Port und ggf. das Kennwort für Telnet alternativ manuell eintragen könnte. Ich denke, dass würde mein Problem lösen...
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Niko1987 am 14 Oktober 2018, 20:57:03
Servus :)
ZitatVielleicht hilft dir diese Beschreibung bei der Fehlersuche. Alternativ kann ich mein Modul auch so anpassen, dass man optional Telnet-Port und Telnet-Passwort manuell angeben kann, dann hast du es selbst in der Hand, mit welchen Parametern der Server aufgerufen wird.
Das wär echt top! Ich steig bei dem Telnet noch nicht ganz durch  ???

Übrigens ist im DevSpec im Arlo Modul ein kleiner Fehler:

DOWNLOADDIR

Falls dieses Attribut am Cloud-Device (Subtype ACCOUNT) gesetzt ist, werden Dateien, die in der Arlo Cloud erzeugt werden (Videos / Bilder) in das hier angegebene Verzeichnis heruntergeladen. Damit man auf die Dateien über http zugreifen kann, muss ein Verzeichnis unterhalb /opt/fhem/www angegeben werden (oder dieses selbst). Wichtig: der fhem-User muss in in diesem Verzeichnis Schreibrechte haben.
DOWNLOADDIR

Falls über das Attribut downloadDir die Dateien ins lokale Verzeichnis heruntergeladen werden, kann über dieses Attribut am Cloud-Device angegeben werden, dass die in den Kameras gesetzten Links auf die lokale Kopie zeigen sollen. Die Angabe des Links muss in der Form http://hostname:8083/fhem/unterverzeichnis-unter-www angegeben werden.


das zweite DOWNLOADDIR sollte vermutlich DOWNLOADLINK heissen.

Aber so ist das echt ein tolles Modul. Habs schon in der TabletUI eingebunden.

Vielen Dank für deine Hilfe und deine Arbeit

Gruß
Flo

Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 19 Oktober 2018, 12:32:23
Zitat von: maluk am 14 Oktober 2018, 09:57:18
Das Muster, dass der Verbindungsabbruch durch den Heartbeat verursacht wird, zieht sich sowohl durch Eure Meldungen als auch meine Verbindungsabbrüche, die allerdings deutlich seltener auftreten als hier beschrieben. Es sieht für mich so aus, als ob ein Verbindungsfehler im Heartbeat dazu führt, dass der Heartbeat-Thread komplett abstürzt und dadurch keine Heartbeat-Signale mehr an den Arlo-Server gesendet werden. Dadurch wird der Arlo-Server vermutlich irgendwann einfach die Verbindung abbrechen.

Das Exception Handling im Heartbeat-Thread ist quasi nicht vorhanden. Daher habe ich Modul /usr/local/lib/python2.7/dist-packages/Arlo.py in Zeile 308 folgende 2 Zeilen eingefügt:


                except Exception as e:
                    print(e)


Die modifizierte Heartbeat-Methode sieht jetzt also wie folgt aus:


        def Heartbeat(self, stop_event):
            while not stop_event.wait(90.0):
                try:
                    self.Ping(basestation)
                except queue.Empty:
                    pass
                except Exception as e:
                    print(e)


Es wäre super, wenn Ihr die Anpassung bei Euch auch vornehmen und danach den Python-Server neu starten könntet. Falls dies die Lösung ist, werde ich dies an Jeffrey Walter melden, der ja der Autor des Python-Moduls ist, das ich intern verwende.

Ich habe das versucht, aber danach konnte ich das Modul nicht mehr laden. AUch ein sudo reboot des Raspi und den Neustart des Arlo-Servers hat nix gebracht. Ich habe es wieder entfernt und es geht wieder...

Aber die Fehlermeldungen bleiben:
Exception in thread HeartbeatThread:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 304, in Heartbeat
    self.Ping(basestation)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 407, in Ping
    return self.NotifyAndGetResponse(basestation, {"action":"set","resource":"subscriptions/"+self.user_id+"_web","publishResponse":False,"properties":{"devices":[basestation_id]}})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 387, in NotifyAndGetResponse
    transId = self.Notify(basestation, body)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 378, in Notify
    self.request.post('https://arlo.netgear.com/hmsweb/users/devices/notify/'+body['to'], body, headers={"xcloudId":basestation.get('xCloudId')})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 157, in post
    return self._request(url, 'POST', params, headers, raw)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 136, in _request
    r = self.session.post(url, json=params, headers=headers)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 559, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 512, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 622, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 495, in send
    raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', error("(104, 'ECONNRESET')",))

Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 20 Oktober 2018, 09:25:31
Bei Python ist es wichtig, dass die Einrückung der Befehle mit gleich vielen Zeichen gemacht wird. Eine Einrückung in Arlo.py besteht immer aus 4 Leerzeichen (keinen Tab verwenden, sondern Leerzeichen!). Wenn das nicht eingehalten wird, ist das für Python ein Syntax-Fehler und das Modul wird nicht gestartet. Also einfach darauf achten, dass die "except Execption as e" diesselbe Einrückung hat wie das "except queue.Empty" und dass "print(e)" diesselbe Einrückung wie "pass" hat.

Der von dir gepostete Fehler "ConnectionError: ('Connection aborted.', error("(104, 'ECONNRESET')",))" ist eindeutig ein Netzwerk-Problem, da kann ich leider nichts machen. Die Idee hinter meiner Code-Änderung ist, dass genau solche Netzwerk-Probleme zukünftig nicht mehr dafür sorgen sollen, dass der Heartbeat-Thread abstürzt und dadurch die Verbindung des Arlo-Servers zur Cloud irgendwann in einen Timeout läuft.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 20 Oktober 2018, 09:30:27
Zitat von: Niko1987 am 14 Oktober 2018, 15:22:45
Servus,

danke. Hab das mal geändert.

Mal sehen :) Im Log bleibt aber immernoch ein eintrag bei jedem UpdateReadings und bei jedem cmd an eine Cam

127.0.0.1 - - [14/Oct/2018 15:10:59] "GET /BASESTATION?device=Arlo_Arlo&cmd=updateReadings&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:25] "GET /BASESTATION?device=Arlo_Arlo&cmd=arm&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:44] "GET /BASESTATION?device=Arlo_Arlo&cmd=disarm&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:45] "GET /BASESTATION?device=Arlo_Arlo&cmd=disarm&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:48] "GET /BASESTATION?device=Arlo_Arlo&cmd=arm&basestationId=xxx&cameraId= HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:52] "GET /CAMERA?device=Arlo_Hof&cmd=off&basestationId=xxx&cameraId=4N7167SKCDA8D HTTP/1.0" 200 -
127.0.0.1 - - [14/Oct/2018 15:13:55] "GET /CAMERA?device=Arlo_Hof&cmd=on&basestationId=xxx&cameraId=xxxHTTP/1.0" 200 -


Gruß
Flo

Sorry für die Verwirrung, ich hatte da etwas falsch in Erinnerung. Das ist das normale Verhalten innerhalb des FHEM-Logfiles. Detail-Informationen stehen im Logfile /tmp/arlo.log, falls der Log-Level in 49_Arlo.py auf DEBUG steht.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 20 Oktober 2018, 09:33:29
Zitat von: Niko1987 am 14 Oktober 2018, 20:57:03
DOWNLOADDIR

Falls dieses Attribut am Cloud-Device (Subtype ACCOUNT) gesetzt ist, werden Dateien, die in der Arlo Cloud erzeugt werden (Videos / Bilder) in das hier angegebene Verzeichnis heruntergeladen. Damit man auf die Dateien über http zugreifen kann, muss ein Verzeichnis unterhalb /opt/fhem/www angegeben werden (oder dieses selbst). Wichtig: der fhem-User muss in in diesem Verzeichnis Schreibrechte haben.
DOWNLOADDIR

Falls über das Attribut downloadDir die Dateien ins lokale Verzeichnis heruntergeladen werden, kann über dieses Attribut am Cloud-Device angegeben werden, dass die in den Kameras gesetzten Links auf die lokale Kopie zeigen sollen. Die Angabe des Links muss in der Form http://hostname:8083/fhem/unterverzeichnis-unter-www angegeben werden.


das zweite DOWNLOADDIR sollte vermutlich DOWNLOADLINK heissen.

Danke für den Hinweis, ich korrigiere das mit der nächsten Version. Da werde ich dann auch die Möglichkeit einbauen, Telnet-Port und Telnet-Passwort manuell zu setzen.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 21 Oktober 2018, 10:49:15
Zitat von: sparkiie am 14 Oktober 2018, 19:52:18
Es wäre schön, wenn man den Port und ggf. das Kennwort für Telnet alternativ manuell eintragen könnte. Ich denke, dass würde mein Problem lösen...

Telnet-Port und -Passwort können jetzt auch manuell gesetzt werden. Einfach beim Define des Cloud-Devices hinter dem Python-Server-Port anhängen, also

define Arlo_Cloud Arlo ACCOUNT user@domain.de arlo-password 8001 7072 fhem-telnet-passwort

Wichtig: der Python-Server-Port muss in diesem Fall zwingend angegeben werden. Default-Wert hierfür ist 8001. Im Beispiel habe ich als FHEM-Telnet-Port 7072 genommen, also den Default-Wert von FHEM.

Falls Ihr wieder auf das Default-Verhalten wechseln möchtet (also automatische Erkennung von Telnet-Port und -Passwort) muss nach dem Entfernen der neuen Parameter aus dem define FHEM neu gestartet werden.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: sparkiie am 21 Oktober 2018, 12:31:27
Zitat von: maluk am 21 Oktober 2018, 10:49:15
Telnet-Port und -Passwort können jetzt auch manuell gesetzt werden. Einfach beim Define des Cloud-Devices hinter dem Python-Server-Port anhängen, also

define Arlo_Cloud Arlo ACCOUNT user@domain.de arlo-password 8001 7072 fhem-telnet-passwort

Wichtig: der Python-Server-Port muss in diesem Fall zwingend angegeben werden. Default-Wert hierfür ist 8001. Im Beispiel habe ich als FHEM-Telnet-Port 7072 genommen, also den Default-Wert von FHEM.

Falls Ihr wieder auf das Default-Verhalten wechseln möchtet (also automatische Erkennung von Telnet-Port und -Passwort) muss nach dem Entfernen der neuen Parameter aus dem define FHEM neu gestartet werden.

Prima, Danke! 👍
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 21 Oktober 2018, 19:25:56
Zitat von: maluk am 20 Oktober 2018, 09:25:31
Bei Python ist es wichtig, dass die Einrückung der Befehle mit gleich vielen Zeichen gemacht wird. Eine Einrückung in Arlo.py besteht immer aus 4 Leerzeichen (keinen Tab verwenden, sondern Leerzeichen!). Wenn das nicht eingehalten wird, ist das für Python ein Syntax-Fehler und das Modul wird nicht gestartet. Also einfach darauf achten, dass die "except Execption as e" diesselbe Einrückung hat wie das "except queue.Empty" und dass "print(e)" diesselbe Einrückung wie "pass" hat.

Der von dir gepostete Fehler "ConnectionError: ('Connection aborted.', error("(104, 'ECONNRESET')",))" ist eindeutig ein Netzwerk-Problem, da kann ich leider nichts machen. Die Idee hinter meiner Code-Änderung ist, dass genau solche Netzwerk-Probleme zukünftig nicht mehr dafür sorgen sollen, dass der Heartbeat-Thread abstürzt und dadurch die Verbindung des Arlo-Servers zur Cloud irgendwann in einen Timeout läuft.

danke, das Einrücken hat geklappt. Perfekt.. lange hat es auch gut ausgesehen, doch nun kommt erneut eine Fehlermeldung:

Exception in thread EventStream:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 294, in QueueEvents
    self.event_streams[basestation_id].Disconnect()
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 99, in Disconnect
    self.Unregister()
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 119, in Unregister
    if self.heartbeat_thread != threading.current_thread():
AttributeError: 'EventStream' object has no attribute 'heartbeat_thread'


so wie ich dich verstanden habe, kann man da nix machen, ausser in meinem eigenen Netzwerk...oder?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Niko1987 am 23 Oktober 2018, 18:05:01
Hallo zusammen,

ich hab den neuesten Stand installiert. Leider verliert fhem trotz allem die Verbindung zu Arlo.
Ich kann zwar zu jeder Zeit befehle an die Arlo Basis schicken, diese kommen auch an aber ich bekomm keine Rückmeldung mehr.
Die Verbindung bricht sporadisch ab. Ohne Fehler im FileLog.

Ich habs jetzt erst mal über einen kleinen Umweg gelöst:

Ich erstelle einen userReading in der BASESTATION mit dem Namen Verbindung:
attr Arlo_Arlo userReadings Verbindung { return "getrennt" if ( (time_str2num(ReadingsTimestamp($NAME,"state","0")) - time_str2num(OldTimestamp($NAME))) > 600 );; return "verbunden" }

Wenn in diesen 600 Sekunden kein neues Reading mehr bekomme wird der Reading "Verbindung" auf getrennt gesetzt.
Den Intervall hab ich auf 300 Sekunden
attr Arlo_Arlo interval 300

Dann schau ich einfach mit einem Notify und warte bis der Reading den Status "getrennt" bekommt.
Stoppe die ArloCloud, warte kurz und starte die Arlo_Cloud wieder. Gefolgt von einem updateReadings der Arlo_Arlo
define ArloNeustart notify Arlo_Arlo:Verbindung:.*getrennt set Arlo_Cloud stopServer; sleep 30; set Arlo_Cloud startServer; sleep 30; set Arlo_Arlo updateReadings;

Nicht die feine Englische Art aber vielleicht hilft es dem ein oder anderen erst mal.
Im schlimmsten Fall ist die Verbindung halt für diese 1000 Sekunden weg.

Bei mir steht die Verbindung nach jedem "Neustart" wieder.

Trotz allem ein Super geniales Modul.

Danke
Gruß
Flo

Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 01 November 2018, 13:45:17
Zitat von: mi.ke am 25 Juni 2018, 11:50:41
Die Version mit der 2.ten Basisstation verursacht bei mir "Hänger"
und zwar, betrifft dies entweder die erste oder die zweite, anscheinend abhängig von der Startreihenfolge. Hier die Fehlermeldung: . . .
. . . Bin jetzt erstmal zurück auf die Version vom 21.06.2018


Hallo maluk,

ich wollte nochmal vorsichtig nachfragen, ob Du doch noch mal nach der 2.ten Basis Station schauen könntest?

Danke und Grüße

mi.ke
Titel: Support für Arlo Security Lights
Beitrag von: m0urs am 07 November 2018, 19:34:12
Hallo maluk,

ich fürchte die Arlo Security Lights sind derzeit nicht unterstützt, oder? Wenn nicht, besteht Hoffnung, dass Du das auch einbauen wirst?

Danke und Grüße,
Michael

Update: Hab mal ein wenig rumprobiert, aber bisher ohne Ergebnis. Siehe hier https://github.com/jeffreydwalter/arlo/issues/97
Titel: Bug: Kamera-User Mode mit zusätzlicher Aktion für ein Arlo Security Light
Beitrag von: m0urs am 11 November 2018, 19:30:26
Wenn ich einen User Mode für die Bewegungserkennung einer Kamera definiere und dort als Aktion neben der Videoaufzeichnung gleichzeitig noch eine zusätzliche Aktion für ein Arlo Security Light definiere, dann lässt sich dieser User Mode nicht mehr von FHEM aus aktivieren. Wenn ich dies bei der Standard-Aktion "Arm" mache, dann funktioniert es. Nur bei den User Modes geht es nicht. Woran kann das liegen?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 18 November 2018, 09:43:34
Ich habe leider keine Security Light und kann daher den Fehler nicht reproduzieren. Gibt es irgendwelche Fehlermeldungen im FHEM-Log oder in /tmp/arlo.log? Setze den Log-Level in 49_Arlo.py auf jeden Fall mal auf logging.DEBUG (Zeile 26), evtl. sieht man dann in /tmp/arlo.log etwas mehr.

Ich habe auch gesehen, dass du mit Jeffrey Walter wegen dem Thema in Kontakt bist. Vielleicht kommt er hier weiter.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 21 November 2018, 22:51:18
Zitat von: Niko1987 am 23 Oktober 2018, 18:05:01
Hallo zusammen,

ich hab den neuesten Stand installiert. Leider verliert fhem trotz allem die Verbindung zu Arlo.
Ich kann zwar zu jeder Zeit befehle an die Arlo Basis schicken, diese kommen auch an aber ich bekomm keine Rückmeldung mehr.
Die Verbindung bricht sporadisch ab. Ohne Fehler im FileLog.

Ich habs jetzt erst mal über einen kleinen Umweg gelöst:

Ich erstelle einen userReading in der BASESTATION mit dem Namen Verbindung:
attr Arlo_Arlo userReadings Verbindung { return "getrennt" if ( (time_str2num(ReadingsTimestamp($NAME,"state","0")) - time_str2num(OldTimestamp($NAME))) > 600 );; return "verbunden" }

Wenn in diesen 600 Sekunden kein neues Reading mehr bekomme wird der Reading "Verbindung" auf getrennt gesetzt.
Den Intervall hab ich auf 300 Sekunden
attr Arlo_Arlo interval 300

Dann schau ich einfach mit einem Notify und warte bis der Reading den Status "getrennt" bekommt.
Stoppe die ArloCloud, warte kurz und starte die Arlo_Cloud wieder. Gefolgt von einem updateReadings der Arlo_Arlo
define ArloNeustart notify Arlo_Arlo:Verbindung:.*getrennt set Arlo_Cloud stopServer; sleep 30; set Arlo_Cloud startServer; sleep 30; set Arlo_Arlo updateReadings;

Nicht die feine Englische Art aber vielleicht hilft es dem ein oder anderen erst mal.
Im schlimmsten Fall ist die Verbindung halt für diese 1000 Sekunden weg.

Bei mir steht die Verbindung nach jedem "Neustart" wieder.

Trotz allem ein Super geniales Modul.

Danke
Gruß
Flo

Super workaround! Perfekt. Bin grad am Testen.

Wie ist es bei dir/euch mit folgender Thematik? Wenn am Abend die Aussencam ,,scharf" geschaltet ist und eine Motion erkannt, fange ich das wie folg mit einem DOIF ab und schalte das Aussenlicht ein. Wie ein Bewegungsmelder.

([Arlo_Terasse:activityState] eq "alertStreamActive"
and [?Bewegungsmelder_L_Gartenhaus_XLED2:luminance:d] < [Bewegungsmelder_L_Gartenhaus_XLED2:configLightThreshold:d])
(set Aktor_L_Terasse_NodOn6 on-for-timer 30)
(set Steingarten_D_FUD61 on-for-timer 30)

DOELSE



Das geht in 90% der Fällen und in 10 eben nicht, obschon die BasisStation verbunden ist. Es löst den Event offensichtlich nicht aus und es gibt auch keine Fehlermeldung. Ein Restart hilft dann jeweils. Ist das Euch auch schon aufgefallen? Wenn ja, wie löst man das?
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Niko1987 am 24 November 2018, 08:35:59
Guten Morgen choetzu,

ich hab das ganze mittlerweile über 99myutils gelöst da das mit dem Userreadings nicht richtig funktioniert hat.
Das userReadings wird nur gesetzt wenn sich ein anderer State in dem entsprechenden device ändert... das ist natürlich schlecht weil sich kein
reading ändern wird wenn die Verbindung zu Arlo verloren geht.

Alternativ könntest du natürlich mit einem "at" device alle paar Minuten ein x-beliebiges reading im Arlo_Arlo device setzen.
Dann müsste es rein theoretisch auch klappen. Hab ich aber jetzt so nicht getestet aber früher schon mal ähnlich umgesetzt.

Gruß
Flo
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 24 November 2018, 10:03:59
Hallo Flo,
Danke für deine Antwort. Darf ich fragen, wie du dies im myUtils gelöst hast?
Lg C
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: Niko1987 am 24 November 2018, 10:35:57
Servus,

na klar, ich bin irgendwann mal auf den folgenden Beitrag gestoßen:
https://forum.fhem.de/index.php/topic,15173.msg261574.html#msg261574 (https://forum.fhem.de/index.php/topic,15173.msg261574.html#msg261574)

Meine myUtils sieht so aus:
# Device Timeoutueberwachung ################################################
sub myTimeout($$$$) {
my ($Tdevice, $Twarning, $Terror, $Tdummy) = @_;
my $Tdev1 =  (time - time_str2num(ReadingsTimestamp($Tdevice,"state",0))) / 60;
my $Tdev2 =  Value($Tdummy);

if ($Tdev1 < $Twarning && $Tdev2 ne "ok") {fhem "set ".$Tdummy." ok"};
if ($Tdev1 >= $Twarning && $Tdev1 < $Terror && $Tdev2 ne "timeout") {fhem "set ".$Tdummy." timeout"};
if ($Tdev1 >= $Terror && $Tdev2 ne "error") {fhem "set ".$Tdummy." error"};


}


hier die ganzen devices. Wichtig ist natürlich, das der Dummy entsprechend der myUtils benannt wird.

define ArloNeustart notify Arlo_Timeout_Dummy:.*timeout set Arlo_Cloud stopServer;; sleep 10;; set Arlo_Cloud startServer;; sleep 10;; set Arlo_Arlo updateReadings;;
attr ArloNeustart room Arlo
define Arlo_Timeout at +*00:03:00 {\
myTimeout("Arlo_Arlo", 10, 180, "Arlo_Timeout_Dummy");;\
\
}
attr Arlo_Timeout room Monitoring
define Arlo_Timeout_Dummy dummy
attr Arlo_Timeout_Dummy room Arlo


alternativ per "at" einfach irgendwas ins reading schreiben. Hier in meinem Fall in die Kamera beim Wintergarten alle 3 Minuten... das hab ich einfach mal "Ping" benannt und trage "ok" ein. Spielt aber auch gar keine rolle, hauptsache es ändert sich irgendein reading in deinem device.:
define FileLog_Arlo_Wintergarten FileLog ./log/Arlo_Wintergarten-%Y.log Arlo_Wintergarten
attr FileLog_Arlo_Wintergarten logtype text
define Arlo_Ping at +*00:03:00 setreading Arlo_Wintergarten ping ok


In der Kamera dann folgendes userReadings erstellen:
attr Arlo_Wintergarten userReadings Verbindung { return "getrennt" if ( (time_str2num(ReadingsTimestamp($NAME,"batteryLevel","0")) - time_str2num(OldTimestamp($NAME))) > 720 );;;; return "verbunden" }

Das heisst sobald sich der Timestamp des readings für den batteryLevel nicht mehr verändert (hier 720Sekunden) wird das userReading "getrennt" gesetzt.
Wenn sich das Timestamp in der Zeit aktualisiert hat schreibt er "verbunden" in das userReading.

Dann könntest du wieder mit einer notify auf das "getrennt" im Reading "Verbindung" reagieren und Arlo_Cloud stoppen, starten und so weiter.


Vielleicht viel zu kompliziert und unübersichtlich aber ich bin halt auch kein Profi und hab mir das ganze irgendwie zusammengeschnipselt.

Funktioniert und das ist ja die Hauptsache.

Gruß
Flo
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 24 November 2018, 13:27:37
Zitat von: mi.ke am 01 November 2018, 13:45:17

Hallo maluk,

ich wollte nochmal vorsichtig nachfragen, ob Du doch noch mal nach der 2.ten Basis Station schauen könntest?

Danke und Grüße

mi.ke

Ich habe gerade eine neue Version des Python-Servers hochgeladen. Bitte versuche mal, ob damit die Probleme mit deiner zweiten Basisstation behoben sind.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 24 November 2018, 13:36:29
Die neue Version des Python Server, die ich gerade hochgeladen haben, enthält einige Optimierungen bzgl. Fehler-Handling. Ich habe jetzt alles mögliche bei mir lokal ausprobiert und hoffe, dass sich der Python-Server jetzt bei DSL-Zwangstrennungen nicht mehr aufhängt. Ich muss solche Situationen leider simulieren, da bei Unitymedia solche Zwangstrennungen nur alle paar Wochen mal vorkommen.

Wichtig: damit das Ganze vollumfänglich funktioniert, muss die Anpassung von /usr/local/lib/python2.7/dist-packages/Arlo.py in Zeile 308 erfolgen, die ich am 14.10.2018 hier im Thread beschrieben habe.


Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: eddy242 am 24 November 2018, 18:37:00
Hallo maluk,

tolles Modul! Kann es sein, dass das Attribut stateFormat verschwunden ist? Taucht nicht mehr in der Drop Down auf. Ich würde mir nämlich lieber den activityState als STATE anzeigen lassen. Danke!

Grüße
Ed
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 24 November 2018, 20:13:31
Zitat von: eddy242 am 24 November 2018, 18:37:00
Kann es sein, dass das Attribut stateFormat verschwunden ist? Taucht nicht mehr in der Drop Down auf. Ich würde mir nämlich lieber den activityState als STATE anzeigen lassen. Danke!

Hallo Ed,

ich habe eine neue Version von 49_Arlo.pm hochgeladen, die das Problem beheben sollte.

Gruß
maluk
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: eddy242 am 25 November 2018, 18:38:03
Hallo maluk,

danke, stateFormat funktioniert wieder!

Ich habe das Modul nun seit etlichen Tagen im Test und ich konnte das Problem nachvollziehen, dass nach einer Veränderung der Verbindung (bin auch bei unitymedia und es kommt selten vor) keine Verbindung mehr zur Arlo Cloud aufgebaut werden konnte. Server Stop und Start hat nicht geholfen. Reboot hilft zwar, ist aber sicher keine Lösung. Trotz verbose 5 konnte ich nicht wirklich (zumindest für mich) was sinnvolles lesen, was ich hätte anders machen können.

Wenn ich einen Wunsch anmelden dürfte, könnte es nicht im Cloud Connector Device einen Healthcheck bzw. ein Watchdog auf den Python Server geben, dann ein Reading geben, das den Status zeigt?

Grüße
Ed
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 27 November 2018, 20:11:55
Zitat von: maluk am 24 November 2018, 13:36:29
Die neue Version des Python Server, die ich gerade hochgeladen haben, enthält einige Optimierungen bzgl. Fehler-Handling. Ich habe jetzt alles mögliche bei mir lokal ausprobiert und hoffe, dass sich der Python-Server jetzt bei DSL-Zwangstrennungen nicht mehr aufhängt. Ich muss solche Situationen leider simulieren, da bei Unitymedia solche Zwangstrennungen nur alle paar Wochen mal vorkommen.

Wichtig: damit das Ganze vollumfänglich funktioniert, muss die Anpassung von /usr/local/lib/python2.7/dist-packages/Arlo.py in Zeile 308 erfolgen, die ich am 14.10.2018 hier im Thread beschrieben habe.

hmm, ich habe kein Arlo.py unter  /usr/local/lib/python2.7/dist-packages/... Obschon ich die Installation genau wie im ersten Post beschrieben, habe...
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 28 November 2018, 12:16:09
@maluk,

tja, nach dem letzten Update leider keine Funktion mehr

Der Pyhton-Server lässt sich gar nicht mehr starten

2018.11.28 12:22:52 2: Error occured when calling Arlo daemon: localhost: Verbindungsaufbau abgelehnt
2018.11.28 12:23:02 2: Error occured when calling Arlo daemon: localhost: Verbindungsaufbau abgelehnt

Nach Neustart des Rechners oder des PyhonServers im Eventlog diese Meldungen im Loop:
Exception AttributeError: "'EventStream' object has no attribute 'heartbeat_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0xb53b4690>> ignored
Exception in thread EventStream:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 295, in QueueEvents
    self.event_streams[basestation_id].Disconnect()
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 100, in Disconnect
    self.Unregister()
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 120, in Unregister
    if self.heartbeat_thread != threading.current_thread():
AttributeError: 'EventStream' object has no attribute 'heartbeat_thread'

Exception AttributeError: "'EventStream' object has no attribute 'heartbeat_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0xb537ee30>> ignored


Die /tmp/arlo.log wird geflutet (alle Sekunde) mit start/stop Einträgen

. . .
2018-11-28 11:50:40,351 INFO: Stopped event handler
2018-11-28 11:50:40,352 INFO: Start event handler
2018-11-28 11:50:42,755 INFO: Stopped event handler
2018-11-28 11:50:42,762 INFO: Start event handler
2018-11-28 11:50:44,664 INFO: Stopped event handler
2018-11-28 11:50:44,666 INFO: Start event handler
. . .




Habe leider die Installation aus dem ersten Therad nochmal komplett durchgeführt, dadurch hat sich die API geändert und seitdem auch mit der "alten funktionierenden" Version vom 21.06.2018 die gleichen Fehler.

Da das System durch die dauernde Schreiberei ausgebremst wird und auch die SD-Karte dadurch nicht besser wird, musste ich leider das Modul komplett abschalten, was natürlich einen ganz schlechten WAF ausgelöst hat.
Zum Glück lief das Arlo-Modul auf einem 2.ten RPi und nicht auf dem Hauptrechner und die Holde saß nicht im Dunkeln.

Leider bin ich nun ratlos was man noch ausprobiern könnte

LG
mi.ke

Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: eddy242 am 29 November 2018, 17:03:39
Hallo maluk,

das taucht seit heute im Log auf, ca 100+ lines. Keine Konfigurationsänderungen oder sonstige "Vorfälle" seit gestern

ConnectionError: HTTPSConnectionPool(host='arlo.netgear.com', port=443): Max retries exceeded with url: /hmsweb/users/devices/notify/4RD38474A61C4 (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fc68bc09550>: Failed to establish a new connection: [Errno 113] No route to host',))

Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x7fc68c2d2ad0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x7fc68a348f90>> ignored


Grüße
Ed
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 30 November 2018, 08:17:36
Zitat von: mi.ke am 28 November 2018, 12:16:09
Die /tmp/arlo.log wird geflutet (alle Sekunde) mit start/stop Einträgen

. . .
2018-11-28 11:50:40,351 INFO: Stopped event handler
2018-11-28 11:50:40,352 INFO: Start event handler
2018-11-28 11:50:42,755 INFO: Stopped event handler
2018-11-28 11:50:42,762 INFO: Start event handler
2018-11-28 11:50:44,664 INFO: Stopped event handler
2018-11-28 11:50:44,666 INFO: Start event handler
. . .



Hallo mi.ke,

bitte schalte mal den Log Level in 49_Arlo.py auf DEBUG (Zeile 26). Dann werden die Fehlermeldungen ausgegeben, die zu dem ständigen Neustart des Event Handler führen.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 30 November 2018, 08:19:58
Zitat von: eddy242 am 29 November 2018, 17:03:39
Hallo maluk,

das taucht seit heute im Log auf, ca 100+ lines. Keine Konfigurationsänderungen oder sonstige "Vorfälle" seit gestern

ConnectionError: HTTPSConnectionPool(host='arlo.netgear.com', port=443): Max retries exceeded with url: /hmsweb/users/devices/notify/4RD38474A61C4 (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fc68bc09550>: Failed to establish a new connection: [Errno 113] No route to host',))

Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x7fc68c2d2ad0>> ignored
Exception AttributeError: "'EventStream' object has no attribute 'event_stream_thread'" in <bound method EventStream.__del__ of <Arlo.EventStream object at 0x7fc68a348f90>> ignored


Grüße
Ed

Hallo Ed,

war das Phänomen temporär oder besteht es noch? Falls es nur temporär war, dann war es ein normaler Netzwerk-Ausfall und die Arlo-Cloud war nicht mehr erreichbar.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: eddy242 am 30 November 2018, 18:55:54
Hallo maluk,

ist in der Tat nicht mehr wiedergekommen. Dafür taucht jetzt das heute auf (will nicht nerven, Modul funktioniert, aber vielleicht für Dich hilfreich). Das Netzwerk war definitiv nicht weg (wegen "No route to host"):


Exception in thread EventStream:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 287, in QueueEvents
    for event in event_stream:
  File "/usr/local/lib/python2.7/dist-packages/sseclient.py", line 74, in __next__
    self._connect()
  File "/usr/local/lib/python2.7/dist-packages/sseclient.py", line 48, in _connect
    self.resp = requester.get(self.url, stream=True, **self.requests_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
ConnectionError: HTTPSConnectionPool(host='arlo.netgear.com', port=443): Max retries exceeded with url: /hmsweb/client/subscribe?token=2_52U2UXXVLkuQuOdS5_7K4GE3A9pBamAFYrWrn8-sCOc-3np60ZAMFsJRm5pVthavzqRdHmlz9dtzMCHzHHrGXcQ0ZYviQCa5kcHSHXvPYHNgnNXkn0Yb_zQJaPTDFLBa-UUac6KMEEPJVOmd1wkI9Y9Wt2NbeHOb9H0ur7nf-a9M (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fc68a33a290>: Failed to establish a new connection: [Errno 113] No route to host',))

Exception in thread HeartbeatThread:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 305, in Heartbeat
    self.Ping(basestation)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 408, in Ping
    return self.NotifyAndGetResponse(basestation, {"action":"set","resource":"subscriptions/"+self.user_id+"_web","publishResponse":False,"properties":{"devices":[basestation_id]}})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 388, in NotifyAndGetResponse
    transId = self.Notify(basestation, body)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 379, in Notify
    self.request.post('https://arlo.netgear.com/hmsweb/users/devices/notify/'+body['to'], body, headers={"xcloudId":basestation.get('xCloudId')})
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 158, in post
    return self._request(url, 'POST', params, headers, raw)
  File "/usr/local/lib/python2.7/dist-packages/Arlo.py", line 137, in _request
    r = self.session.post(url, json=params, headers=headers)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 581, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
ConnectionError: HTTPSConnectionPool(host='arlo.netgear.com', port=443): Max retries exceeded with url: /hmsweb/users/devices/notify/4RD38474A61C4 (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7fc68a3d5a90>: Failed to establish a new connection: [Errno 113] No route to host',))



Grüße
Ed
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 30 November 2018, 19:12:23
Aufgrund der vielen Probleme mit dem Python-Modul bin ich gerade dabei, eine neue Version komplett in Perl zu entwickeln. Wenn ich damit fertig bin, wird der Python-Server nicht mehr benötigt. Ich hoffe, dass damit dann auch die ganzen Probleme ein Ende haben.

Wenn ich soweit bin, brauche ich ein paar Beta-Tester :)
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: choetzu am 30 November 2018, 21:38:12
,,Handaufheb!!"
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 30 November 2018, 22:15:33
Zitat von: maluk am 30 November 2018, 19:12:23
Wenn ich soweit bin, brauche ich ein paar Beta-Tester :)


Bin dabei
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: m0urs am 30 November 2018, 22:34:10
Ich teste gerne mit. Bin mit Jeffrey auch schon ein wenig weiter gekommen bzgl. des Supports der Arlo Bridge mit Arlo Security Lights. Wäre toll, wenn das Modul das dann auch unterstützen würde ;-)
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: eddy242 am 02 Dezember 2018, 17:44:44
Bin auch dabei
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 02 Dezember 2018, 20:53:04
Ich werde heute Abend mal eine erste Version der Neuimplementierung hochladen. Die hat allerdings noch keine Langzeit-Tests hinter sich, daher kann es noch zu Problemen kommen und sie sollte zunächst nur verwendet werden, wenn Ihr damit leben könnt, dass das Modul auch mal ausfällt. Wichtig: beide Varianten parallel sollten nicht verwendet werden. Arlo prüft bei jedem Login, ob die User-ID bereits angemeldet ist und stoppt für die angemeldete Sessions die Benachrichtigungen. Dies war bisher auch schon der Fall, wenn man den Arlo-Server laufen hatte und parallel die App gestartet hat. Auch hier gab es Wechselwirkungen.

Für die technisch Interessierten hier mal eine Beschreibung der Schnittstelle: Arlo stellt eine REST API bereit, allerdings kommen die meisten Rückantworten vom Server asynchorn per Server-Sent Events (SSE). Da SSE von Perl nicht unterstützt wird und in FHEM auch keine Implementierung dafür vorhanden ist, habe ich längere Zeit davor zurückgeschreckt, das Modul komplett auf Perl umzustellen. Diese SSE-Schnittstelle war auch der Teil, der im Python-Server immer wieder für Probleme gesorgt hat, da bei Verbindungsabbrüchen zu Problemen geführt hat, weil ich über Jeffrey Walter's Python-Modul kein sauberes Fehler-Handling hinbekommen habe. Jetzt habe ich die SSE-Schnittstelle selbst implementiert und kann dadurch hoffentlich auch das Fehler-Handling verbessern. Genau dieses Fehler-Handling ist aber momentan noch sehr rudimentär und das werden wir hier über das Forum zusammen verbessern müssen.

Trotzdem bin ich Jeffrey sehr dankbar für die Python-Implementierung. Das war echte Pionierarbeit und ohne sein Modul hätte ich meine Neuimplementierung auch nicht hinbekommen.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: mi.ke am 02 Dezember 2018, 21:16:49
vielleicht sollte man einen neuen Thread aufmachen für das neue Modul.
Sonst gibt es bestimmt Durcheinander, oder?
Titel: Antw:Modul für Netgear Arlo-Kameras (Python-Version)
Beitrag von: maluk am 02 Dezember 2018, 22:30:28
Das hatte ich sowieso vor  :). Hier der Link zum neuen Thread: https://forum.fhem.de/index.php/topic,94025.0.html

Für alle Umsteiger: bitte alle bisherigen Devices löschen und das Account-Device neu anlegen (es hat nur noch 2 Parameter, die restlichen wurden nur wegen dem Python Server benötigt). Mit dem Autocreate werden jetzt alle Basisstationen und Kameras automatisch angelegt.

Falls es Probleme mit Verbindungsabbrüchen gibt, kann über folgenden Befehl eine erneute Anmeldung erzwungen werden: set Arlo_Cloud reconnect
Probleme bitte im Forum melden. Ich habe das Modul heute sofort veröffentlicht, ohne eine längeren Test damit zu machen. Es funktioniert zwar grundsätzlich, aber spannend wird es ja erst im Zusammenhang mit DSL-Zwangstrennungen und auslaufenden Sessions auf der Arlo-Seite. Das Session-Problem wird mit Sicherheit kommen, aber ich wollte Euch einfach schnell an der neuen Entwicklung teilhaben lassen, da viele von Euch ja auch mit der Python-Variante einige Probleme hatten.
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: maluk am 02 Dezember 2018, 22:31:31
Zitat von: m0urs am 30 November 2018, 22:34:10
Ich teste gerne mit. Bin mit Jeffrey auch schon ein wenig weiter gekommen bzgl. des Supports der Arlo Bridge mit Arlo Security Lights. Wäre toll, wenn das Modul das dann auch unterstützen würde ;-)

Sobald Ihr die Security Lights am Laufen habt, bitte kurz melden. Ich kann mir dann anschauen, was Jeffrey gemacht hat und diese Anpassungen übernehmen.
Titel: Antw:Modul für Netgear Arlo-Kameras (Python-Version)
Beitrag von: choetzu am 03 Dezember 2018, 19:42:43
Kurze Frage: Kann ich die neue 49_Arlo.pm auf einem Test Server laufen lassen und parallel die "alte" Variante mit Python Server? Oder wird es da Verbindungsprogleme geben?

Titel: Antw:Modul für Netgear Arlo-Kameras (Python-Version)
Beitrag von: maluk am 03 Dezember 2018, 21:29:19
Ich habe im neuen Modul momentan den logout-Event so implementiert, dass er sich sofort neu verbindet. Die Art der Verbindung ist jedoch so, dass es nicht unbedingt den anderen User wieder abmeldet. Es könnte also funktioneren, es könnte aber auch Probleme machen. Probiere es einfach aus ...
Titel: Antw:Modul für Netgear Arlo-Kameras
Beitrag von: m0urs am 04 Dezember 2018, 07:14:05
Zitat von: maluk am 02 Dezember 2018, 22:31:31
Sobald Ihr die Security Lights am Laufen habt, bitte kurz melden. Ich kann mir dann anschauen, was Jeffrey gemacht hat und diese Anpassungen übernehmen.

Ich glaube wir sind soweit. Der Support für die Security Lights sollte nun vorhanden sein. Siehe unseren Thread hier: https://github.com/jeffreydwalter/arlo/issues/97
Titel: Antw:Modul für Netgear Arlo-Kameras (Python-Version)
Beitrag von: maluk am 14 Dezember 2018, 21:25:18
Die neue Version des Moduls, die ich komplett in Perl entwickelt habe, läuft jetzt stabil. Daher wird die Python-Version nicht mehr weiterentwickelt.

Bitte die Perl-Version nutzen: https://forum.fhem.de/index.php/topic,94025.0.html