LoginSignup
3
4

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-10-06

目的

  • 昔買っていた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の商品を選択してください"と記載されたアプリ通知とメール通知が来るのだが、メール通知をオフにする方法がわからない。。

参考

3
4
0

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
4