yandex-weather/README.md
2026-08-19 20:03:42 +03:00

84 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Клиент Яндекс.Погоды
Небольшой Python-клиент для получения текущей погоды и прогноза через REST API
Яндекс.Погоды для бесплатного тарифа «Погода для умного дома». Встроенный
погодный источник OpenClaw не используется.
## Настройка
1. Отзовите ранее опубликованный ключ и создайте новый в кабинете Яндекс.Погоды.
2. Скопируйте `.env.example` в `.env`.
3. Запишите новый ключ в `.env`:
```env
YANDEX_WEATHER_KEY=новый_ключ
```
Не отправляйте ключ в чат и не добавляйте `.env` в Git.
4. При желании создайте виртуальное окружение:
```bash
python3 -m venv .venv
```
Внешние библиотеки не требуются — клиент использует стандартную библиотеку
Python.
## Запуск
Доступные сохранённые локации:
```bash
python3 weather_client.py --list-locations
```
Прогноз по адресу можно запросить по ключу или по одному из сохранённых
названий:
```bash
python3 weather_client.py --location SOME_LOCATION
python3 weather_client.py --location
```
Координаты по-прежнему можно указывать явно:
```bash
python3 weather_client.py --lat 10.321 --lon 25.6173 --days 2
```
Для исходного JSON:
```bash
python3 weather_client.py --lat 10.7558 --lon 25.6173 --json
```
Клиент делает ровно один запрос API за один запуск, выводит текущую погоду,
прогноз на сегодня и завтра и ссылку на карту осадков Яндекс.Погоды для
найденного населённого пункта. Ссылка на карту открывает веб-страницу Яндекса
и не делает дополнительного запроса к API этим клиентом.
Сохранённые координаты адресов находятся в [locations.json](locations.json).
Они должны быть запрошены у пользователя и найдены на яндекс картах перед началом работы.
## Ограничения бесплатного тарифа
Бесплатный тариф «Умный дом» предназначен для некоммерческого использования,
передаёт данные только на сегодня и завтра и предоставляет температуру,
скорость ветра, погодные условия, «ощущается как» и иконку. Поэтому числовые
данные об осадках и тайлы карты нельзя гарантировать через этот API-клиент;
карта добавляется как ссылка на веб-сервис Яндекса. Автоматических повторов
запроса в клиенте нет, чтобы не расходовать лимит 1000 запросов в месяц / 30
запросов в день.
## Что нужно для следующего шага
- координаты или название нужной локации;
- время и периодичность отправки в Matrix;
- желаемый формат сообщения: короткий прогноз или подробный почасовой.
API использует заголовок `X-Yandex-Weather-Key` и параметры `lat`, `lon`, `limit`
и `hours`. Подробности — в [официальной документации REST API]
(https://yandex.ru/dev/weather/doc/ru/concepts/forecast-rest). Условия и
ограничения бесплатного тарифа — в [условиях API для физических лиц]
(https://yandex.ru/legal/apib2c_weather_agreement/ru/).