Getting Started with HomeOps: Shell Setup and First Devices
Every HomeOps deployment begins with a single ESP32 board and a few minutes of setup. Unlike cloud-based platforms that require creating accounts, linking subscriptions, and granting permissions to external services, HomeOps starts locally and stays local. This guide walks you through flashing the HomeOps shell firmware onto an ESP32, connecting to your WiFi network, bringing up the MQTT broker, registering your first devices, and taking your initial look at the dashboard. By the end, you will have a functioning local smart home hub ready to expand.
Flashing the HomeOps Shell and Connecting to WiFi
The HomeOps shell is the core firmware that transforms a standard ESP32 development board into your smart home controller. To flash it, you will need an ESP32-WROOM-32 or ESP32-S3 board, a USB cable, and a computer with the HomeOps flash tool installed. The flash tool is a lightweight command-line utility that writes the shell firmware to the ESP32's flash memory. Connect the board via USB, run the flash command, and the tool handles partition layout, bootloader installation, and firmware writing automatically.
Once the shell firmware is running, the ESP32 broadcasts a temporary WiFi access point named "HomeOps-Setup." Connect to this network from your phone or laptop and a captive portal opens in your browser. Here you enter your home WiFi credentials, set a hostname for the controller, and choose a static IP address or DHCP reservation. After saving these settings, the ESP32 reboots, joins your home network, and the setup access point disappears. You can now reach the HomeOps dashboard by navigating to the controller's IP address in any browser on your network.
MQTT Broker Setup and Adding First Devices
HomeOps relies on MQTT for all device communication, and the shell firmware includes a built-in lightweight MQTT broker. On first boot after WiFi configuration, the broker starts automatically and listens on port 1883. If you prefer to run a dedicated broker like Mosquitto on a separate machine such as a Raspberry Pi or a NAS, the dashboard settings page lets you point HomeOps to an external broker address instead.
Adding devices to HomeOps is straightforward. Each device, whether it is a temperature sensor, a smart plug, or a light controller, runs its own ESP32 with a device-specific firmware image. When you flash a device node, you provide it with the MQTT broker address and a unique device identifier. On power-up, the device connects to the broker and publishes a discovery message on the homeops/discovery topic. The HomeOps shell picks up this message and presents the new device in the dashboard's device management panel. From there, you assign it a friendly name, choose a room, and configure any device-specific settings such as sensor polling intervals or relay default states.
For users who already own Tasmota or ESPHome devices, HomeOps supports importing those devices through MQTT topic mapping. You configure the existing device's MQTT topics to align with the HomeOps topic structure, or use the topic translation feature in the dashboard to bridge the naming conventions. This means you do not need to reflash existing hardware to bring it into the HomeOps ecosystem.
Dashboard First Look
With your controller running and at least one device registered, the dashboard comes alive. The default view shows a single tab labeled "Home" with a summary widget displaying the controller's status, network information, and connected device count. As you add devices, the dashboard automatically suggests widgets based on device type. A temperature sensor gets a gauge widget. A smart plug gets a toggle widget with a power reading. A light gets a dimmer slider with color controls.
You can rearrange widgets by dragging them on the grid, resize them, and create additional tabs to organize by room or function. The dashboard is fully responsive, so the layout adapts whether you are viewing on a desktop monitor, a tablet mounted on the wall, or your phone while away from your desk. All data flows through MQTT, so widget updates happen in real time with no page refreshes needed.
Tip: Assign a static IP or DHCP reservation to your HomeOps controller before adding devices. This ensures the MQTT broker address never changes, preventing devices from losing their connection after a router reboot.
What's Next
With the shell flashed, WiFi configured, the MQTT broker running, and your first devices registered, you have a solid foundation to build on. The next steps involve organizing your dashboard with tabs and widgets, setting up automation routines to make devices work together, and exploring advanced features like voice control and energy monitoring. Each of these topics gets its own deep-dive post in this series, so you can expand your HomeOps deployment at your own pace, one subsystem at a time.