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

kjmEjfu

Braucht man eigentlich, für diese Implementierung, zwingend die Homebase oder würde auch so eine günstige Lösung wie https://www.eufylife.com/de/products/variant/1080p-videoturklingel-mit-akku/E82223W1 funktionieren?
Migriere derzeit zu Home Assistant

zivi

Moin,

Gibt es hier schon Fortschritte? Kann man das Beta Modul schon irgendwo downloaden?

Gruß
Zivi

Roadrunner1106

Zitat von: kjmEjfu am 04 Januar 2021, 14:13:56
Braucht man eigentlich, für diese Implementierung, zwingend die Homebase oder würde auch so eine günstige Lösung ...
Die sollte auch funktionieren.

Neure Modelle, die keine Homebase benötigen, haben eine integrierte Station.

Roadrunner1106

Zitat von: zivi am 26 Januar 2021, 19:53:45
Gibt es hier schon Fortschritte? Kann man das Beta Modul schon irgendwo downloaden?
Schickt mir mal ein PN mit deiner GitHub UserID und dann kann ich dich für das Projekt freigeben.

Udomatic

Zitat von: Roadrunner1106 am 26 Januar 2021, 20:07:00
Schickt mir mal ein PN mit deiner GitHub UserID und dann kann ich dich für das Projekt freigeben.

Hast auch eine PM von mir!
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

So, ich habe das Repro bei GitHub jetzt public gemacht. D.h. jeder der Lust hat kann sich die Module holen und testen.

Hier der Link.
https://github.com/Roadrunner1106/FHEM-eufySecurity

m74

Hi, gibts denn eine Möglichkeit sich zu mit dem Modul zu verbinden wenn bei eufy 2 Faktor Authentifizierung aktiv ist?

Roadrunner1106

Zitat von: m74 am 16 Februar 2021, 19:50:30
Hi, gibts denn eine Möglichkeit sich zu mit dem Modul zu verbinden wenn bei eufy 2 Faktor Authentifizierung aktiv ist?
Nein, leider nicht.

Hatte auch im Netz gelesen, das es diverse Probleme mit der 2FA gibt und diese daher bewusst nicht bei mir eingerichtet.

Roadrunner1106

Zitat von: m74 am 16 Februar 2021, 19:50:30
Hi, gibts denn eine Möglichkeit sich zu mit dem Modul zu verbinden wenn bei eufy 2 Faktor Authentifizierung aktiv ist?
Ein Workaround wäre eine weitere E-Mail für den Account einzurichten und freizugeben und diese dann ohne 2FA.

m74


Udomatic

Zitat von: Roadrunner1106 am 27 Januar 2021, 10:06:56
So, ich habe das Repro bei GitHub jetzt public gemacht. D.h. jeder der Lust hat kann sich die Module holen und testen.

Hier der Link.
https://github.com/Roadrunner1106/FHEM-eufySecurity

Habe zum Testen der Module ein Docker Container installiert. Sollten die Module darin auch laufen?

Bekomme folgende Fehler:


2021.03.01 00:11:07.223 1: PERL WARNING: Bareword found where operator expected at ./FHEM/73_eufySecurity.pm line 9, near "data"
2021.03.01 00:11:07.223 1: PERL WARNING: (Missing semicolon on previous line?)
2021.03.01 00:11:07.223 1: PERL WARNING: Bareword found where operator expected at ./FHEM/73_eufySecurity.pm line 10, near "data"
2021.03.01 00:11:07.223 1: PERL WARNING: Bareword found where operator expected at ./FHEM/73_eufySecurity.pm line 11, near "data"
2021.03.01 00:11:07.223 1: reload: Error:Modul 73_eufySecurity deactivated:
Excessively long <> operator at ./FHEM/73_eufySecurity.pm line 21.

2021.03.01 00:11:07.223 0: Excessively long <> operator at ./FHEM/73_eufySecurity.pm line 21.

2021.03.01 00:11:15.096 1: reload: Error:Modul 73_eufySecurity deactivated:
Excessively long <> operator at ./FHEM/73_eufySecurity.pm line 21.

2021.03.01 00:11:15.096 0: Excessively long <> operator at ./FHEM/73_eufySecurity.pm line 21.

2021.03.01 00:12:25.747 1: reload: Error:Modul 73_eufySecurity deactivated:
Excessively long <> operator at ./FHEM/73_eufySecurity.pm line 21.

2021.03.01 00:12:25.747 0: Excessively long <> operator at ./FHEM/73_eufySecurity.pm line 21.

sh: 1: echo: echo: I/O error

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,

Udomatic

Zitat von: Roadrunner1106 am 27 Januar 2021, 10:06:56
So, ich habe das Repro bei GitHub jetzt public gemacht. D.h. jeder der Lust hat kann sich die Module holen und testen.

Hier der Link.
https://github.com/Roadrunner1106/FHEM-eufySecurity

Blöde Frage:
Wenn ich die Module herunterlade enden diese auf .html. Ich habe diese dann umbenannt in .pm
War das richtig?
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

Zitat von: Udomatic am 01 März 2021, 09:33:09
Blöde Frage:
Wenn ich die Module herunterlade enden diese auf .html. Ich habe diese dann umbenannt in .pm
War das richtig?
Geht wahrscheinlich auch.

Normalerweise klickt man auf den grünen Button Code und dann auf Download ZIP. Dann bekommst du das ganze Projekt als ZIP-Archiv.

kjmEjfu

Zitat von: Udomatic am 01 März 2021, 09:33:09
Blöde Frage:
Wenn ich die Module herunterlade enden diese auf .html. Ich habe diese dann umbenannt in .pm
War das richtig?

Vermutlich hast du dann auch noch das HTML-Markup drin.
Wenn du einzelne Dateien öffnest, ist dort auch immer ein "RAW"-Button. Damit kommst du zur HTML-losen Ansicht und könntest diese Ansicht dann speichern.

Grundsätzlich aber lieber komplett und dann so, wie Roadrunner1106 schon geschrieben hat.
Migriere derzeit zu Home Assistant

Udomatic

#29
Zitat von: Roadrunner1106 am 01 März 2021, 09:47:59
Geht wahrscheinlich auch.

Normalerweise klickt man auf den grünen Button Code und dann auf Download ZIP. Dann bekommst du das ganze Projekt als ZIP-Archiv.

Danke, jetzt hat es geklappt. Den Button habe ich nicht wirklich wahr genommen  :)

Einrichtung hat soweit auch geklappt! Geht ja recht easy mit deiner Anleitung! Das ist wirklich schon mal sehr komfortabel.

Den Guard Mode setzen klappte jetzt nicht direkt, obwohl ich die Schritte der Anleitung ausgeführt habe.

Habe jetzt direkt Wünsche / Fragen:
Kamera
Kann ich das Bild der Kamera Streams direkt in FHEM einblenden?
Lässt sich der Bewegungssensor der Kamera als Device abgreifen?
Lässt sich der PowerManager integrieren? --> Mit den Settings spiele ich auch nach einem Jahr Nutzung immer wieder.
Lässt sich die Systemversion auslesen? --> Im Device ist die Subsystem Version vorhanden.

Homebase
Lässt sich der Speicherverbrauch der Homebase ermitteln und bei Bedarf löschen?

Vielen Dank schon mal für deine Arbeit!
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

Zitat von: Udomatic am 01 März 2021, 19:15:53
Den Guard Mode setzen klappte jetzt nicht direkt, obwohl ich die Schritte der Anleitung ausgeführt habe.
Da verhalten sich die HomeBase 2 und die Indoor Cams mit integrierter Station unterschiedlich.

Bei der HomeBase 2 wird der Mode sofort korrekt nach dem setzen in FHEM aktualisiert. Bei der Indoor Cam wird der Mode in FHEM erst aktualisiert, wenn ich in der APP einmal unter Sicherheit in die Einstellung der Station gehe. Warum das so ist, habe ich noch nicht heraus gefunden. Da könntet ihr unterstützen.

Zitat von: Udomatic am 01 März 2021, 19:15:53
Kann ich das Bild der Kamera Streams direkt in FHEM einblenden?
Geht noch nicht.

Zitat von: Udomatic am 01 März 2021, 19:15:53
Lässt sich der Bewegungssensor der Kamera als Device abgreifen?
Unklar was du da machen willst.

Zitat von: Udomatic am 01 März 2021, 19:15:53
Lässt sich der PowerManager integrieren? --> Mit den Settings spiele ich auch nach einem Jahr Nutzung immer wieder.
Geht noch nicht, sollte wahrscheinlich aber möglich sein. Hatte das einmal per APP eingestellt und sehe aktuell keine Priorität das in FHEM zu integrieren.

Zitat von: Udomatic am 01 März 2021, 19:15:53
Lässt sich die Systemversion auslesen? --> Im Device ist die Subsystem Version vorhanden.
Wenn diese beim Update mitgeschickt wird, sollte das kein Problem sein. Schaue mal ins Log. Beim Update schreibe ich den kompletten JSON-String dort rein.

Zitat von: Udomatic am 01 März 2021, 19:15:53
Homebase
Lässt sich der Speicherverbrauch der Homebase ermitteln und bei Bedarf löschen?
Geht auch noch nicht, ist aber auf meiner Prioritätenliste-Liste ganz weit oben. Mir schwebt da ungefähr das vor. Einmal pro Tag wird in FHEM automatisch ein Kommando ausgeführt. "Lösche alle Aufnahmen älter als x Tage".

Roadrunner1106

Zitat von: Udomatic am 01 März 2021, 19:15:53
Lässt sich die Systemversion auslesen? --> Im Device ist die Subsystem Version vorhanden.
Habe gerade noch einmal nachgesehen.

Die Version wird im JSON-String zurück geliefert (main_hw_version). und ich habe das auch im Code drin. Warum das Reading aktuell nicht angezeigt wird, ist mir noch unklar. Muss das mal prüfen.

Udomatic

Zitat von: Roadrunner1106 am 01 März 2021, 19:59:10
Unklar was du da machen willst.

Wenn der Sensor der Kamera auslöst und in FHEM erfasst wird könnte man damit noch andere Geräte triggern, wie Licht, Pushover oder Telegram. Vielleicht auch ein Bild versenden...

Das wären so meine Anwendungsfälle, was ich damit machen würde...
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,

Udomatic

#33
Lässt sich auslesen in welchem Guard Mode sich die Homebase gerade befindet?

Wenn ich den Guard Mode über das Device eufy2console ändern möchte, wird das Device myeufy disconnected und ich fliege aus der fhem Session. Muss dann einen Browser Refresh machen dann komme ich zurück zu fhem.

Im Log steht dann folgendes:


2021.03.01 20:57:10 3: eufyStation eufy_Homebase (set) -  set station to GuardMode Geofencing
2021.03.01 20:57:10 3: eufySecurity myEufy (Write) - device_type:0 sn:xxxxxxxx cmd:GUARD_MODE
2021.03.01 20:57:10 3: eufySecurity myEufy (Write) - set Guard Mode to Geofencing(47)
2021.03.01 20:57:10 3: eufySecurity  (sendMessage) - send message [f1d00070d1000000585a5948c804840000000100ff0000002f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]
Can't call method "send" on an undefined value at ./FHEM/73_eufySecurity.pm line 1231.

2021.03.01 20:57:10 1: Including fhem.cfg
2021.03.01 20:57:10 3: WEB: port 8083 opened
2021.03.01 20:57:10 2: eventTypes: loaded 1 events from ./log/eventTypes.txt
2021.03.01 20:57:11 3: eufySecurity myEufy (Define) - defined
2021.03.01 20:57:11 3: eufyStation eufy_Homebase (Define) - defined
2021.03.01 20:57:11 1: PERL WARNING: Smartmatch is experimental at ./FHEM/73_eufyCamera.pm line 91, <$fh> line 36.



Ändere ich den Guard Mode über das myeufy Device ändert sich in der App nichts. Sollte das funktionieren?

Aus welchem Grund is der Guard Mode in beiden fhem Devices, also myeufy und eufy2console?
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

Zitat von: Udomatic am 01 März 2021, 20:51:24
Lässt sich auslesen in welchem Guard Mode sich die Homebase gerade befindet?
Das wird im Reading guard_mode angezeigt. ggf. ist ein Update erforderlich.

Zitat von: Udomatic am 01 März 2021, 20:51:24
Wenn ich den Guard Mode über das Device eufy2console ändern möchte, wird das Device myeufy disconnected und ich fliege aus der fhem Session. Muss dann einen Browser Refresh machen dann komme ich zurück zu fhem.
Die P2P-Verbindung zu der Station ist noch recht rudimentär implementiert. D.h. du musst unbedingt die Reihenfolge einhalten, wie sie auf GitHub unter "P2P-Verbindung und GuardMode setzen" beschrieben ist. Ansonsten fehlen Werte, die zu einem Fehler führen. Daran muss ich noch arbeiten.

Zitat von: Udomatic am 01 März 2021, 20:51:24
Ändere ich den Guard Mode über das myeufy Device ändert sich in der App nichts. Sollte das funktionieren?
Die APP aktualisiert den Mode erst, wenn mann unter Sicherheit in die Einstellungen der Station geht. Dann wird auch der neue Mode angezeigt.

Zitat von: Udomatic am 01 März 2021, 20:51:24
Aus welchem Grund is der Guard Mode in beiden fhem Devices, also myeufy und eufy2console?
Ich gehe davon aus, du meinst die Module eufySecurity und eufyStation. Aktuell funktioniert das nur bei Geräten vom Typ eufyStation. Damit kann der GardMode für genau eine Station gesetzt werden. Bei eufySecurity ist die Auswahl bei set schon drin, es wird aber noch nichts gemacht. Damit soll dann aber für alle Stations der GuardMode auf einmal gesetzt werden.

Übrigens: Wenn du den GuardMode über die APP änderst, wird der auch gleich in FHEM aktualisiert, wenn die P2P-Verbindung aufgebaut ist.

Udomatic

#35
Hi,

hast du mir mal den Log Auszug aus dem vorherigen Post von mir angeschaut. Das bekomme ich, wenn ich den Guard Mode ändern möchte

Also bei mir ändert der Guard Mode nichts. Habe gerade noch mal auf Github geschaut. Hier die Bedingungen:

-Für das eufySecurity Gerät muss eine Verbindung hergestellt sein, damit die erforderlichen Daten der entsprechenden Station abgerufen werden können.
Verbindung ist vorhanden und state auf connect

-Für die Station muss mindestens einmal ein Update durchgeführt werden, damit alle erforderlichen Parameter (lokale IP, P2P_DID-String, Action_user_id) verfügbar sind.
Update habe ich mehrmals durchgeführt

Mir fehlen auch Readings. Du schreibst von:
lokale IP, --> vorhanden
P2P_DID-String, --> vorhanden
Action_user_id --> nicht vorhanden in den Readings aber im List des Devices zu sehen

Hier ein List meines Devices vom Type eufyStation. Überall, wo ein xxx steht habe ich die Werte ersetzt. Ich weiß nicht wie kritisch diese sind?
Im Bereich Readings siehst du welche Readings ich sehe.


Internals:
   CHANGED   
   DEF        0 Txxxxx
   FUUID      603d2cdc-f33f-6bbc-e7db-53fdaf048e193f6d
   IODev      myEufy
   LASTInputDev myEufy
   MSGCNT     1
   NAME       eufy_Homebase
   NR         15
   STATE      1
   TYPE       eufyStation
   myEufy_MSGCNT 1
   myEufy_TIME 2021-03-02 07:52:08
   READINGS:
     2021-03-01 19:05:50   create_time     2020-01-08 01:46:19
     2021-03-01 19:05:50   event_num       1144
     2021-03-01 19:05:50   ip_addr         xxxx
     2021-03-01 19:05:50   ip_addr_local   xxxx
     2021-03-01 19:05:50   main_hw_version P0
     2021-03-01 19:05:50   main_sw_time    2021-02-01 15:22:29
     2021-03-01 19:05:50   main_sw_version 2.1.5.7h
     2021-03-01 19:05:50   p2p_did         xxxxxx
     2021-03-01 19:05:50   sec_hw_version  P0
     2021-03-01 19:05:50   sec_sw_time     2020-01-08 10:40:55
     2021-03-01 19:05:50   sec_sw_version  1.3.0.9
     2021-03-01 19:05:50   state           1
     2021-03-01 19:05:50   station_id      xxxxx
     2021-03-01 19:05:50   station_model   T8010
     2021-03-01 19:05:50   time_zone       CET-1CEST,M3.5.0,M10.5.0/3|1.1375
     2021-03-01 19:05:50   update_time     2021-02-28 03:38:10
     2021-03-01 19:05:50   wifi_mac        xxxx
     2021-03-01 19:05:50   wifi_ssid       P0
   data:
     app_conn   xxxxxx
     create_time 1578444379
     device_type 0
     event_num  1144
     ip_addr    xxxxxx
     lot_number
     main_hw_version P0
     main_sw_time 1612189349
     main_sw_version 2.1.5.7h
     ndt_did    xxxxx
     ndt_license
     p2p_conn   xxxxx
     p2p_did    xxx
     p2p_license xxxx
     prefix     xxx
     push_did   xxxx
     push_license
     query_server_did xxxxxx
     sec_hw_version P0
     sec_sw_time 1578476455
     sec_sw_version 1.3.0.9
     sensor_info
     setup_code xxxxxx
     setup_id   X-HM://xxxxx
     sku_number
     station_id xxxx
     station_model T8010
     station_name eufy2console
     station_sn xxxxxx
     station_status 0
     status     1
     status_change_time 0
     sub1g_mac  xxxxxxx
     time_zone  CET-1CEST,M3.5.0,M10.5.0/3|1.1375
     update_time 1614479890
     volume     Anker_plA49xlJ3
     wakeup_flag 0
     wakeup_key
     wifi_mac   xxxxxx
     wifi_ssid  P0
     wipn_enc_dec_key xxxx@
     wipn_ndt_aes128key xxxxx@
     devices:
       T8113xxxxxxx:
         bind_time  1584040833
         cover_path /thumb/2020/12/24/station/xxxxxxxxx/pekozHRuV8WPTLOl.camera00_20201224160023.jpg
         cover_time 1608822021
         create_time 1578995134
         device_channel 0
         device_id  xxxxx
         device_model T8113
         device_name xxxx
         device_type 8
         event_num  0
         ip_addr   
         language   
         local_ip   
         lot_number
         main_hw_version eufy2_mini
         main_sw_time 1608045676
         main_sw_version 1.6.8
         schedule   
         schedulex 
         sec_hw_version P0
         sec_sw_time 1612794420
         sec_sw_version 1.0.88-20210105
         sector_id  0
         sku_number
         station_sn xxxxxx
         status     1
         sub1g_mac  "xxxxxxx"
         time_zone 
         update_time 1614628637
         wifi_mac   "xxxxxxx"
         wifi_ssid 
       T8114xxxxxxxxxx:
         bind_time  1585385112
         cover_path /thumb/2021/01/29/station/xxxxxxxxxxx/Qm7lsm8IW9WSLCPk.camera01_20210129164620.jpg
         cover_time 1611935178
         create_time 1577438293
         device_channel 1
         device_id  xxxxx
         device_model T8114
         device_name xxxx
         device_type 9
         event_num  0
         ip_addr   
         language   
         local_ip   
         lot_number
         main_hw_version eufy2_v
         main_sw_time 1608045731
         main_sw_version 2.6.8
         schedule   
         schedulex 
         sec_hw_version P0
         sec_sw_time 1612794461
         sec_sw_version 1.0.88-20210105
         sector_id  0
         sku_number
         station_sn xxxxxx
         status     1
         sub1g_mac  "xxxxxx"
         time_zone 
         update_time 1614628637
         wifi_mac   "xxxxxxxx"
         wifi_ssid 
     member:
       action_user_email xxxxx
       action_user_id xxxxxx
       action_user_name xxxx
       admin_user_id xxxxx
       avatar     
       create_time 1584036775
       email      xxxxxx
       extra     
       family_id  xxxxx
       fence_state 0
       member_avatar
       member_nick
       member_type 2
       member_user_id xxxxxx
       nick_name  xxxxxx
       permissions 0
       short_user_id 0000
       station_sn xxxxx
       status     1
       update_time 1584036775


Im Liste des Devices sind noch wesentlich mehr Informationen vorhanden, die ich jetzt nicht alle hier direkt posten will, u.a auch die main_sw_version sowohl der Homebase als auch in meinem Falle beider Kameras. Es sieht für mich also so aus als müsste die Info der main_sw_version lediglich als Reading im jeweiligen Device (Kamera) verfügbar gemacht werden.

Für die eufyStation wird main_sw_version auch als Reading ausgegeben. Bei den Kameras derzeit noch nicht. Aber anderes Thema. Es geht ja um den Guard Mode.

Ein Reading Guard Mode für die Homebase habe ich aber 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

Hi Udomatic,

hatte das mit dem setzen des GuardMode überhaupt schon mal bei dir funktioniert?

Welche Station und Kamera nutzt du?

Am besten du logst noch einmal den kompletten Vorgang und schickst mir dann das Log per PM zu.


  • Restart FHEM, damit der interne Hash aufgeräumt wird.
  • Connect des eufySecurity Gerätes
  • Update der Station
  • Connect der Station
  • set GuardMode der Station

Udomatic

#37
Zitat von: Roadrunner1106 am 02 März 2021, 12:44:58
Hi Udomatic,

hatte das mit dem setzen des GuardMode überhaupt schon mal bei dir funktioniert?

Welche Station und Kamera nutzt du?

Am besten du logst noch einmal den kompletten Vorgang und schickst mir dann das Log per PM zu.


  • Restart FHEM, damit der interne Hash aufgeräumt wird.
  • Connect des eufySecurity Gerätes
  • Update der Station
  • Connect der Station
  • set GuardMode der Station

Danke, hat jetzt funktioniert!

Schön wäre, wenn auch der tatsächliche Mode angezeigt wird im Reading Guard Mode. Wenn ich auf Geofencing umstelle steht im Reading trotzdem HOME, was in dem Sinnen stimmt, dass ich zu dem Zeitpunkt zu Hause war als ich von Home auf Geofencing umgestellt habe.
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,

Eisingstone

Hallo zusammen,

erst einmal vielen Dank für das bisherige Modul.
Die "Home Base 2" kann ich schon einmal soweit einrichten und connecten, meine eufycam 2 Pro werden jedoch nicht erkannt (geht das aktuell überhaupt schon??).
Was mir auch aufgefallen ist das sobald ich einen Wechsel des Guard Modus durchführe FHEM komplett abschmiert und neu gestartet werden muss, was natürlich ziemlich bescheidenist, denn so kann ich es nicht mit der Alarm Routinen kopplen.
Hat jemand ähnliche Erfahrungen gemacht und evtl. eine Lösung??

Besten Gruß
Stefan
FHEM 5.7 (Dev.), Debian Jessie Server
HM-LAN, HM-CFG-USB-2, RFXTRX433-USB, BT, HUE sowie diverse Homematic Sensoren und Aktoren

Roadrunner1106

Hallo Stefan,

wenn du dich genau an die Anleitung von GitHub hält, sollte es eigentlich funktionieren. Auch die Kameras sollten erkannt und automatisch angelegt werden.

Der von dir beschriebene Fehler tritt wahrscheinlich auf, weil du vor dem Station-Connect kein Update der Station durchgeführt hast.

Das Fehlerhandling im Modul ist aktuell noch rudimentär. D.h. hält man bei bestimmten Aktionen nicht die Reihenfolge ein, schmiert FHEM ab.

Am besten du logst noch einmal den kompletten Vorgang und schickst mir dann das Log per PM zu.

  • Restart FHEM, damit der interne Hash aufgeräumt wird.
  • Connect des eufySecurity Gerätes
  • Update der Station
  • Connect der Station
  • set GuardMode der Station

Gruß Roadrunner



Eisingstone

Hallo Roadrunner,

danke für deine Hilfe nun macht er was er soll, habe wie schon vermutet einen Schritt falsch befolgt. Kann die Zustände nun entsprechend ändern.
Die Kameras werden nicht automatisch angelegt, folgendes ist im LogFile zu finden:

2021.07.03 22:31:44 3: eufySecurity (getDevicesCB) - found:
2021.07.03 22:31:44 3: eufySecurity (Callback getDevices) - camera: xxxxxxxxxxxxxxxxxxx
2021.07.03 22:31:44 5: myEufy: dispatch C:14:xxxxxxxxxxxxxxxxxxx:UPDATE
2021.07.03 22:31:44 3: myEufy: Unknown code C:14:xxxxxxxxxxxxxxxxxxx:UPDATE, help me!

Die Seriennummern habe ich mal rausgenommen. Ich vermute das der Typ (14) noch nicht hinterlegt ist.

Besten Gruß
Stefan
FHEM 5.7 (Dev.), Debian Jessie Server
HM-LAN, HM-CFG-USB-2, RFXTRX433-USB, BT, HUE sowie diverse Homematic Sensoren und Aktoren

Roadrunner1106

Hallo Stefan,

um welche Kamera handelt es sich beim Typ 14? Die wird aktuell vom Modul noch nicht berücksichtigt und daher auch noch nicht automatisch erkannt.

Gruß
Roadrunner

Eisingstone

Hi Roadrunner,

dabei handelt es sich um die eufyCam 2 Pro mit 2k Auflösung.
FHEM 5.7 (Dev.), Debian Jessie Server
HM-LAN, HM-CFG-USB-2, RFXTRX433-USB, BT, HUE sowie diverse Homematic Sensoren und Aktoren

Roadrunner1106

Hallo Stefan,

alles klar. Werde das mal morgen einbauen und dann eine neue Version bei GitHub einstellen.

Gruß
Roadrunner

Eisingstone

Hallo Roadrunner,

ich war mal so frei die Dateien zuerweitern und es funktioniert soweit.
Devices suchen lassen und anschließend ein Update durchführen. Ergebnis siehe Anhang.
FHEM 5.7 (Dev.), Debian Jessie Server
HM-LAN, HM-CFG-USB-2, RFXTRX433-USB, BT, HUE sowie diverse Homematic Sensoren und Aktoren

Eisingstone

Kann Dir wenn Du möchtest die beiden Dateien zukommen lassen.
FHEM 5.7 (Dev.), Debian Jessie Server
HM-LAN, HM-CFG-USB-2, RFXTRX433-USB, BT, HUE sowie diverse Homematic Sensoren und Aktoren

Roadrunner1106

Nicht nötig. Habe das schon eingepflegt und hatte in meiner Version auch noch ein paar Änderungen drin, die noch nicht auf GitHub veröffentlicht waren

freddeh

Ich habe mir eine eufy SoloCam E40 angeschafft (Typ 33), gibt es eine Chance die im Modul zu ergänzen oder sind die Funktionalitäten zu unterschiedlich zwischen den Modellen?

Roadrunner1106

Zitat von: freddeh am 04 November 2021, 10:41:55
Ich habe mir eine eufy SoloCam E40 angeschafft (Typ 33), gibt es eine Chance die im Modul zu ergänzen oder sind die Funktionalitäten zu unterschiedlich zwischen den Modellen?
Das kann ich bis zum Wochenende einbauen.

Ich unterscheide bei den Kameras im Moment nur, ob sie einen Akku/Batterie haben oder am Dauerstrom hängen. Dann wird noch ein Reading Battery beim Device angelegt. Wir sieht das bei der E40 aus?

Ansonsten unterscheiden sich die Kameras dadurch, ob sie eine separate oder interne Station haben. Meinen Modulen ist das aber egal. Bei den Kameras mit interner Station werden dann eben zwei Devices pro Kamera angelegt (Camera & Station).

Es gibt dann noch Unterschiede im Detail. Z.B. liefern die Kameras unterschiedliche Werte für den gleichen Parametern. Das kann man aber erst später beim testen feststellen.

frad

Hallo, kann den Code auch für eine andere Smart Home Lösung nutzen?

Roadrunner1106

ZitatHallo, kann den Code auch für eine andere Smart Home Lösung nutzen?
wahrscheinlich nicht. Das Modul ist speziell für FHEM erstellt.

Die Logik in den Modulen müsste man aber auch kopieren können. Ich würde aber mal bei GitHub suchen. Dort gibt es noch Beispiele für andere Smart Home Lösungen.

holsteiner-kiel

So hier war ja länger nichts mehr los :-)

Guten Morgen erstmal. Hab gestern eine 2 neuen EufyCam 2c Pro erhalten. Ich kann über das Modul die HomeStation wie beschrieben anlegen. Das automatische Anlegen der Kameras funktioniert nicht. Auch das manuelle Anlegen per

