Creasol DomBus12 is a compact module, 40x30x11mm, with 9 configurable inputs/outputs.
It can be connected to the Domoticz controller by a RS485 serial bus (4 wires, 2 for 12/24V power supply, and 2 for data at 115200bps).

As other DomBus devices, DomBus12 is designed to consume low power, be reliable, fully configurable and easy to use. Each port is fully configurable, e.g. as analog or digital input, twinbutton (double button), counter, buzzer,  NTC 10k, ... 2 ports may be used as open-drain output, to activate 2 external relays or LEDs.


Creasol DomBus12 module for domoticz home automation system, with 9 configurable GPIOCreasol DomBus12 - Input module for Domoticz home automation system


Input module for Domoticz, with 13 wires disconnectable cable


  • 4 configurable I/Os, each one can be set as analog/digital input, twinbutton input, counter, digital output (can be connected to external relay board within relay driver)
  • 2 configurable I/Os, each one can be set as open-drain output (to be connected to external relay), blind output (to be connected to external relay), low power LED dimmer, analog/digital input: to set IO5 and/or IO6 as input the PCB jumper ROx must be opened (using a cutter) and RIx must be shorted (with a solder ball).
  • 3 configurable I/Os, each one can be set as analog/digital inputs, counter, buzzer outputs, blind outputs (to be connected to external relay board), LED strip dimmer (to be connected to external mosfet)
  • 7.5-35Vdc power supply (internally regulated by a switching mode power supply circuitry that minimize power consumption and dissipation)
  • low power consumption: 0.7mA stand-by current at 12V (10mW)
  • 115200 bps RS485 bus (max length: 1km)


  • Do not connect high voltage sources or loads to the DomBus12 wires: this device is designed to work with low voltage I/Os.
  • Use a 4 wires shielded cable for the bus, using two lines to feed power supply (12 or 24Vdc) protected by a fuse.
  • To reduce noise and reflections on the bus, enable the termination resistor (shorting Rbus PCB jumper) on the two furthest ends of the bus.


DomBus12 Ports capabilities

Default address: 0xff12

Port# Name Capabilities Default configuration Description
1 IO IN_DIGITAL, IN_ANALOG, IN_TWINBUTTON, IN_COUNTER, OUT_DIGITAL IN_TWINBUTTON Input, with optional pullup (pcb jumper). Can be used also for NTC thermistor. If connected to a single pushbutton switch or an alarm sensor, the common is GND (when switch is ON, it have to short the port to GND).
2 IO2 IN_DIGITAL, IN_ANALOG, IN_TWINBUTTON, IN_COUNTER, OUT_DIGITAL IN_TWINBUTTON Input, with optional pullup (pcb jumper). Can be used also for NTC thermistor. If connected to a single pushbutton switch or an alarm sensor, the common is GND (when switch is ON, it have to short the port to GND).
3 IO3 IN_DIGITAL, IN_ANALOG, IN_TWINBUTTON, IN_COUNTER, OUT_DIGITAL IN_TWINBUTTON Input, with optional pullup (pcb jumper). Can be used also for NTC thermistor. If connected to a single pushbutton switch or an alarm sensor, the common is GND (when switch is ON, it have to short the port to GND).

Input, with optional pullup (pcb jumper). Can be used also for NTC thermistor. If connected to a single pushbutton switch or an alarm sensor, the common is GND (when switch is ON, it have to short the port to GND).

5 IO5 IN_DIGITAL, IN_ANALOG, OUT_DIGITAL, OUT_RELAY_LP, OUT_BLIND, OUT_DIMMER OUT_DIGITAL Open-drain output, 40V 100mA capability, suitable to be connected to an external relay coil, small led strip, other electronic device inputs that are active when shorted to GND, ... This kind of port is able only to pull down the output, to GND, and have a varistor protecting output from going above 38-40V.
It's designed to be connected to the DomRelay2 module (2 relay outputs)
With 2 pcb jumpers it's possibile to bypass mosfet and use this port as normal input/output.
6 IO6 IN_DIGITAL, IN_ANALOG, OUT_DIGITAL, OUT_RELAY_LP, OUT_BLIND, OUT_DIMMER OUT_DIGITAL Open-drain output, 40V 100mA capability, suitable to be connected to an external relay coil, small led strip, other electronic device inputs that are active when shorted to GND, ... This kind of port is able only to pull down the output, to GND, and have a varistor protecting output from going above 38-40V.
It's designed to be connected to the DomRelay2 module (2 relay outputs)
With 2 pcb jumpers it's possibile to bypass mosfet and use this port as normal input/output.
7 IO7 IN_DIGITAL, IN_ANALOG, IN_COUNTER, OUT_DIGITAL,  OUT_BLIND, OUT_DIMMER IN_DIGITAL Input, with optional 150 ohm resistor that can be enabled by pcb jumper to drive external buzzer or relay board within relay driver. If connected to a single pushbutton switch or alarm sensor, the common is GND (when switch is ON, it have to short the port to GND).
8 IO8 IN_DIGITAL, IN_ANALOG, IN_COUNTER, OUT_DIGITAL,  OUT_BLIND, OUT_DIMMER, OUT_BUZZER IN_DIGITAL Input, with optional 150 ohm resistor that can be enabled by pcb jumper to drive external buzzer or relay board within relay driver. If connected to a single pushbutton switch or alarm sensor, the common is GND (when switch is ON, it have to short the port to GND).
9 IO9 IN_DIGITAL, IN_ANALOG, IN_COUNTER, OUT_DIGITAL,  OUT_BLIND, OUT_DIMMER, OUT_BUZZER IN_DIGITAL Input, with optional 150 ohm resistor that can be enabled by pcb jumper to drive external buzzer or relay board within relay driver. If connected to a single pushbutton switch or alarm sensor, the common is GND (when switch is ON, it have to short the port to GND).

(1): can be used as BLIND output, to open a blind/curtain, but only the previous port can be configured in Domoticz as OUT_BLIND because, when configured as OUT_BLIND, DomBus device automatically configure the next port to drive a relay in open direction.

Configuring IO5 and/or IO6 as input

IO5 and IO6 by default are configured as open-drain outputs: to configure those ports as input (to connect for example an external switch, a magnetic contact sensor or PIR, ...) a simple hardware modification have to be made, by opening the corresponding ROx pcb jumper (using a cutter to cut the small trace between the jumper pads) and shorting the corresponding RIx pcb jumper (using a solder iron with a small quantity of solder wire to make a short circuit).
For example, to set IO5 as input, open RO5 using a cutter, and make a short circuit on RI5 pads. Then, that port can be configured by software as digital or analog input by writing, in the Domoticz description, IN_DIGITAL or IN_ANALOG.

Using input ports to read external DC voltages

Voltages applied to a DomBus module input must be in the range 0-3.3Vdc, so an external resistive partition should be applied to measure higher voltage.
For example, to monitor a 12V voltage, a resistive partition with 100k and 22k can be used: in this case max applied voltage = 3.3 / 22k * (100k + 22k) = 18.3V and the A constant used in the domotic controller to get the real voltage is calculated as 18.3/65535=0.00027924
Please note that analog voltage can be applied only to module ports without the 10k pullup resistor: in DomBus12 IO7-IO9 can be used without any modification, IO1-IO4 can be used opening with a cutter the corresponding PCB jumper, and IO5-IO6 can be used configuring their jumpers in input mode (opening ROn and shorting RIn with the solder iron).
Take care to measure voltages only on devices that share the same ground (GND) of the DomBus network!

