Zigbee SLS gata

Подключаем Zigbee датчики в систему домашней автоматизации.

В прошивку IoTmanager теперь можно передавать данные от беспроводных Zigbee датчиков.

17.11.2021 

Теперь мы можем в мобильном приложении IoTmanager получать данные с беспроводных датчиков Zigbee!
И использовать их в сценариях автоматизации и строить графики.

 

ESPRESSIF анонсировал скорый выпуск ESP32 со встроенным Zigbee радио-модулем. И уже получил сертификат на использование в США.

https://www.espressif.com/en/news/ESP32_H2    https://youtu.be/bS9Ch7k_GK0

Но в продаже таких пока нет.
 
 

Как собрать Zigbee gate (координатор) самому менее чем за тысячу рублей:
Соберем самый простой Zigbee gate (координатор) из ESP32 и радио-модуля E72-2G4M20S1E (CC2652P)
ESP32 увас уже конечно есть. 😊
Zigbee радио модуль 2G4M20S1E (CC2652P) на Ali стоит меньше 500 рублей.



 


Если вы купили модуль на Ali. То вам понадобится еще самый простой USB to UART для прошивки. Ценой примерно 50 р



 
Я купил радио модуль  в телеграмм канале за полторы тысячи уже распаянный на плате с колодкой для подключения.  И уже прошитый координаторной прошивкой.
Выглядит так

 


 
Общая схема подключения ESP32 и CC2652P



 
Как это подключено у меня



 
Для тестов соединил дюпонами.



 



После прошивки перезагрузите устройство и в WIFI окружении появится открытая сеть без пароля в формате zgwABCD
Подключитесь к сети и перейдите по адресу http://192.168.1.1
и через меню Settings -> WiFi заполните поля Подключение к WiFi роутеру
(SSID и пароль).
 Нажмите Перезагрузить устройство и оно подключится к вашему роутеру


 
Передача данных из Zigbee координатора в прошивку IoTmanager
На Zigbee координаторе SLS gate (“settings” -> “link” -> “MQTT”) необходимо указать те же настройки MQTT, что и на ESP с прошивкой IoTmanager (“Главная” -> ”MQTT”)


 
 



Zigbee координаторе SLS gate добавить скрипт который будет отправлять все данные от беспроводных Zigbee датчиков в MQTT. “Actions” -> “Files”
Создать файл «iotm.lua» .  "prefics" необходимо поменять префикс вашей ESP IoTManager
 
prefics ="/demo/11558048-1458187/"
local Value;
if (tonumber(Event.State.Value) and tonumber(Event.State.Value) < 103 and Event.State.Name == "pressure") then
Value = Event.State.Value * 760/101.325;
Value = math.floor(Value * 10 + 0.5) / 10;
else
if (tonumber(State)) then
Value = math.floor(Event.State.Value * 10 + 0.5) / 10 ;
else
Value = Event.State.Value;
if (Value=="true") then
Value=1;
end
if (Value=="false") then
Value=0;
end
end
end
print(Value);
mqtt.pub(prefics .. string.format("%#x", Event.nwkAddr) .. "_" .. Event.State.Name .. "/control" , Value)

 


 
А на ESP с прошивкой IotManager  создать виджеты которые будут получать состояния беспроводных датчиков из MQTT.
Создаем новый виджет «8 Окно вывода любого текста»

 


 
Меняем ID виджета на новое значение.
Первая часть значения это ID датчика. “Zigbee” -> “Devices”

 



Вторая часть: параметр который мы хотим получать в виджете IoTmanager.
Открываем датчик и на 3й закладке смотрим, что он умеет мерять


 

 

В SLS добавить ссылку на скрипт iotm.lua для каждого датчика.

 


 
 

В моем случае это датчик  «0xF247»
С которого я хочу получать температуру: «temperature»


 

 
В IoTmanedger ID виджета получилось «0xf247_temperature» Все буквы должны быть в нижнем регистре (маленькие).



 
 
 

 Результат



 

Подробнее в телеграм канале  https://t.me/live_control