SHOW:
|
|
- or go back to the newest paste.
1 | sensor: | |
2 | ||
3 | - platform: rest | |
4 | name: elpriser_raw | |
5 | value_template: "{{ value_json.success }}" | |
6 | json_attributes_path: "$.result" | |
7 | json_attributes: | |
8 | - updatetime | |
9 | - region | |
10 | - records | |
11 | resource_template: > | |
12 | {% set s = { | |
13 | 'region': 'DK2', | |
14 | 'vat': 25, | |
15 | 'abonnement': 0.00, | |
16 | 'elafgift': 0.95375, | |
17 | 'systemydelse': 0.14, | |
18 | 'transport_lavlast': 0.3754, | |
19 | 'transport_spidslast': 0.9564, | |
20 | } %} | |
21 | {% set cdt = now() %} | |
22 | {% set transport = s.transport_spidslast if (cdt.month >= 10 or cdt.month <= 3) and cdt.hour >= 17 and cdt.hour < 20 else s.transport_lavlast %} | |
23 | {% set additional_cost = s.abonnement + s.elafgift + s.systemydelse + transport %} | |
24 | {% set EUR = states('sensor.currency_eur_dkk') | float(7.44060) %} | |
25 | https://api.energidataservice.dk/datastore_search_sql?sql=SELECT "SpotPriceEUR"/1000*{{ EUR }} AS "PriceDKK" , ROUND(CAST(FLOAT8 ("SpotPriceEUR"*{{ EUR/1000*(1+s.vat/100) }}%2B{{additional_cost}}) as numeric),2) AS "TotalPriceDKK" ,"HourDK" FROM "elspotprices" WHERE "PriceArea"='{{s.region}}' AND "HourDK" >= '{{ now().date() }}' order by "HourDK"®ion={{ s.region }}&updatetime={{ now() }} | |
26 | scan_interval: 3600 | |
27 | ||
28 | - platform: template | |
29 | sensors: | |
30 | elpriser: | |
31 | friendly_name: "Elpriser fra energidataservice.dk" | |
32 | value_template: "{{ state_attr('sensor.elpriser_raw', 'records')[now().hour + (now().date() | string > state_attr('sensor.elpriser_raw', 'updatetime'))*24].TotalPriceDKK }}" | |
33 | device_class: energy | |
34 | attribute_templates: | |
35 | current_price: "{{ states('sensor.elpriser') }}" | |
36 | updatetime: "{{ state_attr('sensor.elpriser_raw', 'updatetime') }}" | |
37 | currency: DKK | |
38 | country: Denmark | |
39 | region: "{{ state_attr('sensor.elpriser_raw', 'region') }}" | |
40 | unit: kWh | |
41 | min: > | |
42 | {% set ns = namespace(value=100) %} | |
43 | {% for r in state_attr("sensor.elpriser_raw", "records") %} | |
44 | {% set ns.value = min(ns.value, r.TotalPriceDKK | float) %} | |
45 | {% endfor %} | |
46 | {{ ns.value }} | |
47 | max: > | |
48 | {% set ns = namespace(value=0) %} | |
49 | {% for r in state_attr("sensor.elpriser_raw", "records") %} | |
50 | {% set ns.value = max(ns.value, r.TotalPriceDKK | float) %} | |
51 | {% endfor %} | |
52 | {{ ns.value }} | |
53 | priser: "{{ state_attr('sensor.elpriser_raw', 'records') }}" | |
54 | unit_of_measurement: "DKK/kWh" | |
55 | ||
56 | - platform: rest | |
57 | name: currency_eur_dkk | |
58 | value_template: "{{ value_json.response[0].average_midpoint }}" | |
59 | json_attributes_path: "$.response[0]" | |
60 | json_attributes: | |
61 | - base_currency | |
62 | - quote_currency | |
63 | - start_time | |
64 | - open_time | |
65 | - close_time | |
66 | - average_bid | |
67 | - average_ask | |
68 | - average_midpoint | |
69 | - high_bid | |
70 | - high_ask | |
71 | - high_midpoint | |
72 | - low_bid | |
73 | - low_ask | |
74 | - low_midpoint | |
75 | resource_template: https://cc-api.oanda.com/cc-api/v1/currencies?base=EUR"e=DKK&data_type=general_currency_pair&start_date={{ now().date() }}&end_date={{ now().date() }} | |
76 | headers: | |
77 | Content-Type: application/json | |
78 | scan_interval: 3600 | |
79 | ||
80 |