Menu Fermer

Ring – Intégrer la sonnette connectée à Jeedom

Ring

Si vous êtes l’heureux possesseur d’une sonnette connectée Ring, vous aimeriez peut être pouvoir remonter l’état de celle-ci sur votre application domotique Jeedom afin de pouvoir :

  • contrôler l’état de la batterie,
  • avoir la vidéo de la dernière détection de mouvement,
  • savoir si votre sonnette est toujours connecté sur le wifi.

Tout ceci est maintenant possible, mais demandera cependant un peu de manipulation.

Sommaire :

  1. Pré-Requis
  2. La configuration de votre compte Ring
  3. Installation des packages python
  4. Création du répertoire de stockage de la vidéo
  5. Création des informations virtuelles
  6. Installation des scripts python
  7. Génération du token d’authentification
  8. Lancement du service
  9. Création du design

1/ En pré-requis, il vous faut :

  • un Ring Doorbell (toutes les versions)
  • un abonnement à un plan de protection, nécessaire pour récupérer la vidéo
  • le plugin script
  • le plugin virtuel
  • une connexion SSH pour installer les packages python et déposer les scripts

2/ La configuration de votre compte Ring :

Sur votre compte Ring, il vous faut activer au minimum le plan de protection Basic à 30€/an pour un appareil.

Il vous faudra aussi activer l’authentification à double facteur, soit par email ou par sms.

Sur votre compte Ring, allez en haut à droite pour cliquer sur Compte puis Gérer le Compte.

compte-ring-1

Ensuite, cliquez sur Gérer dans le menu Vérifications en deux étapes.

Compte Ring 2 FA

3/ Installation des packages python

Pour que le package Ring Doorbell puisse fonctionner, commencer par installer python3.

On va donc se connecter en ssh sur le raspberry.

Une fois connecté, on tape la commande suivante :

sudo python3 -m pip install ring_doorbell

Ce qui nous donnera le résultat ci-dessous

Attention, les versions peuvent changer dans le temps, n’en tenez pas compte, ce qu’il faut retenir c’est le Successfully :

Python3 - Installation package

4/ Création du répertoire de stockage de la vidéo

Afin de stocker la vidéo qui sera accessible depuis Jeedom :

sudo mkdir /var/www/html/video

Il faut ensuite donner les droits à www-data pour que Jeedom puisse lire la vidéo :

sudo chown www-data:www-data /var/www/html/video

5/ Création des informations virtuelles

On va maintenant créer un nouvel équipement dans le plugin Virtuel.

virtuel - ajout equipement

Un nom doit lui être affecté. Dans cet l’exemple, je l’appellerai Ring.

virtuel - nom equipement

On se rend ensuite sur l’équipement créé, et dans l’onglet commandes.

virtuel - création info virtuel

Pour ajouter les commandes, cliquez à droite sur le bouton Ajouter une info virtuelle.

Configurez-les ensuite avec les noms :

  • Historique avec sous-type Autre
  • Service avec sous-type Binaire
  • Connexion avec sous-type Autre
  • Battery avec sous-type Numérique

6/ Installation des scripts python

En premier lieu, il faut télécharger le script ici ou depuis le serveur :

cd /tmp/
sudo wget https://domogo.fr/wp-content/uploads/2021/02/ring_daemon.zip

On va ensuite le dézipper et le positionner dans le bon répertoire :

unzip ring_daemon.zip
mv ring_daemon/ /var/opt/ring
cd /var/opt/ring

Il faut maintenant éditer le fichier principal ring_daemon.py pour y mettre vos paramètres :

sudo nano ring_daemon.py

On édite ensuite les paramètres ci-dessous :

"""
Global variables declaration
    working_path:   full path to the installation folder of this script
    cache_file:     full path to the authentication token file cache
    pid_file:       full path to the file that stores the deamon process ID
    log_file:       full path to the log file for debugging purpose
    video_repo:     full path to the repository folder where video from Ring.com are downloaded
    jeedom_api_url: URL of your Jeedom API
    jeedom_api_key: Key of your Jeedom API
    jeedom_cmd:     array of Jeedom commande Info ID used to update the associated Jeedom widget

"""
working_path = '/var/opt/ring'
cache_file = Path(working_path + "/ring_token.cache")
pid_file = '/var/run/ring_daemon.pid'
log_file = '/var/log/ring_daemon.log'
video_repo = '/var/www/html/video/'
jeedom_api_url = 'http://xxx.xxx.xxx.xxx/core/api/jeeApi.php'
jeedom_api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
jeedom_cmd = {
    'service_status' : 1353,
    'connection_status' : 4417,
    'battery_life' : 1352,
    'last_event' : 1354,
}

On installe maintenant les packages python3 :

sudo python3 -m pip install python-daemon
p2 - python daemon

Pour vérifier que tout est bon, tapez la commande python3 ring_daemon.py -h pour obtenir quelque chose de ce type :

/var/opt/ring $ python3 ring_daemon.py -h
usage: ring_daemon.py [-h] [-p PID_FILE] [-l LOG_FILE] [--auth]

Ring daemon

optional arguments:
  -h, --help            show this help message and exit
  -p PID_FILE, --pid-file PID_FILE
                        PID file, usually /var/run/ring_daemon.pid
  -l LOG_FILE, --log-file LOG_FILE
                        Log file, usually /var/log/ring_daemon.log
  --auth                Login interactively to Ring to generate authentication
                        token

Dans le fichier ring_daemon.service, vérifiez que le chemin pointe bien vers votre fichier :

[Service]
ExecStart=/var/opt/ring/ring_daemon.py

Si tout est correct, copiez le fichier vers le répertoire /etc/systemd/system :

sudo cp ring_daemon.service /etc/systemd/system

7/ Génération du token d’authentification

Il faut maintenant générer le token d’authentification qui sera sauvegardé dans le répertoire afin d’être réutilisé pour chaque vérification de l’état par le script.

Pour cela, on exécute la commande :

python3 ring_daemon.py --auth

Vous devrez alors entrer successivement :

  • votre identifiant
  • son mot de passe
  • la clé 2FA (reçu par SMS ou email selon votre configuration)

8/ Lancement du service

Pour cette dernière étape, il faut maintenant configurer le service pour que celui se lance automatiquement :

systemctl enable ring_daemon.service
systemctl start ring_daemon.service

Le service se lancera automatiquement à chaque redémarrage.

9/ Création du Design

Pour visualiser, il vous faut créer un widget ou design en reprendant tout ou une partie de ce code :

<video width="320" height="180" controls  poster="montheme/images/ring.png">
	<source src="/video/last_ding.mp4" type="video/mp4">   
	Your browser does not support the video tag or the file format of this video.
</video>

Par défaut, vous obtenez un widget de ce type :

widget Ring

N’hésitez à me laisser un commentaire si vous avez des difficultés à récupérer les informations de vos équipements Ring.

Nous espérons que ce tuto vous sera utile.

A bientôt, l’équipe DomoGo.

Sources de l’article :

https://community.jeedom.com/t/tutoriel-integration-ring-doorbell/22401

https://python-ring-doorbell.readthedocs.io/

https://ring.com/

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

Articles liés

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *