Home Assistant Tibber Preise
Hier eine kleine Anleitung wie man bei Home Assistant eine Grafik für die Strompreise der nächsten Tage erstellt.
Leider liefert die Tibber Integration diese Daten nicht, obwohl die Tibber API diese liefert.

Um diese Grafik erstellen zu lassen wird benötigt :
- HACS
- ApexCharts zu installieren über HACS
- Die Tibber Integration
- Tibber Api Key
- File Editor Integration
- Anpassungen an der configuration.yaml für die Sensoren
- und dann die Grafik erstellen
Auf die HACS Installation werde ich jetzt nicht eingehen, dazu gibt es genügend Anleitungen im Netz
Die Tibber Integration könnt ihr auch ganz einfach über Home Assistant installieren da wird euch dann auch die URL für die Tibber Developer API angezeigt, wo man den Token erstellen kann. Falls ihr das schon gemacht habt, hier nochmal die URL https://developer.tibber.com/settings/access-token
Mittels der Files Editor Integration könnt ihr ganz bequem die configuration.yaml editieren.
In dem File erstellen wir ein Paar Sensoren.
Da die Tibber Integration bereits einen Sensor mit eurer Adresse anlegt hab ich die anderen Sensoren auch nach diesem Beispiel erstellt.
Die Tibber Integration gibt euch im einen Sensor der gleich mehrere Werte enthält, die Ihr dann in separate Sensoren aufsplitten könnt.
Bei mir heist der Sensor „sensor.electricity_price_steinmetzstr_12„

Unten sehen wir dann die Attribute Max price, Avg price und Min price
Das wäre einmal die Min, Max und Average Preise.
Der erste teil im „platform: template“ Bereich nimmt genau diesen Sensor und holt sich daraus die entsprechenden Attribute und Preise und erstellt dazu einen eigenen sensor den Ihr dann wieder überall verwenden könnt.
Hier bitte electricity_price_max_ADRESSE die ADRESSE mit euren Tibber Sensor Namen ersetzen. Bei mir ist es sensor.electricity_price_max_steinmetzstr_12
Und dann bei allen anderen wo ADRESSE steht das gleiche machen.
Im zweiten Teil bei „platform: rest“ rufen wir die Tibber Api auf um dort an die Daten für die nächsten Tage zu kommen.
Bei Authorization: –>TIBBER-API-KEY-HIER-EINTRAGEN<– Bitte durch Euren Tibber Api Key ersetzen
sensor:
# Tibber Integration Sensor Splitter
- platform: template
sensors:
electricity_price_max_ADRESSE:
friendly_name: Electricity Max price ADRESSE
unique_id: sensor.electricity_max_price_ADRESSE
value_template: "{{ state_attr('sensor.electricity_price_ADRESSE','max_price') }}"
unit_of_measurement: EUR/kWh
icon_template: mdi:currency-eur
electricity_price_min_ADRESSE:
friendly_name: Electricity Min price ADRESSE
unique_id: sensor.electricity_min_price_ADRESSE
value_template: "{{ state_attr('sensor.electricity_price_ADRESSE','min_price') }}"
unit_of_measurement: EUR/kWh
icon_template: mdi:currency-eur
electricity_price_avg_ADRESSE:
friendly_name: Electricity Avg price ADRESSE
unique_id: sensor.electricity_avg_price_ADRESSE
value_template: "{{ state_attr('sensor.electricity_price_ADRESSE','avg_price') }}"
unit_of_measurement: EUR/kWh
icon_template: mdi:currency-eur
# Tibber API
- platform: rest
name: "Electricity price Prognose ADRESSE"
unique_id: sensor.electricity_price_prognose_ADRESSE
resource: https://api.tibber.com/v1-beta/gql
method: POST
payload: '{ "query": "{ viewer { homes { currentSubscription { status priceInfo { current { total } today { total } tomorrow { total } } } } } }" }'
json_attributes_path: "$.data.viewer.homes[0].currentSubscription.priceInfo"
json_attributes:
- today
- tomorrow
value_template: "{{ value_json.data.viewer.homes[0].currentSubscription.priceInfo.current.total | float }}"
scan_interval: 300
headers:
Authorization: -->TIBBER-API-KEY-HIER-EINTRAGEN<--
Content-Type: application/json
User-Agent: REST
unit_of_measurement: EUR/kWh
Wenn die Anpassungen vorgenommen wurden muss einmal Home Assistant neu gestartet werden. Das kann gleich beim File Editor oben rechts beim Zahnrad erledigt werden.
Dann wechsel wir zum Dashbord und erstellen eine neue Karte.
Hier könnt ihr gerne erstmal mittes Sensor Karte die neuen Sensoren suchen.

Diese sollten dann nach ein paar minuten, auch Daten liefern.
Wenn die Sensoren dann daten haben könnt ihr auch dann die Benutzerdefinierte Karte anlegen.
Dort wählen wir dann unter Benutzerdefinierten Karten die ApexCharts-Card aus.

Und in dem Quellcode Bereich ersetzen wir den Inhalt mit diesem.
Auch hier muss wieder bei den Sensoren die ADRESSE durch eure Adresse / Sensor Namen ersetzt werden
also
„- entity: sensor.electricity_price_prognose_ADRESSE“ mit
„- entity: sensor.electricity_price_prognose_steinmetzstr_12„
und so weiter.
Ganz unten gibt es noch die entity: sensor.smd630_energy_today hier könnt ihr euren gemessenen Verbrauch eintragen. Bei mir ist es ein Separater Stromzähler den ich auslese.
type: custom:apexcharts-card
experimental:
hidden_by_default: true
graph_span: 48h
all_series_config:
stroke_width: 2
span:
start: hour
offset: "-24h"
now:
show: true
update_interval: 5min
header:
show: true
title: Strompreisprognose (€/kWh)
show_states: true
colorize_states: true
series:
- entity: sensor.electricity_price_prognose_ADRESSE
name: Prognose
yaxis_id: left
type: line
float_precision: 5
curve: stepline
unit: €/kWh
show:
in_header: false
extremas: true
legend_value: false
data_generator: |
const noon = new Date()
noon.setHours(0, 0, 0, 0)
const prices = entity.attributes.today.concat(entity.attributes.tomorrow);
const data = [];
for(let i = 0; i < prices.length; i++) {
data.push([noon.getTime() + i * 1000 * 3600, prices[i].total])
}
return data;
- entity: sensor.electricity_price_min_ADRESSE
name: Min Preis
yaxis_id: left
type: line
float_precision: 5
curve: stepline
unit: €/kWh
extend_to: now
fill_raw: last
show:
hidden_by_default: false
legend_value: false
- entity: sensor.electricity_price_avg_ADRESSE
name: Median
yaxis_id: left
type: line
float_precision: 5
curve: stepline
unit: €/kWh
extend_to: now
fill_raw: last
show:
hidden_by_default: true
legend_value: false
- entity: sensor.electricity_price_max_ADRESSE
name: Max Preis
yaxis_id: left
type: line
float_precision: 5
curve: stepline
unit: €/kWh
extend_to: now
fill_raw: last
show:
hidden_by_default: false
legend_value: false
- entity: sensor.smd630_energy_today
curve: stepline
type: area
opacity: 0.3
name: Bezug
extend_to: now
show:
in_header: false
legend_value: false
yaxis_id: right
group_by:
func: delta
duration: 1h
fill: zero
yaxis:
- id: left
decimals: 2
min: 0
- id: right
opposite: true
decimals: 2
min: 0
max: 10
show: false
Und dann habt ihr diese Grafik

Kann man auch auf dem Dashboard als eine große Kachel anzeigen lassen. und mit der Maus sich die Preise anzeigen lassen

Viel Spass beim nachbauen
hier noch ein update.
Legende ausgeblendet.
Linien etwas smoother
Blau Linie sind die vergangen Preise.
Orange Linie die zukünftigen Preise.
Grün Area ist der Verbrauch in kWh.
Und es werden für Vergangenheit und Zukunft die höchsten und niedrigsten Preise angezeigt.

type: custom:apexcharts-card
experimental:
hidden_by_default: true
graph_span: 48h
brush:
selection_span: 40h
apex_config:
enable: true
autoScaleYaxis: false
apex_config:
chart:
zoom:
enabled: true
toolbar:
show: true
tools:
zoom: true
zoomin: true
zoomout: true
pan: true
reset: true
download: false
legend:
show: false
stroke:
show: true
width: 2
curve: smooth
all_series_config:
stroke_width: 2
span:
start: hour
offset: "-24h"
now:
show: true
update_interval: 5min
header:
show: true
title: Strompreisprognose (€/kWh)
show_states: true
colorize_states: true
series:
- entity: sensor.electricity_price_prognose_ADRESSE
yaxis_id: left
name: Future
type: line
float_precision: 5
curve: stepline
unit: €/kWh
show:
in_header: false
extremas: true
legend_value: false
data_generator: |
const noon = new Date()
noon.setHours(0, 0, 0, 0)
const prices = entity.attributes.today.concat(entity.attributes.tomorrow);
const data = [];
for(let i = 0; i < prices.length; i++) {
data.push([noon.getTime() + i * 1000 * 3600, prices[i].total])
}
return data;
- entity: sensor.electricity_price_ADRESSE
yaxis_id: left
name: Past
type: line
float_precision: 5
curve: stepline
unit: €/kWh
extend_to: now
show:
in_header: false
extremas: true
legend_value: false
- entity: sensor.electricity_price_min_ADRESSE
yaxis_id: left
name: Min Preis
type: line
float_precision: 5
curve: stepline
unit: €/kWh
extend_to: now
fill_raw: last
show:
hidden_by_default: false
legend_value: false
- entity: sensor.electricity_price_avg_ADRESSE
yaxis_id: left
name: Avg Preis
type: line
float_precision: 5
curve: stepline
unit: €/kWh
extend_to: now
fill_raw: last
show:
hidden_by_default: true
legend_value: false
- entity: sensor.electricity_price_max_ADRESSE
yaxis_id: left
name: Max Preis
type: line
float_precision: 5
curve: stepline
unit: €/kWh
extend_to: now
fill_raw: last
show:
hidden_by_default: false
legend_value: false
- entity: sensor.smd630_energy_today
yaxis_id: right
name: Bezug
curve: stepline
type: area
opacity: 0.3
extend_to: now
show:
in_header: false
legend_value: false
group_by:
func: delta
duration: 1h
fill: zero
yaxis:
- id: left
decimals: 2
min: 0
- id: right
opposite: true
decimals: 2
min: 0
show: true
Moin,
danke für den Beitrag. Ich habe es direkt getestet, aber mir fehlt anscheind noch etwas. Die Meldung lautet:
Invalid config for ’sensor‘ from integration ‚template‘ at configuration.yaml, line 17: required key ’sensors‘ not provided, please check the docs at https://www.home-assistant.io/integrations/template Invalid config for ’sensor‘ from integration ‚template‘ at configuration.yaml, line 19: ’sensors:sensor.electricity_price_prognose_xyweg_19′ is an invalid option for ‚template.sensor‘, check: sensors:sensor.electricity_price_prognose_xy_19, please check the docs at https://www.home-assistant.io/integrations/template
Bisher habe ich noch keine Idee, was falsch sein könnte. Hast du einen Tipp?
Hallo Fred,
das schaut so aus als wäre die Sensor Entität noch nicht erstellt worden.
Hast du HomeAssistant neugestartet und dann etwas gewartet. Der REST Sensor Code holt die Daten ja nur alle 5 Minuten (300s) ab.
Eventuell ist im Homeassistant logfile dazu was zu finden.
grüße
Moin Alexander,
ich habe ein seltsames Phänomen und verzweifel bald.
Alle Sensoren wurden angelegt. Die Sensoren „price-prognose“ und „electricity_price_max_“ liefern mir Werte. Diese werden mir auch alle im Apex Chart angezeigt.
Allerdings bekomme ich keine Werte aus „electricity_price_min_“ und „electricity_price_avg_“ angezeigt. Zustand wird als unknown angezeigt.
Irgend eine Idee was ich falsch mache?
Grüße
Volker
Moin Alexander zum zweiten,
kaum hatte ich meinen Kommentar geschrieben, da blitzte dann bei mir das Licht auf.
Wenn man die Sensoren auf den richtigen Bezug setzt (wie bei electricity_price_max_ ja bereits geschehen) – funktionieren natürlich auch die restlichen Sensoren.
Ist schon ein Problem mit dem Wald und den Bäumen. ;-)
Danke für das gute scripting und den Apex Chart.
Grüße
Volker
Es freut mich das du es noch hinbekommen hast.
Vielen Dank, genau das, was ich gesucht habe. Hat zwar etwas gedauert, bis ich es zum Laufen gebracht habe; ich bin noch recht neu in Home Assistant … Hatte das mit der ADRESSE einfach nicht gecheckt. Bis mir klar wurde, dass der Tibber-Sensor bei mir sensor.tibber_strompreis heißt.
Alles umgemodelt und nun funktioniert es. Coole Sache.
Gruß
Markus
Ich hätte es gerne probiert, aber als Anfänger erschließt es sich mir nicht so ganz um offen zu sein. Falls du Lust darauf hast es für mehr Leute zugänglich zu machen wäre eine tatsächliche Schritt für Schritt Anleitung sicher hilfreich – vermutlich nicht nur für mich. Viele Grüße
Hallo Dominik,
danke für das Feedback, kannst du mir vielleicht noch schreiben welche schritte dir fehlen oder wo du mehr Infos bräuchtest?
Dann kann ich gerne die Tage das noch anpassen.
Danke und grüße
Hallo Zusammen,
Ich bin neu in Home Assistant und erst ein paar Tage dabei deshalb noch etwas unsicher. Also ich wie oben beschrieben habe die ersten Sensoren eingerichtet hatte ist etwas kurioses passiert. Meine App hat mit auf einmal einen Meldung rausgeworfen das ich einen extrem hohen Stromverbrauch hätte und gleichzeitig sind alle meine (Pulse) Daten verschwunden. auch konnte ich keine Entitäten mehr einsehen über die Tibber integration. Ist das normal oder habe ich was falsch gemacht? Ein paar Minuten später war dann anscheinend wieder alles ok aber ich würde doch gerne wissen was da passiert ist? Habt Ihr eine Ahnung? ist das normal oder Zufall gewesen?
Mfg
Sven (der ängstliche)
Hallo Sven,
mir ist das noch nicht untergekommen. Aber was mir aufgefallen ist das die Tibber Integration ab und zu keine Daten mehr Sammelt und dann einfach neu geladen werden muss.
Das kann man manuell machen unter Einstellungen –> Geräte & Dienste –> Tibber –> die … neben den Eintrag –> Neu Laden.
Die Manuelle REST Implementation hingegen holt sich immer die Daten. Und die custom:apexcharts-card zeigt dann auch die Daten an, lediglich die Daten von der Tibber Integration fehlen dann halt.
grüße
Alex
Erstmal vielen Dank für die Mühe!
Ich finde allerdings den Fehler nicht, siehe Bild.
https://imgur.com/GUZrGOx
Min/AVG/Max Preis werden als N/A angezeigt.
Die Sensoren sind in der configuration.yaml und heißen auch im Dashboard richtig.
entity: sensor.electricity_price_min_
Neugestartet und gewartet hatte ich auch.
Idee was es sein kann?
Moin Moin
ich tu mich noch etwas schwer mit den Adressen…
Hat mal jemand ein template was funktioniert…
Ich glaube es scheitert bei mir auch an der Formatierung.
Gruß
Christoph
Moin
irgednwie hab ich das mit den „Adressen“ wohl noch nicht verstanden. Hab so einiges probiert..
Hat jemnad ein lauffähiges Template was wo ich erkennen kann was ich eintragen muss und wie das richtig formatiert wird.
Gruß
Christoph
Hi,
du hast den Part mit dem „# Tibber Integration Sensor Splitter“ angelegt und hast dann auch drei neue Sensoren bekommen oder ?
Die dann electricity_price_max_ADRESSE
electricity_price_min_ADRESSE
electricity_price_avg_ADRESSE
heißen oder ?
Ich hab bei mir halt den Hauptsensor von der Tibber Integration mit der Adresse versehen, daher ziehe ich das so auch weiter durch alle Sensoren.
Falls ich mal umziehe…..
In dem Template für die Grafik scheint ja alle da zu sein bis auf die Sensoren oben.
Das wären diese Einträge in dem Template
– entity: sensor.electricity_price_min_ADRESSE
– entity: sensor.electricity_price_avg_ADRESSE
– entity: sensor.electricity_price_max_ADRESSE
Wenn die Sensoren da sind sollte das auch klappen.
Du kannst ja mal mit einer Normalen Sensor-Karte nach den Sensor „sensor.electricity_price“ suchen. dann sollte er dir welche anbieten
grüße
Moin Alex
nach einigem hin und herrücken geht nun alles.
Vielen Dank für das tolle Tool. Hab dabei wieder etwas über Jaml gelernt.
Gruß
Christoph
Super, bei mir funktioniert das wirklich klasse. Vielen Dank!
Ich hätte nur auch gerne unten den stündlichen Verbrauch, den Du über den Sensor „sensor.smd630_energy_today“ abgebildet hast. Ich habe einen Shelly Pro 3EM verbaucht. Kannst Du mir einen Hinweis geben, wie ich aus diesem einen vergleichbaren Sensor zu „sensor.smd630_energy_today“ bauen kann?
Vielen Dank!
Hallo Marco, ich hab selber keinen Shelly Pro 3EM aber in einem anderen Projekt einen Shelly Pro 1EM der über die Shelly Integration eingebunden ist.
Wenn du das auch über die Shelly Integation gemacht hast, dann solltest du da einen kWh zähler haben. Bei mir heist der so
„sensor.shellyplus1pm_80646fe60588_switch_0_energy“
Diesen Sensor hab ich dann mit dem „Helfer Verbrauchszähler“ zu einen neuen Täglich zurücksetzenden Energy_today Zähler gemacht.
Hoffe da hilft dir erst mal weiter
grüße
Hallo zusammen, ich bin neu und versuche auch die Tibber Preisprognose in Home Assistant zu bekommen.
Ich habe alles nach Anleitung gemacht und sehe dann auch die Sensoren, eine Entität und drei Helfer. Allerdings zeigt die Entität anderes an als im Vorschlag und erneuert keine Daten.
Ich bin mir auch nicht sicher, mit was ich als ADRESSE ersetzen soll. Wo steht denn mein Identifier für API Aufrufe (den token habe ich) ? Ich habe eine Client ID, aber keinen Client Name
Hallo Axel,
Wenn du die Tibber Integration angelegt hast dann solltest du ein paar Sensoren bekommen haben. Diese Sensoren haben bei mir meine Adresse im Namen.
sensor.electricity_price_MEINE_ADRESSE
Einstellungen -> Geräte und Dienste -> Integration hinzufügen -> Tiber
Dann kannst du nach der Einrichtung bei der Tibber Integration -> Geräte –> Electricity Hour price DEINE ADDRESSE sehen. Dann da drauf klicken und oben rechts bei dem Zahnrad dann, da findest du deine Editäts-ID
sensor.electricity_price_DEINE_ADRESSE
grüße