OpenWebNet

โพรโทคอล 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 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