Connecting to Supabase…

Tasker — продолжение отладки гарнитуры (Scene OK → данные кнопки)

Дата: 2026-06-26
Устройство: Pixel 6a, Tasker 6.6.20
Статус: Scene Headset Event + Hide работают; имя кнопки (%par1 / %evtprm1) пока пустое

См. также:

Эталонный бэкап с телефона: Docs/TaskerTasks/BackUps/backupBtnHideOk.xml


1. Что уже работает (контрольная точка)

Компонент Статус
Профиль BT Headset Any Play на гарнитуре → задача Headset Log Event
Scene Headset Event Появляется (Dialog)
Кнопка Hide Закрывает панель
Headset Hide Panel ▶ Run закрывает панель
Hide Scene / Show Scene Имя везде Headset Event

2. Критичные настройки (не менять без причины)

2.1 Show Scene — только Dialog

На Pixel Overlay / Overlay+ часто не получают тапы → кнопка Hide молчит.

Параметр Значение
Display As Dialog
Show Exit Button Off
Continue Task Immediately On
Overlay + Off (если случайно Overlay)

В XML бэкапа backupBtnHideOk.xml: Show Scene в Headset Log Eventarg1=3 (Dialog).

2.2 Одно имя Scene

Место Имя
SCENES Headset Event
Show Scene Headset Event
Hide Scene (TAP + Headset Hide Panel) Headset Event

Заголовок на панели «BT Headset Debug» — только текст, не имя Scene.

2.3 Кнопка Hide

  • Элемент BtnHide, тип Button
  • TAPHide SceneHeadset Event или Perform TaskHeadset Hide Panel
  • Set Depth — BtnHide выше HsLog (если снова Overlay — см. §2.1)

2.4 Задачи в проекте Base

Задача Назначение
Headset Log Event профиль → переменные → Show Scene
Headset Hide Panel Hide Scene
Headset Debug Start очистить поля → Show Scene (опционально; в бэкапе Show Scene ещё Overlay — при использовании поставить Dialog)

3. Симптом: Play открывает Scene, повторный Play — «ничего не меняется»

Причина A — Scene не перерисовывается

Tasker не обновляет текст на уже открытом Dialog. Variable Set выполняется, но %Hs_raw на экране старый.

Проверка: Tasker → Run Log → второй Play на гарнитуре.

Run Log Вывод
Снова Headset Log Event задача идёт → нужно обновить Scene (ниже)
Нет записи профиль не срабатывает второй раз

Правка Headset Log Event — перед Show Scene (или вместо одного Show):

# Действие
Variable Set (как сейчас)
N Hide SceneHeadset Event
N+1 Show SceneHeadset Event, Dialog

Каждое нажатие Play закроет и откроет панель с новыми значениями.

Причина B — поля всё равно пустые

Даже после обновления: p1:%par1 e1:%evtprm1State Media Button на Pixel не передаёт имя кнопки. Scene работает, данных нет → §4.


4. Симптом: par1 / evt1 пустые (подтверждено)

На панели буквально %par1, %evtprm1 — профиль срабатывает, параметры не приходят.

Шаг 4.1 — Media Button Events Grab (§6A)

В начало Headset Log Event (или Enter-профиля BT Headset Any):

  1. MediaMedia Button Events
  2. Action: Grab
  3. Use New API: On

Play на гарнитуре → смотреть Raw, evt1 на Scene.

Шаг 4.2 — профиль Event

Если Grab не помог:

  1. Новый профиль Event → Media Button → Any
  2. Задача: Headset Log Event
  3. BT Headset Any (State) → OFF

Шаг 4.3 — AutoVoice

Если State и Event пустые → §6C в Debug-Guide (AutoVoice BT Pressed).


5. Задача Headset Log Event — эталонный порядок

1. Media Button Events → Grab (Use New API)     ← §4.1, когда дойдёте
2. Variable Set %Hs_p1  ← %par1
3. Variable Set %Hs_e1  ← %evtprm1
4. Variable Set %Hs_e2  ← %evtprm2
5. Variable Set %Hs_raw ← p1:%par1 e1:%evtprm1 e2:%evtprm2
6. Variable Set %Hs_time ← %TIME %DATE
7. Variable Set %Hs_log ← %TIME | %Hs_raw  (Append On, Do Maths Off)
8. Hide Scene → Headset Event                  ← §3, обновление
9. Show Scene → Headset Event (Dialog)

Flash в конце — по желанию.


6. Тесты по порядку

Тест A — Hide без гарнитуры

  1. Headset Log Event — панель
  2. Hide или ▶ Headset Hide Panel — закрылась

Тест B — первый Play

  1. Только BT Headset Any ON
  2. AndroidChat захват OFF
  3. Play → Scene появилась

Тест C — второй Play + Run Log

  1. Dialog открыт → Play снова
  2. Run Log — есть Headset Log Event?
  3. После Hide + Show в задаче — время / %Hs_log обновились?

Тест D — имя кнопки

После §4.1: evt1 или par1 не пустые → If → Intent в AndroidChat.


7. После сессии

  1. Профили Media Button → OFF
  2. Play в музыке снова OK
  3. См. Tasker-BT-Key-Policy.md

8. Восстановление из бэкапа

Файл: Docs/TaskerTasks/BackUps/backupBtnHideOk.xml

  • Tasker → DataRestore (или экспорт/импорт по вашей версии)
  • Проект Base, Scene Headset Event
  • Внимание: profile id 200 = task id 200 (Headset Log Event) — при странном импорте см. tasker-xml-conventions

После restore проверить Headset Debug Start: Show Scene → Dialog, если будете пользоваться.


9. Чеклист для отчёта

  • [ ] Show Scene = Dialog
  • [ ] Hide Scene имя = Headset Event
  • [ ] Hide на панели работает
  • [ ] Run Log на 2-й Play
  • [ ] Hide + Show в задаче (если экран не обновляется)
  • [ ] Grab (§4.1) пробовали?
  • [ ] Значение evt1 / par1 после Grab

Краткая шпаргалка

Работает:  Play → Headset Log Event → Dialog Headset Event → Hide OK
Не работает: пустые par1/evt1 → Media Button Events Grab → Event → AutoVoice
Не обновляется: Hide Scene + Show Scene перед каждым показом
Эталон:    backupBtnHideOk.xml