Zwei Shelly PM messen den Energieverbrauch von 2 Kühlgeräten im Keller. Die Darstellung erfolgt in stinknormalen analogen Anzeigekarten. Nun möchte ich aber den Monatsverbrauch sehen und einen Button haben, mit dem ich mich auf das UI der Shelly’s schalten kann. Da gibt es jetzt zwei Ansätze:
Ansatz 1:
Ich schmuggel irgendwie die stat. Auswertung und den Button in die Anzeige-Karte hinein … aber wie?
Ansatz 2:
Ich lege einfach eine modifizierte Statistikkarte und einen Button unter die Karte mit der Analoganzeige. Der Button ist trivial – können wir ignorieren. Mit viel Mühe und Chatties Hilfe ist es mir gelungen die Statistikkarte soweit zu verändern, dass sie nur noch den Wert anzeigt und die richtige Größe hat. Das betrifft aber nur die reine Anzeige. Das Grundmaß der Karte bekomme ich nicht kleiner als 2x2 (bzw. 2x6 - keine Ahnung warum das mal so und mal so gezählt wird). Mit den Grid-Angabe kann ich die Karte problemlos vergrößern und sogar kleinere Zahlen eintragen - größer geht, bei kleineren Zahlen wird 2x2 angezeigt.
Mit den Entwicklerwerkzeugen wird mir als CSS-Element div. card.fit-rows für die Karte angezeigt. Eine Veränderung bewirkt aber quasi gar nichts.
Was mache ich falsch bzw. wie kann man das lösen – gern auch Ansatz 1 zu dem mir überhaupt nichts einfällt (es gibt ähnliche unbeantwortete Threads dazu).
Ansatz 3: Du solltest dich mal mit der custom:button-card befassen.
2 wichtige Punkte: styles: und darunter custom_fields: ist dazu da zu definieren WO und WIE etwas auf der custom:button-card dargestellt wird.
der Abschnitt in dem dann nochmals custom_fields: kommt definiert WAS dargestellt wird.
mal vereinfacht und stark eingekürzt.
Und ja “gauge1” ist in dem Beispiel das einzige custom field das ich hier mal ansatzweise definiert hab. Du kannst auch 1000 davon in der custom:button-card versenken so die denn alle passen vom Platz her.
und natürlich hat ne custom:button-card auch ne tap_action
quick hack zum spielen, wozu left, right, top und bottom sind sollte klar sein, der Rest ebenfalls.
@justone: soweit war ich auch schon. Aber wie bekomme ich in eine custom-card den Monatsverbrauch rein. Was ich bisher gelesen habe müsste ich den händisch erzeugen über Datenbankabfragen, was notabene extrem aufwändig ist. CSS kann ich besser.
Nix für ungut, aber ist das bei Homeassistant immer so frustrierend?
Das ist alles nur try-and-error - stochern im Nebel - finde den Fleischbrocken in der Soße. Ich bin Generation “Handbuch lesen”. Die Doku ist unfassbar chaotisch, die Beispiele so komplex, dass man Stunden benötigt um zu finden was man sucht und zu verstehen was die da eigentlich meinen. Aber wozu einfach, wenn es auch kompliziert geht …
Jetzt liegen die beiden Anzeigen übereinander - super! Wie man sie nebeneinander legt … wie man sie einfärbt … wie man den monatlichen Verbrauch generiert …
Ich befürchte meine Lebenszeit reicht nicht aus, um diese EINE Karte zu gestalten. Templates gibt es auch nicht - oder man findet sie nicht, weil der Ersteller krude Begriffe benutzt, auf die man selbst mit nachgewiesenen Business-Englisch nicht kommt.
Ich zweifle so langsam, ob HA das richtige Tool ist für einen alten Mann wie mich ist …
Wenn du vom Standard abweichen willst und Karten haben möchtest, die es so in HA nicht gibt, dann sollte dir auch bewusst sein, dass es komplex werden kann. Anpassungen per CSS sind nicht Standard und nicht vorgesehen in HA. Nimm ein Dashboard, gestalte es mit den Hausmitteln von HA und dann geht alles ganz gut und schnell. Es sieht dann aber eben so aus, wie HA es vorgegeben hat.
Ein Handbuch für solche Spezialanpassungen wirst du auch nicht finden. Bei einem Auto steht ja auch nicht im Handbuch, wie man dieses zu einem Flugzeug umbaut.
Naja, mein Ansatz, den Statistik-Container klein zu machen war ja schon erfolgreich – bis auf die Karte an sich. Ist das so ein Problem?
Die Lösung 1 habe ich auch inzwischen gut hinbekommen – bis auf die Tatsache, dass die inneren Elemente noch den Rahmen haben, den ich partout nicht wegbekomme.
Beides Mal dasselbe: eigentlich kommt man vorwärts, und am Ende scheitert es dann an einer quasi auf den ersten Blick trivialen Eigenschaft, die so blöd implementiert wurde, dass da mit den normalen CSS-Elementen nicht beizukommen ist.
Hier mal mein Skript zu Variante 1 mit der Custom Card:
Aber für die Darstellung des monatlichen Verbrauches gibt es keine Lösung – oder zumindest keine, die man einfach so aus dem Ärmel schütteln kann. Und sowas ist dann frustrierend. Ich sitze jetzt schon den ganzen Abend dran und bin nicht wirklich zu einem Ziel gekommen. (Na gut, ich habe was gelernt … aber ich habe schon so viel gelernt …)
Dazu braucht’s kein Handbuch, denn wenn du die Generation “Handbuch” bist, denn kennst du die Formel für Energie in Kombination mit Leistung und Zeit.
Und in dem Verbrauchszähler musst du nix anderes eintragen als
a) den sensor der Leistung verbrät (oder auch liefert je nachdem)
und
b) die Zeit über die er die Leistung einsammelt und dir dann mittel
W = P * delta t … halt ein Ergebnis anzeigt.
Ich dachte dein Problem wäre WIE man es in der custom:button-card darstellt. Jetzt hab ich eher den Verdacht du hast gar keinen Verbrauchszählerwert den du darstellen könntest. Sondern besorgst dir den mittels CSS auf dubiosen Wegen für die du natürlich keinerlei Dokumentation finden wirst.
Was ich stark bezweifeln würde, egal wie alt du bist. Ausserdem schreibst du selbst das du wieder was gelernt hast, ist doch super, geht mir auch jeden Tag so, auch wenn ich dann doch schon zur Generation “Handbuch abgeheftet oder weggelegt” gehöre, und noch nicht ganz zur Generation “Handbuch direkt weggeschmissen weil braucht kein Mensch, ist in der Regel eh veraltet”.
Wenn es das auch nicht war, also der Verbrauchszähler, denn schreib bitte noch mal klar und deutlich was dir genau fehlt.
Was ich brauche: den monatlichen Verbrauch des Elektrogerätes am Shelly 1 PM Mini Gen 3 - fertig!
Ansatz 1: In die Statistik-Karte kann ich einfach die Entität eingeben und den Zeitraum und dann macht die Karte den Rest. Ich muss sie aber auf ein für mich passendes Format bekommen (kleiner, ohne Überschrift, evtl. der Wert als Entität selbst, um es in eine Kombikarte einzubauen) – nach allem was ich versucht und gelesen habe nicht möglich.
Ansatz 2: selbst errechnen. Da habe ich ein paar Threads zu gefunden und es erscheint mir sehr kompliziert, resp. habe ich keine Ahnung wie das gehen soll. Speichert der Shelly selbst die Werte oder liegen sie in einer Datenbank?
Ansatz 3: ganz neu von heute: Die TypeScript Datei der Standard-Kartenbeschreibung anpassen, eine neue .js daraus generieren und diese als my_custom_card ins System bringen und anwenden. Problem: Ich kann mit dem Editor ein Verzeichnis und eine Datei (in /www/) anlegen und diese Datei als Ressource mit dem System verbinden. Aber weder über einen Terminalbefehl noch beim Anlegen einer Karte wird diese Datei und ihr Verzeichnis gefunden, obwohl ich sie über einen URL-Link direkt im Browser aufrufen (lesen) kann. Sie ist da, dann aber doch wieder nicht …
Sieh es positiv: ich bin ganz neu hier und unbeleckt von irgendwelchen Altlasten. Ich bin der frische Wind der durch’s System weht, einen neuen Denkansatz hineinbringt. Sich nicht mit dem zufrieden gibt, was die Entwickler sich gedacht haben. Der oberflächenorientiert denkt und vorgeht. Der voraussetzt das etwas technisch geht, um es anzuwenden und in seinem Sinne zu gestalten.
Hmm, es klang am Anfang so, als würdest du nicht glücklich sein. Aber wenn du gerne Umwege und möglichst den schwierigsten aller Wege nimmst, okay . Dabei will ich aber eher nicht helfen.
Ziel: Die Shelly’s liefern den aktuellen Verbrauchswert in Watt, ich möchte eine Übersicht über den monatlichen Verbrauch in kWh. Das erscheint mir persönlich nicht besonders abstrus gedacht – oder wie seht ihr das? Ist das nicht eigentlich eine Grundanforderung an ein System wie HomeAssistant, dass Stromsensoren auslesen und übersichtlich darstellen kann?
Wege zum Ziel:
Die Statistik-Karte:
sie liefert schnell das gewünschte Ergebnis, kann aber nicht wirklich per CSS angepasst werden. Ich möchte aber nicht eine viel zu groß dimensionierte Karte mit zu viel redundanter Information auf meinem Dashboard haben. Am Besten einfach nur den Wert, um ihn in einer Schalt- oder Darstellungsfläche einzubauen.
Helfer:
Super Idee von euch! Aber: der Typ “Verbrauchszähler” summiert einfach die Watt auf. Wie jeder weiß - selbst wenn er wie ich nicht in Mathe aufgepasst hat – sind kWh die Fläche unter der Verbrauchskurve … vulgo das “Integral”. Die kann man berechnen und dazu hält HA ein Helferlein vom Typ “Integral” bereit. Schön und gut … aber das berücksichtigt nicht die bereits in der Datenbank gespeicherten Werte. Um diese mit zu berücksichtigen ist doch wieder ein Ausflug in die Raketenwissenschaften notwendig.
Aha, also auch einen Sensor geschnitzt mit dem Riemann-Integral. Aber der berücksichtigt ebend keine historischen Werte, die in der Datenbank schon sind wie das die Statistikkarte macht!
Wenn es keinen Sensor gibt bisher, der Werte in kWh bereitstellt, dann gibt es keine Statistik mit diesen Werten aus der Vergangenheit. Ego berechnet HA erst ab dem Moment die Werte mit dem Rieman Integral, ab dem dieser Sensor angelegt wurde. Das ist so und nicht zu ändern, ohne HA halb neu zu programmieren.
Ich habe den Shelly ja schon seit dem 10.1. über die Statistik-Karte im HA hängen! Und damals hat er den auf dem Shelly gespeicherten Gesamtverbrauch als ersten Wert in die Datenbank gespült, denn von dort aus ging es los - nicht bei 0 wie bei Herr Riemann.
Also gibt es bereits einen Sensor mit der Einheit kWh?
Ich verstehe irgendwie nicht, was das Problem ist. Wenn es bereits einen kWh-Sensor gibt, dann nimm den doch einfach. Mit einem Verbrauchszähler-Helfer kannst du den Gesamtverbrauch in Monats- oder Stundenverbrauch etc. aufsplitten und dann als einfache Kachel im Dashboard anzeigen.
Oder, wenn die dir Standardwerkzeuge nicht ausreichen, wäre vielleicht die Mini-Graph-Card als Erweiterung einen Blick wert.