Beispiel #1
0
 def test_instantiation(self):
     with self.assertRaises(TypeError):
         OWM()
     with self.assertRaises(AssertionError):
         OWM(None)
     with self.assertRaises(AssertionError):
         OWM('fake-api-key', 123456)
     result = OWM('fake-api-key', dict())
     self.assertIsInstance(result, OWM)
Beispiel #2
0
def send_info(message):
    config_dict = get_default_config()
    config_dict['language'] = 'ua'  # your language here, eg. Ukrainian
    owm = OWM('KEY', config_dict)
    mgr = owm.weather_manager()

    observation = mgr.weather_at_place(message.text)
    w = observation.weather

    # Temp
    temp = w.temperature('celsius')
    temp_current = temp['temp']
    temp_min = temp['temp_min']
    temp_max = temp['temp_max']
    feels_like = temp['feels_like']

    # Wind
    wind_info = observation.weather.wind(unit='meters_sec')
    wind_speed = wind_info['speed']
    wind_deg = wind_info['deg']

    bot.reply_to(
        message, 'Температура зараз: ' + str(temp_current) +
        '\n  \nМінімальна температура сьогодні: ' + str(temp_min) + ' градуси'
        '\n \nМаксимальна температура сьогодні: ' + str(temp_max) +
        ' градуси' + '\n \nВідчувається як: ' + str(feels_like) + ' градуси' +
        '\n \nШвидкість вітру' + 'сьогодні: ' + str(wind_speed) +
        ' метра за секунду' + '\n \n Напрям вітру у градусах від ' +
        'північного ' + 'горизонту:  ' + str(wind_deg))
Beispiel #3
0
def main(strip):
    print(f"Good morning! Waking up at {time.time()}")
    owm = OWM(WEATHER_API_KEY)

    mgr = owm.weather_manager()
    observation = mgr.weather_at_place(
        "Oxford,GB"
    )  # the observation object is a box containing a weather object
    weather = observation.weather.status
    print(f"The current weather is {weather}")

    start_time = time.time()
    strip.begin()
    dither_fade(strip,
                ws.Color(0, 1, 1),
                leds_to_switch=None,
                dither_time=RUNTIME * 0.5)
    WEATHER_ANIMATIONS[weather](strip, RUNTIME)
    time.sleep(10 * 60)
    WEATHER_ANIMATIONS[weather](strip, RUNTIME, reverse=True)
    dither_fade(strip,
                ws.Color(0, 0, 0),
                leds_to_switch=None,
                dither_time=RUNTIME * 0.5)
    end_time = time.time()
    print(
        f"I hope you're awake! Closing down at {time.time()}. We spent {(end_time - start_time) // 60} minutes."
    )
Beispiel #4
0
def get_api(
        api_key,
        subscription_type=SubscriptionTypeEnum.FREE,
        language: str = "en",
        connection: dict = {
            "use_ssl": True,
            "verify_ssl_certs": True,
            "use_proxy": False,
            "timeout_secs": 5
        },
        proxies: dict = {
            "http": "http://",
            "https": "https://",
        }) -> OWM:
    """
    Retrieves the OWM API v3 object based on the supplied API key.

    Must supply an api_key that can be created at https://home.openweathermap.org/api_keys

    Other options are configurable based on
    https://pyowm.readthedocs.io/en/latest/v3/code-recipes.html#initialize-pyowm-with-configuration-loaded-from-an-external-json-file

    """
    if len(str(api_key).strip()) == 0:
        raise ValueError("The API Key is blank or empty")

    owm = OWM(api_key,
              config={
                  "subscription_type": subscription_type,
                  "language": language,
                  "connection": connection,
                  "proxies": proxies
              })

    return owm
Beispiel #5
0
    def get_weather(self):
        owm = OWM(self.api_key)
        weather_mgr = owm.weather_manager()

        city_id_registry = owm.city_id_registry()

        london = city_id_registry.ids_for('London', 'GB')[0][0]

        weather = weather_mgr.weather_at_id(london).weather

        temperature = weather.temperature('celsius')

        forecast = weather_mgr.forecast_at_id(london, '3h', 4).forecast
        forecasts = []

        for hourly_forecast in forecast:
            forecasts.append(
                ForecastInfo(
                    hourly_forecast.reference_time('date'),
                    hourly_forecast.detailed_status,
                    round(hourly_forecast.temperature('celsius')['temp'],
                          1), hourly_forecast.weather_code))

        current_weather = WeatherInfo(london, weather.reference_time('date'),
                                      weather.detailed_status,
                                      round(temperature['temp'], 1),
                                      round(temperature['temp_max'], 1),
                                      round(temperature['temp_min'], 1),
                                      weather.sunrise_time('date'),
                                      weather.sunset_time('date'),
                                      weather.weather_code, forecasts)

        return current_weather
Beispiel #6
0
 def __init__(self):
     # Meta stuff to use
     self.owm = OWM(secrets["API Key"])  # This is your API key for OWM
     self.cityID = secrets["City ID"]  # This is your town's city ID
     self.mgr = self.owm.weather_manager()  # This is the manager of the weather information frm OWM
     self.weather = self.mgr.weather_at_id(self.cityID).weather  # This is the current weather of Ganado
     self.temp_list = self.weather.temperature(secrets["Temp System"])  # All temps including current and feels like
def main(say, widget):
    for i in trigger:
        if i == say:
            id = OWM('e45bc007f87a48d597d60091779f2d88',
                     config_dict)  # API ключ Open weather map
            mgr = id.weather_manager()
            try:
                city = location.geo.city
                observation = mgr.weather_at_place(city)
                w = observation.weather
                toSpeak = "В " + city + " сейчас " + str(int(w.temperature('celsius')['temp'])) +\
                          " градусов по цельсию, " + w.detailed_status + "."
                if float(w.temperature('celsius')['temp']) >= 20:
                    toSpeak += "\nСейчас на улице жарко. Идите загорать."
                elif float(w.temperature('celsius')['temp']) <= 19 and float(
                        w.temperature('celsius')['temp']) >= 10:
                    toSpeak += "\nЗа окном прохладно. Оденьте куртку."
                elif float(w.temperature('celsius')['temp']) <= 9 and float(
                        w.temperature('celsius')['temp']) >= 0:
                    toSpeak += "\nНа улице холодно. Оденьтесь в осеннюю одежду."
                else:
                    toSpeak += "\nНа улице очень холодно, лучше туда не ходить. Выпейте горячего чаю."
            except Exception:
                toSpeak = "Пожалуйста, укажите название города!"
            break
        else:
            toSpeak = ""

    if toSpeak != "":
        speak.speak(toSpeak, widget)
    return toSpeak
Beispiel #8
0
def get_weather():
    key = '8f1b9a3225495a9c8a89cb7ff7848c08'
    owm = OWM(key)
    mgr = owm.weather_manager()
    observation = mgr.weather_at_place('Risod, IN')
    weather = observation.weather
    return f"The weather status is {weather.status}"
Beispiel #9
0
def main(owm_api_key,
         ifttt_api_key,
         temp_threshold,
         high_temp_event_name,
         normal_temp_event_name,
         city,
         force_high):
    """
    If *either* the outside temperature is over a threshold, *or* some other
    temperature (currently motherboard temp, measured outside this script)
    is over a threshold, consider the temperature "high". Send an event to
    IFTTT so we can take action (like turning on a fan).
    """
    owm = OWM(owm_api_key)
    weather_manager = owm.weather_manager()
    observation = weather_manager.weather_at_place(city)
    temp = observation.weather.temperature('celsius')['temp']
    event_name = normal_temp_event_name
    if temp > temp_threshold or force_high:
        event_name = high_temp_event_name

    previous_event = get_last_event()

    if previous_event != event_name:
        ifttt_url = 'https://maker.ifttt.com/trigger/%s/with/key/%s' % (event_name, ifttt_api_key)
        ifttt_data = {'value1': temp, 'value2': 'forced: %s' % force_high}
        requests.post(ifttt_url, data=ifttt_data)
        write_event(event_name, ifttt_data)
Beispiel #10
0
def lambda_handler(event, context):
    #TODO implement
    logger.debug(event)
    city = event["currentIntent"]["slots"]["City"]
    owm = OWM('068b6ba70ba098c7ef600f077f63ce08')  #API key
    mngr = owm.weather_manager()
    weather = mngr.weather_at_place(city).weather
    temp_dict_celsius = weather.temperature('celsius')

    sunrise_date = weather.sunrise_time(timeformat='date')
    sunrset_date = weather.sunset_time(timeformat='date')

    answer = "The weather of " + city + " is " + weather.detailed_status + " with " + str(
        temp_dict_celsius['temp']
    ) + " C as average temperature. The sun rose at around " + str(
        sunrise_date) + " and is expected to set at around " + str(
            sunrset_date)

    return {
        "sessionAttributes": event["sessionAttributes"],
        "dialogAction": {
            "type": "Close",
            "fulfillmentState": "Fulfilled",
            "message": {
                "contentType": "PlainText",
                "content": answer
            }
        }
    }
Beispiel #11
0
    def get_forecast(self):
        """Assembles an OpenWeatherMap API call using pyowm, gets the
         forecast temperature for the next eight hours."""
        # Builds pyowm call to the OWM API for a location's hourly temps
        load_dotenv('owm_config.env')
        api_key = getenv('API_KEY')
        lat = float(getenv('LATITUDE'))
        lon = float(getenv('LONGITUDE'))
        print(f"{lat}, {lon}")
        owm = OWM(api_key)
        mgr = owm.weather_manager()
        one_call = mgr.one_call(lat=lat,
                                lon=lon,
                                exclude='minutely,daily',
                                units='imperial')
        for hour in self.forecast_temps:
            self.forecast_temps[hour] = one_call.forecast_hourly[
                hour].temperature().get('temp')
        print(self.forecast_temps)

        # Logs the forecast temps to a .csv file
        now = datetime.now().isoformat(' ')
        log_timestamp = {'Timestamp': now}
        coords = {'Lat': lat, 'Lon': lon}
        row_dict = {**log_timestamp, **coords, **self.forecast_temps}
        field_names = row_dict.keys()
        file_exists = path.exists('Forecast Log.csv')
        with open('Forecast Log.csv', 'a+', newline='') as forecast_log:
            dict_writer = DictWriter(forecast_log, fieldnames=field_names)
            if not file_exists:
                dict_writer.writeheader()
            dict_writer.writerow(row_dict)
Beispiel #12
0
    def __init__(self, config):
        """Initialize inkycal_weather module"""

        super().__init__(config)

        config = config['config']

        # Check if all required parameters are present
        for param in self.requires:
            if not param in config:
                raise Exception(f'config is missing {param}')

        # required parameters
        self.api_key = config['api_key']
        self.location = config['location']

        # optional parameters
        self.round_temperature = config['round_temperature']
        self.round_windspeed = config['round_windspeed']
        self.forecast_interval = config['forecast_interval']
        self.units = config['units']
        self.hour_format = int(config['hour_format'])
        self.use_beaufort = config['use_beaufort']

        # additional configuration
        self.owm = OWM(self.api_key).weather_manager()
        self.timezone = get_system_tz()
        self.locale = config['language']
        self.weatherfont = ImageFont.truetype(
            fonts['weathericons-regular-webfont'], size=self.fontsize)

        # give an OK message
        print(f"{filename} loaded")
Beispiel #13
0
def get_data(key, city):
    """
    Получение данных на сегодняшний день.
    key - ключ от openweathermap.org
    city - город с уточнением страны
    """
    get_err = False
    try:
        config_dict = get_default_config()
        config_dict['language'] = 'ru'
        owm = OWM(api_key=key, config=config_dict)
        mgr = owm.weather_manager()
        w = mgr.weather_at_place(city).weather
    except:
        get_err = "Сведения о погоде получить не удалось."

    data = ("%s. "
            "Сегодня %s, %s. "
            "Время %s. " %
            (get_greeting(), get_weekday(), get_date(), get_time()))

    if not get_err:
        data += ("Температура за окном %d ℃. "
                 "Ветер %s, %d м в секунду. "
                 "Атмосферное давление %d мм рт. ст. "
                 "Относительная влажность воздуха %d %%. "
                 "%s." % (w.temperature('celsius').get('temp'),
                          get_wind_direction(w.wind().get('deg')),
                          w.wind().get('speed'), w.pressure.get('press') *
                          0.75006375541921, w.humidity, w.detailed_status))
    else:
        data += get_err

    return data
