Система освещения Philips Hue позволяет управлять освещением в вашем доме из мобильного приложения или из любого приложения, которое вы пишете себе, которое может подключаться к Интернету. Центр системы-это мост Hue, устройство, подключенное к Ethernet, которое связывается с совместимыми лампами через радиопротокол Zigbee HA. Philips производит ряд ламп, совместимые с HUE, и многие сторонние лампы работают с тем же протоколом. Iconnectue поддерживает тщательный список ламп, совместимые с HUE. В основном евро-рыночный ориентирован, но все же очень полезный.
Каждый мост Hue является собственным веб -сервером HTTP, и его можно управлять с помощью API Hue REST. Есть библиотеки для управления оттенком, доступным во многих языках программирования. Учебные пособия здесь находятся в JavaScript на стороне клиента с использованием P5.JS, Plain JavaScript или на стороне сервера с использованием Node.js или на основе MicrController для Arduino.
Hue API V2 был недавно выпущен, и в конечном итоге заменит V1. Эти примечания в настоящее время относятся к V1 (19 января 2021 года) и до сих пор работают. Hue API V2 оснащены HTTPS, а также некоторые нарушающие изменения от V1.
Чтобы начать программирование приложений HUE, вам понадобится доступ к мосту Hue. Вам тоже понадобится учетная запись Hue. Учетные записи разработчиков бесплатны. Держите Hue Developers Link Link.
Приложение Hue для Android или iOS полезно при разработке, потому что оно работает, когда ваш проект еще не. Приложение Hue Essentials также является довольно полезной альтернативой.
У каждого оттенка есть интерфейс отладки, доступный по адресу http://$ADDR/debug/clip.html заменить $ADDR на IP -адрес вашего моста. Когда вы разрабатываете, вы можете использовать это для отправки команд API на мост, чтобы проверить вещи.
Библиотека Node-API от Node-API Питера Мюррея для Node.js является лучшим из различных библиотек JavaScript, которые я тестировал для управления оттенком.
Для контроля оттенка от клиента браузера P5.JS делает хорошую работу, так как у него есть простой API HTTP -запроса. Конечно, вы также можете использовать простой JavaScript.
Библиотека Arduinohttpclient и библиотека Arduino_json полезны, если вы используете какую-либо из Arduino Wi-Fabled Boards для подключения к вашему мосту Hue. (Примечание: есть еще одна библиотека JSON с таким же именем без подчеркивания. Это не тот, который здесь используется).
Керл инструмента командной строки полезен для тестирования HTTP -запросов на ваш мост, если вы знакомы с командной строкой POSIX (Linux/Unix). Curl недоступен в командном интерфейсе Windows, но вы можете получить его через подсистему Windows для Linux в Windows 10 или через Cygwin, приложение, которое предоставляет оболочку Linux для Windows. Вот несколько подробностей об использовании Curl для доступа к мосту Hue.
Кроме этого, вам нужно знать немного HTML и JavaScript, а также текстовый редактор, интерфейс командной строки и браузер, чтобы попробовать примеры на этом сайте. Примеры командной строки, показанные здесь, предназначены для Linux или Unix, но будут работать на Windows 10, используя подсистему Windows для Linux в Windows 10.
Ваше приложение должно быть идентифицировано на ваш мост, используя уникальное имя пользователя. Эта страница примера упростит это, если вы знаете IP -адрес вашего моста. Вы не можете запустить эту страницу с удаленного сервера; Загрузите его и откройте файл index.html в браузере из вашей файловой системы. Это связано с тем, что Hue API версия 1 использует HTTP, а не HTTPS.
Вы также можете следовать инструкциям по началу работы на сайте Hue Developer.
Когда вы делаете это правильно, вы должны получить такой ответ:
[
{
"success": {
"username": "newusername"
}
}
]
Теперь вы готовы написать код для своего моста. Независимо от того, в какой среде вы программируете, вы используете имя пользователя, которое вы установили здесь.
Интерфейс клипа отладки - это страница, которую вы можете использовать для тестирования функций на вашем мосту. Его адрес:
http://your.bridge.ip.address/debug/clip.html
Его можно использовать для отправки любой команды API на ваш мост. Общая строка запроса выглядит следующим образом:
/api/$HUE_USER/command
Как правило, запрос состояния устройства выполняется с использованием команд GET, и изменение их выполняется с помощью PUT. Например, чтобы запросить состояние всех ваших огней, введите следующее в поле URL:
/api/$HUE_USER/lights
И нажмите Get. Чтобы запросить конфигурацию, введите:
/api/$HUE_USER/config
И нажмите Get. Чтобы включить свет 1, введите следующее в поле URL:
/api/$HUE_USER/lights/1/state
И введите следующее в поле тела сообщения:
{"on":true}
И нажмите «Поставить». Свет должен наступить, и мост должен ответить:
[
{
"success": {
"/lights/1/state/on": true
}
}
]
Подробнее о API HUE, см. Руководство по началу работы HUE, концепции Core API HUE и документацию API полной HUE. Вам нужно будет создать бесплатную учетную запись и войти в систему, чтобы использовать портал разработчиков.
Когда вы добавили свой мост в свою сеть, вы сможете использовать приложение Hue или приложение Hue Essentials для получения IP -адреса. Но в сложной сети, такой как школьная сеть, это может не сработать. Ваше мобильное устройство и ваш Hue Bridge должны быть в той же локальной сети, чтобы это работало. Например, если ваша сеть Wi -Fi не такая же локальная сеть, как ваша проводная сеть Ethernet (где живет мост), вы, возможно, не сможете получить адрес. Но если вы можете получить MAC -адрес моста, то вы можете найти его в своей сети. Вот как
У каждого моста есть уникальный, вы можете найти MAC -адрес в нижней части вашего моста. Это шесть байтов в шестнадцатеричной нотации, как это:
00:17:88:0B:14:48
Некоторые мосты покажут только последние три байта. Например, приведенный выше мост может показать только 0B1448. С более старыми мостами оттенков первые три байта всегда будут 00:17:88 . С новыми, вы также можете увидеть EC:B5:FA .
Чтобы найти свой мост в вашей сети, убедитесь, что у вас есть первые три цифры локальной сети, и вы можете получить к нему доступ, затем откройте интерфейс командной строки и введите:
$ ping -c 5 xxx.xxx.xxx.255
Где xxx.xxx.xxx - первые три номера вашей сети. Например, в сети, маршрутизатор которого составляет 172.16.130.1, вы бы ввели 172.16.130.255. Иногда крупные учреждения будут использовать две разные подсету для проводных и беспроводных сетей, но они все равно будут находиться в одной крупной локальной сети.
Вы получите список ответов, так как устройства в сети отвечают на ваши запросы Ping. Когда это будет сделано, введите:
$ arp -a
Вы получите список всех устройств в той же сети, что и ваш компьютер. Ищите тот, который соответствует MAC -адресу вашего моста, и IP -адрес рядом с ним будет IP -адрес вашего моста. Последние три байта вашего MAC -адреса с метки внизу. Первые три, вероятно, будут либо 00:17:88, либо EC: B5: FA, как объяснено выше. Вот типичный пример:
$ arp -a
? (192.168.0.1) at ac:b7:16:61:e3:77 on en0 ifscope [ethernet]
? (192.168.0.3) at 00:17:88:0B:14:48 on en0 ifscope [ethernet]
? (192.168.0.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]
В этом случае IP -адрес HUE составляет 192.168.0.3.
Вы можете искать новые лампы на мосту, используя обычное приложение Mobile Hue. Вы также можете сделать это из интерфейса клипа отладки, используя запрос POST по следующему URL:
/api/$HUE_USER/lights/
Заполните адрес своего моста для $ addr и ваше имя пользователя Hue для $ hue_user. Вы должны получить ответ как это:
[[ { "success": { "/lights": "Searching for new devices" } }]
Через 90 секунд вы можете сканировать новые лампы, которые были добавлены так:
/api/$HUE_USER/lights/new
В Curl:
$ curl -X GET http://$ADDR/api/$HUE_USER/lights/new
В этом перечислены только новые лампы, добавленные после сканирования на новые лампы.
Если вы пытаетесь добавить лампу, которая ранее была подключена к другому мосту, вам нужно использовать другой подход. Поместите лампу рядом с мостом, с помощью которого вы хотите контролировать ее (ближе, чем любая другая лампа, в идеале менее 1 метра). Выключите все остальные лампы, подключенные к мосту, или убедитесь, что они намного дальше, чем тот, который вы хотите.
Отправьте следующее интерфейс отлада от клипа, используя запрос PUT:
/api/$HUE_USER/config/
В организме вашего запроса поставьте:
{"touchlink": true}
В завитке это:
$ curl -X PUT -d '{"touchlink": true}' http://$ADDR/api/$HUE_USER/config
Лампа должна моргнуть несколько раз, и сервер ответит с помощью сообщения успеха. Теперь вы можете добавить лампу, используя запрос «Найти новые лампы», описанный выше.
Если Touchlink не удастся сбросить лампу, вам может потребоваться сбросить ее вручную. Это отличается для каждого производителя, но общий рисунок состоит в том, чтобы включать и выключать лампу три -пять раз, после чего она будет слегка мигать или немного, чтобы указать, что она была сброшена. Например, с лампами связи GE, шаблон:
Для некоторых сторонних лампочек, таких как Cree Connect или The Innr, вы можете сделать это с 2 -секундными интервалами. Если сомневаться, иди с тремя секундами, хотя.
Если у вас есть один из пульт дистанционного управления HUE, вы также можете сбросить лампу, используя ее. Для этого включите лампу и поместите пульт дистанционного управления в течение шести дюймов от лампы. Нажмите кнопки «Включить питание», и кнопки «Включить питание» (или включение питания и кнопки выбора сцены на более поздних моделях) и удерживайте их, пока не мигается лампочка. Это поместит лампу в свое фабричное состояние по умолчанию, готовое к паре с новым мостом.
Вы можете удалить лампу с моста из интерфейса отладчика клипа, используя запрос Delete по следующему URL:
/api/$HUE_USER/lights/1
В Curl:
$ curl -X DELETE http://$ADDR/api/$HUE_USER/lights/1
Замените 1 на количество света, которое вы хотите удалить.
Чтобы получить статус всех подключенных светильников, отправьте следующее из интерфейса отладки клипа, используя запрос GET:
/api/$HUE_USER/lights/
В Curl это:
$ curl http://$ADDR/api/$HUE_USER/lights/
Это должно вернуть список доступных огней, как так:
{"1":{"state":{"on":true,"bri":254,"hue":14314,"sat":172,"effect":"none","xy":[0.4791,0.4139],"ct":405,"alert":"none","colormode":"ct","reachable":true},"type":"Extended color light","name":"Hue color light 1","modelid":"LCT001","manufacturername":"Philips","uniqueid":"00:17:88:01:00:ff:9a:28-0b","swversion":"5.127.1.26581"}}
Чтобы преобразовать свет на то, что вам нужно знать, какое это число. Затем вы так измените его состояние:
Отправьте следующее из интерфейса клипа отладки, используя запрос PUT:
/api/$HUE_USER/lights/4/state
В организме вашего запроса поставьте:
{"on": true}
В Curl это:
$ curl -X PUT -d '{"on":true}' http://$ADDR/api/$HUE_USER/lights/4/state
Чтобы выключить его, измените тело запроса на
{"on": false}
Вы можете изменить любое из свойств состояния света таким образом. Посмотрите, например, на Light 1 от раздела «Получение состояния всех огней» выше:
{"1":{"state":{"on":true,"bri":254,"hue":14314,"sat":172,"effect":"none","xy":[0.4791,0.4139],"ct":405,"alert":"none","colormode":"ct","reachable":true},
Пока reachable свойство верно, то есть мост пытался добраться до лампы и получил ответ, вы можете изменить любое из других свойств. Это цветная лампа, и имеет три режима, HS (для оттенка, насыщенность), КТ (для цветовой температуры) и XY (для размеров X и Y в цветовом пространстве CIE1931). Если вы измените либо оттенок, либо насыщенность, Colormode лампы изменяется на HS, и если вы измените цветовую температуру, Colormode изменяется на КТ. Если вы отправляете значения XY, Colormode изменяется в режиме XY.
Разные огни будут обладать разными свойствами в их переменной состояния, которую вы можете изменить. Эскиз P5.JS сканирует все свойства каждой лампы на
Модели MKR1000, MKR1010 и NANO 33 IOT Arduino также могут контролировать мост HUE с помощью HTTP -запросов. В этом репозитории также есть некоторые примеры Arduino Hue.