- Plugin version : 1.3
- Origine : GitHub/Nikya/nuki_smartlock
- Nuki Bridge HTTP-API : 1.6 (API documentation)
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)
Une serrure Nuki Smartlock et son bridge (Matériel ou logiciel)
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. (A utiliser à l'étape register)
- 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 (A utiliser à l'étape register)
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)
Executer le script eedomus en précisant une function
.
- Format : https://[ip_box_eedomus]/script/?exec=nukismartlock.php&function=
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=toto
Configurer ce script.
- params
- function :
setup
- nukihost_port : IP et Port du bridge Nuki au format
ip:port
- token : Token d'identification
- function :
- 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
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)
- periph_id_state : codeAPI eedomus du périphérique qui contiendra l'information ETAT de la serrure
- periph_id_batterycritical : codeAPI eedomus du périphérique qui contiendra l'information Batterie faible de la serrure
- function :
- 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&periph_id_state=222&periph_id_batterycritical=333
Lister les équipements connus par le bridge Nuki ciblé
- params :
- function :
list
- function :
- Résultat
- (XML) Listing
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=list
Lister les callback enregistrés par le brige Nuki.
- params :
- function :
callback_list
- function :
- Résultat
- (XML) Listing des équipements
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=callback_list
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)
- function :
- Résultat
- (XML) Listing des équipements
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=callback_remove&id=222
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 :
- function :
incomingcall
- function :
- Résultat
- (XML) Résultat des valeurs lues
- Exemple : https://192.168.1.60/script/?exec=nukismartlock.php&function=incomingcall
- 0 : Batterie non faible
- 100 : Batterie faible
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 |