LunarisApp: интеграция Macrodroid

LunarisApp: интеграция Macrodroid

LunarisApp для поддерживаемых ГУ позволяет настроить собственные сценарии для отслеживания и управления функциями авто. В данной статье размещена информация для написания собственных и редактирования существующих макросов Macrodroid.

Оглавление

Общие понятия

В контексте LunarisApp существует 2 механизма взаимодействия: Settings.Global и Android Intent’s.

Параметры Settings.Global

Это системное хранилище параметров Android, которое поддерживает чтение/запись и уведомления об изменении значений.
В контексте LunarisApp: сам LunarisApp записывает в опции состояние авто, а Macrodroid может их читать и реализовывать логику.
Изменять значения опций Settings.Global, устанавливаемых LunarisApp, не нужно!

В действиях Macrodroid макросов вы можете читать значение в переменную макроса:
Действие -> Установить переменную -> Значение = Настройка системы (Global) -> имя опции из LunarisApp.

В триггере Macrodroid макроса вы можете установить триггер на изменение опции:
События устройства -> Настройка системы -> Global, текст = имя опции из LunarisApp.

Данные опции помечены [SGV].

Пример: LunarisApp сохраняет в опцию ru.mark99.prop.gear текущее состояние КПП. Вы можете установить триггер на изменение этой опции, читать значение (P / D / R / N) и при переключении в D (drive) желать приятного пути.

Интенты (intent) LunarisApp

Интент – сообщение в системе Android, которые передаются от приложения к приложению. Они содержат: имя пакета (имя пакета приложения-получателя), имя действия (строка) и могут содержать дополнения: набор параметров с именем и значением (ключ-значение).
В контексте LunarisApp: это всегда пользовательские (не системные) интенты. Часть интентов отправляется из LunarisApp в Macrodroid (для получения событий), часть отправляются из Macrodroid в LunarisApp для совершения каких-либо действий с авто.

Для событий LunarisApp -> Macrodroid вы можете установить триггер: Триггер -> События устройства -> Интент получен, действие = имя из LunarisApp. Пометка: [I L->M]

Для совершения действий Macrodroid -> LunarisApp можно использовать Действие -> Действия устройства -> Отправить интент. Пометка: [I M->L]
В данном случае нужно заполнить интент для отправки: цель = broadcast, имя пакета = ru.mark99.carapp, действие = имя опции LunarisApp, дополнения нужно заполнять только в случае, если этого требует опция.
В описании действий есть пометки о имени опции, их возможных значениях и типе данных – этого следует придерживаться, чтобы ваши действия выполнялись корректно.

Пример 1: включить подогрев руля
Действия устройства -> Отправить интент: Цель = broadcast, имя пакета = ru.mark99.carapp, действие = ru.mark99.carapp.func.wheelheat.enable, дополнения заполнять не нужно

Пример 2: открыть водительское окно на 70%
Действия устройства -> Отправить интент: Цель = broadcast, имя пакета = ru.mark99.carapp, действие = ru.mark99.carapp.func.window, дополнение 1 [имя = windowId, значение = 0, тип целое число/целая], дополнение 2 [имя = value, значение = 70, тип целое число/целая]

Пример 3: ловить долгие нажатия клавиши Menu
Триггер -> События устройства -> Интент получен, действие = ru.mark99.carapp.key.menu.long_click

События кнопок руля

События кнопок руля передаются через интенты и бывают двух видов: обработанные и необработанные.

Необработанные события передаются при наступлении простых событий кнопки – нажата либо отпущена. Декодировать двойной клик, долгое нажатие нужно самостоятельно.
Обработанные события передаются уже декодированные и в виде короткого, длинного и т.д. нажатия.

Формат действия для необработанных событий: [I L->M] ru.mark99.raw.key.<keyName>.<keyAction 0/1>
Пример: кнопка Menu нажата = ru.mark99.raw.key.menu.1

Формат действия для обработанных событий: [I L->M] ru.mark99.key.<keyName>.<keyActionName>
Пример: обычное нажатие Menu = ru.mark99.key.menu.click [I L->M]

Возможные имена кнопок: playpause, playnext, playprev, home, mode, mute, voice, call, voldown, volup
Возможные имена обработанных событий: click, long_click для всех; holding, holding_start, holding_end – только для кнопок громкости

Обращаю внимание: если вы собираетесь использовать макросы для обработки кнопок следует назначить в LunarisApp действие на кнопку “Ничего не делать”, в ином случае сработает и макрос и действие LunarisApp одновременно.
Обратите внимание: по умолчанию отправка интентов кнопок руля отключена в LunarisApp, включите ее в разделе интеграций Macrodroid

Функции LunarisApp

Включение режима “К дилеру”: [I L->M] ru.mark99.carapp.dealermode.1
Отключение режима “К дилеру”: [I L->M] ru.mark99.carapp.dealermode.0

