Motorized curtains and blinds are seemingly simple IoT devices: two commands (open/close) and a position range of 0–100%. But this simplicity is deceptive. Without a proper architecture, users face false states (actual position unknown) or delays of several seconds. We, a team with over 50 IoT projects, solve these problems at the protocol and UX levels: from choosing between Somfy RTS and Matter to synchronization via MQTT with a Mosquitto broker. We'll cover the key pitfalls: lack of feedback in Somfy RTS, curtain animation in Flutter, and Matter integration.
What types of curtains and protocols do we support?
| Protocol | Communication type | Features | Example devices |
|---|---|---|---|
| Somfy RTS | One-way (radio) | No feedback, needs optimistic UI | Somfy RTS motors |
| Somfy TaHoma | Two-way (API) | REST API, commands via cloud hub | Somfy Connexoon |
| Zigbee | Two-way (local) | Via Zigbee2MQTT or hub, position 0–100% | IKEA TRÅDFRI |
| Tuya | Cloud/local | Tuya Open API, percent_control | Chinese brands |
| Matter | Two-way (Wi-Fi/Thread) | Standard, SDK for iOS and Android | New devices |
How to avoid feedback issues with Somfy RTS?
Somfy RTS is a classic without reported state. You send a 'close' command – how do you know the result? We use an optimistic UI: the state updates instantly after sending the command, and the closing animation visualizes the process. If accuracy is required, we connect external sensors (accelerometers) via MQTT. This is more expensive but gives 100% feedback. In 90% of projects, we choose the first option with a warning to the user about possible desynchronization.
Integration method comparison
| Method | Latency | Reliability | Implementation cost |
|---|---|---|---|
| Local MQTT | <100 ms | High | Medium |
| Cloud API | 200–500 ms | Medium | Low |
| Somfy TaHoma | 500 ms – 2 s | Medium | High |
UI for curtain control: animation and slider
Real-time visualization of the curtain position is a key UI element. For example, in Flutter we use a custom widget: AnimatedContainer + ClipRect. The curtain rectangle animates from full size (closed) to zero (open) via AnimationController. When a new value arrives via MQTT, we call animateTo(newPosition / 100) with a duration of ~500 ms.
Position slider: debounce commands, similar to dimmers. Somfy TaHoma accepts no more than 1 command per 2 seconds – with fast slider movement, we send only every 2nd second plus the final value on onChangeEnd. This reduces API load and prevents errors.
Scenes and scheduling
'Morning wake-up' – curtains open at 7:30 gradually over 5 minutes. For Zigbee/Tuya: a backend service sends commands via cron with increasing position values. Sun sensor reaction: if illuminance > 50000 lux, lower southern blinds to 30%. Aqara sensor → MQTT → backend automation → motor command. The mobile app configures the rule, execution is on the server. This automation can save up to 20% on heating and 30% of time on routine operations.
Matter 1.3 standard includes support for curtain control with feedback.
How do we develop a smart home app?
- Analysis: study your devices (Somfy, IKEA, Tuya) and APIs, document scenarios.
- Design: prototype UI with curtain animation, network architecture (MQTT/HTTP/WebSocket).
- Implementation: code in Swift/Kotlin/Flutter, integrate with each protocol, test on actual motors.
- Testing: verify operation without feedback, slider stability, scenarios. Typically 2–3 iterations.
- Deployment: upload to App Store and Google Play, configure provisioning profiles, TestFlight.
What's included in the work?
- Source code of the app;
- Integration with your devices (up to 3 protocol types);
- API documentation (Swagger) and operation manual;
- 30 days of technical support after release.
Why choose our team?
- 5+ years of experience in mobile IoT development.
- Over 50 projects in curtain, lighting, and climate automation.
- Certified Apple and Android engineers.
- Compliance with App Store Review Guidelines and data security.
Timelines and cost
Timelines depend on complexity: a basic app (one protocol, control and scheduling) – from 3 to 5 weeks. A complex system with Somfy TaHoma, multi-vendor support, and scenes – 8 to 12 weeks. Cost is calculated individually after analyzing your device set. Request a preliminary assessment – contact us.
For in-depth understanding of the Matter standard, we recommend the official CSA documentation.







