Seite 2 von 3

Re: SMA und Influx

Verfasst: Fr 5. Mär 2021, 08:35
von Ulrich
Hallo jottt,

ich habe dir eine eMail mit einem angepassten Script zum Testen zugesendet.

Dort wird Register 30535 ausgelesen. Die Register 30517 und 30535 sollen identisch sein, nur in 32 und in 64 Bit Größe.

Re: SMA und Influx

Verfasst: Fr 5. Mär 2021, 10:35
von jottt
Vielen Dank! Ich teste es heute Abend aus

Re: SMA und Influx

Verfasst: Fr 5. Mär 2021, 22:27
von jottt
@Ulrich

Es funktioniert mit deiner Test.php. Ich habe jetzt exakte Tagesleistungen.
30535 enthält, zumindest beim STP ***TL-30, den Tageszähler. Der Wert stimmt 1:1 mit dem Wert im SMA-Management und wird um 00:00 auf "0" zurück gesetzt.
Der Wert in 35517 bleibt bei mir auf "0".


Kann einer von den Tripower 8 Nutzern mal testen, was ihr in den Registern findet?

Schlampiger Testcode (In neue Datei unter /var/www/html/ kopieren und ausführen):

Code: Alles auswählen

#!/usr/bin/php
<?php

$path_parts = pathinfo($argv[0]);
$Pfad = $path_parts['dirname'];
if (!is_file($Pfad."/1.user.config.php")) {
  require($Pfad."/user.config.php");
}

require_once($Pfad."/phpinc/funktionen.inc.php");
if (!isset($funktionen)) {
  $funktionen = new funktionen();
}
if (isset($USBDevice) and !empty($USBDevice)) {
  $USBRegler = $USBDevice;
}

$Tracelevel = 10;  //  1 bis 10  10 = Debug
$RemoteDaten = true;
$Device = "WR"; // WR = Wechselrichter
$Version = "";
$Start = time();  // Timestamp festhalten
$aktuelleDaten = array();

setlocale(LC_TIME,"de_DE.utf8");

$COM1 = fsockopen($WR_IP, $WR_Port, $errno, $errstr, 5);   // 5 = Timeout in Sekunden
if (!is_resource($COM1)) {
  goto Ausgang;
}
$i = 1;

  $rc = $funktionen->modbus_register_lesen($COM1,"30517","0004","U64","03");
  $aktuelleDaten["1"] = $rc["Wert"];
echo " 30517: ";
echo($aktuelleDaten["1"]);
echo " - 30535: ";
  $rc = $funktionen->modbus_register_lesen($COM1,"30535","0002","U32","03");
  $aktuelleDaten["2"] = $rc["Wert"];
echo($aktuelleDaten["2"]);

Ausgang:

fclose($COM1);
?>
#!/usr/bin/php
<?php

$path_parts = pathinfo($argv[0]);
$Pfad = $path_parts['dirname'];
if (!is_file($Pfad."/1.user.config.php")) {
  require($Pfad."/user.config.php");
}

require_once($Pfad."/phpinc/funktionen.inc.php");
if (!isset($funktionen)) {
  $funktionen = new funktionen();
}
if (isset($USBDevice) and !empty($USBDevice)) {
  $USBRegler = $USBDevice;
}

$Tracelevel = 10;  //  1 bis 10  10 = Debug
$RemoteDaten = true;
$Device = "WR"; // WR = Wechselrichter
$Version = "";
$Start = time();  // Timestamp festhalten
$aktuelleDaten = array();

setlocale(LC_TIME,"de_DE.utf8");

$COM1 = fsockopen($WR_IP, $WR_Port, $errno, $errstr, 5);   // 5 = Timeout in Sekunden
if (!is_resource($COM1)) {
  goto Ausgang;
}
$i = 1;

  $rc = $funktionen->modbus_register_lesen($COM1,"30517","0004","U64","03");
  $aktuelleDaten["1"] = $rc["Wert"];
echo " 30517: ";
echo($aktuelleDaten["1"]);
echo " - 30535: ";
  $rc = $funktionen->modbus_register_lesen($COM1,"30535","0002","U32","03");
  $aktuelleDaten["2"] = $rc["Wert"];
echo($aktuelleDaten["2"]);

Ausgang:

fclose($COM1);
?>

Re: SMA und Influx

Verfasst: Sa 6. Mär 2021, 07:35
von andreas_n
Moin jottt,

Wie starte ich die php und WO werden die Daten ausgegeben?
Ich setz dann nen 4erPI auf , dann kann ich gefahrlos spielen, heute nacht hatte sich mein Tripower kapital aufgehängt, nebst keiner blauen Linie war mal wieder der Strombezug unterbrochen und das .log von SMA durchgedreht, Den Fehler macht er ganz selten..kam aber heute früh mit Sonne wieder an, als wär nix gewesen
Screenshot_2021-03-06 SMA Gerät.png
ab 2:40 aufgehängt.

Re: SMA und Influx

Verfasst: Sa 6. Mär 2021, 10:08
von jottt
Die PHP kannst du mit "php Datei" starten. Sie muss allerdings im html-ordner liegen, da sie die config aus solaranzeige verwendet.

Der Code macht nichts kaputt (hoffe ich...er schreibt nichts) und gibt einfach die 2 Werte auf die Konsole aus (und beendet sich).

Re: SMA und Influx

Verfasst: Sa 6. Mär 2021, 11:41
von Ulrich
Es funktioniert mit deiner Test.php. Ich habe jetzt exakte Tagesleistungen.
30535 enthält, zumindest beim STP ***TL-30, den Tageszähler. Der Wert stimmt 1:1 mit dem Wert im SMA-Management und wird um 00:00 auf "0" zurück gesetzt.
Diese Änderung ist jetz im Update enthalten. Bitte prüft die Zahlen nach dem Update. Am besten die Datei /var/www/html/sma_wr.php vor dem Update sichern.

Re: SMA und Influx

Verfasst: Sa 6. Mär 2021, 13:03
von andreas_n
Serwus jottt
entweder steh ich mal wieder vorm Wald oder es geht nicht(bei mir)

Pi spuckt das hier aus

root@solaranzeige:~# php test
Could not open input file: test
root@solaranzeige:~# php test.php
Could not open input file: test.php
root@solaranzeige:~#


egal ob mit oder ohne Endung, der Codec ist mit copy und paste reinkopiert
edit:geht auch bei voller Pfadangabe nicht, keine Ausgabe von irgendwas

Gruss
Andreas

Re: SMA und Influx

Verfasst: Sa 6. Mär 2021, 13:09
von jottt
Die Meldung sagt, dass er deine Datei nicht findet.

Mach Mal
Pwd
Und dann
Ls
Und schick mir den Output

Re: SMA und Influx

Verfasst: Sa 6. Mär 2021, 13:11
von andreas_n
jetzt haste schneller geantwortet wie ich oben edit geschrieben hab... :-)

die Datei findet er scheinbar, weil er kurz brauch nach return, aber keine Ausgabe

edit
root@solaranzeige:/# ls
backup bin boot.bak etc lib media NAS proc run solaranzeige sys ukroot var
Backup boot dev home lost+found mnt opt root sbin srv tmp usr
root@solaranzeige:/# php /var/www/html/test.php
root@solaranzeige:/#

Re: SMA und Influx

Verfasst: Sa 6. Mär 2021, 13:21
von jottt
Probiere:

cd /var/www/html/
php test.php