基于Html5的智能家居手机客户端设计(一)——找到openhab的rest

  今天开始我的毕业设计,基于HTML5的智能家居手机客户端设计。挑剔了好久,终于找到我可以使用国外开源项目智能家居核心,通过restful(我也不是很懂,毕竟我只是电子信息学院爱好网络)。

  REST描述了一个架构样式的网络系统,比如 web 应用程序。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。

  首先我选定openhab作为服务器端,虽然它自带手机客户端,但是由于我比较喜欢它,我还是想给它做一个手机客户端,由于使用HTML技术我也可以使用phonegap用一套代码制作各个平台使用的手机客户端。

  首先看看openhab输出的xml格式:http://192.168.0.19:8080/rest

  得到:

  

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<openhab>
<link type="items">http://192.168.0.19:8080/rest/items</link>
<link type="sitemaps">http://192.168.0.19:8080/rest/sitemaps</link>
</openhab>

可以看出它包含一个sitemap的选项可以查找到所有站点地图;通过items可以找到所有item(由于篇幅原因,item有所精简)

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<items>
<item>
<type>GroupItem</type>
<name>All</name>
<state>Undefined</state>
<link>http://192.168.0.19:8080/rest/items/All</link>
</item>
<item>
<type>GroupItem</type>
<name>gGF</name>
<state>Undefined</state>
<link>http://192.168.0.19:8080/rest/items/gGF</link>
</item>
<item>
<type>GroupItem</type>
<name>FF_Corridor</name>
<state>OFF</state>
<link>http://192.168.0.19:8080/rest/items/FF_Corridor</link>
</item>
<item>
<type>GroupItem</type>
<name>Lights</name>
<state>ON</state>
<link>http://192.168.0.19:8080/rest/items/Lights</link>
</item>
<item>
<type>GroupItem</type>
<name>Heating</name>
<state>ON</state>
<link>http://192.168.0.19:8080/rest/items/Heating</link>
</item>
<item>
<type>GroupItem</type>
<name>Temperature</name>
<state>20.12500000</state>
<link>http://192.168.0.19:8080/rest/items/Temperature</link>
</item>
<item>
<type>GroupItem</type>
<name>Windows</name>
<state>OPEN</state>
<link>http://192.168.0.19:8080/rest/items/Windows</link>
</item>
<item>
<type>DimmerItem</type>
<name>Light_GF_Living_Table</name>
<state>0</state>
<link>
http://192.168.0.19:8080/rest/items/Light_GF_Living_Table
</link>
</item>
<item>
<type>SwitchItem</type>
<name>Light_GF_Toilet_Ceiling</name>
<state>OFF</state>
<link>
http://192.168.0.19:8080/rest/items/Light_GF_Toilet_Ceiling
</link>
</item>
</items>

由此可以看出,openhab的REST输出是一个xml文件,所以我们只需要解析xml就好了。

 —————————————本文由本人在博客园首发,在开源智能家居论坛有帖,转发请保留此链接———————————————

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。