Вход ГУ в спящий режим: [I L->M] ru.mark99.powerservice.ihuoffstate.enter
Выход ГУ из спящего режима: [I L->M] ru.mark99.powerservice.ihuoffstate.exit

Открытие приложений в режиме разделённого экрана (сплит)
[I M->L] ru.mark99.carapp.split.open
Дополнение 1: app1 = <имя пакета приложения 1>, тип строка
Дополнение 2: app2 = <имя пакета приложения 2>, тип строка

Включить режим “К дилеру”: [I M->L] ru.mark99.carapp.dealer_mode.enable
Дополнение 1: unlockCode = <код разблокировки из цифр>, тип строка

Отключить режим к дилеру: [I M->L] ru.mark99.carapp.dealer_mode.disable

Управление функциями авто

Подогрев руля: [I M->L] ru.mark99.carapp.func.wheelheat.<act>
Подогрев форсунок: [I M->L] ru.mark99.carapp.func.nozzleheat.<act>
Подогрев зоны дворников: [I M->L] ru.mark99.carapp.func.windshieldheat.<act>
Подогрев заднего стекла и зеркал: [I M->L] ru.mark99.carapp.func.defrostrear.<act>
Обдув лобового стекла: [I M->L] ru.mark99.carapp.func.defrostfront.<act>
Светодиодные дневные огни (ДХО): [I M->L] ru.mark99.carapp.func.drl.<act>
Доступные действия <act>: enable (включить), disable (отключить), toggle (переключить)

Подогрев сидений: [I M->L] ru.mark99.carapp.func.climat.seatheat
Дополнение 1: posId = 1 (водительское) или 4 (пассажирское), тип целое
Дополнение 2: value = число от 0 до 3, где 0 – выключено, тип целое

Управление окнами, шторкой и люком

Управление окнами: [I M->L] ru.mark99.carapp.func.window
Дополнение 1: windowId = см идентификаторы ниже, тип целое число
Дополнение 2: value = от 0 (закрыто) до 100 (полностью открыто), тип целое число

Идентификаторы окон: 0 – водительское, 1 – пассажирское, 2 – левое заднее, 3 – правое заднее

Управление состоянием люка: [I M->L] ru.mark99.carapp.func.sunroof.state
Дополнение 1: state = 0 – закрыто, 1 – полностью открыт, 2 – микро проветривание, тип целое число

Управление люком в % открытия: [I M->L] ru.mark99.carapp.func.sunroof
Дополнение 1: value = от 0 (закрыто) до 100 (полностью открыто), тип целое число

Управление состоянием шторки: [I M->L] ru.mark99.carapp.func.rollshade
Дополнение 1: value = от 0 (закрыто) до 100 (полностью открыто), тип целое число

Управление климат-контролем

Установка температуры: [I M->L] ru.mark99.carapp.func.climat.temp
Дополнение 1: value = от 17.0 до 32.0 с шагом в 0.5, тип число с плавающей запятой

Установка режима обдува: [I M->L] ru.mark99.carapp.func.climat.flow_mode
Дополнение 1: value, тип целое число; доступные значения:

  • 0 – лобовое стекло
  • 1 – рот
  • 2 – ноги
  • 3 – рот + ноги
  • 5 – ноги + лобовое стекло

Установка скорости обдува: [I M->L] ru.mark99.carapp.func.climat.fan_speed
Дополнение 1: value = от 1 до 8 включительно, тип целое число

Управление функциями климата: [I M->L] ru.mark99.carapp.func.climat.<act>
Дополнение 1: enabled = 1 (включено), 0 (выключено), тип целое число
Доступные действия <act>:

  • режим “авто”: auto
  • кондиционер: ac
  • режим максимального кондиционера: ac_max
  • режим рециркуляции: cycle
  • включение/выключение климата целиком: state

Состояние авто

Напряжение АКБ: [SGV] ru.mark99.prop.battery_vol
Тип: число с плавающей запятой (дробное)

Состояние зажигания: [SGV] ru.mark99.prop.ignition_state
Тип: строка, возможные варианты: off, acc, on, start, driving, lock

Остаток пробега (с приборки): [SGV] ru.mark99.prop.fuel_remains
Тип: целое число

Количество пробега (одометр): [SGV] ru.mark99.prop.odometer
Тип: целое число

Состояние КПП: [SGV] ru.mark99.prop.gear
Тип: строка, возможные варианты: P, D, R, N

Климат: текущая температура: [SGV] ru.mark99.prop.climat.current_temp
Тип: число с плавающей запятой (дробное)

Климат: текущая скорость вертилятора: [SGV] ru.mark99.prop.climat.fan_speed
Тип: целое число (от 0 до 8)

Готовые макросы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *