阿里云iot物联网平台监控设备 在线离线状态 解决方案

简介: 阿里云iot物联网平台监控设备 在线离线状态 解决方案

阿里云iot物联网平台监控设备在线离线状态解决方案

需求

目前使用阿里云的iot作为物联网平台应用,在整个系统内有很多设备,每天都会在固定的时间段内在线和离线。

我们需要监控这些设备的状态,如果设备在线或者离线,给管理员发送通知(短信),以便让相关人员及时处理。

具体实现

服务端订阅

在产品详情的服务端订阅中,可以通过服务端订阅来接受iot平台的消息。

其中:

  • 服务端订阅,通过HTTP2通道推送,目前只提供了Java和**.NET**语言的SDK。
  • 服务端订阅 (推送MNS)。将物联网平台的消息推送到队列中,然后服务端基于SDK从队列中获取消息实现通信。

由于语言限制,我们选择MNS的方式进行消息接受,需求是监控状态,所以只选择设备状态变化通知

同步监控消息

通过上一步之后,阿里云会在MNS上创建一个对应的消息队列,如果设备有在线离线状态的变更,对应的消息就会被推送到对应的队列中。

列表的操作部分可以直接接收消息,当然这样做消息会被消费,如果队列已经写入系统逻辑,就需要谨慎操作。

拉取MNS队列并处理消息

从控制台的拉取消息看,主要数据内容在payload中,通过文档可以查看,通过base64可以解析得到消息的详细内容。

{
    "status":"online|offline",
    "productKey":"12345565569",
    "deviceName":"deviceName1234",
    "time":"2018-08-31 15:32:28.205",
    "utcTime":"2018-08-31T07:32:28.205Z",
    "lastTime":"2018-08-31 15:32:28.195",
    "utcLastTime":"2018-08-31T07:32:28.195Z",
    "clientIp":"123.123.123.123"
}

下面列出PHP作为服务端处理的主要逻辑代码,作为参考。

/**
     * 拉取状态队列消息
     */
    public function actionIotStatus(){
        $endPoint  = "https://************.mns.cn-shanghai.aliyuncs.com";
        $accessId = \Yii::$app->params['aliyun']['accesskeyid'];
        $accessKey = \Yii::$app->params['aliyun']['accesssecret'];
        $queueName = \Yii::$app->params['iot']['mnskey'];
        $client = new Client($endPoint, $accessId, $accessKey);
        $queue = $client->getQueueRef($queueName);
        $receiptHandle = NULL;
        try
        {
            $res = $queue->receiveMessage(30);
            $receiptHandle = $res->getReceiptHandle();
            //得到消息句柄
           $body =   $res->getMessageBody();
           $bodyArr = json_decode($body,true);
            $payload = json_decode(base64_decode($bodyArr['payload']),true); //解析
            $deviceName = $payload['deviceName'];
            //todo 这里写的逻辑是给管理员发送短信和通知
      //删除消息,避免再次被接收到
            try
            {
                $res = $queue->deleteMessage($receiptHandle);
                echo "DeleteMessage Succeed! \n";
            }
            catch (MnsException $e)
            {
                echo "DeleteMessage Failed: " . $e;
                return;
            }
        }
        catch (MnsException $e)
        {
            echo "ReceiveMessage Failed: " . $e;
            return;
        }
    }

总结

  • 详细看文档的好处在于一旦有需求就能找到最合适的实现方式。

参考资料

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
9天前
|
消息中间件 DataWorks 物联网
MQTT问题之接入阿里云物联网平台如何解决
MQTT接入是指将设备或应用通过MQTT协议接入到消息服务器,以实现数据的发布和订阅;本合集着眼于MQTT接入的流程、配置指导以及常见接入问题的解决方法,帮助用户实现稳定可靠的消息交换。
42 1
|
9天前
|
消息中间件 网络协议 物联网
MQTT协议问题之阿里云物联网服务器断开如何解决
MQTT协议是一个轻量级的消息传输协议,设计用于物联网(IoT)环境中设备间的通信;本合集将详细阐述MQTT协议的基本原理、特性以及各种实际应用场景,供用户学习和参考。
46 1
|
22天前
|
物联网 定位技术
【技术探讨】一种多节点5Km(1.2M bps速率)实时Sub-G无线通信的物联网通讯解决方案
针对在高速公路上货车行驶过程中收集5公里范围内的GPS定位数据,上报云服务器端,最终实时显示每一辆货车的运行轨迹,用户的项目需求如下:200辆货车(无线从站节点),要求很高的实时性,每秒发5包,每个GPS定位数据报文30个字节,这样200辆车同时上报每秒需要发送30K的字节(200 x 5 x 3 0 =30K字节),30K字节 x 8bit=240 k bps速率。
|
26天前
|
存储 安全 物联网
安防摄像头IPC如何快速接入阿里云Link Visual视频服务(阿里云生活物联网)
Link Visual是生活物联网平台针对视频产品推出的增值服务,提供视频数据上云、存储、转发、AI计算等能力。 大白话就是:通过阿里云的Link Visual视频服务,可以让你的IPC摄像头设备完成上云功能,并快速实现如下功能介绍中的功能。其中可以享受阿里云P2P协议支持,帮助企业节省流量服务器流量带宽。
152 7
|
28天前
|
供应链 NoSQL 物联网
链接全球数十亿台设备!物联网行业如何应对数据管理、实时分析和供应链优化的挑战?
物联网已成为面向未来的解决方案的关键组成部分,且其所蕴含的巨大经济价值潜力有待挖掘
1414 0
链接全球数十亿台设备!物联网行业如何应对数据管理、实时分析和供应链优化的挑战?
|
1月前
|
NoSQL 安全 物联网
检索时间减少83%!部署MongoDB后,通用电气医疗集团狠狠提升了物联网设备的利用效率!
作为医疗技术领域的全球领导者,通用电气医疗集团选择了 MongoDB由其管理旗下物联网设备,从部署(生命周期初期,即 BoL)到报废(生命周期结束,即 EoL)的整个生命周期
1802 3
检索时间减少83%!部署MongoDB后,通用电气医疗集团狠狠提升了物联网设备的利用效率!
|
1月前
|
存储 编解码 弹性计算
阿里云网盘与相册开发版提供了丰富的功能和全面的加速解决方案
阿里云网盘与相册开发版提供了丰富的功能和全面的加速解决方案【1月更文挑战第13天】【1月更文挑战第63篇】
16 2
|
1月前
|
人工智能 搜索推荐 数据挖掘
瓴羊X阿里云上的Salesforce联合解决方案正式发布
瓴羊X阿里云上的Salesforce联合解决方案正式发布
|
1月前
|
NoSQL 安全 MongoDB
|
1月前
|
存储 人工智能 安全
阿里云企业成长解决方案,含通用、企业上云、企业服务、教育等多场景
在数字化时代,企业的成长离不开云计算技术的支持。阿里云作为领先的云服务提供商,推出了全面的企业成长解决方案,涵盖通用场景、企业上云、新零售、企业服务、教育、游戏、医疗健康、文化传媒和工业制造等多个行业。这些解决方案旨在帮助企业轻松应对各种挑战,实现数字化转型和升级。
阿里云企业成长解决方案,含通用、企业上云、企业服务、教育等多场景

相关产品

  • 物联网平台