Home Assistant

Fixing the 3 Biggest Annoyances With the SwitchBot E-Ink Home Dashboard

19 August 2026 8 min read

I’ve been living with the SwitchBot E-Ink Home Dashboard on my kitchen wall for a while now, and honestly, I like it more than I expected to. But when I put together my full review, three things kept bugging me enough that I couldn’t just ignore them. The side buttons do nothing out of the box. There’s no built-in way to build your own screen without digging into an API. And if more than one person in your house has a calendar, you’re stuck flicking between them one at a time instead of seeing everyone’s plans in one place.

None of these are dealbreakers. All three are fixable if you’re willing to spend twenty minutes in Home Assistant. So that’s what this post is: the exact steps I used to sort out the buttons, build a custom API screen, and merge every family calendar into one view that updates itself. Grab a coffee, this one’s a bit technical.

What You’ll Need Before Starting

  • A SwitchBot E-Ink Home Dashboard, obviously
  • A SwitchBot Hub (needed to get the display onto Matter)
  • Apple Home or Home Assistant already set up (I’ll cover Home Assistant properly, Apple Home only gets you so far)
  • A free account with something like Postman, or just use reqbin.com in a browser tab, for firing off a couple of API calls
  • Home Assistant Cloud or a Cloudflare Tunnel if you want the calendar merging trick to work, since that file needs to be reachable from outside your home network

1. Actually Using the Buttons on the SwitchBot E-Ink Home Dashboard

This one caught me out at first. The two physical buttons on the right side of the display are genuinely useful hardware, they show up as separate switches in both Apple Home and Home Assistant, but SwitchBot’s own app insists you assign a Scene to them before they’ll fire at all. Skip that step and pressing the button does precisely nothing.

Step one: create a dummy Scene in the SwitchBot app

Open the SwitchBot app, go to the Home screen, and create a new Scene. Name it something that matches what you actually want the button to do elsewhere, like “Kitchen Light”, because this name is really just for your own sanity later. For the action, it genuinely doesn’t matter what you pick. If you’ve already got an automation sitting around that you want toggled on, use that. If not, just point it at something harmless, I used a random remote button press that doesn’t control anything real.

The point isn’t the Scene itself. It’s that assigning any Scene to the button is what wakes it up and lets it start reporting state changes to Matter.

Step two: wire it up properly in Home Assistant

Once the display is added to Matter through your SwitchBot Hub and shows up in Home Assistant, go find the device and rename the two buttons. By default they’re just called “Button” and “Button 2”, which gets confusing fast, so give them names that mean something to you.

Then:

  1. Go to Settings, then Automations & Scenes, and create a new automation
  2. Set the trigger to a state change, and pick your first button from the device list
  3. That’s genuinely all you need for the trigger, no extra conditions required
  4. Add whatever action you actually want, mine turns on my kitchen light

Repeat for the second button and you’ve now got two physical shortcuts on your wall that do whatever you want, not whatever SwitchBot’s Scene menu allows.

2. Building a Custom Screen With the SwitchBot API

The SwitchBot E-Ink Home Dashboard supports custom screens, but there’s no menu for designing one inside the app. Instead you push content to it directly through SwitchBot’s API, which sounds intimidating and really isn’t once you’ve done it once.

Turn on the custom screen

In the display’s settings, go to Screen Views, add Custom, and toggle it to update via the SwitchBot API.

Grab your API key

This bit is hidden in a way only an engineer would think is intuitive. Open the SwitchBot app, go to Profile, then Preferences and About, and tap the App Version number roughly five times in quick succession. A Developer Options menu appears out of nowhere, and inside it you can generate a Token and Secret. Write both down somewhere safe and don’t post them anywhere public, they’re effectively the keys to your whole SwitchBot account.

Find your device ID

Using Postman or reqbin.com, send a GET request to:

https://api.switch-bot.com/v1.1/devices

Add an Authorization header with your Token, send it, and you’ll get back a full list of every SwitchBot device on your account. Scroll through and note the deviceId for your Weather Station entry, that’s the one tied to your E-Ink display.

Add a REST command in Home Assistant

With the File Editor add-on installed, open configuration.yaml and add something like this, swapping in your own device ID and token:

rest_command:
  update_eink_screen:
    url: "https://api.switch-bot.com/v1.1/devices/YOUR_DEVICE_ID/commands"
    method: POST
    content_type: "application/json"
    headers:
      Authorization: "YOUR_TOKEN"
    payload: '{"command": "customPage", "commandType": "command", "parameter": "{{ message }} "}'

Save it, then head to Settings, Developer Tools, run Check Configuration, and restart Home Assistant properly, not just a quick reload.

Trigger it with an automation

Create a new automation with whatever trigger suits your use case, then set the action to Perform Action and choose your new rest_command. Pass in your message data, save it, and run it manually to test. One thing worth knowing before you start second-guessing your setup: it can take a while, sometimes close to an hour, for the display to actually refresh after the command goes through. Don’t assume it’s broken if nothing happens straight away.

3. Merging Every Family Member’s Calendar Into One View

This was the fiddliest of the three fixes, but it’s also the one I use daily now. Out of the box, the SwitchBot E-Ink Home Dashboard only lets you flick between calendars one person at a time using the buttons. There’s no combined view. So I built one using Home Assistant, a small Python script, and an automation that refreshes it every fifteen minutes.

The end result is a single .ics calendar file, with each event automatically prefixed with the relevant person’s name, that the display can subscribe to just like any other calendar.

Drop the script into Home Assistant

Using File Editor, create a file called merge_calendars_ha.py inside your config folder. You don’t need to understand what’s happening inside it line by line, you just need to edit the section at the top where you list out your own calendars and the names you want attached to each one. I’ve kept it limited to the last and next 365 days, since the display can’t show anything further out than that anyway.

Download the file here

Add a shell command

Back in configuration.yaml, add this:

shell_command:
  merge_calendars: "python3 /config/merge_calendars_ha.py"

Save it, check the YAML config under Settings and Developer Tools, and do a full restart.

Automate it to run every 15 minutes

  1. Go to Settings, Automations & Scenes, and create a new automation
  2. Set a Time Pattern trigger using /15, so it fires every quarter hour
  3. Set the action to Perform Action, and choose shell_command.merge_calendars
  4. Save it, then open the three-line menu and Run Actions once to generate the file straight away

Your merged calendar will now live at a URL that looks like this:

https://your-home-assistant-url/local/family-calendar.ics

Because the SwitchBot E-Ink Home Dashboard needs to reach out and fetch this file from outside your home network, your Home Assistant instance has to be remotely accessible. Home Assistant Cloud handles this for you if you’re already subscribed, otherwise a Cloudflare Tunnel does the same job for free.

Add it to the display

In the SwitchBot app, open your E-Ink device, go to Schedule, tap Sync, and paste in your new calendar URL. Then head into Screen Views, set that shared calendar to display, and save. From here on, every event from every family calendar shows up on the wall, clearly labelled with whose plan it actually is.

Was It Worth the Effort?

I won’t pretend all of this belongs in the box. SwitchBot could genuinely ship half of this as a proper feature rather than something you have to build yourself through an API. But credit where it’s due, the fact that the hardware and the API are open enough to let you build it yourself says a lot about the SwitchBot E-Ink Home Dashboard as a platform, even if the out-of-box software is a bit thin.

If you’ve only got twenty minutes, the buttons fix is the easiest win by far. The calendar merge takes longer to set up properly but it’s the one my family actually looks at every morning, so for me it was worth every bit of the fiddling.

Frequently Asked Questions

Do I need Home Assistant for all three fixes?

You need it for the custom API screen and the calendar merge. The button fix can technically be done in Apple Home instead, though I found Home Assistant gave me more control over what each press actually triggers.

Will this void my warranty or break the SwitchBot app?

No. Everything here uses SwitchBot’s own public API and official Developer Options menu. You’re not modifying the hardware or firmware, just talking to it the same way the app does.

How long does the custom screen take to update after I send a command?

In my experience, anywhere from a few minutes up to roughly an hour. E-Ink displays refresh slowly by design to save battery, so patience helps here.

Can I merge more than two or three calendars?

Yes, the script isn’t limited to a set number of calendars. Just add another entry in the configuration section at the top of the file for each additional person or calendar you want included.

Written by Mark's Tech Blogs

Reviews smart home tech hands-on, in his own house, before it goes on the channel.

Leave a comment