Raspberry Pi 3 Model B+にamazon-dashをインストール


目的


  • 昔買っていたAmazon Dash Buttonを発掘した。

  • Raspberry Piもあるので何かしたい。


動作環境


  • Raspbian


    • Version 9.4

    • Kernel version 4.14



  • Raspberry Pi 3 Model B+

  • Nekmo/amazon-dash v1.3.0


事前準備

MacからRaspberry Pi 3 Model B+にSSHで接続する


手順


Amazon Dash Buttonをセットアップする

amazon.co.jpのDash Buttonをセットアップするから、


次回の設定用に、Wi-Fiのパスワードを保存しておきたい場合は、チェックボックスをオンにしてください。〜


まで設定し、商品を選択画面右上のxボタンをタップし、セットアップを終了する




Dash Button端末を使って再注文する商品を選択します。〜


からの手順は設定しない、設定するとボタンを押した時に注文されるようになってしまう。


Amazon Dash Buttonからの通知を検出するOSSのインストール及び設定

Amazon Dash Buttonからの通知を検出するため、Nekmo/amazon-dashをインストールする


pipのインストール



  1. Python 3.4未満だったため、pipを別途インストールする

    $ python -V
    
    Python 2.7.13



  2. パッケージの最新化を実施する

    $ sudo apt-get update
    
    $ sudo apt-get upgrade
    〜省略〜
    Do you want to continue? [Y/n] y
    〜省略〜



  3. pipのインストール

    $ sudo apt-get install python-pip
    
    〜省略〜
    Do you want to continue? [Y/n] y
    〜省略〜



  4. インストールした後pipをアップデートするとなんかエラーが出るようになるが

    $ sudo pip install --upgrade pip
    
    $ pip
    Traceback (most recent call last):
    File "/usr/bin/pip", line 9, in <module>
    from pip import main
    ImportError: cannot import name main



  5. 削除すると動くようになる。。謎。。

    $ sudo apt-get remove python-pip
    
    pip -V
    pip 18.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)



Nekmo/amazon-dashのインストール及び設定



  1. pipでamazon-dashをインストールする

    $ sudo pip install amazon-dash
    
    $ amazon-dash --version
    You are running Amazon-dash v1.3.0 using Python 2.7.13.
    This is the latest release
    Installation path: /usr/local/lib/python2.7/dist-packages/amazon_dash
    Current path: /home/pi



  2. スクリプトの実行

    $ sudo python -m amazon_dash.install
    
    Executing all install scripts for Amazon-Dash
    [OK] config has been installed successfully
    [OK] systemd service has been installed successfully



  3. Amazon Dash ButtonのMACアドレスを検出する(下記コマンド実行後にAmazon Dash Buttonのボタンを押す)

    $ sudo amazon-dash discovery
    
    $ xx:xx:xx:xx:xx:xx (Amazon Device)



  4. configを編集し、検出したAmazon Dash Buttonの設定を追記する

    $ sudo nano /etc/amazon-dash.yml
    


    amazon-dash.yml

    # amazon-dash.yml
    
    # ---------------
    settings:
    delay: 10
    devices:
    xx:xx:xx:xx:xx:xx:
    name: Hello World
    user: pi
    cmd: echo "Hello World" >> HelloWorld.log
    cwd: /home/pi




  5. サービスを起動及び自動起動を設定する

    $ sudo systemctl start amazon-dash
    
    $ sudo systemctl enable amazon-dash
    Created symlink /etc/systemd/system/multi-user.target.wants/amazon-dash.service → /lib/systemd/system/amazon-dash.service.


  6. Amazon Dash Buttonのボタンを押す



  7. 設定が動作しているか確認する

    $ cat HelloWorld.log
    
    Hello World



雑多


  • Amazon Dash Buttonの設定にスマートフォンが必要なことを知った。


  • Nekmo/amazon-dashを利用する際、dockerを利用しようとしたが、Raspberry Pi 3B+でDocker Hubから落としてきたimageを利用すると、ARMの影響か、 standard_init_linux.go:190: exec user process caused "exec format error” が出るのでそのままでは使えなく、Nekmo/amazon-dashにあるDockerファイルから自前でビルドしようとしたが、依存しているpython:3.7-alpineのイメージも自前でビルドしないとならないっぽく、今回は諦めた。

  • Amazon Dash Buttonタップ時、"Dash Buttonの商品を選択してください"と記載されたアプリ通知とメール通知が来るのだが、メール通知をオフにする方法がわからない。。


参考