Darstellung Sonnenbatterie

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

Vorheriges Thema - Nächstes Thema

habl

Hallo yersinia,

wie bei mir mit Batterie funktioniert soweit alles.

Wenn Du noch Lust hast, einen kleinen Wunsch hätte ich noch:
Wenn die Batterieanzeige grau werden sollte, habe ich dickes Problem mit einem tiefentladenen Akku 8)
Meine Batterie schaltet sich im Winter schon bei ~20% ab. Schön wäre es, wenn das Icon dann ebenfalls ausgegraut angezeigt wird.

Daher mein Wunsch entweder:
a) bei battstep ein Wert hinzufügen, das bei unterschreiten die Batterieanzeige ausgegraut wird oder
b) ein Reading auswerten, meine Batterie-Device liefert ein Reading "Anbindung" das entweder "Stromnetz" oder "Getrennt" annehmen kann, wobei über ein Mapping die Werte sicherlich angepasst werden können.

aber nur wenn Du langeweile hast ::)

VG
  habl

Nogga

Die letzte Version funktioniert!

Meine Definition:


<ftui-pvvis
                            [pvmax]="10000"
                            [charge-discharge]="my_rct_device:power_battery | multiply(-1)"
                            [feed-receive]="my_rct_device:power_grid_total"
                            [soc]="my_rct_device:battery_soc"
                            [produce]="my_rct_device:power_solarCombined"                           
                            grid-icon="pylon"
                            width="400px"
                            >
                        >
                        </ftui-pvvis>


Das ist mit einem RCT-System mit Batterie...

Nogga

Wenn ich noch einen Wunsch äußern darf:
Bei meiner Anlage wird in jedem Reading immer ein bisschen was angezeigt. Z.b. Bei reinem Batteriebetrieb sind trotzdem z.B. noch 2 Watt aus dem Netz.

Könnte man zu jedem Wert einen Schwellwert definieren bis zum diesem das Reading auf 0 in der Anzeige gesetzt wird? Und zwar immer absolut.

Also so in etwa Pseudocode:


feed = (abs(feed) <= feed-threshold) ? 0 : feed;

mr_petz

#63
@Nogga
Hinweis.
pvmax braucht keine eckigen Klammern, da es ein fixer Wert zum Berechnen der angezeigten Werte ist.
Aber schön das es funktioniert.
LG mr_petz

Nachtrag:
pvmax berechnet die Geschwindigkeit der angezeigten Stränge je nach Benutzung.

yersinia

#64
Danke nochmals an alle fürs Testen und die Rückmeldungen. :)

Zitat von: Nogga am 07 Juli 2022, 22:10:53Bei meiner Anlage wird in jedem Reading immer ein bisschen was angezeigt. Z.b. Bei reinem Batteriebetrieb sind trotzdem z.B. noch 2 Watt aus dem Netz.

Könnte man zu jedem Wert einen Schwellwert definieren bis zum diesem das Reading auf 0 in der Anzeige gesetzt wird? Und zwar immer absolut.
Das Problem eines Schwellenwert ist, dass er je nach Anlage, Anwendungsfall und reading variabel ist. Demnach müsste quasi für jedes Reading ein Schwellwert zur Verfügung gestellt werden, was ich, bei der derzeitigen Anzahl der Parameter und in Anbetracht des Mehrwerts, nicht für Sinnvoll erachte. Ich bin eher dazu geneigt, das ganze entweder über FTUI3 eigene Funktionen (sprich über pipes in der Reading-Definition) oder als userReadings im FHEM-Device selbst abwickeln zu lassen.

Zitat von: habl am 07 Juli 2022, 20:20:36Wenn Du noch Lust hast, einen kleinen Wunsch hätte ich noch:
Wenn die Batterieanzeige grau werden sollte, habe ich dickes Problem mit einem tiefentladenen Akku 8)
Meine Batterie schaltet sich im Winter schon bei ~20% ab. Schön wäre es, wenn das Icon dann ebenfalls ausgegraut angezeigt wird.

Daher mein Wunsch entweder:
a) bei battstep ein Wert hinzufügen, das bei unterschreiten die Batterieanzeige ausgegraut wird
Interessant, das mit der Tiefentladung hab ich null bedacht - aber im battstep etwas flexibler sein zu können kommt mir bekannt vor (looking submissively at you mr_petz). Ich habe battstep um einen unteren Schwellenwert erweitert, das heisst battstep muss mit genau 5 Werten Kommagetrennt definiert werden, als Beispiel:
battstep="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

(Standardwerte sind übrigens
battstep="1,24,49,74,95")

Die anhängende Version zum Testen.

