Convert Figma logo to code with AI

domoticz logodomoticz

Open source Home Automation System

3,486
1,124
3,486
92

Top Related Projects

72,598

:house_with_garden: Open source home automation that puts local control and privacy first.

Automate your life!

:house: My Home Assistant configuration, a bit different that others :) Be sure to :star2: this repository for updates!

HomeKit support for the impatient.

Add-ons for openHAB 1.x

Quick Overview

Domoticz is an open-source Home Automation System that lets you monitor and configure various devices like lights, switches, various sensors/meters (temperature, humidity, wind, UV, electricity, gas, water), and much more. It's designed to be lightweight and run on various hardware platforms, including Raspberry Pi.

Pros

  • Cross-platform compatibility (Windows, Linux, macOS)
  • Supports a wide range of devices and protocols
  • Highly customizable with scripts and plugins
  • Active community and regular updates

Cons

  • Steep learning curve for beginners
  • User interface can be outdated and less intuitive compared to modern alternatives
  • Limited native cloud integration options
  • Documentation can be inconsistent or outdated in some areas

Getting Started

To get started with Domoticz:

  1. Download the appropriate version for your system from the Domoticz website.
  2. Install and run Domoticz.
  3. Access the web interface by opening a browser and navigating to http://localhost:8080 (or your device's IP address).
  4. Start adding your devices and configuring your automation rules.

For Raspberry Pi users, you can install Domoticz using the following commands:

curl -L install.domoticz.com | bash

After installation, you can start Domoticz with:

sudo service domoticz.sh start

For more detailed instructions and configuration options, refer to the Domoticz wiki.

Competitor Comparisons

72,598

:house_with_garden: Open source home automation that puts local control and privacy first.

Pros of Home Assistant

  • Larger and more active community, resulting in more frequent updates and integrations
  • More extensive documentation and tutorials for users and developers
  • Supports a wider range of devices and services out-of-the-box

Cons of Home Assistant

  • Steeper learning curve, especially for non-technical users
  • Higher system requirements, which may impact performance on low-power devices

Code Comparison

Home Assistant (Python):

class LightEntity(ToggleEntity):
    @property
    def brightness(self):
        """Return the brightness of this light between 0..255."""
        return None

    @property
    def color_temp(self):
        """Return the CT color value in mireds."""
        return None

Domoticz (C++):

class CDomoticzHardwareBase
{
public:
    virtual void WriteToHardware(const char *pdata, const unsigned char length) = 0;
    virtual bool WriteToHardware(const char *pdata, const unsigned char length, const int repeatCount) { return false; };
};

Both projects use object-oriented programming, but Home Assistant's Python code tends to be more readable and concise. Domoticz's C++ implementation may offer better performance in some scenarios but can be more complex to work with.

Automate your life!

Pros of ioBroker

  • More extensive plugin ecosystem with a wider range of integrations
  • Highly modular architecture allowing for easier customization
  • Better support for complex automation scenarios

Cons of ioBroker

  • Steeper learning curve, especially for beginners
  • Less polished user interface compared to Domoticz
  • Higher system requirements due to its JavaScript-based architecture

Code Comparison

ioBroker (JavaScript):

on({id: 'hue.0.living_room.light', change: 'ne'}, function (obj) {
    if (obj.state.val) {
        setState('sonos.0.living_room.play', true);
    } else {
        setState('sonos.0.living_room.pause', true);
    }
});

Domoticz (Lua):

commandArray = {}
if (devicechanged['Living Room Light'] == 'On') then
    commandArray['Sonos Living Room Play'] = 'On'
elseif (devicechanged['Living Room Light'] == 'Off') then
    commandArray['Sonos Living Room Pause'] = 'On'
end
return commandArray

Both ioBroker and Domoticz are popular home automation platforms, but they cater to different user needs. ioBroker offers more flexibility and extensibility, making it suitable for advanced users and complex setups. Domoticz, on the other hand, provides a more user-friendly experience and is generally easier to set up for beginners. The code comparison showcases the different approaches to scripting in each platform, with ioBroker using JavaScript and Domoticz using Lua.

:house: My Home Assistant configuration, a bit different that others :) Be sure to :star2: this repository for updates!

Pros of Home Assistant Config

  • More extensive and detailed configuration examples
  • Regularly updated with new integrations and automations
  • Better documentation and explanations within the config files

Cons of Home Assistant Config

  • Specific to one user's setup, may not be universally applicable
  • Requires more manual configuration compared to Domoticz's GUI-based approach

Code Comparison

Home Assistant Config:

automation:
  - alias: "Turn on lights when motion detected"
    trigger:
      platform: state
      entity_id: binary_sensor.motion_sensor
      to: 'on'
    action:
      service: light.turn_on
      entity_id: group.living_room_lights

Domoticz:

void CPlugin::onMQTTMessage(const std::string &topic, const std::string &message)
{
    if (topic == "motion/sensor")
    {
        if (message == "on")
        {
            m_sql.safe_query("UPDATE DeviceStatus SET nValue=%d, sValue='%q' WHERE (HardwareID==%d) AND (DeviceID=='%q')", 1, "On", m_HwdID, "LivingRoomLights");
        }
    }
}

The Home Assistant config uses a more declarative YAML format, while Domoticz relies on C++ code for similar functionality. Home Assistant's approach is generally more user-friendly for those without programming experience.

HomeKit support for the impatient.

Pros of Homebridge

  • Focused on integrating non-HomeKit devices into Apple's HomeKit ecosystem
  • Large community with extensive plugin support for various devices
  • Easier setup and configuration for users familiar with Apple products

Cons of Homebridge

  • Limited to HomeKit integration, less versatile for other smart home platforms
  • Requires a dedicated always-on device (e.g., Raspberry Pi) to run
  • May have performance issues with a large number of devices

Code Comparison

Homebridge (JavaScript):

class ExampleAccessory {
  getServices() {
    const informationService = new Service.AccessoryInformation();
    informationService
      .setCharacteristic(Characteristic.Manufacturer, "Example Manufacturer")
      .setCharacteristic(Characteristic.Model, "Example Model");

    const switchService = new Service.Switch("Example Switch");
    switchService.getCharacteristic(Characteristic.On)
      .on('get', this.getOnHandler.bind(this))
      .on('set', this.setOnHandler.bind(this));

    return [informationService, switchService];
  }
}

Domoticz (C++):

bool CDomoticzHardwareBase::WriteToHardware(const char *pdata, const unsigned char length)
{
    if (!m_bEnableReceive)
        return false;
    if (!pdata)
        return false;
    if (length < 1)
        return false;
    return true;
}

Add-ons for openHAB 1.x

Pros of openhab1-addons

  • More extensive ecosystem of add-ons and integrations
  • Highly flexible and customizable architecture
  • Strong community support and active development

Cons of openhab1-addons

  • Steeper learning curve for beginners
  • More complex setup and configuration process
  • Potentially higher resource usage due to Java runtime

Code Comparison

openhab1-addons (Java):

public class ZWaveNode implements Comparable<ZWaveNode> {
    private final ZWaveController controller;
    private final int nodeId;
    private String name = "";
    private int homeId = 0;
    private NodeStage nodeStage = NodeStage.UNKNOWN;
}

Domoticz (C++):

class CDomoticzHardwareBase
{
public:
    CDomoticzHardwareBase();
    virtual ~CDomoticzHardwareBase();
    virtual bool WriteToHardware(const char *pdata, const unsigned char length) = 0;
    virtual void WriteToLog(const char *szMessage);
};

The code snippets showcase the different programming languages used in each project. openhab1-addons is written in Java, while Domoticz is primarily written in C++. This difference affects the development process, performance characteristics, and the types of developers attracted to each project.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Domoticz

Domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device

Multi platform: Linux/Windows/Embedded Devices

This system is designed to operate in various operating systems. The user-interface is a scalable HTML5 web frontend, and is automatically adapted for Desktop and Mobile Devices. Compatible with all recent browsers

Some Information

  • Hardware: RFXCOM Transceiver, Zigbee, Z-Wave, P1 Smart Meter, YouLess Meter, Pulse Counters, 1-Wire, Philips Hue and a lot more....
  • Extended logging
  • iPhone / Android / Windows 10 (Phone & Desktop) push notifications
  • Auto learning sensors/switches
  • Manual creation of switch codes
  • Share / Use external devices
  • Designed for simplicity

Support

By default Domoticz is protected by a username (admin) and password (domoticz).

Please either change the password as soon as possible or create a different admin user and remove the default (admin) user.

More information on securing your Domoticz setup can be found in the SECURITY SETUP documentation.

Your first place for support is the Domoticz Forum

The Github issue tracker is NOT for end-user support.

Security issues

See the Security file for more information.

Donations

Donations are more than welcome and will be used to buy new hardware, devices, sensors, hosting and coffee. If you like the product or encourage the development, please use the link:

paypal

More information

Build Status

StatusOperating system
Status LinuxLinux x86_64
Status WindowsWindows