Tuto Intégration Nuki
#1
Bonjour tous les passionnés de Lifedomus  Eek-1e6fb ,

Je vous propose ce tuto pour intégrer la serrure connectée Nuki que vous retrouverez sur notre site :

http://homesweetshop.eu/produit/pack-ser...ombo-nuki/

Code promo de -5% jusqu'à fin février 2018 avec le code : nukild

Il s'agit du bundle Serrure Nuki et son bridge afin de pouvoir le piloter à distance et d'avoir accès à son API : https://nuki.io/fr/api/ (Bridge http-API)


Le but étant de récupérer son état d'ouverture/fermeture et l'état des piles + envoyer les différentes commandes disponibles ouverture, déverrouillage et verrouillage.

1. ACTIVATION API


Pour commencer, nous allons avoir besoin d’activer le mode Développeur via l’app sur Mobile.
Cette manipulation est à effectuer à l’installation du système. Si vous avez déjà installé votre Nuki, il faudra remettre l’ensemble à zéro, reset usine.
Vous tomberez sur une page de recherche des réseaux WIFI et sur la partie basse, cocher la case API HTTP.

Vous obtiendrez l’adresse IP du bridge, le port (par défaut le 8080) et surtout le token (jeton) à noter précieusement pour la suite de ce tuto.
Une fois ces éléments enregistrés terminer l’installation de la Nuki.
Pour la suite, on notera les éléments suivant :

IP du bridge = IP_NUKI
Port du bridge (par défaut le 8080) = PORT_NUKI
Token = TOKEN_NUKI

Il reste encore à récupérer l’ID de la NUKI, pour cela ouvrir une page d’un navigateur internet.


Puis entrez l’url suivante : http://IP_NUKI:PORT_NUKI/list?token=TOKEN_NUKI

Vous devriez recevoir en retour l’état de votre Nuki avec son nukiID qu’on notera par la suite ID_NUKI

2. Rappel sur les actions et les états disponibles.


Pour l’état de la Nuki, nous obtenons une valeur numérique :
0 : non calibré (à faire à l’installation pour que la Nuki sache se positionner)
1 : verrouillé
2 : déverrouillage en cours
3 : déverrouillé
4 : verrouillage en cours
5 : porte ouverte
6 : lock’n’go (verrouillage temporisé)
7 : porte en cours d’ouverture
(bien comprendre la différence entre déverrouillé et ouverture)

Pour les actions possibles :
1 : déverrouillage
2 : verrouillage
3 : ouverture porte
4 : lock’n’go (verrouillage temporisé)
5 : lock’n’go précédé d’une ouverture de porte

3. Création du connecteur Universel http



Lancer votre Config Studio puis dans les connecteurs du pack Connectivité Avancée, ajouter un connecteur Universel HTTP.

Entrez les paramètres suivant :

Label : Nuki API
IP ou nom de domaine : IP_NUKI:PORT_NUKI
Persistance… : Vrai
Délai : 10

Puis sortez des connecteurs pour créer un équipement Universel Générique :

Label : Nuki
Connecteur : Nuki API

Puis dans Variables, créez ces variables :

status_nuki : Double
batterie_nuki : String
retour_nuki : String

Puis dans la rubrique Commandes, on va créer plusieurs commandes :

Update


Label : Update
Type : ASCII
Commande : /lockState?nukiId=ID_NUKI&token=TOKEN_NUKI
Parseur JS de la commande :
Code :
var retour_nuki = trame;

   var status_nuki = retour_nuki.indexOf('"state"');      
if (status_nuki!=-1) {                                                      
      var cherche_nuki = retour_nuki.substr(status_nuki);                                
      if (status_nuki!=-1) {                                                    
          status_nuki = cherche_nuki.indexOf(',');                                  
          if (status_nuki!=-1) {
               cherche_nuki = cherche_nuki.substring(8,status);                          
               var status_nuki = cherche_nuki;                                        
          }
      }
  }
ldprint(status_nuki);

var batterie_nuki = retour_nuki.indexOf('"batteryCritical"');      
if (batterie_nuki!=-1) {                                                      
      var cherche2_nuki = retour_nuki.substr(batterie);                                
      if (batterie_nuki!=-1) {                                                    
          batterie_nuki = cherche2_nuki.indexOf(',');                                  
          if (batterie_nuki!=-1) {
               cherche2_nuki = cherche2_nuki.substring(19,batterie);                          
               var batterie_nuki = cherche2_nuki;                                        
          }
      }
  }
ldprint(batterie_nuki);
ldprint(retour_nuki);

Verrouillage


Label : Verrouillage
Type : ASCII
Commande : /lockAction?nukiId=ID_NUKI&action=2&token=TOKEN_NUKI
 
Déverrouillage

Label : Déverrouillage
Type : ASCII
Commande : /lockAction?nukiId=ID_NUKI&action=1&token=TOKEN_NUKI
 
Ouverture Porte

Label : Ouverture Porte
Type : ASCII
Commande : /lockAction?nukiId=ID_NUKI&action=3&token=TOKEN_NUKI
 
Lock ‘n’ go

Label : Lock ‘n’ go
Type : ASCII
Commande : /lockAction?nukiId=ID_NUKI&action4&token=TOKEN_NUKI
 
Lock ‘n’ go avec ouverture

Label : Lock ‘n’ go avec ouverture
Type : ASCII
Commande : /lockAction?nukiId=ID_NUKI&action4&token=TOKEN_NUKI

4.  Création Equipement Ecoute Universelle


Celui-ci permettra d’indiquer à Lifedomus qu’il y a un changement d’état de la Nuki.
Vérifier que vous avez créé le connecteur Ecoute Universelle HTTP du Pack Connectivité.
Créer un équipement Ecoute universelle :

Label : Ecoute Nuki

Connecteur : Ecoute universelle http
Variables : trame (type String)

Il va falloir encoder l’url d’envoi dans la nuki :

La trame à envoyer est de type : 

http://IP_LIFEDOMUS:8080/UniversalListen?trame=Nuki

Mettez-la en forme avec votre adresse IP local de votre Lifedomus, comme par exemple : 

http://192.168.178.200:8080/UniversalListen?trame=Nuki

Ouvrez une page internet et entrer l’url suivante :
https://www.urlencoder.org/

Copiez-Collez l’url mis en forme au-dessus, vous devriez obtenir quelque chose dans ce style :


http%3A%2F%2F192.168.178.200%3A8080%2FUniversalListen%3Ftrame%3DNuki

On va définir que cette chaîne s’appellera : URL_ENC

Ouvrer une nouvelle page internet et entrez ce qui suit :

http://IP_NUKI:PORT_NUKI/callback/add?url=URL_ENC&token=TOKEN_NUKI

Voilà chaque fois que la nuki changera de statut, elle enverra une trame sur le connecteur universelle de la Lifedomus.

5. Automate de mise à jour du Statut


Nous allons créer un automate qui permet de mettre à jour les statuts de la Nuki dans Lifedomus.
Le schéma est simple : chaque fois que je reçois une trame de la Nuki, j’envoie l’ordre de mise à jour des statuts :

Créer un automate s’appelant : MAJ Statut Nuki

Déclencheur : A chaque fois que ‘Equipement Ecoute Nuki’, trame = Nuki
Automate : 
     - Délai 5s (permettant d’éviter une saturation entre les trames à ajuster selon vos conditions)

     - Action ‘Equipement Nuki’ , Update

A ce point, nous pouvons envoyer des ordres avec une action directe de l’équipement NUKI et nous avons le retour d’état chiffré (voir tableau ci-dessus) via la variable status

6. Intégration dans Design Studio

On peut créer un widget painter avec un retour d’état comme l’exemple suivant : 

   

Et en action :

- Sur appuie : Nuki > Déverrouillage
- Sur appuie long : Nuki > Verrouillage
- Du bas vers le haut : Nuki > Ouverture Porte
- Du haut vers le bas : Nuki > Lock ‘n’ go

Vous pouvez aussi récupérer l’état de la batterie :

   

A ce jour, nous estimons que c'est la serrure connectée la plus polyvalente, efficace et fiable.

Bonne intégration  Cool-1614

Jonathan - Home Sweet Dom
http://www.homesweetdom.lu
Boutique en ligne avec identification des produits testés compatibles Lifedomus
http://www.homesweetshop.eu
Likes Received: 32 in 16 posts
Likes Given: 23
Répondre




Utilisateur(s) parcourant ce sujet : 1 visiteur(s)