{"id":34917490,"url":"https://github.com/banban525/echonetlite2mqtt","last_synced_at":"2026-03-01T16:05:41.337Z","repository":{"id":65316555,"uuid":"432489550","full_name":"banban525/echonetlite2mqtt","owner":"banban525","description":"ECHONET Lite to MQTT bridge.","archived":false,"fork":false,"pushed_at":"2026-02-23T09:57:39.000Z","size":41919,"stargazers_count":69,"open_issues_count":9,"forks_count":11,"subscribers_count":9,"default_branch":"master","last_synced_at":"2026-02-23T18:26:49.869Z","etag":null,"topics":["docker","echonet-lite","mit-license","mqtt"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/banban525.png","metadata":{"files":{"readme":"README.ja.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-11-27T14:56:50.000Z","updated_at":"2026-02-23T09:37:50.000Z","dependencies_parsed_at":"2023-10-23T14:54:16.291Z","dependency_job_id":"7073d604-c36b-468f-be5a-ab51207633df","html_url":"https://github.com/banban525/echonetlite2mqtt","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/banban525/echonetlite2mqtt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/banban525%2Fechonetlite2mqtt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/banban525%2Fechonetlite2mqtt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/banban525%2Fechonetlite2mqtt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/banban525%2Fechonetlite2mqtt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/banban525","download_url":"https://codeload.github.com/banban525/echonetlite2mqtt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/banban525%2Fechonetlite2mqtt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29974350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T15:41:30.362Z","status":"ssl_error","status_checked_at":"2026-03-01T15:37:07.343Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","echonet-lite","mit-license","mqtt"],"created_at":"2025-12-26T12:51:27.230Z","updated_at":"2026-03-01T16:05:41.330Z","avatar_url":"https://github.com/banban525.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ECHONETLite2MQTT\r\n\r\n[![MIT License](https://img.shields.io/github/license/banban525/echonetlite2mqtt)](LICENSE)\r\n[![GitHub Workflow Build Status](https://img.shields.io/github/actions/workflow/status/banban525/echonetlite2mqtt/action.yml)\r\n](https://github.com/banban525/echonetlite2mqtt/actions/workflows/action.yml)\r\n[![GitHub Workflow Test Status](https://img.shields.io/github/actions/workflow/status/banban525/echonetlite2mqtt/test.yml?label=test)\r\n](https://github.com/banban525/echonetlite2mqtt/actions/workflows/test.yml)\r\n[![Docker Hub](https://img.shields.io/docker/pulls/banban525/echonetlite2mqtt)](https://hub.docker.com/r/banban525/echonetlite2mqtt)\r\n\r\nECHONET Lite と MQTT をつなぐブリッジです。\r\n\r\n([Readme in English is here.](readme.md))\r\n\r\n## 説明\r\n\r\nこのアプリケーションは、ECHONET Lite機器の情報をMQTTに送信し、MQTTからきたコマンドでECHONET Lite機器を操作します。\r\nこれによって、MQTTに対応したスマートホームアプリケーションからECHONET Lite機器を操作できるようになります。\r\n\r\n![topimage](images/topimage.jpg)\r\n\r\nサポートする機器は以下の通りです。\r\n* 防犯センサ (0x0002)\r\n* 非常ボタン (0x0003)\r\n* 人体検知センサ (0x0007)\r\n* 温度センサ (0x0011)\r\n* 湿度センサ (0x0012)\r\n* 風呂沸き上がりセンサ (0x0016)\r\n* CO2センサ (0x001B)\r\n* VOCセンサ (0x001D)\r\n* 電力量センサ (0x0022)\r\n* 電流センサ (0x0023)\r\n* 照度センサ (0x00D0)\r\n* 家庭用エアコン (0x0130)\r\n* 換気扇 (0x0133)\r\n* 空調換気扇 (0x0134)\r\n* 空気清浄器 (0x0135)\r\n* 業務用パッケージエアコン室内機 (設備用を除く) (0x0156)\r\n* 業務用パッケージエアコン室外機 (設備用を除く) (0x0157)\r\n* 電動ブラインド・日よけ (0x0260)\r\n* 電動雨戸・シャッター (0x0263)\r\n* 電動窓 (0x0265)\r\n* 電気温水器 (0x026B)\r\n* 電気錠 (0x026F)\r\n* 瞬間式給湯器 (0x0272)\r\n* 浴室暖房乾燥機 (0x0273)\r\n* 住宅用太陽光発電 (0x0279)\r\n* 冷温水熱源機 (0x027A)\r\n* 床暖房 (0x027B)\r\n* 燃料電池 (0x027C)\r\n* 蓄電池 (0x027D)\r\n* 電気自動車充放電器 (0x027E)\r\n* 電力量メータ (0x0280)\r\n* 水流量メータ (0x0281)\r\n* ガスメータ (0x0282)\r\n* 分電盤メータリング (0x0287)\r\n* 低圧スマート電力量メータ (0x0288)\r\n* 高圧スマート電力量メータ (0x028A)\r\n* スマート電力量サブメータ (0x028D)\r\n* 分散型電源電力量メータ (0x028E)\r\n* 双方向対応高圧スマート電力量メータ (0x028F)\r\n* 一般照明 (0x0290)\r\n* 単機能照明 (0x0291)\r\n* 電気自動車充電器 (0x02A1)\r\n* 照明システム (0x02A3)\r\n* 拡張照明システム (0x02A4)\r\n* マルチ入力PCS (0x02A5)\r\n* ハイブリッド給湯機 (0x02A6)\r\n* 周波数制御 (0x02A7)\r\n* 冷凍冷蔵庫 (0x03B7)\r\n* クッキングヒータ (0x03B9)\r\n* 炊飯器 (0x03BB)\r\n* 業務用ショーケース (0x03CE)\r\n* 洗濯乾燥機 (0x03D3)\r\n* 業務用ショーケース向け室外機 (0x03D4)\r\n* スイッチ (JEM-A/HA端子対応) (0x05FD)\r\n* コントローラ (0x05FF)\r\n* テレビ (0x0602)\r\n\r\n\r\n## デモ\r\n\r\n![demo-webui](demo/demo_webUI.gif)\r\n\r\n![demo-aircon](demo/demo-AirCnditioner-daikin.gif)\r\n\r\n### [他のデモと設定例はこちらを見てください](demo/demo.md)\r\n\r\n## 使い方\r\n\r\nechonetlite2mqttは同じネットワーク内のデバイスを自動で見つけます。\r\nそのため、デバイスと同じネットワークで実行する必要があります。\r\nまた、docker使用時は、 `--net=host` が必要です。\r\n\r\n\r\n### Home AssistantのAddonとして使用する場合\r\n\r\n以下のリンクからインストールできます。\r\n\r\n  [![Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Fbanban525%2Fhassio-echonetlite2mqtt)\r\n\r\n\r\n詳細はこちらを参照してください: https://github.com/banban525/hassio-echonetlite2mqtt\r\n\r\n### Dockerを使用する場合\r\n\r\n1. 次のコマンドで起動します。\r\n```\r\ndocker run -d --net=host -e MQTT_BROKER=\"mqtt://your.mqtt.brocker\" banban525/echonetlite2mqtt \r\n```\r\n2. ブラウザーで \"http://(docker host):3000\" を開くと、検出された機器とログを見ることができます。\r\n\r\n\r\n### Node.jsを使用する場合\r\n\r\n1. このリポジトリをクローンします。\r\n\r\n```\r\ngit clone https://github.com/banban525/echonetlite2mqtt.git\r\n```\r\n\r\n2. リポジトリのルートディレクトリで以下のコマンドを実行して、初期設定を行います。\r\n\r\n```\r\ncd echonetlite2mqtt\r\nnpm install\r\n```\r\n\r\n3. 次のコマンドで起動します。\r\n\r\n```\r\nnpm start -- --MqttBroker \"mqtt://your.mqtt.brocker\"\r\n```\r\n\r\n4. ブラウザーで \"http://(docker host):3000\" を開くと、検出された機器とログを見ることができます。\r\n\r\n\r\n\r\n### 環境変数とコマンドライン引数\r\n\r\nMQTT オプション\r\n\r\n|  環境変数 | コマンドライン引数 | 説明 |\r\n| ------------------     | --------------------- | ----------- |\r\n|  `MQTT_BROKER`       | `--MqttBroker`     | MQTTブローカーのURLを指定します。\"mqtt://\" または \"mqtts://\"で始まる必要があります。  |\r\n|  `MQTT_PORT`         | `--MqttPort`       | MQTTブローカーのポートNoを指定します。(デフォルト: 1883) |\r\n|  `MQTT_CLIENT_ID`    | `--MqttClientId`   | MQTTのクライアントIDを指定します。 (Default: (空)) |\r\n|  `MQTT_USERNAME`     | `--MqttUsername`   | MQTTのユーザー名を指定します。 (Default: (空))|\r\n|  `MQTT_PASSWORD`     | `--MqttPassword`   | MQTTのパスワードを指定します。 (Default: (空))|\r\n|  `MQTT_OPTION_FILE`  | `--MqttOptionFile` | MQTTのオプションファイルのパスを指定します。ファイルの形式は [MQTT.js](https://github.com/mqttjs/MQTT.js) の Client Options を参照してください。 (デフォルト: (空))  |\r\n|  `MQTT_CA_FILE`      | `--MqttCaFile`     | MQTTの CA ファイルのパスを指定します。パスが指定されればロードして、MQTTのオプションの\"ca\"に設定されます。 (デフォルト: ロードしない)  |\r\n|  `MQTT_CERT_FILE`    | `--MqttCertFile`   | MQTTの cert ファイルのパスを指定します。パスが指定されればロードして、MQTTのオプションの\"cert\"に設定されます。 (デフォルト: ロードしない)  |\r\n|  `MQTT_KEY_FILE`     | `--MqttKeyFile`    | MQTTの key ファイルのパスを指定します。パスが指定されればロードして、MQTTのオプションの\"key\"に設定されます。 (デフォルト: ロードしない)  |\r\n| `MQTT_BASE_TOPIC`    | `--MqttBaseTopic`  | MQTTトピックのプレフィックスを指定します。(デフォルト:\"echonetlite2mqtt/elapi/v2/devices\") |\r\n\r\n\r\nREST API オプション\r\n\r\n|  環境変数 | コマンドライン引数 | 説明 |\r\n| ------------------     | --------------------- | ----------- |\r\n| `REST_API_HOST` | `--RestApiHost` | 管理者ページのIPを指定します。複数のIPがある場合にこの設定が使用されます。(デフォルト: 0.0.0.0) |\r\n| `REST_API_PORT` | `--RestApiPort` | 管理者ページのポートNoを指定します. (デフォルト: 3000) |\r\n| `REST_API_ROOT` | `--RestApiRoot` | REST APIのURLのプレフィックスを指定します。 (Default: empty) |\r\n| `REST_API_SERVER_SENT_EVENT_METHOD` | `--RestApiServerSentEventMethod` | Webページでのサーバーイベント送信方法を指定します。デフォルトはWebSocket、1を指定するとロングポーリングになります。Webページが自動更新しない場合、1を試してください。(デフォルト: WebSocket) |\r\n\r\nECHONET Lite オプション\r\n\r\n|  環境変数 | コマンドライン引数 | 説明 |\r\n| ------------------     | --------------------- | ----------- |\r\n| `ECHONET_TARGET_NETWORK` | `--echonetTargetNetwork` | ECHONET Liteのネットワークを\"000.000.000.000/00\"の形で指定します。 (デフォルト: 自動) |\r\n| `ECHONET_DEVICE_IP_LIST` | `--echonetDeviceIpList` | デバイスのIPをカンマ区切りで指定します。(デフォルト:無し) |\r\n| `ECHONET_COMMAND_TIMEOUT` | `--echonetCommandTimeout` | ECHONET Liteコマンドの応答待ちの時間を指定します. (単位: ms) (デフォルト: 3000) |\r\n| `ECHONET_DISABLE_AUTO_DEVICE_DISCOVERY` | `--echonetDisableAutoDeviceDiscovery` | デバイスの自動探索を無効にします。(デフォルト: off) |\r\n| `ECHONET_ALIAS_FILE`   | `--echonetAliasFile`  | エイリアスオプションファイルを指定します。 (デフォルト: 使用しない) |\r\n| `ECHONET_LEGACY_MULTI_NIC_MODE` | `--echonetLegacyMultiNicMode` | 以前の通信モードに戻します。 (デフォルト: off) |\r\n| `ECHONET_UNKNOWN_AS_ERROR`   | `--echonetUnknownAsError`  | 不明なデバイスクラスや不明なプロパティをエラーとして扱います。 (デフォルト: off) |\r\n| `ECHONET_USER_CUSTOM_MRA_FOLDER` | `--echonetUserCustomMraFolder` | ユーザー指定のカスタムMRAフォルダを指定します。 (デフォルト: 使用しない) |\r\n| ~~`ECHONET_INTERVAL_TO_GET_PROPERTIES`~~ | ~~`--echonetIntervalToGetProperties`~~ | (v3.0.0以降で廃止されました) ~~ECHONET Liteプロパティの受信間隔を指定します。(単位: ms) (デフォルト: 100)~~ |\r\n| ~~`ECHONET_ALT_MULTI_NIC_MODE`~~ | ~~`--echonetAltMultiNicMode`~~ | (v3.0.0以降で廃止されました) ~~複数NIC環境での代替モードです。もしデバイスから状態を受信できない場合は指定します。 (デフォルト: OFF)~~ |\r\n\r\n### エイリアスオプションファイルの形式\r\n\r\n`ECHONET_ALIAS_FILE` または `--echonetAliasFile` を使ってオプションファイルのパスを指定することで、\r\nデバイスIdのエイリアスを指定することができます。\r\n\r\nエイリアスオプションファイルは次の形式のJsonファイルです。\r\n\r\n```\r\n{\r\n  \"aliases\":[\r\n    {\r\n      \"name\":\"living_aircon\",\r\n      \"eoj\":\"0130*\",\r\n      \"ip\":\"192.168.1.48\"\r\n    },\r\n    {\r\n      \"name\":\"bedroom_aircon\",\r\n      \"id\":\"fe0000251c4190000081e5bb0000000000\"\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n|プロパティ| 説明 |\r\n| -------- | ---------------- |\r\n| name     | [必須] Idの代わりに付けるデバイスの名前 |\r\n| ip       | デバイスを特定するためのIpアドレス。 ワイルドカードとして `*` が使用可能です。 |\r\n| eoj      | デバイスを特定するためのECHONET LiteのオブジェクトId。 ワイルドカードとして `*` が使用可能です。 |\r\n| id       | デバイスを特定するためのId。 ワイルドカードとして `*` が使用可能です。 |\r\n\r\nip、eoj、idの条件をすべてみたした場合に、エイリアスが採用されます。\r\n複数マッチした場合は先頭が優先されます。\r\n\r\n\r\n## ver.1.x から ver.2.x へのマイグレーション\r\n\r\nver.1.x から ver.2.xの主な変更点は以下です。\r\n\r\n* (1) デフォルトのMQTTトピックが、\"echonetlite2mqtt/elapi/v1\" から \"echonetlite2mqtt/elapi/v2\" に変わりました。\r\n* (2) 一部の機器でIdが変更になりました。\r\n* (3) \"schema\"の仕様が変わりました。\r\n* (4) Web UIが再構築されました。\r\n\r\nできるだけ、ver.1.xとの互換性を保ちたい場合、(1)の対応には`MQTT_BASE_TOPIC` (または `--MqttBaseTopic` )を、\r\n(2)の対応には、`ECHONET_ALIAS_FILE` ( または `--echonetAliasFile` ) を使ってください。\r\n\r\n```\r\ndocker run -d --net=host -e MQTT_BROKER=\"mqtt://your.mqtt.brocker\" -e MQTT_BASE_TOPIC=\"echonetlite2mqtt/elapi/v1/devices\" -e ECHONET_ALIAS_FILE=/app/configure/alias.json -v (some folder):/app/configure banban525/echonetlite2mqtt \r\n\r\nor \r\n\r\nnpm start -- --MqttBroker \"mqtt://your.mqtt.brocker\" --MqttBaseTopic \"echonetlite2mqtt/elapi/v1/devices\" --echonetAliasFile ./alias.json\r\n```\r\n\r\n\r\n## FAQ\r\n\r\n### プロパティが自動で更新されない\r\n\r\n#### (1) 複数のIPがある環境だと正常に動作しないことがあります。\r\n\r\nもし実行環境に複数のIPがある場合、 `ECHONET_TARGET_NETWORK` と `ECHONET_ALT_MULTI_NIC_MODE` を試してみてください。\r\n(Node.jsを使用している場合は `--echonetTargetNetwork` と `--echonetAltMultiNicMode`)\r\n\r\n* Dockerの場合: `-e ECHONET_TARGET_NETWORK=\"192.168.1.0/24\" -e ECHONET_ALT_MULTI_NIC_MODE=1`\r\n* Node.jsの場合: `--echonetTargetNetwork \"192.168.1.0/24\" --echonetAltMultiNicMode`\r\n\r\n#### (2) ECHONET Lite 機器が自動でプロパティを送らないのかも\r\n\r\nWeb UIからプロパティを更新することができます。\r\nWeb UIで更新できるなら、MQTTトピックを送ることで手動で更新することができます。\r\n\r\n例えば、エアコンの室温を更新したい場合、次のMQTTトピックを送ります。\r\n(\"fe00-your-device-id-00000000000000\"はデバイスIdに変更してください)\r\n```\r\nechonetlite2mqtt/elapi/v2/devices/fe00-your-device-id-00000000000000/properties/roomTemperature/request\r\n```\r\n\r\n### エアコンの設定温度を0.5度単位で指定したい\r\n\r\nECHONET Liteの「温度設定値」が1度単位なので対応できません。\r\n\r\n以下の仕様書に記載されています。\r\n* (日本語) https://echonet.jp/spec_g/#standard-05\r\n* (英語) https://echonet.jp/spec-en/#standard-05\r\n\r\n### デバイスの定義を追加したい\r\n\r\nECHONETLite2MQTTはデバイス定義として [Echonet lite Machine Readable Appendix (MRA)](https://echonet.jp/spec_mra_rr3/) を使用しています。\r\nしかし、MRAにないデバイスクラス、またはメーカー独自の拡張を使用したい場合があります。\r\n環境変数 `ECHONET_USER_CUSTOM_MRA_FOLDER` ( `--echonetUserCustomMraFolder` )でカスタムMRAフォルダを指定することで、ユーザー定義のMRAを使用することができます。\r\n\r\n例: エアコン(eoj=0x0130)の場合\r\n* Dockerの場合: `-e ECHONET_USER_CUSTOM_MRA_FOLDER=/(your-folder)/MY_MRA/`\r\n* Node.jsの場合: `--echonetUserCustomMraFolder \"/(your-folder)/MY_MRA/\"`\r\n\r\n```\r\n/(your-folder)/MY_MRA/0x0130.json\r\n{\r\n  \"eoj\": \"0x0130\"\r\n  ...\r\n}\r\n\r\n```\r\n\r\nファイルフォーマットは、 [Echonet lite Machine Readable Appendix (MRA)](https://echonet.jp/spec_mra_rq1/) を参考にしてください。\r\nまた、 \"MraTypes.schema.json\" にJson Schemaが用意されています。\r\n\r\n\r\n## 使用しているサードパーティ\r\n\r\n* リポジトリ内の画像は\"いらすとや\" (https://www.irasutoya.com/) の素材を使用しています。\r\n* ECHONET Liteの定義は Machine Readable Appendix (MRA) Version 1.3.1 (https://echonet.jp/spec_mra_rr3/) を使用しています。\r\n\r\n## ライセンス\r\n\r\n[MIT](LICENSE)\r\n\r\n## Author\r\n\r\n[banban525](https://github.com/banban525)\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbanban525%2Fechonetlite2mqtt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbanban525%2Fechonetlite2mqtt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbanban525%2Fechonetlite2mqtt/lists"}