【开源视频联动物联网平台】产品管理

简介: 【开源视频联动物联网平台】产品管理

产品基本信息设置如下:

  • 产品名称:名称为中文、字母、数字、下划线的组合,1位 - 20位且不能为空。
  • 产品品类:选择您所创建产品的所属品类,不同类型产品的属性、事件等数据模板会有所不同。
  • 设备类型:设备类型分为直连设备、网关、子设备3类,详情如下:
  • 直连设备:此类设备可直接接入物联网开发平台且无挂载子设备。
  • 网关:此类设备可直接接入物联网开发平台,并且可接受子设备加入局域网络。可以维持子设备的拓扑关系,将与子设备的拓扑关系同步到云端。
  • 子设备:此类设备必须依托网关设备才可与物联网开发平台进行通信,例如 Zigbee、蓝牙、Modbus等设备。
  • 认证方式:物联网开发平台提供两种认证方式用于设备与平台之间鉴权认证。
  • 证书认证:在创建设备时,平台将为设备生成一个证书文件和一个私钥文件,实现设备与云之间的双向认证。
  • 密钥认证:在创建设备时,使用平台为设备随机生成的 PSK。
  • 通信方式:您可以选择 Wi-Fi、移动蜂窝(2G/3G/4G)、5G、BLE、LoRaWAN 等其它通信方式。
  • 接入网关协议(设备类型选择为子设备可选):表示该产品下的设备作为子设备与网关的通讯协议类型。
  • Zigbee:表示子设备和网关间的通讯协议为ZigBee。
  • BLE:表示子设备和网关间的通讯协议为BLE。
  • Modbus:表示子设备和网关间的通讯协议为Modbus-RTU。
  • 自定义:表示子设备和网关间的通讯协议为其它标准或私有协议。
  • 数据协议:默认采用物模型的数据协议,支持{key:xx,value:xx}和{key:value}两种模式的键值解析,同时支持xml,json,soap等通用编解码数据协议,您也可以自定义协议进行透传。
  • 描述:字数不能超过80个,您可以根据需要选填。


物模型

物模型通过将物理实体设备进行数字化描述,构建其数字模型。在物联网开发平台定义物模型即定义产品功能。完成功能定义后,系统将自动生成该产品的物模型。

新建产品后可以引用已存在的物模型模板,也可以自定义物模型。


物模型类型包含三元素:属性、事件和行为。

功能元素

功能描述

功能标识符

属性

用于描述设备的实时状态,支持读取和设置,如模式、亮度、开关等。


包括以下六种基本数据类型:


布尔型:非真即假的二值型变量。例如,开关功能。


整数型:可用于线性调节的整数变量。例如,空调的温度。


字符型:以字符串形式表达的功能点,例如,灯的位置。


浮点型:精度为浮点型的功能点。例如,压力值的范围:0.0 - 24.0。


枚举型:自定义的有限集合值。例如,灯的颜色:白色、红色、黄色等。


时间型:string 类型的 UTC 时间戳(毫秒)。


同时,支持数组和结构体类型。

PropertiesId


事件


用于描述设备运行时的事件,包括告警、信息和故障三种事件类型,事件型功能属性可以添加具体的事件参数,这些参数可以由属性中六种基本数据类型组成。可添加多个输出参数,例如环境传感器检测到空气质量很差,空调异常告警等。

EventId


行为


用于实现更复杂的业务逻辑,可添加多个调用参数和返回参数。行为的输入参数和输出参数可添加属性中六种基本数据类型,用于让设备执行某项特定的任务。例如,开锁动作需要知道是哪个用户在什么时间开锁,锁的状态如何等。


ActionId



数据模板格式参考

{
  "version": "1.0",
  "profile": {
    "ProductId": "110",
    "CategoryId": "3"
  },
  "properties": [
    {
      "id": "power_switch",
      "name": "电灯开关",
      "desc": "控制电灯开灭",
      "required": true,
      "mode": "rw",
      "define": {
        "type": "bool",
        "mapping": {
          "0": "关",
          "1": "开"
        }
      }
    },
    {
      "id": "color",
      "name": "颜色",
      "desc": "灯光颜色",
      "mode": "rw",
      "define": {
        "type": "enum",
        "mapping": {
          "0": "Red",
          "1": "Green",
          "2": "Blue"
        }
      }
    },
    {
      "id": "brightness",
      "name": "亮度",
      "desc": "灯光亮度",
      "mode": "rw",
      "define": {
        "type": "int",
        "unit": "%",
        "step": "1",
        "min": "0",
        "max": "100",
        "start": "1"
      }
    },
    {
      "id": "name",
      "name": "灯位置名称",
      "desc": "灯位置名称:书房、客厅等",
      "mode": "rw",
      "required": false,
      "define": {
        "type": "string",
        "min": "0",
        "max": "64"
      }
    }
  ],
  "events": [
    {
      "id": "status_report",
      "name": "DeviceStatus",
      "desc": "Report the device status",
      "type": "info",
      "required": false,
      "params": [
        {
          "id": "status",
          "name": "running_state",
          "desc": "Report current device running state",
          "define": {
            "type": "bool",
            "mapping": {
              "0": "normal",
              "1": "fault"
            }
          }
        },
        {
          "id": "message",
          "name": "Message",
          "desc": "Some extra message",
          "define": {
            "type": "string",
            "min": "0",
            "max": "64"
          }
        }
      ]
    },
    {
      "id": "low_voltage",
      "name": "LowVoltage",
      "desc": "Alert for device voltage is low",
      "type": "alert",
      "required": false,
      "params": [
        {
          "id": "voltage",
          "name": "Voltage",
          "desc": "Current voltage",
          "define": {
            "type": "float",
            "unit": "V",
            "step": "1",
            "min": "0.0",
            "max": "24.0",
            "start": "1"
          }
        }
      ]
    },
    {
      "id": "hardware_fault",
      "name": "Hardware_fault",
      "desc": "Report hardware fault",
      "type": "fault",
      "required": false,
      "params": [
        {
          "id": "name",
          "name": "Name",
          "desc": "Name like: memory,tf card, censors ...",
          "define": {
            "type": "string",
            "min": "0",
            "max": "64"
          }
        },
        {
          "id": "error_code",
          "name": "Error_Code",
          "desc": "Error code for fault",
          "define": {
            "type": "int",
            "unit": "",
            "step": "1",
            "min": "0",
            "max": "2000",
            "start": "1"
          }
        }
      ]
    }
  ],
  "actions": [
    {
      "id": "unlock",
      "name": "开灯行为检测",
      "desc": "用于描述开灯的动作",
      "input": [
        {
          "id": "open",
          "name": "开关",
          "define": {
            "type": "bool",
            "mapping": {
              "0": "关",
              "1": "开"
            }
          }
        },
        {
          "id": "user",
          "name": "用户",
          "define": {
            "type": "string",
            "min": "0",
            "max": "2048"
          }
        }
      ],
      "output": [
        {
          "id": "user",
          "name": "用户",
          "define": {
            "type": "string",
            "min": "0",
            "max": "2048"
          }
        },
        {
          "id": "time",
          "name": "开灯时间",
          "define": {
            "type": "timestamp"
          }
        },
        {
          "id": "state",
          "name": "灯的状态",
          "define": {
            "type": "bool",
            "mapping": {
              "0": "关",
              "1": "开"
            }
          }
        }
      ],
      "required": false
    }
  ]
}


物模型协议

产品定义物模型后,设备可以根据物模型中的定义上报属性、事件,并可对设备下发控制指令。物模型协议包括了以下几部分。

  • 设备初始信息上报:设备连接平台时上报的初始信息,便于平台展示设备详细信息,如设备 MAC 地址、IMEI 号。
  • 设备属性上报:设备端将定义的属性根据设备端的业务逻辑向云端上报,周期上报或者变更即上报。
  • 设备事件上报:设备可根据定义的物模型中的事件,当事件被触发,则根据设备事件上报的协议上报告警、故障等事件信息。
  • 设备远程控制:从云端向设备端下发控制指令,即从云端设置设备的可写属性。
  • 获取设备属性:获取设备最新的上报数据。
  • 设备行为调用:云端可以通过 RPC 的方式通知设备执行某个动作行为,适用于应用需要实时获取设备的执行结果的场景。


设备单Topic上报&订阅

优点:Topic订阅数量少,通过method字段来路由,method可拓展其他类型消息,消息拓展方便,

缺点:服务端处理较复杂

上行请求 Topic (服务端订阅): /up/all/{ProductID}/{DeviceSN}

下行响应 Topic (设备端订阅): /down/all/{ProductID}/{DeviceSN}

上行请求:
{
    "method": "baseinfo|property|event|reply",
    "token": "1234567",
    "params": {
        //支持key:value方式,也支持key:xxx,value:xxx方式
        "name": "dev001",
        "imei": "ddd",
        "hardinfo": "ddd",      
        "mac": "ddd",
        "ip": "ddd"
    }
}
下行请求:
{
    "method": "property|action|add|del",
    "token": "1234567",
    "params": {
        //支持key:value方式,也支持key:xxx,value:xxx方式
        "name": "dev001",
        "imei": "ddd",
        "hardinfo": "ddd",      
        "mac": "ddd"
    }
}
 
设备控制响应:
{
    "method": "reply",
    "token": "1234567",
    "params": {
        //支持key:value方式,也支持key:xxx,value:xxx方式
        "code":0,
        "status":"some message"
    }
}


设备多Topic上报&订阅

优点:通过Topic来路由消息,服务端业务处理方便。

缺点:Topic路由拓展不方便,涉及客户端改动,或者需进行路由转发

设备属性上行请求 Topic (服务端订阅):


  • /up/property/{ProductID}/{DeviceSN}
  • /up/event/{ProductID}/{DeviceSN}
  • /up/action/{ProductID}/{DeviceSN}
  • /up/sub/property/{ProductID}/{DeviceSN}
  • 自定义Topic


设备属性下行响应 Topic (设备端订阅):


  • /down/property/{ProductID}/{DeviceSN}
  • /down/action/{ProductID}/{DeviceSN}
  • /down/sub/property/{ProductID}/{DeviceSN}
  • 自定义Topic


设备初始信息上报

平台展示设备详细信息时,一般会展示设备的 MAC 地址、IMEI 号、时区等基础信息。

设备上报主题:/up/property/{ProductID}/{DeviceSN} 
设备上报:
{
    "method": "info",
    "token": "1234567",
    "params": {
        "name": "dev001",
        "imei": "ddd",
        "module_hardinfo": "ddd",      
        "mac": "ddd" 
    }
}
 
服务端无响应消息。


设备属性上报

当设备需要向云端上报设备运行状态的变化时,以通知云端业务系统接收设备上报属性数据,

设备上报主题:/up/property/{ProductID}/{DeviceSN} 
设备上报:
{
    "method":"property",
    "token":"123", //(时间戳也可以复用该字段)
    "params":{
        //"timestamp":1628646783,
        "power_switch":1,
        "color":1,
        "brightness":32
     }
}
服务端无响应消息。
设备远程控制

使用物模型协议的设备,当需要通过云端控制设备属性和功能时,

服务端下发主题:/down/property/{ProductID}/{DeviceSN} 
服务端请求:
{
    "method": "property",
    "token": "123",  //(时间戳也可以复用该字段)  
    "params": {
        //"timestamp":1628646783,
        "power_switch": 1,
        "color": 1,
        "brightness": 66    
    }
}
设备端回复主题:/up/property/{ProductID}/{DeviceSN} 
{
    "method":"reply",
    "token":"123",
    "params": {
        "code":0,
        "status":"some message"
    }
}
服务端下发主题:/down/action/{ProductID}/{DeviceSN} 
服务端请求:
{
    "method": "action",
    "token": "123", //(时间戳也可以复用该字段)
    "params": {
        "actionId": "openDoor",                
    }
}
设备端回复主题:/up/action/{ProductID}/{DeviceSN} 
{
    "method":"reply",
    "token":"123",
    "params": {
        "code":0,
        "status":"some message"
    }
}
设备事件上报

