Difference between revisions of "OWN OpenWebNet Language Reference"

From piMyHome Project
Jump to navigation Jump to search
 
(12 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 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 live 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.
+
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.
  
 
----
 
----
Line 5: Line 5:
  
 
== Basic Syntax Rules ==
 
== Basic Syntax Rules ==
A Bticino gateway receives and sends so called '''''messages''''':
+
A Bticino gateway sends and receives '''''messages'''''.
* A message is a simple string, containing the characters asterisk ('''*'''), hash ('''#''') and numbers from '''0 to 9'''.
+
* a message begins with an asterisk ('''*''') and is terminated with a double hash ('''##''').  
* each message begins with an asterisk ('''*''') and ends with a double hash ('''##''').
+
* each message contains fields separated by an asterisk ('''*''').
* within the message, fields are separated by an asterisk ('''*''').
+
* a field can contain dimensions and values separated by an asterisk ('''*''') and/or a hash ('''#''')
  
Example: <code>'''*field1*field2*field3*...fieldN##'''</code>
+
Example: <code>'''*field1*field2#dim1#value1*field3...fieldN##'''</code>
  
 
====The OWN message syntax====
 
====The OWN message syntax====
Line 35: Line 35:
 
|Request a state (e.g. if a light is ON or OFF)
 
|Request a state (e.g. if a light is ON or OFF)
 
|-
 
|-
|Attribute Request
+
|Dimension Request
|<tt>*#WHO*WHERE*ATTRIBUTE##</tt>
+
|<tt>*#WHO*WHERE*DIMENSION##</tt>
|Request attribute value
+
|Request dimension value
 
|-
 
|-
|Attribute Write
+
|Dimension Write
|<tt>*#WHO*WHERE*#ATTRIBUTE*VAL1*VAL2*...*VALn##</tt>
+
|<tt>*#WHO*WHERE*#DIMENSION*VAL1*VAL2*...*VALn##</tt>
|Write attribute value(s)
+
|Write dimension value(s)
 
|}
 
|}
  
Line 48: Line 48:
 
* <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. Check out the WHERE table below.
 
* <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> remarks the end of a message. Larger facilities might have extension interfaces. Adresses connected to on one of these extension interfaces have the prefix '''<tt>"#4#nn</tt>''', where '''<tt>nn</tt>''' stands for the 2-digit value of the extension interface number.  So a message with an address on interface 7 will end with a '''<tt>"#4#07##</tt>'''.
+
* <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 ====
Line 78: Line 78:
 
! style="text-align:left;"| WHERE
 
! style="text-align:left;"| WHERE
 
! style="text-align:left;"| Address
 
! style="text-align:left;"| Address
 +
! style="text-align:left;"| Info
 
|-
 
|-
 
|0
 
|0
|General (covers 11..99)
+
|General  
 +
|The whole system, be careful!
 
|-
 
|-
 
|1..9
 
|1..9
|Zone/room 1 to 9
+
|Environment 1 to 9
 +
|Can be a zone or a room
 
|-
 
|-
 
|11..99
 
|11..99
 
|Light point 1.1 to 9.9
 
|Light point 1.1 to 9.9
 +
|Single addresses
 
|-
 
|-
|0110..0915<br>&nbsp;
+
|0110..0915
|Light point 1.10 to 9.15<br>extended addresses
+
|Light point 1.10 to 9.15
 +
|Extended addresses on newer gateways
 
|-
 
|-
 
|#1..#9
 
|#1..#9
 
|Group 1 to 9
 
|Group 1 to 9
 +
|A set of single addresses
 
|}
 
|}
  
Line 99: Line 105:
 
== WHO Table ==
 
== WHO Table ==
  
The WHO value describes the service. Find out more about each service by clicking on the service nam in right column:
+
The WHO value describes the service. Click the service name in table below to get detailed information:
  
{| class="wikitable" style="float:left; "
+
{| class="wikitable"  
 
! style="text-align:left;"| WHO
 
! style="text-align:left;"| WHO
 
! style="text-align:left;"| Service
 
! style="text-align:left;"| Service
Line 115: Line 121:
 
|-
 
|-
 
|3
 
|3
|[[WHO=3 - Load Control|Load Control]]
+
|[[WHO=3 - Power Management|Power Management]]
 
|-
 
|-
 
|4
 
|4
Line 170: Line 176:
 
|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.



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)