L’objectif de Nuki Hub est de disposer d’un moyen efficace d’intégrer les appareils Nuki dans une plateforme domotique locale.
Le logiciel Nuki Hub fonctionne sur un module ESP32 et sert de pont entre les appareils Nuki et une plateforme domotique.
Il communique avec un Nuki Lock et/ou un Opener via Bluetooth (BLE) et utilise MQTT pour s'intégrer à d'autres systèmes.
Il expose l'état du verrouillage (et bien plus encore) via MQTT et permet d'exécuter des commandes telles que le verrouillage et le déverrouillage ainsi que de modifier la configuration de Nuki Lock/Opener via MQTT.
Nuki Hub ne s'intègre pas à l'application mobile Nuki et ne peut pas s'enregistrer en tant que pont dans l'application mobile officielle de Nuki.
N'hésitez pas à nous rejoindre sur Discord : https://discord.gg/9nPq85bP4p
Appareils ESP32 pris en charge :
Appareils ESP32 non pris en charge :
Appareils Nuki pris en charge :
Non testé mais probablement pris en charge :
Périphériques Ethernet pris en charge :
Comme alternative au Wi-Fi (qui est disponible sur tout ESP32 pris en charge), les modules ESP32 suivants avec Ethernet filaire intégré sont pris en charge :
En principe, tous les appareils ESP32 (et variantes) avec port Ethernet intégré sont pris en charge, mais peuvent nécessiter une configuration supplémentaire à l'aide de l'option « Configuration LAN personnalisée ». Voir la section « Connexion via Ethernet » pour plus d'informations.
Si WIFI6 est absolument requis : ESP32-C6
Si PoE est requis : L'un des appareils mentionnés ci-dessus avec PoE ou tout autre appareil ESP en combinaison avec un module Ethernet SPI (W5500) et un répartiteur PoE vers Ethernet et USB type B/C.
Si vous souhaitez des performances maximales et avez l'intention d'exécuter un ou plusieurs des éléments suivants :
Un ESP32-S3 avec 2 Mo de PSRAM ou plus (recherchez un ESP32-S3 avec la désignation N>=4 et R>=2 comme un ESP32-S3 N16R8)
En général, lors de l'achat d'un nouvel appareil, la taille et quelques dollars de plus ou de moins ne sont pas un problème : un ESP32-S3 avec 2 Mo de PSRAM ou plus.
L'ESP32-S3 est un processeur double cœur doté de nombreux GPIO, de la possibilité d'agrandir la RAM à l'aide de la PSRAM, de la possibilité de connecter des modules Ethernet via SPI et éventuellement d'alimenter l'appareil avec un répartiteur PoE. Les seules fonctions manquantes de l'ESP32-S3 par rapport aux autres appareils ESP sont la possibilité d'utiliser certains modules Ethernet uniquement pris en charge par l'ESP32 d'origine et la possibilité de se connecter via WIFI6 (C6).
Fonctionnalité | Centre Nuki | Pont Nuki |
---|---|---|
API de pont | x | |
Télécommande Smart Lock | x | x |
Intégration de la maison intelligente via Matter | x | |
Intégration Apple HomeKit via Matter | x | |
API MQTT | x | x (uniquement pour les modèles SL 3, 4 et 4 Pro) |
Prise en charge du réseau local filaire | x | |
Alimentation par Ethernet (PoE) | x (si pris en charge par le module LAN/ESP) | |
Prise en charge du Wi-Fi | x | x (uniquement pour les modèles SL 3 et 4 Pro) |
Intégration de plateforme domotique | x | x |
Prise en charge du cloud | x (en option via la solution smarthome) | x |
Fonctionnement sans cloud | x | x (depuis le firmware 3.8.2) |
Intégration de l'application officielle Nuki | x | |
Nuki Smartlocks tous les modèles | x | x |
Ouvre-porte Nuki | x | x |
Clavier Nuki (1.0 et 2.0) | x | x |
Cryptage MQTT | x | |
Contrôle d'accès précis de l'API MQTT | x | |
Export des actions de verrouillage via l'API MQTT | x | |
Contrôle via GPIO | x | |
Mode hybride pour les serrures connectées WiFI et Thread | x |
Si vous n'avez pas encore commandé votre produit Nuki, vous pouvez me soutenir en utilisant mon code de parrainage lors de votre commande :
REF2BJHFVHZKK
Cela vous fera également bénéficier d'une réduction de 10% sur votre commande.
Ce projet est gratuit pour tout le monde. Cependant si vous avez envie de faire un don, vous pouvez m'offrir un café sur ko-fi.com :
Flashez le firmware sur un ESP32. Le moyen le plus simple d'installer est d'utiliser le programme d'installation Web à l'aide d'un navigateur compatible tel que Chrome/Opera/Edge :
https://technyon.github.io/nuki_hub/
REMARQUE : Webflash n'est pas disponible pour l'ESP32-Solo1
Vous pouvez également télécharger la dernière version pour votre modèle ESP32 depuis https://github.com/technyon/nuki_hub/releases
Décompressez l'archive zip et lisez le fichier how-to-flash.txt inclus pour obtenir les instructions d'installation de « Espressif Flash Download Tools » ou de « esptool ».
Allumez l'ESP32 et un nouveau point d'accès Wi-Fi nommé "NukiHub" devrait apparaître.
Le mot de passe du point d'accès est "NukiHubESP32".
Connectez un appareil client à ce point d'accès et, dans un navigateur, accédez à « http://192.168.4.1 ».
Utilisez l'interface Web pour connecter l'ESP à votre réseau Wi-Fi préféré.
Après avoir configuré le Wi-Fi, l'ESP devrait se connecter automatiquement à votre réseau.
Pour configurer la connexion au courtier MQTT, connectez d'abord votre appareil client au même réseau Wi-Fi auquel l'ESP32 est connecté.
Dans un navigateur, accédez à l'adresse IP attribuée à l'ESP32 via DHCP (souvent trouvée dans l'interface Web de votre routeur Internet).
Cliquez ensuite sur « Modifier » sous « Configuration MQTT » et entrez l'adresse et le port (généralement 1883) de votre courtier MQTT ainsi qu'un nom d'utilisateur et un mot de passe si votre courtier MQTT le demande.
Le micrologiciel prend en charge le cryptage SSL pour MQTT, mais la plupart des gens, notamment les utilisateurs domestiques, ne l'utilisent pas.
Dans ce cas, laissez tous les champs commençant par « MQTT SSL » vides. Sinon, consultez la section « MQTT Encryption » de ce README.
Assurez-vous que « l'appairage Bluetooth » est activé pour l'appareil Nuki en activant ce paramètre dans l'application officielle Nuki dans « Paramètres » > « Fonctionnalités et configuration » > « Bouton et LED ». Après avoir activé le réglage, appuyez pendant quelques secondes sur le bouton de l'appareil Nuki.
L'appairage doit être automatique lorsque l'ESP32 est allumé.
Une fois le couplage réussi, l'interface Web doit afficher « Paired : Yes ».
Les nœuds MQTT tels que l'état du verrouillage et le niveau de la batterie devraient désormais refléter les valeurs signalées par le verrou.
Remarque : il est possible d’utiliser le Nuki Hub avec un Nuki Bridge. Ceci n'est pas recommandé (sauf si vous utilisez le mode hybride) et entraînera une décharge excessive de la batterie et peut entraîner l'absence de mises à jour pour l'un ou l'autre des appareils. Activez « Enregistrer en tant qu'application » avant le couplage pour permettre cela. Sinon, le Bridge sera désenregistré lors du couplage du Nuki Hub.
Le mode hybride vous permet d'utiliser l'implémentation officielle de Nuki MQTT sur un Nuki Lock 3.0 Pro, Nuki Lock 4.0 ou Nuki Lock 4.0 Pro en conjonction avec Nuki Hub.
Voir mode hybride pour plus d'informations.
Les appareils ESP32 disposent d'une quantité limitée de RAM gratuite disponible.
Sur la version 9.01 du Nuki Hub avec uniquement un Nuki Lock connecté, la quantité libre attendue de RAM/Heap disponible est d'environ :
Cette quantité de RAM libre peut être réduite (temporairement) par certaines actions (telles que la modification de la configuration de l'appareil Nuki) ou de manière continue en activant les éléments suivants :
La RAM/Heap actuellement disponible se trouve sur la page d’informations du configurateur Web du Nuki Hub.
Lorsque l'ESP32 manque de RAM disponible, cet appareil peut planter ou un comportement inattendu peut se produire.
Nuki Hub permet l'utilisation de la PSRAM intégrée sur les binaires standards chaque fois qu'elle est disponible.
La PSRAM a généralement une taille de 2, 4 ou 8 Mo et agrandit ainsi considérablement les 320 Ko de RAM interne disponibles.
Il est fondamentalement impossible de manquer de RAM lorsque la PSRAM est disponible. Vous pouvez vérifier sur la page d'information du configurateur Web si la PSRAM est disponible.
Notez qu'il existe deux versions de Nuki Hub pour l'ESP32-S3 disponibles.
Un pour les appareils sans PSRAM SPI ou Quad et un pour les appareils avec PSRAM Octal SPI.
Si votre appareil ESP32-S3 dispose de PSRAM mais qu'il n'est pas détecté, veuillez flasher l'autre binaire S3.
Dans un navigateur, accédez à l'adresse IP attribuée à l'ESP32.
L'option de menu « Importer/Exporter Configuration » permet d'importer et d'exporter les paramètres du NukiHub au format JSON.
Créez une sauvegarde (partielle) des paramètres actuels du NukiHub en sélectionnant l'un des éléments suivants :
Les deux options ci-dessus ne sauvegarderont pas les données de couplage, vous devrez donc coupler manuellement les appareils Nuki lors de l'importation de cette exportation sur une réinitialisation d'usine ou un nouvel appareil.
Pour modifier les paramètres Nuki Lock / Opender, définissez le sujet configuration/action
sur une valeur formatée JSON avec l'un des paramètres suivants. Plusieurs paramètres peuvent être modifiés en même temps. Voir Nuki Smart Lock API Basic Config, Nuki Smart Lock API Advanced Config, Nuki Opender API Basic Config et Nuki Opender API Config Advanced pour plus d'informations sur les paramètres disponibles.
La modification des paramètres doit d'abord activer dans le portail de configuration. Vérifiez les paramètres que vous souhaitez pouvoir modifier sous "Nuki Lock / Opender Config Control" dans "Configuration du niveau d'accès" et enregistrez la configuration.
Paramètre | Usage | Valeurs possibles | Exemple |
---|---|---|---|
nom | Le nom du verrou intelligent. | Chaîne alphanumérique, longueur maximale 32 caractères | { "name": "Frontdoor" } |
latitude | La latitude de la géopposition de verrouille intelligente. | Flotter | { "latitude": "48.858093" } |
longitude | La longitude de la géopposition de verrouillage intelligente | Flotter | { "longitude": "2.294694" } |
automatique | Que la porte soit ou non déverrouillée en faisant fonctionner manuellement une poignée de porte de l'extérieur. | 1 = activé, 0 = handicapé | { "autoUnlatch": "1" } |
jumelage | Si l'activation du mode d'apparition via le bouton doit être activée ou non. | 1 = activé, 0 = handicapé | { "pairingEnabled": "0" } |
boutonable | Si le bouton doit être activé ou non. | 1 = activé, 0 = handicapé | { "buttonEnabled": "1" } |
ledenabled | Que la LED clignotante soit ou non autorisée à signaler une porte déverrouillée. | 1 = activé, 0 = handicapé | { "ledEnabled": "1" } |
ledbrightness | Le niveau de luminosité LED | 0 = off,…, 5 = max | { "ledBrightness": "2" } |
TimezoneOffset | Le décalage du fuseau horaire (UTC) en quelques minutes | Entier entre 0 et 60 | { "timeZoneOffset": "0" } |
dstmode | Le mode d'heure d'été. | 0 = handicapé, 1 = européen | { "dstMode": "0" } |
Fobaction1 | L'action souhaitée, si un Nuki FOB est pressé une fois. | "No Action", "Unlock", "Lock", "Lock n Go", "Intelligent" | { "fobAction1": "Lock n Go" } |
fobaction2 | L'action souhaitée, si un Nuki FOB est pressé deux fois. | "No Action", "Unlock", "Lock", "Lock n Go", "Intelligent" | { "fobAction2": "Intelligent" } |
Fobaction3 | L'action souhaitée, si un Nuki FOB est pressé trois fois. | "No Action", "Unlock", "Lock", "Lock n Go", "Intelligent" | { "fobAction3": "Unlock" } |
singlelock | Si une seule serrure ou verrouillage double doit être effectuée | 0 = double serrure, 1 = verrouillage unique | { "singleLock": "0" } |
publicité | Le mode publicitaire souhaité. | "Automatique", "normal", "lent", "lent le plus" | { "advertisingMode": "Normal" } |
fuseau horaire | Le fuseau horaire actuel ou "aucun" si les fuseaux horaires ne sont pas pris en charge | "Aucun" ou l'un des fuseaux horaires des fuseaux horaires Nuki | { "timeZone": "Europe/Berlin" } |
Déverrouillage de DispositionOffsetdegrees | Décalage qui modifie la position déverrouillée en degrés. | Entier entre -90 et 180 | { "unlockedPositionOffsetDegrees": "-90" } |
LockedPositionOffsetdegrees | Décalage qui modifie la position verrouillée en degrés. | Entier entre -180 et 90 | { "lockedPositionOffsetDegrees": "80" } |
SinglelockEdPositionOffsetdegrees | Décalage qui modifie la position verrouillée unique en degrés. | Entier entre -180 et 180 | { "singleLockedPositionOffsetDegrees": "120" } |
Déverrouiller les dautres | Le décalage qui modifie la position où la transition du déverrouillage à verrouillé se produit en degrés. | Entier entre -180 et 180 | { "unlockedToLockedTransitionOffsetDegrees": "180" } |
lockngomeout | Timeout pour Lock 'n' Go en quelques secondes | Entier entre 5 et 60 ans | { "lockNgoTimeout": "60" } |
singlebuttonpressaction | L'action souhaitée, si le bouton est enfoncé une fois. | "No Action", "Intelligent", "Unlock", "Lock", "Unfatch", "Lock n Go", "Show Status" | { "singleButtonPressAction": "Lock n Go" } |
Double-ButtonPressAction | L'action souhaitée, si le bouton est enfoncé deux fois. | "No Action", "Intelligent", "Unlock", "Lock", "Unfatch", "Lock n Go", "Show Status" | { "doubleButtonPressAction": "Show Status" } |
détachement | Wheter Le côté intérieur du cylindre utilisé est détaché du côté extérieur. | 0 = non détaché, 1 = détaché | { "detachedCylinder": "1" } |
batterie | Le type de batteries présentes dans la serrure intelligente. | "Alcali", "accumulateurs", "lithium" | { "batteryType": "Accumulators" } |
AutomaticbatteryTypedetection | Si la détection automatique du type de batterie est activée. | 1 = activé, 0 = handicapé | { "automaticBatteryTypeDetection": "Lock n Go" } |
se dérouler | Durée en secondes pour maintenir le verrou en position non déposée. | Entier entre 1 et 30 | { "unlatchDuration": "3" } |
AutoLockTimeout | Quelques secondes jusqu'à ce que le verrou intelligent se rembourse après avoir été déverrouillé. | Entier entre 30 et 1800 | { "autoLockTimeOut": "60" } |
AutounlockDisabled | Si le déverrouillage automatique doit être désactivé en général. | 1 = Auto Unlock Disabled, 0 = Auto Unlock activé | { "autoUnLockDisabled": "1" } |
cauchemodeen compatible | Si le cauchemode est activé. | 1 = activé, 0 = handicapé | { "nightModeEnabled": "1" } |
NightModeStarttime | Heure de début pour NightMode si activé. | Temps au format "HH: MM" | { "nightModeStartTime": "22:00" } |
NightmodeEndTime | Heure de fin pour NightMode si activé. | Temps au format "HH: MM" | { "nightModeEndTime": "07:00" } |
cauchemodeAutolockagedabled | Si le verrouillage automatique doit être activé pendant le cauchemode. | 1 = activé, 0 = handicapé | { "nightModeAutoLockEnabled": "1" } |
NightModeAutounlockDisabled | Si le déverrouillage automatique doit être désactivé pendant le cauchemode. | 1 = Auto Unlock Disabled, 0 = Auto Unlock activé | { "nightModeAutoUnlockDisabled": "1" } |
cauchemodeimmediatelockonstart | La question de savoir si la porte doit être immédiatement verrouillée sur le cauchemode commence. | 1 = activé, 0 = handicapé | { "nightModeImmediateLockOnStart": "1" } |
AutoLocking. | Si le verrouillage automatique est activé. | 1 = activé, 0 = handicapé | { "autoLockEnabled": "1" } |
immédiatement | Si le verrouillage automatique doit être effectué immédiatement après la fermeture de la porte. | 1 = activé, 0 = handicapé | { "immediateAutoLockEnabled": "1" } |
AutoupDateAnabled | Si les mises à jour automatiques du micrologiciel doivent être activées. | 1 = activé, 0 = handicapé | { "autoUpdateEnabled": "1" } |
rebootnuki | Redémarrez immédiatement l'appareil Nuki | 1 = redémarrer Nuki | { "rebootNuki": "1" } |
Paramètre | Usage | Valeurs possibles | Exemple |
---|---|---|---|
nom | Le nom de l'ouvreur. | Chaîne alphanumérique, longueur maximale 32 caractères | { "name": "Frontdoor" } |
latitude | La latitude de la géopposition des ouvre-premières. | Flotter | { "latitude": "48.858093" } |
longitude | La longitude de la géopposition des ouvre-premières | Flotter | { "longitude": "2.294694" } |
jumelage | Si l'activation du mode d'apparition via le bouton doit être activée ou non. | 1 = activé, 0 = handicapé | { "pairingEnabled": "0" } |
boutonable | Si le bouton doit être activé ou non. | 1 = activé, 0 = handicapé | { "buttonEnabled": "1" } |
ledflashenabled | Que la LED clignotante soit ou non activée pour signaler CM ou RTO. | 1 = activé, 0 = handicapé | { "ledFlashEnabled": "1" } |
TimezoneOffset | Le décalage du fuseau horaire (UTC) en quelques minutes | Entier entre 0 et 60 | { "timeZoneOffset": "0" } |
dstmode | Le mode d'heure d'été. | 0 = handicapé, 1 = européen | { "dstMode": "0" } |
Fobaction1 | L'action souhaitée, si un Nuki FOB est pressé une fois. | "No Action", "Toggle RTO", "Activer RTO", "Deagtivate RTO", "Open", "Ring" | { "fobAction1": "Toggle RTO" } |
fobaction2 | L'action souhaitée, si un Nuki FOB est pressé deux fois. | "No Action", "Toggle RTO", "Activer RTO", "Deagtivate RTO", "Open", "Ring" | { "fobAction2": "Open" } |
Fobaction3 | L'action souhaitée, si un Nuki FOB est pressé trois fois. | "No Action", "Toggle RTO", "Activer RTO", "Deagtivate RTO", "Open", "Ring" | { "fobAction3": "Ring" } |
modèle d'opération | Le mode de fonctionnement souhaité | "Generic Door Overner", "Analogne Intercom", "Digital Intercom", "Siedle", "TCS", "BTICINO", "Siedle hts", "Str", "Ritto", "Fermax", "Comelit", " Urmet Bibus "," Urmet 2Voice "," golmar "," sks "," rechange " | { "operatingMode": "TCS" } |
publicité | Le mode publicitaire souhaité. | "Automatique", "normal", "lent", "lent le plus" | { "advertisingMode": "Normal" } |
fuseau horaire | Le fuseau horaire actuel ou "aucun" si les fuseaux horaires ne sont pas pris en charge | "Aucun" ou l'un des fuseaux horaires des fuseaux horaires Nuki | { "timeZone": "Europe/Berlin" } |
intercomide | ID de base de données de l'interphone connecté. | Entier | { "intercomID": "1" } |
busmodeswitch | Méthode pour basculer entre les données et le mode analogique | 0 = Aucun, 1 = circuit vshort | { "busModeSwitch": "0" } |
court-circuit | Durée du court-circuit pour la commutation du mode de bus dans MS. | Entier | { "shortCircuitDuration": "250" } |
ElectricsTrikeDelay | Retard dans la SEP de l'activation de la grève électrique en cas d'actionnement de grève électrique par RTO | Entier entre 0 et 30000 | { "electricStrikeDelay": "2080" } |
RandomElectricsTrikeDelay | REMARD ALÉMABLE (3-7S) Afin de simuler une personne à l'intérieur de la frappe électrique. | 1 = activé, 0 = handicapé | { "randomElectricStrikeDelay": "1" } |
ElectricsTrikeduration | Durée de la SEP de l'actionnement de la grève électrique. . | Entier entre 1000 et 30000 | { "electricStrikeDuration": "5000" } |
Disabletoafterring | Si vous devez désactiver le RTO après l'anneau. | 1 = Désactiver RTO après anneau, 0 = Ne désactivez pas RTO après anneau | { "disableRtoAfterRing": "0" } |
rtotimeout | Après cette période en quelques minutes, RTO est désactivé automatiquement | Entier entre 5 et 60 ans | { "rtoTimeout": "60" } |
Sconction de porte | Que la sonnette est supprimée lorsque l'anneau, le CM et / ou le RTO sont actifs | "Off", "cm", "rto", "cm & rto", "ring", "cm & ring", "rto & ring", "cm & rto & ring" | { "doorbellSuppression": "CM & Ring" } |
DoorbellsuppressionDuration | Durée dans la SEP de la suppression de la sonnette. | Entier entre 500 et 10000 | { "doorbellSuppressionDuration": "2000" } |
sonore | Le sons de l'anneau | "No Sound", "Sound 1", "Sound 2", "Sound 3" | { "soundRing": "No Sound" } |
ondulant | Le son ouvert. | "No Sound", "Sound 1", "Sound 2", "Sound 3" | { "soundOpen": "Sound 1" } |
son | Le son RTO. | "No Sound", "Sound 1", "Sound 2", "Sound 3" | { "soundRto": "Sound 2" } |
son | Le son CM. | "No Sound", "Sound 1", "Sound 2", "Sound 3" | { "soundCm": "Sound 3" } |
confirmation sonore | Confirmation sonore | 0 = pas de son, 1 = son | { "soundConfirmation": "1" } |
sonore | Le niveau sonore pour l'ouvreur | Entier entre 0 et 255 | { "soundLevel": "200" } |
singlebuttonpressaction | L'action souhaitée, si le bouton est enfoncé une fois. | "No Action", "Toggle RTO", "Activer RTO", "Deagtivate RTO", "Toggle CM", "Activer CM", "Deactiver CM", "Open" | { "singleButtonPressAction": "Open" } |
Double-ButtonPressAction | L'action souhaitée, si le bouton est enfoncé deux fois. | "No Action", "Toggle RTO", "Activer RTO", "Deagtivate RTO", "Toggle CM", "Activer CM", "Deactiver CM", "Open" | { "doubleButtonPressAction": "No Action" } |
batterie | Le type de batteries présentes dans la serrure intelligente. | "Alcali", "accumulateurs", "lithium" | { "batteryType": "Accumulators" } |
AutomaticbatteryTypedetection | Si la détection automatique du type de batterie est activée. | 1 = activé, 0 = handicapé | { "automaticBatteryTypeDetection": "1" } |
rebootnuki | Redémarrez immédiatement l'appareil Nuki | 1 = redémarrer Nuki | { "rebootNuki": "1" } |
Exemple d'utilisation pour modifier plusieurs paramètres à la fois:
{ "buttonEnabled": "1", "lockngoTimeout": "60", "automaticBatteryTypeDetection": "1" }
{ "fobAction1": "Unlock", "fobAction2": "Intelligent", "nightModeImmediateLockOnStart": "1" }
Le résultat de la dernière action de changement de configuration sera publié sur la rubrique MQTT configuration/commandResult
en tant que données JSON.
Les données JSON incluront un nœud appelé "Général" et un nœud pour chaque paramètre que Nuki Hub a détecté dans l'action.
Les valeurs possibles pour le nœud "général" sont "NovalidPinset", "invalidjson", "invalidconfig", "succès" et "nochange".
Les valeurs possibles pour le nœud par paramètre sont "inchangées", "novalueset", "invalidvalue", "valetoolong", "accédé", "succès", "échoué", "timeout", "travail", "notpaired", "erreur "et" indéfini "
Exemple:
{"advertisingMode":"success","general":"success"}
Si la découverte de l'assistant à domicile est activée (voir la section Discovery Assistant Home Assistant de cette lecture) Nuki Hub créera des entités pour presque tous les paramètres ci-dessus.
Après l'installation initiale du micrologiciel Nuki Hub via une connexion série, d'autres mises à jour peuvent être déployées via une mise à jour OTA à partir d'un navigateur.
Dans le portail de configuration, sélectionnez "Mise à jour du micrologiciel" dans la page principale.
Le moyen le plus simple de mettre à niveau Nuki Hub, si Nuki Hub est connecté à Internet, est de sélectionner "Mettre à jour vers la dernière version".
Cela téléchargera le dernier Hub Nuki Hub et Nuki Hub Updater et améliorera automatiquement les deux applications.
Nuki Hub redémarrera 3 fois au cours de ce processus, qui prendra environ 5 minutes.
Si vous avez activé "Autoriser la mise à jour à l'aide de MQTT", vous pouvez également utiliser le Home Assistant Updater ou écrire "1" sur le sujet nukihub/maintanance/update
pour démarrer le processus de mise à jour.
Vous pouvez également sélectionner un fichier binaire dans votre système de fichiers pour mettre à jour Nuki Hub ou le Updator Nuki Hub manuellement
Vous ne pouvez mettre à jour que Nuki Hub à partir du Nuki Hub Updater et mettre à jour le Updater uniquement à partir de Nuki Hub
Vous pouvez redémarrer de Nuki Hub au Updater et vice versa en sélectionnant l'option de redémarrage dans la page "Firware Update"
Lorsque vous êtes sur la bonne application, vous pouvez télécharger le nouveau binaire en cliquant sur "Browse" et sélectionnez le nouveau fichier "Nuki_Hub [Board] .Bin" ou "Nuki_Hub_upDater [Board] .Bin" Fichier et sélectionnez "Télécharger le fichier".
Après environ une minute, le nouveau firmware doit être installé après lequel l'ESP redémarre automatiquement au binaire mis à jour.
La sélection du mauvais binaire mènera à une mise à jour infructueuse
Remarque pour la mise à niveau des utilisateurs à partir de Nuki Hub 8.35 ou inférieur:
La mise à jour de la version 9.00 nécessite une modification du tableau de partition de l'ESP32.
Veuillez suivre les instructions pour la première fois une installation une fois lors de la mise à jour de Nuki Hub 9.00 à partir d'une version antérieure.
Vos paramètres ne seront pas affectés lors de la mise à jour en utilisant les instructions ci-dessus (ne sélectionnez pas le périphérique d'effacement lors de la mise à jour à l'aide de WebFlash).
La communication via MQTT peut être cryptée SSL.
Pour activer le cryptage SSL, fournissez les informations nécessaires dans la page de configuration MQTT.
Les configurations suivantes sont prises en charge:
CA, CERT et KEY sont vides -> Pas de cryptage
CA est rempli mais le certificat et la clé sont vides -> MQTT crypté
CA, CERT et KEY sont remplis -> Crypted MQTT avec Client Vaildation
Exemple de création de certificat pour votre serveur MQTT:
# make a ca key
openssl genpkey -algorithm RSA -out ca.key
# make a CA cert
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/OU=YourUnit/CN=YourCAName"
# make a server key
openssl genpkey -algorithm RSA -out server.key
# Make a sign request, MAKE SURE THE CN MATCHES YOUR MQTT SERVERNAME
openssl req -new -key server.key -out server.csr -subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/OU=YourUnit/CN=homeserver.local"
# sign it
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 3650
Ce logiciel prend en charge MQTT Discovery pour l'intégration de Nuki Hub à Home Assistant.
Pour activer la découverte automatique, activez la case à cocher sur la page "Configuration MQTT".
Une fois activé, le verrouillage et / ou l'ouverture Nuki et les entités associées doivent apparaître automatiquement dans vos appareils MQTT assistants à domicile.
La cartographie suivante entre les services d'assistant à domicile et les commandes Nuki est configurée lors de l'activation de la découverte automatique:
Smartlock | Ouverter (par défaut) | Ouvreur (alternative) | |
---|---|---|---|
verrouillage | Verrouillage | Désactiver l'anneau à ouvrir | Désactiver le mode continu |
verrouillage | Ouvrir | Activer l'anneau d'ouvrir | Activer le mode continu |
verrouillage | Ouvrir | Action de frappe électrique | Action de frappe électrique |
Remarque: MQTT Discovery utilise des messages MQTT conservés pour stocker les configurations de périphériques. Afin d'éviter les configurations orphelines sur votre courtier, veuillez d'abord désactiver la découverte automatique si vous ne souhaitez plus utiliser ce logiciel. Les messages conservés sont automatiquement effacés lors de la non-apparition et lors du changement / désactivation de la rubrique Autodiscobevery dans la page de configuration MQTT.
Remarque2: L'assistant à domicile peut être configuré manuellement à l'aide de l'intégration de verrouillage MQTT, mais cela n'est pas recommandé
Si un clavier est connecté au verrou, les codes de clavier peuvent être ajoutés, mis à jour et supprimés. Cela doit d'abord activer dans le portail de configuration. Vérifiez "Ajouter, modifier et supprimer les codes de clavier" sous "Configuration du niveau d'accès" et enregistrer la configuration.
Les informations sur les codes de clavier actuels sont publiées sous forme de données JSON sur le sujet "[Lock / Opender] / Keypad / JSON".
Cela doit être activé séparément en vérifiant "Publier des informations sur les codes de clavier" sous "Configuration du niveau d'accès" et en enregistrant la configuration. Pour des raisons de sécurité, le code lui-même n'est pas publié, à moins que cela ne soit explicitement activé dans les paramètres Nuki Hub. Par défaut, un maximum de 10 entrées sont publiées.
Pour modifier les paramètres de clavier Nuki Lock / Opender, définissez la rubrique [lock/opener]/keypad/actionJson
sur une valeur formatée JSON contenant les nœuds suivants.
Nœud | Supprimer | Ajouter | Mise à jour | Vérifier | Usage | Valeurs possibles |
---|---|---|---|---|---|---|
action | Requis | Requis | Requis | Requis | L'action à exécuter | "supprimer", "ajouter", "mise à jour", "vérifier" |
coderid | Requis | Non utilisé | Requis | Requis | L'ID de code du code existant à supprimer ou à mettre à jour | Entier |
code | Non utilisé | Requis | Facultatif | Requis | Le code pour créer ou mettre à jour | Entier à 6 chiffres sans zéro, ne peut pas commencer par "12" |
activé | Non utilisé | Non utilisé | Facultatif | Non utilisé | Activer ou désactiver le code, toujours activé sur ajouter | 1 = activé, 0 = handicapé |
nom | Non utilisé | Requis | Facultatif | Non utilisé | Le nom du code pour créer ou mettre à jour | String, Max 20 Chars |
timidé | Non utilisé | Facultatif | Facultatif | Non utilisé | Si cette autorisation est limitée à l'accès uniquement à certains moments, il faut activé = 1 | 1 = activé, 0 = handicapé |
autorisé à partir de | Non utilisé | Facultatif | Facultatif | Non utilisé | L'horodatage de démarrage à partir duquel l'accès doit être autorisé (nécessite activé = 1 et timelimited = 1) | "Yyyy-mm-dd hh: mm: ss" |
autorisé | Non utilisé | Facultatif | Facultatif | Non utilisé | L'horodatage final jusqu'à ce que l'accès soit autorisé (nécessite activé = 1 et timelimited = 1) | "Yyyy-mm-dd hh: mm: ss" |
Selonweekdays autorisés | Non utilisé | Facultatif | Facultatif | Non utilisé | En semaine sur laquelle l'accès doit être autorisé (nécessite activé = 1 et timelimited = 1) | Array of Days: "Mon", "mar", "Wed", "Thu", "Fri" "Sat", "Sun" |
Autorisé de l'heure | Non utilisé | Facultatif | Facultatif | Non utilisé | L'heure de début par jour à partir de laquelle l'accès doit être autorisé (nécessite une activité = 1 et timelimited = 1) | "HH: MM" |
autorisé | Non utilisé | Facultatif | Facultatif | Non utilisé | L'heure de fin par jour jusqu'à ce que l'accès soit autorisé (nécessite activé = 1 et timelimited = 1) | "HH: MM" |
Exemples :
{ "action": "delete", "codeId": "1234" }
{ "action": "add", "code": "589472", "name": "Test", "timeLimited": "1", "allowedFrom": "2024-04-12 10:00:00", "allowedUntil": "2034-04-12 10:00:00", "allowedWeekdays": [ "wed", "thu", "fri" ], "allowedFromTime": "08:00", "allowedUntilTime": "16:00" }
{ "action": "update", "codeId": "1234", "enabled": "1", "name": "Test", "timeLimited": "1", "allowedFrom": "2024-04-12 10:00:00", "allowedUntil": "2034-04-12 10:00:00", "allowedWeekdays": [ "mon", "tue", "sat", "sun" ], "allowedFromTime": "08:00", "allowedUntilTime": "16:00" }
Le résultat de la dernière action de changement de clavier sera publié sur la rubrique [lock/opener]/configuration/commandResultJson
MQTT.
Les valeurs possibles sont "NovalidPinSet", "KeyPadControldisabled", "KeypAdNotAvailable", "KeypadDisabled", "invalidConfig", "invalidjson", "noActionSet", "invalidCodeSet", "noxistcodeIdSet", "nonameset", "novalidcodeset", "nococodeSet" , "invalidallowedfrom", "invalidallowetuntil", "invalidallowedfromtime", "invalidallowetultiletime", "Succès", "échoué", "temporisation", "travail", "notpaired", "erreur" et "indéfini".
Si un clavier est connecté au verrou, les codes de clavier peuvent être ajoutés, mis à jour et supprimés. Cela doit d'abord activer dans le portail de configuration. Vérifiez "Ajouter, modifier et supprimer les codes de clavier" sous "Configuration du niveau d'accès" et enregistrer la configuration.
Des informations sur les codes sont publiées sous "KeyPad / Code_X", x à partir de 0 le nombre de codes configurés. Cela doit être activé séparément en vérifiant "Publier des informations sur les codes de clavier" sous "Configuration du niveau d'accès" et en enregistrant la configuration. Par défaut, un maximum de 10 entrées sont publiées.
Pour des raisons de sécurité, le code lui-même n'est pas publié, à moins que cela ne soit explicitement activé dans les paramètres Nuki Hub. Pour modifier les codes de clavier, une structure de commande est configurée sous le clavier / commande:
Pour modifier les codes de clavier, les quatre premiers nœuds de paramètres doivent être définis en fonction de la commande:
** Remarque: Les règles pour les codes sont:
Après avoir défini les paramètres nécessaires, écrivez l'action à exécuter sur le nœud de commande. Par exemple, pour ajouter un code:
Des entrées TimeControl peuvent être ajoutées, mises à jour et supprimées. Cela doit d'abord activer dans le portail de configuration. Vérifiez "Ajouter, modifier et supprimer les entrées TimeControl" sous "Configuration du niveau d'accès" et enregistrer la configuration.
Des informations sur les entrées TimeControl actuelles sont publiées sous forme de données JSON sur la rubrique MQTT "[Lock / Opender] / TimeControl / JSON".
Cela doit être activé séparément en vérifiant "Publier des informations sur les entrées TimeControl" Sous "Configuration du niveau d'accès" et en enregistrant la configuration. Par défaut, un maximum de 10 entrées sont publiées.
Pour modifier les paramètres Nuki Lock / Opender TimeControl, définissez la rubrique [lock/opener]/timecontrol/actionJson
sur une valeur formatée JSON contenant les nœuds suivants.
Nœud | Supprimer | Ajouter | Mise à jour | Usage | Valeurs possibles |
---|---|---|---|---|---|
action | Requis | Requis | Requis | L'action à exécuter | "supprimer", "ajouter", "mise à jour" |
entrée | Requis | Non utilisé | Requis | L'ID d'entrée de l'entrée existante pour supprimer ou mettre à jour | Entier |
activé | Non utilisé | Non utilisé | Facultatif | Activer ou désactiver l'entrée, toujours activée sur ajouter | 1 = activé, 0 = handicapé |
jours de la semaine | Non utilisé | Facultatif | Facultatif | En semaine sur laquelle l'action de verrouillage choisie doit être exercé (nécessite une activité = 1) | Array of Days: "Mon", "mar", "Wed", "Thu", "Fri" "Sat", "Sun" |
temps | Non utilisé | Requis | Facultatif | Le temps sur lequel l'action de verrouillage choisie doit être exécutée (nécessite activé = 1) | "HH: MM" |
verrouillage | Non utilisé | Requis | Facultatif | L'action de verrouillage qui doit être exécutée en semaine choisie au moment choisi (nécessite activé = 1) | Pour le verrou Nuki: "déverrouiller", "verrouillage", "déverrouiller", "lockgo", "lockngounlatch", "fulllock". Pour l'ouvreur Nuki: "Activaterto", "Deativaterto", "ElectricsTrikeAactuation", "ActivateCm", "DeativateCm |
Exemples :
{ "action": "delete", "entryId": "1234" }
{ "action": "add", "weekdays": [ "wed", "thu", "fri" ], "time": "08:00", "lockAction": "Unlock" }
{ "action": "update", "entryId": "1234", "enabled": "1", "weekdays": [ "mon", "tue", "sat", "sun" ], "time": "08:00", "lockAction": "Lock" }
Les entrées d'autorisation peuvent être mises à jour et supprimées. Cela doit d'abord activer dans le portail de configuration. Vérifiez "Modifier et supprimer les entrées d'autorisation" sous "Configuration du niveau d'accès" et enregistrer la configuration. Il n'est actuellement pas (encore) possible d'ajouter des entrées d'autorisation de cette façon.
Les informations sur les entrées d'autorisation actuelles sont publiées sous forme de données JSON sur le sujet "[Lock / Opender] / Authorization / JSON".
Cela doit être activé séparément en vérifiant "Publier les informations sur les entrées d'autorisation" sous "Configuration du niveau d'accès" et en enregistrant la configuration. Par défaut, un maximum de 10 entrées sont publiées.
Pour modifier les paramètres d'autorisation Nuki Lock / Opender, définissez la rubrique [lock/opener]/authorization/action
sur une valeur formatée JSON contenant les nœuds suivants.
Nœud | Supprimer | Ajouter | Mise à jour | Usage | Valeurs possibles |
---|---|---|---|---|---|
action | Requis | Requis | Requis | L'action à exécuter | "supprimer", "ajouter", "mise à jour" |
authentique | Requis | Non utilisé | Requis | L'ID Auth de l'entrée existante pour supprimer ou mettre à jour | Entier |
activé | Non utilisé | Non utilisé | Facultatif | Activer ou désactiver l'autorisation, toujours activée sur ajouter | 1 = activé, 0 = handicapé |
nom | Non utilisé | Requis | Facultatif | Le nom de l'autorisation de créer ou de mettre à jour | String, Max 20 Chars |
émouvant | Non utilisé | Facultatif | Facultatif | Si cette autorisation est autorisée à accès à distance, nécessite activé = 1 | 1 = activé, 0 = handicapé |
timidé | Non utilisé | Facultatif | Facultatif | Si cette autorisation est limitée à l'accès uniquement à certains moments, il faut activé = 1 | 1 = activé, 0 = handicapé |
autorisé à partir de | Non utilisé | Facultatif | Facultatif | L'horodatage de démarrage à partir duquel l'accès doit être autorisé (nécessite activé = 1 et timelimited = 1) | "Yyyy-mm-dd hh: mm: ss" |
autorisé | Non utilisé | Facultatif | Facultatif | L'horodatage final jusqu'à ce que l'accès soit autorisé (nécessite activé = 1 et timelimited = 1) | "Yyyy-mm-dd hh: mm: ss" |
Selonweekdays autorisés | Non utilisé | Facultatif | Facultatif | En semaine sur laquelle l'accès doit être autorisé (nécessite activé = 1 et timelimited = 1) | Array of Days: "Mon", "mar", "Wed", "Thu", "Fri" "Sat", "Sun" |
Autorisé de l'heure | Non utilisé | Facultatif | Facultatif | L'heure de début par jour à partir de laquelle l'accès doit être autorisé (nécessite une activité = 1 et timelimited = 1) | "HH: MM" |
autorisé | Non utilisé | Facultatif | Facultatif | L'heure de fin par jour jusqu'à ce que l'accès soit autorisé (nécessite activé = 1 et timelimited = 1) | "HH: MM" |
Exemples :
{ "action": "delete", "authId": "1234" }
{ "action": "update", "authId": "1234", "enabled": "1", "name": "Test", "timeLimited": "1", "allowedFrom": "2024-04-12 10:00:00", "allowedUntil": "2034-04-12 10:00:00", "allowedWeekdays": [ "mon", "tue", "sat", "sun" ], "allowedFromTime": "08:00", "allowedUntilTime": "16:00" }
Le verrou peut être contrôlé via GPIO. Pour déclencher des actions, une connexion au sol doit être présente pour la location 300 ms (ou à + 3,3 V pour "entrée générale (traction)").
Pour activer le contrôle GPIO, allez la page "Configuration GPIO" où chaque GPIO peut être configuré pour un rôle spécifique:
Si vous préférez vous connecter via Ethernet au lieu du Wi-Fi, vous utilisez soit l'un des modules ESP32 pris en charge avec Ethernet intégré (voir la section "Appareils pris en charge") ou câblez un module SPI Ethernet séparé.
Actuellement, le module W5x00 Wiznet (W5100, W5200, W5500), DN9051 et KSZ8851SNL est pris en charge.
Pour utiliser un module pris en charge, flashez le firmware, connectez-vous via Wi-Fi et sélectionnez le matériel réseau correct dans la section "Configuration réseau".
Pour câbler un module W5X00 externe à l'ESP, utilisez ce schéma de câblage:
Connectez-vous maintenant via Wi-Fi et modifiez le matériel réseau en "générique W5500".
Si Ethernet matériel n'est pas détecté ou initialisé correctement après avoir modifié le périphérique réseau, le Wi-Fi sera utilisé comme repli.
Remarque: les modules LAN8720 ne sont pris en charge que sur les ESP32 et ESP32-Solo1, pas sur l'ESP32-S3, ESP32-C3 ou ESP-C6
Malheureusement, l'ESP32 a des problèmes avec certains points d'accès et la reconnexion échoue.
En tant que solution de contournement, vous pouvez naviguer vers la "configuration du réseau" et activer "Redémarrer sur Disconnect".
Cela redémarrera l'ESP dès qu'il est déconnecté du Wi-Fi.
En outre, cela réduit le délai d'expiration du portail de configuration à trois minutes pour empêcher l'ESP de bloquer en mode config dans le cas où un point d'accès est temporairement hors ligne.
Si cela ne corrige toujours pas les déconnexions et que l'ESP devient inaccessible, l'option "redémarrage de la minuterie" peut être utilisée en dernier recours.
Il redémarrera l'ESP après une durée configurée.
Tout d'abord, assurez-vous que la version firmware du périphérique Nuki est à jour, les versions plus anciennes ont des problèmes d'appariement.
Ensuite, essayez d'effacer le flash ESP32 puis (re-) flasher le firmware.
Pour effacer le flash, utilisez l'outil de téléchargement EspressIF et cliquez sur le bouton "Effacer".
Flash Flash le firmware comme décrit dans le fichier "comment-tash.txt" ou à l'aide de WebFlash.
Vérifiez également que l'appariement est autorisé. Dans l'application Smartphone Nuki, accédez à "Paramètres" -> "fonctionnalités et configuration" -> "Button & LED" et assurez-vous que "Bluetooh Pailing" est activé.
Ensuite, appuyez sur le bouton pendant plusieurs secondes jusqu'à ce que la lumière LED reste allumée.
Une note sur l'unité M5Stack Poesp32. Ici, la réception initiale Bluetooth est très mauvaise (plage inférieure à un mètre). La raison en est que le module n'a pas d'antenne sur le PCB, mais seulement un connecteur IPEX. En modernisant une antenne SMA externe (IPEX ou d'autres noms U.FL, IPAX, IPX, AMC, MHF, UMCC), Bluetooth / Wi-Fi fonctionne sur plusieurs mètres.
Assurez-vous que vous utilisez au moins la version 2023.8.0 de Home Assistant.
Les développeurs adjoints à domicile ont apporté des modifications à MQTT Auto Discovery qui rompent le support pour la version ancienne et Nuki Hub a adopté ces changements.
Cela signifie malheureusement que les versions plus anciennes de l'assistant à domicile ne sont plus soutenues par la mise en œuvre de Nuki Hub Discovery.
Selon Nuki, c'est par conception et partie de la spécification du verrou Pro.
Vous pouvez utiliser le Wi-Fi intégré ou un pont (que Nuki Hub enregistre comme).
Ou utilisez Nuki Hub en mode hybride à l'aide du Wi-Fi ou du Thread, voir le mode hybride
L'utilisation des deux en même temps n'est pas prise en charge.
Certaines fonctionnalités sont limitées par le firmware de verrouillage (ou ouvreur) et ne sont accessibles que lorsque la broche est fournie.
Lors de la configuration du verrou (ou de l'ouvreur), vous devez définir une broche dans l'application Smartphone Nuki.
Accédez à la page des informations d'identification Nuki Hub, entrez cette broche et cliquez sur Enregistrer.
Vérifiez la page principale du configurateur pour voir si la broche entrée est valide
Voir le point précédent, cette fonctionnalité a besoin de la bonne broche à configurer.
Assurez-vous que l'option "Underch" est vérifiée sous "Configuration du niveau d'accès".
Le déverrouillage peut être déclenché à l'aide du service Lock.Open.
Alternativement, un bouton "Underch" est exposé via la découverte d'assistant à domicile.
Ce bouton est désactivé par défaut, mais peut être activé dans l'interface utilisateur de l'assistant à domicile.
Lorsque vous utilisez plusieurs périphériques Nuki, différents chemins pour chaque périphérique doivent être configurés.
Accédez à "Configuration MQTT" et modifiez le "chemin MQTT NukiHub" sous "Configuration MQTT de base" pour au moins l'un des périphériques.
Cela est souvent le résultat de l'activation de "Registre en tant qu'application" lorsqu'il n'utilise pas le mode hybride (coexistance officielle du hub MQTT / NUKI).
Cela fera que Nuki Hub interroge constamment la serrure et, en tant que telle, provoque une décharge excessive de la batterie.
Pour éviter ce comportement, unpaMi Nuki Hub, désactivez "Inscrivez-vous en tant qu'application" et remenez-vous.
N'activez jamais "Inscrivez-vous en tant qu'application", sauf si vous avez l'intention d'utiliser un pont Nuki en plus de Nuki Hub ou que vous utilisez le mode hybride!
Docker (préféré)
Voir le ReadMe dans le répertoire Docker pour des instructions sur la construction à l'aide de Docker.
Plateforme IO, Instructions pour la distribution Linux basée à Debian (par exemple Ubuntu)
apt-get update
apt-get install -y git python3 pip make
python3 -m venv .venv
source .venv/bin/activate
git clone https://github.com/technyon/nuki_hub --recursive
cd nuki_hub
# install tools platformio and esptool
make deps
# build all binary boards
make updater
make release
Il s'agit d'un logiciel tiers pour les appareils Nuki.
Ce projet ou l'un de ses auteurs n'est pas associé à Nuki Home Solutions GmbH.
Veuillez vous référer à des produits officiels et un soutien au site officiel de la NUKI:
https://nuki.io/
Pour plus de détails de licence, vérifiez le fichier de licence inclus.