Get a Free Quote
Expanice helped a home automation startup create a complete software suite for managing smart curtain devices while optimizing cloud infrastructure costs by 66%.

Smart Home Case Study: How We Created a Smart Curtains Solution

Project Details

Technology stack

Team composition

Project duration

4,000 hours/200 weeks (ongoing)

Methodology & engagement model

Agile (Scrum), Time and Materials (T&M)

Customer’s Product

A smart home startup based in Western Europe created a retrofit IoT kit for curtain rods and tracks.

The smart curtains solution, which is operated via a dedicated mobile app, sets curtains in motion by winding and unwinding a rope attached to it.

Using the smart controller, homeowners can open and close curtains based on a custom schedule or the intensity of natural light and group devices within the same household.

Another handy feature is holiday mode: when a user is away, there is a possibility of configuring the motorized smart curtains to open and close at random times within a specified range, creating an illusion someone is home.

The smart curtains system also incorporates a web-based admin console, enabling the client to configure and troubleshoot devices and enforce over-the-air (OTA) firmware updates. With this web application, end users can also invite family members to join the household or remove user accounts.

What We Did

The client initially tapped into our IoT software development services to create a back-end infrastructure and admin console for the IoT device orchestration. Should the original project scope have remained intact, this smart home case study would have been another story altogether.

But our deep expertise, strong work ethic, and unmatched flexibility lead to the client tasking us with developing firmware, a flashing station, and a cross-platform mobile application for the automated smart curtains.

Smart Curtains Solution Components

The Expanice team designed a complete software infrastructure supporting the smart curtain solution's seamless operation

The smart curtains system features three major components: physical devices with custom firmware, a cross-platform mobile application, and back-end infrastructure based on AWS IoT Core





Services icon

Tap into our IoT software development services to move your project forward

Contact us

Challenges We Navigated

When developing the smart curtain solution management software, the Expanice team had to address several prominent challenges. These included optimizing cloud infrastructure costs and enforcing a remote quality control mechanism, among others.

From ensuring remote quality control at the hardware manufacturing facility to reducing cloud infrastructure costs, there’s a number of challenges we solved when developing bringing the smart curtain solution concept to life.

Overriding an Operating System Bug

Our client chose Mongoose OS as the primary operating system for the low-power, low-memory smart curtain control devices.

The OS contained a documented bug, which, although patched, affected the device performance. When the controller simultaneously received two commands — i.e., change the smart curtains’ position and report its location to the server — the operating system randomly performed just one of them.

The issue became prominent as the automated smart curtains user base was growing. To override it without changing the OS’s core functionality, we implemented a Go-written API, creating a command queue for every device within the ecosystem.

Enforcing Remote Quality Control with a Cloud-Connected Flashing Station

One of this smart home case study’s most challenging parts was to ensure impeccable smart curtains system performance without laying our hands on physical devices.

The client contracted a Chinese hardware manufacturing company to produce the curtain controllers. Based in Eastern Europe, the Expanice team had to connect to the IoT devices remotely. Because of the firewall, the factory could not guarantee a stable internet connection. This complicated the firmware flashing and device testing process and prevented us from timely spotting mistakes made by the factory workers.

To validate that flawed devices will not reach end users, we created a flashing station that allows non-technical workers to upload a firmware image to the smart curtains controllers by hitting a single button.

The station produces detailed logs documenting every operation performed to the device and automatically synchronizes with the cloud once the internet is available. The system also helps upgrade devices to the latest firmware version, which is done asynchronously once we upload a new build to the cloud.

The custom-built flashing station is instrumental in detecting faulty devices and motors, too. Occasionally, the motors that set the motorized smart curtains in motion fail after several thousand open/close cycles. To avoid that scenario, we randomly select devices for extensive testing, performing up to ten thousand cycles and reviewing device status logs.

Optimizing Cloud Infrastructure Costs

When working on the smart curtains system architecture, we took the steps to optimize infrastructure expenses should our client’s user base grow. For this, our cloud engineers programmed the solution to use spot instances (AWS EC2) rather than ordinary ones. We further set up an automatic deployment mechanism transferring the infrastructure to vacant AWS instances in mere minutes.

Additional cost savings come from smart curtains device status data caching enabled through Amazon ElastiCache. By configuring the system to send status data to the cloud every two hours, the Expanice team helped the customer reduce AWS infrastructure expenses by 66%.

What’s Next

The Expanice team continues working on the smart curtain solution, helping the customer enable new features and fine-tune the solution's performance

The Expanice team continues working on the smart curtain solution, enabling new features and helping the client deliver superior user experience to the growing user base.

As of December 2022, we’re working on the firmware updates, addressing the technical debt and introducing new features, such as local mode. Our client has also expressed the desire to sync the smart curtains with HomeKit, which could open new market opportunities for the IoT solution.

If you’re wondering how to build a smart curtain mover from the ground up or struggling with another smart home project, get in touch with the Expanice team! As an IoT company with 13+ years of experience, we know how to navigate most custom IoT product development challenges and build the Internet of Things solutions on time, on budget, and in line with your technical and business requirements.