Heaty will die, Schedy be born!

Hi there, i just moved from RPi to Nuc and thought that’s a good reason to start with a all fresh setup. Were there any breaking changes regarding the window detection that I didn’t notice? Everything but this seems to work:

'binary_sensor.0x00158d0001de8815_contact' changed from 'off' to 'on', reevaluating <Room R:living>.
2020-05-02 18:24:01.110719 INFO schedy_heating: --- [R:living] Doing schedule re-evaluation in 1 second [reset=False]
2020-05-02 18:24:02.009340 INFO schedy_heating: --- [R:living] Evaluating room's schedule (reset=False, force_resend=False).
2020-05-02 18:24:02.011291 INFO schedy_heating: --- [R:living] Assuming it to be 2020-05-02 18:24:02.009903.
2020-05-02 18:24:02.012638 INFO schedy_heating: --- [R:living] ������ [SUB]  <<Schedule 'living'>/1:<Rule with sub <Schedule 'prepend'>>>
2020-05-02 18:24:02.013817 INFO schedy_heating: --- [R:living]     ������ [ACT]  <<Schedule 'living'>/1/1:<Rule x='Mark(OFF, Mark.OVERLAY) if not is_empty('...>>
2020-05-02 18:24:02.015039 INFO schedy_heating: --- [R:living] Initializing expression helper: BasicHelper, order = 0
2020-05-02 18:24:02.016337 INFO schedy_heating: --- [R:living] Initializing expression helper: PatternHelper, order = 0
2020-05-02 18:24:02.017454 INFO schedy_heating: --- [R:living] Initializing expression helper: ScheduleHelper, order = 0
2020-05-02 18:24:02.018844 INFO schedy_heating: --- [R:living] Initializing expression helper: StateHelper, order = 0
2020-05-02 18:24:02.022251 INFO schedy_heating: --- [R:living] Initializing expression helper: ThermostatExpressionHelper, order = 0
2020-05-02 18:24:02.024416 INFO schedy_heating: --- [R:living] Initializing expression helper: CustomEnvironmentHelper, order = 1000
2020-05-02 18:24:02.033328 INFO schedy_heating: --- [R:living]     ������ => Next()

The sensor is listed as a watched_entity in the room “living”, the customize.yaml has the following entry:

binary_sensor.0x00158d0001de8815_contact:
  window_room: living

this is the prepend following the documentation and carried over from my previous setup:

  schedule_prepend:
    - x: "Mark(OFF, Mark.OVERLAY) if not is_empty(filter_entities('binary_sensor', state='on', window_room=room_name)) else Next()"

EDIT: Found the mistake. I forgot that the customize.yaml has to be manually included into the configuration.yaml

Hi.

Thanks for the time_between function.

I was adding today air conditioning to the HA and Schedy and immediatelly used it. And as it is working fine I refactored also heating :slight_smile:

And the input_datetime, well, still not usable. Technically OK, but not at all user-friendly in Lovelace.

What is the appropriate syntax for the window_room attribute for multiple rooms?

None. The code just checks if any binary sensor having a window_room attribute is on and returns the OFF overlay in this case.

If you need more fine-grained control over which sensors to include, you could of course introduce another attribute for all sensors to add to the hallway, e.g.:

customize:
  binary_sensor.window1:
    window_room: living
    hallway_window: true

And then filter for all binary sensors having hallway_window=True using the filter_entities() state helper, the same way it’s done in the official open window detection example, just that you filter for another attribute which is common among all sensors to include in the hallway.

1 Like

Hi all,

I’ve used Schedy for all the winter and I have now 2 question.

  1. I set at the top of the file this rule

schedule_append:

  • v: “OFF”

#modalità estiva

  • { v: 30, months: “5-9” }

We are in may and my radiatiors still open/close as in winter. Where am I wrong?

  1. Looking at the status of my climate I noticed that sometimes it is “on” even if the current temperature is higher than the one scheduled.

image

It is normal?

Up?

Nobody had this issue?

Here is my set up no issues other that the leap year and daylight savings python issue

1 Like

I don’t know if I’m just retarted or a glitch.
I have separate genetic thermostats and separate schedy apps for both my heating system and my cooler.
They are both set up the same except for ac_mode: true for cooler. and ac_mode: False for heater.
schedy is working fine and like I expect it too as far as schedule and following rules of input select, input boolean and then schedule_append if the thermostat is changed manually.

What I just noticed on my cooler thermostat is the COOL icon is Grey like it is OFF.
it turns blue if I click on it but when schedy changes anything it goes back to Grey but all is working like is should and cooler is running.

idle not coolig


cooling

one more weird thing it says heat in the schedy info

if I click the snow flake icon it goes blue and says cooling but goes back to Grey after schedy takes back over.

