[Модуль] Yandex.Traffic (app_yatraffic)

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

Модератор: immortal

Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Пробки от Яндекс"

Сообщение nick7zmail » Вт фев 09, 2016 6:09 am

Avtor писал(а):не отоброжается светофор и балы, нет доступа к иконкам что сделать???
Иконки лежат в /templates/app_yatraffic/icons/. Проверьте есть ли они там. Попробуйте какую-нибудь открыть с сервера по по прямой ссылке. Попробуйте другие браузеры. И скажите что у вас за система хоть?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Пробки от Яндекс"

Сообщение nick7zmail » Вт фев 09, 2016 8:18 am

Avtor писал(а):не отоброжается светофор и балы, нет доступа к иконкам что сделать???
Иконки находятся в /htdocs/templates/app_yatraffic/icons/. Проверьте есть ли они там... Попробуйте через другой браузер открыть, попробуйте открыть иконку напрямую <ip сервера>/templates/app_yatraffic/icons/green.png (вроде так...возможно без /templates/...дома точнее скажу) ... И что у вас за система? Может реально с правами что-то? В линухе часто такое бывает.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 531 раз
Контактная информация:

Re: Модуль "Пробки от Яндекс"

Сообщение Vovix » Вт фев 16, 2016 11:28 am

чего-то с этой темой на форуме!
сколько её не просматривай - она всегда в не прочитанных!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 531 раз
Контактная информация:

Re: Модуль "Пробки от Яндекс"

Сообщение Vovix » Вт фев 16, 2016 11:30 am

что-то не правильно с этой темой! сообщения свои в ней не вижу
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Пробки от Яндекс"

Сообщение nick7zmail » Вт фев 16, 2016 11:34 am

m-malva писал(а): а то после yaWeather module и openweather module
запихивать в onNewHour плохой тон
На счёт openweather не видел, пример как раз с ya_weather брал...а почему плохой тон, если не секрет?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Пробки от Яндекс"

Сообщение nick7zmail » Чт фев 18, 2016 10:51 am

m-malva писал(а): а то после yaWeather module и openweather module
запихивать в onNewHour плохой тон
Почему плохой тон? не видел как в openweather организовано, но пример как раз брал с yaWeather...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Модуль "Пробки от Яндекс"

Сообщение m-malva » Чт фев 18, 2016 11:12 am

nick7zmail писал(а): Почему плохой тон? не видел как в openweather организовано, но пример как раз брал с yaWeather...
После каждого обновления вот такая хрень в onNewHour
лучше модуль вообще туда ничего не писал
СпойлерПоказать

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

