Aller au contenu
jojo

QuickApps - Nuki

Recommended Posts

Introduction
    • Un QA par Serrure Nuki (choix délibéré, car si plusieurs serrures, elles seraient dans différentes pièces) 
    • Vous devez avoir un Nuki bridge, car tout passe par lui (qui peut servir plusieurs serrures) (=> Nuki v1 ou v2)
    • Merci à @Lazer, @jjacques68, @Did, @fredokl, …, pour leurs précieux conseils

 

Objectif
    • récupérer l'état d'ouverture/fermeture 
    • récupérer l'état des piles (de la serrure et du keypad si associé)
    • envoyer commande d'ouverture
    • envoyer commande de déverrouillage (et simple clic sur l'icône)
    • envoyer commande de verrouillage (et simple clic sur l'icône)
    • envoyer commande de lock’n’go (verrouillage temporisé)
    • envoyer commande de lock’n’go précédé d’une ouverture de porte

gvo0.png

Activation API
La totalité de l'API est disponible ici : https://developer.nuki.io/page/documents/1/

Pour commencer, nous allons avoir besoin d’activer le mode Développeur via l’app sur Mobile.

Cette manipulation peut être effectuée à l’installation du système :
- Vous tomberez sur une page de recherche des réseaux WIFI et sur la partie basse, cocher la case API HTTP.
OU
Si vous avez déjà installé votre Nuki, procéder comme suit :
- aller dans section gérer la Bridge (menu général de l'app -> Gérer mes appareils -> Bridge -> gérer la Bridge)
- mettre la Bridge en mode maintenance
- Une fois arrivé dans la section de gestion de la Bridge, pr   esser sur l'icône de Bridge puis activer le HTTP API. 

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 les IDs des NUKIs, 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 vos Nukis avec leur nukiID qu’on notera par la suite ID_NUKI
Voici un exemple de retour de cette URL/API :
    [
     {
       "deviceType": 0,
       "nukiId": 123456789,
       "name": "Entrée",
       "firmwareVersion": "1.14.1",
       "lastKnownState": {
              "mode": 2,
              "state": 3,
              "stateName": "unlocked",
              "batteryCritical": false,
              "batteryCharging": false,
              "batteryChargeState": 34,
              "keypadBatteryCritical": false,
              "timestamp": "2022-07-24T07:45:45+00:00"
       }
     },
     {
       "deviceType": 0,
       "nukiId": 123456780,
       "name": "Cuisine",
       "firmwareVersion": "1.14.1",
       "lastKnownState": {
              "mode": 2,
              "state": 1,
              "stateName": "locked",
              "batteryCritical": false,
              "batteryCharging": false,
              "batteryChargeState": 62,
              "timestamp": "2022-07-24T20:00:06+00:00"
       }
     }
    ]

 

Résumé sur les actions et les états disponibles
Pour l’état (State) 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 : lock’n’g (porte en cours d’ouverture)
    (! bien comprendre la différence entre déverrouillé et ouverture)
    254 : moteur bloqué
    255 : erreur inconnue

 

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

 

Variables du QA

A partir de la v5.0 du code, des variables sont générées automatiquement

pour pouvoir, par exemple, être facilement réutilisées dans GEA

 

Configuration du QA

Toute la configuration personnelle se fait dans le fichier "config".

Les informations suivantes doivent être complétées pour que le QA fonctionne.

    • ip = IP_NUKI - 192.168.1.xxx
    • port = PORT_NUKI - 8080
    • token = TOKEN_NUKI - abcdef
    • id = ID_NUKI - 123456789
    • refresh = par défaut 10s (si inférieur, il affiche une erreur-. C'est l'intervalle de temps auquel le QA va interroger la serrure pour connaître son état.
 

Icones
Ce QA est de type "Doorlock".

Chargez d'abord ces deux icônes pour le statut du Nuki si batterie ok :
khf6.png

8dsp.png

Ensuite ces deux ci pour batterie à remplacer :

4k66.png

6hpo.png

Chacun de ces sets de 2 icônes à UN id.

Voir ici comment le récupérer.

ID des icônes sous HC3 - La Home Center pour les nuls - Domotique-fibaro

Une voit récupérés, les introduire ici dans le fichier "config" (remplacer 0 par le vrai ID)

    icones = {
        batteryOK = 0,
        batteryKO = 0,
        roomOpen = "",
        roomClose = "",
            }

N.B. si vous laissez 0, le QA utilisera l'icône par défaut et ne la modifiera pas en fonction de l'état de la batterie.

si vous laissez "" pour les icônes des pièces, le QA utilisera l'icône par défaut de la pièce, et ne la modifiera pas en fonction de l'état de la serrure.

 

Le QA

 

Nuki_v5.0.fqa

si vous avez déjà la version >= 4.0 vous pouvez simplement remplacer le code par cette version du code (et supprimer toutes les variables) :

 

Nuki_v5.0_main.lua

Nuki_v5.0_config.lua

 

Historique des versions

-- v5.0 (12/02/2024) : fichier config au lieu de variables
-- v4.2 (31/01/2024) : bug changement de statut
-- v4.1 (31/01/2024) : icone de la pièce
-- v4.0 (21/01/2024) : optimisation du code (écrire que si changement)
--                     QA de type DoorLock
-- v3.0 (19/12/2022) : colorisation des labels
-- v2.0 (14/11/2022)
-- v1.0 (26/09/2022) : initial version

 

Idées d'utilisation
    • Verrouiller toutes les portes au coucher
    • Verrouiller toutes les portes lorsque l'alarme générale est branchée
    • Envoyer une notification quand il faut changer les piles d'une serrure

 

Limitations
Si le json ne sait pas retourner toutes les valeurs du tableau (car par exemple la serrure a perdu sa connexion avec la Bridge), les informations retournées peuvent ne pas être fiables.
Exemple 1 :
Si la serrure "Entrée" n'est plus connectée à la bridge, le json retourné ressemblera à ceci :
     {
       "nukiId": 123456789,
       "name": "Entrée",
     },
     {
       "nukiId": 123456780,
       "name": "Cuisine",
       "firmwareVersion": "1.7.3",
       "lastKnownState": {
         "state": 1,
         "stateName": "locked",
         "batteryCritical": false,
         "timestamp": "2019-01-12T14:47:54+00:00"
       }
     }
    ]
Exemple 2 :
Si la serrure "Cuisine" n'est plus connectée à la bridge, le json retourné ressemblera à ceci :
     {
       "nukiId": 123456789,
       "name": "Entrée",
       "lastKnownState": {
         "state": 1,
         "stateName": "locked",
         "batteryCritical": false,
         "timestamp": "2019-01-12T13:04:25+00:00"
       }
     },
     {
       "nukiId": 123456780,
       "name": "Cuisine",
       "firmwareVersion": "1.7.3",
     }
    ]
 

 

 

 

 

 

Modifié par jojo
nouvelle version
  • Like 9
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut Jojo, 

Je découvre ton QA, j'ai essayé la mep par contre pour moi pas de bridge car version 3.0 avec bridge intégrer.

J'ai bien l'accès Nukiweb, j'ai mise en place un token.

Pour avoir l'ID par contre la requete web ne me renvoie rien. Est ce que la méthode est différente au vu de la version ? ton avis.

Sur l'appli je trouve un ID pour ma serrure, mais en renseignant le QA avec mon token, mon ID issu de l'appli => erreur connection refusé. 

Il me semble que tu as un nuki V2, est ce que quelqu'un à testé sur V3 ? si oui votre retour svp.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

Depuis la dernièr mise à jours du HC3 la quickapp du site fibaro fonctionne à nouveau.

J'ai modifié un peu la quickapp. J'ai essayé de faire le menage avec les truc qui pour moi sont inutile comme créé un code, ajouté un user, etc... J'ai laissé pour moi le stricte minimum. J'ai aussi rajouté une partie pour gerer la serrure via un interrupteur fibaro (ligne 84 à 92) :

 

-- ajout perso pour controle couleur bouton
            if (ST == "locked"then 
              fibaro.call({[1] = 72, [2] = 73, }, 'turnOff')
              self:debug("*************** Serrure Locked : rouge ****************"
            elseif (ST == "unlocked"then 
              fibaro.call({[1] = 72, [2] = 73, }, 'turnOn')
              self:debug("**************** Serrure Locked : vert ****************")
            end
-- fin ajout perso
 
C'est pas top car le refresh se fait toutes les 15 secondes donc il y a une petite attente avant d'avoir le changement d'etat. J'aurai aimé avoir un retour instantané donc si quelqu'un sait amélioré ca serait sympa.
De plus j'ai pas reussi à coriger les etats qui ne changent jamais :
 
image.thumb.png.26900ac8b11513e8605d388c2fbfc997.png
 
Après c'est pas trop grave du moment que j'arrive à ouvrir ou fermé :)
 
 
 

NUKI (1).fqa

Modifié par esolma

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 20 heures, Fred.domotique a dit :

Il me semble que tu as un nuki V2,

j'ai même un v1, mais comme tout passe par le bridge, v1 ou v2 c'est le même.

Maintenant pour la v3 avec bridge intégré, aucune idée. J'imagine qu'il doit y avoir beaucoup de différences.

(Si tu m'offre une v3, je te développe le QA qui va bien :98:)

Partager ce message


Lien à poster
Partager sur d’autres sites

 Salut @jojo,

Si tu préfères mes icônes pour illustrer ton QA.

 

large.590643462_SerrureNukiblancheunlocked.png.a44cfc954e586a4a27ce9d68de82dbda.png   large.2026800870_SerrureNukiblanchelocked.png.a90c53a9eaf83eb778680927752d55ad.png   

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 Ne quittez pas, je vais regardé ce que j'ai en rayon. :P

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 1 heure, jojo a dit :

Comme j'ai le corp noir

Tu as bien profité de tes vacances à ce que je vois :60:

:98:

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut 

 

@jojo Merci pour ta proposition "" (Si tu m'offre une v3, je te développe le QA qui va bien :98:)"" 

Malheureusement la solution d' @esolma fonctionne, Merci ! Maintenant je vais un peu éplucher pour voir ce que tu as modifié cela me permettra d'apprendre un peu plus de cette HC3..

 

@esolma Attention dans le QA partagé tu as ton apitoken nuki dans la variable, il vaut mieux le supprimer pour le partage. 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

 @jojo,

Voici la version noire:

 

large.872779718_SerrureNukinoireunlocked.png.cafbe9f9e817e495075d45b23b657479.png   large.964532449_SerrureNukinoirelocked.png.9f276569fc644cd47d478153e4f8409e.png

 

La clé a un peu bougé à droite et j'ai modifié aussi les blanches du message au dessus.

Et pour ceux qui ont des scénarios en rapport (j'ai mis la blanche parce noir sur noir, c'est moyen):

 

large.1384715380_ScneNuki.png.29244ceaba16c5300145a2988f241434.png

 

  • Like 1
  • Thanks 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello guys,

 

thank you very much for you awsome work. I'm having troubles to make it work with HC3 lite version 5.120.10 and Nuki 3.0 pro. I tried @esolma version, i have input the api key, the console in Fibaro shows no error but the commands are not executed (it's not unlocking or locking). Please do you have any idea? I might be doing something wrong.

 

Thank you.

Partager ce message


Lien à poster
Partager sur d’autres sites

from my point of view, the Lite version of the Fibaro box does not allow to import/execute LUA code

Partager ce message


Lien à poster
Partager sur d’autres sites

HC3 Lite can import any QuickApp containing LUA code, it's not limited as it was on fist generation HC Lite.

 

But, there are some limitations, about the total number of QuickApp you can import.

Furthermore, the CPU is limited and can't execute some advanced LUA code. We have already discovered that the Roborock QuickApp can't run on HC Lite, because of the cryptographic LUA library.

I don't know for this Nuki QuickApp, but you may have some similar issues. You need some debug messages in the console window to be able to understand the problem.

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 30/09/2022 à 14:59, Fred.domotique a dit :

Salut 

 

@jojo Merci pour ta proposition "" (Si tu m'offre une v3, je te développe le QA qui va bien :98:)"" 

Malheureusement la solution d' @esolma fonctionne, Merci ! Maintenant je vais un peu éplucher pour voir ce que tu as modifié cela me permettra d'apprendre un peu plus de cette HC3..

 

@esolma Attention dans le QA partagé tu as ton apitoken nuki dans la variable, il vaut mieux le supprimer pour le partage. 

 

Salut merci j'en ai generé un autre :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

J'ai un peu nettoyer le QA encore un peu. J'ai mis le % de batterie à la place du message OK et corriger le message de connexion tout en bas.

Par contre je n'arrive toujours pas à regler ce parametre pour que l'icone et l'etat de la serrure soit modifier dans la HC3 :

 

self:updateProperty("secured"1)
self:updateProperty("secured", 0)

 

J'ai essayé un tas de truc mais rien à faire.

 

Vous auriez une idée ?

NUKI.fqa

Partager ce message


Lien à poster
Partager sur d’autres sites

su ton QA est toujours un binary sensor, tu ne peux afficher que 2 statuts, donc 2 icônes

self:updateProperty("value", true)
 
Maintenant, si tu re-crées un QA de type Multilevel switch; tu pourra afficher 10 icônes différentes
    self:updateProperty("value", value)    pi value va de 0 à 99
 
Tient du coup tu viens de me donner une idée.

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai essayé avec :

 

self:updateProperty("secured"true)
self:updateProperty("secured"false)

 

Mais toujours pas de changement...

 

image.thumb.png.160d64669a9381f403986452d5e6c87f.png

 

Si on regarde bien il y a le statut en jaune recuperer via l'api nuki qui dit lock. Mais par contre ni l'icone ni l'etat en dessous de NUKI ou celui avec le bouton bleu ne sont correcte...

 

Partager ce message


Lien à poster
Partager sur d’autres sites

notmal, tu dois itolser

Le 11/10/2022 à 23:07, jojo a dit :

Si ton QA est toujours un binary sensor, tu ne peux afficher que 2 statuts, donc 2 icônes

self:updateProperty("value", true)

et PAS

Il y a 22 heures, esolma a dit :
elf:updateProperty("secured"true)
self:updateProperty("secured"false)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci ça marche ! Mais ca va à l'encontre de la logique de programmation... j'en ai fait y'a longtemps mais quand je vois "value" pour moi c'est un parametre à changer. Dans toutes les docs de dev quand y'a ce genre de mot y'a écrit juste en dessous "à remplacer par votre valeur/chiffres/etc"....

 

Mais bon ca marche.

 

Donc voilà la dernière version

NUKI.fqa

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai mis à jour le premier topic avec une nouvelle versio,

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à tous, j'ai une question... mais pourquoi je ne vois pas les boutons avec les mots "LOCKED" et "UNLOCKED" mais foi "OFF" et "ON". Merci

image.thumb.png.4c5fb27838026232f20c1332ce2a9643.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Locked & unlocked sont plus bas dans ta copie d'écran ...

Les boutons ON/OFF et le slider viennent automatiquement avec ce type de QA

Partager ce message


Lien à poster
Partager sur d’autres sites

nouvelle version

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 19/12/2022 à 10:37, jojo a dit :

nouvelle version

Bonjour,

Merci beaucoup pour votre excellent travail sur l'application Nuki Quick App.
Dans votre dernière version, l'application Quick App est malheureusement sélectionnée comme type « Switch » et non comme « Door lock ». Est-il possible de changer cela d'une manière ou d'une autre ? Ce serait mieux si le choix n'était pas marche/arrêt mais verrouillage/déverrouillage.
J'ai aussi maintenant un volet de fenêtre comme icône. Une serrure de porte serait mieux ;-)

 

Merci beaucoup.

 

Salutations
 

Partager ce message


Lien à poster
Partager sur d’autres sites

×