Heaty will die, Schedy be born!

Suggest using an automation for that. I ended up using some boolean sensors to override behaviour as well. Don’t try and do everything in schedy!

Well, actually this seems similar to open window detection, so in this particular case I think it’s going to be simpler when integrated into the schedule directly, just that you filter for AC entities instead of window sensors.

I use the boolean within the rules to help set the desired temperature under certain circumstances. If I turn the boolean on, it switches the heating on as long as other rules are observed. Simple override mechanism.

Yeah, that sounds like good practice: work out the different variables/conditions your schedule should depend on, provide them as input_*/binary_sensor/whatever entities in HA and then reference these entities from the schedule(s).

1 Like

Hi All

Schedy is working great and nothing wrong with my setup but need to tune it a bit due to my specific heaters

So, I have clay core heaters that dont need to be “powered” on for an hour to heat the room, but only 15 mins and then radiant heat out for the remainder of the hour - Modern Storage Heaters :slight_smile:

So, the question is how can I simplify schedules to accomadte that every hour, on the hour they will turn on for 15 mins if the room temp is below the set value?

I can see they are about to get very long with the following added as needed per room for the required heating

        - { v: 20, start: "09:00", end: "09:15" }
        - { v: 20, start: "10:00", end: "10:15" }
        - { v: 20, start: "11:00", end: "11:15" }
        - { v: 20, start: "12:00", end: "12:15" }
        - { v: 20, start: "13:00", end: "13:15" }
        - { v: 18 }

and so

Currently I just have them set for the total time they need to be on but this is not the most efficient way to run them

Thanks in advance

Is there a way to have a “tiered” heating system with schedy? What i a mean is that i have a heat pump (climate actor 1), and some electric ovens (climate actor 2).

I want to have a system where

1, just before i get home, the heat pump runs at fill speed.
2. When getting home, it has the the same temp, but now runs in silent mode
3. In some instances (for instance, temperature is low and the visitor mode is on) I only want to use the electric ovens, since they are totally silent.

Is this something that is somewhat manageable to do in schedy?

Thanks for this example. I copied it.
Now Skip() is replaced by Next().

Is your problem solved ? I use also Eurotronic SPZB0001 and took your config. But even if I change the temperature manually it switches to “auto” and schedy ignores the themostat and send the error message ERROR Heizung: !!! [R:Bad_oben] [A:climate.thermostat_10] Unknown HVAC mode ‘auto’, ignoring thermostat.

@Goethe14 The last time I explained why this happens and how to correct configurations in these cases was in this post and the following posts.

EDIT: Corrected link.

Yes so I did. But the error messages appears furthermore. Sometimes schedy works and sometimes it goes crazy. Schedy don´t like manual changings. I’m sticking to it.

watched_entities:
- climate.thermostat_10
- climate.thermostat_11

supports_hvac_modes: true
hvac_mode_on: “auto”
hvac_mode_off: “OFF”

schedule_append:

  • v: “off”

Anyone got an idea, I just cant get multiple start and end time to work in a single rule?

Have cleaned my config up by using snippets so now down from 4000 odd lines to 800 as they were just duplicates
I had to change to being on for 15mins, off for 15mins so now looks like the below but from 00:00 - 23:45

        - { v: 20, start: "09:00", end: "09:15" }
        - { v: 20, start: "09:30", end: "09:45" }
        - { v: 20, start: "10:00", end: "10:15" }
        - { v: 20, start: "10:30", end: "10:45" }
        - { v: 20, start: "11:00", end: "11:15" }

@roschi is this even possible what I want to do?

Well, you should have read on:

You know that these settings are actor-specific and thus have to be configured on the individual actors, right? If you want to set it for all actors, use the default actor template (just search for actor_templates).

Do not set these on the top level of the configuration.

@matthewjporter WTH, 800 lines!

There is no general way of expressing something like “toggle between value A and B every X minutes”. However, you could use sub-schedules to get rid of the redundant value specifications:

- v: 20
  rules:
  - { start: "09:00", end: "09:15" }
  - { start: "09:30", end: "09:45" }

But in general, the way to work with a climate entity is to set it to some target temperature and then let it do whatever it takes to reach and keep that temperature. Climate entities are not meant to be used like on/off switches, they should rather implement their own algorithm that helps tracking the target temperature in the most efficient way. So in that regard you seem to do something very special.

Hello community,

today I migrated my appdaemon 3.x environment to appdaemon 4.0.5.

Unfortunately Schedy seems not to load.

