paQ schreef op maandag 25 september 2023 @ 08:05:
@
TheFes hoe maak ik van een reguliere sensor een sensor zodat ie kan opgenomen worden als "echte" energy-meter in zo'n custom power integratie bijv?
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| thermische_energie:
value_template: >
{% if states('sensor.flow_rate')|float <6 %}
{% set pwg = 0 | float %}
{% elif states('sensor.flow_rate') |float >6 %}
{% set t1 = states('sensor.water_aanvoer') | float %}
{% set t2 = states('sensor.water_retour') | float %}
{% set f = states('sensor.flow_rate') | float %}
{% set pwg = ((t1 - t2)*f) / 60 * 4184 | float %}
{% endif %}
{% if pwg != 0 %}
{{ pwg | float | round(0)}}
{% else %}
{{ pwg }}
{% endif %}
unit_of_measurement: W
device_class: energy
friendly_name: "Thermische Energie" |
Deze heb ik onder template sensors staan, maar de energy class pakt ie (hier?) niet.
Het legacy template sensor format ondersteunt geen
state_class, daarvoor moet je het nieuwe format gebruiken.
Verder zie ik wat rare dingen. [mono]W[.] is geen unit_of_measurement voor
energy.
W is
power
Als laatste snap ik deze if-statement niet
Django/Jinja:
1
2
3
4
5
| {% if pwg != 0 %}
{{ pwg | float | round(0)}}
{% else %}
{{ pwg }}
{% endif %} |
Sowieso is
pwg al een float, en stel dat hij
0 is kun je dat ook prima afronden.
Het is verder ook niet nodig om eerst een variable als een getal te definieren, en daarna om te zetten naar een float.
*edit*
Ik had je edit gemist, dat is inderdaad het nieuwe format waarbij je wel
state_class kun definëren. Maar dan matchen
W en
energy nog steeds niet met elkaar.
En als je dit als
kWh bedoelt, dan gaat dat helemaal niet werken, aangezien je op deze manier helemaal geen
total_increasing waarde maakt, je reset hem immers elke keer naar
0
[
Voor 9% gewijzigd door
TheFes op 25-09-2023 08:18
]