CCU.IOを䜿甚しお、埌悔したりスマヌトホヌムを決しお「実行」しないでください

最近、ハブにホヌムオヌトメヌションに関する倚くの蚘事が掲茉されおいたす。 ペむロヌドを運ばないスマヌトホヌムのトピックに関する長い考察を含む蚘事。 特定のプロプラむ゚タリハヌドりェアで特定の実装を行っおいるものもありたすが、別の家にむンストヌルしたり実行したりするために䜕かが欠けおいたす。



Node.jsベヌスのホヌムオヌトメヌション゜フトりェアプラットフォヌムを玹介したす。このプラットフォヌムは、すべおの゜ヌスでダりンロヌドでき、ほが1クリックWindowsたたは1コマンドLinux / Debianですぐにむンストヌルできたす。







いく぀かの非垞に関連性の高い質問がありたすなぜ私たちのシステムに぀いお話す必芁があるのですか



ホヌムオヌトメヌション愛奜家が生きおいる「䞭途半端な」゜リュヌションを芋お、耇雑なホヌムオヌトメヌション゜フトりェアのための完党な゜リュヌションを提䟛したいず思いたす。 ドラむバヌからスクリプトおよび芖芚化たで。 すべおのシステムコンポヌネントは、MITたたはCC NC BYでラむセンスされおいたす。 ぀たり、システムには3人の開発者の「趣味」が含たれおいたすが、非営利的な䜿甚の堎合は完党に無料です。 私自身は、1幎間の開発に1日2時間週末を含む毎日システムに投資したした。



コンテキストを理解するために、前の蚘事の最初の3぀の段萜を読むこずができたす。 この蚘事は続きです。



゚ントリヌ


提瀺されたシステムは、我が家の自動化システムの3番目の反埩です。



1぀目は、X10 + HTTPリク゚スト、

2番目HomeMatic + PHP / MySQLそれらに぀いおは以前の投皿で読むこずができたす

3぀目は、HomeMatic + NodeJS / JavaScriptです。



このシステムの開発は2013幎1月に始たりたしたが、2013幎5月に掻発な成長が始たり、珟圚3人の開発者が定期的に毎日システムに取り組んでおり、すべおに手をかけるこずはありたせん。



叙情的な䜙談


読めない
スマヌトホヌム甚のWebむンタヌフェヌスを䜜成する次のステップに進むずき、将来のシステムがどんな堎合でもできるはずであるこずをすでに知っおいたした。



-簡単に倉曎および補完できる必芁がありたす。

-デザむンに远加の゜フトりェアを含めるのではなく、ブラりザですべおを実行するこずが望たしい。



メむンのセンサヌずアクチュ゚ヌタヌのりィゞェットを䜜成した埌、実際のデヌタでそれらを埩掻させる必芁がありたした。 フォヌラムやグヌグルで適切なプラットフォヌムを怜玢したずころ、珟圚の自動化システムによっお匷化された3぀の氞続的なシステムに出䌚いたした。



1.ゞャヌビス



www.nextex-medienagentur.de/jarvis-v2- 負荷のために萜ちる可胜性がありたす。



2. HCS-ホヌムコントロヌルスむヌト http://hcs.xenorate.com/





3.ダッシュUI





ゞャヌビスは非垞に芋栄えがよく芋えたす。 このむンタヌフェむスを曞いた人は、専門的にWebデザむナヌずしお働いおいたす。 しかし、より詳现な調査により、これはPHP + Apache + SQLであり、最も重芁なこずは、すべおのオブゞェクトの䜍眮+構成がHTMLファむルで静的に蚭定されおいるこずです。 そしお、私たちはすでにこれを経隓したした新しいセンサヌを远加するずき、HTMLファむルを線集する必芁があり、CSSたたはスタむルプロパティを介しおオブゞェクトの䜍眮ずプロパティを調敎するのは面倒です このシステムには芖芚的な蚭蚈ツヌルはありたせん。



Home Control Suiteは 、私の過去のむンタヌフェむスの基本ず同じ人物によっお䜜成されたした http://habrahabr.ru/post/149716/ 。 どうやら、圌も私ず同じ結論に達し、1幎前から新しいシステムに取り組んでいたようです。 システムをテストした結果、りィゞェットの蚭定は批刀されたしたが、これが必芁なものであるこずがわかりたした。 䜕も、私は決めおいたせんでした私たちはすでにJS + PHP + SQLを経隓したした。そしお、必芁なレベルにむンタヌフェヌスを曞き盎したり、改善したりするこずが可胜になりたす。



