Kobold: turn an old device into a multi-alarm clock

Kobold: A multi-alarm clock for Home Assistant

Have an old tablet or smartphone lying around in a box somewhere? Install the Kobold custom card on your Home Assistant (HA) instance to turn almost any device running HA Companion or a web browser into a customizable alarm clock.

Features

  • Multi-alarm clock
    • Set a schedule of alarm times, one for each day of the week
    • Set a new alarm at any time, temporarily overriding scheduled alarm
    • Set unscheduled alarm X minutes in future using nap dialog
    • Set alarm times easily using sliders directly on main view or in a dialog
  • Integrate with HA
    • Set one or more HA entities to be triggered by alarm
    • Set one or more additional HA entities to activate X minutes before or after alarm
    • Add other HA cards to be displayed or hidden with a tap/click
  • Customize appearance and function
    • Set 12-hour or 24-hour time display format
    • Set time display font to system or any of three presets
    • Set default durations of snooze and undismissed alarm
  • Enhance reliability
    • Set HA entities to ping connection and to sound a LAN-accessible alarm

Usage

Set an alarm for each day of the week in the alarm schedule dialog. The next alarm time will be displayed at the upper right corner of the main view. A toggle button indicates whether the next alarm is enabled. To override the scheduled alarm, tap/click on the next alarm display or enter a value in the nap dialog. A dotted border around next alarm time indicates that the scheduled alarm is overridden. To clear the override and return to the scheduled alarm, tap/click on the CLEAR button in the nap dialog.

For details, visit the Kobold repository.


Kobold is adapted from Ronald Dehuysser’s Lovelace Alarm Clock Card.

6 Likes

Hi,

this looks great on my Mi Smart Clock. But I have issues:

I seem to have not enough rights, when I switch schedules on, the switch goes back to off. Same thing when I try to change something from the UI,. I always get “unauthorized” messages. The cards on the bottom show “Konfigurationsfehler”. Any ideas?

And I would love to have the holiday and workday switches as in the original integration.

Cheers, Ralf

Ralf,

Thanks for your interest in Kobold. Which installation method did you use? Can you send me your Lovelace configuration?

As to holidays, I wouldn’t use that functionality myself, but I can look into adding it.

Best, Marco

Hi, I used HACS. Just tried it again.

Here’s my panel:

views:
  - type: panel
    path: ''
    cards:
      - name: kobold_clock
        type: custom:kobold-alarm-clock-card
        alarms_enabled: true
        next_alarm:
          enabled: true
          time: '17:15:00'
          date: '2025-12-28'
          date_time: '2025-12-28 17:15:00'
          overridden: true
        mo:
          enabled: true
          time: '07:00:00'
        tu:
          enabled: true
          time: '07:00:00'
        we:
          enabled: true
          time: '07:00:00'
        th:
          enabled: true
          time: '07:00:00'
        fr:
          enabled: true
          time: '07:00:00'
        sa:
          enabled: true
          time: '09:00:00'
        su:
          enabled: true
          time: '09:00:00'
        snooze_duration_default:
          hours: 0
          minutes: 15
          seconds: 0
        alarm_duration_default:
          hours: 0
          minutes: 30
          seconds: 0
        nap_duration:
          hours: 0
          minutes: 30
          seconds: 0
        time_format: 24hr
        period_icon: false
        clock_display_font: 1
        hide_cards_default: true
        debug: false
        alarm_entities: []
        last_updated: '2025-12-28 16:42:01'
        alarm_actions:
          - entity: cover.r_schlafzimmer
            when: offset
        cards:
          - entity: weather.forecast_moosweg
    visible:
      - user: 1c368c995d1543e193dbedd746b4be21
      - user: 9000daaabf314bbdb1c677b57d4d784c
    icon: mdi:alarm

I can’t find the boolean switch mentioned in the docs. Where in the settings do I input that

Ralf,

An input boolean helper is necessary for the proper functioning of Kobold. It is listed in the requirements of the documentation with a link to the HA documentation that shows how to install one. Here is that link again:

I hope that solves your problems. If not, let me know.

Best, Marco

Ok, I made a Input boolean helper and set that as a ringer entity. What does that do?

And why can’t I see any cards (like the waether card in the lovelace example)? I still get “Konfigurationsfehler”.

Lovelace now:

name: kobold_clock
type: custom:kobold-alarm-clock-card
alarms_enabled: true
next_alarm:
  enabled: true
  time: "08:10:00"
  date: "2025-12-29"
  date_time: "2025-12-29 08:10:00"
  overridden: false
mo:
  enabled: true
  time: "08:10:00"
tu:
  enabled: true
  time: "08:10:00"
we:
  enabled: true
  time: "08:10:00"
th:
  enabled: true
  time: "07:00:00"
fr:
  enabled: true
  time: "07:00:00"
sa:
  enabled: true
  time: "09:00:00"
su:
  enabled: true
  time: "09:00:00"
snooze_duration_default:
  hours: 0
  minutes: 5
  seconds: 0
alarm_duration_default:
  hours: 1
  minutes: 0
  seconds: 0
nap_duration:
  hours: 0
  minutes: 30
  seconds: 0
time_format: 24hr
period_icon: false
clock_display_font: 1
hide_cards_default: false
debug: false
alarm_entities:
  - switch.radiowecker_ein_aus
  - input_boolean.kobold_schalter
last_updated: "2025-12-28 18:28:45"
alarm_actions:
  - entity: script.rolladen_schlafzimmer_hoch
    when: offset
    offset:
      hours: 0
      minutes: 0
      seconds: 0
cards:
  - entity: switch.radiowecker_ein_aus
  - entity: script.rolladen_schlafzimmer_hoch

Shows as…

Dear Ralf,

The Input Boolean helper is switched on when an alarm activates, and switched off when an alarm ceases. You can hook up any integration in HA to this helper, if you like (e.g., you could arrange for a message to be sent, or a light to go on, when the helper changes its state). I suppose most people will never use it, but it must be there because Kobold requires some kind of alarm entity, and this one is the easiest to configure.

Your most recent Lovelace configuration seems mostly correct to me: you should no longer have trouble activating the alarm schedule.

The one problem I see in your Lovelace configuration arises from the two entries following the “cards:” entry; this is what is producing the configuration error reports at the bottom of the screen shown in your screenshots. You have two “alarm entities” listed here, which is not, I think, what you intend. The alarm entities are already configured earlier in the Lovelace configuration. The “cards:” entry is created or updated by making changes to the “Cards to Display” section in the settings dialog. This is where you might add additional HA cards, just as you might add cards to any dashboard:

The documentation shows, among two others, a weather forecast card, of which there are many you could choose from. The illustrated one is provided by the Meteorologisk institutt. To use it, you must first install the integration by following the instructions here:

Then, in Kobold, you can display the weather card by going to the “Cards to Display” section of the settings dialog. First choose the entity that was made available by installing the weather forecast integration. Then, in the configuration section, add something like this:

type: weather-forecast
name: NYC
entity: weather.forecast_home
show_forecast: true
forecast_type: hourly
card_mod:
  style: |
    :host ha-card {
      background-color: var(--secondary-background-color);
      padding: 2em !important;
      border-radius: 12px !important;
    }
    :host .state, :host .temp, :host .forecast .temp, :host
    .temp-attribute .temp span {
      font-size: 2rem !important;
      color: var(--primary-text-color) !important;
    }
    :host .name, :host .attribute, :host .forecast {
      font-size: 1.5rem !important;
      color: var(--secondary-text-color) !important;
    }

This is my configuration, which includes a “card_mod” entry, adjusting the appearance of this card to my taste. You can ignore that line of the configuration and everything after, or you can install the Card-Mod integration mentioned in the documentation and make adjustments to suit you:

The other two cards that are shown in the documentation are a switch for a smart plug that controls a lamp, and a media player with presets to radio stations I listen to; each is configured in a similar way.

I hope that helps!

Best, Marco

The cards are no alarms in itself, but a switch to start/stop the radio playing and a script to open the bedroom cover. I get the wrror no matter what kind of card I use.

Ralf,

Try removing the “cards:” entry and the entries under it. Now try setting an alarm. Does all work as expected? If not, are you able to access the developer menu of your browser? On Chrome, for instance, it can be found under “More Tools” → “Developer Tools”. The “Console” tab should show some errors. Could you take a screenshot of them, or copy and paste them in your reply?

Best, Marco

Hi MRco,

Alarms are working, the radio starts as expected.

Thanks, Ralf.

1 Like

But the cards still don’t work.

Are there any other dependencies that I’m missing?

Dear Ralf,

Are you able to add the cards that are not working to an otherwise empty dashboard without encountering errors? If so, there may well be a problem in Kobold that needs investigation. In that case, please send your YAML configuration for the cards. If not, your problem is a mis-configuration of the cards. In this case–after review of the HA documentation on cards (see link in previous post)–keep tweaking the configuration of the cards installed on an otherwise empty dashboard until the errors are gone–then add the problem-free configuration to Kobold.

Best, Marco

Ok, I was an idiot, but maybe this should be more elaborated in the docs: In th UI, under cards, it’s not enough to choose a entity, you have to input the card code also. I misunderstood that. Now I have a really cool alarm clock on a mi smart clock:

Ralf,

That looks great! I’m glad it worked out. I will make an update to the documentation about cards.

Let me know if you have any other issues.

Best, Marco

Thanks alot for the nice dashboard, Marco.

Any idea how to access the wake times (and the "alarm on/off switch) as entities? So it would be possible to build a dashboard to change the wakeup time from HA more comfortably than in the configuration.

Hiya! I’m trying to set this up and I’m not sure whether I might be missing something in my Home Assistant configuration, as it doesn’t seem to work out of the box for me.

When I enable debug mode, I see the message can't access property "callService", this._hass is undefined. Also, when I click the buttons, I’m redirected to the edit page (https://domahass.lan/dashboard-alarm/0?edit=1), but it just shows a blank screen.

For setup I just created the input_boolean helper, downloaded the addon from HACS and manually added it from the dashboard GUI.

Do you have any ideas on what might be causing this or how I could fix it? Thanks in advance!

Here’s my lovelace config

Yaml
views:
  - title: Home
    sections:
      - type: grid
        cards:
          - type: heading
            heading: New section
          - name: kobold_clock
            type: custom:kobold-alarm-clock-card
            alarms_enabled: false
            next_alarm:
              enabled: false
              time: '07:00:00'
              date: '2026-01-02'
              date_time: '2026-01-02 07:00:00'
              overridden: false
            mo:
              enabled: false
              time: '07:00:00'
            tu:
              enabled: false
              time: '07:00:00'
            we:
              enabled: false
              time: '07:00:00'
            th:
              enabled: false
              time: '07:00:00'
            fr:
              enabled: false
              time: '07:00:00'
            sa:
              enabled: false
              time: '09:00:00'
            su:
              enabled: false
              time: '09:00:00'
            snooze_duration_default:
              hours: 0
              minutes: 15
              seconds: 0
            alarm_duration_default:
              hours: 0
              minutes: 30
              seconds: 0
            nap_duration:
              hours: 0
              minutes: 30
              seconds: 0
            time_format: 12hr
            period_icon: false
            clock_display_font: 0
            hide_cards_default: true
            debug: true
            alarm_entities:
              - input_boolean.alarm_ringer
            last_updated: '2026-01-01 09:04:17'

Hi, Dynameow,

Thanks for trying out Kobold. This card employs a few workarounds that allow it to customize dialogs; in order for it to work, the card can’t be too nested on the dashboard. In the YAML configuration, try removing the heading card entry above the Kobold entry and let me know whether it works. I’ll have to look into whether I can accommodate more nesting of cards, or if I can’t, I’ll have to add some guidance about it in the documentation.

Hi, thanks for responding.

I tried removing the heading as well as removing the grid, neither of which sadly helped.

(pasting my config just incase)
views:
  - title: Home
    sections:
      - name: kobold_clock
        type: custom:kobold-alarm-clock-card
        alarms_enabled: true
        next_alarm:
          enabled: false
          time: '07:00:00'
          date: '2026-01-02'
          date_time: '2026-01-02 07:00:00'
          overridden: true
        mo:
          enabled: false
          time: '07:00:00'
        tu:
          enabled: false
          time: '07:00:00'
        we:
          enabled: false
          time: '07:00:00'
        th:
          enabled: false
          time: '07:00:00'
        fr:
          enabled: false
          time: '07:00:00'
        sa:
          enabled: false
          time: '09:00:00'
        su:
          enabled: false
          time: '09:00:00'
        snooze_duration_default:
          hours: 0
          minutes: 15
          seconds: 0
        alarm_duration_default:
          hours: 0
          minutes: 30
          seconds: 0
        nap_duration:
          hours: 0
          minutes: 30
          seconds: 0
        time_format: 12hr
        period_icon: false
        clock_display_font: 0
        hide_cards_default: true
        debug: false
        alarm_entities:
          - input_boolean.alarm_ringer
        last_updated: '2026-01-01 17:49:52'
        grid_options:
          columns: full
          rows: 2

I also forgot to mention another error message which could perhaps be of help to you. When I try to set a nap from the configuration menu (dashboard config, not Kobold settings) I get the following error after saving:
Saving failed: can't access property "configEntries", this.alarmController is undefined.

Thanks once again.

Dear Dynameow,

The problem is related to nesting: I haven’t accommodated HA’s new sections view. I’ll work up a new version and release it soon, probably this weekend.