OpenWebNet
OpenWebNet is a Communication Protocol developed by Bticino since 2000.
This protocol is born to allow a “high level” interaction with MyHome domotic system.
Last evolution will allow to use OpenWebNet protocol in order to interact with the most known domotic system (for example with KNX or DMX512-A based systems) by using gateways.
The OpenWebNet protocol is disclosed on MyOpen community.
OpenWebNet Protocol
The protocol is thought to being independent from the used technology. For example it’s possible to use a supervisor software connected via ethernet, via serial RS232 or via USB to a gateway that is directly connected to a domotic system.
The minimal requirement is the possibility to use DTMF tones on normal telephone line PSTN to transmit the messages.
Everyone can require protocol message extension. It's enough to propose your own RFC. It will be examined and disclosed if it respects OpenWebNet syntax.
Syntax
A OpenWebNet message is structured with variable length fields separated by the special character '*' and closed by '##'.
The characters admitted in the fields are numbers and the character “#”.
The structure of a message is therefore:
- field1*field2*… *fieldN##
The following fields are admitted:
WHO
WHERE
WHAT
DIMENSION
VALUE
WHO
It characterizes the domotic system function to which the OpenWebNet message is referred.
For example: WHO = 1, characterizes the messages for lighting system management.
WHERE
It characterizes the set of objects to which the OpenWebNet message is referred. It can be a single object, a group of objects, a specific environment, the entire system, etc.
For every WHO (and therefore for every function) there is a specified WHERE table.
The tag WHERE can also contain optional parameters: WHERE#PAR1#PAR2… #PARn.
Example of where: all the lights of group 1, sensor 2 of zone 1 of alarm system, etc…
WHAT
It characterizes an action to do or a status to read. For every WHO (and therefore for every function) there is a specific WHAT table.
The field WHAT can also contain optional parameters: WHAT#PAR1#PAR2… #PARn.
Example of actions: switch ON light, dimmer to 75%, switch DOWN shutter, radio ON, etc… Example of status: light ON, active alarm, battery unload, etc…
DIMENSION
It characterizes the dimension of the object to which the message is referred. For every WHO (and therefore for every function) there is a specific DIMENSION table.
It’s possible to require/to read/to write the value of one dimension. Every dimension has a prefixed number of values, described in VALUE field.
Example of dimension: sensor temperature, loudspeaker volume, firmware version of a device, etc.
VALUE
It characterizes the read/written value of a written/required/read dimension.
Message
There are four typologies of OpenWebNet Message:
Command / Status Message
Status Request Message
Request/Read/Write Dimension Message
Acknowledge Message
Command / Status Message
*WHO*WHAT*WHERE##
Status Request Message
*#WHO*WHERE##
Request/Read/Write Dimension Message Request:
*#WHO*WHERE*DIMENSION##
Read:
*#WHO*WHERE*DIMENSION*VALUE1*...*VALUEn##
Write:
*#WHO*WHERE*#DIMENSION*VALUE1*...*VALUEn##
Acknowledge Message ACK:
*#*1##
NACK:
*#*0##
Gateway OpenWebNet
There are two typologies of gateways that allow connection to the field bus.
Web Server
It’s an embedded web server. It works a as translator between OpenWebNet messages transmitted on protocol TCP/IP and SCS messages transmitted on MyHome bus. This web server is developed on Linux platform.
Serial/USB interface
It’s an interface that works as a translator between the OpenWebNet messages transmitted to USB or to Serial RS232 and SCS messages transmitted on MyHome bus.
Example
OpenWebNet message examples
Command Message
Switch Off of light 77
*1*0*77##
WHO = 1 WHAT = 0 WHERE = 77
Status Message
Scenario 1 of scenario unit 23 activated.
*0*1*23##
WHO = 0 WHAT = 1 WHERE = 23
Request status message
Status request of probe 1
*#4*1##
WHO = 4 WHERE = 1
Request Dimension Message
Request of Temperature Measured, probe 44
*#4*44*0##
WHO = 4 WHERE = 44 DIMENSION = 0
Read Dimension Message
Temperature Measured, probe 44
*#4*44*0*0251*2##
WHO = 4 WHERE = 44 DIMENSION = 0 VALUE1 = 0251 (T=+25,1° C) VALUE2 = 2 (System in "cooling mode")
Write Dimension Message
Volume set at 50%, environment 2
*#16*#2*#1*16*##
WHO = 4 WHERE = #1 DIMENSION = 1 VALUE1 = 16