Nuki Hub の目的は、Nuki デバイスをローカルのホーム オートメーション プラットフォームに統合する効率的な方法を提供することです。
Nuki Hub ソフトウェアは ESP32 モジュール上で実行され、Nuki デバイスとホーム オートメーション プラットフォーム間のブリッジとして機能します。
Bluetooth (BLE) 経由で Nuki Lock や Opener と通信し、MQTT を使用して他のシステムと統合します。
MQTT を通じてロック状態 (およびその他) を公開し、ロックやロック解除などのコマンドの実行や、MQTT を通じて Nuki Lock/Opener 設定の変更を可能にします。
Nuki Hub は Nuki モバイル アプリと統合されていないため、公式の Nuki モバイル アプリにブリッジとして登録することはできません。
Discord でお気軽にご参加ください: https://discord.gg/9nPq85bP4p
サポートされている ESP32 デバイス:
サポートされていない ESP32 デバイス:
サポートされている Nuki デバイス:
未テストですがおそらくサポートされています:
サポートされているイーサネット デバイス:
Wi-Fi (サポートされている ESP32 で利用可能) の代わりに、有線イーサネットを内蔵した次の ESP32 モジュールがサポートされています。
原則として、イーサネット ポートを内蔵したすべての ESP32 (およびそのバリアント) デバイスがサポートされていますが、「カスタム LAN セットアップ」オプションを使用した追加のセットアップが必要な場合があります。詳細については、「イーサネット経由の接続」セクションを参照してください。
WIFI6 が絶対に必要な場合: ESP32-C6
PoE が必要な場合: PoE を備えた上記のデバイス、または SPI イーサネット モジュール (W5500) および PoE からイーサネットおよび USB タイプ B/C スプリッタと組み合わせたその他の ESP デバイス
最大のパフォーマンスが必要で、次のいずれかまたは複数を実行する場合:
2MB 以上の PSRAM を搭載した ESP32-S3 (ESP32-S3 N16R8 など、指定が N>=4 および R>=2 の ESP32-S3 を探してください)
一般に、新しいデバイスを購入する場合、サイズや数ドルの多少が問題にならない場合は、2MB 以上の PSRAM を搭載した ESP32-S3 です。
ESP32-S3 は、多くの GPIO、PSRAM を使用して RAM を拡張する機能、SPI 経由でイーサネット モジュールを接続する機能、およびオプションで PoE スプリッタを使用してデバイスに電力を供給する機能を備えたデュアルコア CPU です。他の ESP デバイスと比較して ESP32-S3 に欠けている唯一の機能は、オリジナルの ESP32 でのみサポートされている一部のイーサネット モジュールを使用する機能と、WIFI6 (C6) 経由で接続する機能です。
特徴 | ヌキハブ | 貫橋 |
---|---|---|
ブリッジAPI | × | |
スマートロックリモコン | × | × |
Matter によるスマートホームの統合 | × | |
Matter を介した Apple HomeKit の統合 | × | |
MQTT API | × | x (SL 3、4、および 4 Pro モデルのみ) |
有線LAN対応 | × | |
パワーオーバーイーサネット (PoE) | x (LAN/ESP モジュールでサポートされている場合) | |
無線LANのサポート | × | x (SL 3 および 4 Pro モデルのみ) |
ホームオートメーションプラットフォームの統合 | × | × |
クラウドサポート | x (スマートホーム ソリューションによるオプション) | × |
クラウドレス運用 | × | × (FW 3.8.2以降) |
公式 Nuki アプリの統合 | × | |
Nuki Smartlocks 全モデル | × | × |
ヌキオープナー | × | × |
Nuki キーパッド (1.0 および 2.0) | × | × |
MQTT暗号化 | × | |
MQTT API のきめ細かいアクセス制御 | × | |
MQTT APIを介したロックアクションのエクスポート | × | |
GPIO経由で制御 | × | |
WiFI およびスレッド接続ロックのハイブリッド モード | × |
Nuki 製品をまだ注文していない場合は、注文時に私の紹介者コードを使用してサポートしていただけます。
REF2BJHFVHZKK
これにより、ご注文が 10% 割引になります。
このプロジェクトは誰でも無料で使用できます。ただし、寄付したい場合は、ko-fi.com でコーヒーを買っていただけます。
ファームウェアを ESP32 にフラッシュします。インストールする最も簡単な方法は、Chrome/Opera/Edge などの互換性のあるブラウザを使用して Web インストーラーを使用することです。
https://technyon.github.io/nuki_hub/
注: Webflash は ESP32-Solo1 では使用できません。
または、ESP32 モデルの最新リリースを https://github.com/technyon/nuki_hub/releases からダウンロードします。
zip アーカイブを解凍し、同梱されている how-to-flash.txt を読んで、「Espressif Flash Download Tools」または「esptool」のインストール手順を確認してください。
ESP32 の電源を入れると、「NukiHub」という名前の新しい Wi-Fi アクセス ポイントが表示されます。
アクセスポイントのパスワードは「NukiHubESP32」です。
クライアント デバイスをこのアクセス ポイントに接続し、ブラウザで「http://192.168.4.1」に移動します。
Web インターフェイスを使用して、ESP を優先 Wi-Fi ネットワークに接続します。
Wi-Fi を構成すると、ESP は自動的にネットワークに接続します。
MQTT ブローカーへの接続を構成するには、まずクライアント デバイスを ESP32 が接続されているのと同じ Wi-Fi ネットワークに接続します。
ブラウザで、DHCP (インターネット ルーターの Web インターフェイスにあることが多い) 経由で ESP32 に割り当てられた IP アドレスに移動します。
次に、「MQTT 構成」の下にある「編集」をクリックし、MQTT ブローカーのアドレスとポート (通常は 1883)、および MQTT ブローカーが要求する場合はユーザー名とパスワードを入力します。
ファームウェアは MQTT の SSL 暗号化をサポートしていますが、ほとんどの人、特にホーム ユーザーはこれを使用しません。
その場合は、「MQTT SSL」で始まるすべてのフィールドを空白のままにしておきます。それ以外の場合は、この README の「MQTT 暗号化」セクションを参照してください。
公式 Nuki アプリの [設定] > [機能と構成] > [ボタンと LED] でこの設定を有効にし、Nuki デバイスで「Bluetooth ペアリング」が有効になっていることを確認します。設定を有効にした後、Nuki デバイスのボタンを数秒間押します。
ESP32 の電源がオンになると、ペアリングは自動的に行われます。
ペアリングが成功すると、Web インターフェイスに「ペアリング: はい」と表示されます。
ロック状態やバッテリーレベルなどの MQTT ノードには、ロックから報告された値が反映されるようになりました。
注: Nuki Hub を Nuki Bridge と並行して実行することは可能です。これはお勧めできません (ハイブリッド モードを使用している場合を除く)。バッテリーの過度の消耗につながり、どちらかのデバイスでアップデートが失われる可能性があります。これを許可するには、ペアリングする前に「アプリとして登録」を有効にします。そうしないと、Nuki Hub をペアリングするときに Bridge が登録解除されます。
ハイブリッド モードでは、Nuki Lock 3.0 Pro、Nuki Lock 4.0、または Nuki Lock 4.0 Pro で公式の Nuki MQTT 実装を Nuki Hub と組み合わせて使用できます。
詳細については、ハイブリッド モードを参照してください。
ESP32 デバイスで使用できる空き RAM の量には限りがあります。
Nuki Lock のみが接続されている Nuki Hub のバージョン 9.01 では、予想される利用可能な RAM/ヒープの空き容量は次のとおりです。
この RAM の空き容量は、特定のアクション (Nuki デバイス構成の変更など) によって (一時的に) 削減されるか、以下を有効にすると継続的に削減されます。
現在利用可能な RAM/ヒープは、Nuki Hub の Web コンフィギュレーターの情報ページで確認できます。
ESP32 が使用可能な RAM を使い果たすと、このデバイスがクラッシュしたり、予期しない動作が発生したりする可能性があります。
Nuki Hub では、利用可能な場合はいつでも、通常のバイナリに埋め込み PSRAM を使用できます。
PSRAM のサイズは通常 2、4、または 8MB であるため、使用可能な 320kb の内部 RAM が大幅に増加します。
PSRAM が利用可能な場合、基本的に RAM が不足することはありません。 PSRAM が利用可能かどうかは、Web コンフィギュレータの情報ページで確認できます。
ESP32-S3 用の Nuki Hub には 2 つのビルドが利用可能であることに注意してください。
1 つはクワッド SPI PSRAM を搭載していないデバイス用、もう 1 つはオクタル SPI PSRAM を搭載したデバイス用です。
ESP32-S3 デバイスに PSRAM が搭載されているにもかかわらず検出されない場合は、他の S3 バイナリをフラッシュしてください。
ブラウザで、ESP32 に割り当てられた IP アドレスに移動します。
[設定のインポート/エクスポート] メニュー オプションを使用すると、NukiHub 設定を JSON 形式でインポートおよびエクスポートできます。
次のいずれかを選択して、現在の NukiHub 設定の (部分的な) バックアップを作成します。
上記のどちらのオプションでもペアリング データはバックアップされないため、このエクスポートを工場出荷時設定にリセットした場合や新しいデバイスにインポートする場合は、Nuki デバイスを手動でペアリングする必要があります。
nukiロック/オープナー設定を変更するには、次の設定のいずれかでconfiguration/action
トピックをJSONフォーマット値に設定します。複数の設定を一度に変更できます。 Nuki Smart Lock API Basic Config、Nuki Smart Lock API Advanced Config、Nuki Opener API Basic Config、およびNuki Opener API Advanced Configを参照してください。
設定の変更は、構成ポータルで最初に有効にする必要があります。 「アクセスレベルの構成」で「Nuki Lock/Opener Config Control」で変更できる設定を確認し、構成を保存します。
設定 | 使用法 | 可能な値 | 例 |
---|---|---|---|
名前 | スマートロックの名前。 | 英数字の弦、最大長32文字 | { "name": "Frontdoor" } |
緯度 | スマートロックの緯度は地球症です。 | フロート | { "latitude": "48.858093" } |
経度 | スマートロックの経度は地球姿勢です | フロート | { "longitude": "2.294694" } |
オートラッチ | ドアが外部からドアハンドルを手動で操作することにより、ドアがラッチされていないかどうか。 | 1 =有効、0 =無効 | { "autoUnlatch": "1" } |
PailingEnabled | ボタン経由でペアリングモードをアクティブにするかどうかを有効にする必要があります。 | 1 =有効、0 =無効 | { "pairingEnabled": "0" } |
ButtonEnabled | ボタンを有効にするかどうか。 | 1 =有効、0 =無効 | { "buttonEnabled": "1" } |
ledenabled | 点滅LEDを有効にする必要があるかどうかは、ロック解除されたドアを通知する必要があります。 | 1 =有効、0 =無効 | { "ledEnabled": "1" } |
Ledbrightness | LED明るさレベル | 0 = off、…、5 = max | { "ledBrightness": "2" } |
TimeZoneOffset | 数分でタイムゾーンオフセット(UTC) | 0〜60の整数 | { "timeZoneOffset": "0" } |
dstmode | 目的の夏時間モード。 | 0 =無効、1 =ヨーロッパ | { "dstMode": "0" } |
fobaction1 | ヌキFOBが一度押された場合、目的のアクション。 | 「アクションなし」、「ロック解除」、「ロック」、「ロックn go」、「インテリジェント」 | { "fobAction1": "Lock n Go" } |
fobaction2 | ヌキFOBが2回押されている場合、目的のアクション。 | 「アクションなし」、「ロック解除」、「ロック」、「ロックn go」、「インテリジェント」 | { "fobAction2": "Intelligent" } |
fobaction3 | ヌキFOBが3回押されている場合、目的のアクション。 | 「アクションなし」、「ロック解除」、「ロック」、「ロックn go」、「インテリジェント」 | { "fobAction3": "Unlock" } |
シングルロック | 単一のロックまたはダブルロックのみを実行する必要があるかどうか | 0 =ダブルロック、1 =シングルロック | { "singleLock": "0" } |
AdvertisingMode | 目的の広告モード。 | 「自動」、「通常」、「スロー」、「最も遅い」 | { "advertisingMode": "Normal" } |
タイムゾーン | タイムゾーンがサポートされていない場合の現在のタイムゾーンまたは「なし」 | 「なし」またはヌキタイムゾーンのタイムゾーンの1つ | { "timeZone": "Europe/Berlin" } |
lockedpositionOffsetDegrees | オフセットは、ロック解除された位置を程度に変更します。 | -90〜180の整数 | { "unlockedPositionOffsetDegrees": "-90" } |
LockedPositionOffSetDegrees | ロックされた位置を程度に変更するオフセット。 | -180から90の整数 | { "lockedPositionOffsetDegrees": "80" } |
SingleLockedpositionOffsetDegrees | オフセットでは、単一のロックされた位置を程度に変更します。 | -180から180の整数 | { "singleLockedPositionOffsetDegrees": "120" } |
lockedtolockedtransitionoffsetdegreesを閉鎖します | オフセットは、ロック解除からロックされたロックへの移行が程度で発生する位置を変更します。 | -180から180の整数 | { "unlockedToLockedTransitionOffsetDegrees": "180" } |
lockngotimeout | lock 'n'のタイムアウトは数秒で行きます | 5〜60の整数 | { "lockNgoTimeout": "60" } |
シングルボタンプレスアクセス | ボタンが一度押された場合、目的のアクション。 | 「アクションなし」、「インテリジェント」、「ロック解除」、「ロック」、「ラッチ」、「ロックn go "、" show status " | { "singleButtonPressAction": "Lock n Go" } |
double -buttonpressaction | ボタンが2回押されている場合、目的のアクション。 | 「アクションなし」、「インテリジェント」、「ロック解除」、「ロック」、「ラッチ」、「ロックn go "、" show status " | { "doubleButtonPressAction": "Show Status" } |
デタチドシリンダー | 使用済みシリンダーの内側の内側は、外側から切り離されています。 | 0 =分離していない、1 =分離 | { "detachedCylinder": "1" } |
電池のタイプ | スマートロックに存在するバッテリーのタイプ。 | 「アルカリ」、「アキュムレーター」、「リチウム」 | { "batteryType": "Accumulators" } |
AutomaticBatteryTypedeTection | バッテリータイプの自動検出が有効かどうか。 | 1 =有効、0 =無効 | { "automaticBatteryTypeDetection": "Lock n Go" } |
Unlatchduration | ラッチを照らした位置に保持するための秒単位の期間。 | 1〜30の整数 | { "unlatchDuration": "3" } |
autolocktimeout | スマートロックがロック解除された後、スマートロックが再ロックするまで秒。 | 30〜1800の整数 | { "autoLockTimeOut": "60" } |
AutounLockDisabled | 一般的に自動解除のロックを無効にする必要があるかどうか。 | 1 = Auto Unlock Disabled、0 = Auto Unlock enabled | { "autoUnLockDisabled": "1" } |
nightmodeenabled | 悪夢が有効になっているかどうか。 | 1 =有効、0 =無効 | { "nightModeEnabled": "1" } |
nightmodestarttime | 悪夢の開始時間を有効にします。 | 「HH:MM」形式の時間 | { "nightModeStartTime": "22:00" } |
nightmodeendtime | 有効にした場合、悪夢の時間の終了時間。 | 「HH:MM」形式の時間 | { "nightModeEndTime": "07:00" } |
nightmodeautolockenabled | ナイトモード中にオートロックを有効にするかどうか。 | 1 =有効、0 =無効 | { "nightModeAutoLockEnabled": "1" } |
nightmodeoutounlockdisabled | ナイトモード中に自動解除が無効になるかどうか。 | 1 = Auto Unlock Disabled、0 = Auto Unlock enabled | { "nightModeAutoUnlockDisabled": "1" } |
nightmodeimmediatelockonstart | ナイトモードの開始時にドアをすぐにロックする必要があるかどうか。 | 1 =有効、0 =無効 | { "nightModeImmediateLockOnStart": "1" } |
AutoLockEnabled | オートロックが有効になっているかどうか。 | 1 =有効、0 =無効 | { "autoLockEnabled": "1" } |
即時aToLockEnabled | ドアが閉じられた直後に自動ロックを実行するかどうか。 | 1 =有効、0 =無効 | { "immediateAutoLockEnabled": "1" } |
AutOUpDateEnabled | 自動ファームウェアの更新を有効にするかどうか。 | 1 =有効、0 =無効 | { "autoUpdateEnabled": "1" } |
Rebootnuki | nukiデバイスをすぐに再起動します | 1 =ヌキの再起動 | { "rebootNuki": "1" } |
設定 | 使用法 | 可能な値 | 例 |
---|---|---|---|
名前 | オープナーの名前。 | 英数字の弦、最大長32文字 | { "name": "Frontdoor" } |
緯度 | オープナーの地球症の緯度。 | フロート | { "latitude": "48.858093" } |
経度 | オープナーの地球撮影の経度 | フロート | { "longitude": "2.294694" } |
PailingEnabled | ボタン経由でペアリングモードをアクティブにするかどうかを有効にする必要があります。 | 1 =有効、0 =無効 | { "pairingEnabled": "0" } |
ButtonEnabled | ボタンを有効にするかどうか。 | 1 =有効、0 =無効 | { "buttonEnabled": "1" } |
LedFlashEnabled | フラッシュLEDをCMまたはRTOに信号を送信できるかどうか。 | 1 =有効、0 =無効 | { "ledFlashEnabled": "1" } |
TimeZoneOffset | 数分でタイムゾーンオフセット(UTC) | 0〜60の整数 | { "timeZoneOffset": "0" } |
dstmode | 目的の夏時間モード。 | 0 =無効、1 =ヨーロッパ | { "dstMode": "0" } |
fobaction1 | ヌキFOBが一度押された場合、目的のアクション。 | 「アクションなし」、「トグルRTO」、「RTOをアクティブ化」、「RTO」、「オープン」、「リング」 | { "fobAction1": "Toggle RTO" } |
fobaction2 | ヌキFOBが2回押されている場合、目的のアクション。 | 「アクションなし」、「トグルRTO」、「RTOをアクティブ化」、「RTO」、「オープン」、「リング」 | { "fobAction2": "Open" } |
fobaction3 | ヌキFOBが3回押されている場合、目的のアクション。 | 「アクションなし」、「トグルRTO」、「RTOをアクティブ化」、「RTO」、「オープン」、「リング」 | { "fobAction3": "Ring" } |
動作モード | 目的の動作モード | 「ジェネリックドアオープナー」、「アナログインターコム」、「デジタルインターコム」、「シードル」、「TCS」、「bticino」、「siedle hts」、 "str"、 "ritto"、 "fermax"、 "comelit"、 " urmet bibus "、" urmet 2voice "、" golmar "、" sks "、" spare " | { "operatingMode": "TCS" } |
AdvertisingMode | 目的の広告モード。 | 「自動」、「通常」、「スロー」、「最も遅い」 | { "advertisingMode": "Normal" } |
タイムゾーン | タイムゾーンがサポートされていない場合の現在のタイムゾーンまたは「なし」 | 「なし」またはヌキタイムゾーンのタイムゾーンの1つ | { "timeZone": "Europe/Berlin" } |
Intercomid | 接続されたインターホンのデータベースID。 | 整数 | { "intercomID": "1" } |
busmodeswitch | データとアナログモードを切り替える方法 | 0 =なし、1 = vshort巡回 | { "busModeSwitch": "0" } |
短絡装置 | MSでのバスモードスイッチングの短絡の期間。 | 整数 | { "shortCircuitDuration": "250" } |
ElectricStrikedelay | RTOによる電気ストライキ作動の場合の電気ストライク活性化のMSの遅延 | 0〜30000の整数 | { "electricStrikeDelay": "2080" } |
randomelectrictrikedelay | 電気ストライキを作動させる内部の人をシミュレートするためのランダム遅延(3-7)。 | 1 =有効、0 =無効 | { "randomElectricStrikeDelay": "1" } |
電気ストリキュレーション | 電気ストライキ作動のMSの期間。 。 | 1000〜30000の整数 | { "electricStrikeDuration": "5000" } |
Disablertoafterring | リング後にRTOを無効にするかどうか。 | 1 =リング後のRTOを無効にする、0 =リング後のRTOを無効にしない | { "disableRtoAfterRing": "0" } |
rtotimeout | 数分のこの期間の後、RTOは自動的に無効にされます | 5〜60の整数 | { "rtoTimeout": "60" } |
ドアベルサクレス | リング、CM、および/またはRTOがアクティブなときにドアベルが抑制されるかどうか | 「オフ」、「CM」、「RTO」、「CM&RTO」、「リング」、「CM&リング」、「RTO&リング」、「CM&RTO&リング」 | { "doorbellSuppression": "CM & Ring" } |
ドアベルサプレッションデューレーション | ドアベル抑制のMSの期間。 | 500〜10000の整数 | { "doorbellSuppressionDuration": "2000" } |
サウンドリング | リングサウンド | 「音なし」、「サウンド1」、「サウンド2」、「サウンド3」 | { "soundRing": "No Sound" } |
Soundopen | オープンサウンド。 | 「音なし」、「サウンド1」、「サウンド2」、「サウンド3」 | { "soundOpen": "Sound 1" } |
soundrto | RTOサウンド。 | 「音なし」、「サウンド1」、「サウンド2」、「サウンド3」 | { "soundRto": "Sound 2" } |
soundcm | CMサウンド。 | 「音なし」、「サウンド1」、「サウンド2」、「サウンド3」 | { "soundCm": "Sound 3" } |
SoundConfirmation | 音の確認 | 0 =サウンドなし、1 =サウンド | { "soundConfirmation": "1" } |
サウンドレベル | オープナーのサウンドレベル | 0〜255の整数 | { "soundLevel": "200" } |
シングルボタンプレスアクセス | ボタンが一度押された場合、目的のアクション。 | 「アクションなし」、「RTO」、「RTOをアクティブ化」、「RTO」、「CM」、「Activate CM」、「CM "を非アクティブ化、「オープン」」 | { "singleButtonPressAction": "Open" } |
double -buttonpressaction | ボタンが2回押されている場合、目的のアクション。 | 「アクションなし」、「RTO」、「RTOをアクティブ化」、「RTO」、「CM」、「Activate CM」、「CM "を非アクティブ化、「オープン」」 | { "doubleButtonPressAction": "No Action" } |
電池のタイプ | スマートロックに存在するバッテリーのタイプ。 | 「アルカリ」、「アキュムレーター」、「リチウム」 | { "batteryType": "Accumulators" } |
AutomaticBatteryTypedeTection | バッテリータイプの自動検出が有効かどうか。 | 1 =有効、0 =無効 | { "automaticBatteryTypeDetection": "1" } |
Rebootnuki | nukiデバイスをすぐに再起動します | 1 =ヌキの再起動 | { "rebootNuki": "1" } |
複数の設定を一度に変更するための使用の例:
{ "buttonEnabled": "1", "lockngoTimeout": "60", "automaticBatteryTypeDetection": "1" }
{ "fobAction1": "Unlock", "fobAction2": "Intelligent", "nightModeImmediateLockOnStart": "1" }
最後の構成変更アクションの結果は、JSONデータとしてconfiguration/commandResult
MQTTトピックに公開されます。
JSONデータには、nuki Hubがアクションで検出したすべての設定の「一般」と呼ばれるノードとノードが含まれます。
「一般」ノードの可能な値は、「novalidpinset」、「invalidjson」、「invalidconfig」、「success」、「nochange」です。
設定あたりのノードの可能な値は、「変更されていない」、「ノーバルセセット」、「無効」、「valuetoolong」、「accessdenied」、「success "、" failed "、" timeout "、" worked "、" notpaired "、"エラーです。 「そして「未定義」
例:
{"advertisingMode":"success","general":"success"}
ホームアシスタントディスカバリーが有効になっている場合(このREADMEのホームアシスタントディスカバリーセクションを参照)、Nuki Hubは、上記のほぼすべての設定のエンティティを作成します。
シリアル接続を介してNuki Hubファームウェアを最初にインストールした後、ブラウザからのOTAアップデートを介してさらに更新を展開できます。
構成ポータルで、メインページから[ファームウェア更新]を選択します。
Nuki Hubがインターネットに接続されている場合、Nuki Hubをアップグレードする最も簡単な方法は、「最新バージョンへの更新」を選択することです。
これにより、最新のNuki HubおよびNuki Hub Updaterをダウンロードし、両方のアプリケーションを自動的にアップグレードします。
Nuki Hubは、このプロセス中に3回再起動し、約5分かかります。
「MQTTを使用して更新を許可する」を有効にしている場合は、ホームアシスタントアップデーターを使用するか、「1」をnukihub/maintanance/update
トピックに書き込み、更新プロセスを開始することもできます。
または、ファイルシステムからバイナリファイルを選択して、Nuki HubまたはNuki Hub Updatorを手動で更新できます
Nuki Hub UpdaterからNuki Hubを更新し、Nuki HubからのみUpdaterを更新することができます
「Firware Update」ページから再起動オプションを選択することにより、Nuki HubからUpdaterに再起動し、その逆も同様です
適切なアプリケーションを使用している場合は、「Browse」をクリックして新しい「nuki_hub [Board] .bin」または「nuki_hub_updater [board] .bin」ファイルを選択して、「アップロードファイル」を選択して、新しいバイナリをアップロードできます。
約1分後、ESPが更新されたバイナリに自動的に再起動する後、新しいファームウェアをインストールする必要があります。
間違ったバイナリを選択すると、更新に失敗します
Nuki Hub 8.35以降からアップグレードするユーザーの注:
バージョン9.00に更新するには、ESP32のパーティションテーブルを変更する必要があります。
以前のバージョンからNuki Hub 9.00に更新するときに、初めてインストールの手順に従ってください。
上記の命令を使用して更新するときに設定は影響を受けません(WebFlashを使用して更新するときにデバイスを消去しないでください)。
MQTT経由の通信はSSL暗号化できます。
SSL暗号化を有効にするには、MQTT構成ページに必要な情報を提供します。
次の構成がサポートされています。
CA、証明書、キーは空です - >暗号化なし
CAは満たされていますが、証明書とキーは空です - >暗号化されたmqtt
CA、CERT、およびキーが入力されます - >暗号化されたMQTTがクライアントのベイルデーション
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
このソフトウェアは、Nuki Hubをホームアシスタントと統合するためのMQTT Discoveryをサポートしています。
AutoDiscoveryを有効にするには、[MQTT構成]ページでチェックボックスを有効にします。
有効になると、ヌキロックおよび/またはオープナーおよび関連エンティティは、ホームアシスタントMQTTデバイスに自動的に表示される必要があります。
自己発見を可能にするとき、ホームアシスタントサービスとヌキコマンドの間の次のマッピングがセットアップされます。
スマートロック | オープナー(デフォルト) | オープナー(代替) | |
---|---|---|---|
lock.lock | ロック | リングを無効にして開きます | 連続モードを無効にします |
lock.unlock | ロックを解除する | リングを開くことができます | 連続モードを有効にします |
lock.open | ラッチを解除します | 電気ストライキの作動 | 電気ストライキの作動 |
注:MQTT Discoveryは、保持されたMQTTメッセージを使用してデバイスの構成を保存します。ブローカーの孤児構成を避けるために、このソフトウェアを使用したくない場合は、最初に自動化を無効にしてください。保持されたメッセージは、MQTT構成ページでAutoDiscoveryトピックを変更/無効にするときに、自動的にクリアされます。
注2:Home AssistantはMQTTロック統合を使用して手動でセットアップできますが、これは推奨されません
キーパッドがロックに接続されている場合、キーパッドコードを追加、更新、削除できます。これは、構成ポータルで最初に有効にする必要があります。 「アクセスレベルの構成」の下で「キーパッドコードを追加、変更、削除」し、構成を保存します。
現在のキーパッドコードに関する情報は、「[ロック/オープナー]/キーパッド/JSON」MQTTトピックのJSONデータとして公開されています。
これは、「アクセスレベルの構成」の下で「キーパッドコード情報を公開」を確認し、構成を保存することにより、個別に有効にする必要があります。セキュリティ上の理由から、これがNuki Hubの設定で明示的に有効になっていない限り、コード自体は公開されません。デフォルトでは、最大10のエントリが公開されています。
nukiロック/オープナーキーパッド設定を変更するには[lock/opener]/keypad/actionJson
トピックを次のノードを含むJSONフォーマット値に設定します。
ノード | 消去 | 追加 | アップデート | チェック | 使用法 | 可能な値 |
---|---|---|---|---|---|---|
アクション | 必須 | 必須 | 必須 | 必須 | 実行するアクション | 「削除」、「追加」、「更新」、「チェック」 |
codeid | 必須 | 未使用 | 必須 | 必須 | 削除または更新する既存のコードのコードID | 整数 |
コード | 未使用 | 必須 | オプション | 必須 | 作成または更新するコード | ゼロなしの6桁の整数、「12」で始めることはできません |
有効 | 未使用 | 未使用 | オプション | 未使用 | ADDで常に有効にするコードを有効または無効にします | 1 =有効、0 =無効 |
名前 | 未使用 | 必須 | オプション | 未使用 | 作成または更新するコードの名前 | 文字列、最大20文字 |
タイムリミテッド | 未使用 | オプション | オプション | 未使用 | この許可が特定の時間にのみアクセスに制限されている場合、有効になる必要があります= 1 | 1 =有効、0 =無効 |
許可されています | 未使用 | オプション | オプション | 未使用 | アクセスを許可するスタートタイムスタンプ(有効= 1とタイムリミテッド= 1) | 「yyyy-mm-dd hh:mm:ss」 |
許可された | 未使用 | オプション | オプション | 未使用 | アクセスが許可されるまでのエンドタイムスタンプ(有効= 1とタイムリミテッド= 1)が必要です) | 「yyyy-mm-dd hh:mm:ss」 |
許可weekdays | 未使用 | オプション | オプション | 未使用 | アクセスを許可する必要がある平日(有効= 1とタイムリミテッド= 1) | 日々の配列: "Mon"、 "Tue"、 "Wed"、 "thu"、 "fri" "sat"、 "Sun" |
許可された時間 | 未使用 | オプション | オプション | 未使用 | アクセスを許可する1日あたりの開始時間(有効= 1およびTimeLimited = 1) | 「HH:MM」 |
AldultiLtime | 未使用 | オプション | オプション | 未使用 | アクセスが許可されるまで1日あたりの終了時間(有効= 1およびTimeLimited = 1) | 「HH:MM」 |
例:
{ "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" }
最後のキーパッド変更アクションの結果は[lock/opener]/configuration/commandResultJson
MQTTトピックに公開されます。
Possible values are "noValidPinSet", "keypadControlDisabled", "keypadNotAvailable", "keypadDisabled", "invalidConfig", "invalidJson", "noActionSet", "invalidAction", "noExistingCodeIdSet", "noNameSet", "noValidCodeSet", "noCodeSet" 、「無効」、 「Invalidalloweduntil」、「timeから無効」、「無効」、「成功」、「失敗」、「タイムアウト」、「作業」、「ノットペア」、「エラー」、「未定」。
キーパッドがロックに接続されている場合、キーパッドコードを追加、更新、削除できます。これは、構成ポータルで最初に有効にする必要があります。 「アクセスレベルの構成」の下で「キーパッドコードを追加、変更、削除」し、構成を保存します。
コードに関する情報は、「keypad/code_x」、xが設定されたコードの数から0から始まるxで公開されています。これは、「アクセスレベルの構成」の下で「キーパッドコード情報を公開」を確認し、構成を保存することにより、個別に有効にする必要があります。デフォルトでは、最大10のエントリが公開されています。
セキュリティ上の理由から、これがNuki Hubの設定で明示的に有効になっていない限り、コード自体は公開されません。キーパッドコードを変更するには、コマンド構造がキーパッド/コマンドの下でセットアップされます。
キーパッドコードを変更するには、コマンドに応じて最初の4つのパラメーターノードを設定する必要があります。
**注:コードのルールは次のとおりです。
必要なパラメーターを設定した後、実行するアクションをコマンドノードに書き込みます。たとえば、コードを追加するには:
Timecontrolエントリを追加、更新、削除できます。これは、構成ポータルで最初に有効にする必要があります。 「アクセスレベルの構成」の下で「TimeControlエントリを追加、変更、削除する」を確認し、構成を保存します。
現在のタイムコントロールエントリに関する情報は、「[ロック/オープナー]/TimeControl/JSON」MQTTトピックのJSONデータとして公開されています。
これは、「アクセスレベルの構成」の下で「タイムコントロールエントリ情報を公開」を確認し、構成を保存することにより、個別に有効にする必要があります。デフォルトでは、最大10のエントリが公開されています。
Nuki Lock/Opener Timecontrol設定を変更するには[lock/opener]/timecontrol/actionJson
トピックを次のノードを含むJSONフォーマット値に設定します。
ノード | 消去 | 追加 | アップデート | 使用法 | 可能な値 |
---|---|---|---|---|---|
アクション | 必須 | 必須 | 必須 | 実行するアクション | 「削除」、「追加」、「更新」 |
entrid | 必須 | 未使用 | 必須 | 既存のエントリのエントリIDを削除または更新する | 整数 |
有効 | 未使用 | 未使用 | オプション | ADDで常に有効にするエントリを有効または無効にします | 1 =有効、0 =無効 |
平日 | 未使用 | オプション | オプション | 選択したロックアクションを発効させる平日(有効= 1) | 日々の配列: "Mon"、 "Tue"、 "Wed"、 "thu"、 "fri" "sat"、 "Sun" |
時間 | 未使用 | 必須 | オプション | 選択したロックアクションを実行する時間(有効にする必要があります= 1) | 「HH:MM」 |
ロックアクセス | 未使用 | 必須 | オプション | 選ばれた平日に選ばれた時間に実行されるべきロックアクション(有効= 1) | Nuki Lockの場合:「ロック解除」、「ロック」、「ラッチ」、「lockngo」、 "lockngounlatch"、 "fulllock"。ヌキ開幕戦の場合:「activaterto」、「deactivaterto」、「electricstrikeactuation」、「activatecm」、 "deactivatecm |
例:
{ "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" }
承認エントリを更新および削除できます。これは、構成ポータルで最初に有効にする必要があります。 「アクセスレベルの構成」の下で「認証エントリを変更および削除する」を確認し、構成を保存します。現在、この方法で承認エントリを追加することはできません。
現在の承認エントリに関する情報は、「[ロック/オープナー]/承認/JSON」MQTTトピックのJSONデータとして公開されています。
これは、「アクセスレベルの構成」の下で「認証エントリ情報を公開」を確認し、構成を保存することにより、個別に有効にする必要があります。デフォルトでは、最大10のエントリが公開されています。
Nuki Lock/Opener Authorization設定を変更するには[lock/opener]/authorization/action
トピックを次のノードを含むJSONフォーマット値に設定します。
ノード | 消去 | 追加 | アップデート | 使用法 | 可能な値 |
---|---|---|---|---|---|
アクション | 必須 | 必須 | 必須 | 実行するアクション | 「削除」、「追加」、「更新」 |
authid | 必須 | 未使用 | 必須 | 削除または更新するための既存のエントリの認証ID | 整数 |
有効 | 未使用 | 未使用 | オプション | ADDで常に有効にする許可を有効または無効にします | 1 =有効、0 =無効 |
名前 | 未使用 | 必須 | オプション | 作成または更新する許可の名前 | 文字列、最大20文字 |
Remoteallowed | 未使用 | オプション | オプション | この承認がリモートアクセスを許可されている場合、有効になる必要があります= 1 | 1 =有効、0 =無効 |
タイムリミテッド | 未使用 | オプション | オプション | この許可が特定の時間にのみアクセスに制限されている場合、有効になる必要があります= 1 | 1 =有効、0 =無効 |
許可されています | 未使用 | オプション | オプション | アクセスを許可するスタートタイムスタンプ(有効= 1とタイムリミテッド= 1) | 「yyyy-mm-dd hh:mm:ss」 |
許可された | 未使用 | オプション | オプション | アクセスが許可されるまでのエンドタイムスタンプ(有効= 1とタイムリミテッド= 1)が必要です) | 「yyyy-mm-dd hh:mm:ss」 |
許可weekdays | 未使用 | オプション | オプション | アクセスを許可する必要がある平日(有効= 1とタイムリミテッド= 1) | 日々の配列: "Mon"、 "Tue"、 "Wed"、 "thu"、 "fri" "sat"、 "Sun" |
許可された時間 | 未使用 | オプション | オプション | アクセスを許可する1日あたりの開始時間(有効= 1およびTimeLimited = 1) | 「HH:MM」 |
AldultiLtime | 未使用 | オプション | オプション | アクセスが許可されるまで1日あたりの終了時間(有効= 1およびTimeLimited = 1) | 「HH:MM」 |
例:
{ "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" }
ロックはGPIOを介して制御できます。アクションをトリガーするには、リース300ms(または「一般的な入力(プルダウン)」の場合は +3.3V)に地面への接続が存在する必要があります。
GPIO制御を有効にするには、各GPIOが特定の役割に対して構成されている「GPIO構成」ページに移動します。
Wi-Fiの代わりにイーサネットを介して接続する場合は、内蔵イーサネットを備えたサポートされているESP32モジュールのいずれか(「サポートデバイス」セクションを参照)を使用するか、別のSPIイーサネットモジュールを配線します。
現在、WizNet W5X00モジュール(W5100、W5200、W5500)、DN9051およびKSZ8851SNLチップがサポートされています。
サポートされているモジュールを使用するには、ファームウェアをフラッシュし、Wi-Fi経由で接続し、「ネットワーク構成」セクションで正しいネットワークハードウェアを選択します。
外部W5X00モジュールをESPに配線するには、この配線スキームを使用してください。
Wi-Fi経由で接続し、ネットワークハードウェアを「汎用W5500」に変更します。
ネットワークデバイスを変更した後、イーサネットハードウェアが適切に検出または初期化されていない場合、Wi-Fiはフォールバックとして使用されます。
注:LAN8720モジュールは、ESP32-S3、ESP32-C3、またはESP-C6ではなく、ESP32およびESP32-SOLO1でのみサポートされています。
残念ながら、ESP32にはいくつかのアクセスポイントと再接続の失敗に問題があります。
回避策として、「ネットワーク構成」に移動し、「切断時に再起動」を有効にすることができます。
これにより、Wi-Fiから切断されるとすぐにESPが再起動されます。
また、これにより、アクセスポイントが一時的にオフラインになった場合に備えて、ESPが構成モードに詰まっているのを防ぐために、構成ポータルタイムアウトが3分に減少します。
これがまだ切断を修正せず、ESPが到達不可能になった場合、「再起動タイマー」オプションを最後の手段として使用できます。
構成された時間の後にESPを再起動します。
まず、nukiデバイスのファームウェアバージョンが最新であることを確認してください。古いバージョンにはペアリングの問題があります。
次に、ESP32フラッシュを消去してから、ファームウェアを(再)フラッシュしてみてください。
フラッシュを消去するには、Espressifダウンロードツールを使用して、[消去]ボタンをクリックします。
その後、「How-To-Flash.txt」ファイルまたはWebFlashを使用しているように、ファームウェアをフラッシュします。
また、ペアリングが許可されていることを確認してください。 Nukiスマートフォンアプリでは、「設定」 - >「機能と構成」 - >「ボタンとLED」に移動し、「Bluetoohペアリング」が有効になっていることを確認します。
次に、LEDライトが照らされたままになるまで、ボタンを数秒間押します。
M5stack Poesp32ユニットに関するメモ。ここでは、最初のBluetoothレセプションは非常に貧弱です(1メートル未満)。その理由は、モジュールにはPCB上にアンテナがなく、IPEXコネクタのみがあるためです。外部SMAアンテナ(IPEX、またはその他の名前U.FL、IPAX、IPX、AMC、MHF、UMCC)を改造することにより、Bluetooth/Wi-Fiは数メートルで動作します。
ホームアシスタントの少なくともバージョン2023.8.0を使用していることを確認してください。
ホームアシスタント開発者は、古いバージョンのサポートを破るMQTTオートディスカバリーに変更を加えており、Nuki Hubはこれらの変更を採用しています。
残念ながら、ホームアシスタントの古いバージョンは、ヌキハブ発見の実装によってもはやサポートされていないことを意味します。
Nukiによると、これは設計によるものであり、Pro Lockの仕様の一部です。
組み込みのWi-FiまたはBridge(Nuki Hubが登録)を使用できます。
または、Wi-Fiまたはスレッドを使用してハイブリッドモードでnukiハブを使用して、ハイブリッドモードを参照してください
両方を同時に使用することはサポートされていません。
一部の機能は、ロック(またはオープナー)ファームウェアによって制限されており、PINが提供された場合にのみアクセスできます。
ロック(またはオープナー)をセットアップするときは、NukiスマートフォンアプリにPINを設定する必要があります。
Nuki Hub資格情報ページに移動し、このピンを入力して[保存]をクリックします。
configuratorのメインページを確認して、入力されたピンが有効かどうかを確認します
前のポイントを参照してください。この機能は、正しいピンを構成する必要があります。
「unlatch」オプションが「アクセスレベルの構成」の下でチェックされていることを確認してください。
lock.openサービスを使用して、ラッチングをトリガーできます。
あるいは、ホームアシスタントディスカバリーを通じて「イルシュ」ボタンが公開されます。
このボタンはデフォルトで無効になっていますが、ホームアシスタントUIで有効にすることができます。
複数のnukiデバイスを使用する場合、各デバイスの異なるパスを構成する必要があります。
「MQTT構成」に移動し、少なくとも1つのデバイスの「基本的なMQTT構成」の下で「MQTT Nukihubパス」を変更します。
これは、ハイブリッドモード(公式MQTT / Nuki Hubの共存)を使用していない場合、「アプリとして登録」を有効にした結果です。
そうすることで、ヌキ・ハブは常にロックを照会し、そのため過度のバッテリーの排水を引き起こすようになります。
この動作を防ぐために、nukiハブの対立、「アプリとして登録」を無効にし、再ペアを使用します。
ヌキハブに加えてヌキブリッジを使用する場合でも、ハイブリッドモードを使用している場合を除き、「アプリとして登録する」ことを有効にしないでください!
Docker(優先)
dockerディレクトリのreadmeを参照してください。Dockerを使用して構築する手順をご覧ください。
プラットフォームIO、DebianベースのLinuxディストリビューションの指示(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
これは、ヌキデバイス用のサードパーティソフトウェアです。
このプロジェクトまたはその著者は、Nuki Home Solutions GmbHに関連付けられていません。
公式製品とサポートについては、ヌキ公式ウェブサイトを参照してください。
https://nuki.io/
ライセンスの詳細については、付属のライセンスファイルを確認してください。