Модуль GPS-трекер

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

Модераторы: Bagir, Ivan, Vit, immortal, PAV

Аватара пользователя
xor
Сообщения: 662
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 39 раз
Поблагодарили: 159 раз

Re: Модуль GPS-трекер

Сообщение xor » Пт окт 27, 2017 9:10 pm

+ В обновлённом модуле добавились такие ништяки:
function install($data='') {
parent::install();
addClass('GPSLocations');
addClassMethod('GPSLocations','userEntered','//$params["USER_OBJECT"]'."\n");
addClassMethod('GPSLocations','userLeft','//$params["USER_OBJECT"]'."\n");
addClassProperty('GPSLocations','locationTitle');
addClassProperty('GPSLocations','latestVisit');

addClassMethod('Users','enteredLocation','//$params["LOCATION_OBJECT"], $params["LOCATION"]'."\n");
addClassMethod('Users','leftLocation','//$params["LOCATION_OBJECT"], $params["LOCATION"]'."\n");
}
За это сообщение автора xor поблагодарил:
Voyager (Пт окт 27, 2017 9:28 pm)
Рейтинг: 1.47%
Аватара пользователя
xor
Сообщения: 662
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 39 раз
Поблагодарили: 159 раз

Re: Модуль GPS-трекер

Сообщение xor » Пт окт 27, 2017 11:07 pm

++Чтобы появился новый функционал взамен старого, как я понял, нужно войти в редактирование существующего Места в GPS-модуле и проверить, что появился Связанный объект с автоназванием LocationNN. У нового объекта заполнено уже свойство Name=названию Места.
Название LocationNN можно поменять на что-нибудь более понятное, но потом придется подправить Связанный объект в Месте GPS-модуля.
directman66
Сообщения: 1571
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 240 раз
Поблагодарили: 261 раз

Re: Модуль GPS-трекер

Сообщение directman66 » Сб окт 28, 2017 2:35 pm

Друзья, как пользователю добавить поле "дату и время последней синхронизации"? В модуле оно отображается, но пользователю это свойство не передается. Есть только время без даты. Может можно поправить что-то в модуле, чтобы в поле .CoordinatesUpdated передавалась и дата?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
eygen
Сообщения: 346
Зарегистрирован: Чт сен 25, 2014 5:37 pm
Откуда: Екатеринбург
Благодарил (а): 21 раз
Поблагодарили: 37 раз

Re: Модуль GPS-трекер

Сообщение eygen » Пн окт 30, 2017 9:01 am

Парни подскажите как безопасно передавать gps в mdm! 80 порт открывать наружу что то не хочется. Через connect так понимаю теперь не вариант.
skysilver
Сообщения: 1728
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 264 раза
Поблагодарили: 1034 раза
Контактная информация:

Re: Модуль GPS-трекер

Сообщение skysilver » Пн окт 30, 2017 9:44 am

eygen писал(а):Парни подскажите как безопасно передавать gps в mdm! 80 порт открывать наружу что то не хочется. Через connect так понимаю теперь не вариант.
Что-то похожее я делал для webhook telegram. С gps, думаю, можно аналогично сделать.

В апач добавил виртуальный хост, который висит на порту 8443. В /var/www соответственно добавил директорию для этого хоста, у меня это tgwebhook. В ней создал папку, имя которой известно только мне (набор цифр и букв, подобие уникального токена). И туда уже поместил файл webhook_tlg.php с кодом:

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

$content = file_get_contents("php://input");
$update = json_decode($content, TRUE);

$today_file = 'log_' . date('Y-m-d') . '-telegram.php.txt';
$data = date("H:i:s")." " . $content . "\n";
file_put_contents($today_file, $data, FILE_APPEND | LOCK_EX);

$datas = $update;
$data_string = json_encode($datas);

$ch = curl_init('http://127.0.0.1:80/webhook_telegram.php');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',                                                                                
    'Content-Length: ' . strlen($data_string))
);

curl_exec($ch); 
Суть простая. Все, что приходит, пишем в лог и затем перенаправляем POST-запросом уже в основную систему на 80ый порт ('http://127.0.0.1:80/webhook_telegram.php'). В случае модуля GPS, вероятно, потребуется обычный GET-запрос. Код будет проще.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Molostov
Сообщения: 30
Зарегистрирован: Пт янв 17, 2014 1:47 am
Откуда: Карпинск, Свердловская область
Благодарил (а): 64 раза
Поблагодарили: 5 раз

Re: Модуль GPS-трекер

Сообщение Molostov » Пн окт 30, 2017 2:22 pm

eygen писал(а):Парни подскажите как безопасно передавать gps в mdm! 80 порт открывать наружу что то не хочется. Через connect так понимаю теперь не вариант.
Vpnki, сервис "публикация url" попробуйте.
dr.pavlov.alex
Сообщения: 103
Зарегистрирован: Вс апр 23, 2017 7:09 pm
Благодарил (а): 38 раз
Поблагодарили: 1 раз

Re: Модуль GPS-трекер

Сообщение dr.pavlov.alex » Пн окт 30, 2017 7:09 pm

Подскажите как изменить цвет маршрута пользователя в модуле? У одного пользователя рисуется белым маршрут, ничего не видно на яндекс картах.
Aopen de7000 на Ubuntu 16.04.4 LTS+Broadlink
Аватара пользователя
xor
Сообщения: 662
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 39 раз
Поблагодарили: 159 раз

Re: Модуль GPS-трекер

Сообщение xor » Пн окт 30, 2017 8:08 pm

directman66 писал:
Друзья, как пользователю добавить поле "дату и время последней синхронизации"? В модуле оно отображается, но пользователю это свойство не передается. Есть только время без даты. Может можно поправить что-то в модуле, чтобы в поле .CoordinatesUpdated передавалась и дата?
У Вас есть поле CoordinatesUpdatedTimestamp, можете его форматировать как хотите.

date( "d.m.Y H:i", gg('user.CoordinatesUpdatedTimestamp'));


А формат CoordinatesUpdated жёстко задан в gps.php:

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

setGlobal($user['LINKED_OBJECT'] . '.Coordinates', $rec['LAT'] . ',' . $rec['LON']);
         setGlobal($user['LINKED_OBJECT'] . '.CoordinatesUpdated', date('H:i'));
         setGlobal($user['LINKED_OBJECT'] . '.CoordinatesUpdatedTimestamp', time());
         setGlobal($user['LINKED_OBJECT'] . '.BattLevel', $rec['BATTLEVEL']);
         setGlobal($user['LINKED_OBJECT'] . '.Charging', $rec['CHARGING']);
Аватара пользователя
xor
Сообщения: 662
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 39 раз
Поблагодарили: 159 раз

Re: Модуль GPS-трекер

Сообщение xor » Пн окт 30, 2017 9:27 pm

gps.php стр.277 setGloba

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

            //Debmes("Device (" . $device['TITLE'] . ") ENTERED location " . $locations[$i]['TITLE']);

            if ($locations[$i]['LINKED_OBJECT']) {
               setGloba($locations[$i]['LINKED_OBJECT'].'.latestVisit',date('Y-m-d H:i:s')); //--------------ошибка?
               callMethodSafe($locations[$i]['LINKED_OBJECT'].'.userEntered',$params);
Аватара пользователя
sergejey
Site Admin
Сообщения: 4272
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1340 раз
Контактная информация:

Re: Модуль GPS-трекер

Сообщение sergejey » Вт окт 31, 2017 3:42 pm

xor писал(а):gps.php стр.277 setGloba
спасибо, исправил.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить