[Tutoriel] Integration Ring Doorbell

Cool, je vois que tout est rentré dans l’ordre pour vous deux !

Bonjour @chiorboli ,
tout d’abord merci pour ton travail, je n’aurais jamais fais cela tout seul !
j’ai un problème à l’exécution du script (point 6.1)
root@jeedom : /var/www/html/plugins/script/core/ressources # sudo python3 ring.py
File « ring.py », line 74
res = « repondu » if event[‹ answered ›] == True else « absent… »
^
IndentationError: expected an indented block

je ne vois vraiment pas il n’y a que 4 espaces devant le "res = "

j’ai besoin de vos lumières… merci beaucoup

@Coolwax77
J’ai eu le même type d’erreur, c’est parce qu’il faut soit ajouter un espace au début de la ligne, soit en supprimer un.
Pour la ligne 74, il faut en ajouter un en début de ligne (le res= de la ligne 74 doit être indenté d’un caractère par rapport à la ligne 73, donc au niveau du o de for event).
Une fois cette ligne corrigée, tu passeras à une autre erreur à une autre ligne, qu’il faudra corriger, et ainsi de suite.
De mémoire, j’ai dû en corriger 6 ou 7 (la dernière corrigée est la dernière, la 91, que j’ai dû indenter d’un niveau).

Je reçois un message du plugin script :
Erreur pour [Maison][Ring script][Etat] : Erreur dans l’exécution du terminal, la valeur retournée est : 1. Détails : Traceback (most recent call last): File « /var/www/html/plugins/script/core/ressources/ring.py », line 91, in main() File « /var/www/html/plugins/script/core/ressources/ring.py », line 51, in main ring.update_data() File « /usr/local/lib/python3.5/dist-packages/ring_doorbell/init.py », line 49, in update_data self.create_session() File « /usr/local/lib/python3.5/dist-packages/ring_doorbell/init.py », line 73, in create_session « device[metadata][language] »: « en », File « /usr/local/lib/python3.5/dist-packages/ring_doorbell/init.py », line 101, in query timeout=timeout, File « /usr/local/lib/python3.5/dist-packages/ring_doorbell/auth.py », line 89, in query req.raise_for_status() File « /usr/local/lib/python3.5/dist-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/session?api_version=9

Vous avez déjà eu ça ?

@Coolwax77:
Bon visiblement, il y a eut un petit pb d’indentation lors du transfert du fichier ring.py. il n’y a pas d’autre solution que de le reprendre a la main et de mettre le bon nombre d’espaces en debut de chaque ligne qui pose pb.

@jeewawa:
Pour le pb de Timeout, je ne sais pas, mais j’ai vu un comportement étrange tout de même : quand je regarde l’activité a partir du site ring.com (profil > Centre de control > Appareils autorisés), je vois une multitude d’accès pour un appareil de type Python/Android (c’est le script). Je ne comprends pas pourquoi vu que le token d’autorisation est mis en cache justement. Est ce lié a ton pb ? Si tu supprimes tous les appareils autorisés, est ce que le pb disparait côté Jeedom ?

@jeewawa et @chiorboli

merci a tout les deux, ok je viens de comprendre , ça marche !!!
il faut en effet jouer avec les espace n plus ou en moins et apres 3 - 4 corrections ça passe…
pour ma part login et mot de passe + code par sms tout est ok et a fonctionner du premier coup !!
encore merci pour le boulo et l’aide.

Même après avoir supprimé les appareils autorisés et tout relancé, j’ai toujours le message d’erreur.
Je ne vois pas d’où ça vient.

Bonjour, si ça sonne on a l’infos en directe sur jeedom ?

Salut, et merci pour ce tuto
moi j’ai une erreur lors de l’enregistrement du premier script:
Erreur dans l’exécution du terminal, la valeur retournée est : 2. Détails : Could not open input file: import
je pense que j’ai un soucis avec la création du fichier

@team18fr le script est lancé toutes les x mins…

@Nicolas_Vanderlinden es tu certain d’avoir tout bien installé et d’utiliser pyhton3 ?

Oui j’ai tapé cette commande
sudo python3 -m pip install ring_doorbell
Tout s’est installé.
Comment je peux savoir si j’utilise python3?
Merci

Et bien c’est tout con : python3 <nom_de_ton_script_python>

Merci pour ton travail,
Je suis totalement novice et j’ai honte de poser cette question…:frowning:
J’ai suivi et modifier ton script python et je bloque à ton paragraphe :
" Comme le ficher de cache pour l’authentification n’est pas encore créé, il faut lancer le script à la main (via votre connexion ssh). Il va alors vous demander votre login et password de votre compte Ring.com …"

comment lancer via ssh … et quelle commande …

je suis désolé … j’ai honte

Bonjour à tous,

J’ai une Jeedom Smart et une Ring Doorbel.
Je suivrait bien ce tuto, mais j’ai une question, toute bête.
Est-ce qu’on perds la garantie de la Smart ou l’accès au support Jeedom si on accède à la Jeedom Smart en ssh pour installer les packages, créer les répertoires ?

