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