Kostal neue Firmware aus 11/2020

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.
Bogeyof
Beiträge: 611
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 8 Mal
Danksagung erhalten: 60 Mal

Re: Kostal neue Firmware aus 11/2020

Beitrag von Bogeyof »

OK, zum Perl Modul braucht es auch eine zusätzlich Lib für die CRC Prüfung. Musst Du installieren mit :

Code: Alles auswählen

perl -MCPAN -e 'install Digest::CRC'
Ich habe ansonsten exakt dieselbe Perl Version mit derselben Anzahl Patches. Nicht vergessen die IP im Perl-Skript einzutragen, Zeile 18...

Noch eine Info zu MaxCharge usw., alle diese Werte müssen mindestens alle 3 Minuten von der "externen Steuerung" gesetzt werden, sonst stellen sie sich automatisch wieder auf ihre Defaultwerte zurück, kann also nichts passieren...

Dazu noch die fehlenden Skripte..
Dateianhänge
Kostal_BatI.py.txt
(8.74 KiB) 65-mal heruntergeladen
Kostal_BatTCQ.py.txt
(6.21 KiB) 63-mal heruntergeladen

Yoda68
Beiträge: 65
Registriert: Mi 3. Mär 2021, 16:53
Wohnort: Gera
Hat sich bedankt: 4 Mal
Danksagung erhalten: 2 Mal

Re: Kostal neue Firmware aus 11/2020

Beitrag von Yoda68 »

Einen großen Dank dir Bogeyof.
Das ist echt unglaublich was Du in so kurzer Zeit auf die Beine gestellt hast. Ich stehe tief in deiner Schuld. 8-)

Ich denke mal, das sich mit der Steuerung gut klar kommen werde!

Bevor ich Anfang die Steuerung zu testen, habe ein paar Fragen zu meinem besseren Verständnis:

Das Perl Skript und die Steuerung_php muss ins Verzeichnis /var/www/html ?
Zur Steuerung selbst:
in Zeile 176 "python3 /solaranzeige/Kostal_BatMaxSOC.py -s " fehlt nach s nicht ein Wert ?
in Zeile 181 ($CellVoltHigh > 3.6) es wird mit "WERT" 3,6 Volt und nicht mit 3600 mV gearbeitet richtig ?
in Zeile 197 "python3 /solaranzeige/Kostal_BatMaxChargePower.py -s 5500"
5500 Watt ? ist ganz schön groß, weil eine 7.7 kW HVS laut Datenblatt mit max. 15 Ampere geladen werden soll
die Spannung geht beim Laden bis auf 330 Volt rauf (teilweise noch höher)--> das wären 4950 Watt, also max 5000.
natürlich ist es bei anderen Batteriegrössen anders.

Letzte Frage: ;)
Wenn im Sommer bei "ganz viiiiiel Sonne" die "Intelligente Batteriesteuerung ein, Prognose: "
in Zeile 257 Ein geschalten wird ,möchte ich zusätzlich den Befehl einfügen.
$shell_befehl = "python3 /solaranzeige/Kostal_BatMaxChargePower.py -s 1000";
$temp = shell_exec($shell_befehl);
Hintergrund ist:
Es soll, wenn der Hausverbrauch z.B. 800 Watt hat und die Batterie mit maximal 1000 Watt geladen wird, über sagen wir mal 5 Stunden, der bleibende Überschuss in die MY-PV-HEIZUNG gehen (das funktionierte in der Vergangenheit soweit ganz gut) die MY-PV-HEIZUNG nimmt sich automatisch den Überschuss.
Ergebnis ist, es wird die Batt. von Soc 40 langsam schonend (mit Sperrzeiten habe ich beobachtet , dass ab 14:00 Uhr brutal mit 14 A in zwei Stunden auf 100 % geladen wird) ab früh geladen und der WW Speicher beladen wird.
Ist der Befehl an der Stelle der Richtige ?

gehe jetzt mal ans Testen mal sehen ob es klappt.

Bogeyof
Beiträge: 611
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 8 Mal
Danksagung erhalten: 60 Mal

Re: Kostal neue Firmware aus 11/2020

Beitrag von Bogeyof »

Zu Deinen Fragen:
- aktuell sollten das Perl Skript und das PHP-Skript nach /var/www/html. Das Perl Skript kann auch nach /solaranzeige, dann müsste halt der Pfad in der PHP beim Aufruf angepasst werden. Das PHP-Skript muss nach /var/www/html, weil es von dort Unterroutinen aufruft
- Zeile 176 Es fehlt kein Wert, es wird ja $aktuelleDaten["Max_SOC_Rel"] übergeben. Das ist notwendig, denn die externe Steuerung muss die Einstellung mindestens alle 3 Minuten wiederholen, sonst wird wieder der Defaultwert eingestellt. Der letzte Stand von $aktuelleDaten["Max_SOC_Rel"] wurde vorher ausgelesen und dann hier wieder gesetzt.
- Zeile 181 Die Zellspannung wird in Volt ausgelesen, damit ist die Abfrage > 3.6 mit >3600 mV gleichzusetzen.
- Zeile 197 Der Wert wäre eigentlich zu hoch, passt bei mir mit 10,2 kWh BYD. Allerdings kann kein zu hoher Wert gesetzt werden, wird automatisch auf das Maximum begrenzt. Aber rechnerisch bei 13A (Kostal Begrenzung für String) wäre das Maximum bei Dir ca. 4300 W, da hast Du recht. Bitte ändern.
- Die Idee mit der Optimierung mit MaxChargePower sollte so funktionieren. Wenn Dein Speicher öfter nicht voll werden sollte, dann musst Du halt nachjustieren.
- Auch die anderen Werte wie Mindestprognose und SOC musst Du auf Deine Bedürfnisse optimieren. Ich muss ja einen 10 kWh Speicher voll bekommen, da brauchts etwas mehr Prognose wie evtl. bei Dir. Auch spielt natürlich der Eigenverbrauch eine Rolle, ich brauche in 24 Stunden durchschnittlich ca. 18 bis 20 kWh.

Ich habe noch 3 Abfragen auf Statusangaben eingefügt. Jetzt wird auch TimeControl und "Batterienutzung ab Netzbezug" unter dem Measurement Batterie abgelegt sowie der Zustand des Schattenmanagements unter Service...
Dateianhänge
byd_steuerung.php
(21.68 KiB) 77-mal heruntergeladen

Yoda68
Beiträge: 65
Registriert: Mi 3. Mär 2021, 16:53
Wohnort: Gera
Hat sich bedankt: 4 Mal
Danksagung erhalten: 2 Mal

Re: Kostal neue Firmware aus 11/2020

Beitrag von Yoda68 »

erste Testergebnisse:

Perl läuft ---- Werte werden im Wechselrichter gesetzt ----

Daten werden nicht in die Influxdb geschrieben siehe hier:

Code: Alles auswählen

root@solaranzeige:/var/www/html# ./byd_steuerung.php
Service Schattenmanagement="SM Ost+West" 1616161627
Batterie CellTempHigh=21,CellTempLow=18,CellVoltHigh=3.35,CellVoltLow=3.35,SOH=100,Min_SOC_Rel=50,Max_SOC_Rel=100,Max_Charge_Limit=4181.45,Max_Discharge_Limit=4181.45,Netzbezug=50.0,ExternalControl=1,TimeControl=TC aus,Energiemanager_Status=0,BatterieStatus="Normal",BatterieSteuerung="I-St aus -> Sonne",BatterieNutzung="Nutzung ein -> Prognose" 1616161627Daten nicht zur InfluxDB gesendet! info: Array
(
    [url] => http://localhost/write?db=solaranzeige&precision=s
    [content_type] => application/json
    [http_code] => 400
    [header_size] => 707
    [request_size] => 566
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0.009703
    [namelookup_time] => 0.000554
    [connect_time] => 0.000726
    [pretransfer_time] => 0.000825
    [size_upload] => 409
    [size_download] => 446
    [speed_download] => 49555
    [speed_upload] => 45444
    [download_content_length] => 446
    [upload_content_length] => 409
    [starttransfer_time] => 0.009657
    [redirect_time] => 0
    [redirect_url] => 
    [primary_ip] => ::1
    [certinfo] => Array
        (
        )

    [primary_port] => 8086
    [local_ip] => ::1
    [local_port] => 49604
    [http_version] => 2
    [protocol] => 1
    [ssl_verifyresult] => 0
    [scheme] => HTTP
    [appconnect_time_us] => 0
    [connect_time_us] => 726
    [namelookup_time_us] => 554
    [pretransfer_time_us] => 825
    [redirect_time_us] => 0
    [starttransfer_time_us] => 9657
    [total_time_us] => 9703
)
Daten nicht zur InfluxDB gesendet! info: Array
(
    [url] => http://localhost/write?db=solaranzeige&precision=s
    [content_type] => application/json
    [http_code] => 400
    [header_size] => 707
    [request_size] => 566
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0.007761
    [namelookup_time] => 0.000117
    [connect_time] => 0.00012
    [pretransfer_time] => 0.000353
    [size_upload] => 409
    [size_download] => 446
    [speed_download] => 63714
    [speed_upload] => 58428
    [download_content_length] => 446
    [upload_content_length] => 409
    [starttransfer_time] => 0.007663
    [redirect_time] => 0
    [redirect_url] => 
    [primary_ip] => ::1
    [certinfo] => Array
        (
        )

    [primary_port] => 8086
    [local_ip] => ::1
    [local_port] => 49604
    [http_version] => 2
    [protocol] => 1
    [ssl_verifyresult] => 0
    [scheme] => HTTP
    [appconnect_time_us] => 121
    [connect_time_us] => 120
    [namelookup_time_us] => 117
    [pretransfer_time_us] => 353
    [redirect_time_us] => 0
    [starttransfer_time_us] => 7663
    [total_time_us] => 7761
Inhalt Datenbank_

Code: Alles auswählen

name: Batterie
time                Anzahl_Zyklen Lade_Entladeleistung SOC Spannung Strom Temperatur
----                ------------- -------------------- --- -------- ----- ----------
1616162531000000000 70            -590                 73  321.61   1.84  19
1616162471000000000 70            -601                 73  321.57   1.87  19
1616162411000000000 70            -436                 73  321.4    1.36  19
1616162351000000000 70            -419                 73  321.73   1.3   19
1616162291000000000 70            -991                 73  322.39   3.08  19
1616162231000000000 70            -1054                73  322.45   3.27  19
1616162171000000000 70            -1100                72  322.5    3.42  19
1616162112000000000 70            -1211                72  322.48   3.79  19
1616162051000000000 70            -626                 72  321.94   1.95  19
1616161992000000000 70            -916                 72  322.38   3     19
> select * from Service order by time desc Limit 10
name: Service
time                DC_Gesamtleistung Laufzeit Schattenmanagement Seriennummer Status Temp_WR_Cab Temp_WR_Sink Temp_WR_Trans WirkungsgradWR
----                ----------------- -------- ------------------ ------------ ------ ----------- ------------ ------------- --------------
1616162531000000000 391.6             9973689                     92092RI3     6      49.6        46.5         43.5          0.84780388151175
1616162489000000000                            SM Ost+West                                                                   
1616162471000000000 412.95            9973629                     92092RI3     6      49.6        46.7         43.7          0.85240343867296
1616162430000000000                            SM Ost+West                                                                   
1616162411000000000 641.86            9973569                     92092RI3     6      49.6        46.7         44            0.91452964820989
1616162369000000000                            SM Ost+West                                                                   
1616162351000000000 802.37            9973509                     92092RI3     6      49.6        47.3         43.9          0.93597716764086
1616162309000000000                            SM Ost+West                                                                   
1616162291000000000 357.89            9973449                     92092RI3     6      49.6        48.4         43.7          0.81030484226997
1616162250000000000                            SM Ost+West                                                                   
> select * from AC order by time desc Limit 10
name: AC
time                Ausgangslast Einspeisung Frequenz Leistung Scheinleistung Solarleistung Spannung_R Spannung_S Spannung_T Ueberschuss Verbrauch Verbrauch_Batterie Verbrauch_Netz Verbrauch_PV Wirkleistung
----                ------------ ----------- -------- -------- -------------- ------------- ---------- ---------- ---------- ----------- --------- ------------------ -------------- ------------ ------------
1616162651000000000 94.24        -4          50.03    322      434.03         321           230.99     232.65     232.96     0           325       0                  3              322          291.93
1616162591000000000 94.24        1           50.02    327      438.32         326           231.27     233.35     232.86     1           325       0                  0              325          290.53
1616162531000000000 94.24        3           50.02    332      436.34         332           231.13     232.86     233.03     3           329       0                  -3             332          283.58
1616162471000000000 94.24        2           50.03    352      453.78         352           231.48     233        233.46     2           350       0                  -2             352          286.27
1616162411000000000 94.24        1           50.03    587      654.76         587           231.38     232.75     233.25     1           586       0                  0              586          294.3
1616162351000000000 94.24        -6          50.02    745      809.93         745           231.66     232.47     233.07     0           751       0                  7              744          311.69
1616162291000000000 94.24        -7          50.02    283      401.24         283           231.69     232.29     232.86     0           290       0                  5              285          285.09
1616162231000000000 94.24        -3          50.02    275      397.57         275           232.05     232.05     232.89     0           278       0                  4              274          284.73
1616162171000000000 94.24        2           50.03    280      406.32         280           231.8      232.36     232.82     2           278       0                  -2             280          293.56
1616162112000000000 94.24        4           50.02    293      411.92         293           231.59     232.05     232.54     4           289       0                  3              286          283.29
> select * from PV order by time desc Limit 10
name: PV
time                Gesamtleistung Leistung_Str_1 Leistung_Str_2 Leistung_Str_3 Spannung_Str_1 Spannung_Str_2 Spannung_Str_3 Strom_Str_1 Strom_Str_2 Strom_Str_3
----                -------------- -------------- -------------- -------------- -------------- -------------- -------------- ----------- ----------- -----------
1616162711000000000 721.12         368.18         352.94         0              574.9          382.01         0              0.64        0.92        0
1616162651000000000 791.23         411.48         379.75         0              578.89         379.07         0              0.71        1           0
1616162591000000000 875.71         471.89         403.82         0              581.87         379.07         0              0.81        1.07        0
1616162531000000000 982.92         549.46         433.46         0              584.91         378.64         0              0.94        1.15        0
1616162471000000000 1015.25        582.26         432.99         0              587.66         378.65         0              0.99        1.14        0
1616162411000000000 1079.18        644.79         434.39         0              596.32         375.74         0              1.08        1.16        0
1616162351000000000 1220.33        745.34         474.99         0              594.41         371.3          0              1.26        1.28        0
1616162291000000000 1350.66        823.73         526.93         0              597.95         372.75         0              1.38        1.41        0
1616162231000000000 1401.5         857.29         544.21         0              578.92         368.42         0              1.48        1.48        0
1616162171000000000 1453.06        901.14         551.92         0              578.95         369.91         0              1.55        1.49        0

Bogeyof
Beiträge: 611
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 8 Mal
Danksagung erhalten: 60 Mal

Re: Kostal neue Firmware aus 11/2020

Beitrag von Bogeyof »

OK, schon auf der Zielgeraden...

Problem war mein Fehler, TimeControl ist ein Text und muss in der Query etwas geändert geschrieben werden:

statt

Code: Alles auswählen

  $query .= ",TimeControl=".$daten["TimeControl"];
muss es heißen:

Code: Alles auswählen

  $query .= ",TimeControl=\"" . $daten["TimeControl"] . "\"";
entweder selbst ändern oder ich habe die geänderte byd_steuerung.php noch einmal angehängt...
Dateianhänge
byd_steuerung.php
(21.69 KiB) 75-mal heruntergeladen

Yoda68
Beiträge: 65
Registriert: Mi 3. Mär 2021, 16:53
Wohnort: Gera
Hat sich bedankt: 4 Mal
Danksagung erhalten: 2 Mal

Re: Kostal neue Firmware aus 11/2020

Beitrag von Yoda68 »

ich habe die eine Zeile selbst eingefügt :roll:

jetzt rennt es.

Daten sammeln und dann schauen wir mal ...wie der Test läuft

Danke Dir wahnsinnig für die Hilfe ...

Bogeyof
Beiträge: 611
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 8 Mal
Danksagung erhalten: 60 Mal

Re: Kostal neue Firmware aus 11/2020

Beitrag von Bogeyof »

Ich habe auch noch ein neues Skript für die Abfrage des Sonnenstands erstellt, um damit z.B. die Steuerung des Schattenmanagements zu automatisieren. Bei Interesse lies doch mal hier:
viewtopic.php?f=13&t=1352

Yoda68
Beiträge: 65
Registriert: Mi 3. Mär 2021, 16:53
Wohnort: Gera
Hat sich bedankt: 4 Mal
Danksagung erhalten: 2 Mal

Re: Kostal neue Firmware aus 11/2020

Beitrag von Yoda68 »

Danke für die Information.
Ich wollte auch schon über erste Ergebnisse berichten.
Nur leider finde ich die Log Eintage welche die Byd Steuerung php absendet nicht.
Ich vermute mal das log heißt nicht Byd...log oder .txt
Sorry für die blöde Anfängerfrage.

Bogeyof
Beiträge: 611
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 8 Mal
Danksagung erhalten: 60 Mal

Re: Kostal neue Firmware aus 11/2020

Beitrag von Bogeyof »

Es schreibt wie alle Solaranzeige Skripte in die /var/www/log/solaranzeige.log.
Je nach Tracelevel mehr oder weniger. Die Steuerungen schreiben Meldungen mit Tracelevel 8, voreingestellt ist 6. Wenn du also mehr in der Log sehen willst musst du Tracelevel = 8 setzen in der byd_steuerung.php.

Yoda68
Beiträge: 65
Registriert: Mi 3. Mär 2021, 16:53
Wohnort: Gera
Hat sich bedankt: 4 Mal
Danksagung erhalten: 2 Mal

Re: Kostal neue Firmware aus 11/2020

Beitrag von Yoda68 »

Kurze Testergebnisse:
soweit scheint es das zu machen was es soll. In den letzten beiden Tagen war nicht wirklich viel PV Ertrag. So konnte ich den „eigenenPunkt“ MaxPrognose nicht testen.
An die Vorgabewerte muß man sich echt erst eimal ran Testen, die sind für jede Anlage anders.
Sind oder kann man und wenn ja wie die Werte aus Ertragsprognose.de mit einfließen lassen.?

Ich habe dann noch ein Wert dazugeschrieben:
$MaxPrognose = "12000": // Hier die MaxPrognose für Nachmittag eintragen ab der die Ladeleistung auf xxxx W begrenzt wird (ich teste gerade ob 800 W bei mir ausreichen.

Und nach der Sonnenschein1h eine weitere Abfrage eingefügt.

} elseif ($Prognose > $MaxPrognose) {
// Wert ist erreicht.
$Nachricht = "Intelligente Batteriesteuerung aus Ladebegrenzung 800 W, Prognose mehr als: " . $Prognose . " W";
$aktuelleDaten["BatterieSteuerung"] = "I-St aus -> Prognose";
$funktionen->log_schreiben($Nachricht, "* ", 8);
$shell_befehl = "python3 /solaranzeige/Kostal_BatN.py";
$temp = shell_exec($shell_befehl);
$shell_befehl = "python3 /solaranzeige/Kostal_BatMaxChargePower.py -s 800";
$temp = shell_exec($shell_befehl);
}
Jetzt sollte es für mich passen. :D

Antworten