Zigbee: различия между версиями

Нет описания правки
Строка 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>
547

правок