genmad / shellyAPIGen2AndAboveScripts

Scripts for the shelly API Gen2+
3 stars 0 forks source link

Paralleles Steuern von mehreren odob's anstatt Kaskade #4

Open genmad opened 1 month ago

genmad commented 1 month ago

Wenn man mehrere WR's /odobs parallel stört anstatt zu kaskadieren, kann das Vorteile haben.

Diese Vorteile erkaufen wir dann wahrscheinlich aber mit einem unruhigeren Regelverhalten der odob's ???? Nur eine Vermutung.

Dieses Skript ist nicht auf eine gemeinsame DC Seite beschränkt. Mehrere verschiedene Solarfelder inclusive. Batterien könnten wahrscheinlich kombiniert werden. Wenn eine odob ihren Anteil n nicht liefern kann, dann Regeln die anderen ihre Leistung in den nächsten Zyklen nach. Das Läuft dann asymptotisch gegen die benötigte Leistung.

@Manos1966 Bin mal gespannt wie sich das bei dir macht. https://github.com/genmad/shellyAPIGen2AndAboveScripts/blob/HTTP/src/openDTUonBattery/virtualPowerMeters_oDoBParallel.js

Manos1966 commented 1 month ago

Ich habe eine Fehlermeldung beim Starten:

Uncaught Error: Too many running timers. 22:19:47 at Timer.set( DELAY * ONE_SECOND, false, powerMeterCall); 22:19:47 ^ 22:19:47 in function called from system

genmad commented 1 month ago

Läuft da das andere script auch noch? Wir dürfen nicht mehr als 5 oder 10 Timer haben.

Manos1966 commented 1 month ago

Nein, alle Scripts sind aus

Manos1966 commented 1 month ago

OK, ich lasse das Script heute mit einem Wechselrichter laufen

800

Manos1966 commented 1 month ago

Ich bin zurueck auf die aeltere Version weil ich den zweiten Wechselrichter heute Nacht brauche... Funktioniert SUPER 😄 900

Manos1966 commented 1 month ago

The (old) script is working 24hrs now 👍 Ich musste am Wochenende an paar Aenderungen an der Verkablung machen (der Victron 250/60 hatte Overvoltage) und habe dadurch festgestellt, die Laenge der Kabel ist falsch 🤦‍♂️ Ich habe einen grossen Unterschied (8A gegen 6,7A) zwischen der zwei Seiten. Das macht einen 130W Unterschied, dadurch wird die Balanzierung durch dein Script schwieriger. 901 A difference

Manos1966 commented 1 month ago

The (old) script is working 36hrs now 👍 Die Kabel der HM1500 haben eine "Schieflage" von fast 20% Prozent: eine Seite produziert 2,5+2,5=5kWh waehrend die andere 2,1+2,1=nur 4,2kWh 🤦‍♂️

Dadurch ist es "Unfair" von deiner Software zu verlangen, die Nulleinspeisung zu erreichen: Die Hoymiles kann die Ziel Leistung jedes Mal nicht korrekt liefern, die eine Seite wird 20% weniger liefert. Insgesamt gesehen, meine HM-1500 liefert ca 10% Prozent WENIGER als die Ziel Leistung die vorgegeben wird!

Gut zu wissen... fuer alle Personen die eines Tages sich beschwerden werden, dass deine Software "unruhig" regelt... 😆 902 A difference

Manos1966 commented 1 month ago

Hast du ein neues Script hoch geladen? Ausser der zusaetzlichen Erklaerungen, hast du etwas geaendert?

genmad commented 1 month ago

Habe targetGridConsumption_Watt eingeführt. Aber das war ja schon beim letzten mal.

Habe das Http Thema abgeschlossen und das Skript ist jetzt im Master verfügbar.

Hattest du mal die TargetGridConsumption ausprobiert?

Manos1966 commented 1 month ago

Hattest du mal die TargetGridConsumption ausprobiert?

Nein, das Script funktioniert nicht wenn man mehr als einen Wechselrichter nutzt. https://github.com/genmad/shellyAPIGen2AndAboveScripts/issues/4#issuecomment-2103357984

Mit nur einen Wechselrichter funktioniert es problemlos.

genmad commented 1 month ago

Ich glaube hier liegt ein Missverständnis vor, es gibt jetzt zwei skripte. Ich meinte dass jetzt hier: https://github.com/genmad/shellyAPIGen2AndAboveScripts/blob/master/src/openDTUonBattery/virtualPowerMeters_oDoB.js

An dem anderen bin ich noch dran dass zu beheben: Uups, habe ich vergessen im neuen Branch 4-paralleles-steuern-von-mehreren-odobs zu pushen.

Manos1966 commented 1 month ago

Also ich blicke nicht durch mit deinen Versionen 😞 Ich benutze Version 0.1.3 vom 01.05.2024 Dein Link https://github.com/genmad/shellyAPIGen2AndAboveScripts/blob/master/src/openDTUonBattery/virtualPowerMeters_oDoB.js verweist auf eine Version 0.1.3 die aber nicht gleich ist, wie meine 0.1.3 vom 01.05.2024!

Vielleicht waere es besser mit Releases zu arbeiten, damit wir die Aenderungen besser erkennen koennen 😉

genmad commented 1 month ago

Ich habe vergessen die Versionsnummer anzupassen. 😔 wie meinst du das mit releases zu arbeiten? Das Problem bei den scripten auf dem shelly ist ja dass man die immer rüberkopieren muss und die Versionsnummer manuell anpassen muss. Und wenn man da nicht aufpasst, … dann hat man den überblick verloren. 😞

Manos1966 commented 1 month ago

wie meinst du das mit releases zu arbeiten?

Ich meinte das: https://github.com/helgeerbe/OpenDTU-OnBattery/releases damit man jederzeit erkennen kann welches Script man runtergeladen hat.

Manos1966 commented 1 month ago

Ich habe den gleichen Fehler mit dem aktuellen Script das heute 19.05.2024 unter diesem Link sich befindet: https://github.com/genmad/shellyAPIGen2AndAboveScripts/blob/master/src/openDTUonBattery/virtualPowerMeters_oDoB.js

Uncaught Error: Too many running timers. 11:51:44 at Timer.set( DELAY * ONE_SECOND, false, powerMeterCall); 11:51:44 ^ 11:51:44 in function called from system

Manos1966 commented 1 month ago

Ich glaube let scriptId=8;

spielt keine Rolle.

Entscheidend ist nur die Position des Scripts auf der Liste in SHELLY selbst.

Manos1966 commented 1 month ago

@genmad Manchmal hoert das Script einfach auf und muss neu gestartet werden. Ich sehe keine Meldung im Log.

Manos1966 commented 1 month ago

Heute hat das Script drei Mal aufgehoert OHNE Fehlermeldung...

genmad commented 1 month ago

Ohne Fehlermeldung ist schlecht. Was heißt das es aufgehört hat? War einfach nur nicht mehr auf Running in der shelly Script Oberfläche ?

Ohne Meldung kann ich nichts machen. 🤷‍♂️

Manos1966 commented 1 month ago

Hi @genmad

Ohne Fehlermeldung ist schlecht. Was heißt das es aufgehört hat? War einfach nur nicht mehr auf Running in der shelly Script Oberfläche ?

Genau. Mein Server schickt mir eine Telegram Nachricht sobald das Script aufgehoert hat. Und plotzlich ist es passiert...

FHEM_Fuhrmann, [21.05.2024 19:19] Shelly Script3 STOPPED FHEM_Fuhrmann, [21.05.2024 19:42] Shelly Script3 STOPPED FHEM_Fuhrmann, [21.05.2024 19:46] Shelly Script3 STOPPED FHEM_Fuhrmann, [21.05.2024 19:51] Shelly Script3 STOPPED

