Skip to content

Loadpoint UI: improve heatpump status#29667

Merged
andig merged 2 commits into
masterfrom
feat/heatpump_status
May 5, 2026
Merged

Loadpoint UI: improve heatpump status#29667
andig merged 2 commits into
masterfrom
feat/heatpump_status

Conversation

@naltatis
Copy link
Copy Markdown
Member

@naltatis naltatis commented May 5, 2026

adresses #19753
builds upon #28025

✅ heat pumps now show "Normal operation." when running on their own logic (instead of misleading "Standby.")
🔥 heat pump enabled=true is labeled "Boost active.", pending boost (charging=false) shows "Boost requested…"
🌡️ heating devices use "Heating…" / "Ready to heat…" / "Heater limit" consistently
🚗 vehicle charging status texts are unchanged

@naltatis naltatis added enhancement New feature or request ux User experience/ interface labels May 5, 2026
@naltatis naltatis mentioned this pull request May 5, 2026
6 tasks
Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 1 issue, and left some high level feedback:

  • The unit tests now depend on concrete English copy via en.json, which may make them brittle to purely textual changes; consider asserting against translation keys or a dedicated test locale map instead of production strings.
  • In translateStatus, the three status namespaces share the same interpolation pattern; you could factor out the repeated main.*Status concatenation into a small helper to avoid duplication and make future status-type additions simpler.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The unit tests now depend on concrete English copy via en.json, which may make them brittle to purely textual changes; consider asserting against translation keys or a dedicated test locale map instead of production strings.
- In translateStatus, the three status namespaces share the same interpolation pattern; you could factor out the repeated `main.*Status` concatenation into a small helper to avoid duplication and make future status-type additions simpler.

## Individual Comments

### Comment 1
<location path="assets/js/components/Loadpoints/Loadpoint.stories.ts" line_range="70-72" />
<code_context>
   vehicleClimaterActive: false,
   vehicleDetectionActive: false,
   vehicleWelcomeActive: false,
+  chargerFeatureContinuous: false,
   chargerFeatureHeating: false,
   chargerFeatureIntegratedDevice: false,
   chargerIcon: "",
</code_context>
<issue_to_address>
**suggestion (bug_risk):** Add a default for the new `chargerFeatureSwitchDevice` flag in the story state for consistency.

Since `Loadpoint` now includes `chargerFeatureSwitchDevice: boolean`, this should also be initialized here (e.g. `chargerFeatureSwitchDevice: false`) alongside the other feature flags to avoid `undefined` at runtime and keep the initial state consistent. Please also update any other initial state objects that construct a `Loadpoint`.

Suggested implementation:

```typescript
  vehicleClimaterActive: false,
  vehicleDetectionActive: false,
  vehicleWelcomeActive: false,
  chargerFeatureContinuous: false,
  chargerFeatureHeating: false,
  chargerFeatureIntegratedDevice: false,
  chargerFeatureSwitchDevice: false,
  chargerIcon: "",

```

Search the codebase for other initial `Loadpoint` objects (e.g. other stories, test fixtures, or default state factories) and add `chargerFeatureSwitchDevice: false` alongside `chargerFeatureContinuous`, `chargerFeatureHeating`, and `chargerFeatureIntegratedDevice` in each of them to keep the initial state shape consistent and avoid `undefined` at runtime.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread assets/js/components/Loadpoints/Loadpoint.stories.ts
Comment thread core/loadpoint.go Outdated
@andig andig merged commit 1e61427 into master May 5, 2026
7 checks passed
@andig andig deleted the feat/heatpump_status branch May 5, 2026 20:04
@LeonSol
Copy link
Copy Markdown

LeonSol commented May 8, 2026

@naltatis Nach update auf 0.306.3 steht bei mir bei der Wärmepumpe immer noch StandBy. Die Wärmepumpe ist allerdings in normalem Heizbetrieb (siehe Verbrauch). Sollte da nicht "Normal Operation" stehen?

HOVAL-StandBy

@naltatis
Copy link
Copy Markdown
Member Author

naltatis commented May 8, 2026

@LeonSol Ja sollte es. Hat deine Implementierung denn das continuous Feature Flag? Schau mal im State nach chargerFeatureContinuous

@LeonSol
Copy link
Copy Markdown

LeonSol commented May 8, 2026

@naltatis Habe meinen alten Post gelöscht und einfach in der yaml unter "features" den Unterpunkt "continuous" eingetragen. Damit funktioniert es. Gibt man allerdings auf der Seite von EVCC unter Dokumentation->Suche "Continuous" ein, wird kein Verweis angezeigt. Ist das nicht dokumentiert?

@andig
Copy link
Copy Markdown
Member

andig commented May 8, 2026

Nutzt du template oder custom?

@LeonSol
Copy link
Copy Markdown

LeonSol commented May 8, 2026

Nunmehr diesen charger:

- name: heatpump_control
  type: sgready-relay
  boost:
    type: template
    template: shelly
    host: 192.168.178.104
    channel: 0
    standbypower: 40
#  Fuer Para14a - Dimmen der WP
#  dim:
#    type: template
#    template: shelly
#    host: 192.168.178.104
#    channel: 1
#    standbypower: 40
  temp:
    source: script
    cmd: /home/pi/EVCC/GET_WPtemp
  features:
    - integrateddevice
    - heating
    - continuous
  icon: waterheater

@LeonSol
Copy link
Copy Markdown

LeonSol commented May 8, 2026

Nunmehr ist meine Wärmepumpe wirklich im StandBy (also aus - nur die Grundlast < standbypower) und es wird "Normalbetrieb" angezeigt - stimmt ja irgendwie, aber jetzt wäre "Standy" richtig ;-)

Hoval-Normal

@andig
Copy link
Copy Markdown
Member

andig commented May 8, 2026

Check. Ohne template musst du die Features pflegen.

woher soll evcc standby kennen?

@LeonSol
Copy link
Copy Markdown

LeonSol commented May 8, 2026

Durch eine Eingabe (siehe yaml-Eintrag) wie zum Beispiel bei "boost:" - standbypower : 40. Alles kleiner 40 Watt = StandBy.

@andig
Copy link
Copy Markdown
Member

andig commented May 8, 2026

Das ist der Punkt. Heute gar nicht.

@StevieC121176
Copy link
Copy Markdown

Nutzt du template oder custom?

Also ich nutze das Ems-esp Template und bei mir wird standby auch nicht korrekt angezeigt. Wärmepumpe ist aus , angezeigt wird aber Normalbetrieb

IMG_7584

@Tombra1889

This comment was marked as off-topic.

@naltatis
Copy link
Copy Markdown
Member Author

naltatis commented May 9, 2026

Also ich nutze das Ems-esp Template und bei mir wird standby auch nicht korrekt angezeigt. Wärmepumpe ist aus , angezeigt wird aber Normalbetrieb

Das ist genau das richtige "neue" Verhalten. Bei Aus (oder kein Überschuss, ...) überlassen wir der Wärmepumpe sich selbst. Aus Sicht von evcc ist sie im "Normalbetrieb". Was die dann intern noch macht ist für unseren Status erst einmal irrelevant.

@naltatis
Copy link
Copy Markdown
Member Author

naltatis commented May 9, 2026

Also erfolgt dann wahrscheinlich auch noch keine Aufzeichnung des Energieverbrauchs im Normalbetrieb.

Doch, hierfür ist nur der Energy bzw. Power Wert des Ladepunkts relevant. Heißt wir schreiben hier alles mit.

So wie ich es sehe, läuft der Time nicht, wenn SG Ready-Status noch 2 ist.

"Ladedauer" werden wir noch einmal umbauen und Aktivität getrennt tracken. Aktuell basiert das noch auf Ladevorgängen, die nächtlich resettet werden. Das wird sich noch ändern. War nicht teil dieses PRs. Hier ging's nur um den Statustext.

@Tombra1889

This comment was marked as outdated.

@LeonSol
Copy link
Copy Markdown

LeonSol commented May 9, 2026

@naltatis Aber ist es keine gute Idee, standbypower als allgemeinen Parameter zu nutzen, um auch wirklich "StandBy" statt "Normalbetrieb" anzuzeigen?

@Tombra1889

This comment was marked as off-topic.

@naltatis

This comment was marked as off-topic.

@naltatis
Copy link
Copy Markdown
Member Author

Aber ist es keine gute Idee, standbypower als allgemeinen Parameter zu nutzen

@LeonSol Ich verstehe noch nicht genau, was du damit meinst. Wenn evcc kein Boost Signal gibt (off, pv+kein Überschuss, ...) macht die Wärmepumpe ihr eigenes Ding. Vor diesem PR haben wir in diesem Fall immer "Standby" angezeigt. Das ist bei Heizstäben auch korrekt gewesen, da die idR. kein Eigenleben haben, sondern direkt von uns gesteuert werden. Bei Wärmepumpen gab es immer wieder Anfragen warum wir denn da "Standby" anzeigen obwohl die Wärmepumpe doch offensichtlich arbeitet (ohne Boost). Daher sind wir jetzt hier auf den allgemeineren Begriff "Normalbetrieb" für Wärmepumpen (continuous devices) umgestiegen.

@andig
Copy link
Copy Markdown
Member

andig commented May 10, 2026

Fürs Protokoll: evcc kannte und kennt heute keinen "standby" Modus. Weitere Diskussion dazu außerhalb dieses PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request ux User experience/ interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants