如果物聯應用開發(IoT Studio)平臺提供的節點不能滿足您的需求,您可以使用Python腳本節點,編寫Python代碼來實現功能邏輯。目前支持Python v2.7.9版本。且僅支持使用基本庫和基本語法,不支持擴展庫。

編碼說明

在業務邏輯編輯頁面的節點中,選擇對應功能節點配置業務流,Python腳本配置頁面如下圖所示。

Python腳本配置
注意 不支持使用Python代碼修改已配置的節點變量、局部變量和全局變量的值。

在腳本中,可使用平臺已內置的以下節點變量,調用需要的數據:

  • payload,來自上個節點的輸出數據。通過payload.get('payload對象中的某個key')來訪問指定key的數據。

    例如payload.get('productKey'):調用上一個節點輸出內容{productKey: '值'}中的值。

  • query,來自輸入節點的數據。例如,HTTP請求節點的入參,設備觸發節點的設備數據。通過query.get('參數名')來訪問指定數據。

    例如query.get('deviceName'):調用API請求節點中入參deviceName的值。

  • node,來自指定節點(node.get('節點ID'))的輸出數據。通過node.get('節點ID').get('節點輸出對象中的某個key')來訪問指定key的數據。

    例如node.get('node_85***0').get('pageNum'):調用節點node_85***0輸出中pageNum的值。

如果需要調用某參數的子集,可按如下示例方式調用:

  • 使用payload.get('props').get('PM10').get('value'),調用上一個節點props對象中屬性PM10的值。
  • 使用query.get('deviceContext').get('deviceName'),調用第一個節點的輸出內容中deviceContext對象的deviceName變量值。

代碼示例

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# @param {Object} payload 上一節點的輸出
# @param {Object} node 指定某個節點的輸出
# @param {Object} query 第一個節點的輸出
# @param {Object} context  { appKey, appSecret }

def main(payload, node, query, context):

    print 'payload =', payload
    print 'node =', node
    print 'query =', query
    print 'context =', context

    #獲取觸發節點props對象中屬性GeoLocation的值
    return query.get('props').get('GeoLocation').get('value')