Zigbee · температура · влажность · Home Assistant

Почему Zigbee-датчики температуры показывают по-разному и как их откалибровать

Если положить рядом несколько Zigbee-датчиков, они почти никогда не покажут абсолютно одинаковые значения. Разница в 0,2–0,5 °C или несколько процентов влажности может быть нормальной, а расхождение в 1–2 °C уже требует проверки условий установки, конкретной модели и калибровки. Разберём, почему датчики расходятся, как проверить их без лаборатории и где лучше задавать offset: в Zigbee2MQTT или Home Assistant.

ТемператураСравнивать после стабилизации
ВлажностьОчень зависит от места установки
Zigbee2MQTTЕсть temperature_calibration
Home AssistantМожно создать компенсированную сущность

Какая разница между датчиками считается нормальной

У бытовых датчиков есть паспортная погрешность. Например, Aqara для своего Temperature and Humidity Sensor указывает точность температуры ±0,3 °C и влажности ±3 % RH. Это означает, что два исправных датчика, находящиеся в одинаковых условиях, теоретически могут отличаться друг от друга сильнее, чем точность одного прибора относительно истинного значения.

Погрешность двух датчиков складывается Если каждый имеет допуск ±0,3 °C, расхождение между двумя экземплярами может быть заметнее 0,3 °C.

Поэтому цель домашней калибровки обычно не в том, чтобы заставить все устройства показывать абсолютно одинаковую сотую долю градуса. Гораздо важнее добиться предсказуемости и убрать систематическое смещение, например когда один датчик стабильно показывает примерно на 0,8 °C выше остальных.

Почему Zigbee-датчики температуры показывают по-разному

Допуск сенсора

Даже два экземпляра одной модели имеют небольшую производственную погрешность.

Тепло от электроники

Корпус, батарея и радиомодуль могут немного влиять на измерение, особенно у компактных устройств.

Стена холоднее воздуха

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

Солнечный нагрев

Даже непрямой солнечный свет способен заметно завысить температуру корпуса.

Поток воздуха

Окно, дверь, приточная вентиляция, кондиционер и радиатор создают локальный микроклимат.

Разная частота обновления

Один датчик уже отправил новое значение, а второй ещё показывает предыдущее.

Место установки влияет сильнее, чем кажется

Самая частая ошибка — сравнивать датчики, которые стоят в разных местах комнаты, а затем пытаться исправить разницу калибровкой. Температура у потолка, на холодной стене, возле окна и рядом с радиатором действительно различается.

Плохое место

  • над батареей;
  • на подоконнике;
  • под прямым солнцем;
  • рядом с кондиционером;
  • на наружной холодной стене;
  • в закрытой нише;
  • рядом с блоком питания или роутером.

Лучшее место

  • в зоне реального пребывания людей;
  • вдали от источников тепла;
  • без прямого солнца;
  • без сильного сквозняка;
  • с нормальным обменом воздуха вокруг корпуса;
  • на стабильной высоте для сравнения помещений.
Не калибруйте неправильное место установки. Если датчик над радиатором стабильно показывает на 2 °C больше комнатного воздуха, offset исправит цифру только в текущем режиме отопления. После выключения радиатора ошибка изменится.

Что использовать как эталон

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

Например, пять датчиков после длительной стабилизации показывают:

22,4 °C
22,5 °C
22,4 °C
23,3 °C
22,6 °C

В таком случае один экземпляр явно требует дополнительной проверки. Но это всё ещё не доказывает, что именно 22,5 °C является истинной температурой. Группа помогает найти выброс, а не создать метрологический эталон.

Как правильно сравнить датчики дома

  1. Положите все датчики рядом. Не прижимайте их друг к другу: оставьте небольшой зазор для воздуха.
  2. Уберите солнце и сквозняк. Не ставьте группу рядом с батареей, окном, роутером или блоком питания.
  3. Дайте им стабилизироваться. После переноса температура корпуса должна сравняться с окружающей средой.
  4. Не смотрите только одно измерение. Наблюдайте значения несколько часов, а лучше дольше.
  5. Сравнивайте одинаковые моменты времени. У батарейных Zigbee-датчиков отчёты могут приходить с разным интервалом.
  6. Запишите среднее смещение. Если устройство стабильно завышает примерно на 0,6 °C, разумный offset будет около -0,6 °C.
  7. Повторите проверку при другой температуре. Это покажет, является ли ошибка примерно постоянной.
Если ошибка постоянная, подходит простой offset.

Если при 18 °C датчик ошибается на +0,2 °C, а при 25 °C уже на +1,2 °C, одной постоянной поправки недостаточно. Тогда требуется многоточечная компенсация или замена датчика.

Калибровка температуры в Zigbee2MQTT

Для многих поддерживаемых устройств Zigbee2MQTT предоставляет опцию temperature_calibration. Это абсолютная поправка, которая добавляется к показанию датчика.

Датчик показывает 23,1 °C, эталон — 22,5 °C Смещение = 22,5 − 23,1 = -0,6 °C

Для такого случая задаётся:

temperature_calibration: -0.6

Официальная документация Zigbee2MQTT указывает, что поправка начинает действовать со следующего отчёта устройства. Для поддерживаемых моделей также доступна humidity_calibration.

Почему лучше калибровать именно в Zigbee2MQTT

  • Home Assistant сразу получает уже скорректированное значение;
  • не появляется дополнительная сущность только ради поправки;
  • одно и то же значение используется всеми MQTT-клиентами;
  • настройка находится рядом с параметрами конкретного Zigbee-устройства.
Опция доступна не у всех устройств одинаково. Проверяйте страницу именно вашей модели в базе Zigbee2MQTT. Наличие настройки нельзя автоматически переносить на любой Zigbee-датчик.

Как откалибровать датчик в Home Assistant

Если интеграция не предоставляет собственного offset, Home Assistant может создать отдельную компенсированную сущность. Для этого существует официальная интеграция Compensation, которая строит новое значение по заданным точкам.

Простейшая линейная коррекция может выглядеть так:

compensation:
  room_temperature_calibrated:
    source: sensor.room_temperature
    unit_of_measurement: "°C"
    precision: 1
    data_points:
      - [20.6, 20.0]
      - [25.6, 25.0]

В этом примере исходный датчик примерно на 0,6 °C завышает значение в проверенном диапазоне. Home Assistant создаст отдельную сущность с компенсированным значением, не изменяя исходный сенсор.

Когда Home Assistant удобнее Zigbee2MQTT

  • датчик работает через ZHA или другую интеграцию;
  • у устройства нет штатной настройки offset;
  • ошибка не является простым постоянным смещением;
  • нужно сохранить исходное значение для диагностики;
  • компенсация строится по нескольким контрольным точкам.

С влажностью сложнее, чем с температурой

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

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

Сначала добейтесь одинаковой температуры датчиков И только после этого сравнивайте относительную влажность.

Для поддерживаемых Zigbee2MQTT устройств используется абсолютная поправка humidity_calibration. Например, если стабильное показание 48 %, а выбранный эталон показывает 51 %, поправка составляет +3 процентных пункта.

Почему Zigbee-датчик обновляет температуру не сразу

Батарейные устройства экономят энергию и не обязаны передавать новое значение каждую секунду. Zigbee использует механизм attribute reporting: устройство отправляет данные при выполнении заданных условий, например при достаточном изменении показания или по истечении интервала.

22,1 °Cпоследний отчёт датчика A
22,6 °Cкомната уже нагрелась
22,5 °Cдатчик B уже отправил новый отчёт

Если в этот момент сравнить карточки Home Assistant, можно решить, что датчик A ошибается, хотя он просто ещё не передал следующее значение. Именно поэтому калибровку проводят по длительному наблюдению, а не по одному скриншоту.

Можно ли управлять отоплением по Zigbee-датчику

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

Для управления котлом, электрическим отоплением или тёплым полом нужно учитывать:

  • период обновления температуры;
  • что произойдёт при разряде батарейки;
  • как система реагирует на потерю Zigbee-связи;
  • минимальное время включения и выключения нагрузки;
  • локальные ограничения самого термостата или контроллера;
  • резервный безопасный режим при недоступности Home Assistant.

Для инженерной автоматики не стоит строить безопасность только на одном батарейном беспроводном датчике.

Когда датчик уже стоит считать подозрительным

Показание скачет без причины

Соседние датчики стабильны, а один регулярно меняется на несколько градусов.

Смещение нестабильно

Сегодня ошибка +0,3 °C, завтра при тех же условиях +1,5 °C.

Влажность «зависла»

Значение долго не меняется при явном изменении микроклимата.

Ошибки появились после батарейки

Стоит проверить контакт, напряжение и корректный запуск устройства.

Расхождение слишком велико

После длительной совместной стабилизации датчик сильно отличается от группы и проверенного прибора.

Плохая связь

Проблема может быть не в сенсоре, а в редких или потерянных Zigbee-отчётах.

Калибровка не исправляет плохую Zigbee-сеть

Если датчик регулярно пропадает, долго не обновляется или имеет плохую связь, сначала нужно привести в порядок Zigbee mesh. Батарейные датчики обычно являются конечными устройствами и сами не ретранслируют трафик. Стабильность сети создают координатор и устройства-роутеры с постоянным питанием.

Подробнее: почему Zigbee-датчики отваливаются и как построить стабильную mesh-сеть

Частые вопросы

Нормально ли, если два датчика отличаются на 0,5 °C?

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

Что означает temperature_calibration в Zigbee2MQTT?

Это абсолютная поправка к показанию температуры. Если датчик завышает на 0,6 °C, можно задать -0,6.

Меняется ли значение сразу после калибровки?

В Zigbee2MQTT для поддерживаемых устройств поправка применяется при следующем отчёте датчика.

Можно ли откалибровать влажность?

Да, для многих устройств Zigbee2MQTT поддерживает humidity_calibration. Но сначала нужно убедиться, что сравниваемые датчики имеют одинаковую температуру и достаточно стабилизировались.

Лучше калибровать в Zigbee2MQTT или Home Assistant?

Если Zigbee2MQTT поддерживает штатный offset для модели, обычно удобнее скорректировать значение там. Home Assistant полезен для ZHA, других интеграций и многоточечной компенсации.

Почему Aqara и Sonoff рядом показывают разную температуру?

Причиной могут быть допуски конкретных сенсоров, конструкция корпуса, разная скорость обновления и фактические микроклиматические условия. Сравнивать бренды корректно только после совместной стабилизации.

Можно ли использовать один датчик как эталон для всех остальных?

Можно использовать его как внутренний референс для согласования показаний, но без подтверждённой точности это не превращает его в метрологический эталон.

Вывод

Разные показания Zigbee-датчиков сами по себе не означают неисправность. Сначала нужно исключить разницу места установки, солнечный нагрев, радиаторы, сквозняки и неодновременное обновление данных. После этого датчики сравнивают рядом в стабильных условиях и определяют систематическое смещение.

Для устройств в Zigbee2MQTT удобнее использовать штатные temperature_calibration и humidity_calibration, если они поддерживаются конкретной моделью. В Home Assistant можно создать отдельную компенсированную сущность и даже использовать несколько контрольных точек, если ошибка нелинейна.