Difference between revisions of "OWN OpenWebNet Language Reference"
(57 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | The [http://en.wikipedia.org/wiki/OpenWebNet OpenWebNet protocol] was defined in 2000 by [http://www.myopen-legrandgroup.com Bticino/Legrand] to specify the communication with a Bticino | + | The [http://en.wikipedia.org/wiki/OpenWebNet OpenWebNet protocol] was defined in 2000 by [http://www.myopen-legrandgroup.com Bticino/Legrand] to specify the communication with a Bticino home automation gateway, connected via LAN, RS-232 (serial) or USB. Here you'll get a brief overview of the OWN language syntax. To watch the OWN messages of your Bticino gateway, you should try the [[Code_Snippets#A_Python_Monitor_Session_with_Bticino_Gateway|Python Monitor]] in our [[Code Snippets]] section. |
+ | |||
+ | ---- | ||
+ | |||
== Basic Syntax Rules == | == Basic Syntax Rules == | ||
− | A Bticino gateway receives | + | A Bticino gateway sends and receives '''''messages'''''. |
− | * | + | * a message begins with an asterisk ('''*''') and is terminated with a double hash ('''##'''). |
− | * each message | + | * each message contains fields separated by an asterisk ('''*'''). |
− | + | * a field can contain dimensions and values separated by an asterisk ('''*''') and/or a hash ('''#''') | |
− | Example: <code>'''*field1*field2*field3 | + | Example: <code>'''*field1*field2#dim1#value1*field3...fieldN##'''</code> |
− | The | + | ====The OWN message syntax==== |
{| class="wikitable" | {| class="wikitable" | ||
Line 34: | Line 37: | ||
|Dimension Request | |Dimension Request | ||
|<tt>*#WHO*WHERE*DIMENSION##</tt> | |<tt>*#WHO*WHERE*DIMENSION##</tt> | ||
− | |Request | + | |Request dimension value |
|- | |- | ||
|Dimension Write | |Dimension Write | ||
|<tt>*#WHO*WHERE*#DIMENSION*VAL1*VAL2*...*VALn##</tt> | |<tt>*#WHO*WHERE*#DIMENSION*VAL1*VAL2*...*VALn##</tt> | ||
− | |Write | + | |Write dimension value(s) |
|} | |} | ||
− | + | We know already that a standard message consists of <code>''' *WHO*WHAT*WHERE##'''</code>. | |
− | + | * <tt>'''WHO'''</tt> identifies the service, such as scenario, light or automation. See WHO table below. | |
− | * <tt>'''WHO'''</tt> identifies the service, such as scenario, light or automation | ||
* <tt>'''WHAT'''</tt> is the action to be performed, such as light ON/OFF or dimmer, shutter up/down etc. | * <tt>'''WHAT'''</tt> is the action to be performed, such as light ON/OFF or dimmer, shutter up/down etc. | ||
− | * <tt>'''WHERE'''</tt> identifies the object, which can be an area, group, an environment, or just a single light or shutter etc. | + | * <tt>'''WHERE'''</tt> identifies the object, which can be an area, group, an environment, or just a single light or shutter etc. Check out the WHERE table below. |
+ | * <tt>'''##'''</tt> terminates a message. Larger facilities might have extension interfaces. Addresses connected to on one of these extension interfaces have the prefix '''<tt>"#4#nn</tt>''', where '''<tt>nn</tt>''' reflects the 2-digit value of the extension interface number. So a message with an address on interface 7 is terminated with a '''<tt>"#4#07##</tt>'''. | ||
− | == Some Examples == | + | ==== Some Examples ==== |
'''<pre> | '''<pre> | ||
− | *1*0*25## Turn off light 2.5 on local interface | + | *1*0*25## Turn off light 2.5 on local interface |
+ | | | | | ||
+ | | | +- light address 25 | ||
+ | | +- 0=OFF | ||
+ | +- WHO=1 lighting | ||
+ | |||
+ | *0*13*19#4#06## Launch scenario 13 of scenario list 19 on interface 6 | ||
+ | | | | | | ||
+ | | | | +- #4#06 = interface 6 | ||
+ | | | +- 19 = address of scenario list | ||
+ | | +- scenario #13 | ||
+ | +- WHO=0 scenarios | ||
+ | |||
*1*1*47#4#01## Turn on light 4.7 on interface 1 (#4#01) | *1*1*47#4#01## Turn on light 4.7 on interface 1 (#4#01) | ||
*1*1*0415## Turn on light 4.15 on local interface | *1*1*0415## Turn on light 4.15 on local interface | ||
*1*0*0## Turn off all lights on local interface | *1*0*0## Turn off all lights on local interface | ||
− | |||
*2*1*91#4#03## open (1) shutter 9.1 in on interface 3 (#4#03) | *2*1*91#4#03## open (1) shutter 9.1 in on interface 3 (#4#03) | ||
*#4*#1*#14*0225*3## Set heating zone 1 manually ON to 22.5°C | *#4*#1*#14*0225*3## Set heating zone 1 manually ON to 22.5°C | ||
</pre>''' | </pre>''' | ||
− | == | + | == WHERE Table == |
− | {| class="wikitable" style=" | + | The WHERE field identifies the object, which can be an area, group, an environment, or just a single light or shutter etc. |
+ | |||
+ | {| class="wikitable" | ||
+ | ! style="text-align:left;"| WHERE | ||
+ | ! style="text-align:left;"| Address | ||
+ | ! style="text-align:left;"| Info | ||
+ | |- | ||
+ | |0 | ||
+ | |General | ||
+ | |The whole system, be careful! | ||
+ | |- | ||
+ | |1..9 | ||
+ | |Environment 1 to 9 | ||
+ | |Can be a zone or a room | ||
+ | |- | ||
+ | |11..99 | ||
+ | |Light point 1.1 to 9.9 | ||
+ | |Single addresses | ||
+ | |- | ||
+ | |0110..0915 | ||
+ | |Light point 1.10 to 9.15 | ||
+ | |Extended addresses on newer gateways | ||
+ | |- | ||
+ | |#1..#9 | ||
+ | |Group 1 to 9 | ||
+ | |A set of single addresses | ||
+ | |} | ||
+ | |||
+ | * A WHERE field can also come with optional parameters, separated by a hash (<tt>#</tt>), e.g. <tt>*WHERE#PAR1#PAR2#...#PARn</tt>. | ||
+ | |||
+ | == WHO Table == | ||
+ | |||
+ | The WHO value describes the service. Click the service name in table below to get detailed information: | ||
+ | |||
+ | {| class="wikitable" | ||
! style="text-align:left;"| WHO | ! style="text-align:left;"| WHO | ||
! style="text-align:left;"| Service | ! style="text-align:left;"| Service | ||
Line 73: | Line 121: | ||
|- | |- | ||
|3 | |3 | ||
− | |[[WHO=3 - | + | |[[WHO=3 - Power Management|Power Management]] |
|- | |- | ||
|4 | |4 | ||
Line 97: | Line 145: | ||
|- | |- | ||
|15 | |15 | ||
− | |[[WHO=15 - CEN | + | |[[WHO=15 - CEN]] |
|- | |- | ||
|16 | |16 | ||
Line 112: | Line 160: | ||
|- | |- | ||
|25 | |25 | ||
− | |[[WHO=25 - CEN | + | |[[WHO=25 - CEN plus]] |
|- | |- | ||
|1000 | |1000 | ||
Line 122: | Line 170: | ||
|1004 | |1004 | ||
|[[WHO=1004 - Heating Diagnostic|Heating Diagnostic]] | |[[WHO=1004 - Heating Diagnostic|Heating Diagnostic]] | ||
+ | |- | ||
+ | |1008 | ||
+ | |[[WHO=1008 - Door Entry System Diagnostic|Door Entry System Diagnostic]] | ||
|- | |- | ||
|1013 | |1013 | ||
|[[WHO=1013 - Device Diagnostic|Device Diagnostic]] | |[[WHO=1013 - Device Diagnostic|Device Diagnostic]] | ||
|- | |- | ||
− | | | + | |1018 |
− | + | |[[WHO=1018 - Energy Management Diagnostic|Energy Management Diagnostic]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | | | ||
|- | |- | ||
− | | | + | |1023 |
− | | | + | |[[WHO=1023 - Access Control Diagnostic|Access Control Diagnostic]] |
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
+ | |||
+ | Those last 2 are used by MHSuite to scan the bus... But I don't have any of those to test, yet | ||
+ | |||
+ | 1023 scan request messages don't show up in the monitor (wireshark to the rescue) |
Latest revision as of 14:08, 14 May 2018
The OpenWebNet protocol was defined in 2000 by Bticino/Legrand to specify the communication with a Bticino home automation gateway, connected via LAN, RS-232 (serial) or USB. Here you'll get a brief overview of the OWN language syntax. To watch the OWN messages of your Bticino gateway, you should try the Python Monitor in our Code Snippets section.
Contents
Basic Syntax Rules
A Bticino gateway sends and receives messages.
- a message begins with an asterisk (*) and is terminated with a double hash (##).
- each message contains fields separated by an asterisk (*).
- a field can contain dimensions and values separated by an asterisk (*) and/or a hash (#)
Example: *field1*field2#dim1#value1*field3...fieldN##
The OWN message syntax
Message Type | Message | Note |
---|---|---|
ACK | *#*1## | Message accepted/understood |
NACK | *#*0## | Message not accepted/understood |
Standard | *WHO*WHAT*WHERE## | Standard message |
Status Request | *#WHO*WHERE## | Request a state (e.g. if a light is ON or OFF) |
Dimension Request | *#WHO*WHERE*DIMENSION## | Request dimension value |
Dimension Write | *#WHO*WHERE*#DIMENSION*VAL1*VAL2*...*VALn## | Write dimension value(s) |
We know already that a standard message consists of *WHO*WHAT*WHERE##
.
- WHO identifies the service, such as scenario, light or automation. See WHO table below.
- WHAT is the action to be performed, such as light ON/OFF or dimmer, shutter up/down etc.
- WHERE identifies the object, which can be an area, group, an environment, or just a single light or shutter etc. Check out the WHERE table below.
- ## terminates a message. Larger facilities might have extension interfaces. Addresses connected to on one of these extension interfaces have the prefix "#4#nn, where nn reflects the 2-digit value of the extension interface number. So a message with an address on interface 7 is terminated with a "#4#07##.
Some Examples
*1*0*25## Turn off light 2.5 on local interface | | | | | +- light address 25 | +- 0=OFF +- WHO=1 lighting *0*13*19#4#06## Launch scenario 13 of scenario list 19 on interface 6 | | | | | | | +- #4#06 = interface 6 | | +- 19 = address of scenario list | +- scenario #13 +- WHO=0 scenarios *1*1*47#4#01## Turn on light 4.7 on interface 1 (#4#01) *1*1*0415## Turn on light 4.15 on local interface *1*0*0## Turn off all lights on local interface *2*1*91#4#03## open (1) shutter 9.1 in on interface 3 (#4#03) *#4*#1*#14*0225*3## Set heating zone 1 manually ON to 22.5°C
WHERE Table
The WHERE field identifies the object, which can be an area, group, an environment, or just a single light or shutter etc.
WHERE | Address | Info |
---|---|---|
0 | General | The whole system, be careful! |
1..9 | Environment 1 to 9 | Can be a zone or a room |
11..99 | Light point 1.1 to 9.9 | Single addresses |
0110..0915 | Light point 1.10 to 9.15 | Extended addresses on newer gateways |
#1..#9 | Group 1 to 9 | A set of single addresses |
- A WHERE field can also come with optional parameters, separated by a hash (#), e.g. *WHERE#PAR1#PAR2#...#PARn.
WHO Table
The WHO value describes the service. Click the service name in table below to get detailed information:
WHO | Service |
---|---|
0 | Scenarios |
1 | Lighting |
2 | Automation |
3 | Power Management |
4 | Heating |
5 | Burglar Alarm |
6 | Door Entry System |
7 | Multimedia |
9 | Auxiliary |
13 | Device Communication |
14 | Light+shutters actuators lock |
15 | WHO=15 - CEN |
16 | Sound System |
17 | Scenario Programming |
18 | Energy Management |
24 | Lighting Management |
25 | WHO=25 - CEN plus |
1000 | Diagnostic |
1001 | Automation Diagnostic |
1004 | Heating Diagnostic |
1008 | Door Entry System Diagnostic |
1013 | Device Diagnostic |
1018 | Energy Management Diagnostic |
1023 | Access Control Diagnostic |
Those last 2 are used by MHSuite to scan the bus... But I don't have any of those to test, yet
1023 scan request messages don't show up in the monitor (wireshark to the rescue)