hass-apps
hass-apps copied to clipboard
[schedy] HVAC mode of Bosch thermostat get set to automatic mode automatically
Hi all, I am using Schedy (https://hass-apps.readthedocs.io/en/stable/apps/schedy/) for my heating schedule and it is working fine except one issue with the setting of the HVAC mode. As thermostats I am using the Bosch ones: https://www.bosch-smarthome.com/de/de/produkte/vorgaengermodelle/heizkoerper-thermostat/
As you can see in the image schedy changes the temperature to 17 deg. The HVAC mode get changed to automatic, then back to heat (what I would like to have) and finally back to automatic. Why?
Furthermore it seems that the thermostat are only listening to the values send by Schedy if they are in the Heat HVAC mode. What values the thermostat is using when it is in automatic mode? I haven't defined any schedule in the Bosch app.
The schedy config file looks the following:
schedy:
module: hass_apps_loader
class: SchedyApp
#debug: false
#reset_at_startup: false
#expressions_from_events: false
expression_environment: |
def heating_mode():
return state("input_select.heating_mode")
actor_type: thermostat
actor_templates:
default:
#delta: 0.0
min_temp: 5
max_temp: 30
off_temp: "OFF"
supports_hvac_modes: true
hvac_mode_on: heat
hvac_mode_off: 'off'
schedule_prepend:
- x: "Mark(OFF, Mark.OVERLAY) if not is_empty(filter_entities('binary_sensor', state='on', window_room=room_name)) else Next()"
schedule_append:
- v: "OFF"
schedule_snippets:
bedroom:
- { v: 17, start: "07:00", end: "20:00" }
- { v: 21, start: "20:00", end: "22:00" }
- { v: 20, start: "22:00", end: "07:00" }
homeOffice: # Used with rules - x: "IncludeSchedule(schedule_snippets['homeOffice']) if heating_mode() == 'HomeOffice' else Next()"
- { v: 20, start: "00:00", end: "08:00" }
- { v: 22, start: "08:00", end: "20:00" }
- { v: 20, start: "20:00", end: "00:00" }
holiday: # Used with rules - x: "IncludeSchedule(schedule_snippets['holiday']) if heating_mode() == 'Holiday' else Next()"
- v: 17
default: # Used with rules -x: { "IncludeSchedule(schedule_snippets['default']) }
- v: 19
livingroom:
- { v: 18, start: "00:00", end: "06:00" }
- { v: 22, start: "06:00", end: "08:00" }
- { v: 18, start: "08:00", end: "16:00" }
- { v: 22, start: "16:00", end: "00:00" }
bathroom:
- { v: 18, start: "00:00", end: "06:00" }
- { v: 24, start: "06:00", end: "08:00" }
- { v: 18, start: "08:00", end: "20:00" }
- { v: 24, start: "20:00", end: "00:00" }
watched_entities:
- input_select.heating_mode
# Configure your rooms here.
rooms:
living:
#friendly_name: ...
allow_manual_changes: true
#replicate_changes: true
rescheduling_delay: 120
actors:
climate.room_climate_wohnzimmer: #Wohnzimmer
schedule:
- weekdays: 1-7
rules:
- x: "OFF if is_on('binary_sensor.wohnzimmerfenster') else Next()"
- x: "OFF if is_on('binary_sensor.wohnzimmerbalkontur') else Next()"
- x: "OFF if is_on('binary_sensor.kuchenfenster') else Next()"
- x: "OFF if is_on('binary_sensor.heizung_in_wohnkueche_deaktivieren_wegen_klimaanlage') else Next()"
- x: "IncludeSchedule(schedule_snippets['livingroom']) if heating_mode() == 'Default' else Next()"
- x: "IncludeSchedule(schedule_snippets['livingroom']) if heating_mode() == 'HomeOffice' else Next()"
- x: "IncludeSchedule(schedule_snippets['holiday']) if heating_mode() == 'Holiday' else Next()"
watched_entities:
- binary_sensor.wohnzimmerfenster
- binary_sensor.wohnzimmerbalkontur
- binary_sensor.kuchenfenster
- binary_sensor.heizung_in_wohnkueche_deaktivieren_wegen_klimaanlage
bed:
#friendly_name: ...
allow_manual_changes: true
#replicate_changes: true
rescheduling_delay: 120
actors:
climate.room_climate_schlafzimmer:
schedule:
- weekdays: 1-7
rules:
- x: "OFF if is_on('binary_sensor.schlafzimmerfenster_rechts') else Next()"
- x: "OFF if is_on('binary_sensor.schlafzimmerfenster_links') else Next()"
- x: "OFF if is_on('binary_sensor.heizung_in_schlafzimmer_deaktivieren_wegen_klimaanlage') else Next()"
- x: "IncludeSchedule(schedule_snippets['bedroom']) if heating_mode() == 'Default' else Next()"
- x: "IncludeSchedule(schedule_snippets['bedroom']) if heating_mode() == 'HomeOffice' else Next()"
- x: "IncludeSchedule(schedule_snippets['holiday']) if heating_mode() == 'Holiday' else Next()"
watched_entities:
- binary_sensor.schlafzimmerfenster_rechts
- binary_sensor.schlafzimmerfenster_links
- binary_sensor.heizung_in_schlafzimmer_deaktivieren_wegen_klimaanlage
guest:
#friendly_name: ...
allow_manual_changes: true
#replicate_changes: true
rescheduling_delay: 120
actors:
climate.room_climate_gastezimmer:
schedule:
- weekdays: 1-7
rules:
- x: "OFF if is_on('binary_sensor.gastezimmerfenster_links') else Next()"
- x: "IncludeSchedule(schedule_snippets['default']) if heating_mode() == 'Default' else Next()"
- x: "IncludeSchedule(schedule_snippets['default']) if heating_mode() == 'HomeOffice' else Next()"
- x: "IncludeSchedule(schedule_snippets['holiday']) if heating_mode() == 'Holiday' else Next()"
watched_entities:
- binary_sensor.gastezimmerfenster_links
buero:
#friendly_name: ...
allow_manual_changes: true
#replicate_changes: true
rescheduling_delay: 120
actors:
climate.room_climate_buro:
schedule:
- weekdays: 1-7
rules:
- x: "OFF if is_on('binary_sensor.burobalkontur') else Next()"
- x: "OFF if is_on('binary_sensor.heizung_in_buero_deaktivieren_wegen_klimaanlage') else Next()"
- x: "IncludeSchedule(schedule_snippets['default']) if heating_mode() == 'Default' else Next()"
- x: "IncludeSchedule(schedule_snippets['homeOffice']) if heating_mode() == 'HomeOffice' else Next()"
- x: "IncludeSchedule(schedule_snippets['holiday']) if heating_mode() == 'Holiday' else Next()"
watched_entities:
- binary_sensor.burobalkontur
- binary_sensor.heizung_in_buero_deaktivieren_wegen_klimaanlage
badezimmer:
#friendly_name: ...
allow_manual_changes: true
#replicate_changes: true
rescheduling_delay: 120
actors:
climate.room_climate_badezimmer:
schedule:
- weekdays: 1-7
rules:
- x: "IncludeSchedule(schedule_snippets['bathroom']) if heating_mode() == 'Default' else Next()"
- x: "IncludeSchedule(schedule_snippets['bathroom']) if heating_mode() == 'HomeOffice' else Next()"
- x: "IncludeSchedule(schedule_snippets['holiday']) if heating_mode() == 'Holiday' else Next()"
watched_entities:
vorzimmer:
#friendly_name: ...
allow_manual_changes: true
#replicate_changes: true
rescheduling_delay: 120
actors:
climate.room_climate_vorzimmer:
schedule:
- weekdays: 1-7
rules:
- x: "OFF if is_on('binary_sensor.eingangstur') else Next()"
- x: "IncludeSchedule(schedule_snippets['default']) if heating_mode() == 'Default' else Next()"
- x: "IncludeSchedule(schedule_snippets['default']) if heating_mode() == 'HomeOffice' else Next()"
- x: "IncludeSchedule(schedule_snippets['holiday']) if heating_mode() == 'Holiday' else Next()"
watched_entities:
- binary_sensor.eingangstur
BR