Salta ai contenuti
ricarica intelligente

Dispositivi definiti dall’utente

Quando crei un caricabatterie, un riscaldatore, un contatore di rete, una batteria domestica, un impianto fotovoltaico, un altro consumatore, un veicolo, una tariffa, un dispositivo limitatore o un servizio di notifica, puoi scegliere l’opzione Dispositivo definito dall’utente dall’elenco dei tipi di dispositivo e definire una logica personalizzata basata sul sistema di plugin.

In questo modo puoi integrare dispositivi che non sono coperti da un template integrato, ad es. leggere la potenza attuale da un endpoint HTTP oppure scrivere una corrente di riferimento via Modbus.

Nell’interfaccia, ogni tipo di dispositivo elenca una voce Dispositivo definito dall’utente nel selettore dei template. Selezionandola si apre l’editor per la tua configurazione. Per impostazione predefinita viene creato un dispositivo con type: custom. Se necessario, il tipo può essere sostituito con un altro valore (ad es. type: heatpump).

power:
source: mqtt
topic: home/current/imsys/chn2/raw

In alternativa, scrivi la configurazione completa direttamente in evcc.yaml con name, type: custom e il blocco di attributi sotto:

meters:
- name: imsys
type: custom
power:
source: mqtt
topic: home/current/imsys/chn2/raw

Tutti gli altri esempi in questa pagina usano la forma piatta del blocco di attributi che inserisci nell’interfaccia.

Per l’elenco delle sorgenti plugin disponibili (http, mqtt, modbus, …) e degli helper (calc, map, watchdog, …) consulta il riferimento dei plugin.

Ogni dispositivo definito dall’utente è descritto da tre tipi di campi:

  • Attributi di lettura: plugin che evcc interroga per ottenere un valore (ad es. power, soc, status).
  • Attributi di scrittura: plugin che evcc richiama per impostare un valore o avviare un’azione (ad es. enable, maxcurrent, wakeup). Il valore da scrivere è disponibile nel plugin.
  • Funzionalità: elenco features che attiva comportamenti diversi da quelli predefiniti. I flag disponibili dipendono dal tipo di dispositivo.

Struttura generica:

# read attributes
power:
source: http
uri: http://meter.local/power
soc:
source: mqtt
topic: battery/soc
# write attributes
enable:
source: http
uri: "http://charger/relay?turn={{if .enable}}on{{else}}off{{end}}"
maxcurrent:
source: mqtt
topic: charger/maxcurrent
payload: ${maxcurrent:%d}
# features
features:
- heating
- integrateddevice

I nomi degli attributi e i flag delle funzionalità disponibili variano a seconda del tipo di dispositivo e sono elencati nelle sezioni seguenti.

I contatori di potenza vengono configurati nella sezione meters. I contatori definiti sotto meters: possono essere referenziati da site:

  • grid: contatore di rete
  • pv: contatore dell’impianto fotovoltaico
  • battery: contatore della batteria domestica
  • charge: contatore della potenza di ricarica del caricabatterie
  • aux: contatore di consumo per consumatori intelligenti
  • consumer: contatore per un consumatore normale, registrato nelle statistiche di consumo
  • ext: contatore aggiuntivo non usato per la regolazione né mostrato nell’interfaccia, solo registrato ed esportato

power è l’unico attributo obbligatorio. Non tutti i ruoli dei contatori supportano tutti gli attributi:

  • limitsoc e batterymode vengono usati esclusivamente per i contatori della batteria (referenziati da site.battery).
  • curtail e curtailed vengono usati insieme per i contatori pv che supportano la limitazione della produzione (§ 9 EEG).
  • currents, voltages e powers sono attributi di fase che vanno configurati ciascuno con esattamente tre voci plugin (come array YAML) e valgono per i contatori di rete (grid) e per i caricabatterie (charge).

Ogni plugin deve restituire il tipo di dato corretto. Per convertirlo, usa le pipeline di lettura.

