Développement intégration Nuki

Le projet à date

Features

Le service ajoute la possibilité de :

  • contrôler les serrures connectées de marque Nuki :verrouiller, déverouiller
  • remonter certaines informations dans Gladys (niveau de batterie, état de la serrure)

Screenshot


Intégration

Il y a 2 intégrations possibles (en choisir une car faire les 2 en même temps n’a pas vraiment d’intérêt)

Clé API NukiWeb

Prérequis : Gladys doit avoir accès à internet à tout moment

  1. Activer et configurer votre accompte Nuki Web [Configuration Nuki Web]
    (https://help.nuki.io/hc/fr/articles/360016485718-Activer-et-désactiver-un-compte-Nuki-Web#:~:text=Activez%20Nuki%20Web%20dans%20l,dans%20l’App%20de%20Nuki.)

  1. Configurer le service Nuki dans Gladys en y ajoutant la clé API puis en faisant un scan HTTP

MQTT

Prérequis : Le MQTT de Gladys est configuré et fonctionnel

  1. Configurer le mqtt dans l’application Nuki (utiliser l’IP local du mqtt, pas le nom de domaine) Configuration Nuki avec MQTT


  2. Aller directement dans la découverte MQTT du service Nuki dans Gladys pour y voir vos appareils

Roadmap

  • Faire la documentation (quoique celle-ci est pas trop mal)
  • Intégrer la notion de trigger (qui ou quoi a ouvert la serrure, par ex : User1 a ouvert la serrure, la serrure a procédé à un auto-lock …)
  • Adapter la partie scène au bouton de serrure
  • Adapter la partie graphique (afficher les états)

Installation

L’image nukidev de test est ici.

Pour plus d’informations

RFTM :wink:

Appel aux testeurs et à la communauté

J’appelle aux gens qui ont ce type d’appareil et qui sont en capacité de faire des tests, à me faire leurs retours.

Je possède une Nuki v3 (donc pas dispo avec Matter)

A votre dispo pour des informations complémentaires.

2 « J'aime »

Merci pour ce développement @ProtZ, ça a l’air top :slight_smile:

Pour la documentation, tu peux faire une PR sur ce repo :

La documentation, c’est des fichiers markdown dans ce dossier (pour l’article en anglais) :

Et ici pour l’article en français :

Pour écrire la documentation, je te conseille de faire tes screenshots en anglais puis en français dans Gladys, puis d’écrire la documentation en français, et de demander à ChatGPT de te traduire l’article.

Pour info, j’ai mentionné ce sujet dans la newsletter qui partira demain matin :slight_smile:

J’espère qu’on aura des testeurs ! Si on n’a personne d’ici la semaine prochaine, on pourra quand même avancer vu que tu as testé de ton côté.

1 « J'aime »

Top, je viens de faire la PR pour la doc, par contre je ne sais pas le tester :confused:

Je pense qu’il y a un petit souci sur ta PR, elle modifie plus de 1300 fichiers :smiley:

Essaie de repartir de master et de créer tes fichiers à nouveaux.

Pour tester ensuite en local, toutes les instructions sont dans le README : GitHub - GladysAssistant/v4-website: Gladys Assistant website

Désolé, j’ai fait le boulet.
Refait proprement à l’instant. Mais impossible de tester en local sans creuser un peu plus :


Error: Illegal return statement
  
  - dev.html.template.ejs:5 ./node_modules/html-webpack-plugin/lib/loader.js!./node_modules/@docusaurus/core/lib/webpack/templates/dev.html.template.ejs
    [v4-website]/[@docusaurus]/core/lib/webpack/templates/dev.html.template.ejs:5:1

Tu es en quelle version de Node.js ? Il faut utiliser Node >= 18. De mon côté je suis en Node 22

Pareil v22.14.0 :frowning:

Je suis en v22.18.0, après je sais pas si ça change grand chose.

Tu as bien fais git clone puis yarn et enfin npm start ?

Je viens de refaire le test à partir d’un repo vierge pour m’assurer que tout était bon, et tout marche :thinking:

Je réagis un peu tard, mais j’ai une série Nuki (si toujours besoin de tester…)

1 « J'aime »

Toujours preneur de testeurs @StephaneB !

1 « J'aime »

Ok. Mais je n’ai pas bien compris dans le fil de cette discussion si c’était prêt à tester ou si il fallait attendre des modifs avant de pouvoir tester…

2 « J'aime »

@ProtZ tu peux nous partager le tag de l’image Docker pour que @StephaneB puisse tester ?

Le lien que tu as posté dans ton post de base est un lien privé

Désolé, je n’avais pas vu que le lien était privé :

https://hub.docker.com/r/ngeissel/gladys/tags

docker pull ngeissel/gladys:nukidev

merci @StephaneB, tiens moi au courant :slight_smile:

1 « J'aime »

Salut @ProtZ,

Est-ce que ça te dirait de faire une nouvelle review en appel vidéo avec partage d’écran comme la dernière fois ?

Je suis dispo cet après-midi, ou tous les soirs de cette semaine, ou vendredi en journée.

J’aurais aimé des testeurs en réel, mais bon, tanpis, on ne va pas attendre éternellement :slight_smile:

Hello @pierre-gilles ; on peut organiser ça oui par contre en ce moment je suis vraiment charrette avec le taf et les gosses :confused:
On se peut se synchro par MP ?

1 « J'aime »

Yes je t’envoie un MP !

J’ai pris le temps de tester aujourd’hui cette nouvelle intégration. Désolé d’avoir zappé que je vous avais proposé de le faire…

Je me suis mis dans la situation suivante pour tester : A priori ne pas lire les explications de ce post, et me contenter de ce qui est écrit les pages de l’intégration. Et ne lire les explications de ce post que si nécessaire :wink:

J’ai testé pour l’instant l’intégration Web. J’essaie de tester l’intégration MQTT plus tard dans la journée…

Mes suggestions pour améliorer l’intégration Web (mais globalement ça marche très bien, bravo !!!) :

  • Dans la page intégrations>Nuki
    • La page ‹ appareils › affiche une explication intéressante quand on n’a pas encore de configuration MQTT (de mémoire, un texte qui explique qu’il y a deux façons de se connecter: soit en MQTT soit via NukiWeb). Mais dès qu’on a un MQTT configuré, cette explication n’apparait plus et on voit les deux boutons Découverte MQTT et Découverte Web. Je pense que l’explication devrait rester visible tant qu’on a pas fait de découverte d’appareil.
    • La page ‹ Configuration › est en fait spécifique à la version ‹ web ›. Donc peut-être la renommer ‹ Configuration Web ›
    • Dans cette page ‹ Configuration ›, ajouter une précision à l’étape 1: "Si vous n’avez pas encore de compte Nuki Web, créez-en un en suivant les explications de https://help.nuki.io/hc/fr/articles/360016485718-Activer-et-désactiver-un-compte-Nuki-Web
    • Sur la page NukiWeb, une clé API s’affiche en premier, mais je comprends que ce n’est pas la clé dont tu as besoin, et qu’il faut bien descendre un peu dans la page pour générer un jeton API. Peut-être que ta page configuraition pourrait préciser cela à l’étape 3 : « … (Attention, il ne s’agit pas de la clé OAuth2, mais bien d’un jeton à créer spécifiquement) ». Et dans toutes les pages où tu utilises le terme Clé API, peut-être le remplacer par Jeton d’API ?
    • Quand on crée le jeton API sur NukiWeb, on peut cocher/décocher les droits à donner. Tu as besoin de tous ? Ca serait bien d’indiquer les droits à cocher qui te sont vraiment nécessaires, pour ne pas donner des droits en fait inutiles.
    • Quand la clé API est enregistrée dans Gladys, elle s’affiche avec des astérisques, et le bouton « Enregistrer la configuration » est actif. Je n’ai pas fait l’essai, mais si je clique à nouveau sur ce bouton, ça va écraser la vraie clé saisie précédemment (par exemple ‹ qslkjhqdgiuyzeart ›) par ‹ qsl**********art › et ça ne marchera plus ? Je suggère de griser le bouton tant que rien de nouveau n’est saisi dans le champ Clé API…
    • Après la saisie d’une clé API valide, il pourrait y avoir un texte qui invite à aller sur la page « Découverte Web »
    • dans la page Découverte Web, le texte dit « Découverte automatique… » mais je n’ai pas compris tout de suite qu’il fallait quand même cliquer sur le bouton « Rechercher »
  • Dans le dashboard, l’ajout de la serrure avec le widget Appareil est très clair, top. Juste un détail : un clic sur verrouiller/déverrouiller met un temps variable pour s’effectuer, entre ‹ immédiat › et plusieurs secondes. Il pourrait peut-être y avoir une info qui invite à patienter, pour éviter des clics intempestifs ?
2 « J'aime »

Bon, ben je ne pourrai en fait pas tester le fonctionnement MQTT, car j’ai une serrure 3.0 et le MQTT n’est présent que sur la serrure 3.0 Pro et à partir de 4.0 :smiling_face_with_tear:

Est-ce que c’est peut-être une précision à apporter dans l’explication initiale sur la page ‹ Appareils › et dans la page ‹ Découverte MQTT › ?

2 « J'aime »

Merci pour ton test @StephaneB avec des remarques très pertinentes !

Normalement, dans Gladys, le clic doit être instantané, même si derrière l’action met plus de temps à être propagée à l’appareil connecté. C’est bien le cas où tu vois carrément un blocage de l’interface ?