Think beyond the "Smart Home"
HomeGenie is not just a smart home hub; it is a general-purpose automation engine.
At its core, HomeGenie is a powerful router for signals. It takes raw data from sensors, switches, and web services, and gives you the tools to shape that data into anything you can imagine. By combining Automation Programs and UI Widgets, you can transform HomeGenie into:
- A professional Smart Home Server.
- A precision Industrial Controller.
- A custom Smart Thermostat.
- Or even the brain of a Robot 🤖.
You don't just "use" HomeGenie; you build with it.
AI-Assisted Development
The barrier to entry has never been lower. With the integrated AI Widget Genie, you have a senior developer standing by.
Instead of memorizing APIs, you can simply describe your logic or UI in plain English. The Genie will generate the C#, JavaScript, or Python code for you, and the Widget Wizard will deploy it to your system with a single click. It even features a Self-Healing loop that automatically fixes compilation errors.
How it works: Programmable Features
Everything in HomeGenie is a program. To add a feature, you simply write it.
Let's say you want to add a "Blink" option to all your lights. You create a program that adds a checkbox to the device settings:
// Setup
Program.AddOption("Feature.Blink.Enable", "false", "Blink every 0.5s", "checkbox");
Program.Run();Then, you implement the logic in the Main block to toggle all devices that have that checkbox active:
// Main
while (Program.IsRunning) {
Modules.WithFeature("Feature.Blink.Enable").Toggle();
Pause(0.5);
}Universal API: A Common Language
HomeGenie treats every device, service, or script as a Module. Whether it's a ZigBee bulb, a Python script, or a virtual weather service, they all speak the same language.
Status.Level or Sensor.Temperature, regardless of the underlying protocol.Integrating a custom component, like a DHT-22 sensor, is just a matter of "emitting" data to a module:
// Add a virtual sensor module
Program.AddModule("Components.DHT22", "1", "Sensor");
var sensor = Modules.InDomain("Components.DHT22").WithAddress("1").Get();
// Emit the values to the system
sensor.Emit("Sensor.Humidity", 65);
sensor.Emit("Sensor.Temperature", 22.5);Once emitted, this data is automatically available for logging, real-time charts, and UI widgets.
UI Customization
While HomeGenie comes with a set of professional built-in widgets, the Widget Editor allows you to build completely custom interfaces using HTML, CSS, and JavaScript (zuix.js).
From a simple toggle button to a complex 3D floor plan, the UI is yours to design.

Next Steps
Ready to start building?
- Explore Custom Widgets to design your UI.
- Dive into Automation Programs to write your logic.