This little software allows you to retrieve parameters and real-time status of an inverter. Compatible with superWatt VM2 inverter also knows Voltronic Axpert VMII (3K/5K).
It's look like this:
This inverter contains 2 ports for communication (USB and Serial). This program works (for the moment) with USB cable.
- Raspberry or linux compatible hardware, and an usb cable.
- Java for gradle dependencies resolutions.
- Python 3.7.3 (no guarantee that others versions works, viva Python !)
git clone https://github.com/coxifred/pimpMySuperWatt.git
cd pimpMySuperWatt
chmod 755 ./startPython.sh
./startPython.sh
output:
chmod 755 ./startPython.sh
./startPython.sh
PimpMySuperWatt python direct installation
Check prequisites...
- Checking python version need 3.7 : OK
- Cleaning .venv python : OK
- Creating .venv python : OK
- Installing dependencies :
* crcmod==1.7 : OK
* pyusb==1.0.2 : OK
* pyserial==3.4 : OK
* requests==2.24.0 : OK
* flask==2.1.0 : OK
* Flask-Caching==1.9.0 : OK
* Flask-APScheduler==1.11.0 : OK
* apscheduler==3.6.3 : OK
* crc16==0.1.1 : OK
* influxdb==5.3.0 : OK
* paho-mqtt==1.5.0 : OK
* netifaces==0.10.9 : OK
- Starting PimpMySuperwatt
2022-04-26 19:59:53.161798 [MainThread] INF CORE Instanciate Singleton
2022-04-26 19:59:53.170654 [MainThread] INF CORE Starting PimpMySuperWatts on dockerProd
2022-04-26 19:59:53.170818 [MainThread] INF CORE Analysing arguments
2022-04-26 19:59:53.172140 [MainThread] INF CORE Debug activated
git clone https://github.com/coxifred/pimpMySuperWatt.git
cd pimpMySuperWatt
chmod 755 ./start.sh ./debug.sh
./start.sh or ./debug.sh
output:
> Task :python:checkPython
Using python 3.7.3 from /root/pimpMySuperWatt/python/.gradle/python (.gradle/python/bin/python)
Using pip 20.1.1 from /root/pimpMySuperWatt/python/.gradle/python/lib/python3.7/site-packages/pip (python 3.7)
> Task :python:runPython
[python] .gradle/python/bin/python ./superwatt.py --debug superwatt.json
2020-07-07 22:57:11.934332 [MainThread] INF CORE Instanciate Singleton
2020-07-07 22:57:12.101406 [MainThread] INF CORE Starting PimpMySuperWatts on pimpMySuperWatt
2020-07-07 22:57:12.102219 [MainThread] INF CORE Analysing arguments
2020-07-07 22:57:12.114759 [MainThread] INF CORE Debug activated
2020-07-07 22:57:12.141037 [MainThread] INF CORE Config file exist /root/pimpMySuperWatt/python/superwatt.json
- Note 1: start.sh or debug.sh launch gradlew in background (nohup).
- Note 2: A log is created under /tmp and named superwatt.log
- Note 3: stop.sh to stop it.
Configuration file is superwatt.json
{
"instance" : "SuperWatt Garage", <- Free label
"debug" : true, <- debug mode
"communicationClass" : "usbConnector", <- Class connector (usbConnector for the moment)
"portPath" : "/dev/ttyUSB0", <- the port Path
"webserver" : true, <- If you want a web interface
"webserverDebug" : true, <- debug web
"webClass" : "site", <- Class for app web.
"httpBind" : "0.0.0.0", <- Binding ip address for web
"httpPort" : 60000, <- Port for http interface
"mqttServers" : [ <- If you want to publish to a mqtt broker (or multiples)
{
"mqttServer" : "192.168.2.30",
"mqttServerPort" : 1883,
"mqttTopic" : "pimpMySuperWatt/superWattGarage"
}
],
"influxDbUrls" : [ <- If you want to push results in an influxDb instance (or multiples)
{
"username" : "root",
"password" : "root",
"dbName" : "pimpMySuperWatt",
"dbHost" : "192.168.2.51",
"dbPort" : "8086"
}
],
"queryPoolingInterval" : 30, <- Inverter will be queried every 30s (min 2s)
"queryPluginInterval" : 30 <- Plugin solicitation
}
Simply connect with http://<your_ip>:60000, and wait for informations
API available (See buttons)
Here is a sample dashboard for grafana. Click here to download it.
See the demo ? login guest password guest Click here for DEMO
-
solarPosition
Provides to influxDb sun azimuth and zenith. Just fill python/plugins/solarPosition/solarPosition.json file with your latitude and longitude.
{ "latitude" : 47.0000, "longitude" : 6.0000, "dst" : 1 }
See azimut and zenith in Grafana with your pv production :
Create your own configuration:
- /superwatt.json
- /solarposition.json
Create this docker compose file:
version: "2"
services:
"pimpmysuperwatt":
privileged: true
image: "coxifred/pimpmysuperwatt"
container_name: "pimpmysuperwatt"
restart: always
ports:
- "61000:60000"
volumes:
- /superwatt.json:/superwatt.json
- /solarPosition.json:/plugins/solarPosition/solarPosition.json
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
Then simply run:
docker-compose up -d
Should be running under http://<your_host>:61000