Дополнительные модули.
ZigBee E18-MS1-PCB/IPX (https://ptvo.info/cc2530-based-zigbee-coordinator-and-router-112/)
Маркировка на плате R1 и R3 – перепутаны !!!
E18-MS1-PCB-Module-Romik-V1.0 (Схема) Schematics
https://ptvo.info/cc2530-based-zigbee-coordinator-and-router-112/
R1,R2 – Запаять для использования порта P0.2(RX),P0.3(TX) как UART
R3,R4 – Запаять для использования порта P1.4(RX),P1.5(TX) как UART
Одновременно запаивать не нужно.
Программирование модуля: https://zigbee.blakadder.com/flashing_ccloader.html
P.S. External sensor power control – it is a special output type. The firmware sets the configured output to the HIGH state before reading a sensor’s value, and sets it to LOW after that. The CC2530 and CC2531 chips allow you to use pins P10 and P11 to supply power up to 20 mA to external sensors.
https://ptvo.info/zigbee-configurable-firmware-features/power-saving-mode/
E18-MS1PA1-IPX_Usermanual_EN_v1.1
E18-MS1PA2-IPX_UserManual_EN_v1.2
E18-MS1-PCB
ESP-ZigBee-Input-Module-V1.0.0 (COLOR)
Джамперы установлены для подключения ZigBee модуля к ESP8266/UART0. Модуль E18-MS1PA1-IPX – Можно запрограммировать как Coordinator или Router, для сети ZigBee.
backlog sensor29 0,2,1; sensor29 1,2,1; sensor29 2,2,1; sensor29 3,2,1
backlog sensor29 4,2,1; sensor29 5,2,1; sensor29 6,2,1; sensor29 7,2,1
backlog SetOption36 0;SetOption65 1;wificonfig 4; SetOption59 1; TimeZone +3;TelePeriod 150
DipTrace Schematic – ESP-ZigBee-Input-Module-V1.0.0
Router: https://github.com/Koenkk/Z-Stack-firmware/tree/master/router/Z-Stack_Home_1.2
Как загрузить: https://zigbee.blakadder.com/zigbee2tasmota.html
ZigBee Router
Программирование через USB при подачи основного питания.
11:54:14.067 ZIG: rebooting CC2530 device
11:54:19.257 ZIG: timeout, goto label 99
11:54:19.259 RSL: RESULT = {“ZbState”:{“Status”:99,”Message”:”Abort”}}
11:54:19.260 ZIG: Abort
11:54:19.261 ZIG: Stopping (99)
Rule on zbstate#status=99 do zbreset 2 endon
![]() |
![]()
|
![]() |
CH340C USB-Serial
DipTrace Schematic – Replace-CC2530-to-ESP07s
OUTPUT GP4 GP5 GP6 GP7
backlog sensor29 4,5,0; sensor29 5,5,0; sensor29 6,5,0; sensor29 7,5,0
INPUT GP0 GP1 GP2 GP3
backlog sensor29 0,2,1; sensor29 1,2,1; sensor29 2,2,1; sensor29 3,2,1
backlog SetOption36 0;SetOption65 1;wificonfig 4; SetOption59 1; TimeZone +3;TelePeriod 150
На пурпурном модуле добавить землю на MCP23008 !
Вот что получилось.
|
|
VCC = 3.3V
ZigBee координатор: Rule ON System#Boot do TCPStart 8888 endon
Прошивка https://ptvo.info/
Как прошить: https://zigbee.blakadder.com/flashing_ccloader.html
Прошивка: objcopy –gap-fill 0xFF –pad-to 0x040000 -I ihex Romik.Switch.V1.hex -O binary Romik.Switch.V1.bin
./ccloader /dev/ttyUSB0 Romik.Switch.V1.bin 1
Выходные контакты:
P20: Выход 1, GPIO, Внешняя подтяжка к +
P21: Выход 2, GPIO, Внешняя подтяжка к +
P22: Выход 3, GPIO, Внешняя подтяжка к +
P13: Выход 4, GPIO, Внешняя подтяжка к +
P12: Выход 5, GPIO, Внешняя подтяжка к +
P17: Выход 6, GPIO, Внешняя подтяжка к +
P16: Выход 7, GPIO, Внешняя подтяжка к +
P15: Выход 8, GPIO, Внешняя подтяжка к +
Входные контакты:
P00: Вход 1, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 1
P01: Вход 2, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 2
P04: Вход 3, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 3
P05: Вход 4, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 4
P06: Вход 5, DS18B20, Внешняя подтяжка к +
Схема – повторять не нужно – много недоработок.
DipTrace Schematic – zigbee-relay-v1.0
HA
sensor:
- platform: mqtt
unique_id: ZigBeeTempDS18B20
name: "ZigBeeTest Temperature"
state_topic: "tele/ZigBeeTest/SENSOR"
value_template: "{{ value_json.ZbReceived['0xCE98'].AnalogValue | float }}"
unit_of_measurement: "°C"
availability_topic: "tele/ZigBeeTest/LWT"
payload_available: "Online"
payload_not_available: "Offline"
device_class: temperature
- platform: mqtt
unique_id: ZigBeeV1Switch_4
name: ZigBeeV1Switch_4
state_topic: "tele/ZigBeeTest/SENSOR"
value_template: |-
{%- if value_json.ZbReceived is defined and value_json.ZbReceived['0xCE98'] is defined -%}
{%- if value_json.ZbReceived['0xCE98'].Endpoint == 4 -%}
{%- if value_json.ZbReceived['0xCE98'].Power == 1 -%}
ON
{% else %}
OFF
{% endif %}
{% endif %}
{% endif %}
state_on: "ON"
state_off: "OFF"
command_topic: "cmnd/ZigBeeTest/ZbSend"
payload_on: '{ "device":"0xCE98", "Endpoint":4, "send":{"Power":"on"} }'
payload_off: '{ "device":"0xCE98", "Endpoint":4, "send":{"Power":"off"} }'
availability_topic: "tele/ZigBeeTest/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
retain: false
Координатор работает прекрасно.
p.s. В исполнительном устройстве нужно отрезать от МОДУЛЯ ножки P24,P23 так как они используются для входа кварца 32.768 и на плате (с нижней стороны) соединить P23-P13,P24-P12.
Координатор Tasmota-ZigBee:
LWT: Для Home-Assistant – Над правилами нужно еще поработать.
Rule
ON zbstate#Status==30 DO publish tele/ZigBeeTest/LWT Online ENDON
ON zbreceived#?#Reachable==false DO publish tele/ZigBeeTest/LWT Offline ENDON
ON zbreceived#0xCE98 DO publish tele/ZigBeeTest/LWT Online ENDON
Включение PerminJoin по кнопке BOOT=GPIO0
rule2 ON Switch1#State=2 DO zbpermitjoin 1 ENDON
p.s. Управление ключами с другой Tasmota:
publish cmnd/ZigBeeTest/zbsend { “device”:”0xCE98″, “Endpoint”:4, “send”:{“Power”:”off”} }
Схема дополнительного модуля: DipTrace Schematic – Replace-CC2530-to-ESP07s
Последняя прошивка 15-06-2022 года.
Пример:
{“ZbReceived”:{“0x8982”:{“Device”:”0x8982″,”0006!01″:””,”Power”:1,“Endpoint”:1,”LinkQuality”:117}}}
value_json.ZbReceived[‘0x8982’].Endpoint
1
Так более правильно:
- platform: mqtt
unique_id: ZigBeeV1Switch_8
name: ZigBeeV1Switch_8
state_topic: "tele/ZigBeeTest/SENSOR"
value_template: |-
{%- if value_json.ZbReceived is defined and value_json.ZbReceived['0x8982'] is defined -%}
{%- if value_json.ZbReceived['0x8982'].Endpoint == 8 -%}
{%- if value_json.ZbReceived['0x8982'].Power == 1 -%}
ON
{% else %}
OFF
{% endif %}
{% endif %}
{% endif %}
state_on: "ON"
state_off: "OFF"
command_topic: "cmnd/ZigBeeTest/ZbSend"
payload_on: '{ "device":"0x8982", "Endpoint":8, "send":{"Power":"on"} }'
payload_off: '{ "device":"0x8982", "Endpoint":8, "send":{"Power":"off"} }'
availability_topic: "tele/ZigBeeTest/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
retain: false
# ---------------------------------------------