家電リモコン

Nature Remo 障害

この7月、Nature Remoで2回の障害が発生していた模様。

この夏の酷暑とは関係なさそうだが、7月19日のブルースクリーン多発事件もあり、やな感じだ。

当初はIoTという名前の通り、何でもかんでもInternet接続させて喜んでいたものの、必要以上にクラウド依存になってしまう反動からIRkitのローカル対応などに取り組んでいる今日このごろ。ローカル対応が抜本的な対策となると考えていますというNatureを応援したい。

参照

ITmedia NEWS https://www.itmedia.co.jp/news/

Nature https://nature.global/

Nature Remoシステム稼働状況 https://status.nature.global/

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台が順次停止になる運びだ。

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

壁掛け

Google Home Mini家電リモコンことREX-WFIREX2。

IMG_1243.JPG

家電リモコンとGoogle Home Miniを壁掛けに

いつでも家族みんなが使えるようにダイニングテーブルに置いていたのだが、ルンバに飽きた好奇心旺盛の広大君が気になるらしく、執拗にちょっかいを出してくるので、壁掛け方式にスイッチ。

「家電リモコン」は底面に壁掛け用ホールが設けてあったので、石膏ボード用のフックで難なく壁掛けOK。

問題は「Google Home Mini」。3Dプリンタで出力された造形物を扱う「DMM.make クリエイターズマーケット」で「Google Home Miniの壁付けホルダー」がいい感じなのだが、ITmediaの記事で書いているとおり**「やや値が張る」**のが正直なところ。

ELECOMのモデルも面白いが、やっぱり**「やや値が張る」**のは以下同文。

Amazonでよく見掛けるコンセントに直接ぶら下げるタイプは千円未満で少し手頃だが、費用対効果を考えるとまだ微妙。足元に設置してしまうと見通しが悪く聞き取りにくくなるし、そもそも広大の思うツボなので論外だけどな。

そもそも、あの丸い形に合わせようとするから大変なので、メッシュポーチに入れてぶら下げる方式でもいいんじゃないの?と発想を転換。

ダイソー調達で108円の格安解決。

参照

ITmedia PC USER https://www.itmedia.co.jp/pcuser/

DMM.make クリエイターズマーケット https://make.dmm.com/

ELECOM https://www.elecom.co.jp/

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

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

スマートホームスキル対応

2017年8月に導入したスマート家電コントローラREX-WFIREX2

Alexaスマートホームスキルでエアコンの操作が可能に

ラトックシステム株式会社より

2018年春にスマートホームスキルに対応していたが、Alexaでエアコンの温度設定や設定変更ができるサーモスタット機能がサポートされた事からエアコンの操作で「家電リモコンを使って…」と言わなくて済むようになったそうな。

これでこそ、スマート。

参照

Engadget 日本版 https://japanese.engadget.com/

ラトックシステム株式会社 http://www.ratocsystems.com/

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

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

スマートホームスキル対応

8月に導入したスマート家電コントローラREX-WFIREX2

REX-WFIREX2とPCF-C15

REX-WFIREX2とPCF-C15

12月Amazon AlexaとEcho対応で見送られていたスマートホームスキルに対応したという事なので早速試してみた。

アプリとデバイスをリンクする為に必要なアカウントの登録(メールアドレスとパスワードのアプリ登録)が相変わらず面倒なのだが、さらに「カスタムスキル」と「スマートホームスキル」の両方で(つまり2度)やらないとならないという不条理に閉口。リモコンのファームアップデートや思わぬIOSのアップデートなどもあってなかなかに難航したが、結局1時間ほど放置したあとで手続きを行ったら無事にリンク完了。

「アレクサ、テレビをつけて」も一発でできるようになったので、ようやくGoogle Homeに肩を並べたかな。

参照

AV Watch https://av.watch.impress.co.jp/

ギズモード・ジャパン https://www.gizmodo.jp/

ラトックシステム株式会社 http://www.ratocsystems.com/

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

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

スマートホームスキル対応

昨年8月に導入したスマート家電コントローラREX-WFIREX2

REX-WFIREX2とPCF-C15

REX-WFIREX2とPCF-C15

12月に書いたAmazon AlexaとEcho対応の残念な部分が改善された模様。

スマートホームスキルに対応し

新たに、Amazonが用意しているスマートホームスキルに対応する事で、 スマートスピーカーに「アレクサ、○○をつけて(消して)」と話しかけるだけで、 家電の電源ON/OFFがコントロール可能。スマートホームスキルとカスタムスキルは併用ができるため、「アレクサ、テレビをつけて」でテレビの電源をON(スマートホームスキル)、「アレクサ、家電リモコンを使って1チャンネルにして」でチャンネル変更(カスタムスキル)といった、各スキルのメリットを活かした操作ができる。

という事だ。

Echoも昨日到着したので、ナイスタイミングだね。

参照

AV Watch https://av.watch.impress.co.jp/

ギズモード・ジャパン https://www.gizmodo.jp/

ラトックシステム株式会社 http://www.ratocsystems.com/

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

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

家電リモコン

8月に導入したスマート家電コントローラREX-WFIREX2

REX-WFIREX2とPCF-C15

REX-WFIREX2とPCF-C15

12月に書いたAmazon AlexaとEcho対応に続いて、Google Home対応が発表。

こちらも「OK Google、家電リモコンにつないで」と一旦接続しなくてはならない不細工さはあるもの、

よく使う操作はGoogleアシスタントのショートカットに登録し、「OK Google、明かりをつけて」などの短いワードで動作させることも可能。

はスマートな感じ。

クラウド用の面倒なアカウント登録が必要だが、早速「ねぇGoogle、暖房をつけて」、「ねぇGoogle、エアコンを止めて」のショートカットを登録し、動作確認OK。

参照

AV Watch https://av.watch.impress.co.jp/

ギズモード・ジャパン https://www.gizmodo.jp/

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

ラトックシステム株式会社 http://www.ratocsystems.com/

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

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

家電リモコンの憂鬱

先日書いたスマート家電コントローラREX-WFIREX2

REX-WFIREX2とPCF-C15

REX-WFIREX2とPCF-C15

Amazon Alexaでの家電操作に対応という事でAmazon Echoの招待を楽しみにしているのだが、全く買う気を失わせるほど大変残念な事が発覚。

ケータイ Watchの記事では

Amazon Echoに登録すると「アレクサ、テレビをつけて」「アレクサ、28度で除湿して」といったように、話しかけて家電を操作できるようになる。

という事だったが、実際のところはギズモードの記事に書いてあるように

「アレクサ、家電リモコンでテレビをつけて」 「アレクサ、家電リモコンで電気をつけて」 と、絶対に「家電リモコンで」という動作の種類を指定しなくてはなりません。わずか8文字、言葉が増えるだけなのですが、それがこの上なくスマート感を削ぎ落としています。

という事だ。

Amazonが提供する開発スキルには、ON/OFFだけに特化した『標準スマートホームスキル』と、ON/OFF以上の細かい制御が可能な『カスタムスキル』があって、スマート家電コントローラREX-WFIREX2のようにTVのチャンネル変更やエアコンの温度調整などの細かい制御をしようとすると『カスタムスキル』を選択せざるを得ないのだが、いちいち「家電リモコンで」と言わないとならないなんて、ちっともスマートじゃ無い。

参照

ギズモード・ジャパン https://www.gizmodo.jp/

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

ラトックシステム株式会社 http://www.ratocsystems.com/

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

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