Ich vermute, es sind WiFi Verbindungs Probleme. Ich weiss nicht warum, aber der FritzRepeater verhaelt sich koemisch.

Wichtig ist, ich sehe gar keine Fehler Meldung im Log, obwohl es geoeffnet auf eine Browser Seite war, alle diese Male als das Script aufgehoert hat (ich war Online auf dem Server als es passiert ist).

genmad commented 1 month ago

Wie sieht denn dein Netzwerk aus? Kommunizieren alle über Wlan? Kann es sein das teile noch miteinander kommuniziert haben, also odob mit shelly oder shelly mit tasmota, oder wie genau ist dein Netzwerk aufgebaut und welche Verbindungen haben deiner Meinung nach nicht mehr funktioniert?

Manos1966 commented 1 month ago

Nicht einfach zu erklaeren, es ist ein sehr grosses Gebiet und auf einer Ecke ist die Test Installation die ich benutze.

Ich habe einen FritzRepeater installiert um die Qualitaet zu sichern. Ploetzlich aber sehe ich TestController1 = die HM1500 OpenDTUoB, sowie TestController4 = wird nicht benutzt, nicht mehr am FritzRepeater3000 angeschlossen, sondern auf den Fritz7590Repeater. Obwohl aller vier TestController neben einander platziert sind.

Es koennte also sein, dass die Verbindung ausbricht. Warum dein Script keine Meldung gibt, kann ich nicht erklaeren. Ich dachte es sollte das machen. Ich benutze Version 0.1.3 vom 01.05.2024 (alle anderen funktionieren nicht)

A001 WiFi

genmad commented 1 month ago

Wenn du schon mitbekommst, dass das script nicht läuft, könntest du es auch automatisch starten mittels curl -X POST -d '{"id":1, "method":"Script.Start", "params":{"id":<scriptid>}}'\ http://${SHELLY}/rpc

siehe hier: https://shelly-api-docs.shelly.cloud/gen2/Scripts/Tutorial

Manos1966 commented 1 month ago

Ich habe zu viele re-transmits. Das ist das Problem!

[DPL::announceStatus] inverter is offline (polling enabled? radio okay?)

Kann es sein, dass das Script aufhoert ohne eine Fehler Meldung zu geben? https://pastebin.com/z272XNn8

Manos1966 commented 1 month ago

Hmmm... ich brauche ein bisschen Hilfe 😭

Obwohl ich scriptid und SHELLY parameter definiert habe, C:>curl -X POST -d '{"id":3, "method":"Script.Stop", "params":{"id":}}'\ http://${SHELLY}/rpc bekomme ich folgende Fehlermeldung: "Das System kann die angegebene Datei nicht finden."

genmad commented 1 month ago

${Shelly} musst du durch die ip deines shellys ersetzen. Es sieht so aus, dass die erste id immer 1 sein muss. Bei der id in params musst du die scriptid angeben. Da ist im Moment auch eine } zu viel.

genmad commented 1 month ago

Was wertest du denn aus um mitzubekommen dass das script nicht läuft?

Manos1966 commented 1 month ago

Bei der id in params musst du die scriptid angeben. Da ist im Moment auch eine } zu viel.

Nein, das ist nicht der Fall. Bring es Bitte zum laufen mit deiner Shelly (Entweder mit Variables, oder mit direkte Eingabe von ID und Shelly-IP) und schick mir die Eingabe die du benutzt hast. Mit Variables bekomme ich die Fehler Meldung "Das System kann die angegebene Datei nicht finden." Mit direkte Eingabe der ID und Shelly IP bekomme ich "eine } zu viel."

Was wertest du denn aus um mitzubekommen dass das script nicht läuft?

Ich bekomme per MQTT die Information ob Script_3 is running (true/false) params_script_3_running

