En el proceso de cambiar de dispositivos wifi a zigbee en esta ocasión le toca a las tiras led que tengo instaladas en casa , pedi una para hacer pruebas , pedi la versión con alimentación a 12Vdc ya que las tiras instaladas son RGBW a 12Vdc , hay una versión de este controlador con alimentación directa por USB , pero solo serviria para tiras led a 5Vdc.

Este seria el controlador en concreto.


Nada mas conectarlo zigbee2mqtt nos lo detecta como un controlador tuya TS0504B

Le cambiaremos la etiqueta en el fichero de configuración de zigbee2mqtt
'0xa4c1383595478432':
friendly_name: 'led_zb2_pruebas'

AL momento ya empezaremos a recibir información via MQTT

{
"brightness": 254,
"color": {
"x": 0.1355,
"y": 0.0399
},
"color_mode": "xy",
"device": {
"applicationVersion": 65,
"dateCode": "",
"friendlyName": "led_zb2_pruebas",
"hardwareVersion": 1,
"ieeeAddr": "0xa4c1383595478432",
"manufacturerID": 4417,
"manufacturerName": "_TZ3210_onejz0gt",
"model": "TS0504B",
"networkAddress": 48475,
"powerSource": "Mains (single phase)",
"stackVersion": 0,
"type": "Router",
"zclVersion": 3
},
"last_seen": "2024-05-01T21:38:10+02:00",
"linkquality": 105,
"state": "ON"
}
zigbee2mqtt/led_zb2_pruebas
Este seria el json del autodiscovery de HA , pero yo prefiero integrarlos manualmente en mi Home Assistant
{
"availability": [
{
"topic": "zigbee2mqtt/bridge/state"
},
{
"topic": "zigbee2mqtt/led_zb2_pruebas/availability"
}
],
"availability_mode": "all",
"brightness": true,
"brightness_scale": 254,
"color_mode": true,
"command_topic": "zigbee2mqtt/led_zb2_pruebas/set",
"device": {
"configuration_url": "https://zigbee2mqtt.antrivas.duckdns.org/#/device/0xa4c1383595478432/info",
"identifiers": [
"zigbee2mqtt_0xa4c1383595478432"
],
"manufacturer": "TuYa",
"model": "Zigbee RGBW light (TS0504B)",
"name": "led_zb2_pruebas",
"via_device": "zigbee2mqtt_bridge_0x00124b001ca16260"
},
"json_attributes_topic": "zigbee2mqtt/led_zb2_pruebas",
"name": null,
"object_id": "led_zb2_pruebas",
"origin": {
"name": "Zigbee2MQTT",
"sw": "1.35.3",
"url": "https://www.zigbee2mqtt.io"
},
"schema": "json",
"state_topic": "zigbee2mqtt/led_zb2_pruebas",
"supported_color_modes": [
"xy"
],
"unique_id": "0xa4c1383595478432_light_zigbee2mqtt"
}Esta era la configuración para los controladores wifi con el firmware espurna
- name: tira_led_estudio
state_topic: led-despacho/relay/0
command_topic: led-despacho/relay/0/set
payload_on: 1
payload_off: 0
availability_topic: led-despacho/status
payload_available: 1
payload_not_available: 0
brightness_state_topic: led-despacho/brightness
brightness_command_topic: led-despacho/brightness/set
rgb_state_topic: led-despacho/rgb
rgb_command_topic: led-despacho/rgb/set
white_value_command_topic: led-despacho/channel/3/seY con este controlador quedaria así :
- name: tira_led_estudio
schema: json
state_topic: "zigbee2mqtt/led_despacho_zb"
command_topic: "zigbee2mqtt/led_despacho_zb/set"
availability_topic: "zigbee2mqtt/led_despacho_zb/availability"
payload_available: online
payload_not_available: offline
brightness: true
rgb: true
# white_value: true
effect: true
effect_list: [blink, breathe, okay, channel_change, finish_effect, stop_effect]
optimistic: false
qos: 0 Crearemos un par de sensores , uno de calidad del enlace y otro de disponibilidad
### TIRA LED ESTUDIO
- state_topic: "zigbee2mqtt/led_despacho_zb"
availability_topic: "zigbee2mqtt/bridge/state"
icon: "mdi:signal"
unit_of_measurement: "lqi"
value_template: "{{ value_json.linkquality }}"
name: "led_despacho_zb_estado"
- state_topic: "zigbee2mqtt/led_despacho_zb"
availability_topic: "zigbee2mqtt/bridge/state"
icon: "mdi:calendar-clock"
value_template: "{{ value_json.last_seen }}"
name: "led_despacho_zb_ultima_conexion" Crearemos un sensor binario de conexión
- state_topic: "zigbee2mqtt/led_despacho_zb/availability"
availability_topic: "zigbee2mqtt/led_despacho_zb/availability"
name: led_despacho_zb_disponibilidad
device_class: "connectivity"
payload_on: "online"
payload_off: "offline" Y crearemos un sensor que nos indicara cuando ocurrió la ultima conexión del controlador
- platform: template
sensors:
led_despacho_zb_ultima_conexion_minutos:
value_template: >-
{% set x1 = as_timestamp(states('sensor.led_despacho_zb_ultima_conexion')) %}
{% set x2 = as_timestamp(now()) %}
{% set time = x2 - x1 | int(0) %}
{% set days = (time/86400) | int %}
{% set hours = (time / 3600 % 24) | int %}
{% set minutes = (((time / 3600) % 1) * 60) | int %}
{{ days ~ 'd ' ~ hours ~ 'h ' ~ minutes ~ 'm' }}
friendly_name: Ultima conexión tira led estudio
icon_template: "mdi:calendar-clock"Una de las cosas que son diferentes es que antes tenia control tanto de la parte led de color como la parte de blanco a la vez , con este controlador si se envia el valor RGB 255,255,255 desactiva la parte de color y activa la parte de blanco.
Por ejemplo así desactiva la parte de color y activa la parte de blanco
- service: light.turn_on
data:
entity_id: light.tira_led_estudio
brightness: 255
rgb_color: [255,255,255] Lo vestiremos un poco en nuestro lovelace , yo suelo usar el custom component rgb-light-card

