+1

Активировал штатный hands-free в H3 2026 рест.

dvv854 3 weeks ago updated 3 weeks ago 17

Добрый день!

Активировал штатный hands-free в H3 2026 рест.

Постановка/снятие штатной системы по удалению/приближению проходит нормально, однако E67 не следует за её статусом. Slave по can включён и работает нормально при касании ручки.

Провёл исследование по мотивам аналогичной проблемы с F7.

Для теста написал пару программ ГЛ:

1. "ЦЗ закрыт" --> "коротко пикнуть сиреной один раз"
2. "Постановка штаткой" --> "коротко пикнуть сиреной два раза"

Других событий, позволяющих отследить изменения slave/цз, не нашёл.

Ни одна из программ не отрабатывает по удалению/приближению. Следовательно, чтение "SLAVE" и "Состояние ЦЗ" либо работает как должно либо используется только внутри алгоритма E67.

В нашей прошивке заявлено чтение "SLAVE" и "Состояние ЦЗ" по CAN-A (без дополнительных подключений).


Подключил к CAN-A адаптер и снял логи тройного lock-unlock по нажатию на внутреннюю кнопку блокировки на двери водителя.
Выявилась такая активность:

```
345 0030000040000000 4:44>40
345 0010000040000000 1:30>10
345 0010000044000000 4:40>44
345 0030000044000000 1:10>30
345 0030000040000000 4:44>40
345 0010000040000000 1:30>10
345 0010000044000000 4:40>44
345 0030000044000000 1:10>30
345 0030000040000000 4:44>40
345 0010000040000000 1:30>10
345 0010000044000000 4:40>44
345 0030000044000000 1:10>30
```
Это позволяет предположить, что статус ЦЗ можно получить из сообщений с адресом `0x345` в байте со смещением 1 (втором в обычной жизни) по маске `0x20`.

Аналогичная активность имеется при тройных постановках/снятиях через обычный бесключевой (при касании ручки), штатный hands-free (без касания ручки), а также брелком/меткой starline.

Расскажите, пожалуйста:

1. Нужны ли начитчикам CAN логи штатного hands-free?
2. Какие ограничения наложены на события "Постановка штаткой" и "Состояние ЦЗ", не позволяющие использовать их в ГЛ?

3. Будут ли корректно выставлены эти события для использования их в ГЛ?


Спасибо!

+1

прошивки пишутся под машины в штатном исполнении со штатными настройками.

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

1. "ЦЗ закрыт" --> "коротко пикнуть сиреной один раз"

это изменение ЦЗ по команде от сигналки, а не статус в машине.

Чтоб реализовать SLAVE Вам надо добавить постановку в охрану по пропадании связи с меткой и снятие с охраны по открытию двери при наличии связи с меткой. 

3. Будут ли корректно выставлены эти события для использования их в ГЛ?

подробнее опишите какие события и для каких ГЛ хотите использовать.

Спасибо.


Про прошивки для всего штатного понятно. Однако здесь речь о _возможной неточности_ алгоритма перевода сообщений CAN во внутреннее состояние E67. Просто потому, что раньше именно таких сообщений в шине не было видно. Поэтому прежде всего и предложил поделиться логами.

Про SLAVE в виде "постановки в охрану по пропадании связи с меткой ..." это ведь по сути "свободные руки" сигнализации, прав? Если да, то их как раз и пришлось отключить из-за набивших оскомину проблем с надёжностью определения дистанции BT в условиях мусора в эфире. Штатный hands-free за несколько дней использования пока показывает значительно более корректное поведение.

По"ЦЗ закрыт" стало понятнее, хотя кмк выглядит именно как изменение "Состояние ЦЗ" (вычитываемого из CAN-A).


Но тогда само изменение "Состояние ЦЗ" (вычитываемого из CAN-A) как-то выставлено в виде события самого E67 или статуса автомобиля?

А "Постановка штаткой" это что? По моей обыденной логике это событие, отображающее чтение (или соотносящееся с чтением) "SLAVE" из CAN-A.

Вообще, глядя на заявленные возможности чтения https://can.starline.ru/61/78/10742#functions, хотелось бы для начала испытать такие программы:

- "при закрытии ЦЗ и выключенном зажигании поставить систему на охрану без закрытия ЦЗ" // если возможно

- "при закрытии ЦЗ и выключенном зажигании поставить систему на охрану и закрыть ЦЗ" // неважно, что дважды

Следовательно, чтение "SLAVE" и "Состояние ЦЗ" либо работает как должно либо используется только внутри алгоритма E67.

В нашей прошивке заявлено чтение "SLAVE" и "Состояние ЦЗ" по CAN-A (без дополнительных подключений).

Так и есть, данные статусы используются для внутренних алгоритмов, а также (в некоторых авто) для корректной работы альтернативного управления светом и цз на соответствующих каналах.

Если да, то их как раз и пришлось отключить из-за набивших оскомину проблем с надёжностью определения дистанции BT в условиях мусора в эфире. Штатный hands-free за несколько дней использования пока показывает значительно более корректное поведение.


Ну тут тоже такой момент, в сигнализации антенна БТ одна, а у машины и в салоне и в багажниках и в ручках, она более точно понимает положение ключа в авто или нет и с любой стороны.

Лично себе на машине написал свободные руки "своими руками". Да, работает чуть тормознее, но зато исключает возможности перебоев.

Условно на ГЛ примерно так: событие: метка любая появилась, авто в охране, действие: ничего не делать 2 сек.

Вторая программа:событие: первая программа завершение работы, условие: метка:есть, действие перейти в режим авторизации и (при необходимости) открыть цз.

На постановку примерно так же. 

Логика простая, по мере приближения или удаления, по факту ожидается стабильная связь с меткой, и потом уже выполнение команд.

Там в исходном сообщении во фразе "Следовательно, чтение "SLAVE" и "Состояние ЦЗ" ...." опечатка. Следует читать как "Следовательно, чтение "SLAVE" и "Состояние ЦЗ" либо НЕ работает как должно либо используется только внутри алгоритма E67." -- ув. @эрондондон, поправьте пожалуйста, исправить сам не могу.

Спасибо.

данные статусы используются для внутренних алгоритмов, а также (в некоторых авто) для корректной работы альтернативного управления светом и цз на соответствующих каналах.

подробнее опишите какие события и для каких ГЛ хотите использовать.

Собственно, хотелось бы иметь:

  • события "Статусы автомобиля: ЦЗ (CAN) закрывается/открывается"
  • события "Статусы автомобиля: SLAVE (CAN) стал активен" -- здесь мне не хватает знаний корректно описать. По сути, нужно уметь определить момент, когда штатная система ставится в охрану/снимается с охраны. Если это то же самое (без учёта возможного аналогового подключения slave), что и "Режим работы: Постановка/Снятие штаткой", то этого было бы совершенно достаточно (при условии работоспособности, см. исходное сообщение)
  • условия "Статусы автомобиля: ЦЗ (CAN) закрыт/открыт"

Да, собственные "свободные руки" вполне можно защитить от дребезга с помощью более редких чтений состояния метки. Однако пока кмк выглядит так, что достаточно было бы подправить обработчик сообщений CAN-A, чтобы он отлавливал и штатную постановку/снятие по hands-free автомобиля, а дальше всё само встанет на свои места. Т.е. вышеприведённый список станет просто ненужным.

А можете поподробнее раскрыть алгоритм "На постановку примерно так же"?

Дело в том, что ГЛ на "Снять с охраны вслед за штатным HF" похоже получается не нужна. Ведь при открытии разблокированных дверей (штатный HF снимается с охраны до того, как рука коснулась ручки) сигнализация и так запускает процедуру авторизации. Не ошибаюсь в логике тут?

А вот ГЛ "Поставить в охрану вслед за штатным HF" вызывает вопросы. Следуя идее @erondondon, составил в первом чтении такую программу:

если "Метка (любая): пропала" // поиграть с зоной потери метки, чтобы была чуть больше, чем зона потери штатного HF
при "ЦЗ: закрыт" // потому что штатный HF к этому времени уже закрыл ЦЗ
то "Режим работы: поставить в охрану без закрытия ЦЗ"
Наверняка надо навесить ещё условий, чтобы случайное пропадание метки в движении не вызывало срабатывания программы.

Однако вызывает вопросы удобство использования такой функции. Если родные "свободные руки" сигнализации легко переключить в приложении, то де/активировать программу ГЛ нелегко.

Это приводит нас к выводу, что, возможно, стоит рассмотреть такой вариант:

- "свободные руки" сигнализации настраиваются на только постановку по пропаданию метки

- "свободные руки" автомобиля, напротив, на только снятие штатной охраны

Прошу прокомментировать.

Спасибо.

очень много текста. не обижайтесь, но я уже потерял нить вопроса.

На что нужно ответить?

- "при закрытии ЦЗ и выключенном зажигании поставить систему на охрану без закрытия ЦЗ" // если возможно

нельзя опираться только на ЦЗ. постановка в охрану от кнопки ЦЗ в салоне работать не должна.  Если это критично важно, то нужны аналоговые подключения. Статус из кана тут не поможет.

- "при закрытии ЦЗ и выключенном зажигании поставить систему на охрану и закрыть ЦЗ" // неважно, что дважды

1. для чего 2 раза закрывать цз?

2. в этом предложении Вы написали бесконечный цикл. закрылся цз - включить охрану - закрыть цз, а раз он закрылся, то включить охрану и закрыть цз, значит включить охрану и закрыть цз. Не ясно для чего это.

де/активировать программу ГЛ нелегко.

легко через переменные. вебинар прям недавно был об этом.

Давайте пойдем с другой стороны:

опишите ситуацию жизненную, которую Вы пытаетесь решить? Весь вопрос сейчас в том, что Вы отходите от машины, замки закрываются, а StarLine не встает в охрану? или что-то еще?

1. для чего 2 раза закрывать цз?

Это не две разные программы, а два предполагаемых варианта одной.

Но выкинем всё это.

легко через переменные

Точно. Остаётся придумать подходящее событие и условия и тут с фантазией не очень, поскольку это должно быть _удобно_.

Дело в том, что ГЛ на "Снять с охраны вслед за штатным HF" похоже получается не нужна. Ведь при открытии разблокированных дверей (штатный HF снимается с охраны до того, как рука коснулась ручки) сигнализация и так запускает процедуру авторизации.

Вот это ^^^ утверждение верное? Не ошибаюсь в логике тут?

замки закрываются, а StarLine не встает в охрану

Точно так. И текущие варианты решения:

0. "свободные руки" сигнализации настраиваются на только постановку по пропаданию метки; штатный hands-free автомобиля, напротив, на только снятие штатной охраны

1. пишется ГЛ "Поставить в охрану вслед за штатным HF" на постановку по пропаданию метки (с возможностью отключения переменной); штатный hands-free автомобиля на только снятие штатной охраны

2. дорабатывается вычитка из CAN-A события SLAVE при штатном hands-free автомобиля и всё работает бесшовно

Какой вариант Вам кажется предпочтительным?

Спасибо!

не обижайтесь, но я уже потерял нить вопроса

Ни в коем случае. Спасибо, что просвещаете.

А букв много, потому что "хочешь понять сам -- объясни другому".

Остаётся придумать подходящее событие и условия

Внешнее событие с сервера номер ..... После добавления ГЛ с таким событием в приложении появится кнопка с текстом, который написан в названии программы. Нажатие кнопки включает или выключает переменную. Дальше в нужных Вам программах уже проверяете статус переменной и понимаете включена функция или выключена. Посмотрите вебинар. Запись в вк-видео лежит.

0. "свободные руки" сигнализации настраиваются на только постановку по пропаданию метки; штатный hands-free автомобиля, напротив, на только снятие штатной охраны

штатный и на постановку, и на снятие с охраны. СтарЛайн свободные руки только на постановку при потере метки. Зоны потери-обнаружения метки на максимум поставить.

Для снятия с охраны пишем ГЛ

Дверь - открытие

Если режим работы охрана или тревога и если метка любая на связи

действие - перейти в запрет поездки.

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

мне кажется это самый простой вариант и никаких дополнительных действий не требует.

Внешнее событие с сервера номер

E67 LoRA ECO, без сотовой связи, так что только локальное управление, причём брелок сигнализации зачастую не в доступе. Но это детали.

мне кажется это самый простой вариант

Опробую и такой вариант. Спасибо!

E67 LoRA ECO , так она вроде без метки ....

метка куплена, поскольку без неё начинаются известные проблемы со смартфоном.

тогда в качестве события использовать не команду с сервера, а команду с брелка подходящую Вам. При включении переменной делать еще и один пик зумером, а при выключении 2 пика зумером чтоб Вам было понятно в каком сейчас состоянии функция.

Тааак...теперь и я потерял всю нить разговора...)))

1. Попробую обобщить: мы хотим сделать так как нам надо только программно? Без каких либо доп. подключений?

2. Уже ответы:

Однако пока кмк выглядит так, что достаточно было бы подправить обработчик сообщений CAN-A, чтобы он отлавливал и штатную постановку/снятие по hands-free автомобиля, а дальше всё само встанет на свои места.


