Статья

История о том как используя Athom Homey перенести управление колонкой SONOS в HomeKit

Итак, по просьбам трудящихся, я снова сел за "перо" вместо того, чтобы отдыхать. Сегодня, как вы уже могли догадаться, речь пойдет о чудесной колонке SONOS и о том как же перенести хоть часть управления ею в HomeKit. Сразу скажу, что плагин, который написали Athom B.V. для "Колобка", просто настолько не доделан, что хочется материться. Ну почему нельзя было добавить возможность использовать данный плагин в разделе событий(триггеров)? Из-за этого реализовать обратную связь пока невозможно. Вроде на форуме GitHub в созданном запросе наши ленивые работники Атома обещали добавить данную возможность. Но обещанного, как известно, три года ждут. Также, не без претензий к Apple, которые подзабили на HomeKit, и прокинуть туда что-то нормально не всегда возможно. Но мы не будем о плохом, и все-таки, с зубилом и матюгами, попробуем сделать все, что у нас получится с тем, что есть.ВНИМАНИЕ: Данный кейс будет работать только, если вы уже задали источник для колонки. То есть, при нажатии на механическую кнопку play/pause на колонке, она у вас играет. Итак, что же нам понадобится для наших манипуляций:

  • Плагин Virtual Devices v0.7.3
  • Плагин Sonos v3.0.1
  • Плагин HomeKit v2.5.4 (По ссылке доступна старая версия v1.5.1. О том как получить новую версию, вы можете узнать в нашем канале Telegram)

Устанавливаем плагин Sonos и добавляем нашу колонку в "Колобок" (тут разжевывать не буду, так как не это тема моей статьи). Далее устанавливаем плагин Virtual Devices и создаем виртуальное устройство, которое назовем Sonos.

Вот тут скажем спасибо Apple, что нам приходится использовать тип Лампочка. К сожалению, пока по-другому никак =( Правда, для "Колобка" мы можем выбрать картинку с музыкальным центром. В HomeKit все равно будет лампочка, но хоть где-то мы себя порадуем. После этого не забываем добавить данное устройство в HomeKit, используя плагин HomeKit от Sprut-а.

Теперь приступим к написанию сценариев. Всего их будет три.

  • Sonos Vol
  • Sonos On
  • Sonos Off

Долгими попытками написать хоть что-то годное, я пришел именно к такому варианту. На данный момент для меня он наиболее оптимальный. Если у кого то получится лучше, я буду только рад. И, конечно, прошу его поделиться наработками со всеми остальными.

Итак,  вот и сами сценарии:

Sonos Vol

В альтернативной ветке выполнения вы видите, что я устанавливаю уровень освещенности (не забываем, что наша колонка для HomeKit - это лампочка) на 10% (вы можете ставить любой комфортный для вас уровень громкости). Зачем я это делаю? Если при регулировки освещенности/громкости вы опустите ползунок до нуля, то устройство отключится (так работает HomeKit). Далее, если вы после этого просто включите устройство, то его уровень освещенности/громкости будет 100% и вот, чтобы не оглохнуть, пришлось таким кривым способом решать данную проблему.

Sonos On

И снова вопрос: зачем я добавил в ветки выполнения включение и отключение? Дело в том, что из-за отсутствия обратной связи, мы можем получить ситуацию, когда состояние колонки и кнопки в HomeKit не будет совпадать. Это происходит, когда вы управляете колонкой не только через приложение, но и вручную. Так вот, данные дополнения синхронизируют(подсвечивают/гасят) кнопку в приложении. По сути - обратная связь, но только при нажатии.

Sonos Off

Вот и сказочке конец.

В качестве альтернативы, ещё можно рассмотреть Elgato Eve - который знает больше устройств чем приложение от Apple. 

В заключении, хочу пожелать нам с вами набраться терпения и надеятся, что Apple и Athom, да и все остальные, проявят к нам уважение и таки начнут делать софт также хорошо, как берут с нас деньги.Возможно в будущем, когда допишут плагин, можно будет сделать обратную связь, а пока радуемся лампочке и не "жужжим" =)).


Спасибо - оч полезно ;)

спасибо ;)


Вернуться назад
Вернуться назад