Ring Video Doorbell

Begonnen von blueberry63, 23 August 2017, 11:06:28

Vorheriges Thema - Nächstes Thema

nhetzke

So:
# GATHERING DEVICES
devs = dict()
poll_device = None
devices = myring.devices()
for t in list(devices['stickup_cams'] + devices['doorbots']):
    devs[t.name] = t
    # all alerts can be recognized on all devices
    poll_device = t # take one device for polling

logger.info("Found " + str(len(devs)) + " devices.")

# START POLLING DEVICES


Weiterhin problematisch ist
if poll_device.check_alerts() and poll_device.alert:

Sowohl check_alerts() als auch alert sind so nicht mehr existieren. Keine Ahnung wie das jetzt in der aktuellen Implementierung umgesetzt wurde. Ich habe dazu ebenfalls ein Issue auf gemacht.
https://github.com/tchellomello/python-ring-doorbell/issues/201
Entwickler, Projekt und Qualitätsmanager
RasPi1b & FHEM & HM-CFG-USB

budy

#226
Moin,

ich hatte leider in den letzten Wochen so gar keine Zeit mich im das Ring-Projekt zu kümmen, aber ich habe jetzt wieder angefangen, mich in die aktuelle Lib einzuarbeiten - da hat sich leider einiges geändert. Teilweise gibt es Attribute nicht mehr und andere sind dazugekommen. Ich habe da auch was für Snapshots gesehen, aber das ist ehrlich gesagt nicht soo wichtig.

Ich habe auf alle Fälle die 2FA drin und kann mich - nachdem ich mal den 2FA Code bekommen und eingegeben habe anmelden. Anschließend kann sich die ring.py auch ohne Intervention anmelden, da dann ein gespeichertes Token vorliegt.

Jetzt muss ich mich mal durch den Rest des Codes wühlen und einige Dinge ändern - ist immer schwer, wenn der ursprüngliche Code nicht von eine selber ist, aber wahrscheinlich ist das auch bei eigenem Code so, wenn man nicht andauernd in der Sprache programmiert und ein Jahr raus war.  ;)

Gruß,
budy
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

Seppel

Toll, dass du da so viel Zeit reinsteckst. Danke!

budy

Moin,

Zitat von: nhetzke am 28 Februar 2020, 09:43:26
Weiterhin problematisch ist
if poll_device.check_alerts() and poll_device.alert:

Sowohl check_alerts() als auch alert sind so nicht mehr existieren. Keine Ahnung wie das jetzt in der aktuellen Implementierung umgesetzt wurde. Ich habe dazu ebenfalls ein Issue auf gemacht.
https://github.com/tchellomello/python-ring-doorbell/issues/201

ja, das habe ich auch gesehen, als ich mir die Attribute und Endpunkte im Master angeschaut habe. Meine Lösung ist erst mal so:

        for poll_device in tmp:
            myring.update_dings()
            logger.debug("Polling for events with '" + poll_device.name + "'.")
            logger.debug("Connection status '" + poll_device.connection_status + "'.")
            # logger.debug("Last URL: " + poll_device.recording_url(poll_device.last_recording_id))

            if myring.dings_data:
                dingsEvent = myring.dings_data[0]
                logger.debug("Dings: " + str(myring.dings_data))
                logger.debug("State: " + str(dingsEvent["state"]))
                logger.info("Alert detected at '" + poll_device.name + "'.")
                logger.debug("Alert detected at '" + poll_device.address + "' via '" + poll_device.name + "'.")
                alertDevice(poll_device,dingsEvent,str(dingsEvent["state"]))
            time.sleep(POLLS)


Jeder Alert löst einen dings-Update aus (was für eine schöne Bezeichnung! ;) ) In diesem Objekt stehen alle Daten zu einem Event und da hole ich  mir raus, ob es z.B. ein motion- oder ein ding-event ist.
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

budy

Ich habe im Git gerade die Version 1.0.6 meiner ring.py eingecheckt. Diese ist - bis auf das Downloaden der Videos, soweit funktional, als dass sie mit der Version der tchellomello/python-ring-doorbell aus deren Master-Branch funktioniert. Ebenso funktioniert die Siganlisierung von Bewegungen oder Klingeln an FHEM.

Die Sache mit dem Download der Videos muss ich mir nochmal genauer ansehen und deren Funktion ist aktuell auskommentiert.
Ach ja, die ring.py scheint Python3.7 zu benötigen, ob auch 3.6 geht, habe ich nicht getestet.

Gruß,
budy
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

bluemevo

Erst mal vielen Dank, dass du immer noch die Mühe machst das Script anzupassen :)

Leider läuft es noch nicht ganz rund

2020-02-29 22:50:19,131 - fhem_ring - DEBUG - []
2020-02-29 22:50:19,132 - fhem_ring - INFO - Found 0 devices.
Traceback (most recent call last):
  File "ring.py", line 263, in <module>
    getDeviceInfo(t)
NameError: name 't' is not defined

budy

Moin,

ja den Fehler hatte ich gestern auch, als ich die API mit meinem "FHEM-Ring-Account" abgefragt hatte. Ich habe eben eine Änderung eingecheckt, die das richtig macht. Wenn man ein "Nachbar" ist, dann werden freigebene Doorbots getrennt von den eigenen gemeldet.

Gruß,
budy


Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

bluemevo

#232
Danke, dass du es gleich gefixt hast.
Ich hab für den Raspberry bzw für dein Script einen Nachbarn angelegt.

Mir fällt gerade noch auf, obwohl ich eine Stick up Cam und ein Chime hab, wird vom Script nur 1 Gerät (die Doorbell) erkannt.
Liegt das wieder am Nachbarn oder womit kann das zusammen hängen?

*edit*
Die Stick-up Cam wird auch beim Account Inhaber nicht als Gerät abgefragt :(

budy

Nein - das lieg auch daran, wie die ganzen Geräte "reinkommen". Im Moment hole ich nur die Doorbots aus der API, da das Skript eigentlich auch nur für die Doorbots entwickelt wurde. Für eine komplette Verwaltung müsste man das Ganze auch komplett umbauen. Das fängt schon damit an, dass das Skript nur ein Device in FHEM bedient.

Ich habe zwar auch eine Chime, aber die muss ich nicht unbedingt in FHEM haben, da FHEM meine normale Glocke läutet, wenn es an der Ring klingelt. Wenn man das umstellen wollte, dann müsste man das ganze Konzept noch mal neu machen und ob ich da soviel Lust drauf habe, wo ich die anderen Geräte ja eh' nicht habe, weiß ich wirklich nicht... ;)

Gruß,
budy
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

bluemevo

Vor dem Umbau auf 2FA hats doch aber auch funktioniert mit der Stick-up Cam  ???

Kanns zwar grob lesen, was im Script passiert, aber es dann auch selbst schreiben zu können, dazu fehlt noch etwas :(

budy

Ich frage mich gerade wie, du das gemacht hast..., wenn du nur ein Objekt in FHEM anlegst. Theoretisch müsste man entweder mehrere Objekte anlegen und auch für jedes FHEM-Objekt eine eigene Instanz des ring.py Skripts starten... oder wie hast du das vorher gemacht?
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

bluemevo

Gut, die Frage stell ich mir auch gerade.
Ich hab eine zeitlang nur die Stickup für den Nachbaraccount freigegeben gehabt. Ich meine aber schon ,dass ich schon das ich schon von beiden Geräten gleichzeitig Events bekommen hab.
Wenn ich mir aber deine Änderungen anschauen, frag ich selbst gerade wie ich mit dem Script von beiden Ring Geräten gleichzeitig Events weitergehen konnte.


Ich habs im Moment zumindest soweit geschafft, dass ich ein Script hab für die Doorbell und eins für die Stickup-Cam.
Die beiden gleichzeitig laufen lassen, hatte heute schon mal geklappt, jetzt gerade aber irgendwie nicht mehr.

Seppel

Spitzenmäßig! Meine Doorbell2 ist nun in FHEM integriert und schaltet die Haustürbeleuchtung :-)
Vielen, vielen Dank an alle Beteiligten.

budy

Zitat von: bluemevo am 01 März 2020, 18:10:53
Gut, die Frage stell ich mir auch gerade.
Ich hab eine zeitlang nur die Stickup für den Nachbaraccount freigegeben gehabt. Ich meine aber schon ,dass ich schon das ich schon von beiden Geräten gleichzeitig Events bekommen hab.
Wenn ich mir aber deine Änderungen anschauen, frag ich selbst gerade wie ich mit dem Script von beiden Ring Geräten gleichzeitig Events weitergehen konnte.

Diese Frage habe ich mir schon gestellt, seit es immer mehr von diesen Ring-Geräten gibt... ;) Ich meine, dass die erste Version dieses Skripts, welches ich ja auch nur mal geforkt hatte, um da das Threadding einzubauen, nie dazu gedacht war, mit mehreren, verschiedenen Geräten umzugehen.

