Fehler in huawei_LAN.php

Welche Geräter können mit dieser Anzeige benutzt werden?
Laderegler, Wallboxen, Batterie-Management-Systeme, WLAN Schalter mit Tasmota Firmware und Wechselrichter.
Allgemeine Fragen zu all diesen Geräten.

Moderator: Ulrich

sh9wito1
Beiträge: 14
Registriert: Mi 8. Nov 2023, 20:51
Danksagung erhalten: 4 Mal

Fehler in huawei_LAN.php

Beitrag von sh9wito1 »

Hallo Ulrich,

ich bin neu hier und finde Deine Lösung sehr gut !
Bin neuer PV Besitzer ein Huawei SUN2000: Gerätetyp: SUN2000-10KTL-M Modell ID: 429
Habe einen Fehler in der Datei huawei_LAN.php gefunden:

Folgendes steht bei mir in der php.log:
[12-Nov-2023 00:20:10 Europe/Berlin] PHP Warning: sleep(): Number of seconds must be greater than or equal to 0 in /var/www/html/huawei_LAN.php on line 322
[12-Nov-2023 00:21:09 Europe/Berlin] PHP Warning: sleep(): Number of seconds must be greater than or equal to 0 in /var/www/html/huawei_LAN.php on line 322
[12-Nov-2023 00:22:08 Europe/Berlin] PHP Warning: sleep(): Number of seconds must be greater than or equal to 0 in /var/www/html/huawei_LAN.php on line 322
[12-Nov-2023 00:23:10 Europe/Berlin] PHP Warning: sleep(): Number of seconds must be greater than or equal to 0 in /var/www/html/huawei_LAN.php on line 322
[12-Nov-2023 00:24:10 Europe/Berlin] PHP Warning: sleep(): Number of seconds must be greater than or equal to 0 in /var/www/html/huawei_LAN.php on line 322
[12-Nov-2023 00:25:08 Europe/Berlin] PHP Warning: sleep(): Number of seconds must be greater than or equal to 0 in /var/www/html/huawei_LAN.php on line 322
[12-Nov-2023 00:26:09 Europe/Berlin] PHP Warning: sleep(): Number of seconds must be greater than or equal to 0 in /var/www/html/huawei_LAN.php on line 322
[12-Nov-2023 00:27:09 Europe/Berlin] PHP Warning: sleep(): Number of seconds must be greater than or equal to 0 in /var/www/html/huawei_LAN.php on line 322

Jede Minute ein neuer Eintrag.
Ich habe den Fehler in Zeile 322 gelöst, in dem ich die Variable $Start gegen $Startzeit ersetzt habe.
Hoffe das ist so korrekt !?

Alt:
sleep( floor( (56 - (time( ) - $Start)) / ($Wiederholungen - $i + 1)));

Neu:
sleep( floor( (56 - (time( ) - $Startzeit)) / ($Wiederholungen - $i + 1)));

liebe Grüße
Torsten
- Hybrid-Wechselrichter Huawei Sun2000-10KTL-M1
- Speicher Huawei Luna2000-10-S0 10 KWh
- Huawei Smart Meter DTSU-666 H 250A
- SDongleA-05 per LAN verbunden
- Wallbox 2x Daheimladen Touch 11KW
- Raspberry PI 4b

Benutzeravatar
Ulrich
Administrator
Beiträge: 5678
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 158 Mal
Danksagung erhalten: 900 Mal
Kontaktdaten:

Re: Fehler in huawei_LAN.php

Beitrag von Ulrich »

Hallo Torsten,

ja, das ist korrekt. Vielen Dank für den Hinweis, werde ich berichtigen.
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

Benutzeravatar
Urmel007
Beiträge: 20
Registriert: Mo 18. Sep 2023, 11:02
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Fehler in huawei_LAN.php

Beitrag von Urmel007 »

Hallo,
könnte es sein, dass durch die fehlerhafte Variable keine Daten mehr in der Influx-Db ankommen? Ich habe solaranzeige als Docker-Container auf einem Raspi 4B laufen. Zunächst läuft alles super, Daten kommen in der Influx DB an und auch in den Grafana Dashboards.
11.11. 08:43:01 |---------------- Start huawei_LAN.php -----------------------------
11.11. 08:43:01 -Huawei: 192.168.22.117 Port: 502 GeräteID: 1
11.11. 08:43:04 > -Gerätetyp: SUN2000-10KTL-M Modell ID: 429
11.11. 08:43:09 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
11.11. 08:43:09 -OK. Datenübertragung erfolgreich.
11.11. 08:43:09 |---------------- Stop huawei_LAN.php ---------------------------

