NEWS
Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse
-
-
Nur mal eben zum Verständnis:
Sind die Adapter bei ioBroker nicht opensource? Könnte da nicht theoretisch jemand Anderes drüberschauen, wenn @Codibris keine Lust oder Zeit hat?Es wäre schade drum, wenn niemand mehr den Adapter pflegen würde - zumal ja der andere Adapter auch nicht mehr supportet wird
-
@michaelnorge ja es wurde ja von jemanden bereits eine Merge Anfrage gestellt an @Codibris nur er müsste dann auch antworten. So wie ich das in github gelesen habe wären dann die Probleme mit dem Pulse behoben.
-
Oder aber, man testet direkt den Fork: https://github.com/volkerrichert/ioBroker.tibberconnect
Mutige vor
-
@oxident auch mit dem Fork bekomme ich keine Werte rein... Jemand anders schon?
-
Hallo Thomas,
vielen Dank für diese Doku zum Abfragen des Pulse über NodeRed.
Es funktioniert sehr gut!
Ich habe testweise mal averagePower hinzugefügt, und habe nun das Problem, dass im ioBroker Datapoint ein TimeStamp statt des Wertes ankommt??Habs gefunden...Hat übrigens noch jemand das Problem, dass der Pulse die aktuelle Leistung (power) falsch überträgt?
Wenn ich 700 W verbrauche werden in der Tibber App -200 W (das wäre eine Lieferung von mir) und per Tibber-API 0 W angezeigt.
Steigt der Verbrauch auf ca. 1000 W stimmen die Übertragungen dann wieder. Tibber hat seit 3 Tagen darauf noch nicht reagiert.
Zähler ist ein DZG DWS7412.1TViele Grüße
Heinrich -
Hat noch ein wenig gedauert, bis es "rund" ist. Hier ist ein erster Release meines Tools, welches aktuell die Zäherstände über ein Shell-Script beziehen kann:
https://github.com/micw/tibber-meter-uploader
Läuft seit heute bei mir auf dem Server unter Docker und hat heute den ersten Wert hochgeladen. Fehlermeldungen, Feature-Requests und Diskussion ist willkommem
Viele Grüße,
Michael. -
Ich habe testweise mal averagePower hinzugefügt, und habe nun das Problem, dass im ioBroker Datapoint ein TimeStamp statt des Wertes ankommt??
Log:
State value to set for "0_userdata.0.Tibber-Node-Red.averagePower" has to be type "number" but received type "object"Weder ein ioBroker datapoint vom Typ 'Number' noch 'Object' funktioniert ???Habs gefunden: Wer schreiben kann ist klar im Vorteil!
-
@warp-it
Ah schön. Habe es gerade nachgestellt. Gut, dass es nun funktioniert.Du kennst die Möglichkeit den kompletten Pfad eines Datenpunktes aus ioB zu kopieren, statt diesen einzutippen? Mit Klick darauf...
-
@warp-it
Zu Deiner Frage... Nein - funzt 1a. Auch mit kleinen Werten
-
@michael-wyraz sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:
Hat noch ein wenig gedauert, bis es "rund" ist. Hier ist ein erster Release meines Tools, welches aktuell die Zäherstände über ein Shell-Script beziehen kann:
https://github.com/micw/tibber-meter-uploader
Läuft seit heute bei mir auf dem Server unter Docker und hat heute den ersten Wert hochgeladen. Fehlermeldungen, Feature-Requests und Diskussion ist willkommem
Viele Grüße,
Michael.ne möglichkeit/Anleitung wie man das direkt im iobroker macht wäre super (falls es überhaupt geht)
im Docker, muss ich mal schauen wie das funzt.... sobald ich mal"Zeit" habe...
Finde das jedefalls mega das du es erstellt hast
-
@schimi Hab leider mit IOBroker gar nix zu tun und auch keine Ahnung, wie das rein geht. Technisch ist es am Ende recht einfach.
Zuerst sende ich einen HTTP-Request mit Username+Passwort und bekomme einen Login-Token.
Dann sende einen HTTP-Request mit einer GraphQL Query. Das ist ein JSON-Dokument, welches in einem Feld eine Query (das ist ein großer statischer Text) und in einem anderen Feld alle Variablen enthält. In einem Cookie-Header sende sich das Login-Token mit. Als Antwort bekomme ich eine Info über den Account, alle Zähler, deren "Register" (da ist nur das Register "1-0:1.8.0" interessant, das ist der Gesamtstromverbrauch über alle Phasen und Tarife) und alle "Homes", jeweils nochmal mit deren Zählern und den zuletzt gemeldeten Zählerständen.
Das JSON-Objekt zerlege ich, so dass ich weiß, welcher Zähler dort ist und welche Zählerstände gemeldet sind.
Mit diesen Infos befrage ich die "Quelle" - das könnte beispielweise auch IOBroker sein - nach neuen Zählerständen ab dem letzten gemeldeten. Ich übertrage hier tageweise, obwohl monatlich ausreichen würde, da ich gerne die Statistik in der Tibber-App sehen möchte (das kann ich aber auf Wunsch auch einstellbar machen).
Habe ich die Zählerstände, rufe ich eine GraphQL "Mutation" auf, um die zu übergeben. Funktioniert genau wie die GraphQL Query.
Mit diesen Infos und dem Code aus meinem Repo sollte es jemanden mit entsprechenden Kenntnissen sicher möglich sein, das auch direkt in IOBroker umzusetzen. Alternativ (wenn mir jemand sagt, wie ich das abfrage und es hinterher testet), kann ich auch direkt IOBroker als Quelle mit in mein Tool einbauen. Bei Bedarf bitte ein Ticket mit den nötigen Infos im Repo machen.
Viele Grüße,
Michael.Edit: ich würde mich mit diesem Post aus dem Thread ausklinken, da das hier nur so halb reinpasst und ich den Thread damit nicht kapern möchte. Wenn es einen Thread gibt, das Senden der Daten in IOBroker zu integrieren und Rückfragen sind, kann ich gerne angepingt werden.
-
@thomkast said in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:
@warp-it
Ah schön. Habe es gerade nachgestellt. Gut, dass es nun funktioniert.Du kennst die Möglichkeit den kompletten Pfad eines Datenpunktes aus ioB zu kopieren, statt diesen einzutippen? Mit Klick darauf...
Ja, das ist klar, aber man sollte das 'return' aus der Funktion auch mit dem gleichen Variablennamen machen, den man in der Zeile vorher definiert hat.
Danke trotzdem für die Hilfe. -
@thomkast said in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:
@warp-it
Zu Deiner Frage... Nein - funzt 1a. Auch mit kleinen WertenDu hast wahrscheinlich einen anderen Zähler ?!
In der PowerOpti Whitelist steht was, dass bei meinem Zähler die Werte teilweise mit falschem Vorzeichen kommen würden... Egal, laut Tibber Pulse Whitelist sollte dieser Zähler funktionieren... -
@schimi sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:
mir würde es im grunde reichen wenn ich einmal im Monat (lösbar über Cronjob, dann könnte man flexibel auch jeden Tag oder so, wählen) den Zählerstand übertrage.... (In meinem fall, macht der Pulse wenig sinn und ich habe mehr vom Durchschnittspreis)
ich habe mich ebenfalls zwecks Stromkosten für tibber entschieden, allerdings habe ich gar keinen smarten Stromzähler, von daher wird eh monatlich abgerechnet. Allerdings bin ich nun auch an einer Lösung interessiert, die Zählerstände automatisiert hochzuladen.
Meinen Ferraris Zähler lese ich mit einem Sensor aus und habe den Zählerstand somit in iobroker.
Da ich nicht scripten kann, habe ich nun auch mal ChatGPT bemüht und folgendes Script erstellt.const axios = require('axios'); async function updateCounterData(counterValue) { try { const response = await axios.post('https://api.tibber.com/v1-beta/gql', { query: `mutation { updateDataPoint(input: { id: "your-data-point-id", value: ${counterValue} }) { dataPoint { id value } } }`, headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer your-api-token' } }); console.log(`Counter data successfully updated: ${response.data.data.updateDataPoint.dataPoint.value}`); } catch (error) { console.error(`Error updating counter data: ${error.message}`); } } // Schedule to send current value of state "your.iobroker.instance.state" to Tibber every day at 12:00 schedule('0 12 * * *', () => { const counterValue = getState('your.iobroker.instance.state').val; updateCounterData(counterValue); });
Achten Sie darauf, Ihre eigene Datenpunkt-ID, API-Token und den Pfad zum Zustand in iobroker anzugeben.
Achten Sie darauf, dass der Zeitplan entsprechend Ihren Bedürfnissen angepasst wird -
@crunchip Okay, diese KI-Sachen machen mir langsam Angst
Ist vielleicht eine blöde Frage, aber funktioniert das Skript tatsächlich?
Auf den ersten Blick sieht es nämlich durchaus schlüssig aus...Ich gehe mal davon aus, dass "your-api-token" der reguläre Tibber-Token ist. Was wäre denn "your-data-point-id"? Bekomme ich die aus den Sample Queries von Tibber heraus?
Übergibst Du den Zählerstand dann als kWh oder Wh? Nachkommastellen?
-
@oxident sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:
aber funktioniert das Skript tatsächlich
das sehe ich um 0:02
@oxident sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:
dass "your-api-token" der reguläre Tibber-Token ist. Was wäre denn "your-data-point-id"?
ja ist der token und die id steht ja in der Instanz
@oxident sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:
Übergibst Du den Zählerstand dann als kWh oder Wh? Nachkommastellen?
original so wie er im DP steht, kWh mit Nachkomma
-
@crunchip Mega. Danke!
-
@crunchip said in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:
das sehe ich um 0:02
Müsste der cronjob dann nicht "2 0 * * *" heißen? Jetzt würde er jeden Tag um 12 Uhr mittags starten...
-
@oxident ja, das war nur ein Beispiel oben, habe es bei mir auf 0:02 gestellt damit ich es dann gleich sehe ob es funktioniert
per App kann man ja nur einen pro Tag eintragen und das habe ich heute schon manuell