Reading Australian smart meter data

Hooray, smart meter installed and solar is on.

My biggest issue is not having a clue what my sensors are providing me…

Here’s all my attributes that I have available:

timestamp: 2021-11-02T10:55:42
vpv1: 282.4
ipv1: 5.6
ppv1: 1581
vpv2: 286.7
ipv2: 12.1
ppv2: 3469
vpv3: 0
ipv3: 0
ppv3: 0
vline1: -0.1
vgrid1: 252.4
igrid1: 21.8
fgrid1: 50.01
pgrid1: 5502
ppv: 4893
work_mode: 1
work_mode_label: Normal
error_codes: 0
warning_code: 0
temperature: 41.1
e_day: 12.3
e_total: 38.8
h_total: 14
safety_country: 71
safety_country_label: AU_Ausgrid
funbit: 2392
vbus: 413.1
vnbus: -0.1
model: GW8500-MS
serial_number: redacted
firmware_version: 10.10.0e
arm_version: null
unit_of_measurement: W
friendly_name: PV Inverter
icon: mdi:solar-power

I have friendly names as well. Obviously I can work out my daily totals etc… I have “PV1”, “PV2”, “On grid”, “FunBit” (?), and some others, and they come in forms of Current, Voltage and Power (w).

Can anyone give me any guidance on how I might figure out what I’m exporting? Would it be reasonable to assume PV1 is one roof of panels and PV2 is the other roof of panels?

Correct, PV1 and PV2 are the two strings of Solar panels.
I suspect “pgrid1” will give you the total power being generated on the output of the inverter. (W)

The inverter won’t be able to tell how much of this you are self-consuming.

“e_day” will give you energy generated for the day (accumulate over the day and reset at nigh) (kWh)
“e_total” energy generated since install (kWh)

I got my Iotawatt installed.

I can’t seem to figure out why the CT measuring my solar circuit doesn’t match the output measured by my inverter?

For example, (it’s a cloudy day), I am generating 700 watts at the inverter. Iotawatt’s solar is 340 watts or so.

Has it got something to do with power being consumed?

Single phase or three phase system?

Also, if the grid voltage is high then the inverter won’t export as much as is could potentially do since they have to limit the export to prevent excessive grid voltage rise.

It’s single phase.

Something really odd is going on…

My hot water kicked in and everything has gone pretty haywire.

It’s 5:45pm on a cloudy day and my inverter is reporting about 500W.

The outputs I’ve created might need tweaking, but the weirdest part is the CTs are measuring something quite odd.

Definitely some crazy numbers there. You seem to have the ‘mains export’ calculating solar generation plus actual mains export. Saying that I think your mains clamp is back-to-front.

Not sure why the solar clamp is reading 4kW if the inverter is suggesting 500W. Is it set to the correct clamp details in the iotawatt?

I think i’ve worked out what is happening.

The CT for main and solar are both measuring the same circuit and the reverse icons for the CT polarity were a bit misleading.

I think I’ve corrected that now, and can demonstrate how they’re both the same:

Yesterday I was confused because there is also the “allow negative” checkbox that was only checked on input 1 - so it looked like mains was negative and solar was positive… actually they were the same, just cancelling each other out!

I’ve asked the electrician to come back and fix the CT for me… haven’t heard back yet but hoping that will do the trick. In the meantime I might see if I can figure out if Home Assistant would be able to read my negative meter values as grid export. It doesn’t look like it’s setup to work this way out of the box.

Also, I’ve dropped the consumption and export outputs for now.

Don’t know why I spent energy over-thinking this last night.

I’ve setup my import/export:

image

In other words, just reading the mains CT. I’m now convinced I don’t actually need to monitor my solar CT because I get that from the inverter anyway… and Home Assistant is smart enough to figure out Production vs Consumption!

So… it works! Wahey!

First measurable insight: wow, my hot water is using a lot of electricity!

Yeah, I would never have an electric water heater! Gas every time. Especially since you generally have a shower when there is no solar production to offset it

There is a way to read Synergy API for historical data if your smart meter sends information direct , I just don’t know how to integrate it to HA

1 Like

how are you getting the data? what format?

i looked into scraping it from the graph data a while ago but kind of gave up when i realised it was at least 2 days behind. have you got more up to date data?

Kudos to Jace on Whirlpool

1 – Login & store headers to a file
curl -d ‘username=xxxx&password=xxxxx&submit=Login’ --dump-header headers https://selfserve.synergy.net.au/apps/rest/session/login.json

2 – Now get the data, using the headers
curl -L -b headers ‘https://selfserve.synergy.net.au/apps/rest/intervalData/000xxxxx/getHalfHourlyElecIntervalData?intervalDeviceIds=000000000xxxxx&startDate=2022-02-01&endDate=2022-03-01
(remember to provide account # and meter #)

My data is half a day behind

Do you mind explaining this process a little better for Linux / curl dummies like myself?

First part passes on user/password to the login url and saves header that contain session info etc into a file.
Second part actually requests the data. But website asks for authentication, so it passes the info we saved in step 1
You can login to synergy website and in a new tab go to the url from step 2, just add your account/meter info

Sorry, I’m still a bit lost here.

Where do I need to type the curl commands?

Where do I add my account / meter info? Within that second link somewhere?

It’s not an integration. It’s a manual way of getting the data
cURL you type from Linux shell

I get that, but…

is it where you have ‘000xxxxx’ a couple of times? It’s not clear.

Does the curl command create this file? This doesn’t appear to state what we want to call the file so I’m guessing not… or is the file going to be called ‘headers’, in which case where will this be saved?

Sorry, but I’m either going to need a step by step or just not worry about it.

Cheers

yes, the file is called “headers” =)

First ‘000xxxxx’ is your accound ID and the second ‘0000000xxxxx’ is meter ID
Both can see in your last bill. Note that meter ID may start 0 (mine does), so I have 9 zeros before actual numbers start

Few more interesting bits to see:

curl -L -b headers “https://selfserve.synergy.net.au/apps/rest/intervalData/000youraccountnumber/getHalfHourlyElecIntervalData?intervalDeviceIds=000000000yourmeternumber&startDate=2022-03-22&endDate=2022-03-23” --cipher ‘DEFAULT:!DH’
curl -L -b headers “https://selfserve.synergy.net.au/apps/rest/accountRecords/000youraccountnumber/getConsumptionHistory?endDate=2022-03-23&startDate=2020-12-23” --cipher ‘DEFAULT:!DH’
curl -L -b headers “https://selfserve.synergy.net.au/apps/rest/ami/000youraccountnumber/getUnbilledAmounts?contractAccountNumber=000youraccountnumber&fromDate=&installation=&toDate=” --cipher ‘DEFAULT:!DH’
curl -L -b headers “https://selfserve.synergy.net.au/apps/rest/accountRecords/000youraccountnumber/getNextScheduleMeterReading” --cipher ‘DEFAULT:!DH’
curl -L -b headers “https://selfserve.synergy.net.au/apps/rest/accountRecords/000youraccountnumber/getMyAccountNotification” --cipher ‘DEFAULT:!DH’
curl -L -b headers “https://selfserve.synergy.net.au/apps/rest/account/000youraccountnumber/show.json” --cipher ‘DEFAULT:!DH’

3 Likes