Погода от Гидрометцентра - 2. Прогноз через RSS

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

Погода от Гидрометцентра - 2. Прогноз через RSS

Сообщение xor » Ср июн 22, 2016 11:33 pm

на сайте http://meteoinfo.ru/forecasts5000/russi ... domodedowo нашел прогноз погоды, увидел кнопку RSS.

Сам прогноз довольно короткий:
Прогноз: Домодедово, 24 июня
Облачно, небольшой дождь. Температура ночью 13°, днём 26°. Ветер северо-западный, 3 м/c. Атмосферное давление ночью 748 мм рт.ст., днём 748 мм рт.ст. Вероятность осадков 86%


Создал сценарий для обработки новых записей RSS, назвал его rssNewsFull

Код: Выделить всё

//rssNewsFull
if(gg('Kitchen.SomebodyHere')){
  $volume=1;
} else {
  $volume=0;
}
 $t=$params['BODY'];
 $txt = str_replace('/с',' в секунду',$t);
say('Прогноз: '.$params['TITLE'],$volume);
say($txt,$volume); 
str_replace из-за того, что Алиса правильно читает мм рт.ст., а м/с -нет.

В каналах RSS создал новый со свойствами URL: http://meteoinfo.ru/rss/forecasts/27613

проверять каждые 120 мин

выполнить для новых записей rssNewsFull (имя скрипта выше)

Теперь, при обновлении RSS, если кто-то ходит по кухне рядом с колонками, Алиса прогноз на 3 дня прочтёт вслух, иначе запишет в лог, ну, я получу его в Телеграмме.

Хотелось бы кроме развернутого текстового сообщения иметь еще и числовые показатели, но скупость сообщения и необходимость парсить текст отвращали меня от этого.
За это сообщение автора xor поблагодарил:
lanket (Чт июн 23, 2016 1:18 pm)
Рейтинг: 1.16%
AndrewS
Сообщения: 123
Зарегистрирован: Пт апр 15, 2016 10:18 am
Откуда: 21RU
Благодарил (а): 5 раз
Поблагодарили: 20 раз
Контактная информация:

Re: Погода от Гидрометцентра - 2. Прогноз через RSS

Сообщение AndrewS » Чт июн 23, 2016 11:25 am

Парсить вообще интересно, вот приличная книжка "Дж.Фридл - Регулярные выражения, 3-е изд.[2008]",
Проверяю вот тут https://regex101.com/

Вот мой парсер на сегодня в Чебоксарах(http://meteoinfo.ru/rss/forecasts/27581):

Код: Выделить всё

cebokcary#\d*.*?\n<description>(.*?)мм.*?. мм рт.ст(.*?)<\/description> 
Сервис Яндекс выдает мм.рт.ст. как и видит, поэтому просто убрал.
За это сообщение автора AndrewS поблагодарил:
xor (Чт июн 23, 2016 4:20 pm)
Рейтинг: 1.16%
Слабость - велика, а сила - ничтожна.
ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.18-sunxi
System load: 2.03 1.85 1.78 Up time: 23 days
Memory usage: 65 % of 2014MB CPU temp: 37°C
Orange Pi Plus 2 H3 Quad Core 1.6GHZ 2GB
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

Re: Погода от Гидрометцентра - 2. Прогноз через RSS

Сообщение xor » Чт июн 23, 2016 4:20 pm

Спасибо за книгу, давно хотел освоить регулярные выражения.
А если нравится парсить, смотрите скоро 3-ю часть про Гидрометцентр)).
Нашел у них на сайте, там, где график, прогноз на 4 дня с почасовой температурой и 3-х часовыми данными влажности, осадков, ветра.
http://meteoinfo.ru/forecasts5000/russi ... domodedowo
См. со строки 574 и ниже.
Вечером выложу свое решение по вытаскиванию данных.
Я, правда, разбирал по старинке, с поиском подстроки.
AndrewS
Сообщения: 123
Зарегистрирован: Пт апр 15, 2016 10:18 am
Откуда: 21RU
Благодарил (а): 5 раз
Поблагодарили: 20 раз
Контактная информация:

Re: Погода от Гидрометцентра - 2. Прогноз через RSS

Сообщение AndrewS » Чт июн 23, 2016 4:51 pm

Да, видел график, но его лучше на страничку своего умного дома поставить. А вот предупреждения о критической смене погоды можно озвучивать. Я не создавал RSS, логика простая, в 7.30 каждый день озвучивает сегодня и завтра, просто исправил родной объект "Weather Today" в вэб-переменных.
Слабость - велика, а сила - ничтожна.
ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.18-sunxi
System load: 2.03 1.85 1.78 Up time: 23 days
Memory usage: 65 % of 2014MB CPU temp: 37°C
Orange Pi Plus 2 H3 Quad Core 1.6GHZ 2GB
Ответить