Neue SMA Tripower X Reihe // SMA Tripower Smart Energy

Welche Geräte sollen noch implementiert werden?
Was sollte man ändern / verbessern / ergänzen an der Solaranzeige? Hier kann Jeder seine Ideen einbringen.
Außerdem steht hier, woran gerade gerbeitet wird.

Moderator: Ulrich

Forumsregeln
Wenn neue Geräte implementiert werden sollen ist die Protokollbeschreibung der Schnittstelle vom Hersteller Voraussetzung.

Bitte nur konkrete Ideen hier eintragen und in jedem Beitrag bitte nur eine Erweiterung / Änderung, damit das Ganze noch überschaubar bleibt. Ein ganzes Sammelsorium von Ideen in einem Thread ist zu unübersichtlich. Nicht alles kann und wird auch verwirklicht werden.
Benutzeravatar
Ulrich
Administrator
Beiträge: 5538
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 124 Mal
Danksagung erhalten: 834 Mal

Re: Neue SMA Tripower X Reihe // SMA Tripower Smart Energy

Beitrag von Ulrich »

DeBaschdi hat geschrieben:
Mo 19. Jun 2023, 07:18
Ich denke ich habe den Fehler Gefunden, die ursprüngliche berechnung der DC_Leistung durch Summieren von 1...bis6 wird nachträglich durch

Code: Alles auswählen

    
    $rc = $funktionen->modbus_register_lesen($COM1,"30869","0002","S32","03");
    $aktuelleDaten["DC_Leistung"] = ($rc["Wert"]);
    
Überschrieben, mein tripower 10 SE liefert in diesem Register 0.00 ?!
Hallo DeBaschdi,

kannst du bitte die 2 Zeilen folgendermaßen ändern:

Code: Alles auswählen

    $rc = $funktionen->modbus_register_lesen($COM1,"30869","0002","S32","03");
    if ($rc["Wert"] > 0) {
      $aktuelleDaten["DC_Leistung"] = ($rc["Wert"]);
    }
Dann sollte das Problem behoben sein.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

DeBaschdi
Beiträge: 300
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 15 Mal
Danksagung erhalten: 55 Mal

Re: Neue SMA Tripower X Reihe // SMA Tripower Smart Energy

Beitrag von DeBaschdi »

Hallo Ulrich,
sorry für die späte Rückmeldung, hatte viel zu kämpfen.
Nun aber das positive, dein Fix funktioniert.

Bezüglich der Tripower SE Reihe, könntest du bitte 2 Modbusregister hinzu fügen ?
Würde die aktuelle Batterie Lade, sowie Entladeleistung in W betreffen.

Code: Alles auswählen

    
    $rc = $funktionen->modbus_register_lesen($COM1,"31393","0002","U32","03");
    $aktuelleDaten["BatterieLadeleistung"] = $rc["Wert"];

    $rc = $funktionen->modbus_register_lesen($COM1,"31395","0002","U32","03");
    $aktuelleDaten["BatterieEntladeleistung"] = $rc["Wert"];
    

So, und nun zum nächsten Problem.
Ich habe gestern auch den Tripower X 15-50 (3 Tracker) in Betrieb genommen, eine Auslesung scheint aktuell nicht (richtig) möglich zu sein
Ausgelesen wird aber.

Code: Alles auswählen

21.06. 03:29:16    -Verarbeitung von: '3.user.config.php'   Regler: 27
21.06. 03:29:16 |----------------   Start  sma_wr.php    -------------------------- 
21.06. 03:29:16    -SMA: 192.168.20.238 Port: 502 GeräteID: 1
21.06. 03:29:16 !! -Keine gültigen Daten empfangen.
21.06. 03:29:16    -Solarleistung: 0 Watt -  WattstundenGesamtHeute: 0
21.06. 03:29:16 |----------------   Stop   sma_wr.php    -------------------------- 
21.06. 03:29:18    -Multi Regler Auslesen [Stop].
Bild
Im Anhang mal die von SMA bereitgestellten Register Informationen
Register_Tripower_X.pdf
(3.45 MiB) 119-mal heruntergeladen

DeBaschdi
Beiträge: 300
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 15 Mal
Danksagung erhalten: 55 Mal

Re: Neue SMA Tripower X Reihe // SMA Tripower Smart Energy

Beitrag von DeBaschdi »

Auf Wundersame art und Weise klappt nun das Auslesen "ohne Gemecker"
liegt vermutlich am Betriebsmodus ?!

Code: Alles auswählen

21.06. 06:11:08 |----------------   Start  sma_wr.php    -------------------------- 
21.06. 06:11:08    -SMA: 192.168.20.238 Port: 502 GeräteID: 1
21.06. 06:11:08 *- -Geräteklasse: 8001
21.06. 06:11:08 *- -Gerätetyp: 9491
21.06. 06:11:08    -MQTT Daten zum [ 192.168.20.1 ] senden.
21.06. 06:11:08 *  -Daten zur entfernten InfluxDB [ stp15 ] gesendet. 
21.06. 06:11:08    -Multi-Regler-Ausgang. 7
21.06. 06:11:09 MQT-MQTT Daten zum Broker gesendet bzw. vom Broker empfangen. Adresse: 192.168.20.1 Port: 1883
21.06. 06:11:15    -OK. Datenübertragung erfolgreich.
21.06. 06:11:15    -Solarleistung: 0 Watt -  WattstundenGesamtHeute: 4.88
21.06. 06:11:15 |----------------   Stop   sma_wr.php    -------------------------- 
Allerdings liefern die DC Eingänge keine Werte, falsche / andere Register ?

Der Tripower X hat 3 MPPT, jeweils mit 2 Eingängen ( 2x A, 2x B, 2x C)
bis Stand Jetzt habe ich 2 Strings angeschlossen, einen auf B, den anderen auf C, A ist noch Frei, diese Seite wird heute oder morgen erst belegt.

Auslese aus Solaranzeige :
Bild

Auslese aus Webinterface des WR :
Bild

DeBaschdi
Beiträge: 300
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 15 Mal
Danksagung erhalten: 55 Mal

Re: Neue SMA Tripower X Reihe // SMA Tripower Smart Energy

Beitrag von DeBaschdi »

Mir scheint als ob sich beim Tripower X diese Register nicht auslesen lassen ?! WTF ?!
hab versucht da was rein zu skripten, ohne erfolg

Code: Alles auswählen

    if ($aktuelleDaten["Geraetetype"] == "9491") {  // Tripower X letzte Änderung 21.06.2023
      $rc = $funktionen->modbus_register_lesen($COM1,"30961","0002","S32","03");   // hinzugefügt 21.06.2023
      $aktuelleDaten["DC_Leistung1"] = $rc["Wert"];                                // hinzugefügt 21.06.2023
      $rc = $funktionen->modbus_register_lesen($COM1,"30967","0002","S32","03");   // hinzugefügt 21.06.2023
      $aktuelleDaten["DC_Leistung2"] = $rc["Wert"];                                // hinzugefügt 21.06.2023
      $rc = $funktionen->modbus_register_lesen($COM1,"30973","0002","S32","03");   // hinzugefügt 21.06.2023
      $aktuelleDaten["DC_Leistung3"] = $rc["Wert"];                                // hinzugefügt 21.06.2023
      $rc = $funktionen->modbus_register_lesen($COM1,"31213","0002","S32","03");   // hinzugefügt 21.06.2023
      $aktuelleDaten["DC_Leistung4"] = $rc["Wert"];                                // hinzugefügt 21.06.2023
      $rc = $funktionen->modbus_register_lesen($COM1,"31219","0002","S32","03");   // hinzugefügt 21.06.2023
      $aktuelleDaten["DC_Leistung5"] = $rc["Wert"];                                // hinzugefügt 21.06.2023   
    }

DeBaschdi
Beiträge: 300
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 15 Mal
Danksagung erhalten: 55 Mal

Re: Neue SMA Tripower X Reihe // SMA Tripower Smart Energy

Beitrag von DeBaschdi »

Zur info an Tripower X besitzer, in der aktuellen Firmware 02.06.06.R funktioniert Das Auslesen der einzelnen Stringwerte nicht,
die Modbusregister zeigen alle auf den gleichen Channel, es fehlt eine Differenzierung [0] [1] und [2], das gilt für Leistung, Spannung und Strom der String Register.

Ein Ticket bei SMA ist offen.
was allerdings funktioniert ist die SMA Live API, diese ist lokal und liefert eine .json Datei mit den aktuellen Werten, lässt sich sogar problemlos alle paar Sekunden abrufen :)

für alle interessierte hier mein Python Skript welches meinen STPX15 mit den fehlenden Werten ausliest, mich interessiert nur die Leistung der einzelnen Stings sowie der Gesamtertrag nach IBN.

Code: Alles auswählen

import requests
import json
import warnings

warnings.filterwarnings('ignore')

user = "Admin"
password = "geheim"
url = "https://192.168.20.238"

def updateTripower():
    loginurl = 'https://192.168.20.238/api/v1/token'
    postdata = {'grant_type': 'password',
            'username': user,
            'password': password,
            }

    # Login & Extract Access-Token
    try:
        x = requests.post(loginurl, data = postdata, timeout=5, verify=False)
    except requests.exceptions.ConnectTimeout:
        print("error")
        sys.exit(1)
    token = x.json()["access_token"] 
    headers = { "Authorization" : "Bearer " + token }

    data_url = url + '/api/v1/measurements/live'
    x = requests.post(data_url, headers = headers, data='[{"componentId":"IGULD:SELF"}]' ,verify=False)
    
    livedata = x.json()
    
    pool = "0"
    garage = "0"
    scheune = "0"
    wh_ibn = "0"
    wh_today = "0"

    for data in livedata:
        if data['channelId'] == 'Measurement.DcMs.Watt[]':
            pool = round(data['values'][0]['values'][0]) #Poolseite
            garage = round(data['values'][0]['values'][1]) #Garage
            scheune = round(data['values'][0]['values'][2]) #Scheune
        if data['channelId'] == 'Measurement.Metering.TotWhOut':
            wh_ibn = round(data['values'][0]['value']) #Ertrag seit IBN    
    return pool, garage, scheune, wh_ibn, wh_today

if __name__ == '__main__':
    pool, garage, scheune, wh_ibn, wh_today = updateTripower()
    print(pool, garage, scheune, wh_ibn, wh_today) 
Um die Daten in Solaranzeige zu bekommen nutze ich eine _math datei, wichtig ist den Tripower X zuerst, danach erst den z.b Tripower SE abzufragen.

Code: Alles auswählen

<?php
$heute = date("d.m.Y \\u\\m H:i \\U\\h\\r");
$aktuelleDaten["Time_Date"] = $heute["Wert"];

if ($aktuelleDaten["Geraetetype"] == "19051" ) {
      // SUNNY Tripower X Serie
      // STPX15 auslesen
      $stp15_befehl = "python3 /var/www/html/stpx15.py";
      $temp_stp15 = shell_exec($stp15_befehl);
      $stp15_werte = preg_split("/[\s,\n \]]+/", $temp_stp15);
      $funktionen->log_schreiben("Abfrage Werte des STPX15 : ".$temp_stp15,"* ",7);
      // Plausible Werte STPX15?
      if(strpos($temp_stp15, 'Error') !== false){
        $funktionen->log_schreiben("-Error- Abfrage des STPX15 fehlgeschlagen: ".$temp_stp15,"* ",7);
        $aktuelleDaten["DC_Leistung_Poolseite"] = "0";
        $aktuelleDaten["DC_Leistung_Garagenseite"] = "0";
        $aktuelleDaten["DC_Leistung_Scheunenseite"] = "0";
        $aktuelleDaten["DC_Leistung_STPX15"] = "0";
        $aktuelleDaten["Ertrag_IBN_STPX15"] = "0";
        $aktuelleDaten["Ertrag_Heute_STPX15"] = "0";
        } else {
        $aktuelleDaten["DC_Leistung_Poolseite"] = $stp15_werte[0];
        if ($aktuelleDaten["DC_Leistung_Poolseite"] < 0) {
            $aktuelleDaten["DC_Leistung_Poolseite"] = "0";
          }
        $aktuelleDaten["DC_Leistung_Garagenseite"] = $stp15_werte[1];
        if ($aktuelleDaten["DC_Leistung_Garagenseite"] < 0) {
            $aktuelleDaten["DC_Leistung_Garagenseite"] = "0";
          }
        $aktuelleDaten["DC_Leistung_Scheunenseite"] = $stp15_werte[2];
        if ($aktuelleDaten["DC_Leistung_Scheunenseite"] < 0) {
            $aktuelleDaten["DC_Leistung_Scheunenseite"] = "0";
          }
        $aktuelleDaten["Ertrag_IBN_STPX15"] = $stp15_werte[3];
        $aktuelleDaten["DC_Leistung_STPX15"] =  $aktuelleDaten["DC_Leistung_Poolseite"] + $aktuelleDaten["DC_Leistung_Garagenseite"] + $aktuelleDaten["DC_Leistung_Scheunenseite"];
        $aktuelleDaten["Ertrag_Heute_STPX15"] = $stp15_werte[4];
        $funktionen->log_schreiben("Include für STPX15 durchlaufen","* ",7);
        }

      // Um Summen zu bilden, den STP10SE erneut abfragen
      $COM1 = fsockopen("192.168.20.237", $WR_Port, $errno, $errstr, 5);   
      $rc = $funktionen->modbus_register_lesen($COM1,"30529","0002","S32","03");
      $aktuelleDaten["Ertrag_IBN_STP10SE"] = ($rc["Wert"]);
      $rc = $funktionen->modbus_register_lesen($COM1,"30535","0002","U32","03");
      $aktuelleDaten["Ertrag_Heute_STP10SE"] = ($rc["Wert"]);
      $rc = $funktionen->modbus_register_lesen($COM1,"30583","0002","U32","03");
      $aktuelleDaten["Einspeisung_Wh"] = $rc["Wert"];
      $rc = $funktionen->modbus_register_lesen($COM1,"30581","0002","U32","03");
      $aktuelleDaten["Bezug_Wh"] = $rc["Wert"];
      $rc = $funktionen->modbus_register_lesen($COM1,"31393","0002","U32","03");
      $aktuelleDaten["SpeicherLadeleistung"] = $rc["Wert"];
      $rc = $funktionen->modbus_register_lesen($COM1,"31395","0002","U32","03");
      $aktuelleDaten["SpeicherEntladeleistung"] = $rc["Wert"];
      $rc = $funktionen->modbus_register_lesen($COM1,"30865","0002","S32","03");
      $aktuelleDaten["Leistung_Bezug"] = $rc["Wert"];
      $rc = $funktionen->modbus_register_lesen($COM1,"30867","0002","S32","03");
      $aktuelleDaten["Leistung_Einspeisung"] = $rc["Wert"];

      $rc = $funktionen->modbus_register_lesen($COM1,"30845","0002","U32","03");
      $aktuelleDaten["SpeicherLadestand_SOC"] = ($rc["Wert"]);
      $rc = $funktionen->modbus_register_lesen($COM1,"30773","0002","S32","03");
      $aktuelleDaten["DC_Leistung_Straßenseite"] = $rc["Wert"];
      $rc = $funktionen->modbus_register_lesen($COM1,"30961","0002","S32","03");
      $aktuelleDaten["DC_Leistung_Terassenseite"] = $rc["Wert"];

      // Summen bilden
      $aktuelleDaten["DC_Leistung_STP10SE"] = $aktuelleDaten["DC_Leistung_Terassenseite"] + $aktuelleDaten["DC_Leistung_Straßenseite"];
      $aktuelleDaten["Summe_DC_Leistung"] = $aktuelleDaten["DC_Leistung_STP10SE"] + $aktuelleDaten["DC_Leistung_STPX15"];
      $aktuelleDaten["Summe_Ertrag_IBN"] = $aktuelleDaten["Ertrag_IBN_STP10SE"] + $aktuelleDaten["Ertrag_IBN_STPX15"];
      $aktuelleDaten["Summe_Ertrag_Heute"] = $aktuelleDaten["Ertrag_Heute_STP10SE"] + $aktuelleDaten["Ertrag_Heute_STPX15"];

      $aktuelleDaten["PV_Direktverbrauchsleistung"] = $aktuelleDaten["Summe_DC_Leistung"] - $aktuelleDaten["SpeicherEntladeleistung"] - $aktuelleDaten["SpeicherLadeleistung"] - $aktuelleDaten["Leistung_Einspeisung"];
      if ($aktuelleDaten["PV_Direktverbrauchsleistung"] < 0) {
        $aktuelleDaten["PV_Direktverbrauchsleistung"] = 0;
      }
      $aktuelleDaten["Eigenverbrauchsleistung"] = $aktuelleDaten["PV_Direktverbrauchsleistung"] + $aktuelleDaten["SpeicherEntladeleistung"];
      if ($aktuelleDaten["Eigenverbrauchsleistung"] < 0) {
        $aktuelleDaten["Eigenverbrauchsleistung"] = 0;
      }
      $aktuelleDaten["Hausverbrauch"] = $aktuelleDaten["Eigenverbrauchsleistung"] + $aktuelleDaten["Leistung_Bezug"];
      $aktuelleDaten["Summe_Wechselrichterleistung"] = $aktuelleDaten["Summe_DC_Leistung"] + $aktuelleDaten["SpeicherEntladeleistung"] - $aktuelleDaten["SpeicherLadeleistung"];
      
      // Daten in die InfluxDB speichern
      $aktuelleDaten["ZusatzQuery"] .= "\n";
      $aktuelleDaten["ZusatzQuery"] .= "Dashboard ";
      $aktuelleDaten["ZusatzQuery"] .= "DC_Leistung_STPX15=".$aktuelleDaten["DC_Leistung_STPX15"];
      $aktuelleDaten["ZusatzQuery"] .= ",DC_Leistung_Poolseite=".$aktuelleDaten["DC_Leistung_Poolseite"];
      $aktuelleDaten["ZusatzQuery"] .= ",DC_Leistung_Garagenseite=".$aktuelleDaten["DC_Leistung_Garagenseite"];
      $aktuelleDaten["ZusatzQuery"] .= ",DC_Leistung_Scheunenseite=".$aktuelleDaten["DC_Leistung_Scheunenseite"];
      $aktuelleDaten["ZusatzQuery"] .= ",Ertrag_Heute_STPX15=".$aktuelleDaten["Ertrag_Heute_STPX15"];
      $aktuelleDaten["ZusatzQuery"] .= ",Ertrag_IBN_STPX15=".$aktuelleDaten["Ertrag_IBN_STPX15"];

      $aktuelleDaten["ZusatzQuery"] .= ",Ertrag_IBN_STP10SE=".$aktuelleDaten["Ertrag_IBN_STP10SE"];
      $aktuelleDaten["ZusatzQuery"] .= ",Ertrag_Heute_STP10SE=".$aktuelleDaten["Ertrag_Heute_STP10SE"];
      $aktuelleDaten["ZusatzQuery"] .= ",Einspeisung_Wh=".$aktuelleDaten["Einspeisung_Wh"];
      $aktuelleDaten["ZusatzQuery"] .= ",Bezug_Wh=".$aktuelleDaten["Bezug_Wh"];
      $aktuelleDaten["ZusatzQuery"] .= ",DC_Leistung_STP10SE=".$aktuelleDaten["DC_Leistung_STP10SE"];
      $aktuelleDaten["ZusatzQuery"] .= ",SpeicherLadeleistung=".$aktuelleDaten["SpeicherLadeleistung"];
      $aktuelleDaten["ZusatzQuery"] .= ",SpeicherEntladeleistung=".$aktuelleDaten["SpeicherEntladeleistung"];
      $aktuelleDaten["ZusatzQuery"] .= ",Leistung_Bezug=".$aktuelleDaten["Leistung_Bezug"];
      $aktuelleDaten["ZusatzQuery"] .= ",Leistung_Einspeisung=".$aktuelleDaten["Leistung_Einspeisung"];

      $aktuelleDaten["ZusatzQuery"] .= ",DC_Leistung_Terassenseite=".$aktuelleDaten["DC_Leistung_Terassenseite"];
      $aktuelleDaten["ZusatzQuery"] .= ",DC_Leistung_Straßenseite=".$aktuelleDaten["DC_Leistung_Straßenseite"];
      $aktuelleDaten["ZusatzQuery"] .= ",SpeicherLadestand_SOC=".$aktuelleDaten["SpeicherLadestand_SOC"];
      
      $aktuelleDaten["ZusatzQuery"] .= ",Summe_DC_Leistung=".$aktuelleDaten["Summe_DC_Leistung"];
      $aktuelleDaten["ZusatzQuery"] .= ",Summe_Ertrag_IBN=".$aktuelleDaten["Summe_Ertrag_IBN"];
      $aktuelleDaten["ZusatzQuery"] .= ",Summe_Ertrag_Heute=".$aktuelleDaten["Summe_Ertrag_Heute"];

      $aktuelleDaten["ZusatzQuery"] .= ",Eigenverbrauchsleistung=".$aktuelleDaten["Eigenverbrauchsleistung"];
      $aktuelleDaten["ZusatzQuery"] .= ",PV_Direktverbrauchsleistung=".$aktuelleDaten["PV_Direktverbrauchsleistung"];
      $aktuelleDaten["ZusatzQuery"] .= ",Hausverbrauch=".$aktuelleDaten["Hausverbrauch"];

      $aktuelleDaten["ZusatzQuery"] .= ",Summe_Wechselrichterleistung=".$aktuelleDaten["Summe_Wechselrichterleistung"];

      $aktuelleDaten["ZusatzQuery"] .= "  ".$aktuelleDaten["zentralerTimestamp"];

      $funktionen->log_schreiben("Include für STP10SE durchlaufen","* ",7);     
    }

    

return;
?>
Alle für mich relevanten Werte frage ich erneut ab, ist nicht notwendeig, so aber aktueller, diese werden in ein neues Measurement "Dashboard" gespeichert, ist so nicht notwendig, aber in grafana bei bedarf einfacher quer zu rechnen.

mellowjack
Beiträge: 3
Registriert: Mo 17. Jul 2023, 17:05

Re: Neue SMA Tripower X Reihe // SMA Tripower Smart Energy

Beitrag von mellowjack »

Hallo,
ich bin neu hier.
Hat vielleicht schon jemand ein fertiges Dashboard für den Sunny Tripower SE 10.0.

vielen Dank!

DeBaschdi
Beiträge: 300
Registriert: Mo 10. Aug 2020, 08:13
Hat sich bedankt: 15 Mal
Danksagung erhalten: 55 Mal

Re: Neue SMA Tripower X Reihe // SMA Tripower Smart Energy

Beitrag von DeBaschdi »

Von SMA gibt es die Information das der Modbus Fehler im nächsten Firmware Update behoben werden soll.

@mellowjack,
Was für ein Dashboard suchst du denn, eines mit Batterie ?
Das Default SMA Dashboard sollte funktionieren.

mellowjack
Beiträge: 3
Registriert: Mo 17. Jul 2023, 17:05

Re: Neue SMA Tripower X Reihe // SMA Tripower Smart Energy

Beitrag von mellowjack »

Ja eines mit Batterie, bzw. allen relevanten Daten die der Wechselrichter ausgeben kann.

networker
Beiträge: 5
Registriert: Mo 14. Aug 2023, 10:41
Danksagung erhalten: 3 Mal

Re: Neue SMA Tripower X Reihe // SMA Tripower Smart Energy

Beitrag von networker »

Hallo Zusammen,

ich hab seit gestern einen Tripower X 20 (STP 20-50) mit der Firmware 03.02.08.R in Betrieb, Einbindung in die Solaranzeige (hier als Multi Regler) ging grundsätzlich gut.
Zur Info (weil sich DeBaschdi anfangs gewundert hat): erkannt wird der als Gerätetyp 9489 und liefert nur Daten wenn die Sonne scheint und er aktiv ist, im Standby kommt im Log ein Warnhinweis (Auszug gekürzt):

Code: Alles auswählen

20.09. 06:32:09 |----------------   Start  sma_wr.php    --------------------------
20.09. 06:32:09    -SMA: 192.168.110.2 Port: 502 GeräteID: 1
20.09. 06:32:09 !! -Keine gültigen Daten empfangen.
20.09. 06:32:09    -Solarleistung: 0 Watt -  WattstundenGesamtHeute: 0.08
20.09. 06:32:09 |----------------   Stop   sma_wr.php    --------------------------

20.09. 06:57:08 |----------------   Start  sma_wr.php    --------------------------
20.09. 06:57:08    -SMA: 192.168.110.2 Port: 502 GeräteID: 1
20.09. 06:57:08 *- -Geräteklasse: 8001
20.09. 06:57:08 *- -Gerätetyp: 9489
20.09. 06:57:08 *  -Daten zur lokalen InfluxDB [ tripower1 ] gesendet.
20.09. 06:57:08    -Multi-Regler-Ausgang. 7
20.09. 06:57:15    -OK. Datenübertragung erfolgreich.
20.09. 06:57:15    -Solarleistung: 221 Watt -  WattstundenGesamtHeute: 12.7
20.09. 06:57:15 |----------------   Stop   sma_wr.php    --------------------------
Ich habe hier alle drei Tracker belegt, was direkt funktioniert sind String A und B das scheint in der neuen Firmware tatsächlich mittlerweile gefixt. Zumindest erscheinen mir hier Werte die schlüssig sind. Allerdings bekomme ich noch keine Daten für den String C. Schau ich mir die sma_wr.php an gibt es den Gerätetyp 9489 noch nicht daher wird im "Tripower Zweig" nur String 1 & 2 ausgelesen und String 3-6 als Platzhalter mit 0 gefüllt. Das erklärt warum ich keine Daten sehe.

Bei SMA habe ich die aktuellste Modus Parameterliste (gültig seit 03.02.07.R) runtergeladen, dort sind die Defaults für einen Tripower X 12 als Beispiel drin (übrigens Gerätetyp 9492 wenn man das gleich ergänzen möchte). In der Parameterliste stehen da Register für 4 DC Strings drin, die ersten Register decken sich mit den Werten die in der sma_wr.php für Tripower 8.0, 10.0 und Core1 für String 3 & 4 ausgelesen werden (30963, 30965, 30967, 30969, 30971, 30973). An der Stelle würde ich mal meinen Gerätetyp ergänzen und dann schauen ob sich dann der dritte String auslesen lässt.

Was ich nicht verstehe aus welchen Registern die Daten für String 1 & 2 kommen, die im Tripower Abschnitt ausgelesenen Register werden in der Modbus Parameterliste des Tripower X nicht mehr aufgeführt (da gibt es noch einen Satz Register für zwei Strings: 31209, 31211, 31213, 31215, 31217, 31219). Die "alten" Register 30769, 30957, 30771, 30959, 30773, 30961 mit denen ausgelesen wird find ich in der alten STP xxxxxTL-30 Modus Parameterliste. Ich tippe mal der Tripower X lässt sich wegen der Kompatibilität über die alten Register auch noch abfragen auch wenn es nicht mehr dokumentiert ist.

Ich könnte mal versuchen in der sma_wr.php in dem bisher leeren Tripower X Abschnitt String 1-4 mit den Registern aus der aktuellen Parameterliste einzutragen und schauen ob ich da Daten für meine 3 Strings kriege (für was der 4. ist obwohl das Gerät nur 3 hat... Reserve?...).

Ich berichte weiter wenn ich mehr weiß

networker
Beiträge: 5
Registriert: Mo 14. Aug 2023, 10:41
Danksagung erhalten: 3 Mal

Re: Neue SMA Tripower X Reihe // SMA Tripower Smart Energy

Beitrag von networker »

Hallo in die Runde,

ich hatte ja gestern Abend mal die Register für String 3 & 4 aktiviert indem ich einfach meinen Gerätetyp 9489 in der sma_wr.php im Block für die Tripower 8.0, 10.0 und CORE1 (da war die 9491 eh doppelt drin, vermutlich aus Versehen?) eingetragen habe:

Code: Alles auswählen

if ($aktuelleDaten["Geraetetype"] == "9347"  or $aktuelleDaten["Geraetetype"] == "9348" or $aktuelleDaten["Geraetetype"] == "9338" or $aktuelleDaten["Geraetetype"] == "9491" or $aktuelleDaten["Geraetetype"] == "9489" ) {  // Tripower 8.0,10.0 und CORE1 25.5.2023
Und siehe da heute wurden die Daten von String 3 (C am Gerät) gefüllt das funktioniert. String 4 ist weiter leer was aber logisch ist da der Tripower X nur 3 MPPT hat.

Ich hatte jetzt eben mit der letzten Sonne noch schnell getestet ob die in der Modus Parameterliste des Tripower X genannten neuen Register (31209, 31211, 31213, 31215, 31217, 31219) die ich für String 1 & 2 vermutet hatte Daten liefern. Habe diese dazu in die String 5 & 6 Variable auslesen lassen um sie mit den alten Registern aus String 1 & 2 vergleichen zu können ob es die selben Werte sind. Da bekomme ich allerdings keine Daten bzw. überall 0. Die scheinen entgegen der SMA Doku keine Funktion zu haben oder das ist ein weiterer Bug in der Firmware.

Zusammenfassend kann man sagen für die sma_wr.php:
der STP 20-50 Tripower X 20 hat Gerätetyp 9489
String A und B werden im Abschnitt "Tripower" mit den alten Registern der STP xxxxxTL-30 korrekt ausgelesen
String C wird im nächsten Abschnitt der "Tripower 8.0,10.0 und CORE1" mit den neuen Registern korrekt ausgelesen wenn man den passenden Gerätetyp in der if Anweisung ergänzt.

@DeBaschdi
Vielleicht kannst Du das mal mit Deinem X 15 gegenchecken, wenn der die aktuelle 03.02.08.R bekommen hat sollte der eigentlich mit der nativen sma_wr.php alle drei Strings korrekt auslesen da Dein Gerätetyp 9491 ja schon drin steht. Wenn dem so wäre kann Ulrich beim nächsten Update einfach die Gerätetypen updaten und die X 15 und X 20 müssten richtig ausgelesen werden solange SMA nix am Modus ändert.

Liebe Grüße

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste