alexaスキルから自宅サーバー経由でデバイスを動作させた時のメモ [QNAP]
Pythonの勉強を兼ねて、Alexaスキルから自宅サーバーを経由でデバイスを動作させるプログラムを作成した。
そのときの手順と参考にしたページのブックマーク。
1.操作したいデバイスのI/F仕様(API)を調査
デバイスとスマフォのメーカー製アプリの通信をWireSharkでキャプチャして、
I/F仕様を調査した。
【構成】
デバイス <= 無線 => AP <= 有線 => Hub(GS108Tv2)
||
+= ミラー元 => AP <= 無線 => スマフォ
||
+= ミラー先(Probe) => PC(WireShark)
※廃棄予定のAPがあったため、それを使用した。
Hub(GS108Tv2)は、前に買ってあったもの(テレビ周辺で使用していたもの)を使用した。
2.デバイスを制御するプログラムをPCで作成
調査した結果、HTTPで通信していたので、自作プログラムによる制御が可能と
判断して、プログラムを作成した。
プログラムは、Pythonで作成。(Pythonの勉強のため)
3.Debian10のVM作成
debian.jpでインストールDVDをダウンロードして、インストールした。
▲参考
・nfsサーバーのインストール
・viで十字キーがきかなかった。
・WindowsでNFSサーバーをマウント
4.dginx + uWSGI + Djangoのインストール・初期設定
各ソフトをインストールし、HTTPでアクセスすると文字列が出るところまで確認
▲参考
※今回の構成では使用しなかったけど、なんかのため
▲はまった箇所
・uwsgiのiniファイル
wsgi-fileは、{プロジェクトのサイトディレクトリ}/wsgi.pyを指定
5.HTTPS化(証明書作成)
最初は、おれおれ認証のつもりだったが、
無料で作成できるところがあるのでそちらを使用した
▲参考
6. Django RESTful
AlexaとDebian間のI/FをRESTfulで行うため、当該ソフトをインストールした。
その後、(lambdaがpost/getした際に呼ばれる)モジュールを作成
▲参考
▲はまった箇所
・csrfがらみ(「AttributeError: 'class name' object has no attribute 'COOKIES'」)
7.Alexa Home Skill (lambda)
AWSのlambda、Alexa Skills Kit管理コンソールでのスキル作成を行った。
▲参考
<レイヤー関連>
▲注意点等
・requestsをアップロードを行う場合、Lambdaのコーディングを行う前に行った方が
よいかも
(アップロード時にLambdaのソースファイルが削除されるかもレイヤーに登録すれば大丈夫 )
・alexaアプリでのテスト時のログは、awsの「CloudWatch」-「ログ」
-「ロググループ」で確認できる
・Alexa Skills Kit(amazon.com)のアカウントを作成した場合、作成後、
一度ログインし直して、個人情報を入力してから使用開始したほうがいいかも。
・Alexaのスキルは、一度インストールしたら削除出来ない仕様ぽい
・状態を教えてもらう機能(【デバイス名】の【コントローラ名】の状態を
教えて?等)は、対応していないものもあるっぽい。
APIマニュアルに記載されていても出来ないぽい。
(ModeControllerの状態レポートに記載されている発話でいっても、
「その操作に対応していません」と返ってくる。
ダイソンの扇風機も対応していないぽいので、あきらめた)
・TemperatureSensorは、Alexaアプリ内で設定画面が表示されなくなるので
使用するのをやめた。他の案を考えよう。
一通り作成後、β版(限定公開)の期限が三か月であるに気が付いた。
三か月後に限定公開を一度終了して、再度、限定公開すればいいのかな?
自分のアカウントは、そのまま使用し続けられるのかな?
違う方法を考えよう。。。
2021-02-08 20:46
nice!(0)
コメント(0)
コメント 0