Darstellung Sonnenbatterie

Begonnen von dennis_n, 11 März 2021, 10:33:34

Vorheriges Thema - Nächstes Thema

fred_feuerstein

#165
(FTUI2)
Super! Vielen Dank.
wieder was gelernt :)

Jetzt gefällt es mir.

Anbei die aktuelle Version.

//edit: nochmal neue Version angehängt. Habe noch abgefangen, dass der berechnete Wert "pvhomeval" auch mal kleiner 0 sein kann. Falls dem so ist wird er als 0 angezeigt.
Diese Konstellation kommt bei mir manchmal vor, wenn es bei wenig Produktion, Wechsel von Batterie- zu Netzstrom oder umgekehrt gibt.
Passt also.
Gruß, Fred

NEU: FHEM auf Raspberry PI 5, OS: Bookworm, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art
ALT: FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp)

iron.eagle

Hallo,

eine Superdarstellung für die PV-Anlage. Vielen Dank.
Wie kann man die Schriftgröße anpassen? Zum Lesen muss man an mein Tablet schon sehr nah rangehen.
size="XXX" hatte ich schon ohne Effekt probiert.

Torsten

fred_feuerstein

#167
Welche Version nutzt du? Beim FTUI2 geht es so:

Die einzelnen Textvariablen kannst du hier verändern :

<text id="pv-home-txt" x="210" y="230" style="fill: #ccc; font-size: 38px; text-anchor: end;">0</text> \
      <text id="grid-home-txt" x="210" y="400" style="fill: #ccc; font-size: 38px; text-anchor: end;">0</text> \
      <text id="pv-bat-txt" x="390" y="230" style="fill: #ccc; font-size: 38px; text-anchor: start;">0</text> \
      <text id="bat-home-txt" x="390" y="355" style="fill: #ccc; font-size: 38px; text-anchor: start;">0</text> \
      <text id="bat-soc-txt" x="595" y="425" style="fill: #ccc; font-size: 38px; text-anchor: middle;">%</text> \
      <text id="pv-grid-txt" x="330" y="451" style="fill: #ccc; font-size: 38px; text-anchor: start;">0</text> \
      <text id="home-car-txt" x="25" y="471" style="fill: #ccc; font-size: 38px; text-anchor: start;">0</text> \
      <text id="produce-txt" x="390" y="6" style="fill: #ccc; font-size: 38px; text-anchor: start;">0</text> \
      <text id="verbrauch-txt" x="0" y="190" style="fill: #ccc; font-size: 38px; text-anchor: middle;">0</text> \


Jeweils den Wert font-size

Die komplette Grösse der Anzeige Grafik und somit auch der Texte stellst Du im ftui device ein.



Gruß, Fred

NEU: FHEM auf Raspberry PI 5, OS: Bookworm, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art
ALT: FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp)

mr_petz

Achtung. Hier sollte jeder seine verwendete Version für FTUI2 oder FTUI3 dazu schreiben!
In diesen Thread werden beide Versionen supportet...

LG

fred_feuerstein

Stimmt. Habe es bei meiner Antwort ergänzt.
ich nutze ja FTUI2
Gruß, Fred

NEU: FHEM auf Raspberry PI 5, OS: Bookworm, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art
ALT: FHEM auf Raspberry PI 3B+ im 7Zoll TouchDisplay Gehäuse, OS: Bullseye, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp)

iron.eagle

@fred_feuerstein: Danke.

Ich nutze zwar FTUI3, aber mit den IDs habe ich die entsprechenden Stellen in der CSS-Datei gefunden.

mr_petz

@yersinia
Nur ein Vorschlag.
Du könntest bezüglich der Anfrage zur Textgröße von @iron.eagle alle <text> Tags aus den <g> Tags rausholen, die x und y der Textposition anpassen und in den Klassen die font-size´s löschen.
Damit kann man dann mit den FTUI3 Klassen Bsp.: class="size-2" die Größe für alle Texte mitgeben...
Die font-size: 75%; in .pvvis-txt-unit-value könntest du beibehalten.
Wenn du dafür Hilfe benötigst sage einfach Bescheid...

LG mr_petz

yersinia

