Tabla de contenido:
- Paso 1: desconecte el Omnik de Internet de forma permanente
- Paso 2: Descargue y configure el software para Wemos D1
- Paso 3: Algunas palabras sobre los mensajes, el corredor y las pruebas
Video: Inversor Omnik apagado en la nube y en mi MQTT: 3 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Tengo una instalación de energía solar con un inversor de cadena Omnik. Omnik es un fabricante de inversores fotovoltaicos con sede en China y fabrica dispositivos extremadamente eficientes. Opcionalmente, puede instalar un módulo WiFi para que esté "conectado". Estoy muy contento con el dispositivo, con dos notables excepciones.
- Se "llama a casa" a un servicio en la nube con sede en China y, siempre que el dispositivo esté conectado a Internet, no se puede apagar. No me gusta eso.
- El inversor no tiene una API documentada decente (ni un servicio en la nube). Como la automatización del hogar y los dispositivos de IoT están gravitando hacia los mensajes MQTT, quería que enviara mensajes MQTT.
Para este proyecto, que resuelve ambos problemas, recurrimos a nuestro quisquilloso pero confiable amigo el ESP8266. Usé un Wemos D1, pero se puede usar cualquier encarnación que te guste. El plan es:
- No dar al módulo WiFi del inversor ninguna credencial para la red WiFi doméstica. Esto resuelve el problema 1.
- Dejemos que el Wemos se conecte periódicamente al Punto de Acceso del Inversor para adquirir los datos que queramos. Podemos usar el protocolo no web de ingeniería inversa para eso. Usé este código como punto de partida.
- Luego desconéctese, conéctese a la red doméstica y publique dichos datos como un mensaje MQTT.
Nuestra lista de materiales es extremadamente simple:
- Un Wemos D1, para comprar a través del sitio web de Wemos o su sitio de subastas favorito;
- Una fuente de alimentación USB con un mini cable USB.
No se necesita cableado en absoluto. El costo es inferior a 10 euros.
Supongo que ya tienes
- un inversor Omnik con un módulo WiFi instalado;
- una infraestructura MQTT (corredor, tablero);
- una versión reciente de Arduino IDE con soporte para el procesador ESP8266 instalado.
- cierta familiaridad con lo anterior.
Hay bastantes instrucciones sobre MQTT y el uso del IDE de Arduino para un procesador ESP8266, pero no dude en preguntar en la sección de comentarios.
Paso 1: desconecte el Omnik de Internet de forma permanente
Si, como yo, tenía el inversor conectado a su red WiFi, es sorprendentemente difícil desconectarlo. Cualquier cambio que realice en la configuración de WiFi se verifica antes de aplicarlo. En lugar de pasar por obstáculos como cambiar la contraseña de cifrado del enrutador y el inversor, y luego volver a cambiar el enrutador, decidí adoptar un enfoque más limpio y comenzar desde cero.
Vaya al inversor y realice las siguientes acciones:
- presione el botón Abajo hasta que Set parpadee, luego presione Enter
- Presione el botón Abajo hasta que WiFi parpadee, luego presione Entrar
- Presione el botón Arriba para que Sí parpadee, luego presione Entrar
Conectarse al inversor
Abra su computadora y busque una red WiFi llamada AP_xxxxxxxx, los dígitos de presentación de la x. Conéctese a él. Dependiendo del sistema operativo, es posible que primero tenga que "olvidar" esa red si se ha conectado a ella antes, ya que ahora ya no existe una contraseña WiFi posiblemente almacenada.
Asegure el punto de acceso del inversor
Una vez conectado, abra su navegador, ingrese 10.10.100.254 y presione Enter. Aparecerá una ventana emergente de inicio de sesión. Ingrese admin en ambos campos para iniciar sesión. NO siga el asistente y configure el punto de acceso. Haga clic en Avanzado en el menú de la izquierda, luego en el submenú Punto inalámbrico.
Realice los siguientes cambios:
- Método de cifrado a WPA2PSK
- Tipo de cifrado a TKIP
- Ingrese una contraseña de WiFi. Anote la contraseña, la necesitará para conectarse al inversor pronto.
Haga clic en Guardar y el módulo WiFi se reiniciará. Perderá la conexión, ya que ahora requiere la contraseña. Vuelva a conectarse e ingrese la contraseña de WiFi. Una vez más, es posible que primero deba hacer que su PC "olvide" la red AP_xxxxxxxx. Ahora debería estar conectado al inversor nuevamente a través de un enlace WiFi seguro.
Asegure las páginas de configuración del inversor
Abra su navegador, ingrese 10.10.100.254 y presione Enter nuevamente. Aparecerá una ventana emergente de inicio de sesión. Nuevamente ingrese admin en ambos campos para iniciar sesión. Haga clic en Cuenta en el menú de la izquierda. Cambie el nombre de usuario y la contraseña a dos cadenas únicas y no triviales. Tendrás que ingresar ambos dos veces. Escríbalos. Haga clic en Guardar y el módulo WiFi se reiniciará. Espere unos segundos y vuelva a cargar la página. Verifique que ahora necesita el nuevo nombre de usuario y contraseña para abrir las páginas de configuración. Su inversor ahora tiene una capa adicional de seguridad contra cambios realizados por personas externas.
Con esto concluye todo el trabajo que debe realizarse en el inversor. Ahora está desconectado de Internet, razonablemente seguro, pero aún actúa como un punto de acceso WiFi que podemos usar para consultarlo.
Paso 2: Descargue y configure el software para Wemos D1
Descargue el software para Wemos. Puedes encontrar el código aquí. Necesita realizar algunos cambios para configurarlo para su red doméstica y su inversor
- homeSsid: el nombre de su red WiFi doméstica
- homePassword: la contraseña de su red WiFi doméstica
- omnikSsid: el nombre de su red WiFi Omnik. Debería verse como AP_xxxxxxxxx
- omnikPassword: la contraseña de su red WiFi Omnik que asignó en el paso anterior
- omnikIP: la dirección IP del inversor. Siempre es {10, 10, 100, 254}
- omnikCommand: la cadena de bytes necesaria para consultar su inversor, consulte a continuación.
- mqtt_server: el nombre de host de su agente MQTT
- mqtt_port: el número de puerto TCP, generalmente 1883 para conexiones inseguras o 8883 para conexiones seguras (SSL)
- mqtt_username y mqtt_password: las credenciales de su agente MQTT
- mqtt_clientID: ingrese algunos dígitos aleatorios aquí
- mqtt_outTopic: el tema de los mensajes MQTT.
La matriz de bytes omnikCommand es específica para su inversor individual. Publiqué una pequeña herramienta como una hoja de cálculo de Google para calcular la cadena. Debe ingresar el número de serie (alrededor de 10 dígitos decimales) en la celda B1 y usar la cadena calculada en la celda B4 en su boceto.
Para compilar correctamente el código, también necesita la biblioteca PubSubClient.h. Asegúrese de seleccionar la placa adecuada (Wemos D1) y el puerto, luego cargue el boceto en la placa. Puede poner la pequeña placa Wemos en un pequeño recipiente de plástico para protegerla y conectarla a la fuente de alimentación USB. ¡Colóquelo en algún lugar no muy lejos del inversor y de su enrutador WiFi y listo!
El bucle principal en el software se conecta al inversor WiFi, luego hace una conexión TCP, lee los datos, se desconecta, se conecta a la red WiFi doméstica, luego al corredor MQTT y publica los datos reformateados allí. Se necesitan poco menos de 15 segundos para hacer todo esto conectando y desconectando. Después de eso, hay un retraso de 20 segundos, por lo que los datos deben publicarse aproximadamente cada 35 segundos.
Paso 3: Algunas palabras sobre los mensajes, el corredor y las pruebas
El código genera un poco de datos de depuración, por lo que si algo no funciona, simplemente vuelva a conectar WeMos a su PC, inicie Arduino IDE y presione CTRL + SHFT + M para iniciar una consola en serie. Asegúrese de que la velocidad esté configurada en 115200.
Puede utilizar su propio corredor o utilizar un servicio basado en la nube. Ejecuto el mío, Mosquitto instalado en mi Synology NAS. Si está de acuerdo con un servicio en la nube, puede usar Adafruit o Amazon AWS o cualquier otro.
Los mensajes son cadenas JSON formateadas así:
Al arrancar, se publica el siguiente mensaje:
Esto se puede utilizar para detectar reinicios inesperados.
Los mensajes normales se ven así:
Potencia en vatios, voltajes en voltios, corrientes en amperios, frecuencia en hercios, energía en kilovatios hora y temperatura en grados centígrados.
Utilizo mosquitto_sub para comprobar los mensajes.
mosquitto_sub -h nombre de host -t "Solar / Omnik" -u usuario -P contraseña -p 1883 -v
Vea la captura de pantalla para ver los resultados. Todos los mensajes se publican con el indicador de retención establecido en verdadero.
En mi teléfono utilizo una aplicación llamada MQTT Dash y he incluido una impresión de pantalla y qué ingresar para mostrar ese dial de energía verde.
Recomendado:
Nube de color controlada por aplicación: 7 pasos (con imágenes)
App Controlled Color Cloud: Hola, en este instructivo te muestro cómo construir la iluminación de una habitación a partir de una cuadrícula de camino de grava. Todo se puede controlar a través de WLAN con una aplicación. Https://youtu.be/NQPSnQKSuoU Hubo algunos problemas con el proyecto. Pero al final puedes hacerlo con ingenio
Automatización del hogar controlada por Internet / nube con Esp8266 (aREST, MQTT, IoT): 7 pasos (con imágenes)
Automatización del hogar controlada por Internet / nube usando Esp8266 (aREST, MQTT, IoT): ¡TODOS los créditos a http://iest.io/ por el servicio en la nube! ¡IoT es el tema más discutido en el mundo ahora mismo! Los servidores y servicios en la nube que hacen esto posible es el punto de atracción del mundo de hoy … ELIMINAR LA BARRERA DE DISTANCIA fue y es el
Luz de nube inteligente LED: 11 pasos (con imágenes)
Luz de nube inteligente LED: esta es una nube inteligente LED que se puede armar con herramientas mínimas. Con el controlador puedes hacer todo tipo de patrones y opciones de color. Dado que los LED son direccionables individualmente (cada LED puede ser de un color y / o brillo diferente) el clo
Nube de pronóstico del tiempo: 11 pasos (con imágenes)
Weather Forecast Cloud: este proyecto crea una nube meteorológica utilizando una Raspberry Pi Zero W. Se conecta a la API de Yahoo Weather y, dependiendo del pronóstico para el día siguiente, cambia de color. Me inspiré en el Wisconsin Gas Building que tiene una llama en el techo que cambia
Alerta de inicio: Arduino + mensajería en la nube en una pantalla grande: 14 pasos (con imágenes)
Alerta de inicio: Arduino + mensajería en la nube en una pantalla grande: en la era de los teléfonos móviles, es de esperar que las personas respondan a su llamada las 24 horas del día, los 7 días de la semana. O … no. Una vez que mi esposa llega a casa, el teléfono permanece enterrado en su bolso de mano o la batería está descargada. No tenemos teléfono fijo. Llamando o