was möchtest du denn genau machen? Die Stunden habe ich, der Übersicht halber, in einem gesonderten template
Moin,
@The Worrior:
kannst Du bitte die Farbgebung/ Code Deines Epex Spot Charts teilen?
Moin,
mein code sieht so aus:
type: custom:apexcharts-card
experimental:
color_threshold: true
all_series_config:
unit: Cent/kWh Jetzt
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: Strompreisentwicklung Heute/Morgen
show_states: true
colorize_states: true
standard_format: false
graph_span: 48h
now:
show: true
color: 9E9E9E
span:
start: day
series:
- entity: sensor.tibber_prices
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: 3
float_precision: 1
color: 0153A4
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;
Deine Entität musst du ggf. anpassen!
Besten Dank, bekommst Du die Tibber Daten auch über die EPEX Spot Integration? Die Attribute sehe etwas anders aus, da ich SMARD.de und AWATTar konfiguriert habe um nur die EPEX Spot Daten zu bekommen. Ich nehme gerade an einem Pilotbetrieb unserer Stadtwerke zum dynamischen Tarif teil.
{'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>, 'data': [{'start_time': '2024-10-06T00:00:00+02:00', 'end_time': '2024-10-06T01:00:00+02:00', 'price_ct_per_kwh': 25.797}, {'start_time': '2024-10-06T01:00:00+02:00', 'end_time': '2024-10-06T02:00:00+02:00', 'price_ct_per_kwh': 25.431}, {'start_time': '2024-10-06T02:00:00+02:00', 'end_time': '2024-10-06T03:00:00+02:00', 'price_ct_per_kwh': 25.296}, {'start_time': '2024-10-06T03:00:00+02:00', 'end_time': '2024-10-06T04:00:00+02:00', 'price_ct_per_kwh': 25.358}, {'start_time': '2024-10-06T04:00:00+02:00', 'end_time': '2024-10-06T05:00:00+02:00', 'price_ct_per_kwh': 25.282}, {'start_time': '2024-10-06T05:00:00+02:00', 'end_time': '2024-10-06T06:00:00+02:00', 'price_ct_per_kwh': 25.431}, {'start_time': '2024-10-06T06:00:00+02:00', 'end_time': '2024-10-06T07:00:00+02:00', 'price_ct_per_kwh': 25.365}, {'start_time': '2024-10-06T07:00:00+02:00', 'end_time':
Da ich Tibber-Kunde bin hole ich mir die Daten mittels eines Rest Sensors direkt von Tibber. Mein Sensor sieht dabei so aus:
- platform: rest
name: Tibber-Prices
resource: https://api.tibber.com/v1-beta/gql
method: POST
payload: '{ "query": "{ viewer { homes { currentSubscription { priceInfo { current { total } today { total startsAt } tomorrow { total startsAt } } } } } }" }'
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
Sieht dann für Heute/Morgen als Chart dann so aus:
Weiß einer von Euch, wie man eine zusätzlich horizontale Linie z.B. für eine Preisgrenze konfigurieren kann? Die Preisgrenze könnte man über einen Input Helfer definieren und dann im Chart farblich anders darstellen.
Also mit festen Werten (also in der yaml festgelegten Zahlen) geht das, wie man aber “dynamische” Sensorwerte integriert kann ich dir leider nicht sagen…
Nein, so meint ich das nicht. Ich habe schon den dynamischen Tarif über das Chart dargestellt, aber ich hätte gerne meine persönliche Preisgrenze, unter der ich die Batterie laden würde dargestellt, der Wert ist natürlich fix, z.B. 22 ct und damit eine horizontale Line.
Achso, ja einen fixen Wert kannst du in der yaml mit einer “annotations” festlegen. Das ist dann aber ein fester Wert (z.B.17.3) ich habe es noch nicht herausgefunden ob man den Wert über einen Sensor oder input_number hinein transferieren kann.
Ein fixer Wert geht wie folgt:
type: custom:apexcharts-card
experimental:
color_threshold: true
all_series_config:
unit: Cent/kWh Jetzt
apex_config:
grid:
show: true
borderColor: '#E0E0E0'
chart:
height: 250px
tooltip:
enabled: true
followCursor: false
x:
show: false
fixed:
enabled: true
annotations:
yaxis:
- y: 17.3 # Fester Wert in Cent
borderColor: '#FF0000'
strokeDashArray: 4
opacity: 1
label:
borderColor: '#FF0000'
style:
color: '#fff'
background: '#FF0000'
text: 17,3 Cent
header:
show: true
title: Strompreisentwicklung Heute/Morgen
show_states: true
colorize_states: true
standard_format: false
graph_span: 48h
now:
show: true
color: 9E9E9E
span:
start: day
series:
- entity: sensor.tibber_prices
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: 3
float_precision: 1
color: 0153A4
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;
Sieht dann so aus:

Vielen Dank, soweit bin ich auch schon gekommen, aber es scheint wirklich so zu sein, das hier immer ein fixer Zahlenwert und keine Variable / Entity möglich ist. Ich experimentiere gerade mit einem zweiten Graphen. Ist werde bei Erfolg die Ergebnisse auch posten.


