[Модуль] Погода от Яндекс (app_yaweather)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

DiArt
Сообщения: 210
Зарегистрирован: Пт апр 12, 2013 2:27 pm
Откуда: Уфа
Благодарил (а): 28 раз
Поблагодарили: 16 раз

Re: Модуль

Сообщение DiArt » Чт май 19, 2016 2:56 pm

nick7zmail писал(а): Был вроде...недавно смотрел

Отправлено с моего Xperia Z через Tapatalk
Там действительно нет прогноза. Только на завтра (tomorrow)
А прогноз можно попробовать парсить с официального сайта погоды Яндекс.
Правда пока не делал
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Погода от Яндекс"

Сообщение nick7zmail » Чт май 19, 2016 3:15 pm

Кстати о других сервисах...

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

https://weather.com/ 
Гугл погоду берет оттуда. Вроде как есть бесплатный api, но с ключём (так же как у опенвэзер). Еще не регался и не смотрел что он умеет, но вроде как данные умеет даваьб даже в json (некоторым удобнее чем xml).
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Модуль

Сообщение m-malva » Чт май 19, 2016 3:49 pm

nick7zmail писал(а): UPD действителтно уже нету...мда...над чёт думать...на ow переходить...или другие сервисы искать...
Я себе заглушку нарисовал как только начала глючить погода и теперь не буду привязываться к сервису

SetGlobalWeather
Определяет актуальность данных "погода"
СпойлерПоказать

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

//Запускаем проверку каждые 10 минут
setTimeOut('SetGlobalWeather','runScript("SetGlobalWeather");',10*60);
// Кол-во часов - актуален прогноз
$hour=2;

//Проверяем как давно обновилась погода с яндекеса
$ywtimestamp=strtotime(getGlobal("yw_setting.data_update"));
if ( $ywtimestamp === FALSE){
 say("Отсутствует информация об обновлении погоды с яндекса",1);
}else{
 if ($ywtimestamp<time()){
  $ywupdate=time()-$ywtimestamp;
  $ywupdate=($ywupdate/60/60);
  $ywupdate=round($ywupdate);
//  say("Прогноз с яндекса обновлялся ".$ywupdate." ".pluralForm($ywupdate, 'час', 'часа', 'часов')." назад",0);
  echo "Прогноз с яндекса обновлялся ".$ywupdate." ч<br>";
 }else{
  say("Данные об обновлении погоды с яндекса не корректны",1);
  echo "Данные об обновлении погоды с яндекса не корректны<br>";
 }
}     

//Проверяем как давно обновилась погода с Open Weather Map
$owdate=strtotime(getGlobal("ow_city.data_update"));
if ( $owdate === FALSE){
 say("Отсутствует информация об обновлении погоды c Open Weather Map",1);
}else{
 if ($owdate<time()){
  $owdate=time()-$owdate;
  $owdate=($owdate/60/60);
  $owdate=round($owdate);
 //  say("Последний раз прогноз c Open Weather Map обновился ".$owdate." ".pluralForm($owdate, 'день', 'дня', 'дней')." назад",1);
  echo "Прогноз c Open Weather Map обновился ".$owdate."ч <br>";
 }else{
 say("Данные об обновлении прогноза погоды c Open Weather Map не корректны",1);
 }


if ($ywupdate <= $hour){
    if(gg("gw_fact.weather")!="Погода Yandex"){
     say("Меняю поставщика «погодного» контента",1);
     say("Теперь погода с Яндекса.",5);
     echo "Погода с Яндекса.<br>";     
    }
    sg("gw_fact.weather", "Погода Yandex");
    sg("gw_fact.temperature", gg("yw_fact.temperature"));
    sg("gw_fact.weather_type", gg("yw_fact.weather_type "));
    sg("gw_fact.wind_speed", gg("yw_fact.wind_speed"));
    sg("gw_fact.humidity", gg("yw_fact.humidity"));
    sg("gw_fact.pressure", gg("yw_fact.pressure"));
    sg("gw_fact.update", strtotime(getGlobal("yw_setting.data_update")));
      sg("gw_fact.image", gg("yw_fact.image"));
    $img="/cached/yaweather/48x48/".gg("yw_fact.image").".png";
    sg("gw_fact.image_p",$img);

    sg("gw_day0.day_weather_type", gg("yw_day0.day_weather_type"));
    sg("gw_day0.temp_day", gg("yw_day0.day_temperatureData_to"));
    sg("gw_day0.day_wind_speed", gg("yw_day0.day_wind_speed"));
    sg("gw_day0.day_humidity", gg("yw_day0.day_humidity"));

    sg("gw_day1.day_weather_type", gg("yw_day1.day_weather_type"));
    sg("gw_day1.temp_day", gg("yw_day1.day_temperatureData_to"));
    sg("gw_day1.day_wind_speed", gg("yw_day1.day_wind_speed"));
    sg("gw_day1.day_humidity", gg("yw_day1.day_humidity"));
 

}else if($owdate <= $hour){
 
    if(gg("gw_fact.weather")!="Погода Open Weather Map"){
     say("Меняю поставщика «погодного» контента",1);
     say("Теперь погода с Open Weather Map.",5);
     echo "Погода с Open Weather Map.<br>";        
    }
    sg("gw_fact.weather", "Погода Open Weather Map");
    sg("gw_fact.weather_type", gg("ow_fact.weather_type "));
    sg("gw_fact.temperature", round(gg("ow_fact.temperature")));
    sg("gw_fact.wind_speed", round(gg("ow_fact.wind_speed")));
    sg("gw_fact.humidity", round(gg("ow_fact.humidity")));
    sg("gw_fact.pressure", gg("ow_fact.pressure_mmhg"));
    sg("gw_fact.update", strtotime(gg("ow_day0.date")));
     sg("gw_fact.image", gg("ow_fact.image"));
    $img="/cached/openweather/image/".gg("ow_fact.image").".png";
    sg("gw_fact.image_p",$img);


    sg("gw_day0.day_weather_type", gg("ow_day0.weather_type"));
    sg("gw_day0.temp_day", round(gg("ow_day0.temp_day")));
    sg("gw_day0.day_wind_speed", round(gg("ow_day0.wind_speed")));
    sg("gw_day0.day_humidity", round(gg("ow_day0.humidity")));

    sg("gw_day1.day_weather_type", gg("ow_day1.weather_type"));
    sg("gw_day1.temp_day", round(gg("ow_day1.temp_day")));
    sg("gw_day1.day_wind_speed", round(gg("ow_day1.wind_speed")));
    sg("gw_day1.day_humidity", round(gg("ow_day1.humidity")));


}else{
rs ('CheckGismeteo');
     if(gg("gw_fact.weather")!="Погода c Gismeteo!!!"){
       say("Данные об обновлении прогноза погоды устарели",5);
     echo "Данные об обновлении прогноза погоды устарели<br>";           
     sg("gw_fact.weather", "Погода c Gismeteo");
     sg("gw_fact.temperature", gg("gisw_fact.temperature"));
     sg("gw_fact.weather_type", gg("gisw_fact.weather_type"));
     sg("gw_fact.wind_speed", gg("gisw_fact.wind_speed"));
     sg("gw_fact.humidity", gg("gisw_fact.humidity"));
     sg("gw_fact.pressure", gg("gisw_fact.pressure"));
     sg("gw_fact.image", gg("gisw_fact.image"));
     $img="/cached/yaweather/48x48/".gg("gisw_fact.image").".png";
     sg("gw_fact.image_p",$img);

     
      sg("gw_day1.day_weather_type", "NA");
      sg("gw_day1.temp_day", "NA");
      sg("gw_day1.day_wind_speed", "NA");
      sg("gw_day1.day_humidity", "NA");
     
    }
}
}
За это сообщение автора m-malva поблагодарил:
DiArt (Чт май 19, 2016 4:36 pm)
Рейтинг: 1.16%
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Модуль "Погода от Яндекс"

Сообщение m-malva » Чт май 19, 2016 4:00 pm

это с гисметео
СпойлерПоказать

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

if (getGlobal('ThisComputer.InternetAccess') != '1'){ //Если нет интернета
say("При выполнении запроса 'Гисметео' требуется подключение к сети интернет.", 1);
clearTimeout('CheckGismeteoExport');
}else{
setTimeOut('CheckGismeteoExport','runScript("CheckGismeteoExport");',10*60);
 
//определим текущей день 
$cur_time=date('G');
$cur_date=date('d.m.Y');

 
 //определяем время суток
switch($cur_time){
  case  ($cur_time>=3 && $cur_time<9):
     $tod=1;
     break;
  case  ($cur_time>=9 && $cur_time<15):
    $tod=2;
    break;
  case  ($cur_time>=15 && $cur_time<21):
    $tod=3;
    break;
  case  (($cur_time>=21  &&  $cur_time<23) || 
         ($cur_time>=0   && $cur_time<3)):
    $tod=0;
    break;
 default: $tod=0;
}
 
 $data_file="http://informer.gismeteo.ru/xml/".gg("gisw_setting.city_id")."_1.xml";
    $xml = simplexml_load_file($data_file);

    foreach ($xml->REPORT->TOWN->FORECAST as $forecast ){
    $xml_date=$forecast["day"].'.'.$forecast["month"].'.'.$forecast["year"];
      if ($forecast["tod"] == $tod  && $cur_date == $xml_date){
       
         $TEMPmin0=$forecast->TEMPERATURE['max'];
        $TEMPmax0=$forecast->TEMPERATURE['min'];
        $temp0=($TEMPmin0+$TEMPmax0)/2;
        sg("gisw_fact.temperature",$temp0);
        sg("gisw_fact_min.temperature",$TEMPmin0);
        sg("gisw_fact_max.temperature",$TEMPmax0);
 
         $WINDmin0=$forecast->WIND ['max'];
        $WINDmax0=$forecast->WIND ['min'];
        $wind0=($WINDmin0+$WINDmax0)/2;
        sg("gisw_fact.wind_speed",$wind0);
        sg("gisw_fact.wind_speed_min",$WINDmin0);
        sg("gisw_fact.wind_speed_max",$WINDmax0);

         $PRESSUREmin0=$forecast->PRESSURE ['max'];
        $PRESSUREmax0=$forecast->PRESSURE ['min'];
        $pressure0=($PRESSUREmin0+$PRESSUREmax0)/2;
        sg("gisw_fact.pressure",$pressure0);
        sg("gisw_fact.pressure_min",$PRESSUREmin0);
        sg("gisw_fact.pressure_max",$PRESSUREmax0);
 
         $RELWETmin0=$forecast->RELWET ['max'];
        $RELWETmax0=$forecast->RELWET ['min'];
        $humidity0=($RELWETmin0+$RELWETmax0)/2;
        sg("gisw_fact.humidity",$humidity0);
        sg("gisw_fact.humidity_max",$RELWETmax0);
        sg("gisw_fact.humidity_min",$RELWETmin0);
       
         $cloudiness=$forecast->PHENOMENA ['cloudiness'];
           if ($cloudiness==0){
          $cloudiness="ясно";
             $img="skc";
        }

           if ($cloudiness==1){
         $cloudiness="малооблачно";
         $img="bkn";
        } 
           if ($cloudiness==2){
         $cloudiness="облачно";
         $img="ovc";
        }
           if ($cloudiness==3){
         $cloudiness="пасмурно";
         $img="ovc";         
        }
       
        sg("gisw_fact.cloudiness",$cloudiness);
       
         $rpower=$forecast->PHENOMENA ['rpower'];
        sg("gisw_fact.rpower",$rpower);
       
          $spower=$forecast->PHENOMENA ['spower'];
        sg("gisw_fact.spower",$spower);      
       
         $precipitation=$forecast->PHENOMENA ['precipitation'];       
        if($precipitation==4 && $rpower==0) $precipitation="возможен дождь";
        if($precipitation==4 && $rpower==1){
         $precipitation="дождь";
         $img=$img."_-ra";
        }
        if($precipitation==5 && $rpower==0) $precipitation="возможен ливень";
        if($precipitation==5 && $rpower==1){
          $precipitation="ливень";
          $img=$img."_+ra";        
        }
        if($precipitation==6 && $rpower==0) $precipitation="возможен снег";
        if($precipitation==6 && $rpower==1){
          $precipitation="снег";
          $img=$img."_-sn";           
        }
        if($precipitation==7 && $rpower==0) $precipitation="возможен снегопад";
        if($precipitation==7 && $rpower==1){
          $precipitation="снегопад";
          $img=$img."_+sn";         
        }
        if($precipitation==8){
           $precipitation="гроза";
          $img=$img."ovs_ts_ra";  
        }
        if($precipitation==9){
         $precipitation="нет данных";
         $img="na";
        }
        if($precipitation==10) $precipitation="без осадков";
        sg("gisw_fact.precipitation",$precipitation);
        $weather_type =$cloudiness." ".$precipitation;
        sg("gisw_fact.weather_type",$weather_type);
        if (gg('DarknessMode.active')==1){
         $img=$img."_n";
         sg('gisw_fact.img',$img);
        }else{
         $img=$img."_d";
         sg('gisw_fact.img',$img);        
        }

         $hour=$xml->REPORT->TOWN->FORECAST['hour'];
        sg('gisw_fact.update',"$hour:00:00 $xml_date");
      }
    }
}
мож кто модуль запилит для гисметео
я их делать так еще и не научился

