【2014-03-04】yeelink使用笔记:注册和API学习

📅 2026/8/20 23:01:43
【2014-03-04】yeelink使用笔记:注册和API学习
[历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2014-03-04 标题yeelink使用笔记注册和API学习分类操作系统 / linux / 树莓派 标签python jython·yeelinkyeelink使用笔记注册和API学习YeeLink与【 读秒 】通讯使用【 soapUI 】使用YeeLink自带工具使用curl命令使用python设置【 读秒 】传感器的数据最近在学习树莓派的时候看别人用到了yeelink这个网站感觉蛮好玩的自己也学习了一下。这里备注下YeeLink官网【 http://www.yeelink.net/ 】介绍【 http://www.yeelink.net/developer/doc/11 】使用YeeLink很简单首先注册一个用户然后就可以在自己的用户下建立若干个设备每个设备下可以建立若干个传感器。这样就可以通过HTTP进行通讯了。如下图这里作者在设备下面新建个【 读秒 】 传感器用来学习YeeLink的API。与【 读秒 】通讯YeeLlink的API非常简单易用连接如下【 http://www.yeelink.net/developer/api 】可以直接使用HTTP进行通讯不过首先要获取自己的API KEY这个获取如下图下面作者备份下3种通讯方法使用【 soapUI 】soapUI的官网【 http://www.soapui.org/ 】soapUI关于http header的设置【 http://www.soapui.org/SOAP-and-WSDL/adding-headers-and-attachments.html 】下载和安装SoapUI作者就不贴图了这里作者贴下如何简单的使用新建工程在工程下新建testsuite****在testsuite下新建TestCase****在testcase下新建teststep****到这里我们就可以使用teststep进行API的学习了这里作者举两个例子截图使用soapUI获取设备列表API的截图如下那么soapUI的teststep的设置如下图要注意headers的tianjia上传数值到传感器首先要获得传感器的ID以及传感器所属设备的ID获取方式如下然后查看API的介绍这里【 读秒 】传感器是数值型的因此我们可以只关注数值型的API介绍需要注意的是这边关于上传间隔的要求以及timestamp的处理。teststep的实现如下到这里就可以运行teststep进行API学习了。使用YeeLink自带工具地址如下【 http://www.yeelink.net/developer/debug 】就不在过多的介绍了。使用curl命令API附带有curl命令的格式也不过多介绍了另外也可参考这篇文章的后半部分【 http://www.2fz1.com/?p370 】使用python可以使用python进行http交互作者使用的是【 python3.3 的 urllib.request】在网上搜索了很多资料发现还是看API最方便了参考链接如下 【 http://docs.python.org/3.3/library/urllib.request.html 】这里就直接贴代码了importurllib.requestdefaddKeyToHeader(req):req.add_header(U-ApiKey,XXX);defhttpGet(str):requrllib.request.Request(str,methodGET);addKeyToHeader(req);rurllib.request.urlopen(req);print(req.full_url);# print(r.info());# print(r.geturl());print(r.read().decode(utf-8));defhttpPost(str,data):requrllib.request.Request(str,methodPOST);addKeyToHeader(req);req.datadata.encode(encodingutf-8);rurllib.request.urlopen(req);print(req.full_url);print(req.data);# print(r.info());# print(r.geturl());# print(r.read().decode(utf-8));print(r.status);if__name____main__:print(GetDevices:);httpGet(http://api.yeelink.net/v1.0/devices);print(GetSensors Of Device 8060:);httpGet(http://api.yeelink.net/v1.0/device/8060/sensors);print(Upload Data to Sensor 12798:);httpPost(http://api.yeelink.net/v1.0/device/8060/sensor/12798/datapoints,{\value\:80});设置【 读秒 】传感器的数据这里我们使用python来模拟一个真实的传感器在上传数据每隔一段时间将当前的秒数上传到传感器中,代码如下importurllib.requestimporttimeimportrandomdefgetCurrSeconds():returntime.strftime(%S,time.localtime());defaddKeyToHeader(req):req.add_header(U-ApiKey,XXXX);defhttpPost(str,data):requrllib.request.Request(str,methodPOST);addKeyToHeader(req);req.datadata.encode(encodingutf-8);rurllib.request.urlopen(req);print(data);if__name____main__:print(Upload Data to Sensor 12819:);while1:try:httpPost(http://api.yeelink.net/v1.0/device/8060/sensor/12819/datapoints,{\value\:getCurrSeconds()});time.sleep(random.randint(30,60));except:print(Exception Occured,Sleep More);time.sleep(300);截图如下不过最后作者发现一个问题就是经常性的报406错误即上传间隔太紧密了但是作者调低了上传间隔仍然有问题。还请路过的各位大牛指点迷津。