Các phòng là một cách tự nhiên để phân vùng hành vi và hoạt động của con người, sử dụng trải nghiệm người dùng để tạo ra và cấu hình các thiết bị một cách đơn giản nhất, một vài thiết bị sẽ cần có khả năng thông báo vị trí của chúng. Vấn đềđáng quan tâm ở đây là làm thế nào để quảng bá thông tin đó. Ngoài ra, không phải thiết bị nào cũng luôn được đặt ở một vị trí cố định, một vài thiết bị có thể được dịch chuyển đến những chỗ khác. Do đó, vị trí của các thiết bị và các dịch vụ tương ứng có khả năng thay đổi và hệ thống cần phải được thông báo về những thay đổi đó.
Thông tin về vị trí của thiết bị có nhiều ý nghĩa trong việc quản lý các thiết bị trong nhà và tại các phòng. Dựa vào thông tin này hệ thống sẽ đề xuất các gợi ý tích hợp các thiết bị trong cùng phạm vi nhằm tạo ra các kịch bản điều khiển thông minh. Hơn nữa, việc thông báo về thay đổi vị trí thiết bị giúp người quản trị hệ thống có thể điều chuyển các thiết bị thay thế thiết bị khác khi xảy ra sự cố thiết bị như hỏng hóc hoặc không hoạt động.
Theo đặc tả kỹ thuật UPnP không có quy định về thiết bị hoặc dịch vụ thông báo về vị trí của nó trong quá trình thiết lập ban đầu và trong các thông tin quảng bá. Đặc tả kỹ thuật UPnP cũng không quy định về thông tin này trong các bản mô tả thiết bị dưới dạng XML. Do đó thông tin về vị trí sẽ cần được cung cấp bằng các dịch vụ riêng biệt trong thiết bị. Tuy nhiên không có dịch vụ vị trí UPnP tiêu chuẩn nào được đưa ra. Các thiết bị UPnP được sử dụng trong đồ án sẽ được tích hợp dịch vụ vị trí bao gồm thông tin cơ bản về thông tin vị trí và thông tin này sẽ tự động gửi sự kiện tới các điểm điều khiển khi có sự thay đổi giá trị dữ liệu.
38
Một vấn đề được đặt ra là việc cung cấp thông tin thiết bị thông qua dịch vụ sẽ gây khó khăn cho các điểm điều khiển xác định một cách nhanh chóng vị trí của thiết bị. Các điểm điều khiển này sẽ phải lặp qua tất cả các thiết bị sẵn có và gửi truy vấn tới các dịch vụ vị trí. Tuy nhiên phương pháp này sẽ tiêu tốn nhiều thời gian và tài nguyên mạng.
Kutter et al đã có đưa ra một giải pháp để giải quyết vấn đề này. Họ đề xuất mở rộng bản tin SSDP, bản tin này được gửi đi bởi thiết bị để quảng bá về thiết bị, bằng cách thêm các tiêu đề “Mobility” và “Locality” để quảng bá về thuộc tính động và vị trí thiết bị. Phương pháp này cung cấp điểm điều khiển với sự hiểu biết về thông tin vị trí thiết bị khi cần truy vấn tới thiết bị này thông qua vị trí. Dịch vụ vị trí UPnP vẫn được sử dụng để cung cấp để tương thích, cho phép các điểm điều khiển lấy được thông tin vị trí của các thiết bị. Trong trường hợp sử dụng các thiết bị di động, một bản tin SSDP mới có thể quảng bá bất cứ lúc nào khi vị trí thiết bị có sự thay đổi và giá trị biến số vị trí của dịch vụ vị trí được thông báo. Tuy nhiên các bản tin SSDP được tạo ra liên tục dưới dạng các gói thông tin theo thời gian, các gói thông tin này có thể là “NOTIFY” hoặc “M-SEARCH” bao gồm các thông tin về các dịch vụ. Việc quản lý các bản tin để lấy thông tin về vị trí thiết bị hoặc khi có sự thay đổi vị trí sẽ rất khó khăn.
39
Hình 2.2 : Danh sách các bản tin SSDP
Trong phạm vi đồ án, em đưa ra giải pháp sử dụng thêm dịch vụ vị trí với các hàm để thiết lập và lấy thông tin về vị trí của thiết bị thông qua biến số trạng thái. Biến số này có thể gửi sự kiện khi có thay đổi giá trị. Tất cả thông tin về vị trí của các thiết bị sẽ được lưu dưới dạng tập tin XML khi điểm điều khiển phát hiện thiết bị trong mạng. Cấu trúc tập tin này bao gồm các thông tin cần thiết để phân biệt các thiết bị như UDN (Unique Device Name), kiểu chính của thiết bị, thông tin về vị trí thiết bị.
40 <?xml version="1.0" encoding="utf-8"?> <Devices> <Device UDN="Switch-121-2bde-4ab4-a6e3-93ad6fe4562"> <Type>Switch</Type> <Location>Utility Room</Location> </Device> <Device UDN="Phone-647-4bde-4bb4-aee3-73ad6fe790ab"> <Type>Phone</Type> <Location>Landing</Location> </Device> <Device UDN="CDPlayer-f778-4511-b2fe-f51dd5932ed2"> <Type>CDPlayer</Type> <Location>Bedroom 1</Location> </Device> <Device UDN="Light2-f-72b7-4606-b2e2-293587f476bc"> <Type>Light</Type> <Location>Living Room</Location> </Device> <Device UDN="tv-767a-c767-47aa-bb9d-c5a2a0232cd8"> <Type>TV</Type> <Location>Living Room</Location> </Device> <Device UDN="Time-555-9832-4504-8de4-029f4a04ed98"> <Type>Time</Type> <Location>Utility Room</Location> </Device> <Device UDN="Sensor-226-2bde-4ab4-a6e3-93ad6fe4562">
41
<Type>MotionSensor</Type>
<Location>Living Room</Location> </Device>
</Devices>
Thông tin thiết bị lưu dưới dạng XML
Khi thiết bị có sự thay đổi về thông tin vị trí, giá trị của biến trạng thái “Locality” thay đổi, biến số trạng thái gửi thông báo sự kiện về sự thay đổi đó. Các điểm điều khiển hoặc các thiết bị khác theo dõi thiết bị sẽ dựa trên giá trị UDN của thiết bị đó để cập nhật lại thông tin vị trí trong tập tin XML. Quá trình lưu thông tin thiết bị và cập nhật thông tin vị trí được thực hiện thông qua việc sử dụng ngôn ngữ XML đã giới thiệu ở trên, chi tiết hơn sẽđược mô tảở phần tiếp theo. Dựa trên tập tin XML này, hệ thống sẽ truy vấn thông tin và đề xuất các thiết bị phù hợp để xây dựng các kịch bản điều khiển thiết bị.
42