class Mochizuki::AutoQuery

Public Class Methods

new(logger = Mochizuki.logger, config = Mochizuki.config) click to toggle source
# File lib/mochizuki/auto_query.rb, line 7
def initialize(logger = Mochizuki.logger, config = Mochizuki.config)
  @logger = logger
  @config = config

  Mochizuki::Fetcher.new.fetch # update Mochizuki.status
end

Public Instance Methods

alarm() { |power| ... } click to toggle source
# File lib/mochizuki/auto_query.rb, line 14
def alarm
  scheduler = Rufus::Scheduler.new
  scheduler.every @config.query_interval.to_s do
    power = Mochizuki::Fetcher.new.fetch
    @logger.info "Auto query, #{power} kWh remaining"
    if Mochizuki.status.auto_alarm_triggered?
      yield(power)
      Mochizuki.status.alarmed_before = true
      @logger.info 'Auto alarm is suppressed for now'
    end
  end
end