eufycam 2 und 2c in FHEM integrieren

Begonnen von Udomatic, 04 Juli 2020, 00:07:30

Vorheriges Thema - Nächstes Thema

Udomatic

Hallo,

ich habe seit einigen Wochen ein eufycam System bestehend aus Homebase, 1x eufycam 2 und 1x eufycam 2c.

Hat es jemand geschafft diese in FHEM zu integrieren und hat einen Tipp, wie umgesetzt?

Gruß
Udo
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,

rhya

Würde mich aktuell auch interessieren oder hast du da bereits was speziell für FHEM gefunden?

hier und hier hat schonmal jemand was auseinander genommen.

Und hier gibt es eine python library

Udomatic

Zitat von: rhya am 31 Juli 2020, 11:13:40
Würde mich aktuell auch interessieren oder hast du da bereits was speziell für FHEM gefunden?


Bis jetzt leider noch nicht.
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,

Roadrunner1106

Habe auch seit kurzem die EufyCam 2 und wäre daher auch an einer Lösung interessiert.

Hab mir mal die Python-Library installiert und ein kurzes Test-Script erstellt. Damit kann ich schon die installierten Kameras ausgeben lassen.

Hier habe ich auch noch eine Lösung gefunden, wie über die Python-Library der Sicherheitsmodus geändert werden kann.

Wahrscheinlich wäre es aber sinnvoll ein eigenes Perl Modul dafür zu erstellen. Vielleicht kann ja einer der Profis hier uns mal einen Tip geben, welches existierende Modul als Vorlage genutzt werden kann.

Aus dem Bauch heraus würde ich auch sagen, es würden wahrscheinlich sogar mehrere Module werden. Eins für die generelle Kommunikation zur Web-Site und dann noch mehrere für die unterschiedlichen Device-Typen (HomeBase, EufyCam 2, ...)

Meine Perl Kenntnisse sind zwar schon etwas eingerostet, ich hätte aber Lust und Zeit daran mitzuwirken.

KölnSolar

Na dann mal los.  8)
ZitatWahrscheinlich wäre es aber sinnvoll ein eigenes Perl Modul dafür zu erstellen
Find ich auch besser als irgendwelche Fremdlibs zu integrieren.
ZitatEins für die generelle Kommunikation zur Web-Site
Das müsste ja vielleicht ohne separates Modul mit HTTPMOD gehen.
Zitatmehrere für die unterschiedlichen Device-Typen (HomeBase, EufyCam 2, ...)
Vielleicht lässt sich IPCAM als Basis nutzen. Und bei DoorBird lässt sich bestimmt auch was abgucken.
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Roadrunner1106

Zitat von: KölnSolar am 18 Oktober 2020, 22:10:44
Das müsste ja vielleicht ohne separates Modul mit HTTPMOD gehen.
Mit HTTPMOD kenne ich mich noch nicht aus. Da kann ich im Moment nicht sagen, ob sich die komplette Funktionalität darüber abbilden läßt. Funktionen von HTTPMOD können aber auch in eigenen Modulen genutzt werden. Damit läßt sich dann aber wahrscheinlich vieles vereinfachen.

Zitat von: KölnSolar am 18 Oktober 2020, 22:10:44
Vielleicht lässt sich IPCAM als Basis nutzen. Und bei DoorBird lässt sich bestimmt auch was abgucken.
Habe ich mir mal angesehen. DoorBird sieht sehr interessant aus. Da läßt sich bestimmt etwas wiederverwenden.

Vielleicht sollten wir uns ein paar Use Cases überlegen, was wir machen wollen. Mir wären z.B. folgenden Sachen wichtig.

  • Den Sicherheitsmodus per FHEM ändern
  • Live-Bild einer Kamera
  • Ereignisliste anzeigen

Später könnte man noch das Ändern der Parameter der Geräte (HomeBase, EufyCam) über FHEM einbauen oder weitere Funktionen über FHEM ansteuern.

Dann sollten wir uns noch überlegen welche Devices es gibt, welche Readings es für ein Device gibt und welche Funktionen ich über set steuern möchte.

Aktuell stelle ich mir folgende Struktur vor:

Modul EufySecurity => Für die generelle Kommunikation mit der Web-API
Module EufyCam => Für die Kameras. Device werden/können über autocreate von EufySecurity angelegt werden.

Dann müsste man noch klären, ob es für die Anzeige der Ereignisliste sinnvoll ist, ein eigenes Modul zu machen (analog FB_CALLERLIST für die Anrufliste der Fritzbox).

Ach ja und dann müssen wir auch noch die Web-API checken, was darüber überhaupt machbar ist, bzw. was wir alles machen könnten.

Udomatic

Finde es super, dass hier eine Initiative gestartet wird! Finde die Produkte bisher sehr gut nach einem halben Jahr in Nutzung!

Bin dann gerne bereit zu testen, wenn es was zum Testen gibt!
2x Raspberry 3B+, 1x Raspberry 4, Signalduino 433 (Somfy), CUL_HM (HM-MOD-RPI-PCB), MQTT, Hue, ConBee 2, Sonos, AVM DECT, Netatmo, eufy, Nuki,

Roadrunner1106

Hier mal ein Update.

Habe mir HTTPMOD mal angesehen und versucht darüber die Kameras auszulesen. Den Login habe ich zwar noch hinbekommen, beim Abruf der Geräteliste bin ich dann aber gescheitert. (HTTPMOD schickt dann immer einen GET statt POST). Wenn ich HTTPMOD richtig verstanden habe, eignet es sich gut um zyklisch Daten von einem Gerät abzurufen und in FHEM anzuzeigen.

Habe jetzt damit angefangen ein eigenes Modul zu programmieren. Der Login funktioniert schon mal. ;-)

Ich frage mich nur, ob die Funktionalität der Web-API für unsere Wünsche ausreichend ist (siehe API.md auf GitHub). Folgende Funktionen sind über die API aktuell möglich.

  • Login
  • List Hubs
  • List Devices
  • Get History
  • Start Stream
  • Stop Stream

Bei "Get History" bin ich mir auch noch nicht sicher, ob man darüber die Ereignisliste abrufen kann. Wenn ich manuell bei eufy Security anmelde, bekomme ich keine Ereignisse angezeigt. Dafür benötigt man dann wohl ein Cloud-Abo.
ZitatNo videos on cloud storage
* It's unavailable to play the clips stored in HomeBase local storage by web portal because they have been advanced encrypted. It's recommended you to play them in the app or subscribe to the cloud recording service.
Vielleicht muss man sich die Anpassungen der Python-Library bei Domoticz genauer ansehen. Darüber konnte auch der Sicherheitsexperte-Modus geändert werden.

Vielleicht findet ja jemand von euch noch andere Quellen, wenn man dann Geräte direkt über FHEM angesteuert kann.

rhya

Hier hat auch jenmand ein Modul für ioBroker gemacht was den GuardMode ändern kann
https://github.com/bropat/ioBroker.eufy-security

Ich habe auch mal versucht den ganzen Kram über python (aus dem Domoticz Beispiel) zu installieren, bekomme aber immer nur nen RuntimeError SessionIsClosed ... aber vielleicht bin ich da grad auch einfach zu doof für (hab keine Ahnung von Python)

Roadrunner1106

Zitat von: rhya am 22 Oktober 2020, 13:02:58
Hier hat auch jenmand ein Modul für ioBroker gemacht was den GuardMode ändern kann
https://github.com/bropat/ioBroker.eufy-security
Das muss ich mir mal ansehen. Eventuell ist das ja anders als in der Python-Library gelöst.

Zitat von: rhya am 22 Oktober 2020, 13:02:58Ich habe auch mal versucht den ganzen Kram über python (aus dem Domoticz Beispiel) zu installieren, bekomme aber immer nur nen RuntimeError SessionIsClosed ... aber vielleicht bin ich da grad auch einfach zu doof für (hab keine Ahnung von Python)
Ich habe das zum laufen gebracht. Hier mal meine Steps:

  • Zuerst musste ich bei mir (Buster) Python 3 als Default aktivieren. python war ein Link, der noch auf python2.x zeigte. Hier der Link dazu
  • Dann musste ich noch das Paket pip3 installieren
  • Dann wie bei domoticz beschrieben: Step 1 ZIP-Datei geladen
  • Step 2 hatte ich schon gemacht, aber nicht mit sudo. Dadurch ist die Library nur im home von pi unter .local installiert, was aber nichts macht. "pip3 install -r requirements_test.txt" führte bei mir zu einem Fehler und ich habe das weggelassen.
  • Dann nur noch Step 3.1, weil die Library ja nur in meinem Home ist.
  • Dann die drei Skripte von der Seite kopiert. Was aber blöd ist, weil Python Strukturen nicht durch Klammern schachtelt, sondern durch einrücken. Bei den Vorlagen ist natürlich nichts mehr eingerückt.
  • Dann musste ich noch eine Library installieren, die es nicht bei mir gab. "pip3 install -U async_generator"
Damit lief dann alles.

Roadrunner1106

#10
Kurzes Update:

Habe mich jetzt wieder (etwas) in Perl eingearbeitet und mich auch durch das Wiki zur Modul-Programmierung gearbeitet und mit den Modulen angefangen. Folgendes ist aktuell schon möglich.

Modul 73_eufySecurity, 73_eufyCamera, 73_eufyStation
Man kann für die Anmeldung eine E-Mail als Attribut hinterlegen und ein Passwort angeben (wird leider noch nicht dauerhaft über Restart FHEM gesichert) und sich damit anmelden. Dann funktioniert schon der Abruf der Hubs, Devices und der Historie. Bei den Devices werden dann auch schon automatisch Geräte für die Kameras angelegt, falls diese noch nicht existieren (Module 73_eufyCamera). Der Name einer Kamera ist dann eufyCamera_seriennummer.  Als alias wird dann aber der Name gesetzt, den man über die App für die Kamera vergeben hat.

Pro Kamera kommen so 55 Attribute mit, von dehnen ich aktuell 22 als Readings anzeige.  Ein paar der Attribute enthalten dann weitere Listen, wie z.B. params. Unter params werden dann noch mal ca. 60 Parameter für eine Kamera zurückgegeben. Manche Parameter werden bei mir auch nur für eine Kamera zurück geliefert.

Hier wäre es gut, wenn ihr das auch mal analysieren würdet und sagen könntet, was wofür ist und was wichtig wäre, dies auch am Gerät zu hinterlegen und anzuzeigen.

Die Liste der Hubs und die Historie werden aktuell noch nicht ausgewertet. Da schreibe ich nur was ich bekomme ins Log. Für eine Analyse würde das ja auch reichen.

Für erste Tests könnte ich die Module zur Verfügung stellen. Aber Achtung das hat noch nicht einmal Beta-Status. Ich habe FHEM schon öfters zum Absturz, bzw. Restart gebracht. Das lag dann zwar immer an Bugs im Code aber trotzdem sollte man das nicht auf seiner produktiven Umgebung testen.

Was mir auch noch Kopfzerbrechen  bereitet ist die P2P-Verbindung für erweiterte Funktion. Scheinbar benötigt man die normale Verbindung über die Web-API aber trotzdem. Habe mir mal dem Python Code angesehen, werde aber daraus nicht schlau. Vielleicht findet ja jemand von euch noch was, wo das Protokoll detaillierter beschrieben ist, damit man es einfacher in Perl implementieren kann.

Eventuell sollten wir uns auch Gedanken darüber machen, ob das Forum hier der richtige Platz ist, um während der Entwicklung Infos und Versionsstände der Module auszutauschen. Was da etwas taugt, da habe ich absolut keine Erfahrungen. Vorschläge?

rhya

Ich könnte das hier einmal ausprobieren wenn Du möchtest. Ich habe eine HomeBase 2, die Wireless Doorbell, 2C und eine Indoor Cam (geht nicht über die HomeBase)

Das Domoticz Ding hab ich jetzt mehrfach versucht, es klappt ja auch alles bis auf das eigentlich schalten des GuardMode. Ich denke der Server beendet meine Connection - aber da stecke ich jetzt erstmal keine Energie mehr rein. War ja eh mehr gebastelt um zu schauen ob es überhaupt funktioniert.

waeller

Hallo zusammen,

ich wollte mich einmal nach dem Entwicklungsstand der Eufy Integration erkundigen. Ist da aktuell jemand aktiv dran? Mich würde das Thema ebenfalls sehr interessieren, ggf. könnte ich auch bei der Entwicklung unterstützen.

Viele Grüße
waeller

Roadrunner1106

Hi,

hier mal die Ergänzungen zum Stand meines letzten Beitrages.

Das P2P-Protokoll ist implementiert und für ein Station-Device kann jetzt der GuardMode (Zuhause, Abwesend, Deaktiviert, ...) gesetzt werden. Es werden auch mehrere P2P-Verbindungen zu mehreren Stadions oder Kameras mit integrierter Station unterstützt.

Die P2P-Verbindung ist bisher noch rudimentär implementiert. D.h. es müssen noch bestimmte Schritte eingehalten werden, damit es funktioniert. Es fehlt z.B. noch ein automatischer Reconnect, wenn die Verbindung gestört war oder von der Station beendet wurde.

Eine Doku, bzw. Kurzanleitung muss noch erstellt werden.

Die aktuelle Version läuft relativ stabil, trotzdem kann es mal zu einem Absturz/Restart von FHEM kommen. Wer auf Nummer sicher gehen will, sollte die Module daher auf einem Test-System installieren und testen.

Die Sourcen liegen aktuell in einem geschlossenen Repro auf GitHub. Bei Bedarf kann ich aber Zugriff darauf erteilen (GitHub UserID nennen).

Die Kommunikation zwischen mir und den Testern (aktuell einer) erfolgt über Skype.

waeller

Hi,

das liest sich doch schon mal sehr gut. Ich würde wie schon geschrieben gerne unterstützen. Ich sende dir per PN mal meinen Github User.

VG
waeller