This is information related to the Dobiss protocols that I have discovered by probing various things on my devices. My installation is a pair of modules marked "Dobiss Domotics Relay Module single pole 8 channel Model DO4511" connected by a black CAN cable. The button bus is connected to the first module.
WARNING Assume that anything you can touch or probe or poke a wire into is on LIVE VOLTAGE and will kill you if you touch it. I'm not responsible for whatever you decide to do with this information.
In particular make sure of the following: Measure that there is no voltage between the ground and your earch connection.
I used can-utils on Linux to get this information, all packets are in the cansend
can_frame
format unless otherwise noted.
The CAN bus goes over the black RJ12 connector in the center of the unit, make sure you disable the terminator resistor if you add a cable. You can use an RJ11 (telephone) cable as well, since you only need 3 concuctors and the outermost pins are not used.
This is the pinout for an RJ12 cable:
- CAN H
- GND (don't forget!)
- CAN L
In my setup, I connected these via an unshielded handtwisted cable to the CAN screw terminals of a RS485/CAN HAT from Waveshare.
The CAN bus speed is 125kbit/s (sometimes known as "low speed can").
> 01FCmm01#mmrr
< 01FDFF01#ss
mm
= modulerr
= relay 0-7 (or 8-B for the linkout 12v pins)ss
= state 0 = off, 1 = on
Examples:
> 01FC0101#0104
< 01FDFF01#00
> 01FC0101#0103
< 01FDFF01#00
> 01FC0101#0102
< 01FDFF01#00
> 01FC0101#0101
< 01FDFF01#00
> 01FC0101#0100
< 01FDFF01#00
Send to control a relay/output. Note that if a relay is set on the module where the button bus comes in, you won't see the tx message on the CAN bus but you will get the rx message.
> 01FCmm02#mmrrssFFFF
< 0002FF01#mmrrss
mm
= modulerr
= relay 0-7 (or 8-B for the linkout 12v pins)ss
= state 0 = off, 1 = on (2 = toggle, tx only, rx is always 0 or 1)
Note that the actual modules send along some more bytes (0x64FFFF) but those don't seem to be required for simple on-off operations. Since I don't have dimmers or other modules I cannot test these, but I assume that's what these bytes are for.
Examples:
> 01FC0202#020300FFFF64FFFF
< 0002FF01#020300
> 01FC0202#020400FFFF64FFFF
< 0002FF01#020400
> 01FC0202#020500FFFF64FFFF
< 0002FF01#020500
> 01FC0202#020200FFFF64FFFF
< 0002FF01#020200
> 01FC0202#020100FFFF64FFFF
< 0002FF01#020100
> 01FC0202#020000FFFF64FFFF
The button bus is a onewire based bus. Since I can control all of what I need via CAN, I'm not doing further investigation.
Update: By adding the call to
schedule_update_ha_state
fromon_message_received
HA is instantly updated when an external source triggers a state change.I still keep polling enabled in the entities, as it keeps the state in sync at startup or if weird stuff happens.