Hi ­čĹő
Falls ihr hier hin gefunden habt, wisst ihr wahrscheinlich worum es geht ­čÖé

Kurz gefasst: Multiplus ist an einem Victron GX Ger├Ąt oder Cerbo angeschlossen. In Verbindung mit einem dynamischen Stromtarif von Tibber sollen jetzt teure Stunden mit dem Akku ├╝berbr├╝ckt werden und in g├╝nstigen soll geladen werden.

Ich hab da bisher noch keine einfache L├Âsung und auch keinen L├Âsungsweg gefunden, daher biete ich hier mal meine aktuelle L├Âsung:
Auf einem Raspberry Pi l├Ąuft IoBroker. Dieser holt die Preise von Tibber ab, berechnet dann ob sich die Akkunutzung lohnt (das sollte jeder selber nochmal nachrechnen und einstellen) und verstellt den minimalen SoC, sodass der Akku geladen wird wenn es sehr g├╝nstig, g├╝nstig oder normal ist, oder entladen wird, wenn der Preis gerade teuer oder sehr teuer ist. Der SoC wird an den Multiplus mittels Mqtt geschrieben. So sollte man es schaffen unterhalb des Monatsdurchschnitts zu bleiben, sodass im Zweifel die Strompreisbremse greift.

Man sollte wissen, was man tut und was das bewirkt, ich ├╝bernehme ausdr├╝cklich keine Haftung und m├Âchte hier auch darauf hinweisen, dass das Work-In-Progress ist. Ich hoffe es hilft dem ein oder anderen dennoch ­čÖé Das Konstrukt kann im Sommer sehr st├Âren. Ich werde es nur in der ├ťbergangszeit und im Winter nutzen und dann abschalten. Trotzdem hier ein paar Hinweise zur Installation:

Am Victron unter Einstellungen -> Dienste Mqtt aktivieren.

In IoBroker den Adapter MQTT-Client und eine Instanz davon hinzuf├╝gen. Dann in der Instanz den Victron als Broker angeben. Ich habe in der Instanz bei zus├Ątzliche Subscriptions die # hinzugef├╝gt, damit ich in den Objekten immer alle Mqtt Topics finde. Hier kann man jetzt kontrollieren, ob der Mqtt Client funktioniert. Die Topics vom Victron sollten sich jetzt aktualisieren. Bei dieser Gelegenheit die Victron ID aufschreiben. Die braucht man nachher im Blockly Code.

Den Adapter https://github.com/Codibris/ioBroker.tibberconnect (herzlichen Dank an Codibris) habe ich ├╝ber den Experten Modus hinzugef├╝gt. Also bei Adapter oben auf den Kopf, dann erscheint das Github-Logo (Die Katze) und dort kann man bei Benutzerdefiniert den Link oben einf├╝gen. Dann auf installieren klicken und der Adapter wird installiert. Nicht vergessen eine Instanz hinzuzuf├╝gen. Im ersten Quartal 2023 funktionierte die Anbindung des Pulse nicht. Daher den Haken f├╝r das Benutzen des Pulse nicht setzen. Die Preise und Zeiten werden trotzdem richtig geladen.

Man braucht dann noch einen Api Key. Die Doku von Tibber fand ich sehr gut, man kommt sehr schnell an den Key. Die Anleitung findet man in der Tibber App unter Power-ups und dann hei├čt die Tibber-Api.

Wenn auch in den Tibber Objekten Daten angezeigt werden, fehlt nur noch das Skript. Daf├╝r wird der Adapter „Skriptausf├╝hrung“ ben├Âtigt. In der Instanz Javascript die Einstellung setObject erlauben. Dann k├Ânnen wir aus dem Skript heraus zust├Ąnde ver├Ąndern.

Im Blocky Code weiter unten m├╝ssen <YOUR_VICTRON_ID> und <YOUR_TIBBER_HOME_ID> abge├Ąndert werden. Die IDs findet man in den Objekten, indem man den Pfad ausklappt. Ich hab das ganze per einfach in Nodepad++ per Suchen-Ersetzen gemacht. Falls es schon importiert ist, k├Ânnen die Pfade auch mit der Maus ausgew├Ąhlt werden.

Die Pfade f├╝r tibberconnect sind:

tibberconnect.0.Homes.<YOUR_TIBBER_HOME_ID>.PricesToday.*.total

tibberconnect.0.Homes.<YOUR_TIBBER_HOME_ID>.PricesTomorrow.*.total

hier bitte auf das „.*.total“ achten.

Der wichtige Pfad f├╝r den Victron ist:
mqtt-client.0.W.<YOUR_VICTRON_ID>.settings.0.Settings.CGwacs.BatteryLife.MinimumSocLimit

Im Skript hab ich noch einen Fehler gemacht: die Zust├Ąnde hei├čen VERY_CHEAP und VERY_EXPENSIVE. Ich habe im Skript den Unterstrich vergessen. Der muss noch erg├Ąnzt werden.

Damit IoBroker den Wert published, muss das Objekt in IoBroker gefunden werden. Dann rechts auf das Zahnrad. Hier sollten jetzt die MQTT-Client Einstellungen zusehen sein. Den Haken bei Abonnieren entfernen und bei publish setzen. Erst dann bekommt der MQTT-Broker im Cerbo oder GX die Werte wirklich. Das hei├čt f├╝rs Testen oder die Einrichtung kann man den Haken noch weg lassen und rumspielen ohne, dass etwas passiert.

Hier kann es sein, dass es den Pfad mit W nicht gibt. Das liegt dann daran, dass noch nie was geschrieben worden ist. Dann einfach den gleichen Pfad mit N w├Ąhlen und dann das N durch W ersetzen.

Die im Bild mit nem roten Pfeil markierten Stellen sollten kontrolliert werden. Und nat├╝rlich kann man unten andere Prozentzahlen einstellen. 65% und 30% hatte ich zum Testen verwendet. Ich denke ich werde mit 30% bis 80% anfangen. Das {„value“:…}-Zeug muss da bleiben! ­čśÇ

Es folgt der Code im Textfile. Der kann einfach importiert werden (Vorher Suchen-Ersetzen -> die IDs ├Ąndern):



Das Skript macht dann folgendes:
Zuerst liest es alle Preise von Heute und Morgen aus und ermittelt den g├╝nstigsten und den teuersten Preis. Wenn der Unterschied so gering ist, dass der Verschlei├č vom Akku+Einkaufspreis teurer ist als die Preisdifferenz passiert nix. Wenn der Preis z.B. zwischen 21Cent und 25Cent schwankt, betr├Ągt die Differenz 4 Cent. Ich habe f├╝r mich berechnet, dass die Nutzung des Akkus pro kWh 12Cent betr├Ągt. Ich m├╝sste also 21Cent Einkauf + 12 Cent also 33Cent als Grundlage nutzen. Also kauf ich lieber f├╝r 25Cent und verschlei├če den Akku nicht. Den Wert kann man aber im Skript einstellen.

Die Steuerung vom Multiplus II fand ich nicht ganz einfach. Die sch├Ânste L├Âsung bisher hab ich mit der Steuerung des Minimalen SoC gefunden. Unter diesen Wert wird der Akku nicht entladen. Aber der MPPT kann ├╝ber diesen Wert aufladen.
Das hei├čt bei einem normalen Preis setze ich den Minimalen SoC auf den aktuellen SoC. Der Multiplus h├Ârt auf zu entladen, l├Ąd aber auch nicht. Das hei├čt der aktuelle Ladezustand wird einfach gehalten, egal wo er gerade ist. Der MPPT kann, falls die Sonne scheint, aber trotzdem laden.
Bei einem teuren Preis setze ich den minimalen SoC runter, z.B. auf 30%. Dadurch darf der Akku entladen werden und kompensiert die teuren Stunden. Ich setze bei sehr teuren Stunden den minimalen SoC auf 20%. So hab ich f├╝r diesen Fall wenigstens noch 10% Puffer.

Bei g├╝nstigen und sehr g├╝nstigen Stunden setze ich den minimalen SoC hoch auf z.B. 80%. Ist der aktuelle SoC geringer, beginnt der Multiplus zu laden, bis der minimale SoC erreicht ist.

Und das war es auch schon.

Ich freu mich ├╝ber Anregungen, Kommentare etc. in den Kommentaren.

Gutes Gelingen ­čÖé Ciao, LG,

Torsten