Scheduler card/custom component

Hi all. I’m fairly new to Home Assistant and I’ve been trying to get this card working for a long while now and despite reading the documentation and looking at other examples in this thread, I’ve made no real progress.

I’ve installed both the scheduled and the card extensions and I’m to the point where I can create card configurations. I have a service I want to automate on a schedule:

service eight_sleep.heat_set
parameters

  • duration (seconds)
  • target -100 to 100 (like a temperature)

One thing that’s confusing is there appear to be a lot of terms that are used for this extension that have parallels in Home Assistant but might be unrelated. The other thing is the requirement to use groups. What I’m trying to accomplish is a toggle + a schedule. If the toggle is on, the heating of the bed will be done on a schedule.

I’m just very confused about how this config is supposed to work. It centers around groups and entities. I tried adding a group to the configuration.yaml

group:
  bedroom_group:
    name: Bedroom Controls
    entities:
      - input_boolean.bed_heating_left

I tried creating a toggle and a schedule in the helpers section. schedule.bed_heating_left and input_boolean.bed_heating_left. When I create a card I get the following:

If I select group or input_boolean and click add I get: “there are no groups defined.”

I’ve also tried using the yaml editor for the card configurations with several examples but I can’t seem to get anything that works. I’ve tried reading through the readme on the card project’s github page but it doesn’t really help. I lack familiarity with how Home Assistant is typically supposed to work but I’m eager to improve.

+1 for this. Would love to have this. Tried more-info-card without any help as it shows the basic switch more-info, not the custom scheduler card additional info.

I would like to also have option for the schedule definition to be opened as “full screen”. Now if I have horizontal stack, the scheduling view is limited and pretty much unoperable on mobile devices:

I’m just here to say that this component is fantastic. Been meaning to set up a schedule for my new Mitsubishi mini-splits for a couple of weeks now that it’s cold here in Boston; found this discussion and installed the component and card; and with hardly any work I now have a thorough heating schedule set up for the whole house. Thanks for the awesome work, @neliss!

2 Likes

Click on the title text (kellari MH in your case) to increase the size of the card.

1 Like

I tried to set the programming according to my needs.
if I tried to write here what I should achieve using this component, could someone tell me if it can be done, and if so, how?
I have a pellet stove that I have to turn on in the morning after 6.30 if the room temperature is below 19 degrees. To the power 4.
Once the temperature of 20.5 has been reached, the stove must reduce the power to minimum.
if the room temperature, despite the stove at minimum, reaches 22 degrees then the stove should be turned off until it reaches 20 degrees (or 19 if it cannot be done otherwise)
and after 10.30pm the stove must turn off, or remain off, even the temperature drops below 20 degrees or 19 degrees.
Did I explain myself well? thanks

I forgot one thing
the stove is a pellet stove that also burns wood, this programming for wood cannot be done, because obviously the wood fire cannot be turned off on command. so I’m wondering if the programming can be blocked when the stove is in wood mode

By scheduling the switching on of a light entity that supports the dimmer, is it possible to dimming lights in an interval from 05:30 to 07:00 from 0% to 70%? Like to use the “transition” parameter in an automation…

Hi, I do have a question: I am using the scheduler for thermostats, like this one:

But using some automatizations I am changing the temperature aside the scheduler.

How can I tell to the scheduler to apply it again (for instance: when I come to the room, the automatization increases the temperature, so I need to return back to the scheduled temperature when I am leaving)

Is it something like this:

Tried, but did not work…

This should work.
Note that the service will execute the action corresponding to the current time. If you want an action triggered of a specific time (slot), you need to provide a time input yourself.
Also, if your schedule has conditions these may prevent the actions from being executed.

1 Like

Hi,

Can someone tell me what I’m doing wrong. I don’t see the scheduler card in HA to turn on / turnoff

Thanks in advance

Bob

My schedulers are very simple with no conditions, but this script does not update the target temperature at all :frowning:

is anyone having issue with scheduler and climate set to Auto it just not switching my heating to Auto from Manual, But it works fine the other way.

getting this in logs

Logger: homeassistant.util.logging
Source: util/logging.py:101
First occurred: 29 November 2023 at 20:00:00 (3 occurrences)
Last logged: 13:50:00

Exception in async_timer_finished when dispatching 'scheduler_timer_finished': ('0aca10',) Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 272, in __call__ return self._compiled([], data) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 818, in validate_callable return schema(data) ^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/config_validation.py", line 169, in validate raise vol.Invalid(f"must contain at least one of {expected}.") voluptuous.error.Invalid: must contain at least one of temperature, target_temp_high, target_temp_low. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/config/custom_components/scheduler/switch.py", line 275, in async_timer_finished await self._action_handler.async_queue_actions( File "/config/custom_components/scheduler/actions.py", line 261, in async_queue_actions await queue.async_start() File "/config/custom_components/scheduler/actions.py", line 383, in async_start await self.async_process_queue() File "/config/custom_components/scheduler/actions.py", line 525, in async_process_queue await async_call_from_config( File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 283, in async_call_from_config await hass.services.async_call(**params, blocking=blocking, context=context) File "/usr/src/homeassistant/homeassistant/core.py", line 2001, in async_call processed_data: dict[str, Any] = handler.schema(service_data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/voluptuous/validators.py", line 232, in __call__ return self._exec((Schema(val) for val in self.validators), v) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/voluptuous/validators.py", line 355, in _exec raise e if self.msg is None else AllInvalid(self.msg, path=path) File "/usr/local/lib/python3.11/site-packages/voluptuous/validators.py", line 351, in _exec v = func(v) ^^^^^^^ File "/usr/local/lib/python3.11/site-packages/voluptuous/schema_builder.py", line 276, in __call__ raise er.MultipleInvalid([e]) voluptuous.error.MultipleInvalid: must contain at least one of temperature, target_temp_high, target_temp_low.

I just want it to switch to Auto so it follows the schedule for the thermostat.

EDIT:
it seems the scheduler is using climate.set_temperature, and I need to use climate.set_hvac_mode how can I change this ?

I’m sure this is a dumb question, but here goes:

I use the Scheduler card with an Ecobee 3 Lite thermostat. So far everything works as expected. I find the ability to switch from “normal” and “guest” schedules much easier with the Scheduler Card than with the native Ecobee functionality. BUT… how do I keep the “leftover” schedule in the thermostat from overriding my Scheduler Card timings/settings?

@chrisdev524 and apas

Fyi, solution is to use the “scheduler: copy” service
it was not documented in the readme file.

hope this helps; it did for me =)

2 Likes

Not too long ago I made some schedules for my heating. I added some conditions for when me and my roommate are home or not to turn the heating on or off accordingly. However, I just tried to make another one, but I cant select those conditions anymore. Only the climate group is available. Is this a configuration thing?

I don’t think you can. You’ll have to delete the schedule in the thermostat.

1 Like

@jjross I used the sledge hammer approach of deleting my schedule on the thermostat. However ecobee must have at least one comfort setting in a schedule and I don’t see a way to remove the schedule entirely. Having one entry that never changes no longer interferes with my HA driven schedule. However, I can no longer turn off the ecobee display at “sleep” time. (as the ecobee thinks it is always SLEEPing [or never SLEEPing depending on the comfort setting you leave behind in the schedule]). (This is OK for my “office” zone.)

@tom10 I took a look at the Schedule Copy service, but I don’t understand the “target”. I want to copy my HA schedule to the thermostat, I’m not sure how this command places the copy on the thermostat. Where is the “target” for the copy??

Visual Editor:

YAML editor:

My use case is as follows:

  • Normal: Temperature is controlled by the ecobee thermostat in the office (where I am when working)
  • Guest: Temperature is controlled by the ecobee temp sensor in the guest bedroom. (so that a guest is comfortable when I am not in the office).

Hi,

I’m trying to set my Roborick vacuum cleaner in HA using the Scheduler component. I want to be able to set time, vacuum mode and mop mode. So wa happy to find the Setting Multiple Actions in a schedule explanation.

However, the commands I need to send to the Vacuum cleaner are numbers, while I would like to display names. For example: to turn off mopping I need to call the service with value 200. See the code example below for more:

data:
        command: set_water_box_custom_mode
        params: |
          {% if states("input_select.vac_mop_intensity") == "Off" %}
            {{ 200 }}
          {% elif states("input_select.vac_mop_intensity") == "Low" %}
            {{ 201 }}
          {% elif states("input_select.vac_mop_intensity") == "Medium" %}
            {{ 202 }}
          {% elif states("input_select.vac_mop_intensity") == "High" %}
            {{ 203}}
          {% endif %}

The example above will of course not work, input_select.vac_mop_intensity doesn’t exist. So how can I “translate’” the codes into words for this script to work with the Scheduler card?

Folks, I have a set of Kumo controlled thermostats, but one of the problems with Kumo is that it only has one program. I have a cool program, but I can’t make a heat program than I can switch back and forth with depending on outside weather.

So I am hoping to use this card/component to set schedules based on a helper variable that sets the house HVAC mode (cool/heat), as well as house occupied vs unoccupied via another helper. I thought I could use conditions in the option menu, but when I click on add, I get this:

It won’t let me choose the helpers, just the thermostats. What am I missing?

Thx!

Hi. I have a DIY irrigation system on an ESP8266. It uses MQTT and the standard entities(?) card gives me a switch for each of the 10 zones. The 8266 looks after ensuring only 1 zone is on at a time, and setting a time limit. The 8266 also responds to an MQTT message ‘start’ which runs the whole shebang, testing for rainfall etc. I added a helper button in HA which triggers it all nicely. The last step is to get scheduler to press the button at sunset. In the GUI it does a nice countdown in advance and afterwards but nothing happens. The MQTT msg doesn’t get generated, but it does if I press the helper-generated button. What am I doing wrong? Scheduler works fine with turning the Xmas decs and heaters on and off. I configured it all via GUI, no YAML except for including the input button via code editor on the config page.

Button:

show_name: true
show_icon: true
type: button
tap_action:
  action: call-service
  service: mqtt.publish
  target: {}
  data:
    qos: '1'
    topic: home/irrig/start/set
    payload: start
entity: input_button.start_irrig_cycle
name: Start Irrig
hold_action:
  action: none
show_state: true

and scheduler:

type: custom:scheduler-card
include:
  - climate
  - cover
  - input_button
  - input_button.start_irrig_cycle
  - light
  - switch
exclude: []
title: true

I had the same issue, but i found the answer in a recent ticket on github.
When you edit the card in the dashboard you select all kinds of entity types. Enable the one you need and you can use those entities in the conditions.

1 Like