[Модуль] Курс валют (ExchangeRates)

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

Модератор: immortal

Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль "Курсы валют" (ПриватБанк+Банк России)

Сообщение Gelezako » Чт сен 28, 2017 12:05 am

Profd писал(а):Интересный модуль.
Ткните пожалуйста где найти инструкцию как ставить модули из репозитария ?
https://www.youtube.com/watch?v=wZSfGWj ... EdBGtX084E

Обновление:
- переделал криво работающее (делало дубли записи) автообновление курсов
- добавил ссылку на обучающее виде как настроить озвучивание курсов
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Модуль "Курсы валют" (ПриватБанк+Банк России)

Сообщение directman66 » Пт ноя 24, 2017 10:54 am

Может добавить курс криптовалют? Источников предостаточно.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль "Курсы валют" (ПриватБанк+Банк России)

Сообщение Gelezako » Пт ноя 24, 2017 1:15 pm

не обещаю прям очень быстро, но в принципе можно, кидай ссылки
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Модуль "Курсы валют" (ПриватБанк+Банк России)

Сообщение directman66 » Вс ноя 26, 2017 3:44 pm

я забираю через веэ переменные по формулам:

btc2usd
http://coingain.com/price/btc/rub
<div id="result-USD">\n <input type="text" value="(.+?)" class
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль "Курсы валют" (ПриватБанк+Банк России)

Сообщение Gelezako » Пн ноя 27, 2017 1:00 pm

вы имеете ввиду через раздел "веб переменные"? Попробовал вставить в поле "Шаблон поиска" ваш пример - "<div id="result-USD">\n <input type="text" value="(.+?)" class", но курс не выгребается
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль "Курсы валют" (ПриватБанк+Банк России)

Сообщение Gelezako » Ср ноя 29, 2017 6:18 pm

обновление:
- добавлен курс НБУ
- добавлено отображение на странице модуля даты и время последнего обновления
- добавлено сохранение даты и времени обновления в объекты для проверки или озвучивания в ваших сценариях (необходимо что бы убедиться что система имеет не устаревшие курсы)
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Курсы валют" (ПриватБанк+Банк России)

Сообщение nick7zmail » Пн дек 04, 2017 9:10 pm

Установил модуль ради эксперимента...
1) Что этим хотели сказать?))
111.jpg
111.jpg (20.38 КБ) 4476 просмотров
2) Просьба добавить ЦБР (скрипты есть на форуме)
3) Ещё добавить бы выбор объекта хотя бы...У меня объект Rate занят под свойства плекса, и валюты повалили тоже в него...еле нашел)) И каким то образом в системе создалось 2 конфликтующих объекта.
4) Добавить обновление по событию HOURLY...у меня из-за того что создался метод объекта OnNewHour, перестал работать основной классовый метод....
Короче пришлось чуть ли не сразу же снести модуль, чтоб всё в норму пришло. И да...при удалении код из OnNewHour не удалился...пришлось вручную хвосты подчищать.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль "Курсы валют" (ПриватБанк+Банк России)

Сообщение Gelezako » Пн дек 04, 2017 10:27 pm

nick7zmail писал(а):Установил модуль ради эксперимента...
1) Что этим хотели сказать?))
111.jpg
2) Просьба добавить ЦБР (скрипты есть на форуме)
3) Ещё добавить бы выбор объекта хотя бы...У меня объект Rate занят под свойства плекса, и валюты повалили тоже в него...еле нашел)) И каким то образом в системе создалось 2 конфликтующих объекта.
4) Добавить обновление по событию HOURLY...у меня из-за того что создался метод объекта OnNewHour, перестал работать основной классовый метод....
Короче пришлось чуть ли не сразу же снести модуль, чтоб всё в норму пришло. И да...при удалении код из OnNewHour не удалился...пришлось вручную хвосты подчищать.
Спасибо за фидбек.
1. В самом начале когда писал модуль кириллица нормально отображалась, но сейчас по какой-то причине не хочет. Я делал несколько экспериментов, но так и не понял почему появилась проблема с кодировкой.
2. Могу попробовать, только дайте плиз ссылочку
3. Хм, может есть смысл сделать сначала проверку не существует ли в и системе объект с таким именем? Хотя для меня до сих пор загадка как реально связан объект с классом и как так получается что я создаю объект в одном классе, а оказывается что значения могут попадать в свойства объекта совершенно другого класса :(
4.
nick7zmail писал(а):Добавить обновление по событию HOURLY
я как раз и делал обновление раз в час через метод ClockChime.onNewHour()
nick7zmail писал(а):у меня из-за того что создался метод объекта OnNewHour
а какой именно у вас метод создался? я не созданию вроде новых методов. Я вставлял код в существующий метод ClockChime.onNewHour()
nick7zmail писал(а):перестал работать основной классовый метод....
думаете этот из-за моей вставки?
nick7zmail писал(а):при удалении код из OnNewHour не удалился...пришлось вручную хвосты подчищать.
знаю об этой проблеме, но как удалять я так и не нашёл :(
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль "Курсы валют" (ПриватБанк+Банк России)

Сообщение nick7zmail » Пн дек 04, 2017 10:44 pm

Была раньше проблема (видимо так и не решена) - когда заполнены и классовый метод OnNewHour и метод объекта ClockChime.OnNewHour - один из них почему-то не хотел работать...
Решалось тем что весь код переносился в 1 место...я всё давным давно перенес в классовый, и удалил к фигам метод объекта ClockChime. Ваш модуль его "воскресил", и вписал туда код обновления =D.
Ну и собственно по-этому же снова перестал отрабатывать классовый (видимо так и не решена проблема =( )

В системе существует замечательное событие HOURLY которое совершается раз в час.
Модуль на него подписывается 1 строчкой в функции install

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

subscribeToEvent($this->name, 'HOURLY');
Чтобы отписаться при удалении в uninstall соответственно

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

unsubscribeFromEvent($this->name, 'HOURLY');
Ну и в основном модуле код, который вы запихиваете в OnNewHour

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

    function processSubscription($event_name, $details='') {
        if ($event_name=='HOURLY') {
            //тут ваш код, который будет выполняться ежечасно (из OnNewHour прямо можете скопировать)
        }
    }
Сразу решится 3 проблемы:
- засирание OnNewHour (когда там много всего - система туповато отрабатывает)
- не потребуется вообще никакого кода в методах -> пользователь их не сломает
- при удалении модуля он сам отпишется от события, следов не останется.

По поводу объектов/методов - система (из панели по крайней мере вручную) запрещает создавать одинаковые объекты. Так что такого не должно быть...
Предлагаю, как минимум что нить по-оригинальнее для объекта избрать. ExchangeRate_info к примеру...такой объект врят ли у кого в системе найдется до вашего модуля)))

Цбр - тему искать лень, вот скрипт, который в полне себе работает.
СпойлерПоказать

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

$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date("d/m/Y"));
if (!$file){
DebMes("CBR error");
return;
}

// USD
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$this->setProperty('USD', round(str_replace(",",".",$valute)*100)/100);

// EUR
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$this->setProperty('EUR', round(str_replace(",",".",$valute)*100)/100);

$this->setProperty("uptime",date("d m Y H:i:s",time()));
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль "Курсы валют" (ПриватБанк+Банк России)

Сообщение Gelezako » Пн дек 04, 2017 11:42 pm

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