Кроме датчика движения Sonoff с Zigbee на борту, мною была куплена кнопка Sonoff SNZB-01 — на пробу, поскольку вешать выключатели не везде есть возможность, а нажимать время от времени есть потребность — не всё же Алисе орать на кухню.
Страница кнопки на сайте производителя: https://www.itead.cc/ru/sonoff-snzb-01-zigbee-wireless-switch.html. Картинка ниже взята оттуда:
Кнопка маленькая, квадрат со стороной 43 мм со скошенными углами. Выгравированный отпечаток пальца на лицевой панели может ввести в заблуждение: нет, кнопка не сенсорная, а механическая. Поддерживает одиночное, двойное и долгое нажатие. Очень удобно — можно назначить три разных действия.
Питается кнопка от батарейки формата CR2045. Кнопка сброса и глазок светодиода скрываются под задней крышечкой.
Подключение к Sonoff Zigbee Bridge
Подключение достаточно простое, я уже описывал его в статье про датчик движения:
- Запускаем добавление нового устройства для SonoffHub в eWelink.
- Переводим кнопку в режим сопряжения: зажимаем иголкой кнопку под задней крышкой на 5 секунд, пока не мигнёт красный светодиод.
- Дожидаемся, когда новое устройство определится в приложении, и задаём ему имя.
- Готово: через некоторое время устройство будет доступно в Home Assistant и можно создавать автоматизации. Примеры будут ниже.
Подключение к Conbee II
Можно было бы на этом и успокоиться, но я не для того покупал универсальный стик Conbee II, чтобы зависеть от облаков различных производителей.
К сожалению, несмотря на то, что поддержка SNZB-* была заявлена в Deconz ещё в 81-й версии, с наскока у меня не удалось подключить ни датчик движения, ни кнопку. В PhosconApp кнопка определялась, но в Home Assistant прокидывался только датчик её батарейки. Поэтому некоторое время я пользовался кнопкой через шлюз.
Позже я узнал, что это нормальное поведение для кнопки и нажатия нужно считывать по-другому. Впрочем, корректная работа всех нажатий была реализована только в 87-й версии Deconz, поэтому я ничего не потерял.
После 87-й версии Deconz кнопку наконец-то можно прокинуть через Conbee. Для этого её нужно добавить в раздел Switches:

В разделе Switches нажмите Add new Switch. Пока идёт сканирование, переведите кнопку в режим сопряжения: зажмите скрытую кнопку иголкой на 5 секунд. Затем нажимайте основную кнопку, пока в PhosconApp не станет активной кнопка Ready.
Через некоторое время состояние батареи появится в Home Assistant. После этого можно отлавливать события, чтобы узнать идентификатор кнопки и коды одиночного, двойного и долгого нажатий.
Если кнопка одна, по умолчанию её идентификатор — switch_mini. Коды нажатий, начиная с 87-й версии Deconz:
1002— одиночное нажатие1003— долгое нажатие1004— двойное нажатие
Если кнопок Sonoff SNZB-01 несколько, а также для проверки и отладки, лучше просканировать события и записать идентификаторы в панели разработчика. Введите deconz_event в поле наименования события, нажмите «Подписаться», а затем нажмите кнопку:

Когда событие поймано и работоспособность кнопки проверена, можно создавать автоматизации.
Автоматизации в Home Assistant
Моя первая кнопка уехала в спальню к кровати и сейчас выполняет две функции: выключение телевизора и выключение всего света в квартире.
Автоматизация для выключения телевизора по одиночному нажатию:
- id: Sonoff Double Tap alias: Кнопка Sonoff tap trigger: platform: event event_type: deconz_event event_data: id: switch_mini event: 1002 action: - service: script.turn_off_tv mode: singleВыключение света по долгому нажатию:
- alias: Кнопка Sonoff hold trigger: platform: event event_type: deconz_event event_data: id: switch_mini event: 1003 action: - service: light.turn_off entity_id: group.sonoff mode: singleЧто назначить на двойное нажатие, я пока ещё не придумал, но уже подумываю купить ещё пару таких кнопок — им обязательно найдётся применение.
А дальше на очереди Sonoff SNZB-04 — датчики открытия дверей, которых я заказал сразу две штуки под вполне конкретные цели. Но об этом потом.
Если эта статья помогла вам, пожалуйста, поделитесь ею с другими!
Некоторая информация может быть устаревшей