@iron.eagle
Hast du width gesetzt?
Eigentlich gehe ich davon aus, dass durch setzen des width Attributs das SVG entsprechend skaliert - dementsprechend auch die Texte größer werden.
Du kannst zum Testen die font-size Definitionen aus der pvvis.component.css auskommentieren (mit /* am Anfang und */ am Ende der Zeile), als Beispiel für den Produktionstext:
.pvvis-produce-txt {
  text-anchor: start;
/*  font-size: 20px; <-- hier */
  fill: var(--pvvis-color-grey, #ccc);
}

Und dann zB class="size-2" in der component setzen.

@mr_petz
mir ist noch nicht klar, wie ich einen default vorgeben kann, welcher bei Bedarf überschrieben werden kann. Man kann stand heute durchaus class="size-2" setzen nur ignoriert die css Hierarchie dies. Wenn ich font-size aus den Klassen rausnehme (bzw auf % setze), muss mMn immer class="size-n" gesetzt werden.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

mr_petz

#173
Zitat von: yersinia am 12 November 2022, 14:30:36
.....
@mr_petz
mir ist noch nicht klar, wie ich einen default vorgeben kann, welcher bei Bedarf überschrieben werden kann. Man kann stand heute durchaus class="size-2" setzen nur ignoriert die css Hierarchie dies. Wenn ich font-size aus den Klassen rausnehme (bzw auf % setze), muss mMn immer class="size-n" gesetzt werden.

@yersinia
Ich meinte so wie im Anhang.
Entweder mit --text-size oder size="1.5" oder class="size"
(einwenig vom label abgekupfert...)
Standard ist hier 1.5rem.
Alle Texttags ins svg geschoben und x, y angepasst...
Schau es dir an. ;)

LG mr_petz

EDit: irgendwann ist natürlich alles oversized...
Anhang entfernt...

yersinia

#174
charmante Lösung @mr_petz. ich frage mich, nur ob man es so kompliziert machen muss - FTUI bringt ja ein font-size mit und CSS vererbt es entsprechend - und man kann es mit class="size-xx" entsprechend für pvvis übersteuern. Möglichereise ist der Weg via max() und relativen Angaben eleganter:
font-size: max(20px, 100%);
Anbei eine Version, die alle font-sizes derart definiert.

@iron.eagle: jetzt kannst du entsprechend der gewünschten Textgröße die class setzen, zB
class="size-4"
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

mr_petz

OK. Bei deiner Version werden in erster Linie nur Sonne und Haus vergrößert.
Hier mit size-7 getestet...
Deswegen habe ich die <text> aus den <g> geholt, sonst ziehen die class="size-x" nicht für alle Elemente.
Übergröße ist weiterhin möglich. Ich schau mal was man noch machen kann...
LG mr_petz

mr_petz

#176
@yersinia
Neuer Versuch/Vorschlag :)
Die <text> bleiben wo sie sind und die Fontsize´s werden mit calc() in der css gesetzt/berechnet.
Hinzugekommen ist text-size als Attribute.
Wenn nix angegeben wird der Standard gesetzt.
Wenn text-size>35 angegeben dann wird auf Standard gesetzt, ansonsten die Größe berechnet.
Bsp:

text-size="30px"

Damit hebelst du ein stylen und die Sizeklassen aus. Eine Übergröße ist nicht möglich.
LG mr_petz

Edit: Ich habe gerade clamp() entdeckt.
Da hast du als erstes ein min, danach den soll/variabler/wunsch Wert und als letztes den max Wert.
Das wird dir denke ich eher gefallen...
Das könntest du dann z.Bsp. so gestalten in der css:

font-size: clamp(1.25rem, var(--text-size), 2rem);

wenn du es so machst:

font-size: clamp(1.25rem, 20px, 2rem);

dann hilft das aber nix. die 20px müssen ansprechbar sein...
Musst du aber für alle font-size einen eigenen var definieren...
Es sei denn du holst die <text> aus den <g>... (was einfacher wäre und funktioniert...)

und wenn du die font-size (size-x) der class mitbenutzen möchtest könntest du sie so auslesen:

window.getComputedStyle(this, null).getPropertyValue('font-size');


oder mit FTUI3 mitteln:

getStylePropertyValue('font-size', this);

dafür musst du aber noch das importieren:

import { getStylePropertyValue } from '../../modules/ftui/ftui.helper.js';


Du musst nur aufpassen... es wird in px ausgelesen...
Da könnte ich noch eine Version bauen...
clamp() Version angehangen...
Mit class="size-x" die Größe angeben...

Anhang entfernt...

docolli

