OpenWebNet

**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) *http://www.cired.be/CIRED07/pdfs/CIRED2007_0522_paper.pdf  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) *http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?tp=&arnumber=4209527&isnumber=4209049 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) *http://www.cad.polito.it/pap/db/ictai08.pdf DOG: an Ontology-Powered OSGi Domotic Gateway*; Torino (September 2008).

## เนื้อหาเพิ่มเติม
* Home automation
* KNX
* DMX

## เว็บไซต์ที่เพิ่มเติม
* MyOpen Bticino 
* DOG  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

หมวดหมู่:บัสคอมพิวเตอร์