Leistungsprognose für Wechselrichter

Begonnen von ch.eick, 18 Januar 2021, 08:35:46

Vorheriges Thema - Nächstes Thema

ch.eick

Zitat von: papa am 09 April 2021, 12:40:10
Der Update-Syntax dürfte sich dann auch noch bei jeder Datenbank unterscheiden.
Das ist nur für MySQL, gibt es noch was anderes :-) :-)
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

DS_Starter

Zitat... gibt es noch was anderes :-) :-)
Du alter Schelm ...  ;D
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

EinEinfach

ZitatDer Update-Syntax dürfte sich dann auch noch bei jeder Datenbank unterscheiden.
Denkbar wäre ein Reading, was immer relativ zum aktuellen Zeitpunkt in die Zukunft schaut (Über Attribut Einstellbar +5std... +6std etc) man muss sich sozusagen entscheiden wie weit man in die Zukunft schauen will.

P.S. Die NextHour Readings gibt es nicht mehr, die man dafür misbrauchen könnte
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

DS_Starter

Ja, die Daten sind alle vorhanden.
Aber das Problem ist, dass sie sich ändern (können) und diese Änderung bei einer DB mit PK nicht (ohne Kunstgriffe) in die DB kommen. Eine DB ohne PK könnte es zwar verarbeiten, hätte dann aber wiederum eine hohe Anzahl doppelter Datensätze mit identischem Timestamp und unterschiedlichem Value. Welcher Wert siegt dann im SVG-Plot ?  Bin mir unsicher bzw. weiß es nicht. Jedenfalls ist das nicht so gewünscht denke ich.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

EinEinfach

ZitatAber das Problem ist, dass sie sich ändern (können) und diese Änderung bei einer DB mit PK nicht (ohne Kunstgriffe) in die DB kommen.

Das Reding soll sich auch ruhig mehrmals ändern dürfen, was die Leute damit dann später anstellen, ist nicht die Aufgabe von dem Modul.
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

DS_Starter

Stimmt auch wieder.  ;)
Man sieht an diesem kleinen Beispiel wie vielfältig manche Sachverhalte sein können.
Ich denke mal mit drüber nach. Muß irgendwann mal anfangen die Punkte der letzen 2/3 Seiten einzuarbeiten ...
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ch.eick

#576
Zitat von: EinEinfach am 09 April 2021, 13:22:15
Das Reding soll sich auch ruhig mehrmals ändern dürfen, was die Leute damit dann später anstellen, ist nicht die Aufgabe von dem Modul.
Der VALUE im Eintrag ja, aber mehrfach den selben TIMESTAMP kann man nur schwerlich sortieren :-) Deshalb verwendet man den PK.

EDIT:
Im DbLog Design ist der TIMESTAMP historisch bedingt leider nur auf die Sekunde genau implementiert.
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

jual

#577
Ich nutze für einen eigenen Plot der Forecastwerte folgende Funktion in Verbindung mit einer DB:

#
# Forecastwerte aus mySolarForecast in die DB schreiben, um damit ein Plot zu erstellen
#
sub PVForecast_log2()
{
   Log 3, "Aufruf von PVForecast_log2 um ".localtime();
   
   # Alte Einträge erst einmal löschen
   my $timedelete = TimeNow();
   my ($year,$mon,$day,$hour,$min) = $timedelete =~ m/(\d\d\d\d)-(\d\d)-(\d\d) (\d\d):(\d\d):\d\d/;
   
   fhem "set DBRep_PV sqlCmd delete from history where DEVICE = 'mySolarForecast' AND reading like 'PVforecast%' and TIMESTAMP>='".$timedelete."'";
   
   # alle Verhersage Readings des Device durchlaufen
   for(my $i=$hour; $i <= 24; $i++)
   {     
  # die Readings mit der Nummerierung richtig zusammen bauen (führende Nullen bei < 10)
      my $reading = ($i < 10) ? "Today_Hour0".$i : "Today_Hour".$i;
 
  #Timestamp für den Forecastwert
  my $timestamp = ($i < 10) ? "$year-$mon-$day 0$i:00:00" : "$year-$mon-$day $i:00:00";
  my $value = ReadingsNum("mySolarForecast",$reading."_PVforecast",0);
 
      # Wert in der Datenbank loggen
  fhem "set DBLog_PV addCacheLine ".$timestamp."|mySolarForecast|addlog|newForecast:".$i."|PVforecast|".$value."|";
   }
}

ch.eick

Zitat von: jual am 09 April 2021, 13:35:45
Ich nutze für einen eigenen Plot der Forecastwerte folgende Funktion in Verbindung mit einer DB:
Dann kann ich ja bei meiner Funktion bleiben ;-)
Ziel in diesem Thread war es ja genau ein Modul zu schaffen, bei dem man dann nicht noch etwas drum herum machen muss.
Im Wiki ist die Solar_forecast() Funktion, die auch ohne den Plentice WR, also auch mit einem Dummy oder beliebigen anderen Device anwendbar ist.
Die Autokorrektur bei mir geht jedoch nur mit Datenbank.
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

DS_Starter

#579
Super jual.
@Christian, vermutlich wird man nicht jeden erdenklichen Anwendungsfall im Modul einbauen können.
Das Script von jual geht allerdings für jede DB  ;)

Deswegen ein ganz allgemeiner Vorschlag.
Ich denke es wird eine ganze Menge Informationen/Fragen rund um dieses Modul geben. Angefangen über den verlangten Input , die Einstellung/Handhabung der Autokorrektur mit den Möglichkeiten der Attribute, der Grafik und Möglichkeiten des Loggings und Diagrammdarstellung.

Es wäre vermutlich sinnvoll eine Wiki-Seite für dieses Modul zu beginnen und dort solche Infos zu sammeln. Das macht es für den Einsteiger/Anwender einfacher.

Edit: Muss sich nur noch jemand finden der es tut.  ;)  Ich würde meine Zeit gern zunächst auf die Weiterentwicklung des Moduls verwenden.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

papa

Zitat von: ch.eick am 09 April 2021, 12:44:59
Das ist nur für MySQL, gibt es noch was anderes :-) :-)
Aber dafür gibt es doch REPLACE INTO
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

ch.eick

Zitat von: DS_Starter am 09 April 2021, 13:44:50
@Christian, vermutlich wird man nicht jeden erdenklichen Anwendungsfall im Modul einbauen können.
Das Script von jual geht allerdings für jede DB  ;)
Ich verwende auch DbRep für die Kopplung. Es ist nur für alle DBs geeignet, wenn das SQL sich auf basis Funktionalitäten im SQL beschränkt.
Jual sendet auch ein SQL direkt an die Datenbank und verwendet nicht die integrierte delete Funktion im DbRep.
Das soll bitte keine Kritik sein, ich bin nicht immer ein Ketzer ;-)
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

#582
Zitat von: papa am 09 April 2021, 13:49:53
Aber dafür gibt es doch REPLACE INTO
Danke, es kommt immer darauf an welches Beispiel man zuerst findet und kopiert :-)

EDIT:
Zitat
REPLACE is a MySQL extension to the SQL standard. It either inserts, or deletes and inserts. For another MySQL extension to standard SQL—that either inserts or updates—see Section 13.2.6.2, "INSERT ... ON DUPLICATE KEY UPDATE Statement".
Da ist ein kleiner Unterschied. Ein Delete und neues Insert ist weniger performant als ein UPDATE auf einen einzelnen VALUE.

Somit ist es einfach etwas anders implementiert, aber immernoch MySQL spezifisch.
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

DS_Starter

Alles gut  :)
Ich klink mich jetzt hier mal aus und widme mich wieder bisschen dem Code. Sonst geht da nix weiter.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Neue V liegt im contrib.
Nun ist auch die diese Variante von EinEinfach möglich:

currentMeterDev <Device> gfeedin=<Reading>:<Einheit> contotal=<Reading>:<Einheit> gcon=-gfeedin feedtotal=<Reading>:<Einheit>

Warnings habe ich auch keine mehr bemerkt. Sagt Bescheid wenn ihr welche haben solltet.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter