0% found this document useful (0 votes)
53 views45 pages

9.2 IoT Platform Secondary Development-MIQ

The document discusses secondary development on Huawei Cloud's IoT platform. It describes developing product models, performing application development using APIs, and connecting devices. The development process involves creating products and models on the IoTDA console, developing applications, integrating devices, and managing devices on the cloud. It provides examples of defining a product model for a water meter device.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views45 pages

9.2 IoT Platform Secondary Development-MIQ

The document discusses secondary development on Huawei Cloud's IoT platform. It describes developing product models, performing application development using APIs, and connecting devices. The development process involves creating products and models on the IoTDA console, developing applications, integrating devices, and managing devices on the cloud. It provides examples of defining a product model for a water meter device.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

IoT Platform Secondary Development

Foreword

⚫ The HUAWEI CLOUD IoT platform enables southbound and northbound data
exchange. Developers need to perform secondary development using this platform
to implement end-to-end IoT services.

2 Huawei Confidential
Objectives

⚫ Upon completion of this course, you will:


 Understand the main content of product development
 Be able to describe development process on the device side
 Master the process of calling APIs developed on the application side
 Understand content and operations of routine cloud management

3 Huawei Confidential
Contents

1. Introduction to Platform Secondary Development

2. Product Development

3. Development on the Application Side

4. Development on the Device Side

5. Cloud-based Routine Maintenance

4 Huawei Confidential
Introduction to Platform Secondary Development
⚫ To create an IoT solution based on the HUAWEI CLOUD IoT platform, you must perform the operations described in the table
below.
Operation Description

Product development Manage products, develop product models and codecs, and perform online debugging on the IoT Device Access (IoTDA) console.

Development on the Carry out development for interconnection between applications and the platform, including calling APIs, obtaining service data, and
application side managing HTTPS certificates.

Development on the Integrate and interconnect devices with the IoT platform, including connecting devices to the IoT platform, reporting service data to the
device side platform, and processing commands delivered by the platform.

⚫ The process of using IoTDA, including product, application, device, and routine management.
 Product development: You can perform development operations on the IoTDA console. For example, you can create a product or device,
develop a product model or codec online, perform online debugging, carry out self-service testing, and release products.
 Development on the application side: The platform provides robust device management capabilities through APIs. You can develop
applications based on the APIs to meet requirements in different industries such as smart city, smart campus, smart industry, and IoV.
 Development on the device side: You can connect devices to the platform by integrating SDKs or modules, or using native protocols.
 Routine management: After a physical device is connected to the platform, you can perform routine device management on the IoTDA
console or by calling APIs.

5 Huawei Confidential
Contents

1. Introduction to Platform Secondary Development

2. Product Development
◼ Product Model

▫ Codec

3. Development on the Application Side

4. Development on the Device Side

5. Cloud-based Routine Maintenance

6 Huawei Confidential
Development Process: Product Development and Development
on the Application Side
Developer

IoTDA console

Development on Application API Commercial use of


Product creation Subscription test
the application integration applications
side
Console
development Product
Product release
center
Routine
Function definition management
on the cloud
Self-test Product import
Codec development

Commercial use of
Device-side integration Online debugging Device registration
devices
Development on the device
side

7 Huawei Confidential
Product Model (1)
⚫ A product model, also known as a profile, defines the properties of a device, such as the color, size,
collected data, identifiable commands, and reported events. The manufacturer, device type, and
device model are used together to uniquely identify a product model. You can easily develop
product models on the IoTDA console without writing any code.
⚫ A profile (product model) is a file that describes what a device is, what it can do, and how to
control it. You can build an abstract model of a device by defining a product model on the IoT
platform so that the platform can know what services, properties, and commands are supported by
the device, such as its color or any on/off switches. After defining a product model, you can use it
for device registration.

8 Huawei Confidential
Product Model (2)
Product

Service
Product details
capabilities

Manufacturer Manufacturer
Device type Protocol Service Service Service
ID name

Property Property Property Command Property

Command
Response field
field

⚫ On the IoT platform, the product model is the key to device access. It contains the capabilities and services of a device and the data formats of
upstream and downstream device messages. For example, when a device reports data to the IoT platform, the IoT platform matches the
product model based on the keywords of the reported data and verifies the data format. Only data that is matched is saved on the IoT
platform. If the reported data is not matched with the configuration in the product model, the data is considered invalid and dropped.

9 Huawei Confidential
Product Model (3)
⚫ Product Details
 Product details describe basic information about a device, including the manufacturer ID,
manufacturer name, device type, and protocol.
 For example, the manufacturer name of a water meter could be ‘HZYB', the manufacturer ID
'TestUtf8ManuId', the device type 'WaterMeter', and the protocol 'CoAP'.
⚫ Service Capabilities
 Service capabilities of a device need to be defined. Device capabilities are divided into several
services. The properties, commands, and command parameters of each service are defined in
the product model.
 Take a water meter as an example. It has multiple capabilities, such as reporting data about the
water flow, alarms, power, and connections, and receiving commands from a server. When
describing the capabilities of a water meter, the profile includes five services, each of which has
its own properties or commands.

10 Huawei Confidential
Service Capability - Water Meter
Service Description
Used to define parameters reported by the water meter, such as the water flow, temperature, and
Basics (WaterMeterBasic) pressure. If these parameters need to be controlled or modified using commands, you also need to
define parameters in the commands.
Used to define data reported by the water meter in various alarm scenarios. Commands need to be
Alarm (WaterMeterAlarm)
defined if necessary.
Battery (Battery) Used to define data including the voltage and current intensity of the water meter.

Transmission rule (DeliverySchedule) Used to define transmission rules for the water meter. Commands need to be defined if necessary.
Connectivity (Connectivity) Used to define connection parameters of the water meter.

⚫ The HUAWEI CLOUD IoT platform provides multiple methods for developing product models. You can select one that suits
your needs.
 Importing models (preset product models on the platform)
 Uploading a profile (offline development)
 Importing models in an Excel file
 User-defined functions (online development)

11 Huawei Confidential
Profile Example

12 Huawei Confidential
Contents

1. Introduction to Platform Secondary Development

2. Product Development
▫ Product Model
◼ Codec

3. Development on the Application Side

4. Development on the Device Side

5. Cloud-based Routine Maintenance

13 Huawei Confidential
Codec (1)
⚫ What Is a Codec?
 The codec decodes binary data reported by devices into JSON data that can be read by the application and
encodes downstream command data in JSON format of the application into binary data that can be
executed by devices.

⚫ Why Is the Codec Used?


 NB-IoT devices use data in binary or TLV format.
◼ CoAP is used for communication between NB-IoT devices and the IoT platform. The payload of CoAP messages
carries data at the application layer, at which the data type is defined by the devices. Because NB-IoT devices have
high requirements on power consumption, their application layer data is not in JSON format.

 The application does not understand data in binary or TLV format.

14 Huawei Confidential
Codec (2)
⚫ Developing a Codec
 The platform provides three methods for developing codecs. Offline codec development is complex and
time-consuming. Graphical codec development is recommended.
◼ Graphical development: The codec of a product can be quickly developed in a visualized manner on the IoTDA console.
◼ Offline Development: A codec is developed through secondary development based on the Java codec demo to implement encoding,
decoding, packaging, and quality inspection.
◼ Script-based development: JavaScript scripts are used to implement encoding and decoding.

 The IoT platform abstracts and encapsulates the original codec development code. Therefore, developers
can develop codecs simply by defining the format of code streams reported by devices and mapping the
properties in the code streams and the profiles in a graphical way. When the development is complete, the
codec is automatically generated and can be deployed on the IoT platform.

15 Huawei Confidential
Codec (3)

Application platform

Deliver commands in Upload data in JSON


JSON format format

HUAWEI CLOUD IoT platform

Encode Decode
Codecs
method method

Deliver commands in
Report binary data
binary format

IoT device

16 Huawei Confidential
Codec Example

17 Huawei Confidential
Contents

1. Introduction to Platform Secondary Development

2. Product Development

3. Development on the Application Side

4. Development on the Device Side

5. Cloud-based Routine Maintenance

18 Huawei Confidential
Development on the Application Side
⚫ The IoT platform provides APIs to make application development more easy and efficient. You can call these
open APIs to quickly integrate platform functions, such as product, device, subscription, and rule
management, as well as device command delivery.

Application-side APIs

Return a token View the


Authentication application Create products Device Deliver Receive Receive
access and manage registration and commands, commands, Subscription push data
address on products management properties, and messages, and
the console messages properties

IAM IoTDA

19 Huawei Confidential
Northbound APIs of the IoT Platform
⚫ The HUAWEI CLOUD IoT platform provides various northbound RESTful APIs for application developers to quickly develop
IoT applications based on the capabilities provided by the platform.

⚫ Northbound APIs provided by the HUAWEI CLOUD IoT platform include:


 Subscription management  Tag management Action Description
 Product management  Resource space GET Obtains resources from the server.
 Device management management POST Creates a resource from the server.

 Device messages
 Batch task PUT Updates resources on the server.

 Batch task file DELETE Deletes resources from the server.


 Device commands
management
 Device properties Parameter Description
 Device CA certificate header Parameter of the HTTP message header.
 Device shadows
management path Parameter of the path part in the URL.
 Device group management Parameter behind the question mark (?) in
 Rule management query
the URL.
body Parameter of the HTTP message body.

20 Huawei Confidential
Application Access Authentication
Method: POST

Request: Response:
https://iam.cn-north- //Status Code:
4.myhuaweicloud.com/v3/auth/tokens Status Code: 201 Created
// Response header:
Content-Type: application/json //Body:{
X-Auth-
"auth": { Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
"identity": { //Body: {
"methods": [
"password" ], "token": {
"password": { "catalog": [],
Authentication Return a token "user": { "expires_at": "2020-01-04T09:05:22.701000Z",
"name": "username", "issued_at": "2020-01-03T09:05:22.701000Z",
"password": "********", "methods": [
"domain": { "password"
"name": "domainname" ],
IAM service } "project": {
} "domain": {
} "id": "d78cbac186b744899480f25bd022f...",
}, "name": "IAMDomain"
... },
} ...
}// username indicates the IAM username, and } //X-Auth-Token is the secret used for subsequent device and
password indicates the password for logging in to data operations.
HUAWEI CLOUD.

21 Huawei Confidential
Creating a Device
Method: POST Response:
// Status Code:
Status Code: 201 Created
Request:
Content-Type: application/json
https://{Endpoint}/v5/iot/{project_id}/devices
// Body:
Register Content-Type: application/json
{
X-Auth-Token: ********
"app_id" : "***",
Instance-Id: ********
"app_name" : "***",
{
"device_id" : "***",
"device_id" : "d4922d8a-6c8e-4396-852c-
HUAWEI CLOUD IoT 164aefa6638f",
"node_id" : "***",
"gateway_id" : "***",
platform "node_id" : "ABC123456789",
"device_name" : "***",
"device_name" : "dianadevice",
"node_type" : "***",
"product_id" : "b640f4c203b7910fc3cbd446ed437cbd",
"description" : "***",
Bind "auth_info" : {
"fw_version" : "1.1.0",
"auth_type" : "SECRET",
"sw_version" : "1.1.0",
"secure_access" : true,
"auth_info" : {
"fingerprint" :
"auth_type" : "SECRET",
"dc0f1016f495157344ac5f1296335cff725ef22f",
"secret" : "***",
"secret" : "3b935a250c50dc2c6d481d048cefdc3c",
"fingerprint" : "***",
"timeout" : 300
"secure_access" : true,
},
"timeout" : 300

},
}
Directly connected …
Indirectly NB-IoT
devices }
connected devices
(with IP capability) }
devices

22 Huawei Confidential
Modifying Device Information

Method: PUT

Request:
Modify device
https://{Endpoint}/v5/iot/{project_id}/devices/{device_id}
information Content-Type: application/json
X-Auth-Token: ********
Instance-Id: ********
HUAWEI CLOUD IoT {
platform "device_name" : "dianadevice",
"description" : "watermeter device",
"extension_info" : {
"aaa" : "xxx",
"bbb" : 0
},
"auth_info" : {
"secure_access" : true,
"timeout" : 300
}
}

Indirectly Directly connected Response:


NB-IoT
devices // Status Code:
connected devices
(with IP capability) Status Code: 200 OK
devices

23 Huawei Confidential
Querying a Device

Response:
// Status Code:
Status Code: 200 OK
Query a device
Content-Type: application/json
//Body:
Method: GET {
"app_id" : "***",
HUAWEI CLOUD Request: "app_name" : "***",
IoT platform https://{Endpoint}/v5/iot/{project_id}/devices/{device
_id}
"device_id" : "***",
"node_id" : "***",
Content-Type: application/json "gateway_id" : "***",
X-Auth-Token: ******** "device_name" : "***",
Instance-Id: ******** "node_type" : "***",
"description" : "***",
"fw_version" : "1.1.0",
"sw_version" : "1.1.0",
"auth_info" : {
"auth_type" : "***",
"secret" : "***",
"fingerprint" : "***",
"secure_access" : true,
Indirectly Directly connected "timeout" : 300
NB-IoT
connected devices },
devices
devices (with IP capability) ...}

24 Huawei Confidential
Querying Device Messages
Method: GET
Request:
https://{Endpoint}/v5/iot/{project_id}/devices/{device_id}/
messages
Content-Type: application/json
Query device messages X-Auth-Token: ********
Instance-Id: ********

Response:
HUAWEI CLOUD IoT // Status Code:
Status Code: 200 OK
platform Content-Type: application/json

{
"device_id" : "d4922d8a-6c8e-4396-852c-164aefa6638f",
"messages" : [ {
"message_id" : "b1224afb-e9f0-4916-8220-
b6bab568e888",
"name" : "message_name",
"message" : "string",
"topic" : "string",
"status" : "PENDING",
"created_time" : "20151212T121212Z",
"finished_time" : "20151212T121212Z"
Indirectly Directly connected NB-IoT }]
connected devices devices }
devices (with IP capability)

25 Huawei Confidential
Deleting a Device

Method: DELETE
Delete a device

Request:
HUAWEI CLOUD IoT https://{Endpoint}/v5/iot/{project_id}/devices/{dev
ice_id}
platform Content-Type: application/json
X-Auth-Token: ********
Instance-Id: ********

Response:
Status Code: 204 No Content

Indirectly Directly connected NB-IoT


connected devices devices
devices (with IP capability)

26 Huawei Confidential
Contents

1. Introduction to Platform Secondary Development

2. Product Development

3. Development on the Application Side

4. Development on the Device Side

5. Cloud-based Routine Maintenance

27 Huawei Confidential
Platform Development Process: Development on the Device Side

Device-side integration

Select an access mode

Use SDKs for access Use modules for access Use protocols
MQTTS, LoRaWAN, and Modbus
for access
Huawei-certified
IoT Device SDK (C) modules

Select a module
Select an SDK IoT Device SDK (Java)
Non-Huawei-certified
modules
IoT Device SDK Tiny

28 Huawei Confidential
Development on the Device Side (1)

MQTT/CoAP/L The device uses the Huawei-


Certified MCU
Device
wM2M HUAWEI
development
+ CLOUD IoT
certified MCU to directly call
functions, facilitating
Certified MCU Communications platform connection.
module

MQTT/CoAP/L The device uses the Huawei-


Certificated
Device

wM2M HUAWEI certified module to directly


module
development
+ CLOUD IoT
call AT commands,
MCU/single-chip Certified communications facilitating platform
module
microcomputer connection.

MQTT/CoAP/L The device uses the MCU or


wM2M HUAWEI CPU where Huawei LiteOS is
Device

LiteOS CLOUD IoT


development
LiteOS + installed, facilitating
MCU/CPU Communications module
platform connection.

29 Huawei Confidential
Development on the Device Side (2)

