ZigBee Project Version 1.0

Вот что получилось.

ZibGee – Tasmota – MQTT Координатор.
ZigBee 4 симистора и 4 входа, 4x5v Выходов, DS18B20
Коричневый.
Коричневый+красный

VCC = 3.3V

ZigBee координатор: Rule ON System#Boot do TCPStart 8888 endon

Прошивка https://ptvo.info/

Прошивка: RomikZigBeeSwitch

Прошивка: 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 года.

JSON, Home-Assistant, ZigBee,Tasmota-zigbee

Пример:

{“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
# ---------------------------------------------

Включение-Выключение через пульт ИК (Tasmota-Home-Assistant)

В Новых версия Tasmota Hash-поменяли на-Data

value_template: '{{ value_json[''IrReceived''].Data }}'

- id: '1635253773568'
  alias: ПРОВЕРКА КНОПКИ
  description: ''
  trigger:
  - platform: mqtt
    topic: tele/romikETH/RESULT
    value_template: '{{ value_json[''IrReceived''].Hash }}'
    payload: '0x3D4C1879'
  condition: []
  action:
  - service: switch.toggle
    target:
      entity_id: switch.romiketh1
  mode: single

Все можно прописать в самом Home-Assistant.

5-Relay Контролер для умного дома Ver 1.0 (Tasmota,HomeAssistant)

Схема.

Порты реле внизу.

Порты выхода Реле 1-5 Реле и просто 6-7-8 порты Output 5V.

backlog sensor29 0,5,0; sensor29 1,5,0; sensor29 2,5,0; sensor29 3,5,0
backlog sensor29 4,5,0; sensor29 5,5,0; sensor29 6,5,0; sensor29 7,5,0

backlog SetOption36 0;SetOption65 1;wificonfig 4; SetOption59 1; TimeZone +3;TelePeriod 150

Входы:

backlog sensor29 8,2,1; sensor29 9,2,1; sensor29 10,2,1; sensor29 11,2,1

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

on event#MCPINT_D11=1 do power4 on endon on event#MCPINT_D11=0 do power4 off endon
on event#MCPINT_D10=1 do power3 on endon on event#MCPINT_D10=0 do power3 off endon
on event#MCPINT_D9=1 do power2 on endon on event#MCPINT_D9=0 do power2 off endon
on event#MCPINT_D8=1 do power1 on endon on event#MCPINT_D8=0 do power1 off endon

При рестарте ВЫКЛЮЧИТЬ ВСЕ РЕЛЕ:

ON system#boot DO Power0 0 ENDON

Схема: DipTrace Schematic – 5-Relay-Version-1.0.dch Лист 1