Open Rayn0r opened 1 year ago
Vielen Dank! genau das habe ich gesucht!!
Mittels:
for inverter in r['inverters']:
print(f"Name: {inverter['name']}")
print(f"Reachable: {inverter['reachable']}\n")
sollte Dir das Script die Name der Inverter und deren Verfügbarkeit auch ausgeben.
Ich habe es auch mit zwei Invertern am laufen, jedoch limitiert er mit den Hm600 immer auf 50%, den HM400 packt er gar nicht erst an. Heißt: ich bekomme maximal 700W anstatt 1000W. Ich bin nicht so sattelfest in python (komme aus der Javascript Welt). Ist überhaupt schon implementiert, dass zwei Inverter geregelt werden können? Die Inverter sind in Reihe geschaltet, eventuell kommt das Skript damit durcheinander?
Edit: ich Depp, da steht ja im Skript "maximale Leistung 300W"... Ich glaube es hat sich bereits erledigt 😅
@Xenon-s Nein, die 300W im Script sind nicht die Ursache (also nur bedingt).
Für das Setzen des Limits muss man die Seriennummer des Inverters mitgeben, für welchen man das Limit anpassen will. Siehe Zeile 62: https://github.com/Selbstbau-PV/Selbstbau-PV-Hoymiles-nulleinspeisung-mit-OpenDTU-und-Shelly3EM/blob/f22b135152474c3655e9937ae26617f8cfbb1979/nulleinspeisung.py#L62 Die Erklärung gibts hier unter "Example 2: change power limit". Wenn Du also die Leistung des 2. Inverters anpassen möchtest, dann benötigst Du im Skript eine 2. Variable für die Seriennummer des 2. Geräts. Dann muss der Request ab Zeile 59 für den 2. Inverters dupliziert werden.
...und mit Sicherheit muss noch etwas mehr angepasst werden, weil ja auch hinterlegt werden muss welcher Inverter welche maximale Leistung bringen darf/kann.
Da der zweite eh nur 400W kann, lasse ich den unangetastet und Decke damit dann alles ab. Sollte mehr benötigt werden, soll die 600W Anlage dazuschalten. Das ist ja mit dem Skript hier problemlos möglich
ich habe mittlerweile 4 HM-Wechselrichter und 2x DTU laufen, ich benutze für jeden WR ein separates Skript, das geht auch. Geht sicher alles auch in einem Skript, dazu fehlen mir aber wohl noch die Programmierkenntnisse...
Habe ich auch gemacht. Nach nicht mal einer Minute waren die Wechselrichter nicht mehr erreichbar
Hi, ich habe 2 HM bei mir im Einsatz und hatte ähnliche Effekte. 5 Sekunden für "wait" ist zu wenig. Mit 10-20 Sekunden strapaziert man die Kommunikation nicht so sehr. Mit 20 Sekunden habe ich keinerlei Unterbrechungen mehr.
Danke dir für die Antwort. Sowas hatte ich mir auch gedacht. Da ich aber iobroker als Smarthome System im Einsatz habe, werde ich mir da was in Javascript bauen. Das Python Skript funktioniert sehr gut, aber dafür müsste ich einen extra Container aufsetzen. Aber die Idee dahinter ist gut. Würde ich mich mit Python gut auskennen, würde ich es auf X-beliebige Inverter erweitern. Aber da findet sich bestimmt jemand :)
ich hatte "wait" auch auf 20 Sekunden gesetzt, dann funktioniert es...
In Ticket #4 fragte @karrenbauer
Hier die Antwort:
Die Daten des zweiten Inverters stehen schon in der Variable
r
drin. Schau mal in die WebAPI von OpenDTU. Hier siehst Du die Struktur vom JSON. Die Inverter werden dort im "Array" Inverters[] nacheinander aufgeführt. Du kannst also die Werte des zweiten Inverters auslesen, indem Du bei['inverters'][0]
statt der0
eine1
einträgst.Jetzt könnte zum Problem werden, wenn OpenDTU die Inverter nicht immer in der gleichen Reihenfolge liefert. Wenn Du die Inverter richtig benannt hast, sollte es allerdings kein Problem sein. Den Namen sollte man so auslesen können: