# HG changeset patch # User matthewreed # Date 2016-07-25 22:55:45 # Node ID 981a1d0baca8b48df569511c60ae0b290ed4ea1b # Parent 514bbf7bb55e2f268e9b07f94c02cdce4afd3b16 Added output logging and a logging bug fix diff --git a/hydrobot.py b/hydrobot.py --- a/hydrobot.py +++ b/hydrobot.py @@ -12,8 +12,7 @@ from influxdb import SeriesHelper from apscheduler.schedulers.background import BackgroundScheduler #TODO -#fix temperature offset -#database series helper +#fix temperature offsets #database time interval logging config = configparser.ConfigParser(allow_no_value = True) @@ -59,11 +58,12 @@ class Database: def log_data(self, msgdb, message): if message == msgdb.AirSense: - MySeriesHelper(measurement='air_temp', value=(float)(message.Temperature.value)) MySeriesHelper(measurement='air_humidity', value=(float)(message.Humidity.value)) MySeriesHelper(measurement='air_pressure', value=(float)(message.Pressure.value)) if message == msgdb.RelayDriveIn: + MySeriesHelper(measurement='water_flow_rate', value=(float)(message.FlowRate.value)) + print(message.FlowRate.value) MySeriesHelper(measurement='input_1', value=(float)(message.Input1.value)) MySeriesHelper(measurement='input_2', value=(float)(message.Input2.value)) MySeriesHelper(measurement='input_3', value=(float)(message.Input3.value)) @@ -106,7 +106,7 @@ class CanBus: if DEBUG_CAN_DETAIL: print(s) print(s.value) - self.database.log_data(self.msgdb, message) + self.database.log_data(self.msgdb, message) def send_can(self): self.relay_send_msg.Nothing.value = 0 @@ -128,6 +128,15 @@ class CanBus: msg.lookup_signal(output).value = state self.dev.send(msg.encode()) + if msg.lookup_signal(output) == msg.Output1: + MySeriesHelper(measurement='output_1', value=state) + if msg.lookup_signal(output) == msg.Output2: + MySeriesHelper(measurement='output_2', value=state) + if msg.lookup_signal(output) == msg.Output3: + MySeriesHelper(measurement='output_3', value=state) + if msg.lookup_signal(output) == msg.Output4: + MySeriesHelper(measurement='output_4', value=state) + class Scheduler: @@ -188,6 +197,7 @@ def func(): def main(): database = Database() + canbus = CanBus(database) canbus.start() canbus.start_receive() diff --git a/hydrobot_can.json b/hydrobot_can.json --- a/hydrobot_can.json +++ b/hydrobot_can.json @@ -23,7 +23,8 @@ { "name": "RelayDriveIn", "id": "0x204", - "signals": { "0": {"name": "Nothing", "bit_length": 32, "factor": 1, "offset": 0, "unit": ""}, + "signals": { "0": {"name": "FlowRate", "bit_length": 16, "factor": 0.133, "offset": 0, "unit": "Hz"}, + "16": {"name": "Nothing", "bit_length": 16, "factor": 1, "offset": 0, "unit": ""}, "32": {"name": "Input1", "bit_length": 8, "factor": 1, "offset": 0, "unit": "bool"}, "40": {"name": "Input2", "bit_length": 8, "factor": 1, "offset": 0, "unit": "bool"}, "48": {"name": "Input3", "bit_length": 8, "factor": 1, "offset": 0, "unit": "bool"}, @@ -44,9 +45,9 @@ "name": "WaterSense", "id": "0x206", "signals": { "0": {"name": "Nothing", "bit_length": 16, "factor": 1, "offset": 0, "unit": ""}, - "16": {"name": "PercentFull", "bit_length": 8, "factor": 1, "offset": 0, "unit": "bool"}, - "24": {"name": "Temperature", "bit_length": 8, "factor": 0.5, "offset": 0, "unit": "bool"}, - "32": {"name": "RawDebug", "bit_length": 16, "factor": 1, "offset": 0, "unit": "bool"} + "16": {"name": "PercentFull", "bit_length": 8, "factor": 1, "offset": 0, "unit": "%"}, + "24": {"name": "Temperature", "bit_length": 8, "factor": 0.5, "offset": 0, "unit": "C"}, + "32": {"name": "RawDebug", "bit_length": 16, "factor": 1, "offset": 0, "unit": ""} } }