
ééããªããApple iOSã¯æã人æ°ã®ããã¢ãã€ã«OSã®1ã€ã§ããç¶ããŸããã€ãŸããçŸä»£ã®èªååã·ã¹ãã ã¯ãã®ãšã³ã·ã¹ãã ã«çµ±åããçžäºäœçšããæ©èœãæäŸã§ããå¿
èŠããããŸãã ãã®ç®çã®ããã«ãHomekitãã¬ãŒã ã¯ãŒã¯ãèšèšãããŠããŸããããã«ãããiPhone / iPad / iWatchãããã«æè¿ã§ã¯MacïŒmacOS MojaveïŒã®ç»é¢ããã¹ããŒãããã€ã¹ãæäœã§ããŸãã
ã»ãšãã©ã®èªååã·ã¹ãã ïŒããŒã±ãã£ã³ã°åãã¹ããŒãããŒã ãã¯å¥œãã§ã¯ãããŸããïŒã«ã¯ãHomekitãšçµ±åããããã®ã¢ãžã¥ãŒã«ãé·ãå«ãŸããŠããŸããããã¬ãŒãã³ã°ãåãããŠãŒã¶ãŒã§ãã£ãŠããããã€ã¹ãããŒã ïŒãŸãã¯ã€ãïŒã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšå¯èœã«ããæ¹æ³ãç解ããããšã¯å¿
ããã容æã§ã¯ãããŸããã
ä»æ¥ã¯ãioBrokerã·ã¹ãã ïŒããã¯ãªãŒãã³ã§ç¡æã®èªååã·ã¹ãã ã§ãïŒã§ãããã®æäœãè¡ãæ¹æ³ã説æããŸãã ããããããã€ã¹ã®å€ãã®äŸããã¹ãŠæãã«æã£ãŠããªãããã«ãããã€ãã®ååã説æããã¢ãããŒãã瀺ããããšæããŸãã
ãããã€ãã®ååãç¥ãããšã¯ãããã€ãã®äºå®ãç¥ããªãããšãç°¡åã«è£ããŸããã
ã¯ããŒãã»ãšã€ããªã¢ã³ã»ãã«ããã£ãŠã¹
ioBrokerã ãã©ã€ããŒãããã€ã¹ãããã³ã¹ããŒã¿ã¹
ãŸããioBrokerã·ã¹ãã ã«å«ãŸããããã€ã¹ãšãã®è¡šç€ºæ¹æ³ã«ã€ããŠèª¬æããŸãã
ioBrokerã·ã¹ãã ã¯ã¢ãžã¥ãŒã«åŒã§ãããæ¡åŒµã¢ãžã¥ãŒã«ã¯ãã©ã€ããŒïŒãŸãã¯ã¢ããã¿ãŒïŒãšåŒã°ããŸãã ãã©ã€ããŒã¯ãããã€ãã®ããã€ã¹ãŸãã¯ããã€ã¹ã®ã°ã«ãŒããšã®çµ±åã¢ãžã¥ãŒã«ã§ãããå
±éã®æ©èœããããã³ã«ããŸãã¯è£œé å
ã«ãã£ãŠçµ±åãããŠããããã1ã€ããè€æ°ã®ããã€ã¹ã«ioBrokerã·ã¹ãã ã«ããã©ãã°ãã§ããŸãã å¥ã®æ©èœã¯ãèšå®ãç°ãªãåããã©ã€ããŒã®è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããæ©èœã§ãã
ããããåããã€ã¹ã¯ãŠããŒã¯ã§ç¬ç¹ã§ãããç°ãªãç¹æ§ãšæ©èœãåããŠããŸãã ããã«åºã¥ããŠãioBrokerã¯äž»ã«ããã€ã¹èªäœã§ã¯ãªããç¶æ
ã«ãã£ãŠè¡šããããã®ç¹æ§ã«çŠç¹ãåãããŸãã ç¶æ
ã¯ãå€ãåãå
¥ããŠä¿åããå
éšioBrokerãªããžã§ã¯ãã§ãã ç¶æ
ã®å矩èªãšèŠãªãããšãã§ããŸãïŒèšå·ãå±æ§ãç¹æ§ãããããã£ãã€ãã³ãã æ¡ä»¶ã®äŸïŒã枩床ãããèŒåºŠã¬ãã«ãããããããªãŒã¬ãã«ãããé»æºæå
¥ãã©ã°ããããšã©ãŒãã©ã°ãããæŒããã©ã°ãããäºéæŒããã©ã°ããªã© ãããã£ãŠãåããã€ã¹ã¯ããŸããŸãªç¶æ
ã§è¡šãããŸãã

ç¶æ
ã¯ãæçãªç¶æ
ïŒããã€ã¹ããã®æ
å ±ã衚瀺ããç¶æ
ãããã³å¯å€ç¶ââæ
ïŒã«åé¡ã§ããŸããç¶æ
ã¯ããŠãŒã¶ãŒãŸãã¯ã¹ã¯ãªããã«ãã£ãŠå€æŽãããããã®å€æŽãããã€ã¹ã«éä¿¡ã§ããŸãã ãããã£ãŠãããã€ã¹äžã§äœããå€æŽãããå Žå-ãã®ããŒã¿ã¯ç¶æ
ã§è¡šç€ºãããç¶æ
ãioBrokerããïŒãŠãŒã¶ãŒãŸãã¯ã¹ã¯ãªããã«ãã£ãŠïŒå€æŽãããå Žå-ããã€ã¹ã¯å€æŽã«é¢ããä¿¡å·ãåä¿¡ããããã«å¿ããŠå¿çããå¿
èŠããããŸãïŒããã€ã¹èªäœãšããã䜿çšãããã©ã€ããŒã«ãã£ãŠç°ãªããŸãïŒäœåïŒã
ãã¹ãŠã®ããã€ã¹ç¶æ
ã¯ãç¶æ
ã®åäžããªãŒïŒã¬ãžã¹ããªïŒã«çµåãããŸãã ãããã¯ãæåã«ããã€ã¹ããšã«ã°ã«ãŒãåããïŒå Žåã«ãã£ãŠã¯ãã£ãã«ããšã®ã°ã«ãŒãåãåŒãç¶ã䜿çšãããŸãïŒã次ã«ãã©ã€ããŒã€ã³ã¹ã¿ã³ã¹ããšã«ã°ã«ãŒãåãããŸãã
MQTTãããã³ã«ãããã¯ã®æŠå¿µã¯ããã®ãããªç¶æ
ããªãŒã«ç°¡åã«é©åããŸãã ãã®ããã«ããŠãMQTTãããã³ã«ããµããŒãããè¿œå ã®æ©åšãŸãã¯ãµãŒãããŒãã£ã·ã¹ãã ãæ¥ç¶ã§ããŸãã MQTTãã©ã€ããŒãã€ã³ã¹ããŒã«ããã ãã§ååã§ã-察å¿ãããã©ã³ããç¶æ
ããªãŒã«è¡šç€ºãããŸãã
ãŸããæçšãªæ
å ±ãæäŸããããä»ã®æ©åšïŒè»ã®ã¢ã©ãŒã ãªã©ïŒãå¶åŸ¡ãããããããšãã§ãããããããçš®é¡ã®ãªã³ã©ã€ã³ãµãŒãã¹ããããŸãã ãããã®ãµãŒãã¹ãšã®çžäºäœçšã®çµæããäžé£ã®ç¶æ
ãšããŠè¡šãããŸãã

åèšã§ãioBrokerã®ããã€ã¹ã¯ãããã€ã¹ãç¹åŸŽã¥ããããã€ã¹ãšå¯Ÿè©±ã§ããç¶æ
ã®ã»ããã§è¡šãããŸãã
ããŒã ããã ã¢ã¯ã»ãµãªãŒããµãŒãã¹ãä»æ§
次ã«ãHomekitã䜿çšããŸãã ããã§ã¯ãããã€ã¹ã®åé¡ããããã®æ©èœãšç¹æ§ãé©çšãããŸãã

ã¢ã¯ã»ãµãªã¯ç©çããã€ã¹ã«çžåœããŸãã ã¢ã¯ã»ãµãªã«ã¯ãç¹å®ã®ã°ã«ãŒãã«å²ãåœãŠãããã®ã«ããŽãªããããŸã ã
ãµãŒãã¹ã¯ãã¢ã¯ã»ãµãªã®æ©èœãšåçã§ãã 1ã€ã®ã¢ã¯ã»ãµãªã«è€æ°ã®ãµãŒãã¹ãèšå®ã§ããŸãã
ãµãŒãã¹ã¯ãããã€ã¹ã®æ©èœã瀺ããŸãïŒã©ã³ããããããªãŒããã¿ã³ã空æ°è³ªã»ã³ãµãŒããã¢ããšã¢ã¯ãªãŒããŒãã«ã¡ã©..
ãã£ã¹ãã¬ã€ãããã€ã¹ã®åäœãããã³ç¹æ§ã»ããã決å®ããã®ã¯ãµãŒãã¹ã§ãã
ç¹æ§ã¯ããµãŒãã¹ãç¹åŸŽä»ããå±æ§/ããããã£ã«çžåœããŸãã ããã€ã¹ã®é»æºããªã³ã«ãªã£ãŠãããã©ãããã©ã³ãã®èŒåºŠã¬ãã«ããŸãã¯ãã¿ã³ãæŒãããåæ°ã決å®ããç¹æ§ã§ãã åäžã®ãµãŒãã¹ã«ã¯å€ãã®ç¹æ§ããããŸãã

Homekitã§åäœããã¢ããªã±ãŒã·ã§ã³ã¯ãã¢ã¯ã»ãµãªã®ãµãŒãã¹ãšç¹æ§ãèªã¿åãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠç¹æ§ã®å€ã衚瀺ããã³å€æŽã§ããŸãã å€æŽãããå€ã¯ãããããé©çšããããã«Homekitããã€ã¹ã«éä¿¡ãããŸãããŸããHomekitããã€ã¹ããããããã€ã¹ã®åŽé¢ããããã€ãã®å€æŽãšãšãã«ç¹æ§ã®å€ãéä¿¡ãããŸãã
å
šäœãšããŠãHomeKitã®ããã€ã¹ã¯ãäžé£ã®ãµãŒãã¹ãšæ©èœãåããã¢ã¯ã»ãµãªã®ããã§ãã
ã€ãã«ã ã³ã³ã»ããã«åå ããŸã
Homekitã䜿çšããã«ã¯ãioBrokerã¯Yahkaãã©ã€ããŒã䜿çšããŸã ïŒ ã€ã³ã¹ããŒã«ã®åã«è¿œå ã®ã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãïŒ-ããç¥ãããŠããã©ã€ãã©ãªãžã®ã¢ããªã³ https://github.com/KhaosT/HAP-NodeJS ã人æ°ã®ããHomeBridgeãããžã§ã¯ãããã«ãããŸãã ãã®ã©ã€ãã©ãªã¯ãHomeKitã§ä»®æ³ããã€ã¹ã®ã»ãããæäŸããä»®æ³ã²ãŒããŠã§ã€/ããªããžãäœæããããã«èšèšãããŠããŸãã ä»®æ³ããã€ã¹ãšãµãŒãã¹ãé©å®æ§æããç¹æ§ã®å€ãèšå®ããããå®æããããã€ã¹ãHomekitãšHomeã¢ããªã±ãŒã·ã§ã³ã§ååŸããSiriã«ç®¡çãäŸé Œããããšãã§ããŸãã
Yahkaãã©ã€ããŒã¯ãã¢ã¯ã»ãµãªãŒãæ§æãããããã«ãµãŒãã¹ãè¿œå ããç¹æ§ïŒHomeKitïŒããã³æ¡ä»¶ïŒioBrokerïŒã®ã³ã³ãã©ã€ã¢ã³ã¹ã瀺ãããã«èšèšãããŠããŸãã
ãã ããæåã«ãã€ã³ã¹ããŒã«åŸãã²ãŒããŠã§ã€ãæ§æããŠããŒã ã¢ããªã±ãŒã·ã§ã³ã«åã蟌ãå¿
èŠããããŸãã èšå®åŸãã²ãŒããŠã§ã€ã«è¿œå ããããã¹ãŠã®ããã€ã¹ã¯èªåçã«ããŒã ã«è¿œå ãããŸãã ãããè¡ãã«ã¯ããããã€ã¹åããæå®ãïŒã©ãã³æåã®ã¿ãæå®ããããšãæãŸããïŒãPINã³ãŒããèšæ¶ããŸãïŒãŸãã¯ç¬èªã«èšå®ããŸãïŒã

ããŒã ã¢ããªã±ãŒã·ã§ã³ã«ç§»åããæ°ããã¢ã¯ã»ãµãªãè¿œå ããŸãã ããã§ã¯ãããã€ã¹ã«ã€ããŠèª¬æããŸãããã ioBrokerã®ããã€ã¹ã®ç¶æ
ã®ã»ãããHomeKitã®ãµãŒãã¹ãšæ©èœã®ã»ããã«äžæã«å¯Ÿå¿ããŠããã°ããã¹ãŠããŸããããŸãã ãããŠãå·ã®å€ãç¹æ§ã®å€ã«é©ããŠããã°ããã«è¯ãã§ãããã ããããããã¯ããã§ã¯ãªãããšãå€ãããããã³ã°ããããã®ç°åžžãªæ¹æ³ãèãåºãå¿
èŠããããŸãã ãããã®ããã€ãã«ã€ããŠä»¥äžã§èª¬æããŸãããä»ã®ãã¹ãŠã®ãªãã·ã§ã³ããã€ã¡ãŒãžãšäŒŒå§¿ã§ãèªåã§å®è£
ããå¿
èŠããããŸãã
䟿å®äžããµãŒãã¹ãšã¿ã€ãã®å€æãããã³ç¹æ§ã®å¯èœãªå€ãå«ãããã¥ã¡ã³ããäœæããŸãã ã 䜿çšããããã¹ãŠã®ã¿ã€ããšãµãŒãã¹ã¯ã HAP-NodeJSã©ã€ãã©ãªã«å¯Ÿå¿ããŠããŸã ã
枩床ã»ã³ãµãŒ
ããã¯æãåçŽãªäŸã§ã-å¿
èŠãªã®ã¯ã枩床ã®æ°å€ãå«ã1ã€ã®ç¶æ
ãæã€ããšã ãã§ãã ã»ã³ãµãŒãŸãã¯ã€ã³ã¿ãŒããããµãŒãã¹ïŒå€©æ°ïŒããååŸã§ããŸãã
Sensorã«ããŽãªã®ããã€ã¹ãè¿œå ããTemperatureSensorãµãŒãã¹ãããã€ã¹ã«è¿œå ããŠããã®ãµãŒãã¹ã«ååãä»ããå¿
èŠããããŸãã ãã®ãµãŒãã¹ã«ã¯5ã€ã®ç¹æ§ãããããã®ãã¡æãéèŠãªã®ã¯CurrentTemperatureã§ãã


