fhcの宣伝とhomekit解説
TRANSCRIPT
![Page 1: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/1.jpg)
ソフト屋さんと、ネット屋さんとかをしていました。アーキテクトという肩書きで雑用係をやっていました。現在は、独立して rti 技研という会社をやっています。好きな言語は C++ サーバサイドでは PHP のお手軽さが好きです。I‘m CEO,Bitch! https://rti-giken.jp/
自己紹介
![Page 2: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/2.jpg)
フューチャーホームコントローラー
![Page 3: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/3.jpg)
手に何も持たないハンズフリーの音声認識を提供します。手ぶらの音声認識を提供します。言葉でしゃべるだけです。
マイクまで 1m ~ 2m 程度の距離でも動作します。マイクを部屋の中央におけば全部をカバーします。
![Page 4: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/4.jpg)
リモコンに勝たないと意味が無いリモコンを使った家電操作
スマホを使った家電操作
フューチャーホームコントローラーを利用した操作
リモコンを手に取る ボタンを押す 涼しくなる
スマホを手に取る ロック解除・アプリ起動 クリックするか、スマホに話しかける 涼しくなる
「コンピュータ、エアコンつけて」という 涼しくなる
![Page 5: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/5.jpg)
スマートフォンから「も」操作することもできます。
![Page 6: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/6.jpg)
開発時の取材・掲載
取材・掲載
![Page 7: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/7.jpg)
マルチデバイス HTML5 対応
スマホPC
![Page 8: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/8.jpg)
設定はブラウザから簡単にできます。
![Page 9: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/9.jpg)
・非インターネットの環境でも動く
・雑音が多い場所でも 認識するアルゴリズムを開発
・誤動作を起こしにくいアルゴリズムを開発
・ arm でも動作する身軽さ
オープンソースをベースに開発した音声認識エンジン
![Page 10: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/10.jpg)
いろいろなリモコンを学習できる賢い学習リモコンエンジン
![Page 11: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/11.jpg)
フューチャーホームコントローラー
![Page 12: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/12.jpg)
様々なカスタマイズ
![Page 13: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/13.jpg)
ユーザ : スマートウォッチ Pebble 連携
http://www.nicovideo.jp/watch/sm20654023
![Page 14: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/14.jpg)
ユーザ : vim から家電操作
http://www.youtube.com/watch?v=Uqm8sYyzwO8
![Page 15: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/15.jpg)
ユーザ :Ring と連動
![Page 16: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/16.jpg)
ユーザ : 認識単語を呪文で家を操作
![Page 17: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/17.jpg)
私の作品 : 家 mount
ls -la /mnt/drwxr-xr-x 5 root root 0 1 月 1 1970 .drwxr-xr-x 23 root root 4096 12 月 8 15:39 ..drwxr-xr-x 7 root root 0 1 月 1 1970 エアコンdrwxr-xr-x 4 root root 0 1 月 1 1970 照明drwxr-xr-x 4 root root 0 1 月 1 1970 扇風機
![Page 18: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/18.jpg)
体の不自由な方の介護機器として
![Page 19: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/19.jpg)
V8(javascript) で機能を拡張できます。 ( 上級者向け機能 )
ブラウザから javascript で、家をプログラミングすることができます。
![Page 20: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/20.jpg)
フューチャーホームコントローラー
![Page 21: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/21.jpg)
音声認識のホームコントローラー FHC 2017/1/31 までキャンペーン価格で提供中https://rti-giken.jp/ 定価 : 36800 円
![Page 22: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/22.jpg)
直売の他、秋葉原の愛三電機で展示販売中
![Page 23: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/23.jpg)
FHC の話は去年も話したので、今年は、少し別の話を。
![Page 24: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/24.jpg)
![Page 25: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/25.jpg)
Homekit
![Page 26: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/26.jpg)
ios homekit 解析のお話
![Page 27: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/27.jpg)
オープンソース homekit 実装例JavaScript HAP-NodeJS(homebrigde) Lisence:apache2.0
C++ Personal-HomeKit-HAP Lisence:mit
Java HAP-Java Lisence:mit
![Page 28: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/28.jpg)
オープンソース homekit 実装例JavaScript HAP-NodeJS(homebrigde) Lisence:apache2.0
C++ Personal-HomeKit-HAP Lisence:mit
Java HAP-Java Lisence:mit
![Page 29: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/29.jpg)
C++で書かれているPersonal-HomeKit-HAP は、ライブラリとして可能性がある。ライセンスもMITだし。ただし・・・
![Page 30: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/30.jpg)
多少問題があるソースコードはとりあえず書いた感じかなあ。・一度停止して再実行できない作り。・そこそこのメモリリークがある。・バッファオーバーランしそうな実装がある。・ Un*x でしか動かない。
![Page 31: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/31.jpg)
これはやばい
![Page 32: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/32.jpg)
と、いうことで、全部修正しました。https://github.com/etwmc/Personal-HomeKit-HAP/pull/64
(ソースコードの作り以外全部直した)
![Page 33: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/33.jpg)
https://github.com/rti7743/Personal-HomeKit-HAP
・再突入性の保証( 停止 -> スタート -> 停止 -> スタート可能 )・メモリーリークの排除・バッファオーバーランの排除・ windows 対応( ソースコードの作りは、 書き直すしかないので、あきらめましょう。 )
これで大丈夫。安心です。
![Page 34: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/34.jpg)
https://github.com/rti7743/Personal-HomeKit-HAP
これであなたのプログラムもhomekit(siri) で操作できます。
![Page 35: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/35.jpg)
やったね。
![Page 36: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/36.jpg)
やったね。
![Page 37: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/37.jpg)
さて、せっかくなので、homekit プロトコル説明
![Page 38: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/38.jpg)
homekit プロトコル1 Bonjour (mDNS) で端末検索↓2 相手端末の IP と port を特定↓3 http みたいなプロトコルで端末間通信( 暗号は SRP chacha20 Poly1305 などで実現 )↓4 最終的に json 形式でデータをやり取り
![Page 39: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/39.jpg)
1. Bonjour (mDNS) で端末検索Linux( オープンソース ) だと avahi( あばひ ) という実装がある。実装としては、DNS の srv レコードとか txt レコードで情報のやり取りをします。
![Page 40: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/40.jpg)
2. 相手端末の IP と port を特定$avahi-browse -a+ eth0 IPv4 rti ___ MacBook Air _smb._tcp local+ eth0 IPv4 rti ___ MacBook Air _rfb._tcp local+ eth0 IPv4 FHC _hap._tcp local+ eth0 IPv4 fhc _ssh._tcp local+ eth0 IPv4 fhc _udisks-ssh._tcp local+ eth0 IPv4 fhc [7c:66:9d:48:b4:28] _workstation._tcp local+ eth0 IPv4 raspberrypi [b8:27:eb:b4:3a:ad] _workstation._tcp local+ eth0 IPv4 raspberrypi _udisks-ssh._tcp local...
![Page 41: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/41.jpg)
3. http みたいなプロトコルで端末間通信( 暗号は SRP chacha20 Poly1305 などで実現 )
あまり詳しくないが、 chacha20-Poly1305 は、 RFC7539 で定義らしい。これら暗号化はあの djb 大先生が提唱されているっぽい。
![Page 42: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/42.jpg)
4. 最終的に json でやり取りPUT /characteristics HTTP/1.1Host: FHC._hap._tcp.localContent-Length: 78Content-Type: application/hap+json
{"characteristics":[{"aid":3,"iid":9,"ev":true},{"aid":3,"iid":10,"ev":true}]}
![Page 43: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/43.jpg)
homekit プロトコル1 Bonjour (mDNS) で端末検索↓2 相手端末の IP と port を特定↓3 http みたいなプロトコルで端末間通信( 暗号は SRP chacha20 Poly1305 などで実現 )↓4 最終的に json 形式でデータをやり取り
![Page 44: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/44.jpg)
Homekit データ構造説明
![Page 45: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/45.jpg)
homekit データ構造Accessory ( 扇風機 )
Service (serviceType_fan)Characteristics( 名前 charType_serviceName)Characteristics( モデル名 charType_modelName)...Characteristics( 電源 ON/OFF charType_on)Characteristics( ファンスピード
charType_rotationSpeed)... それがどういう特性をもっているのか書いていく
![Page 46: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/46.jpg)
ようするに、こういうことだなstruct FAN{
bool On; // 電源 ON/OFF
std::string Name; // 名前std::string Model; // モデル名int RotationSpeed // ファンスピード
};
windows でいう activeX(COM) モデルを見ているようだ。
![Page 47: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/47.jpg)
サービスによって必要な特性が違うHAP-NodeJS HomeKitTypes.js を見た方が早いService.Fan = function(displayName, subtype) { Service.call(this, displayName, '00000040-0000-1000-8000-0026BB765291', subtype);
// Required Characteristics this.addCharacteristic(Characteristic.On);
// Optional Characteristics this.addOptionalCharacteristic(Characteristic.RotationDirection); this.addOptionalCharacteristic(Characteristic.RotationSpeed); this.addOptionalCharacteristic(Characteristic.Name);};
![Page 48: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/48.jpg)
変なモデルを送ると、登録時に無視されたり、消せないアクセサリーができたりといろいろ変なことが起きる。
![Page 49: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/49.jpg)
バグったらここで初期化できるよ
![Page 50: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/50.jpg)
安心です
![Page 51: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/51.jpg)
間違ってもiosは壊れないのでいろいろやって遊びましょう。
![Page 52: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/52.jpg)
homekit 課題
![Page 53: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/53.jpg)
string 型の扱いが難しいテレビのチャンネル切り替えが実装できないっぽい
int 型で 10ch にとかいうのは不可能ではないらしいが、テキスト型で 千葉テレビにして というのは無理っぽい。
![Page 54: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/54.jpg)
UI 的な課題ON/OFF 以上のことをしようとすると UI 的に詰む。( 今のところあるのは長押しで、スピード調整等の int 型を操作だけ? )
![Page 55: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/55.jpg)
Apple らしい好意的に見れば、シンプル悪意的に見れば、単機能( マウスのボタンが1 つしかなかった apple らしい )
![Page 56: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/56.jpg)
それでも、面白い機能であるのでいろいろ遊んでみましょう
![Page 57: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/57.jpg)
・オリジナルhttps://github.com/etwmc/Personal-HomeKit-HAP・修正版 (pull request がなかなかマージされないので )https://github.com/rti7743/Personal-HomeKit-HAP
Personal-HomeKit-HAP
![Page 58: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/58.jpg)
To apple's executives.If you have any problems, please buy us.
I will keep it very cheap. :)
![Page 59: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/59.jpg)
最後にもう一度 宣伝
![Page 60: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/60.jpg)
フューチャーホームコントローラー
![Page 61: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/61.jpg)
直売の他、秋葉原の愛三電機で展示販売中
![Page 62: FHCの宣伝とhomekit解説](https://reader033.vdocuments.net/reader033/viewer/2022042707/58e4a0ce1a28aba3458b5fa9/html5/thumbnails/62.jpg)
音声認識のホームコントローラー FHC 2017/1/31 までキャンペーン価格で提供中https://rti-giken.jp/ 定価 : 36800 円