Beispiel #14
0
    def run(self, wcd, wci):
        """
        Displaying expected temperature
        """
        # Get current forecast
        if self.weather_service == 'yahoo':
            current_weather_forecast = pywapi.get_weather_from_yahoo(
                self.location_id)
        elif self.weather_service == 'weather_dot_com':
            current_weather_forecast = pywapi.get_weather_from_weather_com(
                self.location_id)
        elif self.weather_service == 'openweathermap':
            owm = OWM(self.owm_key)
            owm.config['language'] = 'de'
            mgr = owm.weather_manager()
            observation = mgr.weather_at_place(self.location_id)
            w = observation.weather
            current_weather_forecast = []
            print(w.temperature('Celsius'))
            current_weather_forecast['current_conditions'][
                'temperature'] = w.temperature('Celsius')['temp']
            # current_weather_forecast['current_conditions']['temp_max'] = w.temperature('Celsius')['temp_max']
            # current_weather_forecast['current_conditions']['temp_min'] = w.temperature('Celsius')['temp_min']
        else:
            print('Warning: No valid weather_forecast found!')
            return
        outdoor_temp = current_weather_forecast['current_conditions'][
            'temperature']
        if self.temp_sensor_registered:
            try:
                sensor = Adafruit_DHT.AM2302
                pin = self.pin_temp_sensor
                #indoor_temp = str(int(round(am2302_ths.get_temperature(self.pin_temp_sensor))))
                humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
                indoor_temp = str(int(round(temperature)))
                wcd.showText(outdoor_temp + '*', count=1, fps=8)
                wcd.showText(indoor_temp + '*',
                             count=1,
                             fg_color=wcc.GREEN,
                             fps=8)
                wcd.showText(outdoor_temp + '*', count=1, fps=8)
                wcd.showText(indoor_temp + '*',
                             count=1,
                             fg_color=wcc.GREEN,
                             fps=8)
            except:
                print('  Failed to read temperature sensor!')
                wcd.showText(outdoor_temp + '*   ' + outdoor_temp + '*   ' +
                             outdoor_temp + '*',
                             count=1,
                             fps=8)
        else:
            wcd.showText(outdoor_temp + '*   ' + outdoor_temp + '*   ' +
                         outdoor_temp + '*',
                         count=1,
                         fps=8)

        if wci.waitForExit(1.0):
            return
Beispiel #15
0
def get_temperature():
    owm = OWM('8f1b9a3225495a9c8a89cb7ff7848c08')
    mgr = owm.weather_manager()
    weather = mgr.weather_at_place('Risod,IN').weather
    temp_dict_kelvin = weather.temperature()
    temp = temp_dict_kelvin['temp'] - 273.15
    degree_sign = u'\N{DEGREE SIGN}'
    return f'The current temperature is {ceil(temp)}{degree_sign}C'
 def __init__(self):
     self.owm = OWM('4526d487f12ef78b82b7a7d113faea64')
     self.mgr = self.owm.weather_manager()
     self.city_counter = 1
     self.cities = {
                     1 : 'krakow',
                     2 : 'london',
                     3 : 'stockholm'
                 }
Beispiel #17
0
 def __init__(self):
     self._cords = [50.06860205597571, 19.906051141042095]
     self._config_dict = get_default_config()
     self._config_dict['language'] = 'en'
     self._owm = OWM('5107288b7cd05e5e4d3a167c10eb87e4', self._config_dict)
     self._manager = self._owm.weather_manager()
     self._one_call = self._manager.one_call(self._cords[0], self._cords[1])
     self._current_conditions = self._one_call.current
     self._current_temperatures = self._read_temp_raw()
 def weather(): #hava durumlarını api üzerinden çekip anlık olarak söyleyen method
     owm = OWM('bbe1108552e97a288646c8be7b776acf')
     weather_mngr = owm.weather_manager()
     observation = weather_mngr.weather_at_place('Izmir,TR')
     weather = observation.weather
     temperature = weather.temperature("celsius")
     speak("Sıcaklık " + str(temperature["temp"]) + "derece")
     speak("Hissedilen sıcaklık "+ str(temperature["feels_like"]) + "derece")
     speak("Hava durumu " + str(weather.detailed_status))
Beispiel #19
0
def getWeather():
    """
	Gets current weather from OWN data, i.e "Clouds"
	"""
    owm = OWM("TOKEN HERE")
    mgr = owm.weather_manager()
    observation = mgr.weather_at_place('Bergen,NO')
    weather = observation.weather
    return weather.status
Beispiel #20
0
def get_speed():
    from pyowm.owm import OWM
    owm = OWM('8f1b9a3225495a9c8a89cb7ff7848c08') 
    mgr = owm.weather_manager()
    observation = mgr.weather_at_place('New Delhi,IN')
    wind_dict_in_meters_per_sec = observation.weather.wind()   # Default unit: 'meters_sec'
    speed = wind_dict_in_meters_per_sec['speed']
    speed = float(speed)
    return speed
