Вы можете использовать это руководство: 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)
Вы можете определить свои собственные функции и имена методов RPC для I2C (вместо использования get_gpio_status и set_gpio_status )