From 899ba88b76a2f01b1bab87fbb960c2277435c521 Mon Sep 17 00:00:00 2001 From: pks Date: Sun, 16 May 2021 18:22:52 +0200 Subject: restart --- kwh.rb | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100755 kwh.rb (limited to 'kwh.rb') diff --git a/kwh.rb b/kwh.rb deleted file mode 100755 index 9ffd7c6..0000000 --- a/kwh.rb +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env ruby - -require 'sqlite3' - -def main - db = SQLite3::Database.new ARGV[0] - devices = db.execute "select distinct device_location_primary, device_location_secondary FROM power" - devices.reject! { |i| not ["office", "living_room", "guest_restroom", "kitchen", "bedroom_2"].include? i[0] } - start_date = Date.new(2020,9,01).to_time.to_i - end_date = Date.new(2020,9,30).to_time.to_i - totals = {} - totals.default = 0.0 - devices.sort_by{|i| i[0] }.each { |device| - first = db.execute "select TOTAL, TIMESTAMP from power WHERE TIMESTAMP >= #{start_date} and TIMESTAMP <= #{end_date} AND DEVICE_LOCATION_PRIMARY = '#{device[0]}' AND DEVICE_LOCATION_SECONDARY = '#{device[1]}' ORDER BY TIMESTAMP ASC LIMIT 1" - last = db.execute "select TOTAL, TIMESTAMP from power WHERE TIMESTAMP >= #{start_date} and TIMESTAMP <= #{end_date} AND DEVICE_LOCATION_PRIMARY = '#{device[0]}' AND DEVICE_LOCATION_SECONDARY = '#{device[1]}' ORDER BY TIMESTAMP DESC LIMIT 1" - if first.size > 0 and last.size > 0 - puts "#{Time.at(first[0][1])} --- #{Time.at(last[0][1])}" - puts "#{first[0][0]} ::: #{last[0][0]}" - kwh = last[0][0] - first[0][0] - puts "#{device.join '/'}: #{kwh.round 0} kW/h" - puts - totals[device[0]] += kwh - end - } - puts "=== TOTAL: #{totals.values.inject(:+).round 0} kW/h ===" - puts "\nBy Room" - puts "-------" - totals.each_key { |k| - puts " #{k}: #{totals[k].round 0} kW/h" - } - db.close -end - - -main -- cgit v1.2.3