当设备需要向云端上报事件时,如上报设备的故障、告警数据,

设备上报主题:/up/event/{ProductID}/{DeviceSN} 
设备上报:
{
    "method":"event",
    "token":"123", //(时间戳也可以复用该字段)
    "params":{
        //"timestamp":1628646783,
        "eventId":"PowerAlarm",
        "type":"info|alert|fault",
        "timestamp":1212121221,
        "Voltage":2.8,
        "Percent":20
     }
}
服务端无响应消息。
子设备管理

子设备身份注册后,需由网关向物联网平台上报网关与子设备的拓扑关系,然后进行子设备上线。


子设备上线过程中,物联网平台会校验子设备的身份和与网关的拓扑关系。所有校验通过,才会建立并绑定子设备逻辑通道至网关物理通道上。子设备与物联网平台的数据上下行通信与直连设备的通信协议一致,协议上不需要露出网关信息。


删除拓扑关系后,子设备不能再通过网关上线。系统将提示拓扑关系不存在,认证不通过等错误。

网关上报主题:/up/sub/{ProductID}/{DeviceSN} 
网关上报:
{
    "method":"register|add|del",
    "token":"123", //(时间戳也可以复用该字段)
    "params":{
        //"timestamp":1628646783,
        "eventId":"PowerAlarm",
        "type":"info|alert|fault",
        "timestamp":1212121221,
        "Voltage":2.8,
        "Percent":20
     }
}
服务端回复主题:/down/sub/{ProductID}/{DeviceSN} 
{
    "method":"reply",
    "token":"123",
    "params": {
        "code":0,
        "status":"some message"
    }
}


