Python Plugin: MqttMapper

Python and python framework

Moderator: leecollings

FlyingDomotic
Posts: 477
Joined: Saturday 27 February 2016 0:30
Target OS: Raspberry Pi / ODroid
Domoticz version: 2020.2
Contact:

Re: Python Plugin: MqttMapper

Post by FlyingDomotic »

Hello,

I don't known Growatt device, nor VPP.

Anyway, if new device/firmware sends JSON data to MQTT, MQTT Mapper should be able to read or write it.

Could you explain what kind of data is sent to MQTT?
User avatar
winner61
Posts: 23
Joined: Friday 02 August 2024 12:13
Target OS: NAS (Synology & others)
Domoticz version: 2026.2
Location: Friesland / NL
Contact:

Re: Python Plugin: MqttMapper

Post by winner61 »

I asked Gemini for a clear answer, as far as I can check this is a valid analasys.

In the context of a Growatt inverter protocol, VPP stands for Virtual Power Plant.
While the standard Growatt Modbus-RTU protocol is primarily designed to just read data, the Growatt VPP protocol is specifically developed for both reading and remotely controlling the inverter and any connected battery storage system.

Key Features of the VPP Protocol

• Standardized Registers: In older Growatt protocols, Modbus register addresses often vary depending on the specific inverter model. The VPP protocol standardizes this, making vital registers (like battery state of charge and power controls) almost identical across different (battery) inverters.
• Active Remote Control: Beyond reading baseline values like solar production or battery percentage, the VPP protocol includes registers that allow external software to issue direct commands. This includes:
• Forcing the battery to charge or discharge (e.g., based on dynamic energy tariffs or grid congestion).
• Setting real-time export limits (curtailment).
• Use Case: This protocol is widely utilized by smart Energy Management Systems (EMS), home automation platforms (like Home Assistant), and energy aggregators to integrate your solar setup into a "smart grid network."
When you set the RS485 communication port of your Growatt inverter to "VPP mode", you are enabling advanced, two-way communication instead of just passive monitoring.
FlyingDomotic
Posts: 477
Joined: Saturday 27 February 2016 0:30
Target OS: Raspberry Pi / ODroid
Domoticz version: 2020.2
Contact:

Re: Python Plugin: MqttMapper

Post by FlyingDomotic »

Nice!

It seems that VPP is using RS485 (serial) protocol.

Do you have any gateway that speaks RS485 on one side, and MQTT on the other? Growatt2mqtt ? Other ?

What kind of MQTT messages are received?
User avatar
winner61
Posts: 23
Joined: Friday 02 August 2024 12:13
Target OS: NAS (Synology & others)
Domoticz version: 2026.2
Location: Friesland / NL
Contact:

Re: Python Plugin: MqttMapper

Post by winner61 »

Hi FD, I'm just figuring things out and have RMMS (Radzio Modbus Master Simulator) installed. In the settings I put it on 'Modbus TCP' and can directly read registers over tcp/ip. My Datalogger (ShineWifi-X, attached to the inverter) has an IP on my local network. Normally this datalogger only communicates with the growatt server. With grott and mqttmapper I could catch the data that goes to the dataserver. Now there is a direct line over TCP. You get values of requested input or holding registers. With the radzio app I can do such requests but that is for testing if there is any data on a given register.

If you are interested Andi Burger put something together to read VPP. https://github.com/andiburger/growatt2mqtt/tree/tcp_dev

I think that this growatt2mqtt is the way to go and get the data from mqtt via your mqttmapper.
Post Reply