class Netatmo::Weather::BaseStation

Attributes

cipher_id[RW]
co2[RW]
co2_calibrating[RW]
date_setup[RW]
friend_users[RW]
humidity[RW]
last_status_store[RW]
last_upgrade[RW]
modules[RW]
noise[RW]
place[RW]
pressure[RW]
read_only[RW]
station_name[RW]
temperature[RW]
wifi_status[RW]

Public Class Methods

new(data) click to toggle source

DeviceType: NAMain

Calls superclass method
# File lib/netatmo/weather/base_station.rb, line 10
def initialize(data)
  super(data)

  self.cipher_id = data['cipher_id']
  self.date_setup = Time.at(data['date_setup']) if data['date_setup']
  self.last_status_store = Time.at(data['last_status_store']) if data['last_status_store']
  self.last_upgrade = Time.at(data['last_upgrade']) if data['last_upgrade']
  self.co2_calibrating = data['co2_calibrating']
  self.station_name = data['station_name']
  self.friend_users = data['friend_users']
  self.read_only = data['read_only']

  self.modules = []

  data['modules']&.each do |module_data|
    modules << Device.parse(module_data)
  end

  if data['dashboard_data']
    self.co2 = DashboardData::CO2.new(data['dashboard_data'])
    self.humidity = DashboardData::Humidity.new(data['dashboard_data'])
    self.temperature = DashboardData::Temperature.new(data['dashboard_data'])
    self.noise = DashboardData::Noise.new(data['dashboard_data'])
    self.pressure = DashboardData::Pressure.new(data['dashboard_data']) if pressure?
  end
  self.wifi_status = WifiStatus.new(data['wifi_status'])
  self.place = Netatmo::Place.new(data['place'])
end

Public Instance Methods

first_indoor_module() click to toggle source
# File lib/netatmo/weather/base_station.rb, line 63
def first_indoor_module
  indoor_modules&.first
end
health_coach() click to toggle source
# File lib/netatmo/weather/base_station.rb, line 55
def health_coach
  modules.find(&:health_coach?)
end
indoor_modules() click to toggle source
# File lib/netatmo/weather/base_station.rb, line 59
def indoor_modules
  modules.select(&:indoor_module?)
end
name() click to toggle source
# File lib/netatmo/weather/base_station.rb, line 39
def name
  station_name
end
outdoor_module() click to toggle source
# File lib/netatmo/weather/base_station.rb, line 43
def outdoor_module
  modules.find(&:outdoor_module?)
end
rain_gauge() click to toggle source
# File lib/netatmo/weather/base_station.rb, line 47
def rain_gauge
  modules.find(&:rain_gauge?)
end
wind_gauge() click to toggle source
# File lib/netatmo/weather/base_station.rb, line 51
def wind_gauge
  modules.find(&:wind_gauge?)
end