智汀家庭云-开发指南Golang:设备场景
场景是指通过SA实现设备联动。例如,自动检测今天的天气情况,今天无雨,定时智能音箱播放浇花提醒,并且播报今天的天气情况。 根据自身需求,把多种控制并发的事情编辑成一个场景,并命名,可以通过场景控制很多设备,实现一键操作的功能。
场景的相关操作
1.创建场景
创建智能场景前请确保您的家庭已添加设备,且用户是否拥有创建场景的权限。
- 场景名称
场景名称在该家庭下需要确保唯一性。
- 触发条件
通过配置触发条件,达到条件后能执行对应的任务,并且可以设置触发条件的生效时段。触发条件分为三种
手动执行,点击即可执行
定时执行,如每天8点
设备状态变化时,如开灯时,感应到人时
当触发条件为手动触发时只能添加一种触发条件。而选择其他两种可以添加多种,同时需要确定条件关系。条件关系可以选择
满足所有条件
满足任一条件
- 技术实现
系统中启动一个服务,作为消息队列(以下简称smq)的消费者,消费者不断去轮训消息队列,看看有没有新的数据,如果有就消费。 查看下面为伪代码:

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

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

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

2.执行任务
当满足触发条件后,可以自动执行配置好的执行任务。执行任务认为两种
智能设备,如开灯,播放音乐
控制场景,如开启夏季晚会场景
- 技术实现
任务执行,通过消费者消费smq中的任务,去执行run方法去执行对应的任务。

3.查看场景
场景分成 “手动” 和 “自动” 两个执行类型,页面加载时判断用户是否拥有控制场景的权限,在页面展示中 “手动”场景排在“自动”场景的上方;
手动类场景为“执行”按键,可直接点击触发执行任务
自动类场景为“开关”按键,设置打开或者关闭状态
4.注意事项
- 场景的修改和控制不仅仅取决于用户是否拥有修改和控制场景的权限,还包括该用户是否有对场景中的设备操作项的控制权限。
- eg:如果您拥有控制场景A的权限,但是您没有场景A里面设备B的开关控制权限,则您同样没有控制该场景A的权限。修改场景也是如此。
智汀家庭云-开发指南Golang:设备场景的更多相关文章
- 智汀家庭云-开发指南Golang:设备插件开发
设备插件模块 开发前先阅读插件设计概要:智汀家庭云-开发指南Golang: 插件模块 使用 plugin-sdk 可以忽略不重要的逻辑,快速实现插件 插件实现 获取sdk go get github. ...
- 智汀家庭云-开发指南Golang:设备模块
1.品牌 品牌指的是智能设备的品牌,SA通过插件的形式对该品牌下的设备进行发现控制.理论上来说一个品牌对应一个插件服务.您可以通过项目 根目录下的品牌查看SA支持的品牌.关于插件服务的详细信息可以参考 ...
- 智汀家庭云-开发指南Golang: 插件模块
插件模块 当前所说的插件仅指设备类插件,插件为SA提供额外的设备发现和控制功能: 插件通过实现定义的grpc接口,以grpc服务的形式运行,提供接口给SA调用 插件同时需要http服务提供h5页面及静 ...
- 微信小程序云开发指南
一.初识云开发 官方文档 小程序·云开发是微信团队联合腾讯云推出的专业的小程序开发服务. 开发者可以使用云开发快速开发小程序.小游戏.公众号网页等,并且原生打通微信开放能力. 开发者无需搭建服务器,可 ...
- 智捷公开课马上开始了-欢迎大家一起讨论学习-第一系列读《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等; 具体操作过程例 ...
- 阿里云API网关(7)开发指南-API参考
网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...
随机推荐
- js判断对象的某个属性是否存在
参考:https://www.jb51.net/article/141994.htm 原始数据, [ {"name":"向阳镇","id": ...
- linux centos 设置笔记本合盖不待机
1.设置笔记本合盖不待机 打开配置文件 vi /etc/systemd/logind.conf 将 HandleLidSwitch 变量前的注释 # 去掉 修改 HandleLidSwitch 变量参 ...
- 《redis 5设计与源码分析》:第二章 简单动态字符串
介绍 简单动态字符串(Simple Dynamic Strings, SDS)是Redis的基本数据结构之一,用于存储字符串和整型数据.它的特点是:方便扩容.二进制安全. 二进制安全 在C语言中,用& ...
- Redis(一):安装
Ubuntu中使用yum安装redis: sudo apt-get install redis-server # 安装redis,安装完成后会自动启动 ps aux|grep redis # 查看进程 ...
- SpringBoot应用中使用AOP记录接口访问日志
SpringBoot应用中使用AOP记录接口访问日志 本文主要讲述AOP在mall项目中的应用,通过在controller层建一个切面来实现接口访问的统一日志记录. AOP AOP为Aspect Or ...
- C# - 音乐小闹钟_BetaV3.0
时间:2017-11-22 作者:byzqy 介绍: 音乐小闹钟 BetaV3.0 新鲜出炉了,快来围观吧!上效果图: 是不是觉得顿时变得高大上了许多呢?^_^ 工具/原料: (操作系统:Window ...
- Python3-sqlalchemy-orm 查询、修改
#-*-coding:utf-8-*- #__author__ = "logan.xu" import sqlalchemy from sqlalchemy import crea ...
- vue 输入框禁止输入空格 ,只能输入数字,禁止输入数字
正则表达式: @input="form.userName = form.userName.replace(/\s+/g,'')" ( 禁止输入空格) @input=&q ...
- Redis++:Redis 内存爆满 之 淘汰策略
前言: 我们的redis使用的是内存空间来存储数据的,但是内存空间毕竟有限,随着我们存储数据的不断增长,当超过了我们的内存大小时,即在redis中设置的缓存大小(maxmeory 4GB),redis ...
- MySQL——InnoDB事务
事务:全部成功 或 全部失败! ------------------------------------------------------------------------------------ ...