Ring Video Doorbell

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

Vorheriges Thema - Nächstes Thema

budy

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

JF Mennedy

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...

darkblue-ac

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

GreenFHEMfan

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
Rasp 3B+,4 / CUL /  Duofernstick / SIGNALduino (nanocul CC1101 optiboot) / mqtt

budy

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

budy

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

GreenFHEMfan

#321
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
Rasp 3B+,4 / CUL /  Duofernstick / SIGNALduino (nanocul CC1101 optiboot) / mqtt

darkblue-ac

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

GreenFHEMfan

#323
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?
Rasp 3B+,4 / CUL /  Duofernstick / SIGNALduino (nanocul CC1101 optiboot) / mqtt

pflock_y

Moin,
Hast du es so installiert wie hier:
https://github.com/budachst/ring-fhem
Beschrieben?

vg
pflock_y

—————
kurz da mobil

GreenFHEMfan

#325
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
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
Rasp 3B+,4 / CUL /  Duofernstick / SIGNALduino (nanocul CC1101 optiboot) / mqtt

JF Mennedy

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


GreenFHEMfan

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
Rasp 3B+,4 / CUL /  Duofernstick / SIGNALduino (nanocul CC1101 optiboot) / mqtt

GreenFHEMfan

#328
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.
Rasp 3B+,4 / CUL /  Duofernstick / SIGNALduino (nanocul CC1101 optiboot) / mqtt

pflock_y

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