Class: SAAL::Envoy::Inverters
- Inherits:
-
Object
- Object
- SAAL::Envoy::Inverters
- Defined in:
- lib/envoy.rb
Constant Summary collapse
- DEFAULT_TIMEOUT =
2- DEFAULT_CACHE_TIMEOUT =
50- DEFAULT_SOURCES =
[]
- DEFAULT_TYPES =
“last_report_date”, “w_max”
["w_now"]
- DEFAULT_USER =
nil- DEFAULT_PASSWORD =
nil- DEFAULT_PREFIX =
"inverters"
Instance Attribute Summary collapse
-
#inverters ⇒ Object
readonly
Returns the value of attribute inverters.
Instance Method Summary collapse
- #create_sensors ⇒ Object
- #enumerate ⇒ Object
-
#initialize(defs, opts = {}) ⇒ Inverters
constructor
A new instance of Inverters.
- #read_val(name) ⇒ Object
- #set_all_inverters! ⇒ Object
Constructor Details
#initialize(defs, opts = {}) ⇒ Inverters
Returns a new instance of Inverters.
225 226 227 228 229 230 231 232 233 234 235 236 237 |
# File 'lib/envoy.rb', line 225 def initialize(defs, opts={}) @host = defs[:host] || defs['host'] || DEFAULT_HOST @user = defs[:user] || defs['user'] || DEFAULT_USER @password = defs[:password] || defs['password'] || DEFAULT_PASSWORD @timeout = opts[:timeout] || opts['timeout'] || DEFAULT_TIMEOUT @cache_timeout = opts[:cache_timeout] || opts['cache_timeout'] || DEFAULT_CACHE_TIMEOUT @cache = nil @cachetime = nil @inverters_list = {} @inverters = defs[:inverters] || defs['inverters'] || DEFAULT_SOURCES @types = defs[:types] || defs['types'] || DEFAULT_TYPES @prefix = defs[:prefix] || defs['prefix'] || DEFAULT_PREFIX end |
Instance Attribute Details
#inverters ⇒ Object (readonly)
Returns the value of attribute inverters.
223 224 225 |
# File 'lib/envoy.rb', line 223 def inverters @inverters end |
Instance Method Details
#create_sensors ⇒ Object
256 257 258 259 260 261 262 263 |
# File 'lib/envoy.rb', line 256 def create_sensors sensors = {} @inverters.product(@types).each do |source, type| key = "#{@prefix}_#{source}_#{type}" sensors[key] = InverterUnderlying.new(key, self) end sensors end |
#enumerate ⇒ Object
247 248 249 250 |
# File 'lib/envoy.rb', line 247 def enumerate read_val("foo") # Force a read to make sure the inverter serials are stored @inverters_list.keys end |
#read_val(name) ⇒ Object
239 240 241 242 243 244 245 |
# File 'lib/envoy.rb', line 239 def read_val(name) if !@cachetime or @cachetime < Time.now - @cache_timeout @cache = read_all() @cachetime = Time.now end return @cache ? @cache[name] : nil end |
#set_all_inverters! ⇒ Object
252 253 254 |
# File 'lib/envoy.rb', line 252 def set_all_inverters! @inverters = self.enumerate end |