Using input ports to read temperatures

DomBus modules have the ability to read temperature by using NTC sensors with 10k resistance @25°C and B=3950 coefficient.
NTC should be connected to inputs that already have the internal 10k pullup resistor, otherwise an external 10k resistor must be applied. Connect NTC sensor between input and GND.

Setting IN_ANALOG,FUNCTION=3950 the module port is configured in analog mode, and DomBus driver will convert the read value to the temperature value in °C.

Application notes

Using DomBus12 to control two 230V devices, using the additiona module DomRelay2  (with 2 relays)

Just connect the two open-drain outputs to the 2-relays module by any type of cable (for example a standard 4x0.22mm²).

These outputs can be configured as OUT_DIGITAL or, better, as OUT_RELAY_LP: in this case the relay power consumption will be 1/3 or less.

Using DomRelay2 relays module with DomBus12 to activate 230V loads


Connecting Eastron SDM230 to DomBus12 to measure import and export energy/power on Domoticz, or DDS238-2 to measure imported power/energy

Many energy meters, like Eastron SDM230, provide 2 pulse outputs to count the import and export energy, 1 pulse every Wh (1000 pulses per kWh). More info in the Energy Meter page.

S0 or modbus power and energy meters with domoticz

powerMetersUsing DomBus12, DomBus23 or DomBusTH it's very easy to read the pulses from energy meters, compute the instant power and get two devices in Domoticz that show the usage and return power, usage and return total energy and graphs. Below the instructions that refer to Eastron SDM230 energy meter: similar procedure for any other energy meter with pulse outputs.

  1. connect the pulse outputs to any available I/O, for example IO8 and IO9 for DomBus12, IO1 and IO2 for DomBusTH or DomBus23.  The SDM230 common terminal block should be connected to GND (0V).
  2. configure Pulse1 output, on SDM230, as EXP kWh (check the manual to know how to do that); Pulse2 is pre-configured as IMP kWh (measure the energy imported from grid)
  3. configure the Domoticz device connected to Pulse2: press Edit on that device, and replace in the Description field IN_DIGITAL or IN_TWINBUTTON (the default value) with IN_COUNTER,TYPENAME=kWh  and save. Please note that kWh is CASE SENSITIVE!
    Now the device will be automatically moved to the Utility panel and configured as energy meter. Edit it again, write a name (for example PowerMeter_Import), and select Usage type.
  4. if pEnergy Power Meter Devices in Domoticzroduced energy should be measured, configure the Domoticz device connected to Pulse1 as before: press Edit on that device, and replace in the Description field IN_DIGITAL or IN_TWINBUTTON with IN_COUNTER,TYPENAME=kWh and save.
    Now the device will be automatically moved to the Utility panel and configured as energy meter. Edit it again, write a name (for example PowerMeter_Export), and select Return type.
  5. In case of both import and export devices are created, it's needed to specify on Import device the Unit number of the Export device, and vice versa. So, select Setup -> Devices and write down the Unit number corresponding to Import (for example 98), and Export device (for example 99), then go to Utility panel, edit Import device and add to the description ,OPPOSITE=99 (Unit of the Export device) and save; edit Export device and add to the description ,OPPOSITE=98 (Unit of the Import device) and save. In this way, when a pulse is received on Import device, the power on Export device will be immediately set to 0, and vice versa, when a pulse is received on Export device, the power on Import device will be set to 0.

