Homepoint は、ESP32 チップセットで実行される、MQTT および HomeKit に接続されたスマートホーム デバイス用の画面ベースのインターフェイスです。
特徴
デモ
インストール
建てる
構成
シーンとデバイス
WiFi と MQTT
NTP 時間 (オプション)
例
ロードマップ
既知のバグと問題
貢献する
コーヒーを買ってきて
ライセンス
フロントスクリーンでシーン (デバイスのグループ) を確認し、トリガーします。
シーンにダイブすることで (インジケーターをタップするか、ボタンを長押しすることで)個々のデバイスをトリガーします。
複数のデバイスで部分的にオンになっているシーンを一目で確認できます。
温度、湿度、空気質センサー、Tasmota エネルギー測定値のサポート。
リモート構成: Web インターフェイスを通じて HomePoint を構成し、再起動します。再フラッシュする必要はありません。
Over-The-Air Updates (ベータ) : HomePoint の新しいバージョンを無線でワイヤレスでフラッシュします。
HomeKit スイッチのサポート(ホームポイントから切り替えるためのホーム アプリのオートメーションのセットアップ)*
タッチ スクリーンまたはボタン ベースのナビゲーションの両方をサポートします。
Reactive : デバイスが他の場所からトリガーされるたびに画面が更新されます。
JSON ファイルによる簡単な構成で、追加のコードは必要ありません。
スクリーンセーバーは10 分後に画面をオフにして電力を節約します。
ステータスバーには、 WiFi と MQTT の接続と時間が表示されます。
フェールセーフ モード: 構成が破損した場合に備えて、リモート アクセス用のフェールセーフ モードが提供されます。
コンパイル済みバイナリ: コンパイルせずに ESP32 デバイス上で HomePoint をフラッシュするだけです。
*現在実験ブランチ中。
HomePoint は、汎用 ESP32 モジュールまたは M5Stack にフラッシュできるように、2 つのコンパイル済み .bin ファイルで提供されます。ハードウェア設定の詳細については、Wiki を参照してください。
インストール手順:
https://github.com/espressif/esptool/releases から ESPTools をダウンロードします
python setup.py install
を使用して ESPTools をインストールします
esptool.py -b 921600 write_flash -fs 4MB -fm dout 0x0 homepoint_espgeneric.bin
(M5Stack の場合は homepoint_m5stack.bin) を実行します。
または、以下の取り付けビデオをご覧ください。
ホームポイントは ESP-IDF SDK を使用して作成されました。
詳細なビルド手順は Wiki で参照できます。
設定はdata/config.json
にあります。
HomePoint は、それぞれデバイスを選択して 2 種類のシーンをサポートします。
シーンの種類 | デバイスの種類 |
---|---|
ライト、スイッチ | (なし、すべてのデバイスはスイッチであると予想されます) |
センサー | カスタマイズ可能なアイコン (singleValue / CombinedValues) を使用して 1 つまたは 2 つの値を一度に表示します |
グループ化されたセンサーは、最大 2 つのデバイスをサポートします (画面スペースのため)。
ライトとスイッチは、グループ内の無限の数のデバイスをサポートします。
一部のセンサーはデータ形式としてJSON を使用しており、その場合はキーを定義できます。これらはセンサーの JSON ペイロードの任意のレベルに存在できます。Tasmota スマート プラグの場合、キー値「Power」を使用して現在の電力消費量を表示できます。
WiFi および MQTT 資格情報は最上位で定義されます。
正しいタイムゾーンを設定するには、NTP TZ 設定をコピーしてtimezone
キーに貼り付けます。
IL9341 ディスプレイ ユニットの一部は、タッチ スクリーン座標がディスプレイにどのように対応するか、LED バックライトがどのように制御されるかなどの点で異なるようです。したがって、構成ファイルのデフォルトをオーバーライドするいくつかのオプションを提供します。
鍵 | タイプ | 価値 |
---|---|---|
「LEDピンプルアップ」 | ブール値 | true またはfalse - ユニットに応じてプルアップ/プルダウンできるバックライト電力を制御します。 |
「画面の回転角度」 | 内部 | 回転パラメータは 0、1、2、または 3 で、90 度の角度で増分します。 |
「スクリーンセーバーミニッツ」 | 内部 | ディスプレイがオフになるまでの分数 (デフォルトは 10) |
「タッチX軸反転」 | ブール | デフォルト: false 、位置がずれている場合に備えて、タッチスクリーンの X 軸を反転します。 |
「タッチYAxisInverted」 | ブール | デフォルト: true 、位置がずれている場合に備えて、タッチスクリーンの Y 軸を反転します。 |
「displayColorInverted」 | ブール | デフォルト: false 、カラースペースを反転します (つまり、ILI9342C ディスプレイの場合) |
MQTT トピックでは、MQTT 仕様に従って大文字と小文字が区別されます。
{ "wifi": "MyWifiSSID"、"password": "My Wifi パスワード"、"hostname": "オプションのホスト名"、"login": "admin"、"webpass": "admin"、"mqttbroker": "mqtt: //192.168.1.2", "mqttusername": "mqttusername", "mqttpasswd": "mymqttpassword", "timezone": "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00", "scenes": [{ "name": "リビングルーム" 、 "type": "ライト"、"icon": "リビングルーム"、"devices": [{ "name": "Some Light", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/ステータス/ライト/色相ランプ 1", " onValue": "true"、"offValue": "false" }、 { "name": "ドアライト", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status /lights/色相ランプ 1"、"onValue": "true"、"offValue": "false"、"icon": "ドア" }、 】 }、 { "name": "寝室", "type": "センサー", "icon": "ドア", "devices": [{ "name": "温度 DHT センサー", "type": "singleValue", " jsondata": true、"firstIcon": "temperature_small"、"firstKey": "温度"、"getTopic": "寝室/esptemp" }、 { "name": "Tasmota スマート プラグ"、"type": "singleValue"、"jsondata": true、"firstKey": "Power"、"firstIcon":"wattage_small"、"getTopic": "tele/DVES_2F73BE/センサー" }] }] }
より完全に構成された例は、ここから入手できます。
Homebridge-Hue および HomeAssistant / ZigBee2MQTT との統合に関するドキュメント
ホームキットのサポート
テスト
バグを見つけた場合、またはサポートが必要な場合は、ためらわずに問題を開いてください:)
貢献は大歓迎です!ハッキングしてプルリクエストを開くだけです。ただし、既存のコードのスタイルに従ってください (つまり、タブやスペースはありません)。
ESP32 の C++ についてもっと学び、スマートホームでの具体的な問題を解決したかったので、自由時間に HomePoint を開発しました。
開発が進むにつれ、私はこのプロジェクトをオープンソースにし、メーカー コミュニティにとってよりアクセスしやすくユーザーフレンドリーにする方法を考えました。
HomePoint やこの作品の使用を気に入っていただけた場合は、少額の寄付を検討してください。しかし、心配しないでください。とにかくこの作業を続けます ;-)。
MIT © マティアス・フリック