Gestire dispositivi domotici con ESPurna da SlimLine

  1. Home
  2. Knowledge Base
  3. PLC SlimLine/NetSyst Cortex M7/ARM7
  4. Programmazione LogicLab
  5. Applicazioni
  6. Gestire dispositivi domotici con ESPurna da SlimLine

ESPurna è un firmware alternativo Open Source per dispositivi basati su chip ESP8266 quali, ad esempio, quelli della linea SonOff della ITEAD, la linea Shelly della Allterco e moltissimi altri. Il firmware sostituisce quello “di fabbrica”, introducendo supporto al protocollo MQTT, a timer, aggiornamenti OTA (over the air), interfaccia web, supporto a Telnet, integrazione con Alexa, Google assistant, Domoticz, Home assistant e molto altro.

Qui il repository con le immagini binarie pronte per tutti i dispositivi supportati, per trasferire l'immagine binaria sul modulo ho usato Nodemcu Flasher. Dal programma flasher selezionare l'immagine binaria e trasferirla nella FLASH del modulo.

Immagine modulo SonOff basic

Terminata l'operazione il modulo genererà una rete WiFi, connettendosi a questa rete (La password è fibonacci) è possibile aprire la pagina web di configurazione (Indirizzo dispositivo 192.168.4.1). Alla prima connessione viene richiesta l'impostazione della password di accesso che deve avere 8 caratteri di cui almeno 1 maiuscolo, il dispositivo disconnette dal suo WiFi tutti i dispositivi connessi, occorre riconnettersi utilizzando la password definita.

Ora eseguire tutte le impostazioni richieste, impostare la rete WiFi a cui il modulo deve connettersi con la relativa password di accesso, impostare l'indirizzo IP del modulo e tutte le altre configurazioni richieste. Riavviando il modulo si connetterà alla rete WiFi definita e sarà possibile raggiungerlo con il suo indirizzo IP. Verranno richieste le credenziali di accesso Username:admin, e la password che avete impostato.

La pagina di stato riporta un riepilogo di tutte le impostazioni ed un interruttore che permette di comandare il relè del dispositivo. Accedendo ai vari menù è possibile configurare tutte le varie possibilità offerte da ESPurna.

Nel caso il dispositivo non sia più raggiungibile tramite la rete WiFi, premendo due volte consecutive sul tastino il dispositivo si riconfigura come access point WiFi e sarà possibile riconnettersi per una sua riconfigurazione.

Il mio scopo era di poter gestire dai nostri sistemi SlimLine i dispostivi con il software ESPurna, ho preferito l'accesso Telnet al posto delle HTTP Api perchè avendo il dispositivo un solo server HTTP accedendo con le API ne impedivo l'accesso da browser.

Per la gestione dei comandi Telnet sui nostri sistemi si utilizza il FB CLIManager, per poter accedere ai dispositivi occorre abilitarne l'accesso da Telnet. Dalla pagina web Admin occore abilitare i campi  Enable TELNET e TELNET password. In questo modo all'accesso viene richiesta la password di autenticazione (Stessa password definita per l'accesso da browser), ho disabilitato anche l'invio del messaggio di heartbeat.

Ho realizzato dei blocchi funzione appositi per un dispositivo SonOff o Shelly 1 ad un solo relè, ed uno per la gestione di un dispositivo Shelly 2.5 a due relè. I FB gestiscono un comando di lettura stato ciclico che oltre a permettere di conoscere lo stato del relè a bordo del dispositivo ha anche la funzione di controllo di heartbeat. Se il dispositivo non risponde al comando il FB segnala errore.

Esempi

Come utilizzare gli esempi.

SonOffManage: Questo programma esegue la gestione di un dispositivo SonOff con un relè di uscita utilizzando il FB ESPurnaSonOff. E' possibile gestire i comandi tramite LogicLab da debug.

Shelly25Manage: Questo programma esegue la gestione di un dispositivo Shelly 2.5 con due relè di uscita utilizzando il FB ESPurnaShelly25. E' possibile gestire i comandi tramite LogicLab da debug.

LogicLab (Ptp173)
PROGRAM SonOffManage
VAR
    CLI : CLIManager; (* CLI manager *)
    SonOff : ESPurnaSonOff; (* Dispositivo SonOff *)
END_VAR

// *****************************************************************************
// PROGRAM "SonOffManage"
// *****************************************************************************
// Viene gestito il dispositivo utilizzando il blocco funzione.
// -----------------------------------------------------------------------------

    // -------------------------------------------------------------------------
    // INIZIALIZZAZIONI
    // -------------------------------------------------------------------------
    // Eseguo inizializzazione.

    IF (SysFirstLoop) THEN

        // Parametrizzo FB CLI manager.

        CLI.SpyOn:=TRUE; //Spy On

        // Parametrizzo FB gestione dispositivo.
        // Se tempo controllo superiore a 15 secondi SonOff chiude connessione.

        SonOff.SpyOn:=TRUE; //Attiva  spionaggio
        SonOff.CLI:=ADR(CLI); //CLI manager FB
        SonOff.DAddress:=ADR('192.168.0.183'); //Indirizzo dispositivo
        SonOff.Password:=ADR('B3rT4sEr'); //Password definition
        SonOff.ChkTime:=15.0; //Tempo controllo (S)
    END_IF;

    // -------------------------------------------------------------------------
    // GESTIONE DISPOSITIVO
    // -------------------------------------------------------------------------
    // Eseguo gestione FBs.

    CLI(); //Eseguo CLI Manager
    SonOff(Enable:=NOT(SonOff.Done)); //Gestione dispositivo

// [End of file]
LogicLab (Ptp173)
LogicLab (Ptp173)
LogicLab (Ptp173)

Ti è stato utile questo articolo ?

Ultimo aggiornamento: 16 Dicembre 2019