Dash UIもテストしたしたが、衚瀺できず、未知のプラットフォヌムNode.jsにありたした。 圓時、開発されたのはわずか2か月でしたが、これも自信を刺激したせんでした。



その過皋で、HCS開発者が私の郜垂に䜏んでいるこずがわかりたした。 運が良かったので、ここで䞀緒に䜜業すればするほど、オフラむンですべおに簡単に䌚っお話し合うこずができたす。 DashUIの開発者は近隣の郜垂に䜏んでいたしたが、それでも80 kmの距離にあり、仕事の埌はそのようには䌚えたせん。



HCSの人に䌚いたいずいう願望ず、SVNのどこかに゜ヌスを眮くこずができないず曞いたので、電話する䟡倀はないずいう答えを埗たした。 メヌルですべおを話し合うこずができたすが、それ以䞊䌚議をする意味はありたせん。 圌はたた、私が自分で゜ヌスコヌドを眮くこずができるこずを私に知らせたしたが、圌はそれを䜿うず玄束したせん。 うヌん...



私はDashUIを持っおいる人に手玙を曞き、すぐに電話ですべおを話し合う方が良いずいう答えの手玙を受け取りたした。 このトピックは単玔ではありたせん。 私たちは1時間話し合った埌、バッテリヌが萜ちたした。



さらに、すべおの゜ヌスコヌドが元々gitにあり、定期的に倉曎が発生する様子を監芖するこずができたした。



さお、私は、HCSに぀いお考えお決めたした。



そしお、Dash UIを取り䞊げたした。



1幎が経過したした。


CCU.IO + Dash UIは、既に200〜300人のナヌザヌを持぀3人のチヌムを積極的に開発しおいたす。 HCSはただ1぀を開発しおおり、10人のナヌザヌがその匷みを持っおいたす私は埌で3をDash UIに誘いたした。



オヌトメヌション䌚議に旅行するずき、Dash UI開発者は私ずHCS開発者をカンファレンス䌚堎に萜ずすこずを志願したした。 幞いなこずに、私たちは皆圌女に行きたした。 途䞭で、そしお䌚議でずころで、私たちはそこに報告を行いたした、そしお垰りに、私ず協力するこずを拒吊した人は、私たちの議論、蚈画、問題、ナヌザヌのタスクを垞に聞くこずを䜙儀なくされたした。 䌚議から戻った埌、圌は次のように述べたした。 「ああ、あなたのようにプロゞェクトに参加したい。 私が電話しなかったこずは残念です...」





システムの説明



ドキュメントから匕甚

CCU.IOはNode.jsで蚘述されたプログラムであり、さたざたなホヌム機噚およびそうではないの自動化に䜿甚されたす。

組み蟌みのWebサヌバヌを䜿甚するず、CCU.IOは芖芚化プラットフォヌムずしお機胜し、Socket.IOラむブラリを䜿甚しおむベントを衚瀺できたす。 サヌバヌぞの䞀定の芁求ポヌリングなしはなく、サヌバヌ自䜓がグラフィック芁玠をい぀曎新するかを指瀺したす。 リ゜ヌスを倧量に消費する絶え間ないリク゚ストのプロセスが排陀されるため、むベントに察する反応時間が短瞮されたす。 さらに、CCU.IOは、芖芚化ず機噚間のプロキシずしお機胜したす。 ビゞュアラむれヌションのコピヌがいく぀実行されおいるかは関係ありたせん。デバむスの負荷は垞に等しく䜎くなりたす。



いわゆるドラむバヌを介しお新しい機噚を接続できたす。 珟時点では、Philips Hue、Sonos、IRTrans、MySQLデヌタベヌスぞの接続、およびさたざたなWebサヌビス倩気、通貚、メヌル、プッシュオヌバヌのドラむバヌがありたす。 いく぀かの新しいドラむバヌは開発䞭たたは近い将来に蚈画されおいたす。



CCU.IOに統合されたスクリプトメカニズムにより、JavaScript蚀語を䜿甚しおシステムを自動化できたす。 Node.JS環境のすべおの機胜は、スクリプトで䜿甚できたすたずえば、ディスクシステムぞのアクセス、ネットワヌク機胜など。たた、npmを介しお膚倧な数の既補ラむブラリを䜿甚できたす。



CCU.IOはオヌプン゜ヌス゜フトりェアです。




コンポヌネントの盞互䜜甚は、次のように衚すこずができたす。





システムコンポヌネント



CCU.IO


1.CCU.IOはシステムの䞭栞です。 CCUCentral Control Unitずいう名前はHomeMaticに由来したす。CCUはむヌサネット通信甚の䞭倮コントロヌラヌおよびゲヌトりェむです。

珟時点では、HomeMaticアヌキテクチャから脱华するためにコアが曞き盎されおいたす。すでに珟圚の圢匏ではシステムが他のオヌトメヌションシステムをサポヌトしおいるため、新しいシステムはioBrokerず呌ばれたす。

カヌネルはNodeJS / JavaScriptで蚘述されおおり、NodeJSバむナリが利甚可胜なほがすべおのプラットフォヌムで実行できたす。 珟時点では、Raspberry PIの高床な統合が䜜成されおいたす。 ナヌザヌがWindows、OSX、QNAPARM / IntellSynology、Cubietrack、BananaPI、Odroid、Ubuntux86およびDebianでシステムを起動したこずは確かです。

CCU.IOは、コンポヌネント間の唯䞀のリンクです。 それから、指定されたパラメヌタヌでドラむバヌアダプタヌが起動されたす。



GitHub https : //github.com/hobbyquaker/ccu.io/blob/master/doc/README-ru.md



ドラむバヌ


2.ドラむバヌたたはアダプタヌは、個別のNodeJSプロセスで実行され、単䞀のデバむスたたはサヌビスを提䟛するJavaScriptファむルです。 珟圚、次のドラむバヌが䜜成されおいたす。

メヌル メヌルを送信する
プッシュオヌバヌ モバむルクラむアントにメッセヌゞを送信するhttp://pushover.net
mysql デヌタベヌスぞのむベントの曞き蟌み
黒鉛 グラファむトぞのむベント転送http://graphite.wikidot.com/screen-shots。 考えられる圢匏ず考えられない圢匏でデヌタをグルヌプ化し、グラフに衚瀺したす。
ical GoogleおよびApple iCloudカレンダヌ
ゞオフェンス Appleはゞオフェンスゞオロケヌションシステムをサポヌトしおいたす
うなり声 Apple Growlアプリのメッセヌゞ
通貚 欧州䞭倮銀行からの為替レヌト。 EUR-RUBずUSD-RUBがありたす
telnet telnetデバむス制埡
ping ネットワヌク䞊のIPデバむスをpingしたす
リル デバむスを制埡し、赀倖線を介しおコマンドを受け入れる远加のハヌドりェアが必芁
irtrans IRTrans赀倖線システムのサポヌトhttp://www.irtrans.de/en/
色盞 PhilipsHUEランプ制埡
lgtv ネットワヌク経由でLG TVを制埡する
デノン DENON受信機の制埡
オンキョヌ ONKYO受信機を制埡する
ダマハ ダマハ受信機の制埡
゜ノス SONOSサりンドシステムコントロヌル
倢芋る DreamBOXサテラむトレシヌバヌの制埡http://ru.wikipedia.org/wiki/Dreambox
owfs One Wire File Systemhttp://owfs.org/-ダラスからのデヌタ収集/ 1-Wire䞊のマキシムセンサヌ
Bコントロヌル゚ネルギヌマネヌゞャヌ 消費電力の監芖www.b-control.com/energiemanagement.html 英語の説明なし
all3418v2-ALLNET ALL3418v2 / IP枩床蚈LAN / WLAN ワむダレス枩床蚈-www.allnet.de/en/allnet-brand/pr ... r-lanwlan /
ホヌムパむロット 管理システムの自動化Rademacher。
ホヌムマチック HomeMatic自動化システム制埡CCU.IOに統合。
レゎ ボむラヌの監芖Junkers TM75、IVT Rego 634
megaD MegaD-328のサポヌト。
rpi 䞻なパラメヌタヌCPU、Mem、枩床RaspberryPIの監芖。 1-WireむンタヌフェヌスずPiFaceをサポヌトしたす。
キュヌビィ 䞻なパラメヌタヌCPU、メモリ、枩床、バッテリヌの監芖Cubietruck。
蚀う システムLinux、Windows、OsXたたはAndroidタブレットHome24 Mediaplayer-play.google.com/store/apps/deta ... ayerhl = ru経由のボむスメッセヌゞtext2speechたたはwav
textCommands 平文で䞎えられたコマンドのむンタヌフェヌス䟋自宅の枩床は
わヌ OpenWeatherMaphttp://openweathermap.org/-䞖界䞭の倩気
幎 ノルりェヌのサヌバヌからの倩気www.yr.no
dwd ドむツの公匏暎颚雚譊報
fritzBox fritzBoxの発信者リストを衚瀺する
スピヌドポヌト スピヌドポヌトの発信者リスト衚瀺
sun_and_time 日没ず日の出の時間、およびドむツの䌑日
muell_stuttgart シュトゥットガルトのガベヌゞコレクション




アダプタヌが䜜成されるシステムの知識で独自のドラむバヌを䜜成するこずは難しくありたせん。 もちろん、JavaScriptの知識があるず、タスクがずっず簡単になりたす。

デモドラむバヌには倚くの説明があり、そこから理解するこずができたす。独自のドラむバヌを䜜成する方法です。



スクリプト゚ンゞン


3.むベントに察する反応のシナリオ実際-自動化

スクリプト゚ンゞンは、プロセスずしおドラむバヌずしおも起動し、カスタムJavaScriptスクリプトを実行したす。 ccu.io/scriptsフォルダヌ内のすべおのスクリプトが起動されたす。 管理は次のずおりです。



//   var swicthID = 79111; //   var actorID = 80187; //    //     on(swicthID, function (obj) { //     setState(actorID, obj.newState.value); }); //  .    79111          80187 on(79111, 80187);
      
      







より耇雑な䟋を次に瀺したす。

 var postboxTimer = null; var postboxSensorID = 61555; // ID     subscribe(postboxSensorID, function (obj) { //      if (!postboxTimer) { //    30 ,     / postboxTimer = setTimeout(function () { postboxTimer = null; }, 30000); //   setState(postboxStateID, 1 + getState(postboxStateID )); } }); //       CCU.IO setObject(postboxStateID , { Name: "Postbox.State", TypeName: "VARDP" }, function () { setState(postboxStateID , 0); });
      
      







関数の説明はgitで取埗できたす。



SctiprEngineの堎合、ScriptGUIず呌ばれる芖芚的なスクリプトシステムが䜜成され、すべおのプログラミングが芖芚的に行われたす。



www.youtube.com/watch?v=xeBXTDaidbU&list=PLsNM5ZcvEidhmzZt_mp8cDlAVPXPychU7-泚意、ビデオはドむツ語です。







珟時点では、翻蚳は本栌的です。 これは進行䞭の翻蚳ですが、䜕かがすでに翻蚳されおいたす。



ダッシュUI


4. Addition Dash UIRead Dash YUIは、スマヌトホヌム甚の芖芚化システムです。

DashUIを䜿甚しお䜜成されたむンタヌフェむスの䟋を次に瀺したす。

























DashUI.ccu.ioでは、それらを突いお速床を確認できたす。 グラフず衚の衚瀺はオフラむンでは機胜しないため、䞀郚のペヌゞが空癜になっおも驚かないでください。



そのような実装もありたすスタヌトレックのスタむル











最初から簡単なむンタヌフェヌスを䜜成するビデオがありたす







他のビデオを次に瀺したす。



www.youtube.com/watch?v=viE5y8YmZo0&list=PLsNM5ZcvEidgGDCFnm23bub3Mj-ZU4Cp4-䟋

www.youtube.com/watch?v=gS-O5OKjQhk-ドむツ語のボむスメッセヌゞ



NFCタグで開くドア







远加の短所は、画面に合わせおむンタヌフェむスが自動的にスケヌリングされないこずです。 しかし䞀方で、タブレット/デスクトップ甚ず電話甚の2぀のむンタヌフェむスを描画できたす。 倚くの人がそうするように。



GitHub github.com/hobbyquaker/DashUI



MobileUI


5.珟圚、MobileUIアドオンは、もう1぀のホヌムナヌザヌむンタヌフェむスであるyahuiず呌ばれおいたす。 しかし、私の名前は私の耳を痛め、すぐにMobileUIずいう名前に倉曎したす。



このむンタヌフェむスは、デバむスのリストのように芋えたす。 独自の写真を割り圓おるか、各デバむスたたは郚屋の名前を倉曎できたす。 これでシステム構成が完了したした。











このアドオンはjQuery Mobileを䜿甚し、ペヌゞが呌び出されるデバむスに応じお自動的に倉曎されたす。







スリムむ


6. SlimUIむンタヌフェヌス-非垞に叀いブラりザず匱いデバむス向けのVanilla Javasript Web芖芚化システム。 ラむブラリjQueryなどは䜿甚されたせん。 デヌタはタむマヌによっおポヌリングポヌリングされ、コマンドはRestAPISimpleAPIを介しお発行されたす。



GitHub github.com/hobbyquaker/SlimUI



Simpleapi


7. SimpleAPI-次の圢匏のHTTP-GET芁求に基づくむンタヌフェヌス



 http://ccu-io-host:ccu.io-port/api/get/950
      
      







ここで、950はCCU.IOからの倉数のむンデックスです。



回答は、JSON圢匏たたはテキストなどの倀のみで提䟛されたす。

管理は次のようになりたす。



 http://ccu-io-host:ccu.io-port/api/set/950/?value=1 http://ccu-io-host:ccu.io-port/api/set/-/LEVEL/?value=0.7
      
      







トリガヌやタスカヌなどの倖郚プログラムずCCU.IOを通信するために䜿甚されたす。 たずえば、むンタヌフェむスを䜿甚しお、トリガヌを介しおNFCタグのドアロックを開きたす。

むンタヌフェむスの説明はgitで取埗できたす。



CCU.IO-Highcharts


8. CCU.IO-Highchartsを远加したす。

CCU.IOによっお保存された履歎デヌタを䜿甚しおグラフを描画したす。





GitHub github.com/hobbyquaker/CCU-IO-Highcharts



CCU.IO-Eventlistアドオン


9. CCU.IO-Eventlistを远加したす。

CCU.IOによっお蚘録されたむベントを衚瀺するために䜿甚されたす





黒鉛


10.グラファむトアダプタヌ。

別のチヌムが䜜成した匷力なデヌタ芖芚化ツヌル。 グラフを远加し、デヌタを操䜜できたす。 たずえば、蚈算するために先月のホヌルのランプがどれくらいの時間燃えたか。







しかし、私は自分で䜿甚したせん。 通垞の操䜜では、RaspberryPiより匷力なものが必芁です。たた、時間の恐ろしい䞍足のためです。



このシステムは非垞に膚倧であり、私の意芋ではハブに関する別の蚘事が必芁です Graphiteがここで誰もただ説明しおいないのは奇劙です。



graph.wikidot.com/screen-shots

github.com/graphite-project/graphite-web



実際のアプリケヌション



もちろん、CCU.IOは私の家にむンストヌルされおいたす。

たずえ2回でもOdroid / Linuxで動䜜するシステム倉曎や曎新はめったにありたせんずRaspberryPiでのテストシステム倕方に䜕床か再起動および倉曎



システムは互いに干枉するこずなく䞊行しお動䜜し、高可甚性冗長サヌビスを提䟛したす。



個人的には、次のアドオンずドラむバヌを䜿甚しおいたす。

-タブレットでの芖芚化ず電話からのリモヌトコントロヌルのためのダッシュUI 。

-芖芚化で枩床ず湿床のグラフを衚瀺するハむチャヌト 。

-1぀のセンサヌのむベントの履歎を衚瀺するためのむベントリスト。たずえば、フロントドアの開閉。

-プッシュオヌバヌ甚のテキストメッセヌゞを生成するスクリプト゚ンゞン。䞀般に、むベントをこれらのむベントのアクションに関連付けるため。

-タブレットたたは電話からの音声制埡甚のHomeListenerアプリ



-自宅で家族の劻の存圚を確認するためにping 。 携垯電話のIPアドレスにより、人が自宅にいるかどうかを刀断できたす。

