76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

DS_Starter

Moin,

ZitatIch suche bei der Balkengraphik die Möglichkeit den Abstand der Icons zum Oberen- bzw. Unterem-Rand zu vergrößern.
Lässt sich das einstellen?
Aktuell nicht wie 300P schon schrieb. Im Prinzip sollte es aber via graphicControl einbaubar sein.
Der Freiplatz zwischen der obersten Iconzeile und dem oberen Rand und der untersten Text/Iconzeile und dem unteren Rand, richtig?

@Gerd,
ja, damit kann man experimentieren. Wahrscheinlich wirst du je nach Wahl einen entsprechenden RAM-Verbrauch feststellen. Deswegen kann man das entsprechend seines Systems anpassen um eine Ausgewogenheit zwischen der vorhandenen Hardware und tendenziell besseren Ergebnissen herstellen zu können. 
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

ZitatDer Freiplatz zwischen der obersten Iconzeile und dem oberen Rand und der untersten Text/Iconzeile und dem unteren Rand, richtig?
Ja genau.
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

Soll der obere und untere Freiplatz getrennt voneinander einstellbar sein oder reicht ein Parameter um symmetrisch beide Freiräume einzustellen?
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

Morgen zusammen,

habe die V 1.52.3 in mein contrib geladen. Im graphicControl gibt es zwei Keys um die Abständen oben/unten in den Balkengrafik Ebenen einstellen zu können:

beamPaddingBottom Legt den Platz in px im Balkendiagramm fest, der zwischen der letzten Text- oder Iconreihe der jeweiligen Balkengrafik Ebene
und dem unteren Rand dieser Ebene eingefügt wird.
Der Wert gilt einheitlich für alle Balkengrafik Ebenen.
Wert: Ganzzahl, default: 0

beamPaddingTop Legt den Platz in px im Balkendiagramm fest, der zwischen dem oberen Rand der jeweiligen Balkengrafik Ebene und der ersten
Text- oder Iconreihe dieser Ebene eingefügt wird.
Der Wert gilt einheitlich für alle Balkengrafik Ebenen.
Wert: Ganzzahl, default: 0

Weiterhin stellt der Setter attrKeyVal eine Liste der verfügbaren zusammengesetzten Attribute zur Verfügung.  Nach Auswahl des Attributs kann man den/die Schlüssel setzen.

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

Burny4600

ZitatbeamPaddingBottom, beamPaddingTop

Das ging wieder einmal sehr schnell. Das passt. Danke.
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

Prima, habe die Version soeben eingecheckt, ist morgen früh im Regelupdate.

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

Persuasiv

Ich bin mir nicht sicher, ob ich hier richtig bin. Das Modul ließ sich problemlos definieren und meldet:

ZitatHerzlich Willkommen!
Die nächsten Abfragen führen sie durch die Grundinstallation.
Sind alle Eingaben vorgenommen, prüfen sie bitte die Konfiguration abschließend mit "set SolarVorhersage plantConfiguration check" oder mit Druck auf das angebotene Icon.
Korrigieren sie bitte eventuelle Fehler und beachten sie mögliche Hinweise.
(Die Anzeigesprache kann mit dem Attribut "ctrlLanguage" umgestellt werden.)
Bitte geben sie alle von Ihnen verwendeten Stringnamen mit "attr SolarVorhersage setupInverterStrings" an

Jetzt steht im Wiki:
ZitatNach der Definition wird der User durch einen Dialog geführt, der einige unerlässliche Einstellungen abfragt und in den entsprechenden Attributen und Readings persistiert.

Wo finde ich denn diesen Dialog bzw. wie starte ich den? Unter "set SolarVorhersage plantConfiguration check" erscheinen natürlich Fehler, weil die Konfiguration noch nicht abgeschlossen ist.

Besten Dank

DS_Starter

Das ist der Einstieg in den Dialog.

Als erste Anweisung steht ja da:

Bitte geben sie alle von Ihnen verwendeten Stringnamen mit "attr SolarVorhersage setupInverterStrings" an

Wenn du das machst, kommst du zum nächsten Schritt usw.
Die Formulierung im Wiki ist wohl etwas mißverständlich?

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

300P

#2903
Moin Zusammen !

Hier für diejenigen unter euch, die mehrere SMA Batteriewechselrichter nutzen und netzdienlich laden wollen. (Andere BWR natürlich mit Anpassung der Modus-Befehle)
Ich nutze im "ctrlUserExitFn" seit ein paar Tagen (u.a.) diesen Code und es läuft soweit gut damit.

Für 1 BWR ist der Code etwas tiefer auch dabei

{
# BEGIN ######## Netzdienliches Laden ################
  my $dt    = timestringsFromOffset (time, 0);
  my $hour  = $dt->{hour};                                                 # aktuelle Stunde in 24h format (00-23)
  my $timestart = 9;  # ab welcher Uhrzeit soll es sein                                       ===>> Wert evtl. anpassen
  my $timeend = 15;   # bis wieviel Uhr soll es sein                                          ===>> Wert evtl. anpassen

  if (int $hour >= $timestart && int $hour < $timeend ) {
          # Nur zwischen xy:00 bis max. xy:59 (!!!! $timeend -1 Stunde !!!!)  Uhr


    my $curpowerbatin01 = ReadingsNum ($name, 'Current_PowerBatIn_01', 0);
    my $curpowerbatin02 = ReadingsNum ($name, 'Current_PowerBatIn_02', 0);
    my $curpowerbatout01 = ReadingsNum ($name, 'Current_PowerBatOut_01', 0);
    my $curpowerbatout02 = ReadingsNum ($name, 'Current_PowerBatOut_02', 0);
    my $curbatcharge01 = CurrentVal ($name, 'Current_BatCharge_01', 0);         # SoC Bat01 aktuell
    my $curbatcharge02 = CurrentVal ($name, 'Current_BatCharge_02', 0);         # SoC Bat02 aktuell
    my $currentsurplus = (ReadingsNum ($name, 'Current_Surplus', 0) - 50);  # etwas abziehen zwecks weniger als Puffer
    my $batchargerequest01 = ReadingsNum ($name, 'Battery_ChargeRequest_01', 0); # Batterie01 muss geladen werden ?
    my $batchargerequest02 = ReadingsNum ($name, 'Battery_ChargeRequest_02', 0); # Batterie02 muss geladen werden ? 
    my $gridfriendlychargebat01 = ReadingsNum ($name, 'Battery_ChargeRecommended_01', 0); # Batterie01 recommended ?
    my $gridfriendlychargebat02 = ReadingsNum ($name, 'Battery_ChargeRecommended_02', 0); # Batterie02 recommended ?
    my $curbatchargemin01= 30;   # erst ab Mindes-BAT01-SOC XY netzdienlich                                   ===>> Wert evtl. anpassen 0..30
    my $curbatchargemin02= 30;   # erst ab Mindes-BAT02-SOC XY netzdienlich                                   ===>> Wert evtl. anpassen 0..30
    my $bwr01 = "MB_SBS25";      # Name des 1ten BWR-Modbus-Device                                            ===>> Wert evtl. anpassen
    my $bwr02 = "MB_SBS25_2";    # Name des 2ten BWR-Modbus-Device                                            ===>> Wert evtl. anpassen


    if (int $gridfriendlychargebat01 eq 0 || $gridfriendlychargebat02 eq 0) {
            # Nur wenn die Batterieladung01 oder 02 SF-Systemseitig nicht empfohlen wird dann

        Log3 ($name, 5, qq{$name - userFn -> Gridfriendlyloadrecommended Battery01 $gridfriendlychargebat01 - Battery02 $gridfriendlychargebat02 });
      my $curbatcharge01 = CurrentVal ($name, 'Current_BatCharge_01', 0);         # SoC Bat01 aktuell
      my $curbatcharge02 = CurrentVal ($name, 'Current_BatCharge_02', 0);         # SoC Bat02 aktuell

         if (int $gridfriendlychargebat01 eq 0 && $batchargerequest01 eq 0 && $curbatcharge01 > $curbatchargemin01) {
              # wenn bei Bat01 = 0 -beides- und SOC groß genug ->>dann unterbinden Laden Bat01
              Log3 ($name, 5, qq{$name - userFn -> Gridfriendlyloadrecommended only Battery01 Reading = $gridfriendlychargebat01 });
              fhem("set $bwr01 Set_Leistung_W $currentsurplus"); #  Watt Netzleistung am Übergabemesspunkt (WR1)
              fhem("set $bwr01 Set_Aktiv 802");  # 802 - Steuerung aktiv (WR1)
              Log3 ($name, 3, qq{$name - userFn -> Batteryload $bwr01 => activ  - BatIn01 $curpowerbatin01  BatOut01 $curpowerbatout01  });
            }
      else {
             if (int $gridfriendlychargebat01 eq 1 || $batchargerequest01 eq 1 || (($curbatcharge01 - 3) <= $curbatchargemin01)) {
                   # wenn bei Bat01 = beides oder nur eins auf 1 steht ---dann bitte jetzt Steuerung  aus / kein Laden unterbinden Bat01
                   Log3 ($name, 5, qq{$name - userFn -> Gridfriendlyloadrecommended =>> Battery01 Reading = $gridfriendlychargebat01 and BatChargerequest =>> Battery01 Reading = $batchargerequest01 });
                   fhem("set $bwr01 Set_Leistung_W 0"); #  Watt Netzleistung am Übergabemesspunkt (WR1)
                   fhem("set $bwr01 Set_Aktiv 803");  # 803 - Steuerung nicht aktiv (WR1)
                   Log3 ($name, 3, qq{$name - userFn -> Batteryload $bwr01 => not activ  - BatIn01 $curpowerbatin01  BatOut01 $curpowerbatout01  });
                 }
             }

         if (int $gridfriendlychargebat02 eq 0  && $batchargerequest02 eq 0 && $curbatcharge02 > $curbatchargemin02) {
              # wenn bei Bat02 = 0 -beides- und SOC groß genug  --->>dann unterbinden Laden Bat02
              Log3 ($name, 5, qq{$name - userFn -> Gridfriendlyloadrecommended only Battery02 Reading = $gridfriendlychargebat02 }); 
              fhem("set $bwr02 Set_Leistung_W $currentsurplus");  #  Watt Netzleistung am Übergabemesspunkt (WR2)
              fhem("set $bwr02 Set_Aktiv 802");   # 802 - Steuerung aktiv (WR2)
              Log3 ($name, 3, qq{$name - userFn -> Batteryload $bwr02 => not activ  - BatIn02 $curpowerbatin02  BatOut02 $curpowerbatout02 });
            }
      else {
             if (int $gridfriendlychargebat02 eq 1 || int $batchargerequest02 eq 1 || (($curbatcharge02 - 3) <= $curbatchargemin02)) {
                   # wenn bei Bat02 = beides oder nur eins auf 1 steht ---dann bitte jetzt Steuerung  aus / kein Laden unterbinden Bat02
                   Log3 ($name, 5, qq{$name - userFn -> Gridfriendlyloadrecommended =>> Battery02 Reading = $gridfriendlychargebat02 and BatChargerequest =>> Battery02 Reading = $batchargerequest02 });
                   fhem("set $bwr02 Set_Leistung_W 0"); #  Watt Netzleistung am Übergabemesspunkt (WR2)
                   fhem("set $bwr02 Set_Aktiv 803");  # 803 - Steuerung nicht aktiv (WR2)
                   Log3 ($name, 3, qq{$name - userFn -> Batteryload $bwr02 => not activ  - BatIn02 $curpowerbatin02  BatOut02 $curpowerbatout02  });
                }
             }

      }
  }
# ENDE ######## Netzdienliches Laden ################

}