AttributoTipoObbligatorioContestoDescrizione
powerfloatsìtuttiPotenza attuale in W
energyfloatnotuttiLettura del contatore in kWh
returnenergyfloatnotuttiLettura del contatore in direzione inversa in kWh (vedi sotto)
maxpowerintnopv (ibrido)Potenza AC massima in W
curtailedintnopvLimite attuale di immissione in rete in % (da 0 a 100). Solo insieme a curtail.
socintnobatteryLivello di carica in %
capacityfloatnobatteryCapacità in kWh
powers[float,float,float]notuttiPotenze di fase in W. Per riconoscere il segno di correnti senza segno.
currents[float,float,float]notuttiCorrenti di fase in A. Per riconoscere le fasi attive.
voltages[float,float,float]notuttiTensioni di fase in V. Per riconoscere il tipo di collegamento (1p/3p).

Il significato di un valore power positivo e delle due direzioni dell’energia dipende dal ruolo del contatore:

Ruolopower positivoenergyreturnenergy
gridPrelievo dalla retePrelevataImmessa (immissione in rete)
pvProduzioneProdottaConsumata (raro)
batteryScarica (negativo: carica)ScaricataCaricata
chargeRicaricaCaricataScaricata (V2X)
aux, ext, consumerConsumoConsumataProdotta (raro)

energy e returnenergy sono letture del contatore crescenti in kWh, idealmente progressive dalla messa in servizio, come i registri di prelievo e immissione di un contatore di rete. Le differenze tra le letture vengono calcolate automaticamente, quindi il plugin deve restituire una lettura del contatore e non valori di consumo per intervallo. Funziona anche un contatore che si azzera periodicamente (ad es. ogni giorno), perché l’azzeramento viene riconosciuto automaticamente. Una lettura pari a 0 viene considerata non disponibile.

Entrambi gli attributi sono facoltativi. Senza di essi, lo storico dell’energia viene ricavato da power nel tempo. Le letture reali del contatore forniscono statistiche a lungo termine più precise.

AttributoTipoObbligatorioContestoDescrizione
limitsocintnobatteryImposta l’obiettivo di carica della batteria in %. L’obiettivo di carica viene calcolato dai valori configurati di MinSoc e MaxSoc e dal livello di carica attuale (attributo soc).
curtailintnopvImposta il limite di immissione in rete in % della potenza nominale di produzione (da 0 a 100, 100 = nessun limite). Solo insieme a curtailed. Vedi Dispositivo limitatore.
batterymodeintnobatteryImposta direttamente la modalità di controllo della batteria. Le modalità sono elencate sotto.
ValoreModalitàComportamento
1normalFunzionamento normale: carica dal surplus, scarica per il consumo
2holdImpedisce la scarica, la carica dal surplus resta consentita
3chargeCarica dalla rete, nessuna scarica
4holdchargeImpedisce la carica, la scarica per il consumo resta consentita
5dischargeScarica verso la rete

Vengono usate solo le modalità della batteria supportate dal dispositivo. Se batterymode è uno switch, le modalità supportate vengono ricavate dai suoi valori case. Questo funziona anche quando lo switch è racchiuso in un watchdog. Qualsiasi altro plugin richiede batterymodes con l’elenco delle modalità supportate, ad es. batterymodes: ["normal", "hold", "charge"].

Leggere la potenza di rete attuale da un endpoint HTTP.

meters:
- name: grid
type: custom
power:
source: http
uri: http://zaehler.network.local:8080/api/data.json?from=now
jq: .data.tuples[0][1]

Leggere potenza e livello di carica di una batteria domestica e impostarne la modalità via HTTP. Lo switch copre le modalità normal, hold e charge, quindi evcc offre esattamente queste tre.

meters:
- name: battery
type: custom
capacity: 10 # kWh
power:
source: http
uri: http://battery.local/api/power
soc:
source: http
uri: http://battery.local/api/soc
batterymode:
source: switch
switch:
- case: 1 # normal
set:
source: http
uri: http://battery.local/api/mode
method: POST
body: '{"mode": "auto"}'
- case: 2 # hold
set:
source: http
uri: http://battery.local/api/mode
method: POST
body: '{"mode": "hold"}'
- case: 3 # charge
set:
source: http
uri: http://battery.local/api/mode
method: POST
body: '{"mode": "charge"}'

Il type: custom predefinito copre i caricabatterie con regolazione continua della corrente. Per altri dispositivi, i tipi di caricabatterie specializzati sono descritti in Presa commutabile e Pompe di calore.

AttributoTipoObbligatorioDescrizione
statusstringsìStato (A..F)
enabledboolsìLa ricarica è abilitata?
powerfloatnoPotenza di ricarica in W
energyfloatnoLettura del contatore in kWh
returnenergyfloatnoLettura del contatore in direzione inversa in kWh (energia scaricata, V2X)
identifystringnoIdentificatore RFID attuale
socintnoLivello di carica in %
limitsocintnoLimite di carica in %
tempfloatnoTemperatura attuale in °C (riscaldamento, alias di soc)
limittempintnoLimite di temperatura in °C (riscaldamento, alias di limitsoc)
finishtimestringnoOrario stimato di fine ricarica (RFC3339, durata Go, timestamp Unix o secondi rimanenti)
phasesintnoNumero di fasi fisiche (1..3)
powers[float,float,float]noPotenze di fase in W. Per riconoscere il segno di correnti senza segno.
currents[float,float,float]noCorrenti di fase in A. Per riconoscere le fasi attive.
voltages[float,float,float]noTensioni di fase in V. Per riconoscere il tipo di collegamento (1p/3p).
AttributoTipoObbligatorioDescrizione
enableboolsìAbilita / disabilita la ricarica
maxcurrentintsìImposta la corrente di ricarica massima in A
maxcurrentmillisfloatnoImposta la corrente di ricarica massima in A (con decimali)
phases1p3pintnoEsegue la commutazione delle fasi (richiede tos: true)
wakeupboolnoRisveglia il veicolo
FunzionalitàDescrizione
integrateddeviceNessuna selezione del veicolo. Il dispositivo funziona senza un veicolo collegato e senza sessioni di ricarica (ad es. pompa di calore, resistenza elettrica, consumatore installato in modo fisso).
heatingTratta il dispositivo come riscaldatore: livello di carica e limiti vengono mostrati in °C invece che in %.
continuousQuando è “disabilitato”, il dispositivo resta nel proprio funzionamento normale. L’interfaccia mostra “Funzionamento normale” invece di “Standby”. Una richiesta di aumentare la potenza (ad es. con surplus solare o energia di rete economica) viene indicata come “Boost”. Le modalità si chiamano Normale, Intelligente e Boost invece di Off, Intelligente e Veloce.
switchdeviceIl dispositivo può essere solo acceso/spento (nessuna regolazione continua della corrente). La corrente massima e l’opzione Carica sempre non vengono mostrate. Corrente minima e fasi determinano la potenza di attivazione solare. Senza continuous, le modalità si chiamano Off, Intelligente e On.

Combinazioni di funzionalità comuni nei template integrati:

Riscaldatore elettrico:

features:
- integrateddevice
- heating

Presa:

features:
- switchdevice
- integrateddevice # optional, when the socket drives a fixed load
- heating # optional, when it controls a heating device

Pompa di calore:

features:
- integrateddevice
- heating
- continuous
- switchdevice # optional, when no current control is available (SG Ready)

Interrogare lo stato di ricarica di un caricabatterie via Modbus.

features:
- integrateddevice
enabled:
source: modbus
id: 4711
uri: modbus.local:502
rtu: false
register:
address: 100
type: holding
decode: uint16

Commutare una presa Tasmota tramite un messaggio MQTT.

enable:
source: mqtt
broker: mosquitto.local:883
topic: cmd/unu-switch/Power
payload: ON

type: switchsocket

Per prese commutabili e dispositivi a relè simili che possono essere solo accesi/spenti senza regolazione continua della corrente. Lo stato di ricarica viene ricavato dalla potenza attuale (sopra standbypower significa ricarica). I dettagli completi della configurazione si trovano in Interruttori smart.

