Come creare pulsante multi-scena da integrare nella nostra domotica

Come creare pulsante multi-scena da integrare nella nostra domotica

di Antonio Mario Longo

26 Febbraio 2021

Guide

Antonio Mario Longo

Siamo molto spesso abituati a vedere pulsanti wireless di varie marche e vari protocolli che, con la singola o la doppia pressione o anche alla pressione prolungata, eseguono varie azioni. Ne abbiamo visto un esempio in un articolo precedente con un Package su come spegnere tutto con un click (https://www.vincenzocaputo.com/home_assistant/home-assistant-un-package-per-spegnere-tutto-con-un-click-597).

Oggi sostituiremo il tutto con un pulsante, da mettere magari in una cassetta 503 che segue il design del vostro appartamento.

Materiale Necessario:

COLLEGAMENTO WEMOS D1 MINI A PULSANTE

In questa parte vedremo il collegamento da effettuare sul pulsante Wemos D1 Mini sul pulsante tramite alimentazione con semplice cavo micro USB collegato ad un'alimentatore a parete o con il supporto di un' alimentatore da 220V AC a 5V DC

SCHEMA CON ALIMENTATORE USB

 

PULSANTE WEMOS CARICABATTERIE USB

SCHEMA CON ALIMENTATORE DA 220v AC a 5VDC 

pulsante_wemos_220V_5V_DC

CREAZIONE FIRMWARE CON ESPHOME

Dopo aver effettuato i vari collegamenti passiamo alla creazione del firmware con EspHome dirigendoci in Home Assistant e nel menù laterale sinistro cliccate su ESP Home.

  • Create un nuovo nodo cliccando sul + in basso a destra 
    esphome add node
  • Al nuovo Pop Up che si aprirà compilate i campi nel seguente modo:
  1. Node Name: pulsante_multiscena (attenzione all'underscore tra pulsante e multiscena e tutto obbligatoriamente in minuscolo)
  2. Device Type: Wemos D1 and Wemos D1 mini
  3. Wifi SSID: inserite il nome della vostra rete Wifi
  4. Wifi Password: digitate la  password della vostra rete Wifi
  5. Ota Access Password: Lasciare il campo vuoto
  6. Terminata la configurazione guidata cliccando sul tasto Submit
Create New Node
  • Cliccate sulla scritta Edit del nodo appena creato (pulsante_multiscena), si aprirà un editor di testo, all'interno del quale saranno presenti tutte le informazioni che avremo inserito nel wizard della costruzione del nodo.
  • In fondo al file andate a incollare il seguente codice che di seguito andremo ad analizzare: 
    binary_sensor:
      - platform: gpio
        pin:
          number: D4
          mode: INPUT_PULLUP
          inverted: True
        name: "Pulsante Multiscena"
        on_multi_click:
        - timing:
          - ON for at most 1s
          - OFF for at most 1s
          - ON for at most 1s
          - OFF for at least 0.2s
          then:
            - homeassistant.service:
                service: input_boolean.turn_on
                data:
                  entity_id: input_boolean.doppio_click
            - delay: 0.2s
            - homeassistant.service:
                service: input_boolean.turn_off
                data:
                  entity_id: input_boolean.doppio_click
        - timing:
          - ON for 1s to 3s
          - OFF for at least 0.5s
          then:
            - homeassistant.service:
                service: input_boolean.turn_on
                data:
                  entity_id: input_boolean.click_prolungato
            - delay: 0.2s
            - homeassistant.service:
                service: input_boolean.turn_off
                data:
                  entity_id: input_boolean.click_prolungato
        - timing:
          - ON for at most 1s
          - OFF for at least 0.5s
          then:
            - homeassistant.service:
                service: input_boolean.turn_on
                data:
                  entity_id: input_boolean.click_singolo
            - delay: 0.2s
            - homeassistant.service:
                service: input_boolean.turn_off
                data:
                  entity_id: input_boolean.click_singolo
    

E' stato creato, nelle prime 7 righe, un sensore binario chiamato "Pulsante Multiscena" che prende l'input dal pin D4 del Wemos D1 Mini.

Successivamente vengono identificati tre Timing per identificare il tipo di Click che viene eseguito: singolo, doppio o prolungato.

Codice Click Singolo

Questo tipo di evento si presenta quando avremo la pressione del pulsante per un tempo massimo di 1 secondo:


    - timing:
      - ON for at most 1s
      - OFF for at least 0.5s

Successivamente si attiverà un input booleano denominato click_singolo e lo disattiverà dopo 0.2 Secondi con il codice sotto riportato

      then:
        - homeassistant.service:
            service: input_boolean.turn_on
            data:
              entity_id: input_boolean.click_singolo
        - delay: 0.2s
        - homeassistant.service:
            service: input_boolean.turn_off
            data:
              entity_id: input_boolean.click_singolo

Codice Doppio Click 

Quando avremo una pressione sul pulsante per un secondo, verrà rilasciata la pressione per un altro secondo e verrà ripremuto lo stesso per un altro secondo e rilasciato per almeno 0.2 secondi verrà eseguito il seguente codice: 

    - timing:
      - ON for at most 1s
      - OFF for at most 1s
      - ON for at most 1s
      - OFF for at least 0.2s


Dopo il timing sopra indicato si attiverà un secondo input boolean denominato doppio click che si disattiverà dopo 0.2 secondi con le seguenti stringhe:

      then:
        - homeassistant.service:
            service: input_boolean.turn_on
            data:
              entity_id: input_boolean.doppio_click
        - delay: 0.2s
        - homeassistant.service:
            service: input_boolean.turn_off
            data:
              entity_id: input_boolean.doppio_click

Codice Click Prolungato

Nell'ultima parte invece, viene introdotto il timing per un click prolungato. Quindi il pulsante viene premuto per un tempo che va da 1 a 3 secondi e viene rilasciato per almeno 0.5 secondi

  - timing:
    - ON for 1s to 3s
    - OFF for at least 0.5s

Come per gli altri due tipi di click anche questo attiva un' altro input boolean denominato click prolungato e a sua volta lo disattiva dopo 0.2 secondi dall'attivazione.

Scrittura del Firmware su Wemos D1 Mini

  • Terminato il tutto premete Validate e se il file appena scritto è valido avrete il simbolo del pollice verso l'alto che indica la correttezza del file
  • recatevi sulla pagina principale dell'addon e in alto a destra selezionare /dev/ttyUSB0
    Usb select from Tool Esp Home
  • Una volta selezionata la porta USB premete sul pulsante Upload 
    pulsante multi scena upload

Configurazione in Home Assistant

  • Terminato il processo di Upload su Home Assistant vi apparirà una notifica indicante la scoperta di un nuovo dispositivo
  • Aggiungete l'integrazione della nuova entità al vostro sistema, cliccando sulla scritta Check it Out e ricollocatela in un'area in Home Assistant
    Notifica new device discovered Home Assistant
     
  • Tramite l'addon Samba o Ftp server bisognerà aggiungere un package all'interno dell'omonima cartella denominato pulsantemultiscena.yaml reperibile a questo link.

Analizzando brevemente il package potremo capire che nelle prime righe sono definiti i 3 input boolean di cui il nostro pulsante fa riferimento per il corretto funzionamento denominati:

  1. input_boolean.click_singolo
  2. input_boolean.doppio_click
  3. input_boolean.click_prolungato

Di seguito avremo 3 automazioni che si attiveranno in base al tipo di input_boolean attivato dal pulsante. Quindi sostituire l'azione con il servizio desiderato per far eseguire all'automazione l'operazione da voi richiesta

In seguito potrete vedere il video tutorial e un breve esempio di  funzionamento 

Vi ricordo sempre di seguire i nostri canali

Telegram: https://t.me/vincenzocaputoblog

Youtube: https://www.youtube.com/channel/UC-_QPzJhqFr1p5oNljRPRDA e alla nostra pagina ufficiale

Pagina Facebook: https://www.facebook.com/caputovince e al

Gruppo Facebook: https://www.facebook.com/groups/homeassistantita

Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.

Disqus loading...