The connected experience: responsive and synchronized in real time.
The mobile app — built with Expo / React Native — provides a direct bridge to the physical product. The interface combines live telemetry (rotational speed in rpm, estimated power draw in watts), stepless tactile dial control, and guided device setup.
The software architecture prioritizes hardware reliability: direct communication over WebSocket and a secure MQTT broker, seamless Home Assistant integration, and continuous synchronization between app commands and the fan's physical knob.
Learn more — click a sub-step
01Fluid UI and real-time feedback
The interface is engineered for instantaneous tactile response. The radial dial drives the motor smoothly without stepped jumps, streaming smoothed setpoints to the FOC driver to eliminate acoustic thumps and abrupt speed shifts.
The dashboard displays live product telemetry: rotational speed measured by the ESP32 and estimated power consumption computed from the motor setpoint. The app includes dark and light themes, native bilingual support, and accessibility standards compliance.
02Frictionless onboarding
Onboarding bypasses the usual friction of smart home gadgets through clear role separation: Bluetooth Low Energy is used strictly for initial proximity discovery when first powered on.
The ESP32 itself scans available local Wi-Fi networks and relays the list to the smartphone via BLE notification. Once the network key is delivered and verified, the fan acquires its local IP address and migrates all communication to the local network.
03MQTT architecture and security
Communication relies on the MQTT protocol at QoS 1, ensuring reliable command delivery. Each device is assigned dedicated credentials and topics (status and command), isolated through Mosquitto broker access control lists (ACLs).
The MQTT Last Will and Testament (LWT) mechanism immediately flags any accidental power loss or unplugging, keeping the app's state strictly synchronized at all times.
04Dual control and state synchronization
The fan pairs physical and digital control without conflict: whether turning the base knob or sliding the on-screen dial, the microcontroller accepts the latest setpoint and executes a smooth acceleration ramp. The app updates its dial in real time to reflect physical adjustments.
Every state change is broadcast instantaneously over the secure MQTT broker, guaranteeing tight consistency across mobile UI displays, smart home automations, and actual motor speed.
05Open smart home integration
Thanks to standard MQTT and automatic discovery metadata (MQTT Discovery), the fan is recognized out of the box by open home automation hubs such as Home Assistant as soon as it joins the network.
It surfaces as a standard fan entity alongside rpm telemetry and estimated power draw. Users can incorporate it immediately into comfort automations (cooling triggers based on room temperature, scheduled night shut-off) without proprietary bridges.