0
1

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 3 years have passed since last update.

投げ売りされていたEchodotを使って、自作のスマートリモコンを作成

Posted at

初めに

qiitaに初めての投稿。マークダウン形式の練習と、いろいろと苦戦を強いられた自作のスマートリモコンの作業ログを残すべく、この記事を書きました。とても重要なことですが、この記事の基本的な内容はすべて格安スマートリモコンの作り方という記事にわかりやすく書いてあります。ですので、このポンコツ記事を読むよりも先に、上記の記事を読むようお願い申し上げます。その上で、うまく動作しない場合はこの記事を見てみてもいいかもしれません。

作成に使ったもの、事前購入品目

格安スマートリモコンの作り方の記事に書いてあるものを用意しました。変更点としては

  • Rasberry pi zero
  • USB-有線LANアダプタ(Rasberry pi zero Wとかであればきっと不要)
  • Amazon Echo dot (Amazon unlimited music と合わせて980円でした)

#作業ログ
##赤外線リモコンの作成
こちらの記事、及びこちらの記事を見れば、問題なく作成できるかと思います。
私の場合は赤外線の届く範囲を強化するため、27Ωを2つ平行に並べました。

##Rasberry pi zeroの設定
インストールしたいものはNode.jsのパッケージに存在する
"yo", "hubot"
の2つでしたので、これをインストールします。

###Node.js,npmの導入
Raspberry PiからGoogle Homeを喋らせる この記事を参考にしました。

重要だったところ
下のバージョン以外では上手くワークしませんでした。

$ nvm install v8.9.4

また、npmに関しては最新版のバージョンをインストールされるよう促されましたが、最新版を入れても入れなくてもどちらでも大丈夫でした。しかし、最新版にしておくのが良いと判断し、

$ sudo npm install npm -g

を実行し、最新版にしました。

###hubotの導入
hubotの雛形の生成 この記事を参考にしました。

重要な点
hubot君がでてきて、Ownerなどを尋ねられなかった場合はNode.js, npmなどの環境がよろしくないと考えられます。その場合は一旦環境構築をやり直した方がいいかもしれません。私はこの場面にでくわしたので、【Mac版】node.jsのアンインストールと再インストール手順メモこの記事ソース版の場合を参考にして、実行ファイルがあるところを片っ端からrm -rfしていきました。

###hubot-broadlink-rmの導入
hubot拡張スクリプトであるhubot-broadlink-rmをインストールしました。

$ cd ~/homebot                      
$ npm install hubot-broadlink-rm --save

そして、homebotフォルダに存在するexternal-scripts.jsonを次のように編集しました。

[
  "hubot-broadlink-rm",    // この1行を追加
            :
]

しかし、ここで問題が生じました。この拡張スクリプトはhubot.v3には対応していないらしく、バージョンを変更するよう示唆されました。そこで、

$ cd ~/homebot
$ npm uninstall hubot
$ npm install hubot@2.19.0

npmパッケージを更新するときはもとのやつを一旦消して、改めてインストールすることが重要のようです。このとき@をつけることでバージョンを指定してインストールしました。(最初からこのバージョンを入れれば良いと思うのですが、"yo"が最新のhubotを入れてしまうので仕方がありませんでした。)あとは、homebotからコントロールするまでは同じですので省略します。

##ラズパイで回路を制御する
ここは格安スマートリモコンの作り方の記事と全く同じなので省略させていただきます。

##Alexaを用いたコントロール
ここでも格安スマートリモコンの作り方の記事を参照しました。しかし、hubot-slackがIFTTTからの指示を受け取らないという問題点がありました。この問題点はhubot-slackで発生した「ERROR An error occurred while processing. RTM event: a is not defined.」と格闘した話(解決)でもあげられており、これと全く同じエラーが発生していました。hubot-slackのバージョンを色々変更しましたが、どれも上手く行かなかったので、少し方法を変えました。

###Alexaとhubotをつなぐ
上記のようなこともあり、少し面倒ですが
Alexa→IFTTT→Webhook→hubot@slack→家電という経路に変更しました。

###hubot@slackの設定
SlackでRM Mini3を操作するの記事の通りの設定で問題ありませんでした。

###IFTTT→Slackの設定
今回はIFTTTのトリガーとしてAlexaを、thatとしてWebhookを選択しました。準備としてSlackのIncoming Webhooksの設定が必要でした。SlackのIncoming Webhooksを使い倒すを参照しました。Post to Channelの部分でhomebotを選択しました。Webhookの設定に大いに苦戦しましたが、最終的に

  • URL: Slack Incomming Webhooksで表示されたURL
  • Method: POST
  • Content Type: application/x-www-form-urlencoded
  • Body: payload={"text": "homebot send pi(hoge)"}

で上手くslackに流れ、hubotが拾ってくれました。これで声にて家電を操作することに成功しました。

#特に躓いた点

  • hubotが上手くインストールされなかった
  • hubot@slackがIFTTTからの指示を拾ってくれなかった

この二点です。前者に関しては最初にaptでnodejsを入れようとしたのですが、Raspi zeroに乗っているCPUでは最新版のNodejsが起動しないようでした。そこでsdesalas/node-pi-zeroを用いて上記と同じバージョンを導入したのですが、これだと何故かhubotが上手く入りませんでした。ここをどう攻略するかでかなり疲弊しました。

後者に関しては説明したとおりです。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?