智汀家庭云-开发指南Golang:设备模块
1.品牌
品牌指的是智能设备的品牌,SA通过插件的形式对该品牌下的设备进行发现控制。理论上来说一个品牌对应一个插件服务。您可以通过项目 根目录下的品牌查看SA支持的品牌。关于插件服务的详细信息可以参考 plugin
2.设备的相关操作
在SA中是通过一个个命令对设备进行操作的,如果您想使用这些命令操作某一品牌的设备,首先应该安装该品牌的插件。在SA中安装、更新、 移除插件。请参考 plugin SA处理设备命令的流程:客户端通过websocket消息的形式将对应的操作命令发送给SA,SA通过grpc的方式将消息转发给插件服务,插件 服务处理后,将处理的结果通过grpc的方式发送给SA,SA将处理结果以websocket消息返回给客户端。
(1)设备的发现与添加
发现设备 发现设备需向SA发送以下格式的websocket消息,字段说明: domain: 插件名称;service:设备命令。
成功后SA会返回以下消息
manufacturer之后的字段为设备属性,取决于设备的类型
添加设备 将发现设备操作获取的设备主要信息通过添加设备接口以下列格式发送到SA。如果添加的设备为SA,则type为smart_assistant
SA会将该设备持久化保存在数据库中,之后便可通过插件控制设备。
(2) 设备控制与设备信息
客户端同样是以websocket消息的形式将命令发送给SA。因为不同类型的设备的命令不一定相同,所以这里只以yeelight灯进行示例展示。更多类型设备的 消息格式请阅读 WebSocket API 消息定义
- 设备信息
- 开关
- 设置亮度
- 设置色温
3.设备的权限
SA会从插件的安装目录 “插件安装目录:../../static/plugins” 读取每一个插件的config.yaml文件以获得该设备具有的操作功能。具体方法可以查看 ”获取设备的操作功能:device.go“ 文件中的GetDeviceActions()方法。SA为设备的每一个功能操作设置了权限 控制,这意味着您可能只能控制某个设备的一种或多种功能。关于权限的详细信息,您可以阅读 "用户模块-权限”。您可以通过获取用户权限接口 来查看您拥有的设备控制权限。
智汀家庭云-开发指南Golang:设备模块的更多相关文章
- 智汀家庭云-开发指南Golang:设备插件开发
设备插件模块 开发前先阅读插件设计概要:智汀家庭云-开发指南Golang: 插件模块 使用 plugin-sdk 可以忽略不重要的逻辑,快速实现插件 插件实现 获取sdk go get github. ...
- 智汀家庭云-开发指南Golang:设备场景
场景是指通过SA实现设备联动.例如,自动检测今天的天气情况,今天无雨,定时智能音箱播放浇花提醒,并且播报今天的天气情况. 根据自身需求,把多种控制并发的事情编辑成一个场景,并命名,可以通过场景控制很多 ...
- 智汀家庭云-开发指南Golang: 插件模块
插件模块 当前所说的插件仅指设备类插件,插件为SA提供额外的设备发现和控制功能: 插件通过实现定义的grpc接口,以grpc服务的形式运行,提供接口给SA调用 插件同时需要http服务提供h5页面及静 ...
- 微信小程序云开发指南
一.初识云开发 官方文档 小程序·云开发是微信团队联合腾讯云推出的专业的小程序开发服务. 开发者可以使用云开发快速开发小程序.小游戏.公众号网页等,并且原生打通微信开放能力. 开发者无需搭建服务器,可 ...
- 12-《Node.js开发指南》-核心模块
全局对象 Node.js中的全局对象是global 所有全局变量(除了global本身以外)都是global对象的属性 最根本的作用为全局变量的宿主 全局变量 //满足以下条件的是全局变量 a.在最外 ...
- 智捷公开课马上开始了-欢迎大家一起讨论学习-第一系列读《Swift开发指南(修订版) 》看Swift视频教程
引用: 智捷课堂携手51CTO学院.图灵教育联合举办iOS线上培训就业班系列体验公开课. 分享移动开发.移动设计方向最新,最热,最抢眼技术热点以及设计经验.我们每周将最少举办一次公开课,同时会提前安排 ...
- 开发指南专题八:JEECG微云高速开发平台数据字典
开发指南专题八:JEECG微云高速开发平台数据字典的使用 1.标签中使用数据字典 数据字典为系统中可能用到的字典类型数据提供了使用的便利性和可维护性.下面拉框标签<t:dictSele ...
- 开发指南专题4:JEECG高速微云开发平台--JEECG开发环境的搭建
开发指南专题4:JEECG微云高速开发平台开发环境搭建 1. JEECG开发环境搭建 JEECG推荐的开发环境为Myeclipse8.5/Eclipse3.7+JDK1.6+Tomcat6.0 1.1 ...
- 开发指南专题六:JEECG微云高速开发平台代码生成
开发指南专题六:JEECG微云高速开发平台代码生 1.1. 代码生成扫描路径配置 用代码生成器生成代码后.须要进行相关配置配置,扫描注入control.service.entity等; 具体操作过程例 ...
随机推荐
- 【小技巧】java的List分页
今天,工作上,由于业务的一些特殊性,需要拿到数据后在java代码中进行分页. 写了一个工具类,记录如下: import java.util.ArrayList; import java.util.Li ...
- (强制)要求覆写equals必须覆写hashCode(原理分析)
hashCode和equals hashCode和equals用来标识对象,两个方法协同工作可用来判断两个对象是否相等.众所周知,根据生成的哈希将数据散列开来,可以使存取元素更快.对象通过调用Obje ...
- 莫逸风CSDN文章目录
『Ⅱ』-----随笔 莫逸风CSDN文章目录 The Programmer's Oath程序员的誓言-- 今天突发奇想写了一个小工具,CSDN文章目录生成器 vue去掉一些烦人的校验规则 输入npm ...
- JDBC中级篇——批处理和PreparedStatement对有sql缓冲区的数据库的友好,测试
注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接: package a_batch; import util.JdbcUtil; import java.sql.Connection; ...
- 刷题-力扣-63. 不同路径 II
63. 不同路径 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/unique-paths-ii/ 著作权归领扣网络所有.商业转 ...
- mybatis第一个程序随笔
今天继续学习了解如何写一个mybatis程序 创建了Dao层 1.1 创建一个UserDao接口 1.2 创建UserMapper.xml文件 在mybaits中文手册查找配置信息 <?xml ...
- IPv6 QoS 多媒体应用:性能分析 (上)
IPv6 QoS 多媒体应用:性能分析 Assured Forwarding (AF):保证转发 Expedited Forwarding (EF):快速转发 Traffic aggregatio ...
- 多个mysql同时运行
一.准备 mysql下载地址 https://dev.mysql.com/downloads/mysql/ 1.下载 2.解压缩 3.创建my.ini [Client] port = 3307 [my ...
- Jenkins手动下载并安装插件
最近遇到Jenkins插件无法自动安装的问题,在插件管理页面的[升级站点]使用镜像url也无法解决.于是决定手动下载并安装Jenkins插件,具体步骤如下. Step1:进入Jenkins官网的插件下 ...
- Django——cookie保持登录
普通登录时,无法保持登录的状态,每一次请求时都需要重新登录. 而在登录时,生成cookie并保存在浏览器中,这样每次登录就会携带登录信息,就可以保持登录状态了. 操作cookie语法: # (1) 设 ...