RaspberryPi 3 Model Bをようやく入手しました。
これまでRaspberryPi 2 Model Bを使用していたうちのシステムに入れ替えたところ早速トラブりました。
まず、XBee制御に使用していた/dev/ttyAMA0はWiFi/BT用に使用されるとのことで、40pinのコネクタに出ているUARTは/dev/ttyS0に変更されています。
BCM2835の仕様書とGPIOのPinMuxの設定値を調べてみると、なかなか微妙な仕様になっていました。
RaspberryPi 2の場合
40pinコネクタの8,910,11,36はTXD0,RXD0,RTS0,CTS0で/dev/ttyAMA0にアサインされていて、UARTのIPはARM PrimeCell PL011です。
RaspberryPi 3の場合
40pinコネクタはTXD1,RXD1,RTS1,CTS1で/dev/ttyS0にアサインされてIPは16550 UART下位互換のMiniUARTになっています。
これは対応ボーレートが476bps~31.25Mbpsになっていますが、一般的な115200とかのボーレートの場合誤差がそれなりにありそうです。(ちゃんと計算してませんが)
それでもまぁ大丈夫だろうと取り敢えず試してみようと繋いでみましたが、最初動作しているのに暫くすると動かなくなる現象が発生しました。
通信路を見ていると途中から周波数が変化している現象が発生しています。
ネットで色々調べてみると、CPUのcore clockがIPのCLKになっているようで、現状のraspbianではCPU周波数が変動するとMiniUARTのクロックも一緒に変動してしまうようで使い物になりません。
これは対策として/boot/config.txtにcore_freq=250を追加することで対応できるようです。
そのうちクロックソースを固定のものから供給する設定になる気がしますがいまのところこの対策しかないようです。
もう1つRaspberryPi3で発生した問題が、PWR-LEDの問題です。
/sys/class/leds/led1が消えていたのでPWR LEDが消せなくなってしまいました。
どうもPWR-LEDの制御がメインCPUのGPIOから他の所のGPIOに移動したようで、直接制御できなくなってしまったようです。
そのうち、対応策が出てくることを期待して取り敢えず置いておきます。
2016年4月27日水曜日
2016年4月1日金曜日
RP-5基板の組み立て
KiCadで設計してElecrowに注文していた基板も上がってきて、部品も揃ったので組み立ててみました。
ちなみに今回はFedExにしてみました。
3/15火曜日の夜 出図
3/16水曜日 製造開始
3/22火曜日 写真付きで基板できたよとの連絡
3/23水曜日
17:32 出荷地のFedEx営業所を出発 YUEN LONG HK
21:50 FedEx経由地に到着 GUANGZHOU CN
3/24木曜日
03:13 FedEx経由地を出発 GUANGZHOU CN
05:06 輸送中/処理中 GUANGZHOU CN
07:32 仕向国仕分け場所 NARITA-SHI JP
11:57 輸送中/処理中 TOKYO-KOTO-KU JP
14:14 国際輸送許可 - 輸入 TOKYO-KOTO-KU JP
20:16 輸送中/処理中 TOKYO-KOTO-KU JP
3/25金曜日
10:02 FedEx 営業所 TOKYO JP
13:24 配達完了
レーザーカッターで1.5mm乳白色半透明のアクリル板を切り出して赤外線LEDと受光部の窓を作っています。
後ろ側も同じ板で電源とUSB、Etherの口をRaspberryPi 2 Model-Bの穴位置に合わせて加工しています。
ちなみに今回はFedExにしてみました。
3/15火曜日の夜 出図
3/16水曜日 製造開始
3/22火曜日 写真付きで基板できたよとの連絡
3/23水曜日
17:32 出荷地のFedEx営業所を出発 YUEN LONG HK
21:50 FedEx経由地に到着 GUANGZHOU CN
3/24木曜日
03:13 FedEx経由地を出発 GUANGZHOU CN
05:06 輸送中/処理中 GUANGZHOU CN
07:32 仕向国仕分け場所 NARITA-SHI JP
11:57 輸送中/処理中 TOKYO-KOTO-KU JP
14:14 国際輸送許可 - 輸入 TOKYO-KOTO-KU JP
20:16 輸送中/処理中 TOKYO-KOTO-KU JP
3/25金曜日
10:02 FedEx 営業所 TOKYO JP
13:24 配達完了
製造開始から土日を挟んで9日間で到着しています。
今回はTAKACHIのケースに合わせて基板を設計しました。
当然ながらピッタリと収まっています。
レーザーカッターで1.5mm乳白色半透明のアクリル板を切り出して赤外線LEDと受光部の窓を作っています。
後ろ側も同じ板で電源とUSB、Etherの口をRaspberryPi 2 Model-Bの穴位置に合わせて加工しています。
本当は段差が無いようにできればいいのですが、素人の加工としてはこのくらいが限度でしょうか。
2016年3月24日木曜日
HomeServerのinstall
GitHubにRaspberryPi 2 Model Bを使ったSiri対応の学習リモコンのコードを公開しました。
RaspberryPi Model A+/B+でも動くと思います。RaspberryPi 3に関しては確認できたら報告します。
■このソフトで現時点で出来ること
・赤外線リモコン、HA端子(JEM-A端子)、弱電スイッチなどの制御
・赤外線リモコン信号、HA端子、弱電スイッチ、各種センサーなどのステータス情報取得
- telnet(socket)経由での上記制御と情報取得(human-readble IF, JSON IF)
- HomeKit対応アプリからの上記制御と情報取得(HAP-nodeJS経由)
AppleTV(3rd generation以降)を経由して外出先からの上記制御と情報取得
iPhoneのsiriによる上記制御と情報取得
※ ただしAppleがHomeKitの認証を強化すると動かなくなる可能性あり
- javascript(node.js)での制御
センサー等の変化や30sec intervalのイベントでjavascriptの関数が呼び出されるので条件を設定して制御することが可能
日没にあわせてシャッターを閉める、あかりをつける
玄関のロックが5分間開いていたらメールする
雨が降ってきたら窓を閉める
室温に応じて起床前にエアコンをつける
窓を開けたらエアコン停止
etc
■今後追加していきたい機能(余裕があれば)
- リモコンの学習、各種設定のWebUI化
- javascriptでの制御部分のVisualPrograming化
■下のブレッドボード用回路の機能
- 赤外線リモコン送信・受信
■RP-5基板の機能
- 赤外線リモコン送信・受信
- ZigBee(XBee)経由でのリモート子機(HA-5)制御
- HA-5子機の故障診断とファームウェアアップデート、ペアリング
■HA-5基板の機能
- 赤外線リモコン送信・受信
- HA端子(JEM-A端子)での家電制御、ステータス確認
- 弱電(24V以下)のスイッチ制御・ステータス確認(電動シャッターなどのスイッチ)
- 各種センサー情報の取得(温度、湿度、雨、人感、etc)
ブレッドボード用回路は以下のとおりです。
リモコン学習時のブザー音とリモコン発光時の発光音が不要なら真ん中のブザー音出力ブロックは不要です。
LED101/102はリモコン用の940nmあたりの波長の赤外線LEDなら大体動くと思います。
ちゃんと赤外線LEDが発光しているかどうかはデジカメ等で見ながら発光させると確認できます。
ただし、iPhoneはカメラに赤外線フィルターが入っているようで見えませんでした。
赤外線受光モジュールは電源が逆になっているデバイスもあるので他のものを使う場合は気をつけて下さい。
FETもNchで耐圧がOKなら動くかと思います。こちらもピン配置を確認して使って下さい。
installの大まかな手順を書いておきます。
詳細手順はこちらのREADME.mdを御覧ください。(下の方です)
※scriptからダウンロードするので、gitをcloneする必要はありません。
1.最新版のRASPBIAN JESSIE LITEをダウンロードしてSDカードに書き込みます。
2.SDカードをRaspberryPiにセットしてNetworkを接続し起動後loginします。
3.setup scriptを実行する
> curl -O https://raw.githubusercontent.com/mnakada/ha1control/master/setup.sh
> sudo bash setup.sh
4.piのアカウントpasswordを変更する
5.reboot
6.HomeKit対応アプリをiPhoneにinstall
7.対応アプリでHA1HomeServerを登録
国内のエアコン等も大抵のものは動くかと思います。
Daikin/Panasonic/三菱重工は確認しました。
AppleTVの第3世代以降があってiCloudの設定をしてあれば外出先からもアクセス出来ます。
ただし、AppleTVの自動updateをonにしているとupdate後自動起動してくれるのですが、iCloudのloginを一度解除してからもう一度loginし直さないとアクセスできなくなってしまいます。
RaspberryPi Model A+/B+でも動くと思います。RaspberryPi 3に関しては確認できたら報告します。
■このソフトで現時点で出来ること
・赤外線リモコン、HA端子(JEM-A端子)、弱電スイッチなどの制御
・赤外線リモコン信号、HA端子、弱電スイッチ、各種センサーなどのステータス情報取得
- telnet(socket)経由での上記制御と情報取得(human-readble IF, JSON IF)
- HomeKit対応アプリからの上記制御と情報取得(HAP-nodeJS経由)
AppleTV(3rd generation以降)を経由して外出先からの上記制御と情報取得
iPhoneのsiriによる上記制御と情報取得
※ ただしAppleがHomeKitの認証を強化すると動かなくなる可能性あり
- javascript(node.js)での制御
センサー等の変化や30sec intervalのイベントでjavascriptの関数が呼び出されるので条件を設定して制御することが可能
日没にあわせてシャッターを閉める、あかりをつける
玄関のロックが5分間開いていたらメールする
雨が降ってきたら窓を閉める
室温に応じて起床前にエアコンをつける
窓を開けたらエアコン停止
etc
■今後追加していきたい機能(余裕があれば)
- リモコンの学習、各種設定のWebUI化
- javascriptでの制御部分のVisualPrograming化
■下のブレッドボード用回路の機能
- 赤外線リモコン送信・受信
■RP-5基板の機能
- 赤外線リモコン送信・受信
- ZigBee(XBee)経由でのリモート子機(HA-5)制御
- HA-5子機の故障診断とファームウェアアップデート、ペアリング
■HA-5基板の機能
- 赤外線リモコン送信・受信
- HA端子(JEM-A端子)での家電制御、ステータス確認
- 弱電(24V以下)のスイッチ制御・ステータス確認(電動シャッターなどのスイッチ)
- 各種センサー情報の取得(温度、湿度、雨、人感、etc)
ブレッドボード用回路は以下のとおりです。
リモコン学習時のブザー音とリモコン発光時の発光音が不要なら真ん中のブザー音出力ブロックは不要です。
LED101/102はリモコン用の940nmあたりの波長の赤外線LEDなら大体動くと思います。
ちゃんと赤外線LEDが発光しているかどうかはデジカメ等で見ながら発光させると確認できます。
ただし、iPhoneはカメラに赤外線フィルターが入っているようで見えませんでした。
赤外線受光モジュールは電源が逆になっているデバイスもあるので他のものを使う場合は気をつけて下さい。
FETもNchで耐圧がOKなら動くかと思います。こちらもピン配置を確認して使って下さい。
installの大まかな手順を書いておきます。
詳細手順はこちらのREADME.mdを御覧ください。(下の方です)
※scriptからダウンロードするので、gitをcloneする必要はありません。
1.最新版のRASPBIAN JESSIE LITEをダウンロードしてSDカードに書き込みます。
2.SDカードをRaspberryPiにセットしてNetworkを接続し起動後loginします。
3.setup scriptを実行する
> curl -O https://raw.githubusercontent.com/mnakada/ha1control/master/setup.sh
> sudo bash setup.sh
4.piのアカウントpasswordを変更する
5.reboot
6.HomeKit対応アプリをiPhoneにinstall
7.対応アプリでHA1HomeServerを登録
国内のエアコン等も大抵のものは動くかと思います。
Daikin/Panasonic/三菱重工は確認しました。
AppleTVの第3世代以降があってiCloudの設定をしてあれば外出先からもアクセス出来ます。
ただし、AppleTVの自動updateをonにしているとupdate後自動起動してくれるのですが、iCloudのloginを一度解除してからもう一度loginし直さないとアクセスできなくなってしまいます。
2016年2月27日土曜日
HomeBridge改めHAP-nodeJSと接続してsiriで家をコントロール その4
Siriとの会話に疲れてきたので、現状のコードを整理してGitHubに上げました。
とりあえずdemoModeに設定してあるので単独で動いて同じネットワーク上のiPhoneから繋がります。
demoModeではコントロールサーバーにコマンドを投げる所をconsole.logの出力だけ、statusなどを受ける所をダミーデータに置き換えています。
https://github.com/mnakada/HA1HomeBridge.git
動作確認済み環境
MacBookPro OS-X El Capitan 10.11.3
RaspberryPi2 RASPBIAN JESSIE LITE kernel 4.1.17
node.js v4.3.1はnodejs.orgからinstall
多分v5系でも動くと思います(未確認)。
iPhone側の環境は
iPhone6S iOS9.3beta4
(beta3以前の場合、package.sonファイルのhap-nodejsのversion指定を0.2.4にすると動くかもしれません)
HomeKitアプリはElgato Eve (App Storeでhomekitで検索すると出てきます)
> git clone https://github.com/mnakada/HA1HomeBridge.git
この状態でアプリからスイッチなどをいじってnode.js側にそれらしいコマンドの表示が出ていれば正常につながっています。
siriで使えるコマンドはclient.uiファイル内でsiriNameのarrayで記述されているものになります。
ここのsiriNameで記述されているものがEveのコントロール画面の項目名として見えていて、siriへの指示はこの項目名に対して指示を出します。
例えば
「玄関の鍵を開けて・閉めて」「風呂のお湯を入れて・止めて」「南側のエアコンを一八度に設定して」「ダウンライトを点けて・消して」「リビングの湿度は?」「寝室の温度は?」
などが動いています。
現状、わかっている問題点は
1.「南側の窓を開けて」は「100%に設定しました」と答えて動くけど「南側の窓を閉めて」も「100%に設定しました」といわれて窓が開いてしまう
シャッター、ブラインドも同様
2.エアコンの温度は設定できるけど、暖房、冷房のモード切替が出来ない、エアコンをoff出来ない
3.「NHKをつけて」はWebの’NHKをつけて’を検索に行ってしまう
と言った感じです。
とりあえずdemoModeに設定してあるので単独で動いて同じネットワーク上のiPhoneから繋がります。
demoModeではコントロールサーバーにコマンドを投げる所をconsole.logの出力だけ、statusなどを受ける所をダミーデータに置き換えています。
https://github.com/mnakada/HA1HomeBridge.git
動作確認済み環境
MacBookPro OS-X El Capitan 10.11.3
RaspberryPi2 RASPBIAN JESSIE LITE kernel 4.1.17
node.js v4.3.1はnodejs.orgからinstall
多分v5系でも動くと思います(未確認)。
iPhone側の環境は
iPhone6S iOS9.3beta4
(beta3以前の場合、package.sonファイルのhap-nodejsのversion指定を0.2.4にすると動くかもしれません)
HomeKitアプリはElgato Eve (App Storeでhomekitで検索すると出てきます)
> git clone https://github.com/mnakada/HA1HomeBridge.git
で取得後、
> cd HA1HomeBridge
> nam install
> node .
でHomeKitのBridgeとして起動し、PINを表示します。
あとでこのPINの画面を取り込むのでそのままにしておきます。
iPhoneをWiFi接続にしてElgato Eveを起動
-> アクセサリを追加
-> 自動でホームの名前が入るので適当に修正して右上の次へ
-> アクセサリを選択でHA1HomeBridgeを選択
-> 真ん中のXXX-XX-XXXが囲われているところを選択
-> HomeKitアクセサリを追加のDialogでこのまま追加を選択
-> iPhoneのカメラで先ほどのPINの画面をキャプチャすると自動で接続してくれます。
(もしPINが読み込めないようでしたら、下の方にある手動で登録から登録します)
-> 部屋を選択は後で設定できるので取り敢えず次へ
-> 追加済みのアクセサリで完了
-> ホーム(デフォルトの部屋)を選択するとコントロール画面にたどり着きます。
siriで使えるコマンドはclient.uiファイル内でsiriNameのarrayで記述されているものになります。
ここのsiriNameで記述されているものがEveのコントロール画面の項目名として見えていて、siriへの指示はこの項目名に対して指示を出します。
例えば
「玄関の鍵を開けて・閉めて」「風呂のお湯を入れて・止めて」「南側のエアコンを一八度に設定して」「ダウンライトを点けて・消して」「リビングの湿度は?」「寝室の温度は?」
などが動いています。
現状、わかっている問題点は
1.「南側の窓を開けて」は「100%に設定しました」と答えて動くけど「南側の窓を閉めて」も「100%に設定しました」といわれて窓が開いてしまう
シャッター、ブラインドも同様
2.エアコンの温度は設定できるけど、暖房、冷房のモード切替が出来ない、エアコンをoff出来ない
3.「NHKをつけて」はWebの’NHKをつけて’を検索に行ってしまう
と言った感じです。
HomeBridge改めHAP-nodeJSと接続してsiriで家をコントロール その3
コントロールサーバーの動いているRaspberryPi2の上にhomebridgeを動かして、pluginとしてコントロールサーバーと接続しようとしていたのですが、いろいろ実装していく内にhomebridgeの下のレイヤーであるHAP-nodeJSと直接繋ぎこんだ方が良さそうなことがわかってきて繋ぎ方を改めました。
ところが、実装を切り替えて試してみてもEveで初期設定まではうまくいくのですが、接続されたホームの中にAccessoryが何もない状態になってしまいます。
そんなこんなをしている内にHomeBridgeとの接続も同じ状態になってしまい訳がわからなくなってしまいました。
2日ほどわからない状態だったのですが、色々と試している内に最初に試していたdirectoryのイメージを起動するとちゃんと繋がることに気が付きました。
差分を切り分けるために実験していくとHAP-nodeJSのVersionが0.2.4以前ならちゃんと繋がることが分かりました。
どうも0.2.5でHomeKitの最新のプロトコルにupdateされていたようで、自分のiPhoneがiOS9.3beta3だったため繋がらなかったようです。
iOS9.3beta4にupdateして、HAP-nodeJSも0.2.5にしたら無事に繋がるようになりました。
このdebugの過程でdebug情報を色々出していたのですが、何故かAppleTVとの通信をしているlogが残っていました。
AppleのHomeKitのページをよく読むと、うちにある第3世代のAppleTVだとHomeKitの外からのアクセスを中継してくれるようです。
AppleTVのiCloudの設定を再度し直して、LTE回線からiPhoneでEveを起動してみるとちゃんと繋がり、コントロールもできています。
LTE回線経由でもsiriでのコントロールもちゃんとできました。
なかなかいい感じです。
siriとの会話の方は相変わらず実験中で、まだエアコンとシャッター、電動窓、TVはNHKがうまくコントロールできていません。
エアコンは温度設定はできるのですが、暖房、冷房を指定することが出来ません。
エアコンを切ることも出来ていません。
シャッター、電動窓は開くことは出来ても閉じることが出来ません。
「シャッターを開けて」で「100%に設定しました」と言われてシャッターが開きますが、「シャッターを閉めて」でも「100%に設定しました』と言われてしまいます。これはsiriのbugのような気がします。
「NHKをつけて」はNHKをつけてをwebで検索されてしまいます。
もう少し会話の練習が続きそうです。
ところが、実装を切り替えて試してみてもEveで初期設定まではうまくいくのですが、接続されたホームの中にAccessoryが何もない状態になってしまいます。
そんなこんなをしている内にHomeBridgeとの接続も同じ状態になってしまい訳がわからなくなってしまいました。
2日ほどわからない状態だったのですが、色々と試している内に最初に試していたdirectoryのイメージを起動するとちゃんと繋がることに気が付きました。
差分を切り分けるために実験していくとHAP-nodeJSのVersionが0.2.4以前ならちゃんと繋がることが分かりました。
どうも0.2.5でHomeKitの最新のプロトコルにupdateされていたようで、自分のiPhoneがiOS9.3beta3だったため繋がらなかったようです。
iOS9.3beta4にupdateして、HAP-nodeJSも0.2.5にしたら無事に繋がるようになりました。
このdebugの過程でdebug情報を色々出していたのですが、何故かAppleTVとの通信をしているlogが残っていました。
AppleのHomeKitのページをよく読むと、うちにある第3世代のAppleTVだとHomeKitの外からのアクセスを中継してくれるようです。
AppleTVのiCloudの設定を再度し直して、LTE回線からiPhoneでEveを起動してみるとちゃんと繋がり、コントロールもできています。
LTE回線経由でもsiriでのコントロールもちゃんとできました。
なかなかいい感じです。
siriとの会話の方は相変わらず実験中で、まだエアコンとシャッター、電動窓、TVはNHKがうまくコントロールできていません。
エアコンは温度設定はできるのですが、暖房、冷房を指定することが出来ません。
エアコンを切ることも出来ていません。
シャッター、電動窓は開くことは出来ても閉じることが出来ません。
「シャッターを開けて」で「100%に設定しました」と言われてシャッターが開きますが、「シャッターを閉めて」でも「100%に設定しました』と言われてしまいます。これはsiriのbugのような気がします。
「NHKをつけて」はNHKをつけてをwebで検索されてしまいます。
もう少し会話の練習が続きそうです。
2016年2月19日金曜日
homebridgeと接続してsiriで家をコントロール その2
homebridgeを使って自宅システムをsiriでコントロール出来るようにするために色々と試しています。
とりあえずざっくりとしたつなぎ込みは出来て、eveというhomekit対応のアプリで接続できるようになりました。
ステータスを取得する方は結構つながってきました。
「リビングの湿度は?」『34%に設定されています』ちょっと日本語が変ですが値は返ってきます。
「寝室の湿度は?」『56%にせっていされています』こちらも日本語がおかしいですが値は返ってきます。
「2階の温度は?」『4.7度から17.6度です』これは全ての温度デバイスの値を読み込んで範囲を回答してます。
「1階の温度は?」->「外の温度は」(文字が勝手に外に置き換わる) -> 自宅周辺の天気予報から温度を答えてくる
「外の気温は?」 -> 同じく自宅周辺の天気予報から回答
制御の方もなんとなく動いてきてます。
「リビングの床暖房をつけて」『デバイスからの応答がありません』eveからは制御できています。
「ダイニングの床暖房をつけて」『デバイスからの応答がありません』こちらもeveからは制御できています。
「風呂のお湯を入れて」-> OK
「冷暖房の自動運転を入れて」-> OK
「テレビを消して」『私には無理です』
「テレビをオフして」->OK
「NHKをつけて」->WebからNHKをつけてに関する情報を表示
「日本テレビをつけて」『よくわかりません』
「Eテレをつけて」->OK
「日テレをつけて」->OK
「TBSをつけて」->OK
「テレビ東京をつけて」->OK
「テレビ朝日をつけて」->OK
「テレ朝をつけて」->OK
「フジテレビをつけて」->OK
「テーブル照明をつけて・消して」->OK
「スポット照明をつけて・消して」->OK
「間接照明をつけて・消して」->OK
「ダウンライトをつけて・消して」->OK
「カウンター照明をつけて・消して」->OK
「南側のエアコンを18度にして」->OK
「南側のエアコンを消して」『デバイスからの応答が有りませんでした』
「西側のエアコンを20度にして」「西川のエアコンを20度にして」(勝手に変換される)『私には出来ません』
「西川のエアコン」も登録するとOK
なかなか難しいです。
『デバイスからの応答が有りません』系は何かプログラムに問題がある気がするのでもう少し検討ですね。
他の勝手に違う単語に置き換えられる系はその単語も登録してしまう作戦で行くことにします。
もう少しSiriとの会話?戦い?は続きそうです。
とりあえずざっくりとしたつなぎ込みは出来て、eveというhomekit対応のアプリで接続できるようになりました。
ステータスを取得する方は結構つながってきました。
「リビングの湿度は?」『34%に設定されています』ちょっと日本語が変ですが値は返ってきます。
「寝室の湿度は?」『56%にせっていされています』こちらも日本語がおかしいですが値は返ってきます。
「2階の温度は?」『4.7度から17.6度です』これは全ての温度デバイスの値を読み込んで範囲を回答してます。
「1階の温度は?」->「外の温度は」(文字が勝手に外に置き換わる) -> 自宅周辺の天気予報から温度を答えてくる
「外の気温は?」 -> 同じく自宅周辺の天気予報から回答
制御の方もなんとなく動いてきてます。
「リビングの床暖房をつけて」『デバイスからの応答がありません』eveからは制御できています。
「ダイニングの床暖房をつけて」『デバイスからの応答がありません』こちらもeveからは制御できています。
「風呂のお湯を入れて」-> OK
「冷暖房の自動運転を入れて」-> OK
「テレビを消して」『私には無理です』
「テレビをオフして」->OK
「NHKをつけて」->WebからNHKをつけてに関する情報を表示
「日本テレビをつけて」『よくわかりません』
「Eテレをつけて」->OK
「日テレをつけて」->OK
「TBSをつけて」->OK
「テレビ東京をつけて」->OK
「テレビ朝日をつけて」->OK
「テレ朝をつけて」->OK
「フジテレビをつけて」->OK
「テーブル照明をつけて・消して」->OK
「スポット照明をつけて・消して」->OK
「間接照明をつけて・消して」->OK
「ダウンライトをつけて・消して」->OK
「カウンター照明をつけて・消して」->OK
「南側のエアコンを18度にして」->OK
「南側のエアコンを消して」『デバイスからの応答が有りませんでした』
「西側のエアコンを20度にして」「西川のエアコンを20度にして」(勝手に変換される)『私には出来ません』
「西川のエアコン」も登録するとOK
なかなか難しいです。
『デバイスからの応答が有りません』系は何かプログラムに問題がある気がするのでもう少し検討ですね。
他の勝手に違う単語に置き換えられる系はその単語も登録してしまう作戦で行くことにします。
もう少しSiriとの会話?戦い?は続きそうです。
2016年1月30日土曜日
homebridgeと接続してsiriで家をコントロール
最近homebridgeというopen sourceのHomeKitのブリッジソフトが流行っているようなので、自宅のシステムと仮接続してみました。
とりあえず、まだTVのon/offだけですが動作させることが出来ました。
ただ、siriがどんなコマンドを受け付けてくれてサービスをどう登録するのかがよく判りません。
「テレビをonして」「テレビをoffして」は動きますが「テレビをつけて」はダメでした。
放送局とかを指定したりボリュームをコントロールするには何と言えばいいんですかね?
とりあえず、呼び出される関数の中でhomebridge.hap.Serviceをdumpすることで
とりあえず、まだTVのon/offだけですが動作させることが出来ました。
ただ、siriがどんなコマンドを受け付けてくれてサービスをどう登録するのかがよく判りません。
「テレビをonして」「テレビをoffして」は動きますが「テレビをつけて」はダメでした。
放送局とかを指定したりボリュームをコントロールするには何と言えばいいんですかね?
とりあえず、呼び出される関数の中でhomebridge.hap.Serviceをdumpすることで
AccessoryInformation: { [Function] super_: [Circular] },
AirQualitySensor: { [Function] super_: [Circular] },
BatteryService: { [Function] super_: [Circular] },
BridgingState: { [Function] super_: [Circular] },
CarbonDioxideSensor: { [Function] super_: [Circular] },
CarbonMonoxideSensor: { [Function] super_: [Circular] },
ContactSensor: { [Function] super_: [Circular] },
Door: { [Function] super_: [Circular] },
Fan: { [Function] super_: [Circular] },
GarageDoorOpener: { [Function] super_: [Circular] },
HumiditySensor: { [Function] super_: [Circular] },
LeakSensor: { [Function] super_: [Circular] },
LightSensor: { [Function] super_: [Circular] },
Lightbulb: { [Function] super_: [Circular] },
LockManagement: { [Function] super_: [Circular] },
LockMechanism: { [Function] super_: [Circular] },
MotionSensor: { [Function] super_: [Circular] },
OccupancySensor: { [Function] super_: [Circular] },
Outlet: { [Function] super_: [Circular] },
SecuritySystem: { [Function] super_: [Circular] },
SmokeSensor: { [Function] super_: [Circular] },
StatefulProgrammableSwitch: { [Function] super_: [Circular] },
StatelessProgrammableSwitch: { [Function] super_: [Circular] },
Switch: { [Function] super_: [Circular] },
TemperatureSensor: [Circular],
Thermostat: { [Function] super_: [Circular] },
Window: { [Function] super_: [Circular] },
WindowCovering: { [Function] super_: [Circular] } } }
といったサービスの種類があることは分かりました。
現状はSwitchにTVのon/offを接続しているだけなのですが、少しずつ他のWindowとかDoorやLightあたりを掘っていってみようかと考えています。
登録:
投稿 (Atom)