class Domotics::Core::Element
Attributes
device[R]
name[R]
room[R]
type[R]
Public Class Methods
data=(value)
click to toggle source
# File lib/domotics/core/element.rb, line 55 def self.data=(value) @@data = value end
new(args = {})
click to toggle source
# File lib/domotics/core/element.rb, line 6 def initialize(args = {}) @room = args[:room] @device = args[:device] @room.register_element self, @name = args[:name] @type ||= :element set_state(self.state || :off) end
Public Instance Methods
image()
click to toggle source
# File lib/domotics/core/element.rb, line 41 def image nil end
info()
click to toggle source
# File lib/domotics/core/element.rb, line 37 def info nil end
load_driver(args = {})
click to toggle source
# File lib/domotics/core/element.rb, line 14 def load_driver(args = {}) return unless args[:device_type] device_space = args[:device_type].to_s.split("_").map{ |x| x.capitalize }.join self.class.class_eval(%(include Domotics::#{device_space}::#{args[:driver]}), __FILE__, __LINE__) end
set_state(value)
click to toggle source
# File lib/domotics/core/element.rb, line 45 def set_state(value) @@data[self].state = value @room.notify({ event: :state_set, element: self }) unless @type == :dimmer end
state()
click to toggle source
# File lib/domotics/core/element.rb, line 20 def state @@data[self].state end
state_changed(value)
click to toggle source
# File lib/domotics/core/element.rb, line 50 def state_changed(value) @@data[self].state = value @room.notify event: :state_changed, element: self end
to_s()
click to toggle source
# File lib/domotics/core/element.rb, line 59 def to_s "#{@room.name}@#{@name}(id:#{__id__})" end
verbose_state()
click to toggle source
# File lib/domotics/core/element.rb, line 24 def verbose_state { @room.name => { :elements => { @name => { :state => state, :info => info, :img => image, } } } } end