Hoy os explicare como cambie mis interruptores y conmutadores Simon 75101 a pulsadores sin tener que cambiar prácticamente nada y luego les agregue a cada uno un Xiaomi switch para conectarlos a Home Assistant
Lo primero será abrir el interior del mecanismo , para ello usaremos un destornillador pequeño plano y sacaremos con sumo cuidado el eje central soltándolo de los lados , hay que tener cuidado porque en el interior lleva unas pequeñas piezas metálicas que en caso de moverse o girarse hará que no funcione , pero con cuidado ya veréis que es bien fácil.
![](https://m.media-amazon.com/images/I/41XNFK+cZ0L._AC_.jpg)
Al abrirlo veréis cuatro agujeros en los que cabe perfectamente un muelle , en uno de los lados , ya sea en la parte de las teclas rojas o las blancas insertaremos un par de muelles para que recupere y pase de ser interruptor/conmutador a pulsador , yo después de varias pruebas encontré estos en aliexpress que van perfectos , son de 3 mms de ancho , por 10 mms de largo y la espira de 0,3 mms.
![](https://rivas.cloud/wp-content/uploads/2022/02/image-31.png)
![](https://rivas.cloud/wp-content/uploads/2022/02/image-32.png)
Ahora ya tenemos lista la parte mecánica y procedemos a modificar el Xiaomi switch para ser usado con nuestro nuevo flamante pulsador tuneado , desmontaremos con cuidado toda la estructura del switch hasta quedarnos solamente con el circuito impreso.
![](https://1.bp.blogspot.com/-l7bwUETAPMs/V4k4ieSbvMI/AAAAAAAAAAg/UoPuXk5qOZckYyUwyTozIzhpp3_Ij8trgCLcB/s1600/IMG_20160715_210118.jpg)
Soldaremos con cuidado dos cablecitos en los puntos que os muestro que son los del pulsador original
![](https://rivas.cloud/wp-content/uploads/2022/02/photo_2022-02-19_14-52-10.jpg)
Y dejaremos los extremos estañados con un centímetro y medio mas o menos para que entren bien el pulsador Simon
![](https://rivas.cloud/wp-content/uploads/2022/02/photo_2022-02-19_14-52-13.jpg)
Una vez alimentado lo emparejamos en zigbee2mqtt siguiendo el procedimiento habitual , aquí podréis encontrar mas información : https://www.zigbee2mqtt.io/devices/WXKG01LM.html
Conectado a zigbee2mqtt expone mas modos que mediante el gateway de Xiaomi , los modos son : single
, double
, triple
, quadruple
, hold
, release
, many
que nos vendrán de maravilla para las automatizaciones
Crearemos los sensores de entrada
### CONMUTADOR 1 ORIOL
- platform: "mqtt"
state_topic: "zigbee2mqtt/puls_conmut_1_oriol"
availability_topic: "zigbee2mqtt/bridge/state"
icon: "mdi:toggle-switch"
value_template: "{{ value_json.action }}"
name: "puls_conmut_1_oriol_evento"
- platform: "mqtt"
state_topic: "zigbee2mqtt/puls_conmut_1_oriol"
availability_topic: "zigbee2mqtt/bridge/state"
unit_of_measurement: "%"
icon: "mdi:battery"
device_class: "battery"
value_template: "{{ (((value_json.voltage | float(0) | round(5,default=0))-2800)/5)| int(0) }}"
expire_after: 21600
force_update: true
name: "puls_conmut_1_oriol_bateria"
- platform: "mqtt"
state_topic: "zigbee2mqtt/puls_conmut_1_oriol"
availability_topic: "zigbee2mqtt/bridge/state"
icon: "mdi:signal"
unit_of_measurement: "lqi"
value_template: "{{ value_json.linkquality }}"
name: "puls_conmut_1_oriol_estado"
El sensor de batería lo recalculo para que sea lo mas aproximado a la realidad y le asignaremos el icono en función del porcentaje de batería restante
conmutador_1_oriol_battery_level:
friendly_name: Conmutador 1 Oriol
value_template: "{{ states.sensor.puls_conmut_1_oriol_bateria.state |default(-1)| int(0) if states.sensor.puls_conmut_1_oriol_bateria is not none }}"
unit_of_measurement: '%'
icon_template: '{% if states.sensor.puls_conmut_1_oriol_bateria.state| int(0) == 100 %}
mdi:battery
{% elif states.sensor.puls_conmut_1_oriol_bateria.state| int(0) >= 90 %}
mdi:battery-90
{% elif states.sensor.puls_conmut_1_oriol_bateria.state| int(0) >= 80 %}
mdi:battery-80
{% elif states.sensor.puls_conmut_1_oriol_bateria.state| int(0) >= 70 %}
mdi:battery-70
{% elif states.sensor.puls_conmut_1_oriol_bateria.state| int(0) >= 60 %}
mdi:battery-60
{% elif states.sensor.puls_conmut_1_oriol_bateria.state| int(0) >= 50 %}
mdi:battery-50
{% elif states.sensor.puls_conmut_1_oriol_bateria.state| int(0) >= 40 %}
mdi:battery-40
{% elif states.sensor.puls_conmut_1_oriol_bateria.state| int(0) >= 30 %}
mdi:battery-30
{% elif states.sensor.puls_conmut_1_oriol_bateria.state| int(0) >= 20 %}
mdi:battery-20
{% elif states.sensor.puls_conmut_1_oriol_bateria.state| int(0) >= 10 %}
mdi:battery-10
{% else %}
mdi:battery-outline
{% endif %}'
Pondremos los valores en el customize.yaml
sensor.puls_conmut_1_oriol_evento:
friendly_name: Conmutador Oriol 1
sensor.puls_conmut_1_oriol_bateria:
friendly_name: Conmutador Oriol 1
sensor.puls_conmut_1_oriol_estado:
friendly_name: Conmutador Oriol 1
Crearemos las automatizaciones para el evento single , en este caso para manejar un plafón de Xiaomi y dos tiras led en función del estado y controlando el brillo en función de la hora del día
- alias: luz Oriol single 1 y 2 ON Tramo 1
# Encendemos la luz ya que esta apagada y ponemos el brillo en funcion de noche o dia
initial_state: 'on'
trigger:
- platform: state
entity_id: sensor.puls_conmut_1_oriol_evento
to: 'single'
- platform: state
entity_id: sensor.puls_conmut_2_oriol_evento
to: 'single'
condition:
- condition: state
entity_id: light.luz_oriol
state: 'off'
- condition: sun
after: sunrise
after_offset: "00:30:00"
- condition: time
before: "22:30:00"
action:
- service: automation.turn_off
entity_id: automation.Change_Brightness_oriol
- service: input_number.set_value
entity_id: input_number.slider_lamp_oriol_bright
data:
value: 235
- service: light.turn_on
entity_id: light.luz_oriol
data:
brightness: 235
rgb_color: [255,255,255]
# color_temp: 1000
- service: light.turn_on
data:
entity_id: light.tira_led_cama_oriol
brightness_pct: 100
rgb_color: [0,0,0]
white_value: 255
- service: light.turn_on
data:
entity_id: light.tira_led_mesa_oriol
brightness_pct: 100
rgb_color: [0,0,0]
white_value: 255
- service: automation.turn_on
entity_id: automation.Change_Brightness_oriol
- alias: luz Oriol single 1 y 2 ON Tramo 2
# Encendemos la luz ya que esta apagada y ponemos el brillo en funcion de noche o dia
initial_state: 'on'
trigger:
- platform: state
entity_id: sensor.puls_conmut_1_oriol_evento
to: 'single'
- platform: state
entity_id: sensor.puls_conmut_2_oriol_evento
to: 'single'
condition:
- condition: state
entity_id: light.luz_oriol
state: 'off'
- condition: time
after: "22:30:00"
before: "02:00:00"
action:
- service: automation.turn_off
entity_id: automation.Change_Brightness_oriol
- service: input_number.set_value
entity_id: input_number.slider_lamp_oriol_bright
data:
value: 5
- service: light.turn_on
entity_id: light.luz_oriol
data:
brightness: 5
rgb_color: [255,255,255]
- service: light.turn_on
data:
entity_id: light.tira_led_cama_oriol
brightness_pct: 5
rgb_color: [0,0,0]
white_value: 255
- service: light.turn_off
entity_id: light.tira_led_mesa_oriol
- service: automation.turn_on
entity_id: automation.Change_Brightness_oriol
- alias: luz Oriol single 1 y 2 ON Tramo 3
# Encendemos la luz ya que esta apagada y ponemos el brillo en funcion de noche o dia
initial_state: 'on'
trigger:
- platform: state
entity_id: sensor.puls_conmut_1_oriol_evento
to: 'single'
- platform: state
entity_id: sensor.puls_conmut_2_oriol_evento
to: 'single'
condition:
- condition: state
entity_id: light.luz_oriol
state: 'off'
- condition: time
after: "02:00:00"
- condition: sun
before: sunrise
before_offset: "00:30:00"
action:
- service: light.turn_off
entity_id: light.luz_oriol
- service: light.turn_on
data:
entity_id: light.tira_led_cama_oriol
brightness_pct: 5
rgb_color: [0,0,0]
white_value: 255
- service: light.turn_off
entity_id: light.tira_led_mesa_oriol
- alias: luz Oriol single 1 y 2 OFF
# Encendemos la luz ya que esta apagada y ponemos el brillo en funcion de noche o dia
initial_state: 'on'
trigger:
- platform: state
entity_id: sensor.puls_conmut_1_oriol_evento
to: 'single'
- platform: state
entity_id: sensor.puls_conmut_2_oriol_evento
to: 'single'
condition:
- condition: state
entity_id: light.luz_oriol
state: 'on'
action:
- service: light.turn_off
entity_id: light.luz_oriol
- service: light.turn_off
entity_id: light.tira_led_cama_oriol
- service: light.turn_off
entity_id: light.tira_led_mesa_oriol
Ahora crearemos una automatización para que cuando se mantenga pulsado el pulsador Simon apague todo
- alias: luz Oriol long press 1 y 2 apagar todo
initial_state: 'on'
trigger:
- platform: state
entity_id: sensor.puls_conmut_1_oriol_evento
to: 'long'
- platform: state
entity_id: sensor.puls_conmut_2_oriol_evento
to: 'long'
action:
- service: light.turn_off
entity_id: light.luz_oriol
- service: light.turn_off
entity_id: light.tira_led_cama_oriol
- service: light.turn_off
entity_id: light.tira_led_mesa_oriol