博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现一个yeelink一样的服务平台
阅读量:6092 次
发布时间:2019-06-20

本文共 2223 字,大约阅读时间需要 7 分钟。

  hot3.png

实现一个yeelink一样的服务平台

前段时间分析yeelink的服务平台,专门去注册了一个帐号,写了一些代码,现在把他记录下来。

根据yeelink的api文档能够分析出来一些url,要实现一个yeelink一样的服务平台只需要实现这个url就可以。

通过分析文档里面有几个对象,用户,设备,传感器,一个用户对应多个设备,一个设备对应多个传感器。

模型

代码如下:

class User(db.Model):    id = db.Column(db.Integer, primary_key=True)    username = db.Column(db.String(80), unique=True)    email = db.Column(db.String(120), unique=True)    devices = db.relationship("Device", backref="user",   	 			lazy="dynamic")    def __init__(self, username, email):    	self.username = username    	self.email = email    def __repr__(self):    	return "
" % self.usernameclass Device(db.Model): id = db.Column(db.Integer, primary_key=True) source = db.Column(db.Integer) name = db.Column(db.String(80), unique=True) tags = db.Column(db.String(80)) description = db.Column(db.String(512)) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) sensors = db.relationship('Sensor', backref='device', lazy='dynamic') def __init__(self,name,uid): self.name = name self.user_id = uid def __repr__(self): return '
' % self.nameclass Sensor(db.Model): id = db.Column(db.Integer, primary_key=True) source = db.Column(db.Integer) name = db.Column(db.String(80), unique=True) tags = db.Column(db.String(80)) description = db.Column(db.String(512)) device_id = db.Column(db.Integer, db.ForeignKey('device.id')) status=db.Column(db.Integer) def __init__(self,name,did): self.name = name self.device_id = did def __repr__(self): return '
' % self.name`

实现url

主要有,

@app.route('/v1.0/device/
/sensor/
/datapoints',methods=['POST', 'GET'])这个是arduino用来访问传感器的url,did设备id,sid,传感器id

其他url实现和这个url一样, 然后再就是用户管理,设备管理,传感器管理方面的工作,这个比较简单。 arduino部分的代码直接用yeelink的就可以,更改代码里面的服务器地址即可。

整个代码采用python,flask实现,

@app.route('/v1.0/device/
/sensor/
/datapoints',methods=['POST', 'GET'])def datapoints(did,sid): dl = Device.query.filter_by(id=did).all() if len(dl)>0 : sl = Sensor.query.filter_by(id=sid).all() if len(sl)>0 : s = sl[0] if s.status == 1: return "{1}" return "{0}"

这部分能测试yeelink网页开关led那个例子。

转载于:https://my.oschina.net/gotham/blog/295809

你可能感兴趣的文章
Windows 8 - 构建更健康的存储
查看>>
试验一下
查看>>
借助宁盾,搞定滴滴出行双因素认证解决方案
查看>>
Linux常用Debug命令
查看>>
Android4.4的zygote进程
查看>>
android 同步联系人
查看>>
27. 文件系统——编译安装源码格式的rpm包(src.rpm)
查看>>
IOS atomic与nonatomic,assign,copy与retain的定义和区别
查看>>
NO2
查看>>
rsync非典型运用
查看>>
LAMP架构搭建与优化(3.3-3.5)
查看>>
使用云祺虚拟机备份软件瞬时恢复Redhat RHV/Ovirt虚拟机
查看>>
中国首个 SaaS 模式的云告警平台安卓版 APP 上线
查看>>
Centos7搭建yum本地源
查看>>
我的友情链接
查看>>
mysql 主从分离 读写分离(mysql-proxy)
查看>>
linux笔记 1-11-系统日志之时间同步
查看>>
剑指,offer10
查看>>
FreeMarker Demo
查看>>
三级联动
查看>>