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

xxxxxxxxxx
"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
xxxxxxxxxx
"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
xxxxxxxxxx
name tira_led_estudio
state_topic led-despacho/relay/0
command_topic led-despacho/relay/0/set
payload_on1
payload_off0
availability_topic led-despacho/status
payload_available1
payload_not_available0
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/se
Y con este controlador quedaria así :
xxxxxxxxxx
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
brightnesstrue
rgbtrue
# white_value: true
effecttrue
effect_list blink breathe okay channel_change finish_effect stop_effect
optimisticfalse
qos 0
Crearemos un par de sensores , uno de calidad del enlace y otro de disponibilidad
xxxxxxxxxx
### 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
xxxxxxxxxx
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
xxxxxxxxxx
platform template
sensors
led_despacho_zb_ultima_conexion_minutos
value_template -
'sensor.led_despacho_zb_ultima_conexion')) % % set x1 = as_timestamp(states(
% 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 %
'd ' ~ hours ~ 'h ' ~ minutes ~ 'm' days ~
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
xxxxxxxxxx
service light.turn_on
data
entity_id light.tira_led_estudio
brightness255
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
xxxxxxxxxx
type entities
title Estudio
show_nametrue
show_statefalse
show_header_togglefalse
columns 3
entities
light.luz_estudio
light.tira_led_estudio
type'custom:rgb-light-card'
entity light.tira_led_estudio
justify left
hide_when_offtrue
colors
rgb_color
255
255
255
icon_color'#FFFFFF'
brightness255
transition1
rgb_color
255
0
0
icon_color'#ff0000'
brightness255
transition1
rgb_color
0
0
255
icon_color'#3366CC'
brightness255
transition1
rgb_color
63
255
0
icon_color'#33CC33'
brightness255
transition1
rgb_color
0
255
255
icon_color'#00ffff'
brightness255
transition1
rgb_color
255
255
0
icon_color'#F1C40F'
brightness255
transition1
rgb_color
109
0
219
icon_color'#7D3C98'
brightness255
transition1
rgb_color
255
127
0
icon_color'#D35400'
brightness255
transition1
Uno 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 …..