我看到Thingsboard可以发送RPC请求(https://thingsboard.io/docs/user-guide/rule-engine-2-0/action-nodes/#rpc-call-request-node)。此示例显示了将值发送到GPIO。
我想知道是否可以将值发送到连接到Raspberry Pi的I2C物理设备。
如果我使用i2c-stub来创建虚拟I2C设备,如何将它们连接到Thingsboard? 到目前为止,我正在RPi上使用i2cset和i2cset来读写虚拟传感器。
谢谢, 费利佩
答案 0 :(得分:1)
您可以使用本指南: https://thingsboard.io/docs/samples/raspberry/gpio/
核心点:
def on_message(client, userdata, msg):
...
if data['method'] == 'getGpioStatus':
client.publish(msg.topic.replace('request', 'response'), get_gpio_status(), 1)
elif data['method'] == 'setGpioStatus':
set_gpio_status(data['params']['pin'], data['params']['enabled'])
client.publish(msg.topic.replace('request', 'response'), get_gpio_status(), 1)
client.publish('v1/devices/me/attributes', get_gpio_status(), 1)
您可以为I2C定义自己的函数和RPC方法名称(而不是使用 get_gpio_status 和 set_gpio_status )