Chronos Scheduler: a visual scheduler for Home Assistant

Hi everyone,

I would like to share a custom integration I have been working on for Home Assistant: Chronos Scheduler.

The idea behind Chronos is to provide a visual way to manage daily schedules directly from a Lovelace card, without having to write YAML for every automation.

It is designed for users who want to manage things like heating, lights, irrigation, blinds, switches, water heaters, fans, vacuums, alarm panels, scenes and automations using time blocks and optional conditions.

GitHub repository:
https://github.com/Pricesswg/Chronos-Scheduler

What Chronos does

Chronos lets you create schedules made of daily time blocks.

For example, a heating schedule can look like this:

00:00 → 05:00    sleep
05:00 → 08:00    21°C
08:00 → 16:00    away
16:00 → 17:00    boost
17:00 → 22:00    21°C
22:00 → 23:55    sleep

Each block can have its own action, value and target devices.

In a multi-device schedule, each block can also control all devices or only a selected subset of them. This is useful, for example, when several thermostat valves or lights mostly follow the same routine, but not every block should affect every device.

Visual editor

Chronos includes three editor sections for the same schedule:

Linear view
Radial view
List view

They are not different operating modes. They are just three different ways to display and edit the same timeline.

The Linear view is useful for drag and drop editing.
The Radial view is useful to understand the full daily cycle at a glance.
The List view is useful when you want precise start and end times.

Weather and sensor rules

One of the main features is the rule system.

A schedule can have IF and THEN rules based on weather data, forecast data, sun position or Home Assistant sensors.

Examples:

IF forecast.temp_min_today > 22°C
THEN skip heating

IF humidity > 90%
THEN skip irrigation

IF wind_speed > 30 km/h
THEN close blinds

IF sensor.battery_soc > 96 AND sun.minutes_until_sunset > 120
THEN enable an additional load

Rules can skip a block, shift it, change its duration or force a different action.

This makes Chronos useful not only for fixed schedules, but also for schedules that need to react to real conditions.

Scenes and automations

Scenes and automations are handled with dedicated schedule types.

A scene schedule can activate one or more scene.* entities per time block.

An automation schedule can turn on, turn off or trigger one or more automation.* entities per time block.

For example, one daily routine can activate different scenes during the day:

07:00    Morning scene
20:30    Evening scene
23:30    Night scene

Other useful sections

Chronos also includes:

Overview section with all configured schedules
Live status section to see what Chronos is doing right now
Week view section to check the next seven days
Manage devices section to import Home Assistant entities
Device detail section with detected capabilities
Examples section with ready made schedule templates
Settings section for language, weather source, polling, notifications and colors

The Live status section is especially useful for troubleshooting, because it helps understand why a schedule is running, waiting, skipped or modified by a rule.

Installation

The recommended installation method is through HACS as a custom repository.

Repository URL:

https://github.com/Pricesswg/Chronos-Scheduler

After installation, restart Home Assistant, add the Chronos Scheduler integration, then add the card to any dashboard:

type: custom:chronos-card

The full installation instructions and documentation are available in the repository.

Documentation

I added a full user guide with screenshots that explains every section of the card:

Overview
Schedule editor
Linear, Radial and List sections
Weather rules
Live status
Week view
Manage devices
Device detail
Examples
Settings
Troubleshooting

Documentation:
https://github.com/Pricesswg/Chronos-Scheduler/blob/0e250eb74036eb2c151811293bebb96f2f979a07/docs/USER_GUIDE.md

Feedback and testing

The integration is now ready with the main features, but I would really appreciate feedback from the Home Assistant community.

In particular, I am looking for people willing to test it with different setups and report:

bugs
unexpected behavior
missing device capabilities
translation issues
UI problems
real use cases where the logic could be improved

Issues can be opened directly on GitHub:

https://github.com/Pricesswg/Chronos-Scheduler/issues

Contributions are also welcome. Pull requests will be reviewed before being merged.

Thanks to anyone who wants to test it or give feedback.

My first thought was that this would be an excellent way of controlling HA schedule helpers, but schedule.* isn’t included in the domain list.

I have several helper entities which are essentially just flags used mainly in automation conditions - is it your idea that these should be replaced by maybe a template switch? Input_boolean entities would work, but those aren’t in the domain list either. I’m not keen to rewrite the automations completely.

Hi,
i will try to get all your points one by one:

  • input_boolean is clearly a feature that i was thinking about, i’m still ading thing one by one as new use case emerges, and it will be supported in the next release as a device type flag.
  • about the schedule, this is a risky things to do, because as far as i know they are read only state so it’s not the best use to override those setting by the scheduler, but you can still discriminate activation base on those event in the now called meteo tab (wich i still have to find a better name).

As an example, you can now discriminate an activation reading those schedule value as a meteo flag event, so if a value is under a certain threshold, it will not turn on.
I create the integration as a more graphical version of scheduler card, because it get sometimes complex to manage it, so it’s not a complete substitute of the home assistant automation, it’s just a better way to manage some devices that need a more specific time program, like garden and crops irrigation, and so on.

1 Like

This is very impressive - a complete replacement for a lot of simple automations. And now that you've added input_boolean.* (that was quick!) existing automations will be easy to modify.

Top marks. :grin:

This is awesome, I was just asking Claude if he could make something like this and he found this project for me! Brilliant, I will definitely be giving this a try!

1 Like