Voltage measurement & reporting

Since 20.49.0 i see that the voltage data i am collecting shows periods at around 230/240V (grid voltage) and periods of around 425V.
Does anyone understand why this would be? Is this grid and battery voltages both being output as “voltage”? is there a way to separate the data into two fields if so?

3-phase?

Single phase only.

example of the data logged by PVOutput shown here

Goto the PW gateway address (https://192.168.x.x/api/meters/aggregates) to see what voltage is being reported.

Looking at the output you suggest, there are TWO instances of instant_average_voltage. One is inside the {} for site; one inside the {} for battery. PVOutput seems to be choosing randomly between them for what it returns - normally using battery and sometimes site.

Can you post an example here please.

here is a current example:
{“site”:{“last_communication_time”:“2021-03-04T10:29:19.19053239Z”,“instant_power”:5,“instant_reactive_power”:-616,“instant_apparent_power”:616.0202918735713,“frequency”:0,“energy_exported”:166590.15150211367,“energy_imported”:2284182.2391037373,“instant_average_voltage”:411.2321629870407,“instant_total_current”:6.016,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0,“last_phase_voltage_communication_time”:“0001-01-01T00:00:00Z”,“last_phase_power_communication_time”:“0001-01-01T00:00:00Z”,“timeout”:1500000000},“battery”:{“last_communication_time”:“2021-03-04T10:29:19.190285655Z”,“instant_power”:960,“instant_reactive_power”:0,“instant_apparent_power”:960,“frequency”:50.121,“energy_exported”:23131650,“energy_imported”:26291820,“instant_average_voltage”:238,“instant_total_current”:-26.700000000000003,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0,“last_phase_voltage_communication_time”:“0001-01-01T00:00:00Z”,“last_phase_power_communication_time”:“0001-01-01T00:00:00Z”,“timeout”:1500000000},“load”:{“last_communication_time”:“2021-03-04T10:29:19.189267718Z”,“instant_power”:1793.3842315673828,“instant_reactive_power”:-550.9624471664429,“instant_apparent_power”:1876.1094371656914,“frequency”:0,“energy_exported”:0,“energy_imported”:34375326.017323844,“instant_average_voltage”:411.2321629870407,“instant_total_current”:4.361001869457128,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0,“last_phase_voltage_communication_time”:“0001-01-01T00:00:00Z”,“last_phase_power_communication_time”:“0001-01-01T00:00:00Z”,“timeout”:1500000000},“solar”:{“last_communication_time”:“2021-03-04T10:29:19.189267718Z”,“instant_power”:832.0048217773438,“instant_reactive_power”:55.78496170043945,“instant_apparent_power”:833.8728832458032,“frequency”:50.099849700927734,“energy_exported”:35459247.091668084,“energy_imported”:41343.161945861706,“instant_average_voltage”:238.32212829589844,“instant_total_current”:0,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0,“last_phase_voltage_communication_time”:“0001-01-01T00:00:00Z”,“last_phase_power_communication_time”:“0001-01-01T00:00:00Z”,“timeout”:1500000000}}

Yesterday morning i changed the instant_average_voltage to battery.instant_average_voltage. Since then it has stopped collecting any voltage readings and also any Power Used and the Energy used is zero.

e.g.: (screen shot uploaded)

I changed the line voltage=battery.instant_average_voltage back by dropping the battery prefix, and now I once again get mostly the line grid voltage with the occasional reading as above which is the site voltage.
Is there a bug in PVoutput where it incorrectly parses the JSON sometimes and can’t extract the battery.instant_average_voltage field? forgive my asking but it’s hard for me to see any other explanation.

The voltage setting doesn’t support prefixes, it either uses the voltage from load or solar.

If you have two integration services running then disable the voltage setting from the service uploading consumption as this would read the load voltage and possibly overwrite voltage from the solar from the other service.

To make sure that I am clear, I run 2 services. One direction = IN and one OUT. So disable it on the OUT service?

i want to show the Grid line voltage rather than the Solar voltage. That I assume is the LOAD voltage?

Thank you for being so responsive. I had thought that all parameters could read from the PW data and needed prefixes to get the right element.

From the sample above -

  • load voltage = 411V - uploaded by In direction Integration Service
  • solar voltage = 238V - uploaded by Out direction Integration Service

Comment out the one you don’t want, there should only be 1 service uploading voltages.

I have now removed the voltage= line from the IN service and left this in the OUT service, restarting both:
direction=out
voltage=instant_average_voltage
Since doing that, no voltage data is being shown or recorded even though I can see it in the JSON from the Powerwall when i look at that direct.

Looks like an issue with voltages on solar being a whole number, when the service is expecting a decimal number.

Thanks for the feedback, this has been fixed in the patch below -

Instructions on installing the patch -

update done and services restarted. Still not getting any readings. The voltages on solar are a decimal eg
“solar”:{“last_communication_time”:“2021-03-09T22:21:15.489108964Z”,“instant_power”:16.763381958007812,“instant_reactive_power”:187.43746948242188,“instant_apparent_power”:188.18558908865444,“frequency”:50.049781799316406,“energy_exported”:35728840.76583491,“energy_imported”:41947.86055713978,“instant_average_voltage”:245.7810821533203, …

I tried with with:
direction=out
voltage=solar.instant_average_voltage

and separately with:
direction=out
voltage=instant_average_voltage

neither shows a voltage in the table or on the graph.

Strange, the data sample works fine here.

Look at the PW0-2021-03-10.log file in the log folder and check if it has voltage data on the 4th column.

This is the data that is saved prior to uploading.

DATE;TIME;TEMPERATURE;VOLTAGE;POWER;ENERGY;TOTAL;V7;V8;V9;V10;V11;V12
20210310;11:20:00;-1000.0;245.8;16;-1.000;-1.000;49.945;NaN;91.300;NaN;245.781;NaN

This should be the working config.

Running with that configuration, here is the log file:
DATE;TIME;TEMPERATURE;VOLTAGE;POWER;ENERGY;TOTAL;V7;V8;V9;V10;V11;V12
20210310;10:52:03;-1000.0;-1.0;2367;-1.000;-1.000;-150.000;2121.393;420.594;-96.000;99.092;2367.960
20210310;10:52:33;-1000.0;-1.0;2093;-1.000;-1.000;-160.000;2104.924;420.438;174.000;99.090;2093.191
20210310;10:53:03;-1000.0;-1.0;2084;-1.000;-1.000;-170.000;2126.927;420.525;183.000;99.092;2084.573
Voltage appears to be -1.0 which looks like some error flag?

OK - NOW WORKING THANK YOU with the revised .jar file.

I installed all the latest MS patches, restarted everything, and finally I now have 24 hours with correct voltage readings. thank you for fixing the bug! I may be a rare user who tracks the voltages; we are near the end of the run from the local power transformer so the resistance in the line is higher than for some. I have the power limit for import set on the PW gateway or I cause the line voltage to fall below regulation spec. I still like to track the variation.

Great, thanks for the feedback.

You might also be interested in the proposed voltage alerting feature below -