Zitat von: bluemevo am 01 März 2020, 18:10:53
Ich habs im Moment zumindest soweit geschafft, dass ich ein Script hab für die Doorbell und eins für die Stickup-Cam.
Die beiden gleichzeitig laufen lassen, hatte heute schon mal geklappt, jetzt gerade aber irgendwie nicht mehr.

Ja, das wäre eine - unschöne - Möglichkeit. Schöner wäre es, wenn das Objekt in FHEM, so wie die Homematic-Produkte Channels haben könnte, so wie Unterdevices. Dann wäre eine Ring-Installation quasi das Metaobjekt und die ganzen Ring-Teile Unterobjekte. Oder aber, man erhält ein Objekt mit echt vielen Readings und das Ring-Skript schiebt die Alerts da einfach rein. Das Problem ist nur z.B. dass die Videos auch immer in ihrer History an dem Ring-Device hängen...

Na ja, vielleicht schaue ich mir das mal an, auch wenn ich nur die Doorbell habe, also keine weiteren Stickup-Cams oder so.
Aktuell habe ich mein Skript schon mal soweit, dass ich die letzte CaptureURL herankomme... das habe ich aber noch nicht eingecheckt.


Gruß,
budy
Debian stretch, FHEM 5.9.
HM-CC-RT-DN, HM-ES-PMSw1-Pl, HM-LC-Dim1TPBU-FM, HMUARTLGW, HMLAN, HM-SEC-KEY, HM-SEC-RHS, HM-SEC-SC-2, HM-SEC-SCo, HM-SEC-SD-2, HM-OU-CFM-TW, div. HUEs, Wifilight, Ring Video Pro

bluemevo

Zitat von: budy am 01 März 2020, 18:58:39
Ja, das wäre eine - unschöne - Möglichkeit. Schöner wäre es, wenn das Objekt in FHEM, so wie die Homematic-Produkte Channels haben könnte, so wie Unterdevices. Dann wäre eine Ring-Installation quasi das Metaobjekt und die ganzen Ring-Teile Unterobjekte. Oder aber, man erhält ein Objekt mit echt vielen Readings und das Ring-Skript schiebt die Alerts da einfach rein. Das Problem ist nur z.B. dass die Videos auch immer in ihrer History an dem Ring-Device hängen...

Na ja, vielleicht schaue ich mir das mal an, auch wenn ich nur die Doorbell habe, also keine weiteren Stickup-Cams oder so.
Aktuell habe ich mein Skript schon mal soweit, dass ich die letzte CaptureURL herankomme... das habe ich aber noch nicht eingecheckt.
Ich glaub, ich wäre nicht der einzige, der dir dafür dankbar ist ;)
Ich nutze derzeit die Motion Events als Bewegungsmelder in meiner Haussteuerung. Das hatte bisher ganz gut geklappt.
Die Stickup-Cam macht das Licht vorm Haus an und der Motion Event der Doorbell soll dann die Beleuchtung des CodePads am Hauseingang einschalten.