Не встанет, не поправить, не получится.... Если интересно почему так, просто абстрогируйтесь от Старлайн и почитайте (благо инфы в свободном доступе много) : как работает CAN, какие пакеты каких размеров и как передаются в устройства, работающих на одной шине. Станет понятно, что там итак ооочень громкий информационный шум, и у каждого пакета есть еще таймаут. И пакетов там летает бесконечное количество. Поэтому "отловить" штатную постановку стабильно может не получится, просто потому, что пока пакет ждет очередь на обработку в определенный блок, он может быть просрочен и ответ не прилет. Или полетит, но не долетит. Нельзя просто сказать в шине CAN - "дайте мне только то, что мне нужно и пусть остальные блоки подождут" ))))

Надеюсь как то правильно объяснил.

Если в пункте 1. выше ответ "да", то придется колдовать, если ответ "нет" -  у Вас туева куча свободных входов. можно подкинуть на силу цз, и колдовство не понадобиться, дальше начнется магия ГЛ.

1. пишется ГЛ "Поставить в охрану вслед за штатным HF" на постановку по пропаданию метки (с возможностью отключения переменной); штатный hands-free автомобиля на только снятие штатной охраны

Тут нужно учесть один момент. Вам придется отделить управление штаткой от старлайн. Потому что Hf поставит штатку в охрану, старлайн при этом тоже отправит постановку штатки, а после перепостановки штатки функция Slave не доступна, это есть в описание функционала прошивки. Там тоже "собака  зарыта"

Мы хотим всё сделать программно. Если бы было желание крутить хвосты, просто молча сделал бы на canny что хотел. Кстати, это вариант проверить теорию.

Про CAN я вполне начитан, собрал логи, убрал неотносящийся к делу мусор и выявил повторяющиеся сообщения, которые я бы интерпретировал как SLAVE.

Напомню, что сделал это для 4 вариантов управления замком:

- кнопкой изнутри -- нет SLAVE

- бесключом -- есть SLAVE типа 1

- hands-free -- есть SLAVE типа 2

- брелком starline -- нет SLAVE

Так что лично мне очевидна и связь с управлением и различия в постановке/снятии по бесключевому доступу (с касанием ручки) от постановки/снятия по hands-free.

Поэтому в прошивке разумеется можно отлавливать SLAVE типа 2, после чего SLAVE по CAN от hands-free заработает из коробки.

Об этом и сообщил. Хотя вполне понимаю, что это может быть нишево и неинтересно.


Перепостановка штатки (30 сек) не читается как SLAVE, так и есть. Обошёл это активированием перепостановки сигнализации в 25 сек.

Всем спасибо, буду проверять.

На всякий случай выложу тут сессии сообщений CAN для возможных будущих исследователей.


```

======== Три раза закрыть/открыть изнутри

345 00300000XX000000
345 00100000XX000000 1:30>10
345 00300000XX000000 1:10>30
345 00100000XX000000 1:30>10
345 00300000XX000000 1:10>30
345 00100000XX000000 1:30>10
345 00300000XX000000 1:10>30

======== Три раза поставить/снять штатным бесключевым доступом (с касанием ручки)

345 00300001XX000000
0A5 0010000100000000
345 00100001XX000000 1:30>10
0A5 0002001000000000 1:10>02 3:01>10
345 00300001XX000000 1:10>30
0A5 0010000100000000 1:02>10 3:10>01
345 00100001XX000000 1:30>10
0A5 0002001000000000 1:10>02 3:01>10
345 00300001XX000000 1:10>30
0A5 0010000100000000 1:02>10 3:10>01
345 00100001XX000000 1:30>10
0A5 0002001000000000 1:10>02 3:01>10
345 00300001XX000000 1:10>30

======== Три раза поставить/снять штатным hands-free

345 00300000XX000000
0A5 0010000000000000
345 00100000XX000000 1:30>10
0A5 0002000000000000 1:10>02
345 00300000XX000000 1:10>30
0A5 0010000000000000 1:02>10
345 00100000XX000000 1:30>10
0A5 0002000000000000 1:10>02
345 00300000XX000000 1:10>30
0A5 0010000000000000 1:02>10
345 00100000XX000000 1:30>10
0A5 0002000000000000 1:10>02
345 00300000XX000000 1:10>30

======== Три раза поставить/снять брелком STARLINE

345 00300000XX000000
345 00100000XX000000 1:30>10
345 00300000XX000000 1:10>30
345 00100000XX000000 1:30>10
345 00300000XX000000 1:10>30
345 00100000XX000000 1:30>10
345 00300000XX000000 1:10>30

```

+1

У Вас в городе региональный представитель есть? Надо ему физический доступ к авто, тогда что-то может и зашевелится. Тут Ваши сообщения CAN просто  останутся. Никто не будет корректировать прошивку без доступа к авто, на котором можно сражу ее отттестировать.

Можно будет попробовать. Спасибо.