SlideShare a Scribd company logo
1 of 62
ソフト屋さんと、ネット屋さんとかをしていました。
アーキテクトという肩書きで雑用係をやっていました。
現在は、独立してrti技研という会社をやっています。
好きな言語は C++ サーバサイドでは PHP のお手軽さが好きです。
I‘m CEO,Bitch! https://rti-giken.jp/
自
己
紹
介
フューチャーホームコントローラー
手に何も持たないハンズフリーの音声認識を提供します。
手ぶらの音声認識を提供します。
言葉でしゃべるだけです。
マイクまで1m~2m程度の距離で
も
動作します。マイクを部屋の中央
におけば全部をカバーします。
リモコンに勝たないと意味が無い
リモコンを使った家電操作
スマホを使った家電操作
フューチャーホームコントローラーを利用した操作
リモコンを手に取る ボタンを押す 涼しくなる
スマホを手に取る ロック解除・アプリ起動
クリックするか、
スマホに話しかける
涼しくなる
「コンピュータ、エアコンつけて」という 涼しくなる
スマートフォンから「も」操作することもできます。
開発時の取材・掲載
取材・掲載
マルチデバイス HTML5対応
スマホPC
設定はブラウザから簡単にできます。
・非インターネットの環境でも動く
・雑音が多い場所でも
認識するアルゴリズムを開発
・誤動作を起こしにくいアルゴリズムを開発
・armでも動作する身軽さ
オープンソースをベースに
開発した音声認識エンジン
いろいろなリモコンを学習できる
賢い学習リモコンエンジン
フューチャーホームコントローラー
様々なカスタマイズ
ユーザ:スマートウォッチPebble連携
http://www.nicovideo.jp/watch/sm20654023
ユーザ: vimから家電操作
http://www.youtube.com/watch?v=Uqm8sYyzwO8
ユーザ:Ringと連動
ユーザ:認識単語を呪文で家を操作
私の作品: 家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 扇風機
体の不自由な方の介護機器として
V8(javascript)で機能を拡張できます。 (上級者向け機能)
ブラウザからjavascriptで、
家をプログラミングすることができます。
フューチャーホームコントローラー
音声認識のホームコントローラー FHC
2017/1/31までキャンペーン価格で提供中
https://rti-giken.jp/ 定価: 36800円
直売の他、
秋葉原の愛三電機で展示販売中
FHCの話は去年も話したので、
今年は、少し別の話を。
Homekit
ios homekit解析のお話
オープンソース homekit実装例
JavaScript
HAP-NodeJS(homebrigde) Lisence:apache2.0
C++
Personal-HomeKit-HAP Lisence:mit
Java
HAP-Java Lisence:mit
オープンソース homekit実装例
JavaScript
HAP-NodeJS(homebrigde) Lisence:apache2.0
C++
Personal-HomeKit-HAP Lisence:mit
Java
HAP-Java Lisence:mit
C++で書かれている
Personal-HomeKit-HAP は、
ライブラリとして可能性がある。
ライセンスもMITだし。
ただし・・・
多少問題がある
ソースコードはとりあえず書いた感じかなあ。
・一度停止して再実行できない作り。
・そこそこのメモリリークがある。
・バッファオーバーランしそうな実装がある。
・Un*xでしか動かない。
これはやばい
と、いうことで、
全部修正しました。
https://github.com/etwmc/Personal-
HomeKit-HAP/pull/64
(ソースコードの作り以外全部直した)
https://github.com/rti7743/Personal-HomeKit-HAP
・再突入性の保証
(停止->スタート->停止->スタート可能)
・メモリーリークの排除
・バッファオーバーランの排除
・windows対応
(ソースコードの作りは、
書き直すしかないので、あきらめましょう。)
これで大丈夫。安心です。
https://github.com/rti7743/Personal-HomeKit-HAP
これであなたのプログラムも
homekit(siri)で操作できます。
やったね。
やったね。
さて、せっかくなので、
homekitプロトコル説明
homekitプロトコル
1 Bonjour (mDNS) で端末検索
↓
2 相手端末のIPとportを特定
↓
3 httpみたいなプロトコルで端末間通信
(暗号は SRP chacha20 Poly1305 などで実現)
↓
4 最終的に json形式でデータをやり取り
1. Bonjour (mDNS) で端末検索
Linux(オープンソース)だとavahi(あばひ)という実装がある。
実装としては、
DNSのsrvレコードとかtxtレコードで情報のやり取りをします。
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
...
3. httpみたいなプロトコルで端末間通信
(暗号は SRP chacha20 Poly1305 などで実現)
あまり詳しくないが、
chacha20-Poly1305 は、RFC7539で定義らしい。
これら暗号化はあのdjb大先生が提唱されているっぽい。
4.最終的にjsonでやり取り
PUT /characteristics HTTP/1.1
Host: FHC._hap._tcp.local
Content-Length: 78
Content-Type: application/hap+json
{"characteristics":[{"aid":3,"iid":9,"ev":true},{"aid
":3,"iid":10,"ev":true}]}
homekitプロトコル
1 Bonjour (mDNS) で端末検索
↓
2 相手端末のIPとportを特定
↓
3 httpみたいなプロトコルで端末間通信
(暗号は SRP chacha20 Poly1305 などで実現)
↓
4 最終的に json形式でデータをやり取り
Homekitデータ構造説明
homekitデータ構造
Accessory (扇風機)
Service (serviceType_fan)
Characteristics(名前 charType_serviceName)
Characteristics(モデル名 charType_modelName)
...
Characteristics(電源ON/OFF charType_on)
Characteristics(ファンスピード charType_rotationSpeed)
...
それがどういう特性をもっているのか書いていく
ようするに、こういうことだな
struct FAN{
bool On; //電源ON/OFF
std::string Name; //名前
std::string Model; //モデル名
int RotationSpeed //ファンスピード
};
windowsでいうactiveX(COM)モデルを見ているようだ。
サービスによって必要な特性が違う
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);
};
変なモデルを送ると、登録時に無視されたり、
消せないアクセサリーができたりと
いろいろ変なことが起きる。
バグったらここで初期化できるよ
安心です
間違っても
iosは壊れないので
いろいろやって
遊びましょう。
homekit課題
string型の扱いが難しい
テレビの
チャンネル切り替えが
実装できないっぽい
int型で 10ch にとかいうのは不可能ではないらしいが、
テキスト型で 千葉テレビにして というのは無理っぽい。
UI的な課題
ON/OFF以上のことをしようとするとUI的に詰む。
(今のところあるのは長押しで、スピード調整等の int型を操作だけ?)
Appleらしい
好意的に見れば、シンプル
悪意的に見れば、単機能
(マウスのボタンが
1つしかなかったappleらしい)
それでも、面白い機能であるので
いろいろ遊んでみましょう
・オリジナル
https://github.com/etwmc/Personal-HomeKit-HAP
・修正版(pull requestがなかなかマージされないので)
https://github.com/rti7743/Personal-HomeKit-HAP
Personal-HomeKit-HAP
To apple's executives.
If you have any problems,
please buy us.
I will keep it very cheap. :)
最後にもう一度 宣伝
フューチャーホームコントローラー
直売の他、
秋葉原の愛三電機で展示販売中
音声認識のホームコントローラー FHC
2017/1/31までキャンペーン価格で提供中
https://rti-giken.jp/ 定価: 36800円

