Seite 1 von 1
Sensorwert am Monatsersten per Email versenden
Verfasst: Do 17. Mär 2022, 21:25
von Markus
Ich würde gerne an jedem Monatsersten automatisch den Wert eines Sensors (Stromzähler) per Email versenden.
Wie könnte ich das anstellen, der Sensorwert ist ja zunehmen, hilft dazu der utility_meter überhaupt?
Code: Alles auswählen
utility_meter:
vz_bezug_monthly:
source: sensor.bezugszaehler
cycle: monthly
Wie müsste die Automatisierung dazu aussehen, das Email versenden ist das wenigste Problem....
Habt ihr da Lösungsansätze?
Re: Sensorwert am Monatsersten per Email versenden
Verfasst: Do 17. Mär 2022, 22:01
von Osorkon
Eine mögliche Möglichkeit wäre eine feste Uhrzeit und die Bedingung Tag=1
Code: Alles auswählen
trigger:
- platform: time
at: '10:00:00'
condition:
- condition: template
value_template: '{{ now().day == 1 }}'
Gruß
Osorkon
Re: Sensorwert am Monatsersten per Email versenden
Verfasst: Do 17. Mär 2022, 22:40
von Markus
Hätte jetzt folgenden Weg eingeschlagen
a) Template um den Monatsersten zu ermitteln
Code: Alles auswählen
- platform: template
sensors:
dateofthemonth:
value_template: "{{ ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31' ][ now().day-1] }}"
b) Automatisierung mit states
Code: Alles auswählen
- id: '0815'
alias: Email_Zaehlerwert
description: ''
trigger:
- platform: time
at: 00:01:00
condition:
- condition: numeric_state
entity_id: sensor.dateofthemonth
above: '0'
below: '2'
action:
- service: notify.mail
data:
title: Monatserster
message: 'Zaehlerwert: {states(''sensor.bezugszaehler'')}'
mode: single
c) Wert wird übermittelt....kann man diese Zahl noch mit Tausendertrennzeichen formatieren?
Zaehlerwert: 32894743.00
Re: Sensorwert am Monatsersten per Email versenden
Verfasst: Fr 18. Mär 2022, 14:57
von Osorkon
Da finde ich die Lösung über die Bedingung Tag=1 ein wenig einfacher. Und erspart das anlegen eines Template Sensor. Aber viele Wege führen nach Rom.
Btw. auch Dein Template Sensor geht einfacher.
Das Tausendertrennzeichen ist ein wenig tricky.
Der Umweg über „_“ ist notwendig, da „.“ nicht zulässig ist. „,“ dagegen wäre kein Problem.
Und lässt sich so realisieren:
Code: Alles auswählen
{{ '{0:_.0f}'.format(states.sensor.bezugszaehler.state | int).replace('_', '.') }}
Gruß
Osorkon