class ClearBladeIot(IotProvider): """ Child class containing implementations of IotProvider specific to CleaBlade. """ def __init__(self, iot_provider_cfg): # 1. Load path to ClearBlade-specific module from config and add to path. # 2. Import ClearBlade-specific module. # 3. Load system_key and system_secret from config. # 4. Create "System" object. # 5. Call parent class' __init__ sys.path.append(iot_provider_cfg["module_dir"]) from clearblade.ClearBladeCore import System as ClearBladeSystem self.ClearBladeSystem = ClearBladeSystem( iot_provider_cfg["system_key"], iot_provider_cfg["system_secret"]) super().__init__(iot_provider_cfg) def on_connect(self, client, userdata, flags, rc): # Event handler for connection event. Subscribe to topic(s) here. client.subscribe(self.subscribe_topic) print(f"subscribed to {self.subscribe_topic}") def onmsg(self, client, userdata, msg): # Wraps core event handler for incoming messages msg_payload = msg.payload super().onmsg(msg_payload) def connect(self): # A connection to iot is established at the beginning and if publish fails. # 1. Create AnonUser. # 2. Create Messaging object with AnonUser as param. # 3. Pass on_connect function. # 4. Pass onmsg function. # 5. Call Messaging object's "connect" method. self.clearblade_iot_user = self.ClearBladeSystem.AnonUser() self.clearblade_iot_comm = self.ClearBladeSystem.Messaging( self.clearblade_iot_user, client_id="xqtive") self.clearblade_iot_comm.on_connect = self.on_connect self.clearblade_iot_comm.on_message = self.onmsg self.clearblade_iot_comm.connect() def publish(self, publish_topic, msg_str, qos): self.clearblade_iot_comm.publish(publish_topic, msg_str, qos=qos)
SystemKey = "" #Enter your system key SystemSecret = "" #Enter your system secret url = "https://platform.clearblade.com" mySystem = System(SystemKey, SystemSecret, url, safe=False) answer = input("Do you have an account registered in this system? Y/n\n") answer = answer.lower() while (answer != "y" or answer != "n"): if (answer == "y"): enterEmail = input("enter your email\n") enterPass = input("enter your password\n") break elif (answer == "n"): anon = mySystem.AnonUser() enterEmail = input("enter your email\n") enterPass = input("enter your password\n") newUser = mySystem.registerUser(anon, enterEmail, enterPass) break else: answer = input("wrong answer, input Y/n again.\n") email = enterEmail password = enterPass newUser = mySystem.User(email, password) #access the platform and generate a token mqtt = mySystem.Messaging( newUser) #use the token to access messaging on your account