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

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

Модератор: immortal

AndreyK
Сообщения: 64
Зарегистрирован: Пн сен 04, 2017 10:28 pm
Благодарил (а): 14 раз
Поблагодарили: 5 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение AndreyK » Сб мар 06, 2021 9:32 am

diver писал(а):
Чт янв 28, 2021 7:22 pm
Dimonopera писал(а):
Чт янв 28, 2021 6:16 pm
Тут дело каждого конечно. Мне по факту не обязательно, чтоб был прогноз на несколько дней. Актуальная погода чтоб обновлялась примерно каждый час и при изменении погоды, чтоб Алиса информировала голосом. Я был бы доволен как слон)))
Тогда вам вполне подойдет php скрипт, который можно добавить в Сценарии и запускать, тем или иным способом. И никаких API key не надо.
https://connect.smartliving.ru/profile/ ... ariya.html
Да и прикрутить к Алисе это не проблема.
Добрый день. А куда закинить анимированные иконки? Поделитесь пожалуста html для встраивания на сцену который показан на примере-скриншоте.
Аватара пользователя
dimaxus
Сообщения: 6
Зарегистрирован: Сб мар 28, 2020 2:15 pm
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение dimaxus » Чт мар 11, 2021 6:37 pm

Михря писал(а):
Пт янв 08, 2021 2:48 pm
чет мне надоела двух месячная борьба с модулем.
сделал парсесер export.yandex.ru/bar/reginfo.xml

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

function getinfoDataXml($city = 213) {
    $info = array();
    $cache_file = $_SERVER['DOCUMENT_ROOT']."/cached/weather.txt";
    $url='http://export.yandex.ru/bar/reginfo.xml?region='.$city.'.xml';
     $ch = curl_init($url);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     $data = curl_exec($ch);
     curl_close($ch);
     file_put_contents($cache_file, $data);
     $buf = file_get_contents($url);
     if ($buf) file_put_contents($cache_file, $buf);

    $xml = simplexml_load_file($cache_file);
    $info['temp'] = $xml->weather->day->day_part[0]->temperature;
    $info['image'] = $xml->weather->day->day_part[0]->image;
    $info['image'] = str_replace("https://yastatic.net/weather/i/icons/blueye/24/", '/cms/scenes/new/icons/', $info['image']);
    $info['image'] = str_replace("png", "svg", $info['image']);
    $info['weather_type'] = $xml->weather->day->day_part[0]->weather_type;
    $info['level']= $xml->traffic->region->level;
    $info['icon']= $xml->traffic->region->icon;
    $info['hint lang']= $xml->traffic->region->hint[0];
    return $info;
}
$info = getinfoDataXml();
sg("weather.temp",$info['temp']);
sg("weather.image",$info['image']);
sg("weather.weather_type",$info['weather_type']);

sg("probki.level",$info['level']);
sg("probki.icon",$info['icon']);
sg("probki.hintlang",$info['hint lang']);
сносим к хренам яндекс.пробки и яндекс.погоду, функцию запихиваем в cron на каждые 15 мин. в переменной $city = 213, указываем код своего региона, создаем два объект probki и weather со свойствами из функции. архив с иконками распаковываем и закидываем /cms/scenes/new/icons/, ну или меняем на свой путь.
Добрый вечер всем. Уважаемый Михря вчера перестал работать ваш парсер , хотя последние 3 месяца прекрасно работал. Может что в Яндексе изменили, как проверить, подправить? Или проблема только у меня?
Garik908
Сообщения: 56
Зарегистрирован: Пт ноя 01, 2019 9:58 am
Благодарил (а): 44 раза
Поблагодарили: 2 раза

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение Garik908 » Вт апр 13, 2021 6:03 pm

Михря писал(а):
Пт янв 08, 2021 2:48 pm
чет мне надоела двух месячная борьба с модулем.
сделал парсесер export.yandex.ru/bar/reginfo.xml
Как можно настроить погоду на винде?
papant
Сообщения: 5
Зарегистрирован: Вт сен 26, 2017 1:30 pm
Благодарил (а): 0
Поблагодарили: 7 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение papant » Ср май 05, 2021 9:48 pm

dimaxus писал(а):
Чт мар 11, 2021 6:37 pm
Добрый вечер всем. Уважаемый Михря вчера перестал работать ваш парсер , хотя последние 3 месяца прекрасно работал. Может что в Яндексе изменили, как проверить, подправить? Или проблема только у меня?
Тоже попробовал тем парсером содрать погоду - не получилось, походу яндекс стал бороться с роботами и по тому адресу стало невозможно спарсить данные, по крайней мере у меня не получилось )
В меру своих возможностей, а они у меня весьма скудные, сделал свой парсер, если оптимизируете код и наведете в нем красоту буду благодарен, я пользуюсь как есть )
Вот код, который надо положить в скрипты и запускать по таймеру раз в час например:

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

    $city = 41; // поменять на свой
    $url= 'https://yandex.ru/pogoda/' . $city;
    $str = file_get_contents($url);
    $dom = phpQuery::newDocument($str);
  // считываем данные на несколько дней вперед
   foreach($dom->find(".forecast-briefly__day-link") as $key => $value){
  // Преобразуем dom объект в объект phpQuery.
  //Делаем сие действие с помощью метода pq(); который является аналогом ($) в jQuery.
    $pq = pq($value);
  // Находим в этом элементе элементы 
    $day[$key]["day"] = $pq->find(".forecast-briefly__name")->text();
    $day[$key]["time"] = $pq->find(".forecast-briefly__date")->text();
    $day[$key]["icon"] = $pq->find(".forecast-briefly__icon")->attr('src');  
    $day[$key]["temp_day"] = $pq->find(".forecast-briefly__temp_day .temp__value")->text();
    $day[$key]["temp_night"] = $pq->find(".forecast-briefly__temp_night .temp__value")->text();
    $day[$key]["condition"] = $pq->find(".forecast-briefly__condition")->text();
   }
	// заменить 10 на количество дней, за которые хотите иметь погоду
    for ($i = 1; $i <= 10; $i++) {
    // все глобальные свойства ниже создадутся автоматически, необходимо создать только weather
     	sg("weather.day".$i,$day[$i]["day"] );
   		sg("weather.time".$i,$day[$i]["time"] );
        $day[$i]["icon"] = str_replace("//yastatic.net/weather/i/icons/funky/dark/", '/cms/scenes/new/icons/', $day[$i]["icon"]);
        $day[$i]["icon"] = str_replace("png", "svg", $day[$i]["icon"]);
		sg("weather.icon".$i,$day[$i]["icon"] );
        sg("weather.temp_day".$i,$day[$i]["temp_day"] );
		sg("weather.temp_night".$i,$day[$i]["temp_night"] );
		sg("weather.condition".$i,$day[$i]["condition"] );
    }
  //считываем данные за текущий день  
    $pq=pq($dom->find(".fact") );
    $fact["temp"] = $pq->find(".fact__temp-wrap .link .fact__temp .temp__value")->text();
    $fact["icon"] = $pq->find(".fact__temp-wrap .link .icon")->attr('src');  
    $fact["feel"] = $pq->find(".fact__temp-wrap .link .link__feelings .term .term__value")->text();
    $fact["wind"] = $pq->find(".fact__props .fact__wind-speed .term__value .wind-speed")->text();
    $fact["wind_word"] = $pq->find(".fact__props .fact__wind-speed .term__value")->attr('aria-label'); 
	$fact["wind_dir"] = $pq->find(".fact__props .fact__wind-speed .term__value .fact__unit .icon-abbr")->text();
    $fact["hum"] = $pq->find(".fact__props .fact__humidity .term__value ")->text(); 
    $fact["hum_word"] = $pq->find(".fact__props .fact__humidity .term__value ")->attr('aria-label'); 
	$fact["press"] = $pq->find(".fact__props .fact__pressure .term__value")->text();
    $fact["press_word"] = $pq->find(".fact__props .fact__pressure .term__value")->attr('aria-label'); 

    $fact["icon"] = str_replace("//yastatic.net/weather/i/icons/funky/light/", '/cms/scenes/new/icons/', $fact["icon"]);
    $fact["icon"] = str_replace("png", "svg", $fact["icon"]);
  
