HEMS

スマートロック

7月にポチったSwitchBot スマートロック キーパッドタッチ

SwitchBot スマートロック キーパッドタッチ

SwitchBot スマートロック キーパッドタッチ

8月25日に届いていたものの、ようやく時間ができたので設置。

ドアはセキスイのGOAL(ゴール) LX-5。

サムターンに高さを合わせたところスマートロックの高さが77mmほどになり、横方向(左向き)設置だとレバーハンドルが回らくなってしまったので、ドアチェーンの受け具を外して縦方向(下向き)の設置空間を確保。

元々ドアチェーンはズボンやスカートの裾に引っかかるだけだったので外していたので問題なし。

取り付けたあとに、サムターンの解錠位置と施錠位置を校正して終了。

キーパッドタッチはドアではなくすぐそばの壁にネジで固定。

特に指紋認証はちょっとタイムラグがあるものの、ポケットから鍵の束を取り出して目当ての鍵を探す手間と時間を考えたら十分早い。すぐに合鍵を無くす小学生を抱える悩めるファミリーにももってこい。

スマートプラグは結局壊れてしまったが、スマートロックはいい感じだ。

参照

SwitchBot (スイッチボット) https://www.switchbot.jp/

ガジェルバ https://gadgerba.com/

鍵の鉄人本店 http://www.kagiyasan.jp/

Amazon.co.jp https://www.amazon.co.jp/

Wikipedia https://ja.wikipedia.org/wiki/

スマートプラグ

大変不自然な折れ線グラフ

冷蔵庫の消費電力

Gosundのスマートプラグに置き換えて、浮いたSwitchBotプラグを4月の中旬からは冷蔵庫に移設し、アプリでモニタしたところリアルタイム値は4~140Wで遷移していたのだが、月単位の消費電力値は5~8Kwhでしかないことに気づいた。

日毎のグラフで見るとゼロの日も少なくなく「テレビだからそんなもんかと思ってたのだが、冷蔵庫なのにゼロな日があるわけないやろ」と突っ込みたくなった。

2020年から贔屓にしているSwitchBotシリーズだが、なかなか難しいなぁ。

参照

SwitchBot https://www.switchbot.jp/

Amazon.co.jp https://www.amazon.co.jp/

Wikipedia https://ja.wikipedia.org/wiki/

Nature Remo

昨年6月に復活したIRKitの不調具合が加速してきた折、3,980円であらゆる家電をIoT化。Matterリモコン「Nature Remo nano」というニュースで、一つ前世代のNature Remo miniを調達してたのを思い出し、慌てて投入。

yano@haswell:~/smarthome$ Token=zjKKjfAL6X36SJvKtuqqXxm2SHMFeAjBnTHxZUhdzjKKjfAL6X36SJvKtuqqXxm2SHMFeAjBnTHxZUhd
yano@haswell:~/smarthome$ curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -k --header "Authorization: Bearer ${Token}" | jq
[
  {
    "name": "Remo mini",
    "id": "deb07f72-a5ab-4262-915b-ABCDEFG",
    "created_at": "2023-08-09T01:31:06Z",
    "updated_at": "2023-08-09T02:15:12Z",
    "mac_address": "98:cd:ac:XX:YY:ZZ",
    "bt_mac_address": "98:cd:ac:XX:YY:ZZ",
    "serial_number": "2W221070012345678",
    "firmware_version": "Remo-mini/1.12.2",
    "temperature_offset": 0,
    "humidity_offset": 0,
    "users": [
      {
        "id": "c376a287-5300-4c8b-b793-ABCDEFG",
        "nickname": "ホゲホゲフーガ",
        "superuser": true
      }
    ],
    "newest_events": {
      "te": {
        "val": 32,
        "created_at": "2023-08-09T05:03:19Z"
      }
    }
  }
]
yano@haswell:~/smarthome$

Nature Developer PageによるとIRKitのような「Local API」も公開されているらしい。

SwitchBot API

IFTTT不発事故に起因する2021年版AirconShutdownの善後策。

SwitchBotハブミニ

SwitchBotハブミニ

これまではTwitter経由のIFTTTで家電リモコンSwitchBotを制御していたところ、2022年版IRKitでは直接APIを叩くようにできたので、SwitchBotSwitchBot Open APIを叩くことに。

SwitchBot Open API

https://api.switch-bot.com/v1.0/devices/**<deviceId>**/commands

というRESTエンドポイントに制御データをPOSTする枠組み。****で指定する対象装置は

curl --request GET 'https://api.switch-bot.com/v1.0/devices' \
  --header 'Authorization: 認証トークン' \
  --header 'Content-Type: application/json; charset=utf8'

で一覧を取得できる。なお、認証トークンはSwitchBotをHub経由でAPIから操作するに倣い、SwitchBotアプリの「開発者向けオプション」から取得できる。

ちなみに、エアコンの制御データのパラメータは

deviceType
commandType
Command
command parameter
Description
…となっているので、、エアコン停止用の
{  "command": "setAll", "parameter": "25,1,1,off", "commandType": "command"}

というデータを"switchbot_aircon_off.json"というファイルにして

#!/bin/bash
BASEPATH=$(dirname $0);
SWITCHBOT_API="https://api.switch-bot.com/v1.0"
SWITCHBOT_TOKEN="90edf....3431"
hdr_auth="Authorization:${SWITCHBOT_TOKEN}"
hdr_type="Content-Type: application/json"
# BODY="@${BASEPATH}/switchbot_aircon_off.json"
BODY='{"commandType": "command", "command": "setAll", "parameter": "25,1,1,off"}'
AIRCON_1F="01-2020XXXXXXXX-32"  # 1F
AIRCON_2F="01-2020YYYYYYYY-52"  # 2F
AIRCON_3F="01-2020ZZZZZZZZ-82"  # 3F
for DEVICE_ID in $AIRCON_1F $AIRCON_2F $AIRCON_3F;
do
    URL="${SWITCHBOT_API}/devices/${DEVICE_ID}/commands"
    curl "${URL}" \
         --silent -O /dev/null \
         -H "${hdr_auth}" -H "${hdr_type}" \
         -X POST -d "${BODY}"
done

というスクリプトを回せばエアコン3台が順次停止になる運びだ。

IFTTT解約

IFTTT不発事故で存在意義の見直しを余儀なくされたIFTTT。

トリガー失敗しました

IFTTT

家電リモコンSwitchBotの複数デバイスを制御してた事もあり、有償プランで契約していたのだが、期待していたGoogle HomeへのPush通知については一向に光明が見いだせない一方で、IRKitでローカルAPIを叩く方向も見えてきたので、IFTTTの有償プラン解約することに。

As you requested, your Pro subscription has been cancelled and you will lose access to the Pro features at the end of your current term. You’re always welcome back. If you’d like access to the Pro features again, go to your account and reactivate your subscription. Best, The IFTTT Team

参照

INTERNET Watch https://internet.watch.impress.co.jp/

IFTTT https://ifttt.com/

Wikipedia https://ja.wikipedia.org/wiki/

IRKit復活

先日エアコン自動停止不発問題。

IRKit

2016年に購入したIRKit

IFTTTが不発という事で善後策の検討していたのだが、iPhoneで家電を操作できるリモコンデバイス IRKitのアプリが実は直接叩いていて、そのDevice HTTP APIも公開されている事がわかった。

なんと、curlコマンド一発で赤外線データをJSON形式で取得できて、それをまたcurlで送りつければいいらしい。

というわけで、2016年に調達したIRKitを復活。

まずはBonjourを使ってIPアドレスを求める必要があるので、UbuntuではAvahiなツールを使って

yano@GT110b:~$ IRKIT=$(avahi-resolve -n $(avahi-browse -t _irkit._tcp | awk '{print $4"."$6}') | awk '{print $2}');echo ${IRKIT};

てな感じでIPアドレスを調べておく。

それから、IRKitに向けてリモコンボタンを押したあと、curlで

yano@GT110b:~$ curl -H "X-Requested-With: curl" -i "http://$IRKIT/messages"
HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Server: IRKit/3.0.0.0.g85190b1
Content-Type: text/plain
{"format":"raw","freq":38,"data":[843,843,935,843,935,843,,,,,935,787,935]}

てな感じで赤外線データが採れる事を確認。

IRKitの赤外線データはGET応答と引き換えに消去される仕様なので、もう一度IRKitに向けて同じリモコン操作を行い

yano@GT110b:~$ curl -H "X-Requested-With: curl" "http://$IRKIT/messages" --output ${HOME}/IRKit/urusara_off.json

てな感じでボディだけをファイルに保存したあと、

yano@GT110b:~$ curl -i "http://${IRKIT}/messages" -H "X-Requested-With: curl" -d @${HOME}/IRKit/urusara_off.json
HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Server: IRKit/3.0.0.0.g85190b1
Content-Type: text/plain
yano@GT110b:~$

とする事で、Ubuntuのターミナルからエアコンの停止に成功。

Nature Remo E Lite

Nature Remo E Lite

Nature Remo E Lite

2017年11月に調達したArmadillo-Box WS1をベースにしたIIJのWi-SUN対応Bルートアダプター「SA-M0」

瞬時電力の取得が数分空いたり、少々挙動が怪しくなってきた事もあり「Nature Remo E Lite」を調達。11,840円也。

NatureスマホHEMS「Nature Remo E(ネイチャーリモイー)」にはECHONET Liteを使って"エネルギー機器の制御"までできる高機能版もあるが、ECHONET Liteの受信に特化した廉価版で十分。

「Nature Remo E / E lite のスマートメーターに関するAPI」も公開されているようだが、まだローカルAPIが無いっぽいのが残念。

瞬時電力を使ったオートメーションが作れるようなので「ブレーカーが落ちる前にエアコンを止める」くらいはスマホアプリ単体で実装できるので、まぁいいか。

参照

家電 Watch https://kaden.watch.impress.co.jp/

Nature https://nature.global/

Nature Developer Page https://developer.nature.global/

Wikipedia https://ja.wikipedia.org/wiki/

ES500逝去

今朝、7時前にアンペアブレーカーが飛んでしまった。

瞬時電流計測値の推移

Twitter

自慢のエアコン自動停止が、まさかの不発だった模様。

スマートメーターのモニタリング、Twitterのアラートが発動し、IFTTTのトリガー動作までは動いていたので、どうやら最後の家電リモコンSwitchBotが発動しなかったっぽい。

配電盤に急いで復旧させたところ、サーバーの方でピーピー音がし始めたので、慌ててサーバーを確認したところ、UPSのアラート音だった。

2016年11月に交換したバッテリー(RBC2J)も2008年7月に調達していたものなので、もはや寿命を全うしているに違いない。ていうか、2004年9月の調達から17年以上稼働し続けているES500自体が寿命かも。

参照

APC Japan https://www.apc.com/jp/ja/

Wikipedia https://ja.wikipedia.org/wiki/

AirconShutdown

先日の電力需要逼迫騒動で再燃した"自動エアコン停止"大作戦。

AirconShutdown発動

TwitterとIFTTT

twurlとの連携は確認できたので、ロガーからUbuntu 20.04にアップデートしたvpstwurlを叩いて、IFTTTをトリガーすることに成功。

参照

@IT https://www.atmarkit.co.jp/

INTERNET Watch https://internet.watch.impress.co.jp/

窓の杜 https://forest.watch.impress.co.jp/

Qiita https://www.moongift.jp/

MOONGIFT https://www.moongift.jp/

GitHub https://github.com/

IFTTT https://ifttt.com/

Wikipedia https://ja.wikipedia.org/wiki/

twurl連携

先日の電力需要逼迫騒動で再燃した"自動エアコン停止"大作戦。

現在の消費電力をツイート!

Twitter

IFTTTを介して家電リモコンSwitchBotのハブミニのアクションを起こせば良いのはわかっているのだが、GmailがIFTTTのトリガーに使えず難航。

結局、トリガーはTwitterに。アカウントを取得しただけで常用してないのだが、活用してない方がノイズの影響がなくて良いだろうという考えもある。

しかし、Ubuntu 14のRubyが古くてtwurlがインストールできず、GT110bでは動かせないので、Ubuntu 20.04 ServerHaswelltwurlのテスト。

ロガーからsshでHaswelltwurlを叩いて、IFTTTをトリガーすることに成功。

ついでにGoogle Homeに消費電力を喋らせようと思っていたのだが、こいつもまたIFTTTのアクションが無くて断念。

次の宿題だ。

参照

@IT https://www.atmarkit.co.jp/

INTERNET Watch https://internet.watch.impress.co.jp/

窓の杜 https://forest.watch.impress.co.jp/

Qiita https://www.moongift.jp/

MOONGIFT https://www.moongift.jp/

GitHub https://github.com/

IFTTT https://ifttt.com/

Wikipedia https://ja.wikipedia.org/wiki/