[Модуль] Yandex.Traffic (app_yatraffic)
Модератор: immortal
- andrey040670
- Сообщения: 473
- Зарегистрирован: Пн июл 31, 2017 10:00 pm
Re: [Модуль] Yandex.Traffic (app_yatraffic)
Ага, было бы не плохо.
MJD alfa: Khadas VIM1 Ubuntu 18.04.2 LTS (bionic) Linux 4.9.241 #33 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) 6.1.68-v8+ #1708 aarch64 GNU/Linux
MJD alfa: AS-604T-F284 (ADM 3.5.9.RWM1) 3.12.20 #1 x86_64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) 6.1.68-v8+ #1708 aarch64 GNU/Linux
MJD alfa: AS-604T-F284 (ADM 3.5.9.RWM1) 3.12.20 #1 x86_64 GNU/Linux
Re: [Модуль] Yandex.Traffic (app_yatraffic)
Да, видимо сломалось, потому как ссылка на выбор регионов яндекса уже ведет в никуда https://yandex.ru/yaca/geo.c2n редирект на https://yandex.ru/support/nick7zmail писал(а): Ср янв 22, 2020 6:43 amТам есть автоматическое определение региона...раньше работало, как часы...но оно не сбрасывало, если регион вручную перебить....ща, возможно, что то сломалось...могу его выключить.S_Nick писал(а): Вт янв 21, 2020 11:39 pm Модуль периодически сбрасывает прописаный в настройках регион, меняет, в моем случае, на какое-то "Сасово"). Как лечить?
Поэтому нужно либо починить авто-выбор региона, либо отключить.
Может также будет полезен мой вариант реализации через сценарий:
yandexTraffic
Код: Выделить всё
if (isset($params["level"])) $level = $params["level"]; else $level = 1;
if (!isOnline('Internet')) { say("Нет доступа в Интернет!", $level); return; }
if (isset($params["change"])) $change = $params["change"];
$region = 157; //Минск
$traffic_url = "https://export.yandex.ru/bar/reginfo.xml?region=" . $region;
$xml = simplexml_load_file($traffic_url); // раскладываем xml на массив
//print_arr($xml);
$ret = "Дорожная ситуация: ";
if ($xml) {
$traffic_level = $xml->traffic->region->level;
if ($traffic_level) {
$traffic_hint = $xml->traffic->region->hint;
if ($traffic_hint) {
$ret .= $traffic_hint . ". ";
sg("ThisComputer.yandexTrafficHint", $traffic_hint);
}
$traffic_icon = $xml->traffic->region->icon;
if ($traffic_icon) {
sg("ThisComputer.yandexTrafficIcon", $traffic_icon);
}
$ball = "баллов";
if ($traffic_level == 0) $ball = "баллов";
if ($traffic_level == 1) $ball = "балл";
if ($traffic_level == 2) $ball = "балла";
if ($traffic_level == 3) $ball = "балла";
if ($traffic_level == 4) $ball = "балла";
if ($traffic_level == 5) $ball = "баллов";
if ($traffic_level == 6) $ball = "баллов";
if ($traffic_level == 7) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 8) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 9) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 10) $ball = "баллов. Лучше сидеть дома";
$ret .= "Уровень пробок сейчас " . $traffic_level . " " . $ball . ". ";
if ($change) {
$ret = "";
if ($traffic_level == 0) $ball = "баллов";
if ($traffic_level == 1) $ball = "балла";
if ($traffic_level == 2) $ball = "баллов";
if ($traffic_level == 3) $ball = "баллов";
if ($traffic_level == 4) $ball = "баллов";
if ($traffic_level == 5) $ball = "баллов";
if ($traffic_level == 6) $ball = "баллов";
if ($traffic_level == 7) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 8) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 9) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level == 10) $ball = "баллов. Лучше сидеть дома";
if ($traffic_level < gg("ThisComputer.yandexTrafficLevel")) {
$ret = "Уровень пробок на дорогах снизился до " . $traffic_level . " " . $ball . ". ";
$ret .= $traffic_hint . ". ";
}
if ($traffic_level > gg("ThisComputer.yandexTrafficLevel")) {
$ret = "Уровень пробок на дорогах возрос до " . $traffic_level . " " . $ball . ". ";
$ret .= $traffic_hint . ". ";
}
}
sg("ThisComputer.yandexTrafficLevel", $traffic_level);
} else {
$ret .= "Данные не получены. ";
}
} else {
$ret .= "Данные не получены. ";
}
$ret = trim($ret);
if ($ret) {
say($ret, $level);
echo "<br>" . $ret;
}
Код: Выделить всё
runScript("yandexTraffic", array("change"=>"1")); //Проверка изменились ли пробки
Re: [Модуль] Yandex.Traffic (app_yatraffic)
Аналогично и у меня.S_Nick писал(а): Вт янв 21, 2020 11:39 pm Модуль периодически сбрасывает прописаный в настройках регион, меняет, в моем случае, на какое-то "Сасово"). Как лечить?
Re: [Модуль] Yandex.Traffic (app_yatraffic)
У меня тоже, замучился каждый день руками вбивать.S_Nick писал(а): Вт янв 21, 2020 11:39 pm Модуль периодически сбрасывает прописаный в настройках регион, меняет, в моем случае, на какое-то "Сасово"). Как лечить?
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
Re: [Модуль] Yandex.Traffic (app_yatraffic)
Ровно страницу назад.
Re: [Модуль] Yandex.Traffic (app_yatraffic)
Re: [Модуль] Yandex.Traffic (app_yatraffic)
Здравствуйте. подскажите, как победить автоматическую смену города на Сасово?
Моё: Orange Pi Zero H2 + DietPi / Paspberry Pi3b + MJD 3.41
Re: [Модуль] Yandex.Traffic (app_yatraffic)
Автор обещал исправить, но пока дело не двинулось, на сколько мне известно.pasha413 писал(а): Вс фев 02, 2020 10:08 am Здравствуйте. подскажите, как победить автоматическую смену города на Сасово?
Re: [Модуль] Yandex.Traffic (app_yatraffic)
Мой вариант решения с подсказки "SmoKE_xDDD"pasha413 писал(а): Вс фев 02, 2020 10:08 am Здравствуйте. подскажите, как победить автоматическую смену города на Сасово?
Меняем код в методе update
Код: Выделить всё
/*
include_once(DIR_MODULES."app_yatraffic/app_yatraffic.class.php");
$app_yatraffic=new app_yatraffic();
$app_yatraffic->get_traffic(gg("yt_settings.reg_id"));
*/
//Регион
$myRegion = '213'; // пишем свой регион
//Получаем данные от Яндекса
$getYandex = simplexml_load_string(file_get_contents('https://export.yandex.ru/bar/reginfo.xml?region='.$myRegion));
$getYandex = json_decode(json_encode($getYandex), TRUE);
//Уровень пробок от 1 до 9
$trafficBall = $getYandex["traffic"]["region"]["level"];
sg("yt_info.level",$trafficBall);
//Текстовый статус, зеленый, желтый, красный (На инглише)
$trafficColor = $getYandex["traffic"]["region"]["icon"];
sg("yt_info.icon",$trafficColor);
sg('yt_info.color_level','<font color='.$trafficColor.'>'.gg('yt_info.level').'</font>');
//Текстовое оповещение - Дороги почти свободны
$trafficText = $getYandex["traffic"]["region"]["hint"][0];
sg("yt_info.val",$trafficText);
//Время последнего обновления
$trafficTime = $getYandex["traffic"]["region"]["time"];
sg("yt_info.time",$trafficTime);
//
$trafficTend = $getYandex["traffic"]["region"]["tend"];
sg("yt_info.tend",$trafficTend);
//Название города
$trafficSity = $getYandex["region"]["title"];
sg("yt_info.city_title",$trafficSity);в конце
Код: Выделить всё
callMethodSafe('yt_info'.'.'.'update');Если модуль поправят, можно оперативно все вернуть.
Re: [Модуль] Yandex.Traffic (app_yatraffic)
спасибо, помоглоkas5858 писал(а): Пн фев 03, 2020 7:29 pmМой вариант решения с подсказки "SmoKE_xDDD"pasha413 писал(а): Вс фев 02, 2020 10:08 am Здравствуйте. подскажите, как победить автоматическую смену города на Сасово?
Меняем код в методе updateВ методе onNewHour обьекта ClockChimeКод: Выделить всё
/* include_once(DIR_MODULES."app_yatraffic/app_yatraffic.class.php"); $app_yatraffic=new app_yatraffic(); $app_yatraffic->get_traffic(gg("yt_settings.reg_id")); */ //Регион $myRegion = '213'; // пишем свой регион //Получаем данные от Яндекса $getYandex = simplexml_load_string(file_get_contents('https://export.yandex.ru/bar/reginfo.xml?region='.$myRegion)); $getYandex = json_decode(json_encode($getYandex), TRUE); //Уровень пробок от 1 до 9 $trafficBall = $getYandex["traffic"]["region"]["level"]; sg("yt_info.level",$trafficBall); //Текстовый статус, зеленый, желтый, красный (На инглише) $trafficColor = $getYandex["traffic"]["region"]["icon"]; sg("yt_info.icon",$trafficColor); sg('yt_info.color_level','<font color='.$trafficColor.'>'.gg('yt_info.level').'</font>'); //Текстовое оповещение - Дороги почти свободны $trafficText = $getYandex["traffic"]["region"]["hint"][0]; sg("yt_info.val",$trafficText); //Время последнего обновления $trafficTime = $getYandex["traffic"]["region"]["time"]; sg("yt_info.time",$trafficTime); // $trafficTend = $getYandex["traffic"]["region"]["tend"]; sg("yt_info.tend",$trafficTend); //Название города $trafficSity = $getYandex["region"]["title"]; sg("yt_info.city_title",$trafficSity);
в концеВ настройках модуля убрать частоту обновления.Код: Выделить всё
callMethodSafe('yt_info'.'.'.'update');
Если модуль поправят, можно оперативно все вернуть.
Моё: Orange Pi Zero H2 + DietPi / Paspberry Pi3b + MJD 3.41