

Material necessário:
- Desumidificador (ou outro aparelho)
 - Wemos D1 mini (flashado com Tasmota)
 - Fios
 - Multimetro
 - Resistors
 - Optoacopladores 4N25
 - Material e equipamento para soldar
 
Achar a solução
Usar optos para ler os LEDs e simular toque do botão da placa de controlo
A minha ideia inicial era ler os leds e controlar os botões do painel de controlo. Seriam 6 leds e 2 botões. Utilizando o optoacoplador 4N25, um para cada controlo achava eu que chegava ao que pretendia sem grande dificuldade. A coisa começou a complicar-se quando tentava ligar o opto em paralelo ao LED, o 4N25 precisa de voltagem e acabava por não funcionar nem o led nem o opto.
O botão não tinha dificuldade porque a voltagem era fornecida pelo Wemos e não pelo botão, então ele não perdia voltagem nenhuma.
Usar LDRs para saber o estado dos LEDs
Depois do desespero tentei implementar um LDR a cada led e saber se está ligado ou não. Como não tenho experiência com LDRs não consegui meter a funcionar, não sei se tinha haver com os pinos do wemos serem digitais e não analógicos.
Ler o estado diretamente aos componentes
Depois do fracasso dos LDRs, decidi ir diretamente aos componentes e saber o estado deles. Analisando a placa principal na parte de baixo, encontrei a fonte, os 5V para o Wemos, o Switch para o tanque e o relay que controla motor. Ou seja, deste modo, consigo simular o botão a ser pressionado, saber o estado do desumidificador, se ligou ou não e saber o estado do tanque.
O switch tem três pinos na parte de baixo da placa mas só os das pontas é que estão ligados ao switch, ele opera com 5VDC enquanto que o relay opera com 12VDC.

Fiz as ligações. No switch ligo 1 fio que posteriormente dá retorno ao GND da fonte. Quanto ao relay, reparei que se o equipamento estivesse desligado não passava tensão nenhuma, então liguei os dois fios lá. Assim, quando o equipamento ligar o opto vai ligar também.
Depois dos testes estarem OK, passei a cablagem para uma placa. Usei os resistors para diminuir a tensão para que não queime os optos. Não esquecer de aplicar a lei de Ohm para saber que resistor aplicar.
O botão ligado ao opto:
Wemos com Tasmota
Utilizei tasmota, assim não tenho que perder tempo a programar.
Para flashar o wemos ver este link
Configurar o módulo para generic e fazer as alterações dos pinos:
O Relay1 é o Botão, Switch2 é o Tanque e o Switch3 é o estado (se está ligado ou desligado).
na consola alterar o pulsetime e o switchmode
# Isto faz com que o relay1 passe a OFF imediatamente após ter estado em ON. Aliás, este relay é apenas o clique do botão, não queremos o botão sempre pressionado.
pulsetime1 1
switchmode1 0
switchmode2 2
switchmode3 2
alterar as configurações de mqtt a vosso gosto:
Home Assistant
homeassistant:
  customize:
    switch.dehumidifier_power_button:
      friendly_name: "Ligar/Desligar"
      icon: "mdi:page-layout-footer"
switch:
  - platform: mqtt
    name: "dehumidifier_power_button"
    command_topic: "casa/desumidificador_becken/cmnd/power"
    payload_on: "ON"
    payload_off: "ON"
    availability_topic: "casa/desumidificador_becken/tele/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    state_topic: "casa/desumidificador_becken/cmnd/POWER3"
    state_on: "ON"
    state_off: "OFF"
    qos: 1
    retain: true
  
  - platform: mqtt
    name: "dehumidifier_water_box_switch"
    command_topic: "casa/desumidificador_becken/cmnd/power2"
    payload_on: "ON"
    payload_off: "OFF"
    availability_topic: "casa/desumidificador_becken/tele/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    state_topic: "casa/desumidificador_becken/cmnd/POWER2"
    qos: 1
    retain: true
sensor:
  - platform: template
    sensors:
      dehumidifier_water_box_status:
        friendly_name: "Estado do Tanque"
        value_template: >
          {% if is_state('switch.dehumidifier_water_box_switch', 'on') %}
            Cheio
          {% elif is_state('switch.dehumidifier_water_box_switch', 'off') %}
            OK
          {% else %}
            Indisponível
          {% endif %}
        icon_template: >
          {% if is_state('switch.dehumidifier_water_box_switch', 'on') %}
            mdi:cup-water
          {% elif is_state('switch.dehumidifier_water_box_switch', 'off') %}
            mdi:cup-off
          {% else %}
            mdi:alert
          {% endif %}
A funcionar:



Se estiver desligado:

      
    










 assim é mais complicado) , com o tasmosta dá para colocar um gpio (switch) soldado ao botao on/off e quando quisermos que ele fique on, faça passagem no interruptor do botao  (CONTACTO de pressao)? precisava de ajuda, não percebo muito de electrónica.



