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 :
- Pré-Requis
- La configuration de votre compte Ring
- Installation des packages python
- Création du répertoire de stockage de la vidéo
- Création des informations virtuelles
- Installation des scripts python
- Génération du token d’authentification
- Lancement du service
- 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.
Ensuite, cliquez sur Gérer dans le menu Vérifications en deux étapes.
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 :
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.
Un nom doit lui être affecté. Dans cet l’exemple, je l’appellerai Ring.
On se rend ensuite sur l’équipement créé, et dans l’onglet commandes.
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
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 :
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