Das Script laeuft seit gestern, ohne Probleme 👍 Ich weiss nicht was gestern die drei Stoerungen verursacht hat. Am liebsten koenntest du fuer mich ein Shelly Script schreiben, dass prueft ob Script3 laeuft und falls nicht, wartet 39 Sekunden und startet Script3 erneut ❤️

Die Gruene Linie ist der Stromzaehler Die Blaue Linie (neu, seit 10:30) zeichnet die zwei HM die an der Batterie haengen. Die Lilla Linie zeigt alle vier HM die Tagsueber einspeisen wenn Sonne da ist. Nachts ist die Lilla Linie gleich wie die Blaue.

A003

Manos1966 commented 1 month ago

Nicht schlecht! B005

19:48 ist etwas angegangen, 2000W Verbrauch (gruener Balken). Binnen 20 Sekunden wurde es angepasst, die Wechselrichter haben 2000W geliefert (blauer Balken) bis 19:51 19:51 ist der Verbraucher ausgegangen, Stromverbrauch ist runter auf minus2000W gegangen (gruener Balken). Binnen 10Sek. haben sich die Wechselrichter angepasst. 👍🥂

Manos1966 commented 1 month ago

B004 B003 B002 B001

genmad commented 1 month ago

Hmmm... ich brauche ein bisschen Hilfe 😭

Obwohl ich scriptid und SHELLY parameter definiert habe, C:>curl -X POST -d '{"id":3, "method":"Script.Stop", "params":{"id":}}'\ http://${SHELLY}/rpc bekomme ich folgende Fehlermeldung: "Das System kann die angegebene Datei nicht finden."

Also wenn ich bei mir curl -X POST -d '{"id":42, "method":"Script.Start", "params":{"id":2}}' http://1.2.3.4/rpc eingebe kommt als Antwort {"id":42,"src":"shellypro3em-0cb815fcb6f4","result":{"was_running":false}} und das ausgewählte script wird gestartet. Wobei id:42 frei gewählt werden kann und unter params id:2 das script angibt das ich aufrufe. 1.2.3.4 ist natürlich durch die ip des Shellys zu ersetzen.

genmad commented 1 month ago

Aber mal wieder zurück zum Thema. Habe das Timer problem im script gelöst.

@Manos1966 Kannst du ja mal ausprobieren: https://github.com/genmad/shellyAPIGen2AndAboveScripts/blob/4-paralleles-steuern-von-mehreren-odobs/src/openDTUonBattery/virtualPowerMeters_oDoBParallel.js und bescheid geben was jetzt für Fehler auftauchen.

Manos1966 commented 1 month ago

Not working binnen 1 Minute:

Configs: 1 ControllerCall: 1 Uncaught Error: No response off 192.168.178.65 for 1 minutes. at throw new Error(message);

ich habe die Wechselrichter-Reihe gedreht. Der Fehler ist wieder nach einer Minute aufgetaucht. Es ist immer der erste Wechselrichter der als Fehler auftaucht. Configs: 1 ControllerCall: 1 Uncaught Error: No response off 192.168.178.93 for 1 minutes. at throw new Error(message);

genmad commented 1 month ago

Ok, dann habe ich das falsch repariert, …

Naja beim nächsten mal wirds besser.

Manos1966 commented 1 month ago

Kein Stress 👍

Wenn ich irgendetwas machen kann um dir bei der Fehlersuche zu helfen, sag Bescheid.

Manos1966 commented 1 month ago

Also wenn ich bei mir curl -X POST -d '{"id":42, "method":"Script.Start", "params":{"id":2}}' http://1.2.3.4/rpc eingebe kommt als Antwort {"id":42,"src":"shellypro3em-0cb815fcb6f4","result":{"was_running":false}} und das ausgewählte script wird gestartet. Wobei id:42 frei gewählt werden kann und unter params id:2 das script angibt das ich aufrufe. 1.2.3.4 ist natürlich durch die ip des Shellys zu ersetzen.

Ich gebe den Befehl im Terminal Fenster, richtig (cmd.exe)? Script.Stop sowie Script.Start geben bei mir den gleichen Fehler 😭

