场景是指通过SA实现设备联动。例如,自动检测今天的天气情况,今天无雨,定时智能音箱播放浇花提醒,并且播报今天的天气情况。 根据自身需求,把多种控制并发的事情编辑成一个场景,并命名,可以通过场景控制很多设备,实现一键操作的功能。

场景的相关操作

1.创建场景

创建智能场景前请确保您的家庭已添加设备,且用户是否拥有创建场景的权限。

  • 场景名称

场景名称在该家庭下需要确保唯一性。

  • 触发条件

通过配置触发条件,达到条件后能执行对应的任务,并且可以设置触发条件的生效时段。触发条件分为三种

  1. 手动执行,点击即可执行

  2. 定时执行,如每天8点

  3. 设备状态变化时,如开灯时,感应到人时

当触发条件为手动触发时只能添加一种触发条件。而选择其他两种可以添加多种,同时需要确定条件关系。条件关系可以选择

  1. 满足所有条件

  2. 满足任一条件

  • 技术实现

系统中启动一个服务,作为消息队列(以下简称smq)的消费者,消费者不断去轮训消息队列,看看有没有新的数据,如果有就消费。 查看下面为伪代码:

当设置为手动执行的场景时,会添加一条任务数据,执行时间为当前时间,加进smq,等待消费者消费。

 

而设置为自动执行的场景时,会计算任务今天的下次执行时间,并添加任务数据,加进smq,等待消费者消费。

 

如果自动执行场景的生效时段为重复性,那么会在每天 23: 55:00 进行第二天任务编排

 

2.执行任务

当满足触发条件后,可以自动执行配置好的执行任务。执行任务认为两种

  1. 智能设备,如开灯,播放音乐

  2. 控制场景,如开启夏季晚会场景

  • 技术实现

任务执行,通过消费者消费smq中的任务,去执行run方法去执行对应的任务。

 

3.查看场景

场景分成 “手动” 和 “自动” 两个执行类型,页面加载时判断用户是否拥有控制场景的权限,在页面展示中 “手动”场景排在“自动”场景的上方;

  1. 手动类场景为“执行”按键,可直接点击触发执行任务

  2. 自动类场景为“开关”按键,设置打开或者关闭状态

4.注意事项

  • 场景的修改和控制不仅仅取决于用户是否拥有修改和控制场景的权限,还包括该用户是否有对场景中的设备操作项的控制权限。

    • eg:如果您拥有控制场景A的权限,但是您没有场景A里面设备B的开关控制权限,则您同样没有控制该场景A的权限。修改场景也是如此。

智汀家庭云-开发指南Golang:设备场景的更多相关文章

  1. 智汀家庭云-开发指南Golang:设备插件开发

    设备插件模块 开发前先阅读插件设计概要:智汀家庭云-开发指南Golang: 插件模块 使用 plugin-sdk 可以忽略不重要的逻辑,快速实现插件 插件实现 获取sdk go get github. ...

  2. 智汀家庭云-开发指南Golang:设备模块

    1.品牌 品牌指的是智能设备的品牌,SA通过插件的形式对该品牌下的设备进行发现控制.理论上来说一个品牌对应一个插件服务.您可以通过项目 根目录下的品牌查看SA支持的品牌.关于插件服务的详细信息可以参考 ...

  3. 智汀家庭云-开发指南Golang: 插件模块

    插件模块 当前所说的插件仅指设备类插件,插件为SA提供额外的设备发现和控制功能: 插件通过实现定义的grpc接口,以grpc服务的形式运行,提供接口给SA调用 插件同时需要http服务提供h5页面及静 ...

  4. 微信小程序云开发指南

    一.初识云开发 官方文档 小程序·云开发是微信团队联合腾讯云推出的专业的小程序开发服务. 开发者可以使用云开发快速开发小程序.小游戏.公众号网页等,并且原生打通微信开放能力. 开发者无需搭建服务器,可 ...

  5. 智捷公开课马上开始了-欢迎大家一起讨论学习-第一系列读《Swift开发指南(修订版) 》看Swift视频教程

    引用: 智捷课堂携手51CTO学院.图灵教育联合举办iOS线上培训就业班系列体验公开课. 分享移动开发.移动设计方向最新,最热,最抢眼技术热点以及设计经验.我们每周将最少举办一次公开课,同时会提前安排 ...

  6. 开发指南专题八:JEECG微云高速开发平台数据字典

       开发指南专题八:JEECG微云高速开发平台数据字典的使用 1.标签中使用数据字典 数据字典为系统中可能用到的字典类型数据提供了使用的便利性和可维护性.下面拉框标签<t:dictSele ...

  7. 开发指南专题4:JEECG高速微云开发平台--JEECG开发环境的搭建

    开发指南专题4:JEECG微云高速开发平台开发环境搭建 1. JEECG开发环境搭建 JEECG推荐的开发环境为Myeclipse8.5/Eclipse3.7+JDK1.6+Tomcat6.0 1.1 ...

  8. 开发指南专题六:JEECG微云高速开发平台代码生成

    开发指南专题六:JEECG微云高速开发平台代码生 1.1. 代码生成扫描路径配置 用代码生成器生成代码后.须要进行相关配置配置,扫描注入control.service.entity等; 具体操作过程例 ...

  9. 阿里云API网关(7)开发指南-API参考

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

随机推荐

  1. Java常用类之时间类

    JDK8之前日期时间API 1. java.lang.System类 2. java.util.Date类 3. java.text.SimpleDateFormat类 4. java.util.Ca ...

  2. Nacos集群部署:

    Nacos集群部署: 官网:    https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 1: 下载 Nacos1.2.0 链接:http ...

  3. spring学习日志三

    一.回顾 1.1 依赖注入的方式. set方法来注入 <property name="属性名" /> 构造方法来注入<construtor-arg index=& ...

  4. docker搭建mysql集群

    目录 一.集群方案 二.安装PXC集群 三.Haproxy负载均衡 四.访问测试 五.节点宕机或重启 六.参考 一.集群方案 1.Replication 速度快,但仅能保证弱一致性,适用于保存价值不高 ...

  5. Python之requests模块-cookie

    cookie并不陌生,与session一样,能够让http请求前后保持状态.与session不同之处,在于cookie数据仅保存于客户端.requests也提供了相应到方法去处理cookie. 在py ...

  6. vue的常见理论问题

    1.什么是 mvvm? mvvm 和 mvc 区别? MVVM 是 Model-View-ViewModel 的缩写.mvvm 是一种设计思想.Model 层代表数据模型,View 代表 UI 组件. ...

  7. 关于electron-vue打包后静态视频文件无法正常加载的问题解决方法

    最近在使用electron-builder构建vue项目的时候发现在生产模式下视频可以正常加载并显示,但是一旦打包到开发环境下,视频就读取不出来了,控制台也并没有报错 一开始博主以为是路径问题,在将路 ...

  8. Appium自动化(12) - 详解 HardwareActions 类里的方法和源码分析

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 HardwareAction ...

  9. excel中快速删除空白行/区域

    选中要删除的空白所在的列 按Ctrl+G 选择空值 右键->删除->整行

  10. 内部类访问外部类成员变量,使用外部类名.this.成员变量

    public class Outer { private int age = 12; class Inner { private int age = 13; public void print() { ...