Tesla Powerwall2 data to PVoutput?

I have a PW2 and note it has a detailed output from a web interface as below - is someone here able to point me to how we can make this usable via a PVOutput plugin? There’s going to be a lot more of these in the future…

A webpage (/api/meters/aggregates) served by the PW2 gateway returns the below text, which I can expose via DDNS. I expect we could use the PVOutput integration service on a local PC to read the content with a similar method to the TED5000, but I don’t know enough about how to write that up.

It’s divided into sections by JSON, and updates once a second. The data below was obtained at night, so no solar output. It has clamps on the consumption and solar outputs, and I have verified that it’s very accurate compared to the metered values (within 0,1kwhr over 30+ kwhr).

There’s some info about theunits used here:

{“site”:{“last_communication_time”:“2017-08-06T11:49:13.126321338Z”,“instant_power”:-29.25,“instant_reactive_power”:-339.9700012207031,“instant_apparent_power”:341.2259723848771,“frequency”:50.099998474121094,“energy_exported”:8179.706669868649,“energy_imported”:1376986.775003202,“instant_average_voltage”:242.19000244140625,“instant_total_current”:0,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0},“battery”:{“last_communication_time”:“2017-08-06T11:49:13.111260463Z”,“instant_power”:570.0000000000001,“instant_reactive_power”:120,“instant_apparent_power”:582.4946351684281,“frequency”:50.062,“energy_exported”:351310,“energy_imported”:423240,“instant_average_voltage”:242.4,“instant_total_current”:-14.700000000000001,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0},“load”:{“last_communication_time”:“2017-08-06T11:49:13.111260463Z”,“instant_power”:563.3802608789435,“instant_reactive_power”:-253.8965594736822,“instant_apparent_power”:617.9488500358258,“frequency”:50.099998474121094,“energy_exported”:0,“energy_imported”:1917433.316111111,“instant_average_voltage”:242.19000244140625,“instant_total_current”:2.326191234979833,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0},“solar”:{“last_communication_time”:“2017-08-06T11:49:13.126421671Z”,“instant_power”:5.53000020980835,“instant_reactive_power”:16.540000915527344,“instant_apparent_power”:17.439969398084553,“frequency”:50.099998474121094,“energy_exported”:621691.994444481,“energy_imported”:1135.7466667032922,“instant_average_voltage”:242.16000366210938,“instant_total_current”:0,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0},“busway”:{“last_communication_time”:“0001-01-01T00:00:00Z”,“instant_power”:0,“instant_reactive_power”:0,“instant_apparent_power”:0,“frequency”:0,“energy_exported”:0,“energy_imported”:0,“instant_average_voltage”:0,“instant_total_current”:0,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0},“frequency”:{“last_communication_time”:“0001-01-01T00:00:00Z”,“instant_power”:0,“instant_reactive_power”:0,“instant_apparent_power”:0,“frequency”:0,“energy_exported”:0,“energy_imported”:0,“instant_average_voltage”:0,“instant_total_current”:0,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0}}

I’ve cleaned it up with a JSON parser below:

{
“site”:{
“last_communication_time”:“2017-08-06T11:49:13.126321338Z”,
“instant_power”:-29.25,
“instant_reactive_power”:-339.9700012207031,
“instant_apparent_power”:341.2259723848771,
“frequency”:50.099998474121094,
“energy_exported”:8179.706669868649,
“energy_imported”:1376986.775003202,
“instant_average_voltage”:242.19000244140625,
“instant_total_current”:0,
“i_a_current”:0,
“i_b_current”:0,
“i_c_current”:0
},
“battery”:{
“last_communication_time”:“2017-08-06T11:49:13.111260463Z”,
“instant_power”:570.0000000000001,
“instant_reactive_power”:120,
“instant_apparent_power”:582.4946351684281,
“frequency”:50.062,
“energy_exported”:351310,
“energy_imported”:423240,
“instant_average_voltage”:242.4,
“instant_total_current”:-14.700000000000001,
“i_a_current”:0,
“i_b_current”:0,
“i_c_current”:0
},
“load”:{
“last_communication_time”:“2017-08-06T11:49:13.111260463Z”,
“instant_power”:563.3802608789435,
“instant_reactive_power”:-253.8965594736822,
“instant_apparent_power”:617.9488500358258,
“frequency”:50.099998474121094,
“energy_exported”:0,
“energy_imported”:1917433.316111111,
“instant_average_voltage”:242.19000244140625,
“instant_total_current”:2.326191234979833,
“i_a_current”:0,
“i_b_current”:0,
“i_c_current”:0
},
“solar”:{
“last_communication_time”:“2017-08-06T11:49:13.126421671Z”,
“instant_power”:5.53000020980835,
“instant_reactive_power”:16.540000915527344,
“instant_apparent_power”:17.439969398084553,
“frequency”:50.099998474121094,
“energy_exported”:621691.994444481,
“energy_imported”:1135.7466667032922,
“instant_average_voltage”:242.16000366210938,
“instant_total_current”:0,
“i_a_current”:0,
“i_b_current”:0,
“i_c_current”:0
},
“busway”:{
“last_communication_time”:“0001-01-01T00:00:00Z”,
“instant_power”:0,
“instant_reactive_power”:0,
“instant_apparent_power”:0,
“frequency”:0,
“energy_exported”:0,
“energy_imported”:0,
“instant_average_voltage”:0,
“instant_total_current”:0,
“i_a_current”:0,
“i_b_current”:0,
“i_c_current”:0
},
“frequency”:{
“last_communication_time”:“0001-01-01T00:00:00Z”,
“instant_power”:0,
“instant_reactive_power”:0,
“instant_apparent_power”:0,
“frequency”:0,
“energy_exported”:0,
“energy_imported”:0,
“instant_average_voltage”:0,
“instant_total_current”:0,
“i_a_current”:0,
“i_b_current”:0,
“i_c_current”:0
}
}

3 Likes

It is certainly possible to add another ‘http’ reader the PVOutput Integration Service to support the Powerwall format.

