Top Related Projects
:house_with_garden: Open source home automation that puts local control and privacy first.
Open source Home Automation System
:house: My Home Assistant configuration, a bit different that others :) Be sure to :star2: this repository for updates!
Low-code programming for event-driven applications
Quick Overview
ioBroker is an open-source IoT platform and smart home automation system. It provides a flexible and extensible framework for connecting various devices and services, allowing users to create custom automation scenarios and control their smart home environment.
Pros
- Highly customizable and extensible through a wide range of adapters
- Active community and regular updates
- Supports a variety of protocols and devices
- Free and open-source
Cons
- Steep learning curve for beginners
- Documentation can be inconsistent or outdated in some areas
- Setup and configuration can be complex for advanced scenarios
- Some adapters may have limited functionality or stability issues
Getting Started
To get started with ioBroker:
- Install Node.js (version 12 or later) on your system.
- Install ioBroker using npm:
npm install -g iobroker
- Initialize ioBroker:
iobroker setup
- Follow the setup wizard to configure your instance.
- Access the admin interface at
http://localhost:8081
to manage adapters and create automation rules.
For more detailed instructions, refer to the official documentation at https://www.iobroker.net/#en/documentation.
Competitor Comparisons
:house_with_garden: Open source home automation that puts local control and privacy first.
Pros of Home Assistant
- More active community with frequent updates and contributions
- Extensive ecosystem of integrations and add-ons
- User-friendly web interface and mobile app
Cons of Home Assistant
- Steeper learning curve for advanced configurations
- Higher resource requirements, especially for larger setups
Code Comparison
Home Assistant (Python):
class Light(ToggleEntity):
@property
def is_on(self):
return self._state
def turn_on(self, **kwargs):
self._state = True
self.schedule_update_ha_state()
ioBroker (JavaScript):
createState('myLight', false, {
name: 'My Light',
type: 'boolean',
role: 'switch'
});
on({id: 'myLight', change: 'ne'}, function (obj) {
console.log('Light state changed to: ' + obj.state.val);
});
Home Assistant uses a class-based approach with built-in entity types, while ioBroker relies on state creation and event-driven programming. Home Assistant's code is more object-oriented and abstracted, whereas ioBroker's code is more procedural and direct.
Open source Home Automation System
Pros of Domoticz
- Lightweight and efficient, suitable for running on low-power devices
- Extensive support for various hardware and protocols out-of-the-box
- User-friendly web interface for easy configuration and management
Cons of Domoticz
- Less flexible plugin system compared to ioBroker
- Smaller community and fewer third-party integrations
- Limited built-in visualization and dashboard options
Code Comparison
Domoticz (C++):
void CWebServer::Cmd_AddHardware(WebEmSession & session, const request& req, Json::Value &root)
{
if (session.rights != 2)
{
session.reply_status = reply::forbidden;
return; //Only admin user allowed
}
// ... (additional code)
}
ioBroker (JavaScript):
function createStateObject(id, name, type, role) {
adapter.setObjectNotExists(id, {
type: 'state',
common: {
name: name,
type: type,
role: role,
read: true,
write: true
},
native: {}
});
}
Both projects have different approaches to handling hardware and state management, reflecting their architectural differences. Domoticz uses C++ for core functionality, while ioBroker relies on JavaScript for its adapter system.
:house: My Home Assistant configuration, a bit different that others :) Be sure to :star2: this repository for updates!
Pros of home-assistant-config
- More focused on home automation and smart home devices
- Extensive documentation and community support
- Highly customizable with a wide range of integrations
Cons of home-assistant-config
- Steeper learning curve for beginners
- Requires more manual configuration compared to ioBroker
- May have higher resource requirements for complex setups
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: light.living_room
ioBroker:
on({id: 'hm-rpc.0.MEQ1234567.1.MOTION', change: 'ne'}, function (obj) {
if (obj.state.val) {
setState('hue.0.living_room.light', true);
}
});
Both examples show how to trigger a light when motion is detected, but home-assistant-config uses YAML configuration, while ioBroker uses JavaScript for scripting.
Low-code programming for event-driven applications
Pros of Node-RED
- Visual programming approach with a flow-based interface
- Extensive library of pre-built nodes for various integrations
- Active community with a large number of contributed nodes
Cons of Node-RED
- Steeper learning curve for complex automation scenarios
- Less comprehensive out-of-the-box device support compared to ioBroker
- May require more manual configuration for certain integrations
Code Comparison
Node-RED flow example:
[
{
"id": "f6f2187d.f17ca8",
"type": "inject",
"z": "2795455.f76c0ca",
"name": "",
"topic": "",
"payload": "",
"payloadType": "date",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 110,
"y": 80,
"wires": [["1b1f4e.6f0c9f2"]]
}
]
ioBroker script example:
createState('mySwitch', false, {
name: 'My Switch',
type: 'boolean',
role: 'switch'
});
on({id: 'mySwitch', change: 'any'}, function (obj) {
console.log('Switch state changed to ' + obj.state.val);
});
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
ioBroker (windows installer)
Automate your life!
To install on Linux, just run: npx @iobroker/install
To install on Windows: mkdir C:\iobroker && cd C:\iobroker && npx @iobroker/install
or use installer
See ioBroker documentation for more information
ioBroker is an integration platform for the Internet of Things, focused on Building Automation, Smart Metering, Ambient Assisted Living, Process Automation, Visualization and Data Logging.
Concept
ioBroker is not just an application, it's more of a concept and a database schema. It offers a very easy way for systems to interoperate. ioBroker defines some common rules for a pair of databases used to exchange data and publish events between different systems.
Databases
ioBroker uses "in memory" database to hold the data and saves it on disk with reasonable intervals. There are two types of storage:
- objects (meta/configuration information)
- states (values)
Objects and states can be stored in "in memory" or in Redis.
Redis is an in-memory key-value data store and also a message broker with publish/subscribe pattern.
It's used to maintain and publish all states of connected systems.
Adapters
Systems are attached to ioBrokers databases via so-called adapters, technically processes running anywhere in the network and connecting all kinds of systems to ioBrokers databases. A connection to ioBrokers databases can be implemented in nearly any programming language on nearly any platform, and an adapter can run on any host that is able to reach the databases via ip networking.
See the actual list of adapters on iobroker.net
Security
ioBroker is designed to be accessed by trusted adapters inside trusted networks. This means that usually it is not a good idea to expose the ioBroker databases, adapters or any smart home devices directly to the internet or, in general, to an environment where untrusted clients can directly access these network services. Adapters that offer services supposed to be exposed to the internet should be handled with care. You should always activate HTTPS and use valid certificates for web, admin if open it for internet or for example, use it with additional security measures like VPN, VLAN and reverse proxies.
Getting Started
Operating System and Hardware
ioBroker.js-controller should run on any hardware and OS that runs Node.js (ARM, x86, Windows, Linux, OSX).
ioBroker spawns a new Node.js process for every adapter instance, so RAM becomes a limiting factor. A single adapter's memory fingerprint is roundabout 10 to 60 MB.
Installation and first steps
Community support
- Get help in the ioBroker Forums (english, german and russian languages)
Logos and pictures
All logos are protected by copyright and may not be used without permission.
Please request permission via info@iobroker.net
License
This module is distributor under the MIT License (MIT). Please notice that other ioBroker adapters can have different licenses.
The MIT License (MIT)
Copyright (c) 2014-2024 bluefox dogafox@gmail.com, Copyright (c) 2014 hobbyquaker
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Top Related Projects
:house_with_garden: Open source home automation that puts local control and privacy first.
Open source Home Automation System
:house: My Home Assistant configuration, a bit different that others :) Be sure to :star2: this repository for updates!
Low-code programming for event-driven applications
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot