摘要:该场景主要描述的是设备可以通过LWM2M协议与物联网平台进行交互,用户可以在控制台或通过应用侧接口创建设备联动规则,把设备上报的属性转发,通过物联网平台规则引擎转变成命令下发给其他指定设备。

场景简介

煤气检测器发现煤气浓度超标时,自动关联无线推窗器把窗户打开,起到通风的作用。

该场景主要描述的是设备可以通过LWM2M协议与物联网平台进行交互,用户可以在控制台或通过应用侧接口创建设备联动规则,把设备上报的属性转发,通过物联网平台规则引擎转变成命令下发给其他指定设备。

核心知识点:产品模型、编解码插件、属性上报、命令下发、MQTT协议、设备联动规则。

场景流程

流程解释:

1.创建防煤气泄漏产品:物联网平台是以产品为粒度管理批量设备,产品的创建与管理,可以通过平台提供的API接口或控制台。

2.上传产品模型和编解码插件:因为NB设备是用LWM2M协议传输二进制码流通信,而平台需要做对应的编解码转换才能与之通信。产品模型是定义一种设备的基本属性和命令。产品模型和编解码插件开发可以通过控制台,也可以通过模板离线开发再上传,也可以导入公共产品库的模型。

3.注册煤气检测器和推窗器设备:平台提供了应用侧API接口可以注册设备,也可以通过控制台批量注册。注册的设备ID,是设备侧与平台交互的唯一标识。这里可以分别注册两种设备,一种是用于煤气检测的设备,一种是可以推窗的设备。

4.创建设备联动规则:用户可以通过控制台创建规则,指定设备联动规则,设置触发条件和执行动作,给指定的设备做定向转发。

5.煤气检测值属性上报:NB设备是指集成了NB模组的设备,模组集成了华为IOT Tiny SDK,把指令用二进制码流传输给平台,平台会用编解码插件解码。

6.按规则设备联动:IoTDA平台会根据煤气检测器上报的属性值,进行规则过滤,把属性值转成命令下发给无线推窗器设备。

7.命令下发推开窗户:平台把命令下发给无线推窗器,通知推开窗户进行通风。

最佳实践

场景说明

煤气安全关系到千家万户的生命财产安全。本示例基于华为物联网平台提供的设备接入服务,通过触发设备联动规则,自动打开推窗器。具体场景是煤气监测器将煤气浓度数值上报到物联网平台,当煤气浓度超标时,会触发设置好的设备联动规则,物联网平台会下发打开窗户的命令到无线推窗器,无线推窗器收到命令后,自动把窗户打开。

创建煤气监测产品

1.登录华为云官方网站,访问设备接入服务。

2.单击“立即使用”进入设备接入控制台。

3.单击左侧导航栏的“产品”,单击右下角下拉框,选择新建产品所属的资源空间。

4.单击右上角的“创建产品”,创建煤气浓度监测产品,填写参数后,点击“立即创建”。

5.在功能定义页面,选择“自定义功能”,参考下表,完成产品模型配置。

注册设备

1.进入“设备 > 设备注册”页面,单击“注册设备”,参考下表填写参数。注册煤气浓度监测设备,并记录设备ID和密钥。

2.进入“设备 > 设备注册”页面,单击“注册设备”,参考下表填写参数。注册推窗器设备,并记录设备ID和密钥。

配置设备联动规则

1.单击左侧导航栏的“规则”。在左上角的下拉框,选择资源空间(与步骤3同一个资源空间),单击右上角“创建规则”。

2.在弹出的页面选择“设备联动”。

3.参考下表配置设备联动规则。

验证操作

方法一:

您可以使用MQTT.fx模拟设备验证。

1.使用MQTT.fx分别模拟煤气探测器设备和推窗器,并连接到物联网平台。操作方法请参考通过MQTT.fx体验设备接入。

2.打开模拟推窗器的MQTT.fx,订阅平台下发的命令。

  • 选择“Subscribe”页签。
  • 输入订阅平台下发命令的Topic=$oc/devices/{device_id}/sys/commands/#(其中与步骤2获取的设备ID保持一致。)。
  • 点击“Subscribe”按钮,完成平台命令下发订阅。

3.切换到模拟煤气探测的MQTT.fx,上报属性。

  • 选择“Publish”页签。
  • 输入属性上报的Topic:“$oc/devices/{device_id}/sys/properties/report(其中{deviceId}与步骤1获取的设备ID保持一致。)。
  • 上报1条“gaslevel”大于6的属性。

样例:

{
"services": [{
"service_id": "gaslevel",
"properties": {
"gaslevel":
}
}
]
}
  • 点击“Publish”按钮上报属性值。

4.切换到模拟推窗器的MQTT.fx,选择“Subscribe”页签。可以看到收到平台下发的“switch”取值为“on”的命令。

方法二:

您可以使用配置设备接入服务时注册的真实设备接入平台,上报“gaslevel”大于6的数据。设备会收到一条“switch”取值为“on”的命令,自动推开窗户。

点击关注,第一时间了解华为云新鲜技术~

