Description
Describe the bug
I've an enphase system, so I get both PV requests and grid request going to it.
The issue is that both the grid and the PV part requests the same file. Also, only the PV template requests the 5 times(according to what I read here: https://github.com/evcc-io/evcc/blob/master/templates/definition/meter/enphase.yaml )
So with the solar request, it makes 6 requests. When I manually request the file, it takes ~2-3s to request it.
Currently when I run my EVCC instance, I do get a lot of timeout. It varies a lot but it goes up to 4/5 of the requests being timed out.
I've other stuff requesting data(READ ONLY, nothing active) from my enphase envoy(home assistant and potentially the app).
I see two issues:
- There is no way to set a timeout with the integration
- It's a shame that the same exact file get requested 6 times.
Do you see any chance to reduce the number of requests made, especially for the PV implementation?
Steps to reproduce
- Use both the grid and the PV implementation of enphase
- Run it in the day with some other system running
- Check the timeouts
...
Configuration details
meters:
- name: my_grid
type: template
template: enphase
usage: grid
host: 192.168.0.196 # IP address or hostname
token: AAAAA
- name: my_pv
type: template
template: enphase
usage: pv
host: 192.168.0.196 # IP address or hostname
token: AAAAA
tariffs:
currency: CHF
grid:
type: fixed
price: 0.2917 # EUR/kWh (default)
zones:
- days: Mo-So
hours: 21-0
price: 0.1881 # EUR/kWh (weekdays 2-6 hours)
- days: Mo-So
hours: 0-7
price: 0.1881 # EUR/kWh (weekdays 2-6 hours)
chargers:
- name: easee_home
type: template
template: easee
user: ABC
password: DEF
charger: IJK
timeout: 30s # optional
authorize:
vehicles:
- name: vehicle_1
title: Audi Q6
type: custom
soc:
source: js
vm: shared
script: |
var lp = state.loadpoints[0];
if (lp.chargepower > 0) lp.vehicleSoc+=0.1; else lp.vehicleSoc-=0.1;
if (lp.vehicleSoc < 15) lp.vehicleSoc = 80;
if (lp.vehicleSoc > 80) lp.vehicleSoc = 15;
lp.vehicleSoc;
range:
source: js
vm: shared
script: |
var lp = state.loadpoints[0]
var range = (44 * lp.vehicleSoc) / 15;
range
capacity: 44
site:
title: Maison
meters:
grid: my_grid
pv: my_pv
loadpoints:
- title: Couvert
charger: easee_home
mode: pv
vehicle: vehicle_1
sponsortoken: my-token
interval: 60s
Log details
[site ] DEBUG 2025/02/02 16:24:53 ----
[lp-1 ] DEBUG 2025/02/02 16:24:53 charge power: 0W
[lp-1 ] DEBUG 2025/02/02 16:24:53 charge currents: [0 0 0]A
[site ] DEBUG 2025/02/02 16:24:54 grid power: -340W
[site ] DEBUG 2025/02/02 16:24:57 pv 1 power: 852W
[site ] DEBUG 2025/02/02 16:25:08 grid currents: [-0.907 -1.02 0.712]A
[site ] DEBUG 2025/02/02 16:25:08 site power: -340W
[lp-1 ] DEBUG 2025/02/02 16:25:08 charge total import: 1.744kWh
[lp-1 ] DEBUG 2025/02/02 16:25:08 charger status: A
[lp-1 ] DEBUG 2025/02/02 16:25:08 plan: charge 2h1m28s between 2025-02-03 04:13:32 +0100 CET until 2025-02-03 06:15:00 +0100 CET (power: 14490W, avg cost: 0.188)
[site ] DEBUG 2025/02/02 16:25:53 ----
[lp-1 ] DEBUG 2025/02/02 16:25:53 charge power: 0W
[lp-1 ] DEBUG 2025/02/02 16:25:53 charge currents: [0 0 0]A
[site ] ERROR 2025/02/02 16:26:03 pv 1 power: Get "https://192.168.0.196/production.json": net/http: request canceled (Client.Timeout exceeded while awaiting headers)
[site ] ERROR 2025/02/02 16:26:03 grid power: Get "https://192.168.0.196/production.json": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
[site ] DEBUG 2025/02/02 16:26:53 ----
What type of operating system or environment does evcc run on?
Docker
External automation
- I have made sure that no external automation like HomeAssistant or Node-RED is active or accessing any of the mentioned devices when this issue occurs.
Nightly build
- I have verified that the issue is reproducible with the latest nightly build
Version
0.133.0