appdaemon_1  | 2020-12-17 17:10:39.170603 INFO AppDaemon: AppDaemon Version 4.0.5 starting
appdaemon_1  | 2020-12-17 17:10:39.170759 INFO AppDaemon: Python version is 3.8.5
appdaemon_1  | 2020-12-17 17:10:39.170883 INFO AppDaemon: Configuration read from: /conf/appdaemon.yaml
appdaemon_1  | 2020-12-17 17:10:39.171012 INFO AppDaemon: Added log: AppDaemon
appdaemon_1  | 2020-12-17 17:10:39.171158 INFO AppDaemon: Added log: Error
appdaemon_1  | 2020-12-17 17:10:39.171292 INFO AppDaemon: Added log: Access
appdaemon_1  | 2020-12-17 17:10:39.171412 INFO AppDaemon: Added log: Diag
appdaemon_1  | 2020-12-17 17:10:39.183367 INFO AppDaemon: Loading Plugin HASS using class HassPlugin from module hassplugin
appdaemon_1  | 2020-12-17 17:10:39.189797 INFO HASS: HASS Plugin Initializing
appdaemon_1  | 2020-12-17 17:10:39.189930 INFO HASS: HASS Plugin initialization complete
appdaemon_1  | 2020-12-17 17:10:39.190343 INFO AppDaemon: Initializing HTTP
appdaemon_1  | 2020-12-17 17:10:39.190668 INFO AppDaemon: Using 'ws' for event stream
appdaemon_1  | 2020-12-17 17:10:39.192735 INFO AppDaemon: Starting API
appdaemon_1  | 2020-12-17 17:10:39.194810 INFO AppDaemon: Starting Admin Interface
appdaemon_1  | 2020-12-17 17:10:39.195131 INFO AppDaemon: Starting Dashboards
appdaemon_1  | 2020-12-17 17:10:39.202260 INFO HASS: Connected to Home Assistant 2020.12.0
appdaemon_1  | 2020-12-17 17:10:39.223651 INFO AppDaemon: App 'hello_world' added
appdaemon_1  | 2020-12-17 17:10:39.224008 INFO AppDaemon: App 'schedy_heating' added
appdaemon_1  | 2020-12-17 17:10:39.224714 INFO AppDaemon: Found 2 total apps
appdaemon_1  | 2020-12-17 17:10:39.225196 INFO AppDaemon: Starting Apps with 2 workers and 2 pins
appdaemon_1  | 2020-12-17 17:10:39.226084 INFO AppDaemon: Running on port 5050
appdaemon_1  | 2020-12-17 17:10:39.238146 INFO HASS: Evaluating startup conditions
appdaemon_1  | 2020-12-17 17:10:39.240643 INFO HASS: Startup condition met: hass state=RUNNING
appdaemon_1  | 2020-12-17 17:10:39.240857 INFO HASS: All startup conditions met
appdaemon_1  | 2020-12-17 17:10:39.250584 INFO AppDaemon: Got initial state from namespace default
appdaemon_1  | 2020-12-17 17:10:41.236984 INFO AppDaemon: Scheduler running in realtime
appdaemon_1  | 2020-12-17 17:10:41.246903 INFO AppDaemon: Adding /conf/apps to module import path
appdaemon_1  | 2020-12-17 17:10:41.248069 INFO AppDaemon: Loading App Module: /conf/apps/hello.py
appdaemon_1  | 2020-12-17 17:10:41.250623 INFO AppDaemon: Initializing app hello_world using class HelloWorld from module hello
appdaemon_1  | 2020-12-17 17:10:41.288573 INFO hello_world: Hello from AppDaemon
appdaemon_1  | 2020-12-17 17:10:41.289165 INFO hello_world: You are now ready to run Apps!
appdaemon_1  | 2020-12-17 17:10:41.290185 INFO AppDaemon: App initialization complete

The config is found but nothing happens.

Configuration is done via docker-compose:

version: '3'

services:
 
  appdaemon:
    image: acockburn/appdaemon:4.0.5
    restart: unless-stopped
    environment:
      HA_URL: "http://192.168.0.50:8123"
      TOKEN: xxx
      DASH_URL: "http://192.168.0.50:5050"
    ports:
      - 5050:5050
    volumes:
      - /home/psc/Docker-Appdaemon-4/data:/conf
      - /etc/localtime:/etc/localtime:ro

Appdaemon config:

appdaemon:
  latitude: 51
  longitude: 13
  elevation: 100
  time_zone: Europe/Berlin
  plugins:
    HASS:
      type: hass
      ha_url: http://192.168.0.50:8123
      token: xxx
http:
  url: http://192.168.0.50:5050
admin:
api:
hadashboard:

schedy_heating.yaml in apps folder:

schedy_heating:
  module: hass_apps_loader
  class: SchedyApp
  debug: true
  
  reset_at_startup: false

  actor_type: thermostat

  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: 18

  rooms:
  

What am I doing wrong?

Thanks. I believe this problem will be rise up often that a thermostat has an AUTO mode. Would be nice to find an example how to define the template. Also where. In HA or in schedy? Its not so clear in your schedy doc about THERMOSTAT and actor_templates. As long I didnt find the right level of the configuration …

After restarting HASS appdeamon also shows, that it isn’t able to find schedy

INFO AppDaemon: Initializing app hello_world using class HelloWorld from module hello
INFO AppDaemon: Initializing app schedy_heating using class SchedyApp from module hass_apps_loader
WARNING AppDaemon: Unable to find module module hass_apps_loader - 'schedy_heating' is not initialized
INFO hello_world: Hello from AppDaemon
INFO hello_world: You are now ready to run Apps!
WARNING AppDaemon: Unable to find module schedy_heating - initialize() skipped

@Goethe14 Just google for “schedy actor_templates” or search for actor_templates in the docs directly. It is clearly demonstrated how to configure settings for the default template. Also in this thread it has been shown quite some times.

That the thermostat has an “auto” mode is not a problem. You just have to tell Schedy you want to use it instead of the default one named “heat”. Nothing crazy at all.

I forgot to add the hass_apps_loader.py to the apps folder. Now it’s working.

@roschi
I have come to that conclusions so as I mentioned have gone to scheduled_snippet route and have lessened the amount of duplication

As my electric heaters are storage heaters, this is how they work with the manufactures individual dumb thermostate per heater and is what I have recreated with sonoff TH16’s and schedy

As i have it, it now seems to be working

@SaxnPaule Great, thanks for reporting back.

@matthewjporter

As my electric heaters are storage heaters, this is how they work with the manufactures individual dumb thermostate per heater and is what I have recreated with sonoff TH16’s and schedy

Just FYI, do you know the generic climate platform in HA? With that you can build a climate entity out of a switchable heater and a temperature sensor. Together with some tunable parameters, HA then switches the heater on and off in order to reach/keep the desired target temperature. Don’t know if you’ve done it that way already.