76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

Begonnen von DS_Starter, 11 Februar 2024, 14:11:00

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Zitat von: DS_Starter am 14 Mai 2025, 08:27:38über diesen Wechselrichter geführt was der Realität entspricht
Na ja. Der solare Energiestrom geht in den Wechselrichter, und auch der Batteriestrom kommt aus dem und geht in den WR.  Insofern stimmt das in Deinem Diagramm noch nicht. Ich habe mal einen kurzen Screencast meines Diagramms angehängt. Darin sieht man sehr schön, wie sich die Farbe der Animationen verändert - in diesem Falle nur, weil bei schwankendem Verbrauch eben ab und zu minimal aus dem Grid hinzugeladen wird. Als sehr informativ empfindet meine Chefin auch, dass sich die Richtung der Pfeile (ins Grid/aus dem Grid, in die Batterie/aus der Batterie) ebenfalls umkehrt.

LG

pah

Prof. Dr. Peter Henning

Zitat von: 300P am 14 Mai 2025, 09:20:25ist auf der Südhalbkugel
Nicht nur das. Sondern bau mal am Nordpol einen String mit Nordausrichtung auf. Sphärische Polarkoordinaten haben so ihre Tücken...

LG

pah

DS_Starter

#2867
Moin pah,

ZitatNa ja. Der solare Energiestrom geht in den Wechselrichter, und auch der Batteriestrom kommt aus dem und geht in den WR.
Ja, absolut. Der Fall Hybridwechselrichter, der sowohl Hausnetz und Batterie versorgt/entlädt, kommt bei uns noch.
Das ist einer der nächsten Schritte.

EDIT: Bezüglich Pfeile finde sie auch hilfreich zusätzlich zu der animierten Laufrichtung. Muß ich mal schauen wie man das an eine Linie im SVG einbaut. Tipp nehme ich gerne entgegen.

LG,
Heiko
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

Prof. Dr. Peter Henning

#2868
Die Pfeile sind ganz einfach:
  <!-- Pfeil Gesamtleistung -->
        <div style="position:absolute;left:115px;top:555px;">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 150" width="400px"
                height="150px">
                <path id="pgrid1" transform=""
                    style="fill:url(#r_h_r);stroke:#bbbbbb;stroke-width:1"
                    d="M 5,12 h 165 v -10 l 15 15 l -15 15 v -10 h -165 Z"/>
            </svg>
        </div>
Wie man sieht, ist der Code nicht optimiert - sondern einfach eine Box 400x150 Pixel. Die Füllung ist ein Pattern
  <pattern id="r_h_r" patternUnits="userSpaceOnUse" width="15" height="15">
                            <line x1="0" y1="0" x2="0" y2="15" class="arrow-red" stroke-width="15"/>
                            <animatetransform attributeName="patternTransform" type="translate" by="15 0"
                                dur="1s" repeatCount="indefinite"/>
                        </pattern>
Und die Richtungsumgḱehr:
Du rufst einfach eine JavaScript-Funktion, welche die Füllung (g_h_r = grün horizontal rechts etc.) wechselt und die Richtung (scale(-1 1) oder scale (1 1) ) umkehrt. Dann muss man noch berücksichtigen, dass sich dabei natürlich auch die Position des Pfeils ändert - also nochmal eine horizontale Verschiebung (translate (x y) )einbauen.

Die Funktion ist insofern trivial, als sie den Parameterwert "power" auch als Rückgabewert liefert - aber zwischendrin wechselt sie eben auch die Pfeile.
/* FHEM - zaehler - grid*/
function total_power(power) {
    var a = document.getElementById('pgrid1');
    var b = document.getElementById('pgrid2');
    var s1, s2, t1, t2;
    if (power < -0.02) {
        s1 = "url(#g_h_r)";
        s2 = "url(#g_v_u)";
        t1 = "translate(195,0) scale(-1,1)";
        t2 = "translate(0,630) scale(1,-1)";
    } else {
        if (power > 0.02) {
            s1 = "url(#r_h_r)";
            s2 = "url(#r_v_u)";
            t1 = "";
            t2 = "";
        } else {
            s1 = "url(#b_t)";
            s2 = "url(#b_s)";
            t1 = "";
            t2 = "";
        }
    }
    a.style.fill = s1;
    a.setAttribute("transform", t1);
    b.style.fill = s2;
    b.setAttribute("transform", t2);
    return power;
}

LG

pah

Burny4600

Zitat von: peterboeckmann am 14 Mai 2025, 08:54:53.........
Unter Bookworm muss die Installation nicht mit cpan erfolgen, sondern mit:
sudo apt-get install libai-decisiontree-perl

Ja das stimmt. Das war ein Post von mir. Ich hatte auf einem Pi4 Bookworm 32Bit inklusive FHEM neu aufgesetzt. Ebenso SolarForecast im Anschluss. Die Installation von CPAN läuft durch, nur FHEM erkennt die CPAN Installation nicht. Bei der Ursachenforschung betreffend des Ai-decisiontree Fehlers von FHEM bin ich im WEB über die Perl-Instalations Routine sudo apt-get install libai-decisiontree-perl gestolpert.
Nach der Installation erkannt SolarForecast die Ai-decisiontree Funktion.


Ich hoffe ich habe es betreffend setupInverterDevxx jetzt kappiert, auch wenn es für Hybridwechselrichter noch nicht vorhanden ist.

ZitatNur  "pv=total_pac:W etotal=etotal:kWh". d.h. die aktuelle Leistung des WR -> Hausnetz ...................
Dieser Wert kann bei mir positiv oder negativ für die Import-Export SV-Hauslast sein. Die USV-Hauslast liefert nur postive Werte.

Zitatpv        Ein Reading welches die aktuelle Leistung aus PV-Erzeugung, die an das Hausnetz geliefert wird, bereitstellt. Es muß ein positiver Wert sein.

Somit kann das Ergebnis nur so sein:
Die Summe der Leistungen der PV-Strings + die Generatorleistung W
String1_Leistung__W + String2_Leistung__W + Generator_Leistung_Gesamt__W


Zitat..........und seine gesamte kumulierte erzeugte Energie.
Zitatetotal        Das Reading, welches die gesamte erzeugte PV-Energie liefert (ein stetig aufsteigender Zähler). -> hier sehe ich keinen Unterschied zu "gesamte kumulierte erzeugte Energie". Erzeugt die Definition Fragen im Kopf und gibt Raum für Spekulation?

Also die Summe der Energie der PV-Strings + die Generatorenergie in kWh
String_Energie_Gesamt__kWh + Generator_Energie_Gesamt__kWh
Beim Wert Generator_Energie_Gesamt__kWh habe ich nur das Problem, dass der Hybridinverter dieses Reading nicht erzeugt, aber dazu habe ich noch keine Idee wie ich diesen Wert über ein Jahr hinweg generiere, ausser ich verpasse dem Generator einen eigenen Energiezähler. Ich muss für die Statistik-Ermittlung noch herausfinden wie ich ein kumulierten Wert über 52 Wochen unter FHEM berechne.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

DS_Starter

#2870
@Chris,

ZitatSomit kann das Ergebnis nur so sein:
Die Summe der Leistungen der PV-Strings + die Generatorleistung W
String1_Leistung__W + String2_Leistung__W + Generator_Leistung_Gesamt__W
Nicht ganz. Die Generatorleistung ist doch kein PV, richtig?
Den Generator müsstest du als setupOtherProducerXX definieren.
Dann verbleibt:

pv=String1_Leistung__W + String2_Leistung__W

Das gleiche gilt bei etotal. Den Generatorteil in dem setupOtherProducerXX Gerät angeben.

ZitatBeim Wert Generator_Energie_Gesamt__kWh habe ich nur das Problem, dass der Hybridinverter dieses Reading nicht erzeugt, aber dazu habe ich noch keine Idee wie ich diesen Wert über ein Jahr hinweg generiere, ausser ich verpasse dem Generator einen eigenen Energiezähler. Ich muss für die Statistik-Ermittlung noch herausfinden wie ich ein kumulierten Wert über 52 Wochen unter FHEM berechne.
Ich persönliche logge alle Energiewerte in MariaDB und werte nach Bedarf und Herzenslust per DbRep flexibel aus.
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

Burny4600

ZitatDie Generatorleistung ist doch kein PV, richtig?
Das stimmt, aber der Generator ist wie die Strings am Hybriydinverter als Energielieferant angeschlossen, und dient der Versorgung für die SV- und USV-Last.
Wohlgemerkt wenn es einen Hybridinverter gibt.

ZitatMariaDB
Das kenne ich noch nicht, und muss mich darüber erkundigen.

Aber ich denke ich habe die Lösung für die Ermittlung der gesamt kWh des Generators gefunden.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

DS_Starter

ZitatDas stimmt, aber der Generator ist wie die Strings am Hybriydinverter als Energielieferant angeschlossen, und dient der Versorgung für die SV- und USV-Last.
Wohlgemerkt wenn es einen Hybridinverter gibt.
Denke aber bitte daran ... wenn der Generator aus Sicht des Moduls als PV-Erzeugung gewertet wird (weil es als PV eingeht), dann verhagelt es dir die Prognose, da die ermittelte/aufgezeichnete PV-Energie nicht mit der real nur von den PV-Zellen generierte Energie übereinstimmt. Natürlich nur wenn der Generator arbeitet.
Auch wenn der Genarator physisch am WR angeschlossen ist, müssen wir die logische Struktur etwas anders gestalten.
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

Burny4600

ZitatAuch wenn der Genarator physisch am WR angeschlossen ist, müssen wir die logische Struktur etwas anders gestalten.

Ja, dass stimmt. Erst einmal einen Schritt nach dem anderen.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Prof. Dr. Peter Henning

Interessant sind noch drei weitere Datenpunkte (zwei von denen zeige ich bei mir im Diagramm an)

1.Die am heutigen Tag in die Batterie eingespeicherte und
2.die daraus bezogene Energiemenge.

Wenn man beide Werte über die Zeit aufintegriert, bekommt man einen guten Überblick über den Speicherverlust (und bevor jemand glaubt, schlauer zu sein: Die vom BYD-Speicher selbst gemeldeten Energiemengen sind notorisch ungenau). Diesen Speicherverlust über die Zeit zu betrachten, scheint ein guter Indikator für den Zustand des Speichers zu sein.

3.Der Eigenverbrauch des Wechselrichters. Der schluckt bei heftiger Aktivität (Solarer Zustrom oder Entladen des Speichers) so um die 40W bei mir.

LG

pah

Prof. Dr. Peter Henning

Und wenn ich schon am Fantasieren bin: Ich hatte vor Monaten schon mal vorgeschlagen, die Visualisierung von der Vorhersage zu trennen.

Das ist bei mir ja im FTUI2 und FTUI3 schon realisiert. Es gibt aber noch etwas, das ohne FTUI man verwenden könnte: Den guten alten FLOORPLAN. Vor vielen Jahren habe ich das mal, mit einem statischen Bild, für die Heizungsanlage gemacht (ist schon 2016 in den SmartHome Hacks publiziert).

Das könnte man etwas aufbohren, die Pfeile konfigurierbar machen (von wo nach wo?) und animieren. Dann könnte auch jeder seine Verbraucher und Erzeuger dort positionieren, wo er möchte.

LG

pah

grappa24

Frage und kleine Bitte:
- Kann man das Icon für den "Knoten" auch selbst bestimmen?
- Bitte falls möglich das Icon für den Inverter etwas nach rechts rücken / mittig setzen

D a n k e
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

DS_Starter

ZitatKann man das Icon für den "Knoten" auch selbst bestimmen?
Baue ich in das Attr flowGraphicControl ein.

ZitatBitte falls möglich das Icon für den Inverter etwas nach rechts rücken / mittig setzen
Ja, die ganze Inverterzeile muß ein kleines bisschen nach rechts. Vllt. heute Abend.

LG
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

Prof. Dr. Peter Henning

@grappa24: Die Zellen sollen angeblich 5,291 kW DC liefern, der WR genausoviel als Wechselstrom, und ebensoviel geht weiter ?

Das kann ich nicht ganz glauben.

LG

pah

300P

Der / die zugehörigen String-DC-Werte werden momentan von SF weder erfasst bzw. zugeordnet.
Aktuell zeigen die "PV-Zellen" (die Strings die dem WR zugeordnet wurden) daher (m.M.n.) nur den AC-Wert den der WR (in Summe) damit am Ende ins Hausnetz abgibt. O:-)
Das ist erst seit ein paar Tagen als Grafikanzeige dazugekommen und es wird daher auch (noch) nicht zwischen DC/AC unterschieden. ;)

Gruß
300P
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.