ç§ã®æåã®èšäºã§ã¯ã家æãšç§ãé·ãé䜿ã£ãŠãããã¬ã°ã©ã ããããä»ããŠãã«ã³ããªãŒããŠã¹ã®é éææ¿å¶åŸ¡ã·ã¹ãã ãç»å Žããèæ¯ã«ã€ããŠèª¬æããŸããã
iOS 10ã®ãªãªãŒã¹ã§ãAppleã¯Homeã¢ããªããŠãŒã¶ãŒã«å°å
¥ããŸãã-HomeKitãä»ããã¹ããŒãããŒã 管çã€ã³ã¿ãŒãã§ã€ã¹ã®å®è£
ã ç§ã¯ãã®ãããã¯ã«éåžžã«èå³ããããå©çšå¯èœãªè³æãæ°æ©ç 究ããŠããã®è£œåãšã·ã¹ãã ã®çµ±åãå®è£
ããããšã«ããŸããã ãã®èšäºã§ã¯ãã€ã³ã¹ããŒã«ãšæ§æã®ããã»ã¹ã詳现ã«èª¬æãããã®çµæãšããŠãããªãå
±æããŸãã
å
容
- ã¯ããã«
- OpenHabãã€ã³ã¹ããŒã«ããŠæ§æãã
- NooLiteãOpenHabã«æ¥ç¶ãã
- OpenHabçšã®HomeKitãã€ã³ã¹ããŒã«ããŠæ§æãã
- ããŒã ã¢ããªã±ãŒã·ã§ã³ã®ã»ããã¢ãã
- çµæ
- ãããã«
ã¯ããã«
ã¹ããŒãããŒã ã®åæããŒã¿ãšåææ§æãç解ããã«ã¯ã æåã®èšäºãèªãããšããå§ãããŸãã
æåã®ã¿ã¹ã¯ã¯ãHomeKitã®ãµããŒãã«ããã家åºçšæ©åšã®èªååã«ãããæ¢è£œã®ç¡æãœãªã¥ãŒã·ã§ã³ãèŠã€ããããšã§ããã ãã®åŸãç§ã¯ããã«ãªãŒãã³ãœãŒã¹è£œåOpenHabã«é¢ããããã€ãã®èšäºãæãåºããŸããã ããã¥ã¡ã³ããšå°ãã°ãŒã°ã«ãèªãã åŸãHomeKitãããã³ã«ãµããŒãã¢ããªã³ãèŠã€ããŸããã çŸæç¹ã§ã¯ãOpenHabã®2çªç®ã®ããŒãžã§ã³ããªãªãŒã¹ã«åããŠæºåãããŠãããã¢ã¯ãã£ããªããŒã¿ãã¹ããé²è¡äžã§ãã ãã®æç¹ã§å©çšå¯èœãªæåŸã®ããŒãžã§ã³ã¯beta4㧠ãããã䜿çšããããšã«ããŸããã
çµ±åããã»ã¹ã¯4ã€ã®æ®µéã«åããããšãã§ããŸãã
- OpenHabãã€ã³ã¹ããŒã«ããŠæ§æãã
- NooLiteãOpenHabã«æ¥ç¶ãã
- OpenHabçšã®HomeKitãã€ã³ã¹ããŒã«ããŠæ§æãã
- ããŒã ã¢ããªã®ã»ããã¢ãã
ãã®çµæã次ã®ã¹ããŒã ãå€æããã¯ãã§ãã
OpenHabãã€ã³ã¹ããŒã«ããŠæ§æãã
OpenHab 2ã«ã¯éåžžã«è©³çŽ°ãªããã¥ã¡ã³ãããããŸããã¡ã€ã³ãã©ãããã©ãŒã ã«å ããŠãRaspberry Piãžã®ã€ã³ã¹ããŒã«ã«é¢ãããã¥ãŒããªã¢ã«ããããŸãã ã€ã³ã¹ããŒã«ã«åé¡ã¯ãªãã£ããããããã§ã¯ãã¹ãŠã®æé ãã³ããŒããŸããã
ã€ã³ã¹ããŒã«åŸãOpenHab Webã€ã³ã¿ãŒãã§ãŒã¹ã¯httpïŒ// <openhab_device_address>ïŒ8080ã®ãã©ãŠã¶ãŒã§äœ¿çšå¯èœã«ãªããŸããã
ããã«å©çšå¯èœïŒ
- åºæ¬UIãã¯ã©ã·ãã¯UI-OpenHabã«æ¥ç¶ãããããã€ã¹ã®ã³ã³ãããŒã«ããã«
- REST API-å®éã«REST API
- Paper UI-OpenHab管çã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠæ§æã§ããŸã
ãããŸã§ã®ãšãããåºæ¬UIã¯ç©ºã§ãã
NooLiteãOpenHabã«æ¥ç¶ãã
ããã¥ã¡ã³ãã«åºã¥ããŠãæ°ããããã€ã¹ãOpenHabã«æ¥ç¶ããã«ã¯ã次ã®ããšãå¿
èŠã§ããã
- ã¢ã€ãã ã«è¿œå
- OpenHabã¹ããŒãããŒã ã³ã³ãããŒã«ããã«ïŒåºæ¬UIãã¯ã©ã·ãã¯UIïŒã«è¡šç€ºãããããã«ã ãµã€ããããã«è¿œå ããŸãã ãã®æé ã¯çç¥ã§ããŸãããHomeKitã®æââäœã«ã¯é©çšãããŸããããOpenHabãNooLiteãèªèããŠæ£ããæ©èœããããšã確èªã§ããŸãã
- èªååãŸãã¯è¿œå ã®ã€ãã³ãåŠçããžãã¯ãå¿
èŠãªå Žåã¯ã ã«ãŒã«ã«ã«ãŒã«ãè¿œå ããŸã
ã¢ã€ãã
é
ç®ã§ã¯ãæçµçãªç®¡ç察象ããã€ã¹ãããšãã°NooLiteãã¯ãŒãŠãããããOpenHabãæäœããããã«ãæãããããšã«ã€ããŠèª¬æããŸãã
itemtype itemname ["labeltext"] [<iconname>] [(group1, group2, ...)] [{bindingconfig}]
ããã§ïŒ
- itemtype-ããã€ã¹ã®çš®é¡ïŒã¹ã€ããã調å
åšãªã©ïŒ
- itemname-ããã€ã¹å
- labeltext-ããã¹ã衚瀺ã ããšãã°ãã»ã³ãµãŒã®å ŽåïŒã枩床[ïŒ
.1f°C]ãããããã¯ã®å Žåã¯åã«ãããŒã¿ãŒã
- iconname-衚瀺ãããã¢ã€ã³ã³
- group1-ã°ã«ãŒã
- bindingconfig-ãã®ããã€ã¹ã管çããæ¹æ³
ããã§æãèå³æ·±ãã®ã¯ãã€ã³ãã£ã³ã°ã§ãã 管ç察象ããã€ã¹ãšã®å¯Ÿè©±ãå®è£
ãããæ¹æ³ã OpenHabãNooLiteã§ã©ã®ããã«æ©èœãããã«ã€ããŠã®æ
å ±ãå°ãæ¢ããåŸãæ¢è£œã®ããŒãžã§ã³ãèŠã€ããŸããã ãã ãã PCããã³RXã·ãªãŒãºçšã®NooLite USBã¢ããã¿ãŒã§åäœããããã«äœæãããŠããŸãã ç§ã®ã·ã¹ãã ã§ã¯ãé»æºãããã¯ç®¡çãPR1132ã€ãŒãµãããã²ãŒããŠã§ã€ãä»ããŠæ©èœãããããä»ã®ãªãã·ã§ã³ãæ¢ãå¿
èŠããããŸããã
å©çšå¯èœãªãã€ã³ãã£ã³ã°ã調ã¹ããšãããNooLiteãšã®éä¿¡ãå®è£
ã§ãããŠãããŒãµã«Httpãã€ã³ãã£ã³ã°ãšExecãã€ã³ãã£ã³ã°ãèŠã€ãããŸããã
- HTTPãã€ã³ãã£ã³ã°ã䜿çšãããšãã€ãã³ãã®çºçæã«ãããã¯ãŒã¯èŠæ±ãå®è¡ã§ããŸãïŒãªã³/ãªããã»ã³ãµãŒããã®æ
å ±ã®åä¿¡ïŒã PR1132ã®APIã䜿çšããŠãOpenHabãšNooLiteéã®çŽæ¥éä¿¡ãå®è£
ããããšãã§ããŸããã
- å®è¡ãã€ã³ãã£ã³ã°-ã€ãã³ãã§ã³ãã³ããå®è¡ãããŸãã
ãã®æç¹ã§ãNooLiteãžã®ãªã¯ãšã¹ãã®ååŠç/åŸåŠçã«è¿œå ã®ããžãã¯ãå¿
èŠã«ãªããšèããããã2çªç®ã®ãªãã·ã§ã³ãéžæããŸããã
NooLite CLI
ã¹ããŒãããŒã éä¿¡ã€ã³ã¿ãŒãã§ã€ã¹ã®ä»¥åã®å®è£
ã§ããTelegramããããéçºãããšããNooLiteãžã®APIåŒã³åºãã«å¯ŸããåçŽãªã©ãããŒã¯ã©ã¹ããã§ã«äœæããŸããã
noolite_api.py """ NooLite API wrapper """ import requests from requests.auth import HTTPBasicAuth from requests.exceptions import ConnectTimeout, ConnectionError import xml.etree.ElementTree as ET class NooLiteSens: """ , """ def __init__(self, temperature, humidity, state): self.temperature = float(temperature.replace(',', '.')) if temperature != '-' else None self.humidity = int(humidity) if humidity != '-' else None self.state = state class NooLiteApi: """ NooLite""" def __init__(self, login, password, base_api_url, request_timeout=10): self.login = login self.password = password self.base_api_url = base_api_url self.request_timeout = request_timeout def get_sens_data(self): """ xml :return: NooLiteSens :rtype: list """ response = self._send_request('{}/sens.xml'.format(self.base_api_url)) sens_states = { 0: ' , ', 1: ' ', 2: ' ', 3: ' ' } response_xml_root = ET.fromstring(response.text) sens_list = [] for sens_number in range(4): sens_list.append(NooLiteSens( response_xml_root.find('snst{}'.format(sens_number)).text, response_xml_root.find('snsh{}'.format(sens_number)).text, sens_states.get(int(response_xml_root.find('snt{}'.format(sens_number)).text)) )) return sens_list def send_command_to_channel(self, data): """ NooLite NooLite url data :param data: url :type data: dict :return: response """ return self._send_request('{}/api.htm'.format(self.base_api_url), params=data) def _send_request(self, url, **kwargs): """ NooLite url kwargs :param url: url :type url: str :return: response NooLite """ try: response = requests.get(url, auth=HTTPBasicAuth(self.login, self.password), timeout=self.request_timeout, **kwargs) except ConnectTimeout as e: print(e) raise NooLiteConnectionTimeout('Connection timeout: {}'.format(self.request_timeout)) except ConnectionError as e: print(e) raise NooLiteConnectionError('Connection timeout: {}'.format(self.request_timeout)) if response.status_code != 200: raise NooLiteBadResponse('Bad response: {}'.format(response)) else: return response
ããã䜿çšããŠãPythonã³ãŒãã®æ°è¡ã§NooLite CLIãã¹ã±ããããŸãããããã«ãããã³ãã³ãã©ã€ã³ããNooLiteãå¶åŸ¡ã§ããããã«ãªããŸããã
noolite_cli.py """ NooLite PR1132 command line interface """ import os import json import logging import argparse import yaml from noolite_api import NooLiteApi SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__))
åŒæ°ã¯ã ã€ãŒãµãããã²ãŒããŠã§ã€API PR1132ãšåãååãæã¡ãŸããè¿œå ãããã®ã¯ãã»ã³ãµãŒããæ
å ±ãåä¿¡ããããã®sns
åŒæ°ã®ã¿ã§ãã
ããã§ãã¢ã€ãã å
ã®ãã¹ãŠã®NooLiteãã¯ãŒãããã¯ã説æã§ããŸãã
# /etc/openhab2/items/noolite.items Number FFTemperature " [%.1f °C]" <temperature> {exec="<[python noolite_cli.py -sns 0:5000:JSONPATH($.temperature)]"} Number FFHumidity " [%d %%]" <temperature> {exec="<[python noolite_cli.py -sns 0:5000:JSONPATH($.humidity)]"} Switch Heaters1 "" { exec=">[OFF:python noolite_cli.py -ch 0 -cmd 0] >[ON:python noolite_cli.py -ch 0 -cmd 2]"} Switch Light1 "" { exec=">[OFF:python noolite_cli.py -ch 2 -cmd 0] >[ON:python noolite_cli.py -ch 2 -cmd 2]"} Color RGBLight " " <slider>
ããã§ïŒ
- FFT枩床ãFF湿床-1éã»ã³ãµãŒã®æž©åºŠãšæ¹¿åºŠã æ
å ±ãååŸããããã«ã
python noolite_cli.py
ã¯-sns 0ãã©ã¡ãŒã¿ãŒã䜿çšããŠ5ç§ããšã«python noolite_cli.py
å®è¡ããjsonå¿çãã枩床å€ãæœåºããŸãã 湿床ã«ã€ããŠãåæ§ - Heaters1-1éã®ããŒã¿ãŒã æå¹ã«ããïŒã³ãã³ã "ON"ïŒã«ã¯ãOpenHabã§
python noolite_cli.py -ch 0 -cmd 2
å®è¡ããç¡å¹ã«ããïŒã³ãã³ã "OFF"ïŒ python noolite_cli.py -ch 0 -cmd 0
å®è¡ããå¿
èŠãããpython noolite_cli.py -ch 0 -cmd 0
ã - Light1-è¡ç¯ãããŒã¿ãŒã«äŒŒãã³ãã³ãã2çªç®ã®ãã£ãã«ã®ã¿-ch 2
- RGBLight-LEDã¹ããªããã
ã«ãŒã«
åRGBãã£ã³ãã«ã®èŒåºŠå€ãååŸããã«ã¯è¿œå ã®ããžãã¯ãå¿
èŠã ã£ããããLEDã¹ããªããã³ã³ãããŒã«ã¯1ã€ã®ã³ãã³ãã«åãŸããŸããã ãããã£ãŠãã«ãŒã«ã®ç¶æ
å€æŽã®åŠçã«ã€ããŠèª¬æããŸããã
# /etc/openhab2/rules/noolite.rules import org.openhab.core.library.types.* var HSBType hsbValue var String redValue var String greenValue var String blueValue rule "Set RGB value" when Item RGBLight changed then val hsbValue = RGBLight.state as HSBType val brightness = hsbValue.brightness.intValue val redValue = ((((hsbValue.red.intValue * 255) / 100) * brightness) / 100).toString val greenValue = ((((hsbValue.green.intValue * 255) / 100) * brightness) / 100).toString val blueValue = ((((hsbValue.blue.intValue *255) / 100) * brightness) / 100).toString var String cmd = "python noolite_cli.py -ch 3 -cmd 6 -fmt 3 -d0 " + redValue + " -d1 " + greenValue + " -d2 " + blueValue executeCommandLine(cmd) end
RGBLightã®ç¶æ
ãå€åããåãã£ãã«ã®å€ïŒ0-255ïŒãååŸããè¡python noolite_cli.py -ch 3 -cmd 6 -fmt 3 -d0 redValue -d1 greenValue -d2 blueValue
ãpython noolite_cli.py -ch 3 -cmd 6 -fmt 3 -d0 redValue -d1 greenValue -d2 blueValue
ããŸããã
ãµã€ãããã
OpenHabããã¹ãŠã®é»æºãŠãããããèŠããããããããã®ç®¡çæ¹æ³ãç¥ã£ãã®ã§ãOpenHabã³ã³ãããŒã«ããã«ïŒåºæ¬UIãã¯ã©ã·ãã¯UIïŒã§ãããã衚瀺ããæ¹æ³ã説æããŸããã ããã¯ãµã€ããããã§è¡ãããŸãïŒ
# /etc/openhab2/sitemap/noolite.sitemap sitemap noolite label="" { Frame label=" " { Text item=FFTemperature Text item=FFHumidity Switch item=Heaters1 Switch item=Light1 } Frame label=" " { Colorpicker item=RGBLight icon="colorwheel" label=" " } }
ãã®ãã¡ã€ã«ãåºæ¬UIã«ä¿åãããšããã¹ãŠã®ããã€ã¹ã衚瀺ãããŸãã
ãŸããiOSããã€ã¹çšã®OpenHabã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠãã¹ããŒãããŒã ã§ã®äœæ¥ããã¹ãããŸããã
OpenHabçšã®HomeKitãã€ã³ã¹ããŒã«ããŠæ§æãã
Paper UIïŒç®¡çã€ã³ã¿ãŒãã§ã€ã¹ïŒãæ°åã¯ãªãã¯ããã ãã§ãOpenHabçšã®HomeKitã¢ããªã³ãã€ã³ã¹ããŒã«ããŸããã
ããã¥ã¡ã³ãã«åŸã£ãŠãæ£ããåäœã®ããã«ãåèŠçŽ ã¢ã€ãã ã®èŠå®ã®ã¿ã€ãïŒç
§æãåãæ¿ãå¯èœãé»æµæž©åºŠãé»æµæ¹¿åºŠããµãŒã¢ã¹ã¿ããïŒã«ã€ããŠã ãã®åŸãnoolite.itemsãã¡ã€ã«ã¯æ¬¡ã®ããã«ãªããŸããã
Number FFTemperature " [%.1f °C]" <temperature> [ "CurrentTemperature" ] {exec="<[python noolite_cli.py -sns 0:5000:JSONPATH($.temperature)]"} Number FFHumidity " [%d %%]" <temperature> [ "CurrentHumidity" ] {exec="<[python noolite_cli.py -sns 0:5000:JSONPATH($.humidity)]"} Switch Heaters1 "" [ "Switchable" ] { exec=">[OFF:python noolite_cli.py -ch 0 -cmd 0] >[ON:python noolite_cli.py -ch 0 -cmd 2]"} Switch Light1 "" [ "Switchable" ] { exec=">[OFF:python noolite_cli.py -ch 2 -cmd 0] >[ON:python noolite_cli.py -ch 2 -cmd 2]"} Color RGBLight " " <slider> [ "Lighting" ]
次ã«ãã¢ããªã³èšå®ã§ãããã€ã¹ã®ããŒã«ã«ã¢ãã¬ã¹ãOpenHabïŒç§ã®å Žåã¯Raspberry PiïŒã«ç»é²ãããã¢ãªã³ã°ãã³ã³ãŒãã確èªããŸããã
ãã®åŸãOpenHabã®èšå®ãçµäºããiPhoneã®ãããŒã ãã¢ããªã±ãŒã·ã§ã³ã§ã¹ããŒãããŒã ã®æ§æãéå§ããŸããã
ããŒã ã¢ããªã±ãŒã·ã§ã³ã®ã»ããã¢ãã
ããŒã ã¢ããªã®æåã®èµ·å
ãã¢ã¯ã»ãµãªã®è¿œå ããã¯ãªãã¯ããŸãã
iPhoneã¯ãããŒã«ã«ãããã¯ãŒã¯ã§HomeKitããµããŒãããããã€ã¹ãèŠãŸãã
æåã§ã³ãŒããå
¥åããŠãã ãã
ã¢ããªã³ã®HomeKitèšå®ããæå®ãããPINã³ãŒããè¿œå ããå Žå
ãã¹ãŠã®ããã€ã¹
iPhoneã«ã¯ãé
ç®ã«èšèŒãããŠãããã¹ãŠã®ããã€ã¹ã衚瀺ãããŸããã 次ã«ãããã€ãã®ããã€ã¹ã®ååãå€æŽãããéšå±ãïŒ1éã2éãéãïŒãäœæãããããã«ãã¹ãŠã®ããã€ã¹ãåæ£ãããŸããã
ããã§äžã€ã®ãã€ã³ããæ確ã«ãããã äžèšã®ã¹ã¯ãªãŒã³ã·ã§ããã§ã¯ããã¹ããªãŒãããšããéšå±ã«ãããå±å€æž©åºŠããšããèŠçŽ ïŒ2床ã®ã€ã³ãžã±ãŒã¿ãŒãæã€æåã®èŠçŽ ïŒãèŠãããšãã§ããŸãã ãã®èŠçŽ ã¯ãYahooWeather Bindingã䜿çšããŠå®è£
ãããŸã-åºæ¬çã«ã¯ãç¹å®ã®å Žæã®yahoo倩æ°äºå ±ã ãã§ãã
NooLiteã«ã¯é©çšãããªããããã€ã³ã¹ããŒã«ãšæ§æã®è©³çŽ°ã«ã€ããŠã¯è§ŠããŸããã§ããã ããã¯ãPaper UIã䜿çšããŠå床å®è¡ã§ããŸãããã¹ãŠã®è©³çŽ°ã«ã€ããŠã¯ã ããã¥ã¡ã³ããåç
§ããŠãã ãã ã
ãªã¢ãŒãã¢ã¯ã»ã¹ãšèªåå
ç§ã®ããŒã«ã«ãããã¯ãŒã¯ã«ã¯Apple TVããããããèªäœã¯è¿œå èšå®ãªãã§ãããŒã ã»ã³ã¿ãŒããšããŠèå¥ãããŸããã åŸã§ããã£ãããã«ãã¹ããŒãã»ã³ã¿ãŒãžã®ãªã¢ãŒãã¢ã¯ã»ã¹ãšèªååèšå®ïŒã¹ã±ãžã¥ãŒã«ãããã¢ã¯ã·ã§ã³ããžãªãã±ãŒã·ã§ã³ã«åºã¥ãã¢ã¯ã·ã§ã³ãªã©ïŒã«ã¯ããŒã ã»ã³ã¿ãŒãå¿
èŠã§ãã ããŒã ã»ã³ã¿ãŒã«ã¯ã3äžä»£ãŸãã¯4äžä»£ã®Apple TVïŒç¬¬3äžä»£ã§ã¯ãªã¢ãŒãã¢ã¯ã»ã¹ã®ã¿ãæ©èœãã第4äžä»£ã§ã¯èªååãå¿
èŠïŒãŸãã¯iOS 10ãæèŒããiPadã䜿çšã§ããŸãã
Apple TVã§è¿œå ã®èšå®ãè¡ããªãã£ãããšãå¬ããæããŸããã ããªããããå¿
èŠãããã®ã¯ããªãã®ã¢ã«ãŠã³ãã§iCloudã«ãã°ã€ã³ããããšã ãã§ãã
çµæ
æãæ確ãªã®ã¯ããããªã䜿çšããŠäœæ¥ããã»ã¹ã衚瀺ã§ããããšã§ãã 以äžã¯ãããŒã ã¢ããªã±ãŒã·ã§ã³ã®åäœãšSiriã«ããé³å£°å¶åŸ¡ã®äŸã§ãã
ã·ãŒã«ãã§ã¯ãNooLite SLã·ãªãŒãºã®ãã¯ãŒãŠãããã«ãã£ãŠå¶åŸ¡ãããã³ã³ã¿ã¯ã¿ãŒã«ãã£ãŠã2ã€ã®éåžžã«é©åãªå ŽæãéãããŸãã ããããä»ããŠã家ã®1éãš2éã«ããããŒã¿ãŒã®æ¥ç¶ç·ã ãããªã§ã¯ããªã³/ãªãã®åãæ¿ãæã®ã¯ãªãã¯é³ãèãããšãã§ããŸãã æ®å¿µãªããã圌ãã®ä»äºãèŠèŠçã«ç€ºããã®ã¯ãããããŸããã
次ã®ãããªã®åé ã§ãç§ã¯åœã®Wi-Fiãããã¯ãŒã¯ããåæãã3Gã¢ãã€ã«ã€ã³ã¿ãŒãããçµç±ã§ã¹ããŒãããŒã ãšã®ãã¹ãŠã®äœæ¥ãè¡ããŸãã
ãããã«
HomeKitãšã®çµ±åã«ãããHomeã¢ããªã±ãŒã·ã§ã³ãä»ããŠiOSããã€ã¹ããã¹ããŒãããŒã ã«äŸ¿å©ãªå¶åŸ¡ã€ã³ã¿ãŒãã§ã€ã¹ãè¿œå ã§ããããã«ãªãããã®æ©èœãæ¡åŒµãããŸããã
- ãã¬ã°ã©ã ãããã®ä»£ããã«ãèªå®
ã®ãã¹ãŠã®ããã€ã¹ãå®å
šã«ãªã¢ãŒãå¶åŸ¡
- é³å£°å¶åŸ¡
- ã«åºã¥ãèªååïŒæå»ããžãªãã±ãŒã·ã§ã³ãã»ã³ãµãŒèªã¿åãå€ïŒäŸïŒã¢ãŒã·ã§ã³æ€åºïŒ
- ã¢ã¯ã»ã¹æš©ã®å·®å¥åã«ãããæåŸ
ç¶ïŒiOSããã€ã¹ãšAppleã¢ã«ãŠã³ããå¿
èŠïŒãéããŠãŠãŒã¶ãŒãã¹ããŒãããŒã 管çã«äŸ¿å©ã«è¿œå
ããŒã ã¢ããªã±ãŒã·ã§ã³èªäœãšããŒã ãªãŒãã¡ãŒã·ã§ã³çšã®ã¢ããªã±ãŒã·ã§ã³ã®è©³çŽ°ãªã¬ãã¥ãŒã¯ããã§ã«ãã®ãããã¯ã®ç¯å²å€ã§ãããå¥ã®èšäºã«å€ãããšæããŸãã ããããç§ã«ãšã£ãŠæãèå³æ·±ãã®ã¯ãžãªãã±ãŒã·ã§ã³ã§ããããã«åºã¥ããŠãèå³æ·±ãèªååã·ããªãªãå®è£
ã§ããŸãã ããšãã°ãèªå®
ã®ãã¹ãŠã®ãŠãŒã¶ãŒãé¢ãããšãã©ãã§ãã©ã€ãããªãã«ã§ããŸãã ãŠãŒã¶ãŒãããã«é²ãã å ŽåïŒéœåžã«åããŠïŒãå°äžã®ãœã±ãããé»æ°ãªã©ã®äžéšã®æ¶è²»è
ããªãã«ããŸãïŒããã«ãã³ãã¹ããŒã·ã§ã³ããããŸãïŒã
ãã®èšäºã®äœæ¥ã«ãããã«ã³ããªãŒããŠã¹ã®å¶åŸ¡ã·ã¹ãã ã暪ããèŠãŠãè¿ãå°æ¥ã«ç§ãæ¹è¯ããå Žæã«æ³šæããããšãã§ããŸããïŒ
- ã·ã¹ãã ãç°¡çŽ åããããã«ãPR1132ã€ãŒãµãããã²ãŒããŠã§ã€ã䜿çšããHTTP APIãä»ããŠNooLiteãããã¯ãå¶åŸ¡ãã代ããã«ãRXããã³PCã·ãªãŒãºUSBã¢ããã¿ãŒã䜿çšããŠãã³ãã³ããçŽæ¥çºè¡ã§ããŸãã
- ç§ã®ç¥ãéããè¿ãå°æ¥ãNooLiteã¯ãã£ãŒãããã¯ä»ãã®æ°ããUSBãã©ã³ã·ãŒããŒã¢ããã¿ãŒãšé»æºãããã¯ããªãªãŒã¹ããäºå®ã§ãã ããããè©ŠããŠã¿ãã®ã¯éåžžã«èå³æ·±ãã§ãããã
åç
§ïŒ