|
|
Строка 5: |
Строка 5: |
| [[Файл:WBE2R-R-ZIGBEE top.jpg|300px|thumb|right| Лицевая сторона модуля WBE2R-R-ZIGBEE]] | | [[Файл:WBE2R-R-ZIGBEE top.jpg|300px|thumb|right| Лицевая сторона модуля WBE2R-R-ZIGBEE]] |
| [[Файл:WBE2R-R-ZIGBEE bot.jpg|300px|thumb|right| Обратная сторона модуля WBE2R-R-ZIGBEE]] | | [[Файл:WBE2R-R-ZIGBEE bot.jpg|300px|thumb|right| Обратная сторона модуля WBE2R-R-ZIGBEE]] |
| [[Файл:Flash-programmer.png|thumb|right|300px|FLASH-PROGRAMMER]]
| |
| [[Файл:Cc2531-usb.png|300px|thumb|right| USB стик СС2531]] | | [[Файл:Cc2531-usb.png|300px|thumb|right| USB стик СС2531]] |
|
| |
|
Строка 36: |
Строка 35: |
|
| |
|
| <!--T:9--> | | <!--T:9--> |
| Для корректной работы модуля рекомендуется прошивка [https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator Z-Stack].
| | С завода модуль [[WBE2R-R-ZIGBEE]] уже прошит оптимизированной для WB и SprutHub прошивкой. Однако если это необходимо, его можно перепрошить. |
|
| |
|
| Для прошивки [[WBE2R-R-ZIGBEE]] или USB стика потребуется CC Debugger и загрузочный кабель. (Можно приобрести на [https://ru.aliexpress.com/wholesale?SearchText=CC2531+загрузочный+кабель Aliexpress.com]) Перед прошивкой установите [http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=swrc212&fileType=zip драйвер.] | | Для прошивки [[WBE2R-R-ZIGBEE]] или USB стика потребуется CC Debugger и загрузочный кабель. (Можно приобрести на [https://ru.aliexpress.com/wholesale?SearchText=CC2531+загрузочный+кабель Aliexpress.com]) Перед прошивкой установите [http://www.ti.com/general/docs/lit/getliterature.tsp?baseLiteratureNumber=swrc212&fileType=zip драйвер.] |
Строка 48: |
Строка 47: |
| <!--T:12--> | | <!--T:12--> |
| Вы найдете всю необходимую информацию на [https://www.zigbee2mqtt.io/ сайте zigbee2mqtt]. | | Вы найдете всю необходимую информацию на [https://www.zigbee2mqtt.io/ сайте zigbee2mqtt]. |
|
| |
| == zigbee2mqtt версия для WB == <!--T:13-->
| |
| <!--T:14-->
| |
| Мы немного изменили код zigbee2mqtt для поддержки Wiren Board MQTT Conventions. Измененную версию вы можете найти в нашем [https://github.com/contactless/zigbee2mqtt репозитории на GitHub]
| |
|
| |
|
| == Установка == <!--T:15--> | | == Установка == <!--T:15--> |
Строка 58: |
Строка 53: |
| Настраиваем репозиторий Node JS | | Настраиваем репозиторий Node JS |
| <pre> | | <pre> |
| curl -sL https://deb.nodesource.com/setup_10.x | bash - | | curl -sL https://deb.nodesource.com/setup_12.x | bash - |
| </pre> | | </pre> |
|
| |
|
Строка 66: |
Строка 61: |
| </pre> | | </pre> |
|
| |
|
| ''Копируем версию c поддержкой Wiren Board MQTT Conventions'' | | ''Копируем файлы из репозитория zigbee2mqtt'' |
| <pre> | | <pre> |
| git clone https://github.com/contactless/zigbee2mqtt /mnt/data/root/zigbee2mqtt | | git clone https://github.com/Koenkk/zigbee2mqtt.git /mnt/data/root/zigbee2mqtt |
| </pre> | | </pre> |
|
| |
|
Строка 79: |
Строка 74: |
| <pre> | | <pre> |
| cd /mnt/data/root/zigbee2mqtt | | cd /mnt/data/root/zigbee2mqtt |
| npm install | | npm ci |
| </pre> | | </pre> |
|
| |
|
| В процессе установки будет показано несколько предупреждений. Их можно игнорировать. | | В процессе установки будет показано несколько предупреждений. Их можно игнорировать. |
|
| |
|
| '''Что бы установить оригинальную версию zigbee2mqtt воспользуйтесь [https://www.zigbee2mqtt.io/getting_started/running_zigbee2mqtt.html официальной инструкцией zigbee2mqtt.io]''' | | '''Оригинальная инструкция по установке zigbee2mqtt на [https://www.zigbee2mqtt.io/getting_started/running_zigbee2mqtt.html официальном сайте zigbee2mqtt.io]''' |
|
| |
|
| <!--T:16--> | | <!--T:16--> |
Строка 123: |
Строка 118: |
|
| |
|
| <pre> | | <pre> |
| # Настройка для интеграции с homeassistant
| |
| homeassistant: false | | homeassistant: false |
|
| |
| # Разрешение на добавление новых устройств (Измените этот параметр на falsе после добавления всех необходимых устройств)
| |
| permit_join: true | | permit_join: true |
|
| |
| # Настройки MQTT сервера
| |
| mqtt: | | mqtt: |
| | base_topic: zigbee2mqtt |
| server: 'mqtt://localhost' | | server: 'mqtt://localhost' |
|
| |
| # Настройка порта
| |
| serial: | | serial: |
| port: /dev/ttyMOD3 | | port: /dev/ttyMOD3 |
| advanced: | | advanced: |
| # Если вы используете CC2530 или модуль WBE2R-R-ZIGBEE. (удалите этот параметр, если используете USB стик CC2531)
| |
| rtscts: false | | rtscts: false |
|
| |
| # штамп времени
| |
| last_seen: epoch | | last_seen: epoch |
|
| |
| </pre> | | </pre> |
|
| |
|
Строка 174: |
Строка 159: |
|
| |
|
| Более подробная информация на [http://www.zigbee2mqtt.io/getting_started/pairing_devices.html сайте zigbee2mqtt]. | | Более подробная информация на [http://www.zigbee2mqtt.io/getting_started/pairing_devices.html сайте zigbee2mqtt]. |
|
| |
| == MQTT ==
| |
| Описание структуры топиков и сообщений вы можете найти на [http://www.zigbee2mqtt.io/information/mqtt_topics_and_message_structure.html сайте zigbee2mqtt].
| |
|
| |
| В версии адаптированной под Wiren Board MQTT Conventions структура топиков иная:
| |
|
| |
| {| class="wikitable"
| |
| ! Оригинальный топик
| |
| ! WB MQTT
| |
| |-
| |
| | zigbee2mqtt/bridge/state
| |
| | /devices/zigbee/controls/state
| |
| |-
| |
| | zigbee2mqtt/bridge/config
| |
| | /devices/zigbee/controls/config
| |
| |-
| |
| | zigbee2mqtt/bridge/log
| |
| | /devices/zigbee/controls/log
| |
| |-
| |
| | zigbee2mqtt/bridge/config/devices/get
| |
| | /devices/zigbee/controls/config/devices/get
| |
| |-
| |
| | zigbee2mqtt/bridge/config/permit_join
| |
| | /devices/zigbee/controls/config/permit_join
| |
| |-
| |
| | zigbee2mqtt/bridge/config/last_seen
| |
| | /devices/zigbee/controls/config/last_seen
| |
| |-
| |
| | zigbee2mqtt/bridge/config/elapsed
| |
| | /devices/zigbee/controls/config/elapsed
| |
| |-
| |
| | zigbee2mqtt/bridge/config/reset
| |
| | /devices/zigbee/controls/config/reset
| |
| |-
| |
| | zigbee2mqtt/bridge/config/log_level
| |
| | /devices/zigbee/controls/config/log_level
| |
| |-
| |
| | zigbee2mqtt/bridge/config/device_options
| |
| | /devices/zigbee/controls/config/device_options
| |
| |-
| |
| | zigbee2mqtt/bridge/config/remove
| |
| | /devices/zigbee/controls/config/remove
| |
| |-
| |
| | zigbee2mqtt/bridge/config/ban
| |
| | /devices/zigbee/controls/config/ban
| |
| |-
| |
| | zigbee2mqtt/bridge/config/rename
| |
| | /devices/zigbee/controls/config/rename
| |
| |-
| |
| | zigbee2mqtt/bridge/config/add_group
| |
| | /devices/zigbee/controls/config/add_group
| |
| |-
| |
| | zigbee2mqtt/bridge/config/remove_group
| |
| | /devices/zigbee/controls/config/remove_group
| |
| |-
| |
| | zigbee2mqtt/bridge/networkmap
| |
| | /devices/zigbee/controls/bridge/networkmap
| |
| |-
| |
| | zigbee2mqtt/bridge/group/[friendly_name]/add
| |
| | /devices/zigbee/controls/bridge/group/[friendly_name]/add
| |
| |-
| |
| | zigbee2mqtt/bridge/group/[friendly_name]/remove
| |
| | /devices/zigbee/controls/bridge/group/[friendly_name]/remove
| |
| |-
| |
| | zigbee2mqtt/bridge/group/[friendly_name]/remove_all
| |
| | /devices/zigbee/controls/bridge/group/[friendly_name]/remove_all
| |
| |-
| |
| | zigbee2mqtt/bridge/bind/[friendly_name]
| |
| | /devices/zigbee/controls/bridge/bind/[friendly_name]
| |
| |-
| |
| | zigbee2mqtt/bridge/unbind/[friendly_name]
| |
| | /devices/zigbee/controls/bridge/unbind/[friendly_name]
| |
| |-
| |
| | zigbee2mqtt/bridge/device/[friendly_name]/get_group_membership
| |
| | /devices/zigbee/controls/bridge/device/[friendly_name]/get_group_membership
| |
| |-
| |
| | zigbee2mqtt/[DEVICE_ID]/set
| |
| | /devices/[DEVICE_ID]/set
| |
| |-
| |
| | zigbee2mqtt/[DEVICE_ID]/get
| |
| | /devices/[DEVICE_ID]/get
| |
| |-
| |
| | zigbee2mqtt/[DEVICE_ID]
| |
| | /devices/[DEVICE_ID]/controls/[property]
| |
| |}
| |
|
| |
|
| |
| == Пример правил ==
| |
|
| |
| Для управления Zigbee устройствами необходимо отправить json с командой в /devices/[DEVICE_ID]/set
| |
|
| |
| Пример:
| |
| <syntaxhighlight lang="js">
| |
| defineRule("control_zigbee", {
| |
| whenChanged: "0x00158d0002333f93/click", //следим за кнопкой
| |
| then: function(newValue, devName, cellName) {
| |
| if (newValue == "single") { //если было одинарное нажатие на кнопку
| |
| publish("/devices/0x00158d0002333f93/controls/click", "processed", 2, true); // Что бы отличать старый клик от нового - записываем любое значение в топик.
| |
| //вместо этого можно просто следить за штампом времени "last_seen"
| |
| publish("/devices/0x00124b0009fe360d/set", JSON.stringify({
| |
| state: "TOGGLE"
| |
| }), 2, true); // отправляем JSON на zigbee розетку. TOGGLE - переключить состояние.
| |
| }
| |
| }
| |
| });
| |
| </syntaxhighlight>
| |