C:\Users>curl -X POST -d '{"id":42, "method":"Script.Stop", "params":{"id":3}}' http://192.168.178.92/rpc curl: (3) URL rejected: Port number was not a decimal number between 0 and 65535 curl: (3) unmatched close brace/bracket in URL position 13: params:{id:3}}' ^

C:\Users>curl -X POST -d '{"id":42, "method":"Script.Start", "params":{"id":3}}' http://192.168.178.92/rpc curl: (3) URL rejected: Port number was not a decimal number between 0 and 65535 curl: (3) unmatched close brace/bracket in URL position 13: params:{id:3}}' ^

genmad commented 1 month ago

C:\Users>curl -X POST -d '{"id":42, "method":"Script.Start", "params":{"id":3}}“ http://192.168.178.92/rpc

Unter windows ist es etwas anders, du musst die „ escapen. Also so: curl -X POST -d "{\"id\":42, \"method\":\"Script.Start\", \"params\":{\"id\":3}}“ http://192.168.178.92/rpc

Manos1966 commented 1 month ago

It was still not working but I found out why: The URL Address has to go infront. C:\Users>curl -X POST http://192.168.178.92/rpc -d "{\"id\":42, \"method\":\"Script.Start\", \"params\":{\"id\":3}}“ {"id":42,"src":"shellyplus1pm","result":{"was_running":true}}

a million thanks! 💯 👍

gitisgreat2023 commented 1 month ago

Wie funktioniert das mir curl? Wird es im Hintergrund ausgeführt und startet jedes Mal das Skript neu wenn es aufgehört hat? Oder nur einmalig? Ist schon klar warum das Skript überhaupt stoppt?

Manos1966 commented 1 month ago

Hallo @gitisgreat2023 hast du angefangen das Script zu testen?

Ich nutze den curl Befehl noch nicht. Bei mir stoppt das Script aufgrund der schlechten WiFi Verbindung zwischen Stromzaehler und Kontrollern (ich habe einen FritzRepeater der oft die MESH verliert und viele Geraete sind daraufhin unerreichbar).

gitisgreat2023 commented 1 month ago

@Manos1966 Nein, warte auf Alex's board (akkudoktorforum) und das schiebt immer mehr in die Zukunft... :-( Ich habe alles schon, nur die PCB fehlt noch...sobald die da ist melde ich mich sofort mit Testergebnisse. Bgzl mesh, okay, ich habe genau das gleiche aber ich glaube es ist stabil... am liebsten hätte ich beide OoD boards mittels LAN angebunden aber standard haben die boards von Alex nur WiFi. (glaube wegen SPI Knappheit).

BKW1800 commented 2 weeks ago

Hallo, ein paar Fragen zu eurem Skript:

Die zwei WR werden hier definiert: let configs=[ { nominalPower_Watt: 100, minRequiredPower_Watt: 50, controllerIp: '192.168.178.67', inverterSerialNumber: 116182803975} , { nominalPower_Watt: 800, minRequiredPower_Watt: 80, controllerIp: '192.168.178.68', inverterSerialNumber: 000} ];

  1. Controlller Ip würde dann die IP der Opendtu?

  2. Warum ist hier im nachfolgenden Auszug nur ein WR vorgesehen. Muss der Code nicht für 2 WR erweitert werden?

  3. Muss der jsonPath irgendwie auch auf die zwei WR angepasst werden mit der laufenden Nummer? // configure http access ( path to the power reading) let httpConfig = { address: "http://192.168.178.67/api/livedata/status?inv=116182803975" // the address of the http powerreading required , jsonPath: "inverters/0/AC/0/Power/v" // jsonPath for parsing the message for the powerreading, seperate every field by a '/' // e.g.: inverters[0].name needs to be represented as: inverters.0.name }; // configure http access ( path to the power reading) let httpConfig = { address: "http://192.168.178.67/api/livedata/status?inv=116182803975" // the address of the http powerreading required , jsonPath: "inverters/0/AC/0/Power/v" // jsonPath for parsing the message for the powerreading, seperate every field by a '/' // e.g.: inverters[0].name needs to be represented as: inverters.0.name };

  4. Müssen dann in der OpenDtu on battery unter dem Menüpunkt Stromzähler Einstellung diese Pfade eingetragen werden? bei zwei WR dann auf Phase 1 und Phase 2? oder wo trage ich dann die beiden WR mit dem PWR2 und PWR1 ein?

