Darstellung Sonnenbatterie

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

Vorheriges Thema - Nächstes Thema

stenny


Stonemuc

FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe


Stonemuc

FHEM aus Raspberry PI 3 B+, Haussteuerung auf EnOcean Basis, Tecalor THZ 404eco Wärmepumpe

yersinia

#289
Zitat von: mr_petz am 18 Januar 2023, 08:25:32Hier das Modul für FTUI3:
https://forum.fhem.de/index.php/topic,119440.msg1248379.html#msg1248379
und hier die Beschreibung mit älteren Modul für  FTUI3:
https://forum.fhem.de/index.php/topic,119440.msg1246690.html#msg1246690
Dank mr_petz ist die pvvis FTUI3 Version nun auch über die Regulären FHEM Update Menchanismen aktualisierbar: https://github.com/mr-petz/ftui/tree/addons
Thx @mr_petz und @OdfFhem für das repo



die aktuelle FTUI3-pvvis Version gibt es nur noch über das FTUI3 addons repo. Alle derzeit verfügbaren Parameter der component sind:
Zitat~~~ EINSTELLUNG PV-ANLAGE/ALLGEMEIN ~~~
pvmax: maximale Leistung der PV Anlage - dies ist ein fester Wert

[produce]: reading; Produktion der PV Anlage (der Wert wird zu einem positiven Wert konvertiert)

[feed]: reading; Einspeisung ins Stromnetz/an EVU; als Wert wird ein Wert >= 0 erwartet
[receive]: reading; Bezug aus Stromnetz/von EVU; als Wert wird ein Wert >= 0 erwartet
Alternativ: [feed-receive]: reading (wenn nur ein Reading für feed und receive zur Verfügung steht und anstelle von feed und receive zu nutzen); dabei gilt:
feed-receive => Wert > 0 (positiv) => Einspeisen ins Stromnetz/an EVU => wird feed zugeschrieben (receive ist damit 0)
feed-receive => Wert < 0 (negativ) => Verbrauch aus Stromnetz/vom EVU => wird zur Anzeige und weiteren Berechnung zum positiven konvertiert und receive zugeschrieben (feed ist damit 0)

[charge]: reading; Ladewert des Akkus; als Wert wird ein Wert >= 0 erwartet
[discharge]: reading; Entladung des Akkus; als Wert wird ein Wert >= 0 erwartet
Alternativ: [charge-discharge]: reading (wenn nur ein Reading für charge und discharge zur Verfügung steht und anstelle von charge und discharge zu nutzen); dabei gilt:
charge-discharge => Wert < 0 (negativ) => Akku entladen => wird zur Anzeige und weiteren Berechnung zum positiven konvertiert und discharge zugeschrieben (charge ist damit 0)
charge-discharge => Wert > 0 (positiv) => Akku laden => wird charge zugeschrieben (discharge ist damit 0)

unit-value optional; für die Einheit der Ent/Lade-Werte, zB:
unit-value="W"
Wenn nicht gesetzt wird auch keine Einheit gesetzt.

width: optional; Breite der Grafik (Standard ist 200px)

sun-icon: optional; andere icons für die Sonne => sun2 entspricht der Sonne von papa aus #123; pvsun entspricht dem panel und der Sonne von Shadow3561 aus #24; sun ist der Standardwert und muss nicht explizit gesetzt werden

[pv-prod-tdy]: reading, optional; heutiger PV-Ertrag (in kWh)

[pv-forecast]: reading, optional; voraussichtlicher heutiger PV-Ertrag (in kWh)

unit-sum: fester Wert, optional; setzt die Einheit für die Summen (zB kWh)

flow-threshold: fester Wert, optional; Schwellwert, ab dem der Energiefluss durch Animation und leuchtender Farbe visualisiert wird

[autarky]: reading, optional; Grad der Autarkie in % (Werte; 0 bis 100); wird dem AU-Wert zugeschrieben

[own-consumption]: reading, optional; Grad des Eigenverbrauchs in % (Werte; 0 bis 100); wird dem OC-Wert zugeschrieben

au-oc-type: optional; definiert die Anzeige von AU (autarky/Autarkie) und OC (own consumption/Eigenverbrauch) als circle (Kreise) (Standard; muss nicht explizit gesetzt werden) oder flow (Ladebalken)

~~~ EINSTELLUNGEN AKKU ~~~
has-no-battery: optional; wenn gesetzt wird der Akkustrang rechts ausgeblendet

[soc]: reading; Ladestand des Akkus (kann % aber auch Wh annehmen)

unit-soc optional; für die Einheit des Akkustands, zB:
unit-soc="%"
Wenn nicht gesetzt wird auch keine Einheit gesetzt.

batstep: optional; Grenzwerte für die Ladestandsanzeige des Akkus:
batstep="21,35,51,75,95"
Dabei ist 21 der untere Schwellenwert unter dem der Akku grau bleibt. Diese Definition entspricht:
0 bis 21 - Batterie ist ausgegraut
21 bis 35 - kein Balken
35 bis 51 - ein Balken
51 bis 75 - zwei Balken
75 bis 95 - drei Balken
ab 95 - vier Balken
Vorgegebener Standard ist
batstep="1,24,49,74,95"
Hinweis: die Darstellung bezieht sich auf soc werte mit %; wenn soc nicht als % vorliegt, muss batstep auch entsprechend angepasst werden, dies kann zB (in Wh oder kWh) so aussehen
batstep="400,1200,2500,3800,5600"
batstep="0.4,1.2,2.5,3.8,5.6"

batmax: fester Wert, optional; Hausakkukapazität in Wh (muss gesetzt werden wenn Ent/Ladezeitschätzung angezeigt werden soll -> siehe calc-bat-remain-time); batmax sollte die gleiche Einheit haben wie produce; man sollte Einheitenmischung Wh vs kWh vermeiden

calc-bat-remain-time: optional; wenn gesetzt, wird die (stark vereinfachte) geschätzte Ent/Ladezeit des Akkus basierend auf dessen Kapazität berechnet und angezeigt; dafür muss zwingend batmax gesetzt sein

calc-bat-remain-soc-not-percent: optional; sollte gesetzt werden wenn calc-bat-remain-time gesetzt ist und soc nicht als prozentualer Wert vorliegt; dies kann pvvis nicht selbst ermitteln.

no-bat-gradient: optional; der Batteriestand wird als Farbverlauf in Abhängigkeit des Ladezustands angezeigt - wenn der Akku leer ist färben sich die Balken rot und gehen bei Ladung bis voll sukzessive in grün über. Dabei ändern nur die Ladebalken die Farbe, die Batterie selbst zeigt immer noch an ob sie geladen (grün) oder entladen (rot) wird (grau wenn weder ge/entladen wird). Wer diesen Farbverlauf nicht haben möchte, setzt no-bat-gradient. Der Farbverlauf basiert auf den battstep-Schwelelnwerte.

has-grid-charge: optional; aktiviert das Laden des Akkus vom Netz und entsprechende Werte können mittels [grid-charge]="DEVICE:READING" übergeben werden.

[grid-charge]: reading, optional; übernimmt die Werte der Ladeleistung des Akkus aus dem Netz; muss gesetzt werden wenn has-grid-charge genutzt wird

~~~ EINSTELLUNGEN GRID/NETZ ~~~
grid-icon: optional; ersetzt das Kabel-Netzicon; valide Werte sind: pylon, pylon2 (von papa aus #123 ) oder cable (Standard; muss nicht explizit gesetzt werden)

has-no-grid-feed: optional; blendet die Netzeinspeisung (PV=>Netz) aus

[grid-feed-tdy]: reading, optional; bisherige/heutige Einspeisung ins Stromnetz

[grid-consume-tdy]: reading, optional; bisherige/heutige Entnahme aus dem Stromnetz

~~~ EINSTELLUNGEN HAUS/EIGENVERBRAUCH ~~~
home-icon: optional; das Haus-Icon lässt sich ersetzen durch folgende potentielle Werte: house (Standard; muss nicht explizit gesetzt werden), plug (Stecker) oder socket (Steckdose)

no-wb-in-home: optional; zieht den Wallboxverbrauch vom Hausverbrauch ab

[home-consume-tdy]: reading, optional; bisheriger Tages-Stromverbrauch

~~~ EINSTELLUNGEN WALLBOX ~~~
has-no-wallbox: optional; wenn gesetzt, wird der Wallbox-Teil ausgblendet

[wb-feed]: reading, optional; nimmt den Wert des derzeitigen Ladens des Autos auf (entspricht papas data-lp1pow - Ladung des Auto). Ist der Wert <= 0 wird der Strang und das Auto ausgegraut. Ist der Wert > 0 wird das Auto grün und der flow gelb eingefärbt. Muss nicht gesetzt werden wenn has-no-wallbox gesetzt ist.

[car-soc]: reading, optional; Ladestand des Akku vom eAuto

unit-car-soc: fester Wert, optional; setzt die Einheit für den Ladestand des eAuto

[car-temp]: reading, optional; Innentemperatur des eAuto in °C



die FTUI2 widget Versionen finden sich in diesen Beiträgen:
Zitat von: mr_petz am 07 Januar 2023, 11:29:53von @papa
https://forum.fhem.de/index.php/topic,119440.msg1231479.html#msg1231479

von @fred_feuerstein
https://forum.fhem.de/index.php/topic,119440.msg1244211.html#msg1244211
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | 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

tomhead

Hallo, hat sich nochmal jemand die Mühe gemacht, die vielen tollen Änderungen aus der FTUI3 Version in die FTUI2 Version zu übernehmen?
Speziell die Restzeitanzeige bis zur vollständigen Ladung / Entladung des Speichers würde mich interessieren.
Danke und Grüße

tomhead

#291
Ich habe jetzt mal angefangen, die Rest-Lade oder Entladezeit des Speichers in der FTUI2 Version einzubauen. Dazu habe ich die Speichergröße über batt-max definiert. Funktioniert erst mal grundsätzlich, aber ich hänge gerade noch an 2 Dingen:
1. wie kann ich die Einheit "h" für die Restzeit bzw % für den SOC in der Anzeige ergänzen? Dachte, das geht, wenn ich in den Zeilen
<text id="bat-soc-txt" x="570" y="415" style="fill: #ccc; font-size: 38px; text-anchor: start;">0</text> \
      <text id="bat-remain-txt" x="590" y="200" style="fill: #ccc; font-size: 38px; text-anchor: middle;">0</text> \

die 0 am Ende durch die Einheit h oder % ersetze. Klappt aber nicht :-(

2. wie kann ich die Zeit immer auf eine halbe Stunde runden? Dachte, das geht über Math.round und dann *10 und /10, aber das funktioniert nicht.

Wäre toll, wenn jemand helfen könnte. Bin da nicht so der Profi ;-)

Im Anhang die erweiterte Version.
Danke und Grüße

Edit: hat sich erledigt, ich hab rausgefunden wie es geht.

tomhead

#292
Erst mal Danke an alle Beteiligten für dieses tolle Modul und die vielen Ideen die hier eingeflossen sind.
Da ich (noch) FTUI2 nutze und einen Fronius GEN24 Wechselrichter sowie einen Fronius Wattpiloten zum Laden meines E-Autos habe, habe ich das Modul nun etwas an meine Bedürfnisse angepasst. Der Fronius liefert z.B. nur einen Wert für die HVS-Ladeleistung, die entweder positiv oder negativ ist. Basis waren die Version von papa, maestro84 und Fred_feuerstein.
Vielleicht mag sie ja jemand auch noch verwenden, der ebenso die o.g. Fronius Komponenten nutzt. Die Anbindung des Wattpiloten habe ich über ioBroker zu FHEM gemacht, da es leider für FHEM noch kein passendes Modul dafür gibt. Den Ladezustand meines BMW i3 lese ich auch über das BMW ioBroker Modul aus.
Wenn der i3 über den Wattpiloten angesteckt ist (und z.B. auf Überschussladen wartet), erscheint das Ladekabel in der Anzeige und das Fzg.symbol wechselt von grau auf grün. Wenn der Ladevorgang startet, wechselt das Fzg.symbol auf blau.

Der FTUI Code sieht so aus:

<div data-type="pvvis" data-device="Fronius_Wechselrichter"
data-get="Stromzaehler_Modbus:power"
data-feed="Stromzaehler_Modbus:power"
data-lp1="fronius_wattpilot.0.carConnected:Statenum"
data-lp1pow="fronius_wattpilot.0.power:state"
data-carsoc="bmw.0.WBYxxxxx.properties.chargingState.chargePercentage:state"
data-carrange="bmw.0.WBYxxxxx.properties.electricRange.distance.value:state"
data-produce="PV_Gesamt_Leistung:PV_Leistung"
data-sumproduceday="FroniusWEB:statKW_PV_ENERGYACTIVE_GesamtDay"
data-sumgridday="Stromzaehler_Modbus:statKW_total_consumptionDay"
data-sumfeedday="Stromzaehler_Modbus:statKW_total_feedDay"
data-soc="Fronius_Wechselrichter:PowerFlow_Inverters_1_SOC"
data-chargedischarge="Fronius_Wechselrichter:PowerFlow_Site_P_Akku"
data-pv-max="6000"
data-batt-max="10240"
data-autarky="Fronius_Wechselrichter:Autarkiegrad_heute"
data-pvhome="Fronius_Wechselrichter:PowerFlow_Site_P_Load"
data-width="240" data-height="240" class="centered">
</div>


Viele Grüße

LuGu

#293
Zitat von: yersinia am 29 Januar 2023, 22:10:40
Alternativ: [feed-receive]: reading (wenn nur ein Reading für feed und receive zur Verfügung steht und anstelle von feed und receive zu nutzen); dabei gilt:
feed-receive => Wert > 0 (positiv) => Einspeisen ins Stromnetz/an EVU => wird feed zugeschrieben (receive ist damit 0)
feed-receive => Wert < 0 (negativ) => Verbrauch aus Stromnetz/vom EVU => wird zur Anzeige und weiteren Berechnung zum positiven konvertiert und receive zugeschrieben (feed ist damit 0)

Gibt es auch ein [receive-feed]?

Mein Zähler liefert:
Wert > 0 (positiv) => bei Verbrauch aus Stromnetz/von EVU
Wert < 0 (negativ) => bei Einspeisung ins Stromnetz/an EVU

Oder muss ich mir ein userreading mit (Wert * -1) bauen?


Edit: Konnte ich schon selbst lösen. [feed-receive]="reading | multiply(-1)"

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

LuGu

Wie berechnet ihr [autarky] und [own-consumption]?

Ich habe mir eine ReadingsGroup angelegt, die die Daten von den einzelnen Zählern einsammelt.

einspeiseZaehler:EnergyDay 0.010 2023-03-13 14:45:14
solarZaehler:EnergyDay 0.790 2023-03-13 17:53:10
stromZaehler:EnergyDay 8.844 2023-03-13 21:02:56

In der ReadingsGroup habe ich mir ein userreading angelegt, dass own-consumption rechnen soll.

attr LeistungenTag userReadings ownConsumption {(ReadingsNum("solarZaehler","EnergyDay",0) - ReadingsNum("einspeiseZaehler","EnergyDay",0)) * 100 / ReadingsNum("solarZaehler","EnergyDay",0)}


Das funktioniert aber nicht. Es wird kein userReadings angelegt.
Ist ein userReadings in einer ReadingsGroup nicht möglich?

Hat jemand einen Tipp für mich?

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

mr_petz

Hi LuGu,
für eine Berechnung in/aus einer readingsgroup ab hier mal lesen:
https://forum.fhem.de/index.php/topic,42742.msg348503.html#msg348503

LG mr_petz

tomhead

Hallo LuGu,

ich habe das zwar nicht über eine readings group gelöst, aber ich habe im Device des Wechselrichters ein user reading angelegt, dass sich die notwendigen readings (auch aus einem anderen Device) zusammensucht und die Autarkie berechnet:
Autarkiegrad_heute:statPowerFlow_Inverters_1_E_TotalDay.* {(ReadingsVal("Fronius_Wechselrichter","statPowerFlow_Inverters_1_E_TotalDay",0)/1000)/(ReadingsVal("Fronius_Wechselrichter","statPowerFlow_Inverters_1_E_TotalDay",0)/1000+ReadingsVal("Stromzaehler_Modbus","statKW_total_consumptionDay",0))*100;;}
Vielleicht hilft dir ja das weiter.
VG

LuGu

#297
Danke tomhead

Zitat von: tomhead am 14 März 2023, 22:37:58
ich habe das zwar nicht über eine readings group gelöst, aber ich habe im Device des Wechselrichters ein user reading angelegt, dass sich die notwendigen readings (auch aus einem anderen Device) zusammensucht und die Autarkie berechnet:

Ich dachte userreading kann nur mit readings aus dem eingenen device rechnen.
Ich werde es noch mal versuchen.

Edit: Ja, hat funktioniert. Danke noch mal.

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt

Eisix

Hallo,

Nutzt hier einer die Readings aus dem SolarForecast Modul?
Kriege da immer Fehler im Browser angezeigt.

Gruß
Eisix

LuGu

Moin mr_petz

Zitat von: mr_petz am 14 März 2023, 22:03:30
Hi LuGu,
für eine Berechnung in/aus einer readingsgroup ab hier mal lesen:
https://forum.fhem.de/index.php/topic,42742.msg348503.html#msg348503

LG mr_petz

Leider bin ich da nicht fündig geworden, auch nicht, wenn ich alle Links der Links verfolgen.
Ich habe gelernt, wie ich in ReadingsGroups rechnen kann z.B. Summen in eine neue Zeile schreiben, aber nicht wie es mit userReadings in ReadingsGroups funktioniert.

Aber danke, konnte das Problem ja anders lösen.

Gruß LuGu
FHEM mit RPi3 (Visu über FTUI)
HMCCU mit piVCCU3 / MQTT2 mit zigbee2mqtt