Closed DieMetRik closed 1 year ago
Аналогичная проблема. Яндекс в ответе возвращает вот такое:
{
"now": 1680292232,
"now_dt": "2023-03-31T19:50:32.792147Z",
"info": {
"url": "xxxxx",
"lat": xxxx,
"lon": xxxx
},
"fact": {
"obs_time": 1680289200,
"temp": 3,
"feels_like": -1,
"icon": "ovc",
"condition": "overcast",
"wind_speed": 2.5,
"wind_dir": "n",
"pressure_mm": 751,
"pressure_pa": 1001,
"humidity": 75,
"daytime": "n",
"polar": false,
"season": "spring",
"wind_gust": 5.6
},
"forecast": {
"date": "2023-04-01",
"date_ts": 1680292800,
"week": 13,
"sunrise": "06:14",
"sunset": "19:12",
"moon_code": 13,
"moon_text": "moon-code-13",
"parts": [
{
"part_name": "night",
"temp_min": 1,
"temp_avg": 2,
"temp_max": 4,
"wind_speed": 2.9,
"wind_gust": 6.7,
"wind_dir": "s",
"pressure_mm": 751,
"pressure_pa": 1001,
"humidity": 77,
"prec_mm": 0,
"prec_prob": 0,
"prec_period": 480,
"icon": "bkn_n",
"condition": "cloudy",
"feels_like": -2,
"daytime": "n",
"polar": false
},
{
"part_name": "morning",
"temp_min": 1,
"temp_avg": 2,
"temp_max": 4,
"wind_speed": 4.5,
"wind_gust": 8.9,
"wind_dir": "s",
"pressure_mm": 751,
"pressure_pa": 1001,
"humidity": 75,
"prec_period": 360,
"icon": "bkn_d",
"condition": "cloudy",
"feels_like": -3,
"daytime": "d",
"polar": false
}
]
}
}
В объекте forecast.parts[1] отсутствуют поля prec_mm и prec_prob У себя пока запатчил код заменой вызовов f["prec_mm"] на f.get("prec_mm", 0) f["prec_prob"] на f.get("prec_prob", 0)
угу. тоже самое, обновился на 2.0.2, получил в логе
Logger: homeassistant.components.weather
Source: helpers/update_coordinator.py:211
Integration: Weather (documentation, issues)
First occurred: 01:44:40 (4 occurrences)
Last logged: 01:48:47
Error adding entities for domain weather with platform yandex_weather
Error while setting up yandex_weather platform for weather
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 239, in _async_refresh
self.data = await self._async_update_data()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 195, in _async_update_data
return await self.update_method()
File "/config/custom_components/yandex_weather/updater.py", line 240, in update
forecast[ATTR_FORECAST_NATIVE_PRECIPITATION] = f["prec_mm"] # type: ignore
KeyError: 'prec_mm'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 442, in async_add_entities
await asyncio.gather(*tasks)
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 717, in _async_add_entity
await entity.add_to_platform_finish()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 806, in add_to_platform_finish
await self.async_added_to_hass()
File "/config/custom_components/yandex_weather/weather.py", line 110, in async_added_to_hass
await self.coordinator.async_config_entry_first_refresh()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 211, in async_config_entry_first_refresh
raise ex
homeassistant.exceptions.ConfigEntryNotReady: 'prec_mm'
но судя по истории статусов отвалилось часа 4 назад, до обновления
С вечера 2023.03.31 аналогичный KeyError: 'prec_mm'
Аналогично появилась ошибка после обновления на 2.0.2
Logger: custom_components.yandex_weather.updater
Source: custom_components/yandex_weather/updater.py:240
Integration: Яндекс.Погода (documentation, issues)
First occurred: 31 марта 2023 г. в 21:58:58 (25 occurrences)
Last logged: 08:50:01
Unexpected error fetching Yandex Weather updater data: 'prec_mm'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 239, in _async_refresh
self.data = await self._async_update_data()
File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 195, in _async_update_data
return await self.update_method()
File "/config/custom_components/yandex_weather/updater.py", line 240, in update
forecast[ATTR_FORECAST_NATIVE_PRECIPITATION] = f["prec_mm"] # type: ignore
KeyError: 'prec_mm'
такая же проблема, недоступна погода...
Мне кажется, что тут дело не в обновлении. откатился на 2.0.1 - тоже самое. Возможно, Яндекс опять что-то сломал / ограничил. В последнее время они очень стали много всего обрезать (транспорт, карты....)
UPD: Предложенный вариант heggi работает. В файле \Your instance URL\config\custom_components\yandex_weather\updater.py меняем: f["prec_mm"] на f.get("prec_mm", 0) f["prec_prob"] на f.get("prec_prob", 0) Потом нужно перегрузиться.
Да, и еще (для Игоря) у меня за несколько часов интеграция съела все 50 запросов от Яндекса. Похоже, что когда возникает подобная ошибка, интеграция ломится в Яндекс и сжирает весь лимит 50 запросов в день.
замена помогла, сейчас погода отображается
Ухх... Обожаю обновления в ночь на субботу...
Исправлено в v2.0.3.
Извините что такое вылезло... Еще один повод пересмотреть код updater'a...
В чем проблема?
Эта ошибка возникла в кастомной интеграции.
Logger: custom_components.yandex_weather.updater Source: custom_components/yandex_weather/updater.py:240 Integration: Яндекс.Погода (documentation, issues) First occurred: 21:58:57 (3 occurrences) Last logged: 22:55:25
При использовании какой версии интеграции возникает проблема?
v2.0.2
Какая версия Home Assistant используется?
2023.3.6
Какой способ установки Home Assistant используется?
Home Assistant Supervised
Самопроверка по созданию ключа
Есть что-нибудь полезное в логе?
No response
Дополнительная информация
No response