如果物聯應用開發(IoT Studio)平臺提供的節點不能滿足您的需求,您可以使用Python腳本節點,編寫Python代碼來實現功能邏輯。目前支持Python v2.7.9版本。且僅支持使用基本庫和基本語法,不支持擴展庫。
編碼說明
在業務邏輯編輯頁面的節點中,選擇對應功能節點配置業務流,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')