Esta seria la configuración para este caso en concreto
- type: entities
title: Estudio
show_name: true
show_state: false
show_header_toggle: false
columns: 3
entities:
- light.luz_estudio
- light.tira_led_estudio
- type: 'custom:rgb-light-card'
entity: light.tira_led_estudio
justify: left
hide_when_off: true
colors:
- rgb_color:
- 255
- 255
- 255
icon_color: '#FFFFFF'
brightness: 255
transition: 1
- rgb_color:
- 255
- 0
- 0
icon_color: '#ff0000'
brightness: 255
transition: 1
- rgb_color:
- 0
- 0
- 255
icon_color: '#3366CC'
brightness: 255
transition: 1
- rgb_color:
- 63
- 255
- 0
icon_color: '#33CC33'
brightness: 255
transition: 1
- rgb_color:
- 0
- 255
- 255
icon_color: '#00ffff'
brightness: 255
transition: 1
- rgb_color:
- 255
- 255
- 0
icon_color: '#F1C40F'
brightness: 255
transition: 1
- rgb_color:
- 109
- 0
- 219
icon_color: '#7D3C98'
brightness: 255
transition: 1
- rgb_color:
- 255
- 127
- 0
icon_color: '#D35400'
brightness: 255
transition: 1Uno de los problemas que me he encontrado es que la tira led venia cambiada, en lugar de GND R G B W era GND G R B W , en espurna lo solvente por software
Esta seria la configuración para cada tipo de tira led

Y esta era la que tenia yo , aparentemente esta bien , pero no , interiormente la tira led estaba cambiada

Un par de soldaduras y colores cambiados

Y con esto y un bizcocho …..