Hilfe zu _math.php

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

Moderator: Ulrich

Antworten
Benutzeravatar
simon.s
Beiträge: 42
Registriert: Sa 27. Feb 2021, 19:30
Hat sich bedankt: 1 Mal
Danksagung erhalten: 5 Mal

Hilfe zu _math.php

Beitrag von simon.s »

Hallo Allerseits,
hab da ein kleines Problem wo ich nicht weiterkomme. Erweiterte Daten vom Wechselrichter (Regler 26) auslesen.
QED, QEM, QEY, QET, QLD, QLM, QLY, QLT....
Beispiel QEDyyyymmdd also Erzeugte Leistung vom aktuellen Tag QED20220207.
Im HTem mit anschließendem CRC passt dies, leider bekomme ich dies in der _math.php nicht gebacken.

Code: Alles auswählen

<?php


  $Wert = false;
  $Antwort = "";
  fputs ($USB, "\0");
  $rc = fgets($USB,4096); // Alte Daten löschen

  $CRC = $funktionen->hex2str(dechex($funktionen->CRC16Normal("QED20220207")));
  fputs ($USB, "QED20220207".$CRC."\r");
  usleep(50000);       //  [normal 30000] Es dauert etwas, bis die ersten Daten kommen ...
  $funktionen->log_schreiben("Befehl: QED20220207\r","    ",5);
  $funktionen->log_schreiben($CRC,"    ",5);  //test

  for ($k = 1 ; $k < 200; $k++) {
    $rc = fgets($USB,4096); // 4096
    usleep(50000);
    $Antwort .= trim($rc,"\0");
$funktionen->log_schreiben("AntwortQED: ".bin2hex($rc),"    ",5);

    if (substr($Antwort,-1) == "\r" and substr($Antwort,0,1) == "(") {
      $funktionen->log_schreiben("Antwort: ".bin2hex($rc),"    ",5);
      if (substr($Antwort,1,3) == "NAK") {
        $Wert = false;
        $funktionen->log_schreiben("Wechselrichter Antwortet mit NAK!test","    ",5);
      }
      else {
        $aktuelleDaten["DAY"] = substr($Antwort,1,8);
        $funktionen->log_schreiben("DAY: ".substr($Antwort,1,8),"    ",5);
        $Wert = true;
      }
      $rc = "";
      break;
    }
  }
  if ($Wert === false) {
    $funktionen->log_schreiben("Datenübertragung vom Wechselrichter war erfolglos!QED","    ",5);
    $rc = "";
  }
 



?>
log:

Code: Alles auswählen

07.02. 12:19:01    -Multi Regler Auslesen [Start].
07.02. 12:19:01    -Verarbeitung von: '1.user.config.php'   Regler: 26
07.02. 12:19:01 |-----------------   Start  qpi_p30.php   ------------------------ 
07.02. 12:19:01    -Befehl: QPI
07.02. 12:19:01    -Antwort: 28504933309a0b0d
07.02. 12:19:01    -Protokoll: 30
07.02. 12:19:01    -Befehl: QMOD
07.02. 12:19:02    -Modell: VMIII-5000
07.02. 12:19:02    -Firmware:  VERFW:00091.20
07.02. 12:19:02    -Befehl: QED20220207
07.02. 12:19:02    -*
07.02. 12:19:02    -AntwortQED: 
07.02. 12:19:02    -AntwortQED: 
07.02. 12:19:02    -AntwortQED: 
07.02. 12:19:03    -AntwortQED: 
07.02. 12:19:12    -AntwortQED: 
07.02. 12:19:12    -AntwortQED: 
07.02. 12:19:12    -Datenübertragung vom Wechselrichter war erfolglos!QED
07.02. 12:19:12 *  -Daten zur entfernten InfluxDB [ solaranzeige ] gesendet. 
07.02. 12:19:13 *  -Daten zur lokalen InfluxDB [ solaranzeige ] gesendet. 
07.02. 12:19:13    -Multi-Regler-Ausgang. -5
07.02. 12:19:13    -OK. Datenübertragung erfolgreich.
07.02. 12:19:13    -WattstundenGesamtHeute: 467.4
07.02. 12:19:13 |-----------------   Stop   qpi_p30.php    ----------------------- 
07.02. 12:19:13    -Verarbeitung von: '2.user.config.php'   Regler: 57
07.02. 12:19:13 |------------   Start  daly_bms.php    ----------------------------
steh da irgendwie auf dem Schlauch,
kann sein dass der die Zahlen nicht frisst???

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

Benutzeravatar
simon.s
Beiträge: 42
Registriert: Sa 27. Feb 2021, 19:30
Hat sich bedankt: 1 Mal
Danksagung erhalten: 5 Mal

Re: Hilfe zu _math.php

Beitrag von simon.s »

nochmal ich:
der Code

Code: Alles auswählen

$funktionen->log_schreiben((dechex($funktionen->CRC16Normal("QED20220207"))),"    ",5);
gibt folgendes zurück:

Code: Alles auswählen

   -2a6
sollte jedoch 02a6 sein???

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

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

Re: Hilfe zu _math.php

Beitrag von Ulrich »

Hex 02a6 hat den gleichen Wert wie Hex 2a6. Wenn man die Ausgabe 4 stellig benötigt, muss man das in PHP noch formatieren.
--------------------------------------
Ulrich [Admin]

Benutzeravatar
simon.s
Beiträge: 42
Registriert: Sa 27. Feb 2021, 19:30
Hat sich bedankt: 1 Mal
Danksagung erhalten: 5 Mal

Re: Hilfe zu _math.php

Beitrag von simon.s »

Hallo alle,
so bin nun weiter gekommen.
im Avea -Forum konnte mir @Columb einen Tipp geben. Lange Daten werden je nach Wechselrichter anscheinend
Schnittstellenabhängig ausgewertet. RS232 ohne Probleme, USB max 8 Zeichen. Also einfach die Anfrage auf diese gekürzt und siehe da:

Code: Alles auswählen

fputs ($USB, "QED20220218".$CRC."\r");
zu

Code: Alles auswählen

  fputs ($USB, "QED20220"."\r");
  fputs ($USB, "218".$CRC."\r");
Antwort dann auch passend:

Code: Alles auswählen

18.02. 15:59:03    -Modell: VMIII-5000
18.02. 15:59:03    -Firmware:  VERFW:00091.20
18.02. 15:59:03    -Befehl: QED20220218
18.02. 15:59:03    -Antwort: 3102090d00000000
18.02. 15:59:03    -QED: 00010731
18.02. 15:59:04 *  -Daten zur entfernten InfluxDB [ solaranzeige ] gesendet. 
Gruß
Simon
8-) Ich wohne da wo Ihr Urlaub macht 8-)
16x Amerisolar 320 FullBlack - 5,12KWp
Axpert III 5048 + 16S DalyBMS
16x Winston 160Ah + 16x 240Ah China LiFePo4

Antworten