Closed jasonacox closed 6 months ago
Will this require you to re-customise dashboards, or will any dashboard that includes the "standard" animation pick this up?
Good question. This update should be 100% transparent to the dashboards. No change needed for users. I'm using stock dashboard.json and didn't need to change anything for it to work.
The key difference is that instead of pypowerwall pulling the various html, js and image files from the Powerwall Gateway, it will send local cached versions of those files. In my testing it is a good 2-5x faster on startup. More important, even if Tesla decides to remove the portal, the pypowerwall driven animation will continue. This is the first step to also allowing solar-only customers to use the animation in their dashboards (even if they don't have a Powerwall Gateway).
Still, happy to have anyone test before we merge:
powerwall.yml
and change the image under pypowerwall to "jasonacox/pypowerwall:0.6.4t29"./compose-dash.sh up -d
and it will pull down the new pypowerwall.Before upgrading, make sure you revert the above change:
powerwalls.yml
and change the image under pypowerwall back to "jasonacox/pypowerwall:0.6.2t28"Still, happy to have anyone test before we merge:
The Grid, Solar, Powerwall, and Home Icons loaded, but then flashed on and off, with red Xs above each of grid, home and solar and through the middle of Powerwall - similar to what you see when the grid is down, but through each of the icons, including the Powerwall.
It would occasionally flash up the charge level and power, but only momentarily.
Just in case, I set up a brand-new stock dashboard from the latest dashboard.json, and saw the same thing.
Reverted to the 0.6.2t28 tag and it's working on both my customised and the standard dashboard.
My dashboard is available at wsl2:9000 - wsl2 is the hostname associated with a static DHCP reservation that allocates the IP address to the WSL2 linux instance running on my windows machine, but equally if I access it via the IP address of 192.168.1.125:9000, I see the same thing.
The iframe source renders as <iframe id="frame8675" class="powerFrame" src="http://wsl2:8675/" style="transform: translate(-50%, -50%) scale(1);">IFRAME not supported by browser.</iframe>
(or 192.168.1.125:8657 when accessing using the IP address).
I tested locally on the windows host as well (i.e. localhost:9000 and localhost:8675) but the same thing occurred).
Hi @BJReplay - thanks for testing and the feedback, that is strange.
I wonder if this is specific to WSL - I will see if I can replicate it.
I'm sure you already tried this... but did you try clearing the browser cache and/or running in Incognito when testing?
I'm sure you already tried this... but did you try clearing the browser cache and/or running in Incognito when testing?
Hmmm, I didn't try incognito mode, but I did try a hard reload. I'll try now...
I wonder if this is specific to WSL - I will see if I can replicate it. OK,
Now tried Chrome and Edge
I'm sure you already tried this... but did you try clearing the browser cache and/or running in Incognito when testing? Now tried Incognito / In Private and Cleared Browser Cache in normal mode.
Still there in all modes.
I haven't been able to replicate this issue....
I tested a new WSL2 (w/ Docker Desktop) install with a new fresh install of v3.0.6, as well as a fresh v3.0.5 then upgraded to v.30.6, and in each case the Power Flow animation worked correctly in Chrome, Firefox, and Edge, from localhost and remote hosts.
@BJReplay - I wonder if this could be due to Powerwall Firmware differences?
What firmware is your Powerwall running? Mine is 23.28.2
Just a thought... as essentially the TEG asset files (html, css, js, images, fonts, etc) have been copied from the TEG and are now served from the local filesystem by the pypowerwall proxy instead of directly from the gateway. If there are differences in the copied assets compared to the users specific gateway version this could cause a problem perhaps?
I'm not sure where to go from here since I can't replicate the problem.
If you're able to, it would be interesting to see if you had the same issue on a different platform like a RPi or Linux based host or VM to eliminate the WSL factor.
What firmware is your Powerwall running? Mine is 23.28.2
Mine is running Firmware: 23.36.3. I'll see if I can stand up a new instance on Ubuntu (will be a cloud instance via a VPN as I don't have any spare bare metal) and see how I go).
it would be interesting to see if you had the same issue on a different platform
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-1049-oracle aarch64)
OK, running via VPN.
Slightly different symptoms. I can't tell (of course) whether it's the VPN or the environment, but I'm guessing it's actually the powerwall firmware.
My suggestion is to keep running ahead with your work, and when you have access to this firmware, and can look at what it is giving you, work out whether the firmware is giving you a different set of files or, most likely, js which is causing the problem.
Annoying, but anyway, thanks for trying to repro, and I hope this helps a little.
excerpt from powerwall.yml
version: "3.5"
services:
pypowerwall:
# image: jasonacox/pypowerwall:0.6.2t28
image: jasonacox/pypowerwall:0.6.4t29
container_name: pypowerwall
hostname: pypowerwall
restart: unless-stopped
user: "${PWD_USER:-1000:1000}"
ports:
- "${PYPOWERWALL_PORTS:-8675:8675}"
env_file:
- pypowerwall.env
profiles:
- default
Results of verify.sh
ubuntu@mastodon:~/Powerwall-Dashboard$ ./verify.sh
Verify Powerwall-Dashboard 3.0.5 on Linux - Timezone: Australia/Melbourne
----------------------------------------------------------------------------
This script will attempt to verify all the services needed to run
Powerwall-Dashboard. Use this output when you open an issue for help:
https://github.com/jasonacox/Powerwall-Dashboard/issues/new
Checking configuration
----------------------------------------------------------------------------
- Dashboard configuration: default
- EnvVar COMPOSE_PROFILES: default
Checking pypowerwall
----------------------------------------------------------------------------
- Config File pypowerwall.env: GOOD
- Container (pypowerwall): GOOD
- Service (port 8675): GOOD
- Version: 0.6.4 Proxy t29
- Powerwall State: CONNECTED - Firmware Version: 23.36.3
Checking telegraf
----------------------------------------------------------------------------
- Config File telegraf.conf: GOOD
- Local Config File telegraf.local: GOOD
- Container (telegraf): GOOD
- Version: Telegraf 1.28.2 (git: HEAD@8d9cf395)
Checking influxdb
----------------------------------------------------------------------------
- Config File influxdb.conf: GOOD
- Container (influxdb): GOOD
- Service (port 8086): GOOD
- Filesystem (./influxdb): GOOD
- Version: InfluxDB shell version: 1.8.10
Checking grafana
----------------------------------------------------------------------------
- Config File grafana.env: GOOD
- Container (grafana): GOOD
- Service (port 9000): GOOD
- Filesystem (./grafana): GOOD
- Version: Grafana CLI version 9.1.2
Checking tesla-history
----------------------------------------------------------------------------
- Skipped: Only required in 'solar-only' configuration
Checking weather411
----------------------------------------------------------------------------
- Skipped: weather411 not set up
All tests succeeded.
ubuntu@mastodon:~/Powerwall-Dashboard$
Screenshot - same both on normal (cache cleared) and incognito
The previous version (0.6.2t28) works fine over VPN).
Thanks for testing, must appreciated.
Jason might have some more ideas to try before this is merged. It would be nice to resolve it, but I think I've exhausted my suggestions for now.
Thanks @BJReplay and @mcbirse !
@BJReplay what happens when you try to go direct to pypowerwall via http://localhost:8675 (not in iFrame)? If it is related to some differences in the firmware, it will still act up. Also, I suspect you did, but can you confirm you cleared the browser cache?
The intent was to completely detach the animation from the firmware and rely only on the data calls (e.g. /api/meters/aggregates). The code (js especially) is complex so I'm probably missing something. To help troubleshoot, can you run a local copy of the pypowerwall proxy in debug made and watch for URLs that are passing through instead of pulling from the local cache?
# Get the code
git clone https://github.com/jasonacox/pypowerwall.git
cd pypowerwall
# Set the Powerwalls credentials
export PW_PASSWORD="xxxx
export PW_EMAIL="xxxx"
export PW_HOST="x.x.x.x"
export PW_CACHE_EXPIRE="30"
export PW_DEBUG="yes"
# Run
python3 proxy/server.py
Check to see what the proxy logs show going to http://localhost:8675 - it should look something like:
Running Proxy...
12/18/2023 07:53:37 PM [proxy] [INFO] pyPowerwall [0.6.4] Proxy Server [t29] - HTTP Port 8675 - DEBUG
12/18/2023 07:53:37 PM [pypowerwall] [DEBUG] pypowerwall [0.6.4]
12/18/2023 07:53:37 PM [proxy] [INFO] pyPowerwall Proxy Started
12/18/2023 07:53:37 PM [pypowerwall] [DEBUG] loaded auth from cache file .powerwall
12/18/2023 07:53:37 PM [proxy] [INFO] pyPowerwall Proxy Server - Connected to x.x.x.x
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET / HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] Served from local web root: /index.html
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /app.css HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] Served from local web root: /app.css
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /grafana-dark.js HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /vendor.js HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /app.js HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] Served from local web root: /grafana-dark.js
12/18/2023 07:53:40 PM [proxy] [DEBUG] Served from local web root: /app.js
12/18/2023 07:53:40 PM [proxy] [DEBUG] Served from local web root: /vendor.js
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /eca1317ee8a99162d0d0e2df77330cec.otf HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] Served from local web root: /eca1317ee8a99162d0d0e2df77330cec.otf
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /40.17c71172308436a079d1.js HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] Served from local web root: /40.17c71172308436a079d1.js
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /1.17c71172308436a079d1.js HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /39.17c71172308436a079d1.js HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] Served from local web root: /1.17c71172308436a079d1.js
12/18/2023 07:53:40 PM [proxy] [DEBUG] Served from local web root: /39.17c71172308436a079d1.js
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/status HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/auth/toggle/supported HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/site_info/site_name HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/status HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_faults HTTP/1.1" 200 -
12/18/2023 07:53:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/customer/registration HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/networks HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/site_info HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /e19c20e966bde501f94e41cd0322dbe8.otf HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] Served from local web root: /e19c20e966bde501f94e41cd0322dbe8.otf
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /cb0da8a8999c06735455bf5056a5cd78.png HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] Served from local web root: /cb0da8a8999c06735455bf5056a5cd78.png
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /012955c70685614a5639d326f41890bd.png HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /230aeae00823cd3b622d093948d9c433.png HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] Served from local web root: /012955c70685614a5639d326f41890bd.png
12/18/2023 07:53:41 PM [proxy] [DEBUG] Served from local web root: /230aeae00823cd3b622d093948d9c433.png
12/18/2023 07:53:41 PM [proxy] [DEBUG] 127.0.0.1 "GET /4e28cc8f2bdf3ba640331daa2c453341.png HTTP/1.1" 200 -
12/18/2023 07:53:41 PM [proxy] [DEBUG] Served from local web root: /4e28cc8f2bdf3ba640331daa2c453341.png
12/18/2023 07:53:42 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/18/2023 07:53:42 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/18/2023 07:53:42 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/18/2023 07:53:42 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/18/2023 07:53:42 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/18/2023 07:53:45 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/18/2023 07:53:45 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/18/2023 07:53:45 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/18/2023 07:53:45 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/18/2023 07:53:45 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/18/2023 07:53:45 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/18/2023 07:53:47 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/18/2023 07:53:47 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/18/2023 07:53:47 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/18/2023 07:53:47 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/18/2023 07:53:47 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
If you have Dev Tools in your browser, it would be good to see if it is throwing javascript errors.
@mcbirse - I hope to have the pypowerwall cloud option soon. Once that is in place, I should be able to test the animation against cloud data without any Powerwall connection. It may uncover some of this bug as well.
@BJReplay what happens when you try to go direct to pypowerwall via http://localhost:8675 (not in iFrame)?
Same thing going directly to http://localhost:8675 not in iFrame, with browser cache cleared.
If you have Dev Tools in your browser, it would be good to see if it is throwing javascript errors.
I do, It is:
Lots of repeated errors. Once I toggled Preserve log on (since the page continuously reloads) I got a series of repeated errors, all of the form
c {message: 'TypeError: Failed to fetch', context: undefined, name: 'RECEIVE_METER_AGGREGATES_ERROR'}:
RECEIVE_SOE_ERROR
RECEIVE_METER_AGGREGATES_ERROR
RECEIVE_NETWORKS_ERROR
RECEIVE_GRID_STATUS_ERROR
RECEIVE_TEST_ALERTS_ERROR
RECEIVE_CONFIG_INITIALIZED_ERROR
Here's one expanded:
{message: 'TypeError: Failed to fetch', context: undefined, name: 'RECEIVE_METER_AGGREGATES_ERROR'}
error @ app.js:2614
c @ app.js:2639
(anonymous) @ app.js:10235
await in (anonymous) (async)
(anonymous) @ vendor.js:27696
getMeterAggregates @ app.js:21069
e @ app.js:20499
setTimeout (async)
startQuerying @ app.js:20516
componentDidMount @ app.js:20528
as @ vendor.js:36603
pu @ vendor.js:37498
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
fu @ vendor.js:37342
Zs @ vendor.js:37144
(anonymous) @ vendor.js:35001
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
Uo @ vendor.js:34997
Ko @ vendor.js:34989
Js @ vendor.js:36997
enqueueSetState @ vendor.js:35154
g.setState @ vendor.js:32760
(anonymous) @ vendor.js:4126
(anonymous) @ vendor.js:3899
(anonymous) @ vendor.js:3825
(anonymous) @ vendor.js:3434
(anonymous) @ vendor.js:3435
(anonymous) @ vendor.js:3603
(anonymous) @ vendor.js:3614
(anonymous) @ vendor.js:3432
b @ vendor.js:3431
k @ vendor.js:3599
l @ vendor.js:3824
r @ vendor.js:3486
runEnterHooks @ vendor.js:3499
(anonymous) @ vendor.js:3839
r @ vendor.js:3486
runChangeHooks @ vendor.js:3516
c @ vendor.js:3837
(anonymous) @ vendor.js:3814
u @ vendor.js:3416
(anonymous) @ vendor.js:3784
(anonymous) @ vendor.js:3750
(anonymous) @ vendor.js:3712
(anonymous) @ app.js:21721
Promise.then (async)
getIndexRoute @ app.js:21699
e @ vendor.js:3711
P @ vendor.js:3744
(anonymous) @ vendor.js:3783
c @ vendor.js:3420
v @ vendor.js:3423
Y @ vendor.js:3780
u @ vendor.js:3813
r @ vendor.js:3898
listen @ vendor.js:3903
componentWillMount @ vendor.js:4125
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
Js @ vendor.js:36997
Pu @ vendor.js:37987
(anonymous) @ vendor.js:38054
tu @ vendor.js:37161
Fu @ vendor.js:38053
t.render @ vendor.js:38235
ne @ app.js:21970
(anonymous) @ app.js:21977
Promise.then (async)
(anonymous) @ app.js:21975
s @ app.js:25
i @ app.js:14
(anonymous) @ app.js:183
(anonymous) @ app.js:184
Check to see what the proxy logs show going to http://localhost:8675 - it should look something like:
12/19/2023 03:29:17 PM [proxy] [INFO] pyPowerwall [0.6.0] Proxy Server [t29] - HTTP Port 8675 - DEBUG
12/19/2023 03:29:17 PM [pypowerwall] [DEBUG] pypowerwall [0.6.0]
12/19/2023 03:29:17 PM [proxy] [INFO] pyPowerwall Proxy Started
12/19/2023 03:29:17 PM [pypowerwall] [DEBUG] loaded auth from cache file .powerwall
12/19/2023 03:29:17 PM [proxy] [INFO] pyPowerwall Proxy Server - Connected to 192.168.1.30
12/19/2023 03:29:48 PM [proxy] [DEBUG] 127.0.0.1 "GET / HTTP/1.1" 200 -
12/19/2023 03:29:48 PM [proxy] [DEBUG] Served from local web root: /index.html
12/19/2023 03:29:48 PM [proxy] [DEBUG] 127.0.0.1 "GET /app.css HTTP/1.1" 200 -
12/19/2023 03:29:48 PM [proxy] [DEBUG] Served from local web root: /app.css
12/19/2023 03:29:48 PM [proxy] [DEBUG] 127.0.0.1 "GET /vendor.js HTTP/1.1" 200 -
12/19/2023 03:29:48 PM [proxy] [DEBUG] Served from local web root: /vendor.js
12/19/2023 03:29:48 PM [proxy] [DEBUG] 127.0.0.1 "GET /app.js HTTP/1.1" 200 -
12/19/2023 03:29:48 PM [proxy] [DEBUG] 127.0.0.1 "GET /grafana-dark.js HTTP/1.1" 200 -
12/19/2023 03:29:48 PM [proxy] [DEBUG] Served from local web root: /grafana-dark.js
12/19/2023 03:29:48 PM [proxy] [DEBUG] Served from local web root: /app.js
12/19/2023 03:29:49 PM [proxy] [DEBUG] 127.0.0.1 "GET /40.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:49 PM [proxy] [DEBUG] Served from local web root: /40.17c71172308436a079d1.js
12/19/2023 03:29:49 PM [proxy] [DEBUG] 127.0.0.1 "GET /1.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:49 PM [proxy] [DEBUG] Served from local web root: /1.17c71172308436a079d1.js
12/19/2023 03:29:49 PM [proxy] [DEBUG] 127.0.0.1 "GET /39.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:49 PM [proxy] [DEBUG] Served from local web root: /39.17c71172308436a079d1.js
12/19/2023 03:29:49 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/status HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [DEBUG] 127.0.0.1 "GET /e19c20e966bde501f94e41cd0322dbe8.otf HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [DEBUG] Served from local web root: /e19c20e966bde501f94e41cd0322dbe8.otf
12/19/2023 03:29:50 PM [proxy] [DEBUG] 127.0.0.1 "GET /eca1317ee8a99162d0d0e2df77330cec.otf HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [DEBUG] Served from local web root: /eca1317ee8a99162d0d0e2df77330cec.otf
12/19/2023 03:29:50 PM [proxy] [DEBUG] 127.0.0.1 "GET / HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [DEBUG] Served from local web root: /index.html
12/19/2023 03:29:50 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/auth/toggle/supported HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/site_info/site_name HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/customer/registration HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [ERROR] Socket broken sending response [doGET]
12/19/2023 03:29:50 PM [proxy] [ERROR] Socket broken sending response [doGET]
12/19/2023 03:29:50 PM [proxy] [DEBUG] 127.0.0.1 "GET /app.css HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [DEBUG] 127.0.0.1 "GET /vendor.js HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [DEBUG] Served from local web root: /app.css
12/19/2023 03:29:50 PM [proxy] [DEBUG] 127.0.0.1 "GET /app.js HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [DEBUG] Served from local web root: /vendor.js
12/19/2023 03:29:50 PM [proxy] [DEBUG] 127.0.0.1 "GET /grafana-dark.js HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [DEBUG] Served from local web root: /grafana-dark.js
12/19/2023 03:29:50 PM [proxy] [DEBUG] Served from local web root: /app.js
12/19/2023 03:29:50 PM [proxy] [DEBUG] 127.0.0.1 "GET /40.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:50 PM [proxy] [DEBUG] Served from local web root: /40.17c71172308436a079d1.js
12/19/2023 03:29:51 PM [proxy] [DEBUG] 127.0.0.1 "GET /1.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:51 PM [proxy] [DEBUG] Served from local web root: /1.17c71172308436a079d1.js
12/19/2023 03:29:51 PM [proxy] [DEBUG] 127.0.0.1 "GET /39.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:51 PM [proxy] [DEBUG] Served from local web root: /39.17c71172308436a079d1.js
12/19/2023 03:29:51 PM [proxy] [DEBUG] 127.0.0.1 "GET /e19c20e966bde501f94e41cd0322dbe8.otf HTTP/1.1" 200 -
12/19/2023 03:29:51 PM [proxy] [DEBUG] Served from local web root: /e19c20e966bde501f94e41cd0322dbe8.otf
12/19/2023 03:29:51 PM [proxy] [DEBUG] 127.0.0.1 "GET /eca1317ee8a99162d0d0e2df77330cec.otf HTTP/1.1" 200 -
12/19/2023 03:29:51 PM [proxy] [DEBUG] Served from local web root: /eca1317ee8a99162d0d0e2df77330cec.otf
12/19/2023 03:29:51 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/status HTTP/1.1" 200 -
12/19/2023 03:29:51 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/site_info/site_name HTTP/1.1" 200 -
12/19/2023 03:29:51 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/auth/toggle/supported HTTP/1.1" 200 -
12/19/2023 03:29:51 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/customer/registration HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [DEBUG] 127.0.0.1 "GET / HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [DEBUG] Served from local web root: /index.html
12/19/2023 03:29:52 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_faults HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/site_info HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/networks HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [ERROR] Socket broken sending response [doGET]
12/19/2023 03:29:52 PM [proxy] [ERROR] Socket broken sending response [doGET]
12/19/2023 03:29:52 PM [proxy] [ERROR] Socket broken sending response [doGET]
12/19/2023 03:29:52 PM [proxy] [DEBUG] 127.0.0.1 "GET /app.css HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [DEBUG] Served from local web root: /app.css
12/19/2023 03:29:52 PM [proxy] [DEBUG] 127.0.0.1 "GET /vendor.js HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [DEBUG] 127.0.0.1 "GET /app.js HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [ERROR] Socket broken sending response [doGET]
12/19/2023 03:29:52 PM [proxy] [DEBUG] Served from local web root: /app.js
12/19/2023 03:29:52 PM [proxy] [DEBUG] 127.0.0.1 "GET /grafana-dark.js HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [DEBUG] Served from local web root: /grafana-dark.js
12/19/2023 03:29:52 PM [proxy] [DEBUG] Served from local web root: /vendor.js
12/19/2023 03:29:52 PM [proxy] [DEBUG] 127.0.0.1 "GET /40.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:52 PM [proxy] [DEBUG] Served from local web root: /40.17c71172308436a079d1.js
12/19/2023 03:29:53 PM [proxy] [DEBUG] 127.0.0.1 "GET /1.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:53 PM [proxy] [DEBUG] Served from local web root: /1.17c71172308436a079d1.js
12/19/2023 03:29:53 PM [proxy] [DEBUG] 127.0.0.1 "GET /39.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:53 PM [proxy] [DEBUG] Served from local web root: /39.17c71172308436a079d1.js
12/19/2023 03:29:53 PM [proxy] [DEBUG] 127.0.0.1 "GET /eca1317ee8a99162d0d0e2df77330cec.otf HTTP/1.1" 200 -
12/19/2023 03:29:53 PM [proxy] [DEBUG] 127.0.0.1 "GET /e19c20e966bde501f94e41cd0322dbe8.otf HTTP/1.1" 200 -
12/19/2023 03:29:53 PM [proxy] [DEBUG] Served from local web root: /eca1317ee8a99162d0d0e2df77330cec.otf
12/19/2023 03:29:53 PM [proxy] [DEBUG] Served from local web root: /e19c20e966bde501f94e41cd0322dbe8.otf
12/19/2023 03:29:53 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/status HTTP/1.1" 200 -
12/19/2023 03:29:53 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/auth/toggle/supported HTTP/1.1" 200 -
12/19/2023 03:29:53 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/site_info/site_name HTTP/1.1" 200 -
12/19/2023 03:29:53 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/customer/registration HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 127.0.0.1 "GET / HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_faults HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] Served from local web root: /index.html
12/19/2023 03:29:54 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/networks HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/site_info HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [ERROR] Socket broken sending response [doGET]
12/19/2023 03:29:54 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [ERROR] Socket broken sending response [doGET]
12/19/2023 03:29:54 PM [proxy] [DEBUG] 192.168.1.200 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 192.168.1.200 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 192.168.1.200 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 192.168.1.200 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 192.168.1.200 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 192.168.1.200 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 192.168.1.200 "GET /api/auth/toggle/supported HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 127.0.0.1 "GET /app.js HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 127.0.0.1 "GET /vendor.js HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] 127.0.0.1 "GET /app.css HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] Served from local web root: /app.js
12/19/2023 03:29:54 PM [proxy] [DEBUG] Served from local web root: /app.css
12/19/2023 03:29:54 PM [proxy] [DEBUG] 127.0.0.1 "GET /grafana-dark.js HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] Served from local web root: /grafana-dark.js
12/19/2023 03:29:54 PM [proxy] [DEBUG] Served from local web root: /vendor.js
12/19/2023 03:29:54 PM [proxy] [DEBUG] 127.0.0.1 "GET /40.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:54 PM [proxy] [DEBUG] Served from local web root: /40.17c71172308436a079d1.js
12/19/2023 03:29:55 PM [proxy] [DEBUG] 127.0.0.1 "GET /1.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:55 PM [proxy] [DEBUG] Served from local web root: /1.17c71172308436a079d1.js
12/19/2023 03:29:55 PM [proxy] [DEBUG] 127.0.0.1 "GET /39.17c71172308436a079d1.js HTTP/1.1" 200 -
12/19/2023 03:29:55 PM [proxy] [DEBUG] Served from local web root: /39.17c71172308436a079d1.js
12/19/2023 03:29:55 PM [proxy] [DEBUG] 127.0.0.1 "GET /e19c20e966bde501f94e41cd0322dbe8.otf HTTP/1.1" 200 -
12/19/2023 03:29:55 PM [proxy] [DEBUG] Served from local web root: /e19c20e966bde501f94e41cd0322dbe8.otf
12/19/2023 03:29:55 PM [proxy] [DEBUG] 127.0.0.1 "GET /eca1317ee8a99162d0d0e2df77330cec.otf HTTP/1.1" 200 -
12/19/2023 03:29:55 PM [proxy] [DEBUG] Served from local web root: /eca1317ee8a99162d0d0e2df77330cec.otf
12/19/2023 03:29:55 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/auth/toggle/supported HTTP/1.1" 200 -
12/19/2023 03:29:55 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/status HTTP/1.1" 200 -
12/19/2023 03:29:55 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/customer/registration HTTP/1.1" 200 -
12/19/2023 03:29:55 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/site_info/site_name HTTP/1.1" 200 -
12/19/2023 03:29:58 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:29:58 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:29:58 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:29:58 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:29:58 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:00 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:30:00 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:00 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:00 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:00 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:00 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:03 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:03 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:03 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:03 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:03 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:05 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/auth/toggle/supported HTTP/1.1" 200 -
12/19/2023 03:30:05 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:30:05 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:06 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:06 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:06 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:06 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:08 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:08 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:08 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:08 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:08 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:10 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:30:11 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:11 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:11 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:11 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:11 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:13 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:13 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:13 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:13 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:13 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:15 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/auth/toggle/supported HTTP/1.1" 200 -
12/19/2023 03:30:15 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:30:16 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:16 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:16 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:16 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:16 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:18 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:18 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:18 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:18 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:18 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:20 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:30:21 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:21 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:21 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:21 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:21 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:23 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:24 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:24 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:24 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:24 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:25 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/auth/toggle/supported HTTP/1.1" 200 -
12/19/2023 03:30:25 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:30:26 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:26 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:26 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:26 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:26 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:28 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:29 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:29 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:29 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:29 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:30 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:30:31 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:31 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:31 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:31 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:31 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:33 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:34 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:34 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:34 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:34 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:35 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/auth/toggle/supported HTTP/1.1" 200 -
12/19/2023 03:30:35 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:30:36 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:36 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:36 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:36 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:36 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:39 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:39 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:39 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:39 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:39 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:40 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
12/19/2023 03:30:42 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:42 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:42 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:42 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:42 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:44 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/sitemaster HTTP/1.1" 200 -
12/19/2023 03:30:44 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/meters/aggregates HTTP/1.1" 200 -
12/19/2023 03:30:44 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/soe HTTP/1.1" 200 -
12/19/2023 03:30:44 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/system_status/grid_status HTTP/1.1" 200 -
12/19/2023 03:30:44 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/powerwalls HTTP/1.1" 200 -
12/19/2023 03:30:45 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/auth/toggle/supported HTTP/1.1" 200 -
12/19/2023 03:30:45 PM [proxy] [DEBUG] 127.0.0.1 "GET /api/troubleshooting/problems HTTP/1.1" 200 -
^C CANCEL
12/19/2023 03:30:46 PM [proxy] [INFO] pyPowerwall Proxy Stopped
And here's the web console from the two loops of the same session - note that the proxy log is more than two loops, but I've only include the first two loops below.
Navigated to http://localhost:8675/
grafana-dark.js:26 Applying Grafana customization
app.js:2614 TypeError: Failed to fetch
at u (:8675/app.js:12793:33)
at :8675/app.js:12787:27
at Object.requestSitemasterStatusThunk (:8675/app.js:18486:110)
at Ye.componentDidMount (:8675/app.js:18225:32)
at as (:8675/vendor.js:36603:47)
at pu (:8675/vendor.js:37498:48)
at t.unstable_runWithPriority (:8675/vendor.js:38508:32)
at Ho (:8675/vendor.js:34976:37)
at fu (:8675/vendor.js:37342:24)
at Zs (:8675/vendor.js:37144:106)
error @ app.js:2614
(anonymous) @ app.js:12789
await in (anonymous) (async)
requestSitemasterStatusThunk @ app.js:18486
componentDidMount @ app.js:18225
as @ vendor.js:36603
pu @ vendor.js:37498
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
fu @ vendor.js:37342
Zs @ vendor.js:37144
(anonymous) @ vendor.js:35001
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
Uo @ vendor.js:34997
Ko @ vendor.js:34989
Js @ vendor.js:36997
enqueueSetState @ vendor.js:35154
g.setState @ vendor.js:32760
(anonymous) @ vendor.js:4126
(anonymous) @ vendor.js:3899
(anonymous) @ vendor.js:3825
(anonymous) @ vendor.js:3434
(anonymous) @ vendor.js:3435
(anonymous) @ vendor.js:3603
(anonymous) @ vendor.js:3614
(anonymous) @ vendor.js:3432
b @ vendor.js:3431
k @ vendor.js:3599
l @ vendor.js:3824
r @ vendor.js:3486
runEnterHooks @ vendor.js:3499
(anonymous) @ vendor.js:3839
r @ vendor.js:3486
runChangeHooks @ vendor.js:3516
c @ vendor.js:3837
(anonymous) @ vendor.js:3814
u @ vendor.js:3416
(anonymous) @ vendor.js:3784
(anonymous) @ vendor.js:3750
(anonymous) @ vendor.js:3712
(anonymous) @ app.js:21721
Promise.then (async)
getIndexRoute @ app.js:21699
e @ vendor.js:3711
P @ vendor.js:3744
(anonymous) @ vendor.js:3783
c @ vendor.js:3420
v @ vendor.js:3423
Y @ vendor.js:3780
u @ vendor.js:3813
r @ vendor.js:3898
listen @ vendor.js:3903
componentWillMount @ vendor.js:4125
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
Js @ vendor.js:36997
Pu @ vendor.js:37987
(anonymous) @ vendor.js:38054
tu @ vendor.js:37161
Fu @ vendor.js:38053
t.render @ vendor.js:38235
ne @ app.js:21970
(anonymous) @ app.js:21977
Promise.then (async)
(anonymous) @ app.js:21975
s @ app.js:25
i @ app.js:14
(anonymous) @ app.js:183
(anonymous) @ app.js:184
app.js:2614 c {message: 'TypeError: Failed to fetch', context: undefined, name: 'RECEIVE_SITEMASTER_SETTINGS_ERROR'}
error @ app.js:2614
c @ app.js:2639
(anonymous) @ app.js:4795
Promise.catch (async)
(anonymous) @ app.js:4794
(anonymous) @ vendor.js:27696
fetchSitemasterSettings @ app.js:21056
e @ app.js:20498
setTimeout (async)
startQuerying @ app.js:20516
componentDidMount @ app.js:20528
as @ vendor.js:36603
pu @ vendor.js:37498
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
fu @ vendor.js:37342
Zs @ vendor.js:37144
(anonymous) @ vendor.js:35001
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
Uo @ vendor.js:34997
Ko @ vendor.js:34989
Js @ vendor.js:36997
enqueueSetState @ vendor.js:35154
g.setState @ vendor.js:32760
(anonymous) @ vendor.js:4126
(anonymous) @ vendor.js:3899
(anonymous) @ vendor.js:3825
(anonymous) @ vendor.js:3434
(anonymous) @ vendor.js:3435
(anonymous) @ vendor.js:3603
(anonymous) @ vendor.js:3614
(anonymous) @ vendor.js:3432
b @ vendor.js:3431
k @ vendor.js:3599
l @ vendor.js:3824
r @ vendor.js:3486
runEnterHooks @ vendor.js:3499
(anonymous) @ vendor.js:3839
r @ vendor.js:3486
runChangeHooks @ vendor.js:3516
c @ vendor.js:3837
(anonymous) @ vendor.js:3814
u @ vendor.js:3416
(anonymous) @ vendor.js:3784
(anonymous) @ vendor.js:3750
(anonymous) @ vendor.js:3712
(anonymous) @ app.js:21721
Promise.then (async)
getIndexRoute @ app.js:21699
e @ vendor.js:3711
P @ vendor.js:3744
(anonymous) @ vendor.js:3783
c @ vendor.js:3420
v @ vendor.js:3423
Y @ vendor.js:3780
u @ vendor.js:3813
r @ vendor.js:3898
listen @ vendor.js:3903
componentWillMount @ vendor.js:4125
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
Js @ vendor.js:36997
Pu @ vendor.js:37987
(anonymous) @ vendor.js:38054
tu @ vendor.js:37161
Fu @ vendor.js:38053
t.render @ vendor.js:38235
ne @ app.js:21970
(anonymous) @ app.js:21977
Promise.then (async)
(anonymous) @ app.js:21975
s @ app.js:25
i @ app.js:14
(anonymous) @ app.js:183
(anonymous) @ app.js:184
app.js:2614 c {message: '', context: '', name: 'RECEIVE_SUPPORTS_TOGGLE_AUTH_ERROR'}
error @ app.js:2614
c @ app.js:2639
d @ app.js:11729
(anonymous) @ vendor.js:9453
(anonymous) @ vendor.js:18467
M @ vendor.js:9365
(anonymous) @ vendor.js:40070
(anonymous) @ vendor.js:27696
dispatch @ vendor.js:9512
(anonymous) @ app.js:3746
await in (anonymous) (async)
(anonymous) @ vendor.js:27696
fetchSupportsToggleAuth @ app.js:18482
componentWillMount @ app.js:18218
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
(anonymous) @ vendor.js:35001
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
Uo @ vendor.js:34997
Ko @ vendor.js:34989
Js @ vendor.js:36997
enqueueSetState @ vendor.js:35154
g.setState @ vendor.js:32760
(anonymous) @ vendor.js:4126
(anonymous) @ vendor.js:3899
(anonymous) @ vendor.js:3825
(anonymous) @ vendor.js:3434
(anonymous) @ vendor.js:3435
(anonymous) @ vendor.js:3603
(anonymous) @ vendor.js:3614
(anonymous) @ vendor.js:3432
b @ vendor.js:3431
k @ vendor.js:3599
l @ vendor.js:3824
r @ vendor.js:3486
runEnterHooks @ vendor.js:3499
(anonymous) @ vendor.js:3839
r @ vendor.js:3486
runChangeHooks @ vendor.js:3516
c @ vendor.js:3837
(anonymous) @ vendor.js:3814
u @ vendor.js:3416
(anonymous) @ vendor.js:3784
(anonymous) @ vendor.js:3750
(anonymous) @ vendor.js:3712
(anonymous) @ app.js:21721
Promise.then (async)
getIndexRoute @ app.js:21699
e @ vendor.js:3711
P @ vendor.js:3744
(anonymous) @ vendor.js:3783
c @ vendor.js:3420
v @ vendor.js:3423
Y @ vendor.js:3780
u @ vendor.js:3813
r @ vendor.js:3898
listen @ vendor.js:3903
componentWillMount @ vendor.js:4125
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
Js @ vendor.js:36997
Pu @ vendor.js:37987
(anonymous) @ vendor.js:38054
tu @ vendor.js:37161
Fu @ vendor.js:38053
t.render @ vendor.js:38235
ne @ app.js:21970
(anonymous) @ app.js:21977
Promise.then (async)
(anonymous) @ app.js:21975
s @ app.js:25
i @ app.js:14
(anonymous) @ app.js:183
(anonymous) @ app.js:184
app.js:2614 c {message: 'TypeError: Failed to fetch', context: undefined, name: 'RECEIVE_TEST_ALERTS_ERROR'}
error @ app.js:2614
c @ app.js:2639
(anonymous) @ app.js:11481
Promise.catch (async)
(anonymous) @ app.js:11480
(anonymous) @ vendor.js:27696
fetchAlerts @ app.js:21067
(anonymous) @ app.js:20511
startQuerying @ app.js:20515
componentDidMount @ app.js:20528
as @ vendor.js:36603
pu @ vendor.js:37498
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
fu @ vendor.js:37342
Zs @ vendor.js:37144
(anonymous) @ vendor.js:35001
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
Uo @ vendor.js:34997
Ko @ vendor.js:34989
Js @ vendor.js:36997
enqueueSetState @ vendor.js:35154
g.setState @ vendor.js:32760
(anonymous) @ vendor.js:4126
(anonymous) @ vendor.js:3899
(anonymous) @ vendor.js:3825
(anonymous) @ vendor.js:3434
(anonymous) @ vendor.js:3435
(anonymous) @ vendor.js:3603
(anonymous) @ vendor.js:3614
(anonymous) @ vendor.js:3432
b @ vendor.js:3431
k @ vendor.js:3599
l @ vendor.js:3824
r @ vendor.js:3486
runEnterHooks @ vendor.js:3499
(anonymous) @ vendor.js:3839
r @ vendor.js:3486
runChangeHooks @ vendor.js:3516
c @ vendor.js:3837
(anonymous) @ vendor.js:3814
u @ vendor.js:3416
(anonymous) @ vendor.js:3784
(anonymous) @ vendor.js:3750
(anonymous) @ vendor.js:3712
(anonymous) @ app.js:21721
Promise.then (async)
getIndexRoute @ app.js:21699
e @ vendor.js:3711
P @ vendor.js:3744
(anonymous) @ vendor.js:3783
c @ vendor.js:3420
v @ vendor.js:3423
Y @ vendor.js:3780
u @ vendor.js:3813
r @ vendor.js:3898
listen @ vendor.js:3903
componentWillMount @ vendor.js:4125
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
Js @ vendor.js:36997
Pu @ vendor.js:37987
(anonymous) @ vendor.js:38054
tu @ vendor.js:37161
Fu @ vendor.js:38053
t.render @ vendor.js:38235
ne @ app.js:21970
(anonymous) @ app.js:21977
Promise.then (async)
(anonymous) @ app.js:21975
s @ app.js:25
i @ app.js:14
(anonymous) @ app.js:183
(anonymous) @ app.js:184
app.js:2614 c {message: 'TypeError: Failed to fetch', context: undefined, name: 'RECEIVE_SOE_ERROR'}
error @ app.js:2614
c @ app.js:2639
(anonymous) @ app.js:6065
Promise.catch (async)
(anonymous) @ app.js:6064
(anonymous) @ vendor.js:27696
getSOE @ app.js:21079
e @ app.js:20500
setTimeout (async)
startQuerying @ app.js:20516
componentDidMount @ app.js:20528
as @ vendor.js:36603
pu @ vendor.js:37498
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
fu @ vendor.js:37342
Zs @ vendor.js:37144
(anonymous) @ vendor.js:35001
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
Uo @ vendor.js:34997
Ko @ vendor.js:34989
Js @ vendor.js:36997
enqueueSetState @ vendor.js:35154
g.setState @ vendor.js:32760
(anonymous) @ vendor.js:4126
(anonymous) @ vendor.js:3899
(anonymous) @ vendor.js:3825
(anonymous) @ vendor.js:3434
(anonymous) @ vendor.js:3435
(anonymous) @ vendor.js:3603
(anonymous) @ vendor.js:3614
(anonymous) @ vendor.js:3432
b @ vendor.js:3431
k @ vendor.js:3599
l @ vendor.js:3824
r @ vendor.js:3486
runEnterHooks @ vendor.js:3499
(anonymous) @ vendor.js:3839
r @ vendor.js:3486
runChangeHooks @ vendor.js:3516
c @ vendor.js:3837
(anonymous) @ vendor.js:3814
u @ vendor.js:3416
(anonymous) @ vendor.js:3784
(anonymous) @ vendor.js:3750
(anonymous) @ vendor.js:3712
(anonymous) @ app.js:21721
Promise.then (async)
getIndexRoute @ app.js:21699
e @ vendor.js:3711
P @ vendor.js:3744
(anonymous) @ vendor.js:3783
c @ vendor.js:3420
v @ vendor.js:3423
Y @ vendor.js:3780
u @ vendor.js:3813
r @ vendor.js:3898
listen @ vendor.js:3903
componentWillMount @ vendor.js:4125
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
Js @ vendor.js:36997
Pu @ vendor.js:37987
(anonymous) @ vendor.js:38054
tu @ vendor.js:37161
Fu @ vendor.js:38053
t.render @ vendor.js:38235
ne @ app.js:21970
(anonymous) @ app.js:21977
Promise.then (async)
(anonymous) @ app.js:21975
s @ app.js:25
i @ app.js:14
(anonymous) @ app.js:183
(anonymous) @ app.js:184
app.js:2614 c {message: 'TypeError: Failed to fetch', context: undefined, name: 'RECEIVE_SITEMASTER_SETTINGS_ERROR'}
error @ app.js:2614
c @ app.js:2639
(anonymous) @ app.js:4795
Promise.catch (async)
(anonymous) @ app.js:4794
(anonymous) @ vendor.js:27696
fetchSitemasterSettings @ app.js:18484
componentDidMount @ app.js:18223
as @ vendor.js:36603
pu @ vendor.js:37498
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
fu @ vendor.js:37342
Zs @ vendor.js:37144
(anonymous) @ vendor.js:35001
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
Uo @ vendor.js:34997
Ko @ vendor.js:34989
Js @ vendor.js:36997
enqueueSetState @ vendor.js:35154
g.setState @ vendor.js:32760
(anonymous) @ vendor.js:4126
(anonymous) @ vendor.js:3899
(anonymous) @ vendor.js:3825
(anonymous) @ vendor.js:3434
(anonymous) @ vendor.js:3435
(anonymous) @ vendor.js:3603
(anonymous) @ vendor.js:3614
(anonymous) @ vendor.js:3432
b @ vendor.js:3431
k @ vendor.js:3599
l @ vendor.js:3824
r @ vendor.js:3486
runEnterHooks @ vendor.js:3499
(anonymous) @ vendor.js:3839
r @ vendor.js:3486
runChangeHooks @ vendor.js:3516
c @ vendor.js:3837
(anonymous) @ vendor.js:3814
u @ vendor.js:3416
(anonymous) @ vendor.js:3784
(anonymous) @ vendor.js:3750
(anonymous) @ vendor.js:3712
(anonymous) @ app.js:21721
Promise.then (async)
getIndexRoute @ app.js:21699
e @ vendor.js:3711
P @ vendor.js:3744
(anonymous) @ vendor.js:3783
c @ vendor.js:3420
v @ vendor.js:3423
Y @ vendor.js:3780
u @ vendor.js:3813
r @ vendor.js:3898
listen @ vendor.js:3903
componentWillMount @ vendor.js:4125
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
Js @ vendor.js:36997
Pu @ vendor.js:37987
(anonymous) @ vendor.js:38054
tu @ vendor.js:37161
Fu @ vendor.js:38053
t.render @ vendor.js:38235
ne @ app.js:21970
(anonymous) @ app.js:21977
Promise.then (async)
(anonymous) @ app.js:21975
s @ app.js:25
i @ app.js:14
(anonymous) @ app.js:183
(anonymous) @ app.js:184
app.js:2614 c {message: 'TypeError: Failed to fetch', context: undefined, name: 'RECEIVE_NETWORKS_ERROR'}
error @ app.js:2614
c @ app.js:2639
d @ app.js:11729
(anonymous) @ vendor.js:9453
(anonymous) @ vendor.js:18467
M @ vendor.js:9365
(anonymous) @ vendor.js:40070
(anonymous) @ vendor.js:27696
dispatch @ vendor.js:9512
(anonymous) @ app.js:10646
Promise.catch (async)
(anonymous) @ app.js:10645
(anonymous) @ vendor.js:27696
fetchNetworks @ app.js:21074
(anonymous) @ app.js:20512
startQuerying @ app.js:20515
componentDidMount @ app.js:20528
as @ vendor.js:36603
pu @ vendor.js:37498
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
fu @ vendor.js:37342
Zs @ vendor.js:37144
(anonymous) @ vendor.js:35001
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
Uo @ vendor.js:34997
Ko @ vendor.js:34989
Js @ vendor.js:36997
enqueueSetState @ vendor.js:35154
g.setState @ vendor.js:32760
(anonymous) @ vendor.js:4126
(anonymous) @ vendor.js:3899
(anonymous) @ vendor.js:3825
(anonymous) @ vendor.js:3434
(anonymous) @ vendor.js:3435
(anonymous) @ vendor.js:3603
(anonymous) @ vendor.js:3614
(anonymous) @ vendor.js:3432
b @ vendor.js:3431
k @ vendor.js:3599
l @ vendor.js:3824
r @ vendor.js:3486
runEnterHooks @ vendor.js:3499
(anonymous) @ vendor.js:3839
r @ vendor.js:3486
runChangeHooks @ vendor.js:3516
c @ vendor.js:3837
(anonymous) @ vendor.js:3814
u @ vendor.js:3416
(anonymous) @ vendor.js:3784
(anonymous) @ vendor.js:3750
(anonymous) @ vendor.js:3712
(anonymous) @ app.js:21721
Promise.then (async)
getIndexRoute @ app.js:21699
e @ vendor.js:3711
P @ vendor.js:3744
(anonymous) @ vendor.js:3783
c @ vendor.js:3420
v @ vendor.js:3423
Y @ vendor.js:3780
u @ vendor.js:3813
r @ vendor.js:3898
listen @ vendor.js:3903
componentWillMount @ vendor.js:4125
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
Js @ vendor.js:36997
Pu @ vendor.js:37987
(anonymous) @ vendor.js:38054
tu @ vendor.js:37161
Fu @ vendor.js:38053
t.render @ vendor.js:38235
ne @ app.js:21970
(anonymous) @ app.js:21977
Promise.then (async)
(anonymous) @ app.js:21975
s @ app.js:25
i @ app.js:14
(anonymous) @ app.js:183
(anonymous) @ app.js:184
app.js:2614 c {message: 'TypeError: Failed to fetch', context: undefined, name: 'RECEIVE_METER_AGGREGATES_ERROR'}
error @ app.js:2614
c @ app.js:2639
(anonymous) @ app.js:10235
await in (anonymous) (async)
(anonymous) @ vendor.js:27696
getMeterAggregates @ app.js:21069
e @ app.js:20499
setTimeout (async)
startQuerying @ app.js:20516
componentDidMount @ app.js:20528
as @ vendor.js:36603
pu @ vendor.js:37498
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
fu @ vendor.js:37342
Zs @ vendor.js:37144
(anonymous) @ vendor.js:35001
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
Uo @ vendor.js:34997
Ko @ vendor.js:34989
Js @ vendor.js:36997
enqueueSetState @ vendor.js:35154
g.setState @ vendor.js:32760
(anonymous) @ vendor.js:4126
(anonymous) @ vendor.js:3899
(anonymous) @ vendor.js:3825
(anonymous) @ vendor.js:3434
(anonymous) @ vendor.js:3435
(anonymous) @ vendor.js:3603
(anonymous) @ vendor.js:3614
(anonymous) @ vendor.js:3432
b @ vendor.js:3431
k @ vendor.js:3599
l @ vendor.js:3824
r @ vendor.js:3486
runEnterHooks @ vendor.js:3499
(anonymous) @ vendor.js:3839
r @ vendor.js:3486
runChangeHooks @ vendor.js:3516
c @ vendor.js:3837
(anonymous) @ vendor.js:3814
u @ vendor.js:3416
(anonymous) @ vendor.js:3784
(anonymous) @ vendor.js:3750
(anonymous) @ vendor.js:3712
(anonymous) @ app.js:21721
Promise.then (async)
getIndexRoute @ app.js:21699
e @ vendor.js:3711
P @ vendor.js:3744
(anonymous) @ vendor.js:3783
c @ vendor.js:3420
v @ vendor.js:3423
Y @ vendor.js:3780
u @ vendor.js:3813
r @ vendor.js:3898
listen @ vendor.js:3903
componentWillMount @ vendor.js:4125
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
Js @ vendor.js:36997
Pu @ vendor.js:37987
(anonymous) @ vendor.js:38054
tu @ vendor.js:37161
Fu @ vendor.js:38053
t.render @ vendor.js:38235
ne @ app.js:21970
(anonymous) @ app.js:21977
Promise.then (async)
(anonymous) @ app.js:21975
s @ app.js:25
i @ app.js:14
(anonymous) @ app.js:183
(anonymous) @ app.js:184
c {message: 'TypeError: Failed to fetch', context: undefined, name: 'RECEIVE_CONFIG_INITIALIZED_ERROR'}
error @ app.js:2614
c @ app.js:2639
d @ app.js:11729
(anonymous) @ vendor.js:9453
(anonymous) @ vendor.js:18467
M @ vendor.js:9365
(anonymous) @ vendor.js:40070
(anonymous) @ vendor.js:27696
dispatch @ vendor.js:9512
(anonymous) @ app.js:5362
Promise.catch (async)
(anonymous) @ app.js:5361
(anonymous) @ vendor.js:27696
initializeConfig @ app.js:21024
componentWillMount @ app.js:20525
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
(anonymous) @ vendor.js:35001
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
Uo @ vendor.js:34997
Ko @ vendor.js:34989
Js @ vendor.js:36997
enqueueSetState @ vendor.js:35154
g.setState @ vendor.js:32760
(anonymous) @ vendor.js:4126
(anonymous) @ vendor.js:3899
(anonymous) @ vendor.js:3825
(anonymous) @ vendor.js:3434
(anonymous) @ vendor.js:3435
(anonymous) @ vendor.js:3603
(anonymous) @ vendor.js:3614
(anonymous) @ vendor.js:3432
b @ vendor.js:3431
k @ vendor.js:3599
l @ vendor.js:3824
r @ vendor.js:3486
runEnterHooks @ vendor.js:3499
(anonymous) @ vendor.js:3839
r @ vendor.js:3486
runChangeHooks @ vendor.js:3516
c @ vendor.js:3837
(anonymous) @ vendor.js:3814
u @ vendor.js:3416
(anonymous) @ vendor.js:3784
(anonymous) @ vendor.js:3750
(anonymous) @ vendor.js:3712
(anonymous) @ app.js:21721
Promise.then (async)
getIndexRoute @ app.js:21699
e @ vendor.js:3711
P @ vendor.js:3744
(anonymous) @ vendor.js:3783
c @ vendor.js:3420
v @ vendor.js:3423
Y @ vendor.js:3780
u @ vendor.js:3813
r @ vendor.js:3898
listen @ vendor.js:3903
componentWillMount @ vendor.js:4125
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
Js @ vendor.js:36997
Pu @ vendor.js:37987
(anonymous) @ vendor.js:38054
tu @ vendor.js:37161
Fu @ vendor.js:38053
t.render @ vendor.js:38235
ne @ app.js:21970
(anonymous) @ app.js:21977
Promise.then (async)
(anonymous) @ app.js:21975
s @ app.js:25
i @ app.js:14
(anonymous) @ app.js:183
(anonymous) @ app.js:184
c {message: 'TypeError: Failed to fetch', context: undefined, name: 'RECEIVE_GRID_STATUS_ERROR'}
error @ app.js:2614
c @ app.js:2639
(anonymous) @ app.js:10465
await in (anonymous) (async)
(anonymous) @ vendor.js:27696
getGridStatus @ app.js:21080
e @ app.js:20501
setTimeout (async)
startQuerying @ app.js:20516
componentDidMount @ app.js:20528
as @ vendor.js:36603
pu @ vendor.js:37498
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
fu @ vendor.js:37342
Zs @ vendor.js:37144
(anonymous) @ vendor.js:35001
t.unstable_runWithPriority @ vendor.js:38508
Ho @ vendor.js:34976
Uo @ vendor.js:34997
Ko @ vendor.js:34989
Js @ vendor.js:36997
enqueueSetState @ vendor.js:35154
g.setState @ vendor.js:32760
(anonymous) @ vendor.js:4126
(anonymous) @ vendor.js:3899
(anonymous) @ vendor.js:3825
(anonymous) @ vendor.js:3434
(anonymous) @ vendor.js:3435
(anonymous) @ vendor.js:3603
(anonymous) @ vendor.js:3614
(anonymous) @ vendor.js:3432
b @ vendor.js:3431
k @ vendor.js:3599
l @ vendor.js:3824
r @ vendor.js:3486
runEnterHooks @ vendor.js:3499
(anonymous) @ vendor.js:3839
r @ vendor.js:3486
runChangeHooks @ vendor.js:3516
c @ vendor.js:3837
(anonymous) @ vendor.js:3814
u @ vendor.js:3416
(anonymous) @ vendor.js:3784
(anonymous) @ vendor.js:3750
(anonymous) @ vendor.js:3712
(anonymous) @ app.js:21721
Promise.then (async)
getIndexRoute @ app.js:21699
e @ vendor.js:3711
P @ vendor.js:3744
(anonymous) @ vendor.js:3783
c @ vendor.js:3420
v @ vendor.js:3423
Y @ vendor.js:3780
u @ vendor.js:3813
r @ vendor.js:3898
listen @ vendor.js:3903
componentWillMount @ vendor.js:4125
ga @ vendor.js:35205
Yi @ vendor.js:35961
Ms @ vendor.js:37719
cu @ vendor.js:37305
su @ vendor.js:37299
Zs @ vendor.js:37137
Js @ vendor.js:36997
Pu @ vendor.js:37987
(anonymous) @ vendor.js:38054
tu @ vendor.js:37161
Fu @ vendor.js:38053
t.render @ vendor.js:38235
ne @ app.js:21970
(anonymous) @ app.js:21977
Promise.then (async)
(anonymous) @ app.js:21975
s @ app.js:25
i @ app.js:14
(anonymous) @ app.js:183
(anonymous) @ app.js:184
Navigated to http://localhost:8675/
I had to a custom throttle (0.1kb/s, 10,000ms lag) to slow it down enough to capture :)
This is gold! Thank you @BJReplay !
I'm wondering if some of the base APIs are already being removed. Looking through the logs above, can you pull down the payloads for each of these urls (of course, feel free to obfuscate any sensitive data):
/api/sitemaster /api/auth/toggle/supported /api/status /api/customer/registration /api/site_info/site_name /api/meters/aggregates /api/system_status/soe /api/system_status/grid_status /api/powerwalls /api/troubleshooting/problems /api/system_status/grid_status
Using something like:
Update: The good news is that I have been able to replicate the "flashing" issue reported by @BJReplay by using the Cloud functions to pull all power data (basically detaching from the Powerwall). Unfortunately, I don't yet know the cause. It appears that the animation is not getting something it wants so it reloads. Ironically, it just about renders with all the correct power data before it crashes and restarts. I suspect one of the errors identified above is the cause... research continues. ;)
I'm wondering if some of the base APIs are already being removed. Looking through the logs above, can you pull down the payloads for each of these urls (of course, feel free to obfuscate any sensitive data
Will do. May not be until tomorrow my time.
I'm wondering if some of the base APIs are already being removed. Looking through the logs above, can you pull down the payloads for each of these urls (of course, feel free to obfuscate any sensitive data):
All worked with 0.6.2t28. I haven't tried (yet) with 0.6.4t29, just in case the calls are broken in this version of pypowerwall, but it doesn't look like any of the calls below are missing.
/api/sitemaster
{ "status": "StatusUp", "running": true, "connected_to_tesla": true, "power_supply_mode": false, "can_reboot": "Yes" }
/api/auth/toggle/supported
{ "toggle_auth_supported": true }
/api/status
{ "din": "long string of DIN stuff", "start_time": "2023-12-13 17:35:00 +0800", "up_time_seconds": "145h4m57.478864105s", "is_new": false, "version": "23.36.3 aa269d35", "git_hash": "aa269d352a70b0e24fd00cc5b01ea0625b0a805b", "commission_count": 0, "device_type": "hec", "teg_type": "unknown", "sync_type": "v1", "cellular_disabled": false, "can_reboot": true }
/api/customer/registration
{ "privacy_notice": true, "limited_warranty": true, "grid_services": true, "marketing": false, "registered": true, "timed_out_registration": false }
/api/site_info/site_name
{ "site_name": "BJReplay's Powerwall", "timezone": "Australia/Melbourne" }
/api/meters/aggregates
{ "site": { "last_communication_time": "2023-12-19T18:42:09.306301326+11:00", "instant_power": -46.04999923706055, "instant_reactive_power": -18.579999923706055, "instant_apparent_power": 49.65701186034248, "frequency": 49.95000076293945, "energy_exported": 8726770.293740146, "energy_imported": 18201990.861519843, "instant_average_voltage": 239.16000366210938, "instant_average_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", "last_phase_energy_communication_time": "0001-01-01T00:00:00Z", "timeout": 1500000000, "num_meters_aggregated": 1, "instant_total_current": 0 }, "battery": { "last_communication_time": "2023-12-19T18:42:09.212123+11:00", "instant_power": 340, "instant_reactive_power": 10, "instant_apparent_power": 340.14702703389895, "frequency": 49.959, "energy_exported": 9965900, "energy_imported": 11321570, "instant_average_voltage": 238.9, "instant_average_current": -7.1000000000000005, "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", "last_phase_energy_communication_time": "0001-01-01T00:00:00Z", "timeout": 1500000000, "num_meters_aggregated": 1, "instant_total_current": -7.1000000000000005 }, "load": { "last_communication_time": "2023-12-19T18:42:09.203704373+11:00", "instant_power": 708.988453643589, "instant_reactive_power": 46.893628689222034, "instant_apparent_power": 710.5375710063263, "frequency": 49.95000076293945, "energy_exported": 0, "energy_imported": 43065543.74860798, "instant_average_voltage": 239.16000366210938, "instant_average_current": 2.9644942414588007, "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", "last_phase_energy_communication_time": "0001-01-01T00:00:00Z", "timeout": 1500000000, "instant_total_current": 2.9644942414588007 }, "solar": { "last_communication_time": "2023-12-19T18:42:09.203704373+11:00", "instant_power": 390, "instant_reactive_power": 71.01000213623047, "instant_apparent_power": 396.41193272073366, "frequency": 49.95000076293945, "energy_exported": 35046544.1978051, "energy_imported": 100551.01697682189, "instant_average_voltage": 239.10000610351562, "instant_average_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", "last_phase_energy_communication_time": "0001-01-01T00:00:00Z", "timeout": 1500000000, "num_meters_aggregated": 1, "instant_total_current": 0 } }
/api/system_status/soe
{ "percentage": 85.33702401436372 }
/api/system_status/grid_status
{ "grid_status": "SystemGridConnected", "grid_services_active": false }
/api/powerwalls
{ "enumerating": false, "updating": false, "checking_if_offgrid": false, "running_phase_detection": false, "phase_detection_last_error": "phase detection not run", "bubble_shedding": false, "on_grid_check_error": "run sitemanager flag enabled", "grid_qualifying": false, "grid_code_validating": false, "phase_detection_not_available": true, "powerwalls": [ { "Type": "", "PackagePartNumber": "1092170-03-G", "PackageSerialNumber": "serial number here", "type": "ACPW", "grid_state": "Grid_Uncompliant", "grid_reconnection_time_seconds": 0, "under_phase_detection": false, "updating": false, "commissioning_diagnostic": { "name": "Commissioning", "category": "InternalComms", "disruptive": false, "inputs": null, "checks": [ { "name": "CAN connectivity", "status": "fail", "start_time": "2023-12-19T18:43:39.276171874+11:00", "end_time": "2023-12-19T18:43:39.276174874+11:00", "message": "Cannot perform this action with site controller running. From landing page, either \"STOP SYSTEM\" or \"RUN WIZARD\" to proceed.", "results": {}, "debug": {}, "checks": null }, { "name": "Enable switch", "status": "fail", "start_time": "2023-12-19T18:43:39.276177207+11:00", "end_time": "2023-12-19T18:43:39.276179541+11:00", "message": "Cannot perform this action with site controller running. From landing page, either \"STOP SYSTEM\" or \"RUN WIZARD\" to proceed.", "results": {}, "debug": {}, "checks": null }, { "name": "Internal communications", "status": "fail", "start_time": "2023-12-19T18:43:39.276181541+11:00", "end_time": "2023-12-19T18:43:39.276183541+11:00", "message": "Cannot perform this action with site controller running. From landing page, either \"STOP SYSTEM\" or \"RUN WIZARD\" to proceed.", "results": {}, "debug": {}, "checks": null }, { "name": "Firmware up-to-date", "status": "fail", "start_time": "2023-12-19T18:43:39.276186874+11:00", "end_time": "2023-12-19T18:43:39.276190541+11:00", "message": "Cannot perform this action with site controller running. From landing page, either \"STOP SYSTEM\" or \"RUN WIZARD\" to proceed.", "results": {}, "debug": {}, "checks": null } ], "alert": false }, "update_diagnostic": { "name": "Firmware Update", "category": "InternalComms", "disruptive": true, "inputs": null, "checks": [ { "name": "Powerwall firmware", "status": "not_run", "start_time": null, "end_time": null, "progress": 0, "results": null, "debug": null, "checks": null }, { "name": "Battery firmware", "status": "not_run", "start_time": null, "end_time": null, "progress": 0, "results": null, "debug": null, "checks": null }, { "name": "Inverter firmware", "status": "not_run", "start_time": null, "end_time": null, "progress": 0, "results": null, "debug": null, "checks": null }, { "name": "Grid code", "status": "not_run", "start_time": null, "end_time": null, "progress": 0, "results": null, "debug": null, "checks": null } ], "alert": false }, "bc_type": null, "in_config": true } ], "gateway_din": "din number here includes serial", "sync": { "updating": false, "commissioning_diagnostic": { "name": "Commissioning", "category": "InternalComms", "disruptive": false, "inputs": null, "checks": [ { "name": "CAN connectivity", "status": "fail", "start_time": "2023-12-19T18:43:39.276273541+11:00", "end_time": "2023-12-19T18:43:39.276276207+11:00", "message": "Cannot perform this action with site controller running. From landing page, either \"STOP SYSTEM\" or \"RUN WIZARD\" to proceed.", "results": {}, "debug": {}, "checks": null }, { "name": "Firmware up-to-date", "status": "fail", "start_time": "2023-12-19T18:43:39.276278541+11:00", "end_time": "2023-12-19T18:43:39.276280541+11:00", "message": "Cannot perform this action with site controller running. From landing page, either \"STOP SYSTEM\" or \"RUN WIZARD\" to proceed.", "results": {}, "debug": {}, "checks": null } ], "alert": false }, "update_diagnostic": { "name": "Firmware Update", "category": "InternalComms", "disruptive": true, "inputs": null, "checks": [ { "name": "Synchronizer firmware", "status": "not_run", "start_time": null, "end_time": null, "progress": 0, "results": null, "debug": null, "checks": null }, { "name": "Islanding configuration", "status": "not_run", "start_time": null, "end_time": null, "progress": 0, "results": null, "debug": null, "checks": null }, { "name": "Grid code", "status": "not_run", "start_time": null, "end_time": null, "progress": 0, "results": null, "debug": null, "checks": null } ], "alert": false } }, "msa": null, "states": null }
/api/troubleshooting/problems
{ "problems": [] }
/api/system_status/grid_status
{ "grid_status": "SystemGridConnected", "grid_services_active": false }
I think I found it... In the /api/status call:
{
"din": "1232100-00-E--TG123456789E4G",
"start_time": "2023-10-13 04:01:45 +0800",
"up_time_seconds": "1627h22m56.671597308s",
"is_new": false,
"version": "23.28.2 27626f98",
"git_hash": "27626f98a66cad5c665bbe1d4d788cdb3e94fd33",
"commission_count": 0,
"device_type": "teg",
"teg_type": "unknown",
"sync_type": "v2.1",
"cellular_disabled": false,
"can_reboot": true
}
The git_hash
also appear in the index.html. If they do not match, it goes into flash/reload mode. I speculate that they want to ensure the UI matches the firmware. The reason the same thing happened on the cloud-only version is because I zero out the hash in the simulated /api/status
call since the cloud payloads don't have it.
I think I can fix this by having pypowerwall proxy generate a index.html using the hash value from the Powerwall (/api/status
).
I updated the proxy to generate an index.html with correct version and git_hash values. My brief testing in cloud-only mode now works. I pushed it to teslacloud
branch.
@mcbirse test if you can.
@BJReplay - I pushed a new container: jasonacox/pypowerwall:0.7.0t31 - test that one if you can.
My Powerwall Firmware just updated 🤣 So I have the flashing animation now too with latest pypowerwall... at least that means I can help with testing on this FW version!
EvnTime: 2023-12-20 18:54:29
Message: Firmware version has been updated
Details: Version changed from 23.28.2 27626f98 to 23.36.3 aa269d35
Up time: 52.021884767s
Well then.. you can try the jasonacox/pypowerwall:0.7.0t31 container too!
Well then.. you can try the jasonacox/pypowerwall:0.7.0t31 container too!
Pulled, tested, working!!
e5472b306363 jasonacox/pypowerwall:0.7.0t31 "python3 server.py" 12 seconds ago Up 6 seconds 0.0.0.0:8675->8675/tcp, :::8675->8675/tcp pypowerwall
That's awesome Jason. Will test later with the cloud only setup... supposed to be cooking dinner right now and going to get in trouble.
Awesome!!! Don't get into trouble! 😂 Thanks for testing @mcbirse ... let me know how the cloud part works too.. no rush.
If it works, I want to do a quick review of all the changes to make sure I didn't break anything else. I'll push a clean PR to pypowerwall tomorrow and update this PR to pull it in.
@BJReplay - I pushed a new container: jasonacox/pypowerwall:0.7.0t31 - test that one if you can.
Sorry, I've been neck deep in json trying to see if I can bulk edit entries in bitwarden self hosted...
Yup, working!
You may not be able to see this in the screenshot, but there's an interesting difference in darkness between the central portion of the powerwall display and the surrounding grafana dashboard background. The powerwall display is slightly darker.
@BJReplay - thanks for highlighting the background issue. I'm not absolutely sure this is the cause, but it could be... (and regardless this a bug I found when testing).
I was looking into why that may happen and noticed the latest change which incorporates serving up "index.html" from the local filesystem has the "style" (background colour) hardcoded in the html file (e.g. grafana-dark.js) and does not honour the PW_STYLE
setting from pypowerwall.env
.
Very easy fix - I will push a commit for Jason to update.
Good catch, you two! Ok, the new container is uploaded and ready. I rolled back the name to patch the current pypowerwall library. I still want to test the "cloud" parts of the 0.7.0 branch before rolling it out.
For this PR, please check this container: jasonacox/pypowerwall:0.6.4t32
For this PR, please check this container: jasonacox/pypowerwall:0.6.4t32
I have tested this (non-cloud version) and all working well for me. Powerflow Animation working from local assets with my PW FW version 23.36.3 and loads very fast.
For this PR, please check this container: jasonacox/pypowerwall:0.6.4t32
Nice. I'll look at it tomorrow. My work for the last couple of days has been to write a utility that update URLs in bitwarden or vaultwarden where they are stored as http and turns them into https. Ought to be simple, but isn't. It works; a little tweaking, and I'll publish it. Probably not much use (other that some rough pointers) for other password managers, because their APIs are all so different.
My work for the last couple of days has been to write a utility that update URLs in bitwarden or vaultwarden where they are stored as http and turns them into https. Ought to be simple, but isn't. It works; a little tweaking, and I'll publish it.
Cool - I'd be interested in checking that out as I use Bitwarden as well.
For this PR, please check this container: jasonacox/pypowerwall:0.6.4t32
Working here too, thanks. Very quick to update; I should script it, but even without a script, it takes 1 minute to swap versions - bsaed on the time I need to backfill missing readings :) - and most of that is waiting for influxdb to start.
Thank you, both!! 🙏
Cool - I'd be interested in checking that out as I use Bitwarden as well.
v3.0.6 - Powerflow Animation Update