Home Assistant icm API tokencode

Auteur
Onderwerp
#1189

Aangezien de api gaat wijzigen en je niet meer elke seconde (moet je zelf even nadenken of dat nodig is…) een api call kan doen, hierbij de config die ik gebruik (ik heb dit overal vandaan verzameld, credits naar dit forum en het forum van tweakers).

Deze config maakt gebruik van de anwb prijzen, vervang anwb voor je eigen leverancier.
Vervang TOKENCODE voor je eigen token.

Gasprijs wordt om 6 en 7 uur (voor de zekerheid) opgehaald.
Stroomprijs wordt eenmalig om 0:00 uur opgehaald en daarna wordt elk uur de juiste waarde ingelezen.
Daarnaast wordt elke dag nog een extra api call gedaan, dit heeft te maken met scan_interval.
Totaal aantal calls: 5 per dag

Na deze config kun je deze sensoren gebruiken:
sensor.gasprijs_anwb
sensor.stroomprijs_anwb

configuration.yaml
# Enever.nl stroomprijzen - platform: rest resource: https://enever.nl/api/stroomprijs_vandaag.php?token=TOKENCODE name: Enever Stroomprijs ANWB scan_interval: 86400 value_template: "OK" json_attributes: - data - platform: template sensors: stroomprijs_anwb: device_class: monetary unit_of_measurement: €/kWh unique_id: "enever_stroomprijs_anwb" value_template: > {% set now_ts = as_timestamp(utcnow()) %} {% set values = namespace() %} {% set values.current = None %} {% for row in states.sensor.enever_stroomprijs_anwb.attributes.data|reverse if not values.current %} {% set row_timestamp = as_timestamp(row.datum) %} {% if now_ts > row_timestamp %} {% set values.current = row %} {% endif -%} {% endfor -%} {% if values.current %} {{ values.current.prijsANWB }} {% else %} {{ states(entity_id) }} {% endif %} friendly_name: "Stroomprijs ANWB" # Enever.nl gasprijzen - platform: rest resource: https://enever.nl/api/gasprijs_vandaag.php?token=TOKENCODE name: Gasprijs ANWB unique_id: enever_gasprijs_anwb force_update: true scan_interval: 86400 device_class: monetary unit_of_measurement: €/m³ value_template: > {% set now_ts = as_timestamp(utcnow()) %} {% set values = namespace() %} {% set values.current = None %} {% for row in value_json.data|reverse if not values.current %} {% set row_timestamp = as_timestamp(row.datum) %} {% if now_ts > row_timestamp %} {% set values.current = row %} {% endif -%} {% endfor -%} {% if values.current %} {{ values.current.prijsANWB }} {% else %} {{ states(entity_id) }} {% endif %}

automation.yaml
# Enever.nl Update Gasprijs - id: update_anwb_gasprijs_6uur alias: "Update ANWB gasprijs 6 uur" trigger: - platform: time at: "06:01:23" condition: [] action: service: homeassistant.update_entity target: entity_id: - sensor.gasprijs_anwb - id: update_anwb_gasprijs_7uur alias: "Update ANWB gasprijs 7 uur" trigger: - platform: time at: "07:00:23" condition: [] action: service: homeassistant.update_entity target: entity_id: - sensor.gasprijs_anwb # Enever.nl Update Stroomprijs - id: update_enever_anwb_kwhprijs_0uur alias: "Update electricity price feed" description: Update electricity price feed trigger: - platform: time at: "00:00:10" condition: [] action: - service: homeassistant.update_entity data: {} target: entity_id: - sensor.enever_stroomprijs_anwb mode: single - id: update_enever_anwb_kwhprijs_uur alias: "Update dynamische stroom tarieven" description: Update dynamische stroom tarieven trigger: - platform: time_pattern minutes: "00" seconds: "00" condition: [] action: - service: homeassistant.update_entity data: {} target: entity_id: - sensor.stroomprijs_anwb mode: single

5 reacties aan het bekijken - 1 tot 5 (van in totaal 5)
Auteur
Reacties
  • #3252

    Top!

  • #3283

    Ik ben zelf helemaal onbekend met Jinja. Ik heb op dit moment met hulp van jouw post de gasprijs van Zonneplan met gemiddeld 1 call per dag in Home Assistant. (dagelijkse update van prijzen om 00:00:01 in automation + scan_interval op 1 maand).

    Is er een manier om het uur en de prijs van de het goedkoopste uur op te vragen in “value_template:”? Zelf al e.e.a. geprobeerd maar kom er niet uit. Onderstaand is hoe ver ik kom voor de min waarde, maar geeft “unknown” als waarde.

    {% for hourly_data_min in states.sensor.electricity_price.attributes.data %} {{ hourly_data_min | min(attribute='prijsZP') }} {% endfor %}

    iemand wellicht een idee?

  • #3725

    Hartelijk dank, dit werkt super!!

  • #4020

    Ligt het nu aan mij of werkt dit niet? Krijg de data niet gestructureerd per uur binnen.

    Werkt de code nog of mis ik iets?

  • #4193

    Edit: de code werkt goed, voor de actuele prijs sensor. Dit is geen sensor om ook de toekomstige prijzen te zien

5 reacties aan het bekijken - 1 tot 5 (van in totaal 5)
  • Het forum ‘Algemene discussies of vragen’ is gesloten voor nieuwe onderwerpen en antwoorden.