スマートハウスの先駆けとなった iRemocon ですが、後続の類似品にシェアを取られ、そのうちにスマートスピーカーに立場を奪われるという結果になったのですが、家ではまだ現役です。
実現できます、その夢。
iremocon はいわゆる「学習型リモコン」で、テレビや照明、エアコンなどのリモコンそれぞれをひとまとめにして、そらにスマホから操作できるようにしたものです。
中身的には、それぞれのメーカーの赤外線リモコンの周波数を記憶し、同じ赤外線を発射することで家電をコントロールしています。単純なのですが、理論上全ての赤外線リモコンを操作できるということになりますね。
本来はスマホのアプリから操作するのですが、GoogleHome と連携することで、声でこれを操作します。
iRemocon が家電のコントロールを実現しているので、Googlehome と iRemocon を連携できる方法を構築するだけですね。
■GitHub - hecomi/node-iRemocon: iRemocon module for Node.js
https://github.com/hecomi/node-iRemocon
やり方も日本語で書いてくれてあるので、とても分かりやすいです。
インストールするだけですね。
sudo apt-get install iremocon
sudo apt-get install git-core libnss-mdns libavahi-compat-libdnssd-dev
git clone https://github.com/hecomi/node-iRemocon
cd node-iRemocon
npm install
コメント文で結構詳しく説明がされているのでプログラムも分かりやすく、初心者にはとても助かります。
こんなに簡単にスマートホームが構築できるなんて、便利な世の中になったものですね。
「iRemocon(アイリモコン)」という商品なのですが、 旧製品からリニューアルされていて、無線Wi-Fi のアクセスポイントとして利用できる他、センサーが内蔵され、部屋内の温度などをモニタしている機能が追加されています。
購入したのは海外長期出張前で、引っ越ししたらセットアップしようかとずっと箱の中。
結局、箱を開けたのは引っ越しして3か月後。寝かしっぱなし。
パッケージは今風に変わった他、製品自体も小型化されて、四角から円形にリニューアルされています。
こっちの方が可愛らしくて、リビングの家電に合いますね。
旧型は無骨すぎて、威圧感あったので・・・。
知らない人のために説明すると、この機械は、家電をコントロールするリモコン端末です。
仕組みとしては、単純。
赤外線を発信するテレビやエアコンといった機器の周波数を学習し、それと同じ周波数を部屋に置いたこの機械から発信することで、遠隔操作を可能にしています。
つまり、自分が操作するのは手持ちのスマホ。スマホからインターネット経由でこの機械にアクセスし、動かしているのです。
リモコンが常に持っている自分のスマホというところがメリットで、部屋中のリモコンをまとめられる他、外出先から操作できるので、帰宅時にエアコンを先につけおくことができます。
特にリニューアルされてセンサーが搭載されたのは大きく、帰る前にちょっと確認して部屋内が暑いな、と思ったらエアコンを入れて前もって部屋内の温度を下げておくことができるのです。これは贅沢な暮らしができますね!
質の良い紙でできたマニュアルが入っていますが、あんまり詳しくないです。
最近は、NTTとコラボして本体を購入しないで月額330円でレンタルするというプランがあるみたい。
実はアプリに有料で使える機能があるので、330円はお得なような気もします。
本体はけっこう厳重に梱包されています。
ちなみにプラスチックでできているので、結構軽いです。ここまで梱包されるような高級品ではない気がします。
ただ、上面の黒光りする天板は、とても綺麗。
おそらくここからリモコンの信号が発信されると思うのですが、ピカピカに磨いてやりたいくらいです。
リモコン本体は、かなり小さいので、こんな風にグリーンの下に隠してしまえば、目立たなくて良い感じ。
ちなみに接続したところ、ホームネットワークの全ての IP がおかしくなるような挙動をするので、いまネットワークから切り離した状態。箱から出しただけで、まだ使えていません。。。
ホームコンピュータを自作する
iRemocon には UI を自分の環境に合わせて自由にカスタマイズできる「UI デザイナー」が提供されており、これが他の競合製品にはないポイントになっています。自分専用のリモコンを作っても操作画面がカスタマイズできなくては使い勝手悪いですからね・・・。外出先からのアクセスや音声操作が有料サービス化されているので正直にいうとそこまで魅力的な製品ではないのですが、だがしかし VPN やネットワーク、それにスマートスピーカーの知識がある人は無料のままフルに機能を使いこなすという寛容さがあります。
7個のボタンを配置します。タブレットやスマホから、この画面を使って操作できるのですが、最終的にはスマートスピーカーから音声操作するので適当に作ります。
この UI を作る意味は正直無いのですが、これを作ることでリモコン番号がはっきりと把握できて、スクリプトが書きやすくなります。
具体的にはこの並びでリモコン番号を1~7に設定しています。
これで、telnet で接続した後に「is;1」とすると、リモコン番号1に記憶した IR 信号が発信されるという仕組みです。
UI を作った後に保存します。
自分のタブレットにインストールした iRemocon アプリを起動し、設定画面から UI を反映、それぞれのボタンにリモコンの信号を学習させます。これで iRemocon 側の設定は終わり。
HomeAssistant に iRemocon と連携するための設定を組み込んでいきます。
ネットを検索すると先人たちが既に作っているので、まずはそちらを利用しカスタマイズしていきます。
■【スマートホーム】iRemocon Wi-FiでHome Assistant用に照度・温度・湿度を取得する | web net FORCE
https://webnetforce.net/iremocon-wifi-get-humditiy_temp_lux/
僕は if [ $PARAM = "temp" ]; then のところを if [[ $PARAM = "temp" ]]; then と変更したぐらいでそのまま使えます。
Linux での改行コードにしないとエラー出るので注意。テキストエディタを使ったことが無い人は、vi などで直に書き込んでいけばうまくいくのですが余計難しいか。
実は旧型には温度などの環境数値の取得機能がなかったのですが、なんで動かないんだろ・・・とか思い悩んでしまった。しょうがないのでとりあえずリビングにある新型 iRemocon Wi-Fi に接続して温度・湿度・照度を取得しています。
現時点の温度も取得しますが、過去の温度なども記録されていくので、データとしていろいろ利用できます。
グラフ表示もできます。この画像は温度を表示したもの。すごくグラフが上下しているのですが、ウチは高気密・高断熱住宅なので実は温度があまり変わりません。温度があまり変わらないのでグラフ単位が細かく、29.0℃~29.8℃ の間で 1℃ の幅もないですね。
次はリモコン信号を発射する仕組みを作ります。
こちらも同じ方が作ってくださっているので、利用させていただきます。ありがたい。
【スマートホーム】Home Assistantで電気や暖房をPC/スマホ/タブレットから操作する
https://webnetforce.net/home-assistant-iremocon-wifi/
configuration.yaml に粛々と設定を書いていくのですが、公式に充分な量のドキュメントが用意されているので分かりやすいです。
Command line Switch(公式・英語)
https://www.home-assistant.io/components/switch.command_line/
画面上部に温度などの情報や設定したスイッチが終了されたら成功。以降、この画面からリモコンの ON・OFF ができるようにまります。
つまり、この HomeAssistant から時刻になったら電源ON・OFFや、温度条件に合わせて操作できるということです。
HomeAsiistant の画面を表示して、自宅全体の家電を表示し管理する中枢コンピュータの完成。
右下のプレステ4のスイッチだけエラーが出てるのは、この端末では認証してないからです(他で動作しているRaspberryPi のカードを引っこ抜いて、こっちに移植したから)。
温度・湿度・照度などの情報を各部屋に取り付けたセンサーから取得しつつモニタで確認、AI による温度調整の様子をモニタリング。必要があればタッチパネルなので画面からスイッチを押してON/OFFのコントロール。
買ってよかったですね、これ。
ただ、モニタ8千円+ラズパイ5千円計算で、Google のスマートスピーカー+連携するネットワークリモコンの値段と同等になる気がするので、自分で作れる人以外は普通に市場で売られているパッケージ物を購入した方が安心ですね。
クリエイターの人は、自分でいろいろカスタマイズできて遊べるので、こっちの方が全然いいです。
ここで表示している「天井ファン」は下記。
-
購入金額
22,400円
-
購入日
2015年02月26日
-
購入場所
かもみーるさん
2021/10/12
これってデータの保持期間ってありますか?
1年間分保持するなど。
私は Node-RED を使用してIoT機器連携系の自動化、WEBサーバーを通じて赤外線センサー機器へリモートアクセス、気温や湿度はDBサーバーへ格納してWEBサーバーを通じて表示。
一つずつ手作りなので UI 部分がショボイのです。
MySQLの互換性あれば HomeAsiistant へ移行できそうですね。
yasukawaさん
2021/10/12
Home Assistant はクラウドではなくオンプレなので、データは手元のサーバに格納します。
僕は Raspberry Pi 上に OS と Home Assistant が一体化した「Hass.io」をインストールしているため初期設定を見ておらず DB がどういう状態で構築されているか把握していないですが、MySQL は利用しているはずです。
ネット上には node.js の連携事例が多いようですが、Node-RED の事例も多く見かけるので、連携は容易いかと思います。
yasukawaさん
2021/10/12
https://www.home-assistant.io/
かもみーるさん
2021/10/12
6デバイス分管理してるのでその6倍のデータ量です。
うちの環境ではだいたい7日くらい保持していると6万件くらいで表示が遅くなっていきます。
何も対策されていないとデータ件数の母数が増えていくので、どんどんレスポンスが悪くなっていきます。
このことから、データ保持期間を設けてデータの母数制御してたりするのかなと思いました。
Node-RED の自宅運用していて思いましたが、node.js は常に更新がないシステムでは保守に向かないですね。
すぐにライフサイクルを迎えてバージョンアップと非互換対応に追われてしまいます。
かもみーるさん
2021/10/12
yasukawaさん
2021/10/12
場所ではなく表示数だったのですね。早とちりしました。
母数制御という言葉が分からなかったですが、グラフの横軸でいうと1日ぶんしか表示していないと思います。(設定でいじれるかもですが…)
表示が遅くなるというのはリアルタイムで集計してグラフ表示しているんでしょうか?
かもみーるさん
2021/10/13
直近のデータと過去6時間までの曲線グラフを表示させて、5分毎に再描画させてます。
集計は時間別の他に月間と年間がありましたが、表示が遅くなるので機能を外しています。
yasukawaさん
2021/10/13
閾値からエアコン系家電の24時間稼働させるとかの展開だと、胸アツですね!