def __init__(self): """ ############################################################################## # # __init__() # ############################################################################## """ global client global wdt try: log.debug('Sensor.__init__() BEGIN') #from machine import WDT #wdt = WDT() #del WDT #collect() from umqtt.simple import MQTTClient client = MQTTClient('FIXME', config.MQTT_HOST, user=config.MQTT_USER_ID, password=config.MQTT_API_KEY, port=config.MQTT_PORT) del MQTTClient client.DEBUG = True client.set_callback(self.on_message) client.connect(clean_session=True) client.subscribe("#") except Exception as e: log.error('Sensor.__init__() caught e={}'.format(e)) finally: log.debug('Sensor.__init__() END')
def mqtt_reconnect(): global client try: client = MQTTClient( config.CONFIG['MQTT_CLIENT_ID'], config.CONFIG['MQTT_BROKER'], # user=config.CONFIG['MQTT_USER'], # password=config.CONFIG['MQTT_PASSWORD'], port=config.CONFIG['MQTT_PORT']) client.DEBUG = True client.set_callback(on_message) client.connect(clean_session=True) if config.CONFIG['DEVICE_ID'] == config.CONFIG['DEVICE_ID_USE']: client.subscribe(use_topic + "#") print("ESP8266 is Connected to %s and subscribed to %s topic" % (config.CONFIG['MQTT_BROKER'], use_topic + "#")) else: client.subscribe(device_topic + "#") print("ESP8266 is Connected to %s and subscribed to %s topic" % (config.CONFIG['MQTT_BROKER'], device_topic + "#")) client.publish( device_topic + "info/", "%s" % [ config.CONFIG['DEVICE_TYPE'], config.CONFIG['DEVICE_PLACE'], config.CONFIG['DEVICE_PLACE_NAME'], config.CONFIG['DEVICE_ID'] ]) except Exception as e: print("Error in MQTT reconnection: [Exception] %s: %s" % (type(e).__name__, e))
def _umqtt_connect(self): mqtt = MQTTClient(self.settings.DEVICE_ID, self.settings.MQTT_BROKER, port=self.settings.MQTT_PORT, user=self.settings.MQTT_USERNAME, password=self.settings.MQTT_PASSWORD, keepalive=self.settings.MQTT_KEEPALIVE, ssl=self.settings.MQTT_SSL, ssl_params=self.settings.MQTT_SSL_PARAMS) mqtt.DEBUG = True mqtt.set_callback(self.sub_cb) # for all callbacks mqtt.set_last_will(self.topic + b'/$online', b'false', retain=True, qos=1) mqtt.connect() # subscribe to device topics mqtt.subscribe(self.topic + b'/$stats/interval/set') mqtt.subscribe(self.topic + b'/$broadcast/#') self.mqtt = mqtt
def _umqtt_connect(self): mqtt = MQTTClient( self.settings.DEVICE_ID, self.settings.MQTT_BROKER, port=self.settings.MQTT_PORT, user=self.settings.MQTT_USERNAME, password=self.settings.MQTT_PASSWORD, keepalive=self.settings.MQTT_KEEPALIVE, ssl=self.settings.MQTT_SSL, ssl_params=self.settings.MQTT_SSL_PARAMS, ) mqtt.DEBUG = True mqtt.set_callback(self.sub_cb) # for all callbacks mqtt.set_last_will(b"/".join((self.topic, b"$state")), b"lost", retain=True, qos=1) mqtt.connect() self.mqtt = mqtt
sys.print_exception(e) strip.blink(2, colors['RED']) def connect(): while True: try: mqtt_client.connect(clean_session=True) mqtt_client.subscribe(settings.MQTT_TOPIC) break except Exception as e: sys.print_exception(e) time.sleep(1) mqtt_client = MQTTClient(ubinascii.hexlify(machine.unique_id()), settings.MQTT_HOST) mqtt_client.DEBUG = True mqtt_client.set_callback(on_message) connect() while True: try: mqtt_client.wait_msg() except Exception as e: sys.print_exception(e) connect() mqtt_client.disconnect()