Sommario:

Omnik Inverter Off It's Cloud e on My MQTT: 3 passaggi (con immagini)
Omnik Inverter Off It's Cloud e on My MQTT: 3 passaggi (con immagini)

Video: Omnik Inverter Off It's Cloud e on My MQTT: 3 passaggi (con immagini)

Video: Omnik Inverter Off It's Cloud e on My MQTT: 3 passaggi (con immagini)
Video: Tesla Cybertruck Crash Test - BeamNG.Drive #shorts 2024, Luglio
Anonim
Omnik Inverter Off It's Cloud e on My MQTT
Omnik Inverter Off It's Cloud e on My MQTT
Omnik Inverter Off It's Cloud e on My MQTT
Omnik Inverter Off It's Cloud e on My MQTT

Ho un impianto solare che utilizza un inverter di stringa Omnik. Omnik è un produttore cinese di inverter fotovoltaici e realizza dispositivi estremamente efficienti. Facoltativamente, è possibile installare un modulo WiFi per renderlo "connesso". Sono molto soddisfatto del dispositivo, con due notevoli eccezioni.

  1. Telefona a casa a un servizio cloud con sede in Cina e finché il dispositivo è connesso a Internet, questo non può essere spento. Non mi piace.
  2. L'inverter non ha API documentate decenti (né il servizio cloud). Poiché i dispositivi di automazione domestica e IoT stanno gravitando verso i messaggi MQTT, volevo che inviasse messaggi MQTT.

Per questo progetto, che risolve entrambi i problemi, ci rivolgiamo al nostro amico schizzinoso ma affidabile ESP8266. Ho usato un Wemos D1, ma puoi usare qualsiasi incarnazione che ti piace. Il piano è di:

  1. Non fornire al modulo WiFi dell'inverter alcuna credenziale per la rete WiFi domestica. Questo risolve il problema 1.
  2. Lascia che Wemos si colleghi periodicamente all'Access Point dell'Inverter per acquisire i dati che desideriamo. Possiamo usare il protocollo non web di ingegneria inversa per questo. Ho usato questo codice come punto di partenza.
  3. Quindi disconnettersi, connettersi alla rete domestica e pubblicare detti dati come messaggio MQTT.

La nostra distinta base è estremamente semplice:

  • Un Wemos D1, da acquistare tramite il sito Wemos o il tuo sito di aste preferito;
  • Un alimentatore USB con un cavo USB-mini.

Non è necessario alcun cablaggio. Il costo è inferiore a 10 euro.

Immagino tu l'abbia già fatto

  • un inverter Omnik con modulo WiFi installato;
  • un'infrastruttura MQTT (broker, dashboard);
  • una versione recente dell'IDE Arduino con il supporto per il processore ESP8266 installato.
  • una certa familiarità con quanto sopra.

Ci sono alcune istruzioni su MQTT e sull'utilizzo dell'IDE Arduino per un processore ESP8266, ma sentiti libero di chiedere nella sezione commenti.

Passaggio 1: disconnettere Omnik da Internet in modo permanente

Disconnetti l'Omnik da Internet in modo permanente
Disconnetti l'Omnik da Internet in modo permanente

Se, come me, avevi l'inverter connesso alla tua rete WiFi, è sorprendentemente difficile disconnetterlo. Qualsiasi modifica apportata alle impostazioni WiFi viene verificata prima di essere applicata. Invece di fare i salti mortali come cambiare la password di crittografia del router e dell'inverter, quindi cambiare nuovamente il router, ho deciso di adottare un approccio più pulito e ricominciare da zero.

Vai all'inverter ed esegui le seguenti azioni:

  • premere il pulsante Giù finché Set non lampeggia, quindi premere Invio
  • Premi il pulsante Giù finché WiFi non lampeggia, quindi premi Invio
  • Premi il pulsante Su in modo che Sì lampeggi, quindi premi Invio

Connettersi all'inverter

Apri il tuo computer e trova una rete WiFi chiamata AP_xxxxxxxx, le cifre che presentano le x. Collegati ad esso. A seconda del sistema operativo, potresti prima dover "dimenticare" quella rete se ti sei già connesso in precedenza, poiché ora una password WiFi eventualmente memorizzata è sparita.

Proteggere il punto di accesso dell'inverter

Una volta connesso, apri il browser, inserisci 10.10.100.254 e premi Invio. Apparirà un popup di accesso. Immettere admin in entrambi i campi per accedere. NON seguire la procedura guidata e configurare il punto di accesso. Fare clic su Avanzate nel menu a sinistra, quindi sul sottomenu Punto wireless.

Apportare le seguenti modifiche:

  • Metodo di crittografia per WPA2PSK
  • Tipo di crittografia a TKIP
  • Inserisci una password Wi-Fi. Annotare la password, sarà presto necessaria per connettersi all'inverter.

Fare clic su Salva e il modulo WiFi si riavvierà. Perderai la connessione poiché ora richiede la password. Riconnettiti e inserisci la password WiFi. Di nuovo, potrebbe essere necessario far "dimenticare" al PC prima la rete AP_xxxxxxxx. Ora dovresti essere nuovamente connesso all'inverter tramite un collegamento WiFi sicuro.