//соберем погоду по часам
    $i=0; //счетчик
    foreach($dom->find(".fact__hour") as $key => $value){
      $pq = pq($value);
      if (substr($pq->find(".fact__hour-elem .fact__hour-label")->text(),-3)==":00"   ) { //если время заканчивается на целый час
       	// то сохраним в массив, иначе это было время восхода/заката и это включать в массив не будем
      	$hours[$i]["time"] = $pq->find(".fact__hour-elem .fact__hour-label")->text();
      	$hours[$i]["icon"]= $pq->find(".fact__hour-elem .icon")->attr('src');
      	$hours[$i]["temp"]= $pq->find(".fact__hour-elem .fact__hour-temp")->text();
      	$i=$i+1;//увеличим счетчик
      } 
     }

	$j=0;//счетчик
    for ($i = 0; $i <= count($hours); $i+=6) { //выведем только кажый 6-ой час
   	    $hours[$i]["icon"]= str_replace("//yastatic.net/weather/i/icons/funky/flat/", '/cms/scenes/new/icons/', $hours[$i]["icon"]);
    	$hours[$i]["icon"] = str_replace("png", "svg", $hours[$i]["icon"]);
		sg("weather.hour_time".$j,$hours[$i]["time"] );
     	sg("weather.hour_icon".$j,$hours[$i]["icon"] );
     	sg("weather.hour_temp".$j,$hours[$i]["temp"] );
        $j+=1;
    } 

    sg("weather.fact_temp",$fact["temp"] );
    sg("weather.fact_icon",$fact["icon"] );
	sg("weather.fact_feel",$fact["feel"] );
    sg("weather.fact_wind",$fact["wind"] );
    sg("weather.fact_wind_word",$fact["wind_word"] );
    sg("weather.fact_wind_dir",$fact["wind_dir"] );
    sg("weather.fact_hum",$fact["hum"] );
	sg("weather.fact_hum_word",$fact["hum_word"] );
	sg("weather.fact_press",$fact["press"] );
	sg("weather.fact_press_word",$fact["press_word"] );


	// заменить 10 на количество необходимых прогнозируемых дней
    for ($i = 1; $i <= 10; $i++) {
    // все глобальные свойства ниже создадутся автоматически, необходимо создать только weather
     	sg("weather.day".$i,$day[$i]["day"] );
   		sg("weather.time".$i,$day[$i]["time"] );
        $day[$i]["icon"] = str_replace("//yastatic.net/weather/i/icons/funky/dark/", '/cms/scenes/new/icons/', $day[$i]["icon"]);
        $day[$i]["icon"] = str_replace("png", "svg", $day[$i]["icon"]);
		sg("weather.icon".$i,$day[$i]["icon"] );
        sg("weather.temp_day".$i,$day[$i]["temp_day"] );
		sg("weather.temp_night".$i,$day[$i]["temp_night"] );
		sg("weather.condition".$i,$day[$i]["condition"] );
    }

   //восход, закат
	$sunrise=pq($dom->find(".sun-card__sunrise-sunset-info_value_rise-time") );
	$sunrise=substr($sunrise->text() , -5); //нужны только последние 5 символов
    $sunset =pq($dom->find(".sun-card__sunrise-sunset-info_value_set-time") );
	$sunset=substr($sunset->text(), -5); //нужны только последние 5 символов
	sg("weather.sunrise",$sunrise);
	sg("weather.sunset",$sunset);
    sg("weather.updated", date('l jS \of F Y h:i:s A'));


