12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

身の回りの困りごとを楽しく解決!【PR】Works Human IntelligenceAdvent Calendar 2021

Day 6

住宅設備家電(エアコン、電動シャッター、玄関電気錠)をHome Assistantでスマート化したい

Last updated at Posted at 2021-12-05

はじめに

(この記事の続きはこちらになります。ここで紹介したECHONETLite2MQTTもver.2.0.0になりました)

皆さん、コロナ禍で自宅に籠っている中、自宅のスマートホーム化に取り組んでいるのではないでしょうか?
私も Home Assistant に出会ってから、赤外線リモコンハブ、温湿度計、電動カーテンと、いろいろ導入してきました。
さらなるスマート化に向けてリフォームまで計画していて、ふと気づきます。

日本の住宅設備家電が、スマート化できない

いろいろ調べてみると、住宅家電は ECHONET Lite という規格に準拠しているようですが、
この ECHONET Lite がびっくりするくらい流行っていません。

しかし機種にもよりますが、次のような機器が ECHONET Lite に対応しているようです。

  • エアコン
  • 電動シャッター
  • 玄関電気錠
  • 電気給湯器
  • 分電盤
  • 壁スイッチ

ということは、ECHONET Liteが使えれば、さらなるスマートホーム化が進められる!
幸い、ECHONET Liteは 仕様 がいろいろ公開されています。
無いなら作ろうということで、自作してみました。

先に既存のプロダクトを調べてみる

自分で作らずに、既存のものが使えればそれに越したことはありません。
ググった感じだと、以下がありそうでした。

やはり、流行っていないためか、いまいちのようです。

作ったもの

ECHONETLite2mqtt として、GitHubに公開しています。

仕組みとしては、ECHONET LiteのデバイスのステータスをMQTTにPublishし、またMQTT経由できた命令をECHONET Lite側に送るようになっています。

topimage.jpg

Home Assistantは MQTTと連携したカスタムデバイス を作ることができるのでこれでECHONET LiteデバイスをHome Assistantから制御できます。
また、Node-REDやHomebridgeもMQTTに対応しているようなので、私は使ったことがありませんが、対応できるかも?

動作デモ

エアコン

リフォーム前の自宅で唯一のECHONET Lite対応デバイスである、三菱エアコン MSZ-X255-W です。
割と古い機種ですが、 MAC-900IF という無線LAN通信装置を増設することでECHONET Lite対応できました。

demo1.gif

左側がHome Assistantのエアコンコントロール、右側が実際に動作しているところです。
Home Assistantから暖房を付けたり温度設定をしたりしつつ、リモコン操作の結果もちゃんとHome Assistant側にフィードバックされます。
このエアコンは、動作モードと設定温度、温度計測値の他にも、風向や風量も制御できそうですが、そこまでは不要なのでHome Assistant側で作りこんでいません。ただMQTTとしては公開しているので頑張ればできるはずです。

Home Assistantでの設定の見本はこちらです。
"fe00-your-device-id-00000000000000"の部分は、手持ちのデバイスのIDを指定してください。
(デバイスIDはECHONETLite2mqtt のWeb画面からも確認できます)

climate:
  - platform: mqtt
    name: エアコン2
    icon: mdi:air-conditioner
    modes:
      - "off"
      - "cool"
      - "heat"
      - "dry"
    mode_command_template: >-
      {% set values = { 'off':'off', 'cool':'cooling',  'heat':'heating', 'dry':'dehumidification'} %}
      {{ values[value] if value in values.keys() else 'off' }}
    payload_on: "true"
    payload_off: "false"
    power_command_topic: "echonetlite2mqtt/elapi/v1/devices/fe00-your-device-id-00000000000000/properties/operationStatus/set"
    mode_command_topic: "echonetlite2mqtt/elapi/v1/devices/fe00-your-device-id-00000000000000/properties/operationMode/set"
    temperature_state_topic: "echonetlite2mqtt/elapi/v1/devices/fe00-your-device-id-00000000000000/properties/targetTemperature"
    temperature_command_topic: "echonetlite2mqtt/elapi/v1/devices/fe00-your-device-id-00000000000000/properties/targetTemperature/set"
    current_temperature_topic: "echonetlite2mqtt/elapi/v1/devices/fe00-your-device-id-00000000000000/properties/roomTemperature"
    mode_state_topic: "echonetlite2mqtt/elapi/v1/devices/fe00-your-device-id-00000000000000/properties"
    mode_state_template: >-
      {% if value_json.operationStatus == false %}
        off
      {% else %}
        {% set values = { 'off':'off', 'cooling':'cool',  'heating':'heat', 'dehumidification':'dry'} %}
        {{ values[value_json.operationMode] if value_json.operationMode in values.keys() else 'off' }}
      {% endif %}

