head

2017年11月16日木曜日

複数の設置場所のセンサー値を 場所指定で読み上げる。 Google Home +IoT連携(3)


前回に続いて Google Home関係となります。
複数の違う場所に置いたセンサを、個別に読み上げる機能を追加しました。
前回は全て1回にまとめて、音声出力していたのですが。

処理 (webhook 自作api):
前回より、複雑になりますが。
dialogFlowから、webhookを呼ぶ時のリクエスト内に
Google Homeに音声入力した情報が含まれてましたので、
チェックして、設置場所を探し、対象デバイスの更新を取得できる外部APIを呼びます。
音声出力の文章の組立て方法は前回と同様。dialogFlowに出力します。



# 動画、  温度センサの読み上げ
リビング
玄関
室内全部(2箇所) 平均値の計算

*) 前回と同様ショートカット機能も活用しています。( スマホ設定 )





# 実行時のJSONのダンプ
 homeに音声入力した内容もふくまれています。
 result 内
 action : Intents action
 resolveQuery : User Says / おそらく音声入力した文
 Entities 等、
これらをキーにして、どの音声出力パターンを出力すべきか判定。
今回は、action をつかいました。




# Intentsの追加、追加機能分
今回は、Entities は使いませんでしたが、動作できました。
Fulfillment の下の、Use webhook のチェックを ON にします。

リビング:




玄関:



Integrations
追加した、Intents を 選択して追加。



Test > Update Draft
で反映できました。


# code --python27
webhook リクエストのチェック。分岐処理あたり。

# -*- coding: utf-8 -*-
# 日本語
from urllib2 import urlopen
import webapp2
import json
import os
import sys
import traceback
import com_func
#define
mDnsName="http://your-dns.com"
#
class WebhookHandler(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write("this is [GET] url" )
def post(self):
clsFunc= com_func.funcClass()
json_data = self.request.body
obj = json.loads(json_data)
sAct = obj['result']['action']
text=""
if (sAct == "sen3a_inte"):
sURL =mDnsName +"/api-device1"
result = json.load(urlopen(sURL))
text = "ok, リビングの温度は、" +str(result["temperature"])+ " 度です。"
if (sAct == "sen3b_inte"):
sURL =mDnsName +"/api-device4"
result = json.load(urlopen(sURL))
text = "ok, 玄関の温度は、" +str(result["temperature"])+ " 度です。"
if (sAct == "sen2_inte"):
text = clsFunc.get_message(mDnsName )
try:
dict = {'speech' : text , 'displayText' :text }
sDict =json.dumps(dict)
self.response.headers['Content-Type'] = 'application/json'
self.response.write( sDict )
except:
print "--------------------------------------------"
print traceback.format_exc(sys.exc_info()[2])
print "--------------------------------------------"
app = webapp2.WSGIApplication([
('/webhook', WebhookHandler )
], debug=True)
view raw webhook.py hosted with ❤ by GitHub



# 参考の記事
GoogleHomeをスプラトゥーンアシスタントにする #2 Twitterからステージ情報の取得
https://qiita.com/kotatu_km/items/c340027914d690095b66




# 関連
Google Home +IoT連携 ,センサー値の読み上げ機能
http://knaka0209.blogspot.jp/2017/10/gHome-1.html



google colaboratory お試し編 、GPUも使える機械学習の環境構築

前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...

AD-parts

Shop
Bluetooth搭載
ベース基板

Social