服务端下发主题:/down/sub/{ProductID}/{DeviceSN} 
服务端下发:
{
    "method":"list",
    "token":"123", //(时间戳也可以复用该字段)
    "params":{
        //"timestamp":1628646783,
        "eventId":"PowerAlarm",
        "type":"info|alert|fault",
        "timestamp":1212121221,
        "Voltage":2.8,
        "Percent":20
     }
}
设备端回复主题:/up/sub/{ProductID}/{DeviceSN} 
{
    "method":"register|add|del",
    "token":"123", //(时间戳也可以复用该字段)
    "params":{
        //"timestamp":1628646783,
        "eventId":"PowerAlarm",
        "type":"info|alert|fault",
        "timestamp":1212121221,
        "Voltage":2.8,
        "Percent":20
     }
}
相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
4月前
|
JavaScript 小程序 前端开发
【手把手教教学物联网项目】01 视频大纲
《手把手教教学物联网项目》是一系列视频教程,旨在引导初学者掌握物联网技术。视频涵盖物联网基础,如物联网概述、架构和技术;STM32微控制器的介绍、编程及外设使用;网关开发,涉及ESP8266和ESP32;物联网通信协议如TCP、MQTT、Modbus等;物联网总线协议如单总线、CAN、IIC和SPI;OLED显示原理与驱动;MQTT服务器搭建;物联网云平台介绍,包括阿里云平台的使用;微信小程序开发入门及前端VUE项目实践。此外,教程还涉及UniAPP和SpringBoot后台开发,最后通过“智能取餐柜”项目将理论知识付诸实践。视频可在B站找到,适合学生、爱好者和开发人员学习物联网技术。
173 12
【手把手教教学物联网项目】01 视频大纲
|
4月前
|
XML 编解码 JSON
【开源视频联动物联网平台】协议包管理
【开源视频联动物联网平台】协议包管理
73 1
|
4月前
|
传感器 边缘计算 物联网
基于ELF 1S开发板完成的物联网开源
项目包含云、网、边、端四部分,采用涂鸦云作为云服务器,便于初学者接入。ELF 1S开发板作为边缘中控,运行Linux+Qt,通过Wi-Fi连接云服务器。开发板通过USB无线模块与端侧设备通信,支持AT指令和功能扩展。项目提供5个Qt应用界面,包括电器控制、环境监测、云服务器连接、有线网络和参数设置,可与手机APP交互。端侧设备包括Modbus-RTU从机和无线网络模块。整个项目已在Gitee开源。
60 4
|
2月前
|
物联网
好的资源链接,gitee全糖咖啡,B站视频转成mp4,全糖咖啡 / 物联网网关数据上传,,全糖咖啡 / springboot+百度智能车牌检测
好的资源链接,gitee全糖咖啡,B站视频转成mp4,全糖咖啡 / 物联网网关数据上传,,全糖咖啡 / springboot+百度智能车牌检测
|
2月前
|
分布式计算 DataWorks 大数据
MaxCompute产品使用合集之如何实现嵌入式设备到物联网平台再到PAI DSW的云边结合
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
存储 关系型数据库 物联网
【PolarDB开源】PolarDB在物联网(IoT)数据存储中的应用探索
【5月更文挑战第27天】PolarDB,阿里云的高性能云数据库,针对物联网(IoT)数据存储的挑战,如大规模数据、实时性及多样性,展现出高扩展性、高性能和高可靠性。它采用分布式架构,支持动态扩展,保证99.95%的高可用性,并能处理结构化、半结构化和非结构化数据。通过SDK实现数据实时写入,支持SQL查询和冷热数据分层,有效降低成本。随着IoT发展,PolarDB在该领域的应用将更加广泛。
179 1
|
4月前
|
JSON 缓存 物联网
推荐一款go语言的开源物联网框架-opengw
推荐一款go语言的开源物联网框架-opengw
128 4
|
3天前
|
传感器 存储 人工智能
智能农业的未来:物联网技术如何革新传统农业
本文探讨了物联网(IoT)技术在农业中的应用及其对传统农业的革新。通过详细分析当前农业面临的挑战,如资源浪费和效率低下,文章阐述了物联网技术如何通过实时数据监控和自动化系统提高农业生产的效率和可持续性。此外,文章还讨论了实施物联网技术时需要考虑的技术、经济和社会因素,以及未来发展趋势。
|
7天前
|
传感器 边缘计算 监控
探索未来网络:物联网技术的革新与挑战
在21世纪的科技浪潮中,物联网(IoT)正迅速成为连接实体世界与数字世界的关键桥梁。本文旨在深入探讨物联网技术的最新进展、面临的主要挑战以及未来的发展趋势。通过分析当前物联网的核心技术,如传感器技术、低功耗广域网(LPWAN)、边缘计算等,本文揭示了这些技术创新如何推动智能城市、智能家居、工业4.0等领域的快速发展。同时,针对数据安全、隐私保护、标准化等关键问题,提出了相应的解决策略和建议。本文最后展望了物联网技术在未来可能带来的社会变革和商业模式创新,强调了跨学科合作的重要性,以实现物联网技术的可持续发展。
|
3天前
|
传感器 物联网 区块链
智能革命的引擎:区块链、物联网与虚拟现实技术的融合与创新##
在21世纪的信息时代,新兴技术正以前所未有的速度改变着我们的生活和工作方式。本文深入探讨了区块链技术、物联网(IoT)和虚拟现实(VR)这三大前沿技术的发展趋势及其在不同领域的创新应用。通过分析这些技术如何相互促进、融合,共同塑造一个更加智能、互联的世界,揭示了它们对未来社会可能产生的深远影响。不同于传统的技术性摘要,本文旨在以一种通俗易懂且条理清晰的方式,引导读者思考新技术背后的哲理性内涵及其对人生意义的启示。 ##
18 0