Tibber Pulse (API)
Inhaltsverzeichnis
Allgemeines
Da ich aktuell vom Energieversorger einen zweiten Hausanschluss (40kW :-() gelegt bekommen habe und ich für die Wallboxen zur Foerderung einen 100% Oekostrom haben musste, habe ich kurzerhand einen Vertrag mit Tibber mal zum Testen abgeschlossen.
Installation
Eigentlich verlief die Installation problemlos. Fuer mich war allerdings der Assistent in der Tibber-App zu kindisch. Das ist eher was für Apple-User. Ich haette mir an der ein oder anderen Stelle mehr Hardcore-Infos gewuenscht. Da der mehrstufige Prozess (WLAN-Bridge-Pulse-Zaehler) doch einige Solperfalle enthaelt ist es fuer mich eher frustrierend jedesmal bei einem Fehler zurueck auf Los geschickt zu werden. Das geht definitiv besser. Ist aber wieder ein Beispiel, dass die Informatiker-Jobs heute nur noch durch 5-jaehrige Schimpansen besetzt werden.
Bei mir gab es letztendlich nur einen gravierenden Fehler. von den mitgelieferten Akkus des Pulse war einer defekt. Bei mir sind das zwei AA-Zellen auf LiBasis! Ein Nachladen mit einem Lithium-1.5V-Lader hat keinen Erfolg gebracht. Erst der Austausch gegen 2 neue Zellen war erfolgreich.
App
Die App find ich ziemlich verquer. Sobald Rechnungsanschrift und Installationsorte unterschiedlich sind, geht das Chaos los. Auch der Support tut sich dann schwer. Ich traue mich gar nicht so richtig weitere Vertraege abzuschlieszen. Alles ueber die App machen zu wollen/muessen ist ... Das gehoert fuer mich ins WebUserPortal.
API
Da die App eher suboptimal ist, habe ich recht zuegig damit angefangen mir die notwendigen Infos ueber die API auf eine Infoseite im Intranet zu holen. Ein Integration in FHEM steht noch aus.
Erste Schritte
Zu Einstieg nutze ich den Api Explorer im TibberDev. Nachdem man sich dort einen Personal Token angelegt hat kanns direkt losgehen. Der GraphiQL hat auch eine Autovervollstaendigung. Sehr praktisch.
Die Root-Types sind query: Query mutation: RootMutation subscription: RootSubscription fragment feht irgendwie in der Doc
query Datenabfrage (read)
query->viewer
Zuerst mit homes die Zaehlerplatz-iD holen und dan mit home (id: "<ID>") nur die data dazu holen.
Hello World;-) {
viewer { login name userId accountType home (id: "1cdd8b6d-956c-447f-9b95-9a57801eaf4c") { id features { realTimeConsumptionEnabled } subscriptions { id } currentSubscription { id } meteringPointData { consumptionEan gridCompany gridAreaCode priceAreaCode productionEan energyTaxType vatType estimatedAnnualConsumption } owner { id } mainFuseSize } websocketSubscriptionUrl }
}
Interessant fand ich z.B.
"priceAreaCode": "Amprion",
"estimatedAnnualConsumption": 500
"mainFuseSize": null
und was da noch alles an Daten einzutragen ist.
size: Int The size of the home in square meters
mutation Datenveraenderung (write)
subscription
Subscription hat nur 2 Felder, wobei dauerhaft nur das esrte interessant ist
liveMeasurement(homeId: ID!): LiveMeasurement Subscribe to real-time measurement stream from Pulse or Watty device
testMeasurement(homeId: ID!): LiveMeasurement Subscribe to test stream
subscription{
liveMeasurement(homeId: "<homeID>"){
timestamp
power
lastMeterConsumption
accumulatedConsumption
accumulatedProduction
accumulatedConsumptionLastHour
accumulatedProductionLastHour
accumulatedCost
accumulatedReward
currency
minPower
averagePower
maxPower
powerProduction
powerReactive
powerProductionReactive
minPowerProduction
maxPowerProduction
lastMeterProduction
powerFactor
voltagePhase1
voltagePhase2
voltagePhase3
currentL1
currentL2
currentL3
signalStrength
}
}