Tibber in Dashboard anzeigen

War auch meine Hoffnung, aber leider immer noch keine Daten, nur Loading.

Hallo,

das hat super geklappt mit der Einbindung der Tibber-Preis. Danke für die Konfig. Da ich aber jetzt nicht der Experte bin, hätte ich noch eine zusätzliche Anforderung, vielleicht könnt ihr mir dabei helfen. Ich möchte gerne aus dem json die aktuelle Sunde und die nächsten 4 oder 6 Stunden angezeigt bekommen bzw. in einen seperaten Sensor haben um auf dem Dashboard einen gewissen Strompreistrend anzuzeigen. Bin hier ratlos.

Viele Grüße
Tobias

Ich konnte den Fehler finden, der bei mir zugrunde lag. Nur zur Info, falls jemand das Gleiche hat Problem hat. Nachdem ich vergeblich mehrfach den Sensor und die Apexcharts neu gemacht habe, ist mir aufgefallen, dass in der Tibber-App ein zusätzliches Zuhause aufgetaucht war. Dieses war ohne Daten und ohne Stromvertrag. Warum, wieso und woher es kam - keine Ahnung. Konnte ich auch mit Tibber nicht klären. Dieses falsche Zuhause musste von Tibber gelöscht werden und sofort funktionierte es wieder bei mir.

Auf die Idee muss man erstmal kommen.

Lg

Leider versuche ich nun schon seit einigen Tagen das es bei mir läuft mit dem Tibber Preis, aber nein, fängt schon an nach eingabe des Codes in die cofiguration.yaml.

Ich füge ein:

- platform: rest
  name: Tibber Prices
  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: 30
  headers:
    Authorization: HIER DEIN API SCHLÜSSEL EINTRAGEN
    Content-Type: application/json
    User-Agent: REST
  unit_of_measurement: EUR/kWh

Und schon kommt ein Rotes !, dort steht folgendes drin.

end of the stream or a document separator is expected (248:1)

 245 | #   custom_components.localtuya ...
 246 | #   custom_components.localtuya ...
 247 | 
 248 | - platform: rest
-------^
 249 |   name: Tibber Prices
 250 |   resource: https://api.tibber. ...

Finde da den Fehler nicht oder kann es sein das sich das mit folgendem Beißt und nicht zusammen funktioniert ?

notify:
  - name: WhatsApp
    platform: rest
    resource: https://api.callmebot.com/whatsapp.php
    data:
      source: HA
      phone: #enter your phone number here
      apikey: #enter your apikey here (see Setup above)

Ich hoffe jemand weiß was ich falsch mache. lg Dirk

Bei mir in der configuration.yaml sieht es für den von dir beschriebenen Part für Tibber wie folgt aus:

sensor:
  - platform: rest
    name: Tibber Prices
    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: 30
    headers:
      Authorization: !secret tibber_token
      Content-Type: application/json
      User-Agent: REST
    unit_of_measurement: EUR/kWh

Muss also alles mit den richtigen Einrückungen unter “sensor” stehen. Und wenn du die Abteilung “sensor” schon irgendwoanders hast in der configuration.yaml, muss es dazugepackt werden,

1 „Gefällt mir“

Vielen Dank, so läuft es nun. War wohl ein einrückung vorher nicht richtig. Das Sensor: mußte ich weglassen weil es bereits vorhanden war. Nun geht alles korrekt.

Vielen Dank!!! für die Tibber Preisanzeige im Dashboard. Hab ich mir kopiert und geht sehr gut.

Seit gerade 28.12.2024 sieht die Grafik etwas anders aus, OHNE das ich was geändert habe.

TibberPreisAnzeige

Da fehlen ein paar Linien.

Sieh bei mir genauso aus. Gibt es schon eine Lösung?

Vor allem weiß ich nicht weshalb diese Ansicht nun so ist.

Und heute sieht es wieder so aus, ohne das ich was geändert habe.

Hi, erstmal Danke für das Tuturial. Auf den ersten Eindruck hat bei mir schon mal alles wunderbar funktioniert!
Ist es irgendwie möglich auf einer zweiten Achsen noch den Verbrauch als Linie darzustellen? Gibt das das Apex chart überhaupt her?

