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

Материал из Wiren Board
(не показано 80 промежуточных версий 5 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE:Универсальный настенный датчик WB-MSW-ZIGBEE v.3}}
{{DISPLAYTITLE:Универсальный настенный датчик WB-MSW v.3 Zigbee}}
<!--{{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-ZIGBEE v.3, вид спереди]]
[[Файл:WB-MSW3-front.JPG |300px|thumb|right| Универсальный датчик WB-MSW 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, поэтому его можно использовать с:
* контроллером Wiren Board, для этого нужно [[Zigbee|установить zigbee2mqtt]] или SprutHub;
* шлюзом SLS Smart Home с версии 2022.01.13d1, подробнее читайте на [https://slsys.io/action/supported_devices.html?device=160 сайте устройства];
* любым другим устройством, на который можно установить zigbee2mqtt.
{{Wbincludes:WB-MSW v.3 Functions}}
{{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. Это не влияет на работу датчика в целом.


== Покраска корпуса ==
== Покраска корпуса ==
Строка 83: Строка 76:
|-
|-
{{Wbincludes:Operating conditions}}
{{Wbincludes:Operating conditions}}
{{Wbincludes:Operating conditions CO2}}
|-
|-
! colspan="2" |Габариты
! colspan="2" |Габариты
|-
|-
| Габариты
| Габариты
| 83 x 83 x 21 мм
| 83 x 83 x 20 мм
{{Wbincludes:Weight}} 90 г
{{Wbincludes:Weight}} 90 г
|}
|}
Строка 136: Строка 128:


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


Строка 143: Строка 133:
{{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, калибруйте датчик при комнатной температуре.
Суть принудительной калибровки заключается в том, что мы помещаем датчик в среду, где уровень CO2 равен атмосферному (400 ppm) и устанавливаем это значение как начало отсчёта.  


Поместите работающий датчик в хорошо проветренное помещение и подождите 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 В постоянного тока.


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


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


== Настройка ==
== Настройка ==
Строка 228: Строка 164:
Датчик можно настраивать в SprutHub и в zigbee2mqtt с версии 1.24.0.
Датчик можно настраивать в SprutHub и в zigbee2mqtt с версии 1.24.0.


Вы можете настроить устройство [[Zigbee#Веб-интерфейс (Frontend)|веб-интерфейсе]] zigbee2mqtt, а также через запись JSON-команд в mqtt-топики устройства с помощью [[MQTT Explorer]] или [[wb-rules]]. Про настройку датчика в SprutHub, читайте в его документации.
При использовании zigbee2mqtt нужно записывать JSON-команды в mqtt-топики устройства с помощью [[MQTT Explorer]] или [[wb-rules]] и в [[Zigbee#Веб-интерфейс (Frontend)|веб-интерфейсе]] zigbee2mqtt. Про настройку датчика в SprutHub, читайте в его документации.  


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


<gallery mode="packed" widths ="150px" caption="Настройка устройства в разном программном обеспечении">
<code>FRIENDLY_NAME</code> — идентификатор устройства.
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 — максимальный интервал опроса,
* '''minimum_report_interval''' Минимальный интервал опроса, который будет выдержан перед отправкой изменённых значений датчиком. Может игнорироваться, если не было соблюдено условие, задаваемое в настройке «Отчётное значение».
* reportable_change — отчётное значение.
* '''maximum_report_interval''' Максимальный интервал опроса, по истечении которого датчик пришлёт данные независимо от того, изменились ли измеренные значения.
* '''reportable_change''' Отчётное значение. Если значение параметра изменилось на заданную величину или больше, а также прошло время, указанное в параметре «Минимальный интервал опроса», устройство пришлёт отчёт. При настройке нужно учитывать, что для температуры и влажности 100 — это 1 °C и 1 % соответственно. Для других параметров значения равны 1 к 1.


Чтобы настроить интервал опроса, отправьте в MQTT-топик <code>zigbee2mqtt/bridge/request/device/configure_reporting</code> специально сформированный JSON-запрос.
Чтобы настроить интервал опроса, отправьте в MQTT-топик <code>zigbee2mqtt/bridge/request/device/configure_reporting</code> специально сформированный JSON-запрос.


В шаблоне ниже заполните ''id'', ''cluster'' и ''attribute'', значениями которые можно взять из таблицы и укажите параметры опроса в полях ''minimum_report_interval'', ''maximum_report_interval'', ''reportable_change'':
В шаблоне ниже заполните ''ИмяДатчика'', ''Кластер'' и ''Атрибут'', значения которых можно взять из таблицы, а так же интервалы опроса:
<syntaxhighlight lang="js">
<syntaxhighlight lang="js">
{
{
   "id": "0x0000000000000",
   "id": "ИмяДатчика",
   "options": {},
   "options": {"manufacturerCode":26214},
   "cluster": "yourCluster",
   "cluster": "Кластер",
   "attribute": "yourAttribute",
   "attribute": "Атрибут",
   "minimum_report_interval": 5,
   "minimum_report_interval": 5,
   "maximum_report_interval": 10,
   "maximum_report_interval": 10,
   "reportable_change": 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>
</syntaxhighlight>


{|  border="1" class="wikitable"  
{|  border="1" class="wikitable"  
|+ Интервалы опроса
|+ Настройка интервала опроса
! rowspan="2"| Канал || rowspan="2"|Описание || rowspan="2"|Кластер || rowspan="2"|Атрибут || colspan="3" |Значения по умолчанию
! Канал || Описание || Кластер || Атрибут
|-
|-
! Минимальный интервал, с || Максимальный интервал, с || Отчётное значение
| temperature || Температура ||  msTemperatureMeasurement || measuredValue
|-
|-
| temperature || Температура ||  msTemperatureMeasurement || measuredValue || 10|| 3600|| 100
| illuminance || Освещённость ||  msIlluminanceMeasurement || measuredValue
|-
|-
| illuminance || Освещённость ||  msIlluminanceMeasurement || measuredValue || 10|| 3600|| 5
| humidity || Влажность ||  msRelativeHumidity || measuredValue
|-
|-
| humidity || Влажность ||  msRelativeHumidity || measuredValue || 10|| 3600|| 100
| occupancy || Флаг наличия движения ||  msOccupancySensing || occupancy
|-
|-
| occupancy || Флаг наличия движения ||  msOccupancySensing || occupancy || 0|| 3600|| 0
| occupancy_level || Уровень движения ||  msOccupancySensing || sprutOccupancyLevel
|-
|-
| occupancy_level || Уровень движения ||  msOccupancySensing || sprutOccupancyLevel || 10|| 60|| 5
| noise || Уровень шума ||  sprutNoise || noise
|-
| noise || Уровень шума ||  sprutNoise || noise || 10|| 60|| 5
|-
|-
|}
|}


=== Параметры датчиков ===
=== Датчики движения и шума ===
 
Доступные параметры:
==== Таймауты детекторов движения и шума ====
* '''noise_timeout''' — Таймаут обнаружения шума. Время в секундах, которое должно пройти в тишине перед сбросом флага ''noise_detected''. Можно указывать от 0 до 2000 , по умолчанию 30 секунд. JSON запросы:
При настройке через 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": ""}</code>
** запись — <code>{"noise_timeout": NEW_VALUE}</code>
** запись — <code>{"noise_timeout": NEW_VALUE}</code>
* '''occupancy_timeout''' — Таймаут обнаружения движения. Время в секундах, которое должно пройти без движения перед сбросом флага ''occupancy''. Можно указывать от 0 до 2000 , по умолчанию 60 секунд. JSON запросы:
* '''noise_detect_level''' — Минимальный уровень шума, при котором будет работать детектор (по умолчанию: 50):
** чтение:
**:<syntaxhighlight lang="js">
{
  "read": {
    "cluster": "sprutNoise",
    "options": {"manufacturerCode":26214},
    "attributes": [
      "noiseDetectLevel"
    ]
  }
}
</syntaxhighlight>
** запись:
**:<syntaxhighlight lang="js">
{
  "write": {
    "cluster": "sprutNoise",
    "options": {"manufacturerCode": 26214},
    "payload": {
      "noiseDetectLevel": 50
    }
  }
}
</syntaxhighlight>
* '''occupancy_timeout''' — Таймаут обнаружения движения. Время в секундах, которое должно пройти без движения перед сбросом флага ''occupancy''. Можно указывать от 0 до 2000 , по умолчанию 30 секунд. JSON запросы:
** чтение — <code>{"occupancy_timeout": ""}</code>
** чтение — <code>{"occupancy_timeout": ""}</code>
** запись — <code>{"occupancy_timeout": NEW_VALUE}</code>
** запись — <code>{"occupancy_timeout": NEW_VALUE}</code>
 
* '''occupancy_sensitivity''' — Чувствительность датчика движения. Если датчик срабатывает при малейшем движении, уменьшите чувствительность, в противном случае увеличьте ее (по умолчанию: 50):
Например, установим с помощью wb-rules в датчике с именем ''0x842e14fffe8b184e'' параметр ''noise_timeout'' в значение 20:
** чтение:
<syntaxhighlight lang="js">
**:<syntaxhighlight lang="js">
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"noise_timeout": 20}), 2, false);
{
  "read": {
    "cluster": "msOccupancySensing",
    "options": {"manufacturerCode":26214},
    "attributes": [
      "sprutOccupancySensitivity"
    ]
  }
}
</syntaxhighlight>
** запись:
**:<syntaxhighlight lang="js">
{
  "write": {
    "cluster": "msOccupancySensing",
    "options": {"manufacturerCode": 26214},
    "payload": {
      "sprutOccupancySensitivity": 50
    }
  }
}
</syntaxhighlight>
</syntaxhighlight>


==== Прочие параметры ====
=== Датчик TH ===
Для настройки параметров, указанных в таблице «Параметры», нужно отправить устройству подготовленный JSON-запрос в топик <code>zigbee2mqtt/FRIENDLY_NAME/set</code>, где <code>FRIENDLY_NAME</code> — идентификатор устройства.
Доступные параметры:
 
* '''th_heater''' — Подогрев датчика TH:
Чтобы прочитать параметр заполните в шаблоне ниже ''cluster'' и ''attributes'', значениями которые можно взять из таблицы:
** чтение:
<syntaxhighlight lang="js">
**:<syntaxhighlight lang="js">
{
{
   "read": {
   "read": {
     "cluster": "yourCluster",
     "cluster": "msRelativeHumidity",
     "options": {"manufacturerCode":26214},
     "options": {"manufacturerCode":26214},
     "attributes": [
     "attributes": [
       "yourAttribute"
       "sprutHeater"
     ]
     ]
   }
   }
}
}
</syntaxhighlight>
</syntaxhighlight>
 
** запись:
Чтобы записать новое значение параметра, заполните в шаблоне ниже ''cluster'' и ''payload'', значениями которые можно взять из таблицы и укажите новое значение вместо ''NEW_VALUE'':
**:<syntaxhighlight lang="js">
<syntaxhighlight lang="js">
{
  "write": {
    "cluster": "msRelativeHumidity",
    "options": {"manufacturerCode": 26214},
    "payload": {
      "sprutHeater": 1
    }
  }
}
</syntaxhighlight>
* '''temperature_offset''' — Температурная компенсация:
** запись:
**:<syntaxhighlight lang="js">
{
{
   "write": {
   "write": {
     "cluster": "yourCluster",
     "cluster": "msTemperatureMeasurement",
     "options": {"manufacturerCode":26214},
     "options": {"manufacturerCode": 26214},
     "payload": {
     "payload": {
       "yourAttribute": NEW_VALUE
       "sprutTemperatureOffset": 1
     }
     }
   }
   }
Строка 354: Строка 311:
</syntaxhighlight>
</syntaxhighlight>


Например, включим с помощью wb-rules принудительную калибровку датчика CO2 в устройстве с адресом ''0x842e14fffe8b184e'':
=== Датчик CO2 ===
<syntaxhighlight lang="js">
Доступные параметры:
message = {  
* '''co2_autocalibration''' — Автоматическая калибровка датчика CO2 на атмосферный уровень:
** чтение:
**:<syntaxhighlight lang="js">
{
  "read": {
    "cluster": "msCO2",
    "options": {"manufacturerCode":26214},
    "attributes": [
      "sprutCO2AutoCalibration"
    ]
  }
}
</syntaxhighlight>
** запись:
**:<syntaxhighlight lang="js">
{
   "write": {
   "write": {
    "cluster": "msCO2",
    "options": {"manufacturerCode": 26214},
    "payload": {
      "sprutCO2AutoCalibration": 1
    }
  }
}
</syntaxhighlight>
* '''co2_manual_calibration''' — Принудительная калибровка датчика CO2 на атмосферный уровень:
** чтение:
**:<syntaxhighlight lang="js">
{
  "read": {
     "cluster": "msCO2",
     "cluster": "msCO2",
     "options": {"manufacturerCode":26214},
     "options": {"manufacturerCode":26214},
    "attributes": [
      "sprutCO2Calibration"
    ]
  }
}
</syntaxhighlight>
** запись:
**:<syntaxhighlight lang="js">
{
  "write": {
    "cluster": "msCO2",
    "options": {"manufacturerCode": 26214},
     "payload": {
     "payload": {
       "sprutCO2Calibration": 1
       "sprutCO2Calibration": 1
Строка 365: Строка 362:
   }
   }
}
}
</syntaxhighlight>


publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify(message), 2, false);
Например, установим с помощью wb-rules в датчике с именем ''0x842e14fffe8b184e'' параметр ''noise_timeout'' в значение 20:
<syntaxhighlight lang="js">
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"noise_timeout": 20}), 2, false);
</syntaxhighlight>
</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>.
Для управления ИК приёмопередатчиком, сформируйте JSON-запрос по образцу и отправьте его в mqtt-топик <code>zigbee2mqtt/FRIENDLY_NAME/1/set</code>.


О принципах управления ИК-устройствами, читайте в разделе [[#Эмуляция ИК-пультов| Эмуляция ИК-пультов]].
О том, как управлять ИК-устройствами, читайте в разделе [[#Эмуляция ИК-пультов| Эмуляция ИК-пультов]].


==== Постоянная память (ROM) ====
==== Постоянная память (ROM) ====
Строка 428: Строка 412:
Например, воспроизведём ИК-сигнал из ячейки с адресом ''0'', которая находится в датчике с именем ''0x842e14fffe8b184e'':
Например, воспроизведём ИК-сигнал из ячейки с адресом ''0'', которая находится в датчике с именем ''0x842e14fffe8b184e'':
<syntaxhighlight lang="js">
<syntaxhighlight lang="js">
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"play_store": {"rom":0}}), 2, false);
publish('zigbee2mqtt/0x842e14fffe8b184e/1/set', JSON.stringify({"play_store": {"rom":0}}), 2, false);
</syntaxhighlight>
</syntaxhighlight>


Строка 456: Строка 440:
Например, воспроизведём ИК-сигнал из оперативной памяти в датчике с именем ''0x842e14fffe8b184e'':
Например, воспроизведём ИК-сигнал из оперативной памяти в датчике с именем ''0x842e14fffe8b184e'':
<syntaxhighlight lang="js">
<syntaxhighlight lang="js">
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"play_ram": {}}), 2, false);
publish('zigbee2mqtt/0x842e14fffe8b184e/1/set', JSON.stringify({"play_ram": {}}), 2, false);
</syntaxhighlight>
</syntaxhighlight>


== Обновление прошивки ==
== Представление в контроллере ==
Устройство поддерживает обновление прошивок «по воздуху» (OTA). Здесь мы рассмотрим обновление при использовании датчика с zigbee2mqtt. Если вы используете SprutHub, смотрите инструкцию по обновлению в его документации.
=== Программное обеспечение ===
=== Из веб-интерфейса zigbee2mqtt ===
Датчик можно использовать на контроллере Wiren Board и других устройствах со SprutHub и zigbee2mqtt с версии 1.23.0.  
[[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-сети и подключите его заново.
Подробнее о поддержке Zigbee-устройств на контроллерах Wiren Board, читайте в статье [[Zigbee]].


=== Через MQTT ===
<gallery mode="packed" heights="250px" caption="Представление датчика в разном программном обеспечении">
Если вы используете 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 + zigbee2mqtt.png  | WB-MSW v.3 Zigbee в веб-интерфейсе zigbee2mqtt 1.23.0
Image: WB-MSW v.3 Zigbee + webui.png | WB-MSW v.3 Zigbee в веб-интерфейсе контроллера, требуется zigbee2mqtt 1.23.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_default'' — статус зуммера
* ''state_l1'' — статус красного светодиода
* ''state_l2'' — статус зелёного светодиода.
 
=== Управление ===
Зуммером и светодиодами можно управлять, для этого нужно отправить сформированный по образцу JSON-запрос в mqtt-топик <code>zigbee2mqtt/FRIENDLY_NAME/set</code>:
* зуммер — <code>{"state_default": "ON"}</code> или <code>{"state_default": "OFF"}</code>
* красный светодиод — <code>{"state_l1": "ON"}</code> или <code>{"state_l1": "OFF"}</code>
* зелёный светодиод — <code>{"state_l2": "ON"}</code> или <code>{"state_l2": "OFF"}</code>
 
Отправлять JSON-запросы можно с помощью [[wb-rules]], например, включим зелёный светодиод в датчике с именем ''0x842e14fffe8b184e'':
<syntaxhighlight lang="bash">
publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"state_l2": "ON"}), 2, false);
</syntaxhighlight>
 
Про управление ИК-приёмопередатчиком и настройку параметров читайте в разделе [[#ИК-команды | ИК-команды]].


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


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

Версия 21:48, 2 марта 2022

Купить в интернет-магазине

Универсальный датчик WB-MSW v.3, вид спереди

Назначение

Датчик работает по протоколу Zigbee, поэтому его можно использовать с:

  • контроллером Wiren Board, для этого нужно установить zigbee2mqtt или SprutHub;
  • шлюзом SLS Smart Home с версии 2022.01.13d1, подробнее читайте на сайте устройства;
  • любым другим устройством, на который можно установить zigbee2mqtt.


Комбинированный цифровой датчик температуры, влажности, освещенности, движения, уровня шума, концентрации CO2 и летучих органических соединений. Оснащён ИК приемопередатчиком.

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

Является средством измерения. Номер в Госреестре средств измерений 87443-22.


Модификации

Пока датчик поставляется в полной комплектации.

Покраска корпуса

Разноцветных корпусов нет, но белые корпуса легко покрасить — получается неплохо, см. Покраска корпуса 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 В постоянного тока
Потребляемая мощность
  • 0.5 Вт;
  • (пиковая при измерении CO2) до 1.6 Вт;
  • (пиковая при измерении CO2 и передаче ИК сигнала) до 4 Вт.
Количество запоминаемых ИК-команд
Количество команд

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 лет
Габариты
Габариты 83 x 83 x 20 мм
Масса (с коробкой) 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 не работает как детектор утечки бытовых горючих газов и совсем не реагирует на дым!

Летучие органические вещества (ЛОВ, 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

Для измерения концентрации CO2 в воздухе используется недисперсионный инфракрасный (NDIR) датчик. Принцип действия основан на поглощении углекислым газом инфракрасного света. Оптический способ измерения CO2 намного точнее, чем с помощью более дешевых электрохимических датчиков.

Концентрация CO2 измеряется в ppm — частях на миллион.

Автокалибровка

Измеренное минимальное значение в течение 7 дней принимается за 400 ppm — это значение концентрации CO2 на улице. Концентрация CO2 упадёт до уличной, если в помещении нет людей хотя бы несколько часов в день, или если в помещении работает вытяжная вентиляция, или в помещении иногда открывают окна.

Принудительная калибровка

Принудительная калибровка в Zigbee-версии пока недоступна. В большинстве случаев отключение автокалибровки или принудительная калибровка не требуются — датчик показывает правильные значения без дополнительных манипуляций, но иногда без неё не обойтись:

  1. Нужно срочно откалибровать датчик и некогда ждать, пока сработает автоматическая калибровка.
  2. Датчик находится в помещении, которое плохо проветривается и уровень CO2 никогда не достигает 400 ppm. В этом случае не забудьте отключить автоматическую калибровку.

Суть принудительной калибровки заключается в том, что мы помещаем датчик в среду, где уровень 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₂ в наружном воздухе, см³/м³

Монтаж

Подключение

Подключение питания к датчику WB-MSW v.3 Zigbee

Подключите питание к клеммам V+ и GND датчика, используйте комплектный блок питания, или любой с напряжением 9 В – 28 В постоянного тока.

Перед подключением датчика к контроллеру Wiren Board, настройте контроллер для работы по протоколу Zigbee.

Теперь нужно спарить датчик и Zigbee-координатор (контроллер):

  1. Включите в настройках координатора спаривания устройств (Pairing).
  2. Проведите магнит по задней нижней части корпуса или снимите крышку и нажмите кнопку на Zigbee-модуле. Зелёный индикатор в отверстии должен замигать.
  3. Подождите, пока датчик не появится в списке устройств, известных координатору.
  4. Отключите режим спаривания устройств (Pairing).

Монтаж на стену

Модуль имеет отверстия для крепления к поверхности. Мы подготовили установочный шаблон для корпуса датчика:

  1. Скачайте файл MSW v3 mounting template.pdf на компьютер.
  2. Откройте в Acrobat Reader и при печати выберите опцию «Реальный масштаб».

Для крепления WB-MSW v.3 выбирайте винты/шурупы с головкой диаметром около 7 мм, если требуется, чтобы датчик был съемным, и 9-10 мм — для постоянной фиксации.

Устройство должно эксплуатироваться при рекомендованных условиях окружающей среды.

Рекомендуем располагать датчики на теплых (внутренних) стенах, на высоте 1-1.6 м от уровня пола, с учетом возможных сквозняков и освещенности солнцем. При креплении на потолке в жилом помещении температура будет завышена, а влажность занижена. Концентрация CO2 от высоты не зависит. При креплении на внешних стенах зимой будут заниженные показания температуры на несколько градусов (из-за холодного пограничного слоя воздуха и охлаждения корпуса датчика от стены).

Сразу же после установки датчик CO2 может показывать неверные значения: это может быть связано с неосторожным обращением во время транспортировки и монтажа. Вы можете подождать 7 дней без отключения питания, пока функция автокалибровки не приведёт показания датчика в норму или выполнить принудительную калибровку.

Настройка

Как настраивать

Датчик можно настраивать в SprutHub и в zigbee2mqtt с версии 1.24.0.

При использовании zigbee2mqtt нужно записывать JSON-команды в mqtt-топики устройства с помощью MQTT Explorer или wb-rules и в веб-интерфейсе zigbee2mqtt. Про настройку датчика в SprutHub, читайте в его документации.

При настройке через MQTT, сформируйте JSON-запрос по образцу и отправьте его в mqtt-топик:

  • чтение zigbee2mqtt/FRIENDLY_NAME/get ответ будет опубликован в топике устройства и отобразится в веб-интерфейсе контроллера в карточке устройства на вкладке Devices.
  • запись zigbee2mqtt/FRIENDLY_NAME/set

FRIENDLY_NAME — идентификатор устройства.

Настройка интервала опроса

Вы можете настраивать интервалы опроса каналов устройства и задавать:

  • minimum_report_interval — минимальный интервал опроса,
  • maximum_report_interval — максимальный интервал опроса,
  • reportable_change — отчётное значение.

Чтобы настроить интервал опроса, отправьте в MQTT-топик zigbee2mqtt/bridge/request/device/configure_reporting специально сформированный JSON-запрос.

В шаблоне ниже заполните ИмяДатчика, Кластер и Атрибут, значения которых можно взять из таблицы, а так же интервалы опроса:

{
  "id": "ИмяДатчика",
  "options": {"manufacturerCode":26214},
  "cluster": "Кластер",
  "attribute": "Атрибут",
  "minimum_report_interval": 5,
  "maximum_report_interval": 10,
  "reportable_change": 10
}
Настройка интервала опроса
Канал Описание Кластер Атрибут
temperature Температура msTemperatureMeasurement measuredValue
illuminance Освещённость msIlluminanceMeasurement measuredValue
humidity Влажность msRelativeHumidity measuredValue
occupancy Флаг наличия движения msOccupancySensing occupancy
occupancy_level Уровень движения msOccupancySensing sprutOccupancyLevel
noise Уровень шума sprutNoise noise

Датчики движения и шума

Доступные параметры:

  • noise_timeout — Таймаут обнаружения шума. Время в секундах, которое должно пройти в тишине перед сбросом флага noise_detected. Можно указывать от 0 до 2000 , по умолчанию 30 секунд. JSON запросы:
    • чтение — {"noise_timeout": ""}
    • запись — {"noise_timeout": NEW_VALUE}
  • noise_detect_level — Минимальный уровень шума, при котором будет работать детектор (по умолчанию: 50):
    • чтение:
      {
        "read": {
          "cluster": "sprutNoise",
          "options": {"manufacturerCode":26214},
          "attributes": [
            "noiseDetectLevel"
          ]
        }
      }
      
    • запись:
      {
        "write": {
          "cluster": "sprutNoise",
          "options": {"manufacturerCode": 26214},
          "payload": {
            "noiseDetectLevel": 50
          }
        }
      }
      
  • occupancy_timeout — Таймаут обнаружения движения. Время в секундах, которое должно пройти без движения перед сбросом флага occupancy. Можно указывать от 0 до 2000 , по умолчанию 30 секунд. JSON запросы:
    • чтение — {"occupancy_timeout": ""}
    • запись — {"occupancy_timeout": NEW_VALUE}
  • occupancy_sensitivity — Чувствительность датчика движения. Если датчик срабатывает при малейшем движении, уменьшите чувствительность, в противном случае увеличьте ее (по умолчанию: 50):
    • чтение:
      {
        "read": {
          "cluster": "msOccupancySensing",
          "options": {"manufacturerCode":26214},
          "attributes": [
            "sprutOccupancySensitivity"
          ]
        }
      }
      
    • запись:
      {
        "write": {
          "cluster": "msOccupancySensing",
          "options": {"manufacturerCode": 26214},
          "payload": {
            "sprutOccupancySensitivity": 50
          }
        }
      }
      

Датчик TH

Доступные параметры:

  • th_heater — Подогрев датчика TH:
    • чтение:
      {
        "read": {
          "cluster": "msRelativeHumidity",
          "options": {"manufacturerCode":26214},
          "attributes": [
            "sprutHeater"
          ]
        }
      }
      
    • запись:
      {
        "write": {
          "cluster": "msRelativeHumidity",
          "options": {"manufacturerCode": 26214},
          "payload": {
            "sprutHeater": 1
          }
        }
      }
      
  • temperature_offset — Температурная компенсация:
    • запись:
      {
        "write": {
          "cluster": "msTemperatureMeasurement",
          "options": {"manufacturerCode": 26214},
          "payload": {
            "sprutTemperatureOffset": 1
          }
        }
      }
      

Датчик CO2

Доступные параметры:

  • co2_autocalibration — Автоматическая калибровка датчика CO2 на атмосферный уровень:
    • чтение:
      {
        "read": {
          "cluster": "msCO2",
          "options": {"manufacturerCode":26214},
          "attributes": [
            "sprutCO2AutoCalibration"
          ]
        }
      }
      
    • запись:
      {
        "write": {
          "cluster": "msCO2",
          "options": {"manufacturerCode": 26214},
          "payload": {
            "sprutCO2AutoCalibration": 1
          }
        }
      }
      
  • co2_manual_calibration — Принудительная калибровка датчика CO2 на атмосферный уровень:
    • чтение:
      {
        "read": {
          "cluster": "msCO2",
          "options": {"manufacturerCode":26214},
          "attributes": [
            "sprutCO2Calibration"
          ]
        }
      }
      
    • запись:
      {
        "write": {
          "cluster": "msCO2",
          "options": {"manufacturerCode": 26214},
          "payload": {
            "sprutCO2Calibration": 1
          }
        }
      }
      

Например, установим с помощью wb-rules в датчике с именем 0x842e14fffe8b184e параметр noise_timeout в значение 20:

publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"noise_timeout": 20}), 2, false);

ИК-команды

Для управления ИК приёмопередатчиком, сформируйте JSON-запрос по образцу и отправьте его в mqtt-топик zigbee2mqtt/FRIENDLY_NAME/1/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/1/set', JSON.stringify({"play_store": {"rom":0}}), 2, false);

Оперативная память (RAM)

Сигналы, записанные в оперативную память (RAM) стираются при отключении питания или при операциях с банками постоянной памяти (ROM).

Доступные команды:

  • Начать обучение:
    {
        "learn_ram_start": {}
    }
    
  • Завершить обучение:
    {
        "learn_ram_stop": {}
    }
    
  • Воспроизвести сигнал:
    {
        "play_ram": {}
    }
    

Например, воспроизведём ИК-сигнал из оперативной памяти в датчике с именем 0x842e14fffe8b184e:

publish('zigbee2mqtt/0x842e14fffe8b184e/1/set', JSON.stringify({"play_ram": {}}), 2, false);

Представление в контроллере

Программное обеспечение

Датчик можно использовать на контроллере Wiren Board и других устройствах со SprutHub и zigbee2mqtt с версии 1.23.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_default — статус зуммера
  • state_l1 — статус красного светодиода
  • state_l2 — статус зелёного светодиода.

Управление

Зуммером и светодиодами можно управлять, для этого нужно отправить сформированный по образцу JSON-запрос в mqtt-топик zigbee2mqtt/FRIENDLY_NAME/set:

  • зуммер — {"state_default": "ON"} или {"state_default": "OFF"}
  • красный светодиод — {"state_l1": "ON"} или {"state_l1": "OFF"}
  • зелёный светодиод — {"state_l2": "ON"} или {"state_l2": "OFF"}

Отправлять JSON-запросы можно с помощью wb-rules, например, включим зелёный светодиод в датчике с именем 0x842e14fffe8b184e:

publish('zigbee2mqtt/0x842e14fffe8b184e/set', JSON.stringify({"state_l2": "ON"}), 2, false);

Про управление ИК-приёмопередатчиком и настройку параметров читайте в разделе ИК-команды.

Примеры правил

Для работы в составе «умного дома» лучше использовать определенные правила. Их можно посмотреть в статье Примеры правил

Известные неисправности

Аппаратные ошибки/особенности WB-MSW v.3, найденные при эксплуатации устройства.

Ревизии устройства

Номер партии (Batch №) указан на наклейке на боковой поверхности корпуса или на печатной плате.

Ревизия Партии Дата выпуска Отличия от предыдущей ревизии
1.3 v1.3B 12.2021 - ...
  • наклейки Wiren Board. Партия на базе MSW v4.19A/v4.19A/M.
1.3 v1.3A 08.2021 - 11.2021
  • версия с кнопкой для программирования. Со спец.наклейками.
1.2 v1.2A, v1.2B 04.2021 - 07.2021
  • Первая версия, на чипе MGM210P032JIA2. Версия со спец.наклейками.

Изображения и чертежи устройства

Corel Draw 2018 (шрифт — Ubuntu): Файл:WB-Library.cdr.zip

Visio:

  1. Устройства Wiren Board: Файл:WB-Visio-Lib.cdr.zip.
  2. Щиты, автоматы, контакторы и прочее.

SVG: Файл:WB-MSW-v.3.svg.zip

Autocad 2013 DXF: Файл:WB-MSW-v.3.dxf.zip

Autocad PDF: Файл:WB-MSW-v.3.pdf