Open Inverter Gateway

Firmware replacement for Growatt ShineWiFi-S

Internet of Things (IoT)C++MIT

Abstract

Open Inverter Gateway is an open-source Internet of Things (IoT) project. Firmware replacement for Growatt ShineWiFi-S. Firmware replacement for Growatt ShineWiFi-S (serial), ShineWiFi-X (USB) or custom-built sticks (ESP8266/ESP32). It is built using C++, ESP8266, MQTT, Arduino. Key capabilities include: Graphical UI using a built-in webserver with live visualization. Screenshots; The inverter is queried using Modbus protocol; Inverter data is made available via. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.

1. Introduction

Firmware replacement for Growatt ShineWiFi-S (serial), ShineWiFi-X (USB) or custom-built sticks (ESP8266/ESP32).

2. Objective

Firmware replacement for Growatt ShineWiFi-S

This project demonstrates how C++, ESP8266, MQTT can be applied to a real-world Internet of Things (IoT) problem.

3. Key Features / Modules

  • Graphical UI using a built-in webserver with live visualization. Screenshots.
  • The inverter is queried using Modbus protocol.
  • Inverter data is made available via
  • The data received will be transmitted using MQTT to a server of your choice.
  • The data received is also provided as JSON and Prometheus format
  • Firmware update via WifiManager
  • Basic access to arbitrary modbus data
  • Tries to autodetect which stick type to use
  • Configuration access point for initial configuration of Wifi and MQTT server (IP, SSID, Password)
  • Supports Growatt protocol versions v1.20, v1.24 and v3.05

4. Technology Stack

C++ESP8266MQTTArduino
  • Flash the image to your hardware (ESP32 / ESP8266esp32 / ShineWifiX-S / ShineWifi-X / …). Details on how to do this are provided in the documentation.
  • A configuration WiFi access point (SSID: GrowattConfig, Pass: growsolar) will be available.
  • If you need to reconfigure the stick, you have to either
  • Press the AP button on the front (configured with ENABLE_AP_BUTTON in Config.h)
  • Reset the stick twice within 2-10 seconds.
  • ShineWifi-S with a Growatt Inverter connected via serial (Modbus over RS232 with level shifter)
  • ShineWifi-X with a Growatt Inverter connected via USB (USB-Serial Chip from Exar)
  • Wemos-D1 with a Growatt Inverter connected via USB (USB-Serial Chip: CH340)

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • Arduino IDE / PlatformIO or a C++ compiler (g++)
  • Target board (e.g. Arduino, ESP32) where applicable
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/OpenInverterGateway/OpenInverterGateway.git
cd OpenInverterGateway

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add a mobile dashboard using Blynk or Firebase
  • Store readings in a cloud database for history charts
  • Add alerts via SMS / Telegram when thresholds are crossed

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which microcontroller / board and sensors are used and why?
  2. How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
  3. Where is the sensor data stored and visualised?
  4. How is power consumption managed?
  5. How would you secure the device and its communication?

9. Source Code & License

This project is developed by OpenInverterGateway and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Internet of Things (IoT) Internship