M3 Tech Talk #147
2年半ぶりに2度目のAmazon Dash Button利用でキュ キュット(洗剤)を買おうとしたら動かなかったのでIoTボタンにした話です
Amazon Dash Button 話星川 貴樹 (@oboenikui)M3 Tech Talk #147
View Slide
こと 発端2年半ぶりに2度目 Amazon Dash Button利用でキュキュット(洗剤)を買おうとしたら動かなかった
こと 発端https://www.amazon.com/gp/help/customer/display.html?nodeId=2017060502019/8/31をもって、Dash Buttonデバイスで商品 購入ができなくなりました。
1回押されただけで捨てられるキュキュットDash Buttonがかわいそう!!!!!!!!
Amazonから 追い打ちhttps://www.amazon.com/gp/help/customer/display.html?nodeId=2017060502019/12/31に、あなた ボタン 自動的に登録解除されリセットされる で操作 必要 ありません。
Dash Buttonがリセットされると……Wi-Fi AP情報が削除される→ IoTボタンとして使えなくなる→ Amazonアプリから設定もできなくなる でWi-Fi機能を持ちながら無限プチプチ程度 価値 ボタンに成り下がる→ や い!!!
期限 !?!?!?!?!?https://www.amazon.com/gp/help/customer/display.html?nodeId=201706050
\(^o^)/
本当に使えなくなったか確認Python amazon-dashを利用or$ pip install -U amazon-dash$ pip3 install -U amazon_dash
本当に使えなくなったか確認$ sudo amazon-dash discoveryMACアドレス
\(^o^)/検出できた!!!
補足:セットアップしていない場合2016年5月以前に製造されたDash Button 場合、セットアッププロセス中に超音波信号でWi-Fi情報を受信するところでバッファオーバーフローを発生させられるため、これを悪用してWi-Fi セットアップができる利用に Wi-Fiを搭載したLinuxマシンとイヤホンが必要https://docs.nekmo.org/amazon-dash/rescue.html
インターネットから遮断するインターネットに接続されていると設定がリセットされる恐れがある で、ルータ 設定で遮断する(家庭用ルータでもペアレンタルコントロール的な機能でできそう)
Dash ButtonでSlack通知する(n番煎じ)
Dash ButtonをIoTボタンにする原理Dash Button ボタンが押されると1. 起動2. Wi-Fi接続 & インターネット接続3. Amazon サーバにデバイス情報を送信 (= 注文処理)
Dash ButtonをIoTボタンにする原理Dash Button ボタンが押されると1. 起動2. Wi-Fi接続 & インターネット接続3. Amazon サーバにデバイス情報を送信 (= 注文処理)インターネット接続をブロックしたため
Wi-Fi接続をトリガーとして処理するWi-Fi接続後、ルータ MACアドレスを知るためにARP要求をブロードキャストするブロードキャストパケットを監視するサーバをLAN内に建てておき、Dash Button MACアドレス情報を持つARP要求 受信をトリガーとして特定処理をする図 引用元:https://www.itbook.info/study/p73.html
Python amazon-dashで監視Dash Button トリガーアクションとして主要な処理が実装されている以前 Node.js dash-buttonが主流だったようだが、今 メンテされていない& amazon-dash推しになってる
config filesettings:interface: eth0devices:0C:47:C9:98:4A:12: # discoveryコマンドで調べたMACアドレスname: Slackurl: 'https://hooks.slack.com/services/XXXXX/XXXXXX/XXXXXXX'method: postcontent-type: jsonbody: '{"text": "hello"}'0C:47:C9:98:4A:13:...
デプロイDocker 場合systemd 場合 (Raspberry Piで動かすならこっち)$ docker run -it --network=host \-v:/config/amazon-dash.yml \nekmo/amazon-dash:latest \amazon-dash run --ignore-perms --root-allowed \--config /config/amazon-dash.yml$ sudo cp /etc/amazon-dash.yml$ sudo python3 -m amazon_dash.install$ sudo systemctl enable amazon-dash && sudo systemctl start amazon-dash
動作押してから2秒くらいでSlack投稿されるDash Button 仕様上連打 できないಈը
まとめn番煎じ Dash Button活用法について話しました余ったDash Buttonがある人 活用してみてください