Power Flow Card Plus Mushroom: Mehrere Batterien, mehrere PV-Strings, beliebig viele Verbraucher
Die Power-Flow-Karte ist im Energie-Dashboard vieler Home-Assistant-Installationen das, was man zuerst sieht. Power Flow Card Plus von @flixlix ist dafür eine der beliebtesten Varianten. Sie geht aber von einem einfachen Aufbau aus: eine Batterie, ein PV-Eingang, höchstens vier Einzelverbraucher. Wer mehrere Speicher oder mehrere Dachflächen hat, muss die Werte vorher in Template-Sensoren zusammenrechnen. Für diesen Fall habe ich power-flow-card-plus-mushroom gebaut.
Die Karte ist ein Fork. Das Original stammt von @flixlix, der die Karte geschrieben hat und dem die Anerkennung dafür gehört. Der Fork ergänzt mehrere Batterien, mehrere PV-Quellen, beliebig viele Einzelverbraucher und ein Mushroom-artiges Erscheinungsbild. Er ist nicht im HACS-Standardspeicher und wird als benutzerdefiniertes Repository installiert. Probleme mit dem Fork gehören in den Issue-Tracker dieses Repositorys, nicht zum Original.

Neben dem Original installierbar
Der Fork hat einen eigenen Kartentyp, damit er parallel zur Originalkarte laufen kann: custom:power-flow-card-plus-mushroom. Die JavaScript-Ressource heißt power-flow-card-plus-mushroom.js, im Karten-Auswahldialog erscheint die Karte als „Power Flow Card Plus (Mushroom)“. Alle Custom Elements im Bundle haben eindeutige Namen, es gibt also keine Kollision. Eine bestehende Konfiguration der Originalkarte läuft weiter, sobald man den type: umstellt. Nur sources, batteries und max_individual_in_grid sind Erweiterungen des Forks.
Mehrere PV-Quellen und Batterien
Statt einer einzelnen solar.entity lässt sich unter solar.sources eine Liste angeben. Die Leistungen werden im Solar-Knoten summiert, und jede Quelle erscheint zusätzlich in einer kompakten Aufstellung unter dem Diagramm. Wird solar.entity weggelassen, berechnet die Karte die Summe selbst.
type: custom:power-flow-card-plus-mushroom
entities:
solar:
sources:
- entity: sensor.pv_roof_south
name: Dach Süd
- entity: sensor.pv_roof_east
name: Dach Ost
- entity: sensor.pv_garage
name: GarageBei Batterien funktioniert es genauso mit battery.batteries. Die Leistungen werden summiert; wenn kein gemeinsamer Ladezustand angegeben ist, bildet die Karte den Durchschnitt der einzelnen Ladezustände, denn Prozentwerte zu addieren wäre falsch. Jede Batterie bekommt in der Aufstellung ihre eigene Leistung und ihren eigenen Ladezustand. Alle Untereinträge eines Knotens sollten dieselbe Einheit haben, weil der Gesamtwert die Einheit des ersten Eintrags übernimmt.
Mehr als vier Einzelverbraucher
Die Liste individual ist unbegrenzt. Die ersten vier Geräte belegen wie bisher die Ecken des Diagramms, alle weiteren landen in der Liste darunter. max_individual_in_grid (0 bis 4, Standard 4) bestimmt, wie viele in die Ecken kommen; mit 0 wandern alle in die Liste. Mit individual_position: right verlieren die Geräte ihre Kreise ganz und stehen als Liste neben dem Diagramm. Sortiert wird mit sort_individual_devices nach Wert (Standard), Name oder Name absteigend. Auf schmalen Karten rutscht die Liste unter das Diagramm.

Externe Ladequelle
Manche laden den Speicher aus etwas, das weder Netz noch PV ist: ein Auto per V2L, ein Generator, Landstrom. Der Knoten charger macht das sichtbar. Er sitzt unter dem Netz und speist die Batterie über eine eigene Einbahn-Flusslinie. Die Leistung bleibt bewusst außerhalb der Verteilungsrechnung für Netz, Solar und Haus: Das Batterie-Entity meldet die resultierende Ladung ohnehin, sie noch einmal einzurechnen würde doppelt zählen. Der Knoten braucht eine konfigurierte Batterie.
entities:
battery:
entity: sensor.battery_power
charger:
name: V2L / Generator
icon: mdi:ev-station
sources:
- entity: sensor.v2l_power
name: V2L
- entity: sensor.generator_power
name: GeneratorkWh-Modus
Die Karte kann statt der Leistung auch Energie zeigen. Ein Schalter im Kopf wechselt zwischen W und kWh, in den Listen stehen die Energiewerte dauerhaft. Gedacht sind kumulierte kWh-Sensoren, keine Tageszähler: Die Karte fragt bei Home Assistant die Statistik für die Differenz über den gewählten Zeitraum ab, ein Lebenszeitzähler bedient also jeden Zeitraum. Zur Wahl stehen today, yesterday, week, month, year sowie die rollierenden Fenster last_7_days, last_30_days und last_365_days. Repräsentiert ein Sensor schon genau den gewünschten Zeitraum, liest energy_from_state: true seinen Zustand unverändert. Große Summen schalten ab kwh_threshold (Standard 1000 kWh) auf MWh um.
In Version 1.5.0 kamen dafür die Felder in den visuellen Editor. Vorher ließ sich der kWh-Modus zwar unter „Erweitert“ einschalten, die kWh-Entitäten selbst gab es aber nur per YAML. Jetzt hat jede Knotenseite einen einklappbaren Abschnitt „Energie“, und auch die Listen für Batterien, PV-Quellen und Ladequellen sowie jeder Einzelverbraucher haben ihre Felder. Auch die Listen selbst (solar.sources, battery.batteries, charger.sources) lassen sich im Editor mit „Hinzufügen“ ergänzen, umsortieren und entfernen.

