Статья находится на стадии заполнения по причине разработки сценариев
Данный набор сценариев, состоит из глобальных и блочных сценариев. Глобальные занимаются запросом данных, локальные отправляют показания в Telegram и обновляют показания виртуальных датчиков.
Для всех сервисов, кроме Yr.no - требуется получение API ключей. То есть вам нужно зарегистрироваться в сервисе как разработчик и получить API ключ, который потом необходимо вставить в один ключевой глобальный сценарий, который обязателен для работы всех остальных в наборе.
Yr.No
Самый простой и доступный сервис. Не требует регистрации и получения API ключей и каких либо дополнительных действий. Но отдает только часовые показания. То есть когда бы вы ни запросили данные, прогноз будет показываться от начала часа.
Отправка показаний Yr.no в Telegram
global.yr_request();
if (global.yr.error && !global.yr.temp) {log.warn("Данных YR нет: {}", global.yr.error_code)} else {
global.sendToTelegram(["Погода Yr.no:",
"=================================",
"Данные получены в: *" + global.yr.time + "*",
"=================================",
"Состояние: *" + global.yr.condition_1_hour + "*",
"---------------------------------------------",
"Температура (факт):* " + Hub.getCharacteristicValue(552,15) + " °C*",
"Температура (прогноз):* " + global.yr.temp + " °C*",
"Относительная влажность:* " + global.yr.hum + " %*",
"---------------------------------------------",
"Ветер: *" + global.yr.wind_dir + "*",
"Скорость ветра: *" + global.yr.wind + " м/с*",
"---------------------------------------------",
"УФ Индекс: * " + global.yr.uv +"*",
"---------------------------------------------",
"Точка росы: *" + global.yr.dewpoint + "°C*",
"---------------------------------------------",
"Атмосферное давление: *" + global.yr.pressure + " мм.рт.ст.*",
"---------------------------------------------",
"Туман: *" + global.yr.fog + "%*",
"=================================",
"*Прогноз на ближайшие 6 часов*",
"=================================",
"*" + global.yr.condition_6_hours + "*",
"Температура (мин):* " + global.yr.temp_min_6_hours + " °C*",
"Температура (макс):* " + global.yr.temp_max_6_hours + " °C*",
"Уровень осадков: *" + global.yr.prec + " мм.*",
"=================================",
"*Прогноз на ближайшие 12 часов*",
"=================================",
"*" + global.yr.condition_12_hours + "*",
"================================="
]);
}
Переменные
- global.yr.time - Время прогноза
- global.yr.pressure - Атмосферное давление
- global.yr.temp - Температура
- global.yr.cloud - Уровень облачности (%)
- global.yr.dewpoint - Точка росы
- global.yr.fog - Уровень тумана (%)
- global.yr.hum - Относительная влажность
- global.yr.uv - Уровень ультрафиолета
- global.yr.wind_deg - Направление ветра (в градусах)
- global.yr.wind_dir - Направление ветра (текстовое)
- global.yr.wind - Скорость ветра
- global.yr.condition_1_hour - Состояние погоды в ближайший час
- global.yr.condition_6_hours - Состояние погоды в ближайшие 6 часов
- global.yr.condition_6_hours - Состояние погоды в ближайшие 12 часов
- global.yr.temp_max_6_hours - Максимальная температура в ближайшие 6 часов
- global.yr.temp_min_6_hours - Минимальная температура в ближайшие 6 часов
- global.yr.prec - Уровень осадков в ближайшие 6 часов
OpenWeather
Отправка показаний OpenWeather в Telegram
global.ow_request();
if (global.ow.error && !global.ow.temp) {log.warn("Данных OpenWeather нет: {}", global.ow.error_code); global.sendToTelegram(["Данных OpenWeather нет","Причина: " + global.ow.error_code])} else {
global.sendToTelegram(["*Прогноз OpenWeather*",
"=================================",
"Данные получены в *: " + global.ow.time + "*",
"=================================",
"На улице *" + global.ow.condition + "*",
"Облачность: *" + global.ow.clouds + "%*",
"Видимость: *" + global.ow.visibility + " м.*",
"---------------------------------------------",
"Температура (прогноз):* " + global.ow.temp + " °C*",
"Ощущается:* " + global.ow.feels_like +" °C*",
"---------------------------------------------",
"Минимальная: *" + global.ow.temp_min + "°C*",
"Максимальная: *" + global.ow.temp_max + "°C*",
"---------------------------------------------",
"Относительная влажность:* " + global.ow.hum + " %*",
"---------------------------------------------",
"Атмосферное давление: *" + global.ow.pressure + " мм.рт.ст.*",
"---------------------------------------------",
"Ветер: *" + global.ow.wind_deg_text +"*",
"Скорость ветра: *" + global.ow.wind + " м/с*",
"С порывами до: *" + global.ow.gust + " м/с*",
"---------------------------------------------",
"Восход: *" + global.ow.sunrise +"*",
"Закат: *" + global.ow.sunset +"*",
"=================================",
]);
}
Скачать шаблон сценария OpenWeather в Telegram
Переменные для сценариев
- global.ow.time - Время прогноза
- global.ow.temp - Температура
- global.ow.hum - Влажность
- global.ow.pressure - Давление (мм. рт. ст.)
- global.ow.wind - Скорость ветра (м/с)
- global.ow.gust - Порывы ветра (м/с)
- global.ow.wind_deg - Направление ветра (в градусах)
- global.ow.wind_deg_text - Направление ветра в текстовом формате
- global.ow.feels_like - Температура (Ощущается)
- global.ow.temp_min - Минимальная температура
- global.ow.temp_max - Максимальная температура
- global.ow.clouds - Уровень облачности (%)
- global.ow.visibility - Видимость (м)
- global.ow.condition - Описание погоды (текстовое, для использования в Телеграм)
- global.ow.sunrise - Время восхода
- global.ow.sunset - Время заката
Яндекс
Отправка показаний Яндекс.Погоды в Telegram
global.ya_request();
if (global.ya.error && !global.ya.temp) {log.warn("Данных Yandex нет: {}", global.ya.error_code); global.sendToTelegram(["Данных Яндекс нет","Причина: " + global.ya.error_code])} else {
global.sendToTelegram(["*Погода Яндекс:*",
"=================================",
"Текущие показания получены в: *" + global.ya.time + "*",
"=================================",
global.ya.condition,
"---------------------------------------------",
"Температура (факт):* " + Hub.getCharacteristicValue(552,15) + " °C*",
"Температура (прогноз):* " + global.ya.temp + " °C*",
"Ощущается:* " + global.ya.feels_like +" °C*",
"Относительная влажность:* " + global.ya.hum + " %*",
"---------------------------------------------",
"Ветер: *" + global.ya.wind_direction_text +"*",
"Скорость ветра: *" + global.ya.wind + " м/с*",
"С порывами до: *" + global.ya.gust + " м/с*",
"---------------------------------------------",
"Фаза луны: * " + global.ya.moon_text +"*",
"---------------------------------------------",
"Восход: *" + global.ya.sunrise +"*",
"Закат: *" + global.ya.sunset +"*",
"================================="]);
global.sendToTelegram([
"=================================",
"*Прогноз на следующие 6 часов*",
"=================================",
"Данные получены в: *" + global.ya.forecast_time + "*",
"---------------------------------------------",
"*" + global.ya.part_1_name + "* ожидается: *" + global.ya.condition_1 + "*",
"---------------------------------------------",
"Вероятность осадков: *" + global.ya.prec_1 + " %*",
"Длительность осадков: *" + global.ya.prec_period_1 + " минут*",
"Количество осадков: *" + global.ya.prec_mm_1 + " мм.*",
"---------------------------------------------",
"Температура (мин):* " + global.ya.temp_min_1 + " °C*",
"Температура (макс):* " + global.ya.temp_max_1 + " °C*",
"Ощущается:* " + global.ya.feels_like_1 +" °C*",
"Относительная влажность:* " + global.ya.hum_1 + " %*",
"---------------------------------------------",
"Ветер: *" + global.ya.wind_direction_1_text +"*",
"Скорость ветра: *" + global.ya.wind_1 + " м/с*",
"С порывами до: *" + global.ya.gust_1 + " м/с*",
"=================================",
"*" + global.ya.part_2_name + "* ожидается: *" + global.ya.condition_2 + "*",
"---------------------------------------------",
"Вероятность осадков: *" + global.ya.prec_2 + " %*",
"Длительность осадков: *" + global.ya.prec_period_2 + " минут*",
"Количество осадков: *" + global.ya.prec_mm_2 + " мм.*",
"---------------------------------------------",
"Температура (мин):* " + global.ya.temp_min_2 + " °C*",
"Температура (макс):* " + global.ya.temp_max_2 + " °C*",
"Ощущается:* " + global.ya.feels_like_2 +" °C*",
"Относительная влажность:* " + global.ya.hum_2 + " %*",
"---------------------------------------------",
"Ветер: *" + global.ya.wind_direction_2_text +"*",
"Скорость ветра: *" + global.ya.wind_2 + " м/с*",
"С порывами до: *" + global.ya.gust_2 + " м/с*",
"================================="
]);
}
Скачать шаблон сценария Яндекс.Погоды в Telegram
Переменные
Текущий прогноз
- global.ya.time - Время текущего прогноза
- global.ya.forecast_time - Время прогноза будущих периодов
- global.ya.forecast_date - Дата прогноза будущих периодов
- global.ya.condition - Описание погоды (текстовое, для использования в Телеграм)
- global.ya.moon_text - Фаза луны (текстовое поле для использования в Телеграм)
- global.ya.temp - Температура
- global.ya.feels_like - Температура (Ощущается)
- global.ya.hum - Влажность
- global.ya.wind_direction_ - Направление ветра (символ)
- global.ya.wind_direction_text - Направление ветра (текстовое поле для использования в Телеграм)
- global.ya.wind - Скорость ветра (м/с)
- global.ya.gust - Порывы ветра (м/с)
- global.ya.sunrise - Время восхода
- global.ya.sunset - Время заката
Прогноз на следующий период суток (Если текущий период день, то на вечер)
- global.ya.part_1_name - Наименование периода суток
- global.ya.condition_1 - Описание погоды
- global.ya.temp_min_1 - Минимальная температура
- global.ya.temp_max_1 - Максимальная температура
- global.ya.feels_like_1 - Температура (Ощущается)
- global.ya.hum_1 - Влажность
- global.ya.wind_direction_1_text - Направление ветра (текстовое поле для использования в Телеграм)
- global.ya.wind_direction_1 - Направление ветра (символ)
- global.ya.wind_1 - Скорость ветра (м/с)
- global.ya.gust_1 - Порывы ветра (м/с)
- global.ya.prec_1 - Вероятность осадков
- global.ya.prec_period_1 - Продолжительность осадков
- global.ya.prec_mm_1 - Уровень осадков (мм)
Прогноз на последующий период суток (Если текущий период день, то на ночь)
- global.ya.part_2_name - Наименование периода суток
- global.ya.condition_2 - Описание погоды (текстовое, для использования в Телеграм)
- global.ya.temp_min_2 - Минимальная температура
- global.ya.temp_max_2 - Максимальная температура
- global.ya.feels_like_2 - Температура (Ощущается)
- global.ya.hum_2 - Влажность
- global.ya.wind_direction_2_text - Направление ветра (текстовое поле для использования в Телеграм)
- global.ya.wind_dir_2 - Направление ветра (символ)
- global.ya.wind_2 - Скорость ветра (м/с)
- global.ya.gust_2 - Порывы ветра (м/с)
- global.ya.prec_2 - Вероятность осадков
- global.ya.prec_period_2 - Продолжительность осадков
- global.ya.prec_mm_2 - Уровень осадков (мм)
AccuWeather
Отправка показаний AccuWeather в Telegram
global.acc_request();
if (global.acc.error && !global.acc.temp) {log.warn("Данных AccuWeather нет: {}", global.acc.error_code); global.sendToTelegram(["Данных AccuWeather нет","Причина: " + global.acc.error_code])} else {
global.sendToTelegram(["*Погода AccuWeather*:",
"=================================",
"Данные получены в: *" + global.acc.time + "*",
"=================================",
"На улице: *" + global.acc.condition + "*",
"Облачность: *" + global.acc.cloud + " %*",
"---------------------------------------------",
"Температура (факт):* " + Hub.getCharacteristicValue(552,15) + " °C*",
"Температура (прогноз):* " + global.acc.temp + " °C*",
"Ощущается (RealFeel):* " + global.acc.real_temp +" °C*",
"---------------------------------------------",
"Ощущается (RealFeel в тени):* " + global.acc.real_shade +" °C*",
"Ощущается (с учетом влажности и ветра):* " + global.acc.apparent_temp +" °C*",
"Ощущается (открытой кожей с ветром):* " + global.acc.wind_chill_temp +" °C*",
"---------------------------------------------",
"Температура (мин):* " + global.acc.temp_min + " °C*",
"Температура (макс):* " + global.acc.temp_max + " °C*",
"---------------------------------------------",
"Относительная влажность:* " + global.acc.hum + " %*",
"Влажность уличного воздуха в помещении:* " + global.acc.indoor_hum + " %*",
"---------------------------------------------",
"Точка росы:* " + global.acc.dewpoint + " °C*",
"---------------------------------------------",
"УФ Индекс:* " + global.acc.uv + " (" + global.acc.uv_text + ")*",
"---------------------------------------------",
"Ветер: *" + global.acc.wind_deg_text +"*",
"Скорость ветра: *" + global.acc.wind + " м/с*",
"С порывами до: *" + global.acc.gust + " м/с*",
"---------------------------------------------",
"Атмосферное давление:* " + global.acc.pressure + " мм.рт.ст.*",
"---------------------------------------------",
"Видимость:* " + global.acc.visibility + " км.*",
"---------------------------------------------",
"Уровень осадков в ближайший час:* " + global.acc.precip + " мм.*",
"================================="
])
}
Переменные
- global.acc.time - Время прогноза
- global.acc.condition - Описание погоды (текстовое, для использования в Телеграм)
- global.acc.cloud - Уровень облачности (%)
- global.acc.temp - Температура
- global.acc.temp_min - Минимальная температура
- global.acc.temp_max - Максимальная температура
- global.acc.real_temp - Температура RealTemp (зарегистрированная торговая марка AccuWeather)
- global.acc.real_shade - Температура RealTemp в тени
- global.acc.apparent_temp - Температура (Ощущается)
- global.acc.wind_chill_temp - Температура (Ощущается открытой кожей)
- global.acc.hum - Влажность
- global.acc.indoor_hum - Влажность воздуха попадающего в помещение с улицы
- global.acc.dewpoint - Точка росы
- global.acc.uv - Уровень ультрафиолета
- global.acc.uv_text - Уровень ультрафиолета (текстовое, для использования в Телеграм)
- global.acc.wind - Скорость ветра (м/с)
- global.acc.gust - Порывы ветра (м/с)
- global.acc.wind_dir - направление ветра (английский символ)
- global.acc.wind_dir_text - направление ветра (текстовое)
- global.acc.wind_deg - направление ветра (в градусах)
- global.acc.wind_deg_text - направление ветра (текстовое, вычисленное из градусов)
- global.acc.visibility - видимость (км)
- global.acc.pressure - атмосферное давление (мм.рт.ст.)
- global.acc.precip - уровень осадков (мм)