//START openweather module
                  $updateTime = gg('ow_setting.updateTime');
                  if($updateTime > 0)
                  {
                     $count = gg('ow_setting.countTime');
                     if($count >= $updateTime)
                     {
                        include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
                        $app_openweather = new app_openweather();
                        $app_openweather->get_weather(gg('ow_city.id'));
                        sg('ow_setting.countTime', 1);
                     }
                     else
                     {
                        $count++;
                        sg('ow_setting.countTime', $count);
                     }
                  }
               // END openweather module//START openweather module
                  $updateTime = gg('ow_setting.updateTime');
                  if($updateTime > 0)
                  {
                     $count = gg('ow_setting.countTime');
                     if($count >= $updateTime)
                     {
                        include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
                        $app_openweather = new app_openweather();
                        $app_openweather->get_weather(gg('ow_city.id'));
                        sg('ow_setting.countTime', 1);
                     }
                     else
                     {
                        $count++;
                        sg('ow_setting.countTime', $count);
                     }
                  }
               // END openweather module//START openweather module
                  $updateTime = gg('ow_setting.updateTime');
                  if($updateTime > 0)
                  {
                     $count = gg('ow_setting.countTime');
                     if($count >= $updateTime)
                     {
                        include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
                        $app_openweather = new app_openweather();
                        $app_openweather->get_weather(gg('ow_city.id'));
                        sg('ow_setting.countTime', 1);
                     }
                     else
                     {
                        $count++;
                        sg('ow_setting.countTime', $count);
                     }
                  }
               // END openweather module//START openweather module
                  $updateTime = gg('ow_setting.updateTime');
                  if($updateTime > 0)
                  {
                     $count = gg('ow_setting.countTime');
                     if($count >= $updateTime)
                     {
                        include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
                        $app_openweather = new app_openweather();
                        $app_openweather->get_weather(gg('ow_city.id'));
                        sg('ow_setting.countTime', 1);
                     }
                     else
                     {
                        $count++;
                        sg('ow_setting.countTime', $count);
                     }
                  }
               // END openweather module//START openweather module
                  $updateTime = gg('ow_setting.updateTime');
                  if($updateTime > 0)
                  {
                     $count = gg('ow_setting.countTime');
                     if($count >= $updateTime)
                     {
                        include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
                        $app_openweather = new app_openweather();
                        $app_openweather->get_weather(gg('ow_city.id'));
                        sg('ow_setting.countTime', 1);
                     }
                     else
                     {
                        $count++;
                        sg('ow_setting.countTime', $count);
                     }
                  }
               // END openweather module//START openweather module
                  $updateTime = gg('ow_setting.updateTime');
                  if($updateTime > 0)
                  {
                     $count = gg('ow_setting.countTime');
                     if($count >= $updateTime)
                     {
                        include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
                        $app_openweather = new app_openweather();
                        $app_openweather->get_weather(gg('ow_city.id'));
                        sg('ow_setting.countTime', 1);
                     }
                     else
                     {
                        $count++;
                        sg('ow_setting.countTime', $count);
                     }
                  }
               // END openweather module//START openweather module
                  $updateTime = gg('ow_setting.updateTime');
                  if($updateTime > 0)
                  {
                     $count = gg('ow_setting.countTime');
                     if($count >= $updateTime)
                     {
                        include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
                        $app_openweather = new app_openweather();
                        $app_openweather->get_weather(gg('ow_city.id'));
                        sg('ow_setting.countTime', 1);
                     }
                     else
                     {
                        $count++;
                        sg('ow_setting.countTime', $count);
                     }
                  }
               // END openweather module/* START yaWeather module*/
$updateTime = gg('yw_setting.updateTime');
if($updateTime > 0){
$count = gg('yw_setting.countTime');
    if($count >= $updateTime){
        include_once(DIR_MODULES.'app_yaweather/app_yaweather.class.php');
        $app_yaweather=new app_yaweather();
        $app_yaweather->get_weather(gg('yw_setting.city_id'));
        sg('yw_setting.countTime',1);
    } else {
        $count++;
        sg('yw_setting.countTime',$count);
    }
}/* END yaWeather*/
ученик
Сообщения: 230
Зарегистрирован: Чт фев 12, 2015 2:34 pm
Благодарил (а): 36 раз
Поблагодарили: 6 раз

Re: Модуль "Пробки от Яндекс"

Сообщение ученик » Пт фев 19, 2016 11:00 am

