Hallo zusammen.
Ich möchte gern meine Bewäserung für die Blumenkästen auf der Terrasse von Homematic auf Homeassistent umstellen. Dabei bin ich auf ein Problem gestoßen ,was ich bisher nicht lösen konnte. Im Homematic konnte ich einstellen das ein Balkonkasten alle 2 Tage bewässert wir , wie kann ich das über Homeassiatent lösen? Ich kann Wochentage eingeben ,aber das nützt mir nichts . Wie kann ich das Lösen, das alle 2 Tage um 17:00 eine Pumpe gestartet wird?
Der Rest mit Pumpendauer und Verzögerung läuft alles schon.
Ich habe auch schon Zeitraster versucht mit /48 Std ,da kommt immer Zeitfehler.
Danke schon mal für Eure Hilfe
Volker
Du kannst das z. B. in einer Bedingung/Condition abfragen
description: ""
mode: single
trigger: []
condition:
- condition: template
value_template: "{{ (now() - as_datetime('19700101T00Z')).days % 2 == 0 }}"
action: []
Hier wird gezählt wieviele Tage es seit dem 01.01.1970 sind und dann gerechnet ob der Wert durch 2 teilbar ist. Dann wird entsprechend ein TRUE oder FALSE ausgegeben. Bei TRUE stimmt die Bedingung und die Automatisierung geht durch.
Auslöser wäre also jeden Tag 17 Uhr
Bedingung siehe oben
Aktion ist das einschalten der Pumpe
Ich würde es mit Hilfe eines Datum & Urzeit Helfer machen.
Dieser gibt den Start der Automatisierung an, also der Trigger.
Und als zusätzliche Aktion in Deiner Automatisierung, diesen Datum & Uhrzeit Helfer dann einfach um 2 Tage vorstellen.
Vorteil wie ich finde. Du kannst den Helfer im Dashboard anzeigen lassen und siehts auch wann die nächste Bewässerung ansteht, kannst das Datum und Uhrzeit bequem ändern, ohne die Automatisierung anfassen zu müssen.
alias: Bewässerung alle 2 Tage
description: ""
trigger:
- platform: time
at: input_datetime.bewasserung
condition: []
action:
- service: input_datetime.set_datetime
metadata: {}
data:
datetime: >-
{{ states('input_datetime.bewasserung') | as_datetime +
timedelta(days=2) }}
target:
entity_id: input_datetime.bewasserung
mode: single
Zusätzlich könntest Du noch den Wert alle x Tage variable gestalten.
In dem Fall noch einen zusätzlichen Input Number als Helfer, den Du dann anstelle des fixen Wertes “2” verwenden tust.
Gruß
Osorkon
Guten morgen ,
Danke für eure Vorschläge. Ich werde es am Wochenende mal testen und melde mich dann wieder.
Volker
wieder mal topp osorkon. Ich habe die action eingefügt. Ich möchte als Auslöser den Sonnenaufgang behalten und als condition das heutige Datum mit input_datetime.bewasserungtage1 vergleichen. Wenn Kondition erfüllt, dann geht sprinkler an. Wie realisiere ich am einfachsten den Vergleich?
Mach es doch andersrum.
Trigger bleibt der input_datetime und bei Action nimmst du Warte auf Auslöser. Hier kannst du den Sonnenaufgang wählen. Timeout würde ich dann natürlich auch setzen. Kommt natürlich auf den input_datetime an.
Also zum Sonnenaufgang alle x Tage?
Analog zu der festen Uhrzeit, kannst Du auf den nächsten Sonnenaufgang z.B. 2 Tage drauf packen.
{{ state_attr('sun.sun' , 'next_rising'') | as_datetime +
timedelta(days=2) }}
Gruß
Osorkon
Andersrum finde ich sinniger. ich habe noch einige weitere Konditionen wie Regenvorhersage, Kalkulation aus Smartirrigation usw.
Denke der Vergleich mit dem Datum sollte realisierbar sein.
Der sonnenaufgang hat noch einen Versatz. Ich würde mir wünschen, dass ich eine Kondition habe, die das aktuelle Datum mit dem Date input.datetime vergleicht.
Wenn Du einen Datum Helfer verwenden tust,
Sieht die Bedingung dann so aus:
condition:
- condition: template
value_template: >-
{{ states('input_datetime.bewasserung') == as_timestamp(now()) |
timestamp_custom("%Y-%m-%d") }}
Gruß
Osorkon
Okay, wenn man alle Informationen kennt, macht das mehr Sinn. Die Infos fehlten bisher
hallo
Ich habe versucht Deinen Code in die Automatisierung einzufügen.Leider bin ich gescheitert.
Könntest Du mir bitte erklären wo ich Deinen Code einfügen muß.
Ich habe bis jetzt einen Datum und Uhzeit Helfer erstellt, mit dem Datum von heute und der Uhrzeit 17:00 Uhr. Dieser Helfer startet die Automatisierung unter “wenn”.
Aber wo kommt dein Code hin?
Danke für die Hilfe
Volker
Poste mal Deinen aktuelle Automatisierung und die Entität Deines Datum Helfers.
Gruß
Osorkon
So ich habe im Moment den Code von sirector verwendet und das funktioniert auch .
Danke dafür.
Mich hat nur Dein Code interessiert, mit der Ansicht auf dem Dasboard das hat mich interessiert… Die jetzige Config sieht so aus.
der Helfer sieht so aus
Ich hoffe Du kannst damit was anfangen.
Volker
Als Yaml Bitte. Screenshots sind zwar schön anzusehen, aber nicht wirklich zu gebrauchen.
Und die Entity-ID des Helfers bitte mit angeben input_datetime.xyz
den Du verwenden tust.
Gruß
Osorkon
Ok hier der Code ich habe es jetzt mal versucht, vielleicht ist es so richtig?
alias: Bewässerung 4 neu
description: ""
trigger:
- platform: state
entity_id:
- input_datetime.bewasserung_2_tage
condition:
- condition: template
value_template: |-
alias: Bewässerung alle 2 Tage
description: ""
trigger:
- platform: time
at: input_datetime.bewasserung_2_tage
condition: []
action:
- service: input_datetime.set_datetime
metadata: {}
data:
datetime: >-
{{ states('input_datetime.bewasserung_2_tage') | as_datetime +
timedelta(days=2) }}
target:
entity_id: input_datetime.bewasserung_2_tage
mode: single
action:
- service: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.pumpe
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- service: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.blumen_ventil_ch4
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- service: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.blumen_ventil_ch4
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- service: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.pumpe
mode: single
Mein Helfer heißt
“input_datetime.bewasserung_2_tage”
Danke schon mal für die Hilfe.
Interessant wäre jetzt noch, wie ich auf dem Dashbord sehen kann, wann die nächste Bewässerung fällig ist.?
Da hast ordentlich was durcheinander gebracht.
Einfach nur das vorstellen des Helfers um 2 Tage als zusätzliche Aktion hinzufügen.
Der Auslöser bleibt der die Uhrzeit und das Datum des Helfers.
alias: Bewässerung 4 neu
description: ""
trigger:
- platform: time
at: input_datetime.bewasserung_2_tage
condition: []
action:
- service: input_datetime.set_datetime
metadata: {}
data:
datetime: >-
{{ states('input_datetime.bewasserung_2_tage') | as_datetime +
timedelta(days=2) }}
target:
entity_id: input_datetime.bewasserung_2_tage
- service: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.pumpe
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- service: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.blumen_ventil_ch4
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- service: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.blumen_ventil_ch4
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- service: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.pumpe
mode: single
Gruß
Osorkon
Danke ,ich habe es befürchtet ,das es nicht richtig war.
Jetzt noch meine letzte Frage ,wie kann ich jetzt auf dem Dashboard sehen wann die nächste Bewässerung fällig ist ? Wenn ich den Helfer auf dem Dashboard anzeige,steht das heutuge Datum mit der Uhrzeit.
Volker
Du musst den Helfer einmalig auf ein Datum und Urzeit in die Zukunft stellen.
Wenn die Automatisierung zu dem Zeitpunkt ausgelöst wird, wird als Aktion auch der Helfer um 2 Tage vorgestellt.
Gruß
Osorkon
Prima,
ich werde es mal nächste Woche testen ob es so funktioniert .
Ich danke Dir erstmal für deine Hilfe!!
Volker