FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: blueberry63 am 23 August 2017, 11:06:28

Titel: Ring Video Doorbell
Beitrag von: blueberry63 am 23 August 2017, 11:06:28
Hallo,

ich habe mit der Suchfunktion nichts gefunden, deshalb frage ich hier mal nach: werden die Produkte von RING schon unterstützt?

https://ring.com/videodoorbells (https://ring.com/videodoorbells)

Gruß
Blueberry63
Titel: Antw:Ring Video Doorbell
Beitrag von: gloob am 23 August 2017, 11:20:32
Sieht im Moment eher schlecht aus:

ZitatWIRD ES EINE PROGRAMMIER-SCHNITTSTELLE (API) GEBEN?

Wir prüfen das Angebot einer API. Derzeit kann die Verfügbarkeit nicht abgeschätzt werden.
Titel: Antw:Ring Video Doorbell
Beitrag von: _Markus_ am 04 Oktober 2017, 20:14:38
Hi,

ich habe auf meiner fritzbox einen tcpdump laufen, der die http requests der Klingel mitsnifft und dann einen entsprechenden Dummy schaltet. Wenn du Shell Scripte auf deiner wlan box laufen lassen kannst, gib bescheid, dann suche ich das Skript am Wochenende raus. Aber Achtung, das Script muss auf der wlan box laufen.

VG Markus
Titel: Antw:Ring Video Doorbell
Beitrag von: _Markus_ am 07 Oktober 2017, 11:29:03
Hi nochmal,

habe mir hierfür ein kleines python geschrieben, da es dort eine lib für Ring gibt.

Zur installation müssen zwei python libs installiert werden:
pip install git+https://github.com/tchellomello/python-ring-doorbell
pip install fhem


Dann die zwei angehängten Dateien runterladen und zB in /opt/fhem/bin ablegen.
In der ring.py muss noch der User und das Passwort des Ring Accounts eingetragen werden. Hier tuts auch ein Gast Account.

Die run_ring.sh sorgt für die Ausführung der ring.py als user "fhem" und wird bei mir via crontab regelmäßig angetriggert (sollte mal ein Fehler unterlaufen):
@reboot /opt/fhem/bin/run_ring.sh
@hourly /opt/fhem/bin/run_ring.sh


In fhem habe ich einen Dummy angelegt mit dem Namen "Ring" (Achtung, wenn der Name nicht passt, muss die ring.py angepasst werden).
Der Dummy hat ein "setList none motion ring" verpasst bekommen. Ein/zwei DOIFs sorgen dafür, dass der Status nach 5sec zurück gesetzt wird. Kann alles auch mit einem einzigen DOIF gelöst werden.

Viel Spaß damit!
Markus
Titel: Antw:Ring Video Doorbell
Beitrag von: Nighthawk am 13 Oktober 2017, 13:50:20
Hi Markus,

danke fürs Teilen!
Fehlt nur noch die Kamerafunktion (Livecam) in FHEM.

Gruß
Alex
Titel: Antw:Ring Video Doorbell
Beitrag von: Franz am 18 Dezember 2017, 16:55:27
Hallo,
ich habe eine Ring Doorbell geschenkt bekommen und versuche sie irgendwie einzubinden. Als Videogegensprechanlage mit fritz!fon zu koppeln geht nicht -laut Support-Auskunft wird da auch in Zukunft sich nichts ändern. So bin ich dann auf diesen Thread gestoßen: die Lösung von Markus hat mir sehr gut gefallen, aber mein Router (Fritzbox 7490) lässt keine Skripte zu. Ich habe jetzt versucht mit dem Modul FRITZBOX und SIP weiter zu kommen. Im Wiki ist ja eine Anwesenheitkennung mit notify beschrieben. Leider reichen meine Kenntnisse bei weitem nicht aus, um es wirklich zu realsieren, wenn es überhaupt möglich ist. Mein Ansatz:
define Test notify Fritzbox:mac_AA_BB_CC_DD_EE_FF:.*{
  if (ReadingsVal("Fritzbox", "mac_AA_BB_CC_DD_EE_FF", "inactive") ne "inactive")
  {
    fhem("set mySip call **610");
  }

Funktioniert aber natürlich nicht, weil ich nicht weiß, welches Signal von der Doorbell kommt. Wie gesagt, das ist über meinen Möglichkeiten, aber vielleicht hat da jemand noch eine Idee.
Alternativ könnte ich einen alten Wlan-Router aktivieren, auf dem dann das Shell-Skript von Markus laufen könnte.
Vielen Dank schon mal

Gruß und schöne Feiertage
Franz
Titel: Antw:Ring Video Doorbell
Beitrag von: Calle78 am 23 Dezember 2017, 18:00:24
Megacool, dass das geht. Leider bin ich auch einer der unglücklichen die die neue Firmware der Fritzbox brauchen und daher keine Python Scripts installieren kann. Aber wenns ein Script gibt, warum muss es auf der Fritzbox laufen und kann nicht auch auf dem Raspi gestartet werden? Bei der Installation flog wirklich ein Fehler aber das müsste sich doch lösen lassen?! Franz Ansatz wird glaube ich nicht so klappen.

ciao Carlo
Titel: Antw:Ring Video Doorbell
Beitrag von: Franz am 27 Dezember 2017, 22:08:52
Guten Abend,
also bei mir funktionierts:
ich habe das Skript von _Markus_ auf dem Raspi installiert, Dummy_Device "Ring" angelegt und siehe da es funktioniert: Also, Calle78 hat richtig vermutet.
Dank an Beide

Ein gutes 2018
Franz
Titel: Antw:Ring Video Doorbell
Beitrag von: Calle78 am 28 Dezember 2017, 10:40:01
Gratuliere Franz, ich habs nur vermutet, du hast es hinbekommen :). Kannst du mehr dazu schreiben? Auf Raspi mit Jessie? Ging es genau so wie oben beschrieben oder musstest du etwas anpassen?

ciao Carlo
Titel: Antw:Ring Video Doorbell
Beitrag von: Calle78 am 28 Dezember 2017, 19:02:32
So ich habs mal versucht auf meinem Raspi2 mit Jessie nachzustellen. Dafür musste ich neben den Steps von _Markus_ (gast angelegt, user in ring.py eingefügt etc...) noch diese 3 Steps machen:


Und so sehen mein Dummy und DOIF (zum Reset und PushBullet-Alert) aus:
define Ring dummy
attr Ring setList none motion ring

define RingCTRL DOIF ([Ring] eq "ring") (set Ring none,set PushB message Klingel | Ring) DOELSEIF ([Ring] eq "motion") (set Ring none,set PushB message Klingel | Bewegung)
attr RingCTRL wait 5


Was soll ich sagen? Es geht :) DANKE AN ALLE! Der Thread kann auf GELÖST gestellt werden.

ciao Carlo
Titel: Antw:Ring Video Doorbell
Beitrag von: Calle78 am 28 Dezember 2017, 20:43:01
Eine Kleinigkeit leider doch noch, der @reboot crontab scheint bei mir nicht ausgeführt zu werden (@hourly geht). Ich habs mal in einen eigenen Thread gelegt um es hier sauber zu halten: https://forum.fhem.de/index.php/topic,81774.0.html (https://forum.fhem.de/index.php/topic,81774.0.html)

ciao Carlo
Titel: Antw:Ring Video Doorbell
Beitrag von: Calle78 am 29 Dezember 2017, 21:04:31
hmmm, das Script stoppt bei mir nach einigen Minuten, evtl. hats auch mit einem getriggerten Event zu tun?! Läufts bei euch durch Franz, _Markus_?

ciao Carlo
Titel: Antw:Ring Video Doorbell
Beitrag von: DaRealDan am 30 Dezember 2017, 21:20:39
Hallo zusammen,

danke @Markus für seine Arbeit! Habe damit meine Ring Doorbell 2 perfekt eingebunden mit getriggerten Notifications etc.

Ich habe dein Script am Ende etwas geändert, weil es bei mir auch ab und an mit einer ErrorException abgebrochen ist. Meine Lösung dazu, einfach ein Exception-Catching. Wenn ein Fehler auftritt, einfach erneut versuchen. So läuft das Script jetzt seit rund 2 Tagen durchweg durch.

Dazu in der ring.py nach der Zeile "# START POLLING DEVICES" die Zeilen auskommentieren oder löschen und folgenden Code einfügen:

count = 1
while count <= 5:  # try 5 times
    try:
        # do_the_logic()
        devices = list(myring.stickup_cams + myring.chimes + myring.doorbells)
        for dev in devices: # RING lib version 0.1.5 and above
        #for dev in list(myring.doorbells): # RING version 0.1.4 and below
                start_new_thread(pollDevice, (dev,))

        while not thread_started:
            pass
        while num_threads > 0:
            time.sleep(3)
            if len(devices) != num_threads:
                exit
        pass

        # end do_the_logic()
        break
    except:
        logger.info("Exception occured. Retrying...")
        # wait 5 seconds for next retry
        time.sleep(5)
        # If trying 5th time and still error??
        # Just throw the error- we don't have anything to hide :)
        if count == 5:
            raise

        count += 1


Der vorher auskommentierte oder gelöschte Code findet sich nun in dem try Block zwischen # do_the_logic() und # end do_the_logic().

Vielleicht hilft das auch @Calle78.
Titel: Antw:Ring Video Doorbell
Beitrag von: Franz am 01 Januar 2018, 14:14:48
Hallo zusammen und ein gutes neues Jahr,
@Calle78 ja war bei mir genau so wie bei Dir
Ich habe die ring.py so verändert, wie @DaRealDan gepostet hat und seitdem läuft es wie geschmiert.
also nochmals vielen Dank an @Markus und @DaRealDan.
Eine Frage an @DaRealDan habe ich noch: Du schreibst, dass Du die Ring perfekt in FHEM eingebunden hast. Kann das mehr als auf ring und motion reagieren?
Unter https://github.com/tchellomello/python-ring-doorbell (https://github.com/tchellomello/python-ring-doorbell) gibt es so schöne Anregungen wie z.B. das letzte Video herunterladen. Leider habe ich wie gesagt keine Ahnung, wie ich das in Fhem verwirklichen kann.

Viele Grüße
Titel: Antw:Ring Video Doorbell
Beitrag von: _Markus_ am 01 Januar 2018, 18:10:50
@Franz und Calle: Die Variante mit tcpDump funktioniert nur auf dem Router, da nur dort der Verkehr direkt mitgeschnitten werden kann. Das hat den Vorteil, dass man nicht erst über die ring-Server (Amazon) muss.

Die Python Variante funktioniert überall.

LG
Titel: Antw:Ring Video Doorbell
Beitrag von: _Markus_ am 01 Januar 2018, 18:14:28
@Franz: Mit der Python Lib kann man auch die URL des letzten Videos abrufen. Außerdem kann man Werte auch schreiben (Lautstärke etc). Ich habe aber noch keinen Grund gefunden, warum ich das nicht über die App machen soll, sondern über FHEM - daher hatte ich es nicht implementiert ;)

Ich habe meine Variante noch erweitert, dass mehrere Ring-Devices mehrere FHEM-Devices (Ring_FrontDoor, Ring_Terrasse) schreiben, da ich mittlerweile noch eine zusätzliche stickup-cam habe. Lade ich hoch, sobald ich an nem vernünftigen Rechner bin.

LG Markus
Titel: Antw:Ring Video Doorbell
Beitrag von: _Markus_ am 01 Januar 2018, 18:44:04
Anbei meine aktuelle ring.py, die auch mit mehreren Devices zurechtkommt.
Es wird immer ein dummy-Device mit dem Namen "Ring_<Ring Name>" erwartet, wobei beim Namen der Klingel die Leerzeichen entfernt werden.
Bsp: Klingel heißt "Front Door", dann werden die Readings in das Device "Ring_FrontDoor" geschrieben.

defmod Ring_FrontDoor dummy
attr Ring_FrontDoor alias Kamera Haustür
attr Ring_FrontDoor devStateIcon none:it_camera@green motion:secur_alarm@red ring:secur_alarm@orange
attr Ring_FrontDoor event-on-change-reading .*
attr Ring_FrontDoor group Bewegungsmelder
attr Ring_FrontDoor room Sicherheit,System
attr Ring_FrontDoor setList none motion ring


Hier noch mein DOIF für jeweils ein FHEM-Ring-Device:
defmod Ring_FrontDoor_DOIF DOIF ([Ring_FrontDoor] eq "ring" and [FK_Haustuer] eq "closed" and [FK_Haustuer:state:sec] > 5) \
(set xmp3 playTone 0) (set Ring_FrontDoor none)\
\
DOELSEIF ([Ring_FrontDoor] eq "motion" and [FK_Haustuer] eq "closed" and [FK_Haustuer:state:sec] > 2) \
(set xmp3 playTone 48) (set Ring_FrontDoor none)\
\
DOELSE\
(set Ring_FrontDoor none)
attr Ring_FrontDoor_DOIF cmdState ring,none|motion,none|none
attr Ring_FrontDoor_DOIF disable 0
attr Ring_FrontDoor_DOIF do always
attr Ring_FrontDoor_DOIF event-on-change-reading .*
attr Ring_FrontDoor_DOIF group Bewegungsmelder
attr Ring_FrontDoor_DOIF icon helper_doif
attr Ring_FrontDoor_DOIF room Rules
attr Ring_FrontDoor_DOIF stateFormat wait_timer
attr Ring_FrontDoor_DOIF wait 0,5:0,5:0


VG Markus
Titel: Antw:Ring Video Doorbell
Beitrag von: DaRealDan am 02 Januar 2018, 23:02:10
Ich habe meine ring.py noch ein bisschen erweitert, damit ich auch die die Videos runtergeladen bekomme und einen Link zum letzten Video bekomme.

Einfach in der ring.py die if-Abfrage entsprechend anpassen - zwischen
if dev.check_alerts() and dev.alert:
und
i+=1

den Code mit folgendem Überschreiben


if dev.check_alerts() and dev.alert:
                srRing('lastAlertDeviceID ' + dev.id)
                srRing('lastAlertDeviceName ' + dev.name)
                if(dev.alert.get('kind') == 'ding'):
                    setRing('ring')
                    srRing('lastAlertType ring')
                    doorbell = myring.doorbells[0]
                    doorbell.recording_download(doorbell.history(limit=100,kind='ding')[0]['id'],filename='/opt/fhem/www/last_ding_video.mp$
                    srRing('lastDingVideo /opt/fhem/www/last_ding_video.mp4')
                elif(dev.alert.get('kind') == 'motion'):
                    setRing('motion')
                    srRing('lastAlertType motion')
                    doorbell = myring.doorbells[0]
                    doorbell.recording_download(doorbell.history(limit=100,kind='motion')[0]['id'],filename='/opt/fhem/www/last_motion_vide$
                    srRing('lastMotionVideo /opt/fhem/www/last_motion_video.mp4')
                #srRing('lastAlert ' + str(dev.alert))
                srRing('lastCaptureURL ' + doorbell.recording_url(doorbell.last_recording_id))
                time.sleep(1)


Achtet auf die richtigen Einrückungen damit alles läuft oder beigefügte ring.py.

Bitte beachten: Das basiert noch auf der alten ring.py nicht auf dem Update von gestern.

Anfang hatte ich Probleme, dass sich die ring.py nicht mit meinem FHEM verbinden wollte, was an meinem Custom Telnet-Port liegt. Wer auch einen anderen Telnet-Port hat, Zeile 30 ändern in


fh = fhem.Fhem(fhem_ip,port=XXXX)
Titel: Antw:Ring Video Doorbell
Beitrag von: Nighthawk am 03 Januar 2018, 07:20:57
Hallo Zusammen,

ich habe leider seit Kurzem einige Probleme mit dem Script.
1. eine Fehlermeldung:
Unhandled exception in thread started by <function pollDevice at 0x*********>
Traceback (most recent call last):
  File "/opt/fhem/bin/ring.py", line 86, in pollDevice
    srRing(dev.id+'_timezone ' + dev.timezone)
TypeError: coercing to Unicode: need string or buffer, NoneType found

Und 2. werden nur folgende Daten des DUmmys befüllt:
account
address
family
id
name
Titel: Antw:Ring Video Doorbell
Beitrag von: KernSani am 03 Januar 2018, 08:53:52
Ich grätsche mal kurz seitlich rein... Wollen wir dieses Thema weiter in ,,Anfängerfragen" bahandeln, oder würde es Sinn machen, dass der TE das z.B. nach Codesnippets verschiebt?
Titel: Antw:Ring Video Doorbell
Beitrag von: DaRealDan am 03 Januar 2018, 11:26:54
Evtl möchte @_Markus_ auch sein ring.py-Code ins Github legen damit er dort ggfs. die Arbeiten fortführen kann und ich kann dann meine Ergänzungen mit einchecken oder einen Fork anlegen?

Bei mir bricht Nachts noch die Verbindung weg bei der DSL-Zwangstrennung. Ich habe jetzt noch meinen @hourly Cronjob ergänzt um "pkill -9 -f ring.py". Damit wird jede Stunde erst der Prozess gekillt und dann neu gestartet. Etwas unkonventionell aber funktioniert. Ausfall dadurch max. 59 Minuten
Titel: Antw:Ring Video Doorbell
Beitrag von: _Markus_ am 03 Januar 2018, 20:44:28
Nabend zusammen,

ich habe wie vorgeschlagen alles auf https://github.com/markuzzi/ring-fhem (https://github.com/markuzzi/ring-fhem) abgelegt.
Die ring.py habe ich nochmal wesentlich überarbeitet - jetzt sollte sie stabiler sein.
Außerdem kommt sie jetzt auch besser mit mehreren Devices klar.

Viel Spaß :)
Markus
Titel: Antw:Ring Video Doorbell
Beitrag von: DaRealDan am 03 Januar 2018, 23:26:29
Super @_Markus_! Vielen Dank!
Titel: Antw:Ring Video Doorbell
Beitrag von: Nighthawk am 04 Januar 2018, 18:36:54
Hey Markus, danke, das neue Script läuft nun.
Das einzige was ich noch nicht hinbekommen habe, ist das Script als User fhem auszuführen, denn wenn ich deine run_ring aus dem Crontab ausführe, läuft die ring.py mit userrechten von pi. Dies verhindert leider den Videodownload und auch das Erstellen der Logdatei im Ordner /opt/fhem/. Hat da einer einen Tip wie ich es am gescheitesten anstelle?


Danke und Gruß
Alex
Titel: Antw:Ring Video Doorbell
Beitrag von: _Markus_ am 04 Januar 2018, 21:17:24
Hey Alex,

wenn Du dich also User fhem einloggst (sudo su - fhem) kannst du mit ,,crontab -e" die crontab des fhem users editieren. Dann wird's auch als User fhem ausgeführt mit den entsprechenden Rechten.

VG, Markus
Titel: Antw:Ring Video Doorbell
Beitrag von: Calle78 am 04 Januar 2018, 23:32:08
Klasse DaRealDan, danke auch an Markus und Franz. Habs so geändert und bin sicher das wirds fixen ;)

ciao Calle
Titel: Antw:Ring Video Doorbell
Beitrag von: Nighthawk am 05 Januar 2018, 06:59:57
Ah, doch so einfach, danke.
Titel: Antw:Ring Video Doorbell
Beitrag von: Eddy am 05 Januar 2018, 09:34:31
Hallo Leute,

ich überlege mir aktuell auch ring zuzulegen. Allerdings möchte ich damit auch das Bild oder Video in meine Tablet UI einbinden. Das ist mir aus diesem Thread nicht hervorgegangen, ob das geht.

Evtl. kann mich jemand aufklären.

Vielen Dank!
Eddy
Titel: Antw:Ring Video Doorbell
Beitrag von: DaRealDan am 05 Januar 2018, 13:20:45
Hallo @Eddy. Ich kann zu TabletUI wenig sagen. Aber die letzte Version der ring.py von Markus unterstützt den Download der letzten Video-Datei und gibt ebenfalls den Link zu einer mp4 Datei mit dem letzten Video. Evtl. kannst du ja eines davon in die Tablet UI einbinden?
Titel: Antw:Ring Video Doorbell
Beitrag von: Eddy am 05 Januar 2018, 14:08:02
Zitat von: DaRealDan am 05 Januar 2018, 13:20:45
Hallo @Eddy. Ich kann zu TabletUI wenig sagen. Aber die letzte Version der ring.py von Markus unterstützt den Download der letzten Video-Datei und gibt ebenfalls den Link zu einer mp4 Datei mit dem letzten Video. Evtl. kannst du ja eines davon in die Tablet UI einbinden?

Danke für die Info. Das hört sich so an als ob man kein "live" Bild bekommt oder? Denn auf dem Smartphone kann man ja durchaus ein "Live" Video über die Ring App bekommen.

Grüße
Titel: Antw:Ring Video Doorbell
Beitrag von: _Markus_ am 05 Januar 2018, 16:25:09
Hi Eddy,

nein live geht aktuell nicht. Allerdings werden auch die aktuellen sip Daten (Server, User, Passwort, Token) abgespeichert. Vlt kann man sich da einklinken. Habe ich aber noch nicht getestet. Du bräuchtest auf deinen rpi einen sip client.

VG, Markus
Titel: Antw:Ring Video Doorbell
Beitrag von: DaRealDan am 05 Januar 2018, 23:56:48
Ich werde mich nächste Woche mal dran versuchen mittels der Python Version die SIP Daten auszulesen und diese einem WebRTC zur Verfügung zu stellen. Ins Auge gefasst habe ich https://www.doubango.org/sipml5/
Titel: Antw:Ring Video Doorbell
Beitrag von: mrpohl88 am 28 Februar 2018, 10:22:24
Hallo,

gibt es ein Update? Funktioniert das Livebild?

Grüße
Titel: Antw:Ring Video Doorbell
Beitrag von: Nighthawk am 11 März 2018, 20:18:33
HalloZusammen,

ich habe neuerdings ein kleines Problem mit dem Script gehabt, es brach die kommunikation ab mit der Fehlermeldung:
Unexpected error:'ascii' codec can't encode character u'\xdf'
Nach genauerem Hinsehen, habe ich bemerkt dass das Script über das ß in Straße, im Reading Standort stolpert.
Die Kurzfristige Lösung war, den Standort dorthin zu ändern wo kein Sonderzeichen ist, wie aber bekommt man den Fehler sauber weg?

Danke und Gruß
Alex
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 16 März 2018, 19:25:36
Zitat von: Nighthawk am 11 März 2018, 20:18:33
HalloZusammen,

ich habe neuerdings ein kleines Problem mit dem Script gehabt, es brach die kommunikation ab mit der Fehlermeldung:
Unexpected error:'ascii' codec can't encode character u'\xdf'
Nach genauerem Hinsehen, habe ich bemerkt dass das Script über das ß in Straße, im Reading Standort stolpert.
Die Kurzfristige Lösung war, den Standort dorthin zu ändern wo kein Sonderzeichen ist, wie aber bekommt man den Fehler sauber weg?

Danke und Gruß
Alex

Ja, gibt es auf der github seite. Waren glaube ich 2 Zeilen, die geändert werden müssen.
Schau mal ob Du es so findest, ansonsten schaue ich morgen mal, bin gerade unterwegs.

Gruß,
Tobi
Titel: Antw:Ring Video Doorbell
Beitrag von: Nighthawk am 16 März 2018, 20:31:45
Danke für den Wink ;-)
Habe ich gefunden:

https://github.com/markuzzi/ring-fhem/pull/1/files (https://github.com/markuzzi/ring-fhem/pull/1/files)
Titel: Antw:Ring Video Doorbell
Beitrag von: theo69 am 23 Juni 2018, 00:19:47
Irgend welche updates bezüglich des Video Streams?
Titel: Antw:Ring Video Doorbell
Beitrag von: Daniel_fhem am 17 Juli 2018, 06:56:41
Hi. Gibt es schon Neuigkeiten bezüglich des Video Livestreams?
Zurzeit ist die Doorbell "relativ günstig" zu bekommen.

Sollte der Livestream funktionieren, so könnte man die Aufnahmen auch selbst machen und man wäre nicht auf ein Abo bei ring angewiesen oder?
Titel: Antw:Ring Video Doorbell
Beitrag von: Dr. Boris Neubert am 17 Juli 2018, 10:22:51
Hallo,

eine Frage bitte: braucht man den (kostenpflichten) Ring-Cloud-Zugang, um über das API an das letzte Video zu kommen?

Danke für eine Rückmeldung.
Boris
Titel: Antw:Ring Video Doorbell
Beitrag von: McUles am 05 September 2018, 22:39:39
Ja, brauchst du. Ohne Abo werden die Videos ja nicht gespeichert ;)
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 28 Oktober 2018, 12:26:55
Scheinbar gibt es mittlerweile die Option einen Livestream via api (https://github.com/jimhigson/ring-api) zu starten.

Hat da evtl. jemand schon was hinbekommen?
Das ganze via tabletui, oder aber auf dem TV auszugeben, wäre auf jd. Fall eine super Sache.

Gruß,
Tobi
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 28 Oktober 2018, 13:06:06
Leider noch nicht aber würde es cool finden wenn man dies in FHEM einbinden kann
Titel: Antw:Ring Video Doorbell
Beitrag von: Hembo am 29 Oktober 2018, 11:15:37
Hallo Leute,
ich habe ein kleine Problem mit der Verbindung zwischen Ring und FHEM. Ich habe die aktuellste Daten aus de GIT "installiert" und es wird auch alles ordnungsgemäß per cronjob gestartet. Leider bekomme ich keinen Zugriff auf FHEM. Im Log erscheint eine bestehende Verbindung zur Doorbell 1 aber die Übertragung zu FHEM funktioniert nicht "Broken pipe". Ich verwende FHEM in der aktuellsten Version mit Standard Ports 7072 wie es auch in der ring.py steht. Mein Telnet ist mit einem password gesichert, falls das was zur Sache tut. Ich habe das Passwort auch schon kurzzeitig entfernt, jedoch ebenfalls kein Erfolg.

Anbei der Log nach einem Start.

2018-10-29 11:00:04,319 - fhem_ring - INFO - Found 1 devices.
2018-10-29 11:00:04,742 - fhem_ring - INFO - Updating device data for device 'Tor' in FHEM...
2018-10-29 11:00:04,743 - fhem_ring - DEBUG - sending: setreading Ring_Tor account 15833XXX
2018-10-29 11:00:04,743 - fhem_ring - DEBUG - sending: setreading Ring_Tor address Am SXXXXXXXXXX, 47XXX Duisburg, Germany
2018-10-29 11:00:04,744 - fhem_ring - DEBUG - sending: setreading Ring_Tor family doorbots
2018-10-29 11:00:04,745 - fhem_ring - DEBUG - sending: setreading Ring_Tor id 0cae7dXXXXXX
2018-10-29 11:00:04,745 - fhem_ring - DEBUG - sending: setreading Ring_Tor name Tor
2018-10-29 11:00:04,746 - fhem_ring - DEBUG - sending: setreading Ring_Tor timezone Europe/Berlin
2018-10-29 11:00:04,747 - fhem_ring - ERROR - Unexpected error:[Errno 104] Connection reset by peer
2018-10-29 11:00:04,747 - fhem_ring - ERROR - Exception occured. Retrying...
2018-10-29 11:00:10,190 - fhem_ring - INFO - Updating device data for device 'Tor' in FHEM...
2018-10-29 11:00:10,191 - fhem_ring - DEBUG - sending: setreading Ring_Tor account 15833XXX
2018-10-29 11:00:10,192 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2018-10-29 11:00:10,193 - fhem_ring - ERROR - Exception occured. Retrying...
2018-10-29 11:00:15,661 - fhem_ring - INFO - Updating device data for device 'Tor' in FHEM...
2018-10-29 11:00:15,662 - fhem_ring - DEBUG - sending: setreading Ring_Tor account 15833XXX
2018-10-29 11:00:15,663 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2018-10-29 11:00:15,664 - fhem_ring - ERROR - Exception occured. Retrying...
2018-10-29 11:00:21,113 - fhem_ring - INFO - Updating device data for device 'Tor' in FHEM...
2018-10-29 11:00:21,114 - fhem_ring - DEBUG - sending: setreading Ring_Tor account 15833XXX
2018-10-29 11:00:21,114 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2018-10-29 11:00:21,115 - fhem_ring - ERROR - Exception occured. Retrying...
2018-10-29 11:00:26,559 - fhem_ring - INFO - Updating device data for device 'Tor' in FHEM...
2018-10-29 11:00:26,560 - fhem_ring - DEBUG - sending: setreading Ring_Tor account 15833XXX
2018-10-29 11:00:26,561 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2018-10-29 11:00:26,562 - fhem_ring - ERROR - Exception occured. Retrying...


Ich freue mich darauf, wenn mir geholfen werden kann. In Fhem das Dummy stimmt natürlich jedoch noch mit reading ???

Liebe Grüße aus Duisburg :)
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 23 November 2018, 10:13:09
Hallo zusammen,

kann mir jemand verraten, wie ich an das letzte Bild / Video komme, wenn Bewegung und / oder ein Betätigen der Klingel registriert wurde?

Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 01 Januar 2019, 21:50:48
Moin,

im Ring Objekt gibt es ein Reading namens lastCapturedURL, in der deer Link zum letzten aufgenommenen Video in der Ring-Cloud steckt. Das in einen weblink/iframe in FHEM einzubetten ist leicht, aber das Problem ist, dass sich die Definition eines weblink/iframe nach der Erstellung nicht mehr ändern lässt und dass ein temporärer weblink/iframe, wie ich gerade festgestellt haben, nicht in einen bestimmten Raum platzieren lässt.

Wenn man also nicht immer neue weblinks erzeugen und wieder löschen möchte und damit immer eine Meldung sehen möchte, dass der FHEM ungesicherte Änderungen hat, brauchts irgendwie eine andere Lösung.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: Nexium am 03 Januar 2019, 14:29:17
Hallo,

hab das ganze mal bei mir instaliert. Leider klappt es nicht. Gibt es die möglichkeit in einem Logfile zu schauen wo es hängt?
run.py wurde gestartet und der TelnetPort in FHEM ist auch auf.

Schonmal Danke
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 03 Januar 2019, 19:03:59
Zum einen erzeugt das ring.py ein Logfile namens ring.log im selben Verzeichnis, aus dem es gestartet wurde und zum anderen könntest du die ring.py ja auch selbst als User fhem starten, dann kriegst du sofort alle Ausgaben direkt geliefert:

sudo -u fhem phython ring.py


Ich habe das jetzt soweit hin, aber es gibt da ein kleines "Problem" mit der API und der ring PythnLib, wofür die Lib aber, glaube ich, nichts kann: wenn ein Event ausgelöst wird, egal ob motion oder ring, dann gibt das Reading lastCaptureURL immer nur die vorletzte (welches aber zum Zeitpunkt des Eintritts des Events noch die letzte) Video-URL zurück. Ich vermute mal, dass die URL für das aktuelle Video dann noch gar nicht zur Verfügung steht.

Ich habe dann mal versucht einfach die URL immer mit pollen zu lassen, aber die ändert sich bei jedem Aufruf und ich weiß auch nicht, ob Ring nicht irgendwann dichtmacht, wenn man alle 2s die Videos enumeriert...

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: Nexium am 04 Januar 2019, 08:52:43
Zitat von: budy am 03 Januar 2019, 19:03:59
Zum einen erzeugt das ring.py ein Logfile namens ring.log im selben Verzeichnis, aus dem es gestartet wurde und zum anderen könntest du die ring.py ja auch selbst als User fhem starten, dann kriegst du sofort alle Ausgaben direkt geliefert:

sudo -u fhem phython ring.py


Ich habe das jetzt soweit hin, aber es gibt da ein kleines "Problem" mit der API und der ring PythnLib, wofür die Lib aber, glaube ich, nichts kann: wenn ein Event ausgelöst wird, egal ob motion oder ring, dann gibt das Reading lastCaptureURL immer nur die vorletzte (welches aber zum Zeitpunkt des Eintritts des Events noch die letzte) Video-URL zurück. Ich vermute mal, dass die URL für das aktuelle Video dann noch gar nicht zur Verfügung steht.

Ich habe dann mal versucht einfach die URL immer mit pollen zu lassen, aber die ändert sich bei jedem Aufruf und ich weiß auch nicht, ob Ring nicht irgendwann dichtmacht, wenn man alle 2s die Videos enumeriert...

Gruß,
budy

Hallo danke für deine Antwort, wenn ich das mache bekomme ich folgende Ausgabe:

Traceback (most recent call last):
  File "ring.py", line 22, in <module>
    fh = logging.FileHandler('ring.log')
  File "/usr/lib/python2.7/logging/__init__.py", line 913, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python2.7/logging/__init__.py", line 943, in _open
    stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/opt/fhem/bin/ring.log'


Hab ich wohl was mit den Rechten durcheinander gebracht :/ Leider fällt mir das als Anfänger etwas schwer. Wie könnte ich das denn richtig stellen?

PS: gebe ich python ring.py ein kommt die gleiche Meldung, bei sudo python ring.py wird ers gestartet.
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 04 Januar 2019, 08:58:42
Moin Nexium,

für die Linux Kommandozeile:
sudo chown -R fhem: /opt/fhem/

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: Nexium am 04 Januar 2019, 09:43:52
Zitat von: Otto123 am 04 Januar 2019, 08:58:42
Moin Nexium,

für die Linux Kommandozeile:
sudo chown -R fhem: /opt/fhem/

Gruß Otto

Hey danke für deine Antwort wenn ich das mach ist es leider noch immer so :/

pi@raspberrypi:~ $ sudo chown -R fhem: /opt/fhem/
pi@raspberrypi:~ $ sudo -u fhem python ring.py
Traceback (most recent call last):
  File "ring.py", line 22, in <module>
    fh = logging.FileHandler('ring.log')
  File "/usr/lib/python2.7/logging/__init__.py", line 913, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python2.7/logging/__init__.py", line 943, in _open
    stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/home/pi/ring.log'
pi@raspberrypi:~ $


PS: Wenn ich im Ordner /opt/fhem/bin den Befehl sudo -u fhem python ring.py absetze geht es nach dem ich dein Befehl eingegeben habe. Danke schonmal dafür.
Nun hab ich aber noch immer das Problem wenn ich das Start Script ausführe wird mir die ring.py nicht gestartet.

So sieht die run_ring.sh aus

#!/bin/bash
#run_ring.sh
#make sure the process is always running.

process=ring.py

if ps ax | grep -v grep | grep $process > /dev/null
then
    echo "Process $process is still running."
    exit
else
    nohup su -c "python /opt/fhem/bin/ring.py" fhem >~/ncb 2>&1 &
    echo "Process $process started."
fi

exit
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 04 Januar 2019, 10:16:18
Naja, wenn Du mich fragst führst Du ring jedesmal anders aus:
IOError: [Errno 13] Permission denied: '/opt/fhem/bin/ring.log'
IOError: [Errno 13] Permission denied: '/home/pi/ring.log'

Mit dem Aufruf
sudo -u fhem phython ring.pyhängt es davon ab in welchem Verzeichnis Du gerade stehst!
Offenbar im ersten Fall standest Du in /opt/fhem/bin
Im zweiten Fall standest Du in /home/pi
Scheinbar liegt in beiden Verzeichnissen die Datei ring.py

Wenn Du es so machst
sudo -u fhem phython /opt/fhem/bin/ring.pystartest Du als User fhem das ring im Verzeichnis wo fhem auch schreiben darf.
Wobei das überhaupt nicht nötig ist, Du kannst zum Testen auch einfach alles im Verzeichnis /home/pi machen. Das Script braucht an sich keine speziellen Rechte.

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: Nexium am 04 Januar 2019, 12:09:43
Hallo Otto, ja du hattest recht. Hab es nun hin bekommen. Vielen dank für deine Hilfe.
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 11 Januar 2019, 22:23:56
Hallo zusammen,

ich hab da mal im github-Projekt von Markus ein paar Änderungen als Pull-Request erstellt. Jetzt sollten auch immer die korrekten Videos zu den Motion und Ring Alerts geladen werden.
Problem ist, das der Downloadlink erst nach erfolgreichem Upload in der history auftauchen.

Wer will kann es gerne einmal testen: https://github.com/markuzzi/ring-fhem/blob/ba177d13334ce804ced881265dfe1d882c6184d2/ring.py

LGe
Niels.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 03 Februar 2019, 18:28:36
Moin Niels,

ein Problem habe ich mit der neuen Version. Ich habe mit der Ring einen HM MP3-Tuergong ersetzt, bzw. lasse jetzt den HM Türgong durch das Ring-Ereignis triggern. Allerdings ist die Verzögerung in der neuen Version sehr lang, weil das Event offenbar erst dann an FHEM gemeldet wird, wenn die Prüfung auf das neue Video durch ist.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 06 Februar 2019, 14:09:20
Hallo budy,

ja, das kann aktuell tatsächlich passieren. Denke da müsste ich nochmal ran.
Vielleicht bis Ende der nächsten Woche.

LGe
Niels.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 06 Februar 2019, 19:56:59
Ich habe einfach nur die beiden Checks auf RING und MOTION aus den unteren IFs gezogen und ganz als erstes abgehandelt. Der Check auf neue Videos läuft dann hinterher - geht sehr gut!

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 07 Februar 2019, 09:26:11
HI zusammen,

also aktuell bekomme ich wieder den Umlaute-Fehler. Auch mit Änderung auf "nur" dev.address.

ERROR - Unexpected error:'ascii' codec can't encode character u'\xdf' in position 45: ordinal not in range(128)
Hat jemand noch eine Idee?

Gruß,
Tobi

P.S.: Gibt es etwas neues zur Einbindung eines live Bildes oder aber Abruf eines Bildes bei "Motion"(evtl. gibt es da ja Möglichkeiten durch die neuen Vorschaubilder?)?
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 09 Februar 2019, 21:17:35
Hast du auch wirklich die Version aus dem PR eingesetzt, oder die Original-Version genommen?

Was das Livebild angeht, hat sich da nichts getan - dazu müsste sicherlich auch die zugrunde liegende LIB aktualisiert werden, was aber nicht der Fall ist. Mir ist auch nicht ganz klar, was du dir davon versprichst... wenn es irgendwie schnell gehen muss, ist die Ring App auf deinem Phone sicherlich die Variante der Wahl.

...allerdings klingelt's bei uns auch eher selten, so das sich mit der aktuellen Situation sehr gut leben kann, was das Handling der Videos angeht.
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 10 Februar 2019, 11:12:46
Zitat von: budy am 09 Februar 2019, 21:17:35
Hast du auch wirklich die Version aus dem PR eingesetzt, oder die Original-Version genommen?
Ich habe sowohl die 1. original Version genommen, als auch die Dateien aus dem pull request. Jedes mal als raw komplett kopiert und neue Datei dafür angelegt.

Kann es sein, dass es an der Ring Funktion liegt, die importiert wird?

gruß,
Tobi
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 13 Februar 2019, 19:22:15
Stimmt... da hat Niels den Fehler aus dem Orignal-Skript mit übernommen. Der Fix müsste analog zum PR#1 sein - allerdings wohl für alle Vorkommen, in denen Sonderzeichen auftreten können. Der PR#1 löst das ja nur für den Namen.

Im Grunde genommen muss jedes mal im Skript:

srRing('XXXXXX ' + str(dev.address), dev)

durch

srRing('XXXXXX ' + dev.address, dev)

ersetzt werden - dann dürften diese Fehler nicht mehr auftreten.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 13 Februar 2019, 21:21:26
Hi,
Ja stimmt. Ich checke immer korrekt vom Master aus. ;D
Die problematische Stelle ist glaube ich die wo die Adresse drin steht.
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 17 Februar 2019, 11:44:42
Hallo zusammen,

ich probiere mich seit einigen Tagen an der Ring. Soweit so gut. Zufrieden bin ich noch nicht, aber ich gebe nicht auf.  :-\

jetzt hab ich im log folgendes:


2019-02-17 10:38:09,968 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-02-17 10:38:12,577 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-02-17 10:38:15,448 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-02-17 10:38:18,023 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-02-17 10:38:20,557 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-02-17 10:38:23,137 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-02-17 10:38:26,132 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-02-17 10:38:26,133 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account xxxxxxxxxx
2019-02-17 10:38:26,134 - fhem_ring - ERROR - Unexpected error:[Errno 104] Connection reset by peer
2019-02-17 10:38:26,135 - fhem_ring - ERROR - Exception occured. Retrying...
2019-02-17 10:38:31,549 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-02-17 10:38:31,550 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account xxxxxxxxxx
2019-02-17 10:38:31,551 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2019-02-17 10:38:31,552 - fhem_ring - ERROR - Exception occured. Retrying...
2019-02-17 10:38:36,992 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-02-17 10:38:36,993 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account xxxxxxxxxx
2019-02-17 10:38:36,994 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2019-02-17 10:38:36,994 - fhem_ring - ERROR - Exception occured. Retrying...
2019-02-17 10:38:42,398 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-02-17 10:38:42,399 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account xxxxxxxxx
2019-02-17 10:38:42,399 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2019-02-17 10:38:42,400 - fhem_ring - ERROR - Exception occured. Retrying...
2019-02-17 10:38:48,120 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-02-17 10:38:48,121 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account xxxxxxxx
2019-02-17 10:38:48,122 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2019-02-17 10:38:48,123 - fhem_ring - ERROR - Exception occured. Retrying...
2019-02-17 11:30:40,382 - fhem_ring - INFO - Found 1 devices.


nun sagt mir
2019-02-17 10:38:26,134 - fhem_ring - ERROR - Unexpected error:[Errno 104] Connection reset by peer
das der Server die Verbindung abgelehnt hat.

Ich kann auch mit erneutem starten nichts mehr auslesen.

Die Frage ist warum?
vielleicht kann mir einer von euch auf die Sprünge helfen.

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 18 Februar 2019, 19:28:38
Moin pflock_y,

fangen wir mal am Anfang an. Geht es denn überhaupt mal, sprich ist der Telnetport 7072 auf deinem FHEM überhaupt offen? Wenn das der Fall ist, dann wäre mal zu klären, ob dein FHEM vielleicht zwischendurch mal neu startet, das würde dann den Socket killen und das ring.py würde sich nicht wieder verbinden können.

...allerdings würde es sich dann bei einem Neustart der ring.py wieder verbinden. Was sagt denn das ring.log welches da normalerweise immer geschrieben wird?

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 23 Februar 2019, 10:35:19
Hallo budy,

sorry für die späte Antwort, bei dem ganzen rum probieren hab ich meinen Pi komplett geschrotet. frei nach dem Motto:
Think Before You Type,

Jetzt läuft soweit wieder alles, also kann es weiter gehen, nur diesmal hab ich ein Vollständiges Image und nicht nur das FHEM Backup.  ???

Telnet Port 7072 ist offen
FHEM startet nur einmal die Woche, Sonntag 23:55, neu. Da hab ich ne DOIF eingerichtet, mir läuft immer der Speicher voll.
Das log steht im vorherigen post. Anscheinend läuft die ring.py knapp ne stunde und bricht wieder ab.

Ich werde es alles noch einmal auf dem nun frischen Pi,  >:( , ausprobieren.
schon wir mal.

grüße
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 07 März 2019, 18:40:46
Moin Niels,

nachdem ich jetzt mal wieder ein wenig Zeit habe und ich deine Version ein paar Wochen im Einsatz habe, stelle ich fest, dass die signalisierung so nicht funktioniert. Selbst mit meiner Änderung, den FHEM gleich zu benachrichtigen, sobald sich da ein Motion- oder Ding-Event meldet funktioniert es nur halb, da einem Ding-Event - zumindest bei mir, immer ein Motion-Event vorrausgeht.

...es sei denn, jemand kriegt es hin auf den Klingelknopf zu drücken, ohne dass ihn die Kamera vorher erfasst hätte. Man müsste das Ganze umschreiben, so dass die Routine, die auf die Fertigstellung des neuen Videos wartet als Thread läuft, damit man weiterhin auf Events, wie eben ein Ding-Event, reagieren kann.
Ich hatte für meinen LD382a mal so etwas programmiert, weil das Dimmen in FHEM per Wifilight/Perl für mich nicht ruckelfrei genug ging. Ich glaube, da schaue ich nochmal rein und werde mal sehen, ob ich das nicht auch so was für die Ring hinbekomme.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 09 März 2019, 14:42:23
Moin,

ich habe mir mal das repo von Markus geklont und das ring.py ein wenig weiter entwickelt. Was mich vor allem gestört hatte, war ja die Tatsache, dass die Suche nach dem nächsten Video nicht im Hintergrund lief und dadurch auch nicht mehr auf Folge-Ergeignisse der Ring reagiert werden konnte. Ich habe die Suche nach dem nächsten Video zum einen in eine threadded function ausgelagert, so dass diese mehrfach und unabhängig aufgerufen werden kann. Zum anderen habe ich dafür gesorgt, dass die Alerts direkt an FHEM gemeldet werden, was bei mir insofern wichtig ist, als dass ich im Haus einige HM MP3 Türgongs installiert habe, welche ansonsten erst nach dem Ende der Videosuche geklinget haben, da erst dann das Ding-Event an FHEM gemeldet wurde.

Außerdem habe ich - glaube ich zumindest, die Funktion so gekapselt, dass sie auch mit mehreren Ring-Devices gleichzeitig zurecht kommen müsste, kann das aber mangels Masse nicht testen. Für Interessenten, hier der Link zu meinem Repo auf GitHub:

https://github.com/budachst/ring-fhem/blob/master/ring.py (https://github.com/budachst/ring-fhem/blob/master/ring.py)

Have fun,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 12 März 2019, 16:38:26
Hallo, guten Tag

Ich bin seit Samstag auch Besitzer einer Türklingel. Ich habe alles Installiert nach den Anleitungen in diesem Beitrag. Habe auch hoffentlich alle Berechtigungen gesetzt... allerdings ohne Erfolg. Es wird keine Logdatei geschrieben. Starten händig der ring.py geht, allerdings kommt die Meldung, dass das @ in der Mailadresse einen Fehler verursacht. In Fhem erfolgt weder bei Bewegung noch Ring ein Event.

Wo kann ich ansetzen, um den Fehler zu finden? Welche Informationen werden benötigt um ggf. den Fehler zu suchen?


Viele Grüße Marko
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 12 März 2019, 19:24:57
Moin Marko,

ist schwer zu sagen, aber hast du auch darauf geachtet, die korrekten Hochkommata zu benutzen? Manchmal, wenn man was aus dem Browser kopiert, werden die surch Zeichen ersetzt, die zwar ähnlich, aber doch andere sind. Die Konfig für den Ring-Account muss ja so aussehen:


# CONFIG
ring_user = 'ringuser'
ring_pass = 'ringpass'


Da sollte Python nicht wegen des @-Zeichens meckern. Tut er das, dann kann sich die ring.py nicht einloggen und es kommen logischerweise auch keine Events beim FHEM an.

Wenn du die ring.py direkt im Terminal  startest, dann gibt es auch kein Log, da alles ins Terminal geloggt wird...

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 12 März 2019, 20:25:42
Hallo Budy

Danke für Deine Antwort und Hilfe. Das mit den Hochkommata habe ich korrigiert. Die folgenden 2 Meldungen erhalte ich nun:

pi@FHEMPi:/opt/fhem/bin $ ./ring.py
Traceback (most recent call last):
  File "./ring.py", line 23, in <module>
    fh = logging.FileHandler('ring.log')
  File "/usr/lib/python2.7/logging/__init__.py", line 913, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python2.7/logging/__init__.py", line 943, in _open
    stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/opt/fhem/bin/ring.log'


pi@FHEMPi:/opt/fhem/bin $ sudo -u fhem python ring.py
Traceback (most recent call last):
  File "ring.py", line 2, in <module>
    from ring_doorbell import Ring
ImportError: No module named ring_doorbell
pi@FHEMPi:/opt/fhem/bin $
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 12 März 2019, 21:16:53
Die Voraussetzung hast Du geschaffen? Meine Notiz dazu:
###Ring Video Doorbell
# Quelle https://forum.fhem.de/index.php/topic,75754.0.html
# Voraussetzungen im System schaffen
apt-get update
# Ich bin nicht sicher ob man git braucht
apt-get python-pip git

pip install git+https://github.com/tchellomello/python-ring-doorbell
# python fhem API https://github.com/domschl/python-fhem
pip install fhem
pip list # installed Packages


Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 12 März 2019, 23:27:02
Hi zusammen,

sieht so aus als gäbe es neue Funktionen:

https://buildmedia.readthedocs.org/media/pdf/python-ring-doorbell/latest/python-ring-doorbell.pdf

So sollte es möglich sein einen Snapshot zu erhalten, oder sehe ich das falsch?

Gruß,
Tobi
Titel: Antw:Ring Video Doorbell
Beitrag von: Amenophis86 am 13 März 2019, 07:29:41
Da wir inzwischen über die Anfängerfrage hinaus sind würde ich vorschlagen das Thema zu verschieben? Gibt es Gründe dagegen? Aus meiner Sicht wäre Codeschnipsel das richtige Board so lange es noch kein Modul ist.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 13 März 2019, 08:45:14
Keine Einwände von mir...  ;)
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 13 März 2019, 09:03:44
Moin,

Zitat von: onkel-tobi am 12 März 2019, 23:27:02
Hi zusammen,

sieht so aus als gäbe es neue Funktionen:

https://buildmedia.readthedocs.org/media/pdf/python-ring-doorbell/latest/python-ring-doorbell.pdf

So sollte es möglich sein einen Snapshot zu erhalten, oder sehe ich das falsch?

hmm... ich habe mir das Repo gerade mal angesehen und sehe keine neue Funktionalität. Die Snapshot-Funtion war schon in der 0.23 drin, welche ich seit Januar einsetze. Ich schau mal, ob ich die irgendwie integriert bekomme.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 13 März 2019, 22:15:18
Zitat von: budy am 13 März 2019, 09:03:44
Ich schau mal, ob ich die irgendwie integriert bekomme.
Das wäre cool.

Ich bekomme allerdings aktuell auch bei deiner Version folgenden Fehler:
Traceback (most recent call last):
  File "ring.py", line 203, in <module>
    for k, d in devs.items(): getDeviceInfo(d)
  File "ring.py", line 89, in getDeviceInfo
    srRing('address ' + dev.address, dev)
  File "ring.py", line 79, in srRing
    sendFhem('setreading Ring_' + dev.name.replace(" ","") + ' ' + str)
  File "ring.py", line 60, in sendFhem
    fh.send_cmd(str)
  File "/usr/local/lib/python2.7/dist-packages/fhem/__init__.py", line 304, in send_cmd
    self.log.debug("Sending: {}".format(msg))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xdf' in position 44: ordinal not in range(128)

Zeile 80 habe ich schon entsprechend geändert (s. https://github.com/markuzzi/ring-fhem/pull/1/files)

Hast Du  noch eine Idee?

Danke & Gruß,
Tobi
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 14 März 2019, 10:24:59
Moin Tobi,

wundert mich ein wenig, denn der Code in meinem Repo konvertiert alle diese Daten in Strings. Kann es sein, dass du da noch eine ältere Version benutzt, denn der Code in Zeile 89 sieht in meiner ring.py so aus:

srRing('address ' + str(dev.address), dev)

Was diese Snapshots angeht, da komme ich aktuell nicht recht weiter... immer wenn ich versuche auf die Funtion get_snapshot() für mein Ring-Objekt zuzugreifen, bekomme ich einen Error 401 zurück und ich bin noch nicht durch die ganze Lib durchgestiegen. Andere Funktionen aus dem Objekt gehen aber ganz normal, wie z.B. der Videodownload.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 14 März 2019, 13:03:23
Zitat von: budy am 14 März 2019, 10:24:59
wundert mich ein wenig
Mich auch...

Mit deinem code ohne Anpassung bekomme ich:
pi@pi:2019-03-14 12:59:55,312 - fhem_ring - INFO - Found 1 devices.
2019-03-14 12:59:55,755 - fhem_ring - INFO - Updating device data for device 'Klingel' in FHEM...
2019-03-14 12:59:55,756 - fhem_ring - DEBUG - sending: setreading Ring_Klingel account 4903809
2019-03-14 12:59:55,758 - fhem_ring - ERROR - Unexpected error:'ascii' codec can't encode character u'\xdf' in position 12: ordinal not in range(128)
2019-03-14 12:59:55,759 - fhem_ring - ERROR - Exception occured. Retrying...
Traceback (most recent call last):
  File "/opt/fhem/bin/ring.py", line 151, in <module>
    for k, d in devs.items(): getDeviceInfo(d)
  File "/opt/fhem/bin/ring.py", line 80, in getDeviceInfo
    srRing('address ' + str(dev.address), dev)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xdf' in position 12: ordinal not in range(128)


Gruß,
Tobi

Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 14 März 2019, 16:05:59
Moin Tobi,

stimmt, da war ich auf dem Holzweg... da musste ja gerade das str weg, weil dev.address bereits Unicode ist...  Was hast du denn da als Wert drin, dass das nicht funktioniert - ein "ß" in Straße?

Gruß,
Budy
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 14 März 2019, 19:02:50
Habe ein ü und ein ß.


Gesendet von iPhone mit Tapatalk
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 15 März 2019, 10:16:48
Moin Tobi,

das Umlautproblem ist im letzten commit gefixt.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 15 März 2019, 16:50:51
Zitat von: Otto123 am 12 März 2019, 21:16:53
Die Voraussetzung hast Du geschaffen? Meine Notiz dazu:
###Ring Video Doorbell
# Quelle https://forum.fhem.de/index.php/topic,75754.0.html
# Voraussetzungen im System schaffen
apt-get update
# Ich bin nicht sicher ob man git braucht
apt-get python-pip git

pip install git+https://github.com/tchellomello/python-ring-doorbell
# python fhem API https://github.com/domschl/python-fhem
pip install fhem
pip list # installed Packages


Gruß Otto

Hallo Otto,

ich habe nochmals alles geprüft allerdings wurde mir angezeigt, dass alles up to date ist. Ich habe nach einem reboot des Raspi im Verzeichnis /opt/fhem/bin/ nochmals folgenden Befehl gestartet: "./ring.py" und folgende Meldung habe ich wieder erhalten:
Traceback (most recent call last):
  File "./ring.py", line 23, in <module>
    fh = logging.FileHandler('ring.log')
  File "/usr/lib/python2.7/logging/__init__.py", line 913, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python2.7/logging/__init__.py", line 943, in _open
    stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/opt/fhem/bin/ring.log'


Ich habe jetzt aber einen Logeintrag erhalten mit folgendem Inhalt:
Retrying...
2019-03-15 16:23:53,922 - fhem_ring - INFO - Found 1 devices.
2019-03-15 16:23:54,432 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-03-15 16:23:54,433 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account xxxxxxxx
2019-03-15 16:23:54,436 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer address xxxxx
2019-03-15 16:23:54,438 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer family doorbots
2019-03-15 16:23:54,439 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer id xxxxxxxxx
2019-03-15 16:23:54,441 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer name Haustuer
2019-03-15 16:23:54,443 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer timezone Europe/Berlin
2019-03-15 16:23:54,445 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer doorbellType Mechanical
2019-03-15 16:23:54,446 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer battery 62
2019-03-15 16:23:54,448 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer ringVolume 5
2019-03-15 16:23:54,450 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer connectionStatus online
2019-03-15 16:23:54,452 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer WifiName xxxxxx
2019-03-15 16:23:54,453 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer WifiRSSI -61
2019-03-15 16:23:54,455 - fhem_ring - INFO - Polling for events.
2019-03-15 16:23:54,457 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:23:57,111 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:23:59,843 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:02,537 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:05,222 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:07,897 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:10,720 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:13,447 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:16,166 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:18,863 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:21,562 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:24,335 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:27,000 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:29,670 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:32,356 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:35,020 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:37,875 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:40,664 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:43,443 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:46,168 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:48,902 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:51,749 - fhem_ring - DEBUG - Polling for events with 'Haustuer'.
2019-03-15 16:24:52,424 - fhem_ring - INFO - Alert detected at 'Haustuer'.
2019-03-15 16:24:52,426 - fhem_ring - DEBUG - Alert detected at 'Haustuer' via 'Haustuer'.
2019-03-15 16:24:52,428 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer lastAlertDeviceID xxxxxxxxxxxx
2019-03-15 16:24:52,429 - fhem_ring - ERROR - Unexpected error:[Errno 104] Connection reset by peer
2019-03-15 16:24:52,431 - fhem_ring - ERROR - Exception occured. Retrying...
2019-03-15 16:24:57,927 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-03-15 16:24:57,929 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account xxxxxx
2019-03-15 16:24:57,930 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2019-03-15 16:24:57,932 - fhem_ring - ERROR - Exception occured. Retrying...
2019-03-15 16:25:03,400 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-03-15 16:25:03,405 - fhem_ring - DEBUG - sending: setreading Ring_Haustuerxxxxxxx
2019-03-15 16:25:03,408 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2019-03-15 16:25:03,409 - fhem_ring - ERROR - Exception occured. Retrying...
2019-03-15 16:25:08,924 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-03-15 16:25:08,926 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account xxxxxxxx
2019-03-15 16:25:08,930 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2019-03-15 16:25:08,932 - fhem_ring - ERROR - Exception occured. Retrying...
2019-03-15 16:25:14,509 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-03-15 16:25:14,511 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account xxxxxxxx
2019-03-15 16:25:14,516 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2019-03-15 16:25:14,517 - fhem_ring - ERROR - Exception occured. Retrying...


Ich weiß leider mit der Info "BrokenPipe", was wohl die Verbindung zu Fhem ist, nichts anzufangen. Was soll/kann ich noch prüfen/ändern??

Viele Grüß Marko
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 15 März 2019, 17:04:54
Hallo Marko,

wenn Du das so startest:
ZitatIch habe nach einem reboot des Raspi im Verzeichnis /opt/fhem/bin/ nochmals folgenden Befehl gestartet: "./ring.py" und folgende Meldung habe ich wieder erhalten:
Musst Du auch die Rechte von fhem haben...

Ich betreibe das derzeit nicht unter dem user fhem und habe nichts im fhem Verzeichnis. Ich starte das als Pi und mache es mit einem Cronjob:
Ich habe zum Test lediglich das ring.py heruntergeladen (/home/pi/) dort die Zugänge (Ring und FHEM) eingetragen und es einfach gestartet.
Dann mit ctrl+c abgebrochen und in FHEM einen Dummy mit dem gefundenen Namen angelegt:
define Ring_<gefundener Name> dummy
Danach einfach wieder starten, dann darf es keine Fehler geben und in FHEM müssen die Readings gefüllt werden.
Ich habe noch eine Startdatei run-ring gemacht, damit es im Hintergrund läuft:
#!/bin/bash
#run_ring
#make sure the process is always running.

process=/home/pi/ring.py

if ps ax | grep -v grep | grep $process > /dev/null
then
    echo "Process $process is still running."
    exit
else
    nohup bash -c "python $process" >/dev/null &
    echo "Process $process started."
fi

exit

Als alles lief, habe ich noch das Logging runtergedreht und mit crontab -e (unter User Pi) einen Job erzeugt. Läuft so seit Weihnachten Störungsfrei. Eintrag am Ende der crontab

@reboot sleep 180;/home/pi/run-ring
@hourly /home/pi/run-ring


Ist natürlich sicher besser, das mal noch unter einem anderen Account anzulegen. Das war mehr so ein schneller provisorischer Schuss, aber Provisorien halten bekanntlich ...
Ich habe mir die aktuelle ring.py nicht angeschaut, die von vor Weihnachten hatte ich etwas modifiziert (Umlaute)

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 15 März 2019, 18:23:21
Moin Marko,

sieht für mich ein wenig danach aus, als wenn der FHEM die Verbindung zur ring.py kappt. Ich wüsste nur nicht, warum er das tun sollte. Das mit dem Log ist ein Berechtigungs-Problem. Der User, der die ring.py startet muss natürlich auch die Berechtigung haben in das Log zu schreiben.

Wenn du in global im FHEM das attribut verbose auf 4 stellst, dann solltest du im fhem.log sehen können, ob und wann er die Verbindung zu macht.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 15 März 2019, 22:32:24
Hi budy,

danke, Umlaute gehen nun.
Bezüglich snapshot, hilft das hier evtl. weiter?
https://github.com/tchellomello/python-ring-doorbell/blob/master/ring_doorbell/doorbot.py (https://github.com/tchellomello/python-ring-doorbell/blob/master/ring_doorbell/doorbot.py)

Gruß,
Tobi
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 15 März 2019, 22:58:40
Moin Tobi,

schön, dass die Umlaute jetzt gehen - hat mit meiner Fake-Adresse hat das auch funktioiert.  ;)

Ich habe mir bereits den Issue 108 im Repo angeschaut:

https://github.com/tchellomello/python-ring-doorbell/pull/108 (https://github.com/tchellomello/python-ring-doorbell/pull/108)

daher weiß ich auch, dass das eigentlich schon seit Januar drin sein muss, aber wenn ich versuche bei meinem doorbot so einen Snapshot anzufordern, dann erhalte ich immer einen Fehler 401, und die Antwort legt nahe, dass ich das nicht darf. Ich kann aber auch diesen Endpoint in der API - wenn es diesen denn noch so gibt, auch so nicht anspringen, z.B. über einen Browser.

Heute habe ich mal versucht dem Teil mit einem mitmproxy auf den Pelz zu rücken, aber die Ring App auf dem iPhone scheint, die System-Proxy Einstellungen zu ignorieren, so konnte ich den API-Endpunkt für die Funktion get_snapshot() aus der Lib nicht verifizieren.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 16 März 2019, 10:18:10
Hallo, guten Morgen,

ich bin wirklich am Verzweifeln. Mir fehlt leider auch die Kenntnis jede Meldung richtig zu interpretieren.

Ich habe wie Otto empfohlen hat, ring.py unter /home/pi/ angelegt. Den ring_user und ring_pass lt. meinem Konto eingetragen. In fhem_ip habe ich die IP meines Fhemsystems eingetragen 192.168.xxxx der fhem_port 7072 habe ich nicht verändert und die Datei mit sudo chmod +x ring.py ausführbar gemacht.
Starte ich nun mit dem Befehl python ring.py erhalte ich folgende Meldung:

pi@FHEMPi:~ $ sudo python ring.py
2019-03-16 10:08:59,806 - fhem_ring - INFO - Found 1 devices.
2019-03-16 10:09:00,343 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-03-16 10:09:00,346 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account xxx
2019-03-16 10:09:00,360 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer address xxx, xxx, Rheinhessen-Pfalz xxx, DE
2019-03-16 10:09:00,367 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer family doorbots
2019-03-16 10:09:00,370 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2019-03-16 10:09:00,373 - fhem_ring - ERROR - Exception occured. Retrying...
2019-03-16 10:09:05,829 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2019-03-16 10:09:05,833 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account xxxx
2019-03-16 10:09:05,836 - fhem_ring - ERROR - Unexpected error:[Errno 32] Broken pipe
2019-03-16 10:09:05,839 - fhem_ring - ERROR - Exception occured. Retrying...
^CTraceback (most recent call last):
  File "ring.py", line 157, in <module>
    time.sleep(5)
KeyboardInterrupt


In Fhem mit verbose 4 folgendes:

2019.03.16 10:08:57 4: Connection accepted from telnetForBlockingFn_1552727023_127.0.0.1_34278

Leider kann ich nicht verstehen was genau die Meldungen aussagen bzw. wo der Fehler ist.

Trotzdem Danke an Otto und Buddy für die Hilfe!!
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 16 März 2019, 10:49:44
Ich kann mit der Fehlermeldung broken Pipe auch nix anfangen. Aber dort wo die kommt, würde ich vermuten, da steht was in Deinen Daten, was in der Übertragung zu den Readings nicht funktioniert.
Mach mal in FHEM ein list Ring_Haustuer.

Welche Version des ring.py hast Du jetzt?

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 16 März 2019, 11:08:39
Moin Marko,

also, der Teil mit dem Ring-Service funktioniert ja offensichtlich. Die Ausgabe zeigt aber auch, dass die ring.py gar nicht an deinen FHEM heran kommt. Läuft die ring.py auf demselben Host, auf dem auch der FHEM läuft?

2019.03.16 10:08:57 4: Connection accepted from telnetForBlockingFn_1552727023_127.0.0.1_34278

Das ist ja eine Verbindung über localhost, also 127.0.0.1 - das ist bei mir auch so, aber ich habe auch die 127.0.0.1 als fhem_ip drin stehen lassen, da meine ring.py direkt auf meinem FHEM host läuft. Zeig uns doch außerdem mal ein List von deinem Telnet-Objekt. Wenn du nicht genau weißt, wie du das kriegst:

list TYPE=telnet

zeigt die alle Objekte des Typs telnet. Dann kannst du anschließend mittels list <device> ein Device detailliert anzeigen lassen. Irgendwo da muss das Problem eigentlich liegen...

Gruß,
budy

Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 16 März 2019, 11:27:41
Ein Fhem list aus Ring_Haustuer ergibt:

Internals:
   CFGFN     
   NAME       Ring_Haustuer
   NR         1670
   STATE      ???
   TYPE       dummy
Attributes:
   room       Tür


Ich habe mir hier die ring.py Stand 03.01.2018 herunter geladen : https://github.com/markuzzi/ring-fhem/blob/master/ring.py

Ein List list TYPE=telnet ergibt:

telnetForBlockingFn_1552727023
telnetPort


Ein List auf list  telnetForBlockingFn_1552727023 ergibt:

Internals:
   CFGFN     
   CONNECTS   82
   DEF        0
   FD         26
   NAME       telnetForBlockingFn_1552727023
   NR         1654
   PORT       35227
   STATE      Initialized
   TEMPORARY  1
   TYPE       telnet
Attributes:
   allowfrom  127.0.0.1
   room       hidden


Hier mal noch die ersten Zeilen der ring.py

from ring_doorbell import Ring
import time
import fhem
import logging
from thread import start_new_thread, allocate_lock


# CONFIG
ring_user = 'xxx@gmx.de'
ring_pass = 'xxxx'
fhem_ip   = '127.0.0.1'
fhem_port = 7072 # Telnet Port
log_level = logging.DEBUG
fhem_path = '/opt/fhem/www/ring/' # for video downloads
POLLS     = 2 # Poll every x seconds


Die ring.py läuft auf dem gleichen Raspberry wie Fhem.

Ich hoffe die Antwort kann Euch etwas weiterhelfen?

Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 16 März 2019, 11:47:47
da fehlt list telnetPort

Ansonsten sieht es aber gut aus. Allerdings stimmt der Eintrag für fhem_ip nicht mit Deiner Aussage weiter oben? Ist aber richtig so.
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 16 März 2019, 12:34:10
Das list telnetPort:

Internals:
   CONNECTS   8
   DEF        7072 global
   FD         5
   NAME       telnetPort
   NR         4
   PORT       7072
   STATE      Initialized
   TYPE       telnet
Attributes:
   group      FHEM
   room       System
   verbose    0


Ich habe fhem_ip einmal mit 192.168.1.xxx probiert und nach der Antwort von Budy zurück auf 127.0.0.1 geändert.
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 16 März 2019, 12:54:15
geht im Terminal vom Pi so etwas:
perl /opt/fhem/fhem.pl 7072 "list Ring_Haustuer"
perl /opt/fhem/fhem.pl 7072 "set Ring_Haustuer willi"
perl /opt/fhem/fhem.pl 7072 "setreading Ring_Haustuer Testreading Wert"
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 16 März 2019, 13:15:15
Hallo Otto,

den Befehl kann ich absetzen. Allerdings keine Statusänderung bei Ring_Haustuer in Fhem. Es es wird nicht Willi und ein Testreading wird auch nicht angelegt.
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 16 März 2019, 13:19:10
und das list liefert keine oder die richtige Ausgabe?
was liefert list TYPE=allowed in FHEM?

Hast Du den Pi mal neu gestartet?
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 16 März 2019, 13:38:00
Die Befehle im Raspberryterminal abgesendet liefern keine Änderung / Ausgabe am Fhem device Ring_Haustuer.

list TYPE=allowed in FHEM ergibt nichts.

Ja Raspberry mehrfach neu gestartet.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 16 März 2019, 16:48:05
Moin Marko,

perl /opt/fhem/fhem.pl 7072 "list Ring_Haustuer"

muss was ausgeben, ansonsten funktioniert dein Telnet-Zugang am FHEM über Port 7072 nicht! Entweder gibt dieser Befehl das Listing deines Ring-Objekts aus, oder aber, wenn der Name nicht stimmt, eine Fehlermeldung, dass FHEM das Device nicht finden konnte.

Btw, ich würde dir empfehlen, gleich die ring.py aus meinem GitHub-Repo zu nehmen, denn das Repo von Markus ist offenbar etwas verwaist...  ;) Der Link dazu ist ein paar Seiten zurück - ich glaube auf Seite 5.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 16 März 2019, 21:17:36
Mir fällt zum telnetPort jetzt noch folgendes auf:
Internals:
   CONNECTS   20426
   DEF        7072 global
   FD         5
   FUUID      5c4c565f-f33f-27f7-0fc6-4f555965b22a7c2c
   NAME       telnetPort
   NR         3
   PORT       7072
   STATE      Initialized
   TYPE       telnet
   READINGS:
     2019-03-09 10:28:39   state           Initialized
Attributes:
da fehlt bei Dir das Reading state - da stimmt was nicht. Da wird wohl was im System nicht stimmen.
Was passiert denn wenn Du mal noch ein telnetPort definierst? Anderes Port? Kommt da eine Fehlermeldung?
define telnetPort2 telnet 7074 global
Und wenn es dort ein Reading state gibt machst Du die Tests nochmal mit diesem Port.

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 17 März 2019, 10:15:39
Guten Morgen

Ein ganz großes Dankeschön an OTTO und BUDY.
Es läuft nun nach dem Tip von Otto. Ich habe einen neuen Telnetport angelegt und den Port in der ring.py geändert. Dann das besagte "perl /opt/fhem/fhem.pl 7074 "list Ring_Haustuer"" ausgeführt und es wurde mir die Daten angezeigt. Die ring.py gestartet, geklingelt und zack lief es.

Danke nochmals für Eure Hilfe!!

Marko
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 17 März 2019, 11:54:55
👍
Titel: Antw:Ring Video Doorbell
Beitrag von: syvox am 11 April 2019, 11:50:37
Hallo Zusammen!

Ich bin zufällig (Ein Kollege hat mir die Ring vermacht weil ers nicht braucht, und meine erste Idee war die ins Fhem zusätzlich zu kriegen) auf den Thread hier gestoßen....
Ich habe die zwar noch nicht mal aus der Verpackung genommen aber theoretisch - sofern die Ring sich in Deep Standby verfrachtet wenn man nichts damit tut (was ich annehme) und dann erst sich ins WLAN einbucht usw wenn jemand den Knopf drückt (muss ich aber erst sniffen) dann müsste es einen Broadcast im Netzwerksegment geben....
Und diesen kann man zB Abfangen - so funktioniert zB Dasher das kleine Programm für den Amazon Dash Button (den ich bisher als Türklingel im Einsatz habe)...
Soll heißen.... Dasher installieren (gibts einen gute Anleitung wenn man danach sucht)  und anstatt der Mac Adresse von einem Dash Button eben die Mac Adresse von der Ring eingeben und schon braucht man keinen Script fähigen Router...

So zumindest die Theorie ich werde das heute gleich mal ausprobieren sofern ich dazu komme...  - wer will schon ein Gerät so nutzen wie es sich der Hersteller überlegt hat ;-)

Lg

Robert
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 11 April 2019, 19:42:44
Moin Robert,

das wäre zumindest mal für den Einsatz als Türklingel gut, obwohl ich sagen muss, dass es mit dem Setup, wie ich es einsetze auch schon nicht schlecht geht. Die Verzögerung von 1 Sekunde kann ich verschmerzen, da ich ja eh' noch einen RingChime mitgeliefert bekommen hatte - für ordentlich Radau beim Klingeln ist also gesorgt.

Ich verstehe allerdings nicht so ganz, wie du auf den Broadcast reagieren willst, dazu müsstest du ja den gesamten Netzwerk-Traffic sniffen und dann irgendwie ein Event in FHEM auslösen. Hast du dazu ein Beispiel?

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: Aladin222 am 07 Mai 2019, 19:32:50
hallo zusammen ,

ich habe gerade auch mal versucht das ganze bei mir umzusetzen !

ls -l

-rw-r--r-- 1 fhem fhem 533958 Mai  7 19:16 ring.log
-rwxrwxrwx 1 fhem fhem   6913 Mai  7 14:30 ring.py
-rwxrwxrwx 1 fhem fhem    319 Mai  7 15:57 run_ring.sh


im Terminal logge ich mich als User fhem ein !
Aber ich muss die run_ring.sh so starten :
sudo ./run_ring.sh

Wenn ich es händisch so starte ,läuft es soweit und der dummy wird gefüllt !

Wenn ich ohne sudo starte ....passiertr nix :-(

./run_ring.sh
Process ring.py started.

Es wird kein Dummy gefüllt ....

meine run_ring.sh

#!/bin/bash
#run_ring.sh
#make sure the process is always running.

process=ring.py

if ps ax | grep -v grep | grep $process > /dev/null
then
    echo "Process $process is still running."
    exit
else
    nohup su -c "sudo python /opt/fhem/bin/ring.py" fhem >~/ncb 2>&1 &
    echo "Process $process started."
fi

exit



wie bekomme ich es nun hin , das die run_ring.sh automatisch gestartet wird
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 07 Mai 2019, 22:18:05
Hi,

um Deine Frage zu beantworten: mit crontab.
Aber dazu muss es erstmal laufen. sudo braucht das Script nicht. Und unter user fhem muss es auch nicht laufen.

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: Aladin222 am 07 Mai 2019, 22:37:50
Hallo Otto ,

danke erstmal !

hmmm , es läuft ....aber nur wenn ich mit sudo starte ....ohne läuft es nicht :-(
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 08 Mai 2019, 01:01:32
Hi,

ich habe das auch bloß quick & dirty bei meinem Kumpel gemacht  :-X Es tut es aber seit Monaten...
Ich habe alles unter pi gemacht, die beiden Scripte liegen unter /home/pi
Das run-ring sieht so aus, da verwende ich auch kein sudo.
#!/bin/bash
#run_ring.sh
#make sure the process is always running.

process=/home/pi/ring1.py

if ps ax | grep -v grep | grep $process > /dev/null
then
    echo "Process $process is still running."
    exit
else
    nohup bash -c "python $process" >/dev/null &
    echo "Process $process started."
fi

exit

 

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: Aladin222 am 08 Mai 2019, 09:51:26
Guten Morgen Otto ,

dein Script hatte ich gestern Nacht schonmal probiert ...wobei das bei mir auch nur mit dem sudo lief.
Da es schon spät war ,möchte ich nicht behaupten ,an alles gedacht zu haben ....drehte sich gestern alles im Kreis  :)
Das Script ,welches ja nur das pythonscript ausführt ( hoffe diese Formulierung stimmt ) wird gestartet und gibt sogar positive Rückmeldung , stellenweise , wird bei einem erneuten starten ,die Rückmeldung gegeben, das ring.py schon läuft .... aber der dummy wird nur befüllt, wenn ich mit sudo starte ....
Hatte dann entnervt aufgeben und bin pennen gegangen ....
Ich setzte mich aber heute nochmals mit deinem o.g. Script auseinander und versuche es erneut ....
Linux und ich & Rechte passt noch nicht zusammen , quäle mich da enorm 😂
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 08 Mai 2019, 10:16:25
Moin,

ich häng Dir gern auch noch mein Script hier her:
Das Script kam ursprünglich von hier https://github.com/markuzzi/ring-fhem
from ring_doorbell import Ring
import time
import fhem
import logging
from thread import start_new_thread, allocate_lock


# CONFIG
ring_user = 'user@doamin.de'
ring_pass = 'password'
fhem_ip   = '127.0.0.1'
fhem_port = 7072 # Telnet Port
log_level = logging.CRITICAL
fhem_path = '/opt/fhem/www/ring/' # for video downloads
POLLS     = 2 # Poll every x seconds

# LOGGING
logger = logging.getLogger('ring_doorbell.doorbot')
logger.setLevel(log_level)

# create file handler which logs even debug messages
fh = logging.FileHandler('ring.log')
fh.setLevel(log_level)

# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(log_level)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
fh.setFormatter(formatter)

# add the handlers to the logger
logger.addHandler(fh)
logger.addHandler(ch)

logger = logging.getLogger('fhem_ring')
logger.setLevel(log_level)
logger.addHandler(ch)
logger.addHandler(fh)


# Connecting to RING.com
myring = Ring(ring_user, ring_pass)

fh = fhem.Fhem(fhem_ip, fhem_port)

def sendFhem(str):
    logger.debug("sending: " + str)
    global fh
    fh.send_cmd(str)

def askFhemForReading(dev, reading):
    logger.debug("ask fhem for reading " + reading + " from device " + dev)
    return fh.get_dev_reading(dev, reading)

def askFhemForAttr(dev, attr, default):
    logger.debug("ask fhem for attribute "+attr+" from device "+dev+" (default: "+default+")")
    fh.send_cmd('{AttrVal("'+dev+'","'+attr+'","'+default+'")}')
    data = fh.sock.recv(32000)
    return data

def setRing(str, dev):
    sendFhem('set Ring_' + dev.name.replace(" ","") + ' ' + str)

def attrRing(str, dev):
    sendFhem('attr Ring_' + dev.name.replace(" ","") + ' ' + str)

def srRing(str, dev):
    sendFhem('setreading Ring_' + dev.name.replace(" ","") + ' ' + str)

num_threads = 0
thread_started = False
lock = allocate_lock()

def getDeviceInfo(dev):
    dev.update()
    logger.info("Updating device data for device '"+dev.name+"' in FHEM...")
    srRing('account ' + str(dev.account_id), dev)
#    srRing('address ' + dev.address, dev)
    srRing('family ' + str(dev.family), dev)
    srRing('id ' + str(dev.id), dev)
    srRing('name ' + str(dev.name), dev)
    srRing('timezone ' + str(dev.timezone), dev)
    srRing('doorbellType ' + str(dev.existing_doorbell_type), dev)
    srRing('battery ' + str(dev.battery_life), dev)
    srRing('ringVolume ' + str(dev.volume), dev)
    srRing('connectionStatus ' + str(dev.connection_status), dev)
    srRing('WifiName ' + str(dev.wifi_name), dev)
    srRing('WifiRSSI ' + str(dev.wifi_signal_strength), dev)
   

def pollDevices():
    logger.info("Polling for events.")
    global devs

    i=0
    while 1:
        for k, poll_device in devs.items():
            logger.debug("Polling for events with '" + poll_device.name + "'.")
            if poll_device.check_alerts() and poll_device.alert:
                dev = devs[poll_device.alert.get('doorbot_id')]
                logger.info("Alert detected at '" + dev.name + "'.")
                logger.debug("Alert detected at '" + dev.name + "' via '" + poll_device.name + "'.")
                alertDevice(dev,poll_device.alert)
            time.sleep(POLLS)
        i+=1
        if i>600:
            break

def alertDevice(dev,alert):
    srRing('lastAlertDeviceID ' + str(dev.id), dev)
    srRing('lastAlertDeviceAccountID ' + str(dev.account_id), dev)
    srRing('lastAlertDeviceName ' + str(dev.name), dev)
    srRing('lastAlertSipTo ' + str(alert.get('sip_to')), dev)
    srRing('lastAlertSipToken ' + str(alert.get('sip_token')), dev)
    if(alert.get('kind') == 'ding'):
        setRing('ring', dev)
        srRing('lastAlertType ring', dev)
        his = dev.history(limit=100,kind='ding')
        if(len(his)>0):
            dev.recording_download(his[0]['id'], filename=fhem_path + 'last_ding_video.mp4',override=True)
            srRing('lastDingVideo ' + fhem_path + 'last_ding_video.mp4', dev)
    elif(alert.get('kind') == 'motion'):
        setRing('motion', dev)
        srRing('lastAlertType motion', dev)
        his = dev.history(limit=100,kind='motion')
        if(len(his)>0):
            dev.recording_download(his[0]['id'], filename=fhem_path + 'last_motion_video.mp4',override=True)
            srRing('lastMotionVideo ' + fhem_path + 'last_motion_video.mp4', dev)
    srRing('lastCaptureURL ' + str(dev.recording_url(dev.last_recording_id)), dev)



# GATHERING DEVICES
devs = dict()
poll_device = None
tmp = list(myring.stickup_cams + myring.doorbells)
for t in tmp:
    devs[t.account_id] = 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
count = 1
while count<6:  # try 5 times
    try:
        while 1:
            for k, d in devs.items(): getDeviceInfo(d)
            pollDevices()

    except Exception as inst:
        logger.error("Unexpected error:" + str(inst))
        logger.error("Exception occured. Retrying...")
        time.sleep(5)
        if count == 5:
            raise

        count += 1

Wie gesagt: liegt zusammen mit dem anderen Script in /home/pi und wird einfach nur gestartet, ohne sudo.
Wenn Du sudo brauchst kann es eigentlich nur an einer falschen Ablage der Script liegen.
-rw-r--r-- 1 pi   pi   5,1K Dez 22 12:49 ring1.py
-rwxr-xr-x 1 pi   pi    307 Dez 13 13:37 run-ring

crontab -e und das eingefügt
@reboot sleep 180;/home/pi/run-ring
@hourly /home/pi/run-ring


Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: Aladin222 am 08 Mai 2019, 22:08:02
ganz lieben Dank @Otto !
Habs heute mehrere Stunden versucht vernünftig ans laufen zu bekommen ....

*grrrrr.  Ich raff´s nicht ! :-( ....auch mit deinen Skripten und Anleitungen , funzt es nur mit sudo  >:(

-edit-
Ob es nun der richtige Weg ist oder nicht ....Hab es erstmal laufen mit systemd...
Titel: Antw:Ring Video Doorbell
Beitrag von: ChrisW am 09 Mai 2019, 09:33:03
hmm also mitlerweile gibt es ja echt sehr viele Infos zur Ring Doorbell auch viel altes.
Es gibt ja nun 2 APIs wenn ich nach ring api google :)

In wie weit kann man mit der 1. RING Doorbell etwas anfangen. 99€ ist ja guter Preis.

Kann man darüber das "Klingeln" relativ schnell abgreifen ?
Kann man eine Aktion auslösen über die Ringapp welche irgendwie in FHEM landet ( Türöffner ). Es gibt da ja eine Schnittstelle in der App für die Türschlösser usw. ??


Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 09 Mai 2019, 14:22:22
Moin,

Zitat von: ChrisW am 09 Mai 2019, 09:33:03
hmm also mitlerweile gibt es ja echt sehr viele Infos zur Ring Doorbell auch viel altes.
Es gibt ja nun 2 APIs wenn ich nach ring api google :)

In wie weit kann man mit der 1. RING Doorbell etwas anfangen. 99€ ist ja guter Preis.

Kann man darüber das "Klingeln" relativ schnell abgreifen ?
Kann man eine Aktion auslösen über die Ringapp welche irgendwie in FHEM landet ( Türöffner ). Es gibt da ja eine Schnittstelle in der App für die Türschlösser usw. ??

Ich denke mal, du meinst eher zwei Libraries... die eigentliche API hat Ring nicht offengelegt und ich denke auch nicht, dass sie das noch tun werden. Das Problem mit den Libraries ist halt, dass die auch nur rudimentär implementiert und so gut wie gar nicht gepflegt werden. Das Klingeln abzugreifen geht aber schon ganz gut. Ich habe das bei mir realisiert und lasse zusätzlich zur Ring und dessen Chime auch noch zwei Homemativ FunkGongs klingeln.

Was das Modell angeht, so würde ich immer eines mit dedizierter Spannungsversorgung nehmen und keines, welches nur auf Batterie/Akku läuft. Die Sache mit den Türöffnern, ist dasselbe Problem wie die ganze API - diese Funktion ist nicht dokumentiert und jemand müsste sie per reverse-engineering nachbauen.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: ChrisW am 09 Mai 2019, 14:41:04
okay Danke. Mit den Tür öffnen meine ich nur ob es da eine möglichkeit gibt in der App rechts bei dem Menü etwas zu nutzen um damit fhem anzusteuern.
Wäre halt schön in der APP zu bleiben um die Tür auf zu machen ;)

Habe einen screen gesehen das es da ein Menü gibt und man dort dann das key auswählen kann? Aber da geht dann die ext. App auf.
Titel: Antw:Ring Video Doorbell
Beitrag von: ChrisW am 11 Mai 2019, 11:02:02
hmm ich bekomme hier mit dem code leider auch keine Akku Meldungen usw.
Für iobroker scheint es ein Modul zu geben.

Hat da noch keiner etwas gebastelt ? hab mein FHEM als Docker wenn ich da direkt mit scripten usw. arbeite ist da sjedesmal weg bei einem Update vom Docker Container.
Hab das fhem Modul in iobroker wie könnt ich den Status von da den Rüber bekommen ?
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 12 Mai 2019, 14:38:04
Zitat von: ChrisW am 11 Mai 2019, 11:02:02
dem code leider auch keine Akku Meldungen usw.
....
hab mein FHEM als Docker wenn ich da direkt mit scripten usw. arbeite ist da sjedesmal weg bei einem Update vom Docker Container.
Zum 1. Welchen Code meinst Du? Was hast Du probiert?
Zum 2. Das Script, was ich kenne, kann irgendwo rennen, es gibt keinen Zwang es innerhalb des Docker Container laufen zu lassen.

Ob es einen iobroker Code gibt kann ich nicht sagen.

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 27 Mai 2019, 08:48:37
Guten Morgen
Ich habe mir nun auch die Configuration installiert und die Einstellungen vorgenommen wie beschrieben.
Läuft alles wunderbar vielen Dank.

Eine Frage hätte ich nur, wenn ich es richtig verstehe wird die Verbindung zwischen dem Skript und Fhem über den Tellnetport aufgebaut. Gibt es eine möglichkeit diesen ab zu sichern? Also seitens fhem kann man ihn passwortschützen wenn ich das richtig im Kopf habe aber geht dies dann im skript auch?

lg michi
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 28 Mai 2019, 20:25:38
Ich habe das bei mir so gelöst, dass ich nur Verbindungen von localhost erlaube, das ist sicher genug, denn wenn von da was böses kommt, dann ist es eh' lange zu spät.

Gruß,
Budy
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 03 Juni 2019, 22:19:02
Hallo Michi,,

einfach noch als Ergänzung:
FHEM Telnetport kannst Du absichern mit allowed  (https://commandref.fhem.de/#allowed)
Das Script verwendet python-fhem (https://github.com/domschl/python-fhem)
Dort ist beschrieben wir Du Passwort und co verwenden kannst.

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 04 Juni 2019, 07:46:53
Danke ihr beiden
Da muss ich mich wohl tiefer in die Thematik einlesen :)

Titel: Antw:Ring Video Doorbell
Beitrag von: freakadings am 25 Juni 2019, 18:15:24
Halli Hallo,
wir kommen wohl günstig an eine Doorbell 2 ran und die erste Frage meiner besseren Hälfte war "ist die fhembar?".

Also diesen Thread gefunden, überflogen und wollte mal fragen wie jetzt der aktuelle Stand ist.
Soweit ich das verstanden habe, geht es, das "es hat geklingelt" Signal abzugreifen aber Video ist nicht möglich? Oder geht das mit Python Ring Door Bell 0.2.3 jetzt schon?

Habe folgendes noch im Netz gefunden, ist euch aber bestimmt schon bekannt und gibt auch scheinbar nicht viel her:
https://github.com/davglass/doorbot

VG,
Merlin
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 27 Juni 2019, 22:06:07
Ich habe mir das schon länger nicht mehr angesehen, denn egal, was man sich so einredet... am Ende gehe ich immer zur Tür, wenn ich Zuhause bin und wenn nicht, dann lasse ich eh' niemanden rein...

Und ja... es wäre ein nettes Feature, aber am Ende war es auf meiner Prio-Liste nicht weit genug oben, das weiter zu verfolgen.
Titel: Antw:Ring Video Doorbell
Beitrag von: freakadings am 01 Juli 2019, 10:26:42
Huhu,
bei uns ist es aktuell so, dass ich die klingel mit einem kleinen selbstbau abgreife und wir dann über Telegram eine Benachrichtigung bekommen, dass es geklingelt hat.
Toll wäre natürlich wenn jetzt noch ein Foto mitkäm, damit man sieht wer geklingelt hat, einfach um die Neugier zu befriedigen :D
Das mit dem Öffnen sehe ich wie du, das wäre mir auch zu heikel, egal wie sicher das System angeblich ist, würde ich die Türöffnung nur implementieren, wenn ich einen "sicheren" Windfang hätte, damit bspw. der Postbote was rein stellen kann.

Ich nehme an die Chancen stehen schlecht, dass du das noch einmal aufgreifst?

Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 01 Juli 2019, 19:11:21
Aktuell regt sich da wieder was auf Github in der Python lib. So wie ich das gesehen habe, sollte es zumindest mal möglich sein einen Snapshot von der Ring zu bekommen, aber darum kümmere ich mich erst nach meinem Urlaub. ;)

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: freakadings am 02 Juli 2019, 07:28:29
Super, danke dir schon mal und schönen Urlaub :D
Titel: Antw:Ring Video Doorbell
Beitrag von: freakadings am 07 Juli 2019, 16:22:42
Einen schönen Sonntag euch :)

Ich kann nun die doorbell2 mein eigen nennen und habe auch versucht sie nach dieser Anleitung von budy einzubinden https://github.com/budachst/ring-fhem

Allerdings haut das ganze nicht wirklich hin; Auch habe ich den Teil:
ZitatIn fhem habe ich einen Dummy angelegt mit dem Namen "Ring_[RingDeviceName]" (Achtung, wenn der Name nicht passt, muss die ring.py angepasst werden). [RingDeviceName] wird durch den Namen des Ring Devices ersetzt, wobei Leerzeichen entfernt werden. Bsp: Ring Device heißt "Front Door", in FHEM wird "Ring_FrontDoor" geschrieben. Der entsprechende Dummy wird wie folgt angelegt:

nicht so ganz verstanden. Woher kommt der Name, mit dem ich "RingDeviceName" ersetzen soll? Ist das der, den ich der Klingel in der App gegeben habe? Und falls ja, wo in der ring.py soll ich diesen anpassen?

was ich getan habe:


//===================Terminal (raspberry pi)===================

pip install git+https://github.com/tchellomello/python-ring-doorbell

pip install fhem

mkdir /opt/fhem/bin

wget https://raw.githubusercontent.com/budachst/ring-fhem/master/ring.py

wget https://raw.githubusercontent.com/budachst/ring-fhem/master/run_ring

sudo chown -R fhem:dialout /opt/fhem/bin/

sudo chmod 777 ring.py

sudo chmod 777 run_ring

nano ring.py  // attribute anpassen (nur "ring_user" und "ring_pass" geändert)

sudo su -u fhem crontab -e // @reboot /opt/fhem/bin/run_ring            und          @hourly /opt/fhem/bin/run_ring                eintragen

mkdir /opt/fhem/www/ring/

sudo chown -R fhem:dialout /opt/fhem/www/ring/

./run_ring




//===================IN FHEM===================

//Doorbell heißt in der App "Eingang"


defmod Ring_Eingang dummy
attr Ring_Eingang devStateIcon none:it_camera@green motion:secur_alarm@red ring:secur_alarm@orange
attr Ring_Eingang room Draußen
attr Ring_Eingang event-on-change-reading .*
attr Ring_Eingang setList none motion ring



Wenn ich jetzt versuche die Skripte zu starten passiert folgendes:

pi@raspberrypi:/opt/fhem/bin $ ./ring.py
from: can't read /var/mail/ring_doorbell
./ring.py: Zeile 2: import: Kommando nicht gefunden.
./ring.py: Zeile 3: import: Kommando nicht gefunden.
./ring.py: Zeile 4: import: Kommando nicht gefunden.
./ring.py: Zeile 5: import: Kommando nicht gefunden.
./ring.py: Zeile 6: import: Kommando nicht gefunden.
./ring.py: Zeile 7: import: Kommando nicht gefunden.
./ring.py: Zeile 8: Syntaxfehler beim unerwarteten Wort `sys'
./ring.py: Zeile 8: `reload(sys)'


bzw.:

pi@raspberrypi:/opt/fhem/bin $ ./run_ring
Process python /opt/fhem/bin/ring.py started.


In fhem tut sich nichts, ich schätze weil ich den Teil mit dem Namen nicht verstanden habe.

Ich hoffe man kann mir helfen :) Telnet geht übrigens.

BG,
Merlin
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 07 Juli 2019, 17:05:55
Hallo Merlin,

der grundlegende Fehler ist MMn das ring.py direkt zu starten.
Das geht nicht, in dem Script ist nicht mal ein Shebang. Da weiß gar keiner das es python ist. ;)
Nochmal der Link zu dem was ich getan habe:
https://forum.fhem.de/index.php/topic,75754.msg937804/topicseen.html#msg937804

Besser ist es, zum Testen erstmal so zu starten und schauen was er an Informationen wirft.
python ring.py

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: freakadings am 07 Juli 2019, 17:51:29
Ah perfekt, danke :D

Er wollte erst noch die log-Datei, dann aber lief es:

sudo touch /opt/fhem/bin/ring.log

sudo chown fhem:dialout /opt/fhem/bin/ring.log

sudo chmod 777 /opt/fhem/bin/ring.log

python ring.py




Jetzt komme ich mit " sudo su -u fhem crontab -e " nicht mehr an die crontab datei von fhem...
Wie stelle ich denn sicher, dass er die Befehle in der crontab auch wirklich ausführt?




Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 07 Juli 2019, 18:19:21
ich finde das unnötig kompliziert, das Ganze in der Art als user fhem auszuführen.
Ich habe alles als Pi gemacht und es dann einfach so laufen lassen. Ja das ist auch nicht optimal.  ;)
Wenn es schon innerhalb von FHEM laufen soll, dann würde ich mir für die Zukunft noch überlegen es einfach anstatt mit crontab direkt in FHEM zu starten.
Dann kann man sich den Krampf mit dem Anlegen der Logdatei sparen :)

Viel wichtiger ist, dass es überhaupt läuft und dass man den Logginglevel im Script runterschraubt. Sonst ist am Ende des Monats die Platte voll.
Titel: Antw:Ring Video Doorbell
Beitrag von: freakadings am 07 Juli 2019, 21:05:30
Alles klar, das mit dem Loglevel ist ne gute Idee, wo stehen denn die möglichen?
Ich tippe auf INFO ERROR und DEBUG?

Ich habe kein glück mit Cronjobs, bei mir wird das Skript nicht automatisch gestartet.
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 07 Juli 2019, 21:25:48
https://docs.python.org/3/library/logging.html#logging-levels
ich habe es auf CRITICAL gesetzt, damit wird bisher gar nichts mehr geloggt. Es stand glaub ich auf DEBUG  :o

Naja das Du kein Glück hast würde mich nicht wundern. Du hast das von der Lage und den Zugriffsmöglichkeiten erstmal ziemlich verwurschtelt. Kopiere das Ganze zum Test ins Homedir von deinem Standard User und Du wirst erstmal Erfolg haben. Das Script braucht keinerlei spezielle Rechte. Nur die Python Umgebung muss natürlich auch irgendwie passen.

Bei mir ging alles unter dem User Pi ohne erhöhte Rechte  ganz easy... Und crontab geht auch als normaler User. ;)

Aber so wo Du alles nach /opt/fhem verbuddelt hast, hast Du mal versucht es direkt unter FHEM auf zurufen?
"bash ./bin/run-ring"
Wenn das funktioniert, kannst Du es doch einfach mit FHEM starten.

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: freakadings am 02 August 2019, 22:49:09
Hallo Otto, sorry, deine Antwort ist irgendwie durchgerutscht.
direkt aus fhem geht nicht, ist aber auch nicht so wild einmal die run_ring gestartet läuft es doch ganz gut durch.

Jetzt habe ich aber scheinbar seit dem 10.7. das Problem, dass die Events in FHEM nicht mehr aktualisiert werden alle Readings aktualisiert er fleißig, aber nicht den "status".
Im log (steht auf DEBUG) pollt er fleißig, aber wenn ich klingle oder die Hand vor der Kamera bewege ändert sich nichts.

"2019-08-02 22:43:13,331 - fhem_ring - DEBUG - Polling for events with 'Eingang'."

Die Ring-App selbst benachrichtigt mich aber und dort funktioniert alles.
Geht das vielleicht noch jemandem so?

BG,
Merlin

Nachtrag:
Um die Videos speichern zu können (was bisher bei mir aufgrund mangelnder Rechte nicht ging und jetzt nicht geht, weil das Skript die Events nicht erkennt), wird das "Ring protect" Feature (3€ oder 10€ pro Monat) benötigt um die Videos herunterladen zu können? Danach liegt das letzte Video ja lokal, aber ich schätze die Kamera wirft ihr Video ja erst Mal in die Cloud.
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 05 Oktober 2019, 08:16:37
Hallo zusammen,

gibt es eigtl in Sachen Snapshot was neues?

Gruß,
Tobi
Titel: Antw:Ring Video Doorbell
Beitrag von: TimoD am 11 Oktober 2019, 23:05:21
Zitat von: onkel-tobi am 05 Oktober 2019, 08:16:37
Hallo zusammen,

gibt es eigtl in Sachen Snapshot was neues?

Gruß,
Tobi

? In Homebridge tut die Snapshot Variante klasse, ich hätte es aber lieber auf meinem FTUI iPad! Any News?
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 12 Oktober 2019, 11:02:03
Zitat von: TimoD am 11 Oktober 2019, 23:05:21
? In Homebridge tut die Snapshot Variante klasse, ich hätte es aber lieber auf meinem FTUI iPad! Any News?

Welche Homebridge Lösung nutzt Du?
Bei mir hat er zwar immer einen gesendet, aber da war mega delay drin.

Danke & Gruß,
Tobi
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 14 Oktober 2019, 00:29:53
Ich bekomme beim Start der ring.py immer wieder folgende Fehlermeldung:


root@osboxes:/home/pi#     from ring_doorbell import Ring
from: can't read /var/mail/ring_doorbell
root@osboxes:/home/pi# ImportError: No module named ring_doorbell
bash: ImportError:: Kommando nicht gefunden.



Zitat von: freakadings am 07 Juli 2019, 16:22:42

//===================Terminal (raspberry pi)===================

pip install git+https://github.com/tchellomello/python-ring-doorbell

pip install fhem

mkdir /opt/fhem/bin

wget https://raw.githubusercontent.com/budachst/ring-fhem/master/ring.py

wget https://raw.githubusercontent.com/budachst/ring-fhem/master/run_ring

sudo chown -R fhem:dialout /opt/fhem/bin/

sudo chmod 777 ring.py

sudo chmod 777 run_ring

nano ring.py  // attribute anpassen (nur "ring_user" und "ring_pass" geändert)

sudo su -u fhem crontab -e // @reboot /opt/fhem/bin/run_ring            und          @hourly /opt/fhem/bin/run_ring                eintragen

mkdir /opt/fhem/www/ring/

sudo chown -R fhem:dialout /opt/fhem/www/ring/

./run_ring




//===================IN FHEM===================

//Doorbell heißt in der App "Eingang"


defmod Ring_Eingang dummy
attr Ring_Eingang devStateIcon none:it_camera@green motion:secur_alarm@red ring:secur_alarm@orange
attr Ring_Eingang room Draußen
attr Ring_Eingang event-on-change-reading .*
attr Ring_Eingang setList none motion ring





Ich hab auch die Abhängigkeiten überprüft

Zitat von: Otto123 am 12 März 2019, 21:16:53
Die Voraussetzung hast Du geschaffen? Meine Notiz dazu:
###Ring Video Doorbell
# Quelle https://forum.fhem.de/index.php/topic,75754.0.html
# Voraussetzungen im System schaffen
apt-get update
# Ich bin nicht sicher ob man git braucht
apt-get python-pip git

pip install git+https://github.com/tchellomello/python-ring-doorbell
# python fhem API https://github.com/domschl/python-fhem
pip install fhem
pip list # installed Packages


Gruß Otto

Außerdem:


root@osboxes:/home/pi# pip list # installed Packages
Package       Version
------------- ---------
certifi       2019.9.11
chardet       3.0.4
fhem          0.6.3
idna          2.8
pip           19.2.3
pyserial      3.4
pytz          2019.3
requests      2.22.0
ring          0.7.2
ring-doorbell 0.2.4
setuptools    40.6.2
six           1.12.0
urllib3       1.25.6
wirerope      0.2.1


Ich versuche die Ring erst mal auf einer VM zum laufen zu bekommen. Bei Erfolg übertrage ich alles auf den produkten RPi.
Bin für jeden Tipp dankbar.
Titel: Antw:Ring Video Doorbell
Beitrag von: TimoD am 14 Oktober 2019, 07:27:26
Zitat von: onkel-tobi am 12 Oktober 2019, 11:02:03
Welche Homebridge Lösung nutzt Du?
Bei mir hat er zwar immer einen gesendet, aber da war mega delay drin.

Danke & Gruß,
Tobi

homebridge-ring die funktioniert echt klasse, inkl. Motion-Alerts und Live Video (unter ios13 sind die Push Benachrichtigungen im Moment noch buggy)
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 02 November 2019, 14:39:27
Zitat von: TimoD am 14 Oktober 2019, 07:27:26
homebridge-ring die funktioniert echt klasse, inkl. Motion-Alerts und Live Video (unter ios13 sind die Push Benachrichtigungen im Moment noch buggy)
Muss man da bezüglich snapshots noch was beachten? Scheint zumindest bei mir aktuell noch nicht zu funktionieren, aber evtl. dann wg. ios13?

Danke & Gruß,
Tobi
Titel: Antw:Ring Video Doorbell
Beitrag von: Stevie am 02 Dezember 2019, 18:06:41
Hallo zusammen,

ich versuche nun schon stundenlang meine Ring in Fhem zum laufen zu bringen. Leider bisher erfolglos.
Ein Aufruf von "bash ./bin/run-ring" direkt in Fhem bringt mir folgende Meldung ins Log: bash: ./bin/run-ring: Datei oder Verzeichnis nicht gefunden.
Abgelegt habe ich die run-ring.html (und umbenannt in run_ring.sh) und die ring.py in /opt/fhem/bin. Chown Fhem und dialout.
Ich habe Fhem in einer VM mit aktuellem Debian am laufen, aber bin leider im Linux überhaupt nicht fit. 
Beim Aufruf von "pip install git+https://github.com/tchellomello/python-ring-doorbell" kam schon eine Fehlermeldung wegen git und das er das Verzeichnis nicht findet. Git habe ich dann mit einer Anleitung in der Version 2.24.0 installiert. Python V.2.7.16 auch.
Da der Aufruf mit dem Link zu Github nicht funktionierte, habe ich wie in der git Anleitung beschrieben die Zip-Datei von Github mit wget ins /tmp heruntergeladen, ausgepackt und installiert.
Der Aufruf von "pip install fhem" funktionierte ohne Fehlermeldung.
Das Aufrufen von "python run_ring.sh" bringt folgende Fehlermeldung:
  File "run_ring.sh", line 7
    <!DOCTYPE html>
    ^
SyntaxError: invalid syntax

Hat vielleicht jemand ne Idee, wo es dran liegen könnte? Ich weiß leider nicht mehr weiter.  :(
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 02 Dezember 2019, 20:40:55
Warum sollte "bash ./bin/run-ring" eine run_ring.sh finden? Wenn einer Kevin ruft reagiert Stevie doch auch nicht?  ;D

ZitatAbgelegt habe ich die run-ring.html (und umbenannt in run_ring.sh)
Da wäre ich mal gespannt wie das aussieht. Zeig mal bitte den Inhalt der Datei in Codetags.
Titel: Antw:Ring Video Doorbell
Beitrag von: Stevie am 03 Dezember 2019, 08:25:49
Guten Morgen Otto,

danke für deine Antwort. Natürlich habe ich aus Fhem die run_ring.sh aufgerufen, sorry vergessen dran zu hängen.
Hier der Inhalt von der run_ring.sh:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com">
  <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
  <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
......
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 03 Dezember 2019, 13:20:37
Ähm Codetags!? -> https://forum.fhem.de/index.php/topic,71806.msg633579.html#msg633579

Das ist eine HTML Datei, dachte ich mir. Wie kommst Du darauf eine HTML datei als Script aufzurufen?

Meine run-ring sieht so aus:
#!/bin/bash
#run_ring.sh
#make sure the process is always running.

process=/home/pi/ring1.py

if ps ax | grep -v grep | grep $process > /dev/null
then
    echo "Process $process is still running."
    exit
else
    nohup bash -c "python $process" >/dev/null &
    echo "Process $process started."
fi

exit


Die musst Du natürlich anpassen bezüglich der ring.py
process=/home/pi/ring1.py
Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: Stevie am 03 Dezember 2019, 15:06:11
Ok, das mit den Codetags übe ich dann nochmal ;) (hab ich im Beitrag vorher geändert)
Hab nun die run_ring.sh entsprechend geändert. Vom Fhem aus kommt wieder im Log: bash: ./bin/run-ring.sh: Datei oder Verzeichnis nicht gefunden.
Ein "python run_ring.sh" bringt auf der Konsole folgende Meldung:
  File "run_ring.sh", line 5
    process=/opt/fhem/bin/ring.py
            ^
SyntaxError: invalid syntax

Gruß Stevie
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 04 Dezember 2019, 00:00:42
Du hast jetzt eventuell mehrere "Stolpersteine":
run-ring.sh heisst nicht run-ring.sh ?
user fhem darf run-ring.sh nicht lesen?
python run-ring.sh ist sinnlos! python kann keine bash Dateien verarbeiten.
python /opt/fhem/bin/ring.py wäre ein sinnvoller Aufruf.

Stevie: Ich weiß ehrlich nicht genau was Du tust und ich weiß nicht ob Du weißt was Du tust.  :o ??? :-[ :-\

Was genau ist Dein Ziel? Welcher Anleitung folgst Du? Mir scheint Du bist irgendwie seitwärts reingeschlittert ...
Ich habe es vor einiger Zeit mal so implementiert (https://forum.fhem.de/index.php/topic,75754.msg956067.html#msg956067). Kann aber nicht sagen ob das aktuell so funktioniert. Besser irgendwelchen offiziellen Quellen folgen

Titel: Antw:Ring Video Doorbell
Beitrag von: Stevie am 04 Dezember 2019, 11:48:41
Hallo Otto123,

danke für deine Hilfe. Mein Ziel ist es meine Ring Doorbell in Fhem einzubinden, damit ich auf diese reagieren kann. Eingestiegen bin ich in diesem Thread auf Seite eins und habe versucht, dass von _Markus_ umzusetzen. Leider ist dies die einzige Quelle, eine schöne Anleitung hätte mir sicherlich geholfen.
Nun habe ich nach "python /opt/fhem/bin/ring.py" dieses Reading im Ring Dummy: a7e4c13aa267_account      32181535       2019-12-04 11:05:41
Und folgende Meldung:
2019-12-04 11:05:41,558 - fhem_ring - INFO - Updating device data for device 'Haustür' in FHEM...
Unhandled exception in thread started by <function pollDevice at 0xb67533ac>
Traceback (most recent call last):
  File "/opt/fhem/bin/ring.py", line 79, in pollDevice
    srRing(dev.id+'_address ' + dev.address)
  File "/opt/fhem/bin/ring.py", line 57, in srRing
    sendFhem('setreading Ring ' + str)
  File "/opt/fhem/bin/ring.py", line 38, in sendFhem
    fh.send_cmd(str)
  File "/usr/local/lib/python2.7/dist-packages/fhem/__init__.py", line 305, in send_cmd
    self.log.debug("Sending: {}".format(msg))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 58: ordinal not in range(128)
^CTraceback (most recent call last):
  File "/opt/fhem/bin/ring.py", line 125, in <module>
    time.sleep(3)
KeyboardInterrupt


Leider passiert sonst nichts mit dem Dummy, aktualisiert die Zeit wenn ich den Befehl ausführe. Leider aber keine Reaktion auf klingeln oder Bewegung. Hast du noch einen Tipp?
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 04 Dezember 2019, 17:19:02
Ähm Codetags!? -> https://forum.fhem.de/index.php/topic,71806.msg633579.html#msg633579

Meines Wissen geht bei Ring alles mit  Sonderzeichen (üöä usw.) in die "Hose"

Klingt hier auch so:
ZitatUnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 58: ordinal not in range(128)
Titel: Antw:Ring Video Doorbell
Beitrag von: Stevie am 04 Dezember 2019, 18:14:52
Hab ich geändert, sorry!

Könnte es an meinem Passwort für Ring liegen? Da sind Sonderzeichen drin. Ich teste das mal.......
Titel: Antw:Ring Video Doorbell
Beitrag von: Stevie am 04 Dezember 2019, 19:16:21
Leider auch nicht, gleiche Fehlermeldung.

Hab nun nochmal die 2 Files von Github runtergeladen, in die ring.py meine Zugangsdaten eingetragen und ins /opt/fhem/bin gelegt.
Rechte habe ich wieder fhem und dialout genommen.
Wenn ich nun im /bin ./run_ring ausführe, erhalte ich folgende Meldung:
Process python /opt/fhem/bin/ring.py started.
Jedoch reagiert der Dummy nicht auf klingeln oder Bewegung.
Wenn ich python ring.py aufrufe, kommt folgendes:
2019-12-04 19:00:57,548 - fhem_ring - INFO - Found 1 devices.
2019-12-04 19:00:58,161 - fhem_ring - INFO - Updating device data for device 'Haustür' in FHEM...
2019-12-04 19:00:58,162 - fhem_ring - DEBUG - sending: setreading Ring_Haustür account 32781935
2019-12-04 19:00:58,163 - fhem_ring - ERROR - Unexpected error:'ascii' codec can't encode character u'\xfc' in position 21: ordinal not in range(128)
2019-12-04 19:00:58,163 - fhem_ring - ERROR - Exception occured. Retrying...
2019-12-04 19:01:03,809 - fhem_ring - INFO - Updating device data for device 'Haustür' in FHEM...
2019-12-04 19:01:03,810 - fhem_ring - DEBUG - sending: setreading Ring_Haustür account 32781935
2019-12-04 19:01:03,811 - fhem_ring - ERROR - Unexpected error:'ascii' codec can't encode character u'\xfc' in position 21: ordinal not in range(128)
2019-12-04 19:01:03,811 - fhem_ring - ERROR - Exception occured. Retrying...
2019-12-04 19:01:09,427 - fhem_ring - INFO - Updating device data for device 'Haustür' in FHEM...
2019-12-04 19:01:09,428 - fhem_ring - DEBUG - sending: setreading Ring_Haustür account 32781935
2019-12-04 19:01:09,428 - fhem_ring - ERROR - Unexpected error:'ascii' codec can't encode character u'\xfc' in position 21: ordinal not in range(128)
2019-12-04 19:01:09,429 - fhem_ring - ERROR - Exception occured. Retrying...
2019-12-04 19:01:15,152 - fhem_ring - INFO - Updating device data for device 'Haustür' in FHEM...
2019-12-04 19:01:15,153 - fhem_ring - DEBUG - sending: setreading Ring_Haustür account 32781935
2019-12-04 19:01:15,153 - fhem_ring - ERROR - Unexpected error:'ascii' codec can't encode character u'\xfc' in position 21: ordinal not in range(128)
2019-12-04 19:01:15,154 - fhem_ring - ERROR - Exception occured. Retrying...
2019-12-04 19:01:20,801 - fhem_ring - INFO - Updating device data for device 'Haustür' in FHEM...
2019-12-04 19:01:20,801 - fhem_ring - DEBUG - sending: setreading Ring_Haustür account 32781935
2019-12-04 19:01:20,802 - fhem_ring - ERROR - Unexpected error:'ascii' codec can't encode character u'\xfc' in position 21: ordinal not in range(128)
2019-12-04 19:01:20,803 - fhem_ring - ERROR - Exception occured. Retrying...
Traceback (most recent call last):
  File "ring.py", line 151, in <module>
    for k, d in devs.items(): getDeviceInfo(d)
  File "ring.py", line 79, in getDeviceInfo
    srRing('account ' + str(dev.account_id), dev)
  File "ring.py", line 70, in srRing
    sendFhem('setreading Ring_' + dev.name.replace(" ","") + ' ' + str)
  File "ring.py", line 51, in sendFhem
    fh.send_cmd(str)
  File "/usr/local/lib/python2.7/dist-packages/fhem/__init__.py", line 305, in send_cmd
    self.log.debug("Sending: {}".format(msg))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 21: ordinal not in range(128)


Gleiche Meldung mit Position 21 steht auch jetzt in der ring.log. Ich habe aber außer der Mailadresse und dem Passwort nichts geändert und kann auch nichts auffälliges finden.
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 04 Dezember 2019, 19:20:51
Deine Doorbell hat einen Umlaut im Namen. Bei mir hat das auch nicht funktioniert, da sich keine FHEM-Devices mit Umlaut anlegen lassen. Ich habe die Doorbell in Haustuer und das FHEM-Device in Ring_Doorbell umbenannt.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: Stevie am 04 Dezember 2019, 20:00:01
Hi Olli,

danke für deinen Tipp. Hab nun die Haustür im Ring-Account in Klingel umbenannt und das FHEM Device auf Ring_Klingel umbenannt.
Das Device hat jetzt ein zweites Reading bekommen. Der erste war ja "a8e2c13aa267_account" und nun ist noch ein "Account" dazu gekommen.
Leider immer noch gleiche Meldung im Log:

2019-12-04 19:58:22,250 - fhem_ring - INFO - Updating device data for device 'Klingel' in FHEM...
2019-12-04 19:58:22,250 - fhem_ring - DEBUG - sending: setreading Ring_Klingel account 32781935
2019-12-04 19:58:22,252 - fhem_ring - ERROR - Unexpected error:'ascii' codec can't encode character u'\xfc' in position 21: ordinal not in range(128)
2019-12-04 19:58:22,252 - fhem_ring - ERROR - Exception occured. Retrying...


Noch eine Idee?
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 04 Dezember 2019, 20:47:02
Ich wiederhole mich gern: Nirgendwo darf ein Zeichen wie Umlaut sein, nicht im Namen, nicht im Account, nicht in der Adresse, nicht in irgendeinem Feld. Das Script liest alles aus dem Online account aus. Ich glaube, bei mir war es dann zuletzt noch straße :)

Ich glaube es gab später mal noch eine Komponente die mit den Umlauten klar kam. Kann also sein, es hängt auch von der Version ab die Du heruntergeladen hast.

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: Stevie am 04 Dezember 2019, 21:20:43
Bingo!
In meine Adresse hat sich Tübingen in den Kreis eingetragen. Lässt sich aber nicht ändern. Jetzt wohn ich halt in Berlin  ;D
Auf jeden Fall war dies die Lösung, vielen Dank an Otto123 und Oli!
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 19 Dezember 2019, 14:00:59
Hallo,

hab seit heute Probleme die Ring Dienste zu erreichen.
genauer gesagt seit 1:00Uhr bekommt die Anfrage ein 401 Unauthorized zurück. Kann das was mit der 2 Faktoren Authentication zu tun haben?

Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 19 Dezember 2019, 21:12:56
Zitat von: nhetzke am 19 Dezember 2019, 14:00:59
Hallo,

hab seit heute Probleme die Ring Dienste zu erreichen.
genauer gesagt seit 1:00Uhr bekommt die Anfrage ein 401 Unauthorized zurück. Kann das was mit der 2 Faktoren Authentication zu tun haben?

Hab mal etwas gesucht und dabei ein (noch) offenes Issue bei github gefunden: https://github.com/tchellomello/python-ring-doorbell/issues/142
Leider ist der passende Merge Request noch nicht in den Master übernommen. ;) Wollen wir mal die Daumen drücken, dass es bald übernommen wird.
Titel: Antw:Ring Video Doorbell
Beitrag von: Tratonis am 20 Dezember 2019, 16:49:21
Hallo,

hiermit klappt das wieder: 

https://github.com/xernaj/python-ring-doorbell/archive/fix/oauth-fail-due-to-blocked-user-agent.zip#ring_doorbell==0.2.4

Grüße
Thorsten
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 20 Dezember 2019, 18:54:33
Der Pull-request wurde auch ins "Original" übernommen und ein simpler

pip install git+https://github.com/tchellomello/python-ring-doorbell@master

sorgt dafür, dass die Ring wieder in FHEM funktioniert.
Titel: Antw:Ring Video Doorbell
Beitrag von: dutzend am 20 Dezember 2019, 19:24:54
Hallo,

bei mir taucht das Reading lastCaptureURL nicht auf. Steht im Code etwas weiter unten wie die anderen Readings (z.B. lastAlertDeviceID). Kann mir jemand einen Tipp geben?

Danke René
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 24 Dezember 2019, 08:12:26
Seit Mitternacht scheint es auch mit den Update wieder nicht mehr zu laufen.

Wie sieht es bei euch aus?
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 24 Dezember 2019, 09:04:21
Bei mir leider auch nicht mehr.

Gibt auch schon ein Issue:
https://github.com/tchellomello/python-ring-doorbell/issues/146


Wenn ich es so wie im Link ändere, geht die Ring wieder.
https://github.com/tchellomello/python-ring-doorbell/issues/146#issuecomment-568663864
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 30 Dezember 2019, 15:49:41
Bei mir läuft die aktuelle Version  0.29 aus dem Master nicht mehr, da ich noch Python 2.7 einsetze. Ich habe mir mal die ring.py vorgenommen und sie so angepasst, dass sie auch mit Python3 läuft - damit geht es jetzt wieder und in der Pythonlib ist bereits ein oauth client mit drin, das sollte dann also erst mal halten.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 04 Januar 2020, 21:48:18
Mir ist nicht ganz klar, wie ich das Ganze jetzt wieder zum Laufen bekomme. Ist es richtig, dass die API nur noch mit der 2FA funktioniert? Das habe ich getan und das Skript durch diese Zeilen ergänzt.

from ring_doorbell.utils import _exists_cache, _save_cache, _read_cache

from ring_doorbell.const import (HEADERS)
HEADERS["User-Agent"] = "ring/5.21.0.5 CFNetwork/1121.2.2 Darwin/19.2.0"

from ring_doorbell.const import (
API_VERSION, API_URI, CACHE_ATTRS, CACHE_FILE,
DEVICES_ENDPOINT, HEADERS, NEW_SESSION_ENDPOINT, MSG_GENERIC_FAIL,
POST_DATA, PERSIST_TOKEN_ENDPOINT, PERSIST_TOKEN_DATA, RETRY_TOKEN,
OAUTH_ENDPOINT, OAUTH_DATA)


Aber wie geht es dann weiter? Den Bestätigungs-Code kann ich ja schlecht irgendwo eingeben.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 06 Januar 2020, 19:31:32
Bei mir funktioniert das Ganze auch weiterhin ohne 2FA ganz normal. Das Problem war ja auch nicht 2Fa, sondern Oauth...

Wenn du auf der Ring-Seite 2FA für deinen Account aktiviert hast, dann wüsste ich jetzt auch nicht, wie das gehen soll. Du müsstest du dann den 2FA-Code ja irgendwo abfragen und an die API senden. Meines Wissens ist das zwar in der Lib implementiert, aber es gibt kein Interface für die App, die mit FHEM spricht.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: speed am 11 Januar 2020, 20:45:58
Hallo,
also ich bekomme diesen Fehler :
Traceback (most recent call last):
  File "./ring.py", line 50, in <module>
    myring = Ring(ring_user, ring_pass)
TypeError: __init__() takes exactly 2 arguments (3 given)
Ich finde trotz Tante Goggle nicht die Lösung, hat einer einen Tip ?
Danke
speed
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 13 Januar 2020, 19:15:13
Moin speed,

den Fehler hatte ich auch und habe die ring.py in meinem Repo auf GitHub angepasst. U.a. läuft das jetzt mit Python3 und dein Problem wurde auch beseitigt.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: speed am 13 Januar 2020, 19:43:13
Hallo budy,
danke für die Info,scheint jetzt zu laufen.
Vielen Dank
speed

Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 15 Januar 2020, 08:24:08
Also ich komme nicht weiter. Ich habe 2FA wieder deaktiviert. Dann habe ich mir die ring.py v1.0.4 aus Deinem Repo gezogen, budy.

Wenn ich das Script folgendermaßen starte
python ./ring.py
erhalte ich die Fehlermeldung
Traceback (most recent call last):
  File "./ring.py", line 10, in <module>
    import _thread
ImportError: No module named _thread


Ich habe sowohl Python 2.7.9 als auch 3.4.2 auf meinem System.

Wenn ich das Script mit Python3 starte
python3 ./ring.py
erhalte ich diese Meldung
Traceback (most recent call last):
  File "./ring.py", line 7, in <module>
    import fhem
ImportError: No module named 'fhem'


Seltsam...

Übrigens, vor ein paar Tagen wurde mir über die Ring-App auf dem iPhone einmal ein Snapshot in einer Notification geliefert. Danach aber leider nie wieder. Ich hatte mich schon gefreut.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: speed am 15 Januar 2020, 09:23:06
Morgen,

das Problem hatte ich auch, erst als ich Python 3 upgedatet habe lief alles wie es soll.
gruß
speed
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 15 Januar 2020, 10:49:35
Ich habe Python nach dieser https://www.vultr.com/docs/upgrade-python-on-debian (https://www.vultr.com/docs/upgrade-python-on-debian) Anleitung auf v3.7.6 gezogen. Leider hat sich an den Fehlermeldungen nichts geändert.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: speed am 15 Januar 2020, 13:03:41
gestartet wir bei mir so python3 /opt/fhem/ring.py
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 15 Januar 2020, 19:35:49
Moin,


ich habe vorhin noch eine Korrektur eingecheckt, da ich bei der Umstellung auf Python3 das Threadding nicht richtig umgestellt hatte. Das führte bei mir dazu, dass wenn es klingelte, FHEM nicht benachrichtigt wurde. Das ist jetzt auch behoben.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 16 Januar 2020, 09:51:33
Hallo budy,

ich hab mir aus dem Git deine Version geholt und nach der Anleitung installiert.
Ich bekomme nun leider diesen Fehler:

Traceback (most recent call last):
  File "ring.py", line 200, in <module>
    tmp = list(myring.stickup_cams + myring.doorbells)
AttributeError: 'Ring' object has no attribute 'stickup_cams'
pi@raspberrypi:/opt/fhem/bin $


zum Testen starte ich das ganze so:

/opt/fhem/bin $ sudo -u fhem python ring.py


Vielleicht hast du noch einen Tip für mich.

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 16 Januar 2020, 13:26:33
Moin pflock_y,

der Fehler kommt aus der ring-Library, welche du mit pip3 installiert hast. Ist die Library aktuell und setzt du per default Python 3 ein?

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 16 Januar 2020, 14:00:59
 ich hab die hier installiert:
pip3 install git+https://github.com/tchellomello/python-ring-doorbell


Das wirft mir der PI aus:

pi@raspberrypi:/opt/fhem/bin $ python --version
Python 2.7.16
pi@raspberrypi:/opt/fhem/bin $ python3 --version
Python 3.7.3


Wenn ich das richtig deute sind beide Versionen drauf, welche ich aber per default nutze weiss ich nicht.

mit sudo -u fhem python ring.py
nutze ich die normale Version,
und mitsudo -u fhem python3 ring.py
nutze ich Python3.

Richtig?


vg
pflock_y

Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 16 Januar 2020, 20:10:05
Korrekt - wenn du beide drauf hast, musst du das explizit mit python3 aufrufen. Wenn du nur python nutzt und die Lib gar nicht im Python-2 Pfad installiert hast, dann ist der Fehler verständlich.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 16 Januar 2020, 23:10:14
hallo budy,
ich komm nicht weiter. :(

Ich hab jetzt mal mit
pip3 uninstall ring-doorbell
die ring-Library deinstalliert. Für ich jetzt mit:
python3 ring/ring.py
aus, kommt, selbstverständlich, folgende Fehlermeldung:
pi@raspberrypi:~ $ python3 ring/ring.py
Traceback (most recent call last):
  File "ring/ring.py", line 12, in <module>
    from ring_doorbell import Ring, Auth
ModuleNotFoundError: No module named 'ring_doorbell'

installiere ich die ring-Library wieder kommt der alte Fehler wieder.
pi@raspberrypi:~ $ python3 ring/ring.py
Traceback (most recent call last):
  File "ring/ring.py", line 200, in <module>
    tmp = list(myring.stickup_cams + myring.doorbells)
AttributeError: 'Ring' object has no attribute 'stickup_cams'


Kann es am Raspberry Pi4 und Raspbian Buster liegen?

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 17 Januar 2020, 06:16:25
Moin pflock_y,

hmm... hast du denn solche Kameras? Das wird ein Problem in der Lib sein. Da ich diese Teile nicht habe, kann ich das nicht so einfach nachvollziehen. Ich checke da nachher bei meiner Version mal was zu.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 17 Januar 2020, 07:56:59
Moin budy,

ich hab nur die Video Doorbell, welche auch bestens mit FHEM funktioniert hatte bis die Umstellung seitens Ring kam.

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 17 Januar 2020, 11:53:42
Jemand eine Idee zu meinem Problem?

Zitat von: OliS. am 15 Januar 2020, 10:49:35
Ich habe Python nach dieser https://www.vultr.com/docs/upgrade-python-on-debian (https://www.vultr.com/docs/upgrade-python-on-debian) Anleitung auf v3.7.6 gezogen. Leider hat sich an den Fehlermeldungen nichts geändert.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 17 Januar 2020, 16:40:07
Moin pflock_y,

Zitat von: pflock_y am 17 Januar 2020, 07:56:59
Moin budy,

ich hab nur die Video Doorbell, welche auch bestens mit FHEM funktioniert hatte bis die Umstellung seitens Ring kam.

vg
pflock_y

hast du die 2FA bei Ring aktiviert?

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 17 Januar 2020, 16:42:54
Zitat von: OliS. am 17 Januar 2020, 11:53:42
Jemand eine Idee zu meinem Problem?

Wenn du Python3 installierst, dann musst du auch python-fhem installieren...

So à la:

pip3 install fhem
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 17 Januar 2020, 20:30:57
Moin pflock_y,

Zitat von: pflock_y am 16 Januar 2020, 23:10:14
hallo budy,
ich komm nicht weiter. :(

Ich hab jetzt mal mit
pip3 uninstall ring-doorbell
die ring-Library deinstalliert. Für ich jetzt mit:
python3 ring/ring.py
aus, kommt, selbstverständlich, folgende Fehlermeldung:
pi@raspberrypi:~ $ python3 ring/ring.py
Traceback (most recent call last):
  File "ring/ring.py", line 12, in <module>
    from ring_doorbell import Ring, Auth
ModuleNotFoundError: No module named 'ring_doorbell'

installiere ich die ring-Library wieder kommt der alte Fehler wieder.

pi@raspberrypi:~ $ python3 ring/ring.py
Traceback (most recent call last):
  File "ring/ring.py", line 200, in <module>
    tmp = list(myring.stickup_cams + myring.doorbells)
AttributeError: 'Ring' object has no attribute 'stickup_cams'


Kann es am Raspberry Pi4 und Raspbian Buster liegen?

vg
pflock_y

Du kannst mal in Zeile 200 einfach die Abfrage auf die stickup_cams herausnehmen, das sieht dann so aus:

tmp = list(myring.doorbells)

Wenn du das Teil dann startest und die stattdessen einen Fehler bekommst, dass das attr myring.doorbells nicht kennt, dann stimmt, was mit der Installation der Lib nicht.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 17 Januar 2020, 20:33:21
Naben budy,

Zitat von: budy am 17 Januar 2020, 16:40:07
Moin pflock_y,

hast du die 2FA bei Ring aktiviert?

Gruß,
budy

Ne, hatte ich mit Absicht nicht gemacht. Ich hab mir schon gedacht das es damit etwas Probleme gibt.


ABER

Ich hatte heute Vormittag etwas Zeit und hab mir einen Pi 3 vorgenommen mit Jessy drauf.
Ich habe mir die "alte" ring.py von Otto123 von hier:
https://forum.fhem.de/index.php/topic,75754.msg937804/topicseen.html#msg937804 (https://forum.fhem.de/index.php/topic,75754.msg937804/topicseen.html#msg937804)
kopiert.
Und was soll ich sagen, es läuft!!!
Ich weiss noch nicht warum aber es läuft. Würde es aber gern wissen. Vielleicht liegt es doch am Pi4 mit Buster.

vg
pflock_y


Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 17 Januar 2020, 20:34:56
Zitat von: budy am 17 Januar 2020, 20:30:57
Moin pflock_y,

Du kannst mal in Zeile 200 einfach die Abfrage auf die stickup_cams herausnehmen, das sieht dann so aus:

tmp = list(myring.doorbells)

Wenn du das Teil dann startest und die stattdessen einen Fehler bekommst, dass das attr myring.doorbells nicht kennt, dann stimmt, was mit der Installation der Lib nicht.

Gruß,
budy

Hatte ich zwischenzeitlich auch schon.
da wird myring.doorbells angemeckert
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 17 Januar 2020, 20:50:03
@budy

gibt es irgendeine Erklärung dafür?

Ich hab dann auch die gleichen Schritte, die ich auf dem Pi3 mit Jessy, auf dem Pi4 mit Buster ausgeführt. Auf dem Pi4 bekomme ich es nicht zum laufen. Deutet für mich auf Buster hin.
Der nächste Test ist mal den Pi4 mit Jessy laufen zu lassen und dann noch mal die Ring drauf.

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 17 Januar 2020, 22:09:09
Hi pflock_y,

Zitat von: pflock_y am 17 Januar 2020, 20:50:03
@budy

gibt es irgendeine Erklärung dafür?

Ich hab dann auch die gleichen Schritte, die ich auf dem Pi3 mit Jessy, auf dem Pi4 mit Buster ausgeführt. Auf dem Pi4 bekomme ich es nicht zum laufen. Deutet für mich auf Buster hin.
Der nächste Test ist mal den Pi4 mit Jessy laufen zu lassen und dann noch mal die Ring drauf.

vg
pflock_y

das weiss ich aktuell auch nicht. Auf meiner VM läuft Debian 9.9 Stretch... aber irgendwas muss mit der Lib sein. Kannst du mal die ganze Ausgabe posten? Wenn er die Lib nicht mag, dann müsste Python das irgendwie ja ansagen...

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 18 Januar 2020, 10:33:30
Moin budy,
ich hab grad einen neuen Pi aufgesetzt.
Pi 3 Model B Vi. 2 mit Raspbian stretch.

alles andere steht hier:


pi@raspberrypi:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"


pi@raspberrypi:~ $ pip3 install git+https://github.com/tchellomello/python-ring-doorbell
Collecting git+https://github.com/tchellomello/python-ring-doorbell
  Cloning https://github.com/tchellomello/python-ring-doorbell to /tmp/pip-3q772mrz-build
Collecting oauthlib==3.1.0 (from ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/05/57/ce2e7a8fa7c0afb54a0581b14a65b56e62b5759dbc98e80627142b8a3704/oauthlib-3.1.0-py2.py3-none-any.whl (147kB)
    100% |████████████████████████████████| 153kB 1.2MB/s
Collecting pytz (from ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl (509kB)
    100% |████████████████████████████████| 512kB 562kB/s
Collecting requests-oauthlib==1.3.0 (from ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/a3/12/b92740d845ab62ea4edf04d2f4164d82532b5a0b03836d4d4e71c6f3d379/requests_oauthlib-1.3.0-py2.py3-none-any.whl
Collecting requests==2.22.0 (from ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
    100% |████████████████████████████████| 61kB 1.9MB/s
Collecting certifi>=2017.4.17 (from requests==2.22.0->ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/b9/63/df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99/certifi-2019.11.28-py2.py3-none-any.whl (156kB)
    100% |████████████████████████████████| 163kB 1.4MB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests==2.22.0->ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 1.6MB/s
Collecting idna<2.9,>=2.5 (from requests==2.22.0->ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
    100% |████████████████████████████████| 61kB 2.0MB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests==2.22.0->ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl (125kB)
    100% |████████████████████████████████| 133kB 1.7MB/s
Installing collected packages: oauthlib, pytz, certifi, chardet, idna, urllib3, requests, requests-oauthlib, ring-doorbell
  Running setup.py install for ring-doorbell ... done
Successfully installed certifi-2019.11.28 chardet-3.0.4 idna-2.8 oauthlib-3.1.0 pytz-2019.3 requests-2.22.0 requests-oauthlib-1.3.0 ring-doorbell-0.6.0 urllib3-1.25.7


pi@raspberrypi:~ $ pip3 install fhem
Collecting fhem
  Downloading https://www.piwheels.org/simple/fhem/fhem-0.6.3-py2.py3-none-any.whl
Installing collected packages: fhem
Successfully installed fhem-0.6.3


pi@raspberrypi:~ $ cd ring-fhem-master/
pi@raspberrypi:~/ring-fhem-master $ ls -lah
insgesamt 28K
drwxr-xr-x  2 pi pi 4,0K Jan 18 10:23 .
drwxr-xr-x 16 pi pi 4,0K Jan 18 10:23 ..
-rw-r--r--  1 pi pi 1,1K Jan 18 10:23 Changelog.md
-rw-r--r--  1 pi pi 2,1K Jan 18 10:23 README.md
-rw-r--r--  1 pi pi 7,3K Jan 18 10:23 ring.py
-rwxr-xr-x  1 pi pi  208 Jan 18 10:23 run_ring


pi@raspberrypi:~/ring-fhem-master $ python3 ring.py
Traceback (most recent call last):
  File "ring.py", line 200, in <module>
    tmp = list(myring.stickup_cams + myring.doorbells)
AttributeError: 'Ring' object has no attribute 'stickup_cams'


pi@raspberrypi:~/ring-fhem-master $


ring.py und run_ring hab ich frisch aus dem Git geladen.

Wenn ich das alles richtig deute läuft die Installation ohne Probleme durch. Der Fehler beim starten ist leider der selbe.

Nächster Test ist ohne python3.

edit:

Test mit "normalem" python und der ring.py aus deinem Git ergibt:
pi@raspberrypi:~/ring-fhem-master $ python ring.py
Traceback (most recent call last):
  File "ring.py", line 10, in <module>
    import _thread
ImportError: No module named _thread
pi@raspberrypi:~/ring-fhem-master $


Was vielleicht normal ist, da _thread, nicht mit installiert ist.

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 18 Januar 2020, 11:18:22
Zitat von: budy am 17 Januar 2020, 16:42:54
Wenn du Python3 installierst, dann musst du auch python-fhem installieren...

So à la:

pip3 install fhem

Das war der entscheidende Hinweis. Leider bekomme ich nun auch die selbe Fehlermeldung wie pflock_y angezeigt.

Traceback (most recent call last):
  File "/opt/fhem/ring.py", line 200, in <module>
    tmp = list(myring.stickup_cams + myring.doorbells)
AttributeError: 'Ring' object has no attribute 'stickup_cams'


Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 18 Januar 2020, 11:34:35
Zitat von: pflock_y am 18 Januar 2020, 10:33:30
Moin budy,
ich hab grad einen neuen Pi aufgesetzt.
Pi 3 Model B Vi. 2 mit Raspbian stretch.

alles andere steht hier:


pi@raspberrypi:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"


pi@raspberrypi:~ $ pip3 install git+https://github.com/tchellomello/python-ring-doorbell
Collecting git+https://github.com/tchellomello/python-ring-doorbell
  Cloning https://github.com/tchellomello/python-ring-doorbell to /tmp/pip-3q772mrz-build
Collecting oauthlib==3.1.0 (from ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/05/57/ce2e7a8fa7c0afb54a0581b14a65b56e62b5759dbc98e80627142b8a3704/oauthlib-3.1.0-py2.py3-none-any.whl (147kB)
    100% |████████████████████████████████| 153kB 1.2MB/s
Collecting pytz (from ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl (509kB)
    100% |████████████████████████████████| 512kB 562kB/s
Collecting requests-oauthlib==1.3.0 (from ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/a3/12/b92740d845ab62ea4edf04d2f4164d82532b5a0b03836d4d4e71c6f3d379/requests_oauthlib-1.3.0-py2.py3-none-any.whl
Collecting requests==2.22.0 (from ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
    100% |████████████████████████████████| 61kB 1.9MB/s
Collecting certifi>=2017.4.17 (from requests==2.22.0->ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/b9/63/df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99/certifi-2019.11.28-py2.py3-none-any.whl (156kB)
    100% |████████████████████████████████| 163kB 1.4MB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests==2.22.0->ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 1.6MB/s
Collecting idna<2.9,>=2.5 (from requests==2.22.0->ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
    100% |████████████████████████████████| 61kB 2.0MB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests==2.22.0->ring-doorbell==0.6.0)
  Downloading https://files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl (125kB)
    100% |████████████████████████████████| 133kB 1.7MB/s
Installing collected packages: oauthlib, pytz, certifi, chardet, idna, urllib3, requests, requests-oauthlib, ring-doorbell
  Running setup.py install for ring-doorbell ... done
Successfully installed certifi-2019.11.28 chardet-3.0.4 idna-2.8 oauthlib-3.1.0 pytz-2019.3 requests-2.22.0 requests-oauthlib-1.3.0 ring-doorbell-0.6.0 urllib3-1.25.7


pi@raspberrypi:~ $ pip3 install fhem
Collecting fhem
  Downloading https://www.piwheels.org/simple/fhem/fhem-0.6.3-py2.py3-none-any.whl
Installing collected packages: fhem
Successfully installed fhem-0.6.3


pi@raspberrypi:~ $ cd ring-fhem-master/
pi@raspberrypi:~/ring-fhem-master $ ls -lah
insgesamt 28K
drwxr-xr-x  2 pi pi 4,0K Jan 18 10:23 .
drwxr-xr-x 16 pi pi 4,0K Jan 18 10:23 ..
-rw-r--r--  1 pi pi 1,1K Jan 18 10:23 Changelog.md
-rw-r--r--  1 pi pi 2,1K Jan 18 10:23 README.md
-rw-r--r--  1 pi pi 7,3K Jan 18 10:23 ring.py
-rwxr-xr-x  1 pi pi  208 Jan 18 10:23 run_ring


pi@raspberrypi:~/ring-fhem-master $ python3 ring.py
Traceback (most recent call last):
  File "ring.py", line 200, in <module>
    tmp = list(myring.stickup_cams + myring.doorbells)
AttributeError: 'Ring' object has no attribute 'stickup_cams'


pi@raspberrypi:~/ring-fhem-master $


ring.py und run_ring hab ich frisch aus dem Git geladen.

Wenn ich das alles richtig deute läuft die Installation ohne Probleme durch. Der Fehler beim starten ist leider der selbe.

Nächster Test ist ohne python3.

vg
pflock_y

Uhh... das scheint eher ein Problem mit der aktuellen Library zu sein:

https://github.com/tchellomello/python-ring-doorbell/issues/188

Ich würde mal versuchen eine andere Version auszuckecken - ich meine die 0.4 funktioniert bei mir. Ich habe das in den letzten Tagen nicht aktualisiert, weil ich damit keine Probleme hatte.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 18 Januar 2020, 14:32:40
genau das ist es!!!!!

mit:
pip3 install git+https://github.com/tchellomello/python-ring-doorbell@0.4.0

läuft es mit deiner ring.py

Der Beweis:
pi@raspberrypi:~ $ pip3 install git+https://github.com/tchellomello/python-ring-doorbell@0.4.0
Collecting git+https://github.com/tchellomello/python-ring-doorbell@0.4.0
  Cloning https://github.com/tchellomello/python-ring-doorbell (to 0.4.0) to /tmp/pip-sx50dkij-build
Collecting oauthlib==3.1.0 (from ring-doorbell==0.4.0)
  Using cached https://files.pythonhosted.org/packages/05/57/ce2e7a8fa7c0afb54a0581b14a65b56e62b5759dbc98e80627142b8a3704/oauthlib-3.1.0-py2.py3-none-any.whl
Collecting pytz (from ring-doorbell==0.4.0)
  Using cached https://files.pythonhosted.org/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl
Collecting requests-oauthlib==1.3.0 (from ring-doorbell==0.4.0)
  Using cached https://files.pythonhosted.org/packages/a3/12/b92740d845ab62ea4edf04d2f4164d82532b5a0b03836d4d4e71c6f3d379/requests_oauthlib-1.3.0-py2.py3-none-any.whl
Collecting requests==2.22.0 (from ring-doorbell==0.4.0)
  Using cached https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests==2.22.0->ring-doorbell==0.4.0)
  Using cached https://files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests==2.22.0->ring-doorbell==0.4.0)
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests==2.22.0->ring-doorbell==0.4.0)
  Using cached https://files.pythonhosted.org/packages/b9/63/df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99/certifi-2019.11.28-py2.py3-none-any.whl
Collecting idna<2.9,>=2.5 (from requests==2.22.0->ring-doorbell==0.4.0)
  Using cached https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl
Installing collected packages: oauthlib, pytz, urllib3, chardet, certifi, idna, requests, requests-oauthlib, ring-doorbell
  Running setup.py install for ring-doorbell ... done
Successfully installed certifi-2019.11.28 chardet-3.0.4 idna-2.8 oauthlib-3.1.0 pytz-2019.3 requests-2.22.0 requests-oauthlib-1.3.0 ring-doorbell-0.4.0 urllib3-1.25.7
pi@raspberrypi:~ $ pip3 install fhem
Collecting fhem
  Downloading https://www.piwheels.org/simple/fhem/fhem-0.6.3-py2.py3-none-any.whl
Installing collected packages: fhem
Successfully installed fhem-0.6.3
pi@raspberrypi:~ $ cd ring-fhem-master/
pi@raspberrypi:~/ring-fhem-master $ python3 ring.py
2020-01-18 14:30:03,630 - fhem_ring - INFO - Found 1 devices.
2020-01-18 14:30:04,125 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2020-01-18 14:30:04,126 - fhem_ring - DEBUG - sending: setreading Ring_Haustuer account ......
........


vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 18 Januar 2020, 14:38:16
@Oli

Zitat von: OliS. am 18 Januar 2020, 11:18:22
Das war der entscheidende Hinweis. Leider bekomme ich nun auch die selbe Fehlermeldung wie pflock_y angezeigt.

Traceback (most recent call last):
  File "/opt/fhem/ring.py", line 200, in <module>
    tmp = list(myring.stickup_cams + myring.doorbells)
AttributeError: 'Ring' object has no attribute 'stickup_cams'


Oli

Deinstalliere mal die doorbell lib 0.6.0 mit:
pip3 uninstall ring-doorbell

dann die version 0.4.0 installieren, mit:
pip3 install git+https://github.com/tchellomello/python-ring-doorbell@0.4.0

Dann sollte alles laufen.
eventuell musst du die Deinstallation mit sudo ... oder sudo -u fhem ... machen. Kommt drauf an wie du es installiert hast.

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 18 Januar 2020, 14:39:44
Moin pflock_y,

Zitat von: pflock_y am 18 Januar 2020, 14:32:40
genau das ist es!!!!!

mit:
pip3 install git+https://github.com/tchellomello/python-ring-doorbell@0.4.0

läuft es mit deiner ring.py

sehr schön - da ist aktuell ganz schön Bewegung in dem Teil. Ich muss mal sehen, ob ich es schaffe da immer auf dem Laufenden zu bleiben, denn solange die Anlage das tut, was sie soll, kümmere ich mich gerne auch um andere Dinge...  ;)

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 18 Januar 2020, 14:40:42
Version 0.5.0 geht auch. :)



@budy
Vielen dank für die Unterstützung!!!!!
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 18 Januar 2020, 17:04:23
Kann ich so bestätigen. Die 0.5.0 läuft bei mir. Von mir auch vielen Dank für die Hilfe.

Zitatda ist aktuell ganz schön Bewegung in dem Teil.

Ja, wie gesagt, letzten habe ich sogar mal kurz einen Snapshot mit einer Notification bekommen. Das wäre natürlich wünschenswert, wenn das implementiert würde.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 20 Januar 2020, 12:30:33
Heads-UP! Die nächste Version der Python-Lib für die Ring wird nur noch Python 3.6+ supporten! Ich werde das mal die Tage testen und auch meinen Code entsprechend der neuen Version im Master anpassen.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 21 Januar 2020, 14:09:24
Danke.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 23 Januar 2020, 16:25:12
Moin budy,

ich weiss nicht recht ob es an mir liegt, aber seit dem 21.01.2020 abends kommen bei mir keine motion readings oder Videos mehr an.
Wenn ich in die Ring app schaue, wurden viele Bewegungen Registriert.
Alle anderen Readings werden aktualisiert. 

Ring Version ist bei mir aktuell die 0.4.0, 0.5.0 kommt auch nichts.

vg
rené

Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 23 Januar 2020, 17:23:42
Ich bin mir gerade unsicher. Aber gibt es überhaupt ein Reading "motion"? Es gibt doch bloß das Reading "lastAlertType" welches die Werte "motion" und "ring" annehmen können. Und die funktionieren bei mir nach wie vor. Ich hatte auch die 0.5.0 bei mir installiert.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 23 Januar 2020, 18:24:32
@Oli

ja hast ja recht  ::), motion als reading gibt es nicht. Hab mich blöd, zwischen Tür und Angel auf Arbeit, blöd ausgedrückt.

Im Anhang sieht man es besser.

Ich hab auch die Version 0.4.0 deinstalliert und die Version 0.5.0 installiert, leider keine Änderung.

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 24 Januar 2020, 16:10:14
Ich kann dazu nichts sagen. Bei mir funktioniert es mit der 0.5.0 nach wie vor. Das Reading "lastCaptureURL" habe ich bei mir auch nicht. Aber das schiebe ich darauf, dass ich keinen kostenpflichtigen Account habe.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 24 Januar 2020, 17:41:02
Kommen denn bei dir motion Benachrichtigungen an?
bei mir hat es grad geklingelt, und sieh da Readings kommen.
Nur eben nicht die anderen readings.
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 24 Januar 2020, 20:07:06
Ja, wie gesagt, alle bei mir vorhandenen Readings werden aktualisiert. Auch das Reading ,,lastAlertType", welches das motion/ring/none liefert.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 25 Januar 2020, 10:02:14
Guten Morgen zusammen,

Ich hab gestern Abend den Ring Dummy in FHEM gelöscht und nach einem restart wieder hinzugefügt. Es kommen alle readings,
WifiName, WifiRSSI, account, address, battery, connectionStatus, doorbellType, family, id, name, ringVolume, state, timezone,
an.
Nur leider nicht die wichtigen wie:
lastAlertType, lastCaptureURL, lastDingVideo, lastMotionVideo


Ich werde noch weiter Testen, es hat ja mal funktioniert.


vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 25 Januar 2020, 10:39:43
Zitat von: OliS. am 18 Januar 2020, 17:04:23
Ja, wie gesagt, letzten habe ich sogar mal kurz einen Snapshot mit einer Notification bekommen. Das wäre natürlich wünschenswert, wenn das implementiert würde.
Woher kam den der snapshot? Aus der Ring app? Homekit? Oder wo/wie genau?

Danke & Gruß,
Tobi


Gesendet von iPhone mit Tapatalk
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 25 Januar 2020, 13:34:23
Der kam aus der Ring-App. Allerdings nur einmal und dann nie wieder.
Aber das ist so ein naheliegendes Feature, dass ich es für sehr wahrscheinlich halte, dass das kommen wird.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 25 Januar 2020, 15:40:57
Zitat von: OliS. am 25 Januar 2020, 13:34:23
Aber das ist so ein naheliegendes Feature, dass ich es für sehr wahrscheinlich halte, dass das kommen wird.

Stimmt, es gab auch irgendwann sogar schon mal was auf der applewatch, war dann aber auch wieder weg. Und ich hab meine Klingel jetzt so um die 2 Jahre und warte seitdem auf sowas ;)


Gesendet von iPhone mit Tapatalk
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 02 Februar 2020, 10:00:52
Zitat von: pflock_y am 25 Januar 2020, 10:02:14
Nur leider nicht die wichtigen wie:
lastAlertType, lastCaptureURL, lastDingVideo, lastMotionVideo


Ich werde noch weiter Testen, es hat ja mal funktioniert.

Ich hab leider das gleiche "Problem".
Ich hab den Raspi neu aufsetzen müssen weil mir die SD verreckt ist und bin gleich auf eine HDD ungestiegen.
Bei mir ist also alles frisch aufgespielt. Das Script läuft mit den Login Daten als "Nachbar".
Für mein Stick Up Cam bekommen ich die Trigger, für die Doorbell 2 nicht.
Den Video Link bekomm ich gar nicht, weder für die eine noch für die andere Cam - das hatte ich bis vor kurzen aber auf in der ring.py ausdokumentiert, ich weiß daher leider nicht wie lange das schon nicht (mehr) funktioniert.
Titel: Antw:Ring Video Doorbell
Beitrag von: Screambear am 07 Februar 2020, 12:24:18
Hallo,

ich möchte gerne meine Doorbell 2 in Fhem integreieren und habe aber vor einiger zeit mal probiert aber nicht hinbekommen.

Gibt es für den aktuellen Stand eine art Step-by-Step anleitung wie ich diese in mein Fhem integriert bekomme?

Aktuell sind die Ring Produkte ja a8uch im angebot und ich überlege, wenn ich die Bewegungsmeldung ausgelesen bekomme, mit noch eine Stickup-Cam für den Garten zu kaufen.


Gruß und danke, Screambear
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 08 Februar 2020, 12:31:11
Hallo guten Morgen,

wo genau kann ich denn die ring.py von Budy finden?
Habe die Suche bei Google und Git bemüht aber leider ohne Ergebnis.


https://forum.fhem.de/index.php/topic,75754.60.html / https://github.com/budachst/ring-fhem

Viele Grüße

Marko
Titel: Antw:Ring Video Doorbell
Beitrag von: Screambear am 09 Februar 2020, 16:02:50
So... nach sehr langen hin und her und system fast zerschießen habe ich es nun soweit hinbekommen das ich schon mal ein paar readings bekomme. allerding muss ich die ring.py immer mit "sudo python3.7 ring.py" ausführen. das kann ja nicht ganz richtig sein oder!?

welche daten muss ich euch liefern das ihr mir weiterhelfen könnt?!

update:

das wird mir ausgegeben. die log existiert aber.
userrechte etc habe ich keine geändert.

pi@fhemserver:/opt/fhem/bin $ python3 /opt/fhem/bin/ring.py
Traceback (most recent call last):
  File "/opt/fhem/bin/ring.py", line 34, in <module>
    fh = logging.FileHandler('ring.log')
  File "/usr/lib/python3.5/logging/__init__.py", line 1009, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python3.5/logging/__init__.py", line 1038, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/opt/fhem/bin/ring.log'


das sind die rechte:

pi@fhemserver:/opt/fhem/bin $ ls -la
insgesamt 28
drwxr-xr-x  2 fhem dialout 4096 Feb  9 15:46 .
drwxrwxrwx 13 fhem dialout 4096 Jan 30 20:56 ..
-rw-r--r--  1 root root    7728 Feb  9 15:56 ring.log
-rw-r--r--  1 pi   pi      7379 Feb  9 12:15 ring.py
-rw-r--r--  1 pi   pi       209 Feb  9 16:08 run_ring


da sehe ich gerade ich hatte eben noch python 3.7.4 drauf... das wird mit bei den versionen ausgegeben.

pi@fhemserver:/opt/fhem/bin $ python3 -V
Python 3.5.3
pi@fhemserver:/opt/fhem/bin $ python3.7 -V
Python 3.7.4
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 10 Februar 2020, 08:36:05
Hallo Screambear,

erstens fällt mir auf das die ring Dateien nicht die Rechte von fhem haben.
Bei mir sieht es so aus:
pi@fhem2fhem-pi:/opt/fhem/bin $ ls -lah
insgesamt 236K
drwxr-xr-x  2 fhem dialout 4,0K Feb  6 10:36 .
drwxr-xr-x 15 fhem dialout 4,0K Feb  6 10:37 ..
-rw-r--r--  1 fhem dialout 5,4K Feb  5 08:58 ring1.py
-rw-r--r--  1 fhem dialout 5,7K Feb  5 09:32 ring3.py
-rw-r--r--  1 fhem dialout 6,7K Feb  6 10:36 ring4.py
-rw-r--r--  1 fhem dialout 154K Feb  5 10:02 ring.log
-rw-r--r--  1 fhem dialout  20K Jan 28 08:03 ring_old.log
-rw-r--r--  1 fhem dialout 5,1K Jan 26 10:06 ring_old.py
-rw-r--r--  1 fhem dialout 7,3K Feb  3 18:59 ring.py
-rwxr-xr-x  1 fhem dialout  210 Feb  5 09:55 run_ring
-rwxr-xr-x  1 fhem dialout  220 Jan 25 10:15 run_ring_old
pi@fhem2fhem-pi:/opt/fhem/bin $


Lass dich nicht irritieren von den vielen Dateien, ich hab verschiedene Versionen zum testen drauf.
Die Rechte hab ich angepasst mit:
sudo chown fhem:dialout ring.py run_ring ring.log

Starten tu ich das ganze mit:
sudo -u fhem python ring4.py

Automatisch startet das ganze durch den Eintrag als crontab mit:
sudo -u fhem crontab -e
hier dann:

@reboot /opt/fhem/bin/run_ring
@hourly /opt/fhem/bin/run_ring


Da ich komischerweise Probleme mit Python 3 und Budy seiner Ring version von hier, https://github.com/budachst/ring-fhem (https://github.com/budachst/ring-fhem) habe,
nutze ich "normales" python.
Meine ring.py sieht aktuell so aus:

from ring_doorbell import Ring
import time
import fhem
import logging
from thread import start_new_thread, allocate_lock


# CONFIG
ring_user = 'ringuser@blabla.com'
ring_pass = 'password'
fhem_ip   = '127.0.0.1'
fhem_port = 7072 # Telnet Port
log_level = logging.DEBUG #CRITICAL #DEBUG
fhem_path = '/opt/fhem/www/ring/' # for video downloads
POLLS     = 2 # Poll every x seconds

# LOGGING
logger = logging.getLogger('ring_doorbell.doorbot')
logger.setLevel(log_level)

# create file handler which logs even debug messages
fh = logging.FileHandler('ring.log')
fh.setLevel(logging.DEBUG)

# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
fh.setFormatter(formatter)

# add the handlers to the logger
logger.addHandler(fh)
logger.addHandler(ch)

logger = logging.getLogger('fhem_ring')
logger.setLevel(log_level)
logger.addHandler(ch)
logger.addHandler(fh)


# Connecting to RING.com
myring = Ring(ring_user, ring_pass)

fh = fhem.Fhem(fhem_ip, fhem_port)

def sendFhem(str):
    logger.debug("sending: " + str)
    global fh
    fh.send_cmd(str)

def askFhemForReading(dev, reading):
    logger.debug("ask fhem for reading " + reading + " from device " + dev)
    return fh.get_dev_reading(dev, reading)

def askFhemForAttr(dev, attr, default):
    logger.debug("ask fhem for attribute "+attr+" from device "+dev+" (default: "+default+")")
    fh.send_cmd('{AttrVal("'+dev+'","'+attr+'","'+default+'")}')
    data = fh.sock.recv(32000)
    return data

def setRing(str, dev):
    sendFhem('set Ring_' + dev.name.replace(" ","") + ' ' + str)

def attrRing(str, dev):
    sendFhem('attr Ring_' + dev.name.replace(" ","") + ' ' + str)

def srRing(str, dev):
    sendFhem('setreading Ring_' + dev.name.replace(" ","") + ' ' + str)

num_threads = 0
thread_started = False
lock = allocate_lock()

def getDeviceInfo(dev):
    dev.update()
    logger.info("Updating device data for device '"+dev.name+"' in FHEM...")
    srRing('account ' + str(dev.account_id), dev)
    srRing('address ' + str(dev.address), dev)
    srRing('family ' + str(dev.family), dev)
    srRing('id ' + str(dev.id), dev)
    srRing('name ' + str(dev.name), dev)
    srRing('timezone ' + str(dev.timezone), dev)
    srRing('doorbellType ' + str(dev.existing_doorbell_type), dev)
    srRing('battery ' + str(dev.battery_life), dev)
    srRing('ringVolume ' + str(dev.volume), dev)
    srRing('connectionStatus ' + str(dev.connection_status), dev)
    srRing('WifiName ' + str(dev.wifi_name), dev)
    srRing('WifiRSSI ' + str(dev.wifi_signal_strength), dev)
   

def pollDevices():
    logger.info("Polling for events.")
    global devs

    i=0
    while 1:
        for k, poll_device in devs.items():
            logger.debug("Polling for events with '" + poll_device.name + "'.")
            if poll_device.check_alerts() and poll_device.alert:
                dev = devs[poll_device.alert.get('doorbot_id')]
                logger.info("Alert detected at '" + dev.name + "'.")
                logger.debug("Alert detected at '" + dev.name + "' via '" + poll_device.name + "'.")
                alertDevice(dev,poll_device.alert)
            time.sleep(POLLS)
        i+=1
        if i>600:
            break

def findHistoryItem(historyArry,id):
    ret = None
    for singleItem in historyArry:
        if (singleItem['id']==id):
            ret = singleItem
            break
    return ret


def alertDevice(dev,alert):
    srRing('lastAlertDeviceID ' + str(dev.id), dev)
    srRing('lastAlertDeviceAccountID ' + str(dev.account_id), dev)
    srRing('lastAlertDeviceName ' + str(dev.name), dev)
    srRing('lastAlertSipTo ' + str(alert.get('sip_to')), dev)
    srRing('lastAlertSipToken ' + str(alert.get('sip_token')), dev)
   
    lastAlertID = alert.get('id')
    lastAlertKind = alert.get('kind')
    logger.debug("lastAlertID:"+str(lastAlertID))
    logger.debug("lastAlertKind:"+str(lastAlertKind))
   
    if (lastAlertKind == 'ding') or (lastAlertKind == 'motion'):
        videoIsReadyForDownload = None
        counti = 1
        while (videoIsReadyForDownload is None):
            logger.debug(str(counti) + ". Try to find hitory and video in history data list")
            logger.debug("  hitoryID:"+str(lastAlertID))
            try:
                singleHistoryItem = findHistoryItem(dev.history(limit=10,kind=lastAlertKind),lastAlertID)
                if singleHistoryItem and singleHistoryItem['id'] == lastAlertID :
                    logger.debug("History item found!")
                    if singleHistoryItem['recording']['status'] == 'ready':
                        logger.debug("Video is now ready to downloading")
                        videoIsReadyForDownload = True
            except Exception as inst:
                logger.debug("Repeating...")
            time.sleep(1)
            counti+=1
            if (counti>240):
                logger.debug("Stop trying to find history and video data")
                break
               
        if (lastAlertKind == 'ding') and videoIsReadyForDownload:
            logger.debug("Start downloading new ding video now")
            dev.recording_download(lastAlertID, filename=fhem_path + 'last_ding_video.mp4',override=True)
            srRing('lastDingVideo ' + fhem_path + 'last_ding_video.mp4', dev)
            setRing('ring', dev)
            srRing('lastAlertType ring', dev)
           
        elif (lastAlertKind == 'motion') and videoIsReadyForDownload:
            logger.debug("Start downloading new motion video now")
            dev.recording_download(lastAlertID, filename=fhem_path + 'last_motion_video.mp4',override=True)
            srRing('lastMotionVideo ' + fhem_path + 'last_motion_video.mp4', dev)
            srRing('lastAlertType motion', dev)
            setRing('motion', dev) 
       
        if videoIsReadyForDownload:
            srRing('lastCaptureURL ' + str(dev.recording_url(dev.last_recording_id)), dev)



# GATHERING DEVICES
devs = dict()
poll_device = None
tmp = list(myring.stickup_cams + myring.doorbells)
for t in tmp:
    devs[t.account_id] = 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
count = 1
while count<6:  # try 5 times
    try:
        while 1:
            for k, d in devs.items(): getDeviceInfo(d)
            pollDevices()

    except Exception as inst:
        logger.error("Unexpected error:" + str(inst))
        logger.error("Exception occured. Retrying...")
        time.sleep(5)
        if count == 5:
            raise

        count += 1



Ich hoffe das hilft ein bisschen weiter.

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: Screambear am 14 Februar 2020, 18:31:46
Moin,

danke für deine Rückmeldung.

Die Rechte hatte ich in der zwischenzeit schon angepasst gehabt.

Ich habs jetzt nochmal mit deinem Daten probiert bekomme aber imemr die folgende meldung:

pi@fhemserver:/opt/fhem/bin $ sudo -u fhem python ring.py                       Traceback (most recent call last):
  File "ring.py", line 1, in <module>
    from ring_doorbell import Ring
ImportError: No module named ring_doorbell


ich habe aber die ring_doorbell installiert. weiß jemand was das sein kann?

Ich verstehe das ganze echt nicht.
So nebenbei hatte ich mir damit mein system hab zerschossen. Nun läuft es so gerade eben.

UPDATE:

ich weiß nicht wieso... aber ich habe es jetzt iwie hinbekommen. habe aber die ring.py auf dem budachst git genommen. scheint zu laufen


Gruß Screambear
Titel: Antw:Ring Video Doorbell
Beitrag von: Seppel am 16 Februar 2020, 18:03:33
Zitat von: bluemevo am 02 Februar 2020, 10:00:52
Ich hab leider das gleiche "Problem".

Hallo zusammen,
nach der initialen Installation vorgestern sind bei mir die genannten Readings ebenfalls nicht vorhanden. Bewegungen werden von der Doorbell2 zwar zuverlässig erkannt, aber nicht an FHEM übergeben.
Ich finde dies umso seltsamer, als bei einigen hier ja alles anstandslos funktioniert und ich der Meinung bin, die Anleitung korrekt befolgt zu haben.

Hat jemand eine Idee, wie man die Sache (wieder) zum Laufen bringt?

Viele Grüße
Sebastian
Titel: Antw:Ring Video Doorbell
Beitrag von: Screambear am 17 Februar 2020, 13:12:27
Moin, hast du auch mal klingeln probiert? Erst danach kam bei mir die zusätzlichen readings.

Da komme ich auch zu meinem Problem. Ich wollte die Kamera gleich als bewegungsmeldung nutzen. Aber ich habe einen Zeitplan für die Bewegung erstellt. Leider bekomme ich kein motion state wenn ich außerhalb des Zeitplan liege. Gibt es eine Möglichkeit in Fhem auch motion states zu bekommen wenn man sich nicht auf dem Handy usw benachrichtigen lassen will?

Danke udn Gruß, Screambear
Titel: Antw:Ring Video Doorbell
Beitrag von: Seppel am 20 Februar 2020, 16:48:14
Zitat von: Screambear am 17 Februar 2020, 13:12:27
Moin, hast du auch mal klingeln probiert?
Hallo,
ja, hab ich. Brachte leider keinen Erfolg. Inzwischen habe ich auch einen Authentifizierungsfehler, wenn ich die ring.py manuell starte. Ich werde dann immer aufgefordert, den neuen Loginversuch durch die Eingabe eines sechsstelligen Codes zu bestätigen. Ob das hiermit zusammenhängt? https://www.bbc.com/news/technology-51555450 (https://www.bbc.com/news/technology-51555450) Laut diesem Bericht soll Amazon von nun an die Zwei-Faktor-Authentifizierung vorschreiben.

Viele Grüße
Sebastian
Titel: Antw:Ring Video Doorbell
Beitrag von: Screambear am 21 Februar 2020, 12:45:13
Dieses Problem habe ich seit dem 18.02. Auch. Sehr merkwürdig.

Weiß jemand Rat?
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 25 Februar 2020, 21:44:04
N'Abend zusammen. Ich denke es hat mit der erforderlichen 2 Faktoren Authentifizierung zu tun, die nun in Ring aktiviert wurde.
Hier mal ein Link zu einem Beispiel wie es gehen sollte, bei mir jedoch (hoffentlich nur leider) noch nicht.

https://github.com/tchellomello/python-ring-doorbell/blob/master/test.py
Titel: Antw:Ring Video Doorbell
Beitrag von: Seppel am 26 Februar 2020, 14:55:07
Zitat von: nhetzke am 25 Februar 2020, 21:44:04
Hier mal ein Link zu einem Beispiel wie es gehen sollte, bei mir jedoch (hoffentlich nur leider) noch nicht.

https://github.com/tchellomello/python-ring-doorbell/blob/master/test.py
Vielleicht steh ich ja komplett auf dem Schlauch, aber wie soll das auch funktionieren? Ring will doch bei jedem Login zusätzlich den per SMS geschickten sechsstelligen Code eingegeben haben. Wo soll ich den denn eintippen?
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 26 Februar 2020, 17:24:57
Es ist eine Mail, die verschickt wird. Die test.py ist darauf ausgelegt, das mach dem Start User, PW und verify eingegeben werden. Dann wird ein Token erstellt, der 30 Tage gültig sein soll, mit dem sich das Script solange einloggen kann.

Btw hat jemand eine Idee wie ich den Bug zur Stickup Cam in der Version 0.6.0 fixen kann? Für die 2FA brauchen wir zwingend die Version 0.6.0
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 26 Februar 2020, 21:19:16
Ja es kommt darauf an, ob man in der App die 2FA aktiviert hat oder nicht. Ohne Aktivierung bekommt man eine eMail, mit Aktivierung eine SMS mit dem entsprechendem Code.
Titel: Antw:Ring Video Doorbell
Beitrag von: Seppel am 27 Februar 2020, 11:50:09
OK, ich habe testweise die test.py ausgeführt und alles eingegeben, daraufhin wurde das Token generiert und im selben Ordner abgelegt. Ich habe aber keine Ahnung, was ich nun damit machen soll. Leider verstehe ich insgesamt viel zu wenig von dieser Materie, um selbstständig zum Ziel zu kommen. Eine Schritt-für-Schritt-Anleitung wäre super...
Titel: Antw:Ring Video Doorbell
Beitrag von: speed am 27 Februar 2020, 12:47:49
Ich bin genauso weit wie Seppel,
wie geht es den jetzt weiter ?
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 27 Februar 2020, 14:58:20
Ich hab mir das mal angeschaut.
So wie es aussieht muss lediglich der Token bei der Anmeldung mitgegeben werden. Es scheint so, dass einmalig ein manueller mehr Aufwand existiert um die 2FA Nummer zu hinterlegen. Ist diese da, kann der Token genutzt und ggf. erneuert werden.
Titel: Antw:Ring Video Doorbell
Beitrag von: Seppel am 27 Februar 2020, 15:05:52
Sorry. Eventuell habe ich ein Brett vor dem Kopf, aber ich weiß wirklich nicht, wie das geht. Wie gebe ich dieses Token mit? Muss dafür die ring.py angepasst werden? Müssen weitere Dateien kopiert werden?
Titel: Antw:Ring Video Doorbell
Beitrag von: speed am 27 Februar 2020, 15:09:14
Würde mich auch interessieren .
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 27 Februar 2020, 21:14:52
N'Abend zusammen. Hier mal ein Beispiel wie ich mir das gedacht hatte. Leider habe ich aber aktuell das Problem, dass das ganze bei mir nicht klappt, da ich eine Fehlermeldung bekomme: " AttributeError: 'Ring' object has no attribute 'stickup_cams'"
Ansonsten hier mein Codeschnipsel:

from ring_doorbell import Ring, Auth
import time
import fhem
import logging
import threading
import thread
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

from thread import start_new_thread, allocate_lock
from oauthlib.oauth2 import MissingTokenError
from pathlib import Path
import json


# CONFIG
ring_user = 'eMail'
ring_pass = 'PASSWORD'
fhem_ip   = '127.0.0.1'
fhem_port = 7072 # Telnet Port
log_level = logging.DEBUG
fhem_path = '/opt/fhem/www/ring/' # for video downloads
POLLS     = 2 # Poll every x seconds
cache_file_name = "test_token.cache"
cache_file = Path("test_token.cache")

# LOGGING
logger = logging.getLogger('ring_doorbell.doorbot')
logger.setLevel(log_level)

# create file handler which logs even debug messages
fh = logging.FileHandler('ring.log')
fh.setLevel(logging.DEBUG)

# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
fh.setFormatter(formatter)

# add the handlers to the logger
logger.addHandler(fh)
logger.addHandler(ch)

logger = logging.getLogger('fhem_ring')
logger.setLevel(log_level)
logger.addHandler(ch)
logger.addHandler(fh)

def token_updated(token):
file = open(cache_file_name, "w")
file.write(json.dumps(token))
file.close()

def otp_callback():
    auth_code = "664178"#input("2FA code: ")
    return auth_code

# Connecting to RING.com

if cache_file.is_file():
file = open(cache_file_name, "r")
auth = Auth("MyProject/1.0", json.loads(file.read()), token_updated)
file.close()
else:
auth = Auth("MyProject/1.0", None, token_updated)
try:
auth.fetch_token(ring_user, ring_pass)
except MissingTokenError:
auth.fetch_token(ring_user, ring_pass, otp_callback())

myring = Ring(auth)
myring.update_data()

#myring = Ring(ring_user, ring_pass)

fh = fhem.Fhem(fhem_ip, fhem_port)

def sendFhem(str):
    logger.debug("sending: " + str)
    global fh
    fh.send_cmd(str)

def askFhemForReading(dev, reading):
    logger.debug("ask fhem for reading " + reading + " from device " + dev)
    return fh.get_dev_reading(dev, reading)

def askFhemForAttr(dev, attr, default):
    logger.debug("ask fhem for attribute "+attr+" from device "+dev+" (default: "+default+")")
    fh.send_cmd('{AttrVal("'+dev+'","'+attr+'","'+default+'")}')
    data = fh.sock.recv(32000)
    return data

def setRing(str, dev):
    sendFhem('set Ring_' + dev.name.replace(" ","") + ' ' + str)

def attrRing(str, dev):
    sendFhem('attr Ring_' + dev.name.replace(" ","") + ' ' + str)

def srRing(str, dev):
    sendFhem('setreading Ring_' + dev.name.replace(" ","") + ' ' + str)

num_threads = 0
thread_started = False
lock = allocate_lock()

def getDeviceInfo(dev):
    dev.update()
    logger.info("Updating device data for device '"+dev.name+"' in FHEM...")
    srRing('account ' + str(dev.account_id), dev)
    srRing('address ' + (dev.address), dev)
    srRing('family ' + str(dev.family), dev)
    srRing('id ' + str(dev.id), dev)
    srRing('name ' + str(dev.name), dev)
    srRing('timezone ' + str(dev.timezone), dev)
    srRing('doorbellType ' + str(dev.existing_doorbell_type), dev)
    srRing('battery ' + str(dev.battery_life), dev)
    srRing('ringVolume ' + str(dev.volume), dev)
    srRing('connectionStatus ' + str(dev.connection_status), dev)
    srRing('WifiName ' + str(dev.wifi_name), dev)
    srRing('WifiRSSI ' + str(dev.wifi_signal_strength), dev)


def pollDevices():
    logger.info("Polling for events.")
    global devs

    i=0
    while 1:
        for k, poll_device in devs.items():
            logger.debug("Polling for events with '" + poll_device.name + "'.")
            if poll_device.check_alerts() and poll_device.alert:
                dev = devs[poll_device.alert.get('doorbot_id')]
                logger.info("Alert detected at '" + dev.name + "'.")
                logger.debug("Alert detected at '" + dev.name + "' via '" + poll_device.name + "'.")
                alertDevice(dev,poll_device.alert)
            time.sleep(POLLS)
        i+=1
        if i>600:
            break

def findHistoryItem(historyArry,id):
    ret = None
    for singleItem in historyArry:
        if (singleItem['id']==id):
            ret = singleItem
            break
    return ret

def waitForVideoDownload(alertID,alertKind,ringDev):
    videoIsReadyForDownload = None
    counti = 1
    while (videoIsReadyForDownload is None):
        logger.debug(str(counti) + ". Try to find history and video in history data list")
        logger.debug("  historyID:"+str(alertID))
        try:
            singleHistoryItem = findHistoryItem(ringDev.history(limit=10,kind=alertKind),alertID)
            if singleHistoryItem and singleHistoryItem['id'] == alertID :
                logger.debug("History item found!")
                if singleHistoryItem['recording']['status'] == 'ready':
                    logger.debug("Video is now ready to downloading")
                    videoIsReadyForDownload = True
        except Exception as inst:
            logger.debug("Repeating...")
        time.sleep(1)
        counti+=1
        if (counti>240):
            logger.debug("Stop trying to find history and video data")
            break

    if (alertKind == 'ding') and videoIsReadyForDownload:
        logger.debug("Start downloading new ding video now")
        ringDev.recording_download(alertID, filename=fhem_path + 'last_ding_video.mp4',override=True)
        srRing('lastDingVideo ' + fhem_path + 'last_ding_video.mp4', ringDev)

    elif (alertKind == 'motion') and videoIsReadyForDownload:
        logger.debug("Start downloading new motion video now")
        ringDev.recording_download(alertID, filename=fhem_path + 'last_motion_video.mp4',override=True)
        srRing('lastMotionVideo ' + fhem_path + 'last_motion_video.mp4', ringDev)

    if videoIsReadyForDownload:
        srRing('lastCaptureURL ' + str(ringDev.recording_url(ringDev.last_recording_id)), ringDev)


def alertDevice(dev,alert):
    srRing('lastAlertDeviceID ' + str(dev.id), dev)
    srRing('lastAlertDeviceAccountID ' + str(dev.account_id), dev)
    srRing('lastAlertDeviceName ' + str(dev.name), dev)
    srRing('lastAlertSipTo ' + str(alert.get('sip_to')), dev)
    srRing('lastAlertSipToken ' + str(alert.get('sip_token')), dev)

    lastAlertID = alert.get('id')
    lastAlertKind = alert.get('kind')
    logger.debug("lastAlertID:"+str(lastAlertID))
    logger.debug("lastAlertKind:"+str(lastAlertKind))

    if (lastAlertKind == 'ding'):
        logger.debug("Signalling ring to FHEM")
        setRing('ring', dev)
        srRing('lastAlertType ring', dev)
    elif (lastAlertKind == 'motion'):
        logger.debug("Signalling motion to FHEM")
        srRing('lastAlertType motion', dev)
        setRing('motion', dev)
    thread.start_new_thread(waitForVideoDownload,(lastAlertID,lastAlertKind,dev))


       
# GATHERING DEVICES
devs = dict()
poll_device = None
tmp = list(myring.stickup_cams + myring.doorbells)
for t in tmp:
    devs[t.account_id] = 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
count = 1
while count<6:  # try 5 times
    try:
        while 1:
            for k, d in devs.items(): getDeviceInfo(d)
            pollDevices()

    except Exception as inst:
        logger.error("Unexpected error:" + str(inst))
        logger.error("Exception occured. Retrying...")
        time.sleep(5)
        if count == 5:
            raise

        count += 1


Idee ist einmal manuell starten, den 2FA Token bekommen, hier oben eintragen und dann laufen lassen.
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 28 Februar 2020, 09:15:43
https://github.com/tchellomello/python-ring-doorbell/issues/188

Hab's nur noch nicht hinbekommen dass umzusetzen
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 28 Februar 2020, 09:22:18
Moin,

Ja das hab ich schon hinbekommen. Es wurde allerdings mit einem der letzten checkins noch mehr geändert, so dass das alerting nicht mehr funktioniert. Alles bisschen doof gerade.
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 28 Februar 2020, 09:36:19
Wie hast du das denn gelöst?
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 28 Februar 2020, 09:43:26
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
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 28 Februar 2020, 21:05:42
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
Titel: Antw:Ring Video Doorbell
Beitrag von: Seppel am 28 Februar 2020, 21:09:38
Toll, dass du da so viel Zeit reinsteckst. Danke!
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 29 Februar 2020, 18:05:11
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.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 29 Februar 2020, 18:59:09
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
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 29 Februar 2020, 22:51:20
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
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 01 März 2020, 10:12:32
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


Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 01 März 2020, 10:23:14
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 :(
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 01 März 2020, 10:44:28
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
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 01 März 2020, 11:15:13
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 :(
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 01 März 2020, 13:48:57
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?
Titel: Antw:Ring Video Doorbell
Beitrag 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.


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.
Titel: Antw:Ring Video Doorbell
Beitrag von: Seppel am 01 März 2020, 18:17:33
Spitzenmäßig! Meine Doorbell2 ist nun in FHEM integriert und schaltet die Haustürbeleuchtung :-)
Vielen, vielen Dank an alle Beteiligten.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 01 März 2020, 18:58:39
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
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 01 März 2020, 21:15:35
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.
Titel: Antw:Ring Video Doorbell
Beitrag von: speed am 01 März 2020, 22:05:24
Hallo,
habe jetzt die neue ring.py mir installiert, und was muss ich jetzt genau machen das es wieder geht ?
Also Name und Passwort eintragen reicht wohl nicht .
Ich bekomme dann das hier :
Traceback (most recent call last):
  File "./ring.py", line 74, in <module>
    auth = Auth("MyProject/1.0", None, token_updated)
TypeError: __init__() takes from 1 to 3 positional arguments but 4 were given

Kann jemand helfen ?
Danke
speed
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 02 März 2020, 16:56:14
Deine Python-Version ist zu alt. Du brauchst 3.7!

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 02 März 2020, 19:03:16
Zitat von: bluemevo am 01 März 2020, 21:15:35
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.

Ich glaube, das müsste auch weiterhin gehen, denn wenn ich das richtig gesehen habe, werden alle Events über das Dings-Objekt ausgegeben, das auslösende Device steht dann da drin. Das könntest du einfach mal checken, ob bei einem Event der Stickup-Cam das Skript nicht auch auslöst.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 02 März 2020, 19:42:32
Ich habe vorhin die Version 1.0.9 eingecheckt, welche u.a. die Verbindung zur Ring API mit einem Exception-Wrapper versieht, da ich ab und zu mal Verbindungs-Probleme zur Ring API habe und sich dann immer gleich das ganze Skript verabschiedet. Das war ja auch der Grund dafür, dass ursprünglich immer dafür gesorgt werden musste, dass das Skript periodisch neu gestartet wird. Aktuell weiß ich noch nicht, ob bei so einem Problem ein ganz neuer Login fällig ist, oder ob das nur Transienten sind... aber das sehe ich dann.

Außerdem ist in dieser Version auf alle Fälle schon mal das Holen der letzten CaptureURL enthalten. Was das angeht, musste ich leider feststellen, dass es immer noch nötig ist die History zu pollen, wenn man ein Video herunterladen will - obwohl es meiner Meinung nach in der Lib anders drin steht und die Lib eigentlich selber warten soll. Das muss ich mir nochmal genauer ansehen.
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 02 März 2020, 22:05:25
Zitat von: budy am 02 März 2020, 19:03:16
Ich glaube, das müsste auch weiterhin gehen, denn wenn ich das richtig gesehen habe, werden alle Events über das Dings-Objekt ausgegeben, das auslösende Device steht dann da drin. Das könntest du einfach mal checken, ob bei einem Event der Stickup-Cam das Skript nicht auch auslöst.
Deine Version 1.0.7 hast du nur für die Doorbell geschrieben -> doorbot
Ich habe dann doorbot durch Stickup_cam ersetzt. Damit habe ich die Attribute der Stickup-Cam bekommen. Als ich beides in ein Script gepackt habe, habe ich immer nur die  Attribute der Stickup-Cam an FHEM gesendet bekommen. Laut Log hat das Script aber beide Geräte belauscht - ich war jedoch nicht draußen (Schande über mich  :o)
Hab das erst getestet als ich beide Scripte getrennt laufen hatte.

Ich werd deine Version 1.0.9 mal testen. Ich geb spätestens morgen weder Bescheid :)
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 03 März 2020, 07:42:18
Zitat von: bluemevo am 02 März 2020, 22:05:25
Deine Version 1.0.7 hast du nur für die Doorbell geschrieben -> doorbot
Ich habe dann doorbot durch Stickup_cam ersetzt. Damit habe ich die Attribute der Stickup-Cam bekommen. Als ich beides in ein Script gepackt habe, habe ich immer nur die  Attribute der Stickup-Cam an FHEM gesendet bekommen. Laut Log hat das Script aber beide Geräte belauscht - ich war jedoch nicht draußen (Schande über mich  :o)
Hab das erst getestet als ich beide Scripte getrennt laufen hatte.

Ich werd deine Version 1.0.9 mal testen. Ich geb spätestens morgen weder Bescheid :)

Na ja, nicht für den Dootbot geschrieben... du kannst bei der Initialisierung des Ring-Objekts wählen, welche Ring-Typen du gemedlet bekommen willst. Ich hatte das nur auf den Doorbot begrenzt, aber du kannst da auch alle Typen eintragen. So, wie ich das mit den freigegebenen Doorbots gemacht habe:

tmp = list(devs['doorbots']+devs['authorized_doorbots'])

Wenn du da noch ['stickup_cams'] hinzufügst, dann werden die auch zurückgemeldet. Wenn du das tust, dann sollten eigentlich auch die Events der Cams gemeldet werden, das war es, was ich meinte. Wenn dem so ist, dann kann ich sicherlich die Readings "aufbohren" und immer auch den Ring-Device-Namen voranstellen...

Je mehr Ring-Devices man hat, desto mehr Readings werden das dann aber natürlich...

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 03 März 2020, 19:35:18
Ich habe gerade mal die komplette Liste abgerufen, welche mein FHEM-Nachbar sehen kann, da taucht meine Chime nicht auf, weil ich sie gar nicht freigeben kann - ich kann also kaum testen, ob meine Annahmen richtig sind... ;)

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 03 März 2020, 22:42:47
Ich hab vorhin mal getestet.
Mit V1.0.9 bekomm ich von beiden Cams Trigger, aber beide Motion Events kommen bei der Doorbell an.
Die Attribute werden nur noch der Stickup Cam aktualisiert. Ich hab die Stickup Cam in

tmp = list(devs['doorbots']+devs['authorized_doorbots']+devs['stickup_cams'])

ergänz.

Irgendwie kommt da im Moment irgendwas durcheinander, oder mach ich was falsch  :o
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 03 März 2020, 23:10:03
Guten Abend,

ich habe auf Python 3.7 "upgedatet" und

Zur installation müssen zwei Python3.7 libs installiert werden:
pip3.7 install git+https://github.com/tchellomello/python-ring-doorbell
pip3.7 install fhem


geladen.

Die ring.py und run_ring neu geladen aus dem Git und in den /home/pi/ Ordner verschoben.

Wenn ich nun die ring.py starten möchte bekomme ich folgenden Fehler: pi@FHEMPi:~ $ sudo python3 ring.py
Traceback (most recent call last):
  File "ring.py", line 8, in <module>
    import fhem
ImportError: No module named 'fhem'


Was sagt der Fehler aus?
Was ich auch noch nicht verstanden habe, den 6 Stelligen Code der mir zugesendet wird... wo muss ich den eintragen?
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 03 März 2020, 23:24:22
Zitat von: bluemevo am 03 März 2020, 22:42:47
Ich hab vorhin mal getestet.
Mit V1.0.9 bekomm ich von beiden Cams Trigger, aber beide Motion Events kommen bei der Doorbell an.
Die Attribute werden nur noch der Stickup Cam aktualisiert. Ich hab die Stickup Cam in

tmp = list(devs['doorbots']+devs['authorized_doorbots']+devs['stickup_cams'])

ergänz.

Irgendwie kommt da im Moment irgendwas durcheinander, oder mach ich was falsch  :o

Nein, du machst nichts falsch. Das "Dings-Objekt" scheint, wie ich mir das schon gedacht habe, alle Events auszuliefern. Du musst mal in die Ausgabe des Logs schauen, da müsste drin stehen, welches Ring-Device den Alarm ausgelöst hat. So sieht so eine Ausgabe bei mir aus:

2020-03-03 18:54:19,732 - fhem_ring - DEBUG - Dings: [{'id': 6800041580263352262, 'id_str': '6800041580263352262', 'state': 'ringing', 'protocol': 'sip', 'doorbot_id': 24881094, 'doorbot_description': 'Haustuer', 'device_kind': 'lpd_v2', 'motion': True, 'snapshot_url': '', 'kind': 'motion', 'sip_server_ip': '3.121.121.27', 'sip_server_port': 15063, 'sip_server_tls': True, 'sip_session_id': '5snkpp80nn9u6-2061ss6gm7v17m-1s02', 'sip_from': 'sip:99796778@ring.com', 'sip_to': 'sip:5snkpp80nn9u6-2061ss6gm7v17m-1s02@3.121.121.27:15064;transport=tls', 'audio_jitter_buffer_ms': 300, 'video_jitter_buffer_ms': 300, 'sip_endpoints': None, 'expires_in': 179, 'now': 1583258059.66932, 'optimization_level': 1, 'sip_token': '', 'sip_ding_id': '6800041580263352262', 'detection_type': ''}]

Schau mal nach doorbot_description/_id, das müsste sich, je nach Ring-Device unterscheiden.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 03 März 2020, 23:26:33
Zitat von: marko67 am 03 März 2020, 23:10:03
Wenn ich nun die ring.py starten möchte bekomme ich folgenden Fehler: pi@FHEMPi:~ $ sudo python3 ring.py
Traceback (most recent call last):
  File "ring.py", line 8, in <module>
    import fhem
ImportError: No module named 'fhem'


Was sagt der Fehler aus?
Was ich auch noch nicht verstanden habe, den 6 Stelligen Code der mir zugesendet wird... wo muss ich den eintragen?

Du musst für das Python3.7 noch die fhemlib installieren... wie das geht, steht gleich am Anfang im Readme.md...
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 03 März 2020, 23:41:16
Hallo

Du meinst pip3.7 install fhem ??

Das hatte ich auch schon in Verdacht aber es ist doch installiert??

Habe nach dem update von Python

1. sudo pip3.7 install git+https://github.com/tchellomello/python-ring-doorbell
2. sudo pip3.7 install fhem

Danach die beiden Dateien geholt und in den /home/pi/ Ordner geschoben.
Dann ein sudo reboot.

Beim Starten kommt dann der Fehler.
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 04 März 2020, 00:13:35
Zitat von: budy am 03 März 2020, 23:24:22
Nein, du machst nichts falsch. Das "Dings-Objekt" scheint, wie ich mir das schon gedacht habe, alle Events auszuliefern. Du musst mal in die Ausgabe des Logs schauen, da müsste drin stehen, welches Ring-Device den Alarm ausgelöst hat. So sieht so eine Ausgabe bei mir aus:

2020-03-03 18:54:19,732 - fhem_ring - DEBUG - Dings: [{'id': 6800041580263352262, 'id_str': '6800041580263352262', 'state': 'ringing', 'protocol': 'sip', 'doorbot_id': 24881094, 'doorbot_description': 'Haustuer', 'device_kind': 'lpd_v2', 'motion': True, 'snapshot_url': '', 'kind': 'motion', 'sip_server_ip': '3.121.121.27', 'sip_server_port': 15063, 'sip_server_tls': True, 'sip_session_id': '5snkpp80nn9u6-2061ss6gm7v17m-1s02', 'sip_from': 'sip:99796778@ring.com', 'sip_to': 'sip:5snkpp80nn9u6-2061ss6gm7v17m-1s02@3.121.121.27:15064;transport=tls', 'audio_jitter_buffer_ms': 300, 'video_jitter_buffer_ms': 300, 'sip_endpoints': None, 'expires_in': 179, 'now': 1583258059.66932, 'optimization_level': 1, 'sip_token': '', 'sip_ding_id': '6800041580263352262', 'detection_type': ''}]

Schau mal nach doorbot_description/_id, das müsste sich, je nach Ring-Device unterscheiden.

Gruß,
budy

Ich lass es mal durchlaufen den Tag über morgen.
Dann schau ich in die Logs mal rein.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 04 März 2020, 08:53:57
Zitat von: marko67 am 03 März 2020, 23:41:16
Hallo

Du meinst pip3.7 install fhem ??

Das hatte ich auch schon in Verdacht aber es ist doch installiert??

Habe nach dem update von Python

1. sudo pip3.7 install git+https://github.com/tchellomello/python-ring-doorbell
2. sudo pip3.7 install fhem

Danach die beiden Dateien geholt und in den /home/pi/ Ordner geschoben.
Dann ein sudo reboot.

Beim Starten kommt dann der Fehler.

Du musst das richtige Python aufrufen...

sudo python3.7 ring.py

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 04 März 2020, 18:22:17
Zitat von: budy am 04 März 2020, 08:53:57
Du musst das richtige Python aufrufen...

sudo python3.7 ring.py

Gruß,
budy

:-\ Du liebe Güte wie peinlich.

Es gibt Uhrzeiten da sollte man ins Bett und nicht vor den PC.

Danke für Deine Hilfe!!

Marko
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 05 März 2020, 19:23:10
Ach wat... gerne! ;)
Titel: Antw:Ring Video Doorbell
Beitrag von: Seppel am 06 März 2020, 11:49:50
Bei mir läuft es nun doch nicht wie geplant. Ich hatte vor ein paar Tagen in der Eile die ring.py manuell gestartet und mich dann nicht weiter drum gekümmert. Jetzt merke ich, dass das Skript gar nicht automatisch gestartet wird (trotz der Cronjobs) und ich das mit Python 3.5 hatte laufen lassen. Es gelingt mir aber nicht, Python 3.7 zu installieren, egal was ich versuche. Dementsprechend funktionieren auch die Installationsbefehle für die Pakete mit pip3.7 nicht.

Hat jemand einen Tipp für mich?
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 06 März 2020, 16:27:42
Zitat von: Seppel am 06 März 2020, 11:49:50
Jetzt merke ich, dass das Skript gar nicht automatisch gestartet wird (trotz der Cronjobs)
Setz in der ring.py mal den vollständigen Pfad für den token und die ring.log.
Ich hatte mit ähnlichen Problemen zu kämpfen. Der Token wird scheinbar nicht da gesucht wo die ring.py liegt, sondern wo der cronjob ausgeführt wird.
Bei mir hat der manuelle Start funktioniert, jedoch der automatische Start überhaupt nicht. Seit dem anpassen der Pfade läuft alles...
Titel: Antw:Ring Video Doorbell
Beitrag von: Seppel am 06 März 2020, 19:20:45
Zitat von: bluemevo am 06 März 2020, 16:27:42
Setz in der ring.py mal den vollständigen Pfad für den token und die ring.log.

Ich hatte leider noch keinen Erfolg. Ich habe in der ring.py in den Zeilen 19 und 40 jeweils die kompletten Pfade gesetzt (also /opt/fhem/bin/...). Das hat aber nichts gebracht.

Zwei Dinge fallen mir noch auf:

Als Pfad für das letzte Video wird in der ring.py /opt/fhem/www/ring/ angegeben, das Video liegt bei mir aber in /opt/fhem/bin/.

In der originalen run_ring soll python /opt/fhem/bin/ring.py ausgeführt werden anstatt python3 /opt/fhem/bin/ring.py
Ist das so korrekt?
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 06 März 2020, 21:12:19
Es muss python3 oder eher sogar noch python3.7 -je nach dem wie es bei dir installiert ist.
Titel: Antw:Ring Video Doorbell
Beitrag von: Seppel am 06 März 2020, 21:44:46
Das dachte ich mir. Problem bezüglich Python 3.7: Ich bekomme es nicht installiert.
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 06 März 2020, 21:52:15
Welche Version hast du denn installiert?
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 07 März 2020, 07:48:21
Zitat von: budy am 03 März 2020, 23:24:22
2020-03-03 18:54:19,732 - fhem_ring - DEBUG - Dings: [{'id': 6800041580263352262, 'id_str': '6800041580263352262', 'state': 'ringing', 'protocol': 'sip', 'doorbot_id': 24881094, 'doorbot_description': 'Haustuer', 'device_kind': 'lpd_v2', 'motion': True, 'snapshot_url': '', 'kind': 'motion', 'sip_server_ip': '3.121.121.27', 'sip_server_port': 15063, 'sip_server_tls': True, 'sip_session_id': '5snkpp80nn9u6-2061ss6gm7v17m-1s02', 'sip_from': 'sip:99796778@ring.com', 'sip_to': 'sip:5snkpp80nn9u6-2061ss6gm7v17m-1s02@3.121.121.27:15064;transport=tls', 'audio_jitter_buffer_ms': 300, 'video_jitter_buffer_ms': 300, 'sip_endpoints': None, 'expires_in': 179, 'now': 1583258059.66932, 'optimization_level': 1, 'sip_token': '', 'sip_ding_id': '6800041580263352262', 'detection_type': ''}]

Schau mal nach doorbot_description/_id, das müsste sich, je nach Ring-Device unterscheiden.

Gruß,
budy

Ich hab mir die logs angeschaut. Auffällig ist, dass die Alerts mal richtig zugeordnet sind und mal nicht. Hier ein Beispiel für eine falsche Zuodnung:


2020-03-04 13:26:04,340 - fhem_ring - DEBUG - Dings: [{... 'state': 'ringing', 'protocol': 'sip', 'doorbot_id': *, 'doorbot_description': 'Garage', 'device_kind': 'stickup_cam_lunar', 'motion': True,
2020-03-04 13:26:04,340 - fhem_ring - DEBUG - State: ringing
2020-03-04 13:26:04,341 - fhem_ring - INFO - Alert detected at 'Eingang'.
2020-03-04 13:26:04,341 - fhem_ring - DEBUG - Alert detected at
2020-03-04 13:26:04,341 - fhem_ring - DEBUG - lastAlertID:
2020-03-04 13:26:04,342 - fhem_ring - DEBUG - lastAlertKind:motion
2020-03-04 13:26:04,342 - fhem_ring - DEBUG - sending: setreading Ring_Eingang lastAlertDeviceID
2020-03-04 13:26:04,343 - fhem_ring - DEBUG - sending: setreading Ring_Eingang lastAlertDeviceName Eingang
2020-03-04 13:26:04,344 - fhem_ring - DEBUG - sending: setreading Ring_Eingang lastAlertSipTo sip:
2020-03-04 13:26:04,345 - fhem_ring - DEBUG - sending: setreading Ring_Eingang lastAlertSipToken
2020-03-04 13:26:04,346 - fhem_ring - DEBUG - Signalling motion to FHEM
2020-03-04 13:26:04,347 - fhem_ring - DEBUG - sending: setreading Ring_Eingang lastAlertType motion


Laut Ring App war das eine Bewegung an der Garage.
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 08 März 2020, 17:15:18
Hallo zusammen,

Ich hab nun auch die neuste Version von budy drauf. Danke dafür!!!!

Soweit läuft alles sehr zufriedenstellend, ABER.
Die Videos werden nicht wie im script angegeben nach '/bin/fhem/www/ring/' kopiert. Sondern landen immer im '/opt/fhem/' Ordner.

Vielleicht weis jemand Rat.

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 08 März 2020, 18:36:01
Zitat von: bluemevo am 07 März 2020, 07:48:21
Ich hab mir die logs angeschaut. Auffällig ist, dass die Alerts mal richtig zugeordnet sind und mal nicht. Hier ein Beispiel für eine falsche Zuodnung:


2020-03-04 13:26:04,340 - fhem_ring - DEBUG - Dings: [{... 'state': 'ringing', 'protocol': 'sip', 'doorbot_id': *, 'doorbot_description': 'Garage', 'device_kind': 'stickup_cam_lunar', 'motion': True,
2020-03-04 13:26:04,340 - fhem_ring - DEBUG - State: ringing
2020-03-04 13:26:04,341 - fhem_ring - INFO - Alert detected at 'Eingang'.
2020-03-04 13:26:04,341 - fhem_ring - DEBUG - Alert detected at
2020-03-04 13:26:04,341 - fhem_ring - DEBUG - lastAlertID:
2020-03-04 13:26:04,342 - fhem_ring - DEBUG - lastAlertKind:motion
2020-03-04 13:26:04,342 - fhem_ring - DEBUG - sending: setreading Ring_Eingang lastAlertDeviceID
2020-03-04 13:26:04,343 - fhem_ring - DEBUG - sending: setreading Ring_Eingang lastAlertDeviceName Eingang
2020-03-04 13:26:04,344 - fhem_ring - DEBUG - sending: setreading Ring_Eingang lastAlertSipTo sip:
2020-03-04 13:26:04,345 - fhem_ring - DEBUG - sending: setreading Ring_Eingang lastAlertSipToken
2020-03-04 13:26:04,346 - fhem_ring - DEBUG - Signalling motion to FHEM
2020-03-04 13:26:04,347 - fhem_ring - DEBUG - sending: setreading Ring_Eingang lastAlertType motion


Laut Ring App war das eine Bewegung an der Garage.

Jaa...? Ich sehe da in dem Event:

'doorbot_description': 'Garage', 'device_kind': 'stickup_cam_lunar', 'motion': True,

Ich würde sagen, dass passt zur Ring App...
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 08 März 2020, 18:38:34
Moin,

Zitat von: pflock_y am 08 März 2020, 17:15:18
Die Videos werden nicht wie im script angegeben nach '/bin/fhem/www/ring/' kopiert. Sondern landen immer im '/opt/fhem/' Ordner.

Vielleicht weis jemand Rat.

vg
pflock_y

das schaue ich mir mal an...

Gruß,
budy

P.S. Oha, das war peinlich... so ein blöder Fehler... ich habe den FHEM-Download-Ordner gar nicht an die Lib übergeben gehabt. Ich habe das grade im Master gefixt.
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 08 März 2020, 19:30:44
Nabend budy

Ich hab mir grad die Master neu geladen.
Passt irgendwie noch nicht. Das video wird noch immer nach /opt/fhem/ geladen.

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 08 März 2020, 20:20:35
Ja... wäre gut gewesen, wenn ich das auch gepusht hätte... ;) du hast bestimmt noch 1.0.9, aber 1.0.10 liegt jetzt bereit...

Sorry...
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 08 März 2020, 20:24:12
Ja richtig, ich hatte mich schon etwas über die Versionsnummer gewundert.

Jetzt ein neuer Versuch.

vg
pflock_y


Super bestens, jetzt landen die Videos im richtigen Verzeichnis.
Danke!!!!
Titel: Antw:Ring Video Doorbell
Beitrag von: Seppel am 08 März 2020, 21:06:58
Zitat von: bluemevo am 06 März 2020, 21:52:15
Welche Version hast du denn installiert?


fhem@FHEM:~$ python -V
Python 2.7.13
fhem@FHEM:~$ python3 -V
Python 3.5.3
fhem@FHEM:~$ python3.7 -V
Python 3.7.0


Dennoch:

fhem@FHEM:~$ sudo pip3.7 install git+https://github.com/tchellomello/python-ring-doorbell
sudo: pip3.7: Befehl nicht gefunden


Was mache ich denn falsch? Bin ein wenig ratlos.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 08 März 2020, 21:18:21
Wie hast du den Python3.7 installiert. Bei mir liegt das unter /usr/local/bin ggf. ist das nicht in deiner path-Variablen enthalten und deshalb findest du das so nicht.
Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 09 März 2020, 06:58:23
Zitat von: budy am 08 März 2020, 18:36:01
Jaa...? Ich sehe da in dem Event:

'doorbot_description': 'Garage', 'device_kind': 'stickup_cam_lunar', 'motion': True,

Das Event passt zur App, richtig. Aber fhem bekommt das Reading auf das falsche Objekt.
Event: Garage (Stick_up)
Reading: Eingang (Doorbell)

Das passiert jedoch random, Mal stimmt Zuordnung Reading zum Event und Mal eben nicht.
Ich würde sagen, dass passt zur Ring App...
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 09 März 2020, 08:17:22
Ja, wie gesagt, das liegt daran, dass das Skript nur für ein Device vorgesehen war. Um das in FHEM in verschiedene Devices zu bekommen, müsste man die auch haben, bzw. das Skript müsste wissen, dass es diese gibt. Der Ring API ist das egal, sie sendet an jeden Listener dieselben Infos... welcher Bot was gemacht hat.

Wenn du zwei Skripte laufen lässt, dann gibt es für mich zwei Möglichkeiten...

a) das Skript bekommt von Anfang an eine Liste von FHEM-Devices und prokelt die Events auseinande, um sie dem korrekten Device zuzuordnen
b) das Skript bekommt nur ein Device und müsste dann die Events filtern

Ich fände a) natürlich besser, denn dann läuft auch nur ein Skript und nicht eines je Ring-Device...
Mal sehen, vielleicht kaufe ich mir mal eine Stickup-CAM, aber brauchen tue ich eigentlich keine und ohne zweite Hardware ist das Entwickeln natürlich etwas blöde...

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: nhetzke am 10 März 2020, 09:07:51
Hallo und Guten Morgen zusammen,

ich habe gestern mal die aktuelle Version mit Python 3.8 getestet. Generell funktioniert das Script.
Meldet erfolgreich Dings und Motion zu fhem. Jedoch werden noch die falschen Videos heruntergeladen.
Ist das schon bekannnt und in Arbeit?
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 10 März 2020, 10:33:09
Zitat von: nhetzke am 10 März 2020, 09:07:51
Hallo und Guten Morgen zusammen,

ich habe gestern mal die aktuelle Version mit Python 3.8 getestet. Generell funktioniert das Script.
Meldet erfolgreich Dings und Motion zu fhem. Jedoch werden noch die falschen Videos heruntergeladen.
Ist das schon bekannnt und in Arbeit?

Moin,

kann ich so nicht bestätigen. Bei mir kommen motion und ding videos richtig an. Es gibt aber nur noch ein Reading für die Videos im FHEM dummy. (lastDingVideo.png)
Was mir aber aufgefallen ist, es kommen zwar fleißig fleißig motion und ding Meldungen an nur die restlichen werden nicht aktualisiert.
(Readings.png)
Erst wenn ich das Skript beende und wieder neu starte werden alle Readings aktualisiert.



Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 10 März 2020, 12:33:07
Ich hab es erst mal mit einem cronjob alle 10 Minuten gelöst. Dieser beendet und startet die run_ring kontinuierlich.
Ist vielleicht nicht die schönste Lösung aber funktioniert prima.

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 10 März 2020, 23:25:28
Ähh... ja, das ist natürlich keine Lösung, denn ich hatte das Skript ja gerade so umgebaut, dass man es gar nicht mehr periodisch abbrechen muss. Ich werde mal die Readings bei einem Event aktualisieren lassen. Vielleicht lagere ich das ja auch mal in einen Thread aus, so dass das periodisch aufgerufen werden kann.
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 12 März 2020, 16:40:15
Hallo an alle!

sehr neu mit FHEM, ich habe gerade mein ring mit Raspberry FHEM angeschlossen:
1. Python 3.7.7 installiert (https://installvirtual.com/install-python-3-7-on-raspberry-pi/)
2. Letzte Version 1.0.10 von Buddys script installiert (https://github.com/budachst/ring-fhem) gemaess Anweisungen
    - pip3.7 install git+https://github.com/tchellomello/python-ring-doorbell
    - pip3.7 install fhem
    - ring.py und run_ring runtergeladen und in /opt/fhem/bin abgelegt

Alles funktioniert, ich kann die Bewegungs-Meldungen vom ring fuer die Steuerung der Aussenbeleuchtung benutzen.
Leider aber, legt das System keine Videos an!
Hat jemand eine Idee woran es liegen koennte?

Der run_ring wird bei mir unter user Pi gefuehrt (nicht fhem),
dadurch befindet sich der ring.log und ring_token.cache  im Verzeichnis /home/pi
Dementsprechend habe ich einen Platz fuer die Videospeicherung im Verzeichnis /home/pi/ring-videos angegeben

Im FHEM, die Readings von Ring_FrontDoor verweisen auf das richtige Verzeichnis:
     lastDingVideo      /home/pi/ring-videos/last_motion_video.mp4

Trotzdem bleibt die Datei last_motion_video.mp4 leer.
Ich habe probiert mit
     sudo chown -R fhem: /home/pi/ring-videos/
     sudo chown -R fhem: /home/pi/ring-videos/last_motion_video.mp4
sowie
     sudo chown -R pi: /home/pi/ring-videos/
     sudo chown -R pi: /home/pi/ring-videos/last_motion_video.mp4
Dies hat keine Aenderung gebracht.

Die readings zeigen auch, dass der Script versucht die Datei zu erstellen, trotzdem bleibt sie leer. 


lastAlertType    motion                                                      2020-03-12 16:25:58
lastCaptureURLFalse                                                         2020-03-12 16:25:58
lastDingVideo   /home/pi/ring-videos/last_motion_video.mp42020-03-12 16:25:58



Muss ich vielleicht ein Abo bei ring haben, damit Videos gespeichert werden?



Ausserdem habe ich noch eine Frage:
run_ring
    Ich habe den Befehl  geaendert auf  process="python3.7 /opt/fhem/bin/ring.py"
    anstatt process="python /opt/fhem/bin/ring.py"process="python /opt/fhem/bin/ring.py" ?
    Ich bin richtig, dass er mit Python 3.7 laufen soll, oder?


vg Manos
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 12 März 2020, 18:19:31
Moin,

ja, du brauchst zum speichern der Videos ein Ring-Abo, sonst rückt die API die gar nicht raus.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 12 März 2020, 21:40:21
Version 1.0.11 im Github. Es wird jetzt ein thread pro ring device erzeugt, welcher dann periodisch die infos des ring devices abfragt und in FHEM aktualisiert.
Dazu gibt es eine Konstante, mit der man das Intervall in Sekunden einstellen kann. Dann sollte es nicht mehr nötig sein, die ring.py überhaupt zu beenden...

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 13 März 2020, 10:31:22
Moin budy,

hab grad deine v 1.0.11 eingepflegt. Läuft super!! Danke!!

Eine Frage zur run_ring, sobald die über den cronjob läuft mit

@reboot /opt/fhem/bin/run_ring
@hourly /opt/fhem/bin/run_ring


wird doch die ring.py alle Stunde neu gestartet.
Die Zeile,
pkill -9 -f ring.py
beendet den laufenden Prozess und startet diesen dann neu.

Kann man hier nicht eine Prüfung einbauen die schaut ob der Prozess läuft, und nix macht wenn er läuft?
So ähnlich wie das hier,
https://forum.fhem.de/index.php/topic,75754.msg881038.html#msg881038 (https://forum.fhem.de/index.php/topic,75754.msg881038.html#msg881038)

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 13 März 2020, 20:11:21
Moin pflock_y,

ja, ich kann da mal was einbauen. Ich hab das für mich schon länger, dachte aber, dass das so einfach ist, dass sich das jeder auch selber machen kann. ;)
Meine ring.py läuft schon seit Tagen ohne Unterbechung - auch wenn mal die Ring API nicht antwortet oder aus welchem Grund auch immer nicht erreicht werden kann.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 13 März 2020, 20:22:56
OK, dann werd ich mich mal selbst dran versuchen, ist ja kein Hexenwerk.  :D

vg
pflock_y


Titel: Antw:Ring Video Doorbell
Beitrag von: bluemevo am 14 März 2020, 21:34:05
Zwei kleine Anpassungen und 1.0.11 läuft wirklich gut  :D

# LOGGING
logger = logging.getLogger('ring_doorbell.doorbot'+'ring_doorbell.stickup_cam')


tmp = list(devs['doorbots']+devs['authorized_doorbots']+devs['stickup_cams'])


Vielleicht hat jemand noch einen Tipp für mich.
Ich würde die Videos gern auf einem NAS ablegen. Statt last_* würde ich gern Datum und Uhrzeit im Datennamen haben.
Irgendwie steh ich aber auf dem Schlauch.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 14 März 2020, 23:27:10
Moin,

Zitat von: bluemevo am 14 März 2020, 21:34:05
Vielleicht hat jemand noch einen Tipp für mich.
Ich würde die Videos gern auf einem NAS ablegen. Statt last_* würde ich gern Datum und Uhrzeit im Datennamen haben.
Irgendwie steh ich aber auf dem Schlauch.

abgesehen von den rechtlichen Aspekten einer Langzeitspeicherung, gibt es da auch noch zumindest das Problem, dass mit dynamischen Dateinamen ein statischer link auf der FHEM-Seite nicht mehr funktionieren würde, von daher habe ich kein großes Interesse das einzubauen. Wenn du da was dran drehen möchtest, dann müsstest du irgendwie an die Funktion in Zeile 179 ran und entweder die Funktion ein zweites Mal mit einem anderen Zielpfad aufrufen, oder du überwachst den Ordner, wo die Videos hingeladen werden (Stichwort inotify) und copierst die dann selber weg.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: TimoD am 25 März 2020, 09:27:56
Hey Budy,

tolle Arbeit! Eine Frage, gibt es schon ein update zu den Snapshots? Ich würde mir diese gerne in FTUI anzeigen lassen!Schon mal vielen lieben Dank! Grüße Timo
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 27 März 2020, 17:41:19
Ich habe leider in der API noch nichts genaues zu den Snapshots gefunden. Da scheint es zwar einen Endpunkt für zu geben, aber soweit ich das sehen kann, hängt da nie was an Daten hinter.
Titel: Antw:Ring Video Doorbell
Beitrag von: TimoD am 28 März 2020, 22:20:15
Irgendwie über Reverse Engineering aus der Homebridge-Ring vielleicht möglich? Hier kommen die Snapshots nämlich an.
Dann könnte man jede Sekunde ein Snapshot laden und hätte zumindest das Ring Bild dauerhaft in der Anzeige so wie es im Prinzip mit dem Plugin auch in HomeKit schon geht!

Wenn du hier nochmal drüber schauen könntest wäre das echt Mega! Schonmal danke für deine Antwort, das letzte mal!

Grüße Timo
Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 07 April 2020, 08:37:21
Guten Morgen

Hat jemand einen Tipp für mich, wie man das Logging reduzieren kann? Also die Menge des Logging.
Otto hatte mal etwas geschrieben, aber leider habe ich im Code bisher nichts gefunden, wo ich das reduzieren kann.

Bleibt gesund und viele Grüße

Marko
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 07 April 2020, 08:41:56
Moin,
Einfach in der ring.py ganz oben das log Level von debug  auf Info ändern.

vg
pflock_y

Titel: Antw:Ring Video Doorbell
Beitrag von: marko67 am 09 April 2020, 08:47:15
Danke für Deine Antwort

Viele Grüße

Marko
Titel: Antw:Ring Video Doorbell
Beitrag von: Kuehnhackel am 09 April 2020, 21:48:37
Hallo zusammen,

sitze nun schon seit heute mittag an dieser Geschiche und komme nicht weiter.

Habe mit dieser Variante Python auf 3.74 upgedated https://installvirtual.com/install-python-3-7-on-raspberry-pi/ (https://installvirtual.com/install-python-3-7-on-raspberry-pi/)

Die Dateien ring.py und run_ring.sh liegen unter /home/pi

wenn ich
pip3.7 install git+https://github.com/tchellomello/python-ring-doorbell
eingebe, kommt
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting git+https://github.com/tchellomello/python-ring-doorbell
  Cloning https://github.com/tchellomello/python-ring-doorbell to /tmp/pip-req-build-aq192q18
Collecting requests==2.22.0 (from ring-doorbell==0.6.0)
  Using cached https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl
Collecting requests-oauthlib==1.3.0 (from ring-doorbell==0.6.0)
  Using cached https://files.pythonhosted.org/packages/a3/12/b92740d845ab62ea4edf04d2f4164d82532b5a0b03836d4d4e71c6f3d379/requests_oauthlib-1.3.0-py2.py3-none-any.whl
Collecting oauthlib==3.1.0 (from ring-doorbell==0.6.0)
  Using cached https://files.pythonhosted.org/packages/05/57/ce2e7a8fa7c0afb54a0581b14a65b56e62b5759dbc98e80627142b8a3704/oauthlib-3.1.0-py2.py3-none-any.whl
Collecting pytz (from ring-doorbell==0.6.0)
  Using cached https://files.pythonhosted.org/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl
Collecting idna<2.9,>=2.5 (from requests==2.22.0->ring-doorbell==0.6.0)
  Using cached https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests==2.22.0->ring-doorbell==0.6.0)
  Using cached https://files.pythonhosted.org/packages/e8/74/6e4f91745020f967d09332bb2b8b9b10090957334692eb88ea4afe91b77f/urllib3-1.25.8-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests==2.22.0->ring-doorbell==0.6.0)
  Using cached https://files.pythonhosted.org/packages/57/2b/26e37a4b034800c960a00c4e1b3d9ca5d7014e983e6e729e33ea2f36426c/certifi-2020.4.5.1-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests==2.22.0->ring-doorbell==0.6.0)
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Installing collected packages: idna, urllib3, certifi, chardet, requests, oauthlib, requests-oauthlib, pytz, ring-doorbell
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/usr/local/lib/python3.7/site-packages/idna'
Consider using the `--user` option or check the permissions.

You are using pip version 19.0.3, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.


wenn ich
pip3.7 install fhem
eingebe, kommt
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting fhem
  Using cached https://www.piwheels.org/simple/fhem/fhem-0.6.5-py2.py3-none-any.whl
Installing collected packages: fhem
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/usr/local/lib/python3.7/site-packages/fhem-0.6.5.dist-info'
Consider using the `--user` option or check the permissions.

You are using pip version 19.0.3, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.


Habe gemäß diesem Hinweis von Otto mal probiert und es funktioniert
Zitat von: Otto123 am 16 März 2019, 12:54:15
geht im Terminal vom Pi so etwas:
perl /opt/fhem/fhem.pl 7072 "list Ring_Haustuer"
perl /opt/fhem/fhem.pl 7072 "set Ring_Haustuer willi"
perl /opt/fhem/fhem.pl 7072 "setreading Ring_Haustuer Testreading Wert"


Bin auch verwirrt was sie verschiedenen Versionen angeht.
Woran erkenne ich ob ich V1.0.11 habe.

Hatte mich so drauf gefreut  >:( :(

Liebe Grüße
Ralf
Titel: Antw:Ring Video Doorbell
Beitrag von: Pythonf am 16 April 2020, 15:34:54
Würde mit dem Modul auch die Ring Spotlight Cam funktionieren https://www.amazon.de/dp/B076B3TB33/ref=cm_sw_em_r_mt_ (https://www.amazon.de/dp/B076B3TB33/ref=cm_sw_em_r_mt_)?
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 20 April 2020, 20:05:06
Moin,

ja, es sollten alle Ring-Devices funktionieren. Welche Devices aus der API geholt werden, steht unten in:

tmp = list(devs['doorbots']+devs['authorized_doorbots'])


Wie das Device in der API heisst, steht hoffentlich in der Lib, aber da bin ich mir nicht so ganz sicher. Es gibt einen Issue, neue Ring-Devices hinzuzufügen.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 20 April 2020, 20:06:43
Zitat von: TimoD am 28 März 2020, 22:20:15
Irgendwie über Reverse Engineering aus der Homebridge-Ring vielleicht möglich? Hier kommen die Snapshots nämlich an.
Dann könnte man jede Sekunde ein Snapshot laden und hätte zumindest das Ring Bild dauerhaft in der Anzeige so wie es im Prinzip mit dem Plugin auch in HomeKit schon geht!

Wenn du hier nochmal drüber schauen könntest wäre das echt Mega! Schonmal danke für deine Antwort, das letzte mal!

Grüße Timo

Snapshots kommen demnächst - bei mir gehen sie schon, aber ich will das noch ein wenig nacharbeiten. Außerdem muss wohl aktuell die Lib gepatcht werden, was aber nur 2 Zeilen  sind - zumindest in der doorbot.py.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 20 April 2020, 21:57:45
Moin,

Zitat von: Kuehnhackel am 09 April 2020, 21:48:37
Habe gemäß diesem Hinweis von Otto mal probiert und es funktioniert
Bin auch verwirrt was sie verschiedenen Versionen angeht.
Woran erkenne ich ob ich V1.0.11 habe.

die Versionsnummer steht am Anfang des Python-Skripts. Außerdem hast du wohl versucht pip37 nicht als User root oder zumindest mit super-user Rechten (sudo) zu installieren. Dadurch hat pip37 die Lib gar nicht installiert...

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 23 April 2020, 09:26:56
Moin,

Version 1.0.12 ist jetzt im Github online. Diese Version lädt in der Routine, welche auch die Readings in FHEM aktualisiert einen aktuellen Snapshot Namens snap.png herunter und platziert ihn im selben Verzeichnis wie die Videos. Damit das funktioniert muss die python-ring Lib gepatcht werden, so wie es hier https://github.com/tchellomello/python-ring-doorbell/pull/196/files (https://github.com/tchellomello/python-ring-doorbell/pull/196/files) beschrieben ist.

Im Grunde müssen nur zwei Zeilen angepasst werden... Sollte mal der Download eines Snapshots nicht funktionieren, dann wird im Log ausgegeben, was das Skript stattdessen beommen hat. Ich hatte diesen Fall ein paar Mal, aber nicht mehr seit ich das Logging und die Exception eingebaut habe...

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 24 April 2020, 11:39:47
Hallo :-)

Fehlt da nicht ne Klammer zu in Zeile 255?

logger.info("Snapshot: " + str(snapshot)

Snapshots werden nicht abgelegt und Readings auch nicht mehr upgedatet...

Gruss Jan
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 24 April 2020, 13:43:23
Zitat von: JF Mennedy am 24 April 2020, 11:39:47
Hallo :-)

Fehlt da nicht ne Klammer zu in Zeile 255?

logger.info("Snapshot: " + str(snapshot)

Snapshots werden nicht abgelegt und Readings auch nicht mehr upgedatet...

Gruss Jan

Ja... danke. Das kommt davon, wenn man noch kurz vor Update was ändert... ist im Master gefixt.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 24 April 2020, 14:48:34
Bekomme jetzt noch diesen Fehler:

Unhandled exception in thread started by <function fhemReadingsUpdate at 0x7f8e47310378>
Traceback (most recent call last):
  File "/opt/fhem/ring-fhem/ring.py", line 262, in downloadSnapshot
    snapshot = dev.get_snapshot()
  File "/home/jan/.local/lib/python3.7/site-packages/ring_doorbell/doorbot.py", line 418, in get_snapshot
    if response["timestamps"][0]["timestamp"] / 1000 > request_time:
IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/ring-fhem/ring.py", line 257, in fhemReadingsUpdate
    downloadSnapshot(dev)
  File "/opt/fhem/ring-fhem/ring.py", line 268, in downloadSnapshot
    logger.info("Snapshot: " + str(snapshot))
UnboundLocalError: local variable 'snapshot' referenced before assignment



Den Patch wie beschrieben in der python-ring Lib habe ich wie beschrieben gemacht...

Gruss Jan
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 24 April 2020, 16:29:49
Hmm... na ja, das Problem ist aber dennoch deine Lib, denn die bricht ab und dann ist snapshot in der ring.py nicht mal initialisiert, weil ja die Lib entweder das Bild oder halt false zurückgeben müsste. Da musst du nochmal in die Zeile 416 schauen, wo ja die Änderung gewesen ist:

response = self._ring.query(url, method="POST", json=payload).json()

Ich könnte auch snapshot generell mit false vorbelegen, aber das würde dein Problem nicht lösen.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 24 April 2020, 16:33:59
OK dann schau ich mir das mal an...

Gesendet von meinem VOG-L29 mit Tapatalk

Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 24 April 2020, 19:51:07
Ich habe eben nochmal ein Update im Master gemacht, welches snapshot immer zuerst mit False initialisiert. Dadurch sollte das Skript nicht abbrechen, wenn die ring_doorbell lib nichts zurückliefert.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 28 April 2020, 16:18:49
Ich habe übrigens gerade eher zufällig festgestellt, dass mein Echo Show versucht, selbstständig - also ohne, dass ich ihn dazu auffordere - das Bild der Kamera anzuzeigen, sobald die Klingel betätigt wird. Er bricht dann zwar nach ein paar Sekunden erfolglos ab, aber das sieht für mich so aus, als wenn die Funktion nun endlich bald ins Haus stünde.

EDIT: Dass man für den Video-Download ein Abo braucht, weiß ich. Brauche ich das Abo auch für die Snapshots?

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 29 April 2020, 19:36:04
Na ja, wenn man in FHEM einen SIP-Client hätte, den man einklinken könnte, dann würde das auch in FHEM gehen, denn die SIP-URI wird ja immer mitgeliefert - auch wenn man kein Abo hat. Dass ein Amazon-Gerät das versucht, ohne dass man da einen Skill für installiert hat, finde ich zwar schon frech, aber Ring gehört ja Amazon...

Ob man für die Snapshot-Funktion ein Abo braucht, weiß ich gar nicht, wenn es ja, dann sollte da in der Datei am Ende ja eine Fehlermeldung stehen... - auch wenn FHEM die als Bild nicht anzeigen kann.

Gruß,
Budy
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 30 April 2020, 06:51:56
Zitat von: budy am 29 April 2020, 19:36:04
Na ja, wenn man in FHEM einen SIP-Client hätte, den man einklinken könnte, dann würde das auch in FHEM gehen, denn die SIP-URI wird ja immer mitgeliefert - auch wenn man kein Abo hat. Dass ein Amazon-Gerät das versucht, ohne dass man da einen Skill für installiert hat, finde ich zwar schon frech, aber Ring gehört ja Amazon...
Nee, da hast Du mich falsch verstanden. Ich nutze den Ring Skill auf dem Show. Nur war es bisher immer so, dass der Echo Show zwar gemeldet hat, wenn jemand geklingelt hat, man aber Alexa immer noch auffordern musste, das Bild der Kamera anzuzeigen. Nun ist es so (wie von vielen seit Ewigkeiten gewünscht), dass der Show automatisch das Bild der Kamera anzeigt, sobald jemand klingelt.

Zitat
Ob man für die Snapshot-Funktion ein Abo braucht, weiß ich gar nicht, wenn es ja, dann sollte da in der Datei am Ende ja eine Fehlermeldung stehen... - auch wenn FHEM die als Bild nicht anzeigen kann.

Im Log bekomme ich die Meldung
Snapshot: False

Also gehe ich davon aus, dass man wohl ein Abo braucht für den Snapshot. Schade eigentlich.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 30 April 2020, 19:26:02
Für den Snapshot ist offenbar ein Abo nötig. Ich habe mal testweise eines abgeschlossen und bekomme den Snap jetzt.

Kann es sei, dass dieser Snapshot aber nicht eine Aufnahme des jeweiligen Ereignisses (motion, ring) ist, sondern eher die Aufnahmen, die die Kamera periodisch zwischen den Ereignissen macht?

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 30 April 2020, 20:31:39
Die Motion-Videos werden ja sowieso immer runtergeladen, wenn sie verfügbar sind. Einen Snapshot kann man jederzeit von der API anfordern. Ich habe das nur erst mal so umgesetzt, dass das Skript das tut, wenn es die FHEM-Readings aktualisiert. Es läuft also unabhängig von den Motion- oder Ring-Ereignissen.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: OliS. am 01 Mai 2020, 10:42:19
Zitat von: budy am 30 April 2020, 20:31:39Einen Snapshot kann man jederzeit von der API anfordern.

Das hört sich auf jeden Fall interessant an. Da die Ring-App ja unverständlicherweise keinen Snapshot mitschickt, sobald geklingelt wird oder eine Bewegung erkannt wird, wäre es doch schön, wenn man das mit FHEM umsetzen könnte. Pushover erlaubt ja mittlerweile den Versand von Anhängen.

LG
Oli
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 02 Mai 2020, 17:45:28
Na ja... den Snapshot von der API zu bekommen dauert auch ein paar Sekunden. Selbst wenn du den dann per Pushover sendest, ist der Mensch der geklingelt hat, ggf. schon wieder weg. Ich kann aber mal schauen, ob ich nicht auch noch Snaps für Ding- und Motion-Events einbaue, die könnte man dann "weiterverwenden".

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 03 Mai 2020, 08:36:46
Zitat von: budy am 02 Mai 2020, 17:45:28
Ich kann aber mal schauen, ob ich nicht auch noch Snaps für Ding- und Motion-Events einbaue, die könnte man dann "weiterverwenden".

Das wäre cool.

Gruß & einen schönen Sonntag,
Tobi
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 03 Mai 2020, 09:47:53
Snapshots gehen bei mir noch gar nicht... Im log steht no connection to ring api, continueing... Hatte die doorbot.py nochmal neu installiert und das Patch gemacht, aber irgendwo hakt es noch... Ich habe ein ring Abo, falls die Frage kommt... Schönes Restwochenende noch, Gruß Jan

Gesendet von meinem VOG-L29 mit Tapatalk
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 04 Mai 2020, 15:10:17
Zitat von: onkel-tobi am 03 Mai 2020, 08:36:46
Das wäre cool.

Gruß & einen schönen Sonntag,
Tobi

Ja, wäre... ist es aber leider nicht. Wenn ein Motion- oder Ding-Event ausgelöst wurde kann ich über die Lib/API keine Snapshots holen. Schade... aber ich habe dafür mal ein Issue in Githup Repo der Lib aufgemacht. Mal sehen, ob das wirklich nicht geht, oder ob das ein Implementierungsfehler ist. Immerhin sender die API ja den SIP-Feed, den man sich holen könnte, es gibt also nicht unbedingt einen Grund einen Snapshot zu holen - zumindest könnte Ring so argumentieren...

Wenn sich da was tut, gibt's ein Update dazu.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 04 Mai 2020, 15:17:00
Zitat von: JF Mennedy am 03 Mai 2020, 09:47:53
Snapshots gehen bei mir noch gar nicht... Im log steht no connection to ring api, continueing... Hatte die doorbot.py nochmal neu installiert und das Patch gemacht, aber irgendwo hakt es noch... Ich habe ein ring Abo, falls die Frage kommt... Schönes Restwochenende noch, Gruß Jan

Du müsstest noch mal die Ausgabe des Skripts posten... so kann ich nicht sagen, wo es haken könnte. Und poste auch mal den Code aus der doorbot.py, speziell die Funktion get_snapshot. Bei mir sieht die aktuell so aus:

    def get_snapshot(self, retries=3, delay=1):
        """Take a snapshot and download it"""
        url = SNAPSHOT_TIMESTAMP_ENDPOINT
        payload = {"doorbot_ids": [self._attrs.get("id")]}
        self._ring.query(url, method="POST", json=payload)
        request_time = time.time()
        for _ in range(retries):
            time.sleep(delay)
            response = self._ring.query(url, method="POST", json=payload).json()
            if response["timestamps"][0]["timestamp"] / 1000 > request_time:
                return self._ring.query(
                    SNAPSHOT_ENDPOINT.format(self._attrs.get("id"), raw=True)
                ).content
        return False


Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 11 Mai 2020, 17:36:29
Die Ausgabe der ring.py ist folgendes:

2020-05-11 17:33:39,161 - fhem_ring - INFO - Found 1 devices.
2020-05-11 17:33:39,341 - fhem_ring - INFO - Polling for events
2020-05-11 17:33:39,702 - fhem_ring - INFO - Updating device data for device 'Haustuer' in FHEM...
2020-05-11 17:33:40,966 - fhem_ring - INFO - Haustuer has no connection to ring API, continueing...
2020-05-11 17:33:40,966 - fhem_ring - INFO - Snapshot: True


Die Doorbot.py sieht flgenermassen aus:

# coding: utf-8
# vim:sw=4:ts=4:et:
"""Python Ring Doorbell wrapper."""
import logging
from datetime import datetime
import os
import time
import pytz


from ring_doorbell.generic import RingGeneric

from ring_doorbell.const import (
    DOORBELLS_ENDPOINT,
    DOORBELL_VOL_MIN,
    DOORBELL_VOL_MAX,
    DOORBELL_EXISTING_TYPE,
    DINGS_ENDPOINT,
    DOORBELL_KINDS,
    DOORBELL_2_KINDS,
    DOORBELL_PRO_KINDS,
    DOORBELL_ELITE_KINDS,
    FILE_EXISTS,
    LIVE_STREAMING_ENDPOINT,
    MSG_BOOLEAN_REQUIRED,
    MSG_EXISTING_TYPE,
    MSG_VOL_OUTBOUND,
    PEEPHOLE_CAM_KINDS,
    SNAPSHOT_ENDPOINT,
    SNAPSHOT_TIMESTAMP_ENDPOINT,
    URL_DOORBELL_HISTORY,
    URL_RECORDING,
    DEFAULT_VIDEO_DOWNLOAD_TIMEOUT,
    HEALTH_DOORBELL_ENDPOINT,
)

_LOGGER = logging.getLogger(__name__)


class RingDoorBell(RingGeneric):
    """Implementation for Ring Doorbell."""

    def __init__(self, ring, device_id, shared=False):
        super(RingDoorBell, self).__init__(ring, device_id)
        self.shared = shared

    @property
    def family(self):
        """Return Ring device family type."""
        return "authorized_doorbots" if self.shared else "doorbots"

    def update_health_data(self):
        """Update health attrs."""
        self._health_attrs = (
            self._ring.query(HEALTH_DOORBELL_ENDPOINT.format(self.id))
            .json()
            .get("device_health", {})
        )

    @property
    def model(self):
        """Return Ring device model name."""
        if self.kind in DOORBELL_KINDS:
            return "Doorbell"
        if self.kind in DOORBELL_2_KINDS:
            return "Doorbell 2"
        if self.kind in DOORBELL_PRO_KINDS:
            return "Doorbell Pro"
        if self.kind in DOORBELL_ELITE_KINDS:
            return "Doorbell Elite"
        if self.kind in PEEPHOLE_CAM_KINDS:
            return "Peephole Cam"
        return None

    def has_capability(self, capability):
        """Return if device has specific capability."""
        if capability == "battery":
            return self.kind in (DOORBELL_KINDS + DOORBELL_2_KINDS + PEEPHOLE_CAM_KINDS)
        if capability == "knock":
            return self.kind in PEEPHOLE_CAM_KINDS
        if capability == "volume":
            return True
        return False

    @property
    def battery_life(self):
        """Return battery life."""
        value = 0
        if "battery_life_2" in self._attrs:
            # Camera has two battery bays
            if self._attrs.get("battery_life") is not None:
                # Bay 1
                value += int(self._attrs.get("battery_life"))
            if self._attrs.get("battery_life_2") is not None:
                # Bay 2
                value += int(self._attrs.get("battery_life_2"))
            return value
        # Camera has a single battery bay
        # Latest stickup cam can be externally powered
        if self._attrs.get("battery_life") is not None:
            value = int(self._attrs.get("battery_life"))
            if value and value > 100:
                value = 100
        return value

    @property
    def existing_doorbell_type(self):
        """
        Return existing doorbell type.

        0: Mechanical
        1: Digital
        2: Not Present
        """
        try:
            return DOORBELL_EXISTING_TYPE[
                self._attrs.get("settings").get("chime_settings").get("type")
            ]
        except AttributeError:
            return None

    @existing_doorbell_type.setter
    def existing_doorbell_type(self, value):
        """
        Return existing doorbell type.

        0: Mechanical
        1: Digital
        2: Not Present
        """
        if value not in DOORBELL_EXISTING_TYPE.keys():
            _LOGGER.error("%s", MSG_EXISTING_TYPE)
            return False
        params = {
            "doorbot[description]": self.name,
            "doorbot[settings][chime_settings][type]": value,
        }
        if self.existing_doorbell_type:
            url = DOORBELLS_ENDPOINT.format(self.id)
            self._ring.query(url, extra_params=params, method="PUT")
            self._ring.update_devices()
            return True
        return None

    @property
    def existing_doorbell_type_enabled(self):
        """Return if existing doorbell type is enabled."""
        if self.existing_doorbell_type:
            if self.existing_doorbell_type == DOORBELL_EXISTING_TYPE[2]:
                return None
            return self._attrs.get("settings").get("chime_settings").get("enable")
        return False

    @existing_doorbell_type_enabled.setter
    def existing_doorbell_type_enabled(self, value):
        """Enable/disable the existing doorbell if Digital/Mechanical."""
        if self.existing_doorbell_type:

            if not isinstance(value, bool):
                _LOGGER.error("%s", MSG_BOOLEAN_REQUIRED)
                return None

            if self.existing_doorbell_type == DOORBELL_EXISTING_TYPE[2]:
                return None

            params = {
                "doorbot[description]": self.name,
                "doorbot[settings][chime_settings][enable]": value,
            }
            url = DOORBELLS_ENDPOINT.format(self.id)
            self._ring.query(url, extra_params=params, method="PUT")
            self._ring.update_devices()
            return True
        return False

    @property
    def existing_doorbell_type_duration(self):
        """Return duration for Digital chime."""
        if self.existing_doorbell_type:
            if self.existing_doorbell_type == DOORBELL_EXISTING_TYPE[1]:
                return self._attrs.get("settings").get("chime_settings").get("duration")
        return None

    @existing_doorbell_type_duration.setter
    def existing_doorbell_type_duration(self, value):
        """Set duration for Digital chime."""
        if self.existing_doorbell_type:

            if not (
                (isinstance(value, int))
                and (DOORBELL_VOL_MIN <= value <= DOORBELL_VOL_MAX)
            ):
                _LOGGER.error(
                    "%s", MSG_VOL_OUTBOUND.format(DOORBELL_VOL_MIN, DOORBELL_VOL_MAX)
                )
                return False

            if self.existing_doorbell_type == DOORBELL_EXISTING_TYPE[1]:
                params = {
                    "doorbot[description]": self.name,
                    "doorbot[settings][chime_settings][duration]": value,
                }
                url = DOORBELLS_ENDPOINT.format(self.id)
                self._ring.query(url, extra_params=params, method="PUT")
                self._ring.update_devices()
                return True
        return None

    def history(
        self,
        limit=30,
        timezone=None,
        kind=None,
        enforce_limit=False,
        older_than=None,
        retry=8,
    ):
        """
        Return history with datetime objects.

        :param limit: specify number of objects to be returned
        :param timezone: determine which timezone to convert data objects
        :param kind: filter by kind (ding, motion, on_demand)
        :param enforce_limit: when True, this will enforce the limit and kind
        :param older_than: return older objects than the passed event_id
        :param retry: determine the max number of attempts to archive the limit
        """
        queries = 0
        original_limit = limit

        # set cap for max queries
        if retry > 10:
            retry = 10

        while True:
            params = {"limit": str(limit)}
            if older_than:
                params["older_than"] = older_than

            url = URL_DOORBELL_HISTORY.format(self.id)
            response = self._ring.query(url, extra_params=params).json()

            # cherrypick only the selected kind events
            if kind:
                response = list(filter(lambda array: array["kind"] == kind, response))

            # convert for specific timezone
            utc = pytz.utc
            if timezone:
                mytz = pytz.timezone(timezone)

            for entry in response:
                dt_at = datetime.strptime(entry["created_at"], "%Y-%m-%dT%H:%M:%S.000Z")
                utc_dt = datetime(
                    dt_at.year,
                    dt_at.month,
                    dt_at.day,
                    dt_at.hour,
                    dt_at.minute,
                    dt_at.second,
                    tzinfo=utc,
                )
                if timezone:
                    tz_dt = utc_dt.astimezone(mytz)
                    entry["created_at"] = tz_dt
                else:
                    entry["created_at"] = utc_dt

            if enforce_limit:
                # return because already matched the number
                # of events by kind
                if len(response) >= original_limit:
                    return response[:original_limit]

                # ensure the loop will exit after max queries
                queries += 1
                if queries == retry:
                    _LOGGER.debug(
                        "Could not find total of %s of kind %s", original_limit, kind
                    )
                    break

                # ensure the kind objects returned to match limit
                limit = limit * 2

            else:
                break

        return response

    @property
    def last_recording_id(self):
        """Return the last recording ID."""
        try:
            return self.history(limit=1)[0]["id"]
        except (IndexError, TypeError):
            return None

    @property
    def live_streaming_json(self):
        """Return JSON for live streaming."""
        url = LIVE_STREAMING_ENDPOINT.format(self.id)
        req = self._ring.query(url, method="POST")
        if req and req.status_code == 204:
            url = DINGS_ENDPOINT
            try:
                return self._ring.query(url).json()[0]
            except (IndexError, TypeError):
                pass
        return None

    def recording_download(
        self,
        recording_id,
        filename=None,
        override=False,
        timeout=DEFAULT_VIDEO_DOWNLOAD_TIMEOUT,
    ):
        """Save a recording in MP4 format to a file or return raw."""
        if not self.has_subscription:
            msg = "Your Ring account does not have an active subscription."
            _LOGGER.warning(msg)
            return False

        url = URL_RECORDING.format(recording_id)
        try:
            # Video download needs a longer timeout to get the large video file
            req = self._ring.query(url, timeout=timeout)
            if req and req.status_code == 200:

                if filename:
                    if os.path.isfile(filename) and not override:
                        _LOGGER.error("%s", FILE_EXISTS.format(filename))
                        return False

                    with open(filename, "wb") as recording:
                        recording.write(req.content)
                        return True
                else:
                    return req.content
        except IOError as error:
            _LOGGER.error("%s", error)
            raise
        return False

    def recording_url(self, recording_id):
        """Return HTTPS recording URL."""
        if not self.has_subscription:
            msg = "Your Ring account does not have an active subscription."
            _LOGGER.warning(msg)
            return False

        url = URL_RECORDING.format(recording_id)
        req = self._ring.query(url)
        if req and req.status_code == 200:
            return req.url
        return False

    @property
    def subscribed(self):
        """Return if is online."""
        result = self._attrs.get("subscribed")
        if result is None:
            return False
        return True

    @property
    def subscribed_motion(self):
        """Return if is subscribed_motion."""
        result = self._attrs.get("subscribed_motions")
        if result is None:
            return False
        return True

    @property
    def has_subscription(self):
        """Return boolean if the account has subscription."""
        return self._attrs.get("features").get("show_recordings")

    @property
    def volume(self):
        """Return volume."""
        return self._attrs.get("settings").get("doorbell_volume")

    @volume.setter
    def volume(self, value):
        if not (
            (isinstance(value, int)) and (DOORBELL_VOL_MIN <= value <= DOORBELL_VOL_MAX)
        ):
            _LOGGER.error(
                "%s", MSG_VOL_OUTBOUND.format(DOORBELL_VOL_MIN, DOORBELL_VOL_MAX)
            )
            return False

        params = {
            "doorbot[description]": self.name,
            "doorbot[settings][doorbell_volume]": str(value),
        }
        url = DOORBELLS_ENDPOINT.format(self.id)
        self._ring.query(url, extra_params=params, method="PUT")
        self._ring.update_devices()
        return True

    @property
    def connection_status(self):
        """Return connection status."""
        return self._attrs.get("alerts").get("connection")

    def get_snapshot(self, retries=3, delay=1):
        """Take a snapshot and download it"""
        url = SNAPSHOT_TIMESTAMP_ENDPOINT
        payload = {"doorbot_ids": [self._attrs.get("id")]}
        self._ring.query(url, method="POST", json=payload)
        request_time = time.time()
        for _ in range(retries):
            time.sleep(delay)
            response = self._ring.query(url, method="POST", json=payload).json()
            if response["timestamps"][0]["timestamp"] / 1000 > request_time:
                return self._ring.query(
                    SNAPSHOT_ENDPOINT.format(self._attrs.get("id"), raw=True)
                ).content
        return False



Irgendwie sieht es so aus, dass sich die API nicht mit meiner Klingel verbinden kann...

Gruss Jan
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 12 Mai 2020, 12:54:09
"Haustuer has no connection to ring API, continueing..."

bedeutet, dass die Ring API (also, die Ring Server ) nicht antworten, bzw. das Skript in einen Timeout läuft, während es auf eine Antwort der Ring API gewartet hat. Hast du für FHEM einen Ring Gast/"Nachbar"-Account aufgesetzt und hast du mal den Token Cache gelöscht, so dass du dich als USer/PW anmelden musstest?

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 13 Mai 2020, 09:45:39
Das war es leider auch nicht... Habe den Token mal gelöscht und neu angelegt und auch mal versucht mich mit Haupt-Account und Gast-Account anzumelden...
Titel: Antw:Ring Video Doorbell
Beitrag von: darkblue-ac am 16 Mai 2020, 21:16:05
Hallo zusammen,

Vielen Dank für diese klasse Umsetzung.
Ich habe sie "grundsätzlich" zum Laufen gebracht. Es werden alle Readings gesetzt und ich habe das Script auch erweitert, das es die Readings der Türklingel und der Kameras periodisch setzt.
Ich habe eine Ring-Türklingel und 5 zusätzliche Kameras.
Leider scheint die Umstellung mit den Threads (Meine Vermutung) nicht ganz korrekt zu laufen (zumindest bei mir) - die Geräte werden bei "Motions" irgendwie vertauscht. Bewegung in der Einfahrt löst ein Motion auf dem Balkon aus... Haustür-Doorbell Bewegung löst ein Motion auf der Terrasse aus usw...
Ich habe dann das Script in 2 Skripte getrennt - einmal Haustür-Doorbell und dann nochmal eines für die Cams. Dachte, vielleicht hilft das...
Jetzt läuft die Doorbell sauber, die Kameras vertauschen aber immer noch die Geräte...
Hat das noch jemand? Hat jemand eine Idee?

Viele Grüße Stefan
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 22 Mai 2020, 12:04:44
Hallo, versuche jetzt schon seit einiger Zeit Fhem mit Doorbell 2 zu verknüpfen.
Wenn ich unter :/opt/fhem/bin den Befehl  python ring.py absetze kommt folgende Meldung:

Traceback (most recent call last):
  File "ring.py", line 22, in <module>
    fh = logging.FileHandler('ring.log')
  File "/usr/lib/python2.7/logging/__init__.py", line 913, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python2.7/logging/__init__.py", line 943, in _open
    stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/opt/fhem/bin/ring.log'

Ich bekomme auch keine Log-Datei in das Verzeichnis.
Die Rechte sind folgendermaßen gesetzt:

drwxr-xr-x  2 fhem dialout 4096 Mai 21 22:01 .
drwxr-xr-x 17 fhem dialout 4096 Mai 20 19:36 ..
-rwxrwxrwx  1 fhem dialout 5200 Mai 21 16:26 ring.py
-rwxrwxrwx  1 fhem dialout  303 Mai 21 22:01 run_ring

In der ring.py habe ich bei ring_user und ring_pass die Daten in Hochkomma geschrieben. Die fhem_ip habe ich in Hochkomma bei 127.0.0.1 belassen.

Ich komme hier nicht mehr weiter - wäre für jede Hilfe dankbar!

Gruss Maik
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 22 Mai 2020, 14:45:22
Zitat von: darkblue-ac am 16 Mai 2020, 21:16:05
Hallo zusammen,

Vielen Dank für diese klasse Umsetzung.
Ich habe sie "grundsätzlich" zum Laufen gebracht. Es werden alle Readings gesetzt und ich habe das Script auch erweitert, das es die Readings der Türklingel und der Kameras periodisch setzt.
Ich habe eine Ring-Türklingel und 5 zusätzliche Kameras.
Leider scheint die Umstellung mit den Threads (Meine Vermutung) nicht ganz korrekt zu laufen (zumindest bei mir) - die Geräte werden bei "Motions" irgendwie vertauscht. Bewegung in der Einfahrt löst ein Motion auf dem Balkon aus... Haustür-Doorbell Bewegung löst ein Motion auf der Terrasse aus usw...
Ich habe dann das Script in 2 Skripte getrennt - einmal Haustür-Doorbell und dann nochmal eines für die Cams. Dachte, vielleicht hilft das...
Jetzt läuft die Doorbell sauber, die Kameras vertauschen aber immer noch die Geräte...
Hat das noch jemand? Hat jemand eine Idee?

Viele Grüße Stefan

Moin Stefan,

wenn du das Debug Log aktivierst, dann bekommst du das Event angezeigt und dort steht ja drin, welches Ring Device die Meldung ausgelöst hat. Ich habe überhaupt nur ein Gerät und deshalb auch gar keine sinnvolle Möglichkeit das zu testen. Auf alle Fälle ist es so, dass alle angeschlossenen "Ring-Abonnenten" immer alle Events bekommen. Das Skript unterscheidet das aber aktuell überhaupt nicht. Wie sollte es das auch, da es ja nicht wissen kann, für welche Ring-Devices es in FHEM entsprechende FHEM-Devices gibt. Du müsstest das dann in FHEM selber lösen und dort eine Art Meta-Ring Device machen, welches dann je nach übermittelten Ring-Device seinerseits das Event an das korrekte FHEM-Device "weiterleitet". Für mich ist das entschieden zu viel Aufwand, für etwas, was ich nicht benutzen würde.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 22 Mai 2020, 14:48:09
Zitat von: mnennstiel am 22 Mai 2020, 12:04:44
Traceback (most recent call last):
  File "ring.py", line 22, in <module>
    fh = logging.FileHandler('ring.log')
  File "/usr/lib/python2.7/logging/__init__.py", line 913, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python2.7/logging/__init__.py", line 943, in _open
    stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/opt/fhem/bin/ring.log'

Ich bekomme auch keine Log-Datei in das Verzeichnis.
Die Rechte sind folgendermaßen gesetzt:

drwxr-xr-x  2 fhem dialout 4096 Mai 21 22:01 .
drwxr-xr-x 17 fhem dialout 4096 Mai 20 19:36 ..
-rwxrwxrwx  1 fhem dialout 5200 Mai 21 16:26 ring.py
-rwxrwxrwx  1 fhem dialout  303 Mai 21 22:01 run_ring

Da Skript läuft nur mit Python ab 3.5+...! Die Sache mit den Permissions auf dem Ordner ist noch ein anderes Problem, da musst du auf alle Fälle auch die Berechtigung des Ordners selber anschauen: opt/fhem/bin

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 24 Mai 2020, 13:25:11
Hallo budy,

dem Verzeichnis /opt/fhem/bin habe ich alle Rechte gegeben und es dem Benutzer fhem:dialout zugeordnet.
Den Script starte ich mit python3 (Python 3.5) ring.py und dabei jetzt kommt folgende Fehlermeldung:

pi@Raspberry-PI3B-plus:/opt/fhem/bin $ python3 ring.py
Traceback (most recent call last):
  File "ring.py", line 5, in <module>
    from thread import start_new_thread, allocate_lock
ImportError: No module named 'thread'

Was mache ich noch falsch?

Gruss Maik
Titel: Antw:Ring Video Doorbell
Beitrag von: darkblue-ac am 24 Mai 2020, 21:28:14
Zitat von: budy am 22 Mai 2020, 14:45:22
Moin Stefan,

wenn du das Debug Log aktivierst, dann bekommst du das Event angezeigt und dort steht ja drin, welches Ring Device die Meldung ausgelöst hat. Ich habe überhaupt nur ein Gerät und deshalb auch gar keine sinnvolle Möglichkeit das zu testen. Auf alle Fälle ist es so, dass alle angeschlossenen "Ring-Abonnenten" immer alle Events bekommen. Das Skript unterscheidet das aber aktuell überhaupt nicht. Wie sollte es das auch, da es ja nicht wissen kann, für welche Ring-Devices es in FHEM entsprechende FHEM-Devices gibt. Du müsstest das dann in FHEM selber lösen und dort eine Art Meta-Ring Device machen, welches dann je nach übermittelten Ring-Device seinerseits das Event an das korrekte FHEM-Device "weiterleitet". Für mich ist das entschieden zu viel Aufwand, für etwas, was ich nicht benutzen würde.

Gruß,
budy
Vielen Dank für deine Antwort...
Ich werde sie noch ein paar mal lesen müssen und dann mal schauen, wie ich das umgesetzt bekomme. Melde mich dann nochmal :)

Gruß Stefan
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 26 Mai 2020, 22:40:36
Zitat von: mnennstiel am 24 Mai 2020, 13:25:11
Hallo budy,

dem Verzeichnis /opt/fhem/bin habe ich alle Rechte gegeben und es dem Benutzer fhem:dialout zugeordnet.
Den Script starte ich mit python3 (Python 3.5) ring.py und dabei jetzt kommt folgende Fehlermeldung:

pi@Raspberry-PI3B-plus:/opt/fhem/bin $ python3 ring.py
Traceback (most recent call last):
  File "ring.py", line 5, in <module>
    from thread import start_new_thread, allocate_lock
ImportError: No module named 'thread'

Was mache ich noch falsch?

Gruss Maik

Kann mir irgendjemand weiterhelfen?
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 27 Mai 2020, 07:35:59
Moin,
Hast du es so installiert wie hier:
https://github.com/budachst/ring-fhem (https://github.com/budachst/ring-fhem)
Beschrieben?

vg
pflock_y

—————
kurz da mobil
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 27 Mai 2020, 23:20:20
Zitat von: pflock_y am 27 Mai 2020, 07:35:59
Moin,
Hast du es so installiert wie hier:
https://github.com/budachst/ring-fhem (https://github.com/budachst/ring-fhem)
Beschrieben?



—————
kurz da mobil


Hallo pflock_y,
ja ich bin nach dem Installationsbeschreibung gegangen. Ich hatte python 3.5 am laufen - damit scheint es nicht mehr zu gehen.
Habe jetzt gleich Python 3.8 parallel installiert und damit die Installation durchgeführt - sie hat funktioniert.
Wenn ich die ring.py von hand mit python ring.py starte, läuft ring.py und Meldungen von der Klingel kommen auch rein (s.Bild).

Aber irgendwie schein mein crontab nicht zu laufen. Ich habe ihn in /etc crontab -e folgende Zeilen hinzugefügt:


@reboot /opt/fhem/bin/run-ring
@hourly /opt/fhem/bin/run-ring


meine run_ring sieht so aus:


#!/bin/bash
#run_ring.sh
#make sure the process is always running.

process=/opt/fhem/bin/ring.py

if ps ax | grep -v grep | grep $process > /dev/null
then
    echo "Process $process is still running."
    exit
else
    nohup bash -c "python $process" >/dev/null &
    echo "Process $process started."
fi

exit



Berechtigung vom Verzeichnis:


pi@Raspberry-PI3B-plus:/opt/fhem/bin $ ls -la
insgesamt 44
drwxrwxrwx  2 fhem dialout  4096 Mai 27 23:26 .
drwxr-xr-x 17 fhem dialout  4096 Mai 26 22:46 ..
-rwxrwxrwx  1 fhem dialout 14791 Mai 27 23:13 ring.log
-rwxrwxrwx  1 fhem dialout 10187 Mai 27 20:19 ring.py
-rw-r--r--  1 pi   pi        966 Mai 27 22:59 ring_token.cache
-rwxrwxrwx  1 fhem dialout   312 Mai 27 22:52 run_ring


In meine FHEM Oberfläche kommen auch keine Signale in den Dummy rein ?! Wo liegt der Fehler?

Gruß Maik
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 28 Mai 2020, 07:33:46
Rufe mal in der run_ring den Prozess so auf : process="python3 /opt/fhem/bin/ring.py"

So läuft bei mir...

Gesendet von meinem VOG-L29 mit Tapatalk

Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 28 Mai 2020, 11:02:19
Zitat von: JF Mennedy am 28 Mai 2020, 07:33:46
Rufe mal in der run_ring den Prozess so auf : process="python3 /opt/fhem/bin/ring.py"

So läuft bei mir...

Gesendet von meinem VOG-L29 mit Tapatalk

Hallo JF Mennedy,
nein, das ist es nicht. Ich habe vorher mit dem Befehl "echo "alias python=/usr/local/bin/python3.8" >> ~/.bashrc" und "source ~/.bashrc" Python 3.8 als Standard für den Befehl "python" definiert!

Gruß Maik
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 28 Mai 2020, 20:20:29
Zitat von: mnennstiel am 27 Mai 2020, 23:20:20

Hallo pflock_y,
ja ich bin nach dem Installationsbeschreibung gegangen. Ich hatte python 3.5 am laufen - damit scheint es nicht mehr zu gehen.
Habe jetzt gleich Python 3.8 parallel installiert und damit die Installation durchgeführt - sie hat funktioniert.
Wenn ich die ring.py von hand mit python ring.py starte, läuft ring.py und Meldungen von der Klingel kommen auch rein.

Aber irgendwie schein mein crontab nicht zu laufen. Ich habe ihn in /etc crontab -e folgende Zeilen hinzugefügt:


@reboot /opt/fhem/bin/run-ring
@hourly /opt/fhem/bin/run-ring


meine run_ring sieht so aus:


#!/bin/bash
#run_ring.sh
#make sure the process is always running.

process=/opt/fhem/bin/ring.py

if ps ax | grep -v grep | grep $process > /dev/null
then
    echo "Process $process is still running."
    exit
else
    nohup bash -c "python $process" >/dev/null &
    echo "Process $process started."
fi

exit



Berechtigung vom Verzeichnis:


pi@Raspberry-PI3B-plus:/opt/fhem/bin $ ls -la
insgesamt 44
drwxrwxrwx  2 fhem dialout  4096 Mai 27 23:26 .
drwxr-xr-x 17 fhem dialout  4096 Mai 26 22:46 ..
-rwxrwxrwx  1 fhem dialout 14791 Mai 27 23:13 ring.log
-rwxrwxrwx  1 fhem dialout 10187 Mai 27 20:19 ring.py
-rw-r--r--  1 pi   pi        966 Mai 27 22:59 ring_token.cache
-rwxrwxrwx  1 fhem dialout   312 Mai 27 22:52 run_ring


In meine FHEM Oberfläche kommen auch keine Signale in den Dummy rein ?! Wo liegt der Fehler?

Gruß Maik

Kann mir jemand sagen, wie ich diese run_ring richtig in einen Crontab einfüge - ich dreh hier noch durch. Bei mir startet die ring.py nicht von alleine.
Wenn ich von Hand im Verzeichnis der ring.py starte, bekomme ich was bei fhem rein (z.B.lastAlertType(s.Bild)), aber der "state" ändert sich nicht.
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 28 Mai 2020, 20:45:08
Hallo Maik,
bei mir läuft die ganze Ring installation unter dem user: fhem. Hat den Grund weil auch eine meiner FHEM Installationen darauf läuft.

den crontab bearbeite ich mit dem fhem user:

sudo -u fhem crontab -e

der sieht dann bei mir so:

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

#@reboot sleep 180;/opt/fhem/bin/run_ring
@reboot /bin/bash --login /opt/fhem/bin/run_ring.sh
@hourly /bin/bash --login /opt/fhem/bin/run_ring.sh
#*/10 * * * * /bin/bash --login /opt/fhem/bin/run_ring.sh
#*/10 * * * * /opt/fhem/bin/run_ring.sh
#*/10 * * * * /opt/fhem/bin/run_ring_old


aus.

meine run run_ring sieht so:

#!/bin/bash
#run_ring.sh
#make sure the process is always running.

process="python3.7 /opt/fhem/bin/ring_v1.0.11.py"

pkill -9 -f ring_v1.0.11.py

$process < /dev/null &> /dev/null & disown
echo "Process $process started."

exit

aus.

Ja ich bin noch auf einer älteren Version der ring.py von budy, hab es noch nicht geschafft upzudaten.  ::)

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 28 Mai 2020, 21:10:42
Danke für deine Antwort pflock_y,

es ist zum k.... - es gibt soviel Varianten hier wie man es hinbekommen kann. Jeder hat sich seine eigene Variante gebaut.
Leider funktioniert deine Variante bei mir auch nicht. Warum gibt es nicht eine einheitliche Methode ?

Wenn man die Vorlagen
https://github.com/budachst/ring-fhem/blob/master/run_ring (https://github.com/budachst/ring-fhem/blob/master/run_ring)
oder
https://github.com/tchellomello/python-ring-doorbell/pull/108 (https://github.com/tchellomello/python-ring-doorbell/pull/108)
geht es nicht - oder irgendeine Kleinigkeit fehlt!

Jeder hat sich seine eigene ring.py gebaut bzw. abgeändert - die run_ring bzw. run_ring.sh gibt es auch in unterschiedlichen Varianten ...

Sorry, ich weiß, dass es Arbeit macht einen genaue Ablaufbeschreibung zu bauen. Ich will eigentlich auch nicht beschweren.
Aus mir spricht nur reine Verzweiflung...

:-[
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 28 Mai 2020, 21:16:07
Zitat von: mnennstiel am 28 Mai 2020, 11:02:19
... Ich habe vorher mit dem Befehl "echo "alias python=/usr/local/bin/python3.8" >> ~/.bashrc" und "source ~/.bashrc" Python 3.8 als Standard für den Befehl "python" definiert!
Hallo Maik,

für welchen User?

Also Deine Frage war crontab, die wurde beantwortet.
Wenn Deine run_ring nicht solo läuft, läuft sie auch nicht in crontab.

Also poste beides und ev. sieht jemand was. Nur schimpfen und sagen geht nicht - hilft niemanden.

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 28 Mai 2020, 21:35:16
Zitat von: Otto123 am 28 Mai 2020, 21:16:07
Hallo Maik,

für welchen User?

Also Deine Frage war crontab, die wurde beantwortet.
Wenn Deine run_ring nicht solo läuft, läuft sie auch nicht in crontab.

Also poste beides und ev. sieht jemand was. Nur schimpfen und sagen geht nicht - hilft niemanden.

Gruß Otto

Sorry kann ich dir nicht sagen für welchen User - bin da einer Beschreibung im Netz gefolgt.

Ich habe jetzt schon soviel Änderungen vorgenommen, das ich erstmal einige rückgängig machen musste, um auf irgendeine Variante aufzubauen. Und um dir auch eine klare Aussage zu machen Otto.

run_ring:

#!/bin/bash
#run_ring.sh
#make sure the process is always running.

process=/opt/fhem/bin//ring.py

if ps ax | grep -v grep | grep $process > /dev/null
then
    echo "Process $process is still running."
    exit
else
    nohup bash -c "python $process" >/dev/null &
    echo "Process $process started."
fi

exit


crontab -e unter /etc

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

@reboot fhem /opt/fhem/bin/run-ring
@hourly fhem /opt/fhem/bin/run-ring
#
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 28 Mai 2020, 21:39:48
der hier ist schon mal falsch: process=/opt/fhem/bin//ring.py

Und mit standard - python läuft doch das aktuelle Script nicht mehr?

Mit crontab -e kann man die (user) crontab bearbeiten
Mit crontab -l anzeigen

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 28 Mai 2020, 21:44:34
OK sorry - habe ich jetzt beim Umschreiben falsch geschrieben. Wollte nämlich deine Variante unter /home/pi versuchen.

So - geändert - funktioniert aber nicht!




Wenn ich unter /opt/fhem/bin python ring.py eingebe bekommt der Dummy unter fhem Signale rein - die Log Datei wird auch beschrieben!

Um Python 3.8 zu installieren von ich folgender Anleitung gefolgt: https://installvirtual.com/how-to-install-python-3-8-on-raspberry-pi-raspbian/ (https://installvirtual.com/how-to-install-python-3-8-on-raspberry-pi-raspbian/)
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 28 Mai 2020, 21:56:12
Was funktioniert nicht? die run-ring ausführen? Was kommt als Ausgabe?
Was hat das fhem da zu suchen? ???

Zitat@hourly fhem /opt/fhem/bin/run-ring

ZitatWenn ich unter /opt/fhem/bin python ring.py eingebe
Und wieder die Frage: welcher user?
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 28 Mai 2020, 21:58:26
folgendes kommt:




ok den user fhem habe ich jetzt aus der crontab entfernt - ändert aber nix an dem Resultat. Hatte ich vorher schon weggelassen o.E.




ich habe keinen bestimmten User eingetragen - ich denke es ist alles unter user:pi


pi@Raspberry-PI3B-plus:/opt/fhem/bin $ ls -la
insgesamt 68
drwxrwxrwx  2 fhem dialout  4096 Mai 28 21:40 .
drwxr-xr-x 18 fhem dialout  4096 Mai 28 11:25 ..
-rwxrwxrwx  1 fhem dialout 34299 Mai 28 22:04 ring.log
-rwxrwxrwx  1 fhem dialout 10187 Mai 28 12:08 ring.py
-rw-r--r--  1 pi   pi        966 Mai 28 21:11 ring_token.cache
-rwxrwxrwx  1 fhem dialout   311 Mai 28 21:40 run_ring
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 28 Mai 2020, 22:03:34
Und was sagt
ps -aux|grep ring
und keine Bilder :( lässt sich die Ausgabe nicht als Text kopieren?
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 28 Mai 2020, 22:06:47
pi@Raspberry-PI3B-plus:~ $ ps -aux|grep ring
pi        1577  0.0  0.0   4368   572 pts/1    S+   22:06   0:00 grep --color=auto ring

Was bedeutet das?
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 28 Mai 2020, 22:30:16
ich meine der Prozess läuft nicht :(
Obwohl laut Bild da steht er hat ihn gestartet. Hat er ihn wieder beendet?

Was ist wenn Du in gleicher Situation das eingibst?
bash -c "python /opt/fhem/bin/ring.py"
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 28 Mai 2020, 22:32:56
Zitat von: Otto123 am 28 Mai 2020, 22:30:16
ich meine der Prozess läuft nicht :(
Obwohl laut Bild da steht er hat ihn gestartet. Hat er ihn wieder beendet?

Was ist wenn Du in gleicher Situation das eingibst?
bash -c "python /opt/fhem/bin/ring.py"

Nun kommt das:

pi@Raspberry-PI3B-plus:/opt/fhem/bin $ bash -c "python /opt/fhem/bin/ring.py"
Traceback (most recent call last):
  File "/opt/fhem/bin/ring.py", line 10, in <module>
    from pathlib import Path
ImportError: No module named pathlib
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 28 Mai 2020, 22:38:45
Und jetzt sind wir wieder bei meiner Frage #331.
Du hast für irgendwen die ~/.bashrc" Python 3.8 als Standard definiert. Gilt genau für diesen User.

Würd ich nie machen, mach den Aufruf am Besten mit absoluten Pfaden zu Deiner python 3.8 Installation.
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 28 Mai 2020, 22:42:45
OK - wie kann ich das wieder rückgängig machen? Ich war beim Standartfestsetzen als User PI !

habe jetzt mal deinen Befehl mit 3.8 gestartet und dann auch mal die Doorbell-Klingel gedrückt.


pi@Raspberry-PI3B-plus:/opt/fhem/bin $ bash -c "python3.8 /opt/fhem/bin/ring.py"
2020-05-28 22:40:11,882 - fhem_ring - INFO - Found 1 devices.
2020-05-28 22:40:11,887 - fhem_ring - INFO - Updating device data for device 'FrontDoor' in FHEM...
2020-05-28 22:40:11,890 - fhem_ring - INFO - Polling for events.
2020-05-28 22:40:12,493 - fhem_ring - INFO - Updating device data for device 'FrontDoor' in FHEM...
2020-05-28 22:40:12,630 - fhem_ring - INFO - No connection to ring API, continueing...
2020-05-28 22:40:12,631 - fhem_ring - INFO - Snapshot: False
2020-05-28 22:40:48,561 - fhem_ring - INFO - Updating device data for device 'FrontDoor' in FHEM...
2020-05-28 22:40:48,564 - fhem_ring - INFO - Alert detected at 'FrontDoor'.
2020-05-28 22:42:13,034 - fhem_ring - INFO - Updating device data for device 'FrontDoor' in FHEM...
2020-05-28 22:42:13,178 - fhem_ring - INFO - No connection to ring API, continueing...
2020-05-28 22:42:13,180 - fhem_ring - INFO - Snapshot: False
2020-05-28 22:44:13,655 - fhem_ring - INFO - Updating device data for device 'FrontDoor' in FHEM...
2020-05-28 22:44:13,792 - fhem_ring - INFO - No connection to ring API, continueing...
2020-05-28 22:44:13,793 - fhem_ring - INFO - Snapshot: False
2020-05-28 22:46:14,247 - fhem_ring - INFO - Updating device data for device 'FrontDoor' in FHEM...
2020-05-28 22:46:14,404 - fhem_ring - INFO - No connection to ring API, continueing...
2020-05-28 22:46:14,406 - fhem_ring - INFO - Snapshot: False
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 28 Mai 2020, 22:52:45
Rückgängig? Ist doch egal, ist jetzt so für user pi. Stört doch erstmal nicht.
Jetzt (er)setzt Du diesen Befehl in deine run-ring ;)
Dann probierst Du die run-ring. Aber wirklich so
/opt/fhem/bin/run-ring

Wen die geht, machst Du crontab.
crontab -e dann macht er den editor auf und Du fügst die zwei Zeilen ein:
@reboot /opt/fhem/bin/run-ring
@hourly /opt/fhem/bin/run-ring



Wie gesagt ich halte die verquickung von user fhem (inklusive dem Ordner /opt/fhem/bin) für unnötig.
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 28 Mai 2020, 23:05:47
Ouuuh  -  Otto ein fataler Schreibfehler

Zitat
/opt/fhem/bin/run-ring

müßte

/opt/fhem/bin/run_ring

heißen, und im crontab -e den ich unter /etc im Editor öffne muss auch

@reboot /opt/fhem/bin/run_ring
@hourly /opt/fhem/bin/run_ring

stehen!!!!

:o




Wenn ich /opt/fhem/bin/run_ring eingebe kommt:


pi@Raspberry-PI3B-plus:~ $ /opt/fhem/bin/run_ring
Process /opt/fhem/bin/ring.py started.
pi@Raspberry-PI3B-plus:~ $ nohup: leite Standardfehlerausgabe auf Standardausgabe um


Aber der crontab -e unter /etc scheint trotzdem nicht zu laufen!


# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repo$
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repo$
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repo$
#

@reboot /opt/fhem/bin/run_ring
@hourly /opt/fhem/bin/run_ring
#






pi@Raspberry-PI3B-plus:~ $ crontab -l
no crontab for pi


kann aber mit 'cd /etc' und 'sudo nano crontab -e" den crontab oben bearbeiten


... ich gehe jetzt erstmal schlafen - Gute Nacht!
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 29 Mai 2020, 09:15:02
Moin,

ich habe keine Ahnung was bei sudo nano crontab -e wirklich passiert und rauskommt, aber was sinnvolles kann es nicht sein.
Zur Erklärung:
Der Befehl
crontab -e
Öffnet den Editor mit der crontab für den aktiven Benutzer. Normal kann man alles auch mit der machen.
Der Befehl
sudo crontab -e
Öffnet die crontab für user root
In der /etc/crontab steht die system-wide crontab - die würde ich persönlich in Ruhe lassen.

Nach meiner Meinung kann man die rung_ring (oder wie immer die "richtig" heisst) auch einfach aus FHEM heraus starten.
Ein notify auf global:INITIALIZED und ein at was stündlich startet macht eigentlich das Gleiche.

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 29 Mai 2020, 19:15:22
Zitat von: Otto123 am 29 Mai 2020, 09:15:02
Moin,

ich habe keine Ahnung was bei sudo nano crontab -e wirklich passiert und rauskommt, aber was sinnvolles kann es nicht sein.
Zur Erklärung:
Der Befehl
crontab -e
Öffnet den Editor mit der crontab für den aktiven Benutzer. Normal kann man alles auch mit der machen.
Der Befehl
sudo crontab -e
Öffnet die crontab für user root
In der /etc/crontab steht die system-wide crontab - die würde ich persönlich in Ruhe lassen.

Nach meiner Meinung kann man die rung_ring (oder wie immer die "richtig" heisst) auch einfach aus FHEM heraus starten.
Ein notify auf global:INITIALIZED und ein at was stündlich startet macht eigentlich das Gleiche.

Gruß Otto

Vielen lieben Dank für deine bisherige Hilfe Otto,

aber wie starte ich die run_ring aus fhem heraus?

Gruss Maik
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 29 Mai 2020, 19:56:43
Hallo Maik,

Versuch es mal so, in der FHEM Kommandozeile MIT den " " !
"/opt/fhem/bin/run-ring"

Siehe auch https://fhem.de/commandref_DE.html#command

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 29 Mai 2020, 20:37:58
"/opt/fhem/bin/run-ring"

der Befehl geht zwar raus ohne Fehler - aber da tut sich nix in FHEM!

und wenn ich den Befehl auf Befehlsebende absetze wird es gestartet.


pi@Raspberry-PI3B-plus:~ $ /opt/fhem/bin/run_ring
Process /opt/fhem/bin/ring.py started.
pi@Raspberry-PI3B-plus:~ $ nohup: leite Standardfehlerausgabe auf Standardausgabe um
cd /etc
pi@Raspberry-PI3B-plus:/etc $ /opt/fhem/bin/run_ring
Process /opt/fhem/bin/ring.py is still running.
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 29 Mai 2020, 21:02:42
Was steht im FHEM Log? Die Ausgabe von run_ring sollte dort eigentlich erscheinen.
Es kann sein der user fhem hat keine Umgebung - ich mache das sowieso immer so
"bash opt/fhem/bin/run_ring"

Aber Deine Ausgabe sagt eigentlich : es läuft schon!
ZitatProcess /opt/fhem/bin/ring.py is still running.
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 29 Mai 2020, 21:37:40
Zitat von: Otto123 am 29 Mai 2020, 21:02:42
Was steht im FHEM Log? Die Ausgabe von run_ring sollte dort eigentlich erscheinen.
Es kann sein der user fhem hat keine Umgebung - ich mache das sowieso immer so
"bash opt/fhem/bin/run_ring"

Aber Deine Ausgabe sagt eigentlich : es läuft schon!

Nein diese habe ich Raspberry - Ebene ausgelöst! Wollte dir dahttps://forum.fhem.de/Smileys/default/sad.gifmit zeigen, dass noch nicht läuft!

Habe jetzt "bash opt/fhem/bin/run_ring" eingegeben ...

Im FHEM Log steht:

Process /opt/fhem/bin/ring.py started.
Traceback (most recent call last):
  File "/opt/fhem/bin/ring.py", line 8, in <module>
    import fhem
ModuleNotFoundError: No module named 'fhem'


Never ending story .....   :'( :(

Irgendwas scheint mit meiner neuen Python3.8er Version nicht stimmen - ich gebe auf !
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 29 Mai 2020, 22:51:32
naja, da ist jetzt wieder die python Umgebung nicht "intakt" für den User fhem. Da bin ich auch nicht fit.

Meint: user fhem darf was nicht in python

Ich habe das alles einfach von fhem entkoppelt.
python als user pi installiert
Die Scripts ins homedir von pi geworfen.
run_ring angepasst
Als user pi getestet
crontab -e als user pi gemacht.
fertig.

Allerdings wird es mittlerweile nicht mehr genutzt, ich kann es jetzt nicht testen.
Titel: Antw:Ring Video Doorbell
Beitrag von: budy am 02 Juni 2020, 11:27:14
Zitat von: mnennstiel am 29 Mai 2020, 21:37:40
Irgendwas scheint mit meiner neuen Python3.8er Version nicht stimmen - ich gebe auf !

Aaalso... generell gilt: für jede Python-Version müssen jeweils die fhem- und die ring-Libs importiert werden. Wenn du die Python-Version wechselst, dann muss das sichergestellt sein. Wie das geht steht in der Anleitung, denn das ist immer gleich.

Mir ist auch nicht klar, warum du das Skript unbedingt aus FHEM heraus starten willst. Bei mit gibt es einen systemd-Service, der das Skript einmal startet und gut is... das muss auch nicht andauernd neu gestartet werden, weswegen ein Eintrag in die normale crontab einfach überflüssig ist. Ich schau mal eben nach, aber bei mir läuft das Skript seit... dem 11.Mai ohne Probleme.

Gruß,
budy
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 05 Juni 2020, 15:50:06
Meinst du mit ring libs und fhem libs die pip Datei, die ins jeweilige Python installiert werden muss? Wenn ja das habe ich gemacht!
Trotz allem funktioniert es nicht!
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 24 Juni 2020, 15:48:54
Hallo
Bei mir funktioniert soweit alles
Wenn ich es aus dem Verzeichnis /opt/fhem/bin/run_ring ausführe startet das programm und es läuft fehlerfrei

sobald der cronjob über die user fhem crontab startet funktioniert der aufruf nicht mehr. Ich bekomme leider aber auch keine Fehlermeldung um feststellen zu können woran das problem liegt.
Einzigen anhaltspunkt den ich gefunden habe führt man run ring nicht aus dem Verzeichniss /opt/fhem/bin aus dann wird eine tokengenrierung verlangt.
Kann mir hier jemand weiterhelfen?
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 27 Juni 2020, 22:05:59
Zitat von: leachim200 am 24 Juni 2020, 15:48:54
Wenn ich es aus dem Verzeichnis /opt/fhem/bin/run_ring ausführe startet das programm und es läuft fehlerfrei
Als welcher User?
Zitat von: leachim200 am 24 Juni 2020, 15:48:54
Einzigen anhaltspunkt den ich gefunden habe führt man run ring nicht aus dem Verzeichniss /opt/fhem/bin aus dann wird eine tokengenrierung verlangt.
Warum führst Du es dann nicht einfach in diesem Pfad aus? cd /opt/fhem/bin

Gruß Otto
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 02 Juli 2020, 08:36:13
Hi
Ich führe es jeweils als user fhem aus.

Ausführen möchte ich ja den cronjob, der nicht funktioniert.
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 02 Juli 2020, 08:42:06
Und wie schaut der cronjob aus? :-X
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 05 Juli 2020, 09:32:23
in der crontab des fhem users

@reboot /opt/fhem/bin/run_ring
@hourly /opt/fhem/bin/run_ring

Wie gesagt ich sehe im logfile das der job gestartet wird allerdings nachdem er gelaufen ist, hat nur der kill prozess funktioniert.
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 05 Juli 2020, 10:28:43
Du hast doch die Antwort schon selbst gegeben:

Einzigen anhaltspunkt den ich gefunden habe führt man run ring nicht aus dem Verzeichniss /opt/fhem/bin aus dann wird eine tokengenrierung verlangt.

Also musst Du in deinem Script als erstes den aktuellen Pfad auf /opt/fhem/bin setzen. Oder ein extra Script als crontab aufrufen:
cd /opt/fhem/bin
run_ring


Es ist aus meiner Sicht unnötig kompliziert, das Script als user fhem auszuführen.
Titel: Antw:Ring Video Doorbell
Beitrag von: Sascha_F am 03 August 2020, 11:06:20
Hallo zusammen,

ich habe gesehen, dass es für ioBroker einen Adapter für die Ring gibt.

Besteht die Möglichkeit, dass es zukünftig auch ein Modul für FHEM geben wird? Leider muss ich sagen, dass ich nicht in der Lage bin so etwas umzusetzen  :(     Ich habe immer schon mal wieder in diverse Module geschaut - einfach um zu schauen, was ich verstehe und was nicht --> bin aber leider noch Lichtjahre davon entfernt auch nur ansatzweise selbst eine .pm  aus dem Nichts erstellen zu können...

Ich überlege, ob ich den Adapter mal teste - allerdings nutze ich ioBroker nicht. Habe ich mir mal angesehen, bin aber doch an FHEM hängen geblieben - alte Liebe und so  ;D
ioBroker wäre dann nur dafür da, um die Info aus dem Adapter an FHEM zu übergeben - etwas mit Kanonen auf Spatzen geschossen.

Versteht mich bitte nicht falsch - ich bin sehr Dankbar für die bisherige Lösung und die Zeit, die ihr in eurer Freizeit investiert! Daher nochmal explizit: Danke!  :D
Ich versuche nur nach Möglichkeit immer eine Variante (abweichend vom "Standard" (also Module)) zu verwenden, da ich mich mit manuellen Installationen (außerhalb von FHEM) ebenfalls nicht soooo sicher fühle - auch in Bezug auf Berechtigungen, Updates, etc. (hoffe, ich versteht, was ich meine).

So, reicht aber erst einmal  ;)

Danke, viele Grüße und genießt das Wetter!
Sascha
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 04 Oktober 2020, 21:02:37
Wäre auch glücklich über eine PM von Doorbell!
Titel: Antw:Ring Video Doorbell
Beitrag von: onkel-tobi am 18 Oktober 2020, 08:28:58
Gibt es eigtl. etwas neues bezüglich screenshot?
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 18 Oktober 2020, 21:05:12
Hi,

ich baue gerade ein FHEM Pythonbinding, damit lassen sich Module in nativen Pythen schreiben. Es ist noch BETA und einige User testen es bereits ausführlich.

Ich habe nun auf dieser Basis ein ring Modul für FHEM gebaut.

Wer es testen mag kann folgendes tun:
https://github.com/dominikkarall/fhem_pythonbinding

Installationsanleitung befolgen und dann
https://github.com/dominikkarall/fhem_pythonbinding/blob/master/FHEM/bindings/python/lib/ring/README.md

Danke an JF Mennedy für das Teilen der Doorbell damit ich testen und entwickeln konnte. Ich selbst habe keine Ring Produkte. Falls also jemand Chime oder Cam hat, kann das gerne auch getestet werden.

Bitte dann um Feedback ob es bei euch läuft.
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 19 Oktober 2020, 19:20:46
Das letzte Update von gestern läuft einwandfrei... Ich lasse dir noch den zugang.. Sag mir einfach bescheid, wenn du ihn nicht mehr benötigst...

Gruss jan
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 04 November 2020, 16:01:29
Hab mir mal ein chime zugelegt... wird vom python Modul erkannt und angelegt... Wenn man nun die Lautstärke noch ändern könnte, wäre es top, da man dann auf die Bewegungszeitpläne der ring app verzichten könnte...
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 04 November 2020, 20:05:54
Das ist schnell erledigt.

Ich stell das Update heute Abend ein, wäre super, wenn du morgen dann einen kurzen Test machen könntest.
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 05 November 2020, 13:23:18
Hallo,

ich habe auch versucht, meine Ring Geräte einzubinden. Beim setzen des Passworts bekommen ich folgende Antwort.

Failed to execute function Set: Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 236, in _onMessage
    ret = await asyncio.wait_for(func(hash, hash['args'], hash['argsh']), fct_timeout)
  File "/usr/lib/python3.8/asyncio/tasks.py", line 483, in wait_for
    return fut.result()
  File "/opt/fhem/FHEM/bindings/python/lib/ring/ring.py", line 228, in Set
    if self._rdevice.has_capability("volume"):
AttributeError: 'NoneType' object has no attribute 'has_capability'


Hier das List dazu. Installation nach Anleitung hat ohne Fehler geklappt.

Internals:
   DEF        ring xx@yy.zz Garten
   FUUID      5fa3e6fa-f33f-73c2-9c5d-2b0b4af790e7a838
   IODev      pythonbinding
   NAME       rrring
   NR         532
   PYTHONTYPE ring
   STATE      please set password
   TYPE       PythonModule
   Helper:
     DBLOG:
       state:
         DBLogging:
           TIME       1604577029.99425
           VALUE      please set password
   READINGS:
     2020-11-05 12:50:29   state           please set password
   args:
     rrring
     PythonModule
     ring
     xx@yy.zz
     Garten
   argsh:
Attributes:
   IODev      pythonbinding
   userattr   deviceUpdateInterval dingPollInterval


Habe ich irgendwo einen Fehler gemacht oder liegt es nicht an mir?

Wenn noch etwas benötigt wird, bitte melden.

Dirk
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 05 November 2020, 13:37:05
ich noch einmal

Beim Aufruf der Seite für das Gerät in FHEM bekomme ich folgende Fehlermeldungen im FHEM Log. Es sind drei Aufrufe der Seite mit den jeweiligen Fehlermeldungen.

2020.11.05 13:31:09 1:  PERL WARNING: String found where operator expected at (eval 1317) line 1, near "py",""
2020.11.05 13:31:09 3:  eval: {ReadingsVal("rrring",""/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py",","")}
2020.11.05 13:31:09 1:  ERROR evaluating {ReadingsVal("rrring",""/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py",","")}: Bareword "opt" not allowed while "strict subs" in use at (eval 1317) line 1.
Unknown regexp modifier "/b" at (eval 1317) line 1, at end of line
syntax error at (eval 1317) line 1, near "py",""

2020.11.05 13:32:09 1:  PERL WARNING: String found where operator expected at (eval 1346) line 1, near "py",""
2020.11.05 13:32:09 3:  eval: {ReadingsVal("rrring",""/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py",","")}
2020.11.05 13:32:09 1:  ERROR evaluating {ReadingsVal("rrring",""/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py",","")}: Bareword "opt" not allowed while "strict subs" in use at (eval 1346) line 1.
Unknown regexp modifier "/b" at (eval 1346) line 1, at end of line
syntax error at (eval 1346) line 1, near "py",""

2020.11.05 13:33:02 1:  PERL WARNING: String found where operator expected at (eval 1378) line 1, near "py",""
2020.11.05 13:33:02 3:  eval: {ReadingsVal("rrring",""/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py",","")}
2020.11.05 13:33:02 1:  ERROR evaluating {ReadingsVal("rrring",""/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py",","")}: Bareword "opt" not allowed while "strict subs" in use at (eval 1378) line 1.
Unknown regexp modifier "/b" at (eval 1378) line 1, at end of line
syntax error at (eval 1378) line 1, near "py",""
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 05 November 2020, 16:57:33
Hi,

die Lautstärke lässt sich leider nicht verstellen...

Gruss Jan
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 05 November 2020, 18:51:43
Da hat sich bei Volume scheinbar doch noch ein Fehler eingeschlichen.

@Jan, könntest du mir bitte wieder ein Testdevice freigeben, dann kann ich das schneller implementieren. Danke!

@diehmann69, das sieht sehr eigenartig aus. Wie hast du das Device definiert? Poste mal die Ausgabe von "jsonlist2 rrring".
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 05 November 2020, 19:12:17
na gern doch

{
  "Arg":"rrring",
  "Results": [
  {
    "Name":"rrring",
    "PossibleSets":"Failed to execute function Set: Traceback (most recent call last):\n  File \"/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py\", line 236, in _onMessage\n    ret = await asyncio.wait_for(func(hash, hash['args'], hash['argsh']), fct_timeout)\n  File \"/usr/lib/python3.8/asyncio/tasks.py\", line 483, in wait_for\n    return fut.result()\n  File \"/opt/fhem/FHEM/bindings/python/lib/ring/ring.py\", line 228, in Set\n    if self._rdevice.has_capability(\"volume\"):\nAttributeError: 'NoneType' object has no attribute 'has_capability'\n",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude DbLogValueFn:textField-long alexaName alexaProactiveEvents:1,0 alexaRoom assistantName:textField cmdIcon devStateIcon devStateIcon:textField-long devStateStyle gassistantName:textField genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,scene,speaker,thermostat,contact,garage,window,lock,aircondition,airfreshener,airpurifier,awning,blinds,boiler,camera,coffeemaker,curtain,dishwasher,door,dryer,fan,fireplace,gate,heater,hood,kettle,microwave,oven,pregola,refrigerator,securitysystem,shutter,shower,sprinkler,vacuum,valve,washer,waterheater,ac_unit,bathtub,bed,blender,closet,coffee_maker,cooktop,dehumidifier,dehydrator,drawer,faucet,fryer,grill,humidifier,mop,mower,multicooker,pergola,petfeeder,pressurecooker,radiator,sousvide,standmixer,yogurtmaker,charger,sensor,carbon_monoxide_detector,remotecontrol,settop,smoke_detector,tv,waterpurifier,watersoftener,network,router,aircooler,audio_video_receiver,freezer,streaming_box,streaming_stick,streaming_soundbar,soundbar homebridgeMapping:textField-long icon realRoom:textField sortby webCmd webCmdLabel:textField-long widgetOverride deviceUpdateInterval dingPollInterval userattr",
    "Internals": {
      "DEF": "ring xx@yy.zz Garten",
      "FUUID": "5fa3e6fa-f33f-73c2-9c5d-2b0b4af790e7a838",
      "IODev": "pythonbinding",
      "NAME": "rrring",
      "NR": "440",
      "PYTHONTYPE": "ring",
      "RINGDEVICE": "Garten",
      "STATE": "please set password",
      "TYPE": "PythonModule",
      "USERNAME": "xx@yy.zz"
    },
    "Readings": {      "state": { "Value":"please set password", "Time":"2020-11-05 13:26:06" } },
    "Attributes": {
      "IODev": "pythonbinding",
      "userattr": "deviceUpdateInterval dingPollInterval"
    }
  }  ],
  "totalResultsReturned":1
}
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 05 November 2020, 19:22:38
das problem, chime ist nicht im gast account verfugbar... geb dir per pn gern den hauptzugang, da müssten wir uns allerdings zum 1. login verabreden wegen des 2f1 keys...
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 05 November 2020, 19:24:33
Muss nicht chime sein, doorbell kann angeblich auch volume setzen.
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 05 November 2020, 19:30:42
ok, hab dir wieder eine einladung geschickt...
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 05 November 2020, 21:23:31
Danke! Ich habe das Gefühl, dass Doorbell zwar ein volume hat, das aber nichts macht. Dennoch konnte ich soweit mal die Fehler ausbessern.

Bitte um Update und nochmaligen Test mit chime.

@dlehmann69, der Fehler lag an der volume Integration. Sollte nun behoben sein, bitte um Update.
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 05 November 2020, 21:32:49
Ja sehr geil.. Funktioniert :-} super vielen dank
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 05 November 2020, 21:34:29
Cool! Ich habe gerade noch gesehen, dass ich den Range von 0-11 drin haben, Chime supported nur 0-10. Das korrigiere ich noch.

Doorbell kannst du mir wieder entziehen :)
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 05 November 2020, 22:37:08
Hallo,

Super und vielen Dank. Jetzt funktioniert es.
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 06 November 2020, 09:45:54
Kurze Nachfrage zu einem möglichen Update Intervall für das Device.

Gibt es da eine Möglichkeit, dies einzustellen? Es gibt ja zwei User Attribute deviceUpdateInterval und dingPollInterval. Dienen diese dazu und wenn ja, was kommt da rein? Sekunden?

Grüße
Dirk
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 06 November 2020, 21:04:57
Ja, mit den beiden Attributen ist das einstellbar.

Einfach die Zeit in Sekunden angeben. dingPollIntervall sollte kurz sein, da sonst ein Alert versäumt werden kann. Default ist 2s.
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 11 November 2020, 08:23:00
Hallo
Ich habe auch versucht das Modul zu installieren scheitere aber leider irgendwie daran.
Ich habe alles genau nach Anleitung installiert und dem User fhem sogar als standart python3.8.4 hinterlegt

Folgendes habe ich im log stehen
2020.11.11 08:20:34 1: BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.11.11 08:20:46 1: BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.11.11 08:20:47 3: Pythonbinding_0: starting
2020.11.11 08:20:47 3: Pythonbinding_0: using logfile: ./log/PythonBinding-2020-11-11.log
2020.11.11 08:20:47 3: Pythonbinding_0: read: end of file reached while sysread
2020.11.11 08:20:47 3: Pythonbinding_0: stopped


Der logfile Auszug sieht so aus
Traceback (most recent call last):
  File "FHEM/bindings/python/pythonbinding.py", line 3, in <module>
    import lib.fhem_pythonbinding as fpb
  File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 3, in <module>
    import websockets
ModuleNotFoundError: No module named 'websockets'
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 11 November 2020, 15:44:18
Hi,

websockets wurde nicht installiert:
https://github.com/dominikkarall/fhem_pythonbinding#console

Falls eine Fehlermeldung bei der Installation kommt, bitte posten.
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 12 November 2020, 12:38:27
Hi
danke für die Info zumindest mein gedankengang war nicht ganz falsch
Hier das logfile keine Fehlermeldung:

fhem@fhemrpi:~$ sudo cpan Protocol::WebSocket
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/root/.cpan/Metadata'
  Database was generated on Thu, 12 Nov 2020 11:17:03 GMT
Protocol::WebSocket is up to date (0.26).


fhem@fhemrpi:~$ sudo pip3 install asyncio websockets importlib_metadata
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting asyncio
  Using cached asyncio-3.4.3-py3-none-any.whl (101 kB)
Collecting websockets
  Using cached https://www.piwheels.org/simple/websockets/websockets-8.1-cp37-cp37m-linux_armv7l.whl (78 kB)
Collecting importlib_metadata
  Using cached importlib_metadata-2.0.0-py2.py3-none-any.whl (31 kB)
Collecting zipp>=0.5
  Using cached zipp-3.4.0-py3-none-any.whl (5.2 kB)
Installing collected packages: asyncio, websockets, zipp, importlib-metadata
Successfully installed asyncio-3.4.3 importlib-metadata-2.0.0 websockets-8.1 zipp-3.4.0


Python Version
fhem@fhemrpi:~$ python --version
Python 3.8.4


OK nach einem Reboot hat es jetzt funktioniert keine Ahnung wo der Hunde begraben lag
danke für die hilfe
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 12 November 2020, 13:53:06
Hi
Also nachdem nun alles funktioniert hätte ich noch eine frage.
Ich verwende den motion sensor der ring um meine Überwachungskamera anzusteuern. Gibt es hier eine möglichkeit den last-kind auch als last ohne nummer anzugeben?
lg
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 13 November 2020, 21:41:09
Hi,
kannst du mir bitte mehr Details geben? Um welches Reading geht es da? Was steht aktuell im Reading und was hättest du gerne?
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 15 November 2020, 09:40:20
Sry für die vielen Verwirrenden postings.
Es funktioniert nun ich habe ein reading gesucht das mir den aktuellen Status also motion, ding anzeigt, da dass aber erst funktioniert wenn einmal motion oder ding passiert ist an der doorbell hab ich es nicht gleich gefunden.
Soweit funktioniert erstmal alles was ich benötige. Ich werde es testen und dir feedback geben.
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 17 November 2020, 16:42:01
So also hier mal ein erster Testbericht.
Funktioniert eigentlich ganz gut.

Eine Sache ist mir nur aufgefallen nach ca. 2 Tagen werden keine Aktualisierungen mehr gesendet.
Trotz einer Bewegung die meine Ring Video Doorbell meldet wird diese in FHEM nicht aktualisiert.
Lg michi
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 17 November 2020, 21:02:22
Zitat von: leachim200 am 17 November 2020, 16:42:01
So also hier mal ein erster Testbericht.
Funktioniert eigentlich ganz gut.

Eine Sache ist mir nur aufgefallen nach ca. 2 Tagen werden keine Aktualisierungen mehr gesendet.
Trotz einer Bewegung die meine Ring Video Doorbell meldet wird diese in FHEM nicht aktualisiert.
Lg michi
Kannst du bitte in /opt/fhem/log/PythonBinding-...log nachsehen ob da eine Fehlermeldung enthalten ist?
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 18 November 2020, 10:30:18
Hi
Ich habe mal versucht das raus zu finden

2020-11-16 22:39:46,047 - ERROR    - rrring: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/lib/ring/ring.py", line 119, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 28, in run_blocking
    pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/lib/ring/ring.py", line 192, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 101, in query
    timeout=timeout,
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.ring.com/clients_api/dings/active?api_version=9
2020-11-16 22:42:31,828 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-16 22:47:33,510 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-16 22:52:35,244 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 18 November 2020, 19:08:11
Ich habe das mal gegoogelt und gesehen, dass es bei Home Assistant schon ähnliche Rückmeldungen gab. Der Grund dürfte ein abgelaufener Token sein, kann sein, dass der nur 48h läuft und ich das noch nicht richtig verarbeite. Ich schau mir das mal an.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 18 November 2020, 19:55:16
Laut Doku und auch der Home Assistant Implementierung schaut im Code alles korrekt aus.

Hast du das ding oder deviceUpdateInterval geändert? Teilweise habe ich gelesen, dass bei zu kurzen Intervallen dieses Problem vorkommen kann. deviceUpdateInterval kann eigentlich sehr lang (300s default) sein, das braucht man im Normalfall nicht.
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 19 November 2020, 07:10:48
Hi
Danke für die Rückmeldung. Ich habe an den Einstellungen nichts geändert.
Ich glaube aber das du recht hast da bei dem alten System auch in regelmäßigen Intervallen ein Neustart des Skriptes notwendig war.

Kannst du mir sagen auf was ich den update interval setzen kann und soll.
Danke lg michi
Titel: Antw:Ring Video Doorbell
Beitrag von: christian.71 am 23 November 2020, 20:07:12
Hallo, ich wollte nun auch meine Ring Camera in Fhem einbinden und bin nach der Anleitung https://github.com/dominikkarall/fhem_pythonbinding vorgegangen.
Allerdings bekomme ich folgende Fehlermeldung in der LOG:
BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Connection refused (111)

Ich muss vielleicht noch erwähnen, dass ich fhem im docker benutze. Muss ich da vielleicht was bestimmtes beachten?
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 23 November 2020, 20:15:22
Hi,

ich glaube beim Docker funktionieren die automatischen Library Installationen noch nicht. Ich habe schon etwas umgebaut, kann es nur leider gerade nicht testen.

Mach bitte mal
sudo -u pip3 --user install asyncio websockets importlib_metadata cryptography ring_doorbell

Danach machst ein kill vom fhem_pythonbinding Prozess auf der Linux Konsole. Es startet innerhalb von einer Minute neu. Wenn dann noch immer disconnected steht, poste bitte das PythonBinding Log aus dem FHEM Log Verzeichnis.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 23 November 2020, 20:17:04
Zitat von: leachim200 am 19 November 2020, 07:10:48
Hi
Danke für die Rückmeldung. Ich habe an den Einstellungen nichts geändert.
Ich glaube aber das du recht hast da bei dem alten System auch in regelmäßigen Intervallen ein Neustart des Skriptes notwendig war.

Kannst du mir sagen auf was ich den update interval setzen kann und soll.
Danke lg michi
Sorry, die Antwort hatte ich übersehen.
Lass das Intervall mal auf 300 (also Attribut löschen). Wenn es dann wieder vorkommt, probier bitte mal 600s. Lass mich bitte wissen ob es damit besser/schlechter wird. Wenn ein Neustart hilft, dann sollte ich es mit Code auch beheben können, weil dann dürfte dich Ring nicht blockiert haben.
Titel: Antw:Ring Video Doorbell
Beitrag von: christian.71 am 24 November 2020, 17:37:07
Zitat von: dominik am 23 November 2020, 20:15:22
Mach bitte mal
sudo -u pip3 --user install asyncio websockets importlib_metadata cryptography ring_doorbell


Wenn ich das mache, kommt bei mir:
christian@nuc:~$ sudo -u pip3 --user install asyncio websockets importlib_metadata cryptography ring_doorbell
sudo: unknown user: install
sudo: unable to initialize policy plugin
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 24 November 2020, 18:04:49
Ok, lass dann bitte mal das --user weg
Titel: Antw:Ring Video Doorbell
Beitrag von: christian.71 am 24 November 2020, 19:11:41
Dann kommt:

christian@nuc:~$ sudo -u pip3 install asyncio websockets importlib_metadata cryptography ring_doorbell
sudo: unknown user: pip3
sudo: unable to initialize policy plugin
Titel: Antw:Ring Video Doorbell
Beitrag von: Otto123 am 24 November 2020, 19:27:33
Ich denke ja so:
sudo pip3 install asyncio websockets importlib_metadata cryptography ring_doorbell
es gibt kein User pip3 - das ist das Kommando ;)
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 24 November 2020, 19:36:47
Ach, ja, sollte eigentlich sudo -u fhem sein.
Nur sudo ist auch ok, dann wird es systemweit installiert.
Titel: Antw:Ring Video Doorbell
Beitrag von: christian.71 am 24 November 2020, 20:06:57
Zitat von: Otto123 am 24 November 2020, 19:27:33
Ich denke ja so:
sudo pip3 install asyncio websockets importlib_metadata cryptography ring_doorbell
es gibt kein User pip3 - das ist das Kommando ;)

Wenn ich das in der Fhem Console in Docker eingebe funktioniert es und meine Ring Kamera geht auf connected. :-)
Weiß jemand zufällig, wie ich das im fhem-docker container "fest" einbauen kann? Bei jedem Container Neustart müsste ich es sonst neu eingeben.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 24 November 2020, 20:25:33
Super!

Ich glaube nicht, dass du das neu eingeben musst. Diese Komponenten sind ja nun fix im Container installiert.
Im nächsten Update sollte die Installation dann eh automatisch klappen.
Titel: Antw:Ring Video Doorbell
Beitrag von: christian.71 am 24 November 2020, 21:22:35
Wenn ich den Container neustarte ist wieder alles weg. Gerade nochmal getestet. Aber wenn das im nächsten Update mit drin ist... umso besser. :-)
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 24 November 2020, 21:31:32
Hmm...ist das normal? Dann sind ja auch dauern alle Config und Log Files von FHEM bei jedem Neustart weg.

Ich arbeite selbst nicht mit Docker, aber mein Stand ist, dass man einen Container neu starten kann und nur beim Setup das docker File herangezogen wird um den Container mit den entsprechend Commands zu konfigurieren.
Titel: Antw:Ring Video Doorbell
Beitrag von: christian.71 am 25 November 2020, 16:16:32
Zitat von: dominik am 24 November 2020, 21:31:32
Hmm...ist das normal? Dann sind ja auch dauern alle Config und Log Files von FHEM bei jedem Neustart weg.

Ich arbeite selbst nicht mit Docker, aber mein Stand ist, dass man einen Container neu starten kann und nur beim Setup das docker File herangezogen wird um den Container mit den entsprechend Commands zu konfigurieren.

Wenn es im Dockerfile nicht vom Ersteller des dockers integriert ist, dann ist es bei jedem Neustart wieder weg. Ich habe die Befehlszeile "pip3 install asyncio websockets importlib_metadata cryptography ring_doorbell" nun in meine post-start.sh eingetragen. Dieses skript wird bei jedem Container start mit ausgeführt. Nun klappt es.  :)
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 27 November 2020, 17:57:01
Hi
Hatte das attr mit den Delay herausgenommen hat leider wieder nicht funktioniert. Wenn ich die Lautstärke anpassen will dann steht bei State Login failed.
Erst nach einem delete und define der Ring in FHEM funktioniert wieder alles.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 27 November 2020, 19:42:11
Kannst du mir bitte das Log posten ab dem Zeitpunkt wo der Fehler auftritt?
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 28 November 2020, 15:08:38
Hi
Hier der Auszug:
2020-11-25 13:29:00,329 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:32:25,568 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:34:01,909 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:37:27,128 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:39:05,652 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:42:28,681 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:44:07,482 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:47:30,233 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:49:09,171 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:52:31,862 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:54:11,523 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:57:33,507 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 13:59:13,719 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:02:35,230 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:04:15,771 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:07:36,957 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:09:17,328 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:12:38,528 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:14:18,908 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:17:40,623 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:19:21,113 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:22:42,192 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:24:22,904 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:27:43,790 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:29:24,757 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:32:45,424 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:34:26,330 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:37:47,046 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:39:27,967 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:42:48,638 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:44:35,629 - WARNING  - ring_doorbell.doorbot: Your Ring account does not have an active subscription.
2020-11-25 14:44:46,812 - ERROR    - lib.utils: Error in asyncio thread
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 384, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 380, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.7/http/client.py", line 1336, in getresponse
    response.begin()
  File "/usr/lib/python3.7/http/client.py", line 306, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.7/http/client.py", line 267, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 307, in recv_into
    raise timeout('The read operation timed out')
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 367, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 386, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 306, in _raise_timeout
    raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 28, in run_blocking
    pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/lib/ring/ring.py", line 192, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 101, in query
    timeout=timeout,
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests_oauthlib/oauth2_session.py", line 516, in request
    method, url, headers=headers, data=data, **kwargs
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2020-11-25 14:44:46,817 - ERROR    - rrring: Failed to poll dings...
Traceback (most recent call last):
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 384, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 380, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.7/http/client.py", line 1336, in getresponse
    response.begin()
  File "/usr/lib/python3.7/http/client.py", line 306, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.7/http/client.py", line 267, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 307, in recv_into
    raise timeout('The read operation timed out')
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 367, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 386, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 306, in _raise_timeout
    raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/lib/ring/ring.py", line 119, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 28, in run_blocking
    pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/lib/ring/ring.py", line 192, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 101, in query
    timeout=timeout,
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests_oauthlib/oauth2_session.py", line 516, in request
    method, url, headers=headers, data=data, **kwargs
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2020-11-25 14:45:04,626 - ERROR    - lib.utils: Error in asyncio thread
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 384, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 380, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.7/http/client.py", line 1336, in getresponse
    response.begin()
  File "/usr/lib/python3.7/http/client.py", line 306, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.7/http/client.py", line 267, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.7/socket.py", line 589, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 307, in recv_into
    raise timeout('The read operation timed out')
socket.timeout: The read operation timed out


Das zieht sich dann so durch ich glaub das ich alles drinnen habe wenn nicht kann ich dir auch das gesamte logfile anhängen.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 29 November 2020, 13:30:23
Hi,
danke, ich versuche das mal im nächsten Update zu beheben, so dass in so einem Fall ein neuer Login erfolgt.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 29 November 2020, 21:26:38
Ich habe gerade ein Update eingespielt. Kannst du bitte die neue Version testen ob es den Fehler behebt? Danke!
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 30 November 2020, 14:52:38
Hi
alles klar hab ich gemacht ich teste mal :)
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 02 Dezember 2020, 19:13:19
Naben zusammen,

ich hab mich nun auch an das Modul gewagt.
Installation lief ohne Fehler durch.
Leider bekomme ich vom Modul immer:
Login failed

Unter ein Auszug aus dem PythonBinding log.

vielleicht weis einer Rat.

vg
pflock_y


2020-12-02 19:06:42,715 - INFO     - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-02 19:06:53,966 - INFO     - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-02 19:06:54,872 - ERROR    - lib.utils: Error in asyncio thread
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 28, in run_blocking
    pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/lib/ring/ring.py", line 215, in blocking_login
    self._auth = Auth("MyProject/1.0", None, token_updater)
TypeError: __init__() takes from 1 to 3 positional arguments but 4 were given
2020-12-02 19:06:54,888 - ERROR    - rrring: Login failed
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 02 Dezember 2020, 19:42:00
Das Passwort hast du bereits gesetzt?
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 02 Dezember 2020, 19:56:59
jupp, sogar mehrfach.
Ich hab auch meinen Gast Account ausprobiert, leider auch ohne erfolg.     
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 02 Dezember 2020, 20:36:59
Poste bitte die Ausgaben von
python3 -V
sudo -u fhem pip3 show ring_doorbell
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 02 Dezember 2020, 20:43:07

...:~ $ python3 -V
Python 3.7.3
und

...:~ $ sudo -u fhem pip3 show ring_doorbell
Name: ring-doorbell
Version: 0.4.0
Summary: A Python library to communicate with Ring Door Bell (https://ring.com/)
Home-page: https://github.com/tchellomello/python-ring-doorbell
Author: Marcelo Moreira de Mello
Author-email: tchello.mello@gmail.com
License: LGPLv3+
Location: /opt/fhem/.local/lib/python3.7/site-packages
Requires: pytz, requests, requests-oauthlib, oauthlib
Required-by:
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 02 Dezember 2020, 21:00:37
sudo -u fhem pip3 install --upgrade ring_doorbell
Dann klappt es :)

Ich werde noch einbauen, dass die aktuelle Version automatisch installiert wird.
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 02 Dezember 2020, 21:07:31
SUPER LÄUFT!!!

Danke....


vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: Amenophis86 am 04 Dezember 2020, 08:17:53
Hallo, finde ich irgendwo eine Doku was das Modul kann? Auf github steht nur, dass es mit Ring spricht aber was genau kann man machen?
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 04 Dezember 2020, 23:45:34
Alarm erkennen
Volume steuern
und jede Menge Readings ausgeben :)

Sollte für alle Ring Devices funktionieren. Ich selbst habe leider keine, aber einige haben hier schon erfolgreich getestet.
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 09 Dezember 2020, 10:50:59
Moin zusammen,
seit gestern funktioniert das pybinding nicht mehr.
unten ein list und ein log Auszug.

vielleicht weis jemand was.....

vg
pflock_y

list:

Internals:
   BindingType Python
   DEF        Python
   DeviceName ws:127.0.0.1:15733
   FUUID      5fc7c384-f33f-e7bf-7b52-2fb33e7e19cb4960
   IP         127.0.0.1
   NAME       local_pybinding
   NEXT_OPEN  1607507116.99361
   NR         218
   NTFY_ORDER 50-local_pybinding
   PARTIAL   
   PORT       15733
   STATE      disconnected
   TYPE       BindingsIo
   localBinding 1
   nextOpenDelay 10
   READINGS:
     2020-12-09 10:45:06   state           disconnected
   args:
     local_pybinding
     BindingsIo
     Python
   argsh:
Attributes:
   room       System


log:

Traceback (most recent call last):
  File "FHEM/bindings/python/fhempy", line 128, in <module>
    import lib.fhem_pythonbinding as fpb
  File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 15, in <module>
    from .core.zeroconf import zeroconf
  File "/opt/fhem/FHEM/bindings/python/lib/core/zeroconf.py", line 2, in <module>
    from zeroconf import Zeroconf, ServiceInfo
ModuleNotFoundError: No module named 'zeroconf'
Traceback (most recent call last):
  File "FHEM/bindings/python/fhempy", line 128, in <module>
    import lib.fhem_pythonbinding as fpb
  File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 15, in <module>
    from .core.zeroconf import zeroconf
  File "/opt/fhem/FHEM/bindings/python/lib/core/zeroconf.py", line 2, in <module>
    from zeroconf import Zeroconf, ServiceInfo
ModuleNotFoundError: No module named 'zeroconf'
Traceback (most recent call last):
  File "FHEM/bindings/python/fhempy", line 128, in <module>
    import lib.fhem_pythonbinding as fpb
  File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 15, in <module>
    from .core.zeroconf import zeroconf
  File "/opt/fhem/FHEM/bindings/python/lib/core/zeroconf.py", line 2, in <module>
    from zeroconf import Zeroconf, ServiceInfo
ModuleNotFoundError: No module named 'zeroconf'
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 09 Dezember 2020, 12:50:15
Hi
kann ich bestätigen beim update stand etwas von einer änderung im readme kann ich aber nichts entdecken.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 09 Dezember 2020, 17:15:34
Danke für die Info, Fehler kann ich bestätigen. Wird heute Abend behoben.

In der Zwischenzeit sollte ein
sudo -u fhem pip3 install zeroconf
den Fehler beheben.
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 09 Dezember 2020, 17:37:24
Zitat von: dominik am 09 Dezember 2020, 17:15:34
Danke für die Info, Fehler kann ich bestätigen. Wird heute Abend behoben.

In der Zwischenzeit sollte ein
sudo -u fhem pip3 install zeroconf
den Fehler beheben.

jupp läuft damit wieder.


vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 09 Dezember 2020, 22:17:06
I am concerned...

2020.12.09 22:16:17.348 1:  Downloading https://raw.githubusercontent.com/dominikkarall/fhempy/master/controls_pythonbinding.txt
2020.12.09 22:16:17.348 1: 
2020.12.09 22:16:17.348 1:  pythonbinding
2020.12.09 22:16:17.410 1:  UPD FHEM/10_PythonBinding.pm
2020.12.09 22:16:17.514 1:  UPD FHEM/10_BindingsIo.pm
2020.12.09 22:16:17.753 1:  UPD FHEM/10_PythonModule.pm
2020.12.09 22:16:17.937 1:  UPD FHEM/bindings/python/fhempy
2020.12.09 22:16:18.101 1:  Got 14 bytes for FHEM/bindings/python/fhempy, expected 4096
2020.12.09 22:16:18.101 1:  aborting.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 09 Dezember 2020, 22:21:18
Kannst du es bitte nochmals testen. Eventuell ist da gerade mein Update zur gleichen Zeit online gegangen. Im controls File steht naemlich 3912 bytes
https://github.com/dominikkarall/fhempy/blob/master/controls_pythonbinding.txt#L124
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 09 Dezember 2020, 22:59:53
Hi Dominik,

leider bleibt es so bei mir
2020.12.09 22:54:50.364 1:  Downloading https://raw.githubusercontent.com/dominikkarall/fhempy/master/controls_pythonbinding.txt
2020.12.09 22:54:50.364 1: 
2020.12.09 22:54:50.365 1:  pythonbinding
2020.12.09 22:54:50.763 1:  UPD FHEM/10_PythonBinding.pm
2020.12.09 22:54:50.938 1:  UPD FHEM/10_BindingsIo.pm
2020.12.09 22:54:51.124 1:  UPD FHEM/10_PythonModule.pm
2020.12.09 22:54:51.309 1:  UPD FHEM/bindings/python/fhempy
2020.12.09 22:54:51.456 1:  Got 14 bytes for FHEM/bindings/python/fhempy, expected 4096
2020.12.09 22:54:51.456 1:  aborting.


Frage: Wie kann ich fhempy komplett aus FHEM entfernen?
Ich brauche es eigentlich nicht, da alles laeuft auf dem gleichen Server (ich habe es installiert als ich seit gestern versuchte zu verstehen warum mein PythonBinding nicht mehr funktioniert  :-[ ).
Ich habe es bereits mit 'pip3 uninstall fhempy' und 'sudo pip3 uninstall fhempy' entfernt, aber beim FHEM Update sehe ich es noch.
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 09 Dezember 2020, 23:03:04
oder sollte ich einfach

UPD FHEM/10_BindingsIo.pm
UPD FHEM/10_PythonBinding.pm
UPD FHEM/bindings/python/bin/fhempy
UPD FHEM/bindings/python/fhempy/__init__.py

diese drei updaten?

Schoene Gruesse
Manos
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 09 Dezember 2020, 23:11:48
Bitte nochmals ein "update" machen.

Was meinst du mit entfernen da du es in FHEM hast? Wenn du es nicht mit pip3 installiert hast, dann ist es auch nur in FHEM vorhanden.
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 09 Dezember 2020, 23:32:52
Vielen Dank Dominik,
dieses Mal hat das Update funktioniert!  :D

schoene Gruesse
Manos
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 10 Dezember 2020, 14:24:36
EDIT: Geloescht! Es war ein "restart" des Pythonbinding_15733 notwendig, jetzt werden alle Werte regelmaessig aktualisiert!

Ich bin zu Dumm fuer den Sch...  :-[

Gestern ist das Update gelunden, PythonBinding (local) funktioniert:
Internals:
   BindingType Python
   CFGFN     
   DEF        Python
   DeviceName ws:127.0.0.1:15733
   FD         38
   FUUID      5fd1520c-f33f-6a06-6ce1-3a0f3126c85bd37b
   IP         127.0.0.1
   NAME       pybinding
   NR         409
   NTFY_ORDER 50-pybinding
   PARTIAL   
   PORT       15733
   STATE      opened
   TYPE       BindingsIo
   WEBSOCKET  1
   localBinding 1
   nextOpenDelay 10
   Helper:
     DBLOG:
       state:
         Logdb:
           TIME       1607553551.92303
           VALUE      CONNECTED
       version:
         Logdb:
           TIME       1607553551.93326
           VALUE      0.1.6
   READINGS:
     2020-12-09 23:39:11   state           opened
     2020-12-09 23:39:11   version         0.1.6
   args:
     pybinding
     BindingsIo
     Python
   argsh:
Attributes:

   devStateIcon opened:rc_GREEN@green
   group      _connector
   room       hidden

Seit "2020-12-09 23:39:11   state           opened"

upnp habe ich neu definiert (23:40) und funktioniert(e)
Internals:
   CFGFN     
   DEF        discover_upnp
   FUUID      5fd15262-f33f-6a06-d363-5eec60d34c8f656e
   IODev      pybinding
   NAME       upnp
   NR         430
   PYTHONTYPE discover_upnp
   STATE      active
   TYPE       PythonModule
   Helper:
     DBLOG:
       state:
         Logdb:
           TIME       1607553636.72019
           VALUE      PythonBinding timeout
   READINGS:
     2020-12-09 23:40:36   state           active
     2020-12-09 23:40:40   uuid.xxxxxxxx_urn.schemas-upnp-org.device.tvdevice.1 DMS_AC6F
     2020-12-09 23:40:42   uuid.xxxxxxxx_urn.samsung.com.device.MainTVServer2.1 [TV] Bed room
     2020-12-09 23:40:37   uuid.xxxxxxxx_urn.schemas-upnp-org.device.fritzbox.1 Repeater-Stock0
     2020-12-09 23:40:37   uuid.xxxxxxxx_urn.schemas-upnp-org.device.fritzbox.1 Repeater-Stock2
     2020-12-09 23:40:37   uuid.xxxxxxxx_urn.schemas-upnp-org.device.fritzbox.1 Repeater-Stock1
     2020-12-09 23:40:37   uuid.xxxxxxxx_urn.schemas-upnp-org.device.fritzbox.1 FRITZ!Box 7590
     2020-12-09 23:40:43   uuid.xxxxxxxx_urn.schemas-upnp-org.device.MediaRenderer.1 [TV] Bed room
     2020-12-09 23:40:43   uuid.xxxxxxxx_urn.samsung.com.device.RemoteControlReceiver.1 [TV] Bed room
     2020-12-09 23:41:33   uuid.xxxxxxxx_urn.dial-multiscreen-org.device.dialreceiver.1 [TV] Bed room
     2020-12-09 23:51:04   uuid.xxxxxxxx_urn.dial-multiscreen-org.device.dialreceiver.1 [TV] Samsung 6 Series (50)
     2020-12-09 23:40:37   uuid.xxxxxxxx_urn.schemas-upnp-org.device.MediaRenderer.1 [TV] Samsung 7 Series (55)
     2020-12-09 23:40:37   uuid.xxxxxxxx_urn.schemas-upnp-org.device.avmnexus.1 FRITZ!Box 7590
     2020-12-09 23:40:51   uuid.xxxxxxxx_urn.schemas-upnp-org.device.MediaServer.1 ManosMyCloudEX2
     2020-12-10 13:57:41   uuid.xxxxxxxx_urn.dial-multiscreen-org.device.dialreceiver.1 [TV] Samsung 7 Series (55)
     2020-12-09 23:40:47   uuid.xxxxxxxx_urn.zenterio-com.device.mediashare.1 DMS_AC6FBB749D92
     2020-12-09 23:40:48   uuid.xxxxxxxx_urn.zenterio-com.device.mediashare.1 DMS_AC6FBB6E47A6
     2020-12-09 23:51:04   uuid.xxxxxxxx_urn.samsung.com.device.RemoteControlReceiver.1 [TV] Samsung 6 Series (50)
     2020-12-09 23:40:51   uuid.xxxxxxxxd_urn.schemas-wd-com.device.WdNAS-DEV_0314.1 ManosMyCloudEX2
     2020-12-09 23:40:38   uuid.xxxxxxxx_urn.schemas-upnp-org.device.InternetGatewayDevice.1 FRITZ!Box 7590
     2020-12-09 23:40:38   uuid.xxxxxxxx_urn.schemas-upnp-org.device.InternetGatewayDevice.2 InternetGatewayDeviceV2 - FRITZ!Box 7590
     2020-12-09 23:40:40   uuid.xxxxxxxx_urn.zenterio-com.device.mediashare.1 DMS_AC8
     2020-12-09 23:40:37   uuid.xxxxxxxx_urn.schemas-upnp-org.device.Basic.1 Phoscon-GW-ENS (192.168.188.202)
     2020-12-09 23:40:37   uuid.xxxxxxxx_urn.schemas-upnp-org.device.l2tpv3.1 FRITZ!Box 7590
     2020-12-09 23:51:04   uuid.xxxxxxxx_urn.schemas-upnp-org.device.MediaRenderer.1 [TV] Samsung 6 Series (50)
     2020-12-09 23:40:48   uuid.xxxxxxxx_urn.schemas-upnp-org.device.tvdevice.1 DMS_AC6
     2020-12-09 23:40:37   uuid.xxxxxxxx_urn.schemas-upnp-org.device.MediaServer.1 Fritz!Box-MediaServer
     2020-12-09 23:40:47   uuid.xxxxxxxx2_urn.schemas-upnp-org.device.tvdevice.1 DMS_AC
   args:
     upnp
     PythonModule
     discover_upnp
   argsh:
Attributes:
   IODev      pybinding
   devStateIcon active:rc_GREEN@green
   icon       rc_SEARCH
   room       _Hood->System

Aber seit 23:40 keine Updates! (und diese "VALUE      PythonBinding timeout" macht mich nervoes... )

Das gleiche ist mit RING passiert:
Die alte Definition hat nicht funktioniert, ich musste sie loeschen und RING neu definieren (mit 2FA, Password, neues Geraet usw usw). Dies war erfolgreich (um 01:18), aber seitdem sehe ich keine Updates  :-[

Obwohl deviceUpdateInterval, dingPollInterval auf 2 Sekunden sind (ist sowieso default) und verbose auf 5, ich sehe keine Ereignisse im EventMonitor!

Internals:
   CFGFN     
   DEF        ring xxxxl@xxx.com "Front Door"
   FUUID      xxxx-xxxx-xxxx
   IODev      pybinding
   NAME       RingDoorBell
   NR         1190
   PYTHONTYPE ring
   RINGDEVICE Front Door
   STATE      connected
   TYPE       PythonModule
   USERNAME   xxxl@xxx.com
   Helper:
     DBLOG:
       battery_life:
         Logdb:
           TIME       1607559490.71486
           VALUE      96
       history_1_answered:
         Logdb:
           TIME       1607559507.87881
           VALUE      0
       history_1_created_at:
         Logdb:
           TIME       1607559507.87881
           VALUE      2020-12-09 15:54:10+00:00
       history_1_kind:
         Logdb:
           TIME       1607559507.87881
           VALUE      motion
   READINGS:
     2020-12-10 01:18:10   address         
     2020-12-10 01:18:27   alert_current   Error
     2020-12-10 01:18:10   battery_life    96
     2020-12-10 01:18:10   connection_status online
     2020-12-10 01:18:10   existing_doorbell_type Mechanical
     2020-12-10 01:18:10   existing_doorbell_type_enabled 1
     2020-12-10 01:18:10   family          doorbots
     2020-12-10 01:18:10   firmware        Up to Date
     2020-12-10 01:18:10   has_subscription 1
     2020-12-10 01:18:27   history_1_answered 0
     2020-12-10 01:18:27   history_1_created_at 2020-12-09 15:54:10+00:00
     2020-12-10 01:18:27   history_1_id    6904285
     2020-12-10 01:18:27   history_1_kind  motion
     2020-12-10 01:18:27   history_2_answered 0
     2020-12-10 01:18:27   history_2_created_at 2020-12-09 15:53:35+00:00
     2020-12-10 01:18:27   history_2_id    69042854
     2020-12-10 01:18:27   history_2_kind  motion
     2020-12-10 01:18:27   history_3_answered 0
     2020-12-10 01:18:27   history_3_created_at 2020-12-09 15:52:41+00:00
     2020-12-10 01:18:27   history_3_id    69042851
     2020-12-10 01:18:27   history_3_kind  motion
     2020-12-10 01:18:27   history_4_answered 1
     2020-12-10 01:18:27   history_4_created_at 2020-12-09 15:15:06+00:00
     2020-12-10 01:18:27   history_4_id    690427548
     2020-12-10 01:18:27   history_4_kind  motion
     2020-12-10 01:18:27   history_5_answered 0
     2020-12-10 01:18:27   history_5_created_at 2020-12-09 14:40:50+00:00
     2020-12-10 01:18:27   history_5_id    69042666
     2020-12-10 01:18:27   history_5_kind  motion
     2020-12-10 01:18:10   id              xxxxxx
     2020-12-10 01:18:10   kind            doorbell_scallop
     2020-12-10 01:18:10   last_recording_id 690428
     2020-12-10 01:18:27   last_recording_url https://share-service-download-bucket.s3.amazonaws.com/xxxxxxx
     2020-12-10 01:18:10   latitude        50.617718
     2020-12-10 01:18:10   longitude       7.3391075
     2020-12-10 01:18:10   model           Doorbell 3 Plus
     2020-12-10 01:18:10   name            Front Door
     2020-12-10 01:18:08   password        xxxxxxxxxxxxx

     2020-12-10 01:18:09   state           connected
     2020-12-10 01:18:10   subscribed      1
     2020-12-10 01:18:10   subscribed_motion 1
     2020-12-10 01:18:10   timezone        Europe/Berlin
     2020-12-10 01:18:09   token           xxxxxxxxxxxxxxx

     2020-12-10 01:18:10   volume          8
     2020-12-10 01:18:27   wifi_name       FRITZ!Box 7590 WR
     2020-12-10 01:18:27   wifi_signal_category good
     2020-12-10 01:18:27   wifi_signal_strength -55.0
   args:
     RingDoorBell2
     PythonModule
     ring
     xxxx@xxxxxcom
     Front Door
   argsh:
Attributes:
   DbLogExclude .*
   DbLogInclude battery_life,history_1_answered,history_1_created_at,history_1_kind
   IODev      pybinding
   comment    Alarm types: motion, ding, on_demand,
   devStateIcon {
my $cnct = 'rc_YELLOW@red';;
$cnct ='rc_GREEN@green' if (ReadingsVal($name, "state", "Offline") eq "connected");;
my $motion = 'it_camera@green';;
$motion='secur_alarm@red' if (ReadingsVal($name, "alert_kind", "dead") eq "motion");;$motion='secur_alarm@orange' if (ReadingsVal($name, "alert_kind", "dead") eq "ring");;
my $bat = 'measure_battery_100@green';;
$bat ='measure_battery_50@orange' if (ReadingsNum($name, "battery_life", "Offline")<55);;$bat ='measure_battery_25@red' if (ReadingsNum($name, "battery_life", "Offline") < 25);;
"
" . FW_makeImage("$cnct","cul_wlan") . "   " . FW_makeImage("$bat","cul_wlan") . "   " . FW_makeImage("$motion","hue_filled_outlet") . "
Last: " . ReadingsVal($name, "alert_kind", "dead") . " (" . ReadingsTimestamp($name,"alert_kind",0) . ")
" ;;
}
   deviceUpdateInterval 2
   dingPollInterval 2
   room       Outside_Perimeter,_Hood->Sensor
   userReadings alert_current {ReadingsVal($name,"alert_kind","Error")}
   verbose    5


Normalerweise werden meine Probleme "zwischen Tastatuer und Buero-Stuehl" verursacht  ::)
Ich frage aber lieber vorher ob irgendetwas anderes nicht funktioniert wie es sollte.

EDIT:
Ich habe vergessen, es gibt noch ein Modul: Pythonbinding_15733

Internals:
   CFGFN     
   DEF        0
   FD         37
   FUUID      xxxxxxxx
   LAST_START 2020-12-10 14:28:19
   LAST_STOP  2020-12-10 14:28:13
   NAME       Pythonbinding_15733
   NR         410
   NTFY_ORDER 50-Pythonbinding_15733
   PID        263437
   STARTS     3
   STATE      active
   TYPE       PythonBinding
   currentlogfile ./log/PythonBinding-2020-12-10.log
   logfile    ./log/PythonBinding-%Y-%m-%d.log
   CoProcess:
     cmdFn      PythonBinding_getCmd
     name       PythonBinding
     state      running FHEM/bindings/python/bin/fhempy
   Helper:
     DBLOG:
       PythonBinding:
         Logdb:
           TIME       1607606899.74838
           VALUE      running FHEM/bindings/python/bin/fhempy
       state:
         Logdb:
           TIME       1607553548.87302
           VALUE      active
   READINGS:
     2020-12-10 14:28:19   PythonBinding   running FHEM/bindings/python/bin/fhempy
     2020-12-09 23:39:08   state           active
Attributes:
   logfile    ./log/PythonBinding-%Y-%m-%d.log
   nrarchive  10
   room       hidden

Dies konnte ich "restarten" und jetzt sehe ich Pyhon Erreignisse im Event monitor.

Schoene Gruesse
Manos
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 10 Dezember 2020, 20:21:12
Hi,
habe ich es richtig verstanden, dass nun alles funktioniert? Auch nach einem FHEM Neustart?
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 11 Dezember 2020, 02:59:06
Zitat von: dominik am 10 Dezember 2020, 20:21:12
Hi,
habe ich es richtig verstanden, dass nun alles funktioniert? Auch nach einem FHEM Neustart?

Hallo Dominik,

ich habe mich zu frueh gefreut  :-[
Irgendwann gegen 18:00 hat sich wieder aufgehaengt.
Ein "restart" vom Pythonbinding_15733 hat das System wieder in Ordnung gebracht.

Hier sind die Log Dateien von gestern und heute:



2020-12-10 01:03:58,568 - ERROR    - fhempy.lib.fhem_pythonbinding: Failed to handle message:
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/fhem_pythonbinding.py", line 301, in _onMessage
    nmInstance = loadedModuleInstances[hash["NAME"]]
KeyError: 'RingDoorBell2'
2020-12-10 01:37:10,286 - ERROR    - fhempy.lib.fhem_pythonbinding: Failed to handle message:
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/fhem_pythonbinding.py", line 301, in _onMessage
    nmInstance = loadedModuleInstances[hash["NAME"]]
KeyError: 'RingDoorBell.old'
2020-12-10 02:15:43,413 - ERROR    - fhempy.lib.utils: Error in asyncio thread
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2020-12-10 02:15:43,417 - ERROR    - RingDoorBell.old: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2020-12-10 03:33:33,688 - ERROR    - fhempy.lib.utils: Error in asyncio thread
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2020-12-10 03:33:33,689 - ERROR    - RingDoorBell.old: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2020-12-10 03:48:09,231 - ERROR    - fhempy.lib.utils: Error in asyncio thread
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 503 Server Error: Service Unavailable: Back-end server is at capacity for url: https://api.ring.com/clients_api/dings/active?api_version=9
2020-12-10 03:48:09,232 - ERROR    - RingDoorBell.old: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 503 Server Error: Service Unavailable: Back-end server is at capacity for url: https://api.ring.com/clients_api/dings/active?api_version=9
2020-12-10 11:04:20,855 - ERROR    - fhempy.lib.utils: Error in asyncio thread
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2020-12-10 11:04:20,869 - ERROR    - RingDoorBell.old: Failed to poll dings...
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 140, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2020-12-10 11:06:46,412 - ERROR    - fhempy.lib.utils: Error in asyncio thread
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2020-12-10 11:06:46,414 - ERROR    - RingDoorBell.old: Failed to poll dings...
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 140, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2020-12-10 13:41:31,346 - ERROR    - fhempy.lib.fhem_pythonbinding: Failed to handle message:
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/fhem_pythonbinding.py", line 301, in _onMessage
    nmInstance = loadedModuleInstances[hash["NAME"]]
KeyError: 'TVSamsung7Series55_MediaRenderer'
2020-12-10 13:41:32,044 - ERROR    - async_upnp_client.client: Got invalid value for <UpnpStateVariable(PlaybackStorageMedium, string)>: NETWORK,NONE
2020-12-10 13:41:53,357 - ERROR    - fhempy.lib.utils: Error in asyncio thread
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 241, in poll_device
    self._rdevice.update_health_data()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 57, in update_health_data
    self._ring.query(HEALTH_DOORBELL_ENDPOINT.format(self.id))
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/doorbots/55327801/health?api_version=9
2020-12-10 13:41:53,358 - ERROR    - RingDoorBell.old: Failed to poll devices
Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 241, in poll_device
    self._rdevice.update_health_data()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 57, in update_health_data
    self._ring.query(HEALTH_DOORBELL_ENDPOINT.format(self.id))
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/doorbots/55327801/health?api_version=9
2020-12-10 14:28:20,129 - INFO     - fhempy.lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-10 14:28:24,005 - INFO     - fhempy.lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-10 14:28:27,805 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:30,184 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:32,332 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:34,479 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:36,608 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:38,729 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:40,874 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:43,002 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:45,134 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:47,260 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:49,385 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:51,515 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:54,394 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:56,521 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:28:58,643 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:00,773 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:02,897 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:05,024 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:07,151 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:09,291 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:11,416 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:13,548 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:15,677 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:17,808 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:19,943 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:22,231 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:24,360 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:26,724 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:28,852 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:31,015 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:33,449 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:35,575 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:37,701 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:39,830 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:41,956 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:44,085 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:46,216 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:48,352 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:50,514 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:53,074 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:55,202 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:57,330 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:29:59,458 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:01,580 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:03,712 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:05,832 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:08,336 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:10,465 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:12,595 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:14,718 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:16,849 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:18,976 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:21,110 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:23,241 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:25,373 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:27,851 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:30,007 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:32,136 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:34,262 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:36,395 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:38,577 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:40,703 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:43,039 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:45,166 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:47,295 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:49,425 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:51,554 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:53,686 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:55,817 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:30:57,942 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:00,360 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:02,485 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:04,615 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:06,740 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:08,872 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:10,997 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:13,130 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:15,268 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:17,407 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:19,692 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:21,828 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:23,955 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:26,089 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:28,215 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:30,338 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:32,470 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:34,920 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:37,047 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:39,179 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:41,301 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:43,443 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:45,567 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:47,708 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:49,842 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:51,968 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:54,279 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:56,407 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:31:58,539 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:00,664 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:02,801 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:04,926 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:07,062 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:09,188 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:11,320 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:13,445 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:15,588 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:17,738 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:19,867 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:22,140 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:24,273 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:26,402 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:28,533 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:30,660 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:32,783 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:34,933 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:37,058 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:39,182 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:41,324 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:43,450 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:45,580 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:47,710 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:49,838 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:51,961 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:54,090 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:56,216 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:32:58,340 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:00,462 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:02,587 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:04,713 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:07,214 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:09,341 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:11,487 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:13,616 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:15,746 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:17,870 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:19,995 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:22,512 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:24,676 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:26,800 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:28,926 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:31,052 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:33,180 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:35,330 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:37,460 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:39,587 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:41,716 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:43,844 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:45,971 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:48,095 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:50,221 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:52,347 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:54,472 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:56,607 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:33:58,731 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:00,859 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:02,984 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:05,110 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:07,237 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:09,749 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:11,873 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:14,009 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:16,132 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:18,265 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:20,389 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:22,513 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:24,943 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:27,066 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:29,210 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:31,358 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:33,490 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:35,615 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:37,746 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:39,878 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:42,012 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:44,411 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:46,551 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:48,680 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:50,807 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:52,932 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:55,063 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:57,189 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:34:59,319 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:01,443 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:03,776 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:05,906 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:08,041 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:10,165 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:12,295 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:14,421 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:16,553 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:19,069 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:21,195 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:23,322 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:25,454 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:27,584 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:29,707 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:31,839 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:34,367 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:36,497 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:38,620 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:40,757 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:42,881 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:45,013 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:47,148 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:49,280 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:51,430 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:53,750 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:55,881 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:35:58,008 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:00,187 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:02,309 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:04,446 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:06,571 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:08,701 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:10,822 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:13,218 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:15,346 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:17,472 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:19,602 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:21,731 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:23,858 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:26,012 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:28,148 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:30,277 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:32,740 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:34,865 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:37,010 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:39,132 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:41,261 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:43,407 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:45,571 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:47,701 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:49,834 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:51,957 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:54,082 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:56,546 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:36:59,383 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:01,509 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:03,633 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:05,757 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:08,045 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:10,174 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:12,297 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:14,427 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:16,552 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:18,678 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:20,802 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:23,228 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:25,368 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:27,492 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:29,628 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:31,757 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:33,886 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:36,012 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:38,443 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:40,576 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:42,700 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:44,828 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:46,953 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:49,077 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:51,218 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:53,342 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:55,465 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:57,596 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:37:59,719 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:01,853 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:03,982 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:06,131 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:08,259 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:10,398 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:12,535 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:14,951 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:17,097 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:19,225 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:21,352 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:23,486 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:25,610 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:27,744 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:30,223 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:32,347 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:34,488 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:36,614 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:38,746 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:40,869 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:43,003 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:45,132 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:47,267 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:49,414 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:51,539 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:53,668 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:55,800 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:38:58,157 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:00,280 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:02,408 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:04,534 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:06,666 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:08,791 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:10,922 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:13,047 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:15,178 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:17,314 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:19,449 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:21,974 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:24,098 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:26,226 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:28,351 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:30,494 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:32,619 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:34,745 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:37,188 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:39,322 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:41,450 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:43,578 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:45,705 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:47,834 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:49,960 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:52,106 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:54,245 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:56,380 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:39:58,509 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:01,011 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:03,136 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:05,266 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:07,389 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:09,518 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:11,640 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:13,774 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:15,908 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:18,045 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:20,521 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:22,647 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:24,787 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:26,913 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:29,046 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:31,170 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:33,309 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:35,437 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:37,562 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:39,696 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:41,823 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:43,949 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:46,080 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:48,206 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:50,333 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:52,465 - DEBUG    - RingDoorBell: Received dings: []
2020-12-10 14:40:54,589 - DEBUG    - RingDoorBell: Received dings: []


EDIT:
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 11 Dezember 2020, 20:11:12
Was hast du für update Werte in den Attributen? Sieht so aus als wären die zu niedrig.
requests.exceptions.HTTPError: 503 Server Error: Service Unavailable: Back-end server is at capacity for url: https://api.ring.com/clients_api/dings/active?api_version=9
Da wurdest du schon blockiert.

Danach sieht es wieder gut aus.

PS: Bitte code Block verwenden, wenn die Nachricht zu lang wird, dann bitte kürzen damit sich das Ende vom code Block ausgeht. Ist sonst sehr unübersichtlich hier. Danke.
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 12 Dezember 2020, 04:03:10
Zitat von: dominik am 11 Dezember 2020, 20:11:12
Was hast du für update Werte in den Attributen? Sieht so aus als wären die zu niedrig.
requests.exceptions.HTTPError: 503 Server Error: Service Unavailable: Back-end server is at capacity for url: https://api.ring.com/clients_api/dings/active?api_version=9
Da wurdest du schon blockiert.

Danach sieht es wieder gut aus.

PS: Bitte code Block verwenden, wenn die Nachricht zu lang wird, dann bitte kürzen damit sich das Ende vom code Block ausgeht. Ist sonst sehr unübersichtlich hier. Danke.

meinst du

deviceUpdateInterval 2
dingPollInterval 2

vieleicht? Sollte ich die Verzoegerung laenger machen? (ich dachte 2 Sek waere sowieso Default)

sorry fuer den vorherigen Post, [/code] wurde truncated



Was ist der Unterschied zwischen 'pybinding' und 'Pythonbinding_15733' ?
Mein 'pybinding' ist "disconnected". Es ist aber 'Pythonbinding_15733' dass ich neustarten muss.


Internals:
   BindingType Python
   CFGFN     
   DEF        Python
   DeviceName ws:127.0.0.1:15733
   FUUID      xxxxxxxxxxxxxxx
   IP         127.0.0.1
   NAME       pybinding
   NEXT_OPEN  1607742462.9765
   NR         409
   NTFY_ORDER 50-pybinding
   PARTIAL   
   PORT       15733
   STATE      disconnected
   TYPE       BindingsIo
   localBinding 1
   nextOpenDelay 10
   Helper:
     DBLOG:
       state:
         Logdb:
           TIME       1607680773.88663
           VALUE      DISCONNECTED
       version:
         Logdb:
           TIME       1607650885.17643
           VALUE      0.1.6
   READINGS:
     2020-12-12 04:07:32   state           disconnected
     2020-12-11 02:41:25   version         0.1.6
   args:
     pybinding
     BindingsIo
     Python
   argsh:
Attributes:

   devStateIcon opened:rc_GREEN@green
   group      _connector
   room       hidden
   verbose    5



Internals:
   CFGFN     
   DEF        0
   FD         35
   FUUID      xxxxxxxxxxxxxxxxxxxxxxxxx
   LAST_START 2020-12-11 02:41:14
   LAST_STOP  2020-12-11 02:41:14
   NAME       Pythonbinding_15733
   NR         410
   NTFY_ORDER 50-Pythonbinding_15733
   PID        454628
   STARTS     4
   STATE      active
   TYPE       PythonBinding
   currentlogfile ./log/PythonBinding-2020-12-11.log
   logfile    ./log/PythonBinding-%Y-%m-%d.log
   CoProcess:
     cmdFn      PythonBinding_getCmd
     name       PythonBinding
     state      running FHEM/bindings/python/bin/fhempy
   Helper:
     DBLOG:
       PythonBinding:
         Logdb:
           TIME       1607650874.45893
           VALUE      running FHEM/bindings/python/bin/fhempy
       state:
         Logdb:
           TIME       1607553548.87302
           VALUE      active
   READINGS:
     2020-12-11 02:41:14   PythonBinding   running FHEM/bindings/python/bin/fhempy
     2020-12-09 23:39:08   state           active
Attributes:
   logfile    ./log/PythonBinding-%Y-%m-%d.log
   nrarchive  10
   room       hidden



Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 12 Dezember 2020, 12:48:25
deviceUpdateInterval 2 ist viel zu kurz. Default ist 300, wobei das auch schon bei manchen Probleme machte. Ich würde daher 600 empfehlen.
devicePollInterval kann auf 2 bleiben.

pybinding = BindingsIo Type, dieses Device stellt die Verbindung zum Python Prozess über Websockets her
Pythonbinding_15733 = PythonBinding, dieses Device macht nichts anderes als den Python Prozess zu starten und zu überwachen.
Details findest du auch hier:
https://github.com/dominikkarall/fhempy#call-flow
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 14 Dezember 2020, 08:21:50
Guten Morgen
Leider wieder ein Fehler :(. Langsam glaub ich ich bin der einzige der Probleme hat :/

Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 101, in query
    timeout=timeout,
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.ring.com/clients_api/dings/active?api_version=9
2020-12-12 01:15:34,131 - ERROR    - rrring: Failed to poll dings...


Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 241, in poll_device
    self._rdevice.update_health_data()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/doorbot.py", line 57, in update_health_data
    self._ring.query(HEALTH_DOORBELL_ENDPOINT.format(self.id))
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 101, in query
    timeout=timeout,
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests_oauthlib/oauth2_session.py", line 516, in request
    method, url, headers=headers, data=data, **kwargs
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 14 Dezember 2020, 23:28:13
Hi Dominik,

Zitat von: dominik am 12 Dezember 2020, 12:48:25
pybinding = BindingsIo Type, dieses Device stellt die Verbindung zum Python Prozess über Websockets her
Pythonbinding_15733 = PythonBinding, dieses Device macht nichts anderes als den Python Prozess zu starten und zu überwachen.
Details findest du auch hier:
https://github.com/dominikkarall/fhempy#call-flow
Ich weiss, dass es fuer dich "selbstverstaendlich" klingt, ich verstehe trotzdem "Bahnhof"  :P
Nee, eigentlich was mich verwirrt ist, dass  'Pythonbinding_15733' scheint OK zu sein und 'pybinding' hat das Problem. Trotzdem, muss ich an 'Pythonbinding_15733' ran (zum neu starten) und nicht an 'pybinding' (siehe Bild).

Zitat von: dominik am 12 Dezember 2020, 12:48:25
deviceUpdateInterval 2 ist viel zu kurz. Default ist 300, wobei das auch schon bei manchen Probleme machte. Ich würde daher 600 empfehlen.
devicePollInterval kann auf 2 bleiben.

Mit deviceUpdateInterval 300 hat deutlich laenger gehalten: Erst heute (13.12.2020 13:56) ist das Python Binding Offline gegangen.

Am Ende ist es gar nicht so dramatisch, ich kann ein Script bauen, um das "Pythonbinding_15733" neu zu starten wenn es offline geht (mache ich bereits fuer mein CONBEE II ).

Was ist eigentlich devicePollInterval und was ist deviceUpdateInterval ?? (oder, wo gibt es eine Erklaerung fuer diese zwei Werte denn ich habe erfolglos gesucht...)

Schoene Gruesse
Manos 


Titel: Antw:Ring Video Doorbell
Beitrag von: Tiffytaffy am 15 Dezember 2020, 20:04:45
Hallo Zusammen,

Ich bin neu in FHEM und kenne mich nicht mit Python aus, kann aber andere Programmiersprachen.
Ich möchte gerne erreichen, das mein FritzPhone klingelt oder sogar ein Bild anzeigt, wenn an der Doorbell jemand klingelt.
Vorweg: Ich nutze Windows.
Ich bin den Anweisungen von https://github.com/markuzzi/ring-fhem-1 gefolgt.
Python und GIT laufen und die Libs habe ich auch installiert. Wenn ich ring.ph starte und über die Ring App ein live video aufzeichne landet dieses nun auf meiner Festplatte.
So weit so gut.
1. Mir ist aufgefallen, dass ich die Meldung fhem_ring - INFO - Snapshot: False erhalten habe. Ist das wichtig für mein Vorhaben?
2. Kann mir jemand erklären was ich nun in FHEM und auf der FritzBox machen muss?
In Fhem habe ich bereits
define Ring_Haustuer dummy
attr Ring_Haustuer setList none motion ring
attr Ring_Haustuer devStateIcon none:it_camera@green motion:secur_alarm@red ring:secur_alarm@orange
gemacht.

Wie geht es weiter? State ist bei mir immer ???

Danke
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 15 Dezember 2020, 20:07:25
Zitat von: leachim200 am 14 Dezember 2020, 08:21:50
Guten Morgen
Leider wieder ein Fehler :(. Langsam glaub ich ich bin der einzige der Probleme hat :/

Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 101, in query
    timeout=timeout,
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.ring.com/clients_api/dings/active?api_version=9
2020-12-12 01:15:34,131 - ERROR    - rrring: Failed to poll dings...


Traceback (most recent call last):
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/ring/ring.py", line 241, in poll_device
    self._rdevice.update_health_data()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/doorbot.py", line 57, in update_health_data
    self._ring.query(HEALTH_DOORBELL_ENDPOINT.format(self.id))
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 101, in query
    timeout=timeout,
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests_oauthlib/oauth2_session.py", line 516, in request
    method, url, headers=headers, data=data, **kwargs
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)


Bitte deviceUpdaterInterval und dingUpdateInterval prüfen. Probier mal 600 (device) und 2 (ding).
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 15 Dezember 2020, 20:16:50
Zitat von: Manos am 14 Dezember 2020, 23:28:13
Hi Dominik,
Ich weiss, dass es fuer dich "selbstverstaendlich" klingt, ich verstehe trotzdem "Bahnhof"  :P
Nee, eigentlich was mich verwirrt ist, dass  'Pythonbinding_15733' scheint OK zu sein und 'pybinding' hat das Problem. Trotzdem, muss ich an 'Pythonbinding_15733' ran (zum neu starten) und nicht an 'pybinding' (siehe Bild).

Mit deviceUpdateInterval 300 hat deutlich laenger gehalten: Erst heute (13.12.2020 13:56) ist das Python Binding Offline gegangen.

Am Ende ist es gar nicht so dramatisch, ich kann ein Script bauen, um das "Pythonbinding_15733" neu zu starten wenn es offline geht (mache ich bereits fuer mein CONBEE II ).

Was ist eigentlich devicePollInterval und was ist deviceUpdateInterval ?? (oder, wo gibt es eine Erklaerung fuer diese zwei Werte denn ich habe erfolglos gesucht...)

Schoene Gruesse
Manos
Schau dir bitte die Grafik unten auf der Seite an:
https://github.com/dominikkarall/fhempy
Dann sollte einiges klarer sein.
Warum du PythonBinding und nicht BindingsIo neu starten musst, ist einfach erklärt:
Stell dir vor PythonBinding ist eine HueBridge.
BindingsIo ist das Modul, welches die Verbindung zu HueBridge aufbaut.
Wenn nun BindingsIo disconnected anzeigt, startest du im Normalfall die HueBridge neu falls ein reconnect nicht funktioniert.

Gleiches ist hier der Fall, du startest PythonBinding neu, damit BindingsIo wieder zum Device connected kann. Dass PythonBinding weiterhin active anzeigt liegt daran, dass PythonBinding nur prüft ob der Prozess läuft und diese im Fehlerfall (crash) neu startet.

updateDeviceInterval: Aktualisiert alle Werte außer Alarme - also im Normalfall uninteressant, außer du prüfst regelmäßig wie hoch der WLAN Empfang des Devices ist oder Batterie. Das reicht aber garantiert alle 10min oder wahrscheinlich sogar jede Stunde.
updateDingInterval: Dies prüft auf einen Alarm (motion, ...). Daher ist dieses Intervall sehr kurz gesetzt. Leider gibt es keine andere Möglichkeit außer alle x Sekunden einen Request beim ring Server zu machen. Und es gibt keine Garantie dafür, dass dieser Service auch zukünftig zur Verfügung steht.

Bitte kein Script für den Neustart bauen. Ich will Fehler beheben und nicht Fehler verstecken.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 15 Dezember 2020, 20:18:34
Zitat von: Tiffytaffy am 15 Dezember 2020, 20:04:45
Hallo Zusammen,

Ich bin neu in FHEM und kenne mich nicht mit Python aus, kann aber andere Programmiersprachen.
Ich möchte gerne erreichen, das mein FritzPhone klingelt oder sogar ein Bild anzeigt, wenn an der Doorbell jemand klingelt.
Vorweg: Ich nutze Windows.
Ich bin den Anweisungen von https://github.com/markuzzi/ring-fhem-1 gefolgt.
Python und GIT laufen und die Libs habe ich auch installiert. Wenn ich ring.ph starte und über die Ring App ein live video aufzeichne landet dieses nun auf meiner Festplatte.
So weit so gut.
1. Mir ist aufgefallen, dass ich die Meldung fhem_ring - INFO - Snapshot: False erhalten habe. Ist das wichtig für mein Vorhaben?
2. Kann mir jemand erklären was ich nun in FHEM und auf der FritzBox machen muss?
In Fhem habe ich bereits
define Ring_Haustuer dummy
attr Ring_Haustuer setList none motion ring
attr Ring_Haustuer devStateIcon none:it_camera@green motion:secur_alarm@red ring:secur_alarm@orange
gemacht.

Wie geht es weiter? State ist bei mir immer ???

Danke

Nutz doch einfach fhempy für Ring:
https://github.com/dominikkarall/fhempy

Installation auf der Seite befolgen und dann das Module definieren
https://github.com/dominikkarall/fhempy/blob/master/FHEM/bindings/python/fhempy/lib/ring/README.md
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 16 Dezember 2020, 09:10:29
Guten Morgen dominik,
ich wollte heute morgen fhempy auf meinem produktiven system zum laufen bringen.
Leider hab ich folgendes im log:

PythonBinding-2020-12-16.log:


SyntaxError: invalid syntax
  File "FHEM/bindings/python/bin/fhempy", line 88
    logging.getLogger(__name__).info(f"Successfully installed {package}")
                                                                       ^
SyntaxError: invalid syntax
  File "FHEM/bindings/python/bin/fhempy", line 88
    logging.getLogger(__name__).info(f"Successfully installed {package}")
                                                                       ^
SyntaxError: invalid syntax
  File "FHEM/bindings/python/bin/fhempy", line 88
    logging.getLogger(__name__).info(f"Successfully installed {package}")
                                                                       ^
SyntaxError: invalid syntax
  File "FHEM/bindings/python/bin/fhempy", line 88
    logging.getLogger(__name__).info(f"Successfully installed {package}")
                                                                       ^
SyntaxError: invalid syntax
  File "FHEM/bindings/python/bin/fhempy", line 88
    logging.getLogger(__name__).info(f"Successfully installed {package}")
                                                                       ^
SyntaxError: invalid syntax
  File "FHEM/bindings/python/bin/fhempy", line 88
    logging.getLogger(__name__).info(f"Successfully installed {package}")
                                                                       ^
SyntaxError: invalid syntax


und natürlich auch das im fhem.log


2020.12.16 09:05:57 1: BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.12.16 09:06:08 1: BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.12.16 09:06:08 1: BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.12.16 09:06:18 1: BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.12.16 09:06:18 1: BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)



vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 16 Dezember 2020, 09:18:20
ok, den ersten Fehler hab ich weg bekommen.

aus
File "FHEM/bindings/python/bin/fhempy", line 88
    logging.getLogger(__name__).info(f"Successfully installed {package}")


hab ich
File "FHEM/bindings/python/bin/fhempy", line 88
    logging.getLogger(__name__).info("Successfully installed {package}")

gemacht
(f"Successfully installed {package}")

nun leider ein weiterer

Traceback (most recent call last):
  File "FHEM/bindings/python/bin/fhempy", line 22, in <module>
    + MIN_PYTHON_VERSION[2]
TypeError: Can't convert 'int' object to str implicitly
Traceback (most recent call last):
  File "FHEM/bindings/python/bin/fhempy", line 22, in <module>
    + MIN_PYTHON_VERSION[2]
TypeError: Can't convert 'int' object to str implicitly
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 16 Dezember 2020, 10:36:02
OK, ich hab meinen Fehler gefunden.  :(

Ich installiere nach dieser Anleitung,
https://www.ramoonus.nl/2018/06/30/installing-python-3-7-on-raspberry-pi/ (https://www.ramoonus.nl/2018/06/30/installing-python-3-7-on-raspberry-pi/)
python-3-7.

python -V bringt mir die Ausgabe
Python 3.7.0

nach einem reboot des Systems kommt bei python -V das hier:
Python 2.7.13
und bei python3 -V
Python 3.5.3
das hier.

So, ich weis nicht weiter. Vielleicht kann mir jemand auf die Sprünge helfen.  :o


vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 16 Dezember 2020, 11:52:52
Hi
Ja du musst im bashrc für den User (ich nehme an fhem) eintragen das er auf die python V3 zugreifen soll.

Bei mir sehen die Einträge so aus ich verwende aber Version 3.8
alias python=/usr/local/bin/python3.8
alias pip3=pip3.8


Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 16 Dezember 2020, 15:29:38
@ leachim200
super Tipp, so wusste ich wo ich suchen kann.

Leider  :-\
kommt immer noch folgendes:


+ MIN_PYTHON_VERSION[2]
TypeError: Can't convert 'int' object to str implicitly
Traceback (most recent call last):
  File "FHEM/bindings/python/bin/fhempy", line 22, in <module>
    + MIN_PYTHON_VERSION[2]
TypeError: Can't convert 'int' object to str implicitly
Traceback (most recent call last):
  File "FHEM/bindings/python/bin/fhempy", line 22, in <module>
    + MIN_PYTHON_VERSION[2]
TypeError: Can't convert 'int' object to str implicitly


...:~ $ python3 -V
Python 3.8.4
...:~ $ python -V
Python 3.8.4
...:~ $
Titel: Antw:Ring Video Doorbell
Beitrag von: Tiffytaffy am 16 Dezember 2020, 20:07:25
Zitat von: dominik am 15 Dezember 2020, 20:18:34
Nutz doch einfach fhempy für Ring:
https://github.com/dominikkarall/fhempy

Installation auf der Seite befolgen und dann das Module definieren
https://github.com/dominikkarall/fhempy/blob/master/FHEM/bindings/python/fhempy/lib/ring/README.md

Habe nun Fhem  + Python + Git auf windows neu installiert.

Die Befehle:
sudo apt install python3 python3-pip libssl-dev libffi-dev
sudo cpan Protocol::WebSocket
brauche ich in Windows ja nicht.

Kann ich nun gleich mit
update add https://raw.githubusercontent.com/dominikkarall/fhempy/master/controls_pythonbinding.txt
update
define local_pybinding BindingsIo Python

in Fhem weitermachen?

Danke und Gruß
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 16 Dezember 2020, 20:30:09
@pflock_y, warum installierst du nicht per apt python3? Ansonsten empfehle ich python3 systemweit auf 3.7 zu setzen.
https://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux#h2-change-python-version-system-wide

@Tiffytaffy
Naja, python3 und Protocol::WebSocket musst du trotzdem installieren. Dann eben nicht per apt und cpan sondern mit entsprechenden Windows Commands - die kenne ich jedoch nicht, da ich alles auf Linux laufen lasse.
Titel: Antw:Ring Video Doorbell
Beitrag von: Tiffytaffy am 16 Dezember 2020, 20:48:48
Zitat von: dominik am 16 Dezember 2020, 20:30:09
@pflock_y, warum installierst du nicht per apt python3? Ansonsten empfehle ich python3 systemweit auf 3.7 zu setzen.
https://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux#h2-change-python-version-system-wide

@Tiffytaffy
Naja, python3 und Protocol::WebSocket musst du trotzdem installieren. Dann eben nicht per apt und cpan sondern mit entsprechenden Windows Commands - die kenne ich jedoch nicht, da ich alles auf Linux laufen lasse.

Ich habe ja bereits Version python-3.9.1 installiert. Oder ist mit python3 etwas anderes gemeint? Wenn ja, dann werde ich das Googeln wie das unter windows gehen kann.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 16 Dezember 2020, 21:07:06
Ok, das konnte ich den Post nicht entnehmen. Ich habe bislang nur mit Python 3.7 getestet, kann daher nicht garantieren, dass 3.9 auch klappt.
Perl Websockets ist auch installiert? Pip? Wenn ja, dann einfach mal starten und die Ergebnisse posten :)
Titel: Antw:Ring Video Doorbell
Beitrag von: Tiffytaffy am 16 Dezember 2020, 23:41:53
Zitat von: dominik am 16 Dezember 2020, 21:07:06
Ok, das konnte ich den Post nicht entnehmen. Ich habe bislang nur mit Python 3.7 getestet, kann daher nicht garantieren, dass 3.9 auch klappt.
Perl Websockets ist auch installiert? Pip? Wenn ja, dann einfach mal starten und die Ergebnisse posten :)

cpan Protocol::WebSocket ging auch unter Windows.
FHEM:
update add https://raw.githubusercontent.com/dominikkarall/fhempy/master/controls_pythonbinding.txt
update
hat funktioniert.

define local_pybinding BindingsIo Python ist dann gescheitert. Wobei PythonBinding-2020-12-16.log angelegt wird aber leer ist.
Werde es Morgen noch mal Versuchen

2020.12.16 23:35:47 1: starting in console mode
2020.12.16 23:35:47 1: Including fhem.cfg
2020.12.16 23:35:47 3: WEB: port 8083 opened
2020.12.16 23:35:47 2: eventTypes: loaded 0 events from ./log/eventTypes.txt
2020.12.16 23:35:47 1: Including ./log/fhem.save
2020.12.16 23:35:47 1: Messages collected while initializing FHEM:SecurityCheck:
  WEB is not password protected

Protect this FHEM installation by defining an allowed device with define allowed allowed
You can disable this message with attr global motd none

2020.12.16 23:35:47 3: initialUsbCheck return value: This command is not yet supported on windows
2020.12.16 23:35:47 0: Featurelevel: 6
2020.12.16 23:35:47 0: Server started with 6 defined entities (fhem.pl:23306/2020-12-07 perl:5.032000 os:MSWin32 user:Ich pid:4128)
2020.12.16 23:36:05 3: BindingsIo v1.0.0
2020.12.16 23:36:05 3: PythonBinding v1.0.0
2020.12.16 23:36:05 3: Pythonbinding_15733: starting
2020.12.16 23:36:05 3: Pythonbinding_15733: using logfile: ./log/PythonBinding-2020-12-16.log
2020.12.16 23:36:05 1: exec failed
2020.12.16 23:36:05 1: set the alexaFHEM-cmd attribut to: <path>/alexa-fhem
Jetzt beendet sich Fhem von selbst.
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 17 Dezember 2020, 02:46:16
Zitat von: dominik am 15 Dezember 2020, 20:16:50
Warum du PythonBinding und nicht BindingsIo neu starten musst, ist einfach erklärt:
Stell dir vor PythonBinding ist eine HueBridge.
BindingsIo ist das Modul, welches die Verbindung zu HueBridge aufbaut.
Wenn nun BindingsIo disconnected anzeigt, startest du im Normalfall die HueBridge neu falls ein reconnect nicht funktioniert.

Gleiches ist hier der Fall, du startest PythonBinding neu, damit BindingsIo wieder zum Device connected kann. Dass PythonBinding weiterhin active anzeigt liegt daran, dass PythonBinding nur prüft ob der Prozess läuft und diese im Fehlerfall (crash) neu startet.
Danke, das war verstaendlich!  :D
(warum du nicht beides in ein Modul gebunden hast, hat mich verwirrt, ist es aber nicht wichtig). 


Zitat von: dominik am 15 Dezember 2020, 20:16:50
updateDeviceInterval: Aktualisiert alle Werte außer Alarme - also im Normalfall uninteressant, außer du prüfst regelmäßig wie hoch der WLAN Empfang des Devices ist oder Batterie. Das reicht aber garantiert alle 10min oder wahrscheinlich sogar jede Stunde.
updateDingInterval: Dies prüft auf einen Alarm (motion, ...). Daher ist dieses Intervall sehr kurz gesetzt. Leider gibt es keine andere Möglichkeit außer alle x Sekunden einen Request beim ring Server zu machen. Und es gibt keine Garantie dafür, dass dieser Service auch zukünftig zur Verfügung steht.
Aha! Vielen Dank. Jetzt habe ich das verstanden.
updateDingInterval ist genau das richtige fuer mich.
updateDeviceInterval dachte ich macht etwas ganz anderes - Jede Stunde ist mehr als ausreichend.

Zitat von: dominik am 15 Dezember 2020, 20:16:50
Bitte kein Script für den Neustart bauen. Ich will Fehler beheben und nicht Fehler verstecken.
Spielverderber  ;D Hatte ich bereits gemacht, war aber gar nicht noetig: Mit updateDeviceInterval 300 funktioniert Ring (und PythonBinding) ohne Probleme (jetzt werde ich updateDeviceInterval auf 2000 stellen).

Vielen Dank Dominik, es ist eine unglaublige Hilfe dieses Pythonbinding!
Ich habe mit ring und discover_upnp angefangen aber sehe sehr viele interessante Module  (TensorFlow, xiaomi_tokens, miio ) ;D

Schoene Gruesse,

Manos

P.S. Verstehe ich das Richtig? Mit xiaomi_tokens kann ich den verschluesselten Token meines XIOMI Airpurifiers 3H finden, ohne ein gerootetes Smartphone haben zu muessen? Das ist ja Super!
Titel: Antw:Ring Video Doorbell
Beitrag von: pflock_y am 17 Dezember 2020, 12:09:07
Zitat von: dominik am 16 Dezember 2020, 20:30:09
@pflock_y, warum installierst du nicht per apt python3? Ansonsten empfehle ich python3 systemweit auf 3.7 zu setzen.
https://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux#h2-change-python-version-system-wide

@Tiffytaffy
Naja, python3 und Protocol::WebSocket musst du trotzdem installieren. Dann eben nicht per apt und cpan sondern mit entsprechenden Windows Commands - die kenne ich jedoch nicht, da ich alles auf Linux laufen lasse.

Hallo dominik,
"warum installierst du nicht per apt python3" ging nicht. Ich weiss auch warum, Raspberry mit Jessy konnte nur python 3.5.x.
Ich hab jetzt den Umstieg auf Buster gemacht, siehe da, läuft.
Auch bei apt-get install python3 --> kommt nun die version 3.7.3 als aktuellste raus.

Danke für die Unterstützung

vg
pflock_y
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 17 Dezember 2020, 19:39:03
Zitat von: Manos am 17 Dezember 2020, 02:46:16
(warum du nicht beides in ein Modul gebunden hast, hat mich verwirrt, ist es aber nicht wichtig). 
Das hat den Grund, dass fhempy auch über mehrere Nodes verteilt werden kann. Das bedeutet, du lässt fhempy auf einem 2. RPi laufen (wegen Bluetooth, oder Lastverteilung, oder....) und verbindest dann mit dem BindingsIo dort hin. Dafür brauchst aber kein PythonBinding, weil das läuft Remote.

Zitat
P.S. Verstehe ich das Richtig? Mit xiaomi_tokens kann ich den verschluesselten Token meines XIOMI Airpurifiers 3H finden, ohne ein gerootetes Smartphone haben zu muessen? Das ist ja Super!
Ja, genau.

@pflock_y, perfekt, freut mich, dass es funktioniert! :)

@Tiffytaffy, ich glaube das liegt an der fhempy Datei, da wird "#!/usr/bin/env python3" benutzt und ich bin mir nicht sicher wie das unter Windows funktioniert. Schau mal ob das hier hilft:
https://blog.python.org/2011/07/python-launcher-for-windows_11.html
Titel: Antw:Ring Video Doorbell
Beitrag von: Tiffytaffy am 18 Dezember 2020, 17:06:05
Zitat von: dominik am 17 Dezember 2020, 19:39:03
@Tiffytaffy, ich glaube das liegt an der fhempy Datei, da wird "#!/usr/bin/env python3" benutzt und ich bin mir nicht sicher wie das unter Windows funktioniert. Schau mal ob das hier hilft:
https://blog.python.org/2011/07/python-launcher-for-windows_11.html

Hallo,
ich bin mit dem python-launcher-for-windows leider auch nicht weiter gekommen. Gleiches Verhalten.
Direkt nach dem update Befehl und vor dem define local_pybinding BindingsIo Python
habe ich auch mal die Zeile #!/usr/bin/env python3 mal entfernt oder auch durch #!C:/Users/Ich/AppData/Local/Programs/Python/Python37/python.exe ersetzt. Und einmal auch die ganze fhempy Datei gelöscht.
Die Fehlermeldung bleibt stets gleich.
Sollte ich mal eine Linux-Umgebung haben, dann kann ich das Ganze ja noch mal damit versuchen.

Danke für die Unterstützung
Gruß
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 19 Dezember 2020, 13:57:38
Zitat von: dominik am 15 Dezember 2020, 20:16:50
updateDeviceInterval: Aktualisiert alle Werte außer Alarme - also im Normalfall uninteressant, außer du prüfst regelmäßig wie hoch der WLAN Empfang des Devices ist oder Batterie. Das reicht aber garantiert alle 10min oder wahrscheinlich sogar jede Stunde.
updateDingInterval: Dies prüft auf einen Alarm (motion, ...). Daher ist dieses Intervall sehr kurz gesetzt. Leider gibt es keine andere Möglichkeit außer alle x Sekunden einen Request beim ring Server zu machen. Und es gibt keine Garantie dafür, dass dieser Service auch zukünftig zur Verfügung steht.

Hallo Dominik,
ich bin nicht ganz sicher, dass ich alles korrekt mache.
PythonBinding funktioniert ohne Unterbrechungen.
Trotz deviceUpdateInterval 1800 und dingPollInterval 2, ich sehe die alarm Werte nicht aktualisieren.
Ich habe Pythonbinding_15733 vorsichtshalber restarted und trotzdem nicht das erhoffte Ergebnis erzielt

Ich habe zwei Gruppen die mich interessieren (ich verstehe den Unterschied nicht):
alert_id, alert_kind, alert_sip_to
und
history_1_answered, history_1_created_at, history_1_id, history_1_kind
In den meisten Faellen sind die Werte in beiden Grippen gleich.

Sie  werden aber sehr unregelmaessig aktualisiert (siehe Bild, Pythonbinding_15733 restarted um 12:20:17).



Internals:
   DEF        ring xxxxxxxx.com "Front Door"
   FUUID      xxxxxxxx
   FVERSION   10_PythonModule.pm:0.182830/2019-01-16
   IODev      pybinding
   NAME       RingDoorBell
   NR         321
   PYTHONTYPE ring
   RINGDEVICE Front Door
   STATE      connected
   TYPE       PythonModule
   USERNAME   xxxxxxxx.com
   Helper:
     DBLOG:
       battery_life:
         Logdb:
           TIME       1608376817.58064
           VALUE      91
       history_1_created_at:
         Logdb:
           TIME       1608376824.36776
           VALUE      2020-12-19 11:13:33+00:00
   READINGS:
     2020-12-10 01:18:10   address         xxxxxxxx
     2020-12-19 00:36:29   alert_current   motion
     2020-12-19 12:26:15   alert_id        6907927301888687161
     2020-12-19 12:26:15   alert_kind      motion
     2020-12-19 12:26:15   alert_sip_to    sip:xxxxxxxx;transport=tls
     2020-12-19 12:26:15   alert_sip_token
     2020-12-19 12:20:17   battery_life    91
     2020-12-10 01:18:10   connection_status online
     2020-12-10 01:18:10   existing_doorbell_type Mechanical
     2020-12-10 01:18:10   existing_doorbell_type_enabled 1
     2020-12-10 01:18:10   family          doorbots
     2020-12-10 01:18:10   firmware        Up to Date
     2020-12-10 01:18:10   has_subscription 1
     2020-12-18 16:55:47   history_1_answered 0
     2020-12-19 12:20:24   history_1_created_at 2020-12-19 11:13:33+00:00
     2020-12-19 12:20:24   history_1_id    6907924093548117049
     2020-12-17 16:21:12   history_1_kind  motion
     2020-12-18 18:26:01   history_2_answered 0
     2020-12-19 12:20:24   history_2_created_at 2020-12-19 10:31:24+00:00
     2020-12-19 12:20:24   history_2_id    6907913231575825465
     2020-12-19 12:20:24   history_2_kind  motion
     2020-12-18 22:06:11   history_3_answered 0
     2020-12-19 12:20:24   history_3_created_at 2020-12-19 09:33:07+00:00
     2020-12-19 12:20:24   history_3_id    6907898212075191353
     2020-12-17 16:21:12   history_3_kind  motion
     2020-12-14 23:47:00   history_4_answered 0
     2020-12-19 12:20:24   history_4_created_at 2020-12-19 09:23:45+00:00
     2020-12-19 12:20:24   history_4_id    6907895798303571001
     2020-12-17 17:21:25   history_4_kind  motion
     2020-12-19 12:20:24   history_5_answered 0
     2020-12-19 12:20:24   history_5_created_at 2020-12-19 09:15:00+00:00
     2020-12-19 12:20:24   history_5_id    6907893543445740601
     2020-12-16 16:44:26   history_5_kind  motion
     2020-12-10 01:18:10   id              54e019f73c41
     2020-12-10 01:18:10   kind            doorbell_scallop
     2020-12-19 12:20:17   last_recording_id 6907924093548117049
     2020-12-19 12:20:23   last_recording_url https://share-service-xxxxxxxx
     2020-12-10 01:18:10   latitude        50.617718
     2020-12-10 01:18:10   longitude       7.3391075
     2020-12-10 01:18:10   model           Doorbell 3 Plus
     2020-12-10 01:18:10   name            Front Door
     2020-12-10 01:18:08   password        xxxxxxxx

     2020-12-19 12:26:17   state           connected
     2020-12-10 01:18:10   subscribed      1
     2020-12-10 01:18:10   subscribed_motion 1
     2020-12-10 01:18:10   timezone        Europe/Berlin
     2020-12-19 12:20:15   token           xxxxxxxx

     2020-12-10 01:18:10   volume          8
     2020-12-19 12:20:23   wifi_name       xxxxxxxx
     2020-12-19 12:20:23   wifi_signal_category good
     2020-12-19 12:20:23   wifi_signal_strength -55.0
   args:
     RingDoorBell
     PythonModule
     ring
     xxxxxxxx.com
     Front Door
   argsh:
Attributes:
   DbLogExclude .*
   DbLogInclude battery_life,history_1_answered,history_1_created_at,history_1_kind
   IODev      pybinding
   comment    Alarm types: motion, ding, on_demand,
   devStateIcon {
my $cnct = 'rc_YELLOW@red';;
$cnct ='rc_GREEN@green' if (ReadingsVal($name, "state", "Offline") eq "connected");;
my $motion = 'it_camera@green';;
$motion='secur_alarm@red' if (ReadingsVal($name, "alert_kind", "dead") eq "motion");;
$motion='secur_alarm@orange' if (ReadingsVal($name, "alert_kind", "dead") eq "ding");;
my $motionDummy = 'it_camera@green';;
$motionDummy='motion_detector@red' if (ReadingsVal("Ring_FrontDoor", "state", "dead") eq "motion");;
$motionDummy='secur_alarm@orange' if (ReadingsVal("Ring_FrontDoor", "state", "dead") eq "ding");;
$motionDummy='it_camera@green' if (ReadingsVal("Ring_FrontDoor", "state", "dead") eq "on_demand");;
$motionDummy='it_camera@blue' if (ReadingsVal("Ring_FrontDoor", "state", "dead") eq "none");;
my $bat = 'measure_battery_100@green';;
$bat ='measure_battery_50@orange' if (ReadingsNum($name, "battery_life", "Offline")<55);;
$bat ='measure_battery_25@red' if (ReadingsNum($name, "battery_life", "Offline") < 25);;
"
" . FW_makeImage("$cnct","cul_wlan") . "   " . FW_makeImage("$bat","cul_wlan") . "   " . FW_makeImage("$motionDummy","hue_filled_outlet") . "
Last: " . ReadingsVal($name, "alert_kind", "dead") . "   " . FW_makeImage("$motion","hue_filled_outlet") . " (" . ReadingsTimestamp($name,"alert_kind",0) . ")
" ;;
}
   deviceUpdateInterval 1800
   dingPollInterval 2
   event-on-change-reading alert_kind,battery_life,history_1_answered,history_1_created_at,history_1_kind
   room       Outside_Perimeter,_Hood->Sensor
   verbose    0


Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 19 Dezember 2020, 16:06:29
Hi,

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.

//Edit: History wird mit dem updateDeviceInterval aktualisiert, daher hat es eine Verzögerung zum Alert.
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 20 Dezember 2020, 23:54:53
Hallo Dominik,
nur zur Info: ich habe habe ein bisschen mit ReadingsVal($name, "state", "??") experimentiert, und folgendes festgestellt:
Die einzige Werte die ich bis jetzt "gesehen" habe, sind connected, oder disconnected  (die Verbindung zu Python existiert, oder nicht), deswegen habe ich es nur als Indikator fuer die Python Verbindung benutzt.

Per Zufall musste ich feststellen, '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)
Ich habe ploetzlich die Werte auf meine SQL Datenbank endekt.






Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 21 Dezember 2020, 09:25:52
Hallo,

also bei mir müllt pythonbinding seid einigen Tagen das Log sekündlich zu. Im binding Log finde ich folgendes:

ModuleNotFoundError: No module named 'fhempy'
    import fhempy.lib.fhem_pythonbinding as fpb
  File "FHEM/bindings/python/bin/fhempy", line 140, in <module>
Traceback (most recent call last):

During handling of the above exception, another exception occurred:

ModuleNotFoundError: No module named 'fhempy'
    import fhempy.lib.fhem_pythonbinding as fpb
  File "FHEM/bindings/python/bin/fhempy", line 136, in <module>
Traceback (most recent call last):
ModuleNotFoundError: No module named 'fhempy'
    import fhempy.lib.fhem_pythonbinding as fpb
  File "FHEM/bindings/python/bin/fhempy", line 140, in <module>
Traceback (most recent call last):

During handling of the above exception, another exception occurred:

ModuleNotFoundError: No module named 'fhempy'
    import fhempy.lib.fhem_pythonbinding as fpb
  File "FHEM/bindings/python/bin/fhempy", line 136, in <module>


Im FHEM Log steht wie erwähnt aller Sekunden nur

BindingsIo: ERROR pythonbinding - error while connecting: connect to http://127.0.0.1:15733 timed out


Geändert habe ich nichts. Der Rechner wurde nur nach einem Update des Betriebssystems neu gestartet.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 21 Dezember 2020, 16:27:09
Zitat von: Manos am 20 Dezember 2020, 23:54:53
Hallo Dominik,
nur zur Info: ich habe habe ein bisschen mit ReadingsVal($name, "state", "??") experimentiert, und folgendes festgestellt:
Die einzige Werte die ich bis jetzt "gesehen" habe, sind connected, oder disconnected  (die Verbindung zu Python existiert, oder nicht), deswegen habe ich es nur als Indikator fuer die Python Verbindung benutzt.

Per Zufall musste ich feststellen, '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)
Ich habe ploetzlich die Werte auf meine SQL Datenbank endekt.

Ja, state wird auf die Alerts gesetzt für die Zeit solange der Alert aktiv ist. Ich wusste nicht, dass der nur 2s aktiv ist. Aber du kannst definitiv den state Alert mit z.B. DOIF verwenden.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 21 Dezember 2020, 16:27:50
Zitat von: dlehmann69 am 21 Dezember 2020, 09:25:52
Hallo,

also bei mir müllt pythonbinding seid einigen Tagen das Log sekündlich zu. Im binding Log finde ich folgendes:

ModuleNotFoundError: No module named 'fhempy'
    import fhempy.lib.fhem_pythonbinding as fpb
  File "FHEM/bindings/python/bin/fhempy", line 140, in <module>
Traceback (most recent call last):

During handling of the above exception, another exception occurred:

ModuleNotFoundError: No module named 'fhempy'
    import fhempy.lib.fhem_pythonbinding as fpb
  File "FHEM/bindings/python/bin/fhempy", line 136, in <module>
Traceback (most recent call last):
ModuleNotFoundError: No module named 'fhempy'
    import fhempy.lib.fhem_pythonbinding as fpb
  File "FHEM/bindings/python/bin/fhempy", line 140, in <module>
Traceback (most recent call last):

During handling of the above exception, another exception occurred:

ModuleNotFoundError: No module named 'fhempy'
    import fhempy.lib.fhem_pythonbinding as fpb
  File "FHEM/bindings/python/bin/fhempy", line 136, in <module>


Im FHEM Log steht wie erwähnt aller Sekunden nur

BindingsIo: ERROR pythonbinding - error while connecting: connect to http://127.0.0.1:15733 timed out


Geändert habe ich nichts. Der Rechner wurde nur nach einem Update des Betriebssystems neu gestartet.

Da ist wohl beim Update was schief gegangen. Hast du schon ein "update" in FHEM gemacht?
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 21 Dezember 2020, 19:55:52
Ja Update habe ich am 13. Dezember durchgeführt. Der Fehler taucht im Log auch erst seit dem 19. Dezember Mitternacht auf. Bis dahin lief nach dem FHEM Neustart alles einwandfrei.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 21 Dezember 2020, 19:57:06
Mach bitte noch ein "update" in FHEM und gib dann Bescheid ob es läuft.
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 21 Dezember 2020, 20:11:06
okay ich habe ein update force für das entsprechende Repository gemacht, da es ja sonst nichts zu tun gibt. Nach einem FHEM Neustart immer noch der Fehler da.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 21 Dezember 2020, 21:01:20
In welchem Ordner hast du deine FHEM Installation?
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 21 Dezember 2020, 22:31:04
ganz normal in opt/fhem
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 21 Dezember 2020, 22:42:08
Poste bitte mal die Ausgabe von
ls /opt/fhem/FHEM/bindings/python/
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 21 Dezember 2020, 22:46:49
dirk@homeserver:~$ ls /opt/fhem/FHEM/bindings/python/
bin  delete_fhempy  fhempy  __init__.py  lib  pythonbinding.py

Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 21 Dezember 2020, 22:51:37
Sieht gut aus...bitte noch
ls /opt/fhem/FHEM/bindings/python/fhempy
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 22 Dezember 2020, 11:30:49
dirk@homeserver:~$ ls /opt/fhem/FHEM/bindings/python/fhempy
__init__.py  lib  __pycache__
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 22 Dezember 2020, 15:29:26
mach bitte mal
pi@raspberry40:/opt/fhem $ FHEM/bindings/python/bin/fhempy
2020-12-22 15:28:54,420 - INFO     - __main__: Attempting install of websockets
...
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 22 Dezember 2020, 15:50:45
Habe ich mal gemacht mit folgenden Ausgaben.

root@homeserver:/opt/fhem# FHEM/bindings/python/bin/fhempy
2020-12-22 15:49:04,364 - INFO     - __main__: Attempting install of zeroconf>=0.28.6
2020-12-22 15:49:10,141 - INFO     - __main__: Successfully installed zeroconf>=0.28.6
2020-12-22 15:49:10,540 - INFO     - fhempy.lib.fhem_pythonbinding: Starting pythonbinding...
Traceback (most recent call last):
  File "FHEM/bindings/python/bin/fhempy", line 143, in <module>
    fpb.run()
  File "/opt/fhem/FHEM/bindings/python/fhempy/lib/fhem_pythonbinding.py", line 403, in run
    asyncio.get_event_loop().run_until_complete(
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/usr/lib/python3.8/asyncio/tasks.py", line 684, in _wrap_awaitable
    return (yield from awaitable.__await__())
  File "/usr/local/lib/python3.8/dist-packages/websockets/server.py", line 965, in __await_impl__
    server = await self._create_server()
  File "/usr/lib/python3.8/asyncio/base_events.py", line 1463, in create_server
    raise OSError(err.errno, 'error while attempting '
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 15733): address already in use
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 22 Dezember 2020, 16:03:33
Sieht gut aus, du hast wahrscheinlich schon in FHEM PythonBinding definiert und daher läuft fhempy schon.
Schau mal ob schon connected in FHEM steht.
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 22 Dezember 2020, 16:14:10
Leider immer noch disconnected.

Der pythonbinding_0 will immer wieder neu starten und geht dann aber sofort auf stopped. Im Log stehen die gleichen Meldung wie eben auf der Befehlszeile.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 22 Dezember 2020, 16:17:13
Pythonbinding_0? Das sollte eigentlich nicht existieren, nur Pythonbinding_15733. Schau mal ob das läuft.
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 22 Dezember 2020, 21:07:53
Also bei mir gibt es zwei Def mit dem Namen Pythonbinding... Hier mal das List von beiden.

Internals:
   BindingType Python
   DEF        Python
   DeviceName ws:127.0.0.1:15733
   FUUID      5fa3e696-f33f-73c2-38d2-086fea2bc49bb496
   IP         127.0.0.1
   NAME       pythonbinding
   NEXT_OPEN  1608667417.89774
   NR         438
   NTFY_ORDER 50-pythonbinding
   PARTIAL   
   PORT       15733
   STATE      disconnected
   TYPE       BindingsIo
   localBinding 1
   nextOpenDelay 10
   Helper:
     DBLOG:
       state:
         DBLogging:
           TIME       1608649843.61117
           VALUE      DISCONNECTED
   READINGS:
     2020-12-22 21:03:27   state           disconnected
     2020-12-13 14:47:23   version         0.1.6
   args:
     pythonbinding
     BindingsIo
     Python
   argsh:
Attributes:
   room       hidden


Internals:
   DEF        0
   FUUID      5fa3e696-f33f-73c2-352a-d5ddf5ae76cd9c07
   LAST_START 2020-12-22 21:06:48
   LAST_STOP  2020-12-22 21:06:49
   NAME       Pythonbinding_0
   NR         439
   NTFY_ORDER 50-Pythonbinding_0
   STARTS     847
   STATE      active
   TYPE       PythonBinding
   logfile    ./log/PythonBinding-%Y-%m-%d.log
   CoProcess:
     cmdFn      PythonBinding_getCmd
     name       PythonBinding
     state      stopped
   Helper:
     DBLOG:
       PythonBinding:
         DBLogging:
           TIME       1608667609.29036
           VALUE      stopped
   READINGS:
     2020-12-22 21:06:49   PythonBinding   stopped
     2020-12-22 16:10:29   state           active
Attributes:
   logfile    ./log/PythonBinding-%Y-%m-%d.log
   nrarchive  10
   room       hidden
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 22 Dezember 2020, 21:25:15
Mach bitte mal ein
ps -efa|grep fhempy

Irgendwo rennt da der fhempy Prozess schon oder du hast auf Port 15733 einen anderen Prozess laufen.
Titel: Antw:Ring Video Doorbell
Beitrag von: dlehmann69 am 22 Dezember 2020, 22:19:27
Vielen Dank für den letzten Tipp. Ja ein Prozess war am laufen. Ich habe mir mal die benutzten Ports auf meinem System anzeigen lassen. Den zugehörigen Prozess einmal abgeschossen und jetzt scheint das ganze zu laufen.

Ich beobachte einmal weiter.
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 23 Dezember 2020, 03:13:56
ZitatUPD FHEM/bindings/python/fhempy/lib/xiaomi_gateway3/core/__init__.py
https://raw.githubusercontent.com/dominikkarall/fhempy/master/FHEM/bindings/python/fhempy/lib/xiaomi_gateway3/core/__init__.py: empty file received

bin ich wieder der einzige?  :-[
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 23 Dezember 2020, 08:31:00
Danke fuer die Info, sollte jetzt behoben sein.
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 23 Dezember 2020, 12:07:42
2020.12.23 12:04:46.776 1:  UPD FHEM/bindings/python/fhempy/lib/xiaomi_gateway3/core/__init__.py
2020.12.23 12:04:46.936 1:  UPD FHEM/bindings/python/fhempy/lib/miio/miio.py
2020.12.23 12:04:47.125 1:  UPD FHEM/bindings/python/fhempy/lib/helloworld/__pycache__/__init__.cpython-37.pyc
2020.12.23 12:04:47.268 1:  Got 14 bytes for FHEM/bindings/python/fhempy/lib/helloworld/__pycache__/__init__.cpython-37.pyc, expected 191
2020.12.23 12:04:47.269 1:  aborting.


__init__.py ist OK jetzt, aber....
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 23 Dezember 2020, 12:19:02
jetzt aber...
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 23 Dezember 2020, 13:06:21
Danke Dominik, jetzt hat es geklappt!  :)

Frohe Weihnachten!
Titel: Antw:Ring Video Doorbell
Beitrag von: leachim200 am 31 Dezember 2020, 12:28:46
Hi
Auch mit der Änderung auf 600 und 2 leider keine Verbesserung.
Anbei das gesamte Logfile
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 31 Dezember 2020, 14:14:15
Probier mal 600/5...das liegt leider an Ring selbst, da kann man nichts tun. Ich weiß auch nicht wie die die Prüfung machen.
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 01 Januar 2021, 04:22:58
Zitat von: leachim200 am 31 Dezember 2020, 12:28:46
Hi
Auch mit der Änderung auf 600 und 2 leider keine Verbesserung.
Anbei das gesamte Logfile

Ich glaube eher es liegt an:
ZitatYour Ring account does not have an active subscription.
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 02 Januar 2021, 16:17:06
Hallo,

ich habe das Pythonmodul bei mir auch jetzt am Laufen - was mich interessieren würde,... gibt es eine Möglichkeit den Videostream abzufassen, ohne dass man ein Abonement als Videoaufnahme hat?

Gruß
Maik
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 02 Januar 2021, 16:53:23
Die Live Stream und Bild Snapshot sollte möglich sein. In der aktuellen Version habe ich beides jedoch deaktiviert, da es nicht funktioniert hat.

Laut Log in der Library welche ich nutze dürfte das Problem aber behoben sein:
https://github.com/tchellomello/python-ring-doorbell/commits/master

Bild Snapshot ist wirklich ein Bild das man speichern kann, beim Live Stream weiß ich nicht in welcher Art der übertragen wird und ob er in FHEM auch darstellbar ist.
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 02 Januar 2021, 17:17:34
Wäre schön, wenn durch das Event "motion" oder "ring" der Live-Stream oder eine Aufnahme vom Live-Stream gestartet werden kann. In dem Fall könnte man sich z.B. über Telegram den aufgenommenen Stream zuschicken.
Was natürlich noch besser wäre, wenn es dann eine Möglichkeit gäbe diesen Stream Live auf dem Handy zu empfangen - dann wäre die Ring Cloud komplett unnötig, bzw. die Abonement müßten nicht gebucht werden!

Ich kann dir sagen, dass der Stream als MP4 Datei runtergeladen werden kann. Bei mir auf der Seite https://share-service-download-bucket.s3.amazonaws.com

Kann dir die komplette URL vom letzten Stream privat mal zuschicken, wenn du möchtest!
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 02 Januar 2021, 17:31:05
Hallo,

ich habe den letzten aufgenommenen Stream als Weblink in fhem eingebettet:

defmod RingVideoHaustuer weblink htmlCode {\
my $url=ReadingsVal('ringdev', 'last_recording_url', '');;;;\
return "\
<video controls width='800'>\
\
    <source src=$url\
            type='video/mp4'>\
\
    Sorry, your browser doesn't support embedded videos.\
</video>\
"\
}


Gruss Jan
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 02 Januar 2021, 17:37:20
Was mir noch aufgefallen ist (ich habe 2 Ring Doorbells), dass wenn z.B. auf der Haustür ein Event passiert, das Event (motion und auch ding) auch in das andere Device geschrieben wird... Aber vielleicht kommt das ja auch aus der lib von tchellomello...
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 02 Januar 2021, 18:11:30
Zitat von: JF Mennedy am 02 Januar 2021, 17:37:20
Was mir noch aufgefallen ist (ich habe 2 Ring Doorbells), dass wenn z.B. auf der Haustür ein Event passiert, das Event (motion und auch ding) auch in das andere Device geschrieben wird... Aber vielleicht kommt das ja auch aus der lib von tchellomello...

Da hab ich etwas gefunden:
https://github.com/tchellomello/python-ring-doorbell/blob/d20243aa19eb115ea2c7562ccb0b2bab864ebb3f/tests/fixtures/ring_ding_active.json
Im Alert wird auch die doorbell_id zurück geliefert. Werde das beim nächsten Update berücksichtigen, damit nur mehr das richtige Device den Ding empfängt.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 02 Januar 2021, 18:14:36
Zitat von: GreenFHEMfan am 02 Januar 2021, 17:17:34
Wäre schön, wenn durch das Event "motion" oder "ring" der Live-Stream oder eine Aufnahme vom Live-Stream gestartet werden kann. In dem Fall könnte man sich z.B. über Telegram den aufgenommenen Stream zuschicken.
Was natürlich noch besser wäre, wenn es dann eine Möglichkeit gäbe diesen Stream Live auf dem Handy zu empfangen - dann wäre die Ring Cloud komplett unnötig, bzw. die Abonement müßten nicht gebucht werden!

Ich kann dir sagen, dass der Stream als MP4 Datei runtergeladen werden kann. Bei mir auf der Seite https://share-service-download-bucket.s3.amazonaws.com

Kann dir die komplette URL vom letzten Stream privat mal zuschicken, wenn du möchtest!

Ich werde die Funktion wieder aktivieren, dann könnt ihr das testen. Muss aber noch warten bis die Fixes in der Library released sind. Im letzten Release von 21.11. sind die Fixes noch nicht dabei.
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 03 Januar 2021, 12:18:11
Hallo Dominik,

bis gestern vormittag lief das Pythonmodul einwandfrei - doch jetzt scheint es sich nicht mehr zu aktuallisieren.
Es ist weiterhin "connected" aber die ganzen History-Daten sind nicht aktuell.
Ich kann auch keinen aufgenommenen Stream mehr ansehen, indem ich die URL aus dem Modul aufrufe.

Da kommt dann:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Request has expired</Message>
<X-Amz-Expires>3600</X-Amz-Expires>
<Expires>2021-01-02T16:37:57Z</Expires>
<ServerTime>2021-01-03T11:15:11Z</ServerTime>
<RequestId>xxxxxxxxxxxxxxxxxx</RequestId>
<HostId>
(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
</HostId>
</Error>


RequestId und HostId habe ich mal ausgeblendet!
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 03 Januar 2021, 12:21:23
Was kommt im PythonBinding Log?
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 03 Januar 2021, 13:33:11
OK - ich hatte soviel Pythonmodule aktiviert zum Ausprobieren, daß irgendwo schienbar sich was begissen hat.
Habe jetzt alle unnötigen Module wieder gelöscht - und siehe da, die Aktuallisierung läuft wieder.

Würde es erstmal dabei belassen!

LG
Maik
Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 03 Januar 2021, 13:35:26
Zitat von: JF Mennedy am 02 Januar 2021, 17:31:05
Hallo,

ich habe den letzten aufgenommenen Stream als Weblink in fhem eingebettet:

defmod RingVideoHaustuer weblink htmlCode {\
my $url=ReadingsVal('ringdev', 'last_recording_url', '');;;;\
return "\
<video controls width='800'>\
\
    <source src=$url\
            type='video/mp4'>\
\
    Sorry, your browser doesn't support embedded videos.\
</video>\
"\
}


Gruss Jan

Das ist eine tolle Idee Jan - nur leider bekomme ich ihn bei mir nicht zum laufen!
Die Abspielleiste erscheint noch auf der FHEM-Oberfläche - kann den Stream aber über die Play-Taste nicht starten.
Da passiert gar nix. Woran kann das liegen?

Als 'ringdev' habe ich noch meinen Modulnamen eingetragen!

Wenn ich das so eintrage wie bei dir kommt beim Erstellen des Fhem-Moduls -> Experimental aliasing via reference not enabled at (eval 1299) line 1

Gruß Maik
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 03 Januar 2021, 13:50:14
Hallo Dominik,

bei mir erst heute 13:05 ist die Python Verbindung ausgefallen (ich sehe es in meinem Telegram).
letztes Python Update habe ich gestern gemacht.

deviceUpdateInterval 1800
dingPollInterval 5

Ich (=bedeutet nicht viel) kann nichts besonderes im Log erkennen, ein paar polling errors wie immer.


PythonBinding-2021-01-03.log
2021-01-03 01:18:46,507 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9


PythonBinding-2021-01-02.log
2021-01-02 01:13:10,669 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 01:32:57,188 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 09:54:36,012 - ERROR    - RingDoorBell: Failed to poll devices
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2021-01-02 12:55:11,830 - ERROR    - RingDoorBell: Failed to poll devices
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2021-01-02 16:30:31,481 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 17:26:10,918 - ERROR    - RingDoorBell: Failed to poll devices
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2021-01-02 17:28:16,419 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 18:26:32,555 - ERROR    - RingDoorBell: Failed to poll devices
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2021-01-02 20:14:45,167 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 22:18:38,287 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 23:28:00,406 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9


Internals:
   BindingType Python
   DEF        Python
   DeviceName ws:127.0.0.1:15733
   FUUID      5fd1520c-f33f-6a06-6ce1-3a0f3126c85bd37b
   FVERSION   10_BindingsIo.pm:0.182830/2019-01-16
   IP         127.0.0.1
   NAME       pybinding
   NEXT_OPEN  1609676922.00261
   NR         313
   NTFY_ORDER 50-pybinding
   PARTIAL   
   PORT       15733
   STATE      disconnected
   TYPE       BindingsIo
   localBinding 1
   nextOpenDelay 10
   Helper:
     DBLOG:
       state:
         Logdb:
           TIME       1609675554.2258
           VALUE      DISCONNECTED
       version:
         Logdb:
           TIME       1609508985.61191
           VALUE      0.1.13
   READINGS:
     2021-01-03 13:28:32   state           disconnected
     2021-01-01 14:49:45   version         0.1.13
   args:
     pybinding
     BindingsIo
     Python
   argsh:
Attributes:

   devStateIcon opened:rc_GREEN@green disconnected:rc_RED@red
   group      _connector
   room       _Hood->System
   verbose    1

Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 03 Januar 2021, 13:57:04
Hallo Maik,

ja richtig ringdev ist der Name der Kamera...

bei mir funktioniert es mit mit Chrome und Firefox, Edge oder andere wie Safari habe ich nicht und kann nicht testen... Eventuell etwas in den Einstellungen vom Browser?

Ich hatte es am Anfang mal mit iFrame versucht (return "<iframe src=$url width=700 height=440></iframe>") Damit funktionierte es aber nicht gut unter Chrome, dafür aber in Firefox... Komischerweise wurde in Chrome 1 Kamera immer angezeigt und die andere nicht, da startete ein Download des Videos, obwohl die Definitions gleich waren...

Ich habe dann irgendwann herausgefunden, dass der Typ der Streams nicht beide mp4 waren, daher der Download von einem der beiden...

Bis das bei mir lief habe ich auch ziemlich lange rumgefummelt und mir Beispiele bei selfhtml angeschaut...

Gruss Jan
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 03 Januar 2021, 13:58:50
Zitat von: GreenFHEMfan am 03 Januar 2021, 13:33:11
OK - ich hatte soviel Pythonmodule aktiviert zum Ausprobieren, daß irgendwo schienbar sich was begissen hat.
Habe jetzt alle unnötigen Module wieder gelöscht - und siehe da, die Aktuallisierung läuft wieder.

Würde es erstmal dabei belassen!

LG
Maik

Mit anderen Module sollte es nicht zusammen hängen. Lass mich bitte wissen wenn es wieder auftritt.
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 03 Januar 2021, 14:02:16
Bei mir laufen alle verwendeten PythonBindings recht stabil ohne weitere Ausfälle (Ring, GoogleCast mit ca 15 Devices, Spotify) . Ich würge nachts aber auch über ein at das Pythonbinding einmal ab -> fhem "{system ('sudo killall python3')};

Lässt sich wahrscheinlich auch über set Pythonbinding_15733 restart realisieren...
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 03 Januar 2021, 14:07:45
Zitat von: Manos am 03 Januar 2021, 13:50:14
Hallo Dominik,

bei mir erst heute 13:05 ist die Python Verbindung ausgefallen (ich sehe es in meinem Telegram).
letztes Python Update habe ich gestern gemacht.

deviceUpdateInterval 1800
dingPollInterval 5

Ich (=bedeutet nicht viel) kann nichts besonderes im Log erkennen, ein paar polling errors wie immer.


PythonBinding-2021-01-03.log
2021-01-03 01:18:46,507 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9


PythonBinding-2021-01-02.log
2021-01-02 01:13:10,669 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 01:32:57,188 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 09:54:36,012 - ERROR    - RingDoorBell: Failed to poll devices
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2021-01-02 12:55:11,830 - ERROR    - RingDoorBell: Failed to poll devices
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2021-01-02 16:30:31,481 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 17:26:10,918 - ERROR    - RingDoorBell: Failed to poll devices
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2021-01-02 17:28:16,419 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 18:26:32,555 - ERROR    - RingDoorBell: Failed to poll devices
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "", line 3, in raise_from
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 330, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 251, in poll_device
    self._lastrecording_url = self._rdevice.recording_url(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/requests_oauthlib/oauth2_session.py", line 515, in request
    return super(OAuth2Session, self).request(
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)
2021-01-02 20:14:45,167 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 22:18:38,287 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9
2021-01-02 23:28:00,406 - ERROR    - RingDoorBell: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.8/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/__init__.py", line 95, in query
    return self.auth.query(
  File "/opt/fhem/.local/lib/python3.8/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9


Internals:
   BindingType Python
   DEF        Python
   DeviceName ws:127.0.0.1:15733
   FUUID      5fd1520c-f33f-6a06-6ce1-3a0f3126c85bd37b
   FVERSION   10_BindingsIo.pm:0.182830/2019-01-16
   IP         127.0.0.1
   NAME       pybinding
   NEXT_OPEN  1609676922.00261
   NR         313
   NTFY_ORDER 50-pybinding
   PARTIAL   
   PORT       15733
   STATE      disconnected
   TYPE       BindingsIo
   localBinding 1
   nextOpenDelay 10
   Helper:
     DBLOG:
       state:
         Logdb:
           TIME       1609675554.2258
           VALUE      DISCONNECTED
       version:
         Logdb:
           TIME       1609508985.61191
           VALUE      0.1.13
   READINGS:
     2021-01-03 13:28:32   state           disconnected
     2021-01-01 14:49:45   version         0.1.13
   args:
     pybinding
     BindingsIo
     Python
   argsh:
Attributes:

   devStateIcon opened:rc_GREEN@green disconnected:rc_RED@red
   group      _connector
   room       _Hood->System
   verbose    1


Die Fehlermeldungen würde ich mal als "übliche" Fehlermeldungen mit ring abtun, da das scheinbar immer wieder auftritt wenn zu oft angefragt wird. Ich habe die Fehlermeldungen auch noch sehr ausführlich gelassen, damit man vielleicht im Fehlerfall doch mal nachvollziehen kann woran es liegt.

Das "disconnected" von fhempy muss aber mit etwas anderen zu tun haben. Der Disconnect dürfte auch ca. 20min später (13:28:32) passiert sein. Leider ist im Log nichts zu erkenne. Läuft der Prozess noch? Oder hast du schon neu gestartet?
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 03 Januar 2021, 14:10:22
Zitat von: JF Mennedy am 03 Januar 2021, 14:02:16
Bei mir laufen alle verwendeten PythonBindings recht stabil ohne weitere Ausfälle (Ring, GoogleCast mit ca 15 Devices, Spotify) . Ich würge nachts aber auch über ein at das Pythonbinding einmal ab -> fhem "{system ('sudo killall python3')};

Lässt sich wahrscheinlich auch über set Pythonbinding_15733 restart realisieren...

Lass bitte mal paar Tage laufen und schick mir Fehler :) Ich freue mich immer über gute Fehlerlogs, weil sonst bekomme ich fhempy nicht aus der BETA raus ;)
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 03 Januar 2021, 14:13:33
@Jan, hast du gar keine Fehlermeldungen im Log? Weil das würde bedeuten, dass ich einen erneuten Login eventuell alle 24h triggern muss.
Titel: Antw:Ring Video Doorbell
Beitrag von: JF Mennedy am 03 Januar 2021, 15:02:18
Doch ich habe immer mal wieder diese beiden Fehler im Log:

2020-12-28 23:56:26,679 - ERROR    - ringdev: Failed to poll dings...
Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/ring/ring.py", line 127, in update_dings_loop
    await utils.run_blocking(functools.partial(self.poll_dings))
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 28, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/ring/ring.py", line 238, in poll_dings
    self._ring.update_dings()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 89, in update_dings
    self.dings_data = self.query(DINGS_ENDPOINT).json()
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 101, in query
    timeout=timeout,
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/auth.py", line 89, in query
    req.raise_for_status()
  File "/usr/local/lib/python3.7/dist-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 504 Server Error: Gateway Time-out for url: https://api.ring.com/clients_api/dings/active?api_version=9


Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/ring/ring.py", line 109, in update_loop
    await utils.run_blocking(functools.partial(self.poll_device))
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 28, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
  File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/ring/ring.py", line 252, in poll_device
    self._rdevice.last_recording_id
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/doorbot.py", line 368, in recording_url
    req = self._ring.query(url)
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/__init__.py", line 101, in query
    timeout=timeout,
  File "/opt/fhem/.local/lib/python3.7/site-packages/ring_doorbell/auth.py", line 84, in query
    req = getattr(self._oauth, method.lower())(url, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/opt/fhem/.local/lib/python3.7/site-packages/requests_oauthlib/oauth2_session.py", line 516, in request
    method, url, headers=headers, data=data, **kwargs
  File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ring.com', port=443): Read timed out. (read timeout=10)


Trotzdem läufts alles unterbrechungsfrei.. Ich hatte anfangs ja auch mal das Problem, dass irgendwann die Readings nicht mehr beschrieben wurden... Hab mir dann aber die Ring Elite gekauft, die über LAN und PoE betrieben wird und eine echt starke Verbesserung zu den WiFi-betriebenen gebracht hat. Ich schalte mal mein Reset ab und schaue ob es dann wieder passiert...

Titel: Antw:Ring Video Doorbell
Beitrag von: GreenFHEMfan am 03 Januar 2021, 16:33:56
Zitat von: JF Mennedy am 03 Januar 2021, 13:57:04
Hallo Maik,

ja richtig ringdev ist der Name der Kamera...

bei mir funktioniert es mit mit Chrome und Firefox, Edge oder andere wie Safari habe ich nicht und kann nicht testen... Eventuell etwas in den Einstellungen vom Browser?

Ich hatte es am Anfang mal mit iFrame versucht (return "<iframe src=$url width=700 height=440></iframe>") Damit funktionierte es aber nicht gut unter Chrome, dafür aber in Firefox... Komischerweise wurde in Chrome 1 Kamera immer angezeigt und die andere nicht, da startete ein Download des Videos, obwohl die Definitions gleich waren...

Ich habe dann irgendwann herausgefunden, dass der Typ der Streams nicht beide mp4 waren, daher der Download von einem der beiden...

Bis das bei mir lief habe ich auch ziemlich lange rumgefummelt und mir Beispiele bei selfhtml angeschaut...

Gruss Jan

Ja, das war es - mit dem Firefox-Browser läuft es. Ich schau mal, ob ich am Chrome was einstellen kann - der läuft bei mir nämlich nicht!

Gruß
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 03 Januar 2021, 17:48:47
Zitat von: dominik am 03 Januar 2021, 14:07:45
Die Fehlermeldungen würde ich mal als "übliche" Fehlermeldungen mit ring abtun, da das scheinbar immer wieder auftritt wenn zu oft angefragt wird. Ich habe die Fehlermeldungen auch noch sehr ausführlich gelassen, damit man vielleicht im Fehlerfall doch mal nachvollziehen kann woran es liegt.

Das "disconnected" von fhempy muss aber mit etwas anderen zu tun haben. Der Disconnect dürfte auch ca. 20min später (13:28:32) passiert sein. Leider ist im Log nichts zu erkenne. Läuft der Prozess noch? Oder hast du schon neu gestartet?

pybinding habe ich noch nicht neu gestartet, es bleibt noch "disconnected" (Bilder anbei).

Ich verstehe etwas nicht, event-on-change-reading finde ich beim Pythonbinding_15733
aber nicht beim pybinding

Ich habe Schwierigkeiten das disconnect des pybinding zu identifizieren bzw. danach dem Pythonbinding_15733 neuzustarten:
Mein Notify reagiert nicht:
defmod Python_Notify1 notify pybinding:state:.* {if (ReadingsVal("pybinding","state","??") eq "disconnected") {\
fhem("set myTelegramBot _msg @139 'Python disconnected'");;\
fhem("set Pythonbinding_1533 restart");;\
}  }
attr Python_Notify1 room _Hood->Logic


Update:
Notify war nie mein Ding, ich habe DOIF aufgemacht und
defmod Python_restart_DOIF DOIF (ReadingsVal("pybinding","state","??") eq "disconnected") \
(\
set myTelegramBot _msg @1391745765 'Python disconnected', \
set Pythonbinding_15733 restart\
)
attr Python_restart_DOIF do always


jetzt laeuft wieder.
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 03 Januar 2021, 18:02:22
event-on-change-reading kann ich beim nächsten Update mit aufnehmen, war noch nicht mit dabei. Macht aber keinen Unterschied, da generell ein Event ausgelöst wird.

Kannst du bitte prüfen, ob fhempy noch läuft?
ps -efa|grep fhempy
Poste bitte die Ausgabe. Danke!

Notify nutze ich nicht, per DOIF sollt es so funktionieren
define fhempy_restart DOIF ([pybinding] eq "disconnected") ((set myTelegramBot _msg @139 'Python disconnected')) (set Pythonbinding_15733 restart)
attr do always
Titel: Antw:Ring Video Doorbell
Beitrag von: Manos am 04 Januar 2021, 00:32:11
Zitat von: dominik am 03 Januar 2021, 18:02:22
event-on-change-reading kann ich beim nächsten Update mit aufnehmen, war noch nicht mit dabei. Macht aber keinen Unterschied, da generell ein Event ausgelöst wird.

Kannst du bitte prüfen, ob fhempy noch läuft?
ps -efa|grep fhempy
Poste bitte die Ausgabe. Danke!

ps -efa|grep fhempy
fhem     4023610 3087728  0 Jan03 ?        00:01:30 python3 FHEM/bindings/python/bin/fhempy --local
manos    4123530 4122105  0 00:21 pts/0    00:00:00 grep --color=auto fhempy

Aber es ist normal, ich hatte mein DOIF bereits aktiviert und erwartungsgemaess, hat es sofort das  Pythonbinding_15733 neu gestartet.
Ich werde folgendes machen: Das Neustarten  vom  Pythonbinding_15733 ausser Kraft setzen und wenn es wieder passiert, werde ich davon berichten.

Zitat von: dominik am 03 Januar 2021, 18:02:22
Notify nutze ich nicht, per DOIF sollt es so funktionieren
define fhempy_restart DOIF ([pybinding] eq "disconnected") ((set myTelegramBot _msg @139 'Python disconnected')) (set Pythonbinding_15733 restart)
attr do always

100% Prozent deiner Meinung!
Titel: Antw:Ring Video Doorbell
Beitrag von: kjmEjfu am 04 Januar 2021, 12:03:01
Mal für Menschen gefragt, die nicht alle 33 Seiten gelesen haben:

- was kann denn die Kombination FHEM + Ring Video Doorbell aktuell`?
- braucht man ein Abo für Kernfunktionen (Klingeln erkennen, Snapshot, Livevideo)?
- gibt es irgendwo eine Übersicht, was man wie installieren muss?
Titel: Antw:Ring Video Doorbell
Beitrag von: dominik am 04 Januar 2021, 12:38:07
Ich habe dazu einen neuen Thread aufgemacht:
https://forum.fhem.de/index.php/topic,117381.0.html

Bitte bei Diskussionen zum fhempy ring Modul den neuen Thread nutzen. Danke!
Titel: Antw:Ring Video Doorbell
Beitrag von: JanHH am 23 Juli 2022, 12:00:06
Wenn es auf dem Pi laufen soll, könnte man einen WLAN-Stick in den Pi stecken und diesen zum WLAN-Acesspoint machen.
Das hat nebenbei den Vorteil, Smart Home-Geräte (die öfters mal mit Sicherheitsproblemen behaftet sind) vom normalen (W)LAN zu isolieren.