More Related Content

Viewers also liked

やはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っているやはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っている今城 善矩
 
Forum IA BX mars 2016 - Blade Runner
Forum IA BX mars 2016 - Blade RunnerForum IA BX mars 2016 - Blade Runner
Forum IA BX mars 2016 - Blade RunnerArmelle Gilliard
 
Prise en charge du lymphoedème en hospitalisation complète
Prise en charge du lymphoedème en hospitalisation complètePrise en charge du lymphoedème en hospitalisation complète
Prise en charge du lymphoedème en hospitalisation complèteMaxime Blanc-Fontes
 
SP.Matveev.IComp.Cover.AUG2016
SP.Matveev.IComp.Cover.AUG2016SP.Matveev.IComp.Cover.AUG2016
SP.Matveev.IComp.Cover.AUG2016Alex Matveev
 
Pharmaceutical microbiology west coast
Pharmaceutical microbiology west coastPharmaceutical microbiology west coast
Pharmaceutical microbiology west coastAlia Malick
 
Dementia: An Overview
Dementia: An OverviewDementia: An Overview
Dementia: An OverviewIrene Ryan
 
11 flowers gifts which are perfect for allergy sufferers
11 flowers gifts which are perfect for allergy sufferers11 flowers gifts which are perfect for allergy sufferers
11 flowers gifts which are perfect for allergy sufferersCeline Wilson
 
Secret encoder ring
Secret encoder ringSecret encoder ring
Secret encoder ringToby Jaffey
 
437 King Lear Drive Charles Town WV 25414
437 King Lear Drive Charles Town WV 25414437 King Lear Drive Charles Town WV 25414
437 King Lear Drive Charles Town WV 25414ERA Liberty Realty
 
تعليم Css
تعليم Cssتعليم Css
تعليم CssFataho Ali
 

Viewers also liked (13)

やはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っているやはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っている
 
Forum IA BX mars 2016 - Blade Runner
Forum IA BX mars 2016 - Blade RunnerForum IA BX mars 2016 - Blade Runner
Forum IA BX mars 2016 - Blade Runner
 
Prise en charge du lymphoedème en hospitalisation complète
Prise en charge du lymphoedème en hospitalisation complètePrise en charge du lymphoedème en hospitalisation complète
Prise en charge du lymphoedème en hospitalisation complète
 
SP.Matveev.IComp.Cover.AUG2016
SP.Matveev.IComp.Cover.AUG2016SP.Matveev.IComp.Cover.AUG2016
SP.Matveev.IComp.Cover.AUG2016
 
Pharmaceutical microbiology west coast
Pharmaceutical microbiology west coastPharmaceutical microbiology west coast
Pharmaceutical microbiology west coast
 
Dementia: An Overview
Dementia: An OverviewDementia: An Overview
Dementia: An Overview
 
11 flowers gifts which are perfect for allergy sufferers
11 flowers gifts which are perfect for allergy sufferers11 flowers gifts which are perfect for allergy sufferers
11 flowers gifts which are perfect for allergy sufferers
 
The Crazy Cuban's Secret
The  Crazy Cuban's   SecretThe  Crazy Cuban's   Secret
The Crazy Cuban's Secret
 
Secret encoder ring
Secret encoder ringSecret encoder ring
Secret encoder ring
 
ISOPLYO20 DOS MODELOS
ISOPLYO20 DOS MODELOSISOPLYO20 DOS MODELOS
ISOPLYO20 DOS MODELOS
 
437 King Lear Drive Charles Town WV 25414
437 King Lear Drive Charles Town WV 25414437 King Lear Drive Charles Town WV 25414
437 King Lear Drive Charles Town WV 25414
 
تعليم Css
تعليم Cssتعليم Css
تعليم Css
 
Зерна пам’яті
Зерна пам’ятіЗерна пам’яті
Зерна пам’яті
 

FHCの宣伝とhomekit解説