Table des matières:

Onduleur Omnik Off It's Cloud et sur My MQTT : 3 étapes (avec photos)
Onduleur Omnik Off It's Cloud et sur My MQTT : 3 étapes (avec photos)

Vidéo: Onduleur Omnik Off It's Cloud et sur My MQTT : 3 étapes (avec photos)

Vidéo: Onduleur Omnik Off It's Cloud et sur My MQTT : 3 étapes (avec photos)
Vidéo: solax battery system finished with chint meter 2024, Juillet
Anonim
Onduleur Omnik Off It's Cloud et on My MQTT
Onduleur Omnik Off It's Cloud et on My MQTT
Onduleur Omnik Off It's Cloud et on My MQTT
Onduleur Omnik Off It's Cloud et on My MQTT

J'ai une installation d'énergie solaire utilisant un onduleur string Omnik. Omnik est un fabricant chinois d'onduleurs photovoltaïques et ils fabriquent des appareils extrêmement efficaces. En option, vous pouvez installer un module WiFi pour le rendre "connecté". Je suis très satisfait de l'appareil, à deux exceptions notables près.

  1. Il "téléphone à la maison" vers un service cloud basé en Chine et tant que l'appareil est connecté à Internet, il ne peut pas être éteint. Je n'aime pas ça.
  2. L'onduleur n'a pas d'API documentée décente (pas plus que le service cloud). Comme la domotique et les appareils IoT gravitent vers les messages MQTT, je voulais qu'il envoie des messages MQTT.

Pour ce projet, qui résout les deux problèmes, nous nous tournons vers notre ami pointilleux mais fiable l'ESP8266. J'ai utilisé un Wemos D1, mais n'importe quelle incarnation que vous aimez peut être utilisée. Le plan est de:

  1. Ne donnez aucune information d'identification au module WiFi de l'onduleur au réseau WiFi domestique. Cela résout le problème 1.
  2. Laissez le Wemos se connecter périodiquement au point d'accès de l'onduleur pour acquérir les données que nous voulons. Nous pouvons utiliser le protocole non Web d'ingénierie inverse pour cela. J'ai utilisé ce code comme point de départ.
  3. Déconnectez-vous ensuite, connectez-vous au réseau domestique et publiez lesdites données sous forme de message MQTT.

Notre nomenclature est extrêmement simple:

  • Un Wemos D1, à acheter via le site Web Wemos ou votre site d'enchères préféré;
  • Une alimentation USB avec un câble mini USB.

Aucun câblage n'est nécessaire. Le coût est inférieur à 10 euros.

je suppose que tu as déjà

  • un onduleur Omnik avec un module WiFi installé;
  • une infrastructure MQTT (courtier, tableau de bord);
  • une version récente de l'IDE Arduino avec prise en charge du processeur ESP8266 installé.
  • une certaine familiarité avec ce qui précède.

Il existe de nombreuses instructions sur MQTT et l'utilisation de l'IDE Arduino pour un processeur ESP8266, mais n'hésitez pas à demander dans la section commentaires.

Étape 1: Déconnectez l'Omnik d'Internet de façon permanente

Déconnecter définitivement l'Omnik d'Internet
Déconnecter définitivement l'Omnik d'Internet

Si, comme moi, vous aviez l'onduleur connecté à votre réseau WiFi, il est étonnamment difficile de le déconnecter. Toute modification apportée aux paramètres WiFi est vérifiée avant d'être appliquée. Au lieu de sauter à travers des cerceaux tels que changer le mot de passe de cryptage du routeur et de l'onduleur, puis changer le routeur, j'ai décidé d'adopter une approche plus propre et de recommencer à zéro.

Accédez à l'onduleur et effectuez les actions suivantes:

  • appuyez sur le bouton Bas jusqu'à ce que Set clignote, puis appuyez sur Enter
  • Appuyez sur le bouton Bas jusqu'à ce que WiFi clignote, puis appuyez sur Entrée
  • Appuyez sur le bouton Up pour que Yes clignote, puis appuyez sur Enter

Se connecter à l'onduleur

Ouvrez votre ordinateur et trouvez un réseau WiFi appelé AP_xxxxxxxx, les chiffres de présentation du x. Connectez-vous. Selon le système d'exploitation, vous devrez peut-être d'abord lui faire "oublier" ce réseau si vous vous y êtes déjà connecté, car un mot de passe WiFi éventuellement stocké a maintenant disparu.

Sécuriser le point d'accès de l'onduleur

Une fois connecté, ouvrez votre navigateur, entrez 10.10.100.254 et appuyez sur Entrée. Une fenêtre de connexion apparaîtra. Entrez admin dans les deux champs pour vous connecter. Ne suivez PAS l'assistant et configurez le point d'accès. Cliquez sur Avancé dans le menu de gauche, puis sur le sous-menu Point sans fil.

Effectuez les modifications suivantes:

  • Méthode de cryptage vers WPA2PSK
  • Type de cryptage vers TKIP
  • Entrez un mot de passe Wi-Fi. Notez le mot de passe, vous en aurez besoin pour vous connecter bientôt à l'onduleur.

Cliquez sur Enregistrer et le module WiFi redémarrera. Vous perdrez la connexion car il nécessite maintenant le mot de passe. Reconnectez-vous et entrez le mot de passe WiFi. Encore une fois, vous devrez peut-être d'abord faire en sorte que votre PC "oublie" le réseau AP_xxxxxxxx. Vous devriez maintenant être à nouveau connecté à l'onduleur via une liaison WiFi sécurisée.

