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

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

Vorheriges Thema - Nächstes Thema

loleke

Guten Abend. Ich versuche mich gerade mit Fhem/Kostal und Tibber. Leider habe ich mit Fhem noch nicht viel am Hut, bin aber guter Dinge.
Wo ich seid 2 Tagen nicht weiterkomme ist:
"RAW Definition WR_1_config"
Passworte für die Abfrage des WR_1_API werden im storeKeyValue abgelegt:\
   {KeyValue("[read|store]","PW_<Device Name>_<Benutzer Name>","<passwort>")}\
   {KeyValue("store","PW_WR_1_API_user","<passwort>")}\
\
Steht das reading module_*_count auf 0 wird diese Ausrichtung nicht berücksichtigt\
\
Korrekturkurven:\
         Steilheit  Parallel\
                    verschiebung\
tempk      -0.39      25\
cloudk     -0.65       0\
raink      -0.30       0\
Der Slider für die Steilheit wird mit - k/100 umgerechnet. 39 ==> -0.39

wie auch dem "KeyValue()" "plenticore_auth()"

Da stehe ich momentan voll auf dem Schlauch. Kann mir da vielleicht jemand einen Tipp geben was ich genau machen muss?

ch.eick

Zitat von: loleke am 05 Januar 2024, 19:55:15Guten Abend. Ich versuche mich gerade mit Fhem/Kostal und Tibber. Leider habe ich mit Fhem noch nicht viel am Hut, bin aber guter Dinge.
Wo ich seid 2 Tagen nicht weiterkomme ist:
"RAW Definition WR_1_config"
< snip >
wie auch dem "KeyValue()" "plenticore_auth()"

Da stehe ich momentan voll auf dem Schlauch. Kann mir da vielleicht jemand einen Tipp geben was ich genau machen muss?
Das WR_1_config Device ist leider eine Altlast und ich bin bisher nicht dazu gekommen das Wiki umzubauen und zu aktualisieren. Für die aktuelle Prognose wird nun eine KI verwendet, die über Python und eine SQL Prozedur in der Datenbank die Prognosedaten aufbereitet. Dazu gibt es im Forum ab hier in vier Teilen eine Beschreibung, wie man auf die neue KI Prognose umstellen kann.
Ich versuche mal im Wiki die aktuellen Devices und auch die neue Ki Prognose abzulegen, da in letzter Zeit einige im Forum neu dazu gekommen sind.

Für den KeyValue() schau bitte nochmal ins Wiki, da sollte die Beschreibung recht gut sein, da wir das bereits schon mehrfach durchlaufen haben. Ansonsten schreib mir nochmal eine PN.

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

Hallo zusammen,
ich habe jetzt begonnen das WIKI für die Leistungsprognose zu korrigieren.
Die alte Prognose wird noch einige zeit im Wiki bleiben, es wäre jedoch schön, wenn Ihr nach und nach auf die Ki Prognose umsteigen würde.
Hier geht es dann jetzt los mit den Änderungen
Teil 1 und Teil 2 habe ich aus dem Thread bereits übernommen und mit den aktuellsten Versionen aus meiner Installation abgeglichen.

Update 20240107
Es gibt jetzt etwas zur MySQL Installation als Ergänzung zum DbLog Wiki. Da wird hoffentlich zeitnah noch mehr dazu kommen :-)
https://wiki.fhem.de/wiki/Kostal_Plenticore_10_Plus#MySQL_etwas_Basis_Information
Update 20240109
Es geht voran und gibt nun einige MySQL Kommandos, die insbesondere bei Oracle MySQL (Empfehlung) notwendig sind.
https://wiki.fhem.de/wiki/Kostal_Plenticore_10_Plus#MySQL_initial_konfigurieren

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

Hallo zusammen,
ich hatte ja mal kurz einen Post geschrieben, den ich dann wieder raus genommen hatte.

Schnee ist echt ein Prognose Problem, aber ich hätte da mal etwas zu Testen.
Heute Nacht ist dann endlich alles wieder weg geschmolzen.

Am Ende der dwd_load() procedure wäre dieser SQL Block auszutauschen. Im yield_max würde dann die extrem niedrige Leistung bei Abdeckung berücksichtigt, wobei dies einen Schwellwert von 4% im Verhältnis zum Durchschnitt der letzten 30 Tage verwendet.
-- Ermittle Ertrags Maximum der letzten 30 Tage um die Prognose zu limitieren
UPDATE dwdfull tt
JOIN
  ( -- yield_max und Schnee Begrenzung
      SELECT hour,
             if(yield_min > yield_max*0.04, yield_max, yield_min) AS yield_max
      FROM (
        SELECT hour,
             -- Ist der letzte Tag 90% kleiner als der Durchschnitt der letzten Tage,
             -- dann liegt Schnee auf den Modulen
               cast(max(if(yield > 0,yield,0)) AS DECIMAL(6)) AS yield_max
        FROM dwdfull
        WHERE TIMESTAMP > DATE_ADD(@date,INTERVAL -30 DAY)
        GROUP BY hour ) x1
  INNER JOIN
        -- Wie waren die letzten Tag? Extrem kleine Werte bedeuten abgedeckte Module,
        -- was die Ki_Prognose nicht so schnell lernen kann.
        (SELECT hour,
               cast(min(if(yield > 0,yield,0)) AS DECIMAL(6)) AS yield_min
        FROM dwdfull
        WHERE TIMESTAMP > DATE_ADD(@date,INTERVAL -1 DAY)
          AND TIMESTAMP < @date
        GROUP BY hour
        ) X2 USING(hour)
   ) t2  USING(hour)
SET tt.yield_max = t2.yield_max
WHERE TIMESTAMP > @date
;

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

Prof. Dr. Peter Henning

Ich habe da so verschiedene Vorschläge zur Verbesserung. Könnte man vielleicht damit beginnen, die ewig langen Codeblöcke aus dem Wiki in herunterladbare Dateien umzuwandeln, die in den contrib-Ordner gestellt werden?

LG

pah

ch.eick

Zitat von: Prof. Dr. Peter Henning am 24 Januar 2024, 05:15:33Ich habe da so verschiedene Vorschläge zur Verbesserung. Könnte man vielleicht damit beginnen, die ewig langen Codeblöcke aus dem Wiki in herunterladbare Dateien umzuwandeln, die in den contrib-Ordner gestellt werden?
Hallo Peter (oder welche Anrede wäre korrekt?)
Das ist auch etwas, was mich schon lange stört, jedoch kenne ich Eure Arbeitsweise im Verein nicht.
Könnte ich da man eine Einweisung bekommen? Ich weiß auch nicht, ob meine Implementierung wirklich den Qualitätsansprüchen genügt.
Das mit der Wiki Seite war schon mal ein schöner Anfang für meine eigene Dokumentation :-)

Gefunden habe ich bereits https://svn.fhem.de/fhem/trunk/fhem/contrib/

Die ersten Fragen wären:
1. Wie kann man im contrib-Ordner etwas ablegen?
2. Gibt es da ein Tool mit Versionierung?
3. Darf das jeder FHEM user nutzen?

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

Prof. Dr. Peter Henning

Klar geht das alles.

Zunächst einmal brauchst Du einen Subversion-Cliuent, oder SVN Client. Die gibt es kostenfrei, eine Übersicht findet man hier.
https://en.wikipedia.org/wiki/Comparison_of_Subversion_clients

Dann liest Du das hier durch: https://svn.fhem.de/

Im nächsten Schritt erzeugst Du auf Deinem Rechner eine lokale Kopie des gesamten Repository. Wenn Du darin etwas änderst, kannst Du das per Commit wieder in das offizielle Repository hochladen. Das geht noch nicht sofort, Du benötigst
Schreibrechte als Entwickler. Die bekommst Du von Rudi König himself, schreib ihm eine PM. 

Beim Hochladen muss man natürlich verantwortungsvoll handeln, und es gibt relativ strikte Anforderungen an Module für den FHEM-Code. Die findest Du hier: https://forum.fhem.de/index.php?topic=18962.0

So weit würde ich für den Anfang aber gar nicht gehen - denn für experimentelle Module gibt es den contrib-Ordner. Darin legst Du (in der lokalen Kopie) einen neuen Unterordner unter Deinem Namen an, z.B. cheick. Und darin kannst Du z.B. die SQL-Dateien ablegen.

Ich habe auch einen solchen Unterordner pahenning, darin liegen viele experimentelle Sachen, auch Module, die ich vor vielen Jahren geschrieben habe und für die es keine Wartung gibt. Beispielsweise ein Modul 70_NT5000.pm, das ich 2008 für die Kommunikation mit einem Sunways-Wechselrichter geschrieben habe. Das Modul tut seitdem wunderbar seine Arbeit bei mir, keine Veränderungen mehr seit 2014.

Und wenn das dann in Deinem lokalen Ordner steht, einfach per SVN Commit hochladen.

LG

pah

P.S.: Der Grund dafür, dass ich mir diesen Thread jetzt angesehen habe: In den nächsten Tagen bekomme ich eine WallBox, in den nächsten Wochen ein E-Auto und eine zweite PV-Anlage mit BYD-Speicher. Der WR wird von Fronius sein, ich mache deshalb mal einen neuen Thread auf, um das Thema Energiemanagement etwas von der Hardware zu lösen.

ch.eick

Hallo pah

ich schau mir das mal an, da ich liebend gerne das Wiki aufräumen und aktualisieren möchte.

ZitatP.S.: Der Grund dafür, dass ich mir diesen Thread jetzt angesehen habe: In den nächsten Tagen bekomme ich eine WallBox, in den nächsten Wochen ein E-Auto und eine zweite PV-Anlage mit BYD-Speicher. Der WR wird von Fronius sein, ich mache deshalb mal einen neuen Thread auf, um das Thema Energiemanagement etwas von der Hardware zu lösen.
Ich denke, da werde ich dann auch mit arbeiten.
Den zweiten WR von Fronius kann man über ein Fake Device in die Kostal Welt bringen.

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

Zitat von: Prof. Dr. Peter Henning am 24 Januar 2024, 10:37:06Ich habe auch einen solchen Unterordner pahenning, darin liegen viele experimentelle Sachen, auch Module, die ich vor vielen Jahren geschrieben habe und für die es keine Wartung gibt. Beispielsweise ein Modul 70_NT5000.pm, das ich 2008 für die Kommunikation mit einem Sunways-Wechselrichter geschrieben habe. Das Modul tut seitdem wunderbar seine Arbeit bei mir, keine Veränderungen mehr seit 2014.

Und wenn das dann in Deinem lokalen Ordner steht, einfach per SVN Commit hochladen.

LG pah
Hallo zusammen
Zuerst mal besonderen Dank an pah für die Hilfe mit dem svn contrib. Ich habe das gerade mal umgesetzt und schon die ersten Files bereit gestellt.

Ich bitte Euch nun das mal zu testen:

1. Im Browser findet Ihr jetzt meine Dateistruktur mit folgendem Aufruf
    https://svn.fhem.de/fhem/trunk/fhem/contrib/ch.eick/

2. In einem UNIX Terminal geht es über ein wget und erzeugt dabei einen Ordner ./contrib/ch.eick .
$ wget -r -nH --no-parent --cut-dirs=4 --reject="index.html*" -e robots=off https://svn.fhem.de/fhem/trunk/fhem/contrib/ch.eick/ -P ~/contrib/

3. Auch in der FHEM Kommandozeile kann man es abrufen, was dann ein Unterverzeichnis im fhem ./contrib anlegt.
"wget -r -nH --no-parent --cut-dirs=4 --reject="index.html*" -e robots=off https://svn.fhem.de/fhem/trunk/fhem/contrib/ch.eick/ -P ~/contrib/"

Achtung, meine Dateien sind kein Modul!
Um die Dateien zu übernehmen müsst Ihr jede einzelne Datei im RAW Editor übernehmen, oder bei anderen Formaten z.B. im MySQL oder auch in die 99_myUtils.pm .
Der Hintergrund ist, das Wiki aufzuräumen und Fehler beim Download zu minimieren.

Es sollte nun der Stand von gestern dort abgelegt sein. Ich lege dann immer mal wieder weitere Datein ab, oder aktualisiere ältere.
Ein Hinweis auf die aktualisierung wird dann hier im Thread erscheinen.
Für den weiteren Support wäre es nun auch sehr wichtig, dass Ihr versuch von älteren Versionen auf die aktuellen zu wechseln.
Bei diesem Schritt sollten bitte zusammenhängende Devices gleichzeitig aktualisiert werden, um die Abhängigkeiten zu berücksichtigen.

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

Hallo zusammen,
manchmal, wenn man mal gelangweilt beim Monitoren ist, dann sieht man, dass es viel Überschuss gibt, der Plenticore aber z.B. nur mit 2000 W lädt und der Rest ins Netz geht. Das entscheidet dann der Plenticore, aber da man ja gerade da ist kann man das manuell beeinflussen. Im Screenshot ist der Weg mal dargestellt.Du darfst diesen Dateianhang nicht ansehen.

Hierbei aber nicht vergessen es auch wieder abzuschalten! Es kommen ja auch mal Wolken :-)

Viel Spaß beim Speicher laden
      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

Zitat von: shwowak am 28 Januar 2024, 02:29:18Glaub man muss noch beschreiben wie man die einzel Datei einfügt. Glaube nicht das jeden weiß wie er hier vorgehen muss. Evl in stichpunkten
An dem Einfügen der Daten hat sich nichts geändert.
Die Beschreibung ist im Wiki, nur das copy/paste aus dem Wiki enfällt, da die Dateien mit den Device Definitionen, bzw der einzufügende Code nun direkt herunter geladen werden kann. Danach kann jeder den Editor seiner Wahl verwenden um die Daten ins FHEM zu kopieren. Mit der Variante 1. kann dies sogar auch noch weiterhin im Browser erfolgen.

Hier mal ein Beispiel für 1. Im Browser
Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen.

Oder ein Beispiel für 2. und 3. im Terminal des UNIX
fhem@raspberrypi:~$ wget -r -nH --no-parent --cut-dirs=4 --reject="index.html*" -e robots=off https://svn.fhem.de/fhem/trunk/fhem/contrib/ch.eick/ -P ~/contrib/

fhem@raspberrypi:~$ cd ./contrib/ch.eick/
fhem@raspberrypi:~/contrib/ch.eick$ ls -l
insgesamt 8
drwxr-xr-x 8 fhem fhem 4096 Jan 27 17:38 Photovoltaik
drwxr-xr-x 4 fhem fhem 4096 Jan 27 17:38 Strombörse
fhem@raspberrypi:~/contrib/ch.eick$ cd Photovoltaik/Photovoltaik/Wechselrichter/

fhem@raspberrypi:~/contrib/ch.eick/Photovoltaik/Wechselrichter$ ls -l
insgesamt 232
-rw-r--r-- 1 fhem fhem  8599 Jan 25 10:59 RAW_WR_0_KSEM.txt
-rw-r--r-- 1 fhem fhem 67030 Jan 25 10:59 RAW_WR_1_API.txt
-rw-r--r-- 1 fhem fhem 66862 Jan 25 10:59 RAW_WR_1_Speicher_1_ExternControl.txt
-rw-r--r-- 1 fhem fhem 24468 Jan 25 10:59 RAW_WR_1.txt
-rw-r--r-- 1 fhem fhem 17108 Jan 25 10:59 RAW_WR_2_API.txt
-rw-r--r-- 1 fhem fhem  4102 Jan 25 10:59 RAW_WR_2.txt
-rw-r--r-- 1 fhem fhem  1733 Jan 25 10:59 RAW_WR_3_Fake_WR.txt
-rw-r--r-- 1 fhem fhem 26255 Jan 25 10:59 RAW_WR_ctl.txt

fhem@raspberrypi:~/contrib/ch.eick/Photovoltaik/Wechselrichter$ cat RAW_WR_1_Speicher_1_ExternControl.txt
defmod WR_1_Speicher_1_ExternControl DOIF ################################################################################################################\
## 1 Speicher Status vom WR_1_Speicher_1 aktualisieren.\
##   Dies geschieht über das WR_1_API Device, da der Speicher direkt am Wechselrichter angeschlossen ist.\
##\
1_Status_WR_1_Speicher_1\
{if( !([$SELF:state] eq "off")                                           ## DOIF enabled\
     and\
     (   [:52]                                                           ## jede Stunde\
\
      or [$SELF:ui_command_1] eq "Status_Speicher"                       ## Hier wird das uiTable select ausgewertet\
     )\
   ) {\
\
    if( [?$SELF:ui_command_1] eq "Status_Speicher" ) {                   ## Hier wurde manuell eingeschaltet\
      set_Reading("ui_command_1_before",[?$SELF:ui_command_1]);;\
    }\
\
    ::CommandGet(undef, "WR_1_API 21_Battery_Information");;\
    ::CommandGet(undef, "WR_1_API 22_Battery_InternControl");;\
    ::CommandGet(undef, "WR_1_API 23_Battery_ExternControl");;\
    ::CommandGet(undef, "WR_1_API 25_Battery_EM_State");;\

    if (AttrVal("$SELF","verbose",0) >=4) {\
      Log 3, "$SELF cmd_1  : Speicher Status abfrage"\
    }\
\
    set_Reading("ui_command_1","---");;                                   ## Hier wird das uiTable select wieder zurückgesetzt, ansonsten\
                                                                         ## kann das Kommando nicht sofort wiederholt werden\
  }\
}\
\
< snip >

VG   Christian

P.S. Könntest Du bitte Deinen Post nochmals Editieren, da dort sehr viel doppelter Text als Zitat enthalten ist und Deine wirkliche Frage komplett verschwindet?
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

Prof. Dr. Peter Henning


ch.eick

Zitat von: Prof. Dr. Peter Henning am 30 Januar 2024, 17:23:49Kleiner Hinweis zur Preisberechnung bei aWATTar siehe hier: https://forum.fhem.de/index.php?topic=136885.0
Das trage ich dann noch im entsprechenden Thread nach. Ich weiß aber nicht wer aWATTar wirklich nutzt.
Für mich ist es nur ein Hobby und ich möchte halt langfristig mal echt vergleichen können. Leider kann
man die Tibber Preise nur als Kunde abfragen, bei aWATTar kommt man da ja auch so ran.
Die Preise für den aWATTar forecast fehlen momentan ja auch noch :-(
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,
im contrb/ch.eick/Grafana/* findet Ihr jetzt mein Grafana Dashboard und die Diagramme im JSON Format. Grafana am besten als Docker Container laufen lassen, dann muss man nicht soviel selber machen. Das Dashboard ist recht umfangreich und liest sehr viele Werte aus der MySQL Datenbank. Zum Anzeigen verwendet Ihr auch besser einen Rechnen mit etwas mehr Power wie ein RPI4, da dort viel Java im Hintergrund läuft. Der Grafana Docker Container kann auf einem RPI4 bleiben, oder auch auf einem separaten NAS laufen, es ist halt komplett losgelöst und liest direkt über das Netzwerk aus der FHEM MySQL Datenbank. Rechts oben möchte ich noch die KI_Prognose und  zugehörige Werte unterbringen.
Du darfst diesen Dateianhang nicht ansehen.

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