Wiki Home Page

RDU

Welcome to Piko stats !!

This tool has been written to get some stats from a solar inverter 'Piko' from K-S. It should also work on 'Convert' inverter from S-F (same hardware) but not been tested (Let me know your test result on this hardware).

The supplier provide a free but closed source windows only application. The inverter itself provide a web page with some stats but pretty light. So I wrote this apps to catch the data from the inverter network interface and save them in a database file on a server for later export and/or graph. I also use those data to upload to online portal with a small script calling the portal API.

The code is written in Python 2.x and is platform independant. It has be tested extensively on Linux with Python 2.5.2 and Python 2.7.9.
Some tests have also been done on Windows using native Python 2.7.x. And also some tests on Windows using Cygwin and cygwin Python 2.7.x.
It Works too on Raspberry Pi (Tested on Raspian).

An SQLite database can be used to store data and stats (optionnal feature). As of 1.4.1 release, MySQL support as been added too.

Piko.py allow communication with the inverter and retreive data (realtime data or history file), display it and optionaly save it on the SQLite database. From the displayed information, it very easy to upload the data automatically to a web portal like bdpv.fr or pvoutput.org to get online graph.

Version history for Communication tool Piko.py:
1.4.1 - 20160218 - Add MySQL support
1.3.3 - 20140117 - Added support for emoncms export and exception handling
1.3.2 - 20131115 - Bug fixes for some inverter software
1.3.1 - 20130731 - Bug fixes, temp by model, get FW version
1.3.0 - 20130730 - csv export (WebSolarLog, ...), -a option, additional data (timers, model, strings, phases, ...)
1.2.6 - 201303xx - bugfix in comm error handling
1.2.5 - 20130227 - Add RS485 bus address parameter (--id=xxx)
1.2.4 - 20121026 - No change (keep rel nb in sync w. Pykodb)
1.2.3 - 20110907 - Correct small bug in history import (F=-.-)
1.2.1 - 20110825 - Temp Decoding beter accuracy
1.2.0 - 20110824 - Realtime DB save + Status/Temp Decoding
1.1.0 - 20110817 - History DB save
1.0.0 - 20110816 - History data
0.5.0 - 20110812 - Realtime data
0.1.0 - 20110810 - Online protocol

Piko_db.py allow database management (create, query and do some stats).

Version history for Database and Stats tool Piko_db.py:
1.4.1 - 20160218 - MySQL support added
1.3.x - - 1.3 skipped to allign with Piko.py
1.2.5 - 20130227 - DC1/DC2 balancing added in realtime & Stat display
1.2.4 - 20121026 - Short term stats Efficiency added & Correct small bug in DC_E calculation
1.2.3 - 20110908 - Short term stats update
1.2.2 - 20110906 - Short term stats (by 10m/15m/hour/day)
1.2.1 - 20110825 - Temp decoding better accuracy
1.2.0 - 20110824 - XML/CSV/TXT dump + Status/Temp decoding
1.1.0 - 20110818 - Realtime DB (create/TBL dump)
1.0.0 - 20110817 - History DB (create/TBL dump)
0.1.0 - 20110817 - DB Tests

External integration :
This project is use by WebSolarLog to add Piko inverters to their supported devices list (using --csv export option).
We also have an export to Emoncms.org wich is part of the OpenEneryMonitor.org project.
We have a work in progress to publish to an MQTT broker as this protocol seem more and more used in IoT.