干货分享丨玩转物联网IoTDA服务系列五-智能家居煤气检测联动的更多相关文章

  1. 干货分享丨玩转物联网IoTDA服务系列四-智能网关

    摘要:该场景主要描述的是设备可以通过MQTT协议与物联网平台进行交互,用户可以在控制台产品详情中自定义Topic,通过应用侧接口或控制台创建数据转发规则,把设备上报的消息转发给其他华为云服务,供应用侧 ...

  2. 玩转华为物联网IoTDA服务系列三-自动售货机销售分析场景示例

    场景简介 通过收集自动售货机系统的销售数据,EI数据分析售货销量状况. 该场景主要描述的是设备可以通过MQTT协议与物联网平台进行交互,应用侧可以到物联网平台订阅设备侧变化的通知,用户可以在控制台或通 ...

  3. 国内物联网平台(5):机智云IoT物联网云服务平台及智能硬件自助开发平台

    国内物联网平台(5)——机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运 ...

  4. 干货分享丨jvm系列:dump文件深度分析

    摘要:java内存dump是jvm运行时内存的一份快照,利用它可以分析是否存在内存浪费,可以检查内存管理是否合理,当发生OOM的时候,可以找出问题的原因.那么dump文件的内容是什么样的呢? JVM ...

  5. 【腾讯Bugly干货分享】微信终端跨平台组件 Mars 系列 - 我们如约而至

    导语 昨天上午,微信在广州举办了微信公开课Pro.于是,精神哥这两天的朋友圈被小龙的"八不做"刷屏了.小伙伴们可能不知道,下午,微信公开课专门开设了技术分论坛.在分论坛中,微信开源 ...

  6. 国内物联网平台初探(五) ——机智云IoT物联网云服务平台及智能硬件自助开发平台

    平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了 ...

  7. 【腾讯Bugly干货分享】微信终端跨平台组件 mars 系列(二) - 信令传输超时设计

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/9DJxipJaaBC8yC-buHgnTQ 作者简介: ...

  8. 【腾讯Bugly干货分享】微信终端跨平台组件 mars 系列(一) - 高性能日志模块xlog

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ff5932cde42f1f03de29b1 本文来源: 微信客户端开发团队 ...

  9. 智能家居巨头 Aqara 基于 KubeSphere 打造物联网微服务平台

    背景 从传统运维到容器化的 Docker Swarm 编排,从 Docker Swarm 转向 Kubernetes,然后在 Kubernetes 运行 SpringCloud 微服务全家桶,到最终拥 ...

随机推荐

  1. java 加密与解密艺术

    视频来自黑马程序员公开课 对称加密之后的密文可能存在乱码,这些乱码无法识别,信息经过加密后会变成一串毫无规律的二进制串,此时再选择一种编码方式来展示,通常是 BASE64 格式的编码. 为了解决这个问 ...

  2. linux网络编程-posix信号量与互斥锁(39)

    -posix信号量信号量 是打开一个有名的信号量 sem_init是打开一个无名的信号量,无名信号量的销毁用sem_destroy sem_wait和sem_post是对信号量进行pv操作,既可以使用 ...

  3. Python3-算法-递归

    递归 递归算法是指一般通过函数或子进程来实现,在函数或子进程的内部,直接或间接地调用自己的算法,说白了就是自己调自己 注: 1.在使用递归的时候,必须要有一个递归出口,即一个明确的结束条件,否则就是死 ...

  4. kubernetes资源均衡器Descheduler

    背景 Kubernetes中的调度是将待处理的pod绑定到节点的过程,由Kubernetes的一个名为kube-scheduler的组件执行.调度程序的决定,无论是否可以或不能调度容器,都由其可配置策 ...

  5. Office2019 相关激活秘钥

    零售版 W8W6K-3N7KK-PXB9H-8TD8W-BWTH9 批量板 N9J9Q-Q7MMP-XDDM6-63KKP-76FPM

  6. NPM 配置文件修改

    NPM 配置文件修改 几乎每一门语言都有配套的包管理器,比如 Ruby 有 RubyGems,Go 有 go modules,npm 作为 node 的包管理器,你有想过全局安装的 node 包都放在 ...

  7. 入门大数据---Flume的搭建

    一.下载并解压到指定目录 崇尚授人以渔的思想,我说给大家怎么下载就行了,就不直接放连接了,大家可以直接输入官网地址 http://flume.apache.org ,一般在官网的上方或者左边都会有Do ...

  8. vue基础入门(3)

    3.组件基础 3.1.什么是组件? 3.1.1.理解组件 前端组件化开发是目前非常流行的方式,什么是前端组件化开发呢?就是将页面的某一部分独立出来,将这一部分的数据.视图.以及一些控制逻辑封装到一个组 ...

  9. c++数字转化为字符串、字符串转换为数字

    char ch[20]; int i =1; int j = 2; char *p = "34567"; 数字装换为字符串 sprintf(ch , "%d,%d&quo ...

  10. 【状压dp】Bzoj1294 围豆豆

    题目 Input 第一行两个整数N和M,为矩阵的边长. 第二行一个整数D,为豆子的总个数. 第三行包含D个整数V1到VD,分别为每颗豆子的分值. 接着N行有一个N×M的字符矩阵来描述游戏矩阵状态,0表 ...