def post_message(mkey): if not request.json: abort(400) c = concs.find_by_mkey(mkey) if c is None: abort(404) app.logger.debug(request.json) devices = Devices(c) senml_ser = opentrv.data.senml.Serializer() records = senml_ser.from_json_object(request.json) for r in records: d = devices.find_by_topic(r.topic) if d is None: d = devices.add_topic(r.topic) app.logger.debug("Adding device {0}/{1}".format(d["mkey"], d["bn"])) else: app.logger.debug("Retrieving device {0}/{1}".format(d["mkey"], d["bn"])) sensors = Sensors(d) s = sensors.find_by_record(r) if s is None: s = sensors.add_record(r) app.logger.debug("Adding sensor {0}/{1}/{2}".format(s["mkey"], s["bn"], s["n"])) else: app.logger.debug("Retrieving sensor {0}/{1}/{2}".format(s["mkey"], s["bn"], s["n"])) sensors.save() ts = Series(s) ts.add_record(r) ts.save() devices.save() return jsonify({'ok': True}), 201
def post_message(mkey): if not request.json: abort(400) c = concs.find_by_mkey(mkey) if c is None: abort(404) app.logger.debug(request.json) devices = Devices(c) senml_ser = opentrv.data.senml.Serializer() records = senml_ser.from_json_object(request.json) for r in records: d = devices.find_by_topic(r.topic) if d is None: d = devices.add_topic(r.topic) app.logger.debug("Adding device {0}/{1}".format( d["mkey"], d["bn"])) else: app.logger.debug("Retrieving device {0}/{1}".format( d["mkey"], d["bn"])) sensors = Sensors(d) s = sensors.find_by_record(r) if s is None: s = sensors.add_record(r) app.logger.debug("Adding sensor {0}/{1}/{2}".format( s["mkey"], s["bn"], s["n"])) else: app.logger.debug("Retrieving sensor {0}/{1}/{2}".format( s["mkey"], s["bn"], s["n"])) sensors.save() ts = Series(s) ts.add_record(r) ts.save() devices.save() return jsonify({'ok': True}), 201
def test_add_record(self): mkey = "test_mkey" bn = "mytopic" n = "t" s = {"mkey": mkey, "bn": bn, "n": n} tnow = datetime.datetime.utcnow() tsnow = int((tnow - datetime.datetime.utcfromtimestamp(0)).total_seconds()) ts = Series(s) r = opentrv.data.Record("t", tnow, 10) ts.add_record(r) rlist = ts.find_all() self.assertListEqual([{"t":tsnow, "v":10}], rlist)