電動シャッター(シミュレーター)

リフォーム予定では、Lixilのスマート電動シャッターを 変換アダプタを使ってECHONET Lite対応する予定です。
リフォーム前の現時点では操作対象がないので、シミュレーターを自作しました。

シミュレーターは規格に準拠しているつもりですが、細かいところに差があるかも?
とりあえず実機が来たら調整するとして、このシミュレーターもHome Assistantから制御できています。

demo3.gif
左側のHome Assistantでシャッターの開閉ができますし、実機でも操作できます。

Home Assistantでの設定見本はこちらです。
エアコンと同じように"fe00-your-device-id-00000000000000"の部分は、手持ちのデバイスのIDを指定してください。

cover:
  - platform: mqtt
    command_topic: "echonetlite2mqtt/elapi/v1/devices/fe00-your-device-id-00000000000000/properties/openCloseOperation/set"
    device_class: shutter
    name: shutter1
    payload_close: "close"
    payload_open: "open"
    payload_stop: "stop"
    state_closed: "fullyClosed"
    state_closing: "closing"
    state_open: "fullyOpen"
    state_opening: "opening"
    state_stopped: "stoppedHalfway"
    state_topic: "echonetlite2mqtt/elapi/v1/devices/fe00-your-device-id-00000000000000/properties/openCloseStatus"

玄関電気錠(シミュレーター)

最近は、玄関のロックも電動化しているんですね。
ただ、ECHONET Liteには電動玄関ドアの規格がありますが、市販の電気錠はまだ対応していないようです。
電気錠とインターフォンを連動させるJEM-A規格というものがあり、これは IP/JEM-A変換アダプター でECHONET Liteで制御できるようです。
ということで、こちらもシミュレーターで対応。

demo4.gif

左側がHome Assistantで、施錠/開錠がボタンで操作可能です。また見にくいですが、左側のHome Assistantのアイコンも施錠/開錠で変わっています。
もちろん、右側の実機でも操作可能です。

Home Assistantでの設定見本はこちらです。
こちらもエアコンと同じように"fe00-your-device-id-00000000000000"の部分は、手持ちのデバイスのIDを指定してください。

lock:
  - platform: mqtt
    name: Frontdoor-lock
    state_topic: "echonetlite2mqtt/elapi/v1/devices/fe00-your-device-id-00000000000000/properties/operationStatus"
    command_topic: "echonetlite2mqtt/elapi/v1/devices/fe00-your-device-id-00000000000000/properties/operationStatus/set"
    payload_lock: "false"
    payload_unlock: "true"
    state_locked: "false"
    state_unlocked: "true"
    optimistic: false
    qos: 1
    retain: true

せっかくなので中身の解説を少々

ECHONET Lite周りは、Node.js用の echonet-liteパッケージを利用しています。
GitHubを見ると、まだちゃんと更新されているようだったので。
また、ECHONET LiteからJSONの形に変換していますが、これは、 ECHONET Lite Web API ガイドライン にJSONのスキーマ―が公開されていましたので、これを利用しています。
完全ではないですが、できるだけ近い形にしています。

実機でないと細かい仕様がわからない点はありましたが、仕様書がちゃんとあるので、手間がかかっただけでそれほど難しくはなかったです。

今後の予定

動作を優先させたのでコードは割と汚いです。まずはリファクタリングしたい・・・。

自宅のリフォーム予定としては、エコキュート(電気給湯器)と分電盤もスマート化する予定なので、こちらも対応する予定です。
また、エアコンをECHONET Liteで制御してわかったのですが、やはりエアコンはリモコンのほうが高機能ですね。
たとえば、「風よけ」とか「不在時自動OFF」はリモコンで電源を入れた場合だけ、「内部クリーン」はリモコンで電源を切った場合だけ動作するようです。
ということは、エアコンのON/OFFだけは赤外線ハブを使って動作させ、その後にHome Assistant側の温度設定や風向、風量で上書きするようにすれば良さそうです。
実現性はありそうなので、今後対応する予定です。

それでは皆さん、よいスマートホームライフを。

12
8
14

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?