Skip to content

A proof of concept script demonstrating how to connect to a remote SMA Cluster Controller and parse its XML files for the instantaneous data values of attached inverters faster than the modbus interface allows.

Notifications You must be signed in to change notification settings

blackborn66/SMA-Cluster-Controller-Python-Web-Scraper

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SMA Cluster Controller Python Web Scraper

Diagram showing the modbus timing constraints of an SMA Cluster Controller

Typically an SMA Cluster Controller takes between 5 and 10 seconds to respond to a modbus TCP request, even when it originates from within the local network. On top of this, the Cluster Controller requires that requests for data are made at least 10 seconds apart. Once the cluster controller receives a modbus request, it converts it to a Speedwire request that it sends out to the connected inverters. Each inverter has a response time of roughly 1 second, and cannot submit more than 30 data points within the scope of a single request. All of this ends up creating a large temporal barrier when trying to poll inverters for data with a granularity of less than 1-minute.

This script acts as a proof of concept showing that it is possible to connect to the web interface of an SMA Cluster Controller in order to fetch its current instantaneous values faster than would be possible by utilizing its modbus interface. By remotely logging into the cluster controller and grabbing a dump of the XML backend that drives the graphical user interface, we can parse out instantaneous values that are updated roughly every 2 seconds. This removes the need to install additional hardware on a site or bypass an existing cluster controller in order to get faster data reads on SMA inverters, and moves the bulk of optimization potential out of the hands of the manufacturer and into the hands of the developer interested in polling the devices.

About

A proof of concept script demonstrating how to connect to a remote SMA Cluster Controller and parse its XML files for the instantaneous data values of attached inverters faster than the modbus interface allows.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%