Pylontech US2000B 48V Speicher - Modul zum auslesen

Moin Doc,
ich hab mal bissl geschaut und konnte das Problem nachstellen. Ist bei mir nie aufgefallen, da ich die von mir selbst festgelegte voreingestellte Zeit nicht verändert hatte. Eigentlich sollte folgende Zeile:

$this->SetTimerInterval('PylonstackUpdate', $this->ReadPropertyInteger('timer')* 1000);

in der Funktion ValidateConfiguration() den Timer richtig einstellen. Das passiert aber nicht. Vielleicht hab ich da was falsch Verstanden beim Startverhalten von IPS.

Als workarround kannst du folgende Zeile:

if ($this->GetTimerInterval("PylonstackUpdate")!= ($this->ReadPropertyInteger('timer')* 1000)){$this->SetTimerInterval('PylonstackUpdate', $this->ReadPropertyInteger('timer')* 1000);}

gleich am Anfang der Funktion Update im Pylonstack-Modul eintragen. Nach dem Ablauf der Voreingestellten Zeit, also beim ersten Update wird die Zeit dann richtiggestellt. ACHTUNG! Natürlich muss die Zeitberechnung hier so sein, wie es bei dir ist - bei mir hier ist es in Sekunden, wie weiter oben mal geschrieben. Falls du Minuten oder Millisekunden hast, musst du es entsprechend anpassen.

Bei der Fehlersuche ist mir noch was aufgefallen, was von Anfang an ein Fehler war. Die Timer der einzelnen Pylontech-Module werden nicht wie vorgesehen deaktiviert, sobald diese unterhalb einer Pylonsteck Instanz liegen. Zeile ca. 110 (je nach Version) im Pylontech-Modul:

$UpdateList = IPS_GetInstanceListByModuleID("{AE6E37A8-7241-25CF-005E-9153F322250C}"); // Pylonstack Instanzen

hier ist die falsche Module-ID eingetragen. Richtig ist folgende Zeile:

$UpdateList = IPS_GetInstanceListByModuleID("{0AA9FCB6-7C3F-0C43-E3CD-6A4E9693D301}"); // Pylonstack Instanzen

Grüße
Stefan

Ich hab’s mal geändert, aber nach einem IPS Neustart werden immer noch nicht die Module automatisch upgedated?
Habe ich da etwas falsch verstanden?
Ich würde ja auch selber schauen, ich steige aber bei dem ganzen geupdate nicht mehr ganz durch.
Meintest du diese stelle im Script?

        public function Update()
        {
		if ($this->GetTimerInterval("PylonstackUpdate")!= ($this->ReadPropertyInteger('timer')* 1000)){$this->SetTimerInterval('PylonstackUpdate', $this->ReadPropertyInteger('timer')* 1000);}	
		$UpdateList = IPS_GetInstanceListByModuleID("{AE6E37A8-7241-25CF-005E-9153F322250C}");
		//$this->SendDebug("Recieve:", print_r($UpdateList), 0);
		$UpdateCount = count($UpdateList);
		$m_count = 0;
		$Kapa = 0;
		$KapaGes = 0;
		$KapaNom = 0;
		$val_strom = 0;
		$val_spannung = 0;

Schaut richtig aus die Änderung.
Die Timer sollten dann so ausschauen:

Die Struktur des Stacks und der Module muss so sein:

Die Updates der Module werden von der Stack-Instanz gemacht. Vielleicht kannst du auch mal den Debug vom Stack auf machen und dann einmal manuell auf Aktualisieren klicken.
Sollte dann in etwa so aussehen:
pylontech3

Ich schau mal, ob ich irgendwo finde, welche Änderungen du machen musstest, dass es bei dir gelaufen ist - dann kann ich die bei mir mal testen und wenn das dann funktioniert, kann ich mal eine komplette Version hier online stellen.

Ich sehe auch gerade folgende Fehlermeldung im Log.

17.02.2022, 15:02:37 | TimerPool            | Pylontech Stack 1 (Update): 
Warning: Timer PylonstackUpdate existiert nicht in C:\IPSymcon\Serverdaten\modules\IPSPylontech\IPSPylonstack\module.php on line 43

Warning: Timer PylonstackUpdate existiert nicht in C:\IPSymcon\Serverdaten\modules\IPSPylontech\IPSPylonstack\module.php on line 43

Das ist die Zeile, die ich hinzu gefügt hatte.

Hab gerade oben in deiner Version geschaut. Wahrscheinlich ist deine modifizierte Version auf Basis einer älteren Version von mir. Hier heißt der Timer nur „Update“

Ja ich nutze eine ältere Version von dir, die neuste hat nicht mehr mit RS485 mit mehreren Modulen funktioniert.

Ich habe die Zeile jetzt folgendermaßen geändert, nach einem Neustart von IPS geht’s aber immer noch nicht automatisch los mit den updaten …

if ($this->GetTimerInterval("Update")!= ($this->ReadPropertyInteger('timer')* 1000)){$this->SetTimerInterval('Update', $this->ReadPropertyInteger('timer')* 1000);}

Laut deinem Screenshot der Timer oben sollte der Timer für den Stack aber laufen. Wird der Timer aktualisiert? Oder war der Screenshot nachdem du ein manuelles Update gemacht hattest? Die Standardeinstellung war ja glaub ich 5 Minuten. Solang müsstest du dann wahrscheinlich nach dem Neustart warten, bis das erste mal geupdatet wird.

Du könntest natürlich auch im Stack-Modul die Zeile 17 anpassen, dass der Timer nicht mit 300000 initialisiert wird, sondern mit einer kürzeren Zeit. z.B. 30000, dann kommt das erste Update früher.

Welche Zeile ist denn bei dir die Zeile 17?

<?

class IPSPylonstack extends IPSModule
{
    // helper properties
	private $position = 0;
    
    public function Create()
    {
		//Never delete this line!
        parent::Create();
		
		//These lines are parsed on Symcon Startup or Instance creation
        	//You cannot use variables here. Just static values.
		$this->RegisterPropertyInteger("timer", 5);
                $this->RegisterPropertyBoolean("Ladezustand",FALSE);
		$this->RegisterTimer('Update', 0, ' PSTACK_Update($_IPS[\'TARGET\'], 0);');
		$this->RegisterProfile("Charge_Ah","EnergyStorage",""," Ah",0,0,0,1,2);
	}

Bei mir ist das diese Zeile und da steht der Wert auf „0“. Kann das der Fehler sein?

$this->RegisterTimer('Update', 0, ' PSTACK_Update($_IPS[\'TARGET\'], 0);');

VG,
Doc

Jo. Da ist der Fehler. Wenn der Zähler mit 0 initialisiert wird, ist dieser deaktiviert.

Wenn ich da 30000 eintrage, passiert aber dennoch nichts nach dem Start von IPS.

Es geht doch um die vordere „0“ oder nicht?

edit: hab’ jetzt mal eine 1 eingetragen, dachte das wären auch ms wenn ich da 30000 nehme, mit der 1 scheint es jetzt zu gehen.

Sag’ mal,
hast du jetzt schon Langzeiterfahrungen machen können bzgl. die Pylons in der Garage stehen zu haben hinsichtlich der Temperaturen?
Hast du Leistungseinbußen bei niedrigen Temperaturen feststellen können?

Überlege gerade, die Pylons mit 3x Victron MPII zu betreiben und müssten dann aus Platzmangel in die Garage ausweichen.

Viele Grüße,
Doc

Servus Doc
Bin zwar nicht froema, aber meine Pylons stehen auch in der Garage.
Soweit hab ich noch nichts nachteiliges bemerkt.
Selten - sehr selten passiert es das sich das Module welches die Kommunikation macht aufhängt. Ansonsten laufen die alle sehr brav.
Von den vier alten Modulen wird eines bzgl. max Spannungsdifferenz zw. den Zellen auffällig. Ab wann das kritisch wird weiß ich leider nicht.

Weiters unterscheiden sich alte (hab vier stück) und neue Version (hab zwei Stück) noch immer im Innenwiderstand.
Nach ein paar Zyklen ohne Balancing driften die deutlich auseinander, die zwei neuen tragen dann weniger zum Energiedurchsatz bei.

schöne Grüße
Bernhard

Welche min. Temperatur hast du denn im Winter in der Garage?
Wenn die beheizt ist wird da verm. auch nichts auffallen.

Übrigens driften meine Zellen auch so ca. 25-30mV beim Laden ab bei ca. 92% SOC.
Habe aber gerade gesehen, das der eine Pylon auch schon beim entladen abdriftet?

VG,
Doc

Temperatur weiß ich nicht genau, so 10° ?
Wobei subjektiv am Verhalten wird einem wahrscheinlich eh erst was auffallen wenn sich die Kapazität um 40-50% geändert hat.
Um es quantitativ bewerten zu können müßte man wohl den Energiedurchsatz/Tag mit dem SOC gegenüberstellen.
Dann hat man eine verwertbare Zahl.

gruß
bb

Meinst du 10°C in den Pylons oder in der Garage?
Bei deinem Standort müsste die ja sonst gut beheizt sein?
Bei mir habe ich im Winter teilweise nur knapp über 0°C in der Garage, da wird ja keine Abwärme erzeugt.

Gruß,
Doc

Hallo,
ich habe auch den Wechselrichter in der Garage, da er unfassbar laut ist. Meine Garage ist freistehend und da könnte es auch mal kalt werden, wenn es ein paar Tage Frost gibt. Zur Not kann ich elektrisch mit einer Frostsicherung zuheizen. Mir machen die Pylons eher bei den hohen Sommertemperaturen sorgen, ich schreibe die Daten zwar mit, habe sie aber nie ausgewertet. Eigentlich läuft es rundum stabil. Die Kommunikationsausfälle zum WR kenne ich auch, aber nur wenn die Pylons voll sind und der WR sich langweilt.
Für mich ist der Platz in der Garage alternativlos. Im Winter bekomme ich die Pylons auch nicht immer voll und wenn sie arbeiten, haben sie ja auch Verlustwärme. Ich mache mir da keine Sorgen.
Sonst pack doch (das meine ich ernst) ein paar Decken drumherum, wenn es mal richtig kalt wird. Aber bis 0 Grad würde ich mir da keinen Kopf machen.
Gruß
Marc

Hallo,
ich bin nun auch Besitzer eine Pylontech US3000C.
Leider hatte ich große Probleme beim Auslesen. Durch diesen Bereich habe ich jedoch das meißte nach meinen Wüschen hinbekommen. (Habe mir noch eine Original Pylontech Beschreibung ergattert, und die letzten Tage sowohl Hardwaremäßig wie auch Softwaremäßig gebastelt.
Zuerst : Das Protokoll ist inzwischen um ein paar Punkte erweitert worden (140 statt 128 Bytes) . Es sind Batterien mit größerer Speichergröße dazu gekommen. Dann haben die Batteriezustände nicht gepasst. Ich habe mir auch die Batterie View besorgt und paralell mit der seriellen Schnittstelle die Werte ausgelesen.
Da ist mir dann aufgefallen, daß die Kapa-Werte ein FFFF sind, und es bedeutet, wieviel Rest-Speicherfähigkeit / Lebensdauer die Batterien haben.

Habe die die Script Version 0.4 entsprechend verändert. Meine Problematik besteht jetzt nur noch bei den JSON Modulen und den ID’s. Da steige ich im Moment noch nicht ganz dahinter, da ich mir die Entwicklungsumgebungen etc. nur per Video angesehen habe.
Also hinterlasse ich hier einmal für die anderen Kämpfer meine aktuellen vom Original veränderten Module.
Da ich die ID’s nicht verändert habe :
Die Problematik sehe ich wenn man, sowohl alte Batterien als auch neue hat.


IPSPylontech300C.zip (11,2 KB)

Aber
vielen Dank für die Version 0.4 , war eine sehr gute Vorlage.

Was noch : Hardware habe ich den IBest waveshare vom Am…usk für 28 geholt, der funktioniert auch.

Falls es Interessiert
Ich habe eine netzgekoppelte Anlage mit Förderung und jetzt eine Inselanlage an der Ost-Hauswand, über die ich die Haus-Infrastruktur versorgen will. Das ganze ‚Kosten-optimierte‘ Verteilen der Energie steuere ich über IP-Symcon.

Grüße und einen guten Rutsch,
der von der Ostalb :wink:

Blöde Frage aber wie installiere ich die Module (zip Dateien) die ihr hier gepostet habt?

Bei mir musste ich es auf modules legen. und dann neu starten.

C:\ProgramData\Symcon\modules\IPSPylontech

Hallo in die Runde,
ich weiß zwar, dass das hier ein Pylontech Modul ist, aber ich habe an meinem Deye Wechselrichter zwei 15kWh Packs mit Seplos BMS dran. Diese sollen zumindest was das protokoll angeht mit Pylontech kompatibel sein. Zumindest im WR ist Pylontech eingestellt, wobei der allerdings über die CAN Schnittstelle mit dem BMS kommuniziert. Hat jemand das Modul schon mal an einem Seplos BMS probiert?
Was mich überigens mal zur Modbus Kommunikation interessieren würde, wäre, wie denn in dem aktuellen Code die Modbus ID bei RS485 Kommunikation gesendet wird. Ich hab dazu nichts gefunden. Oder habt ihr die Pylontech nur über RS232 angebunden?