AttributoTipoObbligatorioDescrizione
enabledboolsìLegge lo stato della presa (acceso/spento)
powerfloatsìPotenza attuale in W
energyfloatnoLettura del contatore in kWh
socfloatnoLivello di carica in %
enableboolsìAccende/spegne la presa
standbypowerfloatnoSoglia di potenza in W. Sopra: ricarica; sotto: standby. Negativa: statica (senza misurazione)

Le pompe di calore e dispositivi di riscaldamento simili usano tipi di caricabatterie dedicati, ciascuno con i propri attributi. La configurazione completa è descritta in Pompe di calore, riscaldatori elettrici.

type: heatpump

Per pompe di calore con inverter che accettano un valore di riferimento continuo della potenza via Modbus, HTTP o simili. La potenza di riscaldamento desiderata viene scritta direttamente tramite setmaxpower.

AttributoTipoObbligatorioDescrizione
powerfloatnoPotenza attuale in W
energyfloatnoLettura del contatore in kWh
tempfloatnoTemperatura attuale in °C
limittempintnoLimite di temperatura interno del dispositivo in °C
setmaxpowerintsìImposta la potenza di riscaldamento massima in W
getmaxpowerfloatnoPotenza di riscaldamento massima attuale in W

Anche i parametri del veicolo possono essere letti tramite plugin.

AttributoTipoObbligatorioDescrizione
socintsìLivello di carica in %
limitsocintnoLimite di carica in %
statusstringnoStato (A..F)
rangeintnoAutonomia in km
odometerintnoChilometraggio in km
climaterboolnoClimatizzazione attiva?
getmaxcurrentfloatnoCorrente di ricarica massima in A
finishtimestringnoOrario stimato di fine ricarica (RFC3339, durata Go, timestamp Unix o secondi rimanenti)
AttributoTipoObbligatorioDescrizione
wakeupboolnoRisveglia il veicolo
chargeenableboolnoAvvia/arresta il processo di ricarica
maxcurrentintnoImposta la corrente di ricarica massima in A
AttributoTipoObbligatorioDescrizione
titlestringnoNome visualizzato del veicolo
capacityfloatnoCapacità della batteria in kWh
iconstringnoIcona mostrata nell’interfaccia utente
FunzionalitàDescrizione
coarsecurrentIl veicolo accetta la corrente di ricarica solo a passi interi di 1 A. La logica di regolazione è limitata a passi grossolani di 1 A anche quando il caricabatterie potrebbe regolare in modo più fine.
streamingIl veicolo invia i dati invece di essere interrogato (ad es. BMW Cardata). Gli aggiornamenti del livello di carica al di fuori della ricarica attiva vengono considerati affidabili.
welcomechargeIl veicolo si aspetta che il caricabatterie sia attivo al momento della connessione per considerare funzionante il collegamento. Altrimenti segnala un errore.

Leggere l’autonomia attuale da messaggi MQTT.

title: Green Mazda # display name (optional)
capacity: 50 # battery capacity in kWh (optional)
features:
- coarsecurrent
range:
source: mqtt
topic: mazda2mqtt/c53/chargeInfo/drivingRangeKm

Risvegliare un’auto con un ping HTTP prima di inviare ulteriori richieste.

wakeup:
source: http
uri: http://teslalogger.local:5000/command/08154711/wake_up

onIdentify imposta automaticamente la modalità di ricarica quando il veicolo viene riconosciuto.

soc:
source: mqtt
topic: car/soc
onIdentify:
mode: smart

Modalità disponibili: off, smart, now. I valori deprecati pv e minpv vengono ancora accettati e attivano smart con Carica sempre disattivato o attivato.

Una tariffa definita dall’utente collega evcc a una sorgente di valori personalizzata tramite il meccanismo dei plugin. L’attributo tariff stabilisce cosa rappresenta la sorgente e quale unità usano i valori.

Va configurato esattamente uno tra price e forecast.

