Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[schedy] HVAC mode of Bosch thermostat get set to automatic mode automatically #78

Open
u20p17 opened this issue Nov 4, 2022 · 0 comments

Comments

@u20p17
Copy link

u20p17 commented Nov 4, 2022

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/

image

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant