智汀家庭云-开发指南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等; 具体操作过程例 ...
随机推荐
- WPF三维立体效果3D
并不是真的3D,类似游戏的2.5D. 先上效果图. 变形一下也可以 起先我是想,把这种绘图啊啥的,都做成控件,给别人直接用就行了.但是做的过程中发现. 要做简单易用的控件,实在是花时间. 而且花的时 ...
- uwp 的】listView 选择
xml 代码 ---------------------------------------------------------- <Page x:Class="ContentCont ...
- 统计MySQL数据库硬盘占用量大小
select TABLE_NAME, concat(truncate(data_length/1024/1024,2),' MB') as data_size, concat(truncate(ind ...
- cmd关闭端口占用
netstat -nao |findStr "8080" taskkill /pid 15406 /f
- Hutool中那些常用的工具类和方法
Hutool中那些常用的工具类和方法 Hutool是一个Java工具包,它帮助我们简化每一行代码,避免重复造轮子.如果你有需要用到某些工具方法的时候,不妨在Hutool里面找找,可能就有.本文将对Hu ...
- python操作图片
时间:2018-11-30 记录:byzqy 标题:python实现图片操作 地址:https://blog.csdn.net/baidu_34045013/article/details/79187 ...
- Learning to Compare: Relation Network for Few-Shot Learning 论文笔记
主要原理: 和Siamese Neural Networks一样,将分类问题转换成两个输入的相似性问题. 和Siamese Neural Networks不同的是: Relation Network中 ...
- AN INTEGER FORMULA FOR FIBONACCI NUMBERS
https://blog.paulhankin.net/fibonacci/ This code, somewhat surprisingly, generates Fibonacci numbers ...
- Flask - 访问返回字典的接口报错:The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a dict.
背景 有一个 Flask 项目,然后有一个路由返回的是 dict 通过浏览器访问,结果报错 关键报错信息 TypeError: 'dict' object is not callable The vi ...
- Linux 动态库的编译和使用
1. 动态链接库简介 动态库又叫动态链接库,是程序运行的时候加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序.动态库是目标文件的集合,目标文件在动态库中的组织方式是按特殊的方式组 ...