Buenas , aprovechando el docker para detección de dispositivos en la red local le he añadido una nueva funcionalidad muy útil para dispositivos que no entregan el numero de pulsaciones como pueden ser los Remote Control de IKEA y otros
Os he dejado el docker aquí
Utilizaremos la versión 1.5 del docker , modificando el docker-compose.yaml
mqtt_scanner: container_name: mqtt_scanner restart: unless-stopped image: antrivas/mqtt_scanner_pi:1.5 volumes: - ${DOCKERDIR}/mqtt_scanner/config:/App/config - ${DOCKERDIR}/mqtt_scanner/logs:/App/logs environment: - TZ=${TZ} networks: - traefik - default
En /config encontraremos un nuevo fichero de configuración llamado topic.json , allí podremos poner todos los topics a los que nos queremos suscribir y configurar a nuestro gusto cada uno de los topics
[ { "Topic": "zigbee2mqtt/ikea_mando_4", "Field": "action", "Action": "toggle", "NTiempo": 1000 }, { "Topic": "zigbee2mqtt/ikea_mando_1", "Field": "action", "Action": "toggle", "NTiempo": 1000 }, { "Topic": "zigbee2mqtt/ikea_mando_2", "Field": "action", "Action": "toggle", "NTiempo": 1000 } ]
Una vez arrancado el docker podemos probarlo pulsando varias veces el dispositivo asociado a uno de los topics configurados , nos devolverá un mensaje al finalizar el timeout personalizado para cada uno de los topics , el topic enviado será el nombre del topic suscrito mas el sufijo “_pulsaciones” , enviando un json donde va el evento capturado y el numero de pulsaciones
En nuestro Home Assistant crearemos un par de sensores mqtt , y a partir de ahí podemos realizar todas aquellas automatizaciones que se nos ocurran
- platform: "mqtt" state_topic: "zigbee2mqtt/ikea_mando_4_pulsaciones" icon: "mdi:gesture-tap-button" value_template: "{{ value_json.repeticiones }}" force_update: true name: "sensor_ikea_mando_4_pulsaciones" - platform: "mqtt" state_topic: "zigbee2mqtt/ikea_mando_4_pulsaciones" icon: "mdi:comment-flash" value_template: "{{ value_json.evento }}" force_update: true name: "sensor_ikea_mando_4_evento"
Este es un ejemplo de automatizaciones que distingue por evento y por numero de pulsaciones
- alias: pruebas mando ikea 4 repeticiones 2 initial_state: 'on' trigger: - platform: state entity_id: sensor.sensor_ikea_mando_4_pulsaciones condition: - condition: state entity_id: sensor.sensor_ikea_mando_4_evento state: 'toggle' - condition: state entity_id: sensor.sensor_ikea_mando_4_pulsaciones state: '2' action: - service: light.turn_off target: entity_id: - light.luz_estudio - light.tira_led_estudio - delay: 00:00:02 - service: light.turn_on target: entity_id: - light.luz_estudio - light.tira_led_estudio - delay: 00:00:02 - alias: pruebas mando ikea 4 repeticiones 3 initial_state: 'on' trigger: - platform: state entity_id: sensor.sensor_ikea_mando_4_pulsaciones condition: - condition: state entity_id: sensor.sensor_ikea_mando_4_evento state: 'toggle' - condition: state entity_id: sensor.sensor_ikea_mando_4_pulsaciones state: '3' action: - service: light.turn_off target: entity_id: - light.luz_estudio - light.tira_led_estudio - alias: pruebas mando ikea 4 repeticiones 4 initial_state: 'on' trigger: - platform: state entity_id: sensor.sensor_ikea_mando_4_pulsaciones condition: - condition: state entity_id: sensor.sensor_ikea_mando_4_evento state: 'toggle' - condition: state entity_id: sensor.sensor_ikea_mando_4_pulsaciones state: '4' action: - service: light.turn_on target: entity_id: - light.luz_estudio - light.tira_led_estudio
Y con esto y un bizcocho …………………
Raspberry Pi Zero 2 W – Creación de un Docker en .NET para detección en la red local