CurrentTemperatureç¹æ§ã§æž©åºŠã«å¯Ÿå¿ããç¶æ
ã®ååã瀺ãã ãã§ååã§ãã
ããã«HumiditySensor湿床ãµãŒãã¹ãè¿œå ãããšãHomekitã«å¥ã®ã¢ã¯ã»ãµãªãŒã¢ã€ã³ã³ãäœæãããŸãã

ä¿åããŠãå®äºã§ãã ããã§Siriã«ç®ãåãã枩床ãšæ¹¿åºŠã«ã€ããŠå°ããããšãã§ããŸãã

ããããªãŒ
å¥ã®ã·ã³ãã«ãªãµãŒãã¹ã ãã®ç§trickã¯ãã»ãŒãã¹ãŠã®ã¢ã¯ã»ãµãªã«è¿œå ã§ããããšã§ãã BatteryServiceãµãŒãã¹ãè¿œå ããBatteryLevelç¹æ§ã§ããããªãŒå
é»ã®å²åãå«ãç¶æ
ã瀺ããŸãã ãã®åŸãå
é»ããŒã¿ãããã€ã¹ã«é¢ããè¿œå ããŒã¿ã«è¡šç€ºãããŸãã

æå®ããç¶æ
ã®å€ã1ã«çããå Žåãããã€ã¹ã€ã¡ãŒãžã«å¯Ÿå¿ããã¢ã€ã³ã³ã衚瀺ãããŸããããã«ãäœå
é»ãã®ãµã€ã³ïŒç¹æ§StatusLowBatteryïŒãèšå®ã§ããŸãã
ãããããã®ãããªç¶æ
ã§ã¯ãªããäœå
é»ã¢ã€ã³ã³ã衚瀺ãããå Žåã¯ã©ãã§ããããïŒ ãã®ç¶æ
ãæåãŸãã¯ã¹ã¯ãªããã§äœæããäœæããç¶æ
ãç¹æ§ã§ç€ºãå¿
èŠããããŸãã
çŸåšã¯ããã®ç¶æ
ã§å€ãæ£ããtrueã«èšå®ããã ãã§ãã ãããè¡ãã«ã¯ãã¹ã¯ãªããã䜿çšããŸããããããªãŒã30ïŒ
ã«éãããšãtrueã«èšå®ãããŸãã
createState(""); on({id: "zigbee.0.00158d0001f41725.battery", change: "ne"}, function (obj) { var value = obj.state.val; setState("javascript.0.", (value <= 30)); });
æåã®å®è¡åŸãã¹ã¯ãªããã¯ç¶æ
ãäœæããç¹æ§ã§éžæã§ããŸãã

ãã®ãµã€ã³ã¯ãã¢ã¯ã»ãµãªãŒã®ç»åã«è¡šç€ºãããŸã

ããã³ããã€ã¹ã®è©³çŽ° ã©ã³ã
é»çã¯ç°ãªããŸã-æãããæãããèµ€ã 4ã€ã®ã±ãŒã¹ããããŸãã
- ã·ã³ãã«-ãªã³ãšãªãã§å¶åŸ¡
- 調å
å¯èœ-èŒåºŠã¬ãã«ã§ãå¶åŸ¡
- 枩床ã§-ã°ããŒæž©åºŠãå¶åŸ¡ã§ããŸã
- è²-ã°ããŒã®è²ãå¶åŸ¡ã§ããŸã
ãããã®åã±ãŒã¹ã«ã€ããŠãLightbulbãµãŒãã¹ã«ã¯å¯Ÿå¿ããç¹æ§ããããŸãã
- ãªã³-ãªã³/ãªããåãæ¿ããŸã
- èŒåºŠ-èŒåºŠã¬ãã«
- è²çž-ã·ã§ãŒã
- 圩床-圩床
- ColorTemperature-è²æž©åºŠ
åçŽãªã±ãŒã¹ã§ã¯ãããªã³ãç¹æ§ã§ããªã³ãšãªããåãæ¿ãã責任ãããç¶æ
ã瀺ããŸãã

ã©ã³ãã調å
å¯èœãªå Žåã¯ãããã«èŒåºŠã¬ãã«ã§ã¹ããŒã¿ã¹ã瀺ããŸãã

