IFTTT

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のターミナルからエアコンの停止に成功。

IFTTT不発

トリガー失敗しました

IFTTT

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

家電リモコンSwitchBotの両方が発動しなかったという事からも、なんとなくIFTTTが怪しいような気がしてきた。

改めてアクティビティを確認したところ、7時前のイベントではIFTTTのトリガー動作までは動いていたのだが、15時のイベントでは**“Applet failed”**となっていた事がわかった。

やっぱり、クラウドなどの外部のサーバ経由だとそれこそ余計な単一障害点となってしまうので、自宅サーバから直接叩く方法を模索するか。

参照

IFTTT https://ifttt.com/

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

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/

IFTTT有償化

個人的にはなかなかお試しの域を抜けないままの「IFTTT」。

Introducing IFTTT Pro, a new plan for Applet creators

Introducing IFTTT Proより

さまざまなサービスを組み合わせた“アプレット”を作成・実行できるクラウドサービス“IFTTT”を運営する米IFTTTは9月9日(現地時間)、新しいプラン“IFTTT Pro”を発表した。要望の多かった魅力的な機能を多く備えた有償プランだ。

無償版で作成できるアプレットの数は3つになるようだ。

という事で、敷居が高くなるようだ。

まぁ今のところアプレット3つも無いので無償版でこと足りるのだが、

“IFTTT Pro”の価格は、月額9.99米ドル。同社はこれを十分に妥当な価格だとしているが、幅広いユーザーからフィードバックを得たいとの考えから、当面の間は費用をユーザー自身が決定できるシステムを導入している。

事なので、ひとまず最低ラインで移行しとくかな。

参照

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

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

IFTTT https://ifttt.com/

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

SwitchBot温湿度計

6月に導入したSwitchBotの温湿度計

SwitchBot 温湿度計

SwitchBot 温湿度計

「REX-WFIREX2」のようにIFTTT連携でGoogleスプレッドシート出力させようと思ったのだが、どうやらしきい値を跨いだ時にしか発動しないらしく、データが全く採れない。

「結局ダメか~」と思ったのだが、クラウド接続を有効にしておけば測定データ自体はハブミニ経由で常時アップロードされていて、「SwitchBot」アプリで後から振り返り表示できる事が判明。ダウンロードもできるようだ。

参照

SwitchBot https://www.switchbot.jp/

ケータイ Watch https://k-tai.watch.impress.co.jp/

Qiita https://qiita.com/

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

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

SwitchBot温湿度計

2016年に導入したIRKit、2017年に導入した「スマート家電コントローラ REX-WFIREX2」で進行中のスマートホームプロジェクト。

SwitchBot 温湿度計

SwitchBot 温湿度計

「REX-WFIREX2」のセンサーデータをGoogleスプレッドシートに残す事ができるようになった。これで暑くなったら冷房、寒くなったら暖房というエアコンの自動運転に一歩近づいたかと思ったのだが、どうも更新周期が不安定で怪しい。

というわけでSwitchBotの温湿度計が気になっていたもののSwitchBotハブが無駄に高いしな~というわけで見送っていたのだが、ケータイ Watchの記事

「SwitchBotハブプラス」や「SwitchBotハブミニ」などの家電リモコンとしても使える専用ハブを組み合わせたい。特にSwitchBotハブミニは手頃な価格で十分な機能をもっているので個人的におすすめだ。

とあるのに気づき、3月からAmazonをウォッチしていたのだが、先週末のタイムセール祭りで合計5,060円のセール価格になっていたので早速調達。

ちょっと液晶中央部の表示が薄いのが残念だが、手に持ったり机に置いたりするだけで湿度が変化するし、エンペックス温湿度計と対比しても精度は悪くなさそうだ。

スマートメーターによる消費電力監視で、緊急停止できれば万全。

参照

SwitchBot https://www.switchbot.jp/

ケータイ Watch https://k-tai.watch.impress.co.jp/

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

AKIBA PC Hotline! https://akiba-pc.watch.impress.co.jp/

Qiita https://qiita.com/

Makuake https://www.makuake.com/

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

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