Nuki serrure intelligente
eedomus script : Nuki smartlock
Description
Nikya eedomus Script Nuki Smartlock est un plugin pour la box domotique eedomus, qui permet de piloter et connaitre l'état d'une serrure intelligent Nuki.
Ce plugin est composé d'un script PHP et d'une déclaration pour 3 périphériques :
- Commande d'ouverture/fermeture
- État de la serrure
- Indicateur de batterie faible
Son avantage principal est de mettre à jour l'état de la serrure, seulement si nécessaire, en utilisant la fonctionnalité callback de l'API Nuki. (au lieu de créer des polling côté eedomus)
Prérequis
Une serrure Nuki Smartlock et son bridge (Matériel ou logiciel)
Installation via store
Depuis le portail eedomus, cliquez sur
- Configuration
- Ajouter ou supprimer un périphérique
- Store eedomus
- puis sélectionner Nuki Smartlock
Des informations seront demandées pour la création du plugin. Puis noter les codeAPI des périphériques crés.
Installation manuelle
- Télécharger le projet sur GitHub : GitHub/Nikya/nuki_smartlock
- Uploader le fichier
dist/nukismartlock.php
sur la box (Doc eedomus script)
- Créer manuellement les 3 périphériques et noter leur codeAPI
Paramétrage
Informations à prendre en note, car à réutiliser ultérieurement.
- Discovery : Appeler l'URL suivante pour connaitre l'IP et le port local de votre Bridge
- URL : https://factory.nuki.io/discover/bridges.
- Résultat : Une IP et un port
- Get Token (auth) : S'authentifier sur le brige, avec l'IP et le port obtenu précédemment, en appelant l'URL suivante et en confirmant par un appui sur le bouton physique du bridge.
- URL : http://192.168.1.50:8080/auth
- Résutat : Un token
- Setup script : Configurer le script eedomus, avec les informations obtenues, en appelant la fonction setup (Voir ci-après)
- Register script : Configurer le script eedomus, avec les informations obtenues, en appelant la fonction register (Voir ci-après)
Les fonctions du script
Executer le script eedomus en précisant une function
.
- Format : https://[ipboxeedomus]/script/?exec=nukismartlock.php&function=
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=toto
Fonction setup
Configurer ce script.
- params
- function :
setup
- nukihost_port : IP et Port du bridge Nuki au format
ip:port
- token : Token d'identification
- Résultat
- (XML) Un listing des équipements trouvés sur le bridge ciblé (noter le Nuki ID)
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=setup&nukihost_port=192.168.1.50:8080&token=909090
Fonction register
Abonner la box eedomus en tant que Callback souhaitant être informé des changements d'état de la serrure.
- params
- function :
register
- eedomushost : IP de votre eedomus qu'appelera le bridge Nuki (Na pas mettre localhost !)
- nukiid : Id du Nuki (Voir fonction list)
- periphidstate : Code API eedomus du périphérique qui contiendra l'information ETAT de la serrure
- periphidbatterycritical : Code API eedomus du périphérique qui contiendra l'information Batterie faible de la serrure
- Résultat
- (XML) Une confirmation ou non du succès de la fonction
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=register&eedomushost=192.168.1.60&nukiid=111&periphidstate=222&periphidbatterycritical=333
Fonction list
Lister les équipements connus par le bridge Nuki ciblé
- params :
- Résultat
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=list
Fonction callback list
Lister les callback enregistrés par le brige Nuki.
- params :
- Résultat
- (XML) Listing des équipements
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=callback_list
Fonction callback remove
Supprimer un callback enregistré sur le Bridge Nuki.
(Utile pour pallier à l'éventuel erreur too many callbacks registered)
- params :
- function :
callback_remove
- id : Id du callback à supprimer (obtenue avec la fonction callback list)
- Résultat
- (XML) Listing des équipements
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=callback_remove&id=222
Fonction incomingcall
Fonction coeur de ce script, c'est cette fonction qu'appellera le bridge Nuki à chaque changement d'état d'une serrure.
Elle lis les informations reçues et met à jour les périphériques concernés avec les nouvelles valeurs.
Inutile de l'appeler manuellement, mais un appel permet de savoir si l'ensemble est correctement configuré et opérationnel.
- params :
- Résultat
- (XML) Résultat des valeurs lues
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=incomingcall
Valeurs possibles
Pour periph value batterycritical
- 0 : Batterie non faible
- 100 : Batterie faible
Pour periph value state
ID | Name
----|-----------------------
0 | uncalibrated
1 | locked
2 | unlocking
3 | unlocked
4 | locking
5 | unlatched
6 | unlocked (lock ‘n’ go)
7 | unlatching
254 | motor blocked
255 | undefined