файл класса и объектов
Вложения
GismeteoWeather.txt
(2.42 КБ) 704 скачивания
За это сообщение автора m-malva поблагодарил:
DiArt (Чт май 19, 2016 4:21 pm)
Рейтинг: 1.16%
DiArt
Сообщения: 210
Зарегистрирован: Пт апр 12, 2013 2:27 pm
Откуда: Уфа
Благодарил (а): 28 раз
Поблагодарили: 16 раз

Re: Модуль "Погода от Яндекс"

Сообщение DiArt » Чт май 19, 2016 4:30 pm

m-malva писал(а):это с гисметео
Получается с гисметео он видит только сегодня и завтра?
А на 3-5 дней не получить. Ищем дальше xml с прогнозом на несколько дней
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Погода от Яндекс"

Сообщение nick7zmail » Чт май 19, 2016 4:55 pm

Модуль запилить не проблема...надо только найти хмл хотя бы с 7-дневным прогнозом...дома посмотрю.

Отправлено с моего Xperia Z через Tapatalk
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
DiArt
Сообщения: 210
Зарегистрирован: Пт апр 12, 2013 2:27 pm
Откуда: Уфа
Благодарил (а): 28 раз
Поблагодарили: 16 раз

Re: Модуль "Погода от Яндекс"

Сообщение DiArt » Чт май 19, 2016 8:52 pm

Как и обещал мой скрипт который вытягивает ТЕКУЩУЮ погоду с яндекса. Может кому и пригодится:
Меняем YandexUfa на свой город, и меняем runScript('Pogoda_Ufa'); на название своего скрипта

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

$city_id=172;  //Уфа
//$city_id=getGlobal('YandexUfa.Id');  //ID города узнаем тут: https://export.yandex.ru/bar/reginfo.xml

$data_file="https://export.yandex.ru/bar/reginfo.xml?region=$city_id.xml?".rand(); // адрес xml файла
$xml = simplexml_load_file($data_file); // раскладываем xml на массив
if($xml === false ) { // Проверить можно также !is_object( $xml ) или !$xml
setTimeOut("timer_Pogoda_timeout", "runScript('Pogoda_Ufa');", 2);

     return; 
} 

// температура сейчас
$temp=$xml->weather->day->day_part->temperature;
    if (date('G')==13) {sg("YandexUfa.Temp13h",$temp);}
    if (date('G')==21) {sg("YandexUfa.Temp21h",$temp);}
    $temp = getTempSign($temp); // Если значение температуры положительно, для наглядности добавляем "+"

// сохраняем основные параметры текущей погоды
sg("YandexUfa.City",$xml->weather->day->title);
sg("YandexUfa.Temp",$temp);
sg("YandexUfa.Type",$xml->weather->day->day_part->weather_type);
sg("YandexUfa.Pressure",$xml->weather->day->day_part->pressure);
// Влажность
sg("YandexUfa.Humidity",$xml->weather->day->day_part->dampness);
sg("YandexUfa.WindSpeed",$xml->weather->day->day_part->wind_speed);
sg("YandexUfa.Image",$xml->weather->day->day_part->image);
sg("YandexUfa.Image2",$xml->weather->day->day_part->{'image-v3'});



// Направление ветра
sg("YandexUfa.WindDir",$xml->weather->day->day_part->wind_direction);
    
// Солнце: восход/закат
    sg("YandexUfa.SunRise",$xml->weather->day->sun_rise);
    sg("YandexUfa.SunSet",$xml->weather->day->sunset);
    $DayStart = explode(":",gg("YandexUfa.SunRise"));
    $DayEnd = explode(":",gg("YandexUfa.SunSet"));
    $h_start = (int)$DayStart[0];
    $m_start = (int)$DayStart[1];
    $h_end = (int)$DayEnd[0];
    $m_end = (int)$DayEnd[1];

    $dh = $h_end - $h_start;
    $dm = $m_end - $m_start;

    if ($dm<0){
    $dh=$dh-1;
    $dm=$dm+60;
    }
    sg("YandexUfa.LongTag","$dh:$dm");

// длинный текстовый прогноз погоды
//    $metcast="";
    $metcast="На улице ".gg("YandexUfa.Type").".";
    // ветер
    $WindSpeed=(float)gg("YandexUfa.WindSpeed");
    if ($WindSpeed<1) { $metcast.=' Ветра, скорее всего, нет.';
    } elseif ($WindSpeed<3) { $metcast.=' Возможен слабый ветер.';
    } elseif ($WindSpeed<8) { $metcast.=' Возможен умеренный ветер.';
    } elseif ($WindSpeed<13) { $metcast.=' Возможен сильный ветер.';
    } elseif ($WindSpeed<20) { $metcast.=' Возможен довольно сильный ветер.';
    } elseif ($WindSpeed<28) { $metcast.=' Возможен штормовой ветер.';
    } else { $metcast.=' Ветер очень очень сильный, УРАГАН, ';
    }
    //$metcast.= gg("YandexUfa.WindDirText");
    
$w=round(strip_tags(gg("YandexUfa.Temp")));
$tempw=$w;

if($w < "0"){ $tempw=abs($w); }
if($w > "0"){ $templus=" плюс "; }

if($tempw >= 11 and $tempw <= 14){ $tempcels=" градусов";}
else{
while ($tempw > 9){
$tempw=$tempw-10;
}

if($tempw == 0 or $tempw >= 5 and $tempw <= 9){ $tempcels=" градусов"; }
if($tempw == 1){ $tempcels=" градус"; } 
if($tempw >= 2 and $tempw <= 4){ $tempcels=" градуса"; }
}
$metcast2.=$metcast;
    $metcast.=' Температура '.gg("YandexUfa.Temp").' '.$tempcels.'.';
    $tm=(float)gg("YandexUfa.Temp");
    if ($tm<-40)       { $metcast.=' Мы морозов не боимся!';
    } elseif ($tm<-30) { $metcast.=' Очень холодно, оденьтесь теплее.';
    } elseif ($tm<-20) { $metcast.=' Самое время есть мороженое.';
    } elseif ($tm<-10) { $metcast.=' Холодновато.';
    } elseif ($tm<-3)  { $metcast.=' Не особо холодно.';
    } elseif ($tm<3)   { $metcast.=' Значит, возможно, гололёд.';
    } elseif ($tm<10)  { $metcast.=' Тепловато.';
    } elseif ($tm<25)  { $metcast.=' Тепло.';
    } elseif ($tm<30)  { $metcast.=' Жарко.';
    } elseif ($tm>30)  { $metcast.=' Ташкент.';
    } 
$metcast2.=' Давление '.gg("YandexUfa.Pressure").' мм рт.ст.';
$metcast2.=' Влажность '.gg("YandexUfa.Humidity").' &#37';

    sg('YandexUfa.metcast',$metcast2);
    $metcast.=' Восход солнца сегодня в '.gg("YandexUfa.SunRise").',';
    $metcast.=' закат в '.gg("YandexUfa.SunSet").'.';
    $metcast.=' долгота дня '.getGlobal('YandexUfa.LongTag').'.';    
    sg('YandexUfa.WeatherDnes',$metcast);
/////-------------------///

//Дата и время последнего обновления
sg("YandexUfa.UpdatedTime", date( "H:i", time()));
sg("YandexUfa.updatedDateTime", date( "H:i - d.m.Y", time()));
say('Погода обновлена',0);

// КОНЕЦ ОСНОВНОГО БЛОКА
// Функция - добавления "+" к положительной температуре
function getTempSign($temp)
{
    $temp = (int)$temp;
    return $temp > 0 ? '+'.$temp : $temp;
}

// Функция - получить направления ветра в МАССИВ
function getWindDirection($wind)
{
    $wind = (string)$wind;
    $wind_direction = array('s'=>'&#8593; ю',
                            'n'=>'&#8595; с',
                            'w'=>'&#8594; з',
                            'e'=>'&#8592; в',
                            'sw'=>'&#8599; юз',
                            'se'=>'&#8598; юв',
                            'nw'=>'&#8600; сз',
                            'ne'=>'&#8601; св');
 
     $wind_dirtxt = array('s'=>'южный',
                         'n'=>'северный',
                         'w'=>'западный',
                         'e'=>'восточный',
                         'sw'=>'юго-западный',
                         'se'=>'юго-восточный',
                         'nw'=>'северо-западный',
                         'ne'=>'северо-восточный');
 
 return array ($wind_direction[$wind], $wind_dirtxt[$wind]);
}
// Функция - получить локализованный день недели
function getDayDate($date)
{
    $date = strtotime($date);
//    $months = array('','января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
    $days = array('ВС','ПН', 'ВТ', 'СР', 'ЧТ', 'ПТ', 'СБ');
//    return $days[date('w', $date)].', '.(int)date('d',$date).' '.$months[date('n', $date)].' '.date('y',$date).' г.';
     return $days[date('w', $date)];
} 
За это сообщение автора DiArt поблагодарили (всего 2):
ipz (Пт май 20, 2016 10:53 pm) • Gelezako (Пт июн 10, 2016 4:00 pm)
Рейтинг: 2.33%
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Погода от Яндекс"

Сообщение nick7zmail » Пн май 23, 2016 6:52 am

DiArt писал(а):Как и обещал мой скрипт который вытягивает ТЕКУЩУЮ погоду с яндекса. Может кому и пригодится:
Меняем YandexUfa на свой город, и меняем runScript('Pogoda_Ufa'); на название своего скрипта
В вытягивании текущей погоды не особо смысл есть...иногда достаточно взглянуть в окно, даже без датчиков, учитывая что временами когда яндекс говорит - ясно, за окном уже гроза =D...

Тут вся фишка в прогнозе была))) Прогноз яндекс больше отдавать не хочет. На гисметео - только 3 дня (и то не 3 дня, а текущая погода/ночь первого дня и день/ночь второго дня). Опенвэзер уже говорили что не сильно радует точностью, что расстраивает (кстати странно, раньше думал что опенвэзер чуть ли не самый правильный, т.к. множество погодных станций подулючено, да + каждый свои может подрубить). Гугл берет погоду wether.com. Но они прогнозы в бесплатной версии только на 3 дня дают (можно заморочится, написать модуль для вытягивания, но есть ли смысл?). Яндекс, как я понял берет с Foreca. Вроде как там тоже какой-то api есть, пока не смотрел.

Дак вот вопрос - среди нас метеорологов нет?))) Может можно какими-то стандартными функциями из, скажем, давления, температуры и влажности прогнозировать погоду, хотя бы на ближайшее время? Никто такой фигнёй не заморачивался?)))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
DiArt
Сообщения: 210
Зарегистрирован: Пт апр 12, 2013 2:27 pm
Откуда: Уфа
Благодарил (а): 28 раз
Поблагодарили: 16 раз

Re: Модуль "Погода от Яндекс"

Сообщение DiArt » Пн май 23, 2016 4:25 pm

nick7zmail писал(а): В вытягивании текущей погоды не особо смысл есть...иногда достаточно взглянуть в окно, даже без датчиков, учитывая что временами когда яндекс говорит - ясно, за окном уже гроза =D...

Тут вся фишка в прогнозе была))) Прогноз яндекс больше отдавать не хочет. На гисметео - только 3 дня (и то не 3 дня, а текущая погода/ночь первого дня и день/ночь второго дня).
Можно попробовать вытаскивать при помощи регулярок напрямую с сайта погоды яндекса https://pogoda.yandex.ru/ufa/ или гисметео https://www.gismeteo.ru/city/weekly/4588/. не xml, а именно разбор сайта через веб-переменные, но лучше через средства php чтобы не дергать один и тот же сайт по нескольку раз вытаскивая разные значения (1 раз температуру, 1 раз влажность и т.д.)
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль "Погода от Яндекс"

Сообщение Gelezako » Пт июн 10, 2016 4:00 pm

а можно этот новый скрипт в виде модкля сделать ? А то не ясно как его использовать в majordomo ?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Ответить