FHEM - Anwendungen > Solaranlagen

Nachtverbrauch berechnen für neue Solaranlage

<< < (8/8)

Nogga:
Wegen dem SQL-Query: Technisch gesehen macht es nichts anderes als sich für jeden Tag jeweils den kleinsten und den größten Wert der SOC zu holen. Das heisst Dein beobachteter Fehler muss in den Daten liegen. Zieh Dir doch spaßeshalber mal einfach alle Datensätze für den Tag und das Reading und schau manuell nach...

Bezügl. Deiner Batterielogik:

Ich glaube das ist ein Trugschluss mit der großen Batterie: Ich bin jetzt kein Batterie-Experte, aber vereinfacht gibt es 2 Wege der Batterie-Degradation:
1. Alterung (kalendärlich)
2. durch Nutzung = Zyklen

Du magst durch Deine Ladestrategie vielleicht die Alterung herauszögern, aber eine Batterie ist ja nicht zum "Speichern" da, sondern zum Laden und Entladen (sonst nutzt Dir die Batterie nicht).
Meine Recherchen haben ergeben, dass beim heutigen Preisniveau von Batterien ein sinnvoller (wirtschaftlicher) Einsatz nur dann ist, wenn Du mindestens ungefähr 200 Zyklen pro Jahr hast.
Bei weniger "altert" Dir die Batterie weg und Du ziehst keinen Nutzen daraus (s.o. Laden/Entladen, nicht speichern).

Aus meiner Sicht macht es mehr Sinn die Batterie lieber einen Ticken kleiner zu dimensionieren und später beim Ersatz (wenn die Batterien bestimmt deutlich günstiger sind), dann größer zu kaufen...

Ach und heutige Batterien sollten auch problemlos >10 Jahre halten (aber natürlich mit weniger Kapazität... und das ist genau der Knackpunkt der kalendarischen Alterung...)

Und ja, auch das persönliche Experimentieren/der Ehrgeiz ist durchaus legitim - ist bei mir ja auch so...

ch.eick:
EDIT: Die Lösung liegt in dem Problem, dass das VALUE Feld auch als TEXT definiert ist, da es im FHEM ja Strings aufnehmen muss.
Um dann die max/min Funktion zu verwenden muss VALUE zuerst als dezimal Wert umgewandelt werden.


--- Code: ---max(cast(VALUE decimal(5,2))) AS VALUE

--- Ende Code ---




--- Zitat von: Nogga am 16 November 2021, 12:28:47 ---Wegen dem SQL-Query: Technisch gesehen macht es nichts anderes als sich für jeden Tag jeweils den kleinsten und den größten Wert der SOC zu holen. Das heisst Dein beobachteter Fehler muss in den Daten liegen. Zieh Dir doch spaßeshalber mal einfach alle Datensätze für den Tag und das Reading und schau manuell nach...

--- Ende Zitat ---
Wo soll da der Fehler in den Daten liegen.
Min und Max gehen auf die selbe Spalte, da ist eher die Min/Max Funktion der Übeltäter.

Min in der Spalte ist an dem Tag 6 und Max ist 20

--- Code: ---select * from history where DEVICE='WR_1' and READING='Act_state_of_charge' and TIMESTAMP>'2019-12-14 00:00:00' and TIMESTAMP<'2019-12-15 00:00:00';
+---------------------+--------+------------+-------+---------------------+-------+------+
| TIMESTAMP           | DEVICE | TYPE       | EVENT | READING             | VALUE | UNIT |
+---------------------+--------+------------+-------+---------------------+-------+------+
| 2019-12-14 00:00:16 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 9.00  |      |
| 2019-12-14 00:01:16 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 8.00  |      |
<snip>
| 2019-12-14 12:31:11 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 16.00 |      |
| 2019-12-14 12:34:14 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 16.00 |      |
<snip>
| 2019-12-14 12:45:07 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 19.00 |      |
| 2019-12-14 12:55:06 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 19.00 |      |
| 2019-12-14 12:57:13 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 20.00 |      |
| 2019-12-14 12:58:12 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 19.00 |      |
| 2019-12-14 12:59:07 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 19.00 |      |
| 2019-12-14 13:00:14 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 18.00 |      |
| 2019-12-14 13:01:13 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 18.00 |      |
<snip>
| 2019-12-14 19:56:28 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 7.00  |      |
| 2019-12-14 23:16:58 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 7.00  |      |
| 2019-12-14 23:17:48 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 6.00  |      |
| 2019-12-14 23:58:59 | WR_1   | MODBUSATTR | NULL  | Act_state_of_charge | 6.00  |      |
+---------------------+--------+------------+-------+---------------------+-------+------+

--- Ende Code ---
Da können wir gerne in PN weiter forschen, wenn Du magst.
Ich stelle gerade eh auf arm64 um und habe gerade eine neu MySQL 8.0.26 Datenbank im Docker Container gestartet.
Dann kann ich das da auch nochmal testen.

VG
   Christian

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln