Photovoltaik Eigenverbrauch,Bilanz,Prognose (Kostal Plenticore; KSEM; BYD HV)

Begonnen von ch.eick, 07 Oktober 2020, 16:09:12

Vorheriges Thema - Nächstes Thema

ch.eick

Zitat von: papa am 09 Juni 2022, 07:13:23
Ich mach die Akkuregelung nicht über MaxSOC sondern mit MaxChargePower. Das Ziel ist, den Akku erstmal auf 40% zu bringen und dann bis 15:00 Uhr voll zu machen. Dazu wird die MaxChargePower soweit reduziert, dass die 100% etwa gegen 15:00 Uhr erreicht werden. Außerdem wird noch geprüft, ob die vorhergesagte PV-Energy bis zum Ende des Tages mindestens 5x so groß ist, wie die noch zu ladende Energie. Wird das unterschritten, wird wieder mit voller Leistung geladen.
Im Winter geht es dann genau anders herum. Es wird MaxDischargePower auf 0 gestellt, bis der Akku bei 80% ist. Dann darf bis 30% entladen werden.
Das wird in der Speicher Steuerung über die Schwellwerte der Prognose gemacht.
Auch das MaxChargePower wird im WR_1_Speicher_1_ExternControl verwendet.

Im Winter, wenn die Prognose schlecht ist, oder auch im Sommer bei schlechtem Wetter gibt es kein Mittagshoch. Daduch wird dann sofort am morgen mit dem kompletten Überschuss geladen.
Sollte es ein Mittagshoch gibt, wid zuerst auf 3* MinSOC direkt geladen, danach wird bis 9:00 Uhr gewartet und es beginnt ein Laden mit niedriger Leistung bis 30 %.
Ab dem berechneten Mittagshoch kann man entweder eine Ladeleistung vorgeben, oder man lässt sie dynamisch berechnen. Je nach ende des Mittagshochs ist der Speicher dann voll, oder der Rest wird noch ohne weitere Kontrolle aufgefüllt.
Die MaxSOC Limitierung beeinflusst das ganze dann noch zusätzlich, damit der Speicher nicht ständig bei 100% ist, falls er für den Sommer überdimensioniert sein sollte.
Sollte der Speicher 100% erreicht haben, wird mit der MaxSOC Limitierung auf 95% begrenzt, dadurch wird nicht permanent nachgeladen, was in der Graphik nicht schön aussieht :-)

Laut EFT-Service ist eigentlich die Ladegeschwindigkeit egal und auch nicht schädlich. Somit kann man mit voller Leistung eine kurze Zeit laden oder auch langsam mit weniger Leistung.

Das mit dem MaxDischargePower hat es bei den ersten Firmware Ständen noch nicht gegeben, es wäre jedoch eine Überlegung wert. Allerdings müsste man das über die Plenticore API zyklisch wiederholen, da es dort das Dead Man Prinzip gibt.

Wie sieht es bei der Modbus Steuerung aus, wenn Du einfach nichts mer senden würdest? Nach meinen früheren Tests ging der Plenticore dann nicht mehr in die Eigensteuerung, z.B. die "inteligente Speicher Steuerung".
Mir war da wichtig, dass beim Ausfall von FHEM, oder beim Verzichten auf SmartHome, wenn ich es mal nicht mehr betreiben kann, alles im Haus einfach mit dem Default weiter läuft. Dann fehlt zwar einiges an Luxus und die Heizung oder die PV-Anlage ist nicht mehr überoptimiert, aber ein normaler Elektriker sollte es trotzdem warten können.

@papa hast Du eigentlich mein Konstrukt übernommen, oder Dir nur einiges davon rausgesucht? Ich meine Du hattest mit dem Plenticore schon vor mir begonnen und wolltest nicht mehr umbauen?

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Mumpitz

Zitat von: Mumpitz am 09 Juni 2022, 06:25:47
Ich weiss noch das ich vom UWZ Modul eine Gewitterwarnung erhalten habe. Leider kann ich nicht mehr nachschauen wieviel vorher das gewesen ist. Ich zeichne die Daten nicht auf und die Pushmeldungen löschen sich ebenfalls.
Wäre allenfalls ein Ansatz. Sobald Gewitter Meldung, maxSoc Kontrolle abbrechen...

Aktuell haben wir grad so eine Unwetterwarnung:

Internals:
   CountryCode CH
   DEF        CH 3162 1200
   FUUID      5c6afec8-f33f-915e-e3ba-eb2b3bddcbb3ea23
   FVERSION   77_UWZ.pm:v3.1.0-s25306/2021-12-06
   INTERVAL   1200
   INTERVALWARN 0
   NAME       Unwetterzentrale
   NOTIFYDEV  global,Unwetterzentrale
   NR         149
   NTFY_ORDER 50-Unwetterzentrale
   PLZ        3162
   STATE      Warnungen: 1
   TYPE       UWZ
   URL        https://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=UWZCH3162
   VERSION    v3.1.0
   OLDREADINGS:
   READINGS:
     2022-06-09 10:29:21   WarnCount       1
     2022-06-09 10:29:21   WarnUWZLevel    3
     2022-06-09 10:29:21   WarnUWZLevel_Color orange
     2022-06-09 10:29:21   WarnUWZLevel_Str Warnstufe Orange (Unwetterwarnung)
     2022-06-09 10:29:21   Warn_0_AltitudeMax 9000
     2022-06-09 10:29:21   Warn_0_AltitudeMin -10
     2022-06-09 10:29:21   Warn_0_Creation 1654760100
     2022-06-09 10:29:21   Warn_0_Creation_Date 09.06.2022
     2022-06-09 10:29:21   Warn_0_Creation_Time 09:35
     2022-06-09 10:29:21   Warn_0_End      1654763700
     2022-06-09 10:29:21   Warn_0_End_Date 09.06.2022
     2022-06-09 10:29:21   Warn_0_End_Time 10:35
     2022-06-09 10:29:21   Warn_0_EventID  16547605350000
     2022-06-09 10:29:21   Warn_0_Hail     1
     2022-06-09 10:29:21   Warn_0_IconURL  https://www.unwetterzentrale.de/images/icons/gewitter-orange.gif
     2022-06-09 10:29:21   Warn_0_LongText Am 09.06.2022 um 09:35 Uhr wurde ein Gewitter der Stufe Orange registriert, dessen Schwerpunkt sich im Bereich Neukirch (Egnach) befindet. Es kommt aus West und bewegt sich mit einer Geschwindigkeit von 22 km/h in östliche Richtung. Es sind lokal Starkregen und stürmische Böen möglich. Punktuell ist auch kleinkörniger Hagel nicht auszuschließen. Die Blitzaktivität ist gering. Folgende Orte befinden sich auf der weiteren Zugbahn des Gewitters: Salmsach (09:35), Egnach (09:35), Arbon (09:35), Roggwil TG (09:35), Muolen (09:35), Amriswil (09:35), Steinebrunn (09:35), Romanshorn (09:35), Horn (09:38), Goldach (09:46), Rorschach (09:50), Rorschacherberg (09:56), Altenrhein (10:00), Wasserburg (Bodensee) (10:14), Lindau (Bodensee) (10:20). Angegeben ist die Ankunftszeit des Gewitters in dem Ort.
     2022-06-09 10:29:21   Warn_0_Severity 10
     2022-06-09 10:29:21   Warn_0_ShortText Gewitter mit Starkregen, (kleiner Hagel und stürmische Böen sind möglich)
     2022-06-09 10:29:21   Warn_0_Start    1654760100
     2022-06-09 10:29:21   Warn_0_Start_Date 09.06.2022
     2022-06-09 10:29:21   Warn_0_Start_Time 09:35
     2022-06-09 10:29:21   Warn_0_Type     7
     2022-06-09 10:29:21   Warn_0_Type_Str Gewitter
     2022-06-09 10:29:21   Warn_0_levelName alert_warn_orange
     2022-06-09 10:29:21   Warn_0_uwzLevel 3
     2022-06-09 10:29:21   Warn_0_uwzLevel_Str Warnstufe Orange (Unwetterwarnung)
     2022-06-09 10:29:20   currentIntervalMode normal
     2022-06-09 10:29:21   durationFetchReadings 1.00
     2017-01-05 13:37:38   ftuiUwzText     <div class="top-space-min"><div class="row"><div class="col-2-1"><img src="http://www.unwetterzentrale.de/images/icons/schnee-orange.gif" width="50" height="50" alt="Unwetterwarnung" /></div><div class="top-space-mid col-3-4">Für Lagen unterhalb von 600 Metern: Ab Mittwochnachmittag ist zeitweise warnrelevanter Schneefall in den Tälern zu erwarten. Dabei kommen Neuschneemengen zwischen 5 und 15 cm in 12 Stunden, örtlich auch mehr zustande. Donnerstagabend und -nacht lässt der Schneefall nach.</div></div><div class="newline">&nbsp </div><div class="row"><div class="col-2-1"><img src="http://www.unwetterzentrale.de/images/icons/strassenglaette-orange.gif" width="50" height="50" alt="Unwetterwarnung" /></div><div class="top-space-mid col-3-4">Streckenweise gefährliche Fahrbahnverhältnisse durch Schneefall.</div></div><div class="newline">&nbsp </div></div>
     2022-06-09 10:29:21   lastConnection  27 values captured in 1.00 s
     2022-06-09 10:29:21   state           Warnungen: 1
   fhem:
     LOCAL      0
   helper:
Attributes:
   DbLogExclude .*
   group      Unwetterradar
   humanreadable 1
   room       hidden
   verbose    2


Vielleicht wäre damit was zu machen?

ch.eick

Zitat von: Mumpitz am 09 Juni 2022, 10:47:12
Aktuell haben wir grad so eine Unwetterwarnung:

<snip>

Vielleicht wäre damit was zu machen?
Hast Du mal einen Link für den Browser?
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick


ch.eick

Zitat von: Mumpitz am 09 Juni 2022, 11:24:39
https://wiki.fhem.de/wiki/UWZ
Ich meinte zur Alarm Seite, wo man das im Browser aufbereitet sehen kann :-)

EDIT: Hab's schon gefunden.

Es wäre toll, wenn Du die Kriterien für eine rechtzeitige Reaktion heraus finden könntest.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

papa

Zitat von: ch.eick am 09 Juni 2022, 10:05:59
Das mit dem MaxDischargePower hat es bei den ersten Firmware Ständen noch nicht gegeben, es wäre jedoch eine Überlegung wert. Allerdings müsste man das über die Plenticore API zyklisch wiederholen, da es dort das Dead Man Prinzip gibt.

Wie sieht es bei der Modbus Steuerung aus, wenn Du einfach nichts mer senden würdest? Nach meinen früheren Tests ging der Plenticore dann nicht mehr in die Eigensteuerung, z.B. die "inteligente Speicher Steuerung".
Das funktioniert super. Wenn ich das Notify auf inactive stelle, greift wieder die Standardregelung des Plenticore.
Zitat von: ch.eick am 09 Juni 2022, 10:05:59
@papa hast Du eigentlich mein Konstrukt übernommen, oder Dir nur einiges davon rausgesucht? Ich meine Du hattest mit dem Plenticore schon vor mir begonnen und wolltest nicht mehr umbauen?
Ich habe mir nur die Rosinen rausgepickt - Deine Lösung ist mir einfach zu komplex. Außerdem kann ich den BYD HVS nicht per Web auslesen. Bin da komplett auf die Plenticore Register angewiesen. Für die Prognose nutzt ich das SolarForecast Modul.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

ch.eick