- platform: generic_thermostat
  name: Kozy Heat
  heater: switch.factory_shelly2_mqtt_1
  target_sensor: sensor.temperature_5_living_temp #zigbee
  min_temp: 50.0
  max_temp: 90.0
  ac_mode: False
  target_temp: 70.0
  cold_tolerance: 0.0
  hot_tolerance: 0.0
  initial_hvac_mode: "off"
  away_temp: 55
  
- platform: generic_thermostat
  name: cooler
  heater: switch.cooler_relay_thermostat
  target_sensor: sensor.temperature_5_living_temp #zigbee
  min_temp: 50.0
  max_temp: 90.0
  ac_mode: true
  target_temp: 72.0
  cold_tolerance: 0.0
  hot_tolerance: 0.0
  initial_hvac_mode: "off"
  away_temp: 85

AppDaemon 4 logs

2020-06-03 13:19:46.995942 INFO schedy_cooling: --- Actor type is: 'thermostat'
2020-06-03 13:19:47.019536 WARNING schedy_cooling: !!! [R:living] [A:climate.cooler] Thermostat doesn't seem to support the HVAC mode heat, supported modes are: ['cool', 'off']. Please check your config!
2020-06-03 13:19:47.038073 INFO schedy_cooling: --> [R:living] [A:climate.cooler] Received value of 73.0��.
2020-06-03 13:19:47.231496 INFO schedy_cooling: *** Initialization done.
2020-06-03 13:19:47.242971 INFO schedy_heating: *** Welcome to schedy 0.8.3, running on AppDaemon 4.0.3.

I tried to set it to ac_mode: cool and not ac_mode: true but configuration check said it was not valid.

HI, can someone PLEASE help me?

I just want that my heating system goes on “maintenance mode” with all valves open from may to september.

I’ve tested different configs but I can achieve it.

@Rod_Poplarchick Schedy sets the hvac mode to heat, which is, as logs say, not supported by the cooling thermostat. You just need to tell it that the hvac mode to use in operation is cool. This is a setting of the thermostat actor type, and hence can either be set in an actor template or directly for a single actor. See here.

I’m still don’t understand what you are saying.
I set it to true and it is working
Just the switch shows off and as heat.
Where and what setting do I need to change?

@Rod_Poplarchick Climate entities in Home Assistant can be set to different HVAC modes, which, depending on the type of climate device, can be heat, cool, off, auto etc. This has nothing to do with the ac_mode setting of the generic thermostat platform you’re mentioning.

When Schedy sends a temperature to a climate entity, it also has to specify which HVAC mode to use. Now, by default, this is “heat”, as the docs I linked tell you. Your climate, however, doesn’t support the heat mode, which is expected since it’s an AC device and not a heater. Therefore you have to configure Schedy to send the mode “cool” instead, which you do by setting hvac_mode_on: cool in the actor configuration in Schedy.

thanks again for trying to help a dumb ass :laughing:
I tried that after your first reply and just did it again.
I restarted HA and Appdaemon and still get the not supported error.
its working fine and adjusting the thrmostat just that the actor or generic thermostat shows off and the entity show heat


I think I’m doing this in the correct place

schedy_cooling:  # This is our app instance name.
  module: hass_apps_loader
  class: SchedyApp
  actor_type: thermostat
  hvac_mode_on: cool
  
  expression_environment: |
    def cooling_mode():
        return state("input_select.heating_mode")

  watched_entities:
  - input_select.heating_mode
  - input_boolean.occupied

again thanks for your help.

@Rod_Poplarchick Not quite in the right place. It has to be set under the actor, because it’s an option specific to the actor, not for Schedy in general.

So either add it under the specific actor, or in the default actor template if you need to set it for all actors in this Schedy instance.

actor_templates:
  default:
    # Here all settings to set for all actors
1 Like
  schedule_append:
  - v: "80"
    
  rooms:

    living:
      rescheduling_delay: 1
      actors:
        climate.cooler:
           hvac_mode_on: cool

thank you that did the trick.
now I just need to figure out how to set my headtng schedual to be off from april to Sept.
im no programer so it takes a lot to wrap my head around some of it . I have to see the code then i understand,

@Rod_PoplarchickYou’re very welcome.

To have Schedy not set any value, return Abort() from the schedule, possibly in the schedule_prepend section and restrict that rule from April to September, for instance.

EDIT: Or maybe better make it depend on an input_select that controls whether the heating or cooling instance should be active.

Input would be better that way it’s easy to override.in HA
Maybe use Google calendar or weather app to set input automatically.

Hi,

there’s a way to “suspend” watched_entities during summer?

Basically I don’t want that an open window monitored will trigger schedule_prepend to close valve during summer when windows are frequently open.

TY in advance

I have a binary_sensor that I manually control for summer then monitor it and check it in the schedules - I probably should do a prepend in schedy. I also do the same for School Holiday periods when the patterns of people in the house change (e.g. we get up later).

Uhm. Well at the moment I commented the prepend part to avoid it.

Can you share please your code in schedy?

1 Like