Browse Source

Merge pull request #94 from carlallen/modify_charts_in_plugins

Allow modifying chart data in plugins
tags/3.1_alpha
Manuel83 GitHub 8 years ago
parent
commit
2fe3d1d68e
2 changed files with 20 additions and 4 deletions
  1. +15
    -0
      modules/core/controller.py
  2. +5
    -4
      modules/logs/endpoints.py

+ 15
- 0
modules/core/controller.py View File

@@ -74,6 +74,14 @@ class ControllerBase(object):


class KettleController(ControllerBase, ActorController, SensorController): class KettleController(ControllerBase, ActorController, SensorController):


@staticmethod
def chart(kettle):
result = []
result.append({"name": "Temp", "data_type": "sensor", "data_id": kettle.sensor})
result.append({"name": "Target Temp", "data_type": "kettle", "data_id": kettle.id})

return result

def __init__(self, *args, **kwds): def __init__(self, *args, **kwds):
ControllerBase.__init__(self, *args, **kwds) ControllerBase.__init__(self, *args, **kwds)
self.kettle_id = kwds.get("kettle_id") self.kettle_id = kwds.get("kettle_id")
@@ -107,6 +115,13 @@ class KettleController(ControllerBase, ActorController, SensorController):


class FermenterController(ControllerBase, ActorController, SensorController): class FermenterController(ControllerBase, ActorController, SensorController):


@staticmethod
def chart(fermenter):
result = []
result.append({"name": "Temp", "data_type": "sensor", "data_id": fermenter.sensor})
result.append({"name": "Target Temp", "data_type": "fermenter", "data_id": fermenter.id})
return result

def __init__(self, *args, **kwds): def __init__(self, *args, **kwds):
ControllerBase.__init__(self, *args, **kwds) ControllerBase.__init__(self, *args, **kwds)
self.fermenter_id = kwds.get("fermenter_id") self.fermenter_id = kwds.get("fermenter_id")


+ 5
- 4
modules/logs/endpoints.py View File

@@ -65,6 +65,8 @@ class LogView(FlaskView):
pass pass
return array return array


def convert_chart_data_to_json(self, chart_data):
return {"name": chart_data["name"], "data": self.read_log_as_json(chart_data["data_type"], chart_data["data_id"])}


@route('/<t>/<int:id>', methods=["POST"]) @route('/<t>/<int:id>', methods=["POST"])
def get_logs_as_json(self, t, id): def get_logs_as_json(self, t, id):
@@ -76,13 +78,12 @@ class LogView(FlaskView):


if t == "k": if t == "k":
kettle = cbpi.cache.get("kettle").get(id) kettle = cbpi.cache.get("kettle").get(id)
result.append({"name": "Temp", "data": self.read_log_as_json("sensor", kettle.sensor)})
result.append({"name": "Target Temp", "data": self.read_log_as_json("kettle", kettle.id)})
result = map(self.convert_chart_data_to_json, cbpi.get_controller(kettle.logic).get("class").chart(kettle))


if t == "f": if t == "f":
fermenter = cbpi.cache.get("fermenter").get(id) fermenter = cbpi.cache.get("fermenter").get(id)
result.append({"name": "Temp", "data": self.read_log_as_json("sensor", fermenter.sensor)})
result.append({"name": "Target Temp", "data": self.read_log_as_json("fermenter", fermenter.id)})
result = map(self.convert_chart_data_to_json, cbpi.get_fermentation_controller(fermenter.logic).get("class").chart(fermenter))
return json.dumps(result) return json.dumps(result)


@route('/download/<file>') @route('/download/<file>')


Loading…
Cancel
Save