MQTT/CoAP/L
The device integrates the
Device
Device SDK wM2M HUAWEI
Common
development Tiny + CLOUD SDK Tiny into the MCU or
IoT single-chip microcomputer
MCU/single-chip Communications
microcomputer module
to connect to the platform.

MQTT/CoAP/L
The device uses the
Device

wM2M HUAWEI
OpenCPU CLOUD OpenCPU module to
module IoT integrate the SDK to
development
OpenCPU module connect to the IoT
platform.

MQTT/CoAP/L
The gateway integrates the
Device

wM2M HUAWEI
Gateway Device SDK + CLOUD Device SDK into the
development IoT MCU/CPU to connect to the
MCU/CPU Module or platform.
network port

30 Huawei Confidential
Using IoT Device SDKs for Access
⚫ You can use Huawei IoT Device SDKs to quickly connect devices to the IoT platform. After being integrated
with an IoT Device SDK, devices that support the TCP/IP protocol stack can communicate directly with the IoT
platform. Devices that do not support the TCP/IP protocol stack, such as Bluetooth and Zigbee devices, need
to use a gateway integrated with the IoT Device SDK to communicate with the platform.
1. Create a product on the IoTDA console or by calling the API Creating a Product.
2. Register the device on the IoTDA console or by calling the API Creating a Device.
3. Implement the functions demonstrated in the figure, including reporting messages/properties, receiving
commands/properties/messages, OTA upgrades, topic customization, and generic-protocol access.

IoTDA

Data Receive Report custom


reporting commands, OTA upgrades topics Generic-protocol
properties, and access
messages

Device (integrating different types of IoT Device SDKs)

31 Huawei Confidential
Using Huawei - Certified Modules for Access
⚫ Certified modules are pre-integrated with the IoT Device SDK Tiny. They have passed Huawei tests, and comply with
Huawei's AT command specifications. The following benefits are available for Huawei-certified modules:
 Device manufacturers do not need to worry about how to connect to the HUAWEI CLOUD IoT platform on the MCU (for example, how to
set the secret encryption algorithm and clientID composition mode during MQTT connection setup). To connect their devices to the
platform, they only need to invoke AT commands. This accelerates device interconnection and commissioning.
 The MCU does not need to integrate the MQTT protocol stack or IoT Device SDK Tiny, greatly reducing MCU resource consumption.
 Huawei releases certified modules on HUAWEI CLOUD Marketplace so that device manufacturers and service providers can purchase
these certified modules to quickly connect to HUAWEI CLOUD IoT.
⚫ The following figure shows how a certified module is used to connect a device to the platform.

AT command
HUAWEI CLOUD
Applications
IoT platform

Communications
module

Device

32 Huawei Confidential
Device Authentication
⚫ The platform authenticates a device when the device attempts to access the platform. The
authentication process depends on the access method.

Access Type

Call the API Creating a Device or use the IoTDA console to register a device with the
platform, and set the node ID (for example, the IMEI) as the verification code. The
Device connected using LWM2M over
device can use the node ID to get authenticated and connect to the platform.
CoAP
When Datagram Transport Layer Security (DTLS) or DTLS+ is used, the transmission
channel between the device and platform is encrypted by using a PSK.

Call the API Creating a Device or use the IoTDA console to register a device with the
platform, and hardcode the device ID and secret returned by the platform into the
Device using native MQTT or MQTTS
device. A CA certificate is preset on MQTTS devices, but not MQTT devices. The device
uses the device ID and secret to get authenticated and connect to the platform.

33 Huawei Confidential
Authentication for Devices Using LwM2M over CoAP
Device IoT platform Application

1. Register a device (with PSK carried by a


security device).

2. Save PSK, nodeId, and timeout on


the platform.

3. Return PSK and timeout.


4. Hardcode the secret to the device.

5. Device login (nodeId carried by non-


security devices and nodeId and PSK carried
by security devices).

6. Perform verification.

7. The authentication is successful,


and the device is connected to the
IoT platform.

34 Huawei Confidential
Authentication for Devices Using Native MQTT or MQTTS
Device IoT platform Application

1. Register a device.

3. Hardcode information.

2. Return deviceId and secret after the


