NEWS
Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse
-
@Codibris @Michaelnorge @theGrinch
Ich wollte Euch noch über einen Versuch informieren, den ich die letzten Stunden ausprobiert habe. ALLERDINGS möchte ich AUF KEINEN FALL, dass hier ein falscher Eindruck entsteht... Das soll jetzt keine Konkurenzlösung für Codibris-Adapter werden !!! Das ist mir ganz wichtig...
Es besteht die Möglichkeit eine WebSocket-Verbindung zu den TIBBER LiveMeasurement Daten über node-red herzustellen und die Daten dann in die Datenpunkte des ioBrokers zu schreiben. Allzuviel Ahnung von node-red habe ich nicht und habe es quasi im Blindflug wie folgt versucht:
- Im ioBroker im Node-Red-Adapter "Palettenmanager benutzen" aktivieren
- In Node-Red über das Hamburger-Menu unter "Palette verwalten" im Reiter "Installation" nach "node-red-contrib-tibber-api" suchen und installieren. Danach findet sich eine weitere Node "Tibber API" in der linken Node-Auswahl.
- Die JSON-Datei nach dem Download in Zeile 17 die eigene TIBBER "homeId": "*******" statt der Sternchen und in Zeile 195 das eigene TIBBER "accessToken": "********" statt der Sternchen eintragen.
2022-22-29_node-red-TIBBER-LiveMeasurement.json - In Node-Red über das Hamburger-Menu unter "Import" die komplettierte JSON-Datei importieren.
- Danach sollte folgender Flow angezeigt werden.
- Jetzt noch durch Doppelklick auf die blauen "ioBroker OUT"-Nodes die ioBroker-Datenpunkte im Feld "Topic" eintragen, in die die Werte geschrieben werden sollen.
- Wenn der Flow dann "deployed" ist:
- sollte unter der linken Node "connected" stehen, was anzeigt, dass die WebSocket-Verbindung zu TIBBER steht.
- sollten unter den blauen Nodes "grüne Kästchen" auftauchen, die zeigen, dass die Datenpunkte im ioBroker erreichbar sind.
- finden sich am rechten Rand die Debug-Informationen mit dem Gesamtstring und den einzelnen Werten für "Aktuelle Leistung", "Letzter_Zählerstand_Bezug" und "Letzter_Zählerstand_Einspeisung"
Die Daten werden sekündlich in die Datenpunkte geschrieben und es kommt zu keinem Abbruch oder Fehlermeldungen im LOG.
Mit Doppelklick auf die TIBBER-Feed-Node können dann noch weitere Daten angeklickt, abgeholt und extrahiert werden. Ich hatte es erstmal nur auf die 3 genannten Werte beschränkt.Vielleicht möchtet Ihr es auch mal probieren oder einfach mal damit spielen. Für mich war es auch nichts anderes.
Wenn codibris die Zeit findet und den Adapter überarbeitet hat, werde ich auch den Adapter einsetzen.Viele Grüße und good luck ;-), Thomas
-
Ich hatte Probleme mit der Admin Instanz wegen zuvielen States und jetzt viel es mir direkt auf, ich glaube daß macht dieser adapter beim restart.
admin.0 2022-12-29 13:07:03.966 info Unsubscribe from all states, except system's, because over 3 seconds the number of events is over 250 (in last second 0) tibberconnect.0 2022-12-29 13:06:52.095 warn Fehler (Gateway Time-out) bei Vorgang: Abruf 'homes':
Aktuell ist das Script deaktiviert, daß ihn wieder neu starten läßt und der Adapter ist auch deaktiviert, jetzt ist die warnmeldung mit den States weg, habt ihr das auch?
-
@babl Hi. Nein, die Meldung hatte ich nicht.
-
@Codibris
Hallo,habe Deinen Adapter nun auch installiert, super Arbeit, liefert die Werte, die ich benötige, habe vorher mit Node-RED gearbeitet, allerdings mit der alten API.
Hast Du vor auch die Übertragung des Zählerstandes mit einzubauen?
Soll zwar nur für Norweger sein, aber vielleicht funktioniert es auch hier, dann könnte man täglich den Zählerstand automatisiert senden, statt über die App.Ich mein dies in der API:
Field Argument Type Description
sendMeterReading MeterReadingResponse!
Send meter reading for home (only available for Norwegian users)input MeterReadingInput!
updateHome Home!
Update home informationBeste Grüße
René -
@codibris danke für diesen genialen Adapter! Ich versuche gerade anhand der Preisvorhersagen meinen Speicher optimal zu nutzen, heißt bei Hochpreisen ausspeichern und bei Niedrigpreisen eine Entladesperre zu setzen. Was genau Hochpreis und was Tiefpreis ist, soll sich natürlich dynamisch anpassen. Ich wollte zunächst mit dem Pricelevel arbeiten, jedoch bezeiht der sich meiner Meinung nach auf zurückliegende Preise und ist nicht geeignet für mein Vorhaben.
Gibt es eine Möglichkeit, über die PricesTomorrow einen Durchschnitt zu bilden und in einen neuen Datenpunkt zu schreiben?
Bin leider absoluter Anfänger in javascript... -
@whiley85 schau dir mal das Script an
https://forum.iobroker.net/topic/60938/geräte-zu-stundenpreisen-epex-oder-pv-überschuss-betreibenDa werden auch DP für Durchschnitts Preise erstellt
-
@mikerow Vielen Dank, kann mir sicher helfen, besser in die Sache reinzukommen. Auf den ersten Blick ist dieser Ansatz leicht anders als meiner, denn hier wird eine Bandbreite des günstigsten Preises ermittelt.
Ich stelle mir vor, dass ich um 14:00 Uhr den average der 24 Werte PricesTomorrow bilde und meinen Speicher per RSCP wie folgt steuere:if currentPrice < 0.9 x average, lade Speicher
else if currentPrice > 1.1 x average, nutze Speicher
else setze EntladesperreHoffe man versteht meine Überlegungen.
-
Hi. Lass mir mal bitte heute Abend Zeit. Wenn es klappt schaue ich mir das an und melde mich bei Dir.
Gruß Thomas -
@whiley85 Schau dir das mal an. https://www.photovoltaikforum.com/thread/142863-prognosebasierte-ladung-mittels-iobroker/
Tibber Addon ist da auch dabei. Vielleicht kannst du Teile davon gebrauchen
-
@thomkast zu spät... ist zwar nicht schön, aber selten und scheint zu funktionieren:
schedule("1 13 * * *", async function () { function ArrayAvg(myArray) { var i = 0, summ = 0, ArrayLen = myArray.length; while (i < ArrayLen) { summ = summ + myArray[i++]; } return summ / ArrayLen; } var myArray = [ parseFloat(getState("tibberconnect.0.Homes.ffXXX.PricesTomorrow.0.total").val), parseFloat(getState("tibberconnect.0.Homes.ffXXX.PricesTomorrow.1.total").val), parseFloat(getState("tibberconnect.0.Homes.ffXXX.PricesTomorrow.2.total").val), //... parseFloat(getState("tibberconnect.0.Homes.ffXXX.PricesTomorrow.21.total").val), parseFloat(getState("tibberconnect.0.Homes.ffXXX.PricesTomorrow.22.total").val), parseFloat(getState("tibberconnect.0.Homes.ffXXX.PricesTomorrow.23.total").val), ]; var avg = ArrayAvg(myArray); setState('0_userdata.0.Tibber.next24hAvg', avg); setState('0_userdata.0.Tibber.next24hAvgCent', Math.round(avg*10000)/100); });
Mit dem Datenpunkt kann ich nun mein E3DC Ladeverhalten regeln.
Preis 10% niedriger als morgiger Durchschnittspreis => Akku laden
Preis 10% höher als morgiger Durchschnittspreis => Akku freigeben
Alles dazwischen => Entladesperreschedule("1 * * 1,12 *", async function () { var CurrentPrizeCent=getState("alias.0.Tibber.CurrentPrizeCent").val; var next24hAvgCent=getState("0_userdata.0.Tibber.next24hAvgCent").val; var SoC=getState("modbus.0.holdingRegisters.40083_Batterie_SOC").val; if (SoC<80) { if (CurrentPrizeCent<0.8*next24hAvgCent) { setState("e3dc-rscp.0.EMS.SET_POWER_MODE",3); //Charge setState("e3dc-rscp.0.EMS.SET_POWER_VALUE",3000); //3000 Watt } else if (CurrentPrizeCent<0.9*next24hAvgCent) { setState("e3dc-rscp.0.EMS.SET_POWER_MODE",3); //Charge setState("e3dc-rscp.0.EMS.SET_POWER_VALUE",2000); //2000 Watt } else if (CurrentPrizeCent>1.1*next24hAvgCent) { setState("e3dc-rscp.0.EMS.SET_POWER_MODE",0); //Normal setState("e3dc-rscp.0.EMS.MAX_DISCHARGE_POWER",3000); } else { setState("e3dc-rscp.0.EMS.SET_POWER_MODE",0); //Normal setState("e3dc-rscp.0.EMS.MAX_DISCHARGE_POWER",0); //Entladesperre }} else if (CurrentPrizeCent>1.1*next24hAvgCent) { setState("e3dc-rscp.0.EMS.SET_POWER_MODE",0); //Normal setState("e3dc-rscp.0.EMS.MAX_DISCHARGE_POWER",3000); } else { setState("e3dc-rscp.0.EMS.SET_POWER_MODE",0); //Normal setState("e3dc-rscp.0.EMS.MAX_DISCHARGE_POWER",0); //Entladesperre } });
-
@whiley85 warum die Preise von morgen und nicht von heute?
-
@mikerow weil die Preisinformation von morgen wertvoller ist. Wenn der Durchschnittspreis von morgen höher ist als von heute, mach ich schnell den Akku voll. Ist er niedriger, mach ich den Akku leer. Ich kann so viel effizienter steuern, auch über mehrere Stunden.
-
@whiley85 sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:
@mikerow weil die Preisinformation von morgen wertvoller ist. Wenn der Durchschnittspreis von morgen höher ist als von heute, mach ich schnell den Akku voll. Ist er niedriger, mach ich den Akku leer. Ich kann so viel effizienter steuern, auch über mehrere Stunden.
OK, alles klar. Verstehe
-
Hallo zusammen,
ich habe seit Samstag einen Pulse, mein ITRON ACE 3000 hat aber nur den verkürzten Datensatz. Kann es sein, dass ich im Adapter den Pulse deswegen gar nicht aktivieren kann, da keine Live Daten vorhanden sind?
Kann ich trotzdem die stündlichen Verbräuche in den Broker bekommen? Vielen Dank -
Weiß jemand, ob es über die API bzw. den Adapter irgendwie möglich ist, den Zählerstand abzufragen?
-
@oxident ja, wird mit ausgelesen
-
@mikerow
Weißt Du, was man da abfragen muss? Bei meinem Zähler ist der Zählerstand nämlich der einzige Wert, der ausgegeben wird. Irgend etwas stimmt bei mir wahrscheinlich nicht. Gestern früh zwischen 2 und 5 Uhr habe ich 10 kWh in mein Auto geladen. Die Tibber App (und API) zeigt aber Verbräuche pro Stunde von ca. 0,7 kWh an. Das ist gar nicht möglich.
Den Tibber Support habe ich Montag bereits angemailt, die scheinen aber hoffnungslos unterbesetzt zu sein...
Wenn ich also mal einen Abgleich zwischen Ist-Zustand und API machen könnte, wäre das super. -
@kentrath ich denke, dann setzt du hier falsch an. Du musst sicherstellen, dass der Pulse alle Daten zu Tibber sendet. erst dann kann der IOB Adapter auch etwas sehen. ich denke, da musst du mit dem Tibber Support Rücksprache halten. Vielleicht hast du den Info datensatz im Zähler nicht freigeschaltet.
-
@kentrath Du kannst auch für den DP Zählerstand das schreiben in Influx oder history aktivieren und dann entsprechen rechnen mit einem Script wie der Verbrauch ist
-
@mikerow
Vielen Dank für Deine Antwort. Mein Itron ACE 3000 ist leider nicht in der Lage, einen erweiterten Datensatz auszugeben (auch nicht freischaltbar, habe ich beim Netzbetreiber schon angefragt). Das steht auch so auf der Tibber Whitelist. Es wird nur alle 10 Sekunden der Zählerstand übermittelt, sonst nichts. Laut Tibber reicht dies aber aus, um stündlich abzurechnen. Die API zeigt mir aber immer erst am Folgetag Daten an. Sprich aktuell ist für den 11.01. der Verbrauch auf "null" und für den 10.01. sehe ich vermeintlich die Verbrauchsdaten. Hat noch jemand von Euch einen Zähler, der nur den Zählerstand übermitteln kann? Wie sieht es da bei Euch aus?