АВТОМАТИЧЕСКОЕ УПРАВЛЕНИЕ ФУНКЦИЯМИ АВТОМОБИЛЯ (DEBUGM)

АВТОМАТИЧЕСКОЕ УПРАВЛЕНИЕ ФУНКЦИЯМИ АВТОМОБИЛЯ (DEBUGM)

Когда вы настроили ГУ так что можете устанавливать любые APK (установлен Monjaro Starter Pack вместе с Macrodroid), можно дополнительно получить прямой доступ к функциям автомобиля и создать сценарии их автоматизации с помощью приложения DebugM. Например, при старте системы можно выключать функцию Start-Stop, проверить температуру в салоне и выкрутить обогрев на максимум, проверить заведен ли двигатель и переключить режим в Спорт, и тд. Кроме событий вроде загрзуки автомобиля, можно вызывать макросы из голосового ассистента который поддерживает интенты, например «Дуся».

ВНИМАНИЕ! Прямое управление функциями автомобиля осуществляется на свой страх и риск. Всегда нужно помнить, что ошибки могут быть и в приложении DebugM которое вам это позволит сделать и в ваших сценариях которые могут зациклиться и без конца начать вызывать то что вызывать не нужно. Может ли повредить приложение системы автомобиля не известно.

Если всё это произойдёт на скорости, это может стать вдвойне неожиданным. Всегда помните об этом создавая и исполняя сценарии. Вся ответственность за последствия лежит на вас самих. Приложение DebugM является лишь тестовой утилитой и не гарантрируют стабильную работу себя или систем автомобиля.

Какие-то предварительные тесты приложение DebugM проходило на машинах ОД, но в целом должно работать и на ПИ.

Перед тем как продолжать рекомендуется получить представление о том, что из себя представлет Macrodroid и макросы в нём, и как минимум разобраться как послать Intent в действии макроса (хотя этот шаг описан ниже).

Установка и первый макрос

1. Скачайте приложение DebugM по ссылке. Установите его как любой другой APK, затем найдите его иконку в списке приложений ГУ и запустите приложение

2. Когда приложение запустится это активирует его, для проверки можете нажать на кнопку выключения Start-Stop на экране приложения. В этот момент у вас появится сообщение "Disable SS" и через пару секунд выключится Start-Stop. Такую активацию стоит повторить при обновлении приложения или если интенты перестали у вас работать.

3. Далее в Macrodroid сделаем пробный сценарий, в котором будем отключать функцию Start-Stop при загрузке системы. Для этого запустите Macrodroid и создайте новый макрос.

4. В секцию действий макроса добавьте действие Задержка по Времени (Wait before) и поставьте 5-10 секунд что бы дать системе полностю запуститься перед исполнением макроса.

5. Добавьте следующее действие Send Intent (Отправить Интент) с такими параметрами: 

a. Target (Цель) = Broadcast

b. Action (Действие) = dm.disable.STARTSTOP

c. Package (Пакет) =  debug.monjaro

6. В секции Constraints (Ограничения) добавьте Macro Triggered Recently (Недавно Вызыванные Макросы), в диалоге выберите Macro triggered (Макросы вызваны), а в следующем диалоге This Macro (Этот макрос). В последнем диалоге выставьте 1 минуту. Это позволит макросу исполниться лишь 1 раз при загруке.

7. Дайте макросу имя и сохраните его.

Во всех макросах рекомендуется ставить задержки между посылкой интентов в приложение DebugM. Это даст передышку системе и не будет нагружать ее слишком сильно в момент исполнениям максросов; дополнительно это обезопасит вас если вы случайно зациклите макросы и они начнут без конца вызывать функции автомобиля.

Полный список функций можно найти в текстовом файле рядом с APK приложения. Все функции можно разбить на такие категории:

·  dm.enable.*  - включение функции.

·  dm.disable.*  - выключение функции.

·  dm.low.* , dm.med.* , dm.high.*   - включение функции с уровнем от низкого до высокого соответственно.

·  dm.set.* - функция с переданным (числовым) значением.

·  dm.get.* - чтение значение сенсора.

В конце интента название объекта или функции, Примеры:

-   dm.low.FRONTLEFTSEATHEAT включает низкий уровень обогрева переднего левого сидения.

-   dm.enable.INTFAN включает рециркуляцию.

-   dm.get.INTTEMP запрашивает значение температуры салона

-   и тд.

Значение из сенсора будет отправлено ответным интентом в Macrodroid. Что бы его отловить создайте макрос с триггером Интент Получен (Intent Received), где прописано Действие (action) = dm.response.RESULT  и в секции Дополнение (Exta) придёт значение переменной в поле value, а имя сенсора в поле sensor.

Пример такого макроса который показывает приходящие значения сенсора на экран можно найти рядом с APK приложения.

Помните что при импорте примеров макросов вам необходимо будет вручную восстановить ссылки на те макросы что используются в них. Переменные используемые там так же могут требовать починки. И конечно же те примеры исполняют определенные действия с вашим автомобилем, если вы не понимате какие именно действия то сначала изучите макросы на другом Android устройстве, т.к. даже неактивные макросы могут включаться в определенных сценариях.