Skip to content

Commit 0cdb956

Browse files
committed
ucloud: Push client version and mode.
Signed-off-by: iabdalkader <[email protected]>
1 parent e380caa commit 0cdb956

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/arduino_iot_cloud/ucloud.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
import time
88
import sys
99
import logging
10+
import cbor2
1011
from senml import SenmlPack
1112
from senml import SenmlRecord
1213
from arduino_iot_cloud.umqtt import MQTTClient
13-
1414
import asyncio
1515
from asyncio import CancelledError
1616
try:
@@ -19,6 +19,10 @@
1919
# MicroPython doesn't have this exception
2020
class InvalidStateError(Exception):
2121
pass
22+
try:
23+
from arduino_iot_cloud._version import __version__
24+
except (ImportError, AttributeError):
25+
__version__ = "1.3.0"
2226

2327
# Server/port for basic auth.
2428
_DEFAULT_SERVER = "iot.arduino.cc"
@@ -355,6 +359,11 @@ def poll_discovery(self, aiot=None):
355359
lastval_record.add_to_pack(self.senmlpack)
356360
self.mqtt.subscribe(self.create_topic("shadow", "i"), qos=1)
357361
self.mqtt.publish(self.create_topic("shadow", "o"), self.senmlpack.to_cbor(), qos=1)
362+
363+
# Push library version and mode.
364+
libv = "%s-%s" % (__version__, "async" if self.async_mode else "sync")
365+
command_topic = b"/a/d/" + device_id + b"/c/up"
366+
self.mqtt.publish(command_topic, cbor2.dumps(cbor2.CBORTag(67328, [libv])), qos=1)
358367
logging.info("Device configured via discovery protocol.")
359368
if self.async_mode:
360369
raise DoneException()

0 commit comments

Comments
 (0)