DebugM

Скачать: disk.yandex.ru Автор: @konstanti_i

Установка. Установить DebugM.apk, запустить, нажмите кнопку Activate app, при нажатии появиться сообщение "Disable SS" и дополнительно откроется диалог в котором приложению нужно будет разрешить работать в фоне (отключить экономию батареи) - это позволит приложению запускаться на старте системы. Такую активацию стоит повторить если интенты перестали у вас работать, или новые не начали. Настройки батареи не откроются если они уже выставлены ранее.

Получение значений с сенсоров. Чтобы получить значение из сенсора используем интенты с ".get". Ловить их ответ с помощью MacroDroid, создав макрос с триггером Intent Received, где прописан action = dm.response.RESULT и дополнительно в Exta будет значением переменной в поле value, плюс имя сенсора в поле sensor.

Автоматическая подписка на сенсоры. Приложение автоматически создаёт подписку на несколько сенсоров: статус АКПП, статус зажигания, состояние Start-Stop, режим вождения, статус ремня безопасности, статус сидения пассажира, статус кондиционера. Формат интента ровно такой же, но в Extra добавлено еще одно строковое поле source со значением event на случай если вы хотите отличать эти интенты (дополнение: Когда приложение просыпается и подписывается на перечисленные сенсоры, обычно сразу же приходят текущие значения даже если они не менялись). Примерно так будут интенты срабатывать (сенсор = значение):

Разблокировали двери, через ~8сек МакроДроид начнёт получать интенты:
статус коробки: GEAR = GEAR_PARK
ремень водителя: SAFE_BELT_DRIVER = BUCKLED
ремень пассажира: SAFE_BELT_PASSENGER = UNBUCKLED
есть ли пассажир: SEAT_OCCUPATION_STATUS_PASSENGER = SEAT_OCCUPATION_STATUS_NONE
статус СтартСтоп: ENGINE_START_STOP = ON
заводим двигатель: IGNITION = IGNITION_DRIVING
режим вождения: DRIVE_MODE = DRIVE_ECO
кондиционер: AC_POWER = ON и через сотые доли секунды, если он выключен был в прошлой поездке:
кондиционер: AC_POWER = OFF
переключаем коробку: GEAR = GEAR_NEUTRAL
переключаем коробку: GEAR = GEAR_DRIVE
едем, двери блокируются: DOOR_LOCK = ON скорость более 20 км/ч двери блокируются
переключаем шайбой режимы движения и СтартСтоп деактивируется для некоторых режимов:
вкл режим снег: DRIVE_MODE = DRIVE_SNOW
отключился СтартСтоп: ENGINE_START_STOP = OFF
вкл режим комфорт: DRIVE_MODE = DRIVE_COMFORT
включился СтартСтоп: ENGINE_START_STOP = ON
глушим мотор: IGNITION = IGNITION_OFF
коробка переходит в: DRIVE_MODE = DRIVE_COMFORT
и паркуется: GEAR = GEAR_PARK
выходим из машины DOOR_LOCK = OFF
блокируем двери DOOR_LOCK = ON


