brauche für einen Sensor eine Rückstellung nicht nach einem Tage, sondern exakt nach einer Woche und einen weiteren für nach 30 Tagen, bzw. 1 Monat? Bisher hatte ich:
Bei mir war es ja keine Automation, sondern ich habe in der template.yaml einen Sensor angelegt. Daher meine Frage, wie es dann aussehen müsste, damit es nicht doppelt wäre?
Du willst um Mitternacht einen Wert auf Null zurücksetzen wenn ich das richtig lese. Mit dem define legst du den aber erst an???
CCU3 ist Homematic, ist das ein Wert den die Homematic implementierung bereit stellt? Kannst du den Wert in der Oberfläche auch setzen? Gibt es dazu eine Funktion in Home Assistant, dann wäre es per Automatisierung einfacher.
Die Erklärung mit Automation war weil dein Beispiel trigger und condition enthält, mein Beispiel der Automatisierung auch.
Btw: du hast den Thread auf gelöst gesetzt, Kann sein, dass andere gar nicht mehr schreiben können.
Es wird hier kein Wert auf null gesetzt sondern es wird der Wert des Sensors “ccu3_webui_sv_stromzahler_verbrauch_gestern” hier rein kopiert. Es möchte diesen als Vorgestern Wert benutzen.
Ja gut, stimmt, aber täglich wird wohl nur geprüft und wegen condition wird der Wert nur am letzten Tage im Monat kopiert. So habe ich das aus einem anderen Forum kopiert und verstanden.
Aber HA macht auch noch einen Fehler, weil wohl condition bei template nicht gibt?
Siehe hier:
Ohne genau verstanden zu haben was du genau füllen willst.
Wenn du als mauell erstellten Sensur nur bestimmte Zeit, Datum, … abhängig vom now() Funktion machen willst kannst du als trigger “template” auswählen.
Die Bedingung hier wäre heute um 15:06:34 wahr geworden und hätte den Sensor angelegt.
Du kannst den Template Code in Homeassistant – Entwicklerwerkzeuge – Template testen. Einfach rein kopieren und schaun ob wahr oder falsch, oder Syntaxfehler kommt.
{{now().strftime('%H%M%S') == '150634' and now().strftime('%-d') == '17'}}
Template trigger
Template triggers work by evaluating a template when any of the recognized entities change state. The trigger will fire if the state change caused the template to render ‘true’ (a non-zero number or any of the strings true, yes, on, enable) when it was previously ‘false’ (anything else).
Aber dann brauchst du ja nur den trigger 23:59:59 ohne irgend ein zusätzliches Datum?
Lass es 17. Juli. um 23:59:59 sein. Um 23:59:59 wird die Bedingung “ist es 23:59:59??” wahr. Im Sensor “ccu3.gestern” steht der Wert vom 16ten. Heute ist der 17te. Nun kopierst du den Wert vom 16ten aus CCU3.gestern in deinen manuellen Sensor “vorgestern”.
So, jetzt vergehen ein paar Sekunden. Es ist nun 18. Juli. im Sensor CCU3.gestern" steht nun die Summe vom 17ten weil Tageswechsel. Im manuellen Sensor “vorgestern” der Wert vom 16ten da du den eben gefüllt hast.
Das ist doch was du erreichen willst? Ohne irgend ein zusätzliches Datum oder Wochentag???
ist ja einfach zu testen. nimm als zeit jetzt + 2 minute und schau was passiert. entweder sensor ist da oder eine syntax- oder fehlermeldung im log.
ich glaub du hast im sensor teil einen tippfehler … iif mit 2 mal “i” … ich habe selbst keine logig in meiner Config, die Syntax müsste aber {% if … sein wenn ich mich recht erinnere. Ich kann es hier aber nicht testen.
Zum testen würde ich einfach nur den Wert des anderen Sensor übernehmen und if o. ä. erstmal. weg lassen. Erst wenne s geht Logik anpassen.
Ist zwar dir überlassen. Aber ich würde das dennoch als Automatisierung machen und nicht irgendwie mit manuell definierten Sensoren im Yaml. Das wird dir zu komplex und scheinbar hast du auch nicht viel Erfahrung beim Programmieren. Sollte später was nicht gehen siehst du nicht warum. In der Automatisierung siehst du traces mit Status und Werten. My 2cents.
Hast du den Verbrauch nicht als einzelne Werte? Warum speicherst du nicht in die DAtenbank und liest genau was du sehen willst. Dasnn sparst du dir das ganze rumgeeiere.
Bin mir nicht sicher was hier eigentlich die Zielsetzung ist.
Wenn ich Verbrauch lese in Zusammenhang mit Täglich, wöchentlich, monatlich.
Fällt mir in erster Linie der Verbrauchszähler ein, den es als Helfer gibt.
Bezüglich des Trigger based Template Sensors. Hier kannst Du keine Bedingung verwenden, wie Du es von Automatisierungen kennst. Hier würde ich ganz simple den ersten Tag des Monats als Trigger verwenden. Oder Montag als Wochentag.
Also einen Template Trigger
Jeden ersten des Monats um 00:00 Uhr
template:
- trigger:
- platform: template
value_template: "{{ now().day == 1 }}"
sensor:
name: Der Name des Sensors
state: "states('sensor.xyz')"
unit_of_measurement: "kWh"
unique_id: c46fa046-a113-4043-95e8-3b8289aba24d
Jeden Montag um 00:00 Uhr
template:
- trigger:
- platform: template
value_template: "{{ now().weekday() == 0 }}"
sensor:
name: Der Name des Sensors
state: "states('sensor.xyz')"
unit_of_measurement: "kWh"
unique_id: bb404495-f389-4ff2-b6a2-fbbb24da21fa
Und Jeden Tag um 00:00
template:
- trigger:
- platform: time
at: "00:00:00"
sensor:
name: Der Name des Sensors
state: "states('sensor.xyz')"
unit_of_measurement: "kWh"
unique_id: c31c5fbf-b18b-4206-a5b4-ca31952ca15a
Du hast ja scheinbar die Lösung. Stelle dann die funktionierende Config mal rein. Zum einen hilft es vielleicht jemanden, und mich interessiert was du überhaupt machst.