æ£ããç¶æ
ãå²ãåœãŠãããšã«å ããŠã蚱容å€ã®ééã芳å¯ããããšãéèŠã§ãïŒ
äŸïŒå Žåã«ãã£ãŠã¯ãã©ã³ãã®æããã®åå ãšãªãç¶æ
ã¯0ã255ã®å€ãåãããšãã§ããŸãããHomekitã§ã¯ãããã®å€ã¯0ã100ã®ééã«å¶éãããŸãããã®å ŽåãYahkaãã©ã€ããŒå€æé¢æ°ã䜿çšã§ããŸãã é¢æ° "level255"ã¯ãå€0..255ã®ééãéé0..100ã«å€æããŸãïŒããã³ãã®éïŒã
ã©ã³ããè²ä»ããããŠããå Žåã次ã®åé¡ãçºçããå¯èœæ§ããããŸããã䜿çšãããè²ã¯RGBã§ãã 3ã€ã®ç°ãªãç¶æ
ããŸãã¯1ã€ã®çªå·ïŒãŸãã¯è¡ïŒã®ããããã§ãã ãã®å Žåã1ã€ã®RGBã«ã©ãŒã¹ããŒã¹ããå¥ã®XYBã¹ããŒã¹ïŒãã®ã¹ããŒã¹ã¯HomeKitã«ãã£ãŠäœ¿çšãããŸãïŒããŸãã¯XYãã¬ãŒã³ã«å€æããå¿
èŠããããŸãã
ãããè¡ãã«ã¯ã2ã€ã®æ°ããç¶æ
ïŒè²çžãšåœ©åºŠïŒãäœæããå¿
èŠããããŸãããã®ç¶æ
ã«å€ãRGBç¶æ
ããããŸãã¯ãã®éã«å€æããŸãã
çµæã®è²ã®ã¹ã¯ãªãã㯠è²æž©åºŠãããç°¡åã«è¡ãããšãã§ããŸã-ã©ã³ãã§äœ¿çšå¯èœãªå€ã®ç¯å²ãããã£ãŠããå ŽåãHomeKitã§äœ¿çšå¯èœãªééã«å€æã§ããŸãïŒ scaleInté¢æ°ã䜿çšïŒã


ãµãŒã¢ã¹ã¿ãã
ãµãŒã¢ã¹ã¿ãã-èšå®æž©åºŠãç¶æããããã€ã¹ïŒãµãŒã¢ã¹ã¿ãããµãŒãã¹ïŒã ãããã£ãŠããµãŒã¢ã¹ã¿ããã®äž»ãªç¹æ§ã¯ãç®çã®æž©åºŠïŒTargetTemperatureïŒã§ãã èšå®æž©åºŠã«å ããŠãçŸåšã®æž©åºŠïŒCurrentTemperatureïŒã瀺ãããšãã§ããŸããããã¯æ¬è³ªçã«æ
å ±ã§ãïŒããã€ã¹ã¯ã»ã³ãµãŒããã®ã¿èªã¿åãããïŒã
ããŒã ã¢ããªã±ãŒã·ã§ã³ããããµãŒã¢ã¹ã¿ããã«ç®æšæž©åºŠãèšå®ãããçŸåšã®æž©åºŠãç£èŠãããŸãã ç§ã®ãµãŒã¢ã¹ã¿ããïŒZontïŒã«ã¯ãããã2ã€ã®ç¶æ
ããããŸããããããã¯ããµãŒãã¹ã¯ã©ãŠãAPIãä»ããŠå©çšã§ããŸããã
HomeKitã§ããã€ã¹ã衚瀺ããããã«ãããã€ãã®å®æ°ãè¿œå ããå¿
èŠããããŸãããçŸåšã®å ç±ç¶æ
ã¯ã¢ã¯ãã£ãïŒ1ïŒãå ç±ã®ç®æšç¶æ
ã¯èªåïŒ3ïŒã§ãã


ã²ã€ã
ã¬ã¬ãŒãžãã¢ïŒGarageDoorOpenerãµãŒãã¹ïŒã䜿çšãããšããµãŒã¢ã¹ã¿ããã䜿çšããããããã¹ãŠãè€éã«ãªããŸãã
䜿çšå¯èœãªç¹æ§ã®ãã¡ãã²ãŒãã«ã¯ã¿ãŒã²ããç¶æ
ïŒTargetDoorStateïŒããããŸããããã¯ãã²ãŒãããéããŠããããŸãã¯ãéããŠãããããšãæãã§ããããšã瀺ããŠããŸãã ãã ããã²ãŒãã®çŸåšã®ç¶æ
ïŒCurrentDoorStateïŒãæ£ãã衚瀺ããå¿
èŠããããŸãããããã¯éããŠãããéããŠãããããŸãã¯éããŠãããéããŠããã®ã§ããããã
ç§ã®å Žåãã²ãŒãã¯ioBrokerã®mqttãéããŠããã€ãã®æ
å ±ç¶æ
ã§éãããŸããã
- ã²ãŒãéæŸæ§ã®ãµã€ã³ïŒOBïŒ
- ã²ãŒã移åã®ãµã€ã³ïŒLWïŒ

