Class: AtreaControl::Duplex::Unit

Inherits:
Object
  • Object
show all
Includes:
Logger
Defined in:
lib/atrea_control/duplex/unit.rb

Overview

Communication with RD5 unit (read/write)

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Logger

#logger

Constructor Details

#initialize(user_id:, unit_id:, sid:, user_ctrl: nil) ⇒ Unit

Returns a new instance of Unit.

Parameters:



21
22
23
24
25
26
# File 'lib/atrea_control/duplex/unit.rb', line 21

def initialize(user_id:, unit_id:, sid:, user_ctrl: nil)
  @user_id = user_id
  @unit_id = unit_id
  @sid = sid
  @user_ctrl = user_ctrl || UserCtrl.new(user_id: user_id, unit_id: unit_id, sid: sid)
end

Instance Attribute Details

#current_modeObject (readonly)

Returns the value of attribute current_mode.



9
10
11
# File 'lib/atrea_control/duplex/unit.rb', line 9

def current_mode
  @current_mode
end

#current_powerObject (readonly)

Returns the value of attribute current_power.



9
10
11
# File 'lib/atrea_control/duplex/unit.rb', line 9

def current_power
  @current_power
end

#input_temperatureObject (readonly)

Returns the value of attribute input_temperature.



9
10
11
# File 'lib/atrea_control/duplex/unit.rb', line 9

def input_temperature
  @input_temperature
end

#outdoor_temperatureObject (readonly)

Returns the value of attribute outdoor_temperature.



9
10
11
# File 'lib/atrea_control/duplex/unit.rb', line 9

def outdoor_temperature
  @outdoor_temperature
end

#preheat_temperatureObject (readonly)

Returns the value of attribute preheat_temperature.



9
10
11
# File 'lib/atrea_control/duplex/unit.rb', line 9

def preheat_temperature
  @preheat_temperature
end

#preheatingBoolean (readonly)

Returns preheating air is ON ?.

Returns:

  • (Boolean)

    preheating air is ON ?



11
12
13
# File 'lib/atrea_control/duplex/unit.rb', line 11

def preheating
  @preheating
end

#user_ctrlUserCtrl (readonly)

Returns:



15
16
17
# File 'lib/atrea_control/duplex/unit.rb', line 15

def user_ctrl
  @user_ctrl
end

#valid_forDateTime (readonly)

Returns store time of last update.

Returns:

  • (DateTime)

    store time of last update



13
14
15
# File 'lib/atrea_control/duplex/unit.rb', line 13

def valid_for
  @valid_for
end

Instance Method Details

#as_json(_options = nil) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
# File 'lib/atrea_control/duplex/unit.rb', line 69

def as_json(_options = nil)
  {
    current_mode: current_mode,
    current_power: current_power,
    outdoor_temperature: outdoor_temperature,
    preheat_temperature: preheat_temperature,
    input_temperature: input_temperature,
    preheating: preheating,
    valid_for: valid_for,
  }
end

#modeObject



32
33
34
# File 'lib/atrea_control/duplex/unit.rb', line 32

def mode
  current_mode || values[:current_mode]
end

#mode=(value) ⇒ Object

Parameters:

  • value (String)

    0 - power-off; 1 - automat



45
46
47
48
49
# File 'lib/atrea_control/duplex/unit.rb', line 45

def mode=(value)
  v = [parser.input(@user_ctrl.sensors["mode_input"], value.to_s)]
  v << parser.input(@user_ctrl.sensors["mode_switch"], "2")
  write(*v)
end

#nameObject



28
29
30
# File 'lib/atrea_control/duplex/unit.rb', line 28

def name
  @user_ctrl.name
end

#paramsObject

Note:

its changed in time ?

Additional “parameters” for each sensors



87
88
89
90
# File 'lib/atrea_control/duplex/unit.rb', line 87

def params
  response = request.call(_t: "user/params.xml")
  Nokogiri::XML response.body
end

#parsedObject



58
59
60
# File 'lib/atrea_control/duplex/unit.rb', line 58

def parsed
  parser.values(read.body)
end

#powerObject



36
37
38
# File 'lib/atrea_control/duplex/unit.rb', line 36

def power
  current_power || values[:current_power]
end

#power=(value) ⇒ Object



51
52
53
54
55
56
# File 'lib/atrea_control/duplex/unit.rb', line 51

def power=(value)
  v = [parser.input(@user_ctrl.sensors["power_input"], value.to_s)]
  # overtake schedule control
  v << "H1070000002" if value.to_i.positive?
  write(*v)
end

#preheating?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/atrea_control/duplex/unit.rb', line 40

def preheating?
  preheating || values[:preheating]
end

#to_json(*args) ⇒ Object



81
82
83
# File 'lib/atrea_control/duplex/unit.rb', line 81

def to_json(*args)
  values.to_json(*args)
end

#valuesObject



62
63
64
65
66
67
# File 'lib/atrea_control/duplex/unit.rb', line 62

def values
  parsed.each do |name, value|
    instance_variable_set :"@#{name}", value
  end
  as_json
end