martedì 4 ottobre 2022

Ecowitt in https su Home Assistant

Necessità

Avevo la necessità di redirezionare l'upload dei dati di un sensore di temperatura, in grado di comunicare solo via HTTP, su Home Assistant (HA) attualmente raggiungibile solo via HTTPS.

Problema

Il problema principale è che il mio HA è configurato per funzionare solo via HTTPS e cambiare le impostazioni tramite NGINX su HA, per avere la possibilità di usarlo sia via http che https, mi sballa altri servizi che ho attivi.


Cosa posso fare?

Cosa ho a disposizione a casa? Vediamo.... Ho un Synology NAS!!
Il Synology ha preinstallato NGINX (credo) e c'e' la possibilità di definire una lista di reverse proxy.


Soluzione

Impostare un record sul reverse proxy di Synology, in modo che possa ricevere le chiamate HTTP dal sensore di temperatura e redirezionarle su Home Assistant via HTTPS


In dettaglio

1. Impostazione del reverse proxy

Impostiamo la regola di reverse proxy su Synology
  1. Apri il Control Panel sul Synology
  2. Recupera il nome che hai dato al tuo Synology da
    Control Panel > Network > Server Name
    nell'esempio "Tank"


  3. Vai sul portale di accesso e clicca su "Reverse Proxy"
    Control Panel > Access Portal > Reverse Proxy > Create


  4. Settare i seguenti campi:
    Nome: Un nome che ti piace
    Origine:
       Protocollo: HTTP
       Nome host: Tank.local <il nome che hai al punto 2 +".local">
       Porta: 5100 <usa la porta che preferisci>
    Destinazione:
       Protocollo: HTTPS
       Nome host: 192.168.1.2 <l'ip address della tua installazione di HA>
       Porta: 8123 <la porta che usi di solito per accedere ad HA da browser. 443 se non una porta specifica>

    Questa impostazione girerà tutto il traffico della rete locale dall'indirizzo
    http://tank.local:5100
    all'indirizzo
    https://192.168.1.2:8123


2. Impostazione "trusted_proxies" su Home Assistant

Impostiamo HA in modo che accetti le chiamate che arrivano dal proxy di Synology.
  1. Apri HA dall'indirizzo che hai impostato nel reverse proxy (giusto per vedere se e' giusto ;-) )
    https://192.168.1.2:8123 (nel mio esempio)
  2. Apri il "File Editor" e seleziona il file "/config/configuration.yaml"
  3. Come riportato nella guida ufficiale di HA aggiungi le voci alla sezione http: del file configuration.yaml e riavvia HA:
    ...
    http:
       ...
       ...
       use_x_forwarded_for: true
       trusted_proxies:
         - 192.168.XXX.XXXX <IP ADDRESS DEL TUO SYNOLOGY>
       ...
       ...

3. Installazione del device su Home Assistant

Nel mio caso sto usando un sensore di temperatura esterno con il suo gateway wifi della marca ECOWITT.

Quindi da HA:
  1. Vai su settings > Devices & Services > +add integration
  2. Cerca ECOWITT e installalo.
  3. Copia i parametri (path e port) che, alla fine dell'installazione, vengono mostrati sul popup:
    Server IP: <tuo indirizzo>
    Path: /api/webhook/<tuo id>
    Port: <tua porta HA...es: 8123>
Vedrai il blocchetto Ecowitt vuoto senza nessun device.

Dobbiamo quindi andare nella pagina di configurazione di Ecowitt per dire di caricare i dati su HA.
Vai al prossimo capitolo.

4. Impostazioni sul sensore di temperatura wifi

Nel mio caso sto usando un sensore temperatura esterno con il suo gateway wifi Ecowitt e nella pagina di configurazione o nella app posso definire un server custom dove mandare i dati dei sensori.

Come definito nella guida per HA:
  1. Aprire un browser sull'indirizzo IP del gateway Ecowitt.
    Per vedere l'indirizzo IP asseganto al tuo gateway, apri la pagina web del tuo router e cerca il gateway collegato (potrebbe essere ad esempio 192.168.1.10, quindi apri il browser su http://192.168.1.10 )
  2. Seleziona la tua stazione nella pagina
  3. Vai sul "menu others > DIY Upload Servers"
  4. Clicca "next" e seleziona "costumized"
  5. Seleziona il protocollo "Ecowitt"
  6. Imposta "Server IP/Hostname" con il nome host del tuo Synology definito prima (es: tank.local)
  7. Incolla nel campo "path" il contenuto del campo "path" ottenuto dall'installazione del componente Ecowitt in HA. (Vedi paragrafo precedente es: /api/webhook/<tuo id>)
  8. Imposta il campo "port" con il valore della porta di origine definita in Synology. (es: 5100)
  9. Salva
A questo punto e' tutto configurato ed in HA dovresti vedere il dispositivo disponibile nel componente che prima era vuoto:
Se hai più devices Ecowitt, dovrai ripetere i passaggi (1...9), descritti in questo capitoletto (4), per ogni device.



Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.