Class: SAAL::Envoy::Inverters
- Inherits:
-
Object
- Object
- SAAL::Envoy::Inverters
- Defined in:
- lib/envoy.rb
Constant Summary collapse
- DEFAULT_HOST =
"envoy.local"- DEFAULT_TOKEN =
nil- DEFAULT_TIMEOUT =
2- DEFAULT_CACHE_TIMEOUT =
50- DEFAULT_SOURCES =
[]
- DEFAULT_TYPES =
“last_report_date”, “w_max”
["w_now"]
- 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.
229 230 231 232 233 234 235 236 237 238 239 240 |
# File 'lib/envoy.rb', line 229 def initialize(defs, opts={}) @host = defs[:host] || defs['host'] || DEFAULT_HOST @token = defs[:token] || defs['token'] || DEFAULT_TOKEN @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.
227 228 229 |
# File 'lib/envoy.rb', line 227 def inverters @inverters end |
Instance Method Details
#create_sensors ⇒ Object
259 260 261 262 263 264 265 266 |
# File 'lib/envoy.rb', line 259 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
250 251 252 253 |
# File 'lib/envoy.rb', line 250 def enumerate read_val("foo") # Force a read to make sure the inverter serials are stored @inverters_list.keys end |
#read_val(name) ⇒ Object
242 243 244 245 246 247 248 |
# File 'lib/envoy.rb', line 242 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
255 256 257 |
# File 'lib/envoy.rb', line 255 def set_all_inverters! @inverters = self.enumerate end |