Tabla de contenido:

Inversor Omnik apagado en la nube y en mi MQTT: 3 pasos (con imágenes)
Inversor Omnik apagado en la nube y en mi MQTT: 3 pasos (con imágenes)

Video: Inversor Omnik apagado en la nube y en mi MQTT: 3 pasos (con imágenes)

Video: Inversor Omnik apagado en la nube y en mi MQTT: 3 pasos (con imágenes)
Video: Webinar CPS: Presentación de productos y soluciones en inversores fotovoltaicos - Jueves 04 de Abril 2024, Mes de julio
Anonim
Inversor Omnik desactivado en la nube y en mi MQTT
Inversor Omnik desactivado en la nube y en mi MQTT
Inversor Omnik desactivado en la nube y en mi MQTT
Inversor Omnik desactivado en la nube y en mi MQTT

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.

  1. 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.
  2. 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:

  1. No dar al módulo WiFi del inversor ninguna credencial para la red WiFi doméstica. Esto resuelve el problema 1.
  2. 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.
  3. 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

Desconecte el Omnik de Internet de forma permanente
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 y configure el software para Wemos D1
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

Algunas palabras sobre los mensajes, el corredor y las pruebas
Algunas palabras sobre los mensajes, el corredor y las pruebas
Algunas palabras sobre los mensajes, el corredor y las pruebas
Algunas palabras sobre los mensajes, el corredor y las pruebas
Algunas palabras sobre los mensajes, el corredor y las pruebas
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: