Modul für Netgear Arlo-Kameras (Python-Version)

Begonnen von maluk, 07 Mai 2018, 20:40:06

Vorheriges Thema - Nächstes Thema

choetzu

#45
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
Raspi3, EnOcean, Zwave, Homematic

choetzu

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
Raspi3, EnOcean, Zwave, Homematic

Vampy20

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.
FHEM 5.7 auf RPi 2 (Raspbian 4.4.13+, Perl v5.20.2), HM-CFG-USB, HM-SEC-RHS, HM-ES-PMSw1-Pl, HM-LC-Bl1PBU-FM, HM-SEC-SD-2, co2mini, Philips Hue, MySensors, DashButton

phil82

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.

maluk

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.

maluk

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.

Vampy20

#51
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');
FHEM 5.7 auf RPi 2 (Raspbian 4.4.13+, Perl v5.20.2), HM-CFG-USB, HM-SEC-RHS, HM-ES-PMSw1-Pl, HM-LC-Bl1PBU-FM, HM-SEC-SD-2, co2mini, Philips Hue, MySensors, DashButton

choetzu

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


Raspi3, EnOcean, Zwave, Homematic

maluk

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.

choetzu

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?
Raspi3, EnOcean, Zwave, Homematic

erwe

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

choetzu

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
Raspi3, EnOcean, Zwave, Homematic

Vampy20

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
FHEM 5.7 auf RPi 2 (Raspbian 4.4.13+, Perl v5.20.2), HM-CFG-USB, HM-SEC-RHS, HM-ES-PMSw1-Pl, HM-LC-Bl1PBU-FM, HM-SEC-SD-2, co2mini, Philips Hue, MySensors, DashButton

luke666s

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...

erwe

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