Reducing unnecessary heating by improving user awareness and control of heater usage, and enhancing comfort and efficiency with customized schedules.

The goal: not having to think about heating ever again.

What began as a simple quest to find the perfect moment to heat my bathroom in the morning quickly turned into a deep exploration of how we perceive temperature – and what we might expect from technology in the future. As I studied how heaters work, I discovered that while their design is impressively clever, there's still plenty of room to innovate. This is especially true when paired with modern advances like machine learning and AI-powered decision-making, areas that even today's smart heating solutions haven't fully tapped into yet.

Enjoying warmth can take many forms and is not inherently human.

To measure how quickly my bathroom heats up, I built a small sensor setup using an Arduino Uno and a temperature & humidity sensor, later adding an ESP8266 for wireless data transmission.
I logged real-time data to thingspeak.com and visualized temperature and humidity separately in two graphs, each spanning periods of 4 and 48 hours.
After about two weeks of data collection, I found that, on average, the bathroom warmed by roughly 1°C every two hours. Placing towels over the heater slowed heating time by approximately 30%.
Without any heating, the bathroom naturally stayed around 19°C, meaning it took about six hours to reach a comfortable 22°C.

Although humidity wasn't the main focus of this study, the data could offer valuable insights for future work, especially given humidity's role in how we perceive temperature.

Heaters and thermostats are already ingeniously designed, so why bother improving them? Here's what users shared about the problems they face.

First patented in 1895 by Warren Johnson as a "Heat Regulating Apparatus", the mechanical thermostat addressed a problem that still persists today. Thanks to its clever design, the fundamental functionality hasn't needed major changes in over a century. While the original mechanism stands as a timeless example of excellent engineering, today's adaptations haven't fully realized their potential yet.

When gathering user feedback about the current state of heaters, most complaints revolved around the lack of modern, data-driven technologies. People shared that heaters often run unnecessarily long. Why? Usually because there's no easy way to know exactly how long it takes to reach a desired temperature (for example, warming your bathroom in the morning), causing users to leave the heater running longer than needed. Sometimes it's as simple as human forgetfulness – "Did I turn off the heater?"

Another common frustration was the lack of visibility into heater status. Just knowing which heaters are currently on would boost awareness and significantly reduce unnecessary energy consumption. This would not only benefit the environment but also save money. Having the flexibility to independently control each room remotely further amplifies these benefits.

In short, users want to spend less time thinking about their heaters while still getting maximum comfort and efficiency.

To better understand what users actually need from a solution that offers more control over their heaters, I created user stories.

As a user...

Based on user feedback, user stories, and my own ideas, I then created a set of potential features.

  • Room Overview
    • Floor plan with temperatures
    • Floor plan options (floors, create plan)
    • Switch on/off all rooms
    • List of rooms with switches
  • Room View (detail)
    • Room temperature
    • Room switch
    • Routine configurator
    • Heating intervals
  • Routine Configurator
    • List of routines (select)
    • Routine editor
    • Routine options

Brainstorming potential features and arranging them based on their fit within the overall information architecture quickly provides a detailed vision of the final product. While I typically start with rough wireframes, I prefer this approach early on because it lets me add, remove, and rearrange features rapidly – essential at this stage, where ideas flow quickly and capturing them promptly matters most.

Ideate, Prototype, Test – Rinse & Repeat

The first very rough and quick sketches to get a very "top-view"-style feeling for how the app could look and navigate.
Usually I draw these just for myself although I sometimes use them to gather additional user and/or stakeholder feedback before heading into the next stage.

Clickable Prototype

Low-fidelity wireframes allow me to prototype features very quickly.
With the help of Figma or similar tools I can make them interactive and test the designs on real users.

In moderated testing-sessions I let the users solve given tasks while they are commenting on their experience with the product.
I record the process and look for pain points the user might be facing and iterate on them afterwards.

Finding a visual language and putting it all together.

A quick-reference sheet of the colors, fonts and icons used in the design.

Once the groundwork is set, I move into refining the visual details of the design. For this project, the design system revolves around a contrast between cool greys and warm orange tones. The orange shades highlight interface elements related to heating status or relevant actions. I chose Apercu as the typeface because it perfectly matches the clean, approachable aesthetic I aimed for. The icon set includes smaller icons, primarily used for action buttons, and larger icons that help users easily categorize their rooms.

The three main-screens visualized in their final form.

Exemplary navigation through the main screens of the app.

The Floor Plan

The first thing you see when opening the app is the floor plan, because this is where you control the essentials.
It gives you a visual overview of each room on your current floor, showing heating statuses and room temperatures. Tapping a room takes you to its detailed view, where you can fine-tune individual settings. If your home has multiple floors, just tap the "layer" button in the bottom-right corner to switch between them.

You can customize your floor plan by activating "architect mode" (the dividers icon, also bottom-right). This lets you add rooms, resize and move them around, and connect rooms by drawing bridging lines between them. I've illustrated the full process clearly in the wireframe.

To quickly control all heaters at once, there's a master switch to turn every heater on or off simultaneously. Below this master control, you'll find a handy list of individual rooms with their own switches. Tapping any of these rooms also opens its detailed view.


The Room View

The room view prominently shows the current temperature, visually complemented by animated waves symbolizing heat radiating from the radiator. These waves only appear when the heater is active. To the lower right of the temperature display is a button that takes you to the syntax editor, where you can set precise heating routines. Below the temperature, you'll find a simple on/off switch for the heater and some additional room temperature information.

In the lower section, you can manage heating schedules, setting intervals individually per day or for multiple days simultaneously.


The Syntax Editor

"Syntax Editor" might sound technical, but it's simply the area where you can easily create custom heating routines for any room. To build a routine, just drag and drop "syntax blocks" from the bottom of the screen into the workspace above. These blocks come in two types: conditional operators (shown in grey), and conditions (in orange) which define when a routine triggers. To add a new routine, tap the "new" button, and to view your existing routines, simply tap the downward-arrow next to a routine's name.


Conclusion

Giving users clear visibility into heater status and providing powerful yet simple routine-building tools can significantly reduce unnecessary energy use. At the same time, these improvements add convenience: rooms automatically reach desired temperatures exactly when needed, thanks to precise measuring and smart calculation of heating times.
The syntax editor mimics programming logic but stays user-friendly with its straightforward drag-and-drop interface – no coding experience required.

Next case study

Plant Irrigation System