En gros, est-ce qu’on perds la garantie de la Smart ou l’accès au support Jeedom si on suit ce tuto ?

Bon … j’ai compris … en fait je chercher a comprendre pourquoi vous voulez passer par SSH sachant que mon JEEDOM est installer sur un PC via DEBIAN … du coup j’ai lancer le script en root via le terminal directement sur le PC.
j’ai bien rentrez nom d’utilisateur, mot de passe et code recu via SMS … parfait … apres c’est le drame.
Traceback (most recent call last):
File « /home/chris/Documents/ring.py », line 41, in main
auth.fetch_token(username, password)
File « /usr/local/lib/python3.7/dist-packages/ring_doorbell/auth.py », line 40, in fetch_token
headers=headers,
File « /usr/local/lib/python3.7/dist-packages/requests_oauthlib/oauth2_session.py », line 360, in fetch_token
self._client.parse_request_body_response(r.text, scope=self.scope)
File « /usr/local/lib/python3.7/dist-packages/oauthlib/oauth2/rfc6749/clients/base.py », line 421, in parse_request_body_response
self.token = parse_token_response(body, scope=scope)
File « /usr/local/lib/python3.7/dist-packages/oauthlib/oauth2/rfc6749/parameters.py », line 431, in parse_token_response
validate_token_parameters(params)
File « /usr/local/lib/python3.7/dist-packages/oauthlib/oauth2/rfc6749/parameters.py », line 441, in validate_token_parameters
raise MissingTokenError(description=« Missing access token parameter. »)
oauthlib.oauth2.rfc6749.errors.MissingTokenError: (missing_token) Missing access token parameter.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File « /home/chris/Documents/ring.py », line 91, in
main()
File « /home/chris/Documents/ring.py », line 43, in main
auth.fetch_token(username, password, otp_callback())
File « /usr/local/lib/python3.7/dist-packages/ring_doorbell/auth.py », line 44, in fetch_token
self.token_updater(token)
File « /home/chris/Documents/ring.py », line 19, in token_updated
cache_file.write_text(json.dumps(token))
File « /usr/lib/python3.7/pathlib.py », line 1218, in write_text
with self.open(mode=‹ w ›, encoding=encoding, errors=errors) as f:
File « /usr/lib/python3.7/pathlib.py », line 1186, in open
opener=self._opener)
File « /usr/lib/python3.7/pathlib.py », line 1039, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: ‹ /var/www/html/plugins/script/core/ressources/ring_token.cache ›

Puis je caresser l’espoir d’un retour de votre part ?

En vous remerciant

@Supermilk, désolé mais je ne sais pas répondre a cette question.

@echtelion31, en gros il te dit que le token n’as pas été trouvé. Donc est ce que le fichier de cache a été généré dans le répertoire ? Si oui ben ca sent mauvais, je vois pas pourquoi ca marcherait pas chez toi. Et sinon, vérifie les droits de l’utilisateur qui lance le script (est ce que tu as acces a tout, lecture, ecriture dans le répertoire, etc…) et le chemin du fichier cache (chemin complet, pas d’erreur…).

Bonjour,

alors ,installé, un peu galeré avec les .py et les espace a rajouter/remettre (suis une quiche en python … en sh aussi d ailleurs :stuck_out_tongue: ) , mais bon en allant doucement on y arrive
il m a bien demandé le login/pass , puis le 2FAcode ( reçu par mail a 6 chiffre ) , et il m affiche :
your ring account does not have an active subscription

oui, j ai pas encore souscrit , je voulais d abord voir si ça marchait

mon virtuel affiche :

historique
service
X
battery
0

la question est :
j ai pas les infos , car ça marche pas ? ou parce que j ai pas de plan actif chez ring ?
est ce qu il y a des gens qui n’ont pas la souscription ring et qui ont quand meme les infos ?

Visiblement il arrive a se connecter a ton compte et voir que tu n’as pas d’abonnement actif. J’ai l’impression que c’est plutot bon signe et que ca fonctionne non ?

le boulet, j avais oublié :

Les IDs des commandes du virtuel créé au point (5) (lignes 56,58,68,69,87)

donc forcement il ne pouvais remonter les infos au bon endroit :stuck_out_tongue:

mais entre temps , j ai souscrit à 1 an de ring .
et par contre il s est passé un truc bizarre, j ai eu une mise a jour ( jeedom) des plugins virtuel et scripts , une fois mis à jour le répertoire /var/www/html/plugins/script/core/ressources a eté vidé, c est normal ?
j ai donc du tout reinstaller et c est là que j ai vu que j avais oublié de renseigner les ID .

une fois tout refait le virtuel me remonte maintenant bien les infos .

Attention, le plugin script a changé, il ne faut plus mettre les scripts dans …/script/core/ressources MAIS DANS …/script/data ! Regarde le changelog du plugin c’est décrit.

2 « J'aime »