Fehlende Daten seit 01/01

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

Moderator: Ulrich

Benutzeravatar
simon.s
Beiträge: 56
Registriert: Sa 27. Feb 2021, 19:30
Hat sich bedankt: 3 Mal
Danksagung erhalten: 6 Mal

Fehlende Daten seit 01/01

Beitrag von simon.s »

Hallo Leute,
so nun brauche ich mal euer Schwarmwissen. Habe 2 Axpert Max 8K an 2 verschiedenen Standorten. Dort läuft seit gut 8 Monaten eine eigene Math.php. Diese liest zusätzliche Daten des Wechselrichters aus. Seit 01/01 funktioniert aber 1 Befehl nicht mehr. Über ein Hyperterminal jedoch ohne Probleme. Kann da mal jemand drüberschauen?

Verbrauch funktioniert:

Code: Alles auswählen

// Monatsdaten Verbrauch  ...................................................................................

 $Wert = false;
  $Antwort = "";
  $rc = fgets($USB,4096); // Alte Daten löschen
  $CRC = $funktionen->hex2str( dechex( $funktionen->CRC16Normal( "QLM".date('Ym'))));
  
  fputs( $USB, "QLM");
  usleep( $Timebase );
  fputs( $USB, date('Ym').$CRC."\r" );
  usleep( $Timebase ); //  [normal 10000] Es dauert etwas, bis die ersten Daten kommen ...
  $funktionen->log_schreiben( "Befehl: QLM\r", "    ", 8 );
  
    for ($k = 1; $k < 200; $k++) {
    $rc = fgets( $USB, 4096 ); // 4096
    usleep( $Timebase ); // Die Effekta Geraete sind so langsam...
    $Antwort .= $rc;
    if (empty($rc)) {
      usleep( $Timebase + 20000 ); // Muss auf 10000 bleiben. 2.5.2022 Die Effekta Geraete sind so langsam...
      continue;
    }
    $rc = "";
    if (substr( trim($Antwort,"\0"), - 1 ) == "\r" and substr( $Antwort, 0, 1 ) == "(") {
      if (substr( $Antwort, 1, 3 ) == "NAK") {
        $Wert = false;
        $Antwort = substr( $Antwort, 0, 4 ); // Den CRC abschneiden
      }
      else {
        $Wert = true;
      }
      $rc = "";
      break;
    }
  }
  if (substr( $Antwort, 1, 3 ) == "NAK") {
    $funktionen->log_schreiben( "QLM: ".substr( $Antwort, 1, 3 ), "    ", 8 );
  }
  else {
	  $aktuelleDaten["AC_WattstundenMonat"] = substr($Antwort,1,8);
    $funktionen->log_schreiben("QLM: ". substr( $Antwort, 1, - 3 )."  i: ".$k, "    ", 10 );
  }
Ertrag seit 01/01 nicht mehr:

Code: Alles auswählen

// Monatsdaten PV  ...................................................................................
  
 $Wert = false;
  $Antwort = "";
  $rc = fgets($USB,4096); // Alte Daten löschen
  $CRC = $funktionen->hex2str( dechex( $funktionen->CRC16Normal( "QEM".date('Ym'))));
  
  fputs( $USB, "QEM");
  usleep( $Timebase );
  fputs( $USB, date('Ym').$CRC."\r" );
  usleep( $Timebase ); //  [normal 10000] Es dauert etwas, bis die ersten Daten kommen ...
  $funktionen->log_schreiben( "Befehl: QEM\r", "    ", 8 );
  
    for ($k = 1; $k < 200; $k++) {
    $rc = fgets( $USB, 4096 ); // 4096
    usleep( $Timebase ); // Die Effekta Geraete sind so langsam...
    $Antwort .= $rc;
    if (empty($rc)) {
      usleep( $Timebase + 20000 ); // Muss auf 10000 bleiben. 2.5.2022 Die Effekta Geraete sind so langsam...
      continue;
    }
    $rc = "";
    if (substr( trim($Antwort,"\0"), - 1 ) == "\r" and substr( $Antwort, 0, 1 ) == "(") {
      if (substr( $Antwort, 1, 3 ) == "NAK") {
        $Wert = false;
        $Antwort = substr( $Antwort, 0, 4 ); // Den CRC abschneiden
      }
      else {
        $Wert = true;
      }
      $rc = "";
      break;
    }
  }
  if (substr( $Antwort, 1, 3 ) == "NAK") {
    $funktionen->log_schreiben( "QEM: ".substr( $Antwort, 1, 3 ), "    ", 8 );
  }
  else {
	  $aktuelleDaten["PV_WattstundenMonat"] = substr($Antwort,1,8);
    $funktionen->log_schreiben("QEM: ". substr( $Antwort, 1, - 3 )."  i: ".$k, "    ", 10 );
  }
Der WR antwortet immer mit NAK

Gruß
Simon
Dateianhänge
ht.JPG
8-) Ich wohne da wo Ihr Urlaub macht 8-)
16x Amerisolar 320 FullBlack - 5,12KWp
Axpert Max 8k + 16S DalyBMS
16x Winston 160Ah + 16x 240Ah China LiFePo4

Benutzeravatar
Ulrich
Administrator
Beiträge: 6320
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 159 Mal
Danksagung erhalten: 933 Mal

Re: Fehlende Daten seit 01/01

Beitrag von Ulrich »

Die Abfrage muss heißen:

Code: Alles auswählen

$CRC = $funktionen->hex2str(str_pad(dechex( $funktionen->CRC16Normal( "QLM".date('Ym'))), 4, '0', STR_PAD_LEFT ));
Der Befehl dechex verschluckt führende Nullen.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

Benutzeravatar
simon.s
Beiträge: 56
Registriert: Sa 27. Feb 2021, 19:30
Hat sich bedankt: 3 Mal
Danksagung erhalten: 6 Mal

Re: Fehlende Daten seit 01/01

Beitrag von simon.s »

Hallo Ulrich,

super, habs gerade getestet. Funktioniert!

Gruß
8-) Ich wohne da wo Ihr Urlaub macht 8-)
16x Amerisolar 320 FullBlack - 5,12KWp
Axpert Max 8k + 16S DalyBMS
16x Winston 160Ah + 16x 240Ah China LiFePo4

Zurück zu „Allgemeines“

Wer ist online?

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