fhempy: ring (Ring Doorbell, Chime, ...)

Begonnen von dominik, 04 Januar 2021, 12:37:13

Vorheriges Thema - Nächstes Thema

dominik

Hallo,

nachdem der alte Diskussionsthread (https://forum.fhem.de/index.php?topic=75754) für neue User umständlich zu lesen ist, hier ein neuer Thread zum aktuell funktionierenden Modul.

Aktuell habe ich ein ring Modul auf Basis von fhempy (Python Module in FHEM) gebaut. Das Modul kann mit Ring Doorbell, Chime, etc. verwendet werden. Dabei werden Alerts (Glocke, Bewegung) automatisch erkannt und im Reading gesetzt.
Die URLs zu den Streams aus der History werden ebenfalls angezeigt.

Was noch nicht funktioniert:
- Live Video
- Snapshot

Installation
Zuerst fhempy installieren: https://github.com/dominikkarall/fhempy#installation

Danach das fhempy ring Modul einrichten:
https://github.com/dominikkarall/fhempy/blob/master/FHEM/bindings/python/fhempy/lib/ring/README.md

Bitte für die weiteren Diskussion zu diesem Modul diesen Thread nutzen.

Ich selbst habe kein Ring Produkt. Habe nur auf Basis eines shared Doorbell das Modul entwickelt. Vielleicht kann noch jemand einen Screenshot der Readings hier posten, damit sich neue User was vorstellen können. Danke.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Manos

ZitatIch selbst habe kein Ring Produkt. Habe nur auf Basis eines shared Doorbell das Modul entwickelt.

Respekt! Vielen Dank Dominik!



Ein paar Bilder von meinem ring. Es funktioniert sehr gut, viel stabiler als das Modul das ich vorher hatte.

ring gibt als state zurueck: motion, ding, on_demand, connected, disconnected
alert_id und alert_kind zeigen die letzte Instanz
history_1 bis 5 zeigen die fuenf bevor.
last_recording_url hat den Link fuer das Video

alles was unter alert_* kommt ist der aktive Alarm. history_* ist nichts anderes als die History der Alarme. Daher muss der history_1 Eintrag eigentlich immer gleich dem alert_* Eintrag sein. Wenn du auf etwas reagieren willst, dann nimm alert oder state. History wird mit dem updateDeviceInterval aktualisiert, daher hat es eine Verzögerung zum Alert.

ich habe habe ein bisschen mit ReadingsVal($name, "state", "??") experimentiert, und folgendes festgestellt:
Die einzige Werte die man sieht, sind connected, oder disconnected  (die Verbindung zu Python existiert, oder nicht).
Aber 'state' reagiert fuer alle andere Ereignisse!
Obwohl, ich es kaum erkennen kann, (ich sehe nur "connected", wahrscheinlich weil ich dingPollInterval sehr kurz (2 Sek.) habe)
die Werte motion, ding, on_demand, connected werden auf meine SQL Datenbank geschrieben (siehe Bilder).

Da ich bereits ein Abo habe, kann ich nicht sagen ob es auch ohne Abo funktioniert.

HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

leachim200

Hallo
Ich verwende das Modul auch schon einige Zeit. Allerdings ohne Abo.
Ich bin mir nicht sicher ob das zu Problemen führt da bei mir ca alle 2 Tage die Verbindung kappt.

Manos

Zitat von: leachim200 am 04 Januar 2021, 14:12:28
Hallo
Ich verwende das Modul auch schon einige Zeit. Allerdings ohne Abo.
Ich bin mir nicht sicher ob das zu Problemen führt da bei mir ca alle 2 Tage die Verbindung kappt.
Hallo leachim,
Was hast du fuer dingPollInterval / deviceUpdateInterval ? Default oder sehr kurz?
Seitdem ich dingPollInterval 2  und deviceUpdateInterval 1800 benutze, habe ich ein Abbruch erst nach ein paar Wochen.

Vor fhempy, meine alte ring VerbindungsSW musste stündlich neu gestartet werden....
HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

dominik

Zitat von: leachim200 am 04 Januar 2021, 14:12:28
Hallo
Ich verwende das Modul auch schon einige Zeit. Allerdings ohne Abo.
Ich bin mir nicht sicher ob das zu Problemen führt da bei mir ca alle 2 Tage die Verbindung kappt.
Hilft in so einem Fall ein einfacher Neustart? Wenn ja, müsste ich diesen Fehlerfall im Code abfangen können. Was für eine Fehlermeldung erhältst du nach den 2 Tagen?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

pflock_y

Hallo zusammen,
Wird bei euch das Reading ,, battery_life" aktualisiert?
Bei mir erst nach einem Neustart des pybinding.

vg
pflock_y

dominik

Die Readings werden nur aktualisiert, wenn sich diese geändert haben. Da wird sich wahrscheinlich nur alle paar Stunden etwas ändern.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

pflock_y

Vor dem pybinding Neustart war der letzte Zeitstempel 31.12.202 07:xx.
heute Morgen meckerte die Ring App das der Akku bei 10% sei, im Modul standen noch 47%.
Nur deshalb bin ich drauf gestoßen.

dominik

Ok, das sollte nicht sein. Waren vielleicht im Log Fehler, so dass die Verbindung zum Ring Server generell nicht mehr funktioniert hat?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

pflock_y

wifi_signal_strength und alert_* wurden aktualisiert, auch die URL. Nur Batterie nicht.

dominik

Und beim Neustart wurde es dann auf 10% aktualisiert?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

pflock_y

Zitat von: dominik am 04 Januar 2021, 19:57:40
Und beim Neustart wurde es dann auf 10% aktualisiert?

jupp

ABER du hattest recht, das log sieht komisch aus. Ich häng es mal an.

Manos

Zitat von: pflock_y am 04 Januar 2021, 19:29:21
Vor dem pybinding Neustart war der letzte Zeitstempel 31.12.202 07:xx.
heute Morgen meckerte die Ring App das der Akku bei 10% sei, im Modul standen noch 47%.
Nur deshalb bin ich drauf gestoßen.

Ich kann den Fehler bestaetigen, bei mir blieb auch Battery_life seit dem 3en Jan. ohne Update.
HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

leachim200

Zitat von: dominik am 04 Januar 2021, 16:14:09
Hilft in so einem Fall ein einfacher Neustart? Wenn ja, müsste ich diesen Fehlerfall im Code abfangen können. Was für eine Fehlermeldung erhältst du nach den 2 Tagen?

ZitatHallo leachim,
Was hast du fuer dingPollInterval / deviceUpdateInterval ? Default oder sehr kurz?
Seitdem ich dingPollInterval 2  und deviceUpdateInterval 1800 benutze, habe ich ein Abbruch erst nach ein paar Wochen.

Guten Morgen
Ich werde es heute mit der 2 1800 Einstellung probieren das wird mich interessieren ob es dann verzögert wird. Ja genau ich hab auch die python variante verwendet bie der über die crontab immer ein stündlicher Neustart drinnen war.
Sobald es wieder passiert bekommst du dominik wieder das logfile :) und ich starte aktuelle die fhem instanz neu dann funktioniert es gibt es hier eine alternative?

JF Mennedy

Hallo Dominik,

in der aktuellen Version (0.1.15) lassen sich keine Set-Befehle mehr eingeben (set Passwort, set 2fa, set volume) Das PullDown Menu ist nicht da und ein "set ringdev volume 0" wird mit "Command not available for this device" quittiert.

Gruss Jan