
Подключил прогноз погоды от OpenWeather к Conky. Пока оно сыровато, надо продумать получше архитектуру, чтобы было удобно пользоваться. Поэтому я не стал пока документировать этот модуль в README репозитория, ну а в блоге можно и о том, что в процессе, написать.
У меня почему-то не получилось получить данные текущей погоды с OpenWeatherMap.org, только прогноз на пять дней с интервалом 3 часа. Надо, конечно, поразбираться с их API получше — еще один повод не считать работу законченной…
Как бы то ни было, пятидневный прогноз вполне себе отображается. Как его использовать:
-
Мне потребовалось доустановить некоторые пакеты для Lua:
-
lua-cjson
для парсинга ответа от сервера. -
luaposix
для всякой вспомогательной работы с файлами и каталогами. -
luasocket
для собственно загрузки по HTTP.
В вашей системе это все может быть уже установлено, а может и не быть, нужно проверить и доустановить.
-
-
Подключить так или иначе модуль
openweather.lua
. -
Создать файл
~/.config/conky/openweather_config.lua
(api_key
выдается на OpenWeatherMap.org при регистрации, можно определить несколько мест (places
)):
weather.config = {
api_key = 'NNNNNNNNNNNNNNNNNNNNNNN',
lang = 'ru',
units = 'metric',
places = {
home = {
latitude = YY.YYYYYY,
longitude = XX.XXXXXX
}
}
}
-
Использовать в конфиге собственно Conky вызовы типа
${lua openweather_city_name home}
или${lua openweather_weather_temp home 1}
, гдеhome
— это ключ места вopenweather_config.lua
, а1
— индекс прогноза (собственно1
— это ближайший — в Lua массивы индексируются с единицы).Конкретно на заглавной картинке отражен следующий фрагмент конфига, выводящий первые пять точек прогноза:
$alignc${color0}${font PT Sans:size=13}Weather$font
${lua openweather_city_name home} $alignr${lua openweather_city_id home}
${lua openweather_weather_time home 1 %H:%M} ${lua openweather_weather_description home 1}${lua openweather_weather_icon_image home 1 50,1455}
${lua openweather_weather_temp home 1}°C
${lua openweather_weather_time home 2 %H:%M} ${lua openweather_weather_description home 2}${lua openweather_weather_icon_image home 2 50,1498}
${lua openweather_weather_temp home 2}°C
${lua openweather_weather_time home 3 %H:%M} ${lua openweather_weather_description home 3}${lua openweather_weather_icon_image home 3 50,1543}
${lua openweather_weather_temp home 3}°C
${lua openweather_weather_time home 4 %H:%M} ${lua openweather_weather_description home 4}${lua openweather_weather_icon_image home 4 50,1588}
${lua openweather_weather_temp home 4}°C
${lua openweather_weather_time home 5 %H:%M} ${lua openweather_weather_description home 5}${lua openweather_weather_icon_image home 5 50,1635}
${lua openweather_weather_temp home 5}°C
${alignr}${font PT Mono:size=9}Updated: ${lua openweather_updated home %H:%M:%S}$font
В целом структура всего этого мне совсем не нравится. Думаю, вернуться к этому делу через некоторое время.