Beispiel #21
0
def get_openweathermap():
    owm_config = None
    owm = None

    try:
        with open('/etc/sensors/openweathermap.json', 'r') as f:
            owm_config = json.loads(f.read())
            owm = OWM(owm_config['key'])
            f.close()
    except Exception as ex:
        print('OpenWeatherMap API setup error: {ex}'.format(ex=ex))
        return None

    if owm:
        weather = owm.weather_manager().weather_at_place(
            owm_config['place']).weather
        temp = weather.temperature('celsius')

        wind = weather.wind()
        wind_gust = 0
        if 'gust' in wind.keys():
            wind_gust = wind['gust']

        precip_type = 'none'
        precip_intensity = 0
        if weather.rain:
            precip_type = 'rain'
            precip_intensity = weather.rain['1h']
        elif weather.snow:
            precip_type = 'snow'
            precip_intensity = weather.snow['1h']

        return {
            'sensor': owm_config['id'],
            'ts': weather.reference_time(timeformat="unix"),
            'dt': weather.reference_time(timeformat="date").astimezone(),
            'units': 'si',
            'summary': weather.detailed_status,
            'icon': weather.weather_icon_name,
            'weather_code': weather.weather_code,
            'temp_c': temp['temp'],
            'humidity': weather.humidity,
            'pressure': weather.pressure['press'],
            'dewpoint': magnus_dp(temp['temp'], weather.humidity),
            'feels_like_c': temp['feels_like'],
            'precip_type': precip_type,
            'precip_intensity': precip_intensity,
            'wind_speed': wind['speed'],
            'wind_gust': wind_gust,
            'wind_bearing': wind['deg'],
            'cloud_cover': weather.clouds,
            'uv_index': weather.uvi,
            'visibility': weather.visibility_distance
        }

    return None
Beispiel #22
0
def getweather(city):
    owm = OWM(OWM_TOKEN, config_dict)

    mgr = owm.weather_manager()
    observation = mgr.weather_at_place(city)
    w = observation.weather

    curr_weather = [int(w.temperature('celsius')['temp_min']), int(w.temperature('celsius')['temp_max']),
                    int(w.temperature('celsius')['temp']), w.detailed_status]
    return curr_weather
Beispiel #23
0
def mess(message):
    get_message_bot = message.text.strip().lower()

    owm = OWM('4d9b5e79bfddd0b1bee5d376bbc02561')
    x = get_message_bot
    mgr = owm.weather_manager()
    observation = mgr.weather_at_place(x)
    w = observation.weather
    temp = w.temperature('celsius')['temp']
    col = (f'Температура: {temp} , {w.status} ')
    bot.send_message(message.chat.id, col)
Beispiel #24
0
    def __init__(self, data, sleepEvent):

        self.data = data
        self.sleepEvent = sleepEvent
        self.weather_frequency = data.config.weather_update_freq
        self.time_format = data.config.time_format
        self.icons = get_icons("ecIcons_utf8.csv")
        self.apikey = data.config.weather_owm_apikey
        self.network_issues = False
        self.owm = OWM(self.apikey)
        self.owm_manager = self.owm.weather_manager()
Beispiel #25
0
    def execute(self):
        city = self._match.group(1)
        config_dict = get_default_config()
        config_dict['language'] = 'en'
        owm = OWM('6d00d1d4e704068d70191bad2673e0cc', config_dict)
        reg = owm.city_id_registry()

        try:
            mgr = owm.weather_manager()
            observation = mgr.weather_at_place(city)
            #print(observation.location)
            w = re.findall('(\d+.\d+)', str(observation.location))
            lon = float(w[1])
            lat = float(w[2])
        except:
            #проверка на частичное совпадение
            try:
                list_of_tuples = reg.ids_for(city, matching='like')
                city = list_of_tuples[0][1]
            except IndexError:
                print('No object with this name was found\n')
                return ()
            #вывод списка с вариантами
            if len(list_of_tuples) > 1:
                for i in range(0, len(list_of_tuples)):
                    print(i + 1, list_of_tuples[i][1:3])
                #выбор пользователя и проверка
                try:
                    select = int(input('\nSeveral matches were found. Enter a suitable number\n--> '))
                    city_finded = list_of_tuples[select - 1][1]
                    list_of_locations = reg.locations_for(city_finded)
                    city_finded = list_of_locations[0]
                    lat = city_finded.lat
                    lon = city_finded.lon
                    if select < 1:
                        print('Incorrected input\n')
                        return ()
                except:
                    print('Incorrected input\n')
                    return ()

        print('Wait forecast for', city, '...\n')

        one_call = mgr.one_call(lat, lon)
        for i in range(3):
            print(datetime.now().date() + timedelta(days=1 + i))
            print('Wind:', one_call.forecast_daily[i].wind().get('speed', 0), 'm/s\n'
                                                                              'Cloudes:',
                  one_call.forecast_daily[i].detailed_status, '\nDay temperature:',
                  one_call.forecast_daily[i].temperature('celsius').get('feels_like_day', None),
                  'degrees Celsius', '\nNight temperature:',
                  one_call.forecast_daily[i].temperature('celsius').get('feels_like_night',
                                                                        None), "degrees Celsius\n")
Beispiel #26
0
 def __init__(self, language):
     # Language must be 2-char code 'en' or 'de'
     if language is None:
         language = translation.default_language
     cfg = config.load_configuration(config.HELHEIMR_CONFIG_FILE_FORECAST)
     owm_cfg = get_default_config_for_subscription_type('free')
     owm_cfg['language'] = language.lower()
     self._owm = OWM(cfg.openweathermap.api_token, owm_cfg)
     self._latitude = cfg.openweathermap.latitude
     self._longitude = cfg.openweathermap.longitude
     self._mgr = self._owm.weather_manager()
     self._language = language
Beispiel #27
0
def get_weather(lat, long, config):
    api_key = config.get("owm", {}).get("key", "")
    if api_key == "":
        return ("", "Missing OWM API key", 0)
    owm = OWM(api_key)
    weather_manager = owm.weather_manager()
    observation = weather_manager.weather_at_coords(lat, long)
    w = observation.weather
    icon_name = w.weather_icon_name
    status = w.status
    temp = w.temperature("celsius")["temp"]
    return (icon_name, status, temp)
Beispiel #28
0
def weather(city_from_discord):
    """
    Принимает на вход название города и выводит прогноз погоды
    """
    config_dict = get_default_config()
    config_dict['language'] = 'ru'  # your language here
    owm = OWM(OWM_API_KEY, config_dict)
    mgr = owm.weather_manager()
    observation = mgr.weather_at_place(city_from_discord)
    weather = observation.weather
    temperature = weather.temperature('celsius')['temp']
    full_message = f'{weather.detailed_status.capitalize()}, температура в городе {city_from_discord} {round(temperature)}°C'
    return full_message
def main():
    from time import sleep
    from gpiozero import AngularServo, Button

    owm = OWM('api_key')
    reg = owm.city_id_registry()
    mgr = owm.weather_manager()

    krakow = reg.ids_for('Kraków', country='PL')[0]
    istanbul = reg.ids_for('Istanbul', country='TR')[0]
    stockholm = reg.ids_for('Stockholm', country='SE')[0]

    global btn_state
    btn_state = 0

    CITIES = [krakow, istanbul, stockholm]
    CITY_COUNT = 3
    WEATHER = {
        'clear': -70,
        'mist': -30,
        'haze': -30,
        'smoke': 10,
        'dust': 10,
        'sand': 10,
        'clouds': 10,
        'ash': 10,
        'squall': 10,
        'drizzle': 50,
        'rain': 50,
        'snow': 50,
        'thunderstorm': 50,
        'tornado': 50
    }
    servo1 = AngularServo(17, min_angle=-90, max_angle=90)
    servo1.angle = -90

    def button1_pressed():
        global btn_state
        btn_state += 1
        print("Change to " + str(CITIES[btn_state % CITY_COUNT]))

    button1 = Button(11)
    button1.when_pressed = button1_pressed

    while True:
        weather = mgr.weather_at_id(CITIES[btn_state % CITY_COUNT][0]).weather
        status = str(weather.status).lower()
        servo1.angle = WEATHER.get(status)
        print(str(CITIES[btn_state % CITY_COUNT]) + " : " + status)
        sleep(3)
Beispiel #30
0
def get_weather():
    f = open("key.txt", "r")
    api_key = f.read().replace("\n", "")  # your API Key here as string
    owm = OWM(api_key)  # Use API key to get data
    mgr = owm.weather_manager()
    # one_call = mgr.one_call(lat=47.36667, lon=8.55)
    observation = mgr.weather_at_place('Zurich')
    w = observation.weather
    temperature = w.temperature('celsius').get('temp', None)
    feels_temperature = w.temperature('celsius').get('feels_like', None)
    data = w.detailed_status
    # temperature = one_call.forecast_daily[0].temperature('celsius').get('day', None)
    # feels_temperature = one_call.forecast_daily[0].temperature('celsius').get('feels_like_day', None)
    # data = one_call.forecast_daily[0].detailed_status
    return temperature, feels_temperature, data