Creasol DomBus23: Smart Home RS485 module with 2x relays, 1x mosfet with dimming function, 2x I/Os, 2x 0-10V analog outputs that can be configured as open-drain outputs, 2x 12/24V opto inputs, 1x 230V opto input
Creasol DomBus23 is a module for home automation system with several different kind of inputs/outputs in a short size: 74x72x24mm.
It can be connected to the home automation controller by a RS485 serial bus (4 wires, 2 for 12/24V power supply, and 2 for data at 115200bps).
Supported home automation system controllers are Domoticz .
As other DomBus devices, DomBus23 is designed to consume low power, be reliable, fully configurable and easy to use.
- 2x SPST relay outputs, 250Vac 5A, that can be configured in low power mode to minimize power consumption (less than 70mW/relay, instead of 200mW/relay) and in OUT_BLIND mode to drive a roller shutter motor
- 1x mosfet output, 30V 10A max, with both digital and dimmer functions, that can be used to drive led stripe regulating the brightness
- 2x 0-10V analog output (can be used to control other electronic boards with 0-10V input, like dimmers): each one can be configured as open-drain output (available through the optional cable) in case that 0-10V analog output is useless
- 2x I/O lines, each one can be configured as digital input, analog input, twinbutton, counter (for energy gas or water meters), digital output, blind, dimmer (to be connected to external mosfet) and buzzer (piezo buzzer connected to the two lines, in push-pull configuration). Each port has two PCB jumper: one to reduce serie resistance to 150ohm, useful when it's configured as output or buzzer, and one to enable a fixed 10k pull-up resistor, needed when port is configured as twinbutton.
- 2x low voltage AC/DC opto-isolated inputs, 9-40V
- 1x 230V AC opto-isolated input
- 7.5-35Vdc power supply (internally regulated by a switching mode power supply circuitry that minimize power consumption and dissipation)
- low power consumption: 10mW stand-by power
- 115200 bps RS485 bus (max length: 1km)
- Do not mix high voltage (230V) loads and low voltage (5/12/24V) loads on the same terminal block! In case that IN3 is used to monitor 230V voltage, RL1 and RL2 can be use ONLY to control 230V loads. Also, it's not possible to use a relay to control 230V load and another one to control a low voltage load!
- Use a 4 wires shielded cable for the bus, using two lines to send 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.
DomBus23 Ports capabilities
Default address: 0xff23
|1||RL1||OUT_DIGITAL, OUT_RELAY_LP, OUT_BLIND||OUT_RELAY_LP||SPST relay output, with 250Vac 5A contact rate, or 30Vdc 5A contact rate. Relay contact is protected from overvoltage by varistor|
|2||RL2||OUT_DIGITAL, OUT_RELAY_LP, OUT_BLIND||OUT_RELAY_LP||SPST relay output, with 250Vac 5A contact rate, or 30Vdc 5A contact rate. Relay contact is protected from overvoltage by varistor|
|3||MOS||OUT_DIGITAL, OUT_DIMMER||OUT_DIMMER||Mosfet open-drain output, 30V 12A max, suitable to control led stripes (with the possibility to regulate the brightness using the DomBus dimming function, 0-100% with 5% step) or other DC loads.|
|4||V1/OD1||OUT_ANALOG, OUT_DIGITAL, OUT_RELAY_LP, OUT_BLIND||OUT_ANALOG||
Analog output, 0-10V, suitable to control the 0-10V or 1-10V input of another electronic board (dimmer, heat pump, linear valve, ...).
|5||V2/OD2||OUT_ANALOG, OUT_DIGITAL, OUT_RELAY_LP, OUT_BLIND(1)||OUT_ANALOG||OAnalog output, 0-10V, suitable to control the 0-10V or 1-10V input of another electronic board (dimmer, heat pump, linear valve, ...).
Optionally it's possible to configure this port as open-drain output 40V 100mA max, that can be connected to external leds or relay by using the optional 5-wires cable: od2 pcb jumper must be shorted, in this case.
|6||IO1||IN_DIGITAL, IN_ANALOG, IN_TWINBUTTON, IN_COUNTER, OUT_DIGITAL, OUT_BLIND, OUT_DIMMER, OUT_BUZZER||IN_DIGITAL||
Analog/digital input that can be used to read voltages, or can be connected to contact, switch, magnetic sensor, PIR, ...
|7||IO2||IN_DIGITAL, IN_ANALOG, IN_TWINBUTTON, IN_COUNTER, OUT_DIGITAL, OUT_BLIND(1), OUT_DIMMER, OUT_BUZZER||IN_DIGITAL||Analog/digital input that can be used to read voltages, or can be connected to contact, switch, magnetic sensor, PIR, ...
It can be configured as counter and connected to energy/gas/water meter.
It can be configured as IN_TWINBUTTON (that can be connected to a double pushbutton) by shorting the PCB jumper RU2, or 10mA OUTPUT by shorting the PCB jumper RO2: in the latter case, it can be used as a low current 3V output, connected to buzzer or to a relay board within the coil driver.
|8||IN1||IN_AC||IN_AC, IN_COUNTER||Low voltage input, 9-40V AC or DC, opto-isolated. Suitable to sense the presence of voltage|
|9||IN2||IN_AC||IN_AC, IN_COUNTER||Low voltage input, 9-40V AC or DC, opto-isolated. Suitable to sense the presence of voltage|
|10||IN3||IN_AC||IN_AC, IN_COUNTER||230V input, opto-isolated. Suitable to sense the presence of voltage, and detect power-outage (blackout)|
(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.
Dimming 1 led stripe by internal Mosfet 24V 12A, + 2 led stripes using external controller
DomBus23 module can be interface with Domoticz and, using the internal mosfet with 30V 12A, can internally regulate the brightness of a led stripe.
Also, DomBus23 has 2 analog outputs 0-10V that permit to control 2 additional led stripes by an external led dimmer.
Connecting DomBus23 to the gate or garage door opener, to open gate /garage door by Domoticz
The following schema shows how to connect the gate opener or garage door opener to DomBus23 module, that permit to control gate and garage door by home automation system (Domoticz, ...)
Converting a simple door bell to a smart doorbell for Domoticz
The following schema can be used to convert an existing "analog" doorbell to a smart doorbell.
The 12Vac used to supply the door bell chime or buzzer is connected to an optoisolated input on the DomBus23 module, so when the chime/buzzer is supplied, a trigger is sent to Domoticz that activates a script to grab a picture from the IPcam and send it to a Telegram channel or group, so the family members can receive the photo on their smartphones as soon as someone push the doorbell button.
A complete description is available at the following article while the updated scripts for Domoticz are available on GitHub.
DomBus23 has many inputs and outputs and can be used to performs other functions, such as opening a pedestrian gate or main door (it has 2 relay outputs), manage a courtesy light with led stripe with dimming function (it has a 30V 12A mosfet), ....
If the doorbell uses 230Vac or 110Vac power, it's possible to connect the chime/buzzer to the IN3 optoisolated input, that supports high voltages.
Connecting Eastron SDM230 to DomBus23 to measure import and export energy/power on Domoticz
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).
Using 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.
- connect the pulse outputs to the DomBus23 IO1 and IO2. The SDM230 common terminal block should be connected to GND (0V).
- 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)
- 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.
- if produced 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.
- 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.
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:
- power outage detect => turns on Leds (and other devices) in case of blackout (power failure)
- 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, ....)
- 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
- 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
#from linux shell, type the following commands (copy and paste): lines starting with # are comments, and can be ignored
sudo su -
#enter domoticz directory /scripts/lua
if [ -d domoticz_lua_scripts ]; then
#update domoticz_lua_script local repository
if [ $? -ne 0 ]; then
apt install git
#download domoticz_lua_scripts repository with all scripts
git clone https://github.com/CreasolTech/domoticz_lua_scripts.git
cp -i domoticz_lua_scripts/script_device_power.lua domoticz_lua_scripts/config_power.lua .
#now edit config file
and adjust the information in the configuration file to match your home automation system.
Typical 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
|HWADDR=0xNNNN||This command set new address for the dombus device: reload the Switch panel to see the new devices associated with the new address of DomBus. NNNN is an exadecimal number, from 0x0001 to 0xff00, so 65280 combinations are available. Keep note of address assegnated to each dombus device, because in case of address conflict 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.|
|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.
|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
|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|
|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
|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 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.
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 same or to another DomBus module, in response to an event, and more DCMD commands can be specified for the same event and port.
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.
|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||
|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||
|PULSE2||Input is pulsed ON for about 2s||
|PULSE4||Input is pulsed ON for about 4s||
|VALUE||Sensor value is in the range between ValueLow an ValueHigh||
|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|
|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||
|Number of minutes, from 1 to 1440||1m=1 minute
|numberH||Number of hours, from 1 to 43824||1h=1 hour
6h= 6 hours
|numberD||Number of days, from 1 to 1826||
Examples 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 Domoticz switch Description will be
Example 2: 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)
DCMD(Value:20.8:50)=0101.3:OFF (turn OFF heater when temperature above 20.8°C)
DCMD(Value:20.8:50)=0102.1:OFF (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.
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:
- avoid RF pollution
- no need to periodically change batteries on sensors/actuators
- 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
- 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
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 https://github.com/ycahome/pp-manager #fetch Creasol Plugin git clone https://github.com/CreasolTech/CreasolDomBus #restart Domoticz daemon service domoticz restart
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.
Installing CreasolDomBus Home Assistant custom componentThe integration code is available at https://github.com/CreasolTech/home-assistant-creasol-dombus
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.
where HADIR is the Home Assistant root dir: in case of Hassio, use the command cp -a home-assistant-creasol-dombus/custom_components /config/
cd /tmp git clone https://github.com/CreasolTech/home-assistant-creasol-dombus.git cp -a home-assistant-creasol-dombus/custom_components HADIR/config/ ha core restart
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
- How can I change address of DomBusTH device?
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?
Please keep in mind that:
- 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!
- when LEDs are steady ON: for this reason they must stay above the sensor, and air must circulate easily from bottom to top
- 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?
Anyway, it's possible to do a factory reset in this way:
- Disconnect the device
- For firmware version before 2021-11-11: Solder the PCB jumper a to force IN4 in low impedance (150 Ohm resistor)
- Connect together IN1, IN2, IN3, IN4 wires
- 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.
- For firmware version before 2021-11-11: If IN4 is used as input, remove the solder bump on PCB jumper a
- How many DomBus modules can I connect to a bus?
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.
- I have many USB-serial adapters
- Why there is a long delay between pushing a button and get light/output on?
- 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!
- 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).
- 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?
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
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 2÷(Vbus-2) Volt.
c) check for led activity on DomBus module: periodically it have 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. 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 cheap inside).
- Why current consumption is 0uA?
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.
DomBus software ChangeLog
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.
Domoticz community, Domoticz Italia, Domoticz France, Domoticz Nederland, ... just search Domoticz on Facebook!