Nachts, aber auch nicht jede Nacht, bricht dann der Datenstrom meist zwischen 00:00 Uhr und 1:00 Uhr ab.

11.11. 08:27:01 |---------------- Start huawei_LAN.php -----------------------------
11.11. 08:27:01 -Huawei: 192.168.22.117 Port: 502 GeräteID: 1
11.11. 08:27:22 -Fehler! Keine gültigen Daten empfangen.
11.11. 08:27:42 -Fehler! Ende.
11.11. 08:27:42 |---------------- Stop huawei_LAN.php ---------------------------

Nach Neustart des Docker-Containers ist der Fehler weiterhin da. Ich muss den Container neu erstellen und ersetzen ("Deploy the Container" und "Replace"), dann läuft der Datenstrom wieder an, bis zum nächsten Abbruch. Die Fehlermeldung " -Fehler! Keine gültigen Daten empfangen. " könnte ja darauf hinweisen, dass eine Variable nicht gefunden wurde bzw. ungültig ist.
Macht es Sinn die Variable in der huawei_LAN.php manuell zu korrigieren? Wann wird die huwei_LAN.php eingelesen?

Liebe Grüße
Urmel007
:arrow: Und immer wieder geht die Sonne auf
- Hybrid-Wechselrichter Huawei Sun2000-10KTL-M1
- Speicher Huawei Luna2000-10-S0 10 KWh
- Huawei Smart Meter DTSU-666 H 250A
- 24 Bluesun Solarmodule 425Wp - Ost / Westausrichtung jeweils 12 Module in 2 Strings

sh9wito1
Beiträge: 14
Registriert: Mi 8. Nov 2023, 20:51
Danksagung erhalten: 4 Mal

Re: Fehler in huawei_LAN.php

Beitrag von sh9wito1 »

Sporadisch wurde mir bei einigen Feldern der Wert 0 geliefert.
Das passiert wenn in der Variable $rc nur eine 0 und manchmal auch ein leerer String geliefert wird.

Gelöst habe ich das, indem ich nach dieser Zeile:
$rc = $funktionen->modbus_tcp_lesen( $COM1, $WR_ID, "03", "32000", "74", "Hex", $Timebase );
if ($rc == false and $i < 2) {
$funktionen->log_schreiben( "Fehler! Keine gültigen Daten empfangen. ", " ", 5 );
continue;
}


Noch diese Zeilen eingefügt habe:
/****************************************************************************
// TOWI: Pruefen ob Ergebnis $rc zu kurz --> continue
****************************************************************************/
$funktionen->log_schreiben( "Wechselrichter-Daten: (".substr( $rc["Wert"], 0, 8 ).")", " ", 6 );
if (strlen($rc["Wert"]) < 8) {
$funktionen->log_schreiben( "Fehler! Keine gültigen Daten empfangen. ", " ", 5 );
continue;
}
/****************************************************************************/

Das ganze 2x, einmal nach der Wechelrichterabfrage und noch einmal nach der Batterieabfrage.
Seit dem bekomme ich keine falschen 0 Werte.

Habe meine huawei_LAN.php angehängt.
Dateianhänge
huawei_LAN.php
(17.08 KiB) 136-mal heruntergeladen
- Hybrid-Wechselrichter Huawei Sun2000-10KTL-M1
- Speicher Huawei Luna2000-10-S0 10 KWh
- Huawei Smart Meter DTSU-666 H 250A
- SDongleA-05 per LAN verbunden
- Wallbox 2x Daheimladen Touch 11KW
- Raspberry PI 4b

sh9wito1
Beiträge: 14
Registriert: Mi 8. Nov 2023, 20:51
Danksagung erhalten: 4 Mal

Re: Fehler in huawei_LAN.php

Beitrag von sh9wito1 »

Urmel007 hat geschrieben:
So 12. Nov 2023, 10:10
Hallo,
könnte es sein, dass durch die fehlerhafte Variable keine Daten mehr in der Influx-Db ankommen? Ich habe solaranzeige als Docker-Container auf einem Raspi 4B laufen. Zunächst läuft alles super, Daten kommen in der Influx DB an und auch in den Grafana Dashboards.
11.11. 08:43:01 |---------------- Start huawei_LAN.php -----------------------------
11.11. 08:43:01 -Huawei: 192.168.22.117 Port: 502 GeräteID: 1
11.11. 08:43:04 > -Gerätetyp: SUN2000-10KTL-M Modell ID: 429
11.11. 08:43:09 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
11.11. 08:43:09 -OK. Datenübertragung erfolgreich.
11.11. 08:43:09 |---------------- Stop huawei_LAN.php ---------------------------

Nachts, aber auch nicht jede Nacht, bricht dann der Datenstrom meist zwischen 00:00 Uhr und 1:00 Uhr ab.

11.11. 08:27:01 |---------------- Start huawei_LAN.php -----------------------------
11.11. 08:27:01 -Huawei: 192.168.22.117 Port: 502 GeräteID: 1
11.11. 08:27:22 -Fehler! Keine gültigen Daten empfangen.
11.11. 08:27:42 -Fehler! Ende.
11.11. 08:27:42 |---------------- Stop huawei_LAN.php ---------------------------

Nach Neustart des Docker-Containers ist der Fehler weiterhin da. Ich muss den Container neu erstellen und ersetzen ("Deploy the Container" und "Replace"), dann läuft der Datenstrom wieder an, bis zum nächsten Abbruch. Die Fehlermeldung " -Fehler! Keine gültigen Daten empfangen. " könnte ja darauf hinweisen, dass eine Variable nicht gefunden wurde bzw. ungültig ist.
Macht es Sinn die Variable in der huawei_LAN.php manuell zu korrigieren? Wann wird die huwei_LAN.php eingelesen?

Liebe Grüße
Urmel007

Bei mir hat er trotzdem jede Minute die Daten geliefert. Es wird nur jede Minute eine Fehlermeldung für das "sleep" Kommande in die Datei php.log geschrieben.
- Hybrid-Wechselrichter Huawei Sun2000-10KTL-M1
- Speicher Huawei Luna2000-10-S0 10 KWh
- Huawei Smart Meter DTSU-666 H 250A
- SDongleA-05 per LAN verbunden
- Wallbox 2x Daheimladen Touch 11KW
- Raspberry PI 4b

Benutzeravatar
Urmel007
Beiträge: 20
Registriert: Mo 18. Sep 2023, 11:02
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Fehler in huawei_LAN.php

Beitrag von Urmel007 »

Hallo Torsten,
vielen Dank. Ich werde deine huawei_LAN.php testen und dann berichten. Ich hänge an dem Problem schon einige Wochen. Ich habe auch schon öfter den Raspi komplett neu mit Docker-Installation aufgesetzt. Erst läuft solaranzeige und dann habe ich wieder den gleichen Fehler mit den ungültigen Daten. Vielleicht klappt es ja jetzt.
Einen schönen Sonntag noch
LG Urmel007
:arrow: Und immer wieder geht die Sonne auf
- Hybrid-Wechselrichter Huawei Sun2000-10KTL-M1
- Speicher Huawei Luna2000-10-S0 10 KWh
- Huawei Smart Meter DTSU-666 H 250A
- 24 Bluesun Solarmodule 425Wp - Ost / Westausrichtung jeweils 12 Module in 2 Strings

Benutzeravatar
Urmel007
Beiträge: 20
Registriert: Mo 18. Sep 2023, 11:02
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Fehler in huawei_LAN.php

Beitrag von Urmel007 »

Hallo,
ich habe die huawei_LAN.php getauscht und den Container einmal über "Deploy the Container" und Replace neu erstellt und gestartet. Jetzt habe ich auch den Eintrag "Batterie-Daten" im log.
Auffällig ist, dass bei den Batterie-Daten einmal
-Batterie-Daten : (00020000) angezeigt wird und später
-Batterie-Daten : (0002ffff) . Im Verlauf wechselt es wieder auf (00020000) und zurück auf (0002ffff)

2.11. 12:09:01 |---------------- Start huawei_LAN.php -----------------------------
12.11. 12:09:01 -Huawei: 192.168.22.117 Port: 502 GeräteID: 1
12.11. 12:09:04 > -Gerätetyp: SUN2000-10KTL-M Modell ID: 429
12.11. 12:09:07 -Wechselrichter-Daten: (00060000)
12.11. 12:09:10 -Batterie-Daten : (00020000)
12.11. 12:09:10 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
12.11. 12:09:57 -OK. Datenübertragung erfolgreich.
12.11. 12:09:57 |---------------- Stop huawei_LAN.php ---------------------------
12.11. 12:10:01 |---------------- Start huawei_LAN.php -----------------------------
12.11. 12:10:01 -Huawei: 192.168.22.117 Port: 502 GeräteID: 1
12.11. 12:10:05 > -Gerätetyp: SUN2000-10KTL-M Modell ID: 429
12.11. 12:10:08 -Wechselrichter-Daten: (00060000)
12.11. 12:10:11 -Batterie-Daten : (0002ffff)
12.11. 12:10:11 -Alle 10 Minuten werden die Statistikdaten übertragen.
12.11. 12:10:11 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
12.11. 12:10:57 -OK. Datenübertragung erfolgreich.
12.11. 12:10:57 |---------------- Stop huawei_LAN.php ---------------------------

Ich werde weiter testen und berichten.
LG Urmel007
:arrow: Und immer wieder geht die Sonne auf
- Hybrid-Wechselrichter Huawei Sun2000-10KTL-M1
- Speicher Huawei Luna2000-10-S0 10 KWh
- Huawei Smart Meter DTSU-666 H 250A
- 24 Bluesun Solarmodule 425Wp - Ost / Westausrichtung jeweils 12 Module in 2 Strings

sh9wito1
Beiträge: 14
Registriert: Mi 8. Nov 2023, 20:51
Danksagung erhalten: 4 Mal

Re: Fehler in huawei_LAN.php

Beitrag von sh9wito1 »

Urmel007 hat geschrieben:
So 12. Nov 2023, 12:20
Hallo,
ich habe die huawei_LAN.php getauscht und den Container einmal über "Deploy the Container" und Replace neu erstellt und gestartet. Jetzt habe ich auch den Eintrag "Batterie-Daten" im log.
Auffällig ist, dass bei den Batterie-Daten einmal
-Batterie-Daten : (00020000) angezeigt wird und später
-Batterie-Daten : (0002ffff) . Im Verlauf wechselt es wieder auf (00020000) und zurück auf (0002ffff)

2.11. 12:09:01 |---------------- Start huawei_LAN.php -----------------------------
12.11. 12:09:01 -Huawei: 192.168.22.117 Port: 502 GeräteID: 1
12.11. 12:09:04 > -Gerätetyp: SUN2000-10KTL-M Modell ID: 429
12.11. 12:09:07 -Wechselrichter-Daten: (00060000)
12.11. 12:09:10 -Batterie-Daten : (00020000)
12.11. 12:09:10 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
12.11. 12:09:57 -OK. Datenübertragung erfolgreich.
12.11. 12:09:57 |---------------- Stop huawei_LAN.php ---------------------------
12.11. 12:10:01 |---------------- Start huawei_LAN.php -----------------------------
12.11. 12:10:01 -Huawei: 192.168.22.117 Port: 502 GeräteID: 1
12.11. 12:10:05 > -Gerätetyp: SUN2000-10KTL-M Modell ID: 429
12.11. 12:10:08 -Wechselrichter-Daten: (00060000)
12.11. 12:10:11 -Batterie-Daten : (0002ffff)
12.11. 12:10:11 -Alle 10 Minuten werden die Statistikdaten übertragen.
12.11. 12:10:11 * -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet.
12.11. 12:10:57 -OK. Datenübertragung erfolgreich.
12.11. 12:10:57 |---------------- Stop huawei_LAN.php ---------------------------

Ich werde weiter testen und berichten.
LG Urmel007
-Wechselrichter-Daten: (00060000)
-Batterie-Daten : (00020000)

