Τιμολόγια παρόχων ενέργειας στο Home Assistant
Χρειάστηκα πρόσφατα να πάρω την τιμή κιλοβατώρας Δ.Ε.Η. στο Home Assistant για τον υπολογισμό κόστους κατανάλωσης ενέργειας.
Οι τιμές για όλους τους παρόχους και τα τιμολόγια (πράσινο, μπλε, κίτρινο, κ.λπ.) υπάρχουν online και ανανεώνονται από την Ρ.Α.Α.Ε.Υ.
Για τον λόγο αυτό υλοποίησα web scraper που σερβίρει την πληροφορία ως JSON API το οποίο μπορεί να καταναλωθεί εύκολα από το RESTful integration του Home Assistant. Είναι διαθέσιμο στη διεύθυνση rae-invoices.fly.dev και υποστηρίζει φιλτράρισμα με βάση τις παραμέτρους στο URL.
Π.χ. Για να δούμε μόνο τις εγγραφές για το πράσινο τιμολόγιο της Δ.Ε.Η. τον μήνα Δεκέμβριο 2024: https://rae-invoices.fly.dev/?Πάροχος=ΔΕΗ&Μήνας=12&Έτος=2024&Χρώμα+Τιμολογίου=πράσινο
Αρκεί να βάλουμε τους απαραίτητους σένσορες στο configuration.yaml
του Home Assistant και να κάνουμε reload ώστε να δημιουργηθούν:
rest:
- resource_template: 'https://rae-invoices.fly.dev/'
params:
Πάροχος: 'ΔΕΗ'
Έτος: '{{ now().strftime("%Y") }}'
Μήνας: '{{ now().strftime("%-m") }}'
Ονομασία Τιμολογίου: 'ειδικό'
kwh-max: '500'
scan_interval: 3600
sensor:
- name: 'ΔΕΗ Πράσινο ≤ 500 kWh/μήνα'
unique_id: dei_prasino_mechri_500_kwh_mina
unit_of_measurement: '€/kWh'
icon: 'mdi:transmission-tower'
value_template: '{{ value_json[0]["Τελική Τιμή Προμήθειας με Έκπτωση με προϋπόθεση (€/kWh)"] | float }}'
- name: 'ΔΕΗ Πράσινο ≤ 500 kWh/μήνα Νυχτερινό'
unique_id: dei_prasino_mechri_500_kwh_mina_nychterino
unit_of_measurement: '€/kWh'
icon: 'mdi:transmission-tower'
value_template: '{{ value_json[0]["time_of_use_static_teliki_timi_promithias"] | float }}'
- resource_template: 'https://rae-invoices.fly.dev/'
params:
Πάροχος: 'ΔΕΗ'
Έτος: '{{ now().strftime("%Y") }}'
Μήνας: '{{ now().strftime("%-m") }}'
Ονομασία Τιμολογίου: 'ειδικό'
kwh-min: '500'
scan_interval: 3600
sensor:
- name: 'ΔΕΗ Πράσινο > 500 kWh/μήνα'
unique_id: dei_prasino_apo_500_kwh_mina
unit_of_measurement: '€/kWh'
icon: 'mdi:transmission-tower'
value_template: '{{ value_json[0]["Τελική Τιμή Προμήθειας με Έκπτωση με προϋπόθεση (€/kWh)"] | float }}'
- name: 'ΔΕΗ Πράσινο > 500 kWh/μήνα Νυχτερινό'
unique_id: dei_prasino_apo_500_kwh_mina_nychterino
unit_of_measurement: '€/kWh'
icon: 'mdi:transmission-tower'
value_template: '{{ value_json[0]["time_of_use_static_teliki_timi_promithias"] | float }}'
Tip: Η αντιστοίχηση (“ματσάρισμα”) των τιμών των παραμέτρων γίνεται ”case-insensitive” (δηλαδή δεν παίζουν ρόλο τα κεφαλαία/μικρά) και μερικώς (δηλαδή αρκεί ένα μέρος μόνο της τιμής της παραμέτρου να περιέχεται στην αρχική συμβολοσειρά) Αυτό σημαίνει ότι όλα τα παραδείγματα που ακολουθούν έχουν το ίδιο αποτέλεσμα:
Πάροχος=ΔΕΗ
(κεφαλαία)Πάροχος=δεη
(μικρά)Πάροχος=ΔεΗ
(κεφαλαία και μικρά)Πάροχος=Εη
(κεφαλαία, μικρά και μερικό “ματσάρισμα”)
Ακολουθεί παράδειγμα κάρτας dashboard η οποία εμφανίζει τις τιμές για τον τρέχων μήνα από τη Δ.Ε.Η.:
type: entities
title: 'Πράσινο τιμολόγιο ΔΕΗ'
entities:
- entity: sensor.dee_prasino_500_kwh_mena
name: '≤ 500 kWh/μήνα'
- entity: sensor.dee_prasino_500_kwh_mena_nukhterino
name: '≤ 500 kWh/μήνα (νυχτερινό)'
- entity: sensor.dee_prasino_500_kwh_mena_2
name: '> 500 kWh/μήνα'
- entity: sensor.dee_prasino_500_kwh_mena_nukhterino_2
name: '> 500 kWh/μήνα (νυχτερινό)'
Ο πηγαίος κώδικας είναι ανοικτό λογισμικό, διαθέσιμο στο https://github.com/agorf/rae-invoices