Arlo

Aus FHEMWiki
Arlo
Zweck / Funktion
Einbindung von Arlo Kameras
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Thema
Support (Forum) Sonstige Systeme
Modulname 49_Arlo.pm
Ersteller maluk (Forum /Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Arlo Sicherheitskameras von Netgear über die Arlo Cloud gesteuert. Diese kann über eine REST-API angesprochen werden und liefert Ereignisse (wie z.B. erkannte Bewegungen oder sonstige Statusänderungen) über Server-Sent Events (SSE) zurück. Dieses Modul verwendet diese API und bietet sowohl die Möglichkeit, die Kameras über FHEM zu steuern als auch Statusänderungen der Kameras in FHEM mitzubekommen. Damit kann z.B. auf Bewegungserkennung der Kameras in FHEM reagiert werden.

Unterstützte Kameras

Folgende Arlo-Geräte können mit dem Modul angesprochen werden:

  • Wifi-Kameras mit Basisstation: Arlo / Arlo Pro / Arlo Pro 2
  • Kameras ohne separate Basisstation: Arlo Baby / ArloQ
  • Arlo Lights (werden über eine Bridge angesteuert)

Voraussetzungen

Die FHEM-Standardinstallation und eine Internetverbindung werden für das Funktionieren des Moduls benötigt. Das Modul wird als offizielles Modul per update verteilt und muss nicht extra installiert werden.

Darüber hinaus wird für den Login bei Arlo Python3 (mindestens Version 3.7) und die Python-Komponente Cloudscraper benötigt:

sudo apt install python3 python3-pip
sudo pip3 install cloudscraper

Anwendung

Define

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

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

ans.mustermann@xyz.de durch die E-Mail-Adresse ersetzen, mit der man bei Arlo registriert ist, meinArloPasswort durch das Passwort bei Arlo. Für die 2-Faktor-Authentifizierung wird zusätzlich das Passwort des E-Mail-Accounts benötigt. Der E-Mail-Server, von dem die Arlo-Mails abgerufen werden sollen, muss mit attr Arlo_Cloud mailServer imap.gmx.net angegeben werden, wobei imap.gmx.net durch den IMAP-Mailserver des Providers ersetzt werden muss, bei dem das E-Mail-Konto liegt. Es wird ausschließlich IMAP mit Verschlüsselung unterstützt.

Nach der erfolgreichen Definition des Account kann auf dem neu erzeugten Device set Arlo_Cloud autocreate aufgerufen werden. Dies legt die Basistationen, Bridges, Kameras und Lights an, die dem Arlo Account zugeordnet sind. Die neuen Devices befinden sich initial im Raum Arlo. Je nach Device werden verschiedene Sub-Typs angelegt, die nachfolgende beschreiben sind.

Sub-Typ ACCOUNT

Hier handelt es sich um das Device, das die Verbindung zur Cloud hält und manuell erzeugt wird (s.o.) Folgende set-Commands sind für diesen Sub-Typ möglich:

  • autocreate: Liest alle dem Arlo-Account zugeordneten Geräte und legt dafür FHEM-Devices an, falls es diese nicht schon gibt.
  • checkMail: Falls der Login-Vorgang im Status "awaiting2FA" ist, wird geprüft, ob es eine 2FA-Mail von Arlo gibt. Falls ja, wird versucht, sich mit dem Code aus der neuesten Mail anzumelden. "checkMail" muss normal nicht manuell aufgerufen werden, der Aufruf erfolgt automatisch im Login-Prozess.
  • loginSecondFactor: Bei der 2FA-Anmeldung muss nach der Anmeldung mit Passwort ein zweiter Login-Schritt mit einem Code erfolgen, der für den Login-Vorgang erzeugt wird. Dieser Code kann hier übergeben werden. Falls man das E-Mail-Passwort und den Mailserver hinterlegt, muss "loginSecondFactor" nicht selbst aufgerufen werden, da dies dann automatisch im Login-Vorgang erfolgt.
  • reconnect: Neuaufbau der Verbindung zum Arlo-Server. Zunächst loggt sich FHEM neu bei Arlo ein, danach wird die SSE-Verbindung aufgebaut. Wird nur benötigt, falls unerwartete Verbindungsabbrüche auftreten.
  • updateReadings: Aktuelle Daten aller Basisstationen und Kameras aus der Cloud abrufen. Dies passiert einmal stündlich automatisch, falls dies nicht durch Setzen des Attributes disabled=1 am Cloud-Device unterbunden wird. Den Abruf-Intervall kann man durch Setzen des Attributs updateInterval anpassen (Angabe von Sekunden, also z.B. 600 für Abruf alle 10 Minuten oder 7200 für Abruf alle 2 Stunden).

Folgende Attribute können für dieses Device gesetzt werden:

  • downloadDir: falls dieses Attribut 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.
  • downloadLink: falls über das Attribut downloadDir die Dateien ins lokale Verzeichnis heruntergeladen werden, kann über dieses Attribut 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.
  • disable: deaktiviert die Verbindung zur Arlo-Cloud.
  • mailServer: Name des IMAP Mailservers, an den Arlo den Code für die 2-Faktor-Authentifizierung sendet. Das Passwort muss beim define des Arlo_Cloud-Devices angegeben werden.
  • pingInterval: setzt das Intervall in Sekunden, wie häfuig ein Heartbeat-Ping gesendet wird. Ohne den Heartbeat-Ping würde die Session ablaufen und es könnten keine Events mehr empfangen werden. Standard ist 90.
  • updateInterval: setzt das Intervall in Sekunden, wie häufig die Readings der Basisstationen und Kameras abgefragt werden. Standard ist 3600 = 1 Stunde.
  • ssePollingInterval: setzt das Intervall in Sekunden, wie häufig die SSE Events abgefragt werden sollen. Standard ist 2 Sekunden.

Sub-Typ BASESTATION

Basisstationen werden für die Steuerung der Wifi-Kameras Arlo, Arlo Pro und Arlo Pro 2 benötigt. Folgende set-Command sind für Devices dieses Sub-Typs möglich:

  • arm: Aktivieren der Bewegungserkennung für die Wifi-Kameras
  • disarm: Deaktivieren der Bewegungserkennung für die Wifi-Kameras
  • mode: benutzerspezifischen Modus setzen. Während arm i.d.R. die Bewegungserkennung aller Kameras aktiviert, können mittels einem benutzerspezifischen Mode nur einzelne Kameras aktiviert wreden.
  • siren: Ein- bzw. Ausschalten der Siren, die in die Basisstation eingebaut ist (on/off).
  • subscribe: Basisstation für die SSE-Schnittstelle registrieren. Muss normalerweise nie manuell aufgerufen werden, da dies beim Login automatisch passiert.
  • unsubscribe: Registrierung einer Basisstation für die SSE-Schnittstelle rückgängig machen.

Als Attribut kann nur disable gesetzt werden. Wenn dieses Attibut auf 1 gesetzt wird, wird die regelmäßige Abfrage der Readings aus der Arlo Cloud für diese Basisstation deaktiviert.

Sub-Typ CAMERA

Devices mit dem Sub-Typ CAMERA werden für Wifi-Kameras angelegt. Folgende set-Commands sind hier möglich:

  • on: Kamera einschalten (Privacy-Mode deaktivieren)
  • off: Kamera ausschalten (Privacy-Mode aktivieren)
  • brightness: Anpassung der Helligkeit (mögliche Werte: -2, -1, 0, 1, 2
  • snapshot: ein Standbild aufnehmen. Dieses kann über die URL aus dem Reading snapshotUrl aufgerufen werden. Damit der Befehl funktioniert, muss die Kamera den Status on haben.
  • startRecording: Aufnahme starten. Damit der Befehl funktioniert, muss die Kamera den Status on haben.
  • stopRecording: Aufnahme stoppen. Die Aufnahme kann über lastVideoUrl abgerufen werden, das Standbild dazu unter lastVideoThumbnailUrl.

Außerdem ist es mittels des get-Commands recording möglich, die Liste aller Recordings eines Tages im JSON-Format abzurufen. Dieses Ergebnis kann z.B. in Tablet UI integriert werden (Abruf über JavaScript).

Sub-Typ ARLOQ

Kameras vom Typ ArloQ sind kabelgebunden und vereinen die Funktion einer Wifi-Kamera und einer Basisstation. Daher sind für diesse Kameras folgende set-Commands möglich (Detail-Erklärung s.o.):

  • arm (siehe Basisstation)
  • disarm (siehe Basisstation)
  • subscribe (siehe Basisstation)
  • unsubscribe (siehe Basisstation)
  • brightness (siehe Kamera)
  • snapshot (siehe Kamera)
  • startRecording (siehe Kamera)
  • stopRecording (siehe Kamera)

Sub-Typ BABYCAM

Baby Cams sind wie ArloQ kabelgebunden und haben diesselbe Funktion wie ArloQ. Zusätzlich sind noch folgende set-Commands möglich:

  • nightlight: Nachtlich ein- oder ausschalten (on/off)
  • nightlight-brightness : Helligkeit des Nachtlichts anpassen
  • nightlight-color: Farbe des Nachtlichts anpassen

Sub-Typ BRIDGE

Eine Bridge wird für Arlo Lights benötigt und hat 2 mögliche set-Commands:

  • arm: Aktivieren der Bewegungserkennung für die Arlo Lights
  • disarm: Deaktivieren der Bewegungserkennung für die Arlo Lights
  • mode: benutzerspezifischen Modus setzen (siehe Basisstation)

Sub-Typ LIGHT

Arlo Lights untersützen folgende set-Commands:

  • on: Einschalten des Lichts.
  • off: Ausschalten des Lichts.

Anwendungsbeispiele

Man kann die Überwachung der Kameras durch die Kommandos arm und disarm (s.o.) über FHEM ein- und ausschalten. Dies kann mit z.B. mit dem Presence-Modul kombiniert werden: wenn niemand im Haus ist, werden die Kameras aktiviert, wenn jemand nach Hause kommt deaktiviert.

Die Kameras und Lights können zur Bewegungserkennung verwendet werden. Hierzu gibt es an den Kamera- und Lights-Devices ein Reading motionDetected, das immer auf 1 gesetzt wird, wenn Bewegung erkannt wird. Durch Definition eines Notify kann auf die Bewegung reagiert werden (z.B. ein Licht einschalten).

Durch das Herunterladen des letzten Thumbnail und Video können die Kameras gut in Tablet UI integriert werden (immer letztes Thumbnail anzeigen). Außerdem können auch ältere Videos abgerufen werden (siehe get recordings beim Sub-Typ Kamera).

Bekannte Probleme

Manchmal werden Statusänderungen / Bewegungen nicht erkannt. Dies kann auch die Video- und Snapshot-Aufnahmen betreffen.

Links