def toggle(self, id): kettle = cbpi.cache.get("kettle")[id] if kettle.state is False: # Start controller if kettle.logic is not None: cfg = kettle.config.copy() cfg.update( dict(api=cbpi, kettle_id=kettle.id, heater=kettle.heater, sensor=kettle.sensor)) instance = cbpi.get_controller( kettle.logic).get("class")(**cfg) instance.init() kettle.instance = instance def run(instance): instance.run() t = self.api.socketio.start_background_task(target=run, instance=instance) kettle.state = not kettle.state cbpi.emit("UPDATE_KETTLE", cbpi.cache.get("kettle").get(id)) else: # Stop controller kettle.instance.stop() kettle.state = not kettle.state cbpi.emit("UPDATE_KETTLE", cbpi.cache.get("kettle").get(id)) return ('', 204)
def get_logs_as_json(self, log_type, log_id): """ :param log_type: log type :param log_id: log id :return: log as array """ result = [] if log_type == "s": name = cbpi.cache.get("sensors").get(log_id).name result.append({ "name": name, "data": self.read_log_as_json("sensor", log_id) }) if log_type == "k": kettle = cbpi.cache.get("kettle").get(log_id) result = list( map( self.convert_chart_data_to_json, cbpi.get_controller( kettle.logic).get("class").chart(kettle))) if log_type == "f": fermenter = cbpi.cache.get("fermenter").get(log_id) result = list( map( self.convert_chart_data_to_json, cbpi.get_fermentation_controller( fermenter.logic).get("class").chart(fermenter))) return json.dumps(result)
def get_logs_as_json(self, t, id): #print "get logs as json %s %s"%(t,id) data = request.json result = [] if t == "s": name = cbpi.cache.get("sensors").get(id).name result.append({"name": name, "data": self.read_log_as_json("sensor", id)}) if t == "k": kettle = cbpi.cache.get("kettle").get(id) result = map(self.convert_chart_data_to_json, cbpi.get_controller(kettle.logic).get("class").chart(kettle)) if t == "f": fermenter = cbpi.cache.get("fermenter").get(id) result = map(self.convert_chart_data_to_json, cbpi.get_fermentation_controller(fermenter.logic).get("class").chart(fermenter)) if t == "act_sensor": result = self.get_kettle_action_log(id) #kettle = cbpi.cache.get("kettle").get(id) #result = map(self.convert_chart_data_to_json, cbpi.get_controller(kettle.logic).get("class").chart(kettle)) #print result if t == "as": result = self.get_fermenter_action_log(id) if t == "pump": result = self.get_mygpio_action_log(21) return json.dumps(result)
def get_logs_as_json(self, t, id): data = request.json result = [] if t == "s": name = cbpi.cache.get("sensors").get(id).name sensor_name = "%s_%s" % ("sensor", str(id)) result.append({"name": name, "data": self.read_log_as_json(sensor_name)}) if t == "k": kettle = cbpi.cache.get("kettle").get(id) result = map(self.convert_chart_data_to_json, cbpi.get_controller(kettle.logic).get("class").chart(kettle)) if t == "f": fermenter = cbpi.cache.get("fermenter").get(id) result = map(self.convert_chart_data_to_json, cbpi.get_fermentation_controller(fermenter.logic).get("class").chart(fermenter)) return json.dumps(result)
def init(self): if isinstance(self.a_id, unicode) and self.a_id: self.id = (int(self.a_id)) self.auto_type = self.b_auto try: kettle = cbpi.cache.get("kettle").get(self.id) if (kettle.state is False) and (self.auto_type = "On"): # Start controller if kettle.logic is not None: cfg = kettle.config.copy() cfg.update(dict(api=cbpi, kettle_id=kettle.id, heater=kettle.heater, sensor=kettle.sensor)) instance = cbpi.get_controller(kettle.logic).get("class")(**cfg) instance.init() kettle.instance = instance def run(instance): instance.run() t = self.api.socketio.start_background_task(target=run, instance=instance) kettle.state = True cbpi.emit("UPDATE_KETTLE", kettle) else (kettle.state is True) and (self.auto_type = "Off"): # Stop controller kettle.instance.stop()
def setAutoMode(self, auto_state): try: kettle = cbpi.cache.get("kettle")[int(self.kettle)] if (kettle.state is False) and (auto_state is True): # turn on if kettle.logic is not None: cfg = kettle.config.copy() cfg.update( dict(api=cbpi, kettle_id=kettle.id, heater=kettle.heater, sensor=kettle.sensor)) instance = cbpi.get_controller( kettle.logic).get("class")(**cfg) instance.init() kettle.instance = instance def run(instance): instance.run() t = cbpi.socketio.start_background_task(target=run, instance=instance) kettle.state = not kettle.state cbpi.emit("UPDATE_KETTLE", cbpi.cache.get("kettle")[int(self.kettle)]) elif (kettle.state is True) and (auto_state is False): # turn off kettle.instance.stop() kettle.state = not kettle.state cbpi.emit("UPDATE_KETTLE", cbpi.cache.get("kettle")[int(self.kettle)]) except Exception as e: cbpi.notify("Error", "Failed to set Auto mode {}".format(["OFF", "ON" ][auto_state]), type="danger", timeout=None) cbpi.app.logger.error(e)