Кнопки на руле. Есть опция обработки медиа кнопок на руле, громкость медиа и звонков будут синхронизированы и для этого необходимо выдать права на Спец. возможности  приложению. При нажатии влево и вправо на руле будут посылаться интенты в Macrodroid yt.skipleft и yt.skipright соответственно (на эти интенты в макродроиде можно поставить что угодно.

Список поддерживаемых интентов:

интент описание сенсор значения
автоматическая подписка состояние зажигания IGNITION IGNITION_OFF, IGNITION_DRIVING
автоматическая подписка состояние АКПП GEAR GEAR_PARK, GEAR_NEUTRAL, GEAR_DRIVE, GEAR_REVERSE, UNKNOWN
dm.get.SPEED узнать скорость SPEED целое число
dm.get.RPM узнать обороты двигателя RPM целое число
* dm.get.FUELECOINTELSTATE  состояние топливной системы
dm.enable.FUELECOINTEL включение Интеллектуальной экономии топлива
dm.disable.FUELECOINTEL отключение Интеллектуальной экономии топлива
dm.get.FUELLEVEL уровень топлива в мл FUELLEVEL целое число
dm.get.FUELPERCENT уровень топлива в % FUELPERCENT целое число
dm.get.REMAININGKM узнать запаса хода в км REMAININGKM целое число
dm.get.WEIGHT узнать вес WEIGHT целое число
пассажир, ремни, экран пассажира
автоматическая подписка присутствие пассажира SEAT_OCCUPATION_STATUS_PASSENGER SEAT_OCCUPATION_STATUS_NONE, SEAT_OCCUPATION_STATUS_OCCUPIED
dm.get.FRONTRIGHTSEATOCCUPIED присутствие пассажира FRONTRIGHTSEATOCCUPIED NOT_OCCUPIED, OCCUPIED
dm.get.FRONTRIGHTSEATBELT состояние ремня пассажира FRONTRIGHTSEATBELT UNBUCKLED, BUCKLED
dm.get.FRONTLEFTSEATBELT состояние ремня водителя FRONTLEFTSEATBELT UNBUCKLED, BUCKLED
автоматическая подписка состояние ремня водителя SAFE_BELT_DRIVER UNBUCKLED, BUCKLED
автоматическая подписка состояние ремня пассажира SAFE_BELT_PASSENGER UNBUCKLED, BUCKLED
* dm.get.RIGHTSCREENSTATE  состояние правого экрана
dm.enable.RIGHTSCREEN включение правого экрана
dm.disable.RIGHTSCREEN отключение правого экрана
* dm.set.SEATPOSITION установить положение сиденья
двери, багажник, окна
* dm.get.ACREMINDERSSTATE  состояние контроля доступа
автоматическая подписка состояние блокировки дверей DOOR_LOCK OFF, ON
* dm.get.TRUNKSTATE  состояние багажника TRUNKSTATE CLOSED, ?
dm.enable.TRUNKOPEN открыть багажник
dm.enable.TRUNKCLOSE закрыть багажник
* dm.get.WINDOWPOSITION состояние окон
dm.set.WINDOWPOSITION управление окнами и люком в Extra указывается value со значением от 0 до 100 (тип строка, значение без дробной части), а дополнительно в Extra добавляйте target с одним из таких строковых значений: FRONTLEFT, FRONTRIGHT, REARLEFT, REARRIGHT, ROOFVENT, ROOFCURT.
зеркала, фары, дворники
* dm.get.MIRRORFOLDSTATE  состояние складывания зеркал
dm.enable.FOLDMIRRORS сложить зеркала заднего вида
dm.enable.UNFOLDMIRRORS разложить зеркала заднего вида
* dm.get.EXTLIGHTSSTATE состояние внешних фонарей
dm.enable.EXTLIGHTSOFF фары выключить
dm.enable.EXTLIGHTSLOW включить ближний
dm.enable.EXTLIGHTSPOS включить дальний
dm.enable.EXTLIGHTSAUTO фары автоматически
dm.enable.SERVICEWIPERS включить сервисный режим дворников
электронные помощники
* dm.get.SERVICEWIPERSSTATE  состояние сервисных служб
* dm.get.STARTSTOP узнать состояние СтартСтоп ENGINE_START_STOP OFF, ON
dm.enable.STARTSTOP включить функцию СтартСтоп
dm.disable.STARTSTOP отключить функцию СтартСтоп
* dm.get.SAFETYELKASTATE состояние ELKA
dm.enable.safety.ELKA включить функцию безопасности ELKA
dm.disable.safety.ELKA выключить функцию безопасности ELKA
* dm.get.SAFETYPASSTATE состояние PAS
dm.enable.safety.PAS включить функцию безопасности PAS
dm.disable.safety.PAS выключить функцию безопасности PAS
dm.enable.safety.ESCSPORT включить ESC Sport с пониженной безопасностью вождения для Sport режима
dm.disable.safety.ESCSPORT отключить ESC Sport с пониженной безопасностью вождения для Sport режима
режимы вождения
* dm.get.DRIVEMODE узнать режим вождения DRIVE_MODE DRIVE_ADAPTIVE, DRIVE_ECO, DRIVE_COMFORT, DRIVE_OFFROAD, DRIVE_SAND, DRIVE_SNOW, DRIVE_SPORT
dm.enable.DRIVEADAPTIVE включить режим вождения адаптивный
dm.enable.DRIVEECO включить режим вождения эко
dm.enable.DRIVECOMFORT включить режим вождения комфорт
dm.enable.DRIVEOFFROAD включить режим вождения бездорожье
dm.enable.DRIVESAND включить режим вождения песок
dm.enable.DRIVESNOW включить режим вождения снег
dm.enable.DRIVESPORT включить режим вождения спорт
кондиционирование (климат)
dm.get.INTTEMP температура внутри INTTEMP значения с одним знаком после запятой (используется точка)
dm.get.OUTTEMP температура снаружи OUTTEMP значения с одним знаком после запятой (используется точка)
dm.get.INTCO2 концентрация CO2 INTCO2 NO_CO2, LOWER_CO2, LOW_CO2, MEDIUM_CO2, HIGH_CO2, HIGHEST_CO2
* dm.get.ACPOWER узнать состояние кондиционера AC_POWER OFF, ON
dm.get.ACTEMP узнать температуру климата
dm.set.ACTEMP выставить температуру обдува от 16 до 28 в Extra ("Дополнительно") секцию интента добавить поле value с типом string (строка) и прописать целое значение температуры, например 25
dm.enable.AC включить кондиционер
dm.disable.AC отключить кондиционер
dm.enable.AUTOAC включить автоматический режим в кондиционере
dm.disable.AUTOAC отключить автоматический режим в кондиционере
* dm.get.AUTOACSTATE состояние автоматического отключения
dm.get.FANLEVELAUTO узнать уровень обдува в автоматическом режиме
dm.set.FANLEVELAUTO установить уровень обдува в автоматическом режиме
* dm.get.ACECO узнать состояние эко режима
dm.enable.ACECO включить эко режим
dm.disable.ACECO отключить эко режим
* dm.get.GCLEAN узнать состояние "зелёного" режима (эксперим.)
dm.enable.GCLEAN зелёный режим и автоматически эко режим
dm.enable.ACREMINDERS включение Интеллектуальных оповещений для поддержки эффективности кондиционера
dm.disable.ACREMINDERS отключение Интеллектуальных оповещений для поддержки эффективности кондиционера
вентиляция
* dm.enable.FANDIRECTION направление обдува value поддерживает значения: ALL, AUTO_SWITCH, FACE, FACE_AND_FRONT_WINDOW, FACE_AND_LEG,  FRONT_WINDOW, LEG, LEG_AND_FRONT_WINDOW, OFF
dm.get.FANLEVEL уровень обдува в ручном режиме цифра в value
dm.set.FANLEVEL установить уровень обдува в ручном режиме передавать цифру в value
dm.low.FAN вентилятор на минимальную скорость
dm.medium.FAN вентилятор на среднюю скорость
dm.high.FAN вентилятор на высокую скорость
dm.disable.FAN вентилятор отключить
* dm.get.INTFAN состояние рекуперации
dm.enable.INTFAN включить режим рекуперации
dm.disable.INTFAN отключить режим рекуперации
вентиляция сидений
* dm.get.SEATFAN состояние обдува сидений SEATFAN OFF, LOW, MEDIUM, HIGH
* dm.enable.SEATFAN включить обдув сидений value поддерживает значения: 
dm.low.FRONTLEFTSEATFAN переднее левое сидение вентиляция минимальная
dm.medium.FRONTLEFTSEATFAN переднее левое сидение вентиляция средняя
dm.high.FRONTLEFTSEATFAN переднее левое сидение вентиляция максимальная
dm.disable.FRONTLEFTSEATFAN переднее левое сидение вентиляция отключить
dm.low.FRONTRIGHTSEATFAN переднее правое сидение вентиляция минимальная
dm.medium.FRONTRIGHTSEATFAN переднее правое сидение вентиляция средняя
dm.high.FRONTRIGHTSEATFAN переднее правое сидение вентиляция максимальная
dm.disable.FRONTRIGHTSEATFAN  переднее правое сидение вентиляция отключить
обогрев
обогрев сидений
* dm.get.SEATHEAT узнать состояние обогрева сидений SEATHEAT OFF, LOW, MEDIUM, HIGH
* dm.enable.SEATHEAT включить обогрев сидений value поддерживает значения: 
dm.low.FRONTLEFTSEATHEAT  переднее левое сидение обогрев минимальный
dm.medium.FRONTLEFTSEATHEAT  переднее левое сидение обогрев средний
dm.high.FRONTLEFTSEATHEAT  переднее левое сидение обогрев максимальный
dm.disable.FRONTLEFTSEATHEAT  переднее левое сидение обогрев отключить
dm.low.FRONTRIGHTSEATHEAT  переднее правое сидение обогрев минимальный
dm.medium.FRONTRIGHTSEATHEAT  переднее правое сидение обогрев средний
dm.high.FRONTRIGHTSEATHEAT  переднее правое сидение обогрев максимальный
dm.disable.FRONTRIGHTSEATHEAT  переднее правое сидение обогрев отключить
dm.low.REARLEFTSEATHEAT  заднее левое сидение обогрев минимальный
dm.medium.REARLEFTSEATHEAT  заднее левое сидение обогрев средний
dm.high.REARLEFTSEATHEAT  заднее левое сидение обогрев максимальный
dm.disable.REARLEFTSEATHEAT  заднее левое сидение обогрев отключить
dm.low.REARRIGHTSEATHEAT  заднее правое сидение обогрев минимальный
dm.medium.REARRIGHTSEATHEAT  заднее правое сидение обогрев средний
dm.high.REARRIGHTSEATHEAT заднее правое сидение обогрев максимальный
dm.disable.REARRIGHTSEATHEAT  заднее правое сидение обогрев отключить
обогрев руля
* dm.get.WHEELHEAT  состояние обогрева руля WHEELHEAT OFF, LOW, MEDIUM, HIGH
dm.low.WHEEL обогрев руля минимальный 
dm.medium.WHEEL обогрев руля средний
dm.high.WHEEL обогрев руля максимальный
dm.disable.WHEEL обогрев руля отключить
обогрев стёкол (оттаивание)
* dm.get.FRONTDEFROST состояние обогрева лобового стекла
dm.enable.FRONTDEFROST переднее стекло обогрев включить
dm.disable.FRONTDEFROST переднее стекло обогрев отключить
* dm.get.FRONTDEFROSTMAX состояние обогрева максимального
dm.enable.FRONTDEFROSTMAX переднее стекло обогрев максимальный включить 
dm.disable.FRONTDEFROSTMAX переднее стекло обогрев максимальный отключить
* dm.get.REARDEFROST состояние подогрева заднего стекла
dm.enable.REARDEFROST заднее стекло обогрев включить
dm.disable.REARDEFROST заднее стекло обогрев отключить
экспериментальная функция для оптыных пользователей
* dm.set.GENERICFUNCTION экспериментальная функция позволяет проставить значение любой функции, в Extras к интенту дополнительно надо передавать например function=268501504, zone=1, value=1, valueType=int или float

* - экспериментальные

Пример макроса для MacroDroid, открыть окно на 50% после того как завели авто и отключить СтартСтоп:

Триггеры Интент получен Действие: dm.response.RESULT
Дополнение: [ имя: value | значение: IGNITION_DRIVING ]
Дополнение: [ имя: sensor | значение: IGNITION ]
Действия Задержка 2 сек
Отправить интент Цель: Broadcast | Действие: dm.set.WINDOWPOSITION | Пакет: debug.monjaro 
Дополнение1: [ имя: value | значение:
 50 | тип: строковая ]
Дополнение2: [ имя: target | значение: FRONTLEFT | тип: строковая ]
Задержка 0,5 сек
Отправить интент Цель: Broadcast | Действие: dm.disable.STARTSTOP | Пакет: debug.monjaro
Ограничения Нет