WB-MSW v.3 Zigbee Sensor: различия между версиями

 
(не показано 119 промежуточных версий 5 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE:Универсальный настенный датчик WB-MSW v.3 Zigbee}}
{{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
}}


== Назначение ==
== Назначение ==
Датчик работает по протоколу Zigbee, поэтому его можно использовать с:
{{Wbincludes:WB-MSW v.3 Functions}}
* контроллером Wiren Board, для этого нужно [[Zigbee|установить zigbee2mqtt]] или SprutHub;
 
Устройство работает по протоколу Zigbee, поэтому его можно использовать:
* с контроллером Wiren Board, для этого нужно [[Zigbee|установить zigbee2mqtt]] или SprutHub;
* шлюзом SLS Smart Home с версии 2022.01.13d1, подробнее читайте на [https://slsys.io/action/supported_devices.html?device=160 сайте устройства];
* шлюзом SLS Smart Home с версии 2022.01.13d1, подробнее читайте на [https://slsys.io/action/supported_devices.html?device=160 сайте устройства];
* любым другим устройством, на который можно установить zigbee2mqtt.
* и любым другим устройством, на который можно установить zigbee2mqtt.


{{Wbincludes:WB-MSW v.3 Functions}}
== Модификации ==
В датчик WB-MSW-ZIGBEE по умолчанию не включены сенсоры CO2 и VOC, их нужно выбрать при покупке отдельно.


== Модификации ==
Если какой-то из сенсоров не установлен, то вместо показаний этого сенсора будут передаваться нули или N/A. Это не влияет на работу датчика в целом.
Пока датчик поставляется в полной комплектации.


== Покраска корпуса ==
== Покраска корпуса ==
Строка 62: Строка 69:
|-
|-
|Пользовательские индикаторы  
|Пользовательские индикаторы  
|Зеленый и красный светодиод с настраиваемыми частотой и скважностью мигания
|Зеленый и красный светодиод
|-
|-
|Звуковая индикация
|Звуковая индикация
|«Пищалка» — beeper
|«Пищалка» — зуммер, beeper
|-
|-
! colspan="2" |Управление
! colspan="2" |Управление
|-
|-
|Zigbee
|Zigbee
|поддержка в SprutHub и zigbee2mqtt с версии 1.22.2 ([https://www.zigbee2mqtt.io/devices/WB-MSW-ZIGBEE_v.3.html список доступных функций])
|полная поддержка в SprutHub и zigbee2mqtt с версии 1.24.0 ([https://www.zigbee2mqtt.io/devices/WB-MSW-ZIGBEE_v.3.html страница устройства на сайте проекта])
|-
|-
|Готовность к работе после подачи питания
|Готовность к работе после подачи питания
Строка 76: Строка 83:
|-
|-
{{Wbincludes:Operating conditions}}
{{Wbincludes:Operating conditions}}
{{Wbincludes:Operating conditions CO2}}
|-
|-
! colspan="2" |Габариты
! colspan="2" |Габариты
|-
|-
| Габариты
| Габариты
| 83 x 83 x 20 мм
| 83 x 83 x 21 мм
{{Wbincludes:Weight}} 90 г
{{Wbincludes:Weight}} 90 г
|}
|}
Строка 92: Строка 100:
=== Датчик движения ===   
=== Датчик движения ===   
PIR-датчик движения в MSW обнаруживает перемещение объектов на расстоянии до 8 м с углом обзора около 100-120 градусов.
PIR-датчик движения в MSW обнаруживает перемещение объектов на расстоянии до 8 м с углом обзора около 100-120 градусов.
Доступны два параметра:
* '''occupancy''' — флаг наличия движения, рассчитывается по внутреннему алгоритму. Можно изменять время его сброса в параметре [[#Параметры | occupancy_timeout]];
* '''occupancy_level''' — уровень движения.


=== Светодиодные индикаторы  и зуммер ===  
=== Светодиодные индикаторы  и зуммер ===  
{{Wbincludes:WB-MSW v.3 LED indicators}}
{{Wbincludes:WB-MSW v.3 LED indicators}}


Управлять светодиодными индикаторами и зуммером можно в веб-интерфейсе.
Про управление светодиодными индикаторами и зуммером, читайте в разделе [[#Управление |Управление]].


=== Эмуляция ИК-пультов ===  
=== Эмуляция ИК-пультов ===  
Строка 107: Строка 111:


{{Wbincludes:WB-MSW v.3 IR universal text}}
{{Wbincludes:WB-MSW v.3 IR universal text}}
Вы можете записать сигнал в одну из двух видов памяти:
* Постоянную — записанные команды хранятся в ROM-буферах, которые записываются в ПЗУ модуля и сохраняются при отключении питания.
* Оперативную — это RAM-буфер модуля, данные теряются при отключении питания.
Помните, что при использовании постоянной памяти (ROM) вы расходуете ресурс ПЗУ, каждую ячейку можно перезаписать не более 1000 раз.


О том, как записывать ИК-команды и воспроизводить их, читайте в разделе [[#Настройка | Настройка]].
О том, как записывать ИК-команды и воспроизводить их, читайте в разделе [[#Настройка | Настройка]].
Строка 126: Строка 136:


=== Датчик качества воздуха (VOC) ===  
=== Датчик качества воздуха (VOC) ===  
{{Wbincludes:VOC Sensiron SGPC3}}
==== Зачем измерять VOC ====
{{Wbincludes:VOC}}
{{Wbincludes:VOC}}


Строка 131: Строка 143:
{{Wbincludes:WB-MSW v.3 CO2}}
{{Wbincludes:WB-MSW v.3 CO2}}


<h4>Принудительная калибровка</h4>
====Принудительная калибровка====
{{note|note| Принудительная калибровка в Zigbee-версии пока недоступна.}}
В большинстве случаев отключение автокалибровки или принудительная калибровка не требуются — датчик показывает правильные значения без дополнительных манипуляций, но иногда без неё не обойтись:
В большинстве случаев отключение автокалибровки или принудительная калибровка не требуются — датчик показывает правильные значения без дополнительных манипуляций, но иногда без неё не обойтись:
# Нужно срочно откалибровать датчик и некогда ждать, пока сработает автоматическая калибровка.
# Нужно срочно откалибровать датчик и некогда ждать, пока сработает автоматическая калибровка.
# Датчик находится в помещении, которое плохо проветривается и уровень CO2 никогда не достигает 400 ppm. В этом случае не забудьте отключить автоматическую калибровку.
# Датчик находится в помещении, которое плохо проветривается и уровень CO2 никогда не достигает 400 ppm. В этом случае не забудьте отключить автоматическую калибровку.


Суть принудительной калибровки заключается в том, что мы помещаем датчик в среду, где уровень CO2 равен атмосферному (400 ppm) и устанавливаем это значение как начало отсчёта.  
Суть принудительной калибровки заключается в том, что мы помещаем датчик в среду, где уровень CO2 равен атмосферному (400 ppm) и устанавливаем это значение как начало отсчёта. Чтобы уменьшить ошибки при измерении CO2, калибруйте датчик при комнатной температуре.
 
Поместите работающий датчик в хорошо проветренное помещение и подождите 20 минут. Затем выполните следующие шаги:
# Если нужно отключить автоматическую калибровку — установите параметр '''co2_autocalibration''' в значение '''OFF'''.
# Включите параметр '''co2_manual_calibration''', а через секунду выключите.
# В течение пяти минут измеренное значение CO2 станет около 400 ppm. Калибровка завершена.


Способы изменения параметров смотрите в разделе [[#Настройка |Настройка]].
==== Зачем нужно измерять CO2?====
==== Зачем нужно измерять CO2?====
{{Wbincludes:WB-MSW v.3 CO2 why do I need to measure}}
{{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]]
Подключите питание к клеммам V+ и GND датчика, используйте комплектный блок питания, или любой с напряжением 9 В – 28 В постоянного тока.


Перед подключением датчика к контроллеру Wiren Board, [[Zigbee | настройте контроллер]] для работы по протоколу Zigbee.
{{Wbincludes:Wireless Mount}}


Теперь нужно спарить датчик и Zigbee-координатор (контроллер):
В ревизии 1.2 нет кнопки на радиомодуле, вместо этого надо провести магнитом по боковой части корпуса датчика со стороны светодиода Status.
# Включите в настройках координатора спаривания устройств (Pairing).
 
# Проведите магнит по задней нижней части корпуса или снимите крышку и нажмите кнопку на Zigbee-модуле. Зелёный индикатор в отверстии должен замигать.
{{Wbincludes:WB-MSW Zigbee Pairing}}
# Подождите, пока датчик не появится в списке устройств, известных координатору.
# Отключите режим спаривания устройств (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.23.0.
=== Как настраивать ===
Датчик можно настраивать в 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>


При использовании zigbee2mqtt нужно записывать JSON-команды в mqtt-топики устройства, сделать это можно с помощью [[MQTT Explorer]] или [[wb-rules]], о том как настраивать датчик в SprutHub, читайте в его документации.
{|  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 на контроллерах Wiren Board, читайте в статье [[MQTT]].
=== Параметры датчиков ===


=== Параметры ===
==== Таймауты детекторов движения и шума ====
Чтобы читать значения параметров и записывать новые, сформируйте JSON-запрос по образцу и отправьте его в mqtt-топики:
При настройке через MQTT, сформируйте JSON-запрос по образцу и отправьте его в mqtt-топик:
* чтение <code>zigbee2mqtt/FRIENDLY_NAME/get</code> ответ будет опубликован в топике устройства и отобразится в веб-интерфейсе контроллера в карточке устройства на вкладке Devices.
* чтение <code>zigbee2mqtt/FRIENDLY_NAME/get</code> ответ будет опубликован в топике устройства и отобразится в веб-интерфейсе контроллера в карточке устройства на вкладке Devices.
* запись <code>zigbee2mqtt/FRIENDLY_NAME/set</code>
* запись <code>zigbee2mqtt/FRIENDLY_NAME/set</code>


Доступные параметры:
<code>FRIENDLY_NAME</code> — идентификатор устройства.
* '''noise_timeout''' — Таймаут обнаружения шума. Время тишины в секундах, которое нужно выдержать прежде, чем параметр ''Noise_detected'' станет ''false''. Можно указывать от 0 до 2000 , по умолчанию 30 секунд. JSON запросы:
 
Таймауты для сброса флагов о зафиксированных движении и шуме:
* '''noise_timeout''' — Таймаут обнаружения шума. Время в секундах, которое должно пройти в тишине перед сбросом флага ''noise_detected''. Можно указывать от 0 до 2000 , по умолчанию 60 секунд. JSON запросы:
** чтение — <code>{"noise_timeout": ""}</code>
** чтение — <code>{"noise_timeout": ""}</code>
** запись — <code>{"noise_timeout": NEW_VALUE}</code>
** запись — <code>{"noise_timeout": NEW_VALUE}</code>
* '''occupancy_timeout''' — Таймаут обнаружения движения. Время без движения в секундах, которое нужно выдержать прежде, чем параметр ''Occupancy'' станет ''false''. Можно указывать от 0 до 2000 , по умолчанию 30 секунд. JSON запросы:
* '''occupancy_timeout''' — Таймаут обнаружения движения. Время в секундах, которое должно пройти без движения перед сбросом флага ''occupancy''. Можно указывать от 0 до 2000 , по умолчанию 60 секунд. JSON запросы:
** чтение — <code>{"occupancy_timeout": ""}</code>
** чтение — <code>{"occupancy_timeout": ""}</code>
** запись — <code>{"occupancy_timeout": NEW_VALUE}</code>
** запись — <code>{"occupancy_timeout": NEW_VALUE}</code>
Строка 182: Строка 324:
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"noise_timeout": 20}), 2, false);
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"noise_timeout": 20}), 2, false);
</syntaxhighlight>
</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/1/set</code>.
Для управления ИК приёмопередатчиком, сформируйте JSON-запрос по образцу и отправьте его в mqtt-топик <code>zigbee2mqtt/FRIENDLY_NAME/set</code>.
 
О принципах управления ИК-устройствами, читайте в разделе [[#Эмуляция ИК-пультов| Эмуляция ИК-пультов]].
 
==== Постоянная память (ROM) ====
Сигналы, записанные в постоянную память (ROM) сохраняются после отключения питания.


Доступные команды, ''rom'' — номера ячеек памяти от 0 до 31:
Доступные команды, ''rom'' — номера ячеек памяти от 0 до 31:
Строка 210: Строка 417:
         "rom":0
         "rom":0
     }
     }
}
</syntaxhighlight>
* Удалить сигналы из всех ячеек ROM:
*:<syntaxhighlight lang="js">
{
    "clear_store": {}
}
}
</syntaxhighlight>
</syntaxhighlight>
Строка 215: Строка 428:
Например, воспроизведём ИК-сигнал из ячейки с адресом ''0'', которая находится в датчике с именем ''0x842e14fffe8b184e'':
Например, воспроизведём ИК-сигнал из ячейки с адресом ''0'', которая находится в датчике с именем ''0x842e14fffe8b184e'':
<syntaxhighlight lang="js">
<syntaxhighlight lang="js">
publish('zigbee2mqtt/0x842e14fffe8b184e/1/set', JSON.stringify({"play_store": {"rom":0}}), 2, false);
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">
{
    "learn_ram_stop": {}
}
</syntaxhighlight>
* Воспроизвести сигнал:
*:<syntaxhighlight lang="js">
{
    "play_ram": {}
}
</syntaxhighlight>
 
Например, воспроизведём ИК-сигнал из оперативной памяти в датчике с именем ''0x842e14fffe8b184e'':
<syntaxhighlight lang="js">
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"play_ram": {}}), 2, false);
</syntaxhighlight>
</syntaxhighlight>


== Представление в контроллере ==
== Обновление прошивки ==
Чтобы считывать показания, можно использовать на выбор:
Устройство поддерживает обновление прошивок «по воздуху» (OTA). Здесь мы рассмотрим обновление при использовании датчика с zigbee2mqtt. Если вы используете SprutHub, смотрите инструкцию по обновлению в его документации.
* zigbee2mqtt с версии 1.22.2, [https://www.zigbee2mqtt.io/devices/WB-MSW-ZIGBEE_v.3.html описание датчика на странице проекта].
=== Из веб-интерфейса zigbee2mqtt ===
* SprutHub.
[[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-сети и подключите его заново.


<gallery mode="packed" heights="250px">
=== Через MQTT ===
Image: WB-MSW v.3 Zigbee + zigbee2mqtt.png  | WB-MSW v.3 Zigbee в веб-интерфейсе zigbee2mqtt 1.22.2
Если вы используете zigbee2mqtt, но по каким-то причинам не хотите обновлять прошивку устройства через веб-интерфейс, вы можете это сделать с помощью отправки JSON-сообщений в MQTT с помощью [[MQTT Explorer]]. Название топиков и примеры JSON-команд, смотрите в инструкции [https://www.zigbee2mqtt.io/guide/usage/ota_updates.html#automatic-checking-for-available-updates OTA updates].
Image: WB-MSW v.3 Zigbee + webui.png | WB-MSW v.3 Zigbee в веб-интерфейсе контроллера, требуется zigbee2mqtt 1.22.2
Image: WB-MSW v.3 Zigbee + Spruthub.png | WB-MSW v.3 Zigbee в веб-интерфейсе SprutHub
</gallery>


==Примеры правил==
==Примеры правил==
Строка 237: Строка 483:
== Ревизии устройства ==
== Ревизии устройства ==
{{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
|1.3
|v1.3B
|v1.3B, v1.3B/3
|12.2021 - ...
|12.2021 - 05.2022
|
|
*наклейки Wiren Board. Партия на базе MSW v4.19A/v4.19A/M.
*наклейки Wiren Board. Партии на базе MSW v4.19A/v4.19A/M, v4.20F.
|-
|-
|1.3
|1.3
Строка 263: Строка 516:
{{Wbincludes:WB-MSW v.3 Images}}
{{Wbincludes:WB-MSW v.3 Images}}


<gallery mode="traditional" widths ="260px" heights="200px">
<gallery mode="packed" heights="250px">
Image: WB-MSW v.3 Zigbee side.jpg | Универсальный датчик WB-MSW v.3, вид сзади.
Image: WB-MSW v.3 Zigbee side.png | Универсальный датчикWB-MSW-ZIGBEE v.3, <br>вид сзади
Image: WB-MSW3 Zigbee PCB.png  | Плата WB-MSW
Image: WB-MSW v.3 Zigbee PCB.png  | Плата WB-MSW-ZIGBEE v.3
</gallery>
</gallery>