From edfb27ab98e2068df47794a54fb70d5680483eda Mon Sep 17 00:00:00 2001 From: Aart van Halteren Date: Wed, 17 Jul 2013 13:48:35 +0200 Subject: [PATCH] prevent eql_readings to be saved to db. --- app/helpers/InSyncState.rb | 9 +++++++-- app/models/reading.rb | 11 +++++++++++ smartmeter.rb | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/helpers/InSyncState.rb b/app/helpers/InSyncState.rb index e41dbcc..e914be2 100644 --- a/app/helpers/InSyncState.rb +++ b/app/helpers/InSyncState.rb @@ -77,8 +77,13 @@ class InSyncState < StatePattern::State next_is_gas = true # the usage is on the next line end } - - reading.save + + last_reading = Reading.last + if last_reading.eql_reading?(reading) + p "Nothing changed. Do not add to the database" + else + reading.save + end return reading end diff --git a/app/models/reading.rb b/app/models/reading.rb index fbf6dd5..570a678 100644 --- a/app/models/reading.rb +++ b/app/models/reading.rb @@ -1,3 +1,14 @@ class Reading < ActiveRecord::Base + + def eql_reading?(reading) + self.total_kwh_consumed_high == reading.total_kwh_consumed_high && + self.total_kwh_consumed_low == reading.total_kwh_consumed_low && + self.total_kwh_produced_high == reading.total_kwh_produced_high && + self.total_kwh_produced_low == reading.total_kwh_produced_low && + self.current_kw_consumed == reading.current_kw_consumed && + self.current_kw_produced = reading.current_kw_produced && + self.total_m3_gas_consumed = reading.total_m3_gas_consumed && + self.high_tarif == reading.high_tarif + end end diff --git a/smartmeter.rb b/smartmeter.rb index 127a6c9..d48fb6e 100644 --- a/smartmeter.rb +++ b/smartmeter.rb @@ -42,7 +42,7 @@ if __FILE__ == $0 # sync = Synchronizer.new while (buffer && buffer.length > 0) - p "BUFFER: #{buffer}." + # p "BUFFER: #{buffer}." buffer = sync.handle_byte_stream(buffer) buffer = buffer + read_from(source) end