Страница 34 из 85
Re: [Приложение] мой MjDM (Android)
Добавлено: Чт фев 06, 2020 9:55 pm
SmoKE_xDDD
Есть еще предложение, а можем реализовать следующее:
В настройках указываем адрес страницы, приложение парсит например JSON и создает уведомление в строке состояния и далее проводит опрос, например каждые 5 минут.
Объясню зачем:
Я отдаю в JSON данные например "Никого нет дома, температура +26" и вижу это в строке состояния. Виджет виджетом, но имхо это компактнее и удобнее...
Re: [Приложение] мой MjDM (Android)
Добавлено: Пт фев 07, 2020 12:25 am
fandaymon
hc2hunter писал(а): Чт фев 06, 2020 9:26 pm
fandaymon писал(а): Чт фев 06, 2020 8:50 pm
Как это нет? На терминале открывается сокет на порту 7999 и слушаются сообщения, которые туда приходят. Если, например, приходит сообщение tts:Текст, то этот текст надо произнести. Всё, после этого терминал добавляется в систему как поддерживающий droidAPI и на него будут приходить сообщения
чтобы они туда приходили, кто-то их должен полылать.
а для этого сначала в системе нужно завести терминал.
но в целом да, все верно. попробуем поработать в этом направлении...
Ну для того чтобы на мажордроид сообщения приходили, его тоже нужно завести как терминал. Просто всё остальное делает сама система, т.е. если у неё есть сообщение и есть терминал с галочкой Может принимать сообщения и типом majordroid, то дальше система сама пришлет в порт 7999 сообщение tts:сообщение
Re: [Приложение] мой MjDM (Android)
Добавлено: Пт фев 07, 2020 11:29 am
hc2hunter
С сокетом 7999 вроде разобрался... Организовал прием, попробовал.
Да, если устройство завести как терминал, и в системе указать ему "MajorDroid API" и IP-адрес , то по команде sayTo("text",2,"ДЕВАЙС") на него приходит сообщение tts:text
Однако, само API я не нашел нигде... и наверное оно не афишируется? Поэтому сама система думает, что терминал всегда Offline...
Для полноценного обмена, видимо, нужная обратная связь к серверу MDM, чтобы терминал отчитывался о своем состоянии?
Re: [Приложение] мой MjDM (Android)
Добавлено: Пт фев 07, 2020 12:35 pm
fandaymon
hc2hunter писал(а): Пт фев 07, 2020 11:29 am
С сокетом 7999 вроде разобрался... Организовал прием, попробовал.
Да, если устройство завести как терминал, и в системе указать ему "MajorDroid API" и IP-адрес , то по команде
sayTo("text",2,"ДЕВАЙС") на него приходит сообщение
tts:text
Однако, само API я не нашел нигде... и наверное оно не афишируется? Поэтому сама система думает, что терминал всегда Offline...
Для полноценного обмена, видимо, нужная обратная связь к серверу MDM, чтобы терминал отчитывался о своем состоянии?
Это API и есть

Описание возможных команд и что они должны делать
Терминал офлайн если с ним некоторое время не было общения. Т.е. с него или на него не ходили сообщения. Вернее так раньше было - сейчас вроде дополнительно раз в час пингует ip адрес
Re: [Приложение] мой MjDM (Android)
Добавлено: Пт фев 07, 2020 12:38 pm
hc2hunter
Если это API, то какое-то оно "небогатое"...
Ну да ладно... я тоже предположил, что вполне вероятно сервер сам пытается по ICMP периодически проверять терминал на живость. С другой стороны откуда ему знать, что терминал с MajorDroidAPI не заменили на любой другой девайс, просто откликающийся на пинг? Поэтому и предположил, что вполне вероятно существует и обратный отклик, который нигде не документирован.
Re: [Приложение] мой MjDM (Android)
Добавлено: Пт фев 07, 2020 12:48 pm
fandaymon
hc2hunter писал(а): Пт фев 07, 2020 12:38 pm
Если это API, то какое-то оно "небогатое"...
Ну да ладно... я тоже предположил, что вполне вероятно сервер сам пытается по ICMP периодически проверять терминал на живость. С другой стороны откуда ему знать, что терминал с MajorDroidAPI не заменили на любой другой девайс, просто откликающийся на пинг? Поэтому и предположил, что вполне вероятно существует и обратный отклик, который нигде не документирован.
Всё что надо там есть - чего же не богатое-то?
Так код открыт же - всегда можно посмотреть откуда у флага online ноги растут. Собственно вот код, отвечающий за onine
Код: Выделить всё
} elseif ($event == 'HOURLY') {
// check terminals
$terminals = SQLSelect("SELECT * FROM terminals WHERE IS_ONLINE=0 AND HOST!=''");
foreach ($terminals as $terminal) {
if (ping($terminal['HOST'])) {
$terminal['LATEST_ACTIVITY'] = date('Y-m-d H:i:s');
$terminal['IS_ONLINE'] = 1;
SQLUpdate('terminals', $terminal);
}
}
SQLExec('UPDATE terminals SET IS_ONLINE=0 WHERE LATEST_ACTIVITY < (NOW() - INTERVAL 90 MINUTE)'); //
Re: [Приложение] мой MjDM (Android)
Добавлено: Пт фев 07, 2020 3:36 pm
hc2hunter
Понаблюдал - да, действительно, сервер определяет "живость" терминала исключительно пингуя его раз в час...
Что, собственно, и видно из куска кода выше.
Re: [Приложение] мой MjDM (Android)
Добавлено: Пт фев 07, 2020 5:09 pm
tarasfrompir
hc2hunter писал(а): Пт фев 07, 2020 3:36 pm
Понаблюдал - да, действительно, сервер определяет "живость" терминала исключительно пингуя его раз в час...
Что, собственно, и видно из куска кода выше.
В некоторых вариациях терминалов - время пинга задается вручную. И проверка проводится - проверкой доступности сервиса
Re: [Приложение] мой MjDM (Android)
Добавлено: Пт фев 07, 2020 5:13 pm
tarasfrompir
hc2hunter писал(а): Пт фев 07, 2020 12:38 pm
Если это API, то какое-то оно "небогатое"...
Ну да ладно... я тоже предположил, что вполне вероятно сервер сам пытается по ICMP периодически проверять терминал на живость. С другой стороны откуда ему знать, что терминал с MajorDroidAPI не заменили на любой другой девайс, просто откликающийся на пинг? Поэтому и предположил, что вполне вероятно существует и обратный отклик, который нигде не документирован.
Так реализуй апи с описанием - а мы его затянем в МДМ... Помогу если что
Re: [Приложение] мой MjDM (Android)
Добавлено: Пт фев 07, 2020 6:42 pm
hc2hunter
tarasfrompir писал(а): Пт фев 07, 2020 5:13 pm
Так реализуй апи с описанием - а мы его затянем в МДМ... Помогу если что
Не... спасибо, но пока воздержусь...
Мне бы с хотелками пользователей для начала разобраться, а потом уже мечтать о высоких материях
Сейчас, вот, сделал голосовое воспроизведение последней команды
sayTo на терминал, и уже столкнулся с тем, что в зависимости от системной LOCALE придется писать нехилую обвязку. Так что, работы полно...