Seite 11 von 12

Re: Solaranzeige an Pylontech

Verfasst: Sa 31. Okt 2020, 21:45
von easy
Nun bin ich fast vertig mit dem erstellen der dashboards.
Danke Ulrich für dieses super tolle projekt das du auf die beine gestellt hast.

hier mal ein kleiner ausschnitt von den dashboards im multiregler .

Und ob ihr es glaubt oder nicht . Von anfang an wurde mir der port ttyusb0 angezeigt für die pylontechs.und es blieb auch dabei.

brauch jemand noch adapter ?? ich hab jetzt alle und brauch nu einen.hahahaha :D

Re: Solaranzeige an Pylontech

Verfasst: Sa 31. Okt 2020, 22:20
von saugnapf
Super! ;)
Und schaut auch Klasse aus, dein dashboard!
Warum die Angabe der Batteriepacks bei dir nicht vorhanden war, verstehe ich auch nicht, aber: egal.
Demnach läuft es jedenfalls jetzt auch mit V 4.6.7 oder?

Re: Solaranzeige an Pylontech

Verfasst: Sa 31. Okt 2020, 23:02
von easy
Ja es läuft . Und alle Updates wurden auch schon geladen🙂 ich bin echt froh das du geholfen hast 👍danke

Re: Solaranzeige an Pylontech

Verfasst: Fr 15. Jan 2021, 23:30
von piffpaff
Moin.
Bin hier auf meinen alten Thread wieder aufmerksam geworden:)

Hab jetzt die aktuellste Version der Software auf meinen Raspberry 2B laufen.
In der user.config.php ist der Regler 41 nun aufgeführt, in der befehle.ini.php ist aber kein Block [41] vorhanden.
Dadurch erklärt sich mir auch der Fehler
15.01. 23:30:01 |- -Steuerdatei '1.befehl.steuerung' nicht vorhanden----

Jetzt muss ich mal nach einer anderen befehle.ini.php suchen.. oder hat jemand einen Tipp?

Grüße,
piffpaff

Re: Solaranzeige an Pylontech

Verfasst: Sa 16. Jan 2021, 01:48
von piffpaff
Also. In den Dateien steht immer noch nix, aber funktionieren tuts jetzt trotzdem. :?:

Naja. Schön, dass ich jetzt mit den Pylontech auch RS485 reden kann.
Offensichtlich lags letztendlich am Adapter, dass ich keine Daten von den pylontech bekam.
Werd ich im PV-Forum auch nochmal kundtun.

lg
piffpaff

Re: Solaranzeige an Pylontech

Verfasst: Mo 18. Jan 2021, 09:09
von Dirk
Soweit mir bekannt:

Wenn in der befehl.ini.php ein Regler nicht aufgeführt ist dann werden alle möglichen Befehle ausgeführt.

Lege also einen Regler (41) in der befehl.ini.php an und die Befehle die erlaubt sein sollen.

Beispiel

[Regler41]
1 = QPI
2 = POP00
3 = POP01
4 = POP02
5 = PGR00

Re: Solaranzeige an Pylontech

Verfasst: Mo 18. Jan 2021, 11:47
von piffpaff
Hi,
danke für deine Antwort. Ich hatte gelesen "Es werden NUR die Befehle gesendet, die in der befehle.ini.php vorhanden sind" - und da fällt bei mir nicht drunter, dass wenn *keine* vorhanden sind, dass dann *beliebige* gesendet werden... klingt fast gefährlich, wenn man sich drauf verlässt...
Und auch die Fehlermeldung finde ich dann irreführend... Wenn *alle* Befehle gesendet werden, muss ich ja nicht warnen, dass keine Einschränkungen vorliegen... Oder?

Desweiteren:
Was für ein Befehl ist denn

2 = POP00

? QPI kommt mir (vom AX-M5000) bekannt vor. Aber POP00 hab ich noch nie gesehen...

Grüße,
piffpaff

Re: Solaranzeige an Pylontech

Verfasst: Mo 18. Jan 2021, 14:49
von Dirk
1. Habe ich nicht Programiert ist aber wohl so.
Wenn kein [Regler1] [Regler2] .....[Regler42] [Regler43]... [Regler*NUMMER*] eingetragen ist wird alles ausgeführt.


2. Ist nur ein Beispiel steht auch dabei. Die Befehle sind auch nur ein Beispiel da es sehr viel verschiedene (Software Firmenware für die Axpert MPP ....Wechselrichter ) Versionen gibt.

Re: Solaranzeige an Pylontech

Verfasst: Do 6. Mai 2021, 17:50
von stefankroll1972
Hallo zusammen
Nachdem ich nun Daten aus dem US3000C auslesen kann (habe 3 Packs) habe ich allerdings Probleme diese an Homematic zu übertragen.
Die Standardwerte, welche auch in der Homematic.php unter Regler 15 angelegt sind funktionieren. Da die US3000C als Regler 41 laufen habe ich dieses einfach mal umgeändert:
elseif ($Regler == "41") {
for ($n = 1; $n <= $aktuelleDaten["Packs"]; $n++) {
switch ($Bezeichnung) {
case "Pack".$n."_Strom":
$DataString .= "Antwort".$i."=dom.GetObject('".$Parameter."').State(".$aktuelleDaten["Pack".$n."_Strom"].")";
break 2;
case "Pack".$n."_Spannung":
$DataString .= "Antwort".$i."=dom.GetObject('".$Parameter."').State(".$aktuelleDaten["Pack".$n."_Spannung"].")";
break 2;
case "Pack".$n."_Ah_left":
$DataString .= "Antwort".$i."=dom.GetObject('".$Parameter."').State(".$aktuelleDaten["Pack".$n."_Ah_left"].")";
break 2;
default:
break;
}

Soweit komme diese Daten auch sauber in der Homematic an. Nun ist aber einer der wichtigen Dinge auch der SOC welcher sich ja aus Ah_left_2 und Ah_total_2 berechnen lässt.
Die Berechnung wäre im Homematic keine Problem aber ich bekomme diese beiden Werte nicht in die Homematic.
Ich hatte bereits den Regler geändert in:
elseif ($Regler == "41") {
for ($n = 1; $n <= $aktuelleDaten["Packs"]; $n++) {
switch ($Bezeichnung) {
case "Pack".$n."_Strom":
$DataString .= "Antwort".$i."=dom.GetObject('".$Parameter."').State(".$aktuelleDaten["Pack".$n."_Strom"].")";
break 2;
case "Pack".$n."_Spannung":
$DataString .= "Antwort".$i."=dom.GetObject('".$Parameter."').State(".$aktuelleDaten["Pack".$n."_Spannung"].")";
break 2;
case "Pack".$n."_Ah_left":
$DataString .= "Antwort".$i."=dom.GetObject('".$Parameter."').State(".$aktuelleDaten["Pack".$n."_Ah_left"].")";
break 2;
case "Pack".$n."_Ah_left_2":
$DataString .= "Antwort".$i."=dom.GetObject('".$Parameter."').State(".$aktuelleDaten["Pack".$n."_Ah_left_2"].")";
break 2;
case "Pack".$n."_Ah_total_2":
$DataString .= "Antwort".$i."=dom.GetObject('".$Parameter."').State(".$aktuelleDaten["Pack".$n."_Ah_total_2"].")";
break 2;
default:
break;
}


und die Variablen in der config.php im Homaticteil eingetragen:
$HomeMaticVar = "Pack2_Spannung,Pack2_Strom,Pack2_Ah_left,Pack2_Ah_left_2,Pack2_Ah_total_2";

Aber leider ohne Erfolg :(

Hat ggf jemand eine Idee dazu alle andern Daten der Batterie die in die Solarnzeige gehen auch ins Homematic zu bekommen.

FÜr Hilfe wäre ich dankbar.

Gruß :D

Re: Solaranzeige an Pylontech

Verfasst: Fr 7. Mai 2021, 11:04
von Dirk
Ich habe das mal in der funktionen.inc.php gelöst als ein wert SOC in die Datenbank schreiben lassen das ist schon etwas länger her.

// SOC alle Batterien //SOC berechnen us3000 74Ah - us2000 50Ah
if ($daten["Regler"] == 41) { $query .= ",SOC=".$Summe/((74*$daten["Packs"])/100); }
else { $query .= ",SOC=".$Summe/((50*$daten["Packs"])/100); }

Dieser SOC Wert ist in jedem PHP script auslesbar mit

// Pylontech SOC lesen = $soc
// Datenbank setzen

$db = 'solaranzeige';

$query = urlencode("SELECT SOC FROM Service order by time DESC limit 1");
$ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, 1); //timeout in seconds
curl_setopt($ch, CURLOPT_URL,"http://127.0.0.1:8086/query?db=$db&q=$query");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$res = curl_exec ($ch);
curl_close ($ch);
var_dump ($res);

$soc = substr(($res),117,3);
echo "<p>soc- $soc <br>";

//------




funktionen.inc.php circa Zeile 1300

$query .= ",Status5=".$daten["Pack".$i."_Warn_Status5"];
$query .= "\n";
}

$query .= "Service ";
$query .= "Anzahl_Packs=".$daten["Packs"];
for ($i = 1 ; $i <= $daten["Packs"]; $i++) {
$query .= ",Pack".$i."_Status=".$daten["Pack".$i."_Status"];
}
// Summe Amper +- alle Batterien
$Summe = 0;
for ($i = 1 ; $i <= $daten["Packs"]; $i++) {
$Summe = $Summe + $daten["Pack".$i."_Strom"];
}
$query .= ",Be_Entladung=".$Summe;
// Summe Amper/h alle Batterien
$Summe = 0;
for ($i = 1 ; $i <= $daten["Packs"]; $i++) {
if ($daten["Regler"] == 41) {
$Summe = $Summe + $daten["Pack".$i."_Ah_left_2"];
}
else {
$Summe = $Summe + $daten["Pack".$i."_Ah_left"];
}
}
$query .= ",Restkapazitaet_Gesamt=".$Summe;


// SOC alle Batterien //SOC berechnen us3000 74Ah - us2000 50Ah
if ($daten["Regler"] == 41) { $query .= ",SOC=".$Summe/((74*$daten["Packs"])/100); }
else { $query .= ",SOC=".$Summe/((50*$daten["Packs"])/100); }


$Summe = 0;
$query .= "\n";
break;

// SolarEdge