Sécuriser les pages de configuration de l'onduleur

Ouvrez votre navigateur, entrez 10.10.100.254 et appuyez à nouveau sur Entrée. Une fenêtre de connexion apparaîtra. Entrez à nouveau admin dans les deux champs pour vous connecter. Cliquez sur Compte dans le menu de gauche. Remplacez le nom d'utilisateur et le mot de passe par deux chaînes uniques et non triviales. Vous devrez les saisir deux fois. Écrivez-les. Cliquez sur Enregistrer et le module WiFi redémarrera. Attendez quelques secondes et rechargez la page. Vérifiez que vous avez maintenant besoin du nouveau nom d'utilisateur et du nouveau mot de passe pour ouvrir les pages de configuration. Votre onduleur dispose désormais d'une couche de sécurité supplémentaire contre les modifications apportées par des tiers.

Ceci conclut tous les travaux qui doivent être effectués sur l'onduleur. Il est maintenant déconnecté d'Internet, raisonnablement sécurisé, mais il agit toujours comme un point d'accès WiFi que nous pouvons utiliser pour l'interroger.

Étape 2: Téléchargez et configurez le logiciel pour le Wemos D1

Téléchargez et configurez le logiciel pour le Wemos D1
Téléchargez et configurez le logiciel pour le Wemos D1

Téléchargez le logiciel pour le Wemos. Vous pouvez trouver le code ici. Vous devez apporter quelques modifications pour le configurer pour votre réseau domestique et votre onduleur

  • homeSsid: le nom de votre réseau WiFi domestique
  • homePassword: le mot de passe de votre réseau WiFi domestique
  • omnikSsid: le nom de votre réseau WiFi Omnik. Cela devrait ressembler à AP_xxxxxxxxx
  • omnikPassword: le mot de passe de votre réseau WiFi Omnik que vous avez attribué à l'étape précédente
  • omnikIP: l'adresse IP de l'onduleur. C'est toujours {10, 10, 100, 254}
  • omnikCommand: la chaîne d'octets requise pour interroger votre onduleur, voir ci-dessous.
  • mqtt_server: le nom d'hôte de votre courtier MQTT
  • mqtt_port: le numéro de port TCP, généralement 1883 pour les connexions non sécurisées ou 8883 pour les connexions sécurisées (SSL)
  • mqtt_username et mqtt_password: les informations d'identification de votre courtier MQTT
  • mqtt_clientID: entrez des chiffres aléatoires ici
  • mqtt_outTopic: le sujet des messages MQTT.

Le tableau d'octets omnikCommand est spécifique à votre onduleur individuel. J'ai publié un petit outil sous forme de feuille de calcul Google pour calculer la chaîne. Vous devez saisir le numéro de série (environ 10 chiffres décimaux) dans la cellule B1 et utiliser la chaîne calculée dans la cellule B4 de votre croquis.

Pour compiler avec succès le code, vous avez également besoin de la bibliothèque PubSubClient.h. Assurez-vous que la carte (Wemos D1) et le port appropriés sont sélectionnés, puis téléchargez le croquis sur la carte. Vous pouvez mettre la petite carte Wemos dans un petit récipient en plastique pour la protéger et la connecter à l'alimentation USB. Placez-le quelque part pas trop loin de l'onduleur et de votre routeur WiFi et le tour est joué !

La boucle principale du logiciel se connecte au WiFi de l'onduleur, puis y établit une connexion TCP, lit les données, se déconnecte, se connecte au réseau WiFi domestique, puis au courtier MQTT, et y publie les données reformatées. Il faut un peu moins de 15 secondes pour effectuer toutes ces connexions et déconnexions. Après cela, il y a un délai de 20 secondes, donc les données doivent être publiées environ toutes les 35 secondes.

Étape 3: Quelques mots sur les messages, le courtier et les tests

Quelques mots sur les messages, le courtier et les tests
Quelques mots sur les messages, le courtier et les tests
Quelques mots sur les messages, le courtier et les tests
Quelques mots sur les messages, le courtier et les tests
Quelques mots sur les messages, le courtier et les tests
Quelques mots sur les messages, le courtier et les tests

Le code génère un peu de données de débogage, donc si quelque chose ne fonctionne pas, connectez simplement à nouveau le WeMos à votre PC, démarrez l'IDE Arduino et appuyez sur CTRL + MAJ + M pour démarrer une console série. Assurez-vous que la vitesse est réglée sur 115200.

Vous pouvez soit utiliser votre propre courtier, soit utiliser un service basé sur le cloud. Je lance le mien, Mosquitto installé sur mon Synology NAS. Si vous êtes d'accord avec un service cloud, vous pouvez utiliser Adafruit ou Amazon AWS ou tout autre.

Les messages sont des chaînes JSON formatées comme ceci:

Au démarrage, le message suivant est publié:

Cela peut être utilisé pour détecter les redémarrages inattendus.

Les messages normaux ressemblent à ceci:

Puissance en watts, tensions en volts, courants en ampères, fréquence en hertz, énergie en kilowattheures et température en degrés Celsius.

J'utilise mosquitto_sub pour vérifier les messages.

mosquitto_sub -h nom d'hôte -t "Solar/Omnik" -u utilisateur -P mot de passe -p 1883 -v

Voir la capture d'écran pour les résultats. Tous les messages sont publiés avec l'indicateur de conservation défini sur true.

Sur mon téléphone, j'utilise une application appelée MQTT Dash et j'ai inclus une impression d'écran et ce qu'il faut entrer pour afficher ce cadran d'alimentation vert.

Conseillé: