[Приложение] мой MjDM (Android)
Модератор: immortal
- SmoKE_xDDD
- Сообщения: 816
- Зарегистрирован: Ср апр 17, 2019 5:00 pm
- Откуда: Нижний Новгород
- Благодарил (а): 110 раз
- Поблагодарили: 899 раз
Re: [Приложение] мой MjDM (Android)
Есть еще предложение, а можем реализовать следующее:
В настройках указываем адрес страницы, приложение парсит например JSON и создает уведомление в строке состояния и далее проводит опрос, например каждые 5 минут.
Объясню зачем:
Я отдаю в JSON данные например "Никого нет дома, температура +26" и вижу это в строке состояния. Виджет виджетом, но имхо это компактнее и удобнее...
В настройках указываем адрес страницы, приложение парсит например JSON и создает уведомление в строке состояния и далее проводит опрос, например каждые 5 минут.
Объясню зачем:
Я отдаю в JSON данные например "Никого нет дома, температура +26" и вижу это в строке состояния. Виджет виджетом, но имхо это компактнее и удобнее...
- За это сообщение автора SmoKE_xDDD поблагодарил:
- hc2hunter (Пт фев 07, 2020 9:08 am)
- Рейтинг: 1.16%
-
- Сообщения: 1570
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 40 раз
- Поблагодарили: 578 раз
Re: [Приложение] мой MjDM (Android)
Ну для того чтобы на мажордроид сообщения приходили, его тоже нужно завести как терминал. Просто всё остальное делает сама система, т.е. если у неё есть сообщение и есть терминал с галочкой Может принимать сообщения и типом majordroid, то дальше система сама пришлет в порт 7999 сообщение tts:сообщениеhc2hunter писал(а): ↑Чт фев 06, 2020 9:26 pmчтобы они туда приходили, кто-то их должен полылать.fandaymon писал(а): ↑Чт фев 06, 2020 8:50 pmКак это нет? На терминале открывается сокет на порту 7999 и слушаются сообщения, которые туда приходят. Если, например, приходит сообщение tts:Текст, то этот текст надо произнести. Всё, после этого терминал добавляется в систему как поддерживающий droidAPI и на него будут приходить сообщения
а для этого сначала в системе нужно завести терминал.
но в целом да, все верно. попробуем поработать в этом направлении...
- Рейтинг: 1.16%
- hc2hunter
- Сообщения: 507
- Зарегистрирован: Сб дек 02, 2017 10:45 am
- Откуда: RUS
- Благодарил (а): 228 раз
- Поблагодарили: 348 раз
Re: [Приложение] мой MjDM (Android)
С сокетом 7999 вроде разобрался... Организовал прием, попробовал.
Да, если устройство завести как терминал, и в системе указать ему "MajorDroid API" и IP-адрес , то по команде sayTo("text",2,"ДЕВАЙС") на него приходит сообщение tts:text
Однако, само API я не нашел нигде... и наверное оно не афишируется? Поэтому сама система думает, что терминал всегда Offline...
Для полноценного обмена, видимо, нужная обратная связь к серверу MDM, чтобы терминал отчитывался о своем состоянии?
Да, если устройство завести как терминал, и в системе указать ему "MajorDroid API" и IP-адрес , то по команде sayTo("text",2,"ДЕВАЙС") на него приходит сообщение tts:text
Однако, само API я не нашел нигде... и наверное оно не афишируется? Поэтому сама система думает, что терминал всегда Offline...
Для полноценного обмена, видимо, нужная обратная связь к серверу MDM, чтобы терминал отчитывался о своем состоянии?
-
- Сообщения: 1570
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 40 раз
- Поблагодарили: 578 раз
Re: [Приложение] мой MjDM (Android)
Это API и естьhc2hunter писал(а): ↑Пт фев 07, 2020 11:29 amС сокетом 7999 вроде разобрался... Организовал прием, попробовал.
Да, если устройство завести как терминал, и в системе указать ему "MajorDroid API" и IP-адрес , то по команде sayTo("text",2,"ДЕВАЙС") на него приходит сообщение tts:text
Однако, само API я не нашел нигде... и наверное оно не афишируется? Поэтому сама система думает, что терминал всегда Offline...
Для полноценного обмена, видимо, нужная обратная связь к серверу MDM, чтобы терминал отчитывался о своем состоянии?

Терминал офлайн если с ним некоторое время не было общения. Т.е. с него или на него не ходили сообщения. Вернее так раньше было - сейчас вроде дополнительно раз в час пингует ip адрес
- hc2hunter
- Сообщения: 507
- Зарегистрирован: Сб дек 02, 2017 10:45 am
- Откуда: RUS
- Благодарил (а): 228 раз
- Поблагодарили: 348 раз
Re: [Приложение] мой MjDM (Android)
Если это API, то какое-то оно "небогатое"...
Ну да ладно... я тоже предположил, что вполне вероятно сервер сам пытается по ICMP периодически проверять терминал на живость. С другой стороны откуда ему знать, что терминал с MajorDroidAPI не заменили на любой другой девайс, просто откликающийся на пинг? Поэтому и предположил, что вполне вероятно существует и обратный отклик, который нигде не документирован.

Ну да ладно... я тоже предположил, что вполне вероятно сервер сам пытается по ICMP периодически проверять терминал на живость. С другой стороны откуда ему знать, что терминал с MajorDroidAPI не заменили на любой другой девайс, просто откликающийся на пинг? Поэтому и предположил, что вполне вероятно существует и обратный отклик, который нигде не документирован.
-
- Сообщения: 1570
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 40 раз
- Поблагодарили: 578 раз
Re: [Приложение] мой MjDM (Android)
Всё что надо там есть - чего же не богатое-то?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)'); //
- Рейтинг: 1.16%
- hc2hunter
- Сообщения: 507
- Зарегистрирован: Сб дек 02, 2017 10:45 am
- Откуда: RUS
- Благодарил (а): 228 раз
- Поблагодарили: 348 раз
Re: [Приложение] мой MjDM (Android)
Понаблюдал - да, действительно, сервер определяет "живость" терминала исключительно пингуя его раз в час...
Что, собственно, и видно из куска кода выше.
Что, собственно, и видно из куска кода выше.
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 816 раз
Re: [Приложение] мой MjDM (Android)
В некоторых вариациях терминалов - время пинга задается вручную. И проверка проводится - проверкой доступности сервиса
Спасибо нам ПОМОЖЕТ..!
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 816 раз
Re: [Приложение] мой MjDM (Android)
Так реализуй апи с описанием - а мы его затянем в МДМ... Помогу если чтоhc2hunter писал(а): ↑Пт фев 07, 2020 12:38 pmЕсли это API, то какое-то оно "небогатое"...![]()
Ну да ладно... я тоже предположил, что вполне вероятно сервер сам пытается по ICMP периодически проверять терминал на живость. С другой стороны откуда ему знать, что терминал с MajorDroidAPI не заменили на любой другой девайс, просто откликающийся на пинг? Поэтому и предположил, что вполне вероятно существует и обратный отклик, который нигде не документирован.
- За это сообщение автора tarasfrompir поблагодарил:
- hc2hunter (Пт фев 07, 2020 6:42 pm)
- Рейтинг: 1.16%
Спасибо нам ПОМОЖЕТ..!
- hc2hunter
- Сообщения: 507
- Зарегистрирован: Сб дек 02, 2017 10:45 am
- Откуда: RUS
- Благодарил (а): 228 раз
- Поблагодарили: 348 раз
Re: [Приложение] мой MjDM (Android)
Не... спасибо, но пока воздержусь...tarasfrompir писал(а): ↑Пт фев 07, 2020 5:13 pmТак реализуй апи с описанием - а мы его затянем в МДМ... Помогу если что
Мне бы с хотелками пользователей для начала разобраться, а потом уже мечтать о высоких материях

Сейчас, вот, сделал голосовое воспроизведение последней команды sayTo на терминал, и уже столкнулся с тем, что в зависимости от системной LOCALE придется писать нехилую обвязку. Так что, работы полно...