// then use: http://1.2.3.4/script/7/pwr2 // the Json path is always 'PWR'

genmad commented 2 weeks ago

Hallo, ein paar Fragen zu eurem Skript:

Die zwei WR werden hier definiert: let configs=[ { nominalPower_Watt: 100, minRequiredPower_Watt: 50, controllerIp: '192.168.178.67', inverterSerialNumber: 116182803975} , { nominalPower_Watt: 800, minRequiredPower_Watt: 80, controllerIp: '192.168.178.68', inverterSerialNumber: 000} ];

  1. Controlller Ip würde dann die IP der Opendtu?

ja, @BKW1800 controllerIp == ip der openDtu

  1. Warum ist hier im nachfolgenden Auszug nur ein WR vorgesehen. Muss der Code nicht für 2 WR erweitert werden?

In der config wird das für die n<6 WR konfiguriert, danach laufen die WR's unabhängig, deswegen sieht es so aus, als ob es nur für einen WR geschrieben ist, was es auch ist, aber jeder WR ruft die Funktionen dann für sich auf.

  1. Muss der jsonPath irgendwie auch auf die zwei WR angepasst werden mit der laufenden Nummer? // configure http access ( path to the power reading) let httpConfig = { address: "http://192.168.178.67/api/livedata/status?inv=116182803975" // the address of the http powerreading required , jsonPath: "inverters/0/AC/0/Power/v" // jsonPath for parsing the message for the powerreading, seperate every field by a '/' // e.g.: inverters[0].name needs to be represented as: inverters.0.name }; // configure http access ( path to the power reading) let httpConfig = { address: "http://192.168.178.67/api/livedata/status?inv=116182803975" // the address of the http powerreading required , jsonPath: "inverters/0/AC/0/Power/v" // jsonPath for parsing the message for the powerreading, seperate every field by a '/' // e.g.: inverters[0].name needs to be represented as: inverters.0.name };

der JsonPath ist der json Pfad zur gesamt Momentan Leistung des Energiezählers. Der Energiezähler wird ja mit dem address Feld angesprochen.

Das müsstest schon vorher in deiner openDTU an der Stelle des Powermeters eingetragen gewesen sein, wenn du die Gesamtleistung benutzt hast und nicht jede Phase einzeln.

Müssen dann in der OpenDtu on battery unter dem Menüpunkt Stromzähler Einstellung diese Pfade eingetragen werden? bei zwei WR dann auf Phase 1 und Phase 2? oder wo trage ich dann die beiden WR mit dem PWR2 und PWR1 ein?

Für jeden WR brauche man eine eigenen openDTUonBattery. Und bei der trägt man dann ein, beim Stromzähler unter Gesamtleistung, die Adresse: http://<shellyip>/script/<scriptnr>/pwr<i>

// then use: http://1.2.3.4/script/7/pwr2 // the Json path is always 'PWR'

BKW1800 commented 2 weeks ago

Hallo besten Dank für die Infos, Wie ist bei der Regelung die Hysterese festgelegt? bei OpenDtU on Battery stellt man den Regelwert und die Hysterese ein. Erst wenn der Ist-Wert ausserhalb des Regelsollwertes inkl. Hysterese ist, dann regelt der WR nach. Wie ist das bei dem Skript?

genmad commented 2 weeks ago

Das skript simuliert nur einen bzw. Mehrere Leistungsmesser in dem es die benötigte Leistung einfach anders verteilt und mindest Leistungen odob schickt, damit die Wr‘s nicht aus gehen. Die Einstellungen der Hysterese sind nichts was das Skript beeinflussen kann. Die odob Controller sind weiterhin für alles zuständig.

genmad commented 2 weeks ago

Um dir Ärger zu ersparen nimm bitte dieses skript: https://github.com/genmad/shellyAPIGen2AndAboveScripts/blob/master/src/openDTUonBattery/virtualPowerMeters_oDoB.js

Das oben erwähnte ist noch nicht funktional.

BKW1800 commented 1 week ago

Hallo, eine Frage zu deinem Skript. Sehe ich es richtig, dass sie minimale und die maximale Wechselrichterleistung dann über den Shelly der Opendtu durch den nachfolgenden Codeausschnitt mitgeteilt wird?

{ nominalPower_Watt: 100, minRequiredPower_Watt: 50, controllerIp: '192.168.178.67', inverterSerialNumber: 116182803975} Wäre es dann nicht möglich auch der OpenDtu für die Regelung den Netzbezugswert und auch den Hysteresewert in dem Code festzulegen?

Hätte den Vorteil, dass man nicht über VPN auf die OpenDTU muss, wenn man was anpassen will.

Hast du hierzu eine Idee? Vermutlich wirst du ja sogar über die entsprechenden Befehle gestolpert sein, wenn man auch die Wechselrichterleistungen (Min, Max) übermitteln kann. Kannst du mir hierzu eine Info geben, wo man den Code wie anpassen muss?

genmad commented 1 week ago

Hallo, eine Frage zu deinem Skript. Sehe ich es richtig, dass sie minimale und die maximale Wechselrichterleistung dann über den Shelly der Opendtu durch den nachfolgenden Codeausschnitt mitgeteilt wird?

Deine Annahme ist falsch. Das skript teilt odoB nichts mit. Man konfiguriert hier den virtuellen Leistungsmesser, den Odob dann abfragt und auf dessen Leistungsdaten dann geregelt wird.

{ nominalPower_Watt: 100, minRequiredPower_Watt: 50, controllerIp: '192.168.178.67', inverterSerialNumber: 116182803975} Wäre es dann nicht möglich auch der OpenDtu für die Regelung den Netzbezugswert und auch den Hysteresewert in dem Code festzulegen?

Warum willst du den Netzbezugswert und die Hysterese ändern?

Die Frage ist was du erreichen willst. Da ich dass noch nicht weiß/verstanden habe, kann ich dir auch nicht helfen. Beschreibe dein Szenario und was du erreichen willst, dann könnte ich dazu was sagen.

BKW1800 commented 1 week ago

z.b. im Sommerfall: Speise ich mit -50 watt ins öffentliche Netz ein weil ich sowieso mit meiner Anlage viel zu viel Strom habe und der Speicher locker voll wird. im Winter ist das aber schlecht, weil hier weniger kWh von den Platten kommen und dadurch möchte ich eher auf vllt. +50 Watt regeln, damit ich wirklich soviel kWh wie möglich nutzen kann. Dazu muss ich aber dann in die OpenDTU gehen und das umstellen. Problem ist ich nur, dass ich selten bei meiner Anlage Vorort bin. d.h. ich müsste über VPN auf openDTU zugreifen. Könnte man sich sparen wenn man das mit deinen Shelly Skript direkt dem WR mitteilt. Würde dann einfach zwei Skripte anlegen (Sommer/Winter) und die dann starten oder deaktivieren über den Shelly pro 3EM wann ich es brauche. so wäre mein Gedanke.

genmad commented 1 week ago

Du kannst in dem skript den targetGridConsumption_Watt Wert setzen das ist genau das was du haben willst, aber dann als Summe für alle Wr‘s.

Und dann erstellst du dir 2 skripte und passt den Wert dann so an wie du ihn haben willst.