View difference between Paste ID: UMycPcRz and XBZhc7mm
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"&region={{ 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&quote=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