Raspberry Pi のポートを開放せずに簡単にデータの送受信


スマートホームで音声入力させる際、GoogleHome はグローバル IP アドレスに属した情報じゃないと処理しない仕様になっている。
そうすると必然的にルーター越えが必要になり、あまり晒したくないポートの開放などしないといけない。
ポートの開放することなく、無料のクラウドサービスを利用して実現する。


■BeeBotte
https://beebotte.com/
あんまり理解できていないけど MQTT プロトコルを利用した Broker サービスというものらしい。
IoT が広まっていく際にどうしても送受信の問題が発生するため、それを解決するもの。
今回の場合は IFTTT を利用しているので、そこから REST API で送信されたデータを保存するのに使う。
セキュリティを維持したままやりとりできるので便利。
アカウントを開設した後、左メニューの Channnel を押し、画面右上の Create New を押す。
Channnel Name:適当な名前
Resource Name:項目名
画面下 Create Channnel で作成。
再度画面を確認すると赤字で「Channel Token」ができているので記憶。
左メニュー「Console」に入り、Subscribe の項目にある空欄を先ほどの名前で埋める
Channel
Resours
画面下の Subscribe を押すと、画面上部に「Secret Key」が表示されるので記憶。
次に IFTTT 側の設定。
HomeAssistant から、Webhook 経由の BeeBotte へという設定を入れ込む。
webhook の URL は、
https://api.beebotte.com/v1/data/publish/MySmartHome/voice?token=(Channel Token)
json 形式で POST する。
GoogleHome に話しかけてみて、
Console の画面右黒い部分に、json データが送られてくるのが確認できたら成功。
後は、このデータを監視するスクリプトを用意する

コメント

タイトルとURLをコピーしました