Hello community,
I have written a function that I want to use to program my heating system to heat at certain times and run in frost protection mode at others. I have already configured an interface for this.
When I press “Heizzeiten schreiben” the function should be executed.
How can I call this function when the button is pressed?
This is the code I created
mqtt:
number:
- name: "open3e Heizugszeiten setzen"
unique_id: open3e_heizugszeiten_setzen
default_entity_id: number.open3e_heizugszeiten_setzen
device_class: temperature
command_topic: "open3e/cmnd"
command_template: >
{% set heizen_start1 = states('input_datetime.heizen_start1') [:5] %}
{% set heizen_ende1 = states('input_datetime.heizen_ende1') [:5] %}
{% set heizen_start2 = states('input_datetime.heizen_start2') [:5] %}
{% set heizen_ende2 = states('input_datetime.heizen_ende2') [:5] %}
{% set heizen_start3 = states('input_datetime.heizen_start3') [:5] %}
{% set heizen_ende3 = states('input_datetime.heizen_ende3') [:5] %}
{% if ((heizen_start1=='00:00') and (heizen_ende1=='00:00')) %}
{% set counter_anzahl = '0' %}
{% elif ((heizen_start2=='00:00') and (heizen_ende2=='00:00')) %}
{% set counter_anzahl = '1' %}
{% elif ((heizen_start3=='00:00') and (heizen_ende3=='00:00')) %}
{% set counter_anzahl = '2' %}
{% else %}
{% set counter_anzahl = '3' %}
{% endif %}
{% set wochentag = states('input_select.wochentag') %}
{% if (wochentag=='Montag') %}
{% set wochentagsID = '761' %}
{% elif (wochentag=='Dienstag') %}
{% set wochentagsID = '762' %}
{% elif (wochentag=='Mittwoch') %}
{% set wochentagsID = '763' %}
{% elif (wochentag=='Donnerstag') %}
{% set wochentagsID = '764' %}
{% elif (wochentag=='Freitag') %}
{% set wochentagsID = '765' %}
{% elif (wochentag=='Samstag') %}
{% set wochentagsID = '766' %}
{% elif (wochentag=='Sonntag') %}
{% set wochentagsID = '767' %}
{% endif %}
{% set heizzeiten1='' %}
{% set heizzeiten2='' %}
{% set heizzeiten3='' %}
{% if counter_anzahl>'0' %}
{% set heizzeiten1='{"Start": "'+ heizen_start1 + '", "Stop": "' + heizen_ende1 + '", "Unknown": "0000", "Mode": 3}' %}
{% endif %}
{% if counter_anzahl>'1' %}
{% set heizzeiten2='{"Start": "'+ heizen_start2 + '", "Stop": "' + heizen_ende2 + '", "Unknown": "0000", "Mode": 3}' %}
{% endif %}
{% if counter_anzahl>'2' %}
{% set heizzeiten3='{"Start": "'+ heizen_start3 + '", "Stop": "' + heizen_ende3 + '", "Unknown": "0000", "Mode": 3}' %}
{% endif %}
{% set cmddata = '{"Count": ' + counter_anzahl + ', "Schedules": [' + heizzeiten1 + heizzeiten2 + heizzeiten3 + ']' %}
{% set cmd = {'mode': 'write', 'data':[[wochentagsID, cmddata]]} %}
{{ cmd | to_json }}
icon: mdi:clock-time-two-outline
Thanks for your help.
Christopher