In case that power should be measured in a single way (unidirectional), DDS238-2 can be used (it's cheaper than SDM230!) and it's S0 output (pulsed) should be connected to a DomBus module input. As DDS238-2 generates 2000 pulses/kWh, the DomBus device should be configured writing in the Description field IN_COUNTER,TYPENAME=kWh,DIVIDER=2000

Domoticz needs up to 5 minutes before updating the energy counter correctly.

Domoticz script the script_device_power

Installing the files script_device_power.lua  and config_power.lua provided on GitHub into the scripts/lua directory of Domoticz, it's possible to add the following functions to Domoticz:

  1. power outage detect => turns on Leds (and other devices) in case of blackout (power failure)
  2. import and export power displaying, through red/green leds on DomBusTH (red led flashes 1 time if import power <1kW, 2 times if <2kW, ... green led flashes 1 time if export power <1kW, 2 times if power < 2kW, ....)
  3. in case of high power usage, program heat pump to work at lower level, or disconnect loads to prevent power disconnect. In case there are not any load that can be disconnect, send alert through leds/buzzer/siren, and send alert by Telegram
  4. automatically enable loads in case of extra power from renewable sources, to increase the own-consuming: for example activate an electric heater if temperature is below a level and available power is greater than heater power

Some functions that can be activated with the domoticz script_device_power.lua and DomBus modules

#from linux shell, type the following commands (copy and paste): lines starting with # are comments, and can be ignored
#become root
sudo su -
#enter domoticz directory /scripts/lua
cd ~pi/Domoticz/scripts/lua
if [ -d domoticz_lua_scripts ]; then
cd domoticz_lua_scripts
#update domoticz_lua_script local repository
git pull
cd ..
which git
if [ $? -ne 0 ]; then
#install git
apt install git
#download domoticz_lua_scripts repository with all scripts
git clone
cp -i domoticz_lua_scripts/script_device_power.lua domoticz_lua_scripts/config_power.lua .
if [ ! -r globalvariables.lua ]; then cp domoticz_lua_scripts/globalvariables.lua . ; fi
if [ ! -r globalfunctions.lua ]; then cp domoticz_lua_scripts/globalfunctions.lua . ; fi
#now edit config file

and adjust the information in the configuration file to match your home automation system.

Connecting a water meter or gas meter to Domoticz

Water and gas meter usually have an optoinsulated output that generate a pulse every 0.NNN m³.

Connecting that output to an I/O input of DomBus12, or DomBus23 or DomBusTH, and common output to GND, it's possible to get an incremental counter in Domoticz measuring water, gas, and anything else: counter divider, meter offset and unity of measure can be specified in Domoticz.

The I/O device connected to the meter should be configured in this way: click Edit on the domoticz device, write the appropriate name (for example Water_Meter), replace the current device type (e.g. IN_DIGITAL) in the Description field with IN_COUNTER and save: the device will be moved to the Utility panel and is ready to count pulses.

Using DomBus12 module to control 2x 230V loads by using 2 buttons, 4 magnetic contact sensors and 1 PIR

The following schema shows how to use this home automation module to control some alarm sensors (PIR, to detect movements inside a room, and 4 magnetic contact sensors applied to windows, doors and blinds, to detect the open state and transition), and also command 2 loads (light and dehumidifier, for example) by using the additional DomRelay2 board (within 2 relays) placed near the loads and connected to DomBus12 by a small wire cable.

Creasol DomBus12 domoticz module that control 2 loads (220V) by 2 buttons and 5 alarm sensors

Both DomBus12 and DomRelay2 are very small modules that can fit everywhere.

The two buttons are connected together by a 4k7 resistor and connected to a single input wire: this configuration is called "twinbutton" and permits to use 2 buttons for each module input, and is normally used by double buttons with the function UP/DOWN (applied to roller shutters, for example) or ON/OFF.

DomBus12, DomBus23, DomBus31 and DomBusTH have also the possibility to send command directly to other devices of the same family (and also to itsself), with the following gains:

  1. very easy configuration (don't need to configure the controller); for example it's possible to configure a button to activate a load, writing the command on the device description like shown below
  2. up to 8 commands are supported for each input/sensor
  3. these commands are received and managed by DomBus modules without any latency introduced by the controller
  4. commands work also in the case that the controller is down

Example: module address = 1201, with 2 buttons connected to port 1 and configured as IN_TWINBUTTON, with the following functions:

Short pulse on DOWN button to get light (connected to port 6 of module 1201) ON for 120s: DCMD(Pulse)=1201.6:ON:120s

2s pulse on DOWN button to toggle the same light ON/OFF without any timer: DCMD(Pulse2)=1201.6:TOGGLE

Short pulse on UP button to swith the dehumidifier (connected to port 5 of module 1201) ON for 2 hours: DCMD(Pulse)=1201.5:ON:2h

1s pulse to switch dehumidifer OFF: DCMD(Pulse1)=1201.5:OFF

To configure the port 1 of module 1201 in this way it's sufficient to edit the port 1 device in Domoticz, and write in the description all commands above:


Then light and dehumidifier will work even if Domoticz is offline.

DomBus12 connected to one or more temperature sensors, in a greenhouse

DomBus12, as like as other DomBus modules with analog inputs and 10k pullup resistors, can be connected to NTC thermistors to measure temperature, using NTC 10k 3950 type sensor that are very common and cheap. Also, they are available in sealed/waterproof version, with 2 wires cable that can be extended for 50-100m distance using common alarm cable 2x0.22mm² + shield; using a single 4x0.22mm²+shield cable it's possible to connect 4 different temperature sensors.

The diagram below shows DomBus12 module with 4 temperature sensors connected on IO1-4, a remote double relay module DomRelay2 connected to IO5-6, and 2 pushbuttons to IO8-9.
I/O device connected to the NTC temperature sensor should be configured, in Domoticz, as IN_ANALOG,FUNCTION=3950 and also it's possible to add an offset to compensate any temperature error, for example IN_ANALOG,FUNCTION=3950,B=0.2 if the real temperature is 0.2°C over the measured temperature.

DomBus12 domotic module used in a green house to measure temperature and activate ventilation and/or heater.


Connecting DomBus12 to 9 NTC thermistors

Connecting up to 9 NTC temperature sensors to DomBus12

DomBus12 has 4 inputs that can be configured as IN_DIGITAL,FUNCTION=3950 and connected to NTC thermistors, 10k @25°C with 3950 constant: in this way it's possible to measure up to 4 fluid or air temperatures.
If more NTC sensors should be connected, it's possible to do an hardware modification to get up to 9 NTC temperature sensors connected:

  1. a wire should be soldered to the pad indicated by the red arrow, to carry 3.3V outside
  2. connect 10k 3950 NTC thermistor between IOx and GND, and a 10k resistor between IOx and 3.3V wire, where x=7-9
  3. if 7 NTC thermistors are not sufficient, open ROx PCB jumpers, short RIx PCB jumpers by a soldering a tin ball, and connect 10k 3950 NTC thermistor between IOx and GND, and a 10k resistor between IOx and 3.3V wire, where x=5-6

Hardware ChangeLog

Firmware ChangeLoga

For any questions, suggestions, feature requests, contact us by Telegram, group DomBus.

DomBus modules installation block chart

Installation schema
Often it's important to have a stable power to supply your Smart Home, to avoid troubles with the domotic controller (RaspberryPI or other), have internet connection always ON and are able to manage alarm sensors even in case of power outage.
  • Use a 12V power supply unit with backup battery charger, to avoid trouble on RaspberryPI or other devices. Also, in this way it's possible to get everything working even in case of power outage (domotic controller, domotic modules, network switches, routers, NVR and IPcams).
  • Use a 12V lead-acid battery well dimensioned to supply everything during blackout.
  • Use a DC/DC converter 12V → 5V 3A to supply the RaspberryPI, if you have it.
  • To use DomBus modules, use a standard alarm shielded cable (within 4 wires) to interconnect all modules to RaspberryPI (through a cheap RS485 to USB adapter).
  • Protect each bus with a fuse

Ports parameters

Modbus address Modbus value DomBus parameter Function
8192 1-247 HWADDR=0xNNNN This command sets a new address for the DomBus module. Be sure to assign to each module a unique address, to avoid conflicting modules.
DomBus protocol and Domoticz: choose a device associated to the module, edit and add in the description field the text ,HWADDR=0x0001 for example, to assign address 1 to the module. Reload the Switches panel to see the new devices associated to the new module address. NNNN must be a number in exadecimal format, from 0x0001 to 0xff00, so 65280 combinations are available. Keep note of address assegnated to each dombus device, because in case of conflicting addresses it's needed to switch off one of the conflicting device and program the remaining one to another address, or make a factory reset as explained below.
8193 0-7 Not available Set the serial bitrate to:
0 → 115200 bps (default)
1 → 57600 bps
2 → 38400 bps
3 → 19200 bps
4 → 9600 bps
5 → 4800 bps
6 → 2400 bps
7 → 1200 bps
8194 0-2 Not available Set the serial parity to:
0 → none (default)
1 → even
2 → odd
INVERTED Used to invert the logic state of an input or output. Can be used in conjuction with OUT_DIGITAL, OUT_RELAY_LP, IN_DIGITAL, DIMMER.
Normally, domoticz switch is On if input is at logic level high (open), and Off when it's shorted to ground. If INVERTED is specified, domoticz switch will be On when the corresponding input is shorted to ground, and vice versa.
OUT_DIGITAL Output, open collector, active low, On → output wire is shorted to GND (max current 50mA). Off ⇒ output is open (current=0).
OUT_RELAY_LP Not recommended: output, open collector, active low, but with duty cycle 25% to reduce power consumption on relays coil
OUT_DIMMER Set the output as DIMMER, from 0 to 100% using 5% step, 500Hz frequency. Suitable to control LED strip lights
OUT_BUZZER Set two outputs as BUZZER: a piezo buzzer can be connected to the selected two ports (configured in push-pull) to generate 5KHz frequency when the corrsponding Domoticz switch is On. The Domoticz switch can be configured as selector: in this case buzzer will output 1 or more short alerts to notify a status, similarly to the led configured as OUT_DIGITAL with Domoticz switch configured as Selector.

Port configured to control a blind, in close direction. Next port will be automatically configured as blind in open direction.
Ports OUT1 and OUT2 can directly be connected to 12V relay coils (if Vbus is 12-14V, or 24V relay coils if Vbus is 24V).
Ports IN1..IN3 can be configured as OUT_BLIND, but in this case should be connected to relayboard that already have a transitors/optocouplers to drive relays.

OUT_LEDSTATUS Configure a LED port to show the device status (flashes when a frame is transmit to the RS485 bus)
OUT_ANALOG Set output as analog, with 0-10V linear output. It can be used to control another electronic board with 0-10V or 1-10V input (light dimmer, heat pump power, linear valve, ....).
The domotic controller will display a device with a slider, like dimmer, with values from 0 (=0V) to 100 (=10V).
Using Domoticz, it's possible to create LUA or dzEvent automations that automatically change the output voltage according to some inputs (brightness, temperature, renewable power availability, ...): the DAC value can be set using the syntax commandArray['DEVICE_NAME']='Set Level 74' to set the output voltage to 7.4V.
IN_DIGITAL Digital input, is On when the corresponding input is at high voltage level (open), and Off when the corresponding input is at GND (shorted).
IN_ANALOG Port configured as IN_ANALOG can be used to measure DC voltage, like battery voltage, bus voltage, thermistors and temperature sensors, .... The voltage is sampled every 15 seconds.
DomBusTH has one pad/hole where it's possible to solder a wire to measure an external DC voltage, <30Vdc; a solder jumper must be opened (because that pad is connected to Vbus).
Also, one or more of the 4 input wires can be configured as analog inputs, 0-3V range: a solder jumper in the PCB must be opened (by cutter) to disable the internal pullup resistor. Also, external resistive divider should be added to measure higher voltages, so the voltage at the input terminal block must be less or equal than 3V.
On DomBus12 it's possible to use IO7, IO8 and IO9 ports as analog inputs. Also, it's possible to use IO1, IO2, IO3, IO4 ports as analog inputs, but in this case it's needed to open, using a cutter, the corresponding PCB jumper PU1-PU4 (that internally connect the input line with a 10k pullup resistor): for example, to use IO1 as analog input, the PU1 PCB jumper must be open. Analog voltage must not exceed the 0-3V range: if voltage range is higher, a resistive divider must be applied externally.
On DomBus23 only IO1 and IO2 ports can be configured as analog inputs: only 0-3V range is supported, and a resistive divider must be externally connected to measure higher voltages.
IN_COUNTER Used to count pulses, max 16 pulses/second (57kW max using 1000pulses/kWh meter, or 28kW max using 2000pulses/kWh meter). This solution is perfect to count energy, gas, water, ...If TYPENAME=kWh is also specified in Description, a device with both energy and power will be created. Other options that can be set for this kind of device is OPPOSITE=dev to set the device counting energy in the opposite direction (import vs export), and DIVIDER=nnnn where nnnn is the number of pulses/kWh (default 1000, but can be 1666, 2000 or any reasonable value).
IN_TWINBUTTON This is a method to connect two pushbuttons/switches to a single input, to get a UP/DOWN/STOP select switch. The two switches are connected together by a 4.7KOhm resistor, using the schema indicated in the application notes below.
A For analog and distance sensors: used to compute the real value using the formula  REAL_VALUE=A * VALUE_FROM_DOMBUS + B.
B For analog and distance sensors: used to compute the real value using the formula  REAL_VALUE=A * VALUE_FROM_DOMBUS + B
For temperature, used to calibrate the value using the formula REAL_TEMPERATURE=MEASURED_TEMPERATURE + B
FUNCTION For analog input with internal 10k pullup (I/Os that can be configured as IN_TWINBUTTON) connected to a NTC thermistor, to convert the read analog value to a temperature.
Supported types:
FUNCTION=3950 for NTC with Bcoeff=3950
Example: IN_ANALOG,FUNCTION=3950,B=-0.3 to use 3950 type NTC 10k@25°C, and calibrate offset -0.3°C.
First configure device as IN_ANALOG and then as IN_ANALOG,FUNCTION=3950
As FUNCTION parameter enable a conversion performed by the domotic controller (not inside the DomBus module), DCMD(Value:min:max) command can be added but min and max value should be the analog values in the range 0 (corresponding to input at 0V) and 65535 (corresponding to 3.3V)
DIVIDER Used with IN_COUNTER ports to set how many pulses per unit of measure. For example, using energy meter with 2000 pulses/kWh, the option DIVIDER=2000 should be set; in case of water meter with 20000 pulses/m³, DIVIDER=20000 should be set.
TYPENAME Option to force the creation of a the specified Domoticz. For example, IN_COUNTER,TYPENAME=kWh to create a energy/power meter instead of a normal incremental counter, or IN_ANALOG,TYPENAME=Temperature,A=0.123,B=-50 to get an analog input that return a temperature using the linear equation Temperature=A*x+B where x is the analog value read
OPPOSITE Used for kWh devices, measuring electric power and energy. Suppose to have a PowerMeter Import device, with Unit=98 (see Setup → Devices), measuring the power/energy from grid, and PowerMeter Export, with Unit=99, measuring the power/energy produced and fed to the grid. If these devices are connected to the pulse output of an energy meter, when a pulse is received from the Import device it means that exported power is 0, and vice-versa. This parameter is used to set what is the Unit number associated to the opposite counter.
So, PowerMeter Import description must have IN_COUNTER,TYPENAME=kWh,OPPOSITE=99 and PowerMeter Export description IN_COUNTER,TYPENAME=kWh,OPPOSITE=98
ADDR EVSE: used to set the Modbus address of a DDS238-2 ZN/S energy meter. By default DDS238 has address=1 and baud rate 9600. Setting ADDR=2 to set the Modbus to the specified value. On DomBusEVSE module, address 2 is used to measure charging power/energy, and address 3 to measure grid power/energy. Valid range from 2 to 5.
This parameter can be set only for the energy meter devices or M1 Addr device
EVMAXCURRENT EVSE: set the max charging current, that normally is limited by the cable used to connect the vehicle to the charging station. Valid range from 6 to 36, default value is 16 Ampere.
This parameter can be set only for the device named EV Mode
EVMAXPOWER EVSE: maximum power that can be drained from the grid without any time limit (available power). Valid range from 1000 to 25000, default value 3300 Watt.
This parameter can be set only for the device named EV Mode
EVMAXPOWER2 EVSE: the highest power that can be drained from the grid, but only for a limited time. Valid range from 1000 to 25000, default value 0 (disabled).
This parameter can be set only for the device named EV Mode
EVMAXPOWERTIME EVSE: time in second to charge the electric vehicle using EVMAXPOWER Watt from grid, before increasing power to EVMAXPOWER2. Valid range from 60 to 43200 seconds, default value 0 (disabled).
This parameter can be set only for the device named EV Mode
EVMAXPOWERTIME2 EVSE: time in second to charge the electric vehicle using EVMAXPOWER2 Watt from grid, before decreasing power to EVMAXPOWER. Valid range from 60 to 43200 seconds, default value 0 (disabled).
This parameter can be set only for the device named EV Mode
EVSTARTPOWER EVSE: minimum available power to start charging: the minimum current is 6A, but usually the On-Board Charger charges less current than what is set, so maybe 900W is sufficient. Please note that charging at a low current lead to a poor efficiency (e.g. 30% power loss). Valid range above 800, default value 1200 Watt.
This parameter can be set only for the device named EV Mode
EVSTOPTIME EVSE: time in seconds after which the charging process is stopped if the available power is less than what is drained by the car with the minimum current (6A). This parameter is used to prevent that, expecially in SOLAR mode, the charging is ended if no power is available for a short time. Valid range from 5 to 600, default is 90 seconds. Time is internally reduced /5 in case that imported power from grid exceed the MAXPOWER parameter, to prevent disconnections.
This parameter can be set only for the device named EV Mode
EVAUTOSTART EVSE: can be set to 0 or 1. 0 means that this function is disabled. 1 means that this function is enabled, and permit to restart automatically the last charging mode when the vehicle is plugged again to the wallbox. Default value is 1.
This parameter can be set only for the device named EV Mode
DISABLE Used to disable one or more ports: it can be usedful with large buses with more than 255 ports (devices), because Domoticz has a limit of max 255 devices for each bus. In this case it's possible to disable unused module ports by writing, in the Description of port 1, the list of disabled ports separated by colon, for example
DISABLE=2:5:6:7:11 to disable ports 2,5,6,7,11:16 (11 corresponds with port .b in hex and 16 with port .10 in hex) of the current module. Port 1 can be never disabled.
To enable a previosly disabled port, just edit the port 1 description for that module, removing the port from the list of DISABLE command: that port will be enabled again in 60 seconds (wait for 1 minute and reload the Domoticz panel).
DCMD Dombus Command: through this keyword it's possible to set a command to send to the same or another module, when an event occurs.
In this way, when an event occurs, the module send a command to a dombus module to execute an operation, and this work without the need of a Domoticz controller and without the need to configure Domoticz to manage this kind of actions. See the DCMD section below.

DCMD commands

This is an experimental function, undergoing testing and development, available on all DomBus modules, expept DomBus1

For each port it's possible to configure, through the Domoticz Description field, one or more DCMD commands.

DCMD is a command that is sent to the module itself or to another DomBus module, in response to an event, and more DCMD commands can be specified for the same event and port.

Also it's possible to send DCMD command to the domotica controller to activate, deactivate or toggle a scene/group; to get this feature please assure that:

  • was added to Domoticz → Setup → Settings → Trusted Networks field
  • if Domoticz www port is different from 8080, manually replace 8080 with the used port in the plugins/CreasolDomBus/ file:
    JSONURL = ""

The syntax is DCMD(Event:ValueLow:ValueHigh)=ModuleAddress.ModulePort:Command:Value

where ValueLow, ValueHigh, Value are optional parameters.
When ModuleAddress corresponds to the same module that we're editing, the command is executed locally, by the same module.
When ModuleAddress corresponds to another Dombus module, the command is sent by bus to that module. When ModuleAddress is 0, the command is sent to the controller to activate the scene/group with idx=ModulePort : please note that ModulePort should be in hex format, so if ModulePort=11 the scene/group with idx=17 will be activated.

DCMD: list of possible events
Event Description Example
OFF This even occurs when input goes OFF DCMD(OFF)=13.1:OFF
When input goes off, turns OFF also port 1 of module 13
ON This even occurs when input goes ON

When input goes on, turns ON port 2 of module 13 for 90s

PULSE Input is pulsed ON for less than 0.5s DCMD(Pulse)=13.3:TOGGLE
When input is pulsed shortly, send command to module 13 port 3 to toggle it's output OFF->ON or vice versa
PULSE1 Input is pulsed ON for about 1s

When input is pulsed for 1s, turns ON port 3 of module 13

PULSE2 Input is pulsed ON for about 2s

When input is pulsed for 2s, turns OFF port 3 of module 13

PULSE4 Input is pulsed ON for about 4s

When input is pulsed for 4s, turns ON port 4 of module 13 for 2 hours

VALUE Sensor value is ≥ ValueLow and < ValueHigh
Command is repeated every 30s if the comparison matches.

Turns ON output 13.5 when temperature is below 20.5°C, and turns OFF when above 21°C

Turns ON port 31.7 when the current voltage is below 12.2V, and turns OFF when voltage is above 13.8V

Turns ON port 31.8 if exported power (from photovoltaic?) is ≥ 1400W, and disable when the exported power falls below 100W


DCMD: list of possible commands
Command Description Example
OFF Turns output OFF. If the optional Value is specified, output will be OFF for the specified time, then returns ON  
ON Turns output ON. If the optional Value is specified, output will be ON for the specified time, then returns OFF  
TOGGLE Change state to the selected output. If the optional Value is specified, wait the specified time before toggling output  


Value optional parameter: list of possible values for the command
Command Description Example
number A number without any suffix should be multiplied by 31.25ms (seconds/32) 1=31.25ms
numberS Number of seconds, from 1 to 3600

1s=1 second
60s=1 minute
100s, ....



Number of minutes, from 1 to 1440 1m=1 minute
10m=10 minutes
180m=3 hours
numberH Number of hours, from 1 to 43824 1h=1 hour
6h= 6 hours
72h=3 days
numberD Number of days, from 1 to 1826

1d=1 day

Example 1: configure a pushbutton switch to have 3 functions

short pulse → toggle ON/OFF light
1 second pulse → enable ventilation for 30s
2 seconds pulse → disable ventilation
This 3 events can be configured writing in the description of the pushbutton switch:
DCMD(Pulse)=0101.1:TOGGLE, (with a short pulse, toggle port 1 of module 0x0101)
DCMD(Pulse1)=0101.2:ON:30m, (with 1 second pulse → turn on port 2 of 0x0101 for 30 minutes)
DCMD(Pulse2)=0101.2:OFF, (with 2 seconds long pulse, turn OFF the port 2 of 0x0101)
The Description field for that switch will be

Example 2: configure a pushbutton switch to trigger 2 scenes/groups

short pulse → toggle ON/OFF the group of light with idx=1
2 seconds pulse → activate the scene with idx=2 that switch off lights/loads and activate alarm system (useful when leaving the house)
This 3 events can be configured writing in the description of the pushbutton switch:
DCMD(Pulse)=0.1:TOGGLE, (with a short pulse, toggle Domoticz group with idx=1
DCMD(Pulse2)=0.2:ON, (with 2 second pulse → activate the scene with idx=2 that switch off everything and activate the alarm system
The Description field for that switch will be

Example 3: temperature sensor that enable/disable electric heater and valve

In the description field of the temperature sensor we'll write

DCMD(Value:0:20.5)=0101.3:ON, (if temperature between 0 and 20.5°C, turns ON heater on output 3 of module 0x0101)
DCMD(Value:0:20.5)=0102.1:ON, (if temperature between 0 and 20.5°C, turns ON valve output 1 of module 0x0102)
(turn OFF heater when temperature above 20.8°C)
(turn OFF valve when temperature above 20.8°C)
Domoticz temperature sensor Description will be:



Using RS485 specific cables it's possible to get almost 1km linear bus with several devices attached. Alternatively, it's possible to use 2 twisted pairs of cheap Cat6 UTP or STP cable, one twisted pair for data (A and B) and one for 12-24V power supply. Ideally, all devices should be connected using a linear bus topology, to get the lowest reflection/noise, and connect 100-150 Ohm resistor on the two ends, as illustrated in the Fig. 2. In practice, this is not important for common buildings.

dombus connection

AN domoticz example2

At Raspberry/PC side, it's possible to use a cheap USB-RS485 adapter, if a serial port with RS485 driver is not already available.

Using DomBus modules it's possible to:

  1. avoid RF pollution
  2. no need to periodically change batteries on sensors/actuators
  3. using a UPS or  13.6V power supply with backup battery, it's possible to get a building automation system that works also in case of power outage
  4. very very low power consumption


Writing a microSD card with a fresh Raspbian + Domoticz distribution

Click here if you need to write a microSD card with a clean updated Raspbian+Domoticz image optimized to extend SD life (minimizing writings), and with some addons (firewall, backup, libraries).

Adding DomBus plugin to Domoticz

Linux version

This procedure is not needed in case of a new Domoticz installation writing the SD as written above.
If Domoticz does not already include the DomBus plugin, type the following commands (from Linux root shell: type sudo su - to become root):

#install git, if not already installed
which git
if [ $? -ne 0 ]; then sudo apt install git; fi

#change to the domoticz directory / plugins
cd /home/pi/domoticz/plugins 

#fetch the Python Plugin Manager (that can be used to install/upgrade other plugins, including Creasol DomBus)
git clone

#fetch Creasol Plugin
git clone

#restart Domoticz daemon
service domoticz restart

Windows version

FIrst python should be installed, following the instructions at
Then you should create a plugins folder inside the domoticz directory, within another subfolder named CreasolDomBus: in this subfolder, copy files and that you find in the GitHub repository

Domoticz configuration

After plugins installation and Domoticz restart, it's possible to add the Creasol DomBus hardware (Setup->Hardware , add new "dombus" hardware type "Creasol DomBus" and specify the serial device, normally /dev/ttyUSB0) and connect the DomBus device to the RS485 bus.
DomBus module is factory programmed with a default address indicated above, and only one port will be automatically added to the Switches panel of Domoticz. Enter the Switches panel, find the new device with the DomBus default address, click on Edit and add in the description ,HWADDR=0x0001 to set the new address to 0001, or specify another address of your choice. Reload the Switches panel to see all input/output/led ports of DomBusTH active.

With Domoticz, each DomBus port can be configured via the Domoticz device description: for example a port IN_DIGITAL normally is On when it's left unconnected, and Off when it's shorted to GND, but it's possible to invert this function specifying in the device description the parameter INVERTED, separated by a comma (,): IN_DIGITAL,INVERTED . Relay outputs can be configured writing in the description field OUT_DIGITAL or OUT_RELAY_LP: in the latter case, relay are internally managed to assure a low power consumption.
Please check the sections Ports capabilities and Ports parameters.

Ports that are not used can be disabled in Domoticz Setup → Devices clicking on the blue arrow of each useless port (device), but in case of a bus with almost 255 ports, it's suggested to disable the unused ports by using the DISABLE command:
1. suppose that DomBus module 0x0001 has ports 3,4,5,6,8 not used
2. in Domoticz Switches panel select port1 of that module ([0001.1] RL1)
3. click on Edit, and add in the Description field DISABLE=3:4:5:6:8 and click on Save.
In this way, the selected ports will be disabled and removed from the Devices list. With this solution it's possible to add more DomBus modules to the same bus, with up to 255 enabled ports. In large buildings, it's a good practice to have more than one bus, to divide floors or areas.

Updating DomBus plugin on Domoticz

If the Creasol DomBus plugin has been installed in Domoticz using the Python Plugin Manager, it's possible to update the plugin to the latest version by:
  1. Go to Setup → Hardware → PP-Manager (name of the python plugin manager)
  2. Assure the PP-Manager is enabled
  3. Pluging to install: select Creasol DomBus
  4. Auto Update: choose Selected
  5. Click on Update button

Alternatively, it's possible to download the plugin from github repository, using one of the following ways:
Linux platform, with DomBus plugin installed manually
cd DOMOTICZ_HOME/plugins (e.g. cd /home/pi/domoticz/plugins)
git clone
Linux platform, with DomBus plugin installed using git
cd DOMOTICZ_HOME/plugins/creasolDomBus (e.g. cd /home/pi/domoticz/plugins/CreasolDomBus)
git pull
Windows platform
Files should be downloaded from the github repository by using git program or www browser, then placed in the DOMOTICZ_HOME/plugin/CreasolDomBus directory

Installing CreasolDomBus Home Assistant custom component

The integration code is available at
The following commands should be executed in the linux shell: for people using Windows, use git UI to download the custom component and place it in the right directory.
cd /tmp
git clone
cp -a home-assistant-creasol-dombus/custom_components HADIR/config/
ha core restart
where HADIR is the Home Assistant root dir: in case of Hassio, use the command cp -a home-assistant-creasol-dombus/custom_components /config/
After reboot of Home-Assistant, this integration can be added through the Configuration -> Integrations -> + ADD INTEGRATION and selecting Creasol DomBus integration.

FAQ about DomBus products

First, please note that:
  • Some modules are available with both DomBus and Modbus protocol firmwares, so the best one for your needs should be chosen. Below in the FAQ some information about the two protocols
  • You can connect up to 20-30 modules per bus: the max number of ports managed by Domoticz is 256, and you can use the DISABLE command to disable ports that are not used in case that 256 ports are not enough.
  • It's good to make different buses on large buildings with several sensors and actuators, for example a bus for the ground floor, one for the second floor, ... Any bus is connected to a RS485 port/adaptor and need a DomBus plugin for that serial port, so in the Domoticz Setup→Hardware, one Creasol DomBus line for each serial port.
  • DomBus modules are factory programmed with a certain address, for example 0xff12 for DomBus12, 0xff23 for DomBus23, and so on. As each device connected to the bus MUST have a unique address, add only one module to the bus then program its address using the command HWADDR=0x0001, then connect another DomBus module and program its address to 0x0002 and so on. Address can be chosen to identify floor and room, for example 0x1023 to identify floor 1, room 2, module 3 in that room.
What protocol should I choose? Modbus or DomBus?
Some DomBus modules are available with two firmwares: Modbus and Dombus.
Modbus protocol is standard and works with almost every home automation system. DomBus is proprietary, and works only with Domoticz home automation system.
Modbus is a master/slave polling protocol. DomBus is a multi-master protocol, where the module can initiate a communication with the master triggered by an event (on input, temperature or other sensor change).
Modbus module is slave. DomBus modules are also able to send commands to other DomBus modules, like KNX ; for example pushing a button on DomBus module 1, it sends a command to DomBus module 2 to turn light ON or OFF. This kind of commands are called "DCMD", and permits to add automations easily and get them working even in case that the domotica controller is down to get a reliable home automation network.
How can I change address of DomBusTH device?
DomBusTH is factory programmed with address 0xff51 : please connect only 1 new/unprogrammed DomBusTH to the existing bus, and you'll find one "switch" device in the Domoticz Switches panel with name "dombus - [Hff51] OUT1" or something similar.
Click on the Edit button of that switch and add the following text to its description:  ,HWADDR=0x0001  (don't forget the comma used to separate each parameter) to set the new address to 0001, ot another not-used value.
DomBus device will be set to the specified address, then you'll find in the Switches panel all ports with the selected address.
At this point you can add another new dombus device, and change its address in the same way.
DomBusTH: how to mount and fix it?
DomBusTH electronic board must be fixed by a just 4 points of hot glue or mastic on the blank cover with a 3-4mm diameter hole in the center.
Please keep in mind that:
  1. sensor needs that air circulate easily, but the polymers inside it can be damaged by direct sun light and dust: for this reason the hole must be centered with the LEDs inside the board, and sensor must stay below the hole!
  2. when LEDs are steady ON: for this reason they must stay above the sensor, and air must circulate easily from bottom to top
  3. don't cover the programming pads, so it will be possible to further upgrade the firmware without removing the board from the plastic cover
DomBusTH: how to do a factory reset?
Normally, factor reset is not needed because, enabling debug on Domoticz controller, it's always possible to know the address of a device, changing its address, and for each port change it's configuration through the Domoticz web panel.
Anyway, it's possible to do a factory reset in this way:
  1. Disconnect the device
  2. For firmware version before 2021-11-11: Solder the PCB jumper a to force IN4 in low impedance (150 Ohm resistor)
  3. Connect together IN1, IN2, IN3, IN4 wires
  4. Connect the device to the power supply: you can see a red flash 1000ms long, that notify that configuration was restored to the factory default.
  5. For firmware version before 2021-11-11: If IN4 is used as input, remove the solder bump on PCB jumper a
Why buzzer does not work?
DomBusTH, DomBus12 and other DomBus modules supports the manage of piezo buzzer without oscillator.
For example it's possible to connect a piezo buzzer to DomBusTH IN3 and IN4 I/Os; with the solder iron tip make a short on the I/O PCB jumpers (marked as "a" and "b") corresponding to IN3 and IN4 to reduce the output resistance. Configure IN3 device as OUT_BUZZER (don't care about IN4).
If the buzzer does not work, maybe the buzzer has an oscillator inside: in this case connect the buzzer to a 12V source and if you'll hear a "TIC", it has not the oscillator inside, while if you hear a sound, the buzzer has the oscillator and can be connected to a relay or (even better) to an open-drain output: in the latter case, it can be connected between 12V and OUT1 (or OUT2); configure OUT1 as OUT_DIGITAL. To get the buzzer sending 1 or more beeps, following by a 4 seconds pause, set the Domoticz device as Selector Switch, enabling level 10, 20, 30, 40, ... corresponding to 1 beep + pause, 2 beeps + pause, and so on: the buzzer oscillator circuit must have a fast response to work in this way, because the supply time is very short, less than 100ms.
2 or more modules with the same address
In case that 2 or more modules have the same address, it's neccessary to disconnect the one that should keep that address, and change address to the other ones.
Example: module A has address 0x0002, module B has address 0x0002 instead of 0x0003, module C has address 0x0002 instead of 0x0004.
Disconnect module A and B (only C is supplied), then select any device with address 0x0002 (for example device with ID=2.1) and write in the Description field HWADDR=0x0004 to set the right address for module C.
The connect module B, select a device with address 0x0002 (device with ID=2.1) and write HWADDR=0x0003 in the description, to set the new address to module B.
Then connect module A that has the right address.
How many DomBus modules can I connect to a bus?
Domoticz has a limit of 256 devices (I/O) to a single hardware, and this correspond to 20-30 DomBus modules (it depends by the number of I/O/Sensors for each module).
It's possible to have more than one bus, each bus associated to one RS485 port: for example for large buildings or if it's needed to differentiate the buses to increase system security, it's possible to use many RS485/USB adapters connected to Domoticz, one for each bus.
How to split a bus in 2 buses in Domoticz?
If you have many modules connected to a bus and you want to split in two buses (maybe one for the ground floor, and one for the second floor?), you have to:
  1. split the bus, connecting the second bus to another RS485/USB adapter (better to use an adapter from another manufacturer, to avoid Linux exchanging the two serial ports)
  2. Setup→Hardware and create another hardware using Creasol Dombus plugin, specifying the new serial port
  3. Setup→Devices to list all dombus devices: sort by ID. You can see that all devices in the new bus are already active with the same configuration of the previous bus
  4. For each device moved to the second bus, click Edit→Replace to replace it with the new device in the second bus (you can find it with the default name): in this way device is moved to the second bus mantaining the state history (On/Off history, temperature history, Watt/Energy history, ....) and room plan position.
How to identify a RS485/USB adapter when more than one are connected
Assuming to use Linux (Debian, Ubuntu, Raspbian, ...), it may happen that more RS485/USB adapters are connected to the same computer, and it's important to identify the serial port in a persisten way to avoid troubles: if they have the same vendor id, product id and serial number, you have to follow the step-by-step procedure: assuming that ttyUSB0 is used as dombus #1, and ttyUSB1 as dombus #2
  1. find the devpath for the bus #1, corresponding with ttyUSB0 in this example, running the command udevadm info -a /dev/ttyUSB0|egrep 'ATTRS.(idVendor|idProduct|devpath)'|head -n3
    Assuming that result is
  2. create/edit the file /etc/udev/rules.d/99-serial-ports.rules adding the line
    SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ATTRS{devpath}=="1.5", SYMLINK+="ttyUSBdombus1"
    to set that the USB/RS485 adapter plugged to the USB port 1.5 should be named /dev/ttyUSBdombus1
  3. Make a symlink using the command ln -s /dev/ttyUSB0 /dev/ttyUSBdombus1
    This is needed now because the system is running with the adapter already plugged.
    When the computer will reboot, the USB-RS485 serial adapter plugged to the port 1.5 will assume the device /dev/ttyUSBdombus1
  4. Enter the Domoticz UI, Setup → Hardware, select the dombus1 hardware and change serial port from /dev/ttyUSB0 to /dev/ttyUSBdombus1, then click on Update button.
  5. Repeat the steps above for the next RS485/USB serial adapters, to set the device to ttyUSBdombus2, ....
All DomBus devices have been duplicated!
This is caused by two running dombus instances using the same serial port!
Most probably you have selected the DomBus plugin in Setup→Hardware , and clicked to the Add button instead of Update button.
Now you have to select the duplicated DomBus plugin, disable it, click Update, then select it again and click on Delete button.
I have many USB-serial adapters
In case of many USB-serial adapters, during boot you can have that kernel assigning a different name than before. Device that before was named ttyUSB0 may be renamed, after reboot, ttyUSB1 or ttyUSB2. To get a persistent name assigned to each adapter, follow the instructions at
Why there is a long delay between pushing a button and get light/output on?
Some possible problems that lead to long latency are:
  1. bus is not terminated by resistors: RS485 is a balanced bus, and need two resistors 100-150 ohm connected to the two opposite end of the bus.
    RESISTOR --- Module1 --- Module 2 --- Raspberry --- ..... --- Module 20 --- Module 21 --- RESISTOR between A and B
    Some DomBus modules have a PCB jumper that can be shorted (using a solder iron) to enable the RS485 resistor already included in the module.
    There must be exactly 2 resistors connected on the bus!
  2. Latency can be caused by Domoticz being busy with other services. Disable hardware that is not used or not needed, like Python Plugin Manager that is known to cause longer latencies. Also, enable logging so you can check exactly what is the latency reason (Domoticz reading the Raspberry internal sensors/cpu usage/disk usage, for example).
  3. Update DomBus plugin to the last version: you can install/enable Python Plugin Manager, update all python plugins (including Creasol Dombus) and then disable it.
Why DomBus device does not work?
1. Are you using Domoticz? Does Domoticz work?
2. Did you installed the Creasol DomBus plugin on Domoticz? If not, check the Configuration section above
3. If you open the Domoticz web panel, and enter Settings -> Hardware, can you find the Creasol DomBus protocol ? Did you enable it? If not, check the Configuration section above
4. When you connect the DomBus device to the RS485 bus, can you see a new device in the Domoticz Switches panel? if not, the device cannot communicate to Domoticz by RS485 serial bus. In this case, check that:
  a) DomBus device is supplied by 12Vdc or similar voltage
  b) RS485 bus is connected (A, B, GND) to Domoticz (Raspberry or other hw) through the USB/RS485 adapter or other RS485 adapter
  c) Verify that the DomBus protocol on Domoticz is configured correctly (115200bps and right serial device), and that there are not 2 DomBus hardware with in Domoticz with the same serial port
One DomBus module stopped working
If in Domoticz the ports associated to that module are shown in red, last update has happend more than 15 minutes ago: this means that the module has stopped sending its status to the domotic controller.
a) Check that 12-24V is applied between Vbus (+) and GND (-)
b) Check that A and B data lines (RS485 bus) are connected: with a voltmeter it's possible to test the voltage between GND and A, and between GND and B: these voltage must be almost the same(100mW difference) and in the range 1÷(Vbus-1) Volt.
c) check for led activity on DomBus module: periodically it has to transmit data to the domotic controller. If the module has at least one input, toggle the input LOW and HIGH and check that led flashes (to indicate a transmission). If it flashes, the module works. Check that in the home automation system that input changes it's state: if it changes, the domotic controller receives correctly. If the module has no inputs (like DomBus31), turn off and on the power supply: after few seconds you should see red flashing.
c) Now check the domotic tranmissions: toggle a module output and check that, everytime you toggle that output from the domotic module, the DomBus led flashes (indicating the transmision of acknowledge: if it does not flash, maybe the RS485 driver is broken (chinese RS485-USB adapters are very weak: you should replace it or replace the MAX485 chip inside).
Why current consumption is 0uA?
DomBus devices have a serie protection resistor, 2.2 Ohm, acting as a fuse when the user forget to protect 12V power supply by a fuse. Maybe the resistor is burned (you can check using an ohm-meter) and can be replaced by another resistor or, if you know what you do, by a short circuit.
DomBus1: first version of DomBus1 was not protected against polarity inversion, and switching mode power supply circuitry break down in case of polarity inversion opening the circuit. If you have a solder iron, you can try DomBus1 connecting a 5Vdc power supply to +5V indicated by the red arrow, and GND terminal block. Click to see the picture!
DomBusTH: Check polarity: the first wire (black) is ground (0V) and the second wire (brown) V+ (normally, +12V). DomBusTH is protected against polarity inversion.
How to add icons on smartphone to turn On/Off lights/loads, or enable/disable scenes/groups?
Follow the instructions to install HTTP Shortcuts app and configue it to have icons on the smartphone to perform some actions.
How to send Telegram notification from a lua script in Domoticz?
Check in repository to find some examples:
-- script_time_example.lua  : simple example script that write a message to Telegram channel/group if temperature is less than 5
dofile "script/lua/globalvariables.lua" -- read a file with some variables, including Telegram API key and ChatID
dofile "script/lua/globalfunctions.lua" -- read a file with some functions
if (tonumber(otherdevices['Temp_outdoor']) < 5) then
	telegramNotify("Low temperature: bring flowers inside")	-- send message by Telegram
return commandArray

DomBus firmware ChangeLog

2022-11-16 Rev02g5
OUT_RELAY_LP: to avoid relay coil noise, increased switching frequency to 20KHz
OUT_ANALOG_LP: increased frequency according to the modification above.
2022-11-04 Rev02g4
Added DCMD VALUE command for VOLTAGE, IMPORT and EXPORT ENERGY. Value must be positive.
2022-10-22 Rev02g3
Added firmware for DomBus34
Added transmission of power (watt) without energy.
DBEVSE: added virtual device "Grid Power"
2022-09-26 Rev02g
Added support for the new version of DomBusEVSE (charging station for electric vehicles)
Added support for MODBUS energy meter DDS238
Improved communication: limited length of ACK frames (only port and subcmd/arg1 in the payload); also, ACK are transmitted before CMD.
LedSelect: now blank between flashes was reduced from 4s to 2s
COUNTER: periodically transmit status every 256 seconds, in case of no activity, to avoid bad graphs on Domoticz (graph should stay at zero, if no activity)
DomBusEVSE: new project
DomBusTH: now factory reset can be done connecting IN1-IN2-IN3-IN4 together before power-on, without the need to configure IN4 as output (by shorting "a" pcb jumper).
IN_COUNTER has changed: now it outputs two 16bit incremental counters: updated counter, and last counter processed by the domotic controller (confirmed by an ACK from the controller): in case that the domotic controller is offline (stopped or while booting), no pulses are lost, but they are accumulated and sent as soon as the controller return online. The max number of accumulated pulses is 65535: in case that more than 65535 pulses were received while controller is down, the counter is freezed to 65535.
Improved IN_COUNTER ports: debouncing has been disabled (to works well with power meters with 2000 pulses/kWh).
DCMD(On) and DCMD(Off) commands now are available also for output ports, so when an output has been activated/disactivated, a DCMD command is sent to the same module (this can be useful to get two relays activated together, simultaneously, by a unique command) and/or to other modules.
Added IN_COUNTER type, used to count pulses from electric meter, gas meter, water meter, .... Max pulse frequency = 5Hz (input is debounced), min transmission period = 5s (accumulate pulses if frequency is greater than 0.2Hz, to avoid high CPU usage by Domoticz.
Added TYPENAME=kWh option, to get an electric Power/Energy meter: this device computes both energy (proportional to the number of pulses) and power (frequency of pulses).
Added OPPOSITE=Unit option, associated to kWh devices (power/energy meters): when the opposite device receives a pulse, power for the current device is immediately set to 0 Watt
For example: PowerMeter_Import, with Unit=98. PowerMeter_Export, with Unit=99
On PowerMeter_Import description, add ,OPPOSITE=99, and in PowerMeter_Export description add ,OPPOSITE=98 : in this way when a pulse is received from the import device, the power on export device will be set to 0, and viceversa.
After powerOn, the module transmits its firmware version and module name, logged by Domoticz with priority INFO.
When device is supplied, it transmits its module name and firmware version so it can be logged by Domoticz.
DCMD commands now are transmitted before sending commands to the controller, to reduce latency.
New protocol V2, with both destination and source addresses, and cmdLen field divided by 2 (to address up to 14 bytes for each command).
New DCMD_CONFIG and DCMD commands to get dombus commands (command from module to module).

Need help? join the DomBus channel on Telegram!
Esiste anche il Canale Telegram in Italiano DomBus_it!

Facebook domoticz groups:
Domoticz community, Domoticz Italia, Domoticz France, Domoticz Nederland, ... just search Domoticz on Facebook!