Diese Beiden Zeilen habe ich als Trace eingebaut.
Es werden die ersten 8 Zeichen des Datenstrings vom Wechselrichter bzw. von der Batterien angezeigt.
Bei mir ist es sporadisch vorgekommen, dass der Inhalt = (0) oder leer () war.
Dadurch wurden 0 Werte in die Datenbank geschrieben, was die graphische Auswertung verfälscht hat.

Wenn der String jetzt kleiner als 8 Zeichen ist (<2 Zeichen hätten bis jetzt auch gereicht) lass ich die Wechselrichter Abfrage wiederholen.
Das klappt dann meistens und wenn es mal nicht klappt wird keine 0 als Wert gespeichert, sondern kein Eintrag in der DB angelegt.

Ich habe auch den Timeout beim Zugriff auf den Wechelrichter von 5 auf 15 Sekunden erhöht.
Das scheint die Abfrage stabiler zu machen.
Diese 15s sind auch der Standard bei evcc.io für diesen Huawei Wechselrichter.

Bei mir läuft jetzt Solaranzeige und evcc parallel ohne große Probleme.


Gruß Torsten
- Hybrid-Wechselrichter Huawei Sun2000-10KTL-M1
- Speicher Huawei Luna2000-10-S0 10 KWh
- Huawei Smart Meter DTSU-666 H 250A
- SDongleA-05 per LAN verbunden
- Wallbox 2x Daheimladen Touch 11KW
- Raspberry PI 4b

Benutzeravatar
Urmel007
Beiträge: 20
Registriert: Mo 18. Sep 2023, 11:02
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Fehler in huawei_LAN.php

Beitrag von Urmel007 »

Hallo Torsten,
seid ich deine huwei_LAN.php einsetze, habe ich keine Ausfälle bei der Datenübertragung mehr. Es läuft alles richtig stabil. Vielen Dank, dass du mir weitergeholfen hast und dein Wissen teilst.
LG Urmel007
:arrow: Und immer wieder geht die Sonne auf
- Hybrid-Wechselrichter Huawei Sun2000-10KTL-M1
- Speicher Huawei Luna2000-10-S0 10 KWh
- Huawei Smart Meter DTSU-666 H 250A
- 24 Bluesun Solarmodule 425Wp - Ost / Westausrichtung jeweils 12 Module in 2 Strings

HNoll
Beiträge: 35
Registriert: So 25. Dez 2022, 21:57
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Fehler in huawei_LAN.php

Beitrag von HNoll »

Danke für die hervorragende Arbeit.
Die modifizierte Datei hat mir sehr weiter geholfen.
Es gibt jedoch noch ein Problem:

6-14x/Tag waren damit die Werte für die Spannungen, die Netzfrequenz und die Wechselrichtertemperatur bei 0, was die grafische Auswertung sehr stört (interessanterweise immer alle diese Werte zusammen).

Ich habe daher noch folgendes eingefügt:

}
if ((hexdec( substr( $rc["Wert"], 340, 4 )) / 100) == 0) {
$funktionen->log_schreiben( "Fehler! Keine gültigen Daten empfangen. ", " ", 5
continue;
}


Hier wird überprüft ob die Netzfrequenz 0 ist, falls ja, wird der ganze Datensatz verworfen.

Eingefügt wird das an dieser Stelle:
/****************************************************************************
// TOWI: Pruefen ob Ergebnis $rc zu kurz --> continue
****************************************************************************/
$funktionen->log_schreiben( "Wechselrichter-Daten: (".substr( $rc["Wert"], 0, 8 ).
if (strlen($rc["Wert"]) < 8) {
$funktionen->log_schreiben( "Fehler! Keine gültigen Daten empfangen. ", " ", 5
continue;
}
if ((hexdec( substr( $rc["Wert"], 340, 4 )) / 100) == 0) {
$funktionen->log_schreiben( "Fehler! Keine gültigen Daten empfangen. ", " ", 5
continue;
}
/****************************************************************************/

Wie Ulrich ja schon geschrieben hat ist die Benutzung des Dongels eine Zumutung, aber man muss ja nicht damit leben, schließlich läuft das ganze auf einem Computer, mit dem man inkonsistente Daten automatisch abfangen kann. Und nicht alle Setups ermöglichen das problemlose auslesen der RS485-Schnittstelle…

IMG_0771.jpg

Antworten

Zurück zu „Fragen zu Reglern, Wallboxen und Wechselrichter“