API coût du gaz et de l'électricité

Bon, j’ai fait un petit script pour aller lire ces données :

fichier « tarif_reglemente.py » (déposé dans config/scrypts_perso/)]

import requests
import csv

url = "https://www.data.gouv.fr/fr/datasets/r/f7303b3a-93c7-4242-813d-84919034c416"
P_SOUSCRITE = "12"

r = requests.get(url, stream = True)
cr = csv.reader(r.content.decode('utf-8').splitlines(), delimiter=';')
my_list = list(cr)
for row in my_list:
    if row[1] == '' and row[2] == P_SOUSCRITE:
       print('{"PART_FIXE_TTC": '+row[4].replace(",", "." )+',"PART_VARIABLE_HC_TTC": '+row[6].replace(",", "." )+',"PART_VARIABLE_HP_TTC": '+row[8].replace(",", "." )+'}')
r.close

La valeur de « P_SOUSCRITE » est à modifier en fonction de votre puissance souscrite.

Ensuite, on crée un sensor pour récupérer tout cela :

- platform: command_line
  name: TarifReglemente
  scan_interval: 86400
  json_attributes:
    - PART_FIXE_TTC
    - PART_VARIABLE_HC_TTC
    - PART_VARIABLE_HP_TTC
  command: 'python3 /config/scrypts_perso/tarif_reglemente.py'

Et voilà ! :wink:

image

Il ne reste plus qu’à créer des sensor sous forme de Template pour pouvoir exploiter ces nouveaux attributs :

- sensor:
    - name: tarif_reglemente_part_fixe_ttc
      unique_id: tarif_reglemente_part_fixe_ttc
      unit_of_measurement: 'EUR/kWh'
      state: "{{ state_attr('sensor.tarifreglemente', 'PART_FIXE_TTC') }}"
- sensor:
    - name: tarif_reglemente_part_variable_hc_ttc
      unique_id: tarif_reglemente_part_variable_hc_ttc
      unit_of_measurement: 'EUR/kWh'
      state: "{{ state_attr('sensor.tarifreglemente', 'PART_VARIABLE_HC_TTC') }}"      
- sensor:
    - name: tarif_reglemente_part_variable_hp_ttc
      unique_id: tarif_reglemente_part_variable_hp_ttc
      unit_of_measurement: 'EUR/kWh'
      state: "{{ state_attr('sensor.tarifreglemente', 'PART_VARIABLE_HP_TTC') }}"
2 « J'aime »