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/se
Y 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: 1
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 …..