Farben nach Auslastung
Mehrere Optionen färben Werte nach Auslastung ein: grün bei wenig, orange in der Mitte, rot am Ende der Skala.
color_individual_by_usagefärbt Einzelverbraucher;individual_color_maxlegt fest, bei wie vielen Watt das Rot erreicht ist (Standard:max_expected_power).color_battery_by_socfärbt Symbol und Balken nach Ladezustand. Seit 1.6.2 ist der Ladezustand die größte Zahl in der Zeile (1,05 rem, halbfett) und trägt die Akzentfarbe: 95 % grün, 62 % gelb, 33 % orange, 8 % rot.color_battery_by_dischargefärbt die Leistung nach Entladung. Jede Batterie wird an ihrem eigenendischarge_color_maxgemessen, Laden zählt als keine Entladung und bleibt grün. Beide Schalter sind unabhängig – eine Batterie kann also mit grünem Balken (95 % voll) und rotem Wert (7,6 kW Entladung) erscheinen.color_solar_by_outputfärbt PV-Quellen: rot bei nichts, orange dazwischen, grün bei Spitzenleistung. Jede Anlage wird an ihrem eigenencolor_maxgemessen; ein 800-Wp-Balkonmodul unter Volllast sieht damit genauso grün aus wie ein 10-kWp-Dach. Seit 1.7.0 ist 0 W grau statt rot, denn eine Anlage, die nachts nichts liefert, ist kein Fehlerzustand.
Eine Farbe, die direkt an der Batterie gesetzt ist, gewinnt immer gegen beide Einfärbungen. Die Aufstellung unter dem Diagramm zeigt zwei Einträge pro Zeile, vier Batterien bilden also einen 2×2-Block. Wo die Listen stehen, bestimmen solar_position, battery_position, charger_position und individual_position – jeweils oben, unten, links oder rechts.
Korrekturen auf dem Weg
Einige Fehler fielen beim Ausbau auf. Die Flusslinien endeten 16 px vor den Kreisen und lagen 16 px über deren Mitte; die Ursache war das padding des Linien-Containers, gemessen wurden danach 0 px Abstand und Linien genau auf der Kreismitte. Das Original in Version 0.3.7 hat dieselben Abstände, hier ist es also eine bewusste Abweichung. Die kWh-Werte fehlten in den Listen, weil die erste Abfrage in connectedCallback ausgeführt wurde, wo hass meist noch nicht gesetzt ist; kurz nach Mitternacht verschwanden alle Werte, weil ein Zeitraum ohne Statistikeintrag gar nichts statt null lieferte. Eine leere Antwort ist ein gültiges Ergebnis: dann sind es 0 kWh. Und Felder im Editor erschienen ohne Namen oder mit dem rohen Übersetzungsschlüssel, bis die Übersetzungen für alle 18 Sprachen ergänzt waren.
Drei Mal war die Ursache für überflüssige Linien derselbe CSS-Spezifitätsfehler: Eine Zonenregel mit einer einzelnen Klasse verlor gegen die allgemeine Regel .pfcp-breakdown. Seit 1.7.2 prüft ein Test alle vier Zonen auf den kombinierten Selektor, sodass ein einfaches .pfcp-zone-top { künftig die Tests durchfallen lässt.
Installation
- In HACS unter „Benutzerdefinierte Repositories“
https://github.com/sphings79/power-flow-card-plus-mushroommit der Kategorie „Dashboard“ hinzufügen. - Die Karte herunterladen; HACS legt die Ressource
power-flow-card-plus-mushroom.jsan. - Auf dem Dashboard eine Karte „Power Flow Card Plus (Mushroom)“ hinzufügen oder
type: custom:power-flow-card-plus-mushroomin YAML eintragen.
Die Editor-Übersetzungen umfassen 18 Sprachen, darunter Deutsch. Wer das Original nützlich findet, kann dessen Autor auf ko-fi unterstützen; der Link steht im README.
Zum Projekt
-
Power Flow Card Plus Mushroom
Fork der Power Flow Card Plus für Home Assistant: mehrere Batterien, mehrere PV-Quellen, beliebig viele Einzelverbraucher, kWh-Modus und visueller Editor.
Unterstützen
Diese Tools entstehen in meiner Freizeit und bleiben kostenlos, offen und cloud-frei. Wenn dir eins davon einen Nachmittag gespart hat, freue ich mich über einen Kaffee oder ein Stück Pizza.
Kaffee oder PizzaWeitere Beiträge
- Rollladen-Steuerung pro Raum: Taster, Fenster, Kälte und Regen Eine Automation pro Raum, die Taster, Fensterkontakt, Kälte, Regen und die Zeit vor Sonnenaufgang zusammenführt. Zwei Merker-Helfer verhindern, dass sich die Auslöser gegenseitig überfahren.
- Stromausfall erkennen und Geräte wiederherstellen in Home Assistant Nach einem Stromausfall booten Lampen und Steckdosen in zufälligen Zuständen. Drei Erkennungswege, ein gemeinsames Script und ein Wiederherstellungsfenster bringen alles wieder in den gewünschten Zustand.
- Rauchmelder löst aus: Alle Rollläden fahren hoch (Home Assistant) Bei Rauchalarm sollen die Rollläden im ganzen Haus hochfahren, damit Fenster als Fluchtweg frei sind. Die Automation ist kurz – aber ein fehlendes „from“ im Trigger entscheidet darüber, ob sie im Ernstfall überhaupt feuert.