Back in 2008 we started with our first solar panel — yes, singular. Later that year it was expanded with our first set of Conergy panels, connected to an SMA SunnyBoy 1100 inverter with a SunnyBeam display. It actually came with software that could export inverter data and generate charts. That package was called SunnyReports.
SunnyReports worked fine with SMA inverters, but had absolutely no idea what to do with my ancient OK4E inverter. And the data idiot in me wanted charts and data tables — not just for OK4E data, but also for the combined output of both systems. And yep: the idiot programmer in me started writing his own charting library in Java. Because hey — because I can.
And then everything changed when I accidentally stumbled upon the JFreeChart library.
That kickstarted the entire project. Within a week or so, I had my first alpha version up and running. It didn’t have a name yet. So yeah, I was super original and came up with JSunnyReports. Or was it jSunnyReports?
Even after all these years, I still use both names…
Timemachine
When I first posted about jSunnyReports on a Belgian forum (Zonstraal) and a French one (Photovoltaique?), things escalated quickly. I started getting feature requests, bug reports, ideas for new charts — and even snippets of code I could include! Within a few months, the codebase had quadrupled in size and I was pushing out new versions almost every two weeks.
After hitting version 1.6, things slowed down a bit. I grew frustrated with the limitations of the JFreeChart library.
And by chance (or was it fate!?) I stumbled upon the JavaScript charting library Highcharts. With JSON as input, jQuery and some JavaScript, I could recreate the same charts more easily — and make everything HTML-based and responsive.
Within half a year or so, version 2.0 was born. I kept working on it up to version 2.7 — and then… the ideas just dried up. The biggest request was for a configuration tool, preferably web-based. And even after months of coding, it still wasn’t finished.
To be honest… I lost interest.
In the meantime, I expanded my own home automation system — which included large portions of jSunnyReports under the hood.
It gave me all the charts and data I needed, so the original jSunnyReports quietly drifted to the back burner.
Sorry…
Back to today
Yes, I’m still using JSunnyReports.
I have an archive version running that covers data up to the end of 2023, and a live version that’s still logging data from all our current solar setups.

And yes — jQuery? That ancient Bootstrap admin template? I know.
I know all of it.
But hey… it still works.
This morning, while updating my monthly stats, I realized that jSunnyReports didn’t quite give me all the data I needed.
And then it hit me: wait a minute — is that a feature I actually want?
Yeah… maybe.
GIT
I had already archived the code into my new GIT repository and moved on. Switched from Windows to Linux, never even checked if it still compiled. Out of sight, out of mind.
Until… it did compile. First try.
And then I thought: wait a minute… what else still works?!

Holy crap, I can still compile the code with Java 23!
Who knew duct tape from 2010 would stick that long!
Today I also uploaded the code to GitHub, in case anyone feels like digging through ancient Java archaeology:
https://github.com/mkleinman64/jsunnyreports-museum/tree/develop
Future
Well… maybe, just maybe, I’ll add something new to JSunnyreports.
Because let’s face it: the moment you open an old project, fix a few things…
That rabbit hole is already halfway dug.
Brain out!
PS: And as you might have guessed… yes, I’ve used both jSunnyreports and JSunnyReports in this blogpost.
Consistency is for production code.
This is nostalgia. 😛