Battery Hold Charge: ui state; api docs (#30628)

This commit is contained in:
Michael Geers 2026-06-09 10:41:06 +02:00 • committed by GitHub
parent 2db85aeed6
commit 7d4e57ed38
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
33 changed files with 49 additions and 36 deletions

View file

@ -1,6 +1,6 @@
package api
// BatteryMode is the home battery operation mode. Valid values are normal, locked and charge
// BatteryMode is the home battery operation mode. Valid values are normal, hold, charge and holdcharge
type BatteryMode int
//go:generate go tool enumer -type BatteryMode -trimprefix Battery -transform=lower

View file

@ -256,6 +256,7 @@
:power="batteryCharge"
:powerUnit="powerUnit"
:iconProps="{
hold: batteryChargeHold,
soc: batterySoc,
gridCharge: batteryGridChargeActive,
}"
@ -445,14 +446,21 @@ export default defineComponent({
return this.chargePower(this.batteryPower);
},
batteryChargeLabel() {
return this.$t("main.energyflow.batteryCharge");
return this.$t(
`main.energyflow.battery${this.batteryChargeHold ? "ChargeHold" : "Charge"}`
);
},
batteryDischargeLabel() {
return this.$t(`main.energyflow.battery${this.batteryHold ? "Hold" : "Discharge"}`);
return this.$t(
`main.energyflow.battery${this.batteryHold ? "DischargeHold" : "Discharge"}`
);
},
batteryHold() {
return this.batteryMode === "hold";
},
batteryChargeHold() {
return this.batteryMode === "holdcharge";
},
consumption() {
return this.homePower + this.batteryCharge + this.loadpointsPower;
},

View file

@ -435,6 +435,7 @@ export enum BATTERY_MODE {
NORMAL = "normal",
HOLD = "hold",
CHARGE = "charge",
HOLDCHARGE = "holdcharge",
}
export enum PHASES {

View file

@ -890,9 +890,9 @@
"battery": "Батерия",
"batteryCharge": "Зареждане на батерията",
"batteryDischarge": "Разреждане на батерията",
"batteryDischargeHold": "Батерия (заключена)",
"batteryGridChargeActive": "зареждането от мрежата е актижно",
"batteryGridChargeLimit": "зареждане от мрежата, когато",
"batteryHold": "Батерия (заключена)",
"batteryTooltip": "{energy} от {total} ({soc})",
"forecastTooltip": "прогноза: оставаща фотоволтаична продукция за днес",
"gridImport": "Използвана енергия от мрежата",

View file

@ -1164,13 +1164,13 @@
"battery": "Baterie domu",
"batteryCharge": "Nabíjení baterie",
"batteryDischarge": "Vybíjení baterie",
"batteryDischargeHold": "Baterie (udržování stavu nabití)",
"batteryForecastEmpty": "Prázdné",
"batteryForecastFull": "Plný",
"batteryForecastNextHigh": "Špička",
"batteryForecastNextLow": "Minimum",
"batteryGridChargeActive": "nabíjení domácí baterie ze sítě je aktivní",
"batteryGridChargeLimit": "nabíjení ze sítě, když",
"batteryHold": "Baterie (udržování stavu nabití)",
"batteryTooltip": "{energy} z {total} ({soc})",
"forecast": "Předpověď",
"forecastTooltip": "předpověď: zbývající solární výroba dnes",

View file

@ -1167,13 +1167,13 @@
"battery": "Batteri",
"batteryCharge": "Batteriet oplades",
"batteryDischarge": "Batteriet aflades",
"batteryDischargeHold": "Batteri (låst)",
"batteryForecastEmpty": "Tømt",
"batteryForecastFull": "Fyldt",
"batteryForecastNextHigh": "Højdepunkt",
"batteryForecastNextLow": "Lavpunkt",
"batteryGridChargeActive": "Opladning fra elnettet: aktiv",
"batteryGridChargeLimit": "Opladning fra elnettet: når",
"batteryHold": "Batteri (låst)",
"batteryTooltip": "{energy} af {total} ({soc})",
"forecast": "Prognose",
"forecastTooltip": "prognose: resterende solenergi produktion i dag",

View file

@ -1200,14 +1200,15 @@
"energyflow": {
"battery": "Batterie",
"batteryCharge": "Batterie laden",
"batteryChargeHold": "Batterie (Ladesperre)",
"batteryDischarge": "Batterie entladen",
"batteryDischargeHold": "Batterie (Entladesperre)",
"batteryForecastEmpty": "Leer",
"batteryForecastFull": "Voll",
"batteryForecastNextHigh": "Hoch",
"batteryForecastNextLow": "Tief",
"batteryGridChargeActive": "Netzladen: aktiv",
"batteryGridChargeLimit": "Netzladen: wenn",
"batteryHold": "Batterie (gesperrt)",
"batteryTooltip": "{energy} von {total} ({soc})",
"forecast": "Vorhersage",
"forecastTooltip": "Vorhersage: verbleibende PV-Produktion heute",

View file

@ -895,9 +895,9 @@
"battery": "Μπαταρία",
"batteryCharge": "Φόρτιση μπαταρίας",
"batteryDischarge": "Αποφόρτιση μπαταρίας",
"batteryDischargeHold": "Μπαταρία (κλειδωμένο)",
"batteryGridChargeActive": "ενεργή φόρτιση από το δίκτυο",
"batteryGridChargeLimit": "φόρτιση από το δίκτυο όταν",
"batteryHold": "Μπαταρία (κλειδωμένο)",
"batteryTooltip": "{energy} από {total} ({soc})",
"forecastTooltip": "πρόβλεψη: εναπομένουσα ηλιακή παραγωγή σήμερα",
"gridImport": "Χρήση δικτύου",

View file

@ -1199,14 +1199,15 @@
"energyflow": {
"battery": "Battery",
"batteryCharge": "Battery charging",
"batteryChargeHold": "Battery (charge locked)",
"batteryDischarge": "Battery discharging",
"batteryDischargeHold": "Battery (discharge locked)",
"batteryForecastEmpty": "Empty",
"batteryForecastFull": "Full",
"batteryForecastNextHigh": "High",
"batteryForecastNextLow": "Low",
"batteryGridChargeActive": "Grid charging: active",
"batteryGridChargeLimit": "Grid charging: when",
"batteryHold": "Battery (locked)",
"batteryTooltip": "{energy} of {total} ({soc})",
"forecast": "Forecast",
"forecastTooltip": "forecast: remaining solar production today",

View file

@ -907,9 +907,9 @@
"battery": "Batería",
"batteryCharge": "Cargar la batería",
"batteryDischarge": "Descargar la batería",
"batteryDischargeHold": "Batería (bloqueada)",
"batteryGridChargeActive": "carga de red activa",
"batteryGridChargeLimit": "carga de la red cuando",
"batteryHold": "Batería (bloqueada)",
"batteryTooltip": "{energy} de {total} ({soc})",
"forecastTooltip": "Previsión: producción solar restante para hoy",
"gridImport": "Consumo de red",

View file

@ -1166,13 +1166,13 @@
"battery": "Akku",
"batteryCharge": "Akunlataus",
"batteryDischarge": "Akku purkautuu",
"batteryDischargeHold": "Akku (lukittu)",
"batteryForecastEmpty": "Varaus loppuu",
"batteryForecastFull": "Varaus täynnä",
"batteryForecastNextHigh": "Korkea",
"batteryForecastNextLow": "Matala",
"batteryGridChargeActive": "Ladataan verkosta",
"batteryGridChargeLimit": "Milloin ladataan verkosta",
"batteryHold": "Akku (lukittu)",
"batteryTooltip": "{energy} / {total} ({soc})",
"forecast": "Ennuste",
"forecastTooltip": "ennuste: jäljellä oleva aurinkotuotanto tänään",

View file

@ -1204,13 +1204,13 @@
"battery": "Batterie",
"batteryCharge": "Batterie en charge",
"batteryDischarge": "Décharge de la batterie",
"batteryDischargeHold": "Batterie (verrouillée)",
"batteryForecastEmpty": "Vide",
"batteryForecastFull": "Plein",
"batteryForecastNextHigh": "Pic",
"batteryForecastNextLow": "Creux",
"batteryGridChargeActive": "Charge réseau : active",
"batteryGridChargeLimit": "Charge réseau : quand",
"batteryHold": "Batterie (verrouillée)",
"batteryTooltip": "{energy} sur {total} ({soc})",
"forecast": "Prévisions",
"forecastTooltip": "prévision : production solaire restante aujourd’hui",

View file

@ -896,9 +896,9 @@
"battery": "Baterija",
"batteryCharge": "Punjenje baterije",
"batteryDischarge": "Pražnjenje baterije",
"batteryDischargeHold": "Baterija (zaključano)",
"batteryGridChargeActive": "punjenje putem mreže je aktivno",
"batteryGridChargeLimit": "punjene putem mreže kada",
"batteryHold": "Baterija (zaključano)",
"batteryTooltip": "{energy} od {total} ({soc})",
"forecastTooltip": "predviđanje: današnja preostala solarna proizvodnja",
"gridImport": "Korištenje mreže",

View file

@ -906,9 +906,9 @@
"battery": "Battery",
"batteryCharge": "Energiatároló töltés",
"batteryDischarge": "Energiatároló kisütés",
"batteryDischargeHold": "Energiatároló (lezárva)",
"batteryGridChargeActive": "hálózatból töltés aktív",
"batteryGridChargeLimit": "hálózatból töltés ha",
"batteryHold": "Energiatároló (lezárva)",
"batteryTooltip": "{energy} / {total} ({soc})",
"forecastTooltip": "előrejelzés: ma fennmaradó napenergia-termelés",
"gridImport": "Hálózatból import",

View file

@ -1138,11 +1138,11 @@
"battery": "Batteria",
"batteryCharge": "Carica della batteria",
"batteryDischarge": "Scarico della batteria",
"batteryDischargeHold": "Batteria (locked)",
"batteryForecastEmpty": "vuoto {time}",
"batteryForecastFull": "full {time}",
"batteryGridChargeActive": "Ricarica dalla rete: attiva",
"batteryGridChargeLimit": "Ricarica dalla rete: quando",
"batteryHold": "Batteria (locked)",
"batteryTooltip": "{energy} di {total} ({soc})",
"forecast": "Previsioni",
"forecastTooltip": "previsioni: produzione solare rimanente per oggi",

View file

@ -1166,13 +1166,13 @@
"battery": "バッテリー",
"batteryCharge": "蓄電池充電中",
"batteryDischarge": "蓄電池放電中",
"batteryDischargeHold": "蓄電池 (制限中)",
"batteryForecastEmpty": "{time} 以降 残量ゼロ",
"batteryForecastFull": "{time} 以降 満充電",
"batteryForecastNextHigh": "次の最高値",
"batteryForecastNextLow": "次の最低値",
"batteryGridChargeActive": "系統充電: アクティブ",
"batteryGridChargeLimit": "系統充電: 条件待ち",
"batteryHold": "蓄電池 (制限中)",
"batteryTooltip": "{energy} / {total} ({soc})",
"forecast": "予測",
"forecastTooltip": "予測: 本日の残り太陽光発電量",

View file

@ -1164,13 +1164,13 @@
"battery": "Batterie",
"batteryCharge": "Batterie oplueden",
"batteryDischarge": "Batterie entlueden",
"batteryDischargeHold": "Batterie (gespäert)",
"batteryForecastEmpty": "Eidel",
"batteryForecastFull": "Voll",
"batteryForecastNextHigh": "Héich",
"batteryForecastNextLow": "Déif",
"batteryGridChargeActive": "Oluede vum Netz: aktiv",
"batteryGridChargeLimit": "Opluede vum Netz: wann",
"batteryHold": "Batterie (gespäert)",
"batteryTooltip": "{energy} vun {total} ({soc})",
"forecast": "Viraussoen",
"forecastTooltip": "Prognose: Rescht Solarproduktioun fir haut",

View file

@ -1167,13 +1167,13 @@
"battery": "Kaupiklis",
"batteryCharge": "Kaupiklis įkraunamas",
"batteryDischarge": "Kaupiklis iškraunamas",
"batteryDischargeHold": "Kaupiklis (užblokuotas)",
"batteryForecastEmpty": "Tuščias",
"batteryForecastFull": "Pilnas",
"batteryForecastNextHigh": "Didelė",
"batteryForecastNextLow": "Žema",
"batteryGridChargeActive": "Įkrovimas iš tinklo: aktyvus",
"batteryGridChargeLimit": "Įkrauti iš tinklo: kai",
"batteryHold": "Kaupiklis (užblokuotas)",
"batteryTooltip": "{energy} iš {total} ({soc})",
"forecast": "Prognozė",
"forecastTooltip": "prognozė: likusi saulės energijos gamyba šiandien",

View file

@ -1163,11 +1163,11 @@
"battery": "Batterij",
"batteryCharge": "Batterij opladen",
"batteryDischarge": "Batterij ontladen",
"batteryDischargeHold": "Batterij (geblokkeerd)",
"batteryForecastEmpty": "Leeg",
"batteryForecastFull": "Vol",
"batteryGridChargeActive": "Net laden: actief",
"batteryGridChargeLimit": "Net laden: wanneer",
"batteryHold": "Batterij (geblokkeerd)",
"batteryTooltip": "{energy} van {total} ({soc})",
"forecast": "Voorspelling",
"forecastTooltip": "voorspelling: resterende zonne-energieproductie voor vandaag",

View file

@ -923,9 +923,9 @@
"battery": "Batteri",
"batteryCharge": "Batterilading",
"batteryDischarge": "Batteri utlading",
"batteryDischargeHold": "Batteri (låst)",
"batteryGridChargeActive": "nettlading aktiv",
"batteryGridChargeLimit": "nettlading når",
"batteryHold": "Batteri (låst)",
"batteryTooltip": "{energy} av {total} ({soc})",
"forecastTooltip": "prognose: gjenværende solenergiproduksjon i dag",
"gridImport": "Lysnettimport",

View file

@ -1071,11 +1071,11 @@
"battery": "Akumulator",
"batteryCharge": "Ładowanie magazynu energii",
"batteryDischarge": "Rozładowywanie magazynu energii",
"batteryDischargeHold": "Magazyn energii (chroniony)",
"batteryForecastEmpty": "Pusty",
"batteryForecastFull": "Pełny",
"batteryGridChargeActive": "Ładowanie z sieci: aktywne",
"batteryGridChargeLimit": "Ładowanie z sieci: gdy",
"batteryHold": "Magazyn energii (chroniony)",
"batteryTooltip": "{energy} z {total} ({soc})",
"forecast": "Prognoza",
"forecastTooltip": "prognoza: pozostała na dziś produkcja energii słonecznej",

View file

@ -1150,11 +1150,11 @@
"battery": "Bateria",
"batteryCharge": "Carga de Bateria",
"batteryDischarge": "Descarga de Bateria",
"batteryDischargeHold": "Bateria (suspensa)",
"batteryForecastEmpty": "vazio {time}",
"batteryForecastFull": "cheio {time}",
"batteryGridChargeActive": "Carga da rede: ativa",
"batteryGridChargeLimit": "Carga da rede: quando",
"batteryHold": "Bateria (suspensa)",
"batteryTooltip": "{energy} de {total} ({soc})",
"forecast": "Previsões",
"forecastTooltip": "previsão: produção solar restante de hoje",

View file

@ -1053,11 +1053,11 @@
"battery": "Baterie",
"batteryCharge": "Incarca bateria",
"batteryDischarge": "Descărcare baterie",
"batteryDischargeHold": "Baterie (inchisa)",
"batteryForecastEmpty": "gol {time}",
"batteryForecastFull": "plin {time}",
"batteryGridChargeActive": "Încărcare din rețea: activă",
"batteryGridChargeLimit": "Încărcare din rețea: când",
"batteryHold": "Baterie (inchisa)",
"batteryTooltip": "{energy} din {total} ({soc})",
"forecast": "Prognoză",
"forecastTooltip": "prognoză: producția solară rămasă astăzi",

View file

@ -886,9 +886,9 @@
"battery": "Батарея",
"batteryCharge": "Батарея заряжается",
"batteryDischarge": "Батарея разряжается",
"batteryDischargeHold": "Батарея (заблокирована)",
"batteryGridChargeActive": "сетевая зарядка активна",
"batteryGridChargeLimit": "зарядка сети при",
"batteryHold": "Батарея (заблокирована)",
"batteryTooltip": "{energy} из {total} ({soc})",
"forecastTooltip": "прогноз: оставшееся производство солнечной энергии на сегодня",
"gridImport": "Потребление из сети",

View file

@ -917,9 +917,9 @@
"battery": "Baterija",
"batteryCharge": "Polnjenje baterije",
"batteryDischarge": "Praznjenje baterije",
"batteryDischargeHold": "Baterija (zaklenjena)",
"batteryGridChargeActive": "polnjenje iz omrežja aktivno",
"batteryGridChargeLimit": "polnjenje iz omrežja ko",
"batteryHold": "Baterija (zaklenjena)",
"batteryTooltip": "{energy} od {total} ({soc})",
"forecastTooltip": "napoved: preostala sončna proizvodnja danes",
"gridImport": "Uvoz iz omrežja",

View file

@ -1168,13 +1168,13 @@
"battery": "Batteri",
"batteryCharge": "Batteri laddas",
"batteryDischarge": "Batteri laddas ur",
"batteryDischargeHold": "Batteri (låst)",
"batteryForecastEmpty": "Tom",
"batteryForecastFull": "Full",
"batteryForecastNextHigh": "Högsta",
"batteryForecastNextLow": "Lägsta",
"batteryGridChargeActive": "Nätladdning: aktiv",
"batteryGridChargeLimit": "Nätladdning: när",
"batteryHold": "Batteri (låst)",
"batteryTooltip": "{energy} av {total} ({soc})",
"forecast": "Prognos",
"forecastTooltip": "Prognos: återstående solproduktion idag",

View file

@ -971,11 +971,11 @@
"battery": "மின்கலம்",
"batteryCharge": "மின்கலம் மின்சேர்வி",
"batteryDischarge": "மின்கலம் மின்நீக்கி",
"batteryDischargeHold": "மின்கலம் (பூட்டபட்டது)",
"batteryForecastEmpty": "காலியாக {time}",
"batteryForecastFull": "முழு {time}",
"batteryGridChargeActive": "கிரிட் சார்சிங்: செயலில் உள்ளது",
"batteryGridChargeLimit": "கிரிட் சார்சிங்: எப்போது",
"batteryHold": "மின்கலம் (பூட்டபட்டது)",
"batteryTooltip": "{energy} ({total}) இன் {soc}",
"forecast": "முன்னறிவிப்பு",
"forecastTooltip": "முன்னறிவிப்பு: இன்று சூரிய விளைவாக்கம்",

View file

@ -1164,13 +1164,13 @@
"battery": "Batarya",
"batteryCharge": "Batarya doldurma",
"batteryDischarge": "Batarya boşaltma",
"batteryDischargeHold": "Batarya (kilitli)",
"batteryForecastEmpty": "Boş",
"batteryForecastFull": "Dolu",
"batteryForecastNextHigh": "Yüksek",
"batteryForecastNextLow": "Düşük",
"batteryGridChargeActive": "Şebekeden doldurma: etkin",
"batteryGridChargeLimit": "Şebekeden doldurma: şayet",
"batteryHold": "Batarya (kilitli)",
"batteryTooltip": "{total} ({soc})'ın {energy}'ı",
"forecast": "Tahmin",
"forecastTooltip": "“öngörü: bugün kalan güneşden üreti̇m”",

View file

@ -899,9 +899,9 @@
"battery": "Батарея",
"batteryCharge": "Зарядження батареї",
"batteryDischarge": "Розрядження батареї",
"batteryDischargeHold": "Акумулятор (locked)",
"batteryGridChargeActive": "активна зарядка мережі",
"batteryGridChargeLimit": "зарядка мережі коли",
"batteryHold": "Акумулятор (locked)",
"batteryTooltip": "{energy} із {total} ({soc})",
"forecastTooltip": "Прогноз: залишкове виробництво сонячної енергії сьогодні",
"gridImport": "Використання мережі",

View file

@ -643,9 +643,9 @@
"battery": "电池",
"batteryCharge": "电池充电中",
"batteryDischarge": "电池放电中",
"batteryDischargeHold": "电池(已锁定)",
"batteryGridChargeActive": "电网充电已激活",
"batteryGridChargeLimit": "电网充电条件",
"batteryHold": "电池(已锁定)",
"batteryTooltip": "{energy} / {total} ({soc})",
"forecastTooltip": "预测:今日剩余太阳能发电量",
"gridImport": "电网用电",

View file

@ -192,8 +192,8 @@
"schema": {
"properties": {
"result": {
"description": "Battery mode. 0: unknown, 1: normal, 2: hold, 3: charge",
"maximum": 3,
"description": "Battery mode. 0: unknown, 1: normal, 2: hold, 3: charge, 4: holdcharge",
"maximum": 4,
"minimum": 0,
"type": "integer"
}
@ -366,7 +366,8 @@
"unknown",
"normal",
"hold",
"charge"
"charge",
"holdcharge"
],
"example": "normal",
"type": "string"

View file

@ -1374,6 +1374,7 @@ components:
- normal
- hold
- charge
- holdcharge
ChangePassword:
type: object
properties:
@ -1905,9 +1906,9 @@ components:
properties:
result:
type: integer
description: "Battery mode. 0: unknown, 1: normal, 2: hold, 3: charge"
description: "Battery mode. 0: unknown, 1: normal, 2: hold, 3: charge, 4: holdcharge"
minimum: 0
maximum: 3
maximum: 4
securitySchemes:
cookieAuth:
type: apiKey

View file

@ -94,7 +94,7 @@ test.describe("battery settings", async () => {
await page.getByRole("link", { name: "Charge" }).click();
await page.getByTestId("energyflow").click();
await expect(discharge).toContainText("Battery (locked)");
await expect(discharge).toContainText("Battery (discharge locked)");
await expect(charge).toContainText("Battery charging");
});
});