NEWS
Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse
-
@babl Ja, das kann ich bestätigen - Der Adapter schreibt dann haufenweise Fehlermeldungen in die Log und der bleibt auf gelb, hab schon ein issue geschrieben, aber der Programmierer hat verständlicher Weise im Moment keine Zeit
Ich hatte einen kleinen Blockly geschrieben, der einen Reconnect versucht, sobald der Adapter rumzickt, aber der schaffte es auch nicht, da tibberconnect explizit ausgeschaltet und wieder angeschaltet werden muß. Seit ein paar Tagen habe ich ein anderes Blockly, mit dem bin ich super zufrieden.
Der Blockly (oder heisst es DAS Blockly???) checkt alle 12 Minuten ob der Adapter auf true steht, wenn nicht, sendet er einen disconnect und einen reconnect.
Damit kann ich im Moment super leben!
Grüße
Michael -
@michaelnorge Warum alle 12min und nicht, wenn der Adapter auf "false" geht?
-
@thegrinch Weil der auch auf false steht während das System hochfährt - das könnte problematisch sein.
-
Entschuldigt bitte, dass ich den Beitrag so häufig korrigiere... Die Verwendung des normalen "timeouts" wird mir vermutlich noch länger ein Rätsel bleiben... Mit dem abgebildeten "Ausführen Timeout in..." läuft es nun wie gewünscht.
Hallo Zusammen und vielen Dank an Michael für den Script-Vorschlag. Habe es bei mir ein wenig anders und eher in die Richtung von TheGrinch gelöst...
Sobald der Adapter die Verbindung verliert, wird nach Ablauf von 3 Minuten, der Adapter gestoppt und neu gestartet. Sollte sich der Adapter, innerhalb der 3 Minuten wieder verbunden haben, wird das Beenden/Neustarten unterbrochen und der Adapter läuft ungehindert weiter.Es wurden deshalb 3 Minuten gewählt, weil bislang der Adapter erst nach 3 Minuten komplett ausgefallen war. Diese Zeit wollte ich warten.
Außerdem musste ich die Zeit zwischen Stop und Start auf 30 Sekunden setzen, um LOG-Einträge zu vermeiden, dass der Start zu schnell nach dem Stop erfolgte...
Beste Grüße, Thomas
-
@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