Huawei Sun2000 M1 mit Dongle und MBUS/tcp konfigurieren, dass keine Fehler mehr auftreten

Allgemeine Informationen zum Nachbau und zum Forum.
PV-Monitorung / PV Überwachung

Moderator: Ulrich

vatter
Beiträge: 29
Registriert: Do 22. Feb 2024, 17:46
Hat sich bedankt: 3 Mal

Re: Huawei Sun2000 M1 mit Dongle und MBUS/tcp konfigurieren, dass keine Fehler mehr auftreten

Beitrag von vatter »

Danke fuer den Tip - an welcher Stelle sollte das denn hin bzw was ersetzen?

Ich habe die huawei_LAN.php jetzt erstmal Debugger-Freundlich angepasst, so dass ich sehen kann welche Abfrage Nachts die Probleme macht.

Also an Stelle von Keine Daten empfangen, jetzt der Hinweis in welcher Zeile bzw welches Problem.

Code: Alles auswählen

29.05. 09:41:56    -Fehler! Keine gültigen Daten empfangen. 
29.05. 09:45:10    -Fehler! Keine gültigen Daten empfangen. 
29.05. 09:51:53    -Fehler! Keine gültigen Daten empfangen. 
29.05. 10:10:10    -Fehler! Keine gültigen Daten empfangen. RC=zu kurz Line 163
29.05. 10:18:47    -Fehler! Keine gültigen Daten empfangen. Batterie. Line 216
29.05. 10:24:09    -Fehler! Keine gültigen Daten empfangen. RC=zu kurz Line 163
29.05. 10:29:46    -Fehler! Keine gültigen Daten empfangen. RC=zu kurz Line 163
29.05. 10:35:11    -Fehler! Keine gültigen Daten empfangen. RC=zu kurz Line 163

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

Re: Huawei Sun2000 M1 mit Dongle und MBUS/tcp konfigurieren, dass keine Fehler mehr auftreten

Beitrag von HNoll »

Ich habe noch ne bessere Idee ..
Überall wo „TOWI“ im Kommentar steht alles auskommentieren, ausser „continue;“. Dann wird die Log-Routine nicht mehr aufgerufen. Was die macht verstehe ich sowieso nicht und sie ist auch nicht notwendig bei den falsch übermittelten Werten vom Wechselrichter.
Dieses log an sich hat keinen Wert, man also auch darauf verzichten.

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

Re: Huawei Sun2000 M1 mit Dongle und MBUS/tcp konfigurieren, dass keine Fehler mehr auftreten

Beitrag von HNoll »

Hat der Docker-Container evtl. zu wenig RAM?

vatter
Beiträge: 29
Registriert: Do 22. Feb 2024, 17:46
Hat sich bedankt: 3 Mal

Re: Huawei Sun2000 M1 mit Dongle und MBUS/tcp konfigurieren, dass keine Fehler mehr auftreten

Beitrag von vatter »

Eigentlich nein. Wie gesagt - es funktionierte bisher alles tadellos (bis auf die teilweise fehlenden Ergebnisse). Ich habe jetzt mal alles neu auf nem Debian aufgesetzt. Laeuft soweit. ich berichte weiter.

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

Re: Huawei Sun2000 M1 mit Dongle und MBUS/tcp konfigurieren, dass keine Fehler mehr auftreten

Beitrag von HNoll »

Hintergrund der Frage ist, dass die Log-Routine, die Probleme macht, viel öfter aufgerufen wird als vorher.
Möglicherweise läuft da irgendwann irgendwas über und php steigt aus …
Ich hab nen Raspi5 mit 8Gb am laufen, da passiert das wahrscheinlich nicht ganz so schnell …
War nur so eine Idee …

vatter
Beiträge: 29
Registriert: Do 22. Feb 2024, 17:46
Hat sich bedankt: 3 Mal

Re: Huawei Sun2000 M1 mit Dongle und MBUS/tcp konfigurieren, dass keine Fehler mehr auftreten

Beitrag von vatter »

Also - Anlage geht in Nachtmodus und sofort triggered folgendes - wie werd ich das los :D

Code: Alles auswählen

29.05. 22:44:07    -Fehler! Keine gültigen Daten empfangen. Temp=0 - Line 168

