Zigbee-датчик температуры и влажности Sonoff SNZB-02: работа в Tuya Smart, интеграция в Home Assistant
В этом обзоре мы продолжим знакомится с бюджетной серией ZIgbee датчиков от Sonoff и героем этого обзора будет сенсор измеряющий температуру и влажность в режиме реального времени.
Содержание
Купить на Aliexpress — цена на момент публикации $ 8,49
Параметры
- Модель: Sonoff SNZB-02
- Протокол: Zigbee 3.0
- Диапазон рабочих температур: -10 +40 С
- Диапазон влажности: 10 — 90%
- Элемент питания: CR2450
- Размер: 43х43х14
Поставка
Поставляется датчик в стандартной для этой серии оранжевой коробке, оформление минималистично — изображение и название сенсора на фронтальной стороне и перечень основных параметров на задней стороне.
В коробке нашелся собственно сам сенсор квадратной формы, к легким дизайнерским изыскам можно отнести только его углы. Наклейку двустороннего скотча для крепления его на стене.
Комплектная инструкция хоть и небольшая но мультиязычная, русский язык присутствует, но единственная полезная информация — это как перевести датчик в режим сопряжения.
Внешний вид
Как я уже сказал, дизайн датчика, как впрочем и всей этой линейки датчиков — довольно специфический. Не оставляет чувство, что при изготовлении заготовки для корпуса — дизайнер использовал топор.
На условно верхнем торце — находится кнопка, нажатие на которую служит для обмена данными с zigbee координатором, а удерживание — для перевода датчика в режим сопряжения.
С противоположного торца — находится отверстие для воздуха, нужное чтобы проводить замеры его параметров. С этой же стороны находится небольшой паз, для отщелкивания задней крышки.
На ней указан номер модели и тип используемого в датчике элемента питания — CR2450
Крышка открывается с небольшим усилием, под ней находится батарейный отсек. Чтобы избежать ненужного разряда, под батарейкой установлена предохранительная вставка, которую нужно удалить перед использованием.
В отличии от более распространенных датчиков такого типа, например от Mijia или Aqara где используется более компактный, но менее емкий элемент CR2032, в этом датчике установлена батарейка CR2450
Для правильного совмещения крышки с датчиком — на них нанесены символы в виде стрелки. Их нужно установить друг против друга и закрыть крышку.
В сравнении с уже упомянутыми датчиками Mijia и Aqara — герой обзора выглядит гигантом, хотя по картинке может показаться что не такой большой.
Tuya Smart
В этом обзоре, в части поддержки стоковых приложений, я решил остановится только на Tuya Smart, ведь с Ewelink в принципе и так все понятно и эта система не имеет такого распространения как Tuya. Тем более поддержка датчиков Sonoff шлюзами и приложением Tuya Smart — не явна, о ней нигде не указано в документации.
В моем тесте используется проводной Zigbee шлюз для Tuya Smart от Moes. Процесс подключения аналогичен родным устройствам — заходим в меню шлюза, и нажимаем добавить подустройство.
После этого зажимаем кнопку на датчике пока светодиод, который будет видно с фронтальной стороны, не моргнёт трижды. Ждем пока приложение не покажет обнаруженный датчик.
Далее выбираем локацию для датчика и при необходимости можем изменить его имя, на этом процесс подключения завершается. Данные температуры и влажности будут доступны в плагине датчика и в его строке находящейся в общем списке устройств умного дома.
В плагине датчика есть история измерения которую можно просмотреть в разрезе дня, месяца и года за все время его использования. Также есть опция включения уведомлений — правда где указаны параметры этих уведомлений, мне найти не удалось.
Автоматизации
В автоматизациях этот сенсор может работать только как триггер и условие, что логично — так как он имеет только мониторинговую функцию. Для этого доступно три параметра — кроме температуры и влажности, еще и заряд батарейки.
Для каждого из них доступны условия больше, меньше или равно, исходя из специализации датчика — обычно применяются условия больше или меньше.
Пример классической автоматизации которая будет включать розетку (например с радиатором отопления) при падении температуры в помещении ниже 20 С.
Zigbee2mqtt
Перейдем к работе датчика в Home Assistant, думаю что самый распространенный вариант интеграции для этого — zigbee2mqtt.
В примере датчик подключался к версии 1.17.1, успел еще до большого обновления на 1.18, используемый стик — CC2652 на прошивке от 11 февраля 2021 года, подробнее про интеграцию и стик смотрите в 5 части моих уроков по Home Assistant, ссылка на плейлист в описании.
Включаем режим подключения новых устройств, зажимаем кнопку на датчике до трех световых сигналов и датчик появляется в общем списке системы
Устройство имеет полную поддержку, как и другие датчики с батарейным питанием — это конечное устройство, то есть не может пересылать через себя команды других участников сети.
Интеграция отдает 4 параметра — температура, влажность, уровень заряда батарейки и качества сигнала, эти же параметры будут пробрасываться в виде объектов в Home Assistant
Интересной особенностью этого датчика является частота обновления данных. Это хорошо видно в MQTT Explorer — на этих скринах видно что данные обновляются несколько раз в минуту. Причем это больше касается влажности, изменение температуры происходит реже — на этом примере она изменилась лишь раз. С одной стороны это хорошо, с другой — однозначно будет влиять на разряд батарейки.
В меню reporting zigbee2mqtt можно увидеть что минимальный интервал отчетов для температуры и влажности установлены как 5 и 10 секунд соответственно. Максимальный тоже отличается вдвое — 1800 и 3600 хотя несмотря на это — изменение по влажности происходит намного чаще.
Я попробовал повысить минимальный интервал до 3 минут, но к сожалению эта настройка не сохраняется, думаю что она вшита в логику работы датчика.
Вот так выглядит страница устройства в Home Assistant — четыре объекта соответствующие четырем значениям в zigbee2mqtt
SLS gateway
Конечно не обойду вниманием еще один популярный метод — это SLS шлюз, который в отличии от USB стика является сам по себе автономным устройством, но взаимодействующий с Home Assistant через MQTT
Датчик без проблем подключается, кстати сам по себе процесс подключения на SLS мне больше нравится чем в zigbee2mqtt — он гораздо нагляднее.
В остальном — все тоже самое, конечное устройство, поддержка полная от производителя и модель и до картинки датчика в интерфейсе.
Изначально уровня заряда в свойствах датчика не видно, но это особенность SLS, данные появляются по мере их получения. Как только датчик решит передать данные о заряде — они появятся и тут.
Аналогично, эти параметры пробрасываются через интеграцию MQTT в Home Assistant, объект уровня заряда появится одновременно с шлюзом.
Сравнение
Для сравнение я использовал показания датчика mijia — в течении всего теста датчики лежали максимально рядом друг с другом, так что можно утверждать что условия были идентичными.
За время наблюдений — показания температуры были всегда максимально близки, отличаясь не более чем 0,3 градуса, что касается влажности — то тут разница несколько больше около 2%, но помним что Sonoff гораздо чаще шлет обновления чем mijia. Форма графиков — тут данные за 36 часов, тоже в целом идентичны — оба датчика реагируют на изменение окружающей среды одинаково.
Видео версия обзора
Вывод
Подводя итоги, главным плюсом этого датчика можно назвать его бюджетность, аналоги стоят в полутора — два раза дороже. К условным плюсам можно отнести частоту передачи изменений — почему к условным, потому что это скорее всего будет влиять на автономность, я слышал свидетельства что батарейка живет в нем всего несколько месяцев, но подтвердить пока не могу. Минус — это размер и топорный дизайн, хотя это довольно субъективная оценка, да и разместить этот датчик можно в неприметном месте.
DIY Zigbee датчик температуры
Приветствую читателей Habr! В этой статье расскажу вам о своём очередном zigbee проекте беспроводного датчика. Проект называется Efekta THP_LR \ THP, это небольшой датчик измерения температуры и влажности воздуха на чипе СС2530. Есть несколько модификаций датчика, в одном из вариантов датчик дополнительно измеряет атмосферное давление . Ещё в одном варианте датчик работает на радиомодуле СС2530 с усилителем сигнала. В этом варианте возможна установка радиомодуля с печатной антенной или с выносной. Все модификации датчика работают на батарейках ААА, это обеспечивает длительный срок работы на одном комплекте батареек. Датчик предназначен для работы в сетях Zigbee. Проект с открытым исходным кодом.
Идея разработки этого датчика базировалась на потребности в недорогом датчике температуры для размещения на улице. Опыт использования готовых датчиков с Алиэкспресс на улице показал, что есть несколько нюансов, которые было бы здорово решить.
- Батарейки, которые используются в готовых датчиках, очень плохо держат заряд при минусовых температурах.
- Дальность передачи данных при использовании на улице тоже чаще недостаточна, приходилось где-то в доме и недалеко от уличного датчика размещать роутер.
- Также очень важным моментом при разработке собственного diy датчика является софтовая часть, тут я сам могу решать, что, как и c каким временным интервалом датчик будет читать сенсоры и отправлять данные.
Плата датчика разрабатывалась в программе DipTrace, разработка заняла несколько дней. Плата датчика получился в размерах 29мм х 67мм. Место под напайку радиомодуля сделал универсальным, для возможности установки нескольких видов радиомодулей: EBYTE E18-MS1-PCB(200м), EBYTE E18-MS1PA2-PCB (800м), EBYTE E18-2G4Z27SI IPEX (2500м).
- Рабочая частота: 2400
2480 MHz;
Для удобства сборки все электронные компоненты располагаются на одной стороне платы, за исключением держателя батарейки, который напаивается на обратную сторону платы. В проекте использовались цифровые сенсоры BME280, BMP280 и SHTC3. В первом варианте датчика использовался сенсор bme280, но из-за кризиса производства полупроводников и, как следствие, роста цен в дальнейшем в проект был добавлен сенсор BMP280. Это самый недорогой вариант, стоимость bmp280 на Али экспресс составляет примерно 40 рублей. Но данный сенсор измеряет только атмосферное давление и температуру, а хотелось ещё и влажность, поэтому позднее в проект был добавлен сенсор SHTC3.
- Напряжение питания: 1.71V – 3.6V;
- Интерфейс обмена данными: I2C или SPI;
- Диапазон измерения атмосферного давления: 300hPa – 1100hPa (Arp ±0.12hPa), что эквивалентно диапазону от -500 до 9000 м над уровнем моря;
- Диапазон измерения температуры: -40°С … +85°С (At ±0.5°С);
- Диапазон измерения влажности: 0% … 100% (Arh ±3%);
- Энергопотребление: режим измерений: 340 — 714uА; в спящий режим: — 0.1 uА.
BMP280 (Bosch)
- Напряжение питания: 1.71V – 3.6V;
- Интерфейс обмена данными: I2C или SPI;
- Диапазон измерения атмосферного давления: 300hPa – 1100hPa (Arp ±0.12hPa), что эквивалентно диапазону от -500 до 9000 м над уровнем моря;
- Диапазон измерения температуры: -40°С … +85°С (At ±0.5°С);
- Энергопотребление: режим измерений: 325 — 720uА; в спящий режим: — 0.1 uА.
SHTC3 (Sensirion)
- Напряжение питания: 1.62V – 3.6V;
- Интерфейс обмена данными: I2C;
- Диапазон измерения температуры: -40°С … +125°С (At ±0.2°С);
- Диапазон измерения влажности: 0% … 100% (Arh ±2%);
- Энергопотребление: режим измерений: 270 — 430uА нА; в спящий режим: — 0.3 uА.
На плате установлен светодиод для индикации режимов работы: вход в сеть, выход из сети, отправка данных, две кнопки: кнопка сброса и пользовательская кнопка(вход в сеть, выход из сети, чтение и отправка данных не по расписанию), порт программирования.
Датчик получился простой и лёгкий в изготовлении, время сборки датчика при ручной пайке составляет 10-15 минут, схема датчика состоит всего из 10 элементов, включая радиомодуль.
Убедиться в этом вы можете, изучив схему проекта.
Программная часть этого проекта доступна на моём github в виде исходного кода, а также в виде уже скомпилированной прошивки. Прошивка скомпилирована для варианта датчика с самым простым и дешёвым радио модулем EBYTE E18-MS1-PCB. Установлен интервал чтения сенсора один раз в минуту и отправка данных при изменении значений на 0.33 градуса для температуры, на 2.5 процента для влажности и на 1 единицу для атмосферного давления. Отправка информации об уровне заряда батареек происходит один раз в 6 часов.
Для загрузки прошивки в радиомодуль может понадобиться СС Debugger, или SmartRF04EB это такая не очень дорогая платка которую можно купить на Али экспресс.
Впрочем, прошить можно и через ардуино/есп, для этих целей написан удобный и бесплатный онлайн-сервис ZESP_multitool . Заходите на сайт, выбираете тип модуля, который планирует прошить, в нашем случае TI CCХХХХ. Справа в интерфейсе будет картинка с тем, что, как и куда подключать. Подключаете вашу ESP к USB порту, в интерфейсе сервиса выбираете make adapter и кликаете esp32adapter.json. Далее выбираете самый нижний пункт слева в интерфейсе — local и выбираете на своём компьютере прошивку, которую требуется загрузить в датчик.
Исходные файлы проекта EFEKTA THP\THPLR Outdoor\Indoor sensor находятся папке /PROJECT SOURCE, это может быть интересно тем, кто хочет изменить какие-либо параметры работы датчика или, например, скомпилировать прошивку для радиомодуля с усилителем сигнала. Для такой настройки проекта необходимо переконфигурировать настройки проекта в файле /PROJECT SOURCE/THP/Source/preinclude.h, нужно закомментировать или, наоборот, раскомментировать нужные вам #define и в #define APP_REPORT_DELAY указать нужные вам значения времени в миллисекундах.
Корпус для датчика был разработан под печать на FDM принтере, модели корпуса также доступны на моём гитхабе в папке /ENCLOUSER/. В корпусе предусмотрено место для вывода внешней антенны, в этом месте толщина стенок тоньше, если необходим вариант с внешней антенной, то в этом месте нужно будет высверлить отверстие.
Проект уже не новый, первую публикацию о проекте я разместил 1 ноября 2021 года на площадке hackaday.io . С того времени проект пережил несколько ревизий дизайна платы, был протестирован при минусовых температурах(до -20С) на улице, в помещении, и даже в морозильной камере (-24С). Датчик работает очень стабильно. Информация о датчике уже добавлена в проект z2m , так что внешний конвертер не нужен, также датчик отлично работает в zha.
Гербер файлы проекта размещены в каталоге проектов на сервисе по заказу плат pсbway.com, сейчас (04.2022) это, наверное, единственный доступный сервис.
Чтобы не потеряться, подписывайтесь на мой профиль на Habr и на Youtube канал. Также приглашаю в телеграмм чат DIYDEV, где можно почитать, как заказывать PCB в апреле 2022 года, как легче всего их оплачивать не потеряв лишних денег и как приобрести уже готовые мои датчики, если по какой-то из причин вы не сможете их самостоятельно собрать.