Servus,
ich muss mich jetzt auch mal hier melden, weil ich nicht weiter weiß.
Ich bekomme das mit den Anzeige des Tibberpreises für die nächsten 24 Std. einfahc nicht hin. Warum weiß ich nicht, ich habe die Konfigurationen (config.yaml & APEX-Chart) von Op3ra7or262 übernommen, natürlich dort meinen API eingetragen und meinen sensor namen. Allerdings zeigt er mir einfach nicht die Werte an, die Tabelle zeigt die Skalen an, mehr aber auch nicht.

Auszug configuration.yaml:

sensor:
- platform: rest
  unique_id: sensor.flo_strompreis
  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: 30
  headers:
    Authorization: hier mein API KEY eingegeben
    Content-Type: application/json
    User-Agent: REST
  unit_of_measurement: EUR/kWh

Meine APEX-Chart Configuration sieht so aus:

type: custom:apexcharts-card
experimental:
  color_threshold: true
all_series_config:
  unit: euro/kWh
apex_config:
  grid:
    show: true
    borderColor: "#E0E0E0"
  chart:
    height: 250px
  tooltip:
    enabled: true
    followCursor: false
    x:
      show: false
    fixed:
      enabled: true
header:
  show: true
  title: TibberPreis
  show_states: true
  colorize_states: true
  standard_format: false
graph_span: 24h
now:
  show: true
  color: 9E9E9E
span:
  start: day
series:
  - entity: sensor.flo_strompreis
    name: tibberpreis
    show:
      in_header: before_now
      name_in_header: false
    color_threshold:
      - value: 0
        color: 4DD0E1
      - value: 10
        color: 26A69A
      - value: 15
        color: 4CAF50
      - value: 20
        color: 7CB342
      - value: 25
        color: FBC02D
      - value: 30
        color: EF6C00
      - value: 40
        color: B71C1C
    type: line
    curve: stepline
    extend_to: false
    stroke_width: 2
    float_precision: 2
    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 * 100])
      }
      return data;

Ich habe es bereits nur mit den Namen versucht und auch alle möglichen anderen Varianten, allerdings ohne Erfolg…den aktuellen Preis zeigt er mir allerdings an:

Habt ihr eventuell eine Idee, woran es liegen kann? Ich bin noch relativ neu in der HA-Community, allerdings habe ich meiner Meinung nach auch schon so einiges versucht und bei den anderen läuft es ja wohl scheinbar ohne Probleme…

Vielen Dank.

Grüße
Florian

:pencil2: by tarag: Code in vorformatierten Text </> formatiert

Hallo Florian,
Deine Rest-Api enthält in der ID “sensor.”
Es könnte sein, das das der Fehler ist. Sicher bin ich mir natürlich nicht. Auch würde ich erstmal testweise “tibber_prices” drinlassen, da fast alle Beispiele darauf aufgebaut sind. Wenn alles läuft kann man das ja ändern.
Hier mal mein Rest-Sensor:

##Rest-Service Abholung Tibber Preise alle 30 Minuten
  - platform: rest
    unique_id: tibber_prices
    name: Tibber Prices
    resource: https://api.tibber.com/v1-beta/gql
    method: POST
    payload: '{ "query": "{ viewer { homes { currentSubscription { status priceInfo { current { total level startsAt } today { total level startsAt } tomorrow { total level startsAt } } } } } }" }'
    json_attributes_path: "$.data.viewer.homes[0].currentSubscription.priceInfo" 
    json_attributes:
      - today
      - tomorrow
      - startsAt
    value_template: "{{ value_json.data.viewer.homes[0].currentSubscription.priceInfo.current.total | float }}"
    scan_interval: 300
    headers:
      Authorization: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      Content-Type: application/json
      User-Agent: REST
    unit_of_measurement: EUR/kWh
    state_class: total

In der Toolbox/Entwicklerwerkzeuge unter Zustände sollten die Stundenpreise von Tibber aufgeführt sein, sonst kann der Data-Generator aus dem Apex-Chart nicht darauf zugreifen.
Mein Datagenerator ist da auch ein wenig abgespeckt (und keine Umrechnung in Cent und nur für today):

      data_generator: |
        var today = entity.attributes.today;
        var now = new Date();
        const data = [];
        for(let i = 0; i < 24; i++) {
          data.push([now.setHours(0,0,0,0) + i * 1000 * 60 * 60, today[i].total])
         }
        return data;

Übrigens, der Apex-Chart, den Du verwendest funktioniert bei mir. Ist vielleicht doch nur die Rest-Api.
mfg
Rainer

Die Apex Karte mit den Preisen habe ich wir hier beschrieben problemlos hinbekommen, soweit so gut.

Was nun noch cool wäre:
Der Einfärbung des graphen erfolgt ja mit festen Werten. Läösst es sich irgendwie wie in der Tibber App darstellen, das die Einfärbung des graphen nicht nach festen Werten erfolgt sondern abhängig von Preisniveau über den angezeigte Zeitraum eingefärbt wird.

Gibt es dazu eine Möglichkeit?

Hallo zusammen, vielen Dank für die perfekte Vorarbeit und den Gedankenaustausch. Ich habe mein Chart so übernommen und etwas erweitert (Label für min und max Preis).

Leide habe ich manchmal ein Formatierungsproblem und der Rand rechts im Chart wird abgeschnitten. Wenn ich das Dashboard neu lade passt es dann oft wieder…aber auch nicht immer. Ich kann es leider nicht direkt nachvollziehen. Hat jemand eine Ahnung wie ich die Formatierung so beeinflussen kann, dass die Grafik sich immer innerhalb den Rahmens befindet?

Hier eine Yaml:

type: custom:apexcharts-card
experimental:
  color_threshold: true
all_series_config:
  unit: Cent/kWh
apex_config:
  grid:
    show: true
    borderColor: "#E0E0E0"
  chart:
    height: 305px
  tooltip:
    enabled: true
    followCursor: false
    x:
      show: false
    fixed:
      enabled: true
header:
  show: true
  title: Strompreis
  show_states: true
  colorize_states: true
  standard_format: false
graph_span: 48h
now:
  show: true
  color: orange
span:
  start: day
series:
  - entity: sensor.tibber_prices
    name: Preis
    show:
      extremas: true
      in_header: before_now
      name_in_header: false
    color_threshold:
      - value: 0
        color: 4DD0E1
      - value: 10
        color: 26A69A
      - value: 15
        color: 4CAF50
      - value: 20
        color: 7CB342
      - value: 25
        color: FBC02D
      - value: 30
        color: EF6C00
      - value: 40
        color: B71C1C
    type: line
    curve: stepline
    extend_to: false
    stroke_width: 2
    float_precision: 2
    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 * 100])
      }
      return data;


Servus Rainer,

vielen Dank für die Unterstützung.
Ich weiß aktuell noch nicht warum, aber es hat auf einmal geklappt.
Alles läuft wie es soll.
Bei mir war es auch wichtig, dass die unique_id: tibber_prices genannt wird.
Was nur komisch ist, ich hatte es vorher schon tausend mal so probiert.
Ich habe vor ein paar Wochen mal beim Tibber-Kundenservice erkundigt, die hatten mir dann gesagt, dass es aktuell bei einigen Probleme gibt und sie daran arbeiten.
Eventuell liegt es daran!?

Egal… es läuft, vielen Dank!

Grüße
Florian

Das Problem habe ich auch. Wie bekommt man die Karte eigendlich breiter ich habe noch platz der nicht genutzt wird.

Hi zusammen, auch ich habe immer wieder mal dieses Problem. Vielleicht steckt jemand tiefer im Thema, und weiß wie man den Anzeigefehler behebt.

Gruß
Paul

Steht bei euch auch nicht mehr der Array (sensor.tibber_prices) mit den stündlichen Preisen zur Verfügung? Ist das ein Problem, was nur mich betrifft?