4. Preset a CA certificate (only
registration is successful.
for MQTTs).

5. Connect the powered on device for


authentication (carrying the deviceId and
secret).

6. The authentication is successful,


and the device is connected to the
IoT platform.

35 Huawei Confidential
Contents

1. Introduction to Platform Secondary Development

2. Product Development

3. Development on the Application Side

4. Development on the Device Side

5. Cloud-based routine maintenance

36 Huawei Confidential
Platform Development Process: Cloud-based Routine
Management
Commercial use of Subscription and push
applications
Property reporting
Commercial use of
devices Details viewing
Message reporting
Report viewing
Command delivery
Operation record
Software/Firmware
viewing
upgrades
IoTDA Storage management
Message tracing

Device monitoring Alarm management

Groups and tags Audit log viewing

Upload
HUAWEI CLOUD
Data forwarding
services
Rules

Device linkage
Device shadows

37 Huawei Confidential
Data Reporting
Device shadow viewing on
the console or using an API
Application
API subscription and push
Device
shadows

Gateway property
reporting in batches
(JSON format) Device
Gateway
linkage
Device property
reporting (JSON Data parsing
format) Data Other HUAWEI
Device
forwarding CLOUD services

Raw device data JSON


reporting (binary) Historical data storage
Codec
Device
conversion
Device message
reporting (JSON Data storage
format)
Device

38 Huawei Confidential
Immediate Delivery of LwM2M/CoAP Device Commands
Device IoT platform Application
1. Deliver the command.
(send_strategy=immediately)

Call the encoding and decoding


library to encode the command
request.

2. Deliver the command.


3. Return the 201 Created response.
Update the command status.
4. Return the ACK response.

5. Update the command status.

6. Return the 205 Content response.

Call the codec encoding


library to encode the
command response.
7. Update the command status.
Report the command execution result.

39 Huawei Confidential
Delayed Delivery of LwM2M/CoAP Device Commands
Device IoT platform Application
1. Deliver the command.
(send_strategy=delay)

Write data to the cache queue.


2. Return the 200 OK message.
3. Bring a device online.

Call the codec encoding library to encode the


4. Deliver the command. command request.

5. Update the command status.

6. Return the ACK response.


7. Update the command status.
8. Return the 205 Content response.

Call the codec encoding library to encode the


command response.
9. Update the command status.
Report the command execution result.

40 Huawei Confidential
Immediate Delivery of MQTT Device Messages
Device IoT platform Application

1. Deliver a message.

2. Deliver a message.

3. Return the 201 Created message.

4. Report the message execution result.

41 Huawei Confidential
Delayed Delivery of MQTT Device Messages
Device IoT platform Application

1. Deliver a message.
(The device is offline.)

Write data to the cache queue.


2. Return the 201 Created message.

3. Update the message status.

4. Bring a device online.

5. Subscribe to messages delivered by a topic.

6. Deliver a message.

7. Update the message status.

42 Huawei Confidential
Quiz

1. (Multiple Choice) Which of the following two formats are used by the IoT platform codec to
convert data?
A. Binary data

B. Decimal data

C. JSON data

D. XML data

2. (True or false) An IoT application must be authenticated before being connected to the IoT
platform.

43 Huawei Confidential
Summary

⚫ In this section, you learned how to perform secondary development on the IoT
platform. Secondary development is classified into product development,
development on the device side, development on the application side, and cloud-
side routine management. Development on the product side includes product model
development and codec development.

44 Huawei Confidential
Thank you. 把数字世界带入每个人、每个家庭、
每个组织,构建万物互联的智能世界。
Bring digital to every person, home, and
organization for a fully connected,
intelligent world.

Copyright©2020 Huawei Technologies Co., Ltd.


All Rights Reserved.

The information in this document may contain predictive


statements including, without limitation, statements regarding
the future financial and operating results, future product
portfolio, new technology, etc. There are a number of factors that
could cause actual results and developments to differ materially
from those expressed or implied in the predictive statements.
Therefore, such information is provided for reference purpose
only and constitutes neither an offer nor an acceptance. Huawei
may change the information at any time without notice.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy