Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 

PRELIMINARY - This product will be available in January 2021

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.

 

Creasol DomBus12 module for domoticz home automation system, with 9 configurable GPIO

Features

  • 4 configurable I/Os, each one can be set as analog/digital input, twinbutton input, 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), analog/digital input, blind output (to be connected to external relay), LED strip dimmer
  • 3 configurable I/Os, each one can be set as analog/digital inputs, 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: 2.5mA stand-by current at 13.6V (35mW)
  • 115200 bps RS485 bus (max length: 1km)

Installation

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. Be careful to connect all devices 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.

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 this installation topology it's possible to avoid RF pollution and minimize connections, connecting DomBus devices in any room by a 4 wire shielded cable to exchange data and get power supply (normally battery-backed 12Vdc, to get the domotic system working even in case of blackout).

 

Configuration

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):

if [ ! `which wget` ]; then sudo apt install wget; fi
cd /home/pi/domoticz # or other directory where domoticz is installed
wget -O /tmp/CreasolDomBus.tgz https://codeload.github.com/CreasolTech/CreasolDomBus/tar.gz/master
if [ ! -d plugins/CreasolDomBus ]; then mkdir -p plugins/CreasolDomBus; fi
tar xvzf /tmp/CreasolDomBus.tgz -C plugins/CreasolDomBus --strip=1
service domoticz restart

Domoticz configuration

After plugin 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.
DomBusTH is factory programmed with default address 0xff51, and only one port will be automatically added to the Switches panel of Domoticz. Enter the Switches panel, find the new device “dombus - [Hff51] OUT1”, 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.

Each device port can be configured via the Domoticz switch description: for example a device type 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 switch description the parameter INVERTED, separated by a comma (,): IN_DIGITAL,INVERTED . Please check the following sections Port parameters and DomBusTH port capabilities.

I/O that are not used can be disabled in Domoticz Setup -> Devices clicking on the blue arrow of each useless device (I/O).

I/O parameters

Parameter name Function
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.
OUT_BLIND

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)
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 In DomBusTH there is 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 is less equal than 3V
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
DISABLE Used to disable one or more ports: it can be usedful with large bus 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 setting, 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.
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.

 

DomBus12 I/O/S capabilities

Port# Name Capabilities Default configuration Description
1 IO IN_DIGITAL, IN_ANALOG, IN_TWINBUTTON, OUT_DIGITAL IN_TWINBUTTON Input, with optional pullup (pcb jumper)
2 IO2 IN_DIGITAL, IN_ANALOG, IN_TWINBUTTON, OUT_DIGITAL IN_TWINBUTTON Input, with optional pullup (pcb jumper)
3 IO3 IN_DIGITAL, IN_ANALOG, IN_TWINBUTTON, OUT_DIGITAL IN_TWINBUTTON Input, with optional pullup (pcb jumper)
4 IO4 IN_DIGITAL, IN_ANALOG, IN_TWINBUTTON, OUT_DIGITAL IN_TWINBUTTON

Input, with optional pullup (pcb jumper)

5 IO5 IN_DIGITAL, IN_ANALOG, OUT_DIGITAL, OUT_RELAY_LP, OUT_BLIND, OUT_DIMMER OUT_DIGITAL Open-drain output, 60V 100mA capability, suitable to be connected to an external relay. 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, 60V 100mA capability, suitable to be connected to an external relay. With 2 pcb jumpers it's possibile to bypass mosfet and use this port as normal input/output.
7 IO7 IN_DIGITAL, IN_ANALOG, 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
8 IO8 IN_DIGITAL, IN_ANALOG, 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
9 IO9 IN_DIGITAL, IN_ANALOG, 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

(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.

DCMD commands

This is an experimental function, undergoing testing and development!

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.

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

DCMD(ON)=13.2:ON:90s
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

DCMD(Pulse1)=13.3:ON
When input is pulsed for 1s, turns ON port 3 of module 13

PULSE2 Input is pulsed ON for about 2s

DCMD(Pulse2)=13.3:OFF
When input is pulsed for 2s, turns OFF port 3 of module 13

PULSE4 Input is pulsed ON for about 4s

DCMD(Pulse4)=13.4:ON:2h
When input is pulsed for 4s, turns ON port 4 of module 13 for 2 hours

DIMMER    
VALUE Sensor value is in the range between ValueLow an ValueHigh

DCMD(Value:0:20.5)=13.5:ON
DCMD(Value:21:50)=13.5:OFF
Turns ON output 13.5 when temperature is below 20.5°C, and turns OFF when above 21°C

DCMD(Value:0:12.2)=31.7:ON
DCMD(Value:13.8:20)=31.7:OFF
Turns ON port 31.7 when the current voltage is below 12.2V, and turns OFF when voltage is above 13.8V

 

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  
DIMMER    

 

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
3=93.75ms
16=500ms
numberS Number of seconds, from 1 to 3600

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

 

numberM

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
....

 

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

IN_DIGITAL,INVERTED,
DCMD(Pulse)=0101.1:TOGGLE,
DCMD(Pulse1)=0101.2:ON:30m,
DCMD(Pulse2)=0101.2:OFF

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:

TEMPERATURE,
DCMD(Value:0:20.5)=0101.3:ON,
DCMD(Value:0:20.5)=0102.1:ON,
DCMD(Value:20.8:50)=0101.3:OFF,
DCMD(Value:20.8:50)=0102.1:OFF

 

 

 

 

Application notes

Hardware ChangeLog

Firmware ChangeLog

Pin It
Creasol DomBus31 8 relays output module
SKU creDomBus12
Brand Creasol