AttributoTipoDescrizione
pricefloatValore attuale. Float restituito dal plugin.
forecaststringPrevisione come stringa JSON con un elenco di periodi di tempo e valori (vedi lo schema sotto). Interrogata ogni ora.
AttributoTipoObbligatorioDescrizione
tariffstringnoprice (predefinito), co2, solar o temperature. Determina l’unità dei valori restituiti: prezzo per kWh nella valuta configurata, intensità di CO₂ in g/kWh, previsione solare in W, temperatura in °C.
chargesfloatnoMaggiorazione fissa per kWh aggiunta a ogni valore. Predefinito 0.
chargesZoneslistnoMaggiorazioni a fasce orarie (ad es. oneri di rete) che sostituiscono charges in periodi specifici. Vedi oneri di rete a fasce orarie.
taxfloatnoAliquota d’imposta applicata al risultato, ad es. 0.2 per il 20%. Predefinito 0.
formulastringnoEspressione Go per un calcolo personalizzato, in cui sono disponibili price, charges e tax. Vedi gli esempi.
intervaldurationnoIntervallo di interrogazione per forecast. Predefinito 1h.
cachedurationnoDurata della cache per price. Predefinito 15m.
FunzionalitàDescrizione
averageRiduce le fasce di prezzo più brevi (ad es. valori ogni 15 minuti) a medie orarie.
cacheableConserva i valori recuperati e li usa come riserva dopo un riavvio o un’interruzione del fornitore (fino a 24 ore).

Prezzo attuale via HTTP:

price:
source: http
uri: https://example.com/api/price

Previsione via HTTP:

forecast:
source: http
uri: https://api.allinpower.nl/troodon/api/p/spot_market/prices/?product_type=ELK
jq: '[.timestamps, .prices] | transpose | map({ "start": (.[0] | strptime("%Y-%m-%dT%H:%M:%S.%f%z") | strftime("%Y-%m-%dT%H:%M:%SZ")), "end": (.[0] | strptime("%Y-%m-%dT%H:%M:%S.%f%z") | mktime + 3600 | strftime("%Y-%m-%dT%H:%M:%SZ")), "value": .[1] }) | tostring'

Il plugin deve restituire una struttura JSON contenente un elenco di periodi di tempo e prezzi. I campi data devono avere la forma YYYY-MM-DDTHH:MM:SSZ e il prezzo deve essere nell’unità di valuta corretta (ad es. EUR). Internamente evcc lavora con intervalli di 15 minuti; i plugin possono restituire dati orari, che vengono convertiti automaticamente.

[
{
"start": "2025-01-01T00:00:00Z",
"end": "2025-01-01T00:15:00Z",
"value": 25.0
},
{
"start": "2025-01-01T00:15:00Z",
"end": "2025-01-01T00:30:00Z",
"value": 26.5
},
{
"start": "2025-01-01T00:30:00Z",
"end": "2025-01-01T00:45:00Z",
"value": 24.8
},
{
"start": "2025-01-01T00:45:00Z",
"end": "2025-01-01T01:00:00Z",
"value": 27.2
}
]

Il campo formula accetta un’espressione Go in cui sono disponibili price, charges, tax e il timestamp della fascia ts. Sono disponibili la libreria math e i metodi di time.Time su ts. La formula viene eseguita per il prezzo attuale e per ogni fascia della previsione.

Tetto al prezzo:

charges: 0.22
tax: 0.19
formula: math.Min(0.5, (price + charges) * (1 + tax))

Limita il risultato a 50 ct/kWh.

Nessuna tariffa di immissione con prezzi day-ahead negativi (impianti fotovoltaici tedeschi messi in servizio dopo il 25 febbraio 2025):

formula: factor := 1.0; if price < 0 { factor = 0.0 }; factor * 0.07

Paga una tariffa di immissione fissa di 7 ct/kWh, tranne quando il prezzo del mercato day-ahead è negativo.

Un’integrazione definita dall’utente per la funzione Limite esterno collega una centralina di controllo o un sistema di gestione dell’energia non coperto da un’integrazione predefinita. Nell’interfaccia, scegli Integrazione definite dall’utente in Configurazione → Limite prelievo da rete.

Il tipo, a scelta tra quattro, stabilisce come viene ricevuto il segnale di limitazione: relay (singolo contatto di commutazione), fnn (centralina di controllo FNN con più contatti di commutazione), eebus (protocollo EEBUS) o custom (valori limite dinamici tramite plugin). Ogni segnale viene letto tramite una configurazione plugin (GPIO, MQTT, HTTP, Modbus). Vedi anche il riferimento della configurazione hems.

Il collegamento tramite un singolo contatto di commutazione è la soluzione più semplice. La centralina di controllo attiva un contatto che viene valutato dalla tua istanza evcc.

AttributoTipoObbligatorioDescrizione
maxPowerint (W)sìLimite di potenza totale applicato mentre il segnale è attivo.
limitpluginsìConfigurazione plugin per leggere il contatto di commutazione. true/1 = limitato, false/0 = normale.
passthroughpluginnoInoltra il segnale di limitazione a un sistema esterno.
intervaldurationnoIntervallo di interrogazione del contatto di commutazione. Predefinito 10s.

Il limite di potenza ti viene comunicato dal gestore di rete. Con più dispositivi di consumo controllabili (SteuVE) si tiene conto del fattore di contemporaneità. Puoi anche calcolare il limite da solo con la formula: Limite totale = numero di SteuVE × 4,2 kW × fattore di contemporaneità. I dettagli sul calcolo si trovano qui.

Se usi un Raspberry Pi, il pin GPIO può essere letto direttamente:

type: relay
maxPower: 8400 # Example for 2 SteuVE
limit:
source: gpio
function: read
pin: 17 # Read GPIO pin 17
# Return value: false = not limited, true = limited

Per maggiori dettagli sul plugin GPIO, consulta la documentazione dei plugin.

Le centraline di controllo conformi allo standard FNN segnalano la riduzione del consumo e la limitazione della produzione tramite contatti di commutazione separati. Riduzione del consumo (W4) e limitazione della produzione (W3, S2, S1) funzionano in modo indipendente. Va configurato almeno uno dei segnali w4 o w3.

AttributoTipoObbligatorioDescrizione
maxDimPowerint (W)sì¹Limite di consumo mentre il segnale di riduzione (W4) è attivo.
maxCurtailPowerint (W)sì²Potenza fotovoltaica installata, valore di base per i livelli di limitazione della produzione.
w4pluginnoLegge il segnale di riduzione. Limita il consumo a maxDimPower.
w3pluginnoLegge il segnale di limitazione. Limita l’immissione in rete allo 0% di maxCurtailPower.
s2pluginnoLegge il segnale di limitazione. Limita l’immissione in rete al 30% di maxCurtailPower.
s1pluginnoLegge il segnale di limitazione. Limita l’immissione in rete al 60% di maxCurtailPower.
intervaldurationnoIntervallo di interrogazione dei contatti di commutazione. Predefinito 10s.

¹ obbligatorio quando w4 è configurato, ² obbligatorio quando w3 è configurato.

type: fnn
maxDimPower: 4200 # Consumption limit while dimmed (in watts)
maxCurtailPower: 10000 # Installed solar power, base for curtailment steps (in watts)
w4:
source: gpio
function: read
pin: 17 # Read GPIO pin 17
# Return value: false = normal, true = active
w3:
source: gpio
function: read
pin: 27
s2:
source: gpio
function: read
pin: 22
s1:
source: gpio
function: read
pin: 23

Il collegamento digitale avviene tramite il protocollo EEBUS. La centralina di controllo comunica direttamente con la tua istanza evcc e trasmette automaticamente il limite di potenza. Centralina di controllo ed evcc devono essere associati una volta.

AttributoTipoObbligatorioDescrizione
skistringsìSKI (Subject Key Identifier) della centralina di controllo.
contractualConsumptionNominalMaxint (W)noPotenza di consumo massima contrattuale.
failsafeConsumptionActivePowerLimitint (W)noLimite di sicurezza per la potenza di consumo.
productionNominalMaxint (W)noPotenza installata del generatore (Wp).
failsafeProductionActivePowerLimitint (W)noLimite di sicurezza per la potenza di immissione in rete.
failsafeDurationMinimumdurationnoDurata minima del funzionamento di sicurezza, ad es. 2h.
passthroughpluginnoInoltra il segnale di limitazione a un sistema esterno.
type: eebus
ski: "1234-5678-90AB-CDEF" # SKI of the control box