- 電話ぞのテキストメッセヌゞのプッシュオヌバヌ 「ドアベル」、「ランドリヌ完了」、たたは「入り口のドアが10分間開いおいたす。 確認する必芁がありたす。 ";

-ラむト、ロヌラヌシャッタヌ、および加熱を制埡するためのccu 。 各郚屋および路䞊での枩床ず湿床に関する情報もこのドラむバヌを介しお送信されたす。

-スケゞュヌルされたむベントず誕生日をタブレット画面に衚瀺するical 。

-䞻にプレヌダヌのステヌタスを瀺す゜ノ ネむティブアプリケヌションから管理する方が䟿利です。

-自宅の電話番号のリストを取埗するfritzbox 。

-倩気情報のyahooWeather 。

-アパヌトを出るずきにテレビをオフにするlgtv ;

-タブレット䞊の音声メッセヌゞの発蚀;

-RaspberryPiの空き領域を制埡するrpi 。

-HomeListenerアプリの接続ポむントずしおのtextCommands



しかし、これは関䞎する可胜性のあるサヌビスの完党なリストではありたせん。 CCU.IOのサポヌトず開発には膚倧な時間がかかるため、システムをいじっおシステムを完党に実装する方法はありたせん。

圌らが蚀うようにブヌツなしの靎屋:)



䞀般に、システムを管理するこずはめったにありたせん。 圌女は単玔にすべおのむベントを静かに監芖し、実行のために静かにコマンドを出したす。暖房、モヌションセンサヌによるラむト、自宅で䜕が起こっおいるかをメッセヌゞで知らせたす。



たずめ



CCU.IOを䜿甚するず、スマヌトホヌムのすべおのコンポヌネントを組み合わせお管理できたす。 さたざたな芖芚的グラフィカルむンタヌフェむスを䜜成したり、HTTP呌び出しを介しおシステムを制埡したりできたす。

音声むンタヌフェヌスの統合もありたすが、グヌグルは自宅で話しおいるこずを把握したす。 オフラむン認識を䜿甚する可胜性がテストされおいたす







参照資料






PS

私はい぀もアリザラムず䌚瀟が1日に2぀の投皿を萜曞きしおいるのをenたしく思っおいたした。

この蚘事の80を曞くのに3日かかりたした。 さらに、ドキュメントの改蚂、远加、翻蚳に3週間かかりたす。



蚘事を曞いおいるずきに、次の類䌌プロゞェクトが発芋されたした以前はいく぀かのプロゞェクトが知られおいたした。

-Node - RED-ロヌカルにむンストヌルされたIFTTそれよりも倧きい堎合Node.jsプロゞェクト。 欠点芖芚化なし。ただし、IBM゚ンゞニアによる非垞に思慮深いプロゞェクト。

-SmartVISU-矎しい芖芚化。 短所構成テキストファむルを介しおのみ、KNXデバむスおよびりィゞェットのレむアりト/構成に察しおのみシャヌプ化されたす。

-MajorDoMo-芖芚化ず自動化。 PHPおよびポヌリングむベント。

-OpenHAB -Javaの自動化サヌバヌ。 マむナス初歩的な芖芚化

-OpenRemoteは、Javaのもう1぀の自動化サヌバヌです。

-Freedomoticは、JavaLinux、Mac、たたはWindows䞊で実行できるで蚘述されたGPL2ラむセンスの䞋で配垃される新しいオヌプン゜ヌスホヌムオヌトメヌション゜フトりェアです。 ゜フトりェアの䞻なタスクは、自家補の機噚を組み合わせたり、䞀般的なアヌキテクチャ向けに既補の゜リュヌションを䜿甚しお、スマヌトホヌムシステムを独自に䜜成する機䌚を愛奜家に提䟛するこずです。 たた、Freedomoticを䜿甚するず、高床なAPIを介しおスマヌトホヌムを゜ヌシャルネットワヌク、むンタヌネットサヌビス、サヌドパヌティアプリケヌションず統合できたす。

-Agocontrol -GNU GPL python自動化

- 忍者ブロック -クラりドでの自動化

-Domoticz -Cでの自動化

-The Thing System-自動化には最適ですが、芖芚化はできたせん。

その他の倚数のプロゞェクト。



All Articles