#177
Auf Anregung von @yersinia möchte ich hier eine Erweiterung seiner Darstellung, basierend auf dem Code vom 06-11-2022 vorstellen.

Ich habe vom eAuto als FHEM Reading sowohl Akkuladestand als auch Innentemperatur, diese können beim Auto-Symbol mit angezeigt werden. Dazu gibt es zwei neue Parameter

Zitat[carsoc]: reading, optional; Ladestand des Akku vom eAuto (kann % aber auch Wh annehmen, siehe unit-soc)

[cartemp]: reading, optional; Innentemperatur des eAuto in °C

Der Hausakku zeigt nun die Zeitdauer (max. 99,9h) bis zur vollständigen Füllung bzw. kompletter Entleerung, basierend auf der aktuellen Akku-Entnahme, an. Die Zeit bis der Akku voll ist steht bei Beladung oben, bis er leer ist bei Entladung unten, ansonsten ist die Zeit ausgeblendet. Dazu muss die Kapazität des Hausakku in kWh übergeben werden.
Ich finde das ganz hilfreich, um Abends planen zu können, ob noch genügend Strom im Hausakku für z.B. einen Spülmaschinenlauf ist. Reicht die Zeit bis zum nächsten Morgen locker, bis die PV wieder produziert, dann kann man auch den Verbraucher starten, ohne Nachts dann in Netzbezug zu kommen und am nächsten Tag aber dann Überschuß ins Netz zu speisen.

Zitat[batmax]: reading, optional; Hausakkukapazität in Wh

Der untere Schwellwert, ab dem der Energiefluss durch Animation und leuchtender Farbe visualisiert wird, kann selbst gewählt werden. Gefällt mir persönlich besser, als das reading durch eine Schwellwertfunktion auf "0" zu setzen, da man damit den geringen Wert angezeigt bekommt, er aber nicht visuell gleichberechtigt mit viel größeren Energieflüssen dargestellt wird.

Zitatflow-threshold: optional; Schwellwert in W, ab dem der Energiefluss durch Animation und leuchtender Farbe visualisiert wird

Wenn in FHEM per userreading und integral Funktion die Tagessummen von PV-Produktion, Hausverbrauch, Netzentnahme und Netzeinspeisung berechnet werden, so können diese nun auch dargestellt werden.
Zur besseren Planung des Tages, ob man voraussichtlich genug Überschußstrom hat, um z.B. Waschmaschine, Trocker oder Geschirrspüler laufen zu lassen, hole ich mir von Proplanta die Einstrahlung und rechne über die qm PV Fläche und Leistung pro qm und einen Faktor den voraussichtlichen Ertrag aus: ReadingsVal ("WetterProplanta","fc0_rad",0)*63.2*0.198*0.80.

Zitat[pvproducedtoday]: reading, optional; heutiger PV-Ertrag in kWh

[pvforecast]: reading, optional; voraussichtlicher heutiger PV-Ertrag in kWh

[homeconsumedtoday] reading, optional; bisheriger Tages-Stromverbrauch in kWh

[gridintoday] reading, optional; bisherige Einspeisung ins Stromnetz in kWh

[gridouttoday] reading, optional; bisherige Entnahme aus dem Stromnetz in kWh

Ich stelle nur mal den Screenshot zur Diskussion, wenn Interesse besteht, poste ich auch den Code dazu.

yersinia

#178
[FTUI3]
@docolli: cool. Danke fürs Teilen! Ist auch weniger überfrachtet als ich befürchtet habe. Wenn hier mehr Interesse besteht, übernehme ich das in die 'offizielle' Version.

@mr_petz: clamp ist, glaube ich, genau das, was ich gesucht habe - so kann ich bei den vier Textarten (Loadflows, Ladestand Batterie, Produce & Home)  Mindest- und Maximalgrößen übergeben und der User kann noch mit class="size-xx" begrenzt darauf einwirken.
Danke auch für die Vorarbeit des Rauslösens der <text> aus den groups - das macht es doch einfacher und einheitlicher. Vor allem wird jetzt die font-size auch besser vererbt imho.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

habl

Zitat von: yersinia am 14 November 2022, 10:28:00
@docolli: cool. Danke fürs Teilen! Ist auch weniger überfrachtet als ich befürchtet habe. Wenn hier mehr Interesse besteht, übernehme ich das in die 'offizielle' Version.

zeige Interesse  8)