Edit: eine Frage habe ich noch - bisher sind alle werte Einheitenfrei. Gibt es Bedarf (optional?) Einheiten hinter den Werten zu sehen (%, W, etc)? Wenn ja, welche wären es?
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

habl

moin yersinia,

das mit dem ausgrauen funktioniert, vielen Dank!

ZitatEdit: eine Frage habe ich noch - bisher sind alle werte Einheitenfrei. Gibt es Bedarf (optional?) Einheiten hinter den Werten zu sehen (%, W, etc)? Wenn ja, welche wären es?
Bei mir werden alle Werte in Watt angezeigt, bis auf Batterie SOC in %.
Mir ist es eigentlich egal, ob eine Einheit angehangen wird. Aber wenn, dann würde ich eher zu kW tendieren, damit der Text nicht zu lang wird.

Übrigens, gerade ist ein Sonne/Wolkenmix und es sieht richtig cool aus wie das Sonneicon immer wieder dunkel/heller wird  :)

VG
  habl

Shadow3561

@yersinia

wenn du magst kannst du das "home-consume-txt" und "pv-produce-txt" ja noch variabel machen.

has-home-consume-txt=true/false"
has-pv-produce-txt="true/false"

oder so ähnlich

Mit freundlichen Grüßen

Nogga

Für diejenigen, die meine Idee vom "Threshold" gut finden, habe ich das als Helper implementiert - danke für den Tipp yersinia!

Vor der FTUI-JS Definition folgende Zeile einfügen:


<head>
    <script>
        // Pipe-helper to set any Values lower than threshold to Zero
        const thresholdZero = value => input => Math.abs(Number(input)) <= value ? input * 0 : input;
    </script>
    <script src="ftui.js"></script>


Dann könnt Ihr per Pipe angeben, bis zu welchem Wert etwas genullt werden soll, weil irrelevant. Ist natürlich nur der Optik wegen:


<ftui-pvvis
                            pvmax="10000"
                            [charge-discharge]="my_rct_device:power_battery | multiply(-1) | thresholdZero(10)"
                            [feed-receive]="my_rct_device:power_grid_total | multiply(-1) | thresholdZero(15)"
                            [soc]="my_rct_device:battery_soc"
                            [produce]="my_rct_device:power_solarCombined | thresholdZero(20)"                           
                            grid-icon="pylon"
                            width="400px"
                            class="fixed"
                            style="left: 600px;"
                        ></ftui-pvvis>

In meinem Fall werden z.B. die Werte für das Netz (Bezug/Einspeisen) bis 15 Watt auf 0 gesetzt - erst darüber werden sie "durchgelassen".
Analog für den PV-Etrag erst ab 20 Watt...



octek0815

Zitat von: yersinia am 08 Juli 2022, 09:14:04
Danke nochmals an alle fürs Testen und die Rückmeldungen. :)
Das Problem eines Schwellenwert ist, dass er je nach Anlage, Anwendungsfall und reading variabel ist. Demnach müsste quasi für jedes Reading ein Schwellwert zur Verfügung gestellt werden, was ich, bei der derzeitigen Anzahl der Parameter und in Anbetracht des Mehrwerts, nicht für Sinnvoll erachte. Ich bin eher dazu geneigt, das ganze entweder über FTUI3 eigene Funktionen (sprich über pipes in der Reading-Definition) oder als userReadings im FHEM-Device selbst abwickeln zu lassen.
Interessant, das mit der Tiefentladung hab ich null bedacht - aber im battstep etwas flexibler sein zu können kommt mir bekannt vor (looking submissively at you mr_petz). Ich habe battstep um einen unteren Schwellenwert erweitert, das heisst battstep muss mit genau 5 Werten Kommagetrennt definiert werden, als Beispiel:
battstep="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

(Standardwerte sind übrigens
battstep="1,24,49,74,95")

Die anhängende Version zum Testen.

Edit: eine Frage habe ich noch - bisher sind alle werte Einheitenfrei. Gibt es Bedarf (optional?) Einheiten hinter den Werten zu sehen (%, W, etc)? Wenn ja, welche wären es?

Moin,

ich würde W und % favorisieren.

LG

Shadow3561

@yersinia

Leider haben der Hausverbrauch und PV-Home-Flow nicht immer die gleichen Werte (siehe Bild).

Ich habe bei mir jetzt die Math.abs() durch Math.round() ersetzt. Jetzt scheint es zu stimmen.

Mit freundlichen Grüßen

mr_petz

#70
@Shadow3561

yersinia hatte extra Math.abs() eingebaut, da andere Nutzer mit negativen Werten kamen und Math.abs() diese auf einen positiven Wert setzt für die weitere Berechnung.
Math.abs() ist nur dafür da und nicht zum runden.
Wenn dann könnte yersinia Bsp. Math.round(Math.abs(this.produce) - this.charge - this.feed) kombinieren.
Ich denke aber, dass der Hausverbrauch auch bei Math.round() unterschiedlich sein kann. Da brauch nur die Kommastelle einmal <0.5 und einmal >0.5 sein der Einspeisungen zum Hausverbrauch...

LG mr_petz

Shadow3561

Dann bleibt mir wohl nur die Option userReadings im Device selbst zu definieren und dann die angezeigten Werte in pvvis nicht zu berechnen sondern nur aus dem Device zu übernehmen.
Es sieht auf alle Fälle seltsam aus wenn die PV 1 Watt zu wenig anzeigt.

Mit freundlichen Grüßen

mr_petz

Könntest du bitte mal die jetzigen Werte aus dem Device zeigen?
Sind das unterschiedliche Devices die deine Watt zählen?

LG

Shadow3561

Ich hoffe du meinst die Readings aus FHEM

READINGS:
     2022-07-09 17:21:50   AC_Lifetime_Energy_production_kWh 7061.03
     2022-07-09 17:22:00   AC_current_W    752.8
     2022-07-09 17:21:55   ActiveStateCode On - SearchingMPPT
     2022-07-09 17:22:00   DC_current_A    2.05
     2022-07-09 17:22:01   DC_current_V    371.7
     2022-07-09 17:21:52   DC_current_W    762.2
     2022-07-09 17:10:59   Device_model    SE3500H-RW000BNN4
     2022-07-09 17:22:01   Eigenverbrauch  4.87
     2022-07-09 17:22:01   Ersparnis_Einkauf 1.58
     2022-07-09 17:22:01   Ersparnis_Gesamt 2.72
     2022-07-09 17:22:01   Ersparnis_Verkauf 1.14
     2022-07-09 17:22:01   Hausverbrauch   465.8
     2022-07-09 17:22:01   Hausverbrauch_uitable -465.80
     2022-07-09 17:21:53   Heat_Sink_Temperature 34.96
     2022-07-09 17:11:10   Inverter_map    single.phase
     2022-07-09 17:10:49   Manufacturer    SolarEdge
     2022-07-09 17:12:26   Meter_Device_model SE-MTR-3Y-400V-A
     2022-07-09 17:12:13   Meter_Manufacturer SolarEdge
     2022-07-09 17:11:05   Modbus_Address  5
     2022-06-24 19:35:22   Momentanleistung 0
     2022-07-09 17:22:01   Momentanleistung_Bezug 0
     2022-07-09 17:22:01   Momentanleistung_Bezug_FTUI3 0
     2022-07-09 17:22:01   Momentanleistung_Einspeisung 287
     2022-06-24 19:35:22   Momentanleistung_feed 607
     2022-07-09 17:21:56   Power           287
     2022-07-09 17:22:01   Power_uitable   -287
     2022-07-09 17:22:01   Produktion      753
     2022-07-09 17:11:00   SW_Version_Inverter_CPU 4.9.33
     2022-07-09 17:11:24   Serialnumber   ........
     2022-07-09 17:22:01   TagesErtrag     15.92
     2022-07-09 17:22:01   TagesExport     11.05
     2022-07-09 17:22:01   TagesImport     3.49
     2022-07-09 17:22:01   TagesImport_Kosten 1.13
     2022-07-09 17:22:01   TagesImport_uitable -3.49
     2022-07-08 22:59:00   kWh_last_day    7045.11
     2022-07-08 22:50:00   kWh_last_day_exported 3783.862
     2022-07-08 23:59:59   kWh_last_day_imported 5877.884
     2022-07-08 21:59:30   last_day_ertrag 16.72
     2022-07-08 21:59:00   last_day_exported 9.20
     2022-07-08 23:59:59   last_day_imported 0.00
     2022-07-09 12:06:09   state           opened
     2022-07-09 17:21:57   total_Energy_Exported_kWh 3794.917
     2022-07-09 17:21:57   total_Energy_Imported_kWh 5881.372

mr_petz

#74
Ok ja ich meinte natürlich Fhem Device :D
Ich schau mal durch ob es an den Berechnungen im Modul oder an den Werten die kommen liegt.
Mal schauen ob ich was finde....

LG

Edit:
sind das noch deine Werte?->

[feed]="SE3500H:Momentanleistung_Einspeisung"
[produce]="SE3500H:Produktion"
pvmax="3500"
[receive]="SE3500H:Momentanleistung_Bezug"
[home]="SE3500H:Hausverbrauch"