質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1507閲覧

amazon-dashがreboot後serviceで動かない

yyonexx

総合スコア10

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2019/03/17 10:53

前提・実現したいこと

IFTTTのトリガーとしてAmazon dashボタンを使うために、amazon-dashパッケージを使おうとしています。

機器:Raspberry Pi Zero WH
OS :raspbian 9.8
Python : 2.7.13

発生している問題・エラーメッセージ

【Amazon Dash】ボタン押してIFTTTやPythonを起動する方法

を参考に設定し、configファイルを作り、

sudo systemctl start amazon-dash

でバックグラウンド実行した後にボタン押すときちんとIFTTTのWebhookにトリガーが行きました。

その後、
sudo systemctl enable amazon-dash
で自動起動設定した後rebootすると、serviceとしてactiveとなっているのですが、service内でエラーが起き動作完了しません。
ご助言よろしくお願いいたします。

該当のソースコード

/etc/amazon-dash.yml

# amazon-dash.yml # --------------- settings: delay: 10 devices: ## Example of how to execute a IFTTT Webhook event ------MAC Add-------: name: ALLOFF ifttt: ----IFTTT key---- event: ALLOFF

エラー内容

sudo systemctl status amazon-dash | less ● amazon-dash.service - Amazon Dash service Loaded: loaded (/usr/lib/systemd/system/amazon-dash.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2019-03-17 19:11:37 JST; 3min 13s ago Main PID: 826 (amazon-dash) CGroup: /system.slice/amazon-dash.service mq826 /usr/bin/python /usr/local/bin/amazon-dash run --config /etc/amazon-dash.yml 3月 17 19:12:05 raspberrypi env[826]: Traceback (most recent call last): 3月 17 19:12:05 raspberrypi env[826]: File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner 3月 17 19:12:05 raspberrypi env[826]: self.run() 3月 17 19:12:05 raspberrypi env[826]: File "/usr/lib/python2.7/threading.py", line 754, in run 3月 17 19:12:05 raspberrypi env[826]: self.__target(*self.__args, **self.__kwargs) 3月 17 19:12:05 raspberrypi env[826]: File "/usr/local/lib/python2.7/dist-packages/amazon_dash/listener.py", line 84, in execute 3月 17 19:12:05 raspberrypi env[826]: result = self.execute_instance.execute(root_allowed) 3月 17 19:12:05 raspberrypi env[826]: File "/usr/local/lib/python2.7/dist-packages/amazon_dash/execute.py", line 220, in execute 3月 17 19:12:05 raspberrypi env[826]: raise ExecuteError('Exception on request to {}: {}'.format(self.data['url'], e)) 3月 17 19:12:05 raspberrypi env[826]: ExecuteError: Exception on request to https://maker.ifttt.com/trigger/ALLOFF/with/key/------ifttt key-------: ("bad handshake: Error([('', 'osrandom_rand_bytes', 'getrandom() initialization failed.')],)",)

試したこと

上述エラーが出る状態で、pipでamazon-dashを再インストールして再度start、つまり

sudo systemctl stop amazon-dash sudo pip uninstall amazon-dash sudo pip install amazon-dash sudo systemctl start amazon-dash

すると、エラーは出なくなり、ボタン押すとIFTTTアプレット動作します。

また、この状態で
sudo systemctl restart amazon-dash
しても、問題なく動作します。

ただし、このamazon-dash再インストール後も、rebootすると上述したエラーが出ます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

ボタン押下後イベントとしてcmdを実行する分にはエラー出なかったので、
単純にcurlでIFTTTのwebhookにpostすることにしました。

# amazon-dash.yml # --------------- settings: delay: 10 devices: ------{MAC Add}-------: name: NEPIA_BUTTON user: pi cmd: curl -X POST https://maker.ifttt.com/trigger/{event}/with/key/{IFTT key}

投稿2019/03/23 18:23

yyonexx

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

amazon-dash サービスがネットワーク起動後じゃないと正しく起動しないのではないでしょうか?
systemd の起動ファイル(/usr/lib/systemd/system/amazon-dash.service)に After=network.target を設定するとどうでしょうか。

(設定例) [root]# cp /usr/lib/systemd/system/amazon-dash.service /etc/systemd/system/ [root]# vi /etc/systemd/system/amazon-dash.service (修正) [root]# cat /etc/systemd/system/amazon-dash.service [Unit] Description=Amazon Dash service After=network.target [Service] User=root ExecStart=/usr/bin/env amazon-dash run --config /etc/amazon-dash.yml Restart=always RestartSec=3 [Install] WantedBy=multi-user.target [root]# systemctl daemon-reload

投稿2019/03/18 08:55

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yyonexx

2019/03/18 15:48

ご回答ありがとうございます。 sudo systemctl cat amazon-dash でUnitファイルの場所がusr/lib/systemd/system/amazon-dash.service だったので、このファイルを提案していただいた内容で修正しました。 修正後daemon-reload, startして試すも状況変わらず。 rebootしても状況変わらず。 エラー内容も質問した時と同じ内容でした。 他に思い当たる対策ありますでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問