**OpenWebNet** คือ โพรโทคอลสำหรับการสื่อสารซึ่งได้รับการพัฒนาโดย Bticino ตั้งแต่ปี 2000

สำหรับ โพรโทคอล OpenWebNet นี้ ถูกเสริมให้มีการจัดการในระดับสูง ระหว่างยูนิตรีโมต กับบัส SCS ในระบบ MyHome domotic ซิสเต็ม

วิวัฒนาการล่าสุดของโพรโทคอลได้ถูกพัฒนาเสริมการใช้งาน โพรโทคอล OpenWebNet เพื่อที่จะสื่อสารและทำงานกับระบบ domotic ซิสเต็ม ที่เป็นที่รู้จักกันอย่างดี อย่างเช่น ระบบ KNX หรือ ระบบ DMX512-A โดยการใช้ เกตเวย์ ที่เหมาะสม

ทั้งนี้ *โพรโทคอล OpenWebNet* ได้ถูกบรรจุใน MyOpen community ไว้แล้ว

โพรโทคอล OpenWebNet
-------------------

โพรโทคอลนี้ถูกคิดให้เป็นอิสระจากเทคโนโลยีที่เคยใช้งานอยู่ ยกตัวอย่างเช่น เป็นไปได้ที่จะใช้ซอฟต์แวร์ supervisor เชื่อมต่อกันโดย อีเทอร์เน็ต, โดย serial RS232 หรือ โดย USB ไปยังเกตเวย์ที่ถูกเชื่อมต่อโดยตรงกับระบบ domotic ซิสเต็ม

ความต้องการเพียงเล็กน้อย คือ ความเป็นไปได้ในการใช้งาน DTMF tones บนสายโทรศัพท์พื้นฐาน PSTN เพื่อการส่งข้อความ

ทุกคนสามารถที่จะเพิ่มเติมโพรโทคอล message ตามความต้องการ เพียงแค่นำเสนอ RFC ของตัวเอง จะมีการตรวจสอบอย่างอัตโนมัติและถูกใส่ไว้ให้ถ้าหากข้อเพิ่มเติมนั้นตรงตามเงื่อนไขของ *OpenWebNet* syntax

### Syntax

*OpenWebNet* message มีโครงสร้างประกอบด้วย ความยาว field ตัวแปร และถูกคั่นโดยตัวอักษรพิเศษ '\*' จากนั้นจะถูกปิดท้ายด้วยเครื่องหมาย '##'

ตัวอักษรที่จะถูกยอมรับค่าใน field จะเป็นตัวเลข และเครื่องหมาย '#'

โครงสร้างของ message ที่ได้จะมีลักษณะดังนี้:
field1\*field2…\*fieldN##

fields ดังตัวอย่างด้านล่างถูกรับค่าโดย:
WHO
WHERE
WHAT
DIMENSION
VALUE

**WHO**

เป็นตัวระบุว่าฟังก์ชันใดในระบบ domotic ซิสเต็ม ที่ถูก OpenWebNet message อ้างอิงถึง
ตัวอย่าง: WHO = 1, เป็นการระบุ message ว่าต้องการจัดการในระบบ lighting ซิสเต็ม

**WHERE**

เป็นการระบุถึงกลุ่มของอ็อบเจกต์ที่ถูกอ้างอิงถึงใน OpenWebNet message ซึ่งสามารถเป็น
อ็อบเจกต์เดียว หรือกลุ่มของอ็อบเจกต์หรือ environment ที่ต้องการระบุจำเพาะหรือระบุทั้งระบบก็ได้

สำหรับทุก WHO (หรือสำหรับทุกๆฟังก์ชัน) จะมีตารางค่า WHERE ที่ถูกกำหนดไว้โดยเฉพาะ

ทั้งนี้ tag ของ WHERE สามารถมีพารามิเตอร์เพิ่มเติมได้: WHERE#PAR1#PAR2… #PARn.

ตัวอย่าง where: ไฟทุกดวงของ กลุ่ม 1, เซนเซอร์ 2 ของโซน 1 ของระบบเตือนภัย, ...ฯลฯ
--all the lights of group 1, sensor 2 of zone 1 of alarm system, etc…

**WHAT**

เป็นการระบุถึงแอคชั่นที่ต้องการทำ หรือสถานะสำหรับการอ่าน สำหรับทุก WHO (หรือสำหรับทุกๆฟังก์ชัน) จะมีตารางค่า WHAT ที่ถูกกำหนดไว้โดยเฉพาะ

ทั้งนี้ WHAT สามารถมีพารามิเตอร์เพิ่มเติมได้: WHAT#PAR1#PAR2… #PARn.

ตัวอย่างแอคชั่นที่ต้องการทำ: เปิดไฟ, ให้ความสว่างเป็น 75%, ปิดชัทเตอร์, เปิดวิทยุ, ...ฯลฯ
--switch ON light, dimmer to 75%, switch DOWN shutter, radio ON, etc…
ตัวอย่างของสถานะ: ไฟสว่าง, ระบบเตือนภัยทำงาน, แบตเตอรี่อันโหลด, ...ฯลฯ
--light ON, active alarm, battery unload, etc…

**DIMENSION**

เป็นช่วงค่าของ value, ซึ่งเป็นค่าพารามิเตอร์เฉพาะสำหรับอ็อบเจกต์ ที่ต้องการควบคุม สำหรับแต่ละ WHO (หรือสำหรับแต่ละฟังก์ชัน) จะมีตารางค่า DIMENSION ที่ถูกกำหนดไว้โดยเฉพาะ

สามารถที่จะร้องขอ, อ่านหรือเขียนค่าของ value ในแต่ละ dimension ได้ โดยสำหรับแต่ละ dimension จะมี prefixed number สำหรับค่า value ที่ถูกกำหนดใน VALUE field

ตัวอย่าง dimension: อุณหภูมิของเซนเซอร์, ระดับเสียงของลำโพง, เวอร์ชันเฟิร์มแวร์ของอุปกรณ์, ...ฯลฯ
--sensor temperature, loudspeaker volume, firmware version of a device, etc.

**VALUE**

เป็นการระบุค่า อ่าน/เขียน สำหรับ value ใน dimension

### Message

มี 4 ประเภทของ OpenWebNet Message:

ข้อความคำสั่ง/ สถานะ --(Command/Status Message)

ข้อความสถานะที่ต้องการร้องขอ --(Status Request Message)

ข้อความร้องขอ/อ่าน/เขียน dimension --(Request/Read/Write Dimension Message)

ข้อความแจ้ง --(Acknowledge Message)

*ข้อความคำสั่ง/สถานะ* --(Command/Status Message) :

```
*WHO*WHAT*WHERE##
```

*ข้อความสถานะที่ต้องการร้องขอ* --(Status Request Message) :

```
*#WHO*WHERE##
```

*ข้อความร้องขอ/อ่าน/เขียน dimension* --(Request/Read/Write Dimension Message) :

```
*#WHO*WHERE*DIMENSION##
```

อ่าน: --Read

```
*#WHO*WHERE*DIMENSION*VALUE1*…*VALUEn##
```

เขียน: --Write

```
*#WHO*WHERE*#DIMENSION*VALUE1*…*VALUEn##
```

*ข้อความแจ้ง* --(Acknowledge Message ACK) :

```
*#*1##
```

*ข้อความไม่ถูกต้อง* --(NACK) :

```
*#*0##
```

เกตเวย์ OpenWebNet
------------------

สามารถเป็นไปได้ที่จะสื่อสารกับบัส SCS home automation โดยการใช้ เกตเวย์ ที่เฉพาะเจาะจง
มี เกตเวย์ 2 ประเภทที่อนุญาตการเชื่อมต่อกับ field บัส โดยการใช้ โพรโทคอลstandard ที่แตกต่างกัน

* เกตเวย์ อีเทอร์เน็ต (Linux based)
* เกตเวย์ USB / RS232

**เกตเวย์อีเทอร์เน็ต**
ระบบที่ได้รับการติดตั้งในปัจจุบันโดย BTicino จะเป็นแบบ embedded web server ซึ่งทำงานในฐานะตัวแปลระหว่าง OpenWebNet message โดยใช้ TCP/IP และ SCS message ส่งผ่านต่อข้อมูลโดยทางบัส SCS

ในความเป็นจริงแล้วสามารถที่จะควบคุม 3 ชนิดของบัสที่แตกต่างกัน:

* บัส SCS
* KNX
* DMX

**เกตเวย์ USB / RS232**
เกตเวย์เป็นตัว interface โดยทำงานในฐานะตัวแปลระหว่าง OpenWebNet message และส่งผ่านโดย USB หรือ Serial จากนั้น SCS message จะส่งผ่านต่อข้อมูลโดยทาง บัส SCS

ตัวอย่าง
--------

ตัวอย่าง OpenWebNet message

**ข้อความคำสั่ง** --(Command Message)

ปิดไฟดวงที่ 77 --(Switch Off of light 77)

```
*1*0*77##
```

WHO = 1
WHAT = 0
WHERE = 77

**ข้อความสถานะ** --(Status Message)

ทำการ activate ส่วน scenario 1 ของ scenario unit 23 --(Scenario 1 of scenario unit 23 activated)

```
*0*1*23##
```

WHO = 0
WHAT = 1
WHERE = 23

**ข้อความร้องขอ** --(Request status message)

สถานะร้องขอสำหรับ probe 1 --(Status request of probe 1)

```
*#4*1##
```

WHO = 4
WHERE = 1

**ข้อความร้องขอ dimension** --(Request Dimension Message)

Request of Temperature Measured, probe 44 (ร้องขอสำหรับการวัดอุณหภูมิ, probe 44)

```
*#4*44*0##
```

WHO = 4
WHERE = 44
DIMENSION = 0

**ข้อความอ่าน dimension** --(Read Dimension Message)

วัดอุณหภูมิ, probe 44 --(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")

**ข้อความเขียน dimension** --(Write Dimension Message)

เซต volume ที่ 50% ณ environment 2 --(Volume set at 50%, environment 2)

```
*#16*#2*#1*16*##
```

WHO = 4
WHERE = #1
DIMENSION = 1
VALUE1 = 16

อ้างอิง
-------

* Moneta, D. Mauri, G. Bettoni, C. Meda, R. - Cesi ricerca (Italy)  *เก็บถาวร 2011-07-06 ที่ เวย์แบ็กแมชชีน Test Facility for the assessment of local energy management systems*; 19th Conference on Electricity Distribution, Vienna (21-24 May 2007).

* Moneta, D. Bisone, L. Mauri, G. Meda, R. - Cesi ricerca (Italy)  *New interactions between LV customers and the network: further possibilities for home automation functions* ; IEEE International Conference on Robotics and Automation, Rome (10-14 April 2007).

* Bonino, D. Castellina, E. Corno, F. - Politecnico di Torino (Italy)  *DOG: an Ontology-Powered OSGi Domotic Gateway*; Torino (September 2008).

เนื้อหาเพิ่มเติม
----------------

* Home automation
* KNX
* DMX

เว็บไซต์ที่เพิ่มเติม
--------------------

* MyOpen Bticino เก็บถาวร 2009-03-01 ที่ เวย์แบ็กแมชชีน
* DOG เก็บถาวร 2008-09-18 ที่ เวย์แบ็กแมชชีน A Domotic OSGi Gateway able to expose different domotic networks as a single, technology neutral, home automation system. It supports OpenWebNet protocol.
* IANA, TCP ports assignment. OpenWebNet is associated to port 20005