der Winter steht vor der Tür und nach einem Blick in den Pelletsbunker war klar, da müssen bald neue her. Preissuche bei heizpellets24, bestellt, fertig. Dann kam der Gedanke die Daten, samt Statistik in HA als Integration anzeigen zu lassen. Bei der Einrichtung PLZ, Menge etc. eingeben, fertig. Herausgekommen ist das
Bei Interesse am Code, gerne melden. Wenn das Interesse größer ist, kann ich es auch auf Github und HACS hochladen. Und nein, ich habe nichts am Hut mit Heizpellets24 - ist einfach nur meine Datenbasis
Gruß
Holger
Bei mir sieht es so aus. Ist halt nicht so ganz einfach, ich “scrape” die Daten von einer Webseite und habe mir diverse Sensoren gebastelt.
####################################################
# #
# Pelletpreise für 2,2 T. #
# #
####################################################
- platform: rest
name: "Pelletpreis 2.2T Mannheim"
unique_id: pelletpreis_mannheim_68219_v2
resource: https://www.heizpellets24.de/api/site/1/prices/best?amount=2200&productId=20&zipCode=68219
scan_interval: 3600
device_class: monetary
state_class: measurement
unit_of_measurement: "€"
value_template: >
{% if value_json is defined and value_json.Price is number %}
{{ (value_json.Price | float(0) * 2.2) | round(2) }}
{% else %}
{# Fallback auf den letzten bekannten Status #}
{{ states('sensor.pelletpreis_2_2t_mannheim') }}
{% endif %}
json_attributes:
- Change
- DateTime
- Price
Ihr müsstet halt Eure ZIPCODE und AMOUNT eintragen. Für mich hier im MA funktioniert das. Am Ende bestelle ich eh immer über ECKERT, weil ich damit die beste Erfahrung gemacht habe.
PS: Ich hatte den Code in einer externen “SENSOR.YAML” liegen. In einer externen “REST.YAML” würde es so aussehen. Habe ich eben geändert, weil es besser ist, bzw. die neue Art es zu implementieren.
# Ganz oben oder auf der Hauptebene der configuration.yaml
rest:
- resource: https://www.heizpellets24.de/api/site/1/prices/best?amount=2200&productId=20&zipCode=68219
scan_interval: 3600
sensor:
- name: "Pelletpreis 2.2T Mannheim"
unique_id: pelletpreis_mannheim_68219_2_2t
device_class: monetary
state_class: measurement
unit_of_measurement: "€"
value_template: >
{% if value_json is defined and value_json.Price is number %}
{{ (value_json.Price | float(0) * 2.2) | round(2) }}
{% else %}
unavailable
{% endif %}
availability: >
{{ value_json is defined and value_json.Price is number }}
json_attributes:
- Change
- DateTime
- Price
Hi,
sorry für die späte Rückmeldung. Ich “durfte” leider einige Zeit im Krankenhaus verbringen.
Hier der Link zu meinem Google Drive Ordner: Pelletpreise
Bei Fragen, einfach fragen
Gruß Holger
Hallo @lintux
leider funktioniert der Link zum Google Drive-Ordner nicht…
könntest Du mir den Code zukommen lassen?
Zusatzfrage: lassen sich auch bestimmte Händler abfragen?
VG Michael
Edit:
Die ID der beiden Händler habe ich, konnte bisher nur noch keinen Abruf generieren.