ãããã®ç¶æ
ã®ãããã§ãã²ãŒãã®çŸåšã®ã¹ããŒã¿ã¹ãèšç®ã§ããŸãã
- OBãšDVããªãå Žåãã²ãŒãã¯éããããŸã
- OBããªããDVãããå Žåãã²ãŒããéããŸã
- OBãããDVããªãå Žåãã²ãŒãã¯éããŠããŸã
- OBããããDVãããå Žåãã²ãŒãã¯éããŸã
ã²ãŒããééããä¿¡å·ãéä¿¡ããã«ã¯ãmqttãä»ããŠã²ãŒãå¶åŸ¡ã³ã³ãããŒã©ãŒã«ã¡ãã»ãŒãžãéä¿¡ãã2ã€ã®ç¶æ
ããããŸãïŒ1ã€ã®ç¶æ
ã§å¯Ÿå¿ã§ããŸãããããã§ã¯2ã€ãããŸãïŒã
- ãªãŒããã³ã°ã·ã°ãã«
- çµäºä¿¡å·
ä¿¡å·ãéä¿¡ããã«ã¯ããã¯ãªãã¯ããã¿ã³ãã·ãã¥ã¬ãŒãããå¿
èŠããããŸããå€ãtrueã«èšå®ãããã°ããããŠããfalseã«ãªã»ããããŸãã ãã®ç¹ã§ãHomeKitãšçµ±åããã«ã¯ãå¥ã®ç¶æ
ãäœæããå¿
èŠããããŸãã-ãã¿ãŒã²ããã²ãŒãç¶æ
ããå€æŽããããšã察å¿ããä¿¡å·ãéä¿¡ãããŸãã
ã²ãŒãã®éæŸæ§ã®å
åã¯ãã¿ãŒã²ããç¶æ
ïŒã€ãŸããç®æšãç®æããã®ïŒã«çœ®ãæããããšãã§ããŸãã
- CAããééããããDVããªãå Žåãã²ãŒãã¯ééãããŸã
- CAããéãããããDVãããå Žåãã²ãŒããéããŸã
- CAããéããŠããããDVããªãå Žåãã²ãŒãã¯éããŠããŸã
- CAããéããŠããããDVãããå Žåãã²ãŒãã¯éããŸã
ãŸããå¥ã®ç¶æ
ãçŸåšã®ã²ãŒãç¶æ
ããäœæãããµã€ã³ã®å€ãšã¿ãŒã²ããç¶æ
ã«å¿ããŠã¹ã¯ãªããã«å
¥åããŸãã
ã¬ã¬ãŒãžãã¢ã®ç¶æ
å€æŽã¹ã¯ãªãã createState("gate_0.current");
ã¹ã¯ãªãããå®è¡ããåŸãã¬ã¬ãŒãžãã¢ãµãŒãã¹ã®ç¹æ§ãæ§æã§ããŸãã


ã«ã¡ã©
HomeKitã«ã«ã¡ã©ãè¿œå ããã«ã¯ããã¯ã©ã·ãã¯ãã¡ãœããã䜿çšãããŸãã ffmpegã¢ãžã¥ãŒã«ãä»ããŠã«ã¡ã©ããç»åããããŒããã£ã¹ãããããšãã§ããŸãã ããã«ãããå
¥åã¹ããªãŒã ããšã³ã³ãŒããæå·åãããHomekitã«æž¡ãããŸãã
ãŸããioBrokerãé
眮ãããŠãããµãŒããŒã«ffmpegãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã
ãã©ãããã©ãŒã ããšã«ãããŸããŸãªæ¹æ³ã§ã€ã³ã¹ããŒã«ãããŸãããœãŒã¹ããã¢ã»ã³ããªããããããšãã°æ¬¡ã®ãããªæ¢è£œã®ã¢ã»ã³ããªãæ€çŽ¢ã§ããŸãã https://www.johnvansickle.com/ffmpeg/ libx264ãšã³ã³ãŒããŒãå¿
èŠã§ãã 次ã®ã³ãã³ãã䜿çšããŠãffmpegãã€ã³ã¹ããŒã«ããåŸããšã³ã³ãŒããŒã確èªã§ããŸãã
ffmpeg -codecs | grep 264
çµæã«ã¯ã次ã®åœ¢åŒã®è¡ãå«ãŸããŠããå¿
èŠããããŸãã
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m h264_vdpau ) (encoders: libx264 libx264rgb h264_v4l2m2m )
Raspberry Pi 3ã®å ŽåãGPUããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ããµããŒãããã³ãŒããã¯ãåããæ¢è£œã®ã¢ã»ã³ããªã䜿çšã§ããŸãïŒh264_omxãæ¶è²»ãªãœãŒã¹ãå°ãªãïŒã 次ã®ããã«é
眮ããŸãã
wget https://github.com/legotheboss/YouTube-files/raw/master/ffmpeg_3.1.4-1_armhf.deb sudo dpkg -i ffmpeg_3.1.4-1_armhf.deb
ãã®ã¢ã»ã³ããªã«ã¯äž¡æ¹ã®ã³ãŒããã¯ãååšããŸãïŒlibx264ããã³h264_omx
次ã«ããããŒããã£ã¹ãããå¿
èŠã®ããã«ã¡ã©ã¹ããªãŒã ã®ã¢ãã¬ã¹ãååŸããå¿
èŠããããŸãïŒãã®æé ã¯ãã®èšäºã®ç¯å²å€ã§ãïŒã ããšãã°ã æ¢è£œã®ãããªãã¯ã¹ããªãŒã ãååŸã§ããŸã ã
ã«ã¡ã©ãYahkaã«è¿œå ããã¹ããªãŒã ã®ã¢ãã¬ã¹ãæå®ããå¿
èŠã«å¿ããŠã³ãŒããã¯ãç»åãµã€ãºããã¬ãŒã ã¬ãŒãã®ãã©ã¡ãŒã¿ãŒãå€æŽããŸãã
éèŠïŒHomekitã§ã«ã¡ã©ãæ£ãã衚瀺ããã«ã¯ããã©ã¡ãŒã¿ãŒã®çµã¿åãããéåžžã«éèŠã§ãããã«ã¡ã©ãšã¹ããªãŒã ã«äŸåããŸãã ãŸããã·ã¹ãã ã®ããã©ãŒãã³ã¹ã«ã圱é¿ããŸãã ffmpegã®å®è¡äžã®ããã»ã¹ã¯å€ãã®ãªãœãŒã¹ãæ¶è²»ããŸãã


ã«ã¡ã©ã¯ã²ãŒããŠã§ã€ã®å€éšã«åå¥ã®ããã€ã¹ãšããŠè¿œå ãããã²ãŒããŠã§ã€ãšåãæ¹æ³ã§è¿œå ããå¿
èŠããããŸã 

ããŒãã¹
ããŒãã¹ãšããŠãã«ã¡ã©ãããŒããã£ã¹ãã®ç°åžžãªäœ¿çšã«ã€ããŠèª¬æããŸãã
ã«ã¡ã©ã®ä»£ããã«åãffmpegã䜿çšããŠãç»åãç»åããããŒããã£ã¹ãã§ããŸãã ãããã®åçã¯ããããªã¹ããªãŒã ãšçµã¿åãããããšãã§ããŸãã ç»åã«ããã¹ããã°ã©ãã£ãã¯ã¹ãããã³ãã®ä»ã®æ
å ±ã衚瀺ã§ããŸãã

ãã®çµæãèå³æ·±ãããã·ã¥ããŒããååŸã§ããŸãã ãŸããå®æçã«ç»åãæŽæ°ãããšãåçããŒã¿ãåŸãããŸãã
äŸãšããŠãåçïŒãã£ã¹ã¯äžã®ãã¡ã€ã«ïŒã®åœ¢ã§ããã€ãã®ã€ã³ãžã±ãŒã¿ãŒã®å€åã®ã°ã©ããåºããŸããã ãã®ã°ã©ãã¯1åéã«1åæŽæ°ããããã¡ã€ã«å
ã®ç»åãäžæžãããŸãã
ïŒé¢æ°createImage1ãcreateImage2ãã°ã©ãã®åœ¢æãããã³ç»åãžã®ããã¹ãã®é¢ä»ãã¯ããã®èšäºã®ç¯å²å€ã§ããããã³ãã瀺ããŸãïŒãåçã®åœ¢ã§ã°ã©ããååŸããæ¹æ³ã説æããŸãã
IoBrokerã«ã¯ãã°ã©ããäœæããæšæºçãªæ¹æ³ã§ããFlotãã©ã€ããŒããããŸãã ãã®ãã©ã€ããŒã¯Webãã©ã€ããŒãšãã¢ã«ãªã£ãŠããããã©ãŠã¶ãŒã«çµæã衚瀺ããŸãã ãã ããäœæãããã°ã©ãããµãŒããŒäžïŒã¹ã¯ãªããå
ïŒã§ç»åãšããŠååŸããã«ã¯ãè¿œå ã®PhantomJSãã©ã€ããŒãå¿
èŠã§ãããã®ãã©ã€ããŒã¯ãããŒãžã®ãã¹ã¯ãªãŒã³ã·ã§ãããïŒFlotã°ã©ããæç»ããïŒãååŸããŸãã
ãã ããã¹ã¯ãªããã䜿çšããŠãµãŒããŒäžã§ã°ã©ããäœæããå¥ã®æ¹æ³ã«ã€ããŠèª¬æããŸãã
ãã®ãããªChart.jsã©ã€ãã©ãªhttp://www.chartjs.org/ããããããã䜿çšãããšããã©ãŠã¶ã§èŠæ ãã®è¯ãã°ã©ãã£ãã¯ãæç»ã§ããŸãïŒäŸhttp://www.chartjs.org/samples/latest/ ïŒã
æç»ã«ã¯ããã©ãŠã¶ã®ããã£ã³ãã¹ãïŒãã£ã³ãã¹ïŒã䜿çšããŸãã ãããã£ãŠããµãŒããŒã§ãã®ã©ã€ãã©ãªã䜿çšããŠæç»ããã«ã¯ãããµãŒããŒãããŒãžã§ã³ã®ããã£ã³ãã¹ããªããžã§ã¯ããšDOMãªããžã§ã¯ãã䜿çšããå¿
èŠããããŸãã ãããchartjs-nodeããã±ãŒãžã®æ©èœã§ãïŒ https://github.com/vmpowerio/chartjs-node ïŒã
ãã®ããã±ãŒãžã®äž»ãªäŸåé¢ä¿ã¯ããã£ã³ãã¹ããã±ãŒãžïŒ https://github.com/Automattic/node-canvas ïŒã§ãããã°ããŒãã«ïŒãŸãã¯iobrokerãã©ã«ããŒïŒã«ã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã https://github.com/Automattic/node-canvas#compilingãé
眮ãããã©ãããã©ãŒã ã®ãã¹ãŠã®äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããããšãéèŠã§ãã
ãã®åŸãchart.jsãchartjs-nodeã¢ãžã¥ãŒã«ãjavascriptãã©ã€ããŒèšå®ã«è¿œå ã§ããŸãã ãšã©ãŒãªãã§æ£ããã€ã³ã¹ããŒã«ãããã¯ãã§ãã ãã以å€ã®å Žåã¯ããšã©ãŒãåŠçããŠè§£æ±ºããŸãã
ãããŠãã¹ã¯ãªãããæžãããšãã§ããŸãã
以äžã¯ãäŸã®ã¹ã¯ãªããã§ãã ããã«ã¯ãå±¥æŽãã©ã€ããŒã®äœ¿çšãå«ãŸããç¹å®ã®ç¶æ
åã䜿çšãããŸãã
泚æïŒ ã¹ã¯ãªããã«ã¯ãåå¿è
åãã®è€éãªæ§é ããããŸã-Promise ããã¯ãã³ãŒã«ããã¯ã䜿çšããŠé¢æ°ãäœæããã®ã§ã¯ãªããã¹ãããã®ãã§ãŒã³ãäœæãã䟿å©ãªæ¹æ³ã§ãã ãããã£ãŠãããšãã°ããããå®è¡ããŠç¶æ
å±¥æŽããããŒã¿ãååŸãããšäŸ¿å©ã§ãã
'use strict'; const ChartjsNode = require('chartjs-node'); function sendToPromise(adapter, cmd, params) { return new Promise((resolve, reject) => { sendTo(adapter, cmd, params, (result) => { resolve(result); }); }); }

ãµã ãã€ã«ç»åã¯çŽ1åã«1åæŽæ°ãããããã10ç§ããšã«æŽæ°ãããããã«ç»åãèšå®ããŸãã
var fs = require('fs'); // 10 schedule("*/10 * * * * *", () => { createImage1('/tmp/1_new.jpg', ()=> { fs.renameSync('/tmp/1_new.jpg', '/tmp/1.jpg'); }); createImage2('/tmp/2_new.jpg', ()=> { fs.renameSync('/tmp/2_new.jpg', '/tmp/2.jpg'); }); });
ç¹æ®ãªç¹ã¯ãç»åããããŒããã£ã¹ãããããã»ã¹ã§ãffmpegãã¯ã©ãã·ã¥ããªãããã«ç»åãååã«è¿
éã«çœ®ãæããå¿
èŠãããããšã§ã:)ãããã£ãŠãç»åã¯æåã«1ã€ã®ãã¡ã€ã«ã«åœ¢æããã次ã«ãã¡ã€ã«ã¯ç¿»èš³ã«äœ¿çšããããã¡ã€ã«ã«ååãå€æŽãããŸãã
ããã§ãã«ã¡ã©ã®èšå®ã§ãã¹ããªãŒã ã¢ãã¬ã¹ã®ä»£ããã«çæããããã¡ã€ã«ã®ååãæå®ããç»åããæŽæ°ããããèšå®ïŒãã©ã¡ãŒã¿ãŒã-loop 1ãïŒãè¿œå ããŸãã ããã¯ãã«ã¡ã©ã®è©³çŽ°ããããã£ã§æ§æãããŸãã ãããã®ããããã£ã¯ãffmpegãå®è¡ããããã®ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ã«ãããŸããã ãããã£ãŠãffmpegã®ããã¥ã¡ã³ããšäŸã§ãã©ã¡ãŒã¿ãŒã®çµã¿åãããèŠã€ããå¿
èŠããããŸãã
ããããã£ã¯ãããã¬ãã¥ãŒãïŒå°ããªã«ã¡ã©ç»åïŒãååŸãããããšãããŒããã£ã¹ãããããã®2çš®é¡ã«åããããŸãã ãããã£ãŠãããšãã°ç°ãªã詳现ã§ãç°ãªãç»åãœãŒã¹ãã¡ã€ã«ãæå®ã§ããŸãã


ãããã«
ããã€ã¹ãšãµãŒãããŒãã£ã®ãµãŒãã¹ãioBrokerã·ã¹ãã ã«çµ±åãããšãããããã¯ã¯éåžžã«æ·±ããåçŽã§ã¯ãããŸããããã©ã°ã€ã³ã®äœæè
ã¯çµ±åããã»ã¹ãç°¡çŽ åããããšããŸãããå Žåã«ãã£ãŠã¯è¿œå ã®ããžãã¯ãèšè¿°ããå¿
èŠããããŸãããããããã®ãããªæè»æ§ã®ãããã§ãã»ãŒãã¹ãŠã®ããã€ã¹ããã³ãµãŒãã¹ãšã®çµ±åãå¯èœã§ãã
Yahkaãã©ã€ããŒã®éçºè
ã¯ãMaterialãã©ã€ããŒã§è¡ãããŠããããã«ãåªåããŠããã€ã¹ã®èªåæ€åºãè¿œå ããããšãæãŸããŸãããã®å Žåãç¶æ
ã®åœ¹å²ãšæ©èœã瀺ãå¿
èŠãããããã©ã€ããŒã¯HomeKitã®ã²ãŒããŠã§ã€æ§æã«é©åãªããã€ã¹ãè¿œå ããããšãææ¡ããå¿
èŠããããŸãã
Yahka, HomeKit â Ham, HomeBridge . ããããããã¯å¥ã®èšäºã®ãããã¯ã§ãã