Возникла идея проговаривать время в пути по определенным маршрутам при выходе из дома.
сперва принудительно обновляем с этим нет проблем
Во второй части "марлезонского балета" необходимо получить данные по маршруту.
В меню умного дома есть такая строка которая видимо отрабатывает маршрут [#module name="app_yatraffic" routes="1"#] и есть переменная 'yt_settings.route1' которая содержит маршрут
Видимо надо присвоить некой переменной результат, значение $traff=[#module name="app_yatraffic" routes="getGlobal('yt_settings.route1')"#] но видимо чего то не хватает, не так делается, а как сделать не понятно?
Как запустить модуль с маршрутом и присвоить результат какой то переменной, который отдать Алисе на озвучивание?
В программирование только начал разбираться.
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Пробки от Яндекс"

Сообщение nick7zmail » Пт фев 19, 2016 5:05 pm

m-malva писал(а): После каждого обновления вот такая хрень в onNewHour
лучше модуль вообще туда ничего не писал
Ну openweather не смотрел как устроен, но в YaWeather точно видел проверку на то, есть ли в методе данный код, и если нет, то добавлял. Хотел похожим методом сделать, но оставил это все на откуп пользователей на вкладке помощь, и в описании модуля)). Так что мой модуль в OnNewHour ничего и не пишет.
ученик писал(а): сперва принудительно обновляем с этим нет проблем
Во второй части "марлезонского балета" необходимо получить данные по маршруту.
В меню умного дома есть такая строка которая видимо отрабатывает маршрут [#module name="app_yatraffic" routes="1"#] и есть переменная 'yt_settings.route1' которая содержит маршрут
Видимо надо присвоить некой переменной результат, значение $traff=[#module name="app_yatraffic" routes="getGlobal('yt_settings.route1')"#] но видимо чего то не хватает, не так делается, а как сделать не понятно?
Как запустить модуль с маршрутом и присвоить результат какой то переменной, который отдать Алисе на озвучивание?
В программирование только начал разбираться.
Как раз таки с "принудительно обновить" и вся проблема. С баллами, ситуацией на дорогах тут все просто - через php запрашиваем xml, и разбираем её на данные. Как я и писал - функцию маршрутов добавил экспериментально (пре альфа версия и тп))). Дело всё в том что доступ к яндекс картам и маршрутам осуществляется через javascript (другого способа я не нашел. в xml api нет функции маршрутов...раньше по крайней мере точно не было). javascript исключительно браузерный язык...на стороне сервера отрабатывает только php.
В общем сейчас механизм примерно такой: загружается страница -> запускается javascript -> загружает данные -> отрисовывает их на странице. Я конечно могу сделать последующую загрузку в какое-нибудь свойство, только вот это ничего не даст. Будет отображаться время маршрута загруженное при последнем открытии браузера.
Чтобы запустить javascript нужно извратиться примерно следующим образом. При обновлении параметров пробок - на стороне сервера запустить браузер, в нем открыть страницу с md, выполнится скрипт, запишутся переменные, после этого закрыть браузер. И так при каждом обновлении. Без открытого браузера не получится...

Нормально это все сделать можно лишь когда яндекс догадается в xml запросы включить маршруты. Либо попробовать грузить через другой сервис (на гугле к примеру сейчас вроде тоже пробки кажут...не знаю на сколько достоверно...но кажут...пока не пробовал этим заниматься...

А строка [#module name="app_yatraffic" routes="1"#] всего лишь вызывает модуль. Вместо нее в страницу встраивается html блок с оформлением.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
ученик
Сообщения: 230
Зарегистрирован: Чт фев 12, 2015 2:34 pm
Благодарил (а): 36 раз
Поблагодарили: 6 раз

Re: Модуль "Пробки от Яндекс"

Сообщение ученик » Сб фев 20, 2016 10:37 am

По поводу проговаривания пробок.
Сделал сценарий для того, что бы проговаривал пробки в будни дни перед выходом.
Поставил галки, что бы сценарий выполнялся в будние дни в одно и то же время.
CallMethod('yt_settings.update');// принудительное обновление пробок.
runscript ("mute on");// отключает звук телевизора.
$traffic_jam.=".Пробки на дороге, ".getGlobal('yt_info.level')." Балла, ".getGlobal('yt_info.val');
say($traffic_jam,2); //проговаривает пробки.
sleep(25);// время отключения звука телевизора.
runscript ("mute off");// вкл. звук телевизора.
Но почему то Алиса проговаривает 2 раза, 1 раз сразу( бывает с задержкой) , 2 раз через 25 сек.
Получается что звук выключается и тут же включается.
Ставишь больше время, изменяется время между повторами сообщения , а не время между включением и отключением звука телевизора.
сперва был один сценарий но потом сделал 3 сценария...
Как сделать так, что бы не было повтора?
и как синхронизировать время оповещения и время отключения звука телевизора?

.
server i5, OS-Ubuntu Server 16., 1-wire
php 7, AMS,broadlink rm2,rm3 mini.
Ответить