define eufyCamera_SN eufyCamera 8 SN funktioniert nicht. "8" steht ja für die 2C und nicht die 2C pro. Liegt es daran? Muss ich etwas ändern? Hat jemand Tipps für mich, wie ich es zum Laufen bringe? Das Log ist eher schweigsam bis unauffällig.

Ich danke herzlich vorab!

Roadrunner1106

Im Kamera-Modul ist der Devicetype 15 zwar schon definiert, die 2C Pro ist im Modul aber noch nicht berücksichtigt.

Wenn du das selbst anpassen willst, dann muss die 15 in 73_eufyCamera.pm in Zeile 73 und 107 aufgenommen werden. In 73_eufySecurity.pm in Zeile 459.

Ansonsten musst du ein paar Tage Warten, bis ich die Module aktualisiert habe.

Ach ja, z.T. unterscheiden sich die Kameras manchmal minimal in den Attributen oder Parametern. Das ganze ist dann ungetestet.


Roadrunner1106

Habe die 2C Pro in die Module eingefügt und auf GitHub gestellt.

holsteiner-kiel

Großes Kino! Das funktioniert jetzt! Vielen Dank!

Beim Aktivieren von P2P für die Station friert aktuell noch mein FHEM ein. Da suche ich aktuell noch nach Ursachen.

flieger1995

Hallo Roadrunner,

danke erstmal für dein tolles Modul. Ich habe noch einen Erweiterungsvorschlag. Da bei uns in der Straße eine Einbruchsserie gestartet wurde, integriere ich gerade in mein FHEM das Modul 95_ALARM.pm

Ich würde gerne bei einem Auslösen des Alarms bei den einzelnen Kameras den Kamera-Alarm aktivieren. So ist der Alarm auch bei geschlossenen Fenster draußen wahrzunehmen. Ist das möglich mit einer Erweiterung deines Moduls?

Ich bin gespannt auf deine Antwort. Vielen Dank im Voraus.

Gruß
Flieger


Roadrunner1106

Hallo Flieger,

da ich in der letzten Woche im Ski-Urlaub war, konnte ich leider nicht eher antworten.

Ersteinmal etwas allgemeines zum Modul und meinen Ambitionen dazu. Der Status ist aus meiner Sicht höchstens Alpha. Da die Eufy-App viele meiner Anforderungen abdeckt und ich aus gesundheitlichen Gründen auch in den letzten Monaten wenig Zeit hatte, hat sich auch nicht viel am Modul getan. Für mich wären die wichtigsten nächsten Anforderungen:

- das alle erforderlichen Verbindungen bei einem Fehler oder Timeout automatisch wieder aufgebaut werden, bevor eine Aktion ausgeführt wird. Das ist aktuell nur sehr rudimentär implementiert und muss manuell gemacht werden.
- Was mir bei der App aktuell fehlt und für mich wichtig wäre, dass man die Schlummer Zeit flexibler einstellen kann. z.B. aktiviere den Schlummer-Modus für alle Kameras im Garten bis 18:00 Uhr.

Dann noch etwas was nicht persönlich gegen dich geht. Damit Wünsche dritter im Modul umgesetzt werden, brauche ich die aktive Mitarbeit dritter. Ich alleine habe nicht die Zeit (und Lust) diese Wünsche alleine zu realisieren.

So und nun zu deinem Problem. So ganz habe ich deine Anforderung noch nicht verstanden. Was soll gemacht werden, wenn im Alarm-Modul ein Alarm ausgelöst wird?

1. Bei den Kameras soll die Sirene angehen
2. Bei den Kameras soll die Konfiguration so geändert werden, dass wenn eine Bewegung erkannt wird die Sirene ertönt

Fall 2 sollte aktuell schon realisierbar sein. Dazu müsste mann in der Eufy-App nur einen neuen Sicherheitsmodi definieren, wo der Kamera-Alarm aktiviert ist. Diese Modi kann dann vom Modul Alarm aktiviert und meinen Modul über set GuardMode gesetzt werden.

Gruß
Roadrunner

flieger1995

Hallo Roadrunner,

danke für deine schnelle Antwort.

Meine Idee / Wunsch ist natürlich nicht zeitkritisch. Als ich mich mit dem Thema Alarmanlage in FHEM beschäftigt habe, habe ich beim Testen gemerkt, dass der Alarm von außen kaum wahrzunehmen ist. Also alles, was jetzt dazu programmiert wird, ist On Top.

Zu deinen wichtigsten Anforderungen:
1) Das Problem habe ich auch. Ich habe mir erstmal mit Doifs beholfen.
2) Das hört sich auch gut an.

Um deine Frage zu beantworten, ist es Punkt 1. Es geht nicht um bei einer Bewegungserkennung der Kamera den Kamera-Alarm auszulösen. Ich befürchte, dass dieses zu zu vielen Fehlalarmen führt. Ich möchte, dass bei Öffnung einer Tür, Fenster oder einer Bewegung im Haus der Kamera-Alarm mit ausgelöst wird.

Punkt 2 ist mir bewusst, dass dieses einfach in der Eufy-App zu konfigurieren ist.

Leider kann ich persönlich zu der Modulerweiterung nichts beitragen, da ich nicht tief genug in Perl stecke. Ich dachte, dass meine Idee vlt. für dich oder auch andere FHEM-/ und Eufy-Nutzer interessant ist. Ich akzeptiere auch ein "Nein" von dir zu meiner Idee. Ansonsten freue ich mich sehr über die Erweiterung.

Gruß,
Flieger

Roadrunner1106

Hallo Flieger,

ich habe schon befürchtet, dass du Lösung 1 haben möchtest. Hier bin ich mir aber nicht sicher, ob das technisch überhaupt machbar ist.

Das du nicht programmieren kannst, ist nicht so schlimm. Es reicht wenn du das Internet durchforstet, wie die Lösung technisch implementiert werden kann. In welcher Programmiersprache ist erst einmal nicht relevant. Ich habe mir die aktuelle Logik auch aus bestehenden Modulen in JavaScript und Phyton von GitHub zusammen gesucht.

Ggf. musst du auch dafür Anfragen auf Entwicklerforen für Eufy stellen.

Gruß
Roadrunner

Meiner.Einer

Hallo alle miteinander,

ich versuche mich auch gerade mit den Modulen.  8)

Der erste Schritt mit eufySecurity hat sofort funktioniert und die Verbindung liefert auch Ergebisse ... im Log.
Leider wird kein Device erzeugt, obwohl die Daten sichtbar ankommen.

Im Log steht "Unknown code C:5:T8200N001234567:UPDATE, help me!"

Ich habe eine Doorbell (mit Kabel), also DeviceType 5, welche in der 73_eufyCamera.pm zumindest aufgeführt wird.

Das manuelle Erstellen mit "define eufyCamera_T8200N001234567 eufyCamera 5 T8200N001234567" liefert zwar ein Device, aber jedes Update läuft auf das oben genannte Ergebnis hinaus.