Вложения
изображение_2021-05-05_214514.png
пример
изображение_2021-05-05_214514.png (654.2 КБ) 2892 просмотра
За это сообщение автора papant поблагодарили (всего 7):
mer (Ср май 05, 2021 10:05 pm) • Sergey.Chek (Ср май 05, 2021 10:09 pm) • ZyaK (Пт май 07, 2021 1:30 pm) • e.shok (Пт май 07, 2021 8:29 pm) • Smart111 (Пт май 21, 2021 1:03 am) • dimaxus (Вс июн 13, 2021 9:58 am) • Dmitry (Вс дек 11, 2022 10:45 pm)
Рейтинг: 8.14%
markovrv
Сообщения: 33
Зарегистрирован: Пт апр 28, 2017 9:10 pm
Благодарил (а): 22 раза
Поблагодарили: 16 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение markovrv » Ср май 12, 2021 11:22 pm

Я тоже в меру своих возможностей / потребностей поработал с АПИ Яндекса. Вот сценарий:

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

$opts = array(
  'http'=>array(
      'method'=>"GET",
      'header'=>"X-Yandex-API-Key: %ВАШ КЛЮЧ ЯНДЕКС ПОГОДЫ%"
));
\\ в переменные ниже записать ваши координаты
$lat = '';
$lon = '';
$context = stream_context_create($opts);
$dataJSON = file_get_contents('https://api.weather.yandex.ru/v2/informers?lat='.$lat.'&lon='.$lon, false, $context);
if($dataJSON) {
	sg('yw.json', $dataJSON);
	$data = json_decode($dataJSON);
    sg('yw.icon', $data->fact->icon);
	sg('yw.feels_like', $data->fact->feels_like);
	sg('yw.temp', $data->fact->temp);
	sg('yw.wind_speed', $data->fact->wind_speed);
	sg('yw.condition', $data->fact->condition);
}
Запускать не более 50 раз в сутки. Предварительно в объектах нужно создать пустой объект yw.
Вся дополнительная информация по прогнозу будет в yw.json, мне она не нужна.
Здесь полное описание получаемых данных: https://yandex.ru/dev/weather/doc/dg/co ... -info.html
За это сообщение автора markovrv поблагодарили (всего 2):
xor (Чт май 13, 2021 1:56 am) • astotskiy (Сб май 15, 2021 7:48 pm)
Рейтинг: 2.33%
astotskiy
Сообщения: 42
Зарегистрирован: Вт июл 15, 2014 4:28 pm
Благодарил (а): 78 раз
Поблагодарили: 4 раза

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение astotskiy » Сб май 15, 2021 8:35 pm

markovrv писал(а):
Ср май 12, 2021 11:22 pm
Я тоже в меру своих возможностей / потребностей поработал с АПИ Яндекса. Вот сценарий:

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

$opts = array(
  'http'=>array(
      'method'=>"GET",
      'header'=>"X-Yandex-API-Key: %ВАШ КЛЮЧ ЯНДЕКС ПОГОДЫ%"
));
\\ в переменные ниже записать ваши координаты
$lat = '';
$lon = '';
$context = stream_context_create($opts);
$dataJSON = file_get_contents('https://api.weather.yandex.ru/v2/informers?lat='.$lat.'&lon='.$lon, false, $context);
if($dataJSON) {
	sg('yw.json', $dataJSON);
	$data = json_decode($dataJSON);
    sg('yw.icon', $data->fact->icon);
	sg('yw.feels_like', $data->fact->feels_like);
	sg('yw.temp', $data->fact->temp);
	sg('yw.wind_speed', $data->fact->wind_speed);
	sg('yw.condition', $data->fact->condition);
}
Запускать не более 50 раз в сутки. Предварительно в объектах нужно создать пустой объект yw.
Вся дополнительная информация по прогнозу будет в yw.json, мне она не нужна.
Здесь полное описание получаемых данных: https://yandex.ru/dev/weather/doc/dg/co ... -info.html
День добрый.
работает супер, спасибо за код!
Подскажите плиз, как получить свойство sunrise ?
попробывал sg('yw.sunrise', $data->fact->sunrise); свойство yw.sunrise - пусто.
и еще как полуцить на вечер, утро.
Помогите плиз

