class JSONThermostat

Attributes

string[R]

Public Class Methods

new(json) click to toggle source
# File lib/JSONThermostat.rb, line 7
def initialize(json)
  # JSON.generate({temperature: 20.0, range: 1.0})
  data_hash = JSON.parse(json)

  @unit = data_hash['unit']
  @range = data_hash['range'].to_f
  @wanted = data_hash['temperature'].to_f

  if @unit == 'celsius' || @unit == 'kelvin' || @unit == 'fahrenheit'
    gewenst = Converter.new(JSON.generate(temperature: @wanted, unit: @unit))
    jsongewenst = gewenst.get_cels(JSON.generate(temperature: @wanted, unit: @unit))
    data_wens = JSON.parse(jsongewenst)
    @wanted = data_wens['temperature'].to_f

  end

  if @unit == 'fahrenheit'
    marge = Converter.new(JSON.generate(temperature: @range, unit: @unit))
    jsonmarge = marge.get_rangefar(JSON.generate(range: @range))

    data_marge = JSON.parse(jsonmarge)
    @range = data_marge['temperature'].to_f

  else
    @range /= 2
  end
end

Public Instance Methods

update(json) click to toggle source
# File lib/JSONThermostat.rb, line 35
def update(json)
  data_update = JSON.parse(json)
  @actual = data_update['temperature'].to_f
  @unit = data_update['unit']

  if @unit == 'celsius' || @unit == 'kelvin' || @unit == 'fahrenheit'
    huidig = Converter.new(JSON.generate(temperature: @actual, unit: @unit))
    jsonactual = huidig.get_cels(JSON.generate(temperature: @actual, unit: @unit))
    data_actual = JSON.parse(jsonactual)
    @actual = data_actual['temperature'].to_f
  end

  if @actual < (@wanted - @range)

    return JSON.generate(cooling: false, heating: true)

  elsif @actual > (@wanted + @range)

    return JSON.generate(cooling: true, heating: false)

  else

    return JSON.generate(cooling: false, heating: false)

  end
end