class GardenMessenger::CLI
Public Instance Methods
__print_version()
click to toggle source
# File lib/garden_messenger/cli.rb, line 8 def __print_version puts GardenMessenger::VERSION end
dev()
click to toggle source
# File lib/garden_messenger/cli.rb, line 55 def dev reporter = GardenMessenger::Reporter.new( 'ws://localhost:3000/cable', 'dev-token', 1, true ) reporter.report! do { air_temp: rand(18.0...30.0), humidity: rand(50.0...60.0), water_temp: rand(18.0...26.0), ph: rand(4.0...8.0), ec: rand(0.8...1.6), wattage: rand(700.0...800.0) } end end
report(monitor_url, token)
click to toggle source
# File lib/garden_messenger/cli.rb, line 16 def report(monitor_url, token) reporter = GardenMessenger::Reporter.new( monitor_url, token, options.fetch('update-rate') { 30 }, options.fetch('verbose') { false } ) water_temperature = GardenMessenger::AtlasScientific::Temperature.new ph = GardenMessenger::AtlasScientific::PH.new ec = GardenMessenger::AtlasScientific::EC.new wattage = GardenMessenger::Wattage.new(options['wattage-switch-host']) begin require 'dht-sensor-ffi' rescue LoadError warn 'Failed to load dht-sensor-ffi, air temperature and humidity are disabled. ' \ 'To enable it, install dht-sensor-ffi: https://github.com/chetan/dht-sensor-ffi' end reporter.report! do data = {} data[:water_temp] = water_temperature.take_reading wattage_thread = Thread.new { wattage.get } ph_thread = Thread.new { ph.take_reading_with_temperature_compensation(data[:water_temp]) } ec_thread = Thread.new { ec.take_reading_with_temperature_compensation(data[:water_temp]) } dht_thread = Thread.new { DhtSensor.read(4, 22) } if defined?(DhtSensor) data[:wattage] = wattage_thread.value data[:ph] = ph_thread.value data[:ec] = ec_thread.value data[:air_temp] = dht_thread.value.temperature if defined?(DhtSensor) data[:humidity] = dht_thread.value.humidity if defined?(DhtSensor) data end end