IBM Cloud Watson IoT Library¶
The Zerynth IBM Cloud Watson IoT Library can be used to ease the connection to the IBM Watson IoT Platform.
It allows to make your device act as an IBM Watson IoT Device which can be created through IBM Watson IoT dashboard.
The Device class¶
-
class
Device
(device_id, device_type, organization, auth_token)¶ Create a Device instance representing an IBM Watson IoT Device.
The Device object will contain an mqtt client instance pointing to IBM Watson IoT MQTT broker located at
organization.messaging.internetofthings.ibmcloud.com
. The client is configured withd:organization:device_type:device_id
as MQTT id and is able to connect securely through TLS and to authenticate settingauth_token
as client password.The client is accessible through
mqtt
instance attribute and exposes all Zerynth MQTT Client methods so that it is possible, for example, to setup custom callback on MQTT commands (though the Device class already exposes high-level methods to setup IBM Watson IoT specific callbacks). The only difference concerns mqtt.connect method which does not require broker url and ssl context, taking them from Device configuration:my_device = iot.Device('my_device_id', 'my_device_type', 'my_organization', 'auth_token') my_device.mqtt.connect() ... my_device.mqtt.loop()
-
publish
(event_id, event, format_string='json')¶ Publish
event_id
event withevent
content.event
content has to be a dictionary when'json'
is chosen asformat_string
, a string otherwise.
-
on_cmd
(command_id, command_cbk, format_string='json')¶ Set a callback to respond to
command_id
command.command_cbk
callback will be called passing a dictionary containing command payload when'json'
is chosen asformat_string
, a string otherwisedef turn_led(cmd_content): if cmd_content['dir'] == 'on': led_on() else: led_off() my_device.on_cmd('turn_led', turn_led)