Отбой, разобрался, надо оказывается плучать свойства из forecast объекта sg('yw.sunrise', $data->forecast->sunrise);
спасибо.
За это сообщение автора astotskiy поблагодарил:
markovrv (Ср май 26, 2021 10:57 pm)
Рейтинг: 1.16%
Smart111
Сообщения: 68
Зарегистрирован: Сб ноя 18, 2017 1:55 am
Благодарил (а): 25 раз
Поблагодарили: 6 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение Smart111 » Пт май 21, 2021 1:08 am

В меру своих возможностей, а они у меня весьма скудные, сделал свой парсер, если оптимизируете код и наведете в нем красоту буду благодарен, я пользуюсь как есть )
Спасибо большое. Это круто. Вот наконец то я снес это глючный модуль и получаю все данные которые мне нужно. Жаль, только что яндекс дает не такие точные показания, как gismeteo.
astotskiy
Сообщения: 42
Зарегистрирован: Вт июл 15, 2014 4:28 pm
Благодарил (а): 78 раз
Поблагодарили: 4 раза

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение astotskiy » Вс май 23, 2021 9:44 am

papant писал(а):
Ср май 05, 2021 9:48 pm
dimaxus писал(а):
Чт мар 11, 2021 6:37 pm
Добрый вечер всем. Уважаемый Михря вчера перестал работать ваш парсер , хотя последние 3 месяца прекрасно работал. Может что в Яндексе изменили, как проверить, подправить? Или проблема только у меня?
Тоже попробовал тем парсером содрать погоду - не получилось, походу яндекс стал бороться с роботами и по тому адресу стало невозможно спарсить данные, по крайней мере у меня не получилось )
В меру своих возможностей, а они у меня весьма скудные, сделал свой парсер, если оптимизируете код и наведете в нем красоту буду благодарен, я пользуюсь как есть )
Вот код, который надо положить в скрипты и запускать по таймеру раз в час например:

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

    $city = 41; // поменять на свой
    $url= 'https://yandex.ru/pogoda/' . $city;
    $str = file_get_contents($url);
    $dom = phpQuery::newDocument($str);
  // считываем данные на несколько дней вперед
   foreach($dom->find(".forecast-briefly__day-link") as $key => $value){
  // Преобразуем dom объект в объект phpQuery.
  //Делаем сие действие с помощью метода pq(); который является аналогом ($) в jQuery.
    $pq = pq($value);
  // Находим в этом элементе элементы 
    $day[$key]["day"] = $pq->find(".forecast-briefly__name")->text();
    $day[$key]["time"] = $pq->find(".forecast-briefly__date")->text();
    $day[$key]["icon"] = $pq->find(".forecast-briefly__icon")->attr('src');  
    $day[$key]["temp_day"] = $pq->find(".forecast-briefly__temp_day .temp__value")->text();
    $day[$key]["temp_night"] = $pq->find(".forecast-briefly__temp_night .temp__value")->text();
    $day[$key]["condition"] = $pq->find(".forecast-briefly__condition")->text();
   }
	// заменить 10 на количество дней, за которые хотите иметь погоду
    for ($i = 1; $i <= 10; $i++) {
    // все глобальные свойства ниже создадутся автоматически, необходимо создать только weather
     	sg("weather.day".$i,$day[$i]["day"] );
   		sg("weather.time".$i,$day[$i]["time"] );
        $day[$i]["icon"] = str_replace("//yastatic.net/weather/i/icons/funky/dark/", '/cms/scenes/new/icons/', $day[$i]["icon"]);
        $day[$i]["icon"] = str_replace("png", "svg", $day[$i]["icon"]);
		sg("weather.icon".$i,$day[$i]["icon"] );
        sg("weather.temp_day".$i,$day[$i]["temp_day"] );
		sg("weather.temp_night".$i,$day[$i]["temp_night"] );
		sg("weather.condition".$i,$day[$i]["condition"] );
    }
  //считываем данные за текущий день  
    $pq=pq($dom->find(".fact") );
    $fact["temp"] = $pq->find(".fact__temp-wrap .link .fact__temp .temp__value")->text();
    $fact["icon"] = $pq->find(".fact__temp-wrap .link .icon")->attr('src');  
    $fact["feel"] = $pq->find(".fact__temp-wrap .link .link__feelings .term .term__value")->text();
    $fact["wind"] = $pq->find(".fact__props .fact__wind-speed .term__value .wind-speed")->text();
    $fact["wind_word"] = $pq->find(".fact__props .fact__wind-speed .term__value")->attr('aria-label'); 
	$fact["wind_dir"] = $pq->find(".fact__props .fact__wind-speed .term__value .fact__unit .icon-abbr")->text();
    $fact["hum"] = $pq->find(".fact__props .fact__humidity .term__value ")->text(); 
    $fact["hum_word"] = $pq->find(".fact__props .fact__humidity .term__value ")->attr('aria-label'); 
	$fact["press"] = $pq->find(".fact__props .fact__pressure .term__value")->text();
    $fact["press_word"] = $pq->find(".fact__props .fact__pressure .term__value")->attr('aria-label'); 

    $fact["icon"] = str_replace("//yastatic.net/weather/i/icons/funky/light/", '/cms/scenes/new/icons/', $fact["icon"]);
    $fact["icon"] = str_replace("png", "svg", $fact["icon"]);
  
//соберем погоду по часам
    $i=0; //счетчик
    foreach($dom->find(".fact__hour") as $key => $value){
      $pq = pq($value);
      if (substr($pq->find(".fact__hour-elem .fact__hour-label")->text(),-3)==":00"   ) { //если время заканчивается на целый час
       	// то сохраним в массив, иначе это было время восхода/заката и это включать в массив не будем
      	$hours[$i]["time"] = $pq->find(".fact__hour-elem .fact__hour-label")->text();
      	$hours[$i]["icon"]= $pq->find(".fact__hour-elem .icon")->attr('src');
      	$hours[$i]["temp"]= $pq->find(".fact__hour-elem .fact__hour-temp")->text();
      	$i=$i+1;//увеличим счетчик
      } 
     }

	$j=0;//счетчик
    for ($i = 0; $i <= count($hours); $i+=6) { //выведем только кажый 6-ой час
   	    $hours[$i]["icon"]= str_replace("//yastatic.net/weather/i/icons/funky/flat/", '/cms/scenes/new/icons/', $hours[$i]["icon"]);
    	$hours[$i]["icon"] = str_replace("png", "svg", $hours[$i]["icon"]);
		sg("weather.hour_time".$j,$hours[$i]["time"] );
     	sg("weather.hour_icon".$j,$hours[$i]["icon"] );
     	sg("weather.hour_temp".$j,$hours[$i]["temp"] );
        $j+=1;
    } 

    sg("weather.fact_temp",$fact["temp"] );
    sg("weather.fact_icon",$fact["icon"] );
	sg("weather.fact_feel",$fact["feel"] );
    sg("weather.fact_wind",$fact["wind"] );
    sg("weather.fact_wind_word",$fact["wind_word"] );
    sg("weather.fact_wind_dir",$fact["wind_dir"] );
    sg("weather.fact_hum",$fact["hum"] );
	sg("weather.fact_hum_word",$fact["hum_word"] );
	sg("weather.fact_press",$fact["press"] );
	sg("weather.fact_press_word",$fact["press_word"] );


	// заменить 10 на количество необходимых прогнозируемых дней
    for ($i = 1; $i <= 10; $i++) {
    // все глобальные свойства ниже создадутся автоматически, необходимо создать только weather
     	sg("weather.day".$i,$day[$i]["day"] );
   		sg("weather.time".$i,$day[$i]["time"] );
        $day[$i]["icon"] = str_replace("//yastatic.net/weather/i/icons/funky/dark/", '/cms/scenes/new/icons/', $day[$i]["icon"]);
        $day[$i]["icon"] = str_replace("png", "svg", $day[$i]["icon"]);
		sg("weather.icon".$i,$day[$i]["icon"] );
        sg("weather.temp_day".$i,$day[$i]["temp_day"] );
		sg("weather.temp_night".$i,$day[$i]["temp_night"] );
		sg("weather.condition".$i,$day[$i]["condition"] );
    }

   //восход, закат
	$sunrise=pq($dom->find(".sun-card__sunrise-sunset-info_value_rise-time") );
	$sunrise=substr($sunrise->text() , -5); //нужны только последние 5 символов
    $sunset =pq($dom->find(".sun-card__sunrise-sunset-info_value_set-time") );
	$sunset=substr($sunset->text(), -5); //нужны только последние 5 символов
	sg("weather.sunrise",$sunrise);
	sg("weather.sunset",$sunset);
    sg("weather.updated", date('l jS \of F Y h:i:s A'));


День добрый
попробывал ваш скрипт, но при запуске выдает ошибку:

Fatal error: Uncaught Error: Class 'phpQuery' not found in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(164) : eval()'d code:5 Stack trace: #0 C:\_majordomo\htdocs\modules\scripts\scripts.class.php(164): eval() #1 C:\_majordomo\htdocs\lib\common.class.php(426): scripts->runScript('YaWether', Array) #2 C:\_majordomo\htdocs\objects\index.php(183): runScript('YaWether', Array) #3 {main} thrown in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(164) : eval()'d code on line 5

http://192.168.1.15/objects/?script=YaWether
Uncaught Error: Class 'phpQuery' not found in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(164) : eval()'d code:5 Stack trace: #0 C:\_majordomo\htdocs\modules\scripts\scripts.class.php(164): eval() #1 C:\_majordomo\htdocs\lib\common.class.php(426): scripts->runScript('YaWether', Array) #2 C:\_majordomo\htdocs\objects\index.php(183): runScript('YaWether', Array) #3 {main} thrown

помойму нужна какято функция "phpQuery" которую не находит.
ZyaK
Сообщения: 407
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск
Благодарил (а): 45 раз
Поблагодарили: 69 раз

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение ZyaK » Вс май 23, 2021 9:46 am

у меня что то ни один сценарий не заработал или я рукожоп?

с первым скриптом тоже не работает

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

OK
Fatal error: Uncaught Error: Class 'phpQuery' not found in /var/www/html/modules/objects/objects.class.php(646) : eval()'d code:27 Stack trace: #0 /var/www/html/modules/objects/objects.class.php(646): eval() #1 /var/www/html/objects/index.php(133): objects->callMethod('onNewHour', Array) #2 {main} thrown in /var/www/html/modules/objects/objects.class.php(646) : eval()'d code on line 27
Вложения
1.JPG
1.JPG (31.65 КБ) 2519 просмотров
PI2 + MQTT + 5 ESP8266 + Atmega16
astotskiy
Сообщения: 42
Зарегистрирован: Вт июл 15, 2014 4:28 pm
Благодарил (а): 78 раз
Поблагодарили: 4 раза

Re: [Модуль] Погода Яндекс (yandexweather)

Сообщение astotskiy » Вс май 23, 2021 11:06 am

ZyaK писал(а):
Вс май 23, 2021 9:46 am
у меня что то ни один сценарий не заработал или я рукожоп?

с первым скриптом тоже не работает

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

OK
Fatal error: Uncaught Error: Class 'phpQuery' not found in /var/www/html/modules/objects/objects.class.php(646) : eval()'d code:27 Stack trace: #0 /var/www/html/modules/objects/objects.class.php(646): eval() #1 /var/www/html/objects/index.php(133): objects->callMethod('onNewHour', Array) #2 {main} thrown in /var/www/html/modules/objects/objects.class.php(646) : eval()'d code on line 27
Вроде разобрался.
Скачал от сюда https://code.google.com/archive/p/phpquery/downloads файл phpQuery-0.9.5.386-onefile.zip, распоковал его и переименовал в phpQuery.php и закинл его в папку \lib, далее создал в любом классе Обьект с именем "weather" и запустил сценарий.
Автоматом добавились все свойства. Как то так.

Может кто подскажит как распарсить " Вчера в это время +24"
Ответить