Hier nur für 1 BWR:

{
# BEGIN ######## Netzdienliches Laden ################
  my $dt    = timestringsFromOffset (time, 0);
  my $hour  = $dt->{hour};                                                 # aktuelle Stunde in 24h format (00-23)
  my $timestart = 9;  # ab welcher Uhrzeit soll es sein                                       ===>> Wert evtl. anpassen
  my $timeend = 15;   # bis wieviel Uhr soll es sein                                          ===>> Wert evtl. anpassen

  if (int $hour >= $timestart && int $hour < $timeend ) {
          # Nur zwischen xy:00 bis max. xy:59 (!!!! $timeend -1 Stunde !!!!)  Uhr


    my $curpowerbatin01 = ReadingsNum ($name, 'Current_PowerBatIn_01', 0);
    my $curpowerbatout01 = ReadingsNum ($name, 'Current_PowerBatOut_01', 0);
    my $curbatcharge01 = CurrentVal ($name, 'Current_BatCharge_01', 0);         # SoC Bat01 aktuell
    my $currentsurplus = (ReadingsNum ($name, 'Current_Surplus', 0) - 50);  # etwas abziehen zwecks weniger als Puffer
    my $batchargerequest01 = ReadingsNum ($name, 'Battery_ChargeRequest_01', 0); # Batterie01 muss geladen werden ?
    my $gridfriendlychargebat01 = ReadingsNum ($name, 'Battery_ChargeRecommended_01', 0); # Batterie01 recommended ?
    my $curbatchargemin01= 30;   # erst ab Mindes-BAT01-SOC XY netzdienlich                                   ===>> Wert evtl. anpassen 0..30
    my $bwr01 = "MB_SBS25";      # Name des 1ten BWR-Modbus-Device                                            ===>> Wert evtl. anpassen


    if (int $gridfriendlychargebat01 eq 0) {
            # Nur wenn die Batterieladung01 SF-Systemseitig nicht empfohlen wird dann

        Log3 ($name, 5, qq{$name - userFn -> Gridfriendlyloadrecommended Battery01 $gridfriendlychargebat01 });
      my $curbatcharge01 = CurrentVal ($name, 'Current_BatCharge_01', 0);         # SoC Bat01 aktuell

         if (int $gridfriendlychargebat01 eq 0 && $batchargerequest01 eq 0 && $curbatcharge01 > $curbatchargemin01) {
              # wenn bei Bat01 = 0 -beides- und SOC groß genug ->>dann unterbinden Laden Bat01
              Log3 ($name, 5, qq{$name - userFn -> Gridfriendlyloadrecommended only Battery01 Reading = $gridfriendlychargebat01 });
              fhem("set $bwr01 Set_Leistung_W $currentsurplus"); #  Watt Netzleistung am Übergabemesspunkt (WR1)
              fhem("set $bwr01 Set_Aktiv 802");  # 802 - Steuerung aktiv (WR1)
              Log3 ($name, 3, qq{$name - userFn -> Batteryload $bwr01 => activ  - BatIn01 $curpowerbatin01  BatOut01 $curpowerbatout01  });
            }
      else {
             if (int $gridfriendlychargebat01 eq 1 || $batchargerequest01 eq 1 || (($curbatcharge01 - 3) <= $curbatchargemin01)) {
                   # wenn bei Bat01 = beides oder nur eins auf 1 steht ---dann bitte jetzt Steuerung  aus / kein Laden unterbinden Bat01
                   Log3 ($name, 5, qq{$name - userFn -> Gridfriendlyloadrecommended =>> Battery01 Reading = $gridfriendlychargebat01 and BatChargerequest =>> Battery01 Reading = $batchargerequest01 });
                   fhem("set $bwr01 Set_Leistung_W 0"); #  Watt Netzleistung am Übergabemesspunkt (WR1)
                   fhem("set $bwr01 Set_Aktiv 803");  # 803 - Steuerung nicht aktiv (WR1)
                   Log3 ($name, 3, qq{$name - userFn -> Batteryload $bwr01 => not activ  - BatIn01 $curpowerbatin01  BatOut01 $curpowerbatout01  });
                 }
            }
        }
     }
# ENDE ######## Netzdienliches Laden ################

}


ACHTUNG:
Voraussetzung ist das die Modbus-Device bereits existieren und sauber dazu passend eingerichtet sind !

obj-h40149-expr $val
obj-h40149-len 2
obj-h40149-name SBS25_Set_Leistung_W
obj-h40149-poll once
obj-h40149-reading Set_Leistung_W
obj-h40149-set 1
obj-h40149-unpack I>
obj-h40151-expr $val
obj-h40151-name SBS25_Set_Aktiv
obj-h40151-poll once
obj-h40151-reading Set_Aktiv
obj-h40151-set 1

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.

Persuasiv

Zitat von: DS_Starter am 18 Mai 2025, 14:05:59Die Formulierung im Wiki ist wohl etwas mißverständlich?

LG,
Heiko

Besten Dank! Ich hatte irgendwie einen geführten Dialog erwartet (ähnlich eines Installationsdialogs). Jetzt habe ich es aber vermutlich verstanden.

DS_Starter

#2905
Nabend zusammen,

in meinem contrib liegt die V 1.52.4.

In Vorbereitung der Hybridinverterintegration ist bei den Invertern im setupInverterDevXX der bisherige Schlüssel "pv" in "pvOut" umbenannt und es gibt einen neuen Schlüssel "pvIn" für die DC Eingangsleistung aus den Solarzellen. pvIn wird nun auch in der Flußgrafik unterhalb der Solarzelle angezeigt.
Solange pvIn nicht gesetzt ist, wird dort 0 angezeigt.

pvIn    Ein Reading, welches die aktuelle DC PV-Eingangsleistung in W liefert (Summe aller angeschlossenen Strings).
    Es wird ein positiver numerischer Wert erwartet.
   
pvOut    Ein Reading, welches die aktuelle Leistung aus PV-Erzeugung, die an das Hausnetz oder öffentliche Netz
    geliefert wird, bereitstellt. Es wird ein positiver numerischer Wert erwartet.

Die Umstellung von pv -> pvOut erfolgt automatisch. Bitte Restart nicht vergessen!
pvIn ist dann noch manuell zu setzen, ist jedoch kein Problem wenn der Schlüssel später eingefügt wird. Bis dahin wird lediglich "0" angezeigt, sonst hat es keine Nachteile.

Weiterhin_

- die Online-Hilfe zu setupInverterDevXX ist für eine bessere Übersicht Inverterspezifisch organisiert
- die Flußgrafik habe ich noch etwas ausgerichtet wie von Peter angemerkt (#2913)
- fix des Problems "devision by zero" (#2926)
- das Attr ctrlSpecialReadings hat eine neue Auswahl "BatWeightedTotalSOC" zur Anzeige des resultierenden SOC aller Batterien

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

Univega06

Hallo Heiko,
ich bin endlich dazu gekommen nochmal etwas zu forschen....
Wo kommt beim "get ..... nextHours" der Wert "sunaz" her. Dieser verändert sich über den Tag nur um +/-70, sollte doch aber volle 360 ° haben?!

Zitat von: DS_Starter am 12 Mai 2025, 22:33:17Hallo Kai,

ich sehe bei dir keinen Fehler und habe deswegen bei mir zwei Instanzen nachgestellt.

..........


Danke und Grüße
Kai

DS_Starter

#2907
sunaz wird durch eine Subroutine es Astro-Moduls geliefert und läuft auch bis 360 Grad.
Hier der Ausschnitt der Rawdata von heute:

2025051801 => hod: 01, nod: So, sunaz: 350, sunalt: -19, rad1h: -, wcc: 100, wid: 61, rr1c: 0.00, pvrl: -, con: 734, gcons: 25, temp: 7
2025051802 => hod: 02, nod: So, sunaz: 5, sunalt: -19, rad1h: -, wcc: 100, wid: 3, rr1c: 0.50, pvrl: -, con: 627, gcons: 23, temp: 9
2025051803 => hod: 03, nod: So, sunaz: 20, sunalt: -17, rad1h: -, wcc: 100, wid: 61, rr1c: 0.30, pvrl: -, con: 594, gcons: 22, temp: 9
2025051804 => hod: 04, nod: So, sunaz: 34, sunalt: -12, rad1h: -, wcc: 100, wid: 61, rr1c: 0.30, pvrl: -, con: 567, gcons: 25, temp: 9
2025051805 => hod: 05, nod: So, sunaz: 47, sunalt: -6, rad1h: -, wcc: 100, wid: 61, rr1c: 0.30, pvrl: -, con: 636, gcons: 24, temp: 9
2025051806 => hod: 06, nod: So, sunaz: 59, sunalt: 1, rad1h: -, wcc: 89, wid: 80, rr1c: 0.00, pvrl: 15, con: 638, gcons: 23, temp: 9
2025051807 => hod: 07, nod: So, sunaz: 70, sunalt: 10, rad1h: -, wcc: 100, wid: 61, rr1c: 0.00, pvrl: 189, con: 523, gcons: 23, temp: 9
2025051808 => hod: 08, nod: So, sunaz: 82, sunalt: 19, rad1h: -, wcc: 100, wid: 3, rr1c: 0.00, pvrl: 835, con: 1288, gcons: 28, temp: 10
2025051809 => hod: 09, nod: So, sunaz: 93, sunalt: 28, rad1h: -, wcc: 100, wid: 3, rr1c: 0.00, pvrl: 2649, con: 1603, gcons: 35, temp: 11
2025051810 => hod: 10, nod: So, sunaz: 106, sunalt: 37, rad1h: -, wcc: 74, wid: 2, rr1c: 0.00, pvrl: 4350, con: 976, gcons: 20, temp: 12
2025051811 => hod: 11, nod: So, sunaz: 121, sunalt: 46, rad1h: -, wcc: 80, wid: 2, rr1c: 0.00, pvrl: 3453, con: 913, gcons: 24, temp: 13
2025051812 => hod: 12, nod: So, sunaz: 140, sunalt: 53, rad1h: -, wcc: 60, wid: 3, rr1c: 0.00, pvrl: 2037, con: 888, gcons: 15, temp: 15
2025051813 => hod: 13, nod: So, sunaz: 163, sunalt: 58, rad1h: -, wcc: 52, wid: 2, rr1c: 0.00, pvrl: 3474, con: 1156, gcons: 43, temp: 15
2025051814 => hod: 14, nod: So, sunaz: 190, sunalt: 58, rad1h: -, wcc: 96, wid: 3, rr1c: 0.20, pvrl: 2350, con: 844, gcons: 32, temp: 15
2025051815 => hod: 15, nod: So, sunaz: 214, sunalt: 55, rad1h: -, wcc: 20, wid: 80, rr1c: 0.00, pvrl: 4184, con: 1015, gcons: 10, temp: 15
2025051816 => hod: 16, nod: So, sunaz: 235, sunalt: 48, rad1h: -, wcc: 51, wid: 2, rr1c: 0.00, pvrl: 2127, con: 612, gcons: 3, temp: 16
2025051817 => hod: 17, nod: So, sunaz: 250, sunalt: 40, rad1h: -, wcc: 92, wid: 3, rr1c: 0.00, pvrl: 3355, con: 1920, gcons: 58, temp: 16
2025051818 => hod: 18, nod: So, sunaz: 264, sunalt: 30, rad1h: -, wcc: 100, wid: 3, rr1c: 0.00, pvrl: 1168, con: 1550, gcons: 57, temp: 16
2025051819 => hod: 19, nod: So, sunaz: 276, sunalt: 21, rad1h: -, wcc: 100, wid: 3, rr1c: 0.00, pvrl: 956, con: 633, gcons: 26, temp: 15
2025051820 => hod: 20, nod: So, sunaz: 287, sunalt: 12, rad1h: -, wcc: 34, wid: 2, rr1c: 0.00, pvrl: 418, con: 676, gcons: 23, temp: 14
2025051821 => hod: 21, nod: So, sunaz: 298, sunalt: 4, rad1h: -, wcc: 44, wid: 2, rr1c: 0.00, pvrl: 96, con: 601, gcons: 24, temp: 13
2025051822 => hod: 22, nod: So, sunaz: 310, sunalt: -4, rad1h: -, wcc: 98, wid: 3, rr1c: 0.00, pvrl: -, con: 714, gcons: 23, temp: 13

Und von NextHours:

NextHour00 => starttime: 2025-05-18 23:00:00, day: 18, hourofday: 24, today: 1
              pvapifc: 0, pvaifc: -, pvfc: 0, aihit: 0
              confc: 22, confcEx: 22, weatherid: 103, wcc: 98, rr1c: 0.00, temp=12.20
              rad1h: 0, sunaz: 336, sunalt: -16, DoN: 0
              rrange: 0.00, crange: -, DaysInRange: -, correff: 1.00/-
              soc01: -, soc02: -, soc03: -, socprogwhsum: -
              rcdchargebat01: -, rcdchargebat02: -, rcdchargebat03: -
NextHour01 => starttime: 2025-05-19 00:00:00, day: 19, hourofday: 01, today: 0
              pvapifc: 0, pvaifc: -, pvfc: 0, aihit: 0
              confc: 22, confcEx: 22, weatherid: 103, wcc: 100, rr1c: 0.00, temp=11.80
              rad1h: 0, sunaz: 350, sunalt: -18, DoN: 0
              rrange: 0.00, crange: -, DaysInRange: -, correff: 1.00/-
              soc01: -, soc02: -, soc03: -, socprogwhsum: -
              rcdchargebat01: -, rcdchargebat02: -, rcdchargebat03: -
NextHour02 => starttime: 2025-05-19 01:00:00, day: 19, hourofday: 02, today: 0
              pvapifc: 0, pvaifc: -, pvfc: 0, aihit: 0
              confc: 22, confcEx: 22, weatherid: 103, wcc: 100, rr1c: 0.00, temp=11.10
              rad1h: 0, sunaz: 5, sunalt: -19, DoN: 0
              rrange: 0.00, crange: -, DaysInRange: -, correff: 1.00/-
              soc01: -, soc02: -, soc03: -, socprogwhsum: -
              rcdchargebat01: -, rcdchargebat02: -, rcdchargebat03: -
NextHour03 => starttime: 2025-05-19 02:00:00, day: 19, hourofday: 03, today: 0
              pvapifc: 0, pvaifc: -, pvfc: 0, aihit: 0
              confc: 22, confcEx: 22, weatherid: 103, wcc: 100, rr1c: 0.00, temp=10.50
              rad1h: 0, sunaz: 20, sunalt: -17, DoN: 0
              rrange: 0.00, crange: -, DaysInRange: -, correff: 1.00/-
              soc01: -, soc02: -, soc03: -, socprogwhsum: -
              rcdchargebat01: -, rcdchargebat02: -, rcdchargebat03: -
NextHour04 => starttime: 2025-05-19 03:00:00, day: 19, hourofday: 04, today: 0
              pvapifc: 0, pvaifc: -, pvfc: 0, aihit: 0
              confc: 21, confcEx: 21, weatherid: 102, wcc: 75, rr1c: 0.00, temp=10.10
              rad1h: 0, sunaz: 34, sunalt: -12, DoN: 0
              rrange: 0.00, crange: -, DaysInRange: -, correff: 1.00/-
              soc01: -, soc02: -, soc03: -, socprogwhsum: -
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

Univega06

#2908
Okay, die werte sehen wie gesagt bei mir anders aus.
Das Astro-Modul ist im SF integriert?


Nachtrag: Habe den Fehler gefunden. Im global war nicht die korrekte Position angegeben. Jetzt passen die Werte!

Danke und Grüße
Kai

Persuasiv

Ist ein Sunny Tripower Smart Energy laut deines Verständnisses ein Hybridinverter?