Inhoudsopgave:

Omnik-omvormer uit de cloud en op mijn MQTT - Ajarnpa
Omnik-omvormer uit de cloud en op mijn MQTT - Ajarnpa

Video: Omnik-omvormer uit de cloud en op mijn MQTT - Ajarnpa

Video: Omnik-omvormer uit de cloud en op mijn MQTT - Ajarnpa
Video: HomeWizard solar omvormer koppelen 2024, Juli-
Anonim
Omnik-omvormer Off It's Cloud en op My MQTT
Omnik-omvormer Off It's Cloud en op My MQTT
Omnik-omvormer Off It's Cloud en op My MQTT
Omnik-omvormer Off It's Cloud en op My MQTT

Ik heb een zonnestroominstallatie met een Omnik stringomvormer. Omnik is een in China gevestigde fabrikant van PV-omvormers en ze maken uiterst efficiënte apparaten. Optioneel kunt u een WiFi-module installeren om deze "verbonden" te maken. Ik ben zeer tevreden met het apparaat, met twee opmerkelijke uitzonderingen.

  1. Het "belt naar huis" naar een in China gevestigde cloudservice en zolang het apparaat is verbonden met internet, kan dit niet worden uitgeschakeld. Ik hou daar niet van.
  2. De omvormer heeft geen behoorlijk gedocumenteerde API (en ook geen cloudservice). Omdat domotica en IoT-apparaten steeds meer naar MQTT-berichten worden aangetrokken, wilde ik dat het MQTT-berichten zou verzenden.

Voor dit project, dat beide problemen oplost, wenden we ons tot onze kieskeurige maar betrouwbare vriend de ESP8266. Ik heb een Wemos D1 gebruikt, maar elke gewenste incarnatie kan worden gebruikt. Het plan is om:

  1. Geef de WiFi-module van de omvormer geen inloggegevens voor het WiFi-thuisnetwerk. Dit lost probleem 1 op.
  2. Laat de Wemos periodiek verbinding maken met het toegangspunt van de omvormer om de gewenste gegevens te verkrijgen. We kunnen daarvoor het reverse engineered non-web protocol gebruiken. Ik heb deze code als uitgangspunt gebruikt.
  3. Verbreek vervolgens de verbinding, maak verbinding met het thuisnetwerk en publiceer de gegevens als een MQTT-bericht.

Onze stuklijst is uiterst eenvoudig:

  • Eén Wemos D1, te kopen via de Wemos-website of uw favoriete veilingsite;
  • Eén USB-voeding met een USB-minikabel.

Er is helemaal geen bedrading nodig. De kosten zijn onder de 10 euro.

Ik neem aan dat je dat al hebt

  • een Omnik-omvormer met een WiFi-module geïnstalleerd;
  • een MQTT-infrastructuur (makelaar, dashboard);
  • een recente versie van de Arduino IDE met ondersteuning voor de ESP8266-processor geïnstalleerd.
  • enige bekendheid met het bovenstaande.

Er zijn nogal wat instructables over MQTT en het gebruik van de Arduino IDE voor een ESP8266-processor, maar vraag het gerust in het commentaargedeelte.

Stap 1: Koppel de Omnik permanent los van internet

De Omnik permanent loskoppelen van internet
De Omnik permanent loskoppelen van internet

Als je, zoals ik, de omvormer had aangesloten op je wifi-netwerk, is het verrassend moeilijk om deze los te koppelen. Elke wijziging die u aanbrengt in de wifi-instellingen wordt gecontroleerd voordat deze wordt toegepast. In plaats van door hoepels te springen, zoals het wijzigen van het coderingswachtwoord van de router en de omvormer, en vervolgens de router terug te veranderen, besloot ik een schonere aanpak te volgen en helemaal opnieuw te beginnen.

Ga naar de omvormer en voer de volgende acties uit:

  • druk op de knop Omlaag totdat Set knippert en druk vervolgens op Enter
  • Druk op de knop Omlaag totdat WiFi knippert en druk vervolgens op Enter
  • Druk op de knop Omhoog zodat Ja knippert en druk vervolgens op Enter

Maak verbinding met de omvormer

Open uw computer en zoek een WiFi-netwerk genaamd AP_xxxxxxxx, de cijfers van de x. Verbind je ermee. Afhankelijk van het besturingssysteem moet u mogelijk eerst dat netwerk "vergeten" als u er eerder verbinding mee heeft gemaakt, omdat nu een mogelijk opgeslagen wifi-wachtwoord is verdwenen.

Beveilig het toegangspunt van de omvormer

Eenmaal verbonden, opent u uw browser, voert u 10.10.100.254 in en drukt u op Enter. Er verschijnt een inlogpop-up. Voer admin in beide velden in om in te loggen. Volg NIET de wizard en configureer het toegangspunt. Klik in het linkermenu op Geavanceerd en vervolgens op het submenu Draadloos punt.

Breng de volgende wijzigingen aan:

  • Versleutelingsmethode naar WPA2PSK
  • Versleutelingstype naar TKIP
  • Voer een wifi-wachtwoord in. Noteer het wachtwoord, u heeft dit binnenkort nodig om verbinding te maken met de omvormer.

Klik op Opslaan en de WiFi-module zal opnieuw opstarten. U verliest de verbinding omdat het nu het wachtwoord vereist. Maak opnieuw verbinding en voer het wifi-wachtwoord in. Nogmaals, het kan zijn dat u uw pc eerst het AP_xxxxxxxxx-netwerk moet laten "vergeten". U moet nu weer via een beveiligde wifi-verbinding met de omvormer verbonden zijn.

Beveilig de configuratiepagina's van de omvormer

Open uw browser, voer 10.10.100.254 in en druk nogmaals op Enter. Er verschijnt een inlogpop-up. Voer in beide velden opnieuw admin in om in te loggen. Klik op Account in het linkermenu. Verander de gebruikersnaam en het wachtwoord in twee unieke, niet triviale strings. U moet beide twee keer invoeren. Schrijf het op. Klik op Opslaan en de WiFi-module zal opnieuw opstarten. Wacht een paar seconden en laad de pagina opnieuw. Controleer of u nu de nieuwe gebruikersnaam en het nieuwe wachtwoord nodig hebt om de configuratiepagina's te openen. Uw omvormer heeft nu een extra beveiligingslaag tegen wijzigingen door buitenstaanders.

Hiermee zijn alle werkzaamheden aan de omvormer afgerond. Het is nu losgekoppeld van internet, redelijk beveiligd, maar het fungeert nog steeds als een WiFi-toegangspunt dat we kunnen gebruiken om het op te vragen.

Stap 2: Download en configureer de software voor de Wemos D1

Download en configureer de software voor de Wemos D1
Download en configureer de software voor de Wemos D1

Download de software voor de Wemos. De code vind je hier. U moet een paar wijzigingen aanbrengen om het te configureren voor uw thuisnetwerk en uw omvormer

  • homeSsid: de naam van je wifi-thuisnetwerk
  • homePassword: het wachtwoord van je wifi-thuisnetwerk
  • omnikSsid: de naam van uw Omnik WiFi-netwerk. Het zou eruit moeten zien als AP_xxxxxxxxxx
  • omnikPassword: het wachtwoord van uw Omnik WiFi-netwerk dat u in de vorige stap hebt toegewezen
  • omnikIP: het IP-adres van de omvormer. Dit is altijd {10, 10, 100, 254}
  • omnikCommand: de bytestring die nodig is om uw omvormer op te vragen, zie hieronder.
  • mqtt_server: de hostnaam van uw MQTT-makelaar
  • mqtt_port: het TCP-poortnummer, meestal 1883 voor onveilige of 8883 voor beveiligde (SSL) verbindingen
  • mqtt_username en mqtt_password: de inloggegevens voor uw MQTT-makelaar
  • mqtt_clientID: voer hier enkele willekeurige cijfers in
  • mqtt_outTopic: het onderwerp van de MQTT-berichten.

De omnikCommand byte-array is specifiek voor uw individuele omvormer. Ik heb een kleine tool gepubliceerd als een Google-spreadsheet om de string te berekenen. U moet het serienummer (ongeveer 10 decimale cijfers) invoeren in cel B1 en de tekenreeks gebruiken die is berekend in cel B4 in uw schets.

Om de code met succes te compileren, hebt u ook de PubSubClient.h-bibliotheek nodig. Zorg ervoor dat het juiste bord (Wemos D1) en poort is geselecteerd en upload vervolgens de schets naar het bord. Je kunt het kleine Wemos-bord ter bescherming in een kleine plastic container doen en aansluiten op de USB-voeding. Zet hem ergens niet te ver van zowel de omvormer als je wifi-router en je bent klaar!

De hoofdlus in de software maakt verbinding met de wifi van de omvormer, maakt er vervolgens een TCP-verbinding mee, leest de gegevens, verbreekt de verbinding, maakt verbinding met het wifi-thuisnetwerk en vervolgens met de MQTT-broker en publiceert de opnieuw geformatteerde gegevens daar. Het duurt iets minder dan 15 seconden om dit alles aan te sluiten en los te koppelen. Daarna is er een vertraging van 20 seconden, dus de gegevens moeten ongeveer elke 35 seconden worden gepubliceerd.

Stap 3: Een paar woorden over de berichten, de makelaar en testen

Een paar woorden over de berichten, de makelaar en testen
Een paar woorden over de berichten, de makelaar en testen
Een paar woorden over de berichten, de makelaar en testen
Een paar woorden over de berichten, de makelaar en testen
Een paar woorden over de berichten, de makelaar en testen
Een paar woorden over de berichten, de makelaar en testen

De code voert een beetje foutopsporingsgegevens uit, dus als iets niet werkt, sluit u de WeMos gewoon opnieuw aan op uw pc, start u de Arduino IDE en drukt u op CTRL+SHFT+M om een seriële console te starten. Zorg ervoor dat de snelheid is ingesteld op 115200.

U kunt uw eigen makelaar gebruiken of een cloudgebaseerde service gebruiken. Ik draai mijn eigen, Mosquitto geïnstalleerd op mijn Synology NAS. Als je OK bent met een cloudservice, kun je Adafruit of Amazon AWS of een andere gebruiken.

De berichten zijn JSON-tekenreeksen die als volgt zijn opgemaakt:

Bij het opstarten wordt het volgende bericht gepubliceerd:

Dit kan worden gebruikt om onverwachte herstarts te detecteren.

Normale berichten zien er als volgt uit:

Vermogen in watt, spanningen in volt, stromen in ampère, frequentie in hertz, energie in kilowattuur en temperatuur in graden Celsius.

Ik gebruik mosquitto_sub om de berichten te controleren.

mosquitto_sub -h hostnaam -t "Solar/Omnik" -u gebruiker -P wachtwoord -p 1883 -v

Zie de screengrab voor de resultaten. Alle berichten worden gepubliceerd met de bewaarvlag ingesteld op waar.

Op mijn telefoon gebruik ik een app genaamd MQTT Dash en ik heb een schermafdruk toegevoegd en wat ik moet invoeren om die groene power dial te laten zien.

Aanbevolen: