智能家居通讯协议
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能家居通讯协议
一、前言
随着手机智能化的提高,基于手机的APP越来越多。我一直在思考,如果有一款应用能让我控制
我家里的所有电器设备,而且能根据家里的电器布局自定义控制界面,该有多好啊。我这么思考是有理由的,家里遥控器一大堆,说明书一大堆,要经常换电池,经常找遥控器,说明书倒是难得找,但要找时往往是找不到的。当然大的互联网公司正在联合大的家电厂家推出智能云家居计划,但我发现大家各自为政,并没有行成一个联盟首先制定一个统一的协议标准。也许有人会问,外国人不是制定了吗?但我觉得我们是有能力做这件事的,就看大家愿不愿意做了。智能手机的核心是外国人的,难道智能家居的核心协议也要是外国人的。国产空调,国产洗衣机,国产照明,国产电视机,国产电饭锅等在世界上已经占据了很多的市场份额,我想在智能家居这一块,我们如果不能做到引领世界,但也不能让外国人先入为主。
二、网络七层协议
OSI是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。OSI的7层从上到下分别是7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层其中高层,即7、6、5、4层定义了应用程序的功能,下面3层,即3、2、1层主要面向通过网络的端到端的数据流。
三、物理层
物理层包括有线(网线)、WIFI、电力猫。这三种我觉得各有利弊。有线我个人认为是最可靠的,但前提是你是新装修房子或着是舍得花大代价重新装修房子,对于像移动家电就不太实用,你得买一个至少24口的交换机。WIFI比较方便,移动性比较强,但就目前我没买到过在每个房间都有三格信号的无线路由器,当然我不舍得花钱。电力猫可以利用现有电源线,这是一个不错的选择。因此我觉得物理层可以是这三种互相弥补。
采用有线和电力猫时,用户无需配置,家电设为默认DHCP。采用WIFI时,该家电WIFI需支持热点模式和客户端模式,初始状态为热点模式,用户登录后可配置成客户端模式并设置所连接的热点。
四、数据链路层、网络层
这两层硬件已经实现了,这里就不讨论了。
五、传输层
TCP,UDP属于这一层。UDP不是面向连接的协议,会丢包,用在控制不合适,因此首选TCP。
六、会话层
HTTP协议是这一层比较核心和重要的协议,与大家的互联网生活息息相关。而xml协议则是走在http大道上的宝马。Xml可以是报文的重要组成格式,xml还用于作为界面的描述,Android、QT等都用它来描述界面。因此这一层理所当然要选择http+xml。
Xml可以用来描述界面,遥控器可以由硬的变成软的,甚至变成自己喜欢的风格,展示在你的手机上,当然风格可以变,LOGO最好还是用厂商的,不然光自己喜欢了,厂家会有意见的,你忘记了它的品牌,这就是你的过失。
接下来描述一下http+xml的报文格式,http头和xml头请参考相关文档。
1、获取能力集
请求:http://192.168.1.x/cgi-home/getcapability
正确回应:
BUTTON
STATIC
便于协议的扩展,先支持按钮和静态显示面板功能。
2、请求遥控
请求:http://192.168.1.x/cgi-home/login?username=xxx,password=xxx(MD5加密)
正确回应:ok
3、退出遥控
请求:http://192.168.1.x/cgi-home/loginout
正确回应:ok
4、获取厂商logo
获取图片的功能http自带,需要定义的是该图片的位置,暂定/home/factorylog.jpg 5、获取厂商遥控面板图片
获取图片的功能http自带,需要定义的是该图片的位置,暂定/ home/controlpanel.jpg 6、获取遥控面板描述
请求:http://192.168.1.x/cgi-home/getpaneldescribe
正确回应:
1
+
//对应按钮在厂商遥控面板图片的位置,以像素为单位
123
…
1
温度
//对应按钮在厂商遥控面板图片的位置,以像素为单位
度
…
N
…
7、发送控制码
请求:http://192.168.1.x/cgi-home/sendctrlcode?ID=1,ctrlcode=123
正确回应:ok
8、获取显示数据
请求:http://192.168.1.x/cgi-home/getshowdata
正确回应:
1
23