Zitat von: papa am 09 Juni 2022, 11:44:04
Ich habe mir nur die Rosinen rausgepickt - Deine Lösung ist mir einfach zu komplex. Außerdem kann ich den BYD HVS nicht per Web auslesen. Bin da komplett auf die Plenticore Register angewiesen. Für die Prognose nutzt ich das SolarForecast Modul.
Den HVS muss man nicht auslesen, es wird alles über den Plenticore gesteuert. Beim BYD HV habe ich nur begonnen die weiteren Informationen zu Zellspannungen und Temperaturen auszulesen. Das wird aber nicht verwendet und sollte als Nachweis für eine Leistungsdegeneration dienen, damit man vor Ablauf der Gewährleistung mit BYD ins Gespräch gehen kann.
Gibt es zum SolarForecast mitlerweile eine Beschreibung für einen strukturierten Einstieg? Heiko hatte ja meine Solar_forecast() mit eingebaut, aber dann hat sich das ganze doch ziemlich von einem Forecast weg entwickelt und hat noch die Eigenverbrauchsoptimierung und Graphische Darstellung mit aufgenommen. Das wurde dann für mich persönlich zuviel in einem Modul, was ich lieber getrennt haben würde. Deshalb bin ich lieber bei dem modularen Aufbau geblieben, bei dem man besser Rosinen picken kann :-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Zitat von: Mumpitz am 09 Juni 2022, 11:24:39
https://wiki.fhem.de/wiki/UWZ
Ich habe es jetzt mal probehalber bei mir auch eingebunden. Jetzt fehlen halt noch die möglichen Kriterien, nach denen man eine Entscheidung treffen könnte.
Wenn Du da mal die readings mit in die DbLog schreiben würdest könnten wir uns das mal genauer anschauen.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

andi11

bei mir kommen über Wunderground auch nur aktuelle Werte, aber evl könnte es zumindest ein 2tes Abbruchkriterium liefern?

ch.eick

Zitat von: andi11 am 10 Juni 2022, 19:41:36
bei mir kommen über Wunderground auch nur aktuelle Werte, aber evl könnte es zumindest ein 2tes Abbruchkriterium liefern?
Ich habe bereits auch Donnerwetter vorbereitet.
Bei wunderground frage ich drei Stationen in der Nähe ab und steuere die Rollos damit, das klappt super. Man kann das auch ohne eine Registrierung verwenden, da ich direkt solch eine Seite mit httpmod parse.

Aktuelle Werte sind leider mindestens 6 Stunden zu spät, um proaktiv reagieren zu können.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Zitat von: ch.eick am 09 Juni 2022, 12:54:50
Ich habe es jetzt mal probehalber bei mir auch eingebunden. Jetzt fehlen halt noch die möglichen Kriterien, nach denen man eine Entscheidung treffen könnte.
Wenn Du da mal die readings mit in die DbLog schreiben würdest könnten wir uns das mal genauer anschauen.
Moin zusammen,
ich stelle mal die Typen von UWZ zur diskussion siehe hier Definitionen
Die mit "<<<" könnten meiner Meinung nach etwas mit weniger Leistung zu tun haben.

Warn_0_Type_Str - Art des Unwetters (text)
1 - unbekannt
2 - Sturm/Orkan   <<<
3 - Schneefall   <<<
4 - Regen   <<<
5 - Extremfrost
6 - Waldbrandgefahr
7 - Gewitter   <<<
8 - Glätte
9 - Hitze
10 - Glatteisregen   <<<
11 - Bodenfrost

Dazu dann noch die Warnstufen, wobei ich ab Stufe 3 mir eine reduktion in der Prognose vorstelle.

Warnstufen
0 Stufe Grün (keine Warnung)
1 Stufe Dunkelgrün (Wetterhinweise)
2 Stufe Gelb (Vorwarnung für Unwetterwarnung)
3 Warnstufe Orange (Unwetterwarnung)   <<<
4 Warnstufe Rot (Unwetterwarnung)
5 Warnstufe Violett (Unwetterwarnung)

Dann müsste noch das hier ausgewertet werden

Warn_0_Start - Begin der Warnung
Warn_0_Start_Date - Startdatum der Warnung
Warn_0_Start_Time - Startzeit der Warnung
Warn_0_End - Warn Ende
Warn_0_End_Date - Enddatum der Warnung
Warn_0_End_Time - Endzeit der Warnung
Warn_0_Severity - Schwere des Unwetters (0 kein Unwetter, 12 massives Unwetter)
Warn_0_Hail - Hagelwarnung (1|0)


Nun wärern einige echte Beispiele mit den Kombinationen der readings recht hilfreich. Hat da bereits jemand mal etwas im Logging?

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Moin,
ich habe jetzt die ersten Warnungen vom Unwetterdienst, die auch ins DbLog aufgenommen sind.
Dabei klammere ich jetzt durationFetchReadings, currentIntervalMode und lastConnection aus, da das nicht von belang ist.
In der Datenbank wird der Warn_0_LongText jedoch auf Grund der Länge und der Feldgröße in der Datenbank abgeschnitten.
Für eine rein technische Auswertung bräuchte man den ja auch nicht. Auch Warn_0_IconURL, Warn_0_ShortText und Warn_0_EventID, Warn_0_levelName könnte nach meiner Meinung direkt weg fallen.
Mit Warn_0_AltitudeMin/Max könnte man gegen die Altitude der Anlage noch einige Warnungen, z.B. für Schneefall ausklammern.

READINGS:
     2022-06-20 09:05:53   WarnCount       1
     2022-06-20 09:05:53   WarnUWZLevel    2
     2022-06-20 09:05:53   WarnUWZLevel_Color gelb
     2022-06-20 09:05:53   Warn_0_AltitudeMax 9000
     2022-06-20 09:05:53   Warn_0_AltitudeMin -10
     2022-06-20 09:05:53   Warn_0_Creation 1655643862
     2022-06-20 09:05:53   Warn_0_End      1655730000
     2022-06-20 09:05:53   Warn_0_EventID  16556437029005
     2022-06-20 09:05:53   Warn_0_Hail     0
     2022-06-20 09:05:53   Warn_0_IconURL  https://www.unwetterzentrale.de/images/icons/gewitter-gelb.gif
     2022-06-20 09:05:53   Warn_0_LongText Ab Sonntagnacht ist mit Gewittern zu rechnen. Aus Südwest zieht ein Gewitter auf. Dabei besteht die Gefahr von Starkregen und Sturmböen. Montagvormittag und -mittag lässt die Schauer- und Gewitterneigung wieder nach.
     2022-06-20 09:05:53   Warn_0_Severity 7
     2022-06-20 09:05:53   Warn_0_ShortText Gewitter.
     2022-06-20 09:05:53   Warn_0_Start    1655683200
     2022-06-20 09:05:53   Warn_0_Type     7
     2022-06-20 09:05:53   Warn_0_levelName alert_forewarn_orange
     2022-06-20 09:05:53   Warn_0_uwzLevel 2
     2022-06-20 09:05:53   currentIntervalMode normal
     2022-06-20 09:05:53   durationFetchReadings 0.00
     2022-06-20 09:05:53   lastConnection  18 values captured in 0.00 s
     2022-06-20 09:05:53   state           Warnungen: 1

Der Effect der Warnung ist im Diagramm von 07:15 - 08:45 zu erkennen, da hat es eigentlich nur geregnet.
Durch den Forecast kann man ja sehr schön sehen, das der DWD am Vormittag auch ziemlich gut die Rad1h Werte gedämpft hat. ab 15:00 Uhr wird es dann etwas besser werden und danach kommt der Abfall der PV-Leistung am Nachmittag. Ich werde jetzt die Kurve weiter verfolgen und dann hier im Verlauf der Zeit austauschen.
Durch den Zeitraum der Warnung könnte man jetzt höchstens die Prognose etwas stärker nach unten drücken, dazu müsste sich jedoch ein Faktor aus WarnUWZLevel, Warn_0_Hail, Warn_0_Severity und Warn_0_uwzLevel ergeben. Hieraus käme dann das erste Kriterium für Warn_0_Type = 7 = Gewitter .

EDIT: Zusätlich hatte ich ja auch noch die Prognose mit Vormittags/Nachmittags als reading aufsummiert.

Solar_Calculation_fc0_afternoon 46388
Solar_Calculation_fc0_morning 15663
Solar_Calculation_fc0_day 62051

Hierbei ist dann Nachmittag/Vormittag=Faktor ein Wert um 1 ist ausgeglichen.
schlechter Nachmittag: 17106/23339 = 0,73
schlechten Vormittag : 46388/15663 = 2,96


Wie ist da Eure Meinung?

VG
   Christian

Und hier noch der Auszug aus der Datenbank, etwas bereinigt. Die Zeiten sind in UNIX Time angegeben.

mysql> select * from history WHERE DEVICE='Unwetterzentrale' AND TIMESTAMP > '2022-06-19 00:00:00' ORDER BY TIMESTAMP;
+---------------------+------------------+------+-------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------+------+
| TIMESTAMP           | DEVICE           | TYPE | EVENT | READING               | VALUE                                                                                                                           | UNIT |
+---------------------+------------------+------+-------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------+------+
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | state                 | Warnungen: 4                                                                                                                    |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_0_Creation       | 1655464891                                                                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_0_End            | 1655676000                                                                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_0_EventID        | 16551784063592.9                                                                                                                |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_0_LongText       | Am Wochenende sind hochsommerliche Verh▒ltnisse zu erwarten. Die Temperaturen steigen teils deutlich ▒ber 30 Grad, so dass die  |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_0_ShortText      | Gebietsweise hohe, am Wochenende gebietsweise sehr hohe Waldbrandgefahr.                                                        |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_0_Start          | 1655463600                                                                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_1_AltitudeMax    | 600                                                                                                                             |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_1_Creation       | 1655486545                                                                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_1_End            | 1655661600                                                                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_1_EventID        | 16554861763287.5                                                                                                                |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_1_IconURL        | https://www.unwetterzentrale.de/images/icons/temperatur-orange.gif                                                              |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_1_LongText       | F▒r Lagen unterhalb von 600 Metern: Leichte bis moderate Hitzebelastung bei H▒chstwerten zwischen 30 und 33 Grad.               |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_1_ShortText      | Unterhalb von 600 Metern: Leichte bis moderate Hitzebelastung; 30-33 ▒C.                                                        |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_1_Start          | 1655542800                                                                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_1_Type           | 9                                                                                                                               |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_2_AltitudeMax    | 500                                                                                                                             |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_2_Creation       | 1655488320                                                                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_2_EventID        | 16554872455126.1                                                                                                                |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_2_levelName      | notice_warn_red                                                                                                                 |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_2_LongText       | F▒r Lagen unterhalb von 500 Metern: Durch viel Sonnenschein und subtropischer Luft herrscht starke Hitzebelastung bei H▒chstwe  |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_2_Severity       | 5                                                                                                                               |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_2_ShortText      | Unterhalb von 500 Metern: Starke Hitzebelastung; 30-35 ▒C.                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_2_Start          | 1655550000                                                                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_3_AltitudeMax    | 200                                                                                                                             |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_3_Creation       | 1655489400                                                                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_3_End            | 1655658000                                                                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_3_EventID        | 16554889536935.1                                                                                                                |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_3_levelName      | notice_warn_violet                                                                                                              |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_3_LongText       | F▒r Lagen in den Niederungen unterhalb von 200 Metern: Durch ganztags sehr viel Sonneneinstrahlung und subtropische Luftmassen  |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_3_Severity       | 6                                                                                                                               |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_3_ShortText      | Unterhalb von 200 Metern: starke bis extreme Hitzebelastung; 37-39 ▒C.                                                          |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | Warn_3_Start          | 1655553600                                                                                                                      |      |
| 2022-06-19 00:05:49 | Unwetterzentrale | UWZ  |       | WarnCount             | 4                                                                                                                               |      |


| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | state                 | Warnungen: 5                                                                                                                    |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_AltitudeMax    | 9000                                                                                                                            |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_AltitudeMin    | -10                                                                                                                             |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_Creation       | 1655643780                                                                                                                      |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_End            | 1655730000                                                                                                                      |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_EventID        | 16556437029005                                                                                                                  |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_Hail           | 0                                                                                                                               |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_IconURL        | https://www.unwetterzentrale.de/images/icons/gewitter-gelb.gif                                                                  |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_levelName      | alert_forewarn_orange                                                                                                           |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_LongText       | Ab Sonntagnacht ist mit Gewittern zu rechnen. Aus S▒dwest zieht ein Gewitter auf. Dabei besteht die Gefahr von Starkregen und S |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_Severity       | 7                                                                                                                               |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_ShortText      | Gewitter.                                                                                                                       |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_Start          | 1655683200                                                                                                                      |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_Type           | 7                                                                                                                               |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | Warn_4_uwzLevel       | 2                                                                                                                               |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | WarnCount             | 5                                                                                                                               |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | WarnUWZLevel          | 2                                                                                                                               |      |
| 2022-06-19 15:35:53 | Unwetterzentrale | UWZ  |       | WarnUWZLevel_Color    | gelb                                                                                                                            |      |
| 2022-06-19 17:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_Creation       | 1655464800                                                                                                                      |      |
| 2022-06-19 17:05:53 | Unwetterzentrale | UWZ  |       | Warn_4_Creation       | 1655643862                                                                                                                      |      |


| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | state                 | Warnungen: 4                                                                                                                    |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_AltitudeMax    | 9000                                                                                                                            |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_Creation       | 1655643862                                                                                                                      |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_End            | 1655730000                                                                                                                      |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_EventID        | 16556437029005                                                                                                                  |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_IconURL        | https://www.unwetterzentrale.de/images/icons/gewitter-gelb.gif                                                                  |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_levelName      | alert_forewarn_orange                                                                                                           |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_LongText       | Ab Sonntagnacht ist mit Gewittern zu rechnen. Aus S▒dwest zieht ein Gewitter auf. Dabei besteht die Gefahr von Starkregen und S |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_Severity       | 7                                                                                                                               |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_ShortText      | Gewitter.                                                                                                                       |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_Start          | 1655683200                                                                                                                      |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_Type           | 7                                                                                                                               |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | Warn_3_uwzLevel       | 2                                                                                                                               |      |
| 2022-06-19 19:05:53 | Unwetterzentrale | UWZ  |       | WarnCount             | 4                                                                                                                               |      |


| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | state                 | Warnungen: 2                                                                                                                    |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_AltitudeMax    | 9000                                                                                                                            |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_Creation       | 1655643862                                                                                                                      |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_End            | 1655730000                                                                                                                      |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_EventID        | 16556437029005                                                                                                                  |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_IconURL        | https://www.unwetterzentrale.de/images/icons/gewitter-gelb.gif                                                                  |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_levelName      | alert_forewarn_orange                                                                                                           |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_LongText       | Ab Sonntagnacht ist mit Gewittern zu rechnen. Aus S▒dwest zieht ein Gewitter auf. Dabei besteht die Gefahr von Starkregen und S |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_Severity       | 7                                                                                                                               |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_ShortText      | Gewitter.                                                                                                                       |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_Start          | 1655683200                                                                                                                      |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_Type           | 7                                                                                                                               |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | Warn_1_uwzLevel       | 2                                                                                                                               |      |
| 2022-06-19 20:05:53 | Unwetterzentrale | UWZ  |       | WarnCount             | 2                                                                                                                               |      |


| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | state                 | Warnungen: 1                                                                                                                    |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_Creation       | 1655643862                                                                                                                      |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_End            | 1655730000                                                                                                                      |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_EventID        | 16556437029005                                                                                                                  |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_IconURL        | https://www.unwetterzentrale.de/images/icons/gewitter-gelb.gif                                                                  |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_levelName      | alert_forewarn_orange                                                                                                           |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_LongText       | Ab Sonntagnacht ist mit Gewittern zu rechnen. Aus S▒dwest zieht ein Gewitter auf. Dabei besteht die Gefahr von Starkregen und S |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_Severity       | 7                                                                                                                               |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_ShortText      | Gewitter.                                                                                                                       |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_Start          | 1655683200                                                                                                                      |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_Type           | 7                                                                                                                               |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | Warn_0_uwzLevel       | 2                                                                                                                               |      |
| 2022-06-20 00:05:53 | Unwetterzentrale | UWZ  |       | WarnCount             | 1                                                                                                                               |      |
+---------------------+------------------+------+-------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------+------+
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Hallo zusammen,
heute hat es eine sehr schöne korrektur der Prognose vom DWD gegeben.
Die grüne Linie ist fc_0 und das rote ist der Forecast von gestern.

VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Moin,
leider konnte ich bisher aus den Unwetterwarnungen noch keine Trigger für die Prognose ableiten.

VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

majestro84

Zitat von: ch.eick am 14 Januar 2022, 10:38:50
Guten Morgen zusammen,
hier kommt dann nun auch die Quartalsauswertung, die im stateFormat des WR_1_API Devices bereits schlummert.
Da das SQL SELECT ziemlich groß ist wird es hier jetzt in zwei Schritte geliefert.
Bitte seht zu, dass vorher der Jahres Report läuft, dann sind wesentliche Dinge bereits erledigt. Auch die Datenpflege aus dem vorherigen Post ist eine Voraussetzung, da ansonsten eventuell nicht alles angezeigt wird.

Das RAW vom LogDBRep_Statistic_previous_Quarter
Hier ist bereits eine @offset Variable des SELECT beinhaltet und die Variablen §device§ und §reading§, die durch das DbRep in dem SELECT ergenzt werden.

defmod LogDBRep_Statistic_previous_Quarter DbRep LogDB
attr LogDBRep_Statistic_previous_Quarter DbLogExclude .*
attr LogDBRep_Statistic_previous_Quarter allowDeletion 0
attr LogDBRep_Statistic_previous_Quarter comment Version 2022.01.14 10:00
attr LogDBRep_Statistic_previous_Quarter device WR_1_API
attr LogDBRep_Statistic_previous_Quarter reading SW_Statistic%_Year,Statistic_EnergyHomeBat_Year EXCLUDE=%Autarky%,%Rate%,%NoBat%
attr LogDBRep_Statistic_previous_Quarter room System
attr LogDBRep_Statistic_previous_Quarter sqlCmdVars SET @offset:=  (   CASE WHEN MONTH(CURRENT_DATE) IN (1,4,7,10) THEN @offset:=0          WHEN MONTH(CURRENT_DATE) IN (2,5,8,11) THEN @offset:=1       ELSE @offset:=2   END  );;
attr LogDBRep_Statistic_previous_Quarter userExitFn splitReading .*:.*
attr LogDBRep_Statistic_previous_Quarter verbose 0


Bitte achtet darauf, dass die splitReading() Funktion in 99_myUtils aktualisiert wurde.

Wenn das Device LogDBRep_Statistic_previous_Quarter angelegt wurde geht Ihr bitte her und ruft im Device mit "set sqlcmd" den Eingabe Editor auf und tragt dort das SQL SELECT Kommando ein.
Anschließend dann mit Klick auf "set" ausführen. Wenn das SELECT okay ist und fehlerfrei ausgeführt wurde, dann bleibt es erhalten. Bei einem Fehler wird es nicht in die sqlcmd Kommandowiederholung aufgenommen. Bitte speichert Euch das SQL SELECT auch nochmal in einer Datei als Sicherung weg, dann könnt Ihr es immer wieder herstellen.

Jetzt bitte nur keine Panic :-) es ist nur soooo lang, da bereits alle vier vorherigen Quartale in einem Rutsch ausgewertet werden, dies ist dann rollierend zu lesen.
Wenn Q1 mit "previous" markiert ist, dann würed Q4, Q3, Q2 das vorherige sein. Somit sollte der Report also jeweils nach dem Ende eines Quartals erstellt werden.
Im stateFormat wird jeweils nur das "previous" angezeigt.

SELECT * FROM
(
SELECT
  TIMESTAMP,
  IF(READING='_Year',CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1))),CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1)),'_',REPLACE(READING,'_Year',''))) AS READING,
  VALUE
FROM
(
  SELECT
    DATE_FORMAT(CURRENT_DATE - INTERVAL @offset MONTH, '%Y-%m-01 23:59:00') - INTERVAL 1 DAY AS TIMESTAMP,
    '_Year'    AS READING,
'previous' AS VALUE
  UNION ALL
  SELECT * FROM
    (
     SELECT
       DATE_FORMAT(end.TIMESTAMP, '%Y-%m-%d 23:59:00') AS TIMESTAMP,
       end.READING,
       (end.VALUE-begin.VALUE) AS VALUE
     FROM
     (
         SELECT
           h.TIMESTAMP,
           h.READING,
           cast(h.VALUE/1000 AS decimal(6)) AS VALUE
         FROM history h
       INNER JOIN
         (
         SELECT max(TIMESTAMP) AS TIMESTAMP,READING FROM history
           WHERE DEVICE = 'WR_1_API'
             AND ( READING LIKE 'SW_Statistic_%Year' OR READING='Statistic_EnergyHomeBat_Year' )
             AND READING NOT LIKE '%Autarky%'
             AND READING NOT LIKE '%Rate%'
            AND READING NOT LIKE '%NoBat%'
          AND TIMESTAMP >= DATE_FORMAT( CURRENT_DATE - INTERVAL 1+@offset MONTH, '%Y/%m/28' )
             AND TIMESTAMP <  DATE_FORMAT( CURRENT_DATE - INTERVAL @offset MONTH, '%Y/%m/01' )
           GROUP BY READING
         ) x1
       ON    h.TIMESTAMP = x1.TIMESTAMP
         AND h.READING   = x1.READING
         AND h.VALUE != 0
     ) end
   INNER JOIN
     (
       SELECT
         h.TIMESTAMP,
         h.READING,
         cast(h.VALUE/1000 AS decimal(6)) AS VALUE
       FROM history h
     INNER JOIN
       (
        SELECT max(TIMESTAMP) AS TIMESTAMP,READING FROM history
          WHERE  DEVICE = 'WR_1_API'
            AND ( READING LIKE 'SW_Statistic_%Year' OR READING='Statistic_EnergyHomeBat_Year' )
            AND READING NOT LIKE '%Autarky%'
            AND READING NOT LIKE '%Rate%'
            AND READING NOT LIKE '%NoBat%'
        AND TIMESTAMP >= DATE_FORMAT( CURRENT_DATE - INTERVAL 4+@offset MONTH, '%Y/%m/28' )
            AND TIMESTAMP <  DATE_FORMAT( CURRENT_DATE - INTERVAL 3+@offset MONTH, '%Y/%m/01' )
          GROUP BY READING
       ) x1
     ON    h.TIMESTAMP = x1.TIMESTAMP
       AND h.READING   = x1.READING
       AND h.VALUE != 0
     ) begin
   ON    end.READING = begin.READING
     AND MONTH(end.TIMESTAMP) IN (3,6,9,12)
   ) QX
) QA
) UA

UNION ALL

SELECT
  TIMESTAMP,
  IF(READING='_Year',CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1))),CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1)),'_',REPLACE(READING,'_Year',''))) AS READING,
  VALUE
FROM
(
  SELECT
    DATE_FORMAT(CURRENT_DATE - INTERVAL 3+@offset MONTH, '%Y-%m-01 23:59:00') - INTERVAL 1 DAY AS TIMESTAMP,
    '_Year' AS READING,
null    AS VALUE
  UNION ALL
  SELECT * FROM
    (
     SELECT
       DATE_FORMAT(end.TIMESTAMP, '%Y-%m-%d 23:59:00') AS TIMESTAMP,
       end.READING,
       (end.VALUE-begin.VALUE) AS VALUE
     FROM
     (
         SELECT
           h.TIMESTAMP,
           h.READING,
           cast(h.VALUE/1000 AS decimal(6)) AS VALUE
         FROM history h
       INNER JOIN
         (
         SELECT max(TIMESTAMP) AS TIMESTAMP,READING FROM history
           WHERE DEVICE = 'WR_1_API'
             AND ( READING LIKE 'SW_Statistic_%Year' OR READING='Statistic_EnergyHomeBat_Year' )
             AND READING NOT LIKE '%Autarky%'
             AND READING NOT LIKE '%Rate%'
            AND READING NOT LIKE '%NoBat%'
          AND TIMESTAMP >= DATE_FORMAT( CURRENT_DATE - INTERVAL 4+@offset MONTH, '%Y/%m/28' )
             AND TIMESTAMP <  DATE_FORMAT( CURRENT_DATE - INTERVAL 3+@offset MONTH, '%Y/%m/01' )
           GROUP BY READING
         ) x1
       ON    h.TIMESTAMP = x1.TIMESTAMP
         AND h.READING   = x1.READING
         AND h.VALUE != 0
     ) end
   INNER JOIN
     (
       SELECT
         h.TIMESTAMP,
         h.READING,
         cast(h.VALUE/1000 AS decimal(6)) AS VALUE
       FROM history h
     INNER JOIN
       (
        SELECT max(TIMESTAMP) AS TIMESTAMP,READING FROM history
          WHERE  DEVICE = 'WR_1_API'
             AND ( READING LIKE 'SW_Statistic_%Year' OR READING='Statistic_EnergyHomeBat_Year' )
            AND READING NOT LIKE '%Autarky%'
            AND READING NOT LIKE '%Rate%'
            AND READING NOT LIKE '%NoBat%'
        AND TIMESTAMP >= DATE_FORMAT( CURRENT_DATE - INTERVAL 7+@offset MONTH, '%Y/%m/28' )
            AND TIMESTAMP <  DATE_FORMAT( CURRENT_DATE - INTERVAL 6+@offset MONTH, '%Y/%m/01' )
          GROUP BY READING
       ) x1
     ON    h.TIMESTAMP = x1.TIMESTAMP
       AND h.READING   = x1.READING
       AND h.VALUE != 0
     ) begin
   ON    end.READING = begin.READING
     AND MONTH(end.TIMESTAMP) IN (3,6,9,12)
   ) QX
) QB

UNION ALL

SELECT
  TIMESTAMP,
  IF(READING='_Year',CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1))),CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1)),'_',REPLACE(READING,'_Year',''))) AS READING,
  VALUE
FROM
(
  SELECT
    DATE_FORMAT(CURRENT_DATE - INTERVAL 6+@offset MONTH, '%Y-%m-01 23:59:00') - INTERVAL 1 DAY AS TIMESTAMP,
    '_Year' AS READING,
null    AS VALUE
  UNION ALL
  SELECT * FROM
    (
     SELECT
       DATE_FORMAT(end.TIMESTAMP, '%Y-%m-%d 23:59:00') AS TIMESTAMP,
       end.READING,
       (end.VALUE-begin.VALUE) AS VALUE
     FROM
     (
         SELECT
           h.TIMESTAMP,
           h.READING,
           cast(h.VALUE/1000 AS decimal(6)) AS VALUE
         FROM history h
       INNER JOIN
         (
         SELECT max(TIMESTAMP) AS TIMESTAMP,READING FROM history
           WHERE DEVICE = 'WR_1_API'
             AND ( READING LIKE 'SW_Statistic_%Year' OR READING='Statistic_EnergyHomeBat_Year' )
             AND READING NOT LIKE '%Autarky%'
             AND READING NOT LIKE '%Rate%'
            AND READING NOT LIKE '%NoBat%'
          AND TIMESTAMP >= DATE_FORMAT( CURRENT_DATE - INTERVAL 7+@offset MONTH, '%Y/%m/28' )
             AND TIMESTAMP <  DATE_FORMAT( CURRENT_DATE - INTERVAL 6+@offset MONTH, '%Y/%m/01' )
           GROUP BY READING
         ) x1
       ON    h.TIMESTAMP = x1.TIMESTAMP
         AND h.READING   = x1.READING
         AND h.VALUE != 0
     ) end
   INNER JOIN
     (
       SELECT
         h.TIMESTAMP,
         h.READING,
         IF( MONTH(h.TIMESTAMP) != 12 , cast(h.VALUE/1000 AS decimal(6)) , 0 ) AS VALUE
       FROM history h
     INNER JOIN
       (
        SELECT max(TIMESTAMP) AS TIMESTAMP,READING FROM history
          WHERE  DEVICE = 'WR_1_API'
             AND ( READING LIKE 'SW_Statistic_%Year' OR READING='Statistic_EnergyHomeBat_Year' )
            AND READING NOT LIKE '%Autarky%'
            AND READING NOT LIKE '%Rate%'
            AND READING NOT LIKE '%NoBat%'
        AND TIMESTAMP >= DATE_FORMAT( CURRENT_DATE - INTERVAL 10+@offset MONTH, '%Y/%m/28' )
            AND TIMESTAMP <  DATE_FORMAT( CURRENT_DATE - INTERVAL 9+@offset MONTH, '%Y/%m/01' )
          GROUP BY READING
       ) x1
     ON    h.TIMESTAMP = x1.TIMESTAMP
       AND h.READING   = x1.READING
       AND h.VALUE != 0
     ) begin
   ON    end.READING = begin.READING
     AND MONTH(end.TIMESTAMP) IN (3,6,9,12)
   ) QX
) QC

UNION ALL

SELECT
  TIMESTAMP,
  IF(READING='_Year',CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1))),CONCAT('Q',CAST(MONTH(TIMESTAMP)/3 AS DECIMAL(1)),'_',REPLACE(READING,'_Year',''))) AS READING,
  VALUE
FROM
(
  SELECT
    DATE_FORMAT(CURRENT_DATE - INTERVAL 9+@offset MONTH, '%Y-%m-01 23:59:00') - INTERVAL 1 DAY AS TIMESTAMP,
    '_Year' AS READING,
null    AS VALUE
  UNION ALL
  SELECT * FROM
    (
     SELECT
       DATE_FORMAT(end.TIMESTAMP, '%Y-%m-%d 23:59:00') AS TIMESTAMP,
       end.READING,
       (end.VALUE-begin.VALUE) AS VALUE
     FROM
     (
         SELECT
           h.TIMESTAMP,
           h.READING,
           cast(h.VALUE/1000 AS decimal(6)) AS VALUE
         FROM history h
       INNER JOIN
         (
         SELECT max(TIMESTAMP) AS TIMESTAMP,READING FROM history
           WHERE DEVICE = 'WR_1_API'
             AND ( READING LIKE 'SW_Statistic_%Year' OR READING='Statistic_EnergyHomeBat_Year' )
             AND READING NOT LIKE '%Autarky%'
             AND READING NOT LIKE '%Rate%'
            AND READING NOT LIKE '%NoBat%'
          AND TIMESTAMP >= DATE_FORMAT( CURRENT_DATE - INTERVAL 10+@offset MONTH, '%Y/%m/28' )
             AND TIMESTAMP <  DATE_FORMAT( CURRENT_DATE - INTERVAL 9+@offset MONTH, '%Y/%m/01' )
           GROUP BY READING
         ) x1
       ON    h.TIMESTAMP = x1.TIMESTAMP
         AND h.READING   = x1.READING
         AND h.VALUE != 0
     ) end
   INNER JOIN
     (
       SELECT
         h.TIMESTAMP,
         h.READING,
         IF( MONTH(h.TIMESTAMP) != 12 , cast(h.VALUE/1000 AS decimal(6)) , 0 ) AS VALUE
       FROM history h
     INNER JOIN
       (
        SELECT max(TIMESTAMP) AS TIMESTAMP,READING FROM history
          WHERE  DEVICE = 'WR_1_API'
            AND ( READING LIKE 'SW_Statistic_%Year' OR READING='Statistic_EnergyHomeBat_Year' )
            AND READING NOT LIKE '%Autarky%'
            AND READING NOT LIKE '%Rate%'
            AND READING NOT LIKE '%NoBat%'
        AND TIMESTAMP >= DATE_FORMAT( CURRENT_DATE - INTERVAL 13+@offset MONTH, '%Y/%m/28' )
            AND TIMESTAMP <  DATE_FORMAT( CURRENT_DATE - INTERVAL 12+@offset MONTH, '%Y/%m/01' )
          GROUP BY READING
       ) x1
     ON    h.TIMESTAMP = x1.TIMESTAMP
       AND h.READING   = x1.READING
       AND h.VALUE != 0
     ) begin
   ON    end.READING = begin.READING
     AND MONTH(end.TIMESTAMP) IN (3,6,9,12)
   ) QX
) QD
;

Nach dem Ausführen entsteht im DbRep Device aus der formatierten Eingabe ein Bandwurm, was nicht mehr wirklich lesbar ist. Also wie bereits geschrieben nochmal selber weg sichern.

Nach dem Ausführen sollte es dann so aussehen, Q4 hat den "previos" Eintrag, da wir ja noch nicht April haben.

Q1
Q1_SW_Statistic_EnergyHome 2199
Q1_SW_Statistic_EnergyHomeFeedInGrid 324
Q1_SW_Statistic_EnergyHomeGrid 1205
Q1_SW_Statistic_EnergyHomePv 712
Q1_SW_Statistic_EnergyHomePvSum 994
Q1_SW_Statistic_TotalConsumption 2200
Q1_SW_Statistic_Yield 1318
Q1_Statistic_EnergyHomeBat 283
Q2
Q2_SW_Statistic_EnergyHome 1809
Q2_SW_Statistic_EnergyHomeFeedInGrid 5662
Q2_SW_Statistic_EnergyHomeGrid 17
Q2_SW_Statistic_EnergyHomePv 1398
Q2_SW_Statistic_EnergyHomePvSum 1792
Q2_SW_Statistic_EnergyPv1 2081
Q2_SW_Statistic_EnergyPv2 1655
Q2_SW_Statistic_TotalConsumption 1808
Q2_SW_Statistic_Yield 7454
Q2_Statistic_EnergyHomeBat 393
Q3
Q3_SW_Statistic_EnergyHome 1623
Q3_SW_Statistic_EnergyHomeFeedInGrid 4797
Q3_SW_Statistic_EnergyHomeGrid 16
Q3_SW_Statistic_EnergyHomePv 1186
Q3_SW_Statistic_EnergyHomePvSum 1607
Q3_SW_Statistic_EnergyPv1 2019
Q3_SW_Statistic_EnergyPv2 1614
Q3_SW_Statistic_EnergyPv4 1260
Q3_SW_Statistic_EnergyPv5 1797
Q3_SW_Statistic_TotalConsumption 1623
Q3_SW_Statistic_Yield 6404
Q3_Statistic_EnergyHomeBat 421
Q4 previous
Q4_SW_Statistic_EnergyHome 2583
Q4_SW_Statistic_EnergyHomeFeedInGrid 511
Q4_SW_Statistic_EnergyHomeGrid 1378
Q4_SW_Statistic_EnergyHomePv 875
Q4_SW_Statistic_EnergyHomePvSum 1205
Q4_SW_Statistic_EnergyPv1 510
Q4_SW_Statistic_EnergyPv2 422
Q4_SW_Statistic_EnergyPv4 330
Q4_SW_Statistic_EnergyPv5 551
Q4_SW_Statistic_TotalConsumption 2583
Q4_SW_Statistic_Yield 1716
Q4_Statistic_EnergyHomeBat 330


VG
    Christian

Hallo Christian,

bei muss ich die Quartalsauswertung manuell anstoßen. Ist das so richtig? Oder habe ich irgendwo was überlesen und vergessen ins DOIF zupacken.

VG Alex
Server: Fujitsu ESPRIMO Q920 - aktuellen FHEM-Docker Image:Z-Wave (RollerShutter,DoorWindow,Socket,PIR,....) | ENIGMA2 | EGPM2LAN | BLE-Tag(PRESENCE) | HUE | alexa-fhem | Shelly | MQTT2
1.Pi-Zero:Viessmann(optolink) mit 89_VCONTROL300.pm
2.Pi3 Dongle Server: Zigbee2MQTT(CC1352P-2), Z-Wave(UZB1), BT