def do_publish(self, arg): 'Publishes a message to mqq: publish <topic topic>' parts = arg.split(' ', 1) topic = parts[0] message = parts[1] if len(parts) >= 2 else "" mqq_handler.publish(topic, message) return self._msg_form("Published: '{} : {}'".format(topic, message))
def refresh_node_list(self): self.nodes = {} self.hot_node = None # this function will mqq_handler.add_callback("esp/log", self._handle_node_messages) # connected esps will respond to this message mqq_handler.publish("esp/ping_all", "")
def background_script(self, value): self._state["background_script"] = value # updates background script on esp via mqq if value is not None and len(value) > 0: mqq_handler.publish("esp/{}/background_script".format(self.name), value)
# request to get log. Returns rows of logs... @app.route('/log') def log(): off = int(request.args.get('offset')) rows = jlog.rows(off) ret = {"rows": rows} return json.dumps(ret) # push mqq log message into log q. def log_message_handler(client, obj, msg): print("ON MESSAGE: " + msg.topic + " " + str(msg.qos) + " " + str(msg.payload)) log_data = json.loads(msg.payload) jlog.event(log_data['levelname'], log_data["message"], log_data["client"]) if __name__ == '__main__': # setup cloud mqqt mqq_handler.init("esp monitor") mqq_handler.add_callback("esp/log", log_message_handler) mqq_handler.publish("esp/log", _start_message) esp_manager.init() # reloader reloads this module for debug purposes... app.run(debug=True, use_reloader=False, threaded=True, host='0.0.0.0')