开发者学堂课程【物联网应用开发 IoT Studio训练营: IoT Studio 物联网开发训练营 第三天 云组态进阶开发】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/910/detail/14410
IoT Studio 物联网开发训练营 第三天 云组态进阶开发
目录:
一、业务逻辑
二、自定义组件
三、推广你的移动应用
一、业务逻辑
1.介绍
(1)物联网业务逻辑的开发工具,支持通过编排服务节点的方式快速完成简单的物联网业务逻辑的设计。
l 简单易用:可视化编排方式提供免代码/低代码能力
l 丰富的编排能力:提供通用型节点和领域节点多种编排能力
l 云端托管服务:云端托管能力,开箱即用
l 持续的功能集成:高可用、稳定的持续集成
(2)业务逻辑编排操作界面由节点、编排器、调试面板、操作栏和属性面板组成
① 编辑器有五个部分组成:左侧栏是节点的选择面板,底部是操作栏用户在进行服务编辑对服务进行部署、发布以及对应的调试工作,中间是用于承载整个可视化搭建中逻辑编排里面的节点拖拽的容器和画布。进行服务编排时是将左侧的一些节点通过一些配置后在编辑器上面用对应的线条把对应的逻辑串起来。
② 调试面板:在业务逻辑编排的这个开发过程中,需要有一些这种开发和调试的工作,是将调试的一些结果进行透出了一个面板。
③ 属性面板:每一块节点,需要有一些属性的一块配置,以及节点所需要填入的一些必填的信息。通过整个可视化编辑器里对编辑器各个组成部分的了解。
(3)当前业务逻辑编排,节点大体上是分为三大类
① 第一类:触发和输入节点呢。每个业务逻辑编排,所编排出来的服务只有一个起始节点。这个起始节点通常是由一些对应的条件进行触发,或者一些用户的和系统的主动调用发起,命名为处罚和失误节点。
② 第二类:起始节点之后需要满足对应的一些特定功能。通常称之为功能节点,在每一个服务里面它支持的功能型节点是不确定的。
③ 第三类:输出型节点。服务里面需要输出结果时的一个节点承载。
2.搭建一个编排服务
(1)流程:
创建项目——创建对应的服务——编辑器编辑——部署/调试——发布——服务应用
(2)调试方式:
云端调试:需要在服务开发之后点击部署/调试操作
设备调试:mqt 调试、空间调试设备触发调试。它需要由设备端里面有对应的一些条件来进行触发。例:设备触发通常可以有设备的属性、事件和服务。如果发生调用它可以触发对应的条件。
这种情况下是以设备模拟器方式来用一个虚拟的方式来模拟一个真实设备来完成调试。
(3)快速搭建具体流程:
调试环节:
l 新建开发者流程项目
l 业务逻辑底面模板中新建一个对应的服务,有对应的模板供我们用
l 弄一个空白模板没有任何内容完成服务搭建后会跳转到编辑器
l 搭建一个 http 请求,里面默认情况下没有参数如果有需要我们可以添加
l 第二块最简单的应用并不期望 http 返回具体内容,这里返回一个常量,这个常量可以在 http 返回对应的属性面板里面将它固定。
l 假设返回一百我们要调试这个服务时,直接点击部署调试服务会先在云端进行部署操作会唤起对应的调试
l 服务成功,这边直接返回100
发布操作:
l 如何将返回获得100的这个值被别的部分使用?
将在可视化里来直接使用服务
l 先拖一个简单的文字组件,内容选择数据源,选择对应的接口,接口来自业务逻辑编排工作台里
l 快速搭建一个服务是刚发布的服务
3.对接可视化搭建
(1)可视化搭建和业务逻辑编排有协作的关系,来组合完成对应的场景。这种方式简称:可视化搭建双向数据通信
(2)双向数据通信主要是:
可视化搭建可以使用接口数据源来访问业务逻辑编排它所快速搭建出来的http服务。
业务逻辑编排在某些触发类场景时向设备触发、空间触发等等一系类触发任务,在自动执行时会产生一些对应的数据和行为,这类数据和行为可视化搭建感知不到,所以有一个应用推送的途径,可以把对应这块产生的数推给可视化搭建。整个可视化搭建和业务逻辑编排就完成了双向数据的对接。
(3)应用数据源是业务逻辑编排所搭建的http服务可以作为可视化搭建的一个数据源,能够被可视化搭建中使用。
l 如何通过应用推送将可视化业务逻辑编排里能拿到能主动推给可视化对应的应用。
l 建一个新的服务使用一个新建的——应用推送数据源,使用对应的设备触发,设备触发通过应用推送节点。设备触发属性面板里需要选择对应的产品
l 应用推送所需要推送的数据是?
l 可以看到这个产品上有各种对应的状态,整个设备触发是触发之后执行应用推送节点,会将对应的数据推给绑定之后数据源的应用。先部署
l 触发设备触发,如果报错表明没有推送的对象,应用推送没有应用绑定的数据源。
(4)在可视化中绑定数据源:
l 将当前新配置一个数据源,这个数据源选择应用推送,将新建的应用推送数据源。
l 重新在设备模拟器下面模拟一个1000功率的属性上报,整个应用就接收到了1000功率的数据,完成了数据的接收
4.案例
(1)设备告警:设备当发生一定的属性、事件、服务发生异常需要通过业务逻辑编排将对应的消息通知给相关人员的人员。
(2)监听设备消息——数据提取与加工——告警规则判断——告警途径——告警下发
告警规则判断:钉钉机器人、短信、应用推送
(3)以应用推送为例完成告警:
l 在原有的基础上进行改造。设定一个条件,因为设备是个灯,当灯的功率大于100时,作为一个告警。或小于50时作为告警。并且把对应的告警体现在大屏上
l 设备触发监听了它所有的属性上报,所以在刚才的演示中已完成。需要加一个判断逻辑:如何来读到设备触发上报时的功率,通过这个功率进行判断
l 使用一个 Node.js 脚本,这个脚本里能接收到设备触发里面上报的对应的数据
l Node.js 脚本如何能取到设备对应的功率的属性?
l 模拟数据上报,选择设备触发节点,可以看到节点日志里有两个属性:节点输入和节点输出。
l 将数据进行判断
rodule.exports
=
async function(payload,node
,
query, context, global)
{
console.log("payload:"
,
payload);
const power
=
payload.props.CurrentPower.value;
if (power > 100)
{
return
{
alarm: true,
Poner; power,
}
}
else if(power < 50)
{
return
{
alarm: true,
poner: power
,
}
}
else
{
return
{
alarm: false
,
po
n
er:
power,
}
}
}
l 将数据推给可视化应用里。因为数据来自节点数据,将刚才原来的结构体数据返回,再重新部署。这个操作默认是部署调制,因为需要有对应的设备模拟进行配套所以只能完成部署
l 在可视化里将刚才的应用推送来使用。为了方便查看使用对应的指示灯组件
l 数据源选择刚才的应用推送保存。可以看到指示灯有两个颜色,一个是关闭一个是开启。
l 使用一个过滤器将刚才的告警属性。如果功率器恢复正常,灯会变蓝;功率低于50会告警。通过这个操作就完成了整个设备告警对应的电路,通过建立的设备触发将对应的数据进行提取和加工。
(4)关于数据加工与存储据经典案例
1、数据的加工和数据存储
l 数据加工:以一个简单的方式——时间转换,所需要的一个格式这块还是数据加工。
l 数据存储:当前的数据存储有多个方式,键值对存储,还有表格存储以及变量。
2、以键值对存储为例
l 使用刚才的设备触发场景来将设备上报的一个时间转化为所需要指定的格式
l 将接收到的时间戳取自于设备触发上报
l 以属性为例,获取到时间后,将时间戳转化为对应的年月日时分秒的方式。
l 存储是把对应的时间戳保存在对应的键值对存储里
l 返回的时间是经过转化的字符串,值来自执行脚本
l 重新部署,使用设备触发进行一次新的调试,功率选用40,执行
l 经过调试,键值对里接收到输入的参数是2012.7.30
l 验证刚才操作的准确性,将对应的数据加工和存储、发布
l 发布完成后为了让键值对的值能被读取到,所以在原来快速搭建的服务里取到设置的键值对
l 调试服务,看它返回的结构是不是符合预期,保证能正常工作将其发布
l 外部可视化里使用对应的数据源,同样来获取它的结构,可以看到报了异常,是因为返回的结构是将对应的键值对存储里的以 http 形式进行返回
l 取到的数据要使用过滤器
l 配置好之后可以看到取到的对应的键值对设置的时间
l 再调试、预览,时间已经改变
l 刷新页面拿到对应数值
3.设备控制
使用业务逻辑编排实现对设备的控制。
4.自动化
通过对应的时间上的规则和逻辑期望对应的设备能够在指定的时间或者满足条件的情况下自动执行一些事
二、自定义组件
1.什么是自定义组件
(1)loT Studio 的可视化开发中提供了很多组件用于搭建页面,由于提供的官方组件数量有限,很难满足用户所有的需求。因此,为了解决组件调用不足的问题,loT Studio推出了自定义组件功能。
(2)特点:
l 个人开发组件和公共组件功能
l 强大的本地开发功能
l 快速上传和云构建
l 组件管理功能
(3)分层:
2.准备环境
(1)前端开发基础:html+css+js、react、前端包管理
(2)loT Studio 开发工具
l 安装 bone
npm i -g @bone/npm --registry https://registry-node.aliyun.com/org/YscSvypAq7EUU-8GmyAjop/registry/aliyunIoT/
访问bone.aliyun.com/profile获取用户名和密码,进行登录
bnpm login --registry https://registry-node.aliyun.com/org/YscSvypAq7EUU-8GmyAjop/registry/aliyunIoT/
l 安装 CLI 工具库
bnpm install -g @maliang/material-cli
l 创建项目
material create Demo
l 运行项目
npm start
3.组件开发
(1)本地开发:
组件逻辑:src/index.js
属性描述:src/specs/specs.js
(2)发布:
l loT Studio 应用开发页面,创建组件
l 本地执行 npm run pack 构建组件包-Components.zip
l 上传构建组件
l 查看组件
(3)组件使用:
l 个人开发组件类名
l 拖入搭建页面,属性配置
l 其他操作和默认组件一直
4.组件能力
(1)属性配置
loT Studio 为组件的属性提供可定制的编程能力,来实现较为复杂的组件属性联动功能开发者可以为一个组件设置不同的属性,可以根据业务的求,动态地设置组件的属性。
(2)事件配置
组件可以定义一些用户与浏览器的交互行为,由用户在界面操作时触发,触发后,可以返回一些组件内部的状态值。这种交互行为的触发就是组件的事件。
(3)服务配置
组件可以为自己定义具体的方法,来执行命令,例如返回组件的某个属性值。定义的方法可以提供给外部使用,即该方法就是组件的服务。
三、推广你的移动应用
1.小程序介绍
l 小程序,是一种不需要下载安装的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下就可以打开应用
l 目前市面上常见的小程序有 钉钉小程序、支付宝小程序、微信小程序、百度小程序
l
2.小程序集成步骤
(1)申请支付宝企业账号、创建小程序
进入支付宝小程序官网
https://opendocs.alipay.com/mini/introduce注册企业支付宝账号
注册文档
https://opendocs.alipay.com/mini/introduce/register
(2)小程序 H5 域名绑定
l 点击进入小程序配置界面->开发配置,完成业务域名配置
l 注意:此次需要配置两个地址
应用绑定的域名地址:https://myApp.iot.studio.com
Studio 官方资源地址:https://g.aliplus.com
l 配置前提条件:下载校检文件,将校检文件托管至loT Studio
(3)loT Studio 校检文件托管
l 进入移动应用配置——小程序设置——上传校检文件——上传验证
l 完成校检文件托管后,回到小程序 H5 域名配置处配置指定域名
(4)小程序集成H5界面
l 使用小程序官方提供的 web-view 能力进行 H5 集成,详见官方文档
https://opendocs.alipay.com/mini/component/web-view
注意:要求开发者在 H5 页面地址后添加参数 isMiniApp=true
完成 webview 开发后,点击预览,预期在手机支付宝中可以正常显示
3.课后作业
创造独一无二的小程序应用:创建移动应用——搭建个性界面——集成小程序