È l’integrazione generica per sistemi di controllo che forniscono valori limite dinamici invece di contatti di commutazione. Limite di consumo e limitazione della produzione vengono letti tramite plugin e funzionano in modo indipendente l’uno dall’altro. Va configurato almeno uno tra maxConsumptionPower e curtailedPercent.

AttributoTipoObbligatorioDescrizione
maxConsumptionPowerpluginno¹Legge il limite di potenza totale in W. 0 = nessun limite.
curtailedPercentpluginno¹Legge l’immissione in rete consentita come percentuale di productionNominalMax (da 0 a 100). 100 = nessuna limitazione.
productionNominalMaxint (W)no²Potenza installata del generatore (Wp).
intervaldurationnoIntervallo di interrogazione dei plugin. Predefinito 10s.

¹ almeno uno dei due è obbligatorio, ² obbligatorio quando curtailedPercent è configurato.

type: custom
maxConsumptionPower:
source: http
uri: http://steuerbox.local/api/limit
jq: .maxPower # Power limit in watts, 0 = no limit
curtailedPercent:
source: mqtt
topic: hems/curtail/percent # Allowed feed-in in percent, 100 = no curtailment
productionNominalMax: 10000 # Installed generator power (Wp)

Un dispositivo limitatore definito dall’utente limita l’immissione in rete dell’impianto fotovoltaico su richiesta del gestore di rete (§ 9 EEG) quando l’inverter non può essere limitato tramite la configurazione del suo contatore. Nell’interfaccia, scegli Dispositivo definito dall’utente in Configurazione → Rete Elettrica → Aggiungi dispositivo limitatore. Vedi anche il riferimento della configurazione curtailers e Limite esterno.

Il dispositivo riceve l’immissione in rete consentita come percentuale della potenza installata del generatore e deve applicarla all’inverter. 100 significa nessun limite.

AttributoTipoObbligatorioDescrizione
curtailpluginsìImposta il limite di immissione in rete in % della potenza nominale di produzione (da 0 a 100). Deve supportare l’accesso in scrittura.
curtailedpluginsìLegge il limite attuale di immissione in rete in %. Se il dispositivo non può fornirlo, usa il plugin error (vedi esempio).
curtail:
source: http
uri: http://inverter.local/api/limit?percent={{ .curtail }}
method: POST
curtailed:
source: http
uri: http://inverter.local/api/limit
jq: .percent

Un servizio di notifica definito dall’utente elabora i messaggi di notifica tramite qualsiasi plugin con accesso in scrittura, ad es. uno script shell, una richiesta HTTP o un messaggio MQTT. Nell’interfaccia, scegli Servizio definito dall’utente in Configurazione → Notifiche → Servizi.

Il messaggio viene passato al plugin nel parametro ${send} (oppure come parametro di template {{.send}}).

AttributoTipoObbligatorioDescrizione
sendpluginsìPlugin richiamato per ogni messaggio. Deve supportare l’accesso in scrittura.
encodingstringnoFormato del valore fornito in ${send}. Vedi sotto.

I valori possibili di encoding sono:

CodificaContenuto di ${send}
jsonOggetto JSON { "msg": msg, "title": title }. Il campo title viene aggiunto solo se definito per l’evento.
csvtitle e msg come elenco separato da virgole
tsvCome csv, ma separato da tabulazioni
titleSolo il titolo
(nessuna)Solo il messaggio (msg)
messaging:
events:
connect:
title: "${vehicleTitle} connected"
msg: "${vehicleTitle} was connected (charging mode: ${mode})."
services:
- type: custom
encoding: json
send:
# plugin type
source: script
# plugin-specific configuration;
# {{.send}} contains the JSON message
cmd: /usr/local/bin/evcc_message "{{.send}}"

In questo esempio viene richiamato uno script shell (cmd) con l’argomento {"title": "...", "msg": "..."}.