Project Description

Recently got a (simple) solar system installed, however the useful data is available from multiple sources each of which doesn't really tell me (easily) what is going on at all times

For example

1) electricity supply company provides smartmeter data via website (they have an app but it doesn't show this data) The displayed data is very poorly organised, for example it just graphs the usage over 30 minute intervals throughout the day, it only has the ability to graph that data for day (showing the 48 samples) month (daily totals) or year (monthly totals) but doesn't do any breakdown of the various rates (night, day, peak etc.) Also this data is historical (can at best be only accessed the next day, at worst only estimated or not available for some time) The raw data is available via csv file. Similar csv data seems to be available for data exported to the grid (and as far I can see in my own case has lots of 'estimated' values) Doesn't seem to be any api available to access this data (web scraping yuck is an option I guess)

2) inverter: System is solar only, no battery and the inverter only becomes 'alive' when it has enough energy (e.g. during the useful daylight hours). At the moment here in winter it comes alive from around approximately 8.30am to 17:30 (with useful output from around 9am to 15:30) Data is uploaded to the cloud but is 'very' delayed, this is quite annoyting as there is an app that supposedly shows reatime generation power, power from the grid, power to the grid etc and clearly it is showing the state of things at least 5 minutes in the past (and I think much more than that more like 10). There is alot of data historical data available for download, again doesn't seem to be an api available to access this data. The data seems to be available at 5 minute samples. However, internet searching suggests the datalogger can be accessed locally and data pulled from it without trying to scrape info from the cloud etc. (have not tried it, don't know if my own model supports it, have no idea about what data is available if it does work)

3) energy diverter: Used to detect surplus solar and divert it to do something else (could be to charge a car, solar battery etc.) in my case it heats our water. This device also has an app (and website access)

The app only shows (graphically) current grid usage (to/from) and amount of power diverted. However.... it is updating every minute and seems accurate to that time period, additionally since it is always 'on' it shows usage throughout the day/night making it useful for monitoring general electricity usage. The website doesn't show the graphical (live) current grid usage but does show the detailed data (grid usage) additionally there is apparently an api, it isn't officially supported but it is provided by the energy diverter. Again, haven't used it, don't know what information (or how often) it is available.

Goal for this Hackweek

  • Investigate the various options to get data (except for web scraping, I don't really want to invest time in that) from the inverter datalogger and energy diverter device
  • I'd like to at least be able to monitor real time (or as realtime as possible) our electricity usage so we have an idea of our consumption 'right now'. Would be nice to visualise that somehow (haha I have no clue about UI programming) by visualise I mean even something on the terminal :)
    • show power imported from the grid (should come from the diverter api)
    • power exported to the grid (diverter api ? maybe the inverter would be more accurate here, I guess I need to figure it out)
    • power to water (diverter api)
    • actual solar generated (this information should come from the inverter/inverter datalogger as it isn't measured by the diverter device (although I guess we could infer it)
  • we have had some potential issues with the install where the solar circuit has tripped a couple of times so while I'm waiting for the installer to get back to us I'd like to know when the inverter comes online/offline (or doesn't wake up by a certain time) to see if/when it happens again (hoping that there is some (free) api to send sms/whatsapp/signal messages)
  • In keeping with our ALP journey (and hoping to learn something about it) I hope if I actually get something to work to deploy it in a container and run in ALP

Looking for hackers with the skills:

Nothing? Add some keywords!

This project is part of:

Hack Week 22


  • over 1 year ago: dmdiss liked this project.
  • over 1 year ago: okurz liked this project.
  • over 1 year ago: npower originated this project.

  • Comments

    • npower
      over 1 year ago by npower | Reply

      hackweek update

      Had a really good (but sometimes frustrating) time with this, for once with a hackweek project I actually achieved most of my goals

      • did alot of digging on the internet to find the information needed to access the 2 devices involved
        • was able to get (nearly) realtime information when the inverter is alive, while seeing levels move dynamically isn't hugely important I'd really like to know how much energy I am using, how much solar is available etc. now (and not like ten minutes ago :-)) But.. I'm in the honeymoon phase so I actually do like to see the levels move up and down and to get an understanding about what is happening
        • ultimately I want to have something running on a r-pi (or similar) with a screen somewhere in the house so we (the family) knows when to turn stuff on/off to get best use of the system (also good for educating the kids about usage) To that end (and since I don't have a clue about UI programming but have reluctantly had to modify some yast modules in my time) I did... yes use the yast ui bindings to create UI which hopefully will run on a low power device (hoping worst case the ncurses version would be usable)
        • get notifications on my phone when system comes online and goes offline
          • I did want to setup a notification if the inverter didn't come online by a certain time (I didn't bother since I have to run my monitor app manually as I don't yet have something like a r-pi which would run the app continuously)
        • be able to break down my usage by the various tarrifs (day, night, peak, freetime (have some free hours on Saturday on our plan) I have code to do this (and can run it on the offline csv file downloaded from supplier), haven't integrated it into the ui yet (which would be easily done)
        • played a little with ALP
          • created an qt workload application for ALP
          • managed to run this workload as root (couldn't it as a normal user, was getting "X11 connection rejected" messages (even with adding cookie as root xauth)
          • was surprised that user seems to download it's own copy of the same container
        • code and screenshots for ui are here

    Similar Projects

    This project is one of its kind!