Are you able to confirm -

  1. The URL is -

     http://<local_gateway_ip>/api/meters/aggregates
    
  2. Any authentication method used (username/password etc)

  3. Data returned is in the format below -

     {
     "site" : {
     	"last_communication_time" : "2017-08-06T11:49:13.126321338Z",
     	"instant_power" : -29.25,
     	"instant_reactive_power" : -339.9700012207031,
     	"instant_apparent_power" : 341.2259723848771,
     	"frequency" : 50.099998474121094,
     	"energy_exported" : 8179.706669868649,
     	"energy_imported" : 1376986.775003202,
     	"instant_average_voltage" : 242.19000244140625,
     	"instant_total_current" : 0,
     	"i_a_current" : 0,
     	"i_b_current" : 0,
     	"i_c_current" : 0
     },
     "battery" : {
     	"last_communication_time" : "2017-08-06T11:49:13.111260463Z",
     	"instant_power" : 570.0000000000001,
     	"instant_reactive_power" : 120,
     	"instant_apparent_power" : 582.4946351684281,
     	"frequency" : 50.062,
     	"energy_exported" : 351310,
     	"energy_imported" : 423240,
     	"instant_average_voltage" : 242.4,
     	"instant_total_current" : -14.700000000000001,
     	"i_a_current" : 0,
     	"i_b_current" : 0,
     	"i_c_current" : 0
     },
     "load" : {
     	"last_communication_time" : "2017-08-06T11:49:13.111260463Z",
     	"instant_power" : 563.3802608789435,
     	"instant_reactive_power" : -253.8965594736822,
     	"instant_apparent_power" : 617.9488500358258,
     	"frequency" : 50.099998474121094,
     	"energy_exported" : 0,
     	"energy_imported" : 1917433.316111111,
     	"instant_average_voltage" : 242.19000244140625,
     	"instant_total_current" : 2.326191234979833,
     	"i_a_current" : 0,
     	"i_b_current" : 0,
     	"i_c_current" : 0
     },
     "solar" : {
     	"last_communication_time" : "2017-08-06T11:49:13.126421671Z",
     	"instant_power" : 5.53000020980835,
     	"instant_reactive_power" : 16.540000915527344,
     	"instant_apparent_power" : 17.439969398084553,
     	"frequency" : 50.099998474121094,
     	"energy_exported" : 621691.994444481,
     	"energy_imported" : 1135.7466667032922,
     	"instant_average_voltage" : 242.16000366210938,
     	"instant_total_current" : 0,
     	"i_a_current" : 0,
     	"i_b_current" : 0,
     	"i_c_current" : 0
     },
     "busway" : {
     	"last_communication_time" : "0001-01-01T00:00:00Z",
     	"instant_power" : 0,
     	"instant_reactive_power" : 0,
     	"instant_apparent_power" : 0,
     	"frequency" : 0,
     	"energy_exported" : 0,
     	"energy_imported" : 0,
     	"instant_average_voltage" : 0,
     	"instant_total_current" : 0,
     	"i_a_current" : 0,
     	"i_b_current" : 0,
     	"i_c_current" : 0
     },
     "frequency" : {
     	"last_communication_time" : "0001-01-01T00:00:00Z",
     	"instant_power" : 0,
     	"instant_reactive_power" : 0,
     	"instant_apparent_power" : 0,
     	"frequency" : 0,
     	"energy_exported" : 0,
     	"energy_imported" : 0,
     	"instant_average_voltage" : 0,
     	"instant_total_current" : 0,
     	"i_a_current" : 0,
     	"i_b_current" : 0,
     	"i_c_current" : 0
     }

Hi,

Thanks for your help.

The URL is “http://x.x.x.x/api/meters/aggregates” and works provided you only want to access it locally - I have a DDNS which is configured as http://DDNSname:port #/api/meters/aggregates if you need to read it external to my home (mapping a random high port to port80). I can give you access to it via email or PM if you wish.

No authentication required at all. You can click through to the setup page for the Gateway itself at the root IP, but are prompted for a password (serial # of the unit) at that step. Low security, so I’m fine with running PVO Integration on a local PC.

I had cleaned up the output to make it more readable above - the raw output as follows was obtained from a “view-source” of the Gateway-served webpage:

{“site”:{“last_communication_time”:“2017-08-08T02:50:50.229832889Z”,“instant_power”:8.770000457763672,“instant_reactive_power”:-306.7200012207031,“instant_apparent_power”:306.84535527991505,“frequency”:49.95000076293945,“energy_exported”:8353.65361465461,“energy_imported”:1417332.130559099,“instant_average_voltage”:243.5800018310547,“instant_total_current”:0,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0},“battery”:{“last_communication_time”:“2017-08-08T02:50:50.212334401Z”,“instant_power”:-2420,“instant_reactive_power”:80,“instant_apparent_power”:2421.321952983535,“frequency”:49.946,“energy_exported”:366220,“energy_imported”:444830,“instant_average_voltage”:242.8,“instant_total_current”:51.300000000000004,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0},“load”:{“last_communication_time”:“2017-08-08T02:50:50.212334401Z”,“instant_power”:534.8089412317609,“instant_reactive_power”:-327.60092475446345,“instant_apparent_power”:627.170606391448,“frequency”:49.95000076293945,“energy_exported”:0,“energy_imported”:1977915.8480555555,“instant_average_voltage”:243.5800018310547,“instant_total_current”:2.195619251217103,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0},“solar”:{“last_communication_time”:“2017-08-08T02:50:50.229929555Z”,“instant_power”:2943.389892578125,“instant_reactive_power”:-73.87999725341797,“instant_apparent_power”:2944.3169519814323,“frequency”:49.95000076293945,“energy_exported”:648704.6175000382,“energy_imported”:1157.2463889270923,“instant_average_voltage”:243.47999572753906,“instant_total_current”:0,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0},“busway”:{“last_communication_time”:“0001-01-01T00:00:00Z”,“instant_power”:0,“instant_reactive_power”:0,“instant_apparent_power”:0,“frequency”:0,“energy_exported”:0,“energy_imported”:0,“instant_average_voltage”:0,“instant_total_current”:0,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0},“frequency”:{“last_communication_time”:“0001-01-01T00:00:00Z”,“instant_power”:0,“instant_reactive_power”:0,“instant_apparent_power”:0,“frequency”:0,“energy_exported”:0,“energy_imported”:0,“instant_average_voltage”:0,“instant_total_current”:0,“i_a_current”:0,“i_b_current”:0,“i_c_current”:0}}

Also interested in this and was thinking about whether I could use a Raspberry Pi (or a Pi Zero) to pull this data out and have a look at it locally.

Putting it into pvoutput would definitely be a lot more interesting.

We have an Enlighten Envoy feeding data in at the moment but it doesn’t capture any of the usage coming out of the PW2 (it shows a flat use curve when it is charging and then basically a flat ‘no use’ when the PW2 is discharging…)

Powerwall gateway support has been added to the PVOutput Integration Service v1.5.0

Thanks for adding that - looks like some debugging may be needed though.If you give me your email address, I can give you the externally-visible PW2 API link and you can refer to it in a local build of the Integration.

I manually created the c:/logs folder before it would make the log file - PW0-2017-09-13.log. I edited the pvoutput .ini to refer to that file and it looks like the voltage is appearing now.

DATE;TIME;TEMPERATURE;VOLTAGE;POWER;ENERGY;TOTAL;V7;V8;V9;V10;V11;V12
20170913;10:38:45;-1000.0;243.9;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:39:15;-1000.0;243.6;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:39:45;-1000.0;243.4;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:40:16;-1000.0;245.1;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:40:46;-1000.0;246.4;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:41:16;-1000.0;246.1;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:41:46;-1000.0;245.8;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:42:16;-1000.0;245.9;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:42:46;-1000.0;245.9;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:43:16;-1000.0;246.0;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:43:46;-1000.0;245.2;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:44:16;-1000.0;245.0;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
20170913;10:44:46;-1000.0;245.6;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN

This is the system : https://pvoutput.org/list.jsp?id=6483&sid=54376

The PW2 API is accessible, and contains JSON data, and the powerwall.ini has been configured correctly - if I paste the API URL from the powerwall.ini to a browser it resolves OK.

The logs are below - i did stop and start the service:

Status.log:

20170913102000,1,0
20170913102500,1,0
20170913103000,1,0
20170913103500,0,1
20170913104000,0,1
20170913104500,0,1

Service log:
STATUS | wrapper | 2017/09/13 20:38:39 | Starting the PVOutput Integration Service v1.4 service…
STATUS | wrapper | 2017/09/13 20:38:39 | --> Wrapper Started as Service
STATUS | wrapper | 2017/09/13 20:38:39 | Java Service Wrapper Community Edition 32-bit 3.5.4
STATUS | wrapper | 2017/09/13 20:38:39 | Copyright © 1999-2010 Tanuki Software, Ltd. All Rights Reserved.
STATUS | wrapper | 2017/09/13 20:38:39 | http://wrapper.tanukisoftware.com
STATUS | wrapper | 2017/09/13 20:38:39 |
STATUS | wrapper | 2017/09/13 20:38:40 | Launching a JVM…
INFO | jvm 1 | 2017/09/13 20:38:40 | WrapperManager: Initializing…
INFO | jvm 1 | 2017/09/13 20:38:40 | *** Starting PVOutput Integration Service v1.5.0
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.runtime.name=Java™ SE Runtime Environment
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.vm.version=25.144-b01
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.vm.vendor=Oracle Corporation
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.vendor.url=http://java.oracle.com/
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.vm.name=Java HotSpot™ Client VM
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.vm.specification.name=Java Virtual Machine Specification
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.runtime.version=1.8.0_144-b01
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.endorsed.dirs=C:\Program Files\Java\jre1.8.0_144\lib\endorsed
INFO | jvm 1 | 2017/09/13 20:38:40 | >> os.arch=x86
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.io.tmpdir=C:\Windows\system32\config\systemprofile\AppData\Local\Temp
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.vm.specification.vendor=Oracle Corporation
INFO | jvm 1 | 2017/09/13 20:38:40 | >> os.name=Windows 7
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.library.path=…/lib
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.specification.name=Java Platform API Specification
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.class.version=52.0
INFO | jvm 1 | 2017/09/13 20:38:40 | >> os.version=6.1
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.awt.printerjob=sun.awt.windows.WPrinterJob
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.specification.version=1.8
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.class.path=…/lib/wrapper.jar;…/lib/org.pvoutput.integration.jar;…/lib/commons-logging-1.1.1.jar;…/lib/httpcore-4.1.2.jar;…/lib/httpclient-4.1.2.jar;…/lib/jetty-http-7.5.1.v20110908.jar;…/lib/jetty-util-7.5.1.v20110908.jar;…/lib/jetty-io-7.5.1.v20110908.jar;…/lib/jetty-server-7.5.1.v20110908.jar;…/lib/jetty-continuation-7.5.1.v20110908.jar;…/lib/servlet-api-2.5.jar;…/lib/json_simple-1.1.jar;…/lib/jxl.jar;…/lib/log4j-1.2.15.jar;…/lib/RXTXcomm.jar;…/lib/jackcess-1.2.2.jar;…/lib/bsh-core-2.0b4.jar;…/lib/sqlitejdbc-v056.jar;…/lib/commons-net-3.1.jar
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.vm.specification.version=1.8
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.home=C:\Program Files\Java\jre1.8.0_144
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.specification.vendor=Oracle Corporation
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.vm.info=mixed mode, sharing
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.version=1.8.0_144
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.ext.dirs=C:\Program Files\Java\jre1.8.0_144\lib\ext;C:\Windows\Sun\Java\lib\ext
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.vendor=Oracle Corporation
INFO | jvm 1 | 2017/09/13 20:38:40 | >> java.vendor.url.bug=http://bugreport.sun.com/bugreport/
INFO | jvm 1 | 2017/09/13 20:38:40 | 2017-09-13 20:38:40.501:INFO:oejs.Server:jetty-7.5.1.v20110908
INFO | jvm 1 | 2017/09/13 20:38:40 | 2017-09-13 20:38:40.585:INFO:oejs.AbstractConnector:Started SelectChannelConnector@localhost:8888 STARTING
STATUS | wrapper | 2017/09/13 20:38:41 | PVOutput Integration Service v1.4 started.

PVOutput log:

2017-09-13 20:38:40,441 INFO [WrapperListener_start_runner] (Controller.java:111) -
2017-09-13 20:38:40,442 INFO [WrapperListener_start_runner] (Controller.java:112) - *** Starting PVOutput Integration Service v1.5.0
2017-09-13 20:38:40,443 INFO [Thread-1] (Controller.java:133) - Install Directory: C:\Program Files\PVOutput
2017-09-13 20:38:40,443 INFO [Thread-1] (Controller.java:142) - Loaded Config: pvoutput.ini
2017-09-13 20:38:40,455 INFO [Thread-1] (AdminConsole.java:35) - Starting admin console on port: 8888
2017-09-13 20:38:42,802 INFO [Thread-1] (WebClient.java:126) - >>> http://pvoutput.org:80/service/r2/getsystem.jsp?donations=1
2017-09-13 20:38:43,392 INFO [Thread-1] (Controller.java:2168) - <<< Powerwall2,6902,2116,34,203,Unknown,2,9000,Fronius/Aurora,N,1.0,No,20170901,-33.812333,151.041737,5;;1
2017-09-13 20:38:45,398 INFO [Thread-1] (WebClient.java:126) - >>> http://pvoutput.org:80/service/r1/getstatus.jsp?d=20170913
2017-09-13 20:38:45,886 INFO [Thread-1] (Controller.java:2097) - <<< 20170913,10:35,2,6,NaN,0,0.001
2017-09-13 20:38:45,887 INFO [Thread-1] (Controller.java:326) - --------------------------
2017-09-13 20:38:45,887 INFO [Thread-1] (Controller.java:327) - System Name: Powerwall2
2017-09-13 20:38:45,888 INFO [Thread-1] (Controller.java:328) - System Size: 6902
2017-09-13 20:38:45,888 INFO [Thread-1] (Controller.java:329) - Timezone: GMT+10:00
2017-09-13 20:38:45,888 INFO [Thread-1] (Controller.java:330) - Donation Mode: true
2017-09-13 20:38:45,889 INFO [Thread-1] (Controller.java:331) - Max History: 90
2017-09-13 20:38:45,889 INFO [Thread-1] (Controller.java:332) - Status Interval: 5-min
2017-09-13 20:38:45,898 INFO [Thread-1] (Controller.java:333) - Status Date Time: Wed Sep 13 10:35:00 GMT+10:00 2017
2017-09-13 20:38:45,899 INFO [Thread-1] (Controller.java:334) - Upload Temperature: true
2017-09-13 20:38:45,899 INFO [Thread-1] (Controller.java:335) - Upload Voltage: true
2017-09-13 20:38:45,899 INFO [Thread-1] (Controller.java:336) - Energy Generation: 2
2017-09-13 20:38:45,899 INFO [Thread-1] (Controller.java:337) - Energy Consumption: -1
2017-09-13 20:38:45,899 INFO [Thread-1] (Controller.java:338) - Create Local Graph: false
2017-09-13 20:38:45,899 INFO [Thread-1] (Controller.java:339) - Retry Limit: 30 to 40
2017-09-13 20:38:45,899 INFO [Thread-1] (Controller.java:340) - --------------------------
2017-09-13 20:38:45,906 INFO [Thread-1] (Controller.java:375) - Loaded Reader 1: powerwall
2017-09-13 20:38:45,906 INFO [Thread-1] (Controller.java:376) - Log Directory 1: [c:\logs]
2017-09-13 20:38:45,906 INFO [Thread-1] (Controller.java:387) - Loading Config 1: powerwall.ini
2017-09-13 20:38:45,907 INFO [Thread-1] (SimpleLogReader.java:396) - Read 0 log entries
2017-09-13 20:38:45,907 INFO [Thread-1] (AHttpLogReader.java:73) - URL 1: http://192.168.1.144/api/meters/aggregates
2017-09-13 20:38:45,907 INFO [Thread-1] (AHttpLogReader.java:90) - Poll Frequency: 30 seconds
2017-09-13 20:38:45,910 INFO [Thread-1] (AHttpLogReader.java:146) - Id: 0, sensor: 0, channels: [], direction: Import, calibration: 1.0
2017-09-13 20:38:45,911 INFO [Thread-1] (Sensor.java:733) - PW0-2017-09-13.log Status: 20170913;10:38:28;-1000.0;244.5;0;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
2017-09-13 20:38:45,911 INFO [Thread-1] (Sensor.java:798) - PW0-2017-09-13.log, Last Energy: -1.0
2017-09-13 20:38:45,911 INFO [Thread-1] (Sensor.java:813) - Start Time 0: 20170913 10:38:28
2017-09-13 20:38:45,915 INFO [Thread-1] (Controller.java:438) - Found 1 Sensors
2017-09-13 20:38:45,915 INFO [Thread-1] (Controller.java:539) - Added Reader: powerwall0
2017-09-13 20:38:45,916 INFO [Thread-1] (Controller.java:563) - Log File: powerwall0 [PW0-2017-09-13.log]
2017-09-13 20:38:45,916 INFO [Thread-1] (Controller.java:569) - Import Sensor: 0, id: 0
2017-09-13 20:38:45,917 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:38:45,919 INFO [Thread-1] (Controller.java:642) - Weather Enabled: false
2017-09-13 20:38:45,919 INFO [Thread-1] (Controller.java:583) - Service: [http://pvoutput.org:80/service/r2/addbatchstatus.jsp] Test: false, End: 18:00
2017-09-13 20:38:45,920 INFO [Thread-1] (Controller.java:591) - Loaded 1 Readers (Import: 1, Export: 0)
2017-09-13 20:38:45,920 INFO [Thread-1] (Controller.java:1587) - Records restored from status.log : 4
2017-09-13 20:38:47,921 INFO [Thread-1] (Controller.java:786) - Startup Complete: Waiting for data…
2017-09-13 20:38:47,925 INFO [Thread-1] (Controller.java:1869) - >>> 20170913,10:40,-1,-1,-1.0,0,-1000.0,243.9
2017-09-13 20:38:47,931 INFO [Thread-1] (WebClient.java:126) - >>> http://pvoutput.org:80/service/r2/addbatchstatus.jsp?data=20170913,10:40,-1,-1,-1.0,0,-1000.0,243.9
2017-09-13 20:38:48,417 INFO [Thread-1] (Controller.java:1896) - <<< 20170913,10:40,1
2017-09-13 20:39:15,971 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:39:46,009 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:40:16,055 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:40:46,151 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:41:16,191 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:41:46,255 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:42:16,298 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:42:46,352 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:43:16,399 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:43:46,449 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:43:48,455 INFO [Thread-1] (Controller.java:1869) - >>> 20170913,10:45,-1,-1,-1.0,0,-1000.0,245.2
2017-09-13 20:43:48,461 INFO [Thread-1] (WebClient.java:126) - >>> http://pvoutput.org:80/service/r2/addbatchstatus.jsp?data=20170913,10:45,-1,-1,-1.0,0,-1000.0,245.2
2017-09-13 20:43:48,900 INFO [Thread-1] (Controller.java:1896) - <<< 20170913,10:45,1
2017-09-13 20:44:16,492 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:44:46,538 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:45:16,579 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:45:46,648 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:46:16,694 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:46:46,742 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates
2017-09-13 20:47:16,781 INFO [Thread-10] (WebClient.java:157) - >>> http://192.168.1.144:80/api/meters/aggregates

Powerwall.ini

The Powerwall gateway API url

Replace 127.0.0.1 with the gateway IP address

url=http://192.168.1.144/api/meters/aggregates

Poll the URL every n seconds

poll=30

Define the power direction

‘in’ - Consumption (load)

‘out’ - Solar Generation (solar)

direction=in

uncomment to read an alternative power value

default is ‘instant_power’

power=instant_power

uncomment to read voltage data

voltage=instant_average_voltage

pvoutput.ini

#
# Request an API key from the pvoutput.org ‘Settings’ menu option
#

key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

#
# Your System Id is shown in the pvoutput.org ‘Settings’ menu option
#

sid=54376

#
# The directory where your daily data logs are stored (use forward slashes ‘/’ and no quotes)
#

dir=c:/logs

#
# Inverter/monitor type - valid values are
#
# aurora
# xantrex
# solarlog
# growatt
# suntellite
# currentcost
# flukso
# sunnyroo
# ted5000
# enphase
# pvmate
# enasolar
# kaco
# owl
# danfoss
# sdc
# csv
# powerwall

format=powerwall

#
# Data will not be processed after this time if there is no power and energy has not changed
#

# endtime=24.00

#
# Uncomment the ‘file’ configuration line below if -
#
**# 1. The log file name is different to the default **
# * Aurora 'yyyy-MM-dd.log’
# * GT View 'GT Data Log MM-dd-yyyy.xls’
#
# 2. The log file located on a web server
# * file=http://192.168.0.5/log/min_day.js
#
# 3. The log file located on an FTP server
# * file=ftp://username:password@192.168.0.5/min_day.js
#
# The example below is for Xantrex SG View
**# **

# file=SGTData Data Log {MM-dd-yyyy}.xls

#
# Uncomment the ‘timezone’ configuration line below if you need to specify a timezone for the service to run under.
#

timezone=GMT+10

#
# Uncomment the ‘local-graph’ configuration to create local file with 1-minute graph data
#

# local-graph=true

#
# Uncomment the ‘direction’ configuration below to change the default energy direction of each format
#
# ‘out’ - update the export channel v1, v2 (pv inverters - ‘aurora’, ‘xantrex’, ‘solarlog’, ‘growatt’, ‘suntellite’ etc)
# ‘in’ - update the import channel v3, v4 (energy monitors - ‘flukso’, ‘currentcost’, ‘ted5000’)
#
*# CurrentCost, TED5000, Flukso and Enphase directions are configured in their respective .ini files
**# **

# direction=in

#
# Service settings
#
service-dryrun=false
service-url=http://pvoutput.org

#
# Maximum number of retries before an output is ignored
# Increase this value for unreliable internet connections
# A retry is attempted each minute, max value is 1440 (1 day)
#
max-retries-soft=30

#
# Maximum number of retries before the service is shutdown
# Increase this value for unreliable internet connections
# A retry is attempted each minute, max value is 1440 (1 day)
#
max-retries-hard=40

#
# Enable or disable temperature data upload
# Default is 'true’
#
upload-temperature=true

#
# Enable or disable voltage data upload
# Default is 'false’
#
upload-voltage=true

#
# The port on the local machine to host the admin console on
# The admin console URL is 'http://localhost:8888
# Comment the line below disable the admin console
#
admin-port=8888

**# **
# When using multiple inverter log files ensure there are an equal number of values in
# the following configurations. Each value must be separated by a comma.
#
# 1. dir
# 2. format
# 3. file
**# **
# e.g.
#
# dir=c:/logs/xantrex,c:/logs/aurora
# format=xantrex,aurora
# file=SGTData Data Log {MM-dd-yyyy}.xls,
#

dir=c:/logs
format=powerwall
file=PW0-{MM-dd-yyyy}.log

If the voltage is reading correctly then access to the URL isn’t the issue.

The power data may not be in the expected format.

Can you email the contents of http://192.168.1.144:80/api/meters/aggregates to pvoutput@gmail.com ?

Still awaiting delivery of pw2 :sweat:

This issue has been fixed in v1.5.0.1

Hi, the gateway can provide a lot more information I’m assuming because the tesla app shows; home usage, solar generated, from grid, to grid, from PW, and to PW. Can these be included in what is sent to pvoutput.org and is there plans to include?

Yes - the next version of the integration service will allow fields in the gateway message data to be sent up as an extended parameter (v7-v12)

Excellent mate - thanks.

1 Like

Sorry but I am a total novice at the External Data stuff and am trying to get specific data from my Powerwall 2 to plot in a graph, Is thre a tutorial on how to configure External Data - With the Powerall option I only get values V7-V12 listed as possibles but these only have NaN values in the log.

  • my Log file looks like this
    DATE;TIME;TEMPERATURE;VOLTAGE;POWER;ENERGY;TOTAL;V7;V8;V9;V10;V11;V12
    20171002;20:34:35;-1000.0;244.3;712;0.000;-1.000;NaN;NaN;NaN;NaN;NaN;NaN
    I also wanted to access specific values from the JSON request these are
    “battery” : {
    “energy_exported” : 351310,
    “energy_imported” : 423240,

Is this possible with current version?
Thanks

Not as far as I know, consumption data only.

2 Likes

Extended Parameters are now supported in v1.5.1

1 Like

Great - I’ll have a play later tonight - thanks.

OK - I have to admit I’m confused. I’ve got the home usage in both the 5 minute interval and the area usage of the sum of the days usage. But I have no idea on why I’m not seeing other data that I’m sending up and also don’t know what data I should be sending up to get the same info from the Tesla app. As mentioned in a previous post (solar generated, from grid, to grid, from PW, and to PW) this is the info I’d like to get - what options do I pick to get that information sent but more importantly how do I get it to show in the live graph (obviously I’m being stupid and don’t understand how it works). Please help.

Click on the Purple square below the graph.

1 Like

See, I told you I was stupid. :wink:

At least now I should be able to work out which params to use to get the same information as the tesla app. Thanks again- cheers.