WB-MSW v.3 Zigbee Sensor: различия между версиями
(не показано 140 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:Универсальный настенный датчик WB-MSW v.3 | {{DISPLAYTITLE:Универсальный настенный датчик WB-MSW-ZIGBEE v.3}} | ||
<!--{{PDF}}--> | <!--{{PDF}}--> | ||
'''[https://wirenboard.com/ru/product/wb-msw-zigbee-v3/ Купить в интернет-магазине]''' | '''[https://wirenboard.com/ru/product/wb-msw-zigbee-v3/ Купить в интернет-магазине]''' | ||
[[Файл:WB-MSW3-front.JPG |300px|thumb|right| Универсальный датчик WB-MSW v.3, вид спереди]] | [[Файл:WB-MSW3-front.JPG |300px|thumb|right| Универсальный датчик WB-MSW-ZIGBEE v.3, вид спереди]] | ||
{{OldVersion | |||
| old_name = WB-MSW v.3 Zigbee Sensor | |||
| new_name = WB-MSW v.4 Zigbee Sensor | |||
| new_page = WB-MSW_v.4_Zigbee_Sensor | |||
}} | |||
== Назначение == | == Назначение == | ||
{{Wbincludes:WB-MSW v.3 Functions}} | |||
Устройство работает по протоколу Zigbee, поэтому его можно использовать: | |||
* с контроллером Wiren Board, для этого нужно [[Zigbee|установить zigbee2mqtt]] или SprutHub; | |||
* шлюзом SLS Smart Home с версии 2022.01.13d1, подробнее читайте на [https://slsys.io/action/supported_devices.html?device=160 сайте устройства]; | |||
* и любым другим устройством, на который можно установить zigbee2mqtt. | |||
== Модификации == | == Модификации == | ||
В датчик WB-MSW-ZIGBEE по умолчанию не включены сенсоры CO2 и VOC, их нужно выбрать при покупке отдельно. | |||
Если какой-то из сенсоров не установлен, то вместо показаний этого сенсора будут передаваться нули или N/A. Это не влияет на работу датчика в целом. | |||
== Покраска корпуса == | == Покраска корпуса == | ||
Строка 59: | Строка 69: | ||
|- | |- | ||
|Пользовательские индикаторы | |Пользовательские индикаторы | ||
|Зеленый и красный светодиод | |Зеленый и красный светодиод | ||
|- | |- | ||
|Звуковая индикация | |Звуковая индикация | ||
|«Пищалка» — beeper | |«Пищалка» — зуммер, beeper | ||
|- | |- | ||
! colspan="2" |Управление | ! colspan="2" |Управление | ||
|- | |- | ||
|Zigbee | |Zigbee | ||
|поддержка в SprutHub и zigbee2mqtt | |полная поддержка в SprutHub и zigbee2mqtt с версии 1.24.0 ([https://www.zigbee2mqtt.io/devices/WB-MSW-ZIGBEE_v.3.html страница устройства на сайте проекта]) | ||
|- | |- | ||
|Готовность к работе после подачи питания | |Готовность к работе после подачи питания | ||
Строка 73: | Строка 83: | ||
|- | |- | ||
{{Wbincludes:Operating conditions}} | {{Wbincludes:Operating conditions}} | ||
{{Wbincludes:Operating conditions CO2}} | |||
|- | |- | ||
! colspan="2" |Габариты | ! colspan="2" |Габариты | ||
|- | |- | ||
| Габариты | | Габариты | ||
| 83 x 83 x | | 83 x 83 x 21 мм | ||
{{Wbincludes:Weight}} 90 г | {{Wbincludes:Weight}} 90 г | ||
|} | |} | ||
Строка 89: | Строка 100: | ||
=== Датчик движения === | === Датчик движения === | ||
PIR-датчик движения в MSW обнаруживает перемещение объектов на расстоянии до 8 м с углом обзора около 100-120 градусов. | PIR-датчик движения в MSW обнаруживает перемещение объектов на расстоянии до 8 м с углом обзора около 100-120 градусов. | ||
=== Светодиодные индикаторы и зуммер === | === Светодиодные индикаторы и зуммер === | ||
{{Wbincludes:WB-MSW v.3 LED indicators}} | {{Wbincludes:WB-MSW v.3 LED indicators}} | ||
Про управление светодиодными индикаторами и зуммером, читайте в разделе [[#Управление |Управление]]. | |||
=== Эмуляция ИК-пультов === | === Эмуляция ИК-пультов === | ||
==== Описание ==== | |||
В WB-MSW v.3 под линзой расположены ИК-приёмник для обучения и 8 ИК-светодиодов. | |||
{{Wbincludes:WB-MSW v.3 IR universal text}} | |||
Вы можете записать сигнал в одну из двух видов памяти: | |||
* Постоянную — записанные команды хранятся в ROM-буферах, которые записываются в ПЗУ модуля и сохраняются при отключении питания. | |||
* Оперативную — это RAM-буфер модуля, данные теряются при отключении питания. | |||
Помните, что при использовании постоянной памяти (ROM) вы расходуете ресурс ПЗУ, каждую ячейку можно перезаписать не более 1000 раз. | |||
О том, как записывать ИК-команды и воспроизводить их, читайте в разделе [[#Настройка | Настройка]]. | |||
==== Управление телевизором ==== | |||
{{Wbincludes: WB-MSW v.3 IR TV Control}} | |||
==== Управление климатической техникой ==== | |||
{{Wbincludes: WB-MSW v.3 IR AC Control}} | |||
==== Управление другой техникой по ИК ==== | |||
{{Wbincludes: WB-MSW v.3 IR Other Control}} | |||
=== Датчик освещенности === | === Датчик освещенности === | ||
Строка 109: | Строка 136: | ||
=== Датчик качества воздуха (VOC) === | === Датчик качества воздуха (VOC) === | ||
{{Wbincludes:VOC Sensiron SGPC3}} | |||
==== Зачем измерять VOC ==== | |||
{{Wbincludes:VOC}} | {{Wbincludes:VOC}} | ||
=== Датчик CO2 === | === Датчик CO2 === | ||
{{Wbincludes:WB-MSW v.3 CO2}} | {{Wbincludes:WB-MSW v.3 CO2}} | ||
====Принудительная калибровка==== | |||
В большинстве случаев отключение автокалибровки или принудительная калибровка не требуются — датчик показывает правильные значения без дополнительных манипуляций, но иногда без неё не обойтись: | |||
# Нужно срочно откалибровать датчик и некогда ждать, пока сработает автоматическая калибровка. | |||
# Датчик находится в помещении, которое плохо проветривается и уровень CO2 никогда не достигает 400 ppm. В этом случае не забудьте отключить автоматическую калибровку. | |||
Суть принудительной калибровки заключается в том, что мы помещаем датчик в среду, где уровень CO2 равен атмосферному (400 ppm) и устанавливаем это значение как начало отсчёта. Чтобы уменьшить ошибки при измерении CO2, калибруйте датчик при комнатной температуре. | |||
Поместите работающий датчик в хорошо проветренное помещение и подождите 20 минут. Затем выполните следующие шаги: | |||
# Если нужно отключить автоматическую калибровку — установите параметр '''co2_autocalibration''' в значение '''OFF'''. | |||
# Включите параметр '''co2_manual_calibration''', а через секунду выключите. | |||
# В течение пяти минут измеренное значение CO2 станет около 400 ppm. Калибровка завершена. | |||
Способы изменения параметров смотрите в разделе [[#Настройка |Настройка]]. | |||
==== Зачем нужно измерять CO2?==== | |||
{{Wbincludes:WB-MSW v.3 CO2 why do I need to measure}} | |||
== Монтаж == <!--T:24--> | == Монтаж == <!--T:24--> | ||
=== Выбор режима работы === | |||
[[Image: WB-MSW v.3 Zigbee Change Mode.jpg |250px|thumb|right| Кнопка сопряжения и переключатель режимов]] | |||
{{Wbincludes: Wireless Device Change Mode}} Однако, радиомодуль может быть использован, как роутер для расширения покрытия сети. | |||
Переключатель режимов появился в ревизии 2.1, в более ранних ревизиях для использования RS-485 разорвите сопряжение с Zigbee-координатором. | |||
=== Подключение === | === Подключение === | ||
[[Файл:WB-MSW v.3 Wireles Installation.png |250px|thumb|right| Подключение питания к датчику WB-MSW v.3 Zigbee]] | [[Файл:WB-MSW v.3 Wireles Installation.png |250px|thumb|right| Подключение питания к датчику WB-MSW v.3 Zigbee]] | ||
{{Wbincludes:Wireless Mount}} | |||
В ревизии 1.2 нет кнопки на радиомодуле, вместо этого надо провести магнитом по боковой части корпуса датчика со стороны светодиода Status. | |||
{{Wbincludes:WB-MSW Zigbee Pairing}} | |||
=== Монтаж на стену === | === Монтаж на стену === | ||
{{Wbincludes:WB-MSW v.3 Mounting}} | {{Wbincludes:WB-MSW v.3 Mounting}} | ||
=== Как открыть корпус датчика === | |||
{{Wbincludes:WB-MSW v.3 How To Disassemble}} | |||
== Представление в контроллере == | |||
=== Программное обеспечение === | |||
Датчик можно использовать на контроллере Wiren Board и других устройствах со SprutHub и zigbee2mqtt с версии 1.24.0. | |||
Подробнее о поддержке Zigbee-устройств на контроллерах Wiren Board, читайте в статье [[Zigbee]]. | |||
<gallery mode="packed" heights="250px" caption="Представление датчика в разном программном обеспечении"> | |||
Image: WB-MSW v.3 Zigbee + zigbee2mqtt.png | WB-MSW v.3 Zigbee в веб-интерфейсе zigbee2mqtt 1.24.0 | |||
Image: WB-MSW v.3 Zigbee + webui.png | WB-MSW v.3 Zigbee в веб-интерфейсе контроллера Wiren Board, требуется zigbee2mqtt 1.24.0 | |||
Image: WB-MSW v.3 Zigbee + Spruthub.png | WB-MSW v.3 Zigbee в веб-интерфейсе SprutHub | |||
</gallery> | |||
=== Каналы устройства === | |||
Каналы устройства: | |||
* ''temperature'' — температура, °C; | |||
* ''humidity'' — относительная влажность воздуха, %, RH; | |||
* ''co2'' — концентрация CO2, ppm; | |||
* ''voc'' — качество воздуха, ppb; | |||
* ''illuminance'' — освещённость в условных единицах; | |||
* ''illuminance_lux'' — освещённость, lux; | |||
* ''occupancy'' — флаг наличия движения, рассчитывается по внутреннему алгоритму. Можно изменять время его сброса в параметре [[#Параметры | occupancy_timeout]]; | |||
* ''occupancy_level'' — уровень движения; | |||
* ''noise_detected'' — флаг наличия шума, рассчитывается по внутреннему алгоритму. Можно изменять время его сброса в параметре [[#Параметры | noise_timeout]]; | |||
* ''noise'' — уровень шума, dBA; | |||
* ''update_available'' — флаг, указывающий на то, что доступна новая прошивка по OTA; | |||
* ''linkquality'' — качество связи; | |||
* ''state_l1'' — красный светодиод; | |||
* ''state_l2'' — зелёный светодиод; | |||
* ''state_l3'' — зуммер. | |||
=== Управление === | |||
Зуммером и светодиодами можно управлять, для этого нужно отправить сформированный по образцу JSON-запрос в mqtt-топик <code>zigbee2mqtt/FRIENDLY_NAME/set</code>: | |||
* красный светодиод — <code>{"state_l1": "ON"}</code> или <code>{"state_l1": "OFF"}</code> | |||
* зелёный светодиод — <code>{"state_l2": "ON"}</code> или <code>{"state_l2": "OFF"}</code> | |||
* зуммер — <code>{"state_l3": "ON"}</code> или <code>{"state_l3": "OFF"}</code> | |||
Отправлять JSON-запросы можно с помощью [[wb-rules]], например, включим зелёный светодиод в датчике с именем ''0x842e14fffe8b184e'': | |||
<syntaxhighlight lang="bash"> | |||
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"state_l2": "ON"}), 2, false); | |||
</syntaxhighlight> | |||
Про управление ИК-приёмопередатчиком и настройку параметров читайте в разделе [[#Настройка | Настройка]]. | |||
== Настройка == | == Настройка == | ||
Датчик | === Как настраивать === | ||
Датчик можно настраивать в SprutHub и в zigbee2mqtt с версии 1.24.0. | |||
Вы можете настроить устройство [[Zigbee#Веб-интерфейс (Frontend)|веб-интерфейсе]] zigbee2mqtt, а также через запись JSON-команд в mqtt-топики устройства с помощью [[MQTT Explorer]] или [[wb-rules]]. Про настройку датчика в SprutHub, читайте в его документации. | |||
При настройке вам понадобится понимание некоторых терминов: | |||
* Канал — измеренные значения. | |||
* Параметр — элемент, который позволяет настраивать устройство. | |||
* Атрибут — внутреннее наименование канала или параметра. | |||
* Кластер — группа атрибутов. | |||
<gallery mode="packed" widths ="150px" caption="Настройка устройства в разном программном обеспечении"> | |||
Image: Wiren Board Web UI Rules.png | Настройка с помощью wb-rules в веб-интерфейсе контроллера. | |||
Image: mqtt-explorer-wb-msw3-zigbee-settings.png | Настройка с помощью программы MQTT Explorer | |||
Image: zigbee2mqtt WebUI-parameters.png | Настройка параметров в веб-интерфейсе zigbee2mqtt | |||
Image: zigbee2mqtt-WebUI-intervals.png | Настройка интервалов опроса в веб-интерфейсе zigbee2mqtt | |||
</gallery> | |||
=== Настройка интервала опроса === | |||
Настройка интервалов опроса позволяет регулировать нагрузку на Zigbee-сеть и экономить ресурсы контроллера на обработке полученных от устройства данных. Чем реже устройство присылает данные, тем меньше требуется ресурсов для их обработки. | |||
Интервалы настраиваются для каждого канала отдельно. Значения по умолчанию подойдут для большинства пользователей, но вы можете изменить их: | |||
* '''minimum_report_interval''' — Минимальный интервал опроса, который будет выдержан перед отправкой изменённых значений датчиком. Может игнорироваться, если не было соблюдено условие, задаваемое в настройке «Отчётное значение». | |||
* '''maximum_report_interval''' — Максимальный интервал опроса, по истечении которого датчик пришлёт данные независимо от того, изменились ли измеренные значения. | |||
* '''reportable_change''' — Отчётное значение. Если значение параметра изменилось на заданную величину или больше, а также прошло время, указанное в параметре «Минимальный интервал опроса», устройство пришлёт отчёт. При настройке нужно учитывать, что для температуры и влажности 100 — это 1 °C и 1 % соответственно. Для других параметров значения равны 1 к 1. | |||
Чтобы настроить интервал опроса, отправьте в MQTT-топик <code>zigbee2mqtt/bridge/request/device/configure_reporting</code> специально сформированный JSON-запрос. | |||
В шаблоне ниже заполните ''id'', ''cluster'' и ''attribute'', значениями которые можно взять из таблицы и укажите параметры опроса в полях ''minimum_report_interval'', ''maximum_report_interval'', ''reportable_change'': | |||
<syntaxhighlight lang="js"> | |||
{ | |||
"id": "0x0000000000000", | |||
"options": {}, | |||
"cluster": "yourCluster", | |||
"attribute": "yourAttribute", | |||
"minimum_report_interval": 5, | |||
"maximum_report_interval": 10, | |||
"reportable_change": 10 | |||
} | |||
</syntaxhighlight> | |||
Для каналов '''occupancy_level''' и '''noise''', секция '''options''' должна выглядеть так: <code>"options": {"manufacturerCode":26214},</code>. В остальных случаях оставьте её пустой <code>"options": {},</code>. | |||
Например, настроим с помощью wb-rules период опроса уровня шума (noise) в датчике с адресом ''0x842e14fffe8b184e'': | |||
<syntaxhighlight lang="js"> | |||
message = { | |||
"id": "0x842e14fffe8b184e", | |||
"options": {"manufacturerCode":26214}, | |||
"cluster": "sprutNoise", | |||
"attribute": "noise", | |||
"minimum_report_interval": 10, | |||
"maximum_report_interval": 60, | |||
"reportable_change": 5 | |||
} | |||
publish('zigbee2mqtt/bridge/request/device/configure_reporting', JSON.stringify(message), 2, false); | |||
</syntaxhighlight> | |||
{| border="1" class="wikitable" | |||
|+ Интервалы опроса | |||
! rowspan="2"| Канал || rowspan="2"|Описание || rowspan="2"|Кластер || rowspan="2"|Атрибут || colspan="3" |Значения по умолчанию | |||
|- | |||
! Минимальный интервал, с || Максимальный интервал, с || Отчётное значение | |||
|- | |||
| temperature || Температура || msTemperatureMeasurement || measuredValue || 10|| 3600|| 100 | |||
|- | |||
| illuminance || Освещённость || msIlluminanceMeasurement || measuredValue || 10|| 3600|| 5 | |||
|- | |||
| humidity || Влажность || msRelativeHumidity || measuredValue || 10|| 3600|| 100 | |||
|- | |||
| occupancy || Флаг наличия движения || msOccupancySensing || occupancy || 0|| 3600|| 0 | |||
|- | |||
| occupancy_level || Уровень движения || msOccupancySensing || sprutOccupancyLevel || 10|| 60|| 5 | |||
|- | |||
| noise || Уровень шума || sprutNoise || noise || 10|| 60|| 5 | |||
|- | |||
|} | |||
=== Параметры датчиков === | |||
==== Таймауты детекторов движения и шума ==== | |||
При настройке через MQTT, сформируйте JSON-запрос по образцу и отправьте его в mqtt-топик: | |||
* чтение <code>zigbee2mqtt/FRIENDLY_NAME/get</code> ответ будет опубликован в топике устройства и отобразится в веб-интерфейсе контроллера в карточке устройства на вкладке Devices. | |||
* запись <code>zigbee2mqtt/FRIENDLY_NAME/set</code> | |||
<code>FRIENDLY_NAME</code> — идентификатор устройства. | |||
Таймауты для сброса флагов о зафиксированных движении и шуме: | |||
* '''noise_timeout''' — Таймаут обнаружения шума. Время в секундах, которое должно пройти в тишине перед сбросом флага ''noise_detected''. Можно указывать от 0 до 2000 , по умолчанию 60 секунд. JSON запросы: | |||
** чтение — <code>{"noise_timeout": ""}</code> | |||
** запись — <code>{"noise_timeout": NEW_VALUE}</code> | |||
* '''occupancy_timeout''' — Таймаут обнаружения движения. Время в секундах, которое должно пройти без движения перед сбросом флага ''occupancy''. Можно указывать от 0 до 2000 , по умолчанию 60 секунд. JSON запросы: | |||
** чтение — <code>{"occupancy_timeout": ""}</code> | |||
** запись — <code>{"occupancy_timeout": NEW_VALUE}</code> | |||
Например, установим с помощью wb-rules в датчике с именем ''0x842e14fffe8b184e'' параметр ''noise_timeout'' в значение 20: | |||
<syntaxhighlight lang="js"> | |||
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"noise_timeout": 20}), 2, false); | |||
</syntaxhighlight> | |||
==== Прочие параметры ==== | |||
Для настройки параметров, указанных в таблице «Параметры», нужно отправить устройству подготовленный JSON-запрос в топик <code>zigbee2mqtt/FRIENDLY_NAME/set</code>, где <code>FRIENDLY_NAME</code> — идентификатор устройства. | |||
Чтобы прочитать параметр заполните в шаблоне ниже ''cluster'' и ''attributes'', значениями которые можно взять из таблицы: | |||
<syntaxhighlight lang="js"> | |||
{ | |||
"read": { | |||
"cluster": "yourCluster", | |||
"options": {"manufacturerCode":26214}, | |||
"attributes": [ | |||
"yourAttribute" | |||
] | |||
} | |||
} | |||
</syntaxhighlight> | |||
Чтобы записать новое значение параметра, заполните в шаблоне ниже ''cluster'' и ''payload'', значениями которые можно взять из таблицы и укажите новое значение вместо ''NEW_VALUE'': | |||
<syntaxhighlight lang="js"> | |||
{ | |||
"write": { | |||
"cluster": "yourCluster", | |||
"options": {"manufacturerCode":26214}, | |||
"payload": { | |||
"yourAttribute": NEW_VALUE | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
Например, включим с помощью wb-rules принудительную калибровку датчика CO2 в устройстве с адресом ''0x842e14fffe8b184e'': | |||
<syntaxhighlight lang="js"> | |||
message = { | |||
"write": { | |||
"cluster": "msCO2", | |||
"options": {"manufacturerCode":26214}, | |||
"payload": { | |||
"sprutCO2Calibration": 1 | |||
} | |||
} | |||
} | |||
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify(message), 2, false); | |||
</syntaxhighlight> | |||
{| border="1" class="wikitable" | |||
|+ Параметры | |||
! rowspan="2"| Параметр || rowspan="2"| Описание || rowspan="2"| Кластер || rowspan="2"| Атрибут || colspan="2"| Значения | |||
|- | |||
! Возможное || По умолчанию | |||
|- | |||
| noise_detect_level || Минимальный уровень шума в дБА, при котором будет работать детектор. || sprutNoise || noiseDetectLevel || 0 – 150|| 50 | |||
|- | |||
| occupancy_sensitivity || Чувствительность датчика движения. Если датчик срабатывает при малейшем движении, уменьшите чувствительность, в противном случае увеличьте ее. || msOccupancySensing || sprutOccupancySensitivity || 0 – 2000|| 50 | |||
|- | |||
| co2_autocalibration|| Автоматическая калибровка датчика CO2 на атмосферный уровень. Только для сенсора MH-Z19B.|| msCO2|| sprutCO2AutoCalibration|| 0 - отключено или 1 - включено|| 1 | |||
|- | |||
| co2_manual_calibration|| Принудительная калибровка датчика CO2 на атмосферный уровень. Только для сенсора MH-Z19B.|| msCO2|| sprutCO2Calibration|| 0 или 1 - калибровать|| 0 | |||
|- | |||
|} | |||
=== ИК-команды === | |||
Для управления ИК приёмопередатчиком, сформируйте JSON-запрос по образцу и отправьте его в mqtt-топик <code>zigbee2mqtt/FRIENDLY_NAME/set</code>. | |||
О принципах управления ИК-устройствами, читайте в разделе [[#Эмуляция ИК-пультов| Эмуляция ИК-пультов]]. | |||
==== Постоянная память (ROM) ==== | |||
Сигналы, записанные в постоянную память (ROM) сохраняются после отключения питания. | |||
Доступные команды, ''rom'' — номера ячеек памяти от 0 до 31: | |||
* Начать обучение: | |||
*:<syntaxhighlight lang="js"> | |||
{ | |||
"learn_start": { | |||
"rom":0 | |||
} | |||
} | |||
</syntaxhighlight> | |||
* Завершить обучение: | |||
*:<syntaxhighlight lang="js"> | |||
{ | |||
"learn_stop": { | |||
"rom":0 | |||
} | |||
} | |||
</syntaxhighlight> | |||
* Воспроизвести сигнал: | |||
*:<syntaxhighlight lang="js"> | *:<syntaxhighlight lang="js"> | ||
{ | |||
"play_store": { | |||
"rom":0 | |||
} | |||
} | |||
</syntaxhighlight> | |||
* Удалить сигналы из всех ячеек ROM: | |||
*:<syntaxhighlight lang="js"> | |||
{ | |||
"clear_store": {} | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
* | Например, воспроизведём ИК-сигнал из ячейки с адресом ''0'', которая находится в датчике с именем ''0x842e14fffe8b184e'': | ||
<syntaxhighlight lang="js"> | |||
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"play_store": {"rom":0}}), 2, false); | |||
</syntaxhighlight> | |||
==== Оперативная память (RAM) ==== | |||
Сигналы, записанные в оперативную память (RAM) стираются при отключении питания или при операциях с банками постоянной памяти (ROM). | |||
Доступные команды: | |||
* Начать обучение: | |||
*:<syntaxhighlight lang="js"> | |||
{ | |||
"learn_ram_start": {} | |||
} | |||
</syntaxhighlight> | |||
* Завершить обучение: | |||
*:<syntaxhighlight lang="js"> | *:<syntaxhighlight lang="js"> | ||
{ | |||
"learn_ram_stop": {} | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
* | * Воспроизвести сигнал: | ||
*:<syntaxhighlight lang="js"> | *:<syntaxhighlight lang="js"> | ||
publish('zigbee2mqtt/ | { | ||
"play_ram": {} | |||
} | |||
</syntaxhighlight> | |||
Например, воспроизведём ИК-сигнал из оперативной памяти в датчике с именем ''0x842e14fffe8b184e'': | |||
<syntaxhighlight lang="js"> | |||
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"play_ram": {}}), 2, false); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Обновление прошивки == | ||
Устройство поддерживает обновление прошивок «по воздуху» (OTA). Здесь мы рассмотрим обновление при использовании датчика с zigbee2mqtt. Если вы используете SprutHub, смотрите инструкцию по обновлению в его документации. | |||
=== Из веб-интерфейса zigbee2mqtt === | |||
[[Image: zigbee2mqtt WebUI-OTA.png |300px|thumb|right| Раздел OTA в веб-интерфейсе zigbee2mqtt ]] | |||
Обновить прошивку можно через веб-интерфейс zigbee2mqtt: | |||
# Включите [[Zigbee#Веб-интерфейс (Frontend) | веб-интерфейс zigbee2mqtt]] и перейдите в него. | |||
# Откройте раздел '''OTA'''. | |||
# Найдите в списке устройств датчик WB-MSW-ZIGBEE v.3 и нажмите кнопку '''Check for new updates'''. | |||
# Если прошивка обновление будет доступно, название кнопки сменится на '''Update device firmware''', нажмите её. | |||
# Начнётся процесс обновления прошивки, который длится около 30-40 минут, не отключайте питание датчика. | |||
Если в процессе прошивки произошёл сбой, например, устройство было обесточено, удалите устройство из Zigbee-сети и подключите его заново. | |||
=== Через MQTT === | |||
Если вы используете zigbee2mqtt, но по каким-то причинам не хотите обновлять прошивку устройства через веб-интерфейс, вы можете это сделать с помощью отправки JSON-сообщений в MQTT с помощью [[MQTT Explorer]]. Название топиков и примеры JSON-команд, смотрите в инструкции [https://www.zigbee2mqtt.io/guide/usage/ota_updates.html#automatic-checking-for-available-updates OTA updates]. | |||
==Примеры правил== | ==Примеры правил== | ||
Строка 173: | Строка 484: | ||
{{Wbincludes:Revision}} | {{Wbincludes:Revision}} | ||
|- | |- | ||
| | |2.1 | ||
| - | |v2.1A, v2.1B, v2.1C, v2.1D, v2.1E, v2.1E/2, v2.1F - ... | ||
| | |07.2022 - ... | ||
| | | | ||
* Первая версия | *изменена компоновка платы. Переключатель режима расположен на плате WB-MSW v.3 | ||
*наклейки Wiren Board. Партии на базе MSW v4.22B/2, v4.22C, v4.22F/1A. | |||
|- | |||
|1.3 | |||
|v1.3B, v1.3B/3 | |||
|12.2021 - 05.2022 | |||
| | |||
*наклейки Wiren Board. Партии на базе MSW v4.19A/v4.19A/M, v4.20F. | |||
|- | |||
|1.3 | |||
|v1.3A | |||
|08.2021 - 11.2021 | |||
| | |||
*версия с кнопкой для программирования. Со спец.наклейками. | |||
|- | |||
|1.2 | |||
|v1.2A, v1.2B | |||
|04.2021 - 07.2021 | |||
| | |||
* Первая версия, на чипе MGM210P032JIA2. Версия со спец.наклейками. | |||
|- | |||
|- | |- | ||
|} | |} | ||
Строка 184: | Строка 516: | ||
{{Wbincludes:WB-MSW v.3 Images}} | {{Wbincludes:WB-MSW v.3 Images}} | ||
<gallery mode=" | <gallery mode="packed" heights="250px"> | ||
Image: WB-MSW v.3 Zigbee side. | Image: WB-MSW v.3 Zigbee side.png | Универсальный датчикWB-MSW-ZIGBEE v.3, <br>вид сзади | ||
Image: WB- | Image: WB-MSW v.3 Zigbee PCB.png | Плата WB-MSW-ZIGBEE v.3 | ||
</gallery> | </gallery> |
Текущая версия на 09:48, 11 августа 2023
Эта страница описывает снятое с производства устройство WB-MSW v.3 Zigbee Sensor, описание нового WB-MSW v.4 Zigbee Sensor.
Назначение
Комбинированный цифровой датчик температуры, влажности, освещенности, движения, уровня шума, концентрации CO2 и летучих органических соединений. Оснащён ИК приемопередатчиком.
Предназначен для контроля климата в жилых и офисных помещениях, для бытового использования. Датчик выполнен в пластиковом корпусе и предназначен для крепления на стену.
Является средством измерения. Номер в Госреестре средств измерений 87443-22.
Устройство работает по протоколу Zigbee, поэтому его можно использовать:
- с контроллером Wiren Board, для этого нужно установить zigbee2mqtt или SprutHub;
- шлюзом SLS Smart Home с версии 2022.01.13d1, подробнее читайте на сайте устройства;
- и любым другим устройством, на который можно установить zigbee2mqtt.
Модификации
В датчик WB-MSW-ZIGBEE по умолчанию не включены сенсоры CO2 и VOC, их нужно выбрать при покупке отдельно.
Если какой-то из сенсоров не установлен, то вместо показаний этого сенсора будут передаваться нули или N/A. Это не влияет на работу датчика в целом.
Покраска корпуса
Разноцветных корпусов нет, но белые корпуса легко покрасить — получается неплохо, см. Покраска корпуса MSW
Технические характеристики
Измеряемая величина | Диапазон | Погрешность | Готовность к работе
после подачи питания |
---|---|---|---|
Концентрация CO2 | 400 – 5000 ppm (миллионных долей) | 100 ppm + 5% от измеренного значения | 3 мин,
автокалибровка каждые 7 дн. |
Температура | −40 °С – +80 °С | ±0.3 °С (в диапазоне 0 – 70 °C)
±0.5 °С (в диапазоне −40 – 0 °C и 70 – 80 °C) |
1 сек
постоянная времени (выравнивание с окружающим воздухом) ~4 мин |
Относительная влажность | 5 – 95 % | ±3 % | 1 сек |
Уровень шума (звуковое давление) | 40 – 82 дБА в версии v.4.8
38 – 105 дБА в версии v.4.9 39 – 90 дБА в версиях v.4.19-4.22 |
±2 дБА (±3 дБА в v.4.8) | 5 сек |
Освещённость | 0,02 – 100 000 лк | ±10 % | 1 сек |
Качество воздуха
(концентрация летучих органических соединений — VOC) |
0 ppm – 60000 ppb (миллиардных долей) по этанолу | ±15 % (тип)
±40 % (макс) |
6 мин
(самокалибровка спустя 12 ч) |
Датчик движения (недоступен в версии с LoRa) | До 8 м, 120 градусов | 8 сек | |
Передача ИК-команд | До 10 м (зависит от окружающих условий) | 1 сек |
Параметр | Значение |
---|---|
Питание | |
Напряжение питания | 9 В – 28 В постоянного тока |
Потребляемая мощность |
|
Количество запоминаемых ИК-команд | |
Количество команд |
32 |
Длительность команд | Максимальная длина команды — 508 регистров, плюс два регистра — признак окончания команды.
Каждый регистр кодирует длительность высокого или низкого уровня сигнала (последовательно) в микросекундах. |
Клеммники и сечение проводов | |
Рекомендуемое сечение провода с НШВИ, мм2 | 0.35 – 1 мм2 — одинарные, 0.35 – 0.5 мм2 — сдвоенные провода, |
Длина стандартной втулки НШВИ, мм | 8 |
Момент затяжки винтов, Н∙м | 0.2 |
Индикация | |
Питание и обмен данными | Зеленый светодиод в нижней части корпуса |
Пользовательские индикаторы | Зеленый и красный светодиод |
Звуковая индикация | «Пищалка» — зуммер, beeper |
Управление | |
Zigbee | полная поддержка в SprutHub и zigbee2mqtt с версии 1.24.0 (страница устройства на сайте проекта) |
Готовность к работе после подачи питания | ~2 c |
Условия эксплуатации | |
Температура воздуха | От −40 до +80 °С |
Относительная влажность | До 95 %, без конденсации влаги |
Климатическое исполнение по ГОСТ 15150-69 | O2.1* |
Гарантийный срок | 2 года |
Срок службы | 5 лет |
Температура воздуха при установленном датчике CO2 | От 0 до +50 °C |
Габариты | |
Габариты | 83 x 83 x 21 мм |
Масса (с коробкой) | 90 г |
Общий принцип работы
Датчик TH
Датчик температуры и влажности (TH) распаян на плате модуля.
Модуль автоматически корректирует показания температуры и влажности, учитывая базовый нагрев платы от микросхемы питания (0.3 °C), а также нагрев от установленных датчиков СО2 (0.31 °C) и VOC (0.14 °C).
Датчик движения
PIR-датчик движения в MSW обнаруживает перемещение объектов на расстоянии до 8 м с углом обзора около 100-120 градусов.
Светодиодные индикаторы и зуммер
Также во всех комплектациях доступен зелёный индикатор обмена данными, который виден в технологическом отверстии на нижней части корпуса.
Пользователь может управлять:
- Двумя яркими светодиодами — зеленым и красным, которые подсвечивают линзу на корпусе. Индикаторы могут только мигать.
- Звуковым индикатором (зуммер, buzzer).
Индикаторы позволяют обеспечить обратную связь при монтаже и эксплуатации. Например, датчик может мигать красным при превышении оптимальной концентрации углекислого газа (примеры правил). При монтаже большого количества датчиков индикаторы (или бипер) помогут определить, к какому конкретно датчику вы сейчас обращаетесь.
Про управление светодиодными индикаторами и зуммером, читайте в разделе Управление.
Эмуляция ИК-пультов
Описание
В WB-MSW v.3 под линзой расположены ИК-приёмник для обучения и 8 ИК-светодиодов.
Обучение проводится один раз — команды сохраняются в памяти устройства и могут быть воспроизведены командой с контроллера. Количество запоминаемых команд достаточно большое (до сотни, в зависимости от модели пульта), чтобы управлять сразу многими устройствами в помещении. Мощности передатчика хватает, чтобы управляемые устройства принимали не только прямой, но и отраженный сигнал.
Обычно используется для управления кондиционерами и тепловыми завесами. Учтите, что ИК-команды отправляются всем устройствам в зоне видимости, поэтому передать разные команды на одинаковые устройства не получится.
Вы можете записать сигнал в одну из двух видов памяти:
- Постоянную — записанные команды хранятся в ROM-буферах, которые записываются в ПЗУ модуля и сохраняются при отключении питания.
- Оперативную — это RAM-буфер модуля, данные теряются при отключении питания.
Помните, что при использовании постоянной памяти (ROM) вы расходуете ресурс ПЗУ, каждую ячейку можно перезаписать не более 1000 раз.
О том, как записывать ИК-команды и воспроизводить их, читайте в разделе Настройка.
Управление телевизором
Обычно пульт телевизора работает в одиночном режиме — передаёт на устройство код нажатой клавиши. Поэтому, достаточно записать сигналы используемых кнопок пульта и вы сможете полностью управлять устройством. Для записи сигнала в модуль, направьте пульт на ИК-приёмник и нажмите нужную кнопку на пульте.
В итоге у вас получится в памяти модуля набор команд, которые соответствуют клавишам на пульте ДУ:
- Включить / выключить
- Прибавить громкость
- Убавить громкость
- Листать каналы вперёд
- Листать каналы назад
- Нажата кнопка 1
Также можно записывать целые режимы, например, включить 13 программу.
Управление климатической техникой
Обычно пульт климатической техники передаёт на устройство набор команд, который соответствует выбранному на пульте режиму. Притом, состояние устройства (включено или выключено) может передаваться отдельно.
Например, чтобы управлять кондиционером, нужно сперва выставить нужный режим на пульте, а потом записать его в модуль. Для записи сигнала в модуль, направьте пульт на ИК-приёмник и измените один из параметров, например, температуру.
В итоге получится в памяти модуля набор готовых режимов:
- Выключен
- Включён, вентилятор на максимальную скорость, охлаждаем до 22 °C
- вентилятор на максимальную скорость, охлаждаем до 20 °C
- вентилятор на малую скорость, охлаждаем до 20 °C
- вентилятор на среднюю скорость, нагреваем до 27 °C
Управление другой техникой по ИК
С помощью модуля вы можете управлять любой техникой, которая принимает команды по ИК. Для этого нужно выяснить: передаёт пульт одиночные сигналы на каждую нажатую клавишу или целиком режим и выбрать одну из описанных выше стратегий.
Датчик освещенности
Датчик освещенности имеет фильтр, который повторяет кривую спектральной чувствительности человеческого глаза. Это позволяет измерять освещенность в люксах, что позволяет обеспечить контроль освещенности в соответствии с нормами СанПиН.
Максимальное время реакции на резкое изменение освещённости — 1.5 c.
Датчик шума
В модуле используется микрофон с усилителем и фильтрами для коррекции по шкале А с учётом особенностей восприятия человеческим ухом звуков разных частот. Шум измеряется в акустических децибелах (дБА), что позволяет контролировать шумовую обстановку в соответствии со стандартами и санитарными нормами.
Датчик качества воздуха (VOC)
Измерение VOC сделано на отдельном модуле с сенсором Sensiron SGPC3 (datasheet), устанавливаемом по стрелочке в специальный разъём.
Сенсор готов к работе через 6 минут после включения. До этого в регистре качества воздуха находится значение, сигнализирующее об ошибке (0xFFFF).
Используемый нами сенсор VOC содержит встроенный алгоритм самокалибровки, который срабатывает каждые 12 часов. Однако, из-за особенностей алгоритма, синхронизация показаний с двух датчиков Wiren Board может происходить значительно дольше. Не отключайте питание датчика — это сбросит значения калибровки и процесс стабилизации значений начнётся сначала.
Зачем измерять VOC
Датчик VOC не работает как детектор утечки бытовых горючих газов и совсем не реагирует на дым!
Летучие органические вещества (ЛОВ, VOC) — это легкоиспаряющиеся вещества, выделяющиеся в атмосферу в виде газов. Датчик определяет суммарную концентрацию летучих органических веществ, в том числе испарения лаков/красок и элементов внутренней отделки помещений (фенол, формальдегид, толуол, стирол), спирты, бензол, гниющие овощи, выделяемые человеком газы, бытовой газ. Высокие концентрации опасных ЛОВ представляют угрозу жизни и здоровью человека.
Датчик не реагирует на количество ароматических молекул в воздухе, поэтому его вряд ли получится использовать для включения вытяжки в санузле для устранения запаха — даже небольшая концентрация ЛОВ очень сильно пахнет, но не определяется датчиком.
Концентрация измеряется в единицах на миллиард ppb (также называемую ОЛОС — см. ГОСТ Р ИСО 16000-9-2009). Данный параметр характеризует общую концентрацию ЛОВ в усредненном помещении.
На основании исследований производителем датчика установлены следующие пороги концентрации:
AQI | Концентрация (ppb) | Уровень | Соответствие гигиеническим нормам | Рекомендации | Предельное время воздействия |
---|---|---|---|---|---|
5 | 2200 - 5500 | Опасно для здоровья | Ситуация неприемлема | Подвергаться воздействию только в критических случаях / Необходимо интенсивное вентилирование | часы |
4 | 660-2200 | Неудовлетворительно | Серьезные претензии | Необходимо интенсивное вентилирование или проветривание, требуется поиск источников загрязнения | < 1 месяца |
3 | 220 - 660 | Приемлемо | Некоторые претензии | Рекомендуется интенсивное вентилирование или проветривание, требуется поиск источников загрязнения | < 12 месяцев |
2 | 65 - 220 | Хорошо | Без особых претензий | Рекомендуется вентилирование или проветривание | нет предела |
1 | 0-65 | Отлично | Без претензий | Требуемое значение | нет предела |
Датчик CO2
Для измерения концентрации CO2 в воздухе используется недисперсионный инфракрасный (NDIR) датчик. Принцип действия основан на поглощении углекислым газом инфракрасного света. Оптический способ измерения CO2 намного точнее, чем с помощью более дешевых электрохимических датчиков.
Концентрация CO2 измеряется в ppm — частях на миллион.
Автокалибровка
Измеренное минимальное значение в течение 7 дней принимается за 400 ppm — это значение концентрации CO2 на улице. Концентрация CO2 упадёт до уличной, если в помещении нет людей хотя бы несколько часов в день, или если в помещении работает вытяжная вентиляция, или в помещении иногда открывают окна.
Принудительная калибровка
В большинстве случаев отключение автокалибровки или принудительная калибровка не требуются — датчик показывает правильные значения без дополнительных манипуляций, но иногда без неё не обойтись:
- Нужно срочно откалибровать датчик и некогда ждать, пока сработает автоматическая калибровка.
- Датчик находится в помещении, которое плохо проветривается и уровень CO2 никогда не достигает 400 ppm. В этом случае не забудьте отключить автоматическую калибровку.
Суть принудительной калибровки заключается в том, что мы помещаем датчик в среду, где уровень CO2 равен атмосферному (400 ppm) и устанавливаем это значение как начало отсчёта. Чтобы уменьшить ошибки при измерении CO2, калибруйте датчик при комнатной температуре.
Поместите работающий датчик в хорошо проветренное помещение и подождите 20 минут. Затем выполните следующие шаги:
- Если нужно отключить автоматическую калибровку — установите параметр co2_autocalibration в значение OFF.
- Включите параметр co2_manual_calibration, а через секунду выключите.
- В течение пяти минут измеренное значение CO2 станет около 400 ppm. Калибровка завершена.
Способы изменения параметров смотрите в разделе Настройка.
Зачем нужно измерять CO2?
Углекислый газ в высоких концентрациях токсичен. Незначительные повышения концентрации, вплоть до 0.2−0.4 % (2000−4000 ppm), в помещениях приводят к развитию у людей сонливости и слабости. Для помещений нормальным является уровень CO₂ около 600 ppm. Повышенные концентрации углекислого газа снижают когнитивные способности людей. Уже при 1200 ppm расширяются кровеносные сосуды в мозге, снижается активность нейронов и уменьшается объём коммуникации между областями мозга.
Влияние на взрослых здоровых людей | Концентрация углекислого газа, ppm |
---|---|
Нормальный уровень на открытом воздухе | 400—450 |
Приемлемые уровни | <600 |
Жалобы на несвежий воздух | 600—1000 |
Общая вялость | 1000—2500 |
Возможны нежелательные эффекты на здоровье | 2500—5000 |
Максимально допустимая концентрация в течение 8 часового рабочего дня | 5000 |
Классификация воздуха в помещениях по ГОСТ 30494-2011
Класс | Качество воздуха в помещении | Допустимое содержание CO₂ *, см³/м³ | |
---|---|---|---|
Оптимальное | Допустимое | ||
1 | Высокое | - | 400 и менее |
2 | Среднее | - | 400-600 |
3 | - | Допустимое | 600-1000 |
4 | - | Низкое | 1000 и более |
* Допустимое содержание CO₂ в помещениях принимают сверх содержания CO₂ в наружном воздухе, см³/м³ |
Монтаж
Выбор режима работы
С завода в устройстве установлен беспроводной режим, разберите устройство и измените режим переключателем S2:
- ON — беспроводной.
- 1 — подключение по RS-485: при работе в этом режиме, смотрите документацию на проводную версию устройства.
В режиме 1 радиомодуль продолжает работать, поэтому он может подключиться к координатору, но работать с датчиком по радиоканалу не получится. Однако, радиомодуль может быть использован, как роутер для расширения покрытия сети.
Переключатель режимов появился в ревизии 2.1, в более ранних ревизиях для использования RS-485 разорвите сопряжение с Zigbee-координатором.
Подключение
Подключите питание к клеммам V+ и GND устройства, используйте комплектный блок питания, или любой с напряжением 9 В – 28 В постоянного тока.
Интерфейсы устройств не развязаны гальванически от питания, поэтому все клеммы GND устройств должны быть соединены, даже если используются разные блоки питания, подробнее. При питании по длинному кабелю учитывайте падение напряжения на нём.
В ревизии 1.2 нет кнопки на радиомодуле, вместо этого надо провести магнитом по боковой части корпуса датчика со стороны светодиода Status.
Перед подключением датчика к контроллеру Wiren Board, настройте контроллер для работы по протоколу Zigbee.
Теперь нужно сделать сопряжение датчика и Zigbee-координатора (контроллера):
- Включите в настройках координатора режим сопряжения устройств (Pairing).
- Снимите с датчика крышку и коротко нажмите кнопку Pairing на радиомодуле. Зелёный светодиод Status должен замигать.
- Подождите, пока датчик не появится в списке устройств, известных координатору.
- Отключите режим сопряжения устройств (Pairing) в настройках координатора.
Чтобы удалить датчик из сети Zigbee:
- Отключите в координаторе режим сопряжения, если он включён.
- Снимите с датчика крышку и коротко нажмите кнопку сопряжения (Pairing) на радиомодуле. Зелёный светодиод Status должен перестать мигать.
Монтаж на стену
Модуль имеет отверстия для крепления к поверхности. Мы подготовили установочный шаблон для корпуса датчика:
- Скачайте файл MSW v3 mounting template.pdf на компьютер.
- Откройте в Acrobat Reader и при печати выберите опцию «Реальный масштаб».
Для крепления WB-MSW v.3 выбирайте винты/шурупы с головкой диаметром около 7 мм, если требуется, чтобы датчик был съемным, и 9-10 мм — для постоянной фиксации.
Устройство должно эксплуатироваться при рекомендованных условиях окружающей среды.
Рекомендуем располагать датчики на теплых (внутренних) стенах, на высоте 1-1.6 м от уровня пола, с учетом возможных сквозняков и освещенности солнцем. При креплении на потолке в жилом помещении температура будет завышена, а влажность занижена. Концентрация CO2 от высоты не зависит. При креплении на внешних стенах зимой будут заниженные показания температуры на несколько градусов (из-за холодного пограничного слоя воздуха и охлаждения корпуса датчика от стены).
Сразу же после установки датчик CO2 может показывать неверные значения: это может быть связано с неосторожным обращением во время транспортировки и монтажа. Вы можете подождать 7 дней без отключения питания, пока функция автокалибровки не приведёт показания датчика в норму или выполнить принудительную калибровку.
Как открыть корпус датчика
Представление в контроллере
Программное обеспечение
Датчик можно использовать на контроллере Wiren Board и других устройствах со SprutHub и zigbee2mqtt с версии 1.24.0.
Подробнее о поддержке Zigbee-устройств на контроллерах Wiren Board, читайте в статье Zigbee.
- Представление датчика в разном программном обеспечении
Каналы устройства
Каналы устройства:
- temperature — температура, °C;
- humidity — относительная влажность воздуха, %, RH;
- co2 — концентрация CO2, ppm;
- voc — качество воздуха, ppb;
- illuminance — освещённость в условных единицах;
- illuminance_lux — освещённость, lux;
- occupancy — флаг наличия движения, рассчитывается по внутреннему алгоритму. Можно изменять время его сброса в параметре occupancy_timeout;
- occupancy_level — уровень движения;
- noise_detected — флаг наличия шума, рассчитывается по внутреннему алгоритму. Можно изменять время его сброса в параметре noise_timeout;
- noise — уровень шума, dBA;
- update_available — флаг, указывающий на то, что доступна новая прошивка по OTA;
- linkquality — качество связи;
- state_l1 — красный светодиод;
- state_l2 — зелёный светодиод;
- state_l3 — зуммер.
Управление
Зуммером и светодиодами можно управлять, для этого нужно отправить сформированный по образцу JSON-запрос в mqtt-топик zigbee2mqtt/FRIENDLY_NAME/set
:
- красный светодиод —
{"state_l1": "ON"}
или{"state_l1": "OFF"}
- зелёный светодиод —
{"state_l2": "ON"}
или{"state_l2": "OFF"}
- зуммер —
{"state_l3": "ON"}
или{"state_l3": "OFF"}
Отправлять JSON-запросы можно с помощью wb-rules, например, включим зелёный светодиод в датчике с именем 0x842e14fffe8b184e:
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"state_l2": "ON"}), 2, false);
Про управление ИК-приёмопередатчиком и настройку параметров читайте в разделе Настройка.
Настройка
Как настраивать
Датчик можно настраивать в SprutHub и в zigbee2mqtt с версии 1.24.0.
Вы можете настроить устройство веб-интерфейсе zigbee2mqtt, а также через запись JSON-команд в mqtt-топики устройства с помощью MQTT Explorer или wb-rules. Про настройку датчика в SprutHub, читайте в его документации.
При настройке вам понадобится понимание некоторых терминов:
- Канал — измеренные значения.
- Параметр — элемент, который позволяет настраивать устройство.
- Атрибут — внутреннее наименование канала или параметра.
- Кластер — группа атрибутов.
- Настройка устройства в разном программном обеспечении
Настройка интервала опроса
Настройка интервалов опроса позволяет регулировать нагрузку на Zigbee-сеть и экономить ресурсы контроллера на обработке полученных от устройства данных. Чем реже устройство присылает данные, тем меньше требуется ресурсов для их обработки.
Интервалы настраиваются для каждого канала отдельно. Значения по умолчанию подойдут для большинства пользователей, но вы можете изменить их:
- minimum_report_interval — Минимальный интервал опроса, который будет выдержан перед отправкой изменённых значений датчиком. Может игнорироваться, если не было соблюдено условие, задаваемое в настройке «Отчётное значение».
- maximum_report_interval — Максимальный интервал опроса, по истечении которого датчик пришлёт данные независимо от того, изменились ли измеренные значения.
- reportable_change — Отчётное значение. Если значение параметра изменилось на заданную величину или больше, а также прошло время, указанное в параметре «Минимальный интервал опроса», устройство пришлёт отчёт. При настройке нужно учитывать, что для температуры и влажности 100 — это 1 °C и 1 % соответственно. Для других параметров значения равны 1 к 1.
Чтобы настроить интервал опроса, отправьте в MQTT-топик zigbee2mqtt/bridge/request/device/configure_reporting
специально сформированный JSON-запрос.
В шаблоне ниже заполните id, cluster и attribute, значениями которые можно взять из таблицы и укажите параметры опроса в полях minimum_report_interval, maximum_report_interval, reportable_change:
{
"id": "0x0000000000000",
"options": {},
"cluster": "yourCluster",
"attribute": "yourAttribute",
"minimum_report_interval": 5,
"maximum_report_interval": 10,
"reportable_change": 10
}
Для каналов occupancy_level и noise, секция options должна выглядеть так: "options": {"manufacturerCode":26214},
. В остальных случаях оставьте её пустой "options": {},
.
Например, настроим с помощью wb-rules период опроса уровня шума (noise) в датчике с адресом 0x842e14fffe8b184e:
message = {
"id": "0x842e14fffe8b184e",
"options": {"manufacturerCode":26214},
"cluster": "sprutNoise",
"attribute": "noise",
"minimum_report_interval": 10,
"maximum_report_interval": 60,
"reportable_change": 5
}
publish('zigbee2mqtt/bridge/request/device/configure_reporting', JSON.stringify(message), 2, false);
Канал | Описание | Кластер | Атрибут | Значения по умолчанию | ||
---|---|---|---|---|---|---|
Минимальный интервал, с | Максимальный интервал, с | Отчётное значение | ||||
temperature | Температура | msTemperatureMeasurement | measuredValue | 10 | 3600 | 100 |
illuminance | Освещённость | msIlluminanceMeasurement | measuredValue | 10 | 3600 | 5 |
humidity | Влажность | msRelativeHumidity | measuredValue | 10 | 3600 | 100 |
occupancy | Флаг наличия движения | msOccupancySensing | occupancy | 0 | 3600 | 0 |
occupancy_level | Уровень движения | msOccupancySensing | sprutOccupancyLevel | 10 | 60 | 5 |
noise | Уровень шума | sprutNoise | noise | 10 | 60 | 5 |
Параметры датчиков
Таймауты детекторов движения и шума
При настройке через MQTT, сформируйте JSON-запрос по образцу и отправьте его в mqtt-топик:
- чтение
zigbee2mqtt/FRIENDLY_NAME/get
ответ будет опубликован в топике устройства и отобразится в веб-интерфейсе контроллера в карточке устройства на вкладке Devices. - запись
zigbee2mqtt/FRIENDLY_NAME/set
FRIENDLY_NAME
— идентификатор устройства.
Таймауты для сброса флагов о зафиксированных движении и шуме:
- noise_timeout — Таймаут обнаружения шума. Время в секундах, которое должно пройти в тишине перед сбросом флага noise_detected. Можно указывать от 0 до 2000 , по умолчанию 60 секунд. JSON запросы:
- чтение —
{"noise_timeout": ""}
- запись —
{"noise_timeout": NEW_VALUE}
- чтение —
- occupancy_timeout — Таймаут обнаружения движения. Время в секундах, которое должно пройти без движения перед сбросом флага occupancy. Можно указывать от 0 до 2000 , по умолчанию 60 секунд. JSON запросы:
- чтение —
{"occupancy_timeout": ""}
- запись —
{"occupancy_timeout": NEW_VALUE}
- чтение —
Например, установим с помощью wb-rules в датчике с именем 0x842e14fffe8b184e параметр noise_timeout в значение 20:
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"noise_timeout": 20}), 2, false);
Прочие параметры
Для настройки параметров, указанных в таблице «Параметры», нужно отправить устройству подготовленный JSON-запрос в топик zigbee2mqtt/FRIENDLY_NAME/set
, где FRIENDLY_NAME
— идентификатор устройства.
Чтобы прочитать параметр заполните в шаблоне ниже cluster и attributes, значениями которые можно взять из таблицы:
{
"read": {
"cluster": "yourCluster",
"options": {"manufacturerCode":26214},
"attributes": [
"yourAttribute"
]
}
}
Чтобы записать новое значение параметра, заполните в шаблоне ниже cluster и payload, значениями которые можно взять из таблицы и укажите новое значение вместо NEW_VALUE:
{
"write": {
"cluster": "yourCluster",
"options": {"manufacturerCode":26214},
"payload": {
"yourAttribute": NEW_VALUE
}
}
}
Например, включим с помощью wb-rules принудительную калибровку датчика CO2 в устройстве с адресом 0x842e14fffe8b184e:
message = {
"write": {
"cluster": "msCO2",
"options": {"manufacturerCode":26214},
"payload": {
"sprutCO2Calibration": 1
}
}
}
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify(message), 2, false);
Параметр | Описание | Кластер | Атрибут | Значения | |
---|---|---|---|---|---|
Возможное | По умолчанию | ||||
noise_detect_level | Минимальный уровень шума в дБА, при котором будет работать детектор. | sprutNoise | noiseDetectLevel | 0 – 150 | 50 |
occupancy_sensitivity | Чувствительность датчика движения. Если датчик срабатывает при малейшем движении, уменьшите чувствительность, в противном случае увеличьте ее. | msOccupancySensing | sprutOccupancySensitivity | 0 – 2000 | 50 |
co2_autocalibration | Автоматическая калибровка датчика CO2 на атмосферный уровень. Только для сенсора MH-Z19B. | msCO2 | sprutCO2AutoCalibration | 0 - отключено или 1 - включено | 1 |
co2_manual_calibration | Принудительная калибровка датчика CO2 на атмосферный уровень. Только для сенсора MH-Z19B. | msCO2 | sprutCO2Calibration | 0 или 1 - калибровать | 0 |
ИК-команды
Для управления ИК приёмопередатчиком, сформируйте JSON-запрос по образцу и отправьте его в mqtt-топик zigbee2mqtt/FRIENDLY_NAME/set
.
О принципах управления ИК-устройствами, читайте в разделе Эмуляция ИК-пультов.
Постоянная память (ROM)
Сигналы, записанные в постоянную память (ROM) сохраняются после отключения питания.
Доступные команды, rom — номера ячеек памяти от 0 до 31:
- Начать обучение:
{ "learn_start": { "rom":0 } }
- Завершить обучение:
{ "learn_stop": { "rom":0 } }
- Воспроизвести сигнал:
{ "play_store": { "rom":0 } }
- Удалить сигналы из всех ячеек ROM:
{ "clear_store": {} }
Например, воспроизведём ИК-сигнал из ячейки с адресом 0, которая находится в датчике с именем 0x842e14fffe8b184e:
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"play_store": {"rom":0}}), 2, false);
Оперативная память (RAM)
Сигналы, записанные в оперативную память (RAM) стираются при отключении питания или при операциях с банками постоянной памяти (ROM).
Доступные команды:
- Начать обучение:
{ "learn_ram_start": {} }
- Завершить обучение:
{ "learn_ram_stop": {} }
- Воспроизвести сигнал:
{ "play_ram": {} }
Например, воспроизведём ИК-сигнал из оперативной памяти в датчике с именем 0x842e14fffe8b184e:
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"play_ram": {}}), 2, false);
Обновление прошивки
Устройство поддерживает обновление прошивок «по воздуху» (OTA). Здесь мы рассмотрим обновление при использовании датчика с zigbee2mqtt. Если вы используете SprutHub, смотрите инструкцию по обновлению в его документации.
Из веб-интерфейса zigbee2mqtt
Обновить прошивку можно через веб-интерфейс zigbee2mqtt:
- Включите веб-интерфейс zigbee2mqtt и перейдите в него.
- Откройте раздел OTA.
- Найдите в списке устройств датчик WB-MSW-ZIGBEE v.3 и нажмите кнопку Check for new updates.
- Если прошивка обновление будет доступно, название кнопки сменится на Update device firmware, нажмите её.
- Начнётся процесс обновления прошивки, который длится около 30-40 минут, не отключайте питание датчика.
Если в процессе прошивки произошёл сбой, например, устройство было обесточено, удалите устройство из Zigbee-сети и подключите его заново.
Через MQTT
Если вы используете zigbee2mqtt, но по каким-то причинам не хотите обновлять прошивку устройства через веб-интерфейс, вы можете это сделать с помощью отправки JSON-сообщений в MQTT с помощью MQTT Explorer. Название топиков и примеры JSON-команд, смотрите в инструкции OTA updates.
Примеры правил
Для работы в составе «умного дома» лучше использовать определенные правила. Их можно посмотреть в статье Примеры правил
Известные неисправности
Аппаратные ошибки/особенности WB-MSW v.3, найденные при эксплуатации устройства.
Ревизии устройства
Номер партии (Batch №) указан на наклейке на боковой поверхности корпуса или на печатной плате.
Ревизия | Партии | Дата выпуска | Отличия от предыдущей ревизии |
---|---|---|---|
2.1 | v2.1A, v2.1B, v2.1C, v2.1D, v2.1E, v2.1E/2, v2.1F - ... | 07.2022 - ... |
|
1.3 | v1.3B, v1.3B/3 | 12.2021 - 05.2022 |
|
1.3 | v1.3A | 08.2021 - 11.2021 |
|
1.2 | v1.2A, v1.2B | 04.2021 - 07.2021 |
|
Изображения и чертежи устройства
Corel Draw 2018 (шрифт — Ubuntu): Файл:WB-Library.cdr.zip
Visio:
- Устройства Wiren Board: Файл:WB-Visio-Lib.cdr.zip.
- Щиты, автоматы, контакторы и прочее от стороннего разработчика.
Autocad 2013 DXF: Файл:WB-MSW-v.3.dxf.zip
Autocad PDF: Файл:WB-MSW-v.3.pdf