Entwicklung Nuki-Integration

Der Projektstand

Funktionen

Der Dienst ermöglicht Folgendes:

  • Steuerung von Nuki-Smart-Locks: Verriegeln, Entriegeln
  • Anzeige bestimmter Informationen in Gladys (Batteriestand, Zustand des Schlosses)

Screenshot


Integration

Es gibt 2 mögliche Integrationen (wählen Sie eine, da die gleichzeitige Nutzung beider keinen großen Nutzen hat)

NukiWeb API-Schlüssel

Voraussetzung: Gladys muss jederzeit Internetzugriff haben

  1. Aktivieren und konfigurieren Sie Ihr Nuki Web-Konto [Nuki Web-Konfiguration]
    (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. Konfigurieren Sie den Nuki-Dienst in Gladys, indem Sie den API-Schlüssel hinzufügen und einen HTTP-Scan durchführen

MQTT

Voraussetzung: Gladys MQTT ist konfiguriert und funktionsfähig

  1. Konfigurieren Sie MQTT in der Nuki-App (verwenden Sie die lokale IP des MQTT, nicht den Domainnamen) Nuki-Konfiguration mit MQTT


  2. Gehen Sie direkt zur MQTT-Erkennung des Nuki-Dienstes in Gladys, um Ihre Geräte zu sehen

Roadmap

  • Dokumentation erstellen (obwohl diese nicht schlecht ist)
  • Trigger-Konzept integrieren (wer oder was hat das Schloss geöffnet, z. B.: Benutzer1 hat das Schloss geöffnet, das Schloss hat einen Auto-Lock durchgeführt …)
  • Schloss-Tastenbereich anpassen
  • Grafischen Teil anpassen (Zustände anzeigen)

Installation

Das Testbild nukidev ist hier.

Für weitere Informationen

RFTM :wink:

Aufruf an Tester und Community

Ich rufe diejenigen auf, die solche Geräte besitzen und in der Lage sind, Tests durchzuführen, mir ihr Feedback zu geben.

Ich besitze eine Nuki v3 (daher nicht verfügbar mit Matter)

Ich stehe für weitere Informationen zur Verfügung.

Danke für die Entwicklung @ProtZ, das sieht super aus :slight_smile:

Für die Dokumentation kannst du einen Pull Request in diesem Repo erstellen:

Die Dokumentation besteht aus Markdown-Dateien in diesem Ordner (für den englischen Artikel):

Und hier für den Artikel auf Französisch:

Für das Schreiben der Dokumentation empfehle ich dir, Screenshots auf Englisch und dann auf Französisch in Gladys zu machen, dann die Dokumentation auf Französisch zu schreiben und ChatGPT zu bitten, den Artikel zu übersetzen.

Für Info, ich habe das Thema in der Newsletter erwähnt, die morgen früh rausgeht :slight_smile:

Ich hoffe, wir haben Tester! Wenn wir bis nächste Woche niemanden haben, können wir trotzdem weitermachen, da du es ja von deiner Seite aus getestet hast.

Super, ich habe gerade den PR für die Dokumentation gemacht, aber ich weiß nicht, wie ich es testen soll :confused:

Ich glaube, es gibt ein kleines Problem mit deinem PR, er ändert mehr als 1300 Dateien :smiley:

Versuche, nochmal von master auszugehen und deine Dateien neu zu erstellen.

Um dann lokal zu testen, sind alle Anweisungen im README enthalten: GitHub - GladysAssistant/v4-website: Gladys Assistant website · GitHub

Entschuldigung, ich war ein Depp.
Hab es gerade sauber gemacht. Aber ohne etwas mehr zu graben, kann ich es nicht lokal testen:


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

Welche Node.js-Version verwendest du? Es muss Node >= 18 sein. Ich bin auf Node 22.

Pareil v22.14.0 :frowning:

Ich bin auf v22.18.0, danach weiß ich nicht, ob das viel ändert.

Hast du git clone gemacht, dann yarn und schließlich npm start?

Ich habe gerade einen Test mit einem leeren Repo durchgeführt, um sicherzustellen, dass alles in Ordnung ist, und alles funktioniert :thinking:

Ich reagiere etwas spät, aber ich habe eine Nuki-Serie (falls immer noch Testbedarf besteht…)

Immer noch auf der Suche nach Testern @StephaneB!

Okay. Aber ich habe nicht richtig verstanden, ob es in diesem Thread schon zum Testen bereit war oder ob man auf Änderungen warten musste, bevor man testen konnte…

@ProtZ kannst du uns den Docker-Image-Tag teilen, damit @StephaneB testen kann?

Der Link, den du in deinem ursprünglichen Post gepostet hast, ist ein privater Link.

Entschuldigung, ich hatte nicht gesehen, dass der Link privat ist:

docker pull ngeissel/gladys:nukidev

Danke @StephaneB, halte mich auf dem Laufenden :slight_smile:

Hallo @ProtZ,

Wie wäre es mit einer neuen Review per Videoanruf mit Bildschirmfreigabe, so wie beim letzten Mal?

Ich bin heute Nachmittag verfügbar, oder jeden Abend diese Woche, oder Freitag tagsüber.

Ich hätte gerne echte Tester, aber egal, wir können nicht ewig warten :slight_smile:

Hallo @pierre-gilles; das können wir natürlich organisieren, aber im Moment bin ich wirklich im Stress mit der Arbeit und den Kindern :confused:
Können wir uns per PN synchronisieren?

Ja, ich schicke dir eine PN!

Ich habe mir heute Zeit genommen, um diese neue Integration zu testen. Entschuldigung, dass ich vergessen habe, dass ich euch vorgeschlagen hatte, das zu tun…

Ich habe die folgende Situation zum Testen geschaffen: Zunächst die Erklärungen in diesem Beitrag nicht lesen, sondern sich nur auf das beschränken, was auf den Seiten der Integration steht. Und die Erklärungen in diesem Beitrag nur lesen, wenn nötig :wink:

Bisher habe ich die Web-Integration getestet. Ich versuche, die MQTT-Integration später am Tag zu testen…

Meine Vorschläge zur Verbesserung der Web-Integration (aber insgesamt funktioniert es sehr gut, großartig!!!):

  • Auf der Seite Integrationen>Nuki
    • Die Seite ‹ Geräte › zeigt eine interessante Erklärung an, wenn noch keine MQTT-Konfiguration vorhanden ist (soweit ich mich erinnere, ein Text, der erklärt, dass es zwei Möglichkeiten gibt, sich zu verbinden: entweder über MQTT oder über NukiWeb). Sobald jedoch ein MQTT konfiguriert ist, verschwindet diese Erklärung und man sieht die beiden Schaltflächen MQTT-Erkennung und Web-Erkennung. Ich denke, die Erklärung sollte sichtbar bleiben, solange keine Geräteerkennung durchgeführt wurde.
    • Die Seite ‹ Konfiguration › ist tatsächlich spezifisch für die ‹ Web ›-Version. Vielleicht sollte sie in ‹ Web-Konfiguration › umbenannt werden
    • Auf dieser Seite ‹ Konfiguration › sollte in Schritt 1 eine Präzisierung hinzugefügt werden: "Wenn Sie noch kein NukiWeb-Konto haben, erstellen Sie eines, indem Sie den Anweisungen von https://help.nuki.io/hc/fr/articles/360016485718-Activer-et-désactiver-un-compte-Nuki-Web folgen
    • Auf der Seite NukiWeb wird zunächst ein API-Schlüssel angezeigt, aber ich verstehe, dass dies nicht der Schlüssel ist, den du brauchst, und dass man etwas weiter auf der Seite scrollen muss, um ein API-Token zu generieren. Vielleicht könnte deine Konfigurationsseite dies in Schritt 3 präzisieren: « … (Achtung, es handelt sich nicht um den OAuth2-Schlüssel, sondern um ein speziell zu erstellendes Token) ». Und auf allen Seiten, auf denen du den Begriff API-Schlüssel verwendest, könntest du ihn vielleicht durch API-Token ersetzen?
    • Wenn das API-Token auf NukiWeb erstellt wird, können die zu vergebenden Berechtigungen aktiviert/deaktiviert werden. Brauchst du alle? Es wäre gut, die tatsächlich benötigten Berechtigungen anzugeben, um nicht unnötige Berechtigungen zu vergeben.
    • Wenn der API-Schlüssel in Gladys gespeichert wird, wird er mit Sternchen angezeigt, und die Schaltfläche « Konfiguration speichern » ist aktiv. Ich habe es nicht ausprobiert, aber wenn ich erneut auf diese Schaltfläche klicke, wird der zuvor eingegebene echte Schlüssel (z. B. ‹ qslkjhqdgiuyzeart ›) durch ‹ qsl**********art › überschrieben und es wird nicht mehr funktionieren? Ich schlage vor, die Schaltfläche zu deaktivieren, solange nichts Neues im API-Schlüssel-Feld eingegeben wird…
    • Nach der Eingabe eines gültigen API-Schlüssels könnte ein Text erscheinen, der dazu auffordert, zur Seite « Web-Erkennung » zu gehen
    • Auf der Seite Web-Erkennung steht « Automatische Erkennung… », aber ich habe nicht sofort verstanden, dass man trotzdem auf die Schaltfläche « Suchen » klicken muss
  • Im Dashboard ist die Hinzufügung des Schlosses mit dem Geräte-Widget sehr klar, super. Nur ein Detail: Ein Klick auf Verriegeln/Entriegeln dauert unterschiedlich lange, zwischen ‹ sofort › und mehreren Sekunden. Vielleicht könnte es eine Information geben, die dazu auffordert, zu warten, um versehentliche Klicks zu vermeiden?

Hmm, ich kann die MQTT-Funktionalität tatsächlich nicht testen, da ich ein Schloss 3.0 habe und MQTT nur im Schloss 3.0 Pro und ab Version 4.0 vorhanden ist :smiling_face_with_tear:

Sollte das vielleicht eine Präzisierung in der ursprünglichen Erklärung auf der Seite ‹ Geräte › und auf der Seite ‹ MQTT-Entdeckung › sein?

Danke für deinen Test @StephaneB mit sehr hilfreichen Anmerkungen!

Normalerweise sollte der Klick in Gladys sofort erfolgen, auch wenn die Aktion hinterher länger braucht, um an das verbundene Gerät übertragen zu werden. Ist das der Fall, wo du tatsächlich eine Blockade der Oberfläche siehst?