Code: Alles auswählen

  // Prüfen, ob die Temperatur  0 ist, falls ja, stimmt was nicht, Daten verwerfen
  if ((hexdec(substr($rc["Wert"], 348, 4)) / 10) == 0) {
    $funktionen->log_schreiben("Fehler! Keine gültigen Daten empfangen. Temp=0 - Line 168", "   ", 5);
    continue;
Wenn ich die beiden Zeilen auskommentiere, sehe ich einen Fehler im php.log

Code: Alles auswählen

[29-May-2024 22:50:01 Europe/Berlin] PHP Parse error:  syntax error, unexpected '$aktuelleDaten' (T_VARIABLE), expecting while (T_WHILE) in /var/www/html/huawei_LAN.php on line 172

vatter
Beiträge: 29
Registriert: Do 22. Feb 2024, 17:46
Hat sich bedankt: 3 Mal

Re: Huawei Sun2000 M1 mit Dongle und MBUS/tcp konfigurieren, dass keine Fehler mehr auftreten

Beitrag von vatter »

Wenn ich das == in < aendere, gehts wieder

Code: Alles auswählen

  if ((hexdec(substr($rc["Wert"], 348, 4)) / 10) < 0) {
Ggfs guckt sich das einer der Profis mal genauer an.

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

Re: Huawei Sun2000 M1 mit Dongle und MBUS/tcp konfigurieren, dass keine Fehler mehr auftreten

Beitrag von HNoll »

Ist ja klar .. wenn der Wert 0 ist wird das Fehlerlog aufgerufen was dann beim schreiben des Logs zum Abbruch führt … wenn die Bedingung geändert wird, wird der Fehler nicht mehr korrigiert und das log nicht mehr aufgerufen …
In der Variante unten wird der Fehler abgefangen aber kein Log geschrieben …. Das sollte dann auch gehen … (theoretisch)
Versuch doch mal, ob das funktioniert …
huawei_LAN.php
(17.91 KiB) 71-mal heruntergeladen
Bei mir funktioniert sie …

vatter
Beiträge: 29
Registriert: Do 22. Feb 2024, 17:46
Hat sich bedankt: 3 Mal

Re: Huawei Sun2000 M1 mit Dongle und MBUS/tcp konfigurieren, dass keine Fehler mehr auftreten

Beitrag von vatter »

Danke - werde ich testen.

Noch ne Idee wieso mein php.log voll ist mit

Code: Alles auswählen

[30-May-2024 07:58:00 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 342
[30-May-2024 08:05:01 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 342
[30-May-2024 08:10:59 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 342
[30-May-2024 08:13:58 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 342
[30-May-2024 08:17:58 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 342
[30-May-2024 08:20:58 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 342
[30-May-2024 08:21:58 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 342
[30-May-2024 08:22:58 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 342
[30-May-2024 08:30:00 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 342
[30-May-2024 08:31: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 342
[30-May-2024 08:36:00 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 342
[30-May-2024 08:42:58 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 342
[30-May-2024 08:44:04 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 342
[30-May-2024 08:49:58 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 342
[30-May-2024 08:51:00 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 342
[30-May-2024 08:56: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 342
Zeile 341/342

Code: Alles auswählen

    $funktionen->log_schreiben("Schleife: " . ($i) . " Zeitspanne: " . (floor((56 - (time() - $Startzeit)) / ($Wiederholungen - $i + 1))), "   ", 9);
    sleep(floor((56 - (time() - $Startzeit)) / ($Wiederholungen - $i + 1)));
  }

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

Re: Huawei Sun2000 M1 mit Dongle und MBUS/tcp konfigurieren, dass keine Fehler mehr auftreten

Beitrag von Ulrich »

Das Auslesen dauert bei deinem Gerät länger als die maximalen 10 Sekunden. Deshalb kommen die Fehlermeldungen.

Du kannst diese Zeilen in der huawei_LAN.php löschen:


else {
$funktionen->log_schreiben("Schleife: " . ($i) . " Zeitspanne: " . (floor((56 - (time() - $Startzeit)) / ($Wiederholungen - $i + 1))), " ", 9);
sleep(floor((56 - (time() - $Startzeit)) / ($Wiederholungen - $i + 1)));
}

Dann ist Ruhe.

Achtung! Die geschweifte Klammer vor dem else muss stehen bleiben!

Das eigentliche Problem ist, dass manche Huawei Wechselrichter grottenlangsam sind. Manchmal senden sie in der vorgegebenen Zeit nicht alle Daten. Wenn dann das Auslesen wiederholt wird dauert es um so länger.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

Antworten

Zurück zu „Allgemeines“