Google Home関係となります。
Google Home miniでの拡張機能で、dialogFlow/ Fulfillment
のwebhook 経由で、外部APIから IoT更新のセンサー値データを読み込みます。
先人さまの、記事を参考に機能を追加しました。
Webhookは、今回はappEngine(GAE) 使いました。
Google以外のクラウドでも多分よさそうです。
*) 先日 Home mini 実機を入手したので、基本機能も良く理解していませんが、
少しづつ調べたいと思います。
# thanks/ 参考
自然言語処理を容易に実装できるDialogflow(旧:API.AI) を使ってみる
https://qiita.com/flatfisher/items/76bc86b65e5f2150a1a0
GoogleHomeをDialogflow(旧:API.ai)でスプラトゥーンアシスタントにする
https://qiita.com/tak_km/items/c06f45c6692dceb9258d
手順としては、
dialogFlow で、 Entity, Intents 等を設定しておき、
Fulfillment で、 webhook を指定
シミュレータでテスト、みたいな流れでした。
# 概要
# 動画
指定場所の、温度センサー値読み出し。
*) テスト版で、テストアプリの接続確認の質問出てます。
申請すれば、確認承認後は出ないかもしれません。
# Code ,python (utf-8 )
webhook.py
データ保存クラウドの、レスポンスの参考は下記です
{"temperature":"24","humidity":0}
Home側から呼ばれた時、
最新の、センサー値を出力する必要があります。
# dialogFlow のJSON ダンプを追加しました。2017/10/26
# IoT側
子機は省電力版の BLE(arduino) + BLE gateway使用していますが、
クラウド側にデータ保存できれば、他の機種でも問題ないと思います
参考:
BLE gateway 機能:
http://knaka0209.blogspot.jp/2017/08/nanoPi-4.html
BLE子機:
http://knaka0209.blogspot.jp/2017/09/RN4020-4.html
==== Update:2017/10/26 ====
動画の追加:複数のセンサー対応。
会話の内容(例)
1) センサーをチェック (音声入力)
2) Home (音声出力)
ok,リビングの温度は、24度です。
玄関の温度は、22度です。
センサー値の平均は、23度です。
現在の時刻は、11時45分です。
*)少し長くなりましたが。
平均値の計算、時刻の追加は オプションです
テスト版は同じです。
==== Update:2017/10/27 =====
Home対応と、グラフ表示機能を追加しました。
2箇所のセンサーのログの監視が可能です。(PC ,mobile )
field1: 1台目
field4: 2台目
異なるクラウドサービス (thigSpeak )にも、
データ送信機能を追加しています。
*) グラフの最新値は、Homeの音声出力する値と
同一になります。
==== update :2017/10/30 ====
補足、ショートカットの利用 (ご参考まで )
一般的な話しですが , Homeアプリのショートカットを使うと、
テストの追加したアプリも少し楽になりました。
テスト版モードに切り替わる点は、おなじですが。
音声入力が楽になります。下記を登録しておきます。
1)
テスト
内容、テスト用アプリにつないで、
2)チェック、intentsで定義した文章
内容、センサーをチェックして
# 入力、
OK,Google テスト
チェック
1で、テスト接続
2で、実行
動画
==== =====