IFTTTとirkitとGoogleHomeを使って家電を操作する
概要
GoogleHome, irkit, IFTTT を使って音声で家電を操作する。
やること
今回やりたかったのは普段リモコンを使って操作している家電を音声で操作するということです。
エアコンや照明やテレビと行った家電を音声操作できるようにする一番簡単な方法はHueのようなGoogleHome対応家電を買うことなのですが、今回は既存の家電を継続して使いたいのでirkitで家電を操作します。
このときirkitはGoogleHomeに対応してないので一旦IFTTTをかませるようにします。
図にするとこんな感じです。
やったこと
1. IFTTTで新しいアプレットを作る
前にやった感じでアプレットを作っていきます。
2. トリガーにGoogleAssistantを設定する
アプレットの内容はこんな感じです。
3. webhooks というサービスを起動するようにする
4. irkitでリモコンの信号を調べる
5. IFTTTの make web request で調べたデータを貼る
こんな感じ
以上!!!!!
結果
動いたよ
Philips Hue(ヒュー) スターターセット v2 929001156101 【AmazonAlexa認定取得製品】
- 出版社/メーカー: Philips(フィリップス)
- 発売日: 2016/04/06
- メディア: Personal Computers
- この商品を含むブログを見る
IRKit - Control Home Electronics Using iPhone/iPad [並行輸入品]
- 出版社/メーカー: maaash.jp
- メディア: その他
- この商品を含むブログを見る
IFTTTとGoogleHomeを連携させる
概要
GoogleHomeとIFTTTを連携させて遊ぶ
GoogleHomeからTwitterで呟けるようにする
IFTTTとは
今回はIFTTTという便利サービスを使って色々遊んでいきます。
IFTTTとは
です。こいつさえあれば、基本なんでもできます。
英語ですけど使い方は簡単です。
GoogleHomeとIFTTTを連携させて遊ぶ
遊びがてら、GoogleHomeからTwitterで呟けるようにします。
IFTTTでサインアップしたら右のNew Appletから新しいアプレットを作っていきます。
するとこの画面になるので This の箇所をクリックします
すると、トリガーとなるサービスを選択できるようになるのでGoogleAssistantを選びます。
今回は特定のフレーズで呟くようにするので、「say a phrase with a text ingredient」を選びます
こんな感じのトリガーにします。
終わったら今度はThatの部分を選びます。
今度はTwitterを選択して Post Tweetをするようにします。
add ingredient で先ほどのGoogleHomeでの文字列を受け取ることができます。
あとはFinshボタンを押せば終わりです。
以上!簡単!!便利!!!
irkit のセットアップ
概要
irkitという赤外線学習リモコンを買ったのでそのセットアップをする
irkitとは
割と昔に発売されたけど、IoT界隈で長らく愛されている赤外線学習リモコンです。
irkitでは以下みたいな感じなことができます。
- 既存のリモコンの信号を覚えることができる
- 覚えた信号をHTTPリクエストに応じて発することができる
- アプリで家電操作ができる
ちょっとターミナルとかはいじる必要がありますが、簡単に家電をインターネットと連携できる便利デバイスです。
IRKit - Control Home Electronics Using iPhone/iPad [並行輸入品]
- 出版社/メーカー: maaash.jp
- メディア: その他
- この商品を含むブログを見る
セットアップ
このアプリを入れて、ガイダンスの指示の通りにやっていけばアプリで家電の操作ができるようになります。
play.google.com
もっと家電ハック的なことがやりたい方はこちらをどーぞ。
ドキュメントがしっかり書いてあるし、日本語です。
圧倒的感謝
IRKit - Open Source WiFi Connected Infrared Remote Controller
おまけ
普通にアマゾンでも買えます。僕が買ったときは7000円くらいだったのですが、Alexaとかみたいなスマートスピーカーが大流行しているおかげでここら辺も品薄気味みたいですね。
IRKit - Control Home Electronics Using iPhone/iPad [並行輸入品]
- 出版社/メーカー: maaash.jp
- メディア: その他
- この商品を含むブログを見る
ただ、 アプリで家電操作したいというだけならこちらでもいいかもしれませんね。
Alexa にも対応しているらしいですし
LinkJapan eRemote IoTリモコン 家でも外からでもいつでもスマホで自宅の家電を操作 【AmazonAlexa対応製品】
- 出版社/メーカー: LinkJapan
- メディア: エレクトロニクス
- この商品を含むブログを見る
マイティースキンズのAmazon Echo Dot ( 1st世代)ラップカバーステッカースキンソリッドブラック
- 出版社/メーカー: MightySkins
- メディア: エレクトロニクス
- この商品を含むブログを見る
Amazon Echo Plus (Newモデル)、スマートホームハブ内蔵、ブラック
- 出版社/メーカー: Amazon
- 発売日: 2017/11/15
- メディア: エレクトロニクス
- この商品を含むブログを見る
GoogleHome のセットアップ方法
概要
GoogleHome を買ってセットアップをしたのでその方法をまとめとく
GoogleHomeとは
Google の出しているスマートスピーカー。
アメリカではだいぶ前から出ているけど、最近日本語に対応してCMがバンバンながれるようになった。
検索、目覚まし、家電操作、なんでもござれの凄いやつ。
PVをみるとそのすごさがなんとなく分かる。
セットアップ
特にやることはなかった。
電源を繋いだあとは、スマホのアプリのなかでやる。
このアプリを入れると端末をセットアップしますか?みたいなやつが出てくるのでそこをタップする。
あとはアプリのガイダンスに乗っ取って設定を進めていくだけ。
動いたよ
玄関のスマートロックができるQrioのセットアップの方法
概要
Qrioというスマートロックデバイスを買ったのでそのセットアップ手法をまとめておく
Qrioとは
ベンチャーキャピタルのWiLと、世界的な電機メーカーのソニーとのジョイントベンチャーとして設立されたQrio株式会社が出しているスマートロックデバイス。
仕組みとしては鍵のつまみの箇所に取り付けて、つまみの開閉をIoTデバイスを通じて自由にできるようにするモノっぽい
Qrioを使うとこんなことができる。
- 鍵の箇所に被せるだけで設置完了
- 既存の鍵と並行して使える
- アプリを介して施錠管理
- 自動施錠
- 位置情報を使って自動開錠
- 鍵のシェア
今回はこのQrioを買ったのでセットアップをしていく。
セットアップ方法
amazon で注文したところこんな感じで届いた
開封してみるとこんな感じ。
手紙の封筒にはオーナー登録カードと取り扱い説明書が入ってた。
Qrionには電池がなくなったときのための予備電池も入っているらしいが、その分は別途購入する必要がありそう。
大小様々な鍵つまみに対応するためにSMLの複数の部品があったり、高さ調節のための台が2個入っていたりする。
今回はLサイズの鍵鍵つまみで、台は2台とも取り付けた。
なんとなく取り付けられそうなきがしたのでアプリを入れて設定をしていく。
普通に日本語で親切なチュートリアルがあったので、それに乗っ取って設定をして行ったら詰まることなくできた。
無事動いたよ
Qrio Smart Lock (キュリオスマートロック) スマートフォンで自宅のドアをキーレス化 Q-SL1
- 出版社/メーカー: Qrio
- 発売日: 2015/09/19
- メディア: エレクトロニクス
- この商品を含むブログ (4件) を見る
Qrio Hub 自宅の鍵を遠隔操作 鍵の閉め忘れ防止にも 外出中でも鍵の開閉をスマホに通知(Qrio Smart Lock拡張デバイス) Q-H1 【AmazonAlexa認定取得製品】
- 出版社/メーカー: Qrio
- 発売日: 2016/12/22
- メディア: エレクトロニクス
- この商品を含むブログを見る
CIでPullRequestの自動レビューを行う
概要
Dangerを使ってプルリクエストの自動レビューを行う
詳細
僕は未熟な人間なのでよくないプルリクを多々投げてしまいます タイポとか、使ってない関数残ってたりとか、記法の間違えとか
そういう小さな間違えで先輩の貴重な時間を使うのは申し訳なさすぎるのでDangerというものを導入しようと思いました Dangerは自動でプルリクにレビューをしてくれるライブラリです
人の手を煩わせなくても指摘できるような小さなミスを機械がレビューしてくれます
今回はこのDangerとeslintていい感じのレビューをしてくれるBotを作っていきます
導入方法
今回はDangerfileでcheckstyle.xml
形式のファイルを読み込んでレビューを行うようにするので、eslint
でcheckstyle.xml
を出力できるように準備しておく
{ ~~~ 省略 ~~~ scripts: { "lint:checkstyle": "eslint src -f checkstyle -o checkstyle.xml" } ~~~ 省略 ~~~ }
Gemを使う準備をする
$ bundle init
Gemの設定
# frozen_string_literal: true source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } gem 'danger' #checkstyle を読み込んでレビューできるようにするためのGem gem 'danger-checkstyle_format'
Gem を入れる
$ bundle install
ルートディレクトリでDangerfileを作る
# including in a project's CHANGELOG for example github.dismiss_out_of_range_messages checkstyle_format.base_path = Dir.pwd checkstyle_format.report("${your-path}/checkstyle.xml")
circleciでdangerを実行するように設定します
このときにDANGER_GITHUB_API_TOKEN
という値を同時に設定しておきます
このTOKENの値はGithubで setting
-> developper setting
-> personal access token
で取得できます
このTokenの所持者のアカウントでdangerによるレビューが行われるのでBot用のアカウントを作っておくと便利です
machine: environment: DANGER_GITHUB_API_TOKEN: ${your github api token} test: override: - npm run lint:checkstyle - bundle exec danger
これで、circle ci でビルドが走るたびに stylecheck.xml が生成され、その値によってレビューがされるようになります
すごい!便利!はっぴー!
参考
actions SDK Carousel のサンプルコード
Actions SDK を使っている時にカルーセルの使い方がわからなかったので色々調べていた
結論としては使い方とか全部ライブラリのコードにコメントアウトで書いてあったのだけど
いつかそのことを忘れてググってもすぐでてくるようにメモ
const app = new ApiAiApp({request, response}); const WELCOME_INTENT = 'input.welcome'; const OPTION_INTENT = 'option.select'; function welcomeIntent (app) { app.askWithCarousel('Which of these looks good?', app.buildCarousel() .addItems([ app.buildOptionItem(SELECTION_KEY_ONE, ['synonym of KEY_ONE 1', 'synonym of KEY_ONE 2']) .setTitle('Number one'), app.buildOptionItem(SELECTION_KEY_TWO, ['synonym of KEY_TWO 1', 'synonym of KEY_TWO 2']) .setTitle('Number two'), ])); } function optionIntent (app) { if (app.getSelectedOption() === SELECTION_KEY_ONE) { app.tell('Number one is a great choice!'); } else { app.tell('Number two is a great choice!'); } } const actionMap = new Map(); actionMap.set(WELCOME_INTENT, welcomeIntent); actionMap.set(OPTION_INTENT, optionIntent); app.handleRequest(actionMap);