3
2

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.

Noderedでalexa.amazon.co.jpにログインできなくなったので、各スマート家電メーカーのAPIを叩く(初投稿)

Last updated at Posted at 2023-02-06

環境

  • Windows11 Desktop
    • Wireshark v4.0.3
  • iPhone 12 mini
  • +Styleのアプリ
    • +Styleのスマート電球
  • Wifiルータ
    • 上記全てのデバイスが有線/無線でこのルータに接続
    • インターネットWANもこのルータに接続

いきさつ

過去に、

参考文献1

参考文献2

などを参考に Alexa と自宅VPNサーバを兼ねている RaspberryPi 3B+ を連携して、
キーボードの入力から Alexa の定型アクションを実行できるようにしていた。

Alexa が Nodered で使えなくなる

それが最近(2023/02/06)になって、急に Nodered の Alexa-remote2 のアカウント認証が通らなくなった。
認証画面にてメールアドレスやパスワードを入力すると、以下のようなサイトに移動してしまう。
alexa.amazon.co.jp がなくなったらしい?

image.png

調べても同じ問題に直面している人がいなかったから、
参考文献2での Nodered のコード変更がまだアップデートなどに対応していないせいかと思い、
Amazon.com のアメリカサーバに新しくアカウントを作ったが、上手くいかなかった。

Nodered から Alexa 内の定型アクションが実行できないと、 Alexa を通してしか実行できないコマンドが使えなくなってしまう。非常に不便。

とりあえずの解決策は取れたが、それは次の投稿で。
まずは投稿する癖をつけよう。

続けて次の投稿をしようと思ったら、投稿頻度が高すぎるとQiitaに怒られたので、
このまま続きを書く。

もともと Nodered と Alexa でやっていたこと

元々キーボード入力で実現したかった定型アクションは、電球の切り替え。
PC用デスクと寝室が一体の部屋で暮らしているため、
PCを触るときには天井の電球をオンに、
布団でスマホを触るときは間接照明をオンにしたい。
この切り替えをするために毎回「アレクサ」と呼びかけるのが面倒だった。
だから Raspi にワイヤレステンキーを接続して、その入力に応じて Nodered から Alexa の定型アクションを行う、という手順を取っていた。

しかし Nodered と Alexa の連携が取れなくなったので、
Nodered から直接スマート電球のオンオフをコントロールすることにした。

今回の作業

自室で使用しているスマート電球は
SwitchBot製
Tplink製(正確にはスマートプラグが電球に接続していて、スマートプラグのオンオフで電球を操作する)
+Style製
※この合成獣状態が良くないとは思うのだが、これのおかげで勉強するいいきっかけになったのでヨシ。

上記3つのうち、 Nodered から直接叩けるものは SwitchBot と Tplink。
+Styleに関してはスマホアプリはあるものの、nodered 上では操作できなかった。
SwitchBot と Tplink に関して開発してくれた方に感謝。

SwitchBot

SwitchBotは

を参考に node-red-contrib-switchbot-api で以前行っていた。
SwitchBot の スマートリモコンが必要で、アプリから認証ファイルとかを出力する必要があったはず。
明記できなくて申し訳ない。

Tplink

Tplinkは node-red-contrib-tplink が最も良さげに見えるのだが、上手くいかなかった。
node-red-contrib-tplink-tapo-connect-api の方で上手くいった。
ただ、 node-red-contrib-tplink-tapo-connect-api は各ノード毎にメールアドレスとかを書く必要があるのが面倒だったので、
command ノードにmsg.payloadを設定する function ノードを付けることで、コピペで複製しやすくした。
image.png
image.png

それと、43un700b というモニターを使っていて、RJ45を使うとコマンドラインからモニターのpbpを制御できたりするから、そのノードも組み合わさって、(例: bash /home/shiganai/43un700/off.sh)
以下のような switch ノードで単純につなぐものが出来上がった。

image.png

+Style製の電球に関してはスマホアプリを解析することで
以下のように乗っ取れないかと試行しているところ。
メインの電球ではなかったので問題は大きくないが、勉強になるので頑張っている。

アプリを乗っ取るのにtcpやtslの勉強が必要で、おそらく乗っ取れない。
アプリ乗っ取りの試行錯誤はまだ決着がついていないので、次回に回す。

追記:

  • (23/02/06)アプリの乗っ取りは出来なかった。

3
2
6

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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?