
“Do you know of any ‘Smart” home systems/software that can be used with a Fronius Inverter/Smart Meter to direct surplus solar power to home appliances and/or heaters via smart wifi plugs?”
It’s a good question, and one that doesn’t yet have very many good answers. The world’s full of “smart home” control systems, but even so, you don’t have to look very far to find some pretty extreme examples of “makers” putting together DIY systems to get what they want, because what they want doesn’t come off-the-shelf.
What the YouTuber, CWNE88, wanted was to charge his Tesla from his solar power system, only when there’s solar electricity to spare – so the car is never charged with electricity imported from the grid. It’s such a simple and obvious question, I’m amazed it’s not a tickbox in the Tesla control software.
Instead, the intrepid CWNE88 has had to write software for a Raspberry Pi, get power for the RPi, and use the fortunately-standard RS485 serial bus as the control interface. As you can see from the video, it’s not excessively difficult – but it’s not for the faint-hearted (or those fearful of warranty warnings!). If you want to see the whole thing, he’s got the software, designs and documentation here at the open source software distribution site, GitHub.
Malcolm’s request is really straightforward – if the system is importing from the grid, keep the heater off; if the system is exporting with enough spare capacity, turn the heater on.
And as is so often the case, the really straightforward request isn’t answered because it involves two fragmented industries: on the left, Fronius, Enphase and other solar inverter suppliers; and on the right a dizzying number of smart home controller companies, and in the middle …
… people like CWNE88 above, hacking up his own solution, because the Tesla kit doesn’t have that capability out of the box.
Here’s another example: an acquaintance of mine who is an IT systems administrator and solar owner told me of the difficulties he had with a similar question – how to constrain his pool pump to only operating when there was sufficient solar power. In a series of direct messages, he told me:
“At the moment, you need a hub/gateway that’s specific to whichever vendors’ products you are using. Some can interact, but very broadly.
“Then you have a different app for each vendor needed to configure their particular thing.
“It’s all good fun as a hobby, in the sense it will constantly consume time and money to make it work, and that’s cool if you like playing with tech, but it’s a long way from my wife or parents making a whole of home IoT solution tie neatly together.”
He succeeded in getting the pool pump powered when there’s lots of power coming off the roof, but only after he’d managed to pull data from his inverter, uploading it to the PVOutput metering-sharing service, using the open-source Home Assistant software to download the data again, and mapping a Home Assistant action to the PVOutput data.
As he wryly noted:
“There are probably more direct methods, but this works.”
What Malcolm, CWNE88 and the sysadmin want are two things: a standard way for the inverter to communicate its status (a smart WiFi-enabled power point for Malcolm, between different Tesla systems in CWNE88’s case), and a product that makes it easy to make decisions based on inverter status.
Inverters Talking to the Outside World
Researching this post took me into the world of API documentation. The API, or Application Programming Interface, is the language the inverter’s computer uses to talk to the outside world. A smart home vendor needs to get the inverter status, to find out whether power is being imported or exported, and whether there’s enough solar power to drive a particular load.
To get that information over the wire, you send a request to the inverter (an API call, for programmers) and read the response.
I looked at the API documentation for just two inverter makers – Fronius and Enphase – and it won’t surprise you to know the API calls are different. If you’re running a Fronius inverter, the request seems to be GetInverterRealTimeData (if you’re interested, you can download the document here); if you’re using Enphase, you send a request called Summary (if I’ve read Enphase’s API documentation correctly).
Two inverters, two different commands to retrieve inverter status: that’s why we need standards if the solar home is to become a full member of the smart home.
SunSpec
Standardisation is on the way, via a multi-year industry effort called SunSpec (interestingly, Fronius is a member but Enphase isn’t yet). Companies that join the industry group can, once they’ve built products that use the SunSpec API, get the group to certify their compliance.
At this stage, however, SunSpec’s effort seems to me to be mostly “grid-facing”. As the group explains,
“SunSpec standards address operational aspects of solar PV power and energy storage plants on the smart grid”
(emphasis added).
Vendors in the smart-home sector have their own set of standards to work with, making it unlikely they’d welcome another, but perhaps some there’s a gap in the market for someone to build a bridge between the two worlds – SunSpec on one side, a smart home standard on the other, to make the connection from the solar inverter to the smart home as plug-and-play as Malcom’s WiFi power point.