예제 #1
0
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)
예제 #2
0
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