Example #1
0
    def get_data(self):
        data = copy.deepcopy({
            'city':
            self.location,
            'sun':
            self.sun,
            'day':
            self.is_day(),
            'windspeed':
            self.get_windspeed_indicator(),
            'temperature_indicator':
            self.get_temperature_indicator(),
            'hour_forecast':
            self.hour_forecast,
            'week_forecast':
            self.week_forecast,
            'credits':
            self.credits
        })

        for item in data['hour_forecast']:
            item['wind_speed'] *= (3.6 if self.get_windspeed_indicator()
                                   == 'kmh' else 1.0)
            item['temperature'] = item[
                'temperature'] if self.get_temperature_indicator(
                ) == 'C' else terrariumUtils.to_fahrenheit(item['temperature'])

        for item in data['week_forecast']:
            item['wind_speed'] *= (3.6 if self.get_windspeed_indicator()
                                   == 'kmh' else 1.0)
            item['temperature'] = item[
                'temperature'] if self.get_temperature_indicator(
                ) == 'C' else terrariumUtils.to_fahrenheit(item['temperature'])

        return data
Example #2
0
    def get_current(self, force=False):
        current = self.current
        indicator = self.get_indicator().lower()

        if 'f' == indicator:
            current = terrariumUtils.to_fahrenheit(self.current)
        elif 'inch' == indicator:
            current = terrariumUtils.to_inches(self.current)

        return float(current)
Example #3
0
    def get_data(self):
        data = {
            'city': self.location,
            'sun': self.sun,
            'day': self.is_day(),
            'windspeed': self.get_windspeed_indicator(),
            'temperature_indicator': self.get_temperature_indicator(),
            'hour_forecast': [],
            'week_forecast': [],
            'credits': self.credits
        }

        for period in sorted(self.hour_forecast.keys(), key=int):
            item = copy.deepcopy(self.hour_forecast[period])
            item['wind_speed'] *= (3.6 if self.get_windspeed_indicator()
                                   == 'kmh' else 1.0)

            if self.get_temperature_indicator() == 'F':
                item['temperature'] = terrariumUtils.to_fahrenheit(
                    item['temperature'])
            elif self.get_temperature_indicator() == 'K':
                item['temperature'] = terrariumUtils.to_kelvin(
                    item['temperature'])

            data['hour_forecast'].append(item)

        for period in sorted(self.week_forecast.keys(), key=int):
            item = copy.deepcopy(self.week_forecast[period])
            item['wind_speed'] *= (3.6 if self.get_windspeed_indicator()
                                   == 'kmh' else 1.0)

            if self.get_temperature_indicator() == 'F':
                item['temperature'] = terrariumUtils.to_fahrenheit(
                    item['temperature'])
            elif self.get_temperature_indicator() == 'K':
                item['temperature'] = terrariumUtils.to_kelvin(
                    item['temperature'])

            data['week_forecast'].append(item)

        return data
Example #4
0
    def get_current(self, force=False):
        current = 0 if self.current is None else self.current
        indicator = self.get_indicator().lower()

        if 'f' == indicator:
            current = terrariumUtils.to_fahrenheit(current)
        elif 'k' == indicator:
            current = terrariumUtils.to_kelvin(current)
        elif 'inch' == indicator:
            current = terrariumUtils.to_inches(current)
        elif 'usgall' == indicator:
            current = terrariumUtils.to_us_gallons(current)
        elif 'ukgall' == indicator:
            current = terrariumUtils.to_uk_gallons(current)

        return float(current)
Example #5
0
    def get_current(self, force=False):
        if self.__current_value is None:
            return None

        indicator = self.get_indicator().lower()

        if 'f' == indicator:
            current = terrariumUtils.to_fahrenheit(self.__current_value)
        elif 'k' == indicator:
            current = terrariumUtils.to_kelvin(self.__current_value)
        elif 'inch' == indicator:
            current = terrariumUtils.to_inches(self.__current_value)
        elif 'usgall' == indicator:
            current = terrariumUtils.to_us_gallons(self.__current_value)
        elif 'ukgall' == indicator:
            current = terrariumUtils.to_uk_gallons(self.__current_value)

        return float(self.__current_value)
Example #6
0
  def get_system_stats(self, socket = False):
    memory = psutil.virtual_memory()
    uptime = self.get_uptime()
    disk = psutil.disk_usage('/')

    cpu_temp = -1
    with open('/sys/class/thermal/thermal_zone0/temp') as temperature:
      cpu_temp = float(temperature.read()) / 1000.0

    data = {'memory' : {'total' : memory.total,
                        'used' : memory.total - memory.available,
                        'free' : memory.available},
            'disk' : {'total' : disk.total,
                        'used' : disk.used,
                        'free' : disk.free},
            'load' : {'load1' : uptime['load'][0],
                      'load5' : uptime['load'][1],
                      'load15' : uptime['load'][2]},
            'uptime' : uptime['uptime'],
            'cores' : psutil.cpu_count(),
            'temperature' : cpu_temp,
            'external_calendar_url': self.config.get_external_calender_url()}

    indicator = self.__unit_type('temperature').lower()
    if 'f' == indicator:
      data['temperature'] = terrariumUtils.to_fahrenheit(data['temperature'])
    elif 'k' == indicator:
      data['temperature'] = terrariumUtils.to_kelvin(data['temperature'])

    if socket:
      gauge_data = {'system_load'        : {'current' : data['load']['load1'] * 100, 'alarm_min' : 0, 'alarm_max': 80, 'limit_min' : 0, 'limit_max': 100, 'cores' : data['cores']},
                    'system_temperature' : {'current' : data['temperature'], 'alarm_min' : 30, 'alarm_max': 60, 'limit_min' : 0, 'limit_max': 80},
                    'system_memory'      : {'current' : data['memory']['used'], 'alarm_min' : data['memory']['total'] * 0.1, 'alarm_max': data['memory']['total'] * 0.9, 'limit_min' : 0, 'limit_max': data['memory']['total']},
                    'system_disk'        : {'current' : data['disk']['used'], 'alarm_min' : data['disk']['total'] * 0.1, 'alarm_max': data['disk']['total'] * 0.9, 'limit_min' : 0, 'limit_max': data['disk']['total']}}

      gauge_data['system_load']['alarm'] = not(gauge_data['system_load']['alarm_min'] <= gauge_data['system_load']['current'] / data['cores'] <= gauge_data['system_load']['alarm_max'])
      gauge_data['system_temperature']['alarm'] = not(gauge_data['system_temperature']['alarm_min'] <= gauge_data['system_temperature']['current'] <= gauge_data['system_temperature']['alarm_max'])
      gauge_data['system_memory']['alarm'] = not(gauge_data['system_memory']['alarm_min'] <= gauge_data['system_memory']['current'] <= gauge_data['system_memory']['alarm_max'])
      gauge_data['system_disk']['alarm'] = not(gauge_data['system_disk']['alarm_min'] <= gauge_data['system_disk']['current'] <= gauge_data['system_disk']['alarm_max'])

      self.__send_message({'type':'sensor_gauge','data':gauge_data})
    else:
      return data
Example #7
0
 def get_current(self, force=False):
     return float(
         terrariumUtils.to_fahrenheit(self.current) if self.get_indicator(
         ) == 'F' else self.current)