NEWS
Test Adapter sun2000 v0.1.x - Huawei Wechselrichter
-
@bolliy kann ich gerne machen. Ich erstelle ein Issue
-
Neue Testversion sun2000 Adapter Version v1.5.0 released.
Die Installation erfolgt über npm oder morgen über das Beta Repository.
Wie vielleicht schon bei euch bekannt ist, kann der Wert usableSurplusPower
über die Parameter im Pfad sun2000.x.control.usableSurplus gesteuert werden. Nun kann für den bufferSoc eine Hysterese eingestellt werden.bufferHysteresis
Die Hysterese ist die Differenz zwischen dem Soc (bufferSoc), bei dem die Nutzung der Hausbatterie (bufferPower) zuschaltet (Einschaltpunkt) und dem Soc (bufferSoc), bei dem sie wieder ausschaltet (Ausschaltpunkt). Eine größere Hysterese sorgt für weniger häufige Schaltungen, während eine kleinere Hysterese eine genauere Regelung ermöglicht.Das Thema Überschuss wird im Wiki behandelt.
Stephan
-
@bolliy said in Test Adapter sun2000 v0.1.x - Huawei Wechselrichter:
@vito666 die Berechnung lautet:
houseConsum = actPower - meterPower + extPower;Die Aktualisierung von sun2000.0.control.externalPower jede Sekunde ist etwas übertrieben. Die Verarbeitung des extPower erfolgt nur im eingestellte Intervall des Adapters.
Aus den o.a. Daten kann ich leider nicht erkennen, dass die Berechnung falsch sein soll. Hier sind die Daten sun2000.0.collected.activePower, sun2000.0.collected.externalPower und natürlich sun2000.0.meter.activePower zur selben Zeit welche unerlässlich wären.LG Stephan
@bolliy Moin Stephan,
das Problem bei meiner falschen houseConsumption Berechnung ist, dass sich sun2000.0.collected.externalPower nur einmalig beim Adapterstart den aktuellen Wert von sun2000.0.control.externalPower holt. Der Wert bleibt ab dann statisch. Ich habe den Adapter schon neu installiert und auch 1.5.0 getestet, das Verhalten ändert sich leider nicht.
Gruß
Vito -
@vito666 verwendest du blockly mit dem Funktionblock aktualisiere? Falls das zutrifft, dann nehme bitte den Funktionsblock steuere.
Siehe https://github.com/bolliy/ioBroker.sun2000/wiki/Verarbeitung-der-Sollwerte
Stephan -
@bolliy Moin Stephan,
danke, an der Stelle hatte ich genau den Fehler gemacht.
Gruß
Vito -
@bolliy
Guten Morgen,
könntest du noch einen "deviceStatus_Text" einbauen.
z.B. nach diesem Schema:setState(SHI + id + ".DeviceStatus", getU16(Buffer[id-1], 32089)); var deviceStatusName = ""; switch (getState(SHI + id + ".DeviceStatus").val) { case 0: deviceStatusName = "Initializing";break; case 1: deviceStatusName = "Detecting ISO";break; case 2: deviceStatusName = "Detecting irradiation";break; case 3: deviceStatusName = "Grid detecting";break; case 256: deviceStatusName = "Starting";break; case 512: deviceStatusName = "On grid";break; case 513: deviceStatusName = "On grid Power limit";break; case 514: deviceStatusName = "On grid self derating";break; case 768: deviceStatusName = "Shutdown fault";break; case 769: deviceStatusName = "Shutdown command";break; case 770: deviceStatusName = "Shutdown OVGR";break; case 771: deviceStatusName = "Shutdown communication disconnected";break; case 772: deviceStatusName = "Shutdown power limit";break; case 773: deviceStatusName = "Shutdown start manually";break; case 774: deviceStatusName = "Shutdown DC switch OFF";break; case 1025: deviceStatusName = "Grid dispatch cos(Phi)-P curve";break; case 1026: deviceStatusName = "Grid dispatch Q-U curve";break; case 1280: deviceStatusName = "Spot-check";break; case 1281: deviceStatusName = "Spot-checking";break; case 1536: deviceStatusName = "Inspecting";break; case 1792: deviceStatusName = "AFCI self-check";break; case 2048: deviceStatusName = "I V scanning";break; case 2304: deviceStatusName =" DC input detection";break; case 40960: deviceStatusName = "No irradiation";break; default: deviceStatusName = "undefined";break; } setState(SHI + id + ".DeviceStatus_Text", deviceStatusName);
Wäre doch gut, wenn man anstatt der Nr. auch einen Text hätte.
mfg
Dieter -
@bahnuhr schau mal hier
sun2000.0.inverter.0.derived.deviceStatusLG Stephan
-
@bolliy
Ist ja nen Ding.Ich habe hier geschaut:
sun2000.0.inverter.0.deviceStatusAber dass bei derived auch was ist, hab ich nicht gefunden.
ok, dann hat man Nr. als auch Text, an unterschiedlichen Stellen, aber gut. -
@bahnuhr der State sun2000.0.inverter.0.deviceStatus ist der eigentliche Wert aus dem WR. Die Werte im path derived sind die interpretierten bzw. abgeleiteten Informationen dazu.
Stephan
-
@bolliy
Ja, ist bei dem "noch" von mir genommenen Script grundsätzlich auch so.
Hatte nur das Script geändert und den Text genau unter die Nr. gesetzt. -
@bolliy
Ich bin gerade am umändern (von Script auf Adapter). Ist gar nicht so wenig was man ändern muss.Nochwas ist mir aufgefallen:
Die Werte L1 + L2 + L3 müssten doch "activePower" ergeben. Beim Script was das rechnerisch richtig. Beim Adapter passt dies nicht.Liegt dies an unterschiedlichen Abfrageintervallen ?
-
@bahnuhr ja,
activePower wird im high Interval ausgelesen. Die Phasen im low Interval.
-
@bolliy
Wäre es sachlogisch, wenn man dies ändern würde.
Denn rechnerisch müsste dies passen. -
@bahnuhr ja,
dann müsste man die Stromstärken und Spannungen auch ins high Interval verlegen, was ggf. die modbus Schnittstelle überfordern würde... -
@bolliy
noch was:
battery.runningStatus
müsste doch auch eine Nr. sein, die vom WR kommt. (analog deviseStatus)
also so:switch (getState(SHI + id + ".Battery.RunningStatus").val) { case 0: Battery_RunningStatus = "offline";break; case 1: Battery_RunningStatus = "standby";break; case 2: Battery_RunningStatus = "running";break; case 3: Battery_RunningStatus = "fault";break; case 4: Battery_RunningStatus = "sleepmode";break; default: Battery_RunningStatus = "undefined";break; } setState(SHI + id + ".Battery.RunningStatus_Text", Battery_RunningStatus);
Hier erscheint aber jetzt unter battery der Text.
Müsste denn nach der Logik der Text nicht auch unter derived stehen ? -
@bolliy sagte in Test Adapter sun2000 v0.1.x - Huawei Wechselrichter:
@bahnuhr ja,
dann müsste man die Stromstärken und Spannungen auch ins high Interval verlegen, was ggf. die modbus Schnittstelle überfordern würde...würde ich sachlogisch richtiger finden. Per Script gab es da keine modbus Schnittstellen Probleme.
-
@bahnuhr ja hast recht. Ist aber aus historischen Gründen nicht angepasst worden ...
-
@bolliy
Sätze wie: "hab ich schon immer so gemacht" sind nicht gutT'schuldigung; bin gerade intensiv am Testen. Deshalb nerve ich am Feiertag ein bisschen
-
@bahnuhr da sehr viele Daten abgerufen werden und einige User eine sehr kleinen Intervall wünschen, kommt es zu verzögerungen - gerade wenn man mehrere WR über den SDongle ausliest.
-
@bahnuhr kein Problem
Sofern du hierzu eine Anpassung wünscht, würde ich dich bitten ein issue im github aufzumachen.