Im Log sehe ich viele Werte:
2022.05.07 02:51:57 3: eufySecurity eufySecurity (getDevices) - data: {"device_sn": "T8200N001234567", "num": 100, "orderby": "", "page": 0, "station_sn": ""}
2022.05.07 02:51:57 3: eufySecurity eufySecurity (GetDevices) - url: https://security-app-eu.eufylife.com/v1/app/get_devs_list
2022.05.07 02:51:57 3: eufySecurity (getDevicesCB) - data: {"code":0,"msg":"Succeed.","data":[{"device_id":200345,"is_init_complete":false,"device_sn":"T8200N001234567","device_name":"Türklingel","device_model":"T8200","time_zone":"CET-1CEST,M3.5.0,M10.5.0/3","device_type":5,"device_channel":0,"station_sn":"T8200N001234567","schedule":"","schedulex":"","wifi_mac":"8C8512345678","main_sw_version":"2.338","main_hw_version":"P2", ... usw ...


Allerdings scheint er diese nicht parsen zu wollen. Meine Programmierkenntnisse reichen leider nicht aus, um das Modul um diesen DeviceType zu erweitern ... falls er überhaupt fehlt und nicht ich das Problem bin ...  ;)

Gerne unterstütze ich mit Tests und Logs und was auch immer. Fragt einfach und sagt, was ihr braucht, aber habt ggf. auch etwas Geduld mit mir.

Danke für eure Hilfe!

Tschau

Ednil


Roadrunner1106

Hi Ednil,

diese Türklingel mit Devicetype 5 ist im Code noch nicht berücksichtigt.

An den folgenden Stellen müsste eine 5 im Code eingefügt werden.

73_eufySecurity.pm

Zeile 459:  "1:eufyCamera"  => "^C:(1|7|8|9|14|15|30|31|33):.*",
Zeile 460: "2:eufyStation" => "^S:(0|30|31|33):.*" ==> Nur wenn die Klingel nicht mit einer HomeBase verbunden ist und eine eigene Station integriert hat!


73_eufyCamera.pm

Zeile 73: $hash->{Match}         = "^C:(1|7|8|9|14|15|30|31|33):.*";
Zeile 107: if ( $device_type ~~ [ 1, 4, 8, 9, 14, 15, 33 ] ) { ==> nur wenn die Klingel einen Akku hat

Du kann ja mal schreiben was du für deine Klingel angepasst hast und ab es dann funktioniert. Ich könnte die Änderungen dann ins Modul übernehmen.

Gruß Roadrunner

Meiner.Einer

#61
Hallo Roadrunner,

heute habe ich mal etwas testen können  8)

Ich betreibe die Klingel per Kabel und ohne separate Station. Einen Akku hat sie nicht.
Von deinen Vorschlägen habe ich also jeweils nur die erste Zeile umgesetzt.

Das führte dazu, dass tatsächlich nach einem "get Devices" auf dem eufySecurity-Device ein Gerät per AutoCreate angelegt wurde. Im Log steht dazu:

2022.05.12 13:05:01 3: eufySecurity eufySecurity (Callback getDevicess) - 1 Devices in get_dev_list
2022.05.12 13:05:01 3: eufySecurity (Callback getDevices) - camera: T8200N001234567
2022.05.12 13:05:01 3: eufySecurity (Fingerprint) - io_name: eufySecurity msg: C:5:T8200N001234567:UPDATE
2022.05.12 13:05:01 1: PERL WARNING: Smartmatch is experimental at ./FHEM/73_eufyCamera.pm line 109.
2022.05.12 13:05:01 3: eufyCamera (Parse) - eufy_device_type:5 device_sn:T8200N001234567 cmd:UPDATE
2022.05.12 13:05:01 3: eufyCamera eufyCamera_T8200N001234567 (Parse) - device_sn:T8200N001234567 nicht im Hash gefunden. Return undefined
2022.05.12 13:05:01 2: autocreate: define eufyCamera_T8200N001234567 eufyCamera 5 T8200N001234567
2022.05.12 13:05:01 3: eufyCamera (Define) - def:eufyCamera_T8200N001234567 eufyCamera 5 T8200N001234567
2022.05.12 13:05:01 3: eufyCamera (Define) - name:eufyCamera_T8200N001234567  device_type:5 device_sn:T8200N001234567
2022.05.12 13:05:01 3: eufyCamera (Define) - defined eufyCamera_T8200N001234567
2022.05.12 13:05:01 3: eufySecurity eufySecurity (getDevicesCB) - found:
2022.05.12 13:05:01 3: eufySecurity eufySecurity (getDevicesCB) - found: $VAR1 = undef;


Ein zweites "get Devices" führte, wie erwartet, dann zu:

2022.05.12 13:08:23 3: eufyCamera (Parse) - device_snT8200N001234567 found in the hash
2022.05.12 13:08:23 3: eufyCamera (Parse) - device_snT8200N001234567 start UPDATE


Soweit, so gut ...  ;D

Nach ein zwei Updates des neuen Gerätes sind einige Readings auch befüllt, allerdings mit teilweise "komischen" Inhalten.
Im Log sieht das so aus:

2022.05.12 13:11:35 3: eufyCamera eufyCamera_T8200N001234567 (get) - update camera
2022.05.12 13:11:35 3: eufyCamera eufyCamera_T8200N001234567 (get) - IOWrite message: 5:T8200N001234567:UPDATE_DEVICE
2022.05.12 13:11:35 3: eufySecurity eufySecurity (Write) - device_type:5 sn:T8200N001234567 cmd:UPDATE_DEVICE
2022.05.12 13:11:35 3: eufySecurity eufySecurity (isConnected) - allready connect to eufySecurity
2022.05.12 13:11:35 3: eufySecurity eufySecurity (getDevices) - data: {"device_sn": "T8200N001234567", "num": 100, "orderby": "", "page": 0, "station_sn": ""}
2022.05.12 13:11:35 3: eufySecurity eufySecurity (GetDevices) - url: https://security-app-eu.eufylife.com/v1/app/get_devs_list
2022.05.12 13:11:35 3: eufyCamera eufyCamera_T8200N001234567 (get) - IOWrite return:
2022.05.12 13:11:35 3: eufySecurity (getDevicesCB) - data: {"code":0,"msg":"Succeed.","data":[{"device_id":200345,"is_init_complete":false,"device_sn":"T8200N001234567","device_name":"Türklingel","device_model":"T8200","time_zone":"CET-1CEST,M3.5.0,M10.5.0/3","device_type":5,"device_channel":0,"station_sn":"T8200N001234567","schedule":"","schedulex":"","wifi_mac":"8C858012345","main_sw_version":"2.338","main_hw_version":"P2","sec_sw_version":"2.162","sec_hw_version":"P2",

... viele Werte, teilweise mehrfache ...

,"relate_devices":null}]}
2022.05.12 13:11:35 3: eufySecurity eufySecurity (Callback getDevicess) - 1 Devices in get_dev_list
2022.05.12 13:11:35 3: eufySecurity (Callback getDevices) - camera: T8200N001234567
2022.05.12 13:11:35 3: eufySecurity (Fingerprint) - io_name: eufySecurity msg: C:5:T8200N001234567:UPDATE
2022.05.12 13:11:35 3: eufyCamera (Fingerprint) - io_name: eufySecurity msg: C:5:T8200N001234567:UPDATE
2022.05.12 13:11:35 3: eufyCamera (Parse) - eufy_device_type:5 device_sn:T8200N001234567 cmd:UPDATE
2022.05.12 13:11:35 3: eufyCamera (Parse) - device_snT8200N001234567 found in the hash
2022.05.12 13:11:35 3: eufyCamera (Parse) - device_snT8200N001234567 start UPDATE
2022.05.12 13:11:35 3: eufyCamera eufyCamera_T8200N001234567 (Parse) - UPDATE Device eufyCamera_T8200N001234567 done
2022.05.12 13:11:35 3: eufySecurity eufySecurity (getDevicesCB) - found: ARRAY(0x9bca210)
2022.05.12 13:11:35 3: eufySecurity eufySecurity (getDevicesCB) - found: $VAR1 = [
  "eufyCamera_T8200N00234567"
2022.05.12 13:12:25 3: eufyCamera eufyCamera_T8200N001234567 (get) - update camera
2022.05.12 13:12:25 3: eufyCamera eufyCamera_T8200N001234567 (get) - IOWrite message: 5:T8200N001234567:UPDATE_DEVICE
2022.05.12 13:12:25 3: eufySecurity eufySecurity (Write) - device_type:5 sn:T8200N001234567 cmd:UPDATE_DEVICE
2022.05.12 13:12:25 3: eufySecurity eufySecurity (isConnected) - allready connect to eufySecurity
2022.05.12 13:12:25 3: eufySecurity eufySecurity (getDevices) - data: {"device_sn": "T8200N001234567", "num": 100, "orderby": "", "page": 0, "station_sn": ""}
2022.05.12 13:12:25 3: eufySecurity eufySecurity (GetDevices) - url: https://security-app-eu.eufylife.com/v1/app/get_devs_list
2022.05.12 13:12:28 3: eufyCamera eufyCamera_T8200N001234567 (get) - IOWrite return:
2022.05.12 13:12:28 3: eufySecurity (getDevicesCB) - data: {"code":0,"msg":"Succeed.","data":[{"device_id":200345,"is_init_complete":false,"device_sn":"T8200N001234567","device_name":"Türklingel","device_model":"T8200","time_zone":"CET-1CEST,M3.5.0,M10.5.0/3","device_type":5,"device_channel":0,"station_sn":"T8200N001234567","schedule":"","schedulex":"","wifi_mac":"8C858012345","main_sw_version":"2.338","main_hw_version":"P2","sec_sw_version":"2.162","sec_hw_version":"P2",
...
,"relate_devices":null}]}
2022.05.12 13:12:28 3: eufySecurity eufySecurity (Callback getDevicess) - 1 Devices in get_dev_list
2022.05.12 13:12:28 3: eufySecurity (Callback getDevices) - camera: T8200N001234567
2022.05.12 13:12:28 3: eufySecurity (Fingerprint) - io_name: eufySecurity msg: C:5:T8200N001234567:UPDATE
2022.05.12 13:12:28 3: eufyCamera (Fingerprint) - io_name: eufySecurity msg: C:5:T8200N001234567:UPDATE
2022.05.12 13:12:28 3: eufyCamera (Parse) - eufy_device_type:5 device_sn:T8200N001234567 cmd:UPDATE
2022.05.12 13:12:28 3: eufyCamera (Parse) - device_snT8200N001234567 found in the hash
2022.05.12 13:12:28 3: eufyCamera (Parse) - device_snT8200N001234567 start UPDATE
2022.05.12 13:12:28 3: eufyCamera eufyCamera_T8200N001234567 (Parse) - UPDATE Device eufyCamera_T8200N001234567 done
2022.05.12 13:12:28 3: eufySecurity eufySecurity (getDevicesCB) - found: ARRAY(0x9add578)
2022.05.12 13:12:28 3: eufySecurity eufySecurity (getDevicesCB) - found: $VAR1 = [
  "eufyCamera_T8200N001234567"


Hier wundert mich das Ende mit "$VAR1 = [ ... , wo die Klammer nie geschlossen wird. Eventuell ist das aber auch nur ein Darstellungsfehler.

Im Fhem gibt es nun folgende Werte (Auszüge):

Internals

eufySecurity_MSGCNT  3
eufySecurity_TIME 2022-05-12 13:12:28


Readings

create_time  2019-09-25 00:29:16  2022-05-12 13:08:23
device_channel  0  2022-05-12 13:08:23
device_model  T8200  2022-05-12 13:08:23
device_type  Doorbell 2022-05-12 13:08:23
event_num  20  2022-05-12 13:08:23
main_hw_version  P2  2022-05-12 13:08:23
main_sw_time 1970-01-01 01:00:00 2022-05-12 13:08:23
sec_sw_time  1970-01-01 01:00:00  2022-05-12 13:08:23
sec_sw_version  2.162  2022-05-12 13:08:23
state 1  2022-05-12 13:08:23
update_time  2022-05-12 12:45:12  2022-05-12 13:08:23


Attributes

alias  Türklingel     deleteattr
icon   it_camera     deleteattr
room eufySecurity  deleteattr


Willst du den Data-Block vielleicht mal vollständig haben? Vermutlich sind das ja Fehler beim Parsen. Ich würde auch mal durchschauen, ob eventuell weiter Infos dabei sind, die als Reading interessant wären.

Ich hoffe diese Ausführungen helfen schon, ein weiteres Modell in deine tollen Module zu integrieren. Gib Bescheid, wenn du mehr brauchst.  ;)

Tschau

Ednil

PS: Info am Rande -> Immer wenn man das eufySecurity-Device im Browser aufruft oder auch nur die Seite aktualisiert, steht im log "eufySecurity (Get) - cmd: ?" Da ist wohl im refresh noch irgendeine Abfrage oder so drin. Ich vermute, dass soll da nicht hin.

Meiner.Einer

Hi Roadrunner,

wie und wann werden die Daten der eufy- Devices eigentlich aktualisiert?
Werden Alarme usw. gepusht und damit die Readings erneuert oder geht nur Polling?
Falls Polling, ist das Polling Intervall einstellbar? Macht die API da ggf. Einschränkungen? Das kenne ich bei anderen Herstellern, dass die es nicht mögen, wenn man alle paar Minuten oder gar Sekunden den Status abruft ...

Danke für eine kleine Erklärung!

Tschau

Ednil

Roadrunner1106

Hi Ednil,

du musst die Doorbell auf jeden Fall dann noch in Zeile 460 in 73_eufySecurity.pm einbauen. Bestimmte Verbindungen laufen über eine Station und die müsste bei dir in der Kamera integriert sein. Früher waren das eben 2 Geräte (Kamera & Station). Dann müssten auch für deine Doorbell zwei Geräte in FHEM erzeugt werden. Vielleicht behebt das schon deine Probleme.

Zum Thema Aktualisierung. Da wird nur sehr wenig gepusht und das ist auch bei unterschiedlichen Devices nicht einheitlich. Man muss also zyklisch aktualisieren. Im Moment ist das nichts in den Modulen drin. Das müsste man über FHEM Bordmittel aktualisieren.

Gruß Roadrunner

Meiner.Einer

Hi,

ich habe die 5 in der 460 ergänzt und, nach einem Neustart ein "get Hubs" gestartet. Nun habe ich eine eufyStation ...  ???
Logauszug dazu:

2022.05.12 17:09:33 3: eufySecurity eufySecurity (Get) - cmd: Hubs
2022.05.12 17:09:33 3: eufySecurity eufySecurity (isConnected) - allready connect to eufySecurity
2022.05.12 17:09:33 3: eufySecurity eufySecurity (getHubs) - data: {"device_sn": "", "num": 100, "page": 0, "type": 0, "station_sn": ""}
2022.05.12 17:09:33 3: eufySecurity eufySecurity (GetHubs) - url: https://security-app-eu.eufylife.com/v1/app/get_hub_list
2022.05.12 17:09:38 3: eufySecurity eufySecurity (Callback getHubs) - data: {"code":0,"msg":"Succeed.","data":[{"station_id":81922,"station_sn":"T8200N001234567","station_name":"Türklingel","station_model":"T8200","time_zone":"CET-1CEST,M3.5.0,M10.5.0/3|1.1375","wifi_ssid":"","ip_addr":"172.16.233.255","wifi_mac":"8C8580123456","main_sw_version":"2.338","main_hw_version":"P2","sec_sw_version":"2.162","sec_hw_version":"P2",
...
,"update_time":1652367572,"status":1}],"sensor_info":null,"is_init_complete":false,"virtual_version":""}]}
2022.05.12 17:09:38 3: eufySecurity eufySecurity (Callback getHubs) - 1 Hubs in get_hub_list
2022.05.12 17:09:38 3: eufySecurity eufySecurity (Callback getHubs) - [0] json: HASH(0xa1c4660)
2022.05.12 17:09:38 3: eufySecurity (Fingerprint) - io_name: eufySecurity msg: S:5:T8200N001234567:UPDATE
2022.05.12 17:09:38 2: autocreate: define eufyStation_T8200N001234567 eufyStation 5 T8200N001234567
2022.05.12 17:09:38 3: eufyStation eufyStation_T8200N001234567 (Define) - defined
2022.05.12 17:09:38 3: eufySecurity eufySecurity (Callback getHubs) - found:



Ein "set connect" auf der neuen eufyStatin führt allerdings zu "Unknown Device Type 5." auf der Weboberfläche und keiner Reaktion im Log.  :'(

Ein "set disconnect" hingegen ruft im Log eine Reaktion hervor ...

2022.05.12 17:19:20 3: eufySecurity eufySecurity (Write) - device_type:5 sn:T8200N001234567 cmd:DISCONNECT_STATION
2022.05.12 17:19:20 3: eufySecurity  (sendMessage) - send message [f1f00000]
Can't call method "send" on an undefined value at ./FHEM/73_eufySecurity.pm line 1233.

... und schießt FHEM ab ...  :o

Ein testweises Setzen des GuardMode führt auch zum Absturz von FHEM

2022.05.12 17:29:16 3: eufyStation eufyStation_T8200N001234567 (set) -  set station to GuardMode HOME
2022.05.12 17:29:16 3: eufySecurity eufySecurity (Write) - device_type:5 sn:T8200N001234567 cmd:GUARD_MODE
2022.05.12 17:29:16 3: eufySecurity eufySecurity (Write) - set Guard Mode to 1()
2022.05.12 17:29:16 3: eufySecurity  (sendMessage) - send message [f1d00070d1000000585a5948c804840000000100ff0000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000]
Can't call method "send" on an undefined value at ./FHEM/73_eufySecurity.pm line 1233.

Es ist wohl wirklich die "send" Methode ...  ;)

Ein "get update" bringt im Log mehr Action:

2022.05.12 17:32:22 3: eufyStation eufyStation_T8200N001234567 (Get) - cmd: update
2022.05.12 17:32:22 3: eufyStation eufyStation_T8200N001234567 (get) - update station
2022.05.12 17:32:22 3: eufyStation eufyStation_T8200N001234567 (get) - IOWrite message: 5:T8200N001234567:UPDATE_HUB
2022.05.12 17:32:22 3: eufySecurity eufySecurity (Write) - device_type:5 sn:T8200N001234567 cmd:UPDATE_HUB
2022.05.12 17:32:22 3: eufySecurity eufySecurity (isConnected) - reconnect to eufySecurity
2022.05.12 17:32:22 3: eufySecurity eufySecurity (login2eufySecurity) - Login to eufySecurity
2022.05.12 17:32:22 3: eufySecurity eufySecurity (login2eufySecurity) - url: https://security-app-eu.eufylife.com/v1/passport/login
2022.05.12 17:32:23 3: eufySecurity (login2eufySecurity) - receive data: {"code":0,"msg":"ok","data":{"user_id":"yxcvb","email":"yxcvbn","nick_name":"FHEM","auth_token":"1234567","token_expires_at":1654961543,"avatar":"","invitation_code":"1234567","inviter_code":"","verify_code_url":"","mac_addr":"","domain":"security-app-eu.eufylife.com","ab_code":"DE","geo_key":"yxcvbnm","privilege":0,"phone":"","phone_code":"","params":null,"trust_list":[]}}
2022.05.12 17:32:23 3: eufySecurity eufySecurity (getHubs) - data: {"device_sn": "", "num": 100, "page": 0, "type": 0, "station_sn": "T8200N001234567"}
2022.05.12 17:32:23 3: eufySecurity eufySecurity (GetHubs) - url: https://security-app-eu.eufylife.com/v1/app/get_hub_list
2022.05.12 17:32:23 3: eufyStation eufyStation_T8200N001234567 (get) - IOWrite return:
2022.05.12 17:32:24 3: eufySecurity eufySecurity (Callback getHubs) - data: {"code":0,"msg":"Succeed.","data":[{"station_id":81922,"station_sn":"T8200N001234567","station_name":"Türklingel","station_model":"T8200","time_zone":"CET-1CEST,M3.5.0,M10.5.0/3|1.1375","wifi_ssid":"","ip_addr":"172.16.233.255","wifi_mac":"8C8580123456","main_sw_version":"2.338","main_hw_version":"P2","sec_sw_version":"2.162","sec_hw_version":"P2",01234567","device_name":"Türklingel","device_model":"T8200","time_zone":"CET-1CEST,M3.5.0,M10.5.0/3","device_type":5,"device_channel":0,"station_sn":"T8200N001234567","schedule":"","schedulex":"","wifi_mac":"8C858019726D","main_sw_version":"2.338","main_hw_version":"P2","sec_sw_version":"2.162","sec_hw_version":"P2","sector_id":0,"event_num":23,"wifi_ssid":"ES-BB","ip_addr":"172.16.233.255","volume":"A
...
,"is_init_complete":false,"virtual_version":""}]}
2022.05.12 17:32:24 3: eufySecurity eufySecurity (Callback getHubs) - 1 Hubs in get_hub_list
2022.05.12 17:32:24 3: eufySecurity eufySecurity (Callback getHubs) - [0] json: HASH(0xb7b1290)
2022.05.12 17:32:24 3: eufySecurity (Fingerprint) - io_name: eufySecurity msg: S:5:T8200N001234567:UPDATE
2022.05.12 17:32:24 3: eufySecurity: Unknown code S:5:T8200N001234567:UPDATE, help me!
2022.05.12 17:32:24 3: eufySecurity eufySecurity (Callback getHubs) - found:

... aber keine neuen Readings oder andere schöne Dinge ...
Könnte ja am "Unknown cod" liegen.

Auch ein "get DskKey" bringt keinen Absturz ... was auch immer der DskKey ist.  :-[

2022.05.12 17:35:14 3: eufyStation eufyStation_T8200N001234567 (Get) - cmd: DskKey
2022.05.12 17:35:14 3: eufyStation eufyStation_T8200N001234567 (get) -  DskKey
2022.05.12 17:35:14 3: eufyStation eufyStation_T8200N00123456 (get) - IOWrite message: 5:T8200N001234567:GET_DSK_KEY
2022.05.12 17:35:14 3: eufySecurity eufySecurity (Write) - device_type:5 sn:T8200N001234567 cmd:GET_DSK_KEY
2022.05.12 17:35:14 3: eufySecurity eufySecurity (isConnected) - allready connect to eufySecurity
2022.05.12 17:35:14 3: eufySecurity eufySecurity (getDskKey) - data: {"station_sns": ["T8200N001234567"]}
2022.05.12 17:35:14 3: eufySecurity eufySecurity (GetDskKey) - url: https://security-app-eu.eufylife.com/v1/app/equipment/get_dsk_keys
2022.05.12 17:35:14 3: eufySecurity eufySecurity (getDskKey) - data: {"code":0,"msg":"Succeed.","data":{"enabled":true,"dsk_keys":[{"station_sn":"T8200N001234567","dsk_key":"yxcvbnm","expiration":1652371514,"about_to_be_replaced":true}]}}
2022.05.12 17:35:14 3: eufyStation eufyStation_T8200N001234567 (get) - IOWrite return:


Damit ist die interne eufyStation da, aber noch instabil.

Jetzt noch die eigentliche Klingel neu erkennen lassen. (Ich lösche die automatisch generierten Devices vor jedem neuen Versuch immer raus.)

Ein "get Devices" im eufySecurity- Device erzeugt ein neues Gerät. Das hatten wir ja schon. Es scheinen auch keine anderen Meldungen im Log zu stehen, also spare ich mir das Einfügen.

Ein weiteres "get Devices" zeigt, dass er dieses hier nun schon kennt und nur noch ein Update macht. Dieses kann ich auch ohne Probleme direkt vom Klingeldevice auch anstoßen.

Leider kann ich bisher keine neuen Dinge finden. Eventuell ja, wenn das eufyStation-Device mit der 5 sauber läuft.

Brauchst du dafür noch weitere Angaben oder kann ich etwas testen?

Tschau

Ednil



Meiner.Einer

Hi Roadrunner,

ich habe ungeduldigerweise schon mal "rumgefummelt" und in der 73_eufyStation.pm in Zeile 119 auch einfach die 5 ergänzt.  ;)

Ein Versuch mit "set connect" brachte dann ein "mach update" ...

2022.05.12 18:25:59 3: eufyStation eufyStation_T8200N001234567 (set) -  Station device type 5
2022.05.12 18:25:59 3: eufyStation eufyStation_T8200N001234567 (set) -  station_ip: p2p_did: action_user_id:  device_type:5
2022.05.12 18:25:59 3: eufyStation eufyStation_T8200N001234567 (set) -  error connect. Some required values not available. Please execute <set stationname update> first.


Das "get update" endet aber wieder in einem "help me!" Da fehlt wohl mehr, als ich als Laie erkennen kann.  :-\

Aber vielleicht spart dir das einen Schritt beim Nachvollziehen.

Tschau

Ednil

Roadrunner1106

Das mit der Zeile 119 habe ich übersehen und war richtig. Muss wohl mal eine Checkliste mach wo überall ein neue Devicetype für eine Kamera und/oder Station eingefügt werden muss.

Beim Rest hast du dann wahrscheinlich nicht die richtige Reihenfolge eingehalten. Probier mal folgendes:

  • Connect des eufySecurity Gerätes
  • Update der Station
  • Connect der Station
  • set GuardMode der Station

Meiner.Einer

Das hatte ich schon gelesen und habe versucht es einzuhalten, aber, wie oben beschrieben, ist ja schon beim Update Schluss => Thema "help me:'(

Natürlich probiere ich es nachher nochmal ganz gewissenhaft. :)

Leider finde ich die "help me" Stelle nirgends im Quellcode. Ich kann es bis zum Fingerprinting  nachverfolgen, aber dann verliere ich den Faden.  :-\ Perl ist nicht so mein Ding...

Ein Tipp in die Richtung wäre auch hilfreich. Gerne stelle ich zum Schluss nochmal alle nötigen Anpassungen in einem Post zusammen.  8)


Meiner.Einer

Hi,

jetzt habe ich nochmal getestet. Dabei ist mir zum wiederholten Male aufgefallen, dass das eufySecurity Device disconnected war. Ein connect ging sofort und ohne Probleme. Gibt es hier einen Timeout?

Also "set eufySecurity connect" bringt mir eine FHEM-Seite mit nur einer 1 drauf. Das werte ich mal als 1=OK  ;) Der state ist jetzt auch connect und es gab nichts Auffälliges im Log.

Nun "get eufyStation_T8200N001234567 update". Im FHEM passiert einfach NICHTS. Im Log sehe ich wie er die Abfrage baut ("eufyStation eufyStation_T8200N001234567 (get) - IOWrite message:5:T8200N001234567:UPDATE_HUB"), abschickt und auch eine Antwort mit vielen Daten bekommt (Logauszüge identisch zu den oben).
Dann kommt aber die Abfrage "eufySecurity msg: S:5:T8200N001234567:UPDATE", worauf er mit einem "eufySecurity: Unknown code S:5:T8200N001234567:UPDATE, help me!" abbricht. Danach kommt nur noch ein "eufySecurity eufySecurity (Callback getHubs) - found:" und ja, der Doppelpunkt ist das letzte Lebenszeichen ...  :'(

Natürlich habe ich das Update mehrfach probiert, aber es kommt immer dasselbe Ergebnis. Aus "data" werden keine Readings.

Dadurch funktioniert ein "set eufyStation_T8200N001234567 connect" natürlich auch nicht, da "Some required values not available."

Mit dem Hinweis "Please execute <set stationname update> first." beißt sich dann die Katze in den Schwanz.  :(

Ideen? Hoffentlich! :D Danke!

Tschau

Ednil




Roadrunner1106

Hi Ednil,

die Meldung "help me" kommt nicht aus meinem Modul, sondern von FHEM intern. Bist du dir sicher das du den Devicetyp 5 bei 73_eufySecurity.pm in Zeile 460 eingetragen hast? Es sieht so aus, als wenn FHEM eine Nachricht nicht richtig Matchen, bzw. einem Modul zuordnen kann.

Dann schicke mir mal als PM deine Log vom "set eufySecurity connect bis zum set eufyStation_T8200N001234567 connect

Gruß Roadrunner

pruy

Kurze Frage, habe leider keine "aktuelle" Info gefunden:
Ist die repo url    https://github.com/Roadrunner1106/FHEM-eufySecurity   noch gültig?
Da gab es - zumindest auf dem master branch - seit 22 März 2022 keie Änderungen mehr.

Gruß
Rainer

Roadrunner1106

Hi,

das Repro ist noch aktuell.

Lieder ist die iOS-App so gut, dass ich noch kein Killer-Feature gefunden habe, was ich über FHEM machen möchte. Daher sind meine Aktivitäten auch etwas eingeschlafen.

Das einzige was ich noch dazu im Hinterkopf habe ist die Stummschaltung von Benachrichtigungen. z.B. die Kameras bis zu einer bestimmen Zeit stummschalten (15:45 Uhr) und nicht in festen Intervallen wie in der App und das man mehrere Kameras als Gruppe stummschalten kann. Das brauch ich manchmal wenn wir im Garten arbeiten, um dann nicht immer den Bewegungsalarm auszulösen. Über die App geht das auch, aber nicht so komfortabel.

Gruß Roadrunner

pruy

Danke, freut mich, dass der aktuelle Stand verfügbar ist.
(War eine Woche offline, daher erst jetzt eine Reaktion meinerseits.)

Leider ist eine Bedienung nur über Mobiltelefon sehr restriktiv.
z.B. Integration mit Präsenzlogik, die in fhem bereitsteht und Integration in die Darstellung sonstigen Daten meiner Sensoren im Haus
ist für mich ein ausreichender Grund für die Integration mit fhem.
Ich möchte nicht immer mit 2 Systemen arbeiten, um einen Gesamtüberblick zu haben.

Gerade bin damit kollidiert, dass MFA sich gegen eine Verbindung mit fhem gesperrt hat.
Das Einrichten eines 2. Accounts und dessen Registrierung als "Mitbewohner" war mein Lösungsansatz, um einen MFA freien Zugang zu konstruieren.
Bin aber an der Einrichtung als "Mitbewohner" gescheitert.

Gibt es irgendwo Infos zu  Protokoll und use cases, die unterstützt werden?

Auch wenn ich nicht wirklich viel Zeit investieren kann,
ich wäre durchaus bereit (reiner Eigennutz) an der fhem Integration mitzuwirken....

Gruß
Rainer


xschmidt

Hallo Roadrunner,
kannst Du noch auf die Kameras zugreifen? Bei mir kommt seit Ende Dezember nur noch ein 403 forbidden - ich vermute, dass Eufy die Security Richtlinien geändert hat. Eigentlich wollte ich FHEM nutzen, um bei erkannter Abwesenheit die Kameras automatisch scharf zu stellen. Hast Du eine Idee an welchen stellen wir drehen müssen um es wieder aktiv zu bekommen?
LG
Marco

Roadrunner1106

Hi,

bekomme den Fehler auch. Hatte schon länger nichts an den Modulen gemacht. Muss mal schauen woran das liegt. Das kann aber dauern.

Vielleicht findet ihr ja ein paar Infos dazu.

Gruß
Roadrunner

xschmidt

Hi,
ich hab folgendes gefunden:
https://www.npmjs.com/package/eufy-security-client
https://github.com/bropat/eufy-security-client/#readme

wenn ich es richtig deute, wurde die Kommunikation zur cloud auf V2 angehoben. Vermutlich hat Eufy hier was geändert. Ich hoffe die beiden Links helfen Dir schon mal weiter
LG
Marco

webdandy

Zitat von: xschmidt am 24 Januar 2023, 11:18:38
Hallo Roadrunner,
kannst Du noch auf die Kameras zugreifen? Bei mir kommt seit Ende Dezember nur noch ein 403 forbidden - ich vermute, dass Eufy die Security Richtlinien geändert hat. Eigentlich wollte ich FHEM nutzen, um bei erkannter Abwesenheit die Kameras automatisch scharf zu stellen. Hast Du eine Idee an welchen stellen wir drehen müssen um es wieder aktiv zu bekommen?
LG
Marco
Hallo Marco,
ich habe nun endlich eine Lösung gefunden, wie ich mit meiner FHEM Abwesenheitserkennung den Modus der Eufy Basisstation ändern kann.
Da ich eh schon eine Homebridge am Laufen habe, konnte ich dort wunderbar das Plugin "homebridge-eufy-security v2.1.4" installieren.
Somit kann man erstmal darüber auf die Eufy Basisstation und alle Kameras zugreifen.
Da das Plugin "homebridge-config-ui-x v4.50.2" eine API Schnittstille bereitstellt, kann man per curl dann den Modus wechseln.
Sprich, du erstellst dir ein notify/doif und als Aktion läuft der curl Befehl:
{system('/opt/fhem/FHEM/skripte/test-eufy-abwesend.sh&');}
In dem Skript steht dann der curl Befehl.

Viel Erfolg!

Grüße
Fabian

AB1970

Hallo Marco,
Sehr cool , über Homebridge kann ich schon Mal schalten.Könntest du den curl Befehl oder Script bitte hier Posten ( bitte Passwort entfernen nicht vergessen)
Dank dir Andreas

webdandy

Zitat von: AB1970 am 25 Februar 2023, 18:43:58
Hallo Marco,
Sehr cool , über Homebridge kann ich schon Mal schalten.Könntest du den curl Befehl oder Script bitte hier Posten ( bitte Passwort entfernen nicht vergessen)
Dank dir Andreas

Hallo Andreas,

den curl Befehl kannst Du dir ganz einfach selbst erstellen:

http://homebridge-ip:port/swagger

Dort dann einmal authentifizieren und gewünschte Befehle generieren lassen.

1. alle Geräte anzeigen lassen:
Return a list of Homebridge accessories
2. Wert des entsprechenden Gerätes ändern:
Set the value of an accessory characteristic.

Mein curl wird dir nichts bringen da die ID anders ist.
Wichtig sind die beiden Werte:
"characteristicType": "SecuritySystemTargetState",
  "value": "1"


Grüße
Fabian

AB1970


AB1970

Hi,
Wie hast du das Problem in den Griff bekommen, das das Bearer Token nur ein Tag gültig ist?
Hab ich da was übersehen?
Dank dir
Andreas

webdandy

Zitat von: AB1970 am 26 Februar 2023, 14:13:44
Hi,
Wie hast du das Problem in den Griff bekommen, das das Bearer Token nur ein Tag gültig ist?
Hab ich da was übersehen?
Dank dir
Andreas

Stimmt, sehe ich jetzt auch in meinen Logs  :(

AB1970

Also so klappt Home/Abwesend schalten bei mir, klar könnte schöner sein und PWD in SH Script sollte man nicht machen.
Aber für die Perl Variante, hab ich im Moment keine Zeit:  :-)

#! /bin/bash
echo "----------------------------------- Sending auth -------------------------------"
IN=$(curl -X 'POST' \
  'http://<your-ip>:8581/api/auth/login' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "username": "user name",
  "password": "password"
}')
echo  "----------------------------- Parsing result --------------------------------------"
IFS='"' read -ra ADDR <<< "$IN"

echo "Token: ${ADDR[3]}"

echo "------------------------------ Sending command  ------------------------------------"

curl -X 'PUT' \
  'http://your-ip>/api/accessories/<your-uniqueId>' \
  -H 'accept: */*' \
  -H "Authorization: Bearer ${ADDR[3]}" \
  -H 'Content-Type: application/json' \
  -d '{   
  "characteristicType": "SecuritySystemTargetState",
# 0 Anwesend 1 Abwesend
  "value": "1"
}'


Viele Grüße
Andreas

webdandy

Zitat von: AB1970 am 27 Februar 2023, 14:38:26
Also so klappt Home/Abwesend schalten bei mir, klar könnte schöner sein und PWD in SH Script sollte man nicht machen.
Aber für die Perl Variante, hab ich im Moment keine Zeit:  :-)

#! /bin/bash
echo "----------------------------------- Sending auth -------------------------------"
IN=$(curl -X 'POST' \
  'http://<your-ip>:8581/api/auth/login' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "username": "user name",
  "password": "password"
}')
echo  "----------------------------- Parsing result --------------------------------------"
IFS='"' read -ra ADDR <<< "$IN"

echo "Token: ${ADDR[3]}"

echo "------------------------------ Sending command  ------------------------------------"

curl -X 'PUT' \
  'http://your-ip>/api/accessories/<your-uniqueId>' \
  -H 'accept: */*' \
  -H "Authorization: Bearer ${ADDR[3]}" \
  -H 'Content-Type: application/json' \
  -d '{   
  "characteristicType": "SecuritySystemTargetState",
# 0 Anwesend 1 Abwesend
  "value": "1"
}'


Viele Grüße
Andreas
Hallo Andreas,

sehr cool, dass Du schon eine Lösung gefunden hast!  8)
Habe es natürlich gleich ausprobiert, doch erhalte ich noch eine Fehlermeldung:
----------------------------------- Sending auth -------------------------------
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   421  100   368  100    53   9684   1394 --:--:-- --:--:-- --:--:-- 11078
----------------------------- Parsing result --------------------------------------
eufy-test.sh: 12: eufy-test.sh: Syntax error: redirection unexpected


Zeile 12 habe ich ohne Änderung kopiert:
IFS='"' read -ra ADDR <<< "$IN"

Hast Du eine Idee?

Danke & Grüße
Fabian

AB1970


<<<


Ist nicht in allen Linux Shells oder Varianten supported. 

Bist du sicher , das du das Script in eine Bash Shell ausführst?

#!/bin/bash

webdandy

Zitat von: AB1970 am 27 Februar 2023, 16:39:46

<<<


Ist nicht in allen Linux Shells oder Varianten supported. 

Bist du sicher , das du das Script in eine Bash Shell ausführst?

#!/bin/bash



Ich würde mal behaupten ja, aber kann mich natürlich täuschen  ???

Wenn ich das Skript jetzt so starte, bekomme ich folgendes zurück:
root@SmartHome-Pi4 /opt/fhem/FHEM/skripte # /opt/fhem/FHEM/skripte/eufy-test.sh
----------------------------------- Sending auth -------------------------------
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   421  100   368  100    53   8177   1177 --:--:-- --:--:-- --:--:--  9790
----------------------------- Parsing result --------------------------------------
/opt/fhem/FHEM/skripte/eufy-test.sh: Zeile 12: -ra: Kommando nicht gefunden.
Token:
------------------------------ Sending command  ------------------------------------
{"statusCode":400,"message":"Unexpected token # in JSON at position 58","error":"Bad Request"}


AB1970

-ra sind parameter von read  , das ist echt merkwürdig
Könntest du mal das komplette Script posten ?
( ohne persönliche Infos bitte :-) )

webdandy

Na klar, ich bin ja dankbar über jede Hilfe  ;D

root@SmartHome-Pi4 ~ # cat /opt/fhem/FHEM/skripte/eufy-test.sh
#! /bin/bash
echo "----------------------------------- Sending auth -------------------------------"
IN=$(curl -k -X 'POST' \
  'https://192.168.1.6:8080/api/auth/login' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{
  "username": "admin",
  "password": "xxxxxxx"
}')
echo  "----------------------------- Parsing result --------------------------------------"
IFS='"'read -ra ADDR <<< "$IN"

echo "Token: ${ADDR[3]}"

echo "------------------------------ Sending command  ------------------------------------"

curl -k -X 'PUT' \
  'https://192.168.1.6:8080/api/accessories/991ef198b937653214498fb6e40c7cde7c3c88acccabb6adacf83a55b4905eb4' \
  -H 'accept: */*' \
  -H "Authorization: Bearer ${ADDR[3]}" \
  -H 'Content-Type: application/json' \
  -d '{   
  "characteristicType": "SecuritySystemTargetState",
# 0 Anwesend 1 Abwesend 2 Zeitplan
  "value": "2"
}'

AB1970


----------------------------------- Sending auth -------------------------------
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1418  100  1355  100    63  56458   2625 --:--:-- --:--:-- --:--:-- 59083
----------------------------- Parsing result --------------------------------------
./timeplan.sh: Zeile 12: -ra: Kommando nicht gefunden.
Token:
------------------------------ Sending command  ------------------------------------
{"statusCode":400,"message":"Unexpected token # in JSON at position 58","error":"Bad Request"} $ ./


dergleiche Fehler...

SH Scripts sind extrem empfindlich.

IFS='"'read -ra ADDR <<< "$IN

Da fehlt Leerzeichen zwischen '"' und read.
Ob die veränderten curl Parameter funktionieren musst du allerdings in deinem Setup ermitteln. Bei mir machen sie Probleme.
Ach ja, auch mal checken, ob irgendwo zusätzliche Leerzeichen zu finden sind.


webdandy

Super, danke. Wieso auch immer dies bei copy & paste passiert ist...

Die fehlermeldung mit "Unexpected token" konnte ich nun auch beseitigen.
Der Kommentar innerhalb des curls, hatte dies verursacht:
# 0 Anwesend 1 Abwesend

Jetzt funktioniert es. Tausend Dank  :)

Grüße
Fabian