Tüm Ürünler
Search
Belge Merkezi

IoT Platform:Python örnek betiği

Son Güncelleme:Oct 03, 2026

Özel konulara gönderilen mesajları ayrıştırmak için aşağıdaki Python betik şablonunu ve örnek betiği kullanın.

Betik şablonu

SELF_DEFINE_TOPIC_UPDATE_FLAG = '/user/update' # The custom topic /user/update. 
SELF_DEFINE_TOPIC_ERROR_FLAG = '/user/update/error' # The custom topic /user/update/error. 

# Call a function to convert the data of the messages in a custom topic to JSON data when the device submits data to IoT Platform. 
# topic: the input parameter that specifies the topic to which the device sends messages. The value is a string.    
#rawData: the input parameter. The value is a list of integers that cannot be empty. 
# jsonObj: the output parameter. The value is a JSON object that indicates a dictionary.     
def transform_payload(topic, rawData):
   jsonObj = {}
   return jsonObj

Örnek betik

Not

Aşağıdaki örnek betik yalnızca özel konulara gönderilen mesajları ayrıştırır. Ürünün

Data Type

parametresini

Custom

olarak ayarlarsanız Thing Specification Language (TSL) mesajlarını ayrıştırmak için de bir betik yazmanız gerekir. Daha fazla bilgi için bkz.

TSL modeli mesajı ayrıştırma betiği gönderme

.

custom data formats hakkında bilgi için bkz. Ürün oluşturma.

# coding=UTF-8
SELF_DEFINE_TOPIC_UPDATE_FLAG = '/user/update' # The custom topic /user/update. 
SELF_DEFINE_TOPIC_ERROR_FLAG = '/user/update/error' # The custom topic /user/update/error. 

#  Sample data:
#  Custom topic: /user/update, to which data is sent. 
#  Input:
#     topic: /${productKey}/${deviceName}/user/update
#     bytes: 0x000000000100320100000000
#  Output:
#  {
#     "prop_float": 0,
#     "prop_int16": 50,
#     "prop_bool": 1,
#     "topic": "/${productKey}/${deviceName}/user/update"
#   }
def transform_payload(topic, bytes):
    uint8Array = []
    for byteValue in bytes:
        uint8Array.append(byteValue & 0xff)

    jsonMap = {}
    if SELF_DEFINE_TOPIC_ERROR_FLAG in topic:
        jsonMap['topic'] = topic
        jsonMap['errorCode'] = bytes_to_int(uint8Array[0:1])

    elif SELF_DEFINE_TOPIC_UPDATE_FLAG in topic:
        jsonMap['topic'] = topic
        jsonMap['prop_int16'] = bytes_to_int(uint8Array[5:7])
        jsonMap['prop_bool'] = bytes_to_int(uint8Array[7: 8])
        jsonMap['prop_float'] = bytes_to_int(uint8Array[8:])

    return jsonMap

# Convert a byte array into data of the INT type. 
def bytes_to_int(bytes):
    data = ['%02X' % i for i in bytes]
    return int(''.join(data), 16)