From c5631123c3a129bf6d8bc60245400e49fb55c3db Mon Sep 17 00:00:00 2001 From: Jordan Rodgers Date: Sat, 31 Jan 2026 01:11:49 -0800 Subject: [PATCH] Add HomeAssistant charger (#27103) --- .../charger/homeassistant-switch.yaml | 2 + .../definition/charger/homeassistant.yaml | 165 ++++++++++++++++++ 2 files changed, 167 insertions(+) create mode 100644 templates/definition/charger/homeassistant.yaml diff --git a/templates/definition/charger/homeassistant-switch.yaml b/templates/definition/charger/homeassistant-switch.yaml index cb8c0f74e..f626107c1 100644 --- a/templates/definition/charger/homeassistant-switch.yaml +++ b/templates/definition/charger/homeassistant-switch.yaml @@ -1,6 +1,8 @@ template: homeassistant-switch products: - brand: Home Assistant + description: + generic: Switch group: switchsockets requirements: evcc: ["skiptest"] diff --git a/templates/definition/charger/homeassistant.yaml b/templates/definition/charger/homeassistant.yaml new file mode 100644 index 000000000..5ad268a7d --- /dev/null +++ b/templates/definition/charger/homeassistant.yaml @@ -0,0 +1,165 @@ +template: homeassistant +products: + - brand: Home Assistant + description: + generic: Charger +group: generic +requirements: + description: + en: Home Assistant instances in your network will be auto-discovered and suitable charger entities and services (e.g. `sensor.*`, `switch.*`, `number.*`) will be suggested. + de: Home Assistant Instanzen in deinem Netzwerk werden automatisch erkannt und passende Wallbox-Entitäten und Services (z.B. `sensor.*`, `switch.*`, `number.*`) werden vorgeschlagen. +auth: + type: homeassistant + params: [uri] +params: + - name: uri + description: + de: Home Assistant URI + en: Home Assistant URI + example: http://homeassistant.local:8123 + help: + en: " " # overwrite default + de: " " # overwrite default + service: homeassistant/instances + required: true + - name: status + description: + de: Ladestatus-Sensor + en: Charging status sensor + service: homeassistant/entities?uri={uri}&domain=sensor,binary_sensor + example: "sensor.charger_status" + required: true + help: + en: Entity ID for charging status (A=ready, B=connected, C=charging, F=error) + de: Entitäts-ID für Ladestatus (A=bereit, B=verbunden, C=laden, F=fehler) + - name: enabled + description: + de: Aktivierungsstatus-Sensor + en: Enabled status sensor + service: homeassistant/entities?uri={uri}&domain=sensor,binary_sensor + example: "binary_sensor.charger_enabled" + required: true + help: + en: Entity ID for enabled state (sensor or binary_sensor with on/off or true/false state) + de: Entitäts-ID für Aktivierungsstatus (sensor oder binary_sensor mit on/off oder true/false Zustand) + - name: enable + description: + de: Aktivierungsschalter + en: Enable switch + service: homeassistant/entities?uri={uri}&domain=switch,input_boolean + example: "switch.charger_enable" + required: true + help: + en: Entity ID for enable/disable control (switch or input_boolean) + de: Entitäts-ID für Aktivierungs-/Deaktivierungs-Steuerung (switch oder input_boolean) + - name: setMaxCurrent + description: + de: Maximale Stromstärke-Entität [A] + en: Maximum current entity [A] + service: homeassistant/entities?uri={uri}&domain=number,input_number + example: "number.charger_max_current" + required: true + help: + en: Entity ID for setting maximum current in amperes (number or input_number entity) + de: Entitäts-ID zum Setzen der maximalen Stromstärke in Ampere (number oder input_number Entität) + - name: power + description: + de: Leistungsentität + en: Power entity + service: homeassistant/entities?uri={uri}&domain=sensor + example: "sensor.charger_power" + advanced: true + help: + en: Entity ID for instantaneous power measurement in watts + de: Entitäts-ID für momentane Leistungsmessung in Watt + - name: energy + description: + de: Energieentität + en: Energy entity + service: homeassistant/entities?uri={uri}&domain=sensor + example: "sensor.charger_energy" + advanced: true + help: + en: Entity ID for cumulative energy measurement in kWh + de: Entitäts-ID für kumulative Energiemessung in kWh + - name: currentL1 + description: + de: L1 Stromentität + en: L1 current entity + service: homeassistant/entities?uri={uri}&domain=sensor + example: "sensor.charger_current_l1" + advanced: true + help: + en: Entity ID for L1 current measurement in amperes + de: Entitäts-ID für L1 Strommessung in Ampere + - name: currentL2 + description: + de: L2 Stromentität + en: L2 current entity + service: homeassistant/entities?uri={uri}&domain=sensor + example: "sensor.charger_current_l2" + advanced: true + help: + en: Entity ID for L2 current measurement in amperes + de: Entitäts-ID für L2 Strommessung in Ampere + - name: currentL3 + description: + de: L3 Stromentität + en: L3 current entity + service: homeassistant/entities?uri={uri}&domain=sensor + example: "sensor.charger_current_l3" + advanced: true + help: + en: Entity ID for L3 current measurement in amperes + de: Entitäts-ID für L3 Strommessung in Ampere + - name: voltageL1 + description: + de: L1 Spannungsentität + en: L1 voltage entity + service: homeassistant/entities?uri={uri}&domain=sensor + example: "sensor.charger_voltage_l1" + advanced: true + help: + en: Entity ID for L1 voltage measurement in volts + de: Entitäts-ID für L1 Spannungsmessung in Volt + - name: voltageL2 + description: + de: L2 Spannungsentität + en: L2 voltage entity + service: homeassistant/entities?uri={uri}&domain=sensor + example: "sensor.charger_voltage_l2" + advanced: true + help: + en: Entity ID for L2 voltage measurement in volts + de: Entitäts-ID für L2 Spannungsmessung in Volt + - name: voltageL3 + description: + de: L3 Spannungsentität + en: L3 voltage entity + service: homeassistant/entities?uri={uri}&domain=sensor + example: "sensor.charger_voltage_l3" + advanced: true + help: + en: Entity ID for L3 voltage measurement in volts + de: Entitäts-ID für L3 Spannungsmessung in Volt +render: | + type: homeassistant + uri: {{ .uri }} + status: {{ .status }} + enabled: {{ .enabled }} + enable: {{ .enable }} + maxcurrent: {{ .setMaxCurrent }} + power: {{ .power }} + energy: {{ .energy }} + {{- if and .currentL1 .currentL2 .currentL3 }} + currents: + - {{ .currentL1 }} + - {{ .currentL2 }} + - {{ .currentL3 }} + {{- end }} + {{- if and .voltageL1 .voltageL2 .voltageL3 }} + voltages: + - {{ .voltageL1 }} + - {{ .voltageL2 }} + - {{ .voltageL3 }} + {{- end }}