Как создавать "сцены" с API-интерфейсом philips hue

Кто-нибудь знает, как Philips реализовал "сцены" в своем оттенке API? С помощью приложения вы можете выбрать изображение и переместить каждую лампочку в цветной пиксель и изменить интенсивность. Все лампы могут иметь разные цвета и уровни яркости, и все сохраняется как "сцена". Однако при получении "сцены" информации; вы получаете только массив из которых используются в сцене, подробная информация не предоставляется. Поскольку вы можете планировать сцены, Филипс должен хранить эту информацию в концентраторе. API даже не описывает "сцены". Я видел сторонние приложения, которые создают сцены, так что это не совсем секрет...

3 ответа

Я понимаю, что это старый пост, но я нигде не мог найти ответ на этот вопрос, поэтому я поиграл и сам разобрался. Надеюсь, кому-нибудь пригодится.

У меня недостаточно репутации, чтобы публиковать фрагменты кода, но вы можете увидеть инструкции в этом посте в Google+

https://plus.google.com/111036301775898522222/posts/iMt2hVdJvYo


Сначала вы обращаетесь

</code>http://BRIDGE IP/api/APP ID/scenes/SCENENAME</code>

Я думаю, что имя сцены не может содержать пробелы. Поместите огни, которые вы хотите в сцене в теле, как это

{"lights":["3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],"name":"SCENENAME"}

Затем вы указываете условие для каждой лампы в сцене, используя PUT в

<code>http://BRIDGE IP/api/APP ID/scenes/SCENENAME/lights/BULBNUMBER/state</code>

Я обнаружил, что вы можете указать значения в любом формате, который вы хотите, не нужно включать все значения. Мое тело выглядело так

{"on":true,"bri":254,"xy":[0.1631,0.0206]}

Затем, как только значения установлены для каждой лампы в сцене, вы активируете ее в

</code>http://BRIDGE IP/api/APP ID/groups/0/action</code>

с телом

{"scene":"SCENENAME"}

Есть 2 вещи:

Большинство приложений, использующих сцены, просто сохраняют сцены в приложении, и когда вы применяете сцену, оно просто отправляет команды для каждой лампы в сцене последовательно на мост.

Есть также новые сцены API на мосту, но, насколько я знаю, это еще не задокументировано. Это позволяет вам хранить ограниченное количество сцен на самих лампах, и после этого вы можете переключиться на такую ​​сцену, отправив на мост только одну команду, которая затем передаст ее всем лампам.

Этот последний вариант требует обновления прошивки, которое, возможно, установили еще не все пользователи вашего приложения, так что, вероятно, сейчас проще использовать первый вариант.

Поскольку я не нашел примеров того, как активировать сцены, я добавляю сюда информацию о том, как активировать сцену в Hue API v2.

Чтобы запустить (уже существующую) сцену в Hue API v2, вам сначала нужно запустить команду GET, чтобы получить все сцены.

      https://<bridge_ip>/clip/v2/resource/scene

Позаботьтесь о ridid, чтобы иметь возможность активировать желаемую сцену с помощью запроса PUT (https://<bridge_ip>/clip/v2/resource/scene/<rid>), со следующим телом:

      {"recall":{"action": "active"}} 
Другие вопросы по тегам