Proteggi le pagine di configurazione dell'inverter

Apri il browser, inserisci 10.10.100.254 e premi nuovamente Invio. Apparirà un popup di accesso. Immettere nuovamente admin in entrambi i campi per accedere. Fare clic su Account nel menu a sinistra. Cambia il nome utente e la password in due stringhe univoche e non banali. Dovrai inserirli entrambi due volte. Prendi nota. Fare clic su Salva e il modulo WiFi si riavvierà. Attendi qualche secondo e ricarica la pagina. Verifica di aver bisogno del nuovo nome utente e password per aprire le pagine di configurazione. Il tuo inverter ora ha un ulteriore livello di sicurezza contro le modifiche apportate da estranei.

Questo conclude tutto il lavoro che deve essere fatto sull'inverter. Ora è disconnesso da Internet, ragionevolmente protetto, ma funziona ancora come un punto di accesso WiFi che possiamo usare per interrogarlo.

Passaggio 2: scarica e configura il software per Wemos D1

Scarica e configura il software per Wemos D1
Scarica e configura il software per Wemos D1

Scarica il software per Wemos. Puoi trovare il codice qui. Devi apportare alcune modifiche per configurarlo per la tua rete domestica e il tuo inverter

  • homeSsid: il nome della tua rete WiFi domestica
  • homePassword: la password della tua rete WiFi domestica
  • omnikSsid: il nome della tua rete WiFi Omnik. Dovrebbe apparire come AP_xxxxxxxxx
  • omnikPassword: la password della tua rete Omnik WiFi che hai assegnato nel passaggio precedente
  • omnikIP: l'indirizzo IP dell'inverter. Questo è sempre {10, 10, 100, 254}
  • omnikCommand: la stringa di byte necessaria per interrogare il tuo inverter, vedi sotto.
  • mqtt_server: il nome host del tuo broker MQTT
  • mqtt_port: il numero della porta TCP, solitamente 1883 per connessioni non sicure o 8883 per connessioni sicure (SSL)
  • mqtt_username e mqtt_password: le credenziali per il tuo broker MQTT
  • mqtt_clientID: inserisci qui alcune cifre casuali
  • mqtt_outTopic: l'argomento dei messaggi MQTT.

L'array di byte omnikCommand è specifico per il tuo inverter. Ho pubblicato un piccolo strumento come foglio di calcolo di Google per calcolare la stringa. Devi inserire il numero di serie (circa 10 cifre decimali) nella cella B1 e utilizzare la stringa calcolata nella cella B4 nel tuo schizzo.

Per compilare correttamente il codice è necessaria anche la libreria PubSubClient.h. Assicurati che la scheda corretta (Wemos D1) e la porta siano selezionate, quindi carica lo schizzo sulla scheda. Puoi mettere la piccola scheda Wemos in un piccolo contenitore di plastica per proteggerla e collegarla all'alimentatore USB. Mettilo da qualche parte non troppo lontano sia dall'inverter che dal router WiFi e sei a posto!

Il loop principale nel software si connette al WiFi dell'inverter, quindi effettua una connessione TCP, legge i dati, si disconnette, si connette alla rete WiFi domestica, quindi al broker MQTT e pubblica lì i dati riformattati. Ci vogliono poco meno di 15 secondi per fare tutto questo collegamento e scollegamento. Dopodiché, c'è un ritardo di 20 secondi, quindi i dati dovrebbero essere pubblicati all'incirca ogni 35 secondi.

Passaggio 3: alcune parole sui messaggi, sul broker e sui test

Qualche parola sui messaggi, sul broker e sui test
Qualche parola sui messaggi, sul broker e sui test
Qualche parola sui messaggi, sul broker e sui test
Qualche parola sui messaggi, sul broker e sui test
Qualche parola sui messaggi, sul broker e sui test
Qualche parola sui messaggi, sul broker e sui test

Il codice emette un po' di dati di debug, quindi se qualcosa non funziona, ricollega semplicemente WeMos al PC, avvia l'IDE Arduino e premi CTRL+SHFT+M per avviare una console seriale. Assicurati che la velocità sia impostata su 115200.

Puoi utilizzare il tuo broker o utilizzare un servizio basato su cloud. Eseguo il mio, Mosquitto installato sul mio Synology NAS. Se sei d'accordo con un servizio cloud, puoi utilizzare Adafruit o Amazon AWS o qualsiasi altro.

I messaggi sono stringhe JSON formattate in questo modo:

All'avvio viene pubblicato il seguente messaggio:

Questo può essere usato per rilevare riavvii imprevisti.

I messaggi normali hanno questo aspetto:

Potenza in Watt, tensioni in Volt, correnti in Ampere, frequenza in Hertz, Energia in kiloWattora e temperatura in gradi Celsius.

Uso mosquitto_sub per controllare i messaggi.

mosquitto_sub -h hostname -t "Solar/Omnik" -u utente -P password -p 1883 -v

Guarda la schermata per i risultati. Tutti i messaggi vengono pubblicati con il flag di conservazione impostato su true.

Sul mio telefono uso un'app chiamata MQTT Dash e ho incluso una serigrafia e cosa inserire per mostrare quel quadrante di alimentazione verde.

Consigliato: