Как мог бы работать бесключевой доступ
Если вы слушали 17-й выпуск моего подкаста, то знаете, что мне не нравится, как работает бесключевой доступ в машинах. А как он мог бы работать? Идеальный результат такой: машина открывается для кого надо и не открывается для кого не надо, и ничего специального делать не приходится.
Сейчас это решается тем, что в кармане у водителя лежит ключ, и машина реагирует на него. Есть разные реализации. В одной машина проверяет наличие ключа поблизости в момент попытки открытия. Если ключ рядом, машина открывается. Уходя от машины, надо не забыть её закрыть, прикоснувшись к специальной области на ручки двери. В другой машина открывается, когда водитель достаточно близко и закрывается, когда водитель отходит достаточно далеко. Открытие и закрытие машины сопровождается звуковым сигналом, чтобы водителю было спокойнее.
Проблемы, которые я вижу: можно забыть закрыть машину; можно открыть машину, когда не собирался; звуковые сигналы бесят.
Мне хочется придумать схему, где у машины вообще нет состояний «открыта» или «закрыта». Машина всегда закрыта, а авторизация происходит при каждой попытке открытия двери. Так машину нельзя забыть закрыть, и это снимает необходимость звуковой сигнализации, потому что сигнализировать не о чем.
Всё просто, если считать, что к машине подходит только водитель: дверь откроется, если у него есть ключ и не отроется, если нет.
Но в жизни возникают сценарии с несколькими людьми. Допустим, у нас семья, ребёнок подбежал к машине раньше родителя и дёргает ручку — надо, чтобы дверь открылась, если взрослый с ключом неподалёку. Но что, если водитель садится в машину в мрачном переулке, а рядом стоят какие-то хмыри? Здесь уже наоборот хочется, чтобы открывалась только водительская дверь, рядом с которой ключ.
Можно сделать тумблерчик на ключе. Машина не умеет оценивать намерения людей, так что у водителя будет способ явно выбрать режим: «безопасный», когда авторизация работает только на водительской двери, а остальные открываются только изнутри, и «доверительный», когда все двери открываются при наличие водителя поблизости. Увидел хмырей — переключил в безопасный режим прямо в кармане. Проблема тумблерчика в том, что за ним придётся активно следить — в каждом мрачном переулке тянуться в карман, чтобы убедиться, что всё хорошо.
Можно сделать безопасный режим основным. По умолчанию всегда открывается только водительская дверь (если ключ рядом), а чтобы дать открыть другую, надо нажать кнопку, которая временно включает доверительный режим. И тут проблема! Временно — это насколько? Как сформулировать, что именно делает эта кнопка? И чем это отличается от того, что мы снова вернулись в мир, где у нас есть «открытая» и «закрытая» машина, просто теперь это как-то неявно происходит?
Отличие именно в устранении проблемы, что машину забыли закрыть, и необходимости звуковой сигнализации. «Временно» — это, конечно, компромисс, но лучше у меня пока придумать не получается. Думаю, секунд на десять можно включать — достаточно, чтобы хоть кто-то один успел открыть дверь. Тут ещё важно, что временно машина открывается не «вообще», как в существующих реализация, а всё ещё при условии, что водитель с ключом рядом. То есть если водитель вышел из подъезда, нажал на «доверие», и тут же зашёл обратно, потому что забыл что-то дома, машина не откроется кому попало — ключа-то рядом нет.
Это мы рассмотрели ситуацию снаружи. Теперь посмотрим изнутри, а точнее — на сценарии, когда водитель с ключом внутри. Ха, а как мы отличим, водитель там с ключом или только ключ? Если машина «всегда закрыта», как я предложил выше, то как только ты забудешь в ней ключ, ты больше в неё не попадёшь. Получается, внутри машины мы не можем убрать кнопки открытия-закрытия? Машина должна быть по умолчанию открыта, если ключ внутри, и закрываться только при нажатии на кнопку с замочком. Фактически смысл этой кнопки — сообщить машине, что внутри есть человек! Впрочем, для спасения забытого ключа достаточно, чтобы открывалась только одна дверь, а не все.
Подведём итог. Когда ключ снаружи, по умолчанию каждая дверь открывается только если непосредственно рядом с ней есть ключ. Водитель может нажать на ключе кнопку, которая на десять секунд включает режим «доверия» — в нём любая дверь открывается, если вблизи автомобиля есть ключ. Когда ключ внутри, по умолчанию снаружи открывается водительская дверь, но остальные нет. Если нажать на кнопку с открытым замочком, все двери снаружи станут открываться; если с закрытым — все перестанут. Вернуться в исходное промежуточное состояние «снаружи открывается только водительская дверь» нельзя, потому что оно больше низачем не нужно: нажав на любую кнопку внутри, мы уже сообщили машине, что ключ не забыт в машине, а спасать его не нужно.
Наверное семейные жители суперблагополучных районов должны мочь настроить режим постоянного доверия.
Кстати, по идее ключ вообще не нужен — он должен легко добавляться в телефон и часы. Механический ключ, конечно, должен быть на всякий случай, но пусть он дома лежит.
Что думаете? Про какой сценарий я забыл?
По сути, ты описал бесключевой доступ в Тесле. Работает за счет телефона, машина открывается только когда ты подошел прямо очень близко, никакого звука. Есть резервный доступ за счет карты, которую легко хранить в кошельке.
Приехали компанией на рыбалку, на дачу, куда-то на шашлыки на пленэре, сняли дом в лесу на выходные и т. п. Машина стоит в безопасном месте, где доступ к ней физически имеют только доверенные люди (огороженная территория, или просто до ближайшего недоверенного человека вёрст пятнадцать). В машине то и дело что-то надо: то зажигалку, то солнечные очки, то ребёнок игрушку забыл, то что-то недовыгрузили. Нормальную машину в этих условиях просто не запирают; как поступать с бесключевой от Ильи Бирмана?
Просто оставляешь ключ внутри.
Мойка машины, постоянно открываются-закрываются двери, достаются коврики, выкидывается мусор из дверей. Кто-то помогает водителю с мойкой, тоже открывает двери, но двери ему не открываются, и водителю надо каждый раз включать режим «доверия» вытирать руки, лезть в карман, включать режим доверия, потом продолжать мойку, через 30 секунд повторить.
Остановка на заправке на трассе: один уже сходил в туалет, второй только пошел, первый еще вспомнил, что забыл купить шоколадку к кофе. Водитель же сперва заправляется (так, что тут за систему заправки придумали?), потом стоит в очереди на заправку, платит, одна карта не проходит, бонусы еще списать надо, потом еще сам в туалет сходит... А параллельно ему еще надо контролировать таймер режима «доверие».
В первом случае просто оставляешь ключи внутри.
Второй случай какой-то сильно искусственный, чтобы для него оптимизировать. Ничё не надо контролировать, просто заплати за бензин, «второй» подождёт раз в жизни.
Когда водитель уже за рулем, тоже куча сценариев:
Короче, много сценариев, совсем без управления человеком, понимающим контекст, кажется, не получится.
Пара сценариев:
1) ребенок сказал, что возьмет из машины вещь, а сам засел там с телефоном. Получается, через десять секунд он оттуда уже не выйдет?
2) ок, ключ от машины в телефоне. За городом села батарая. Что делать?
1) изнутри-то машина в любом случае откроется.
2) ну а если в автомобильном ключе села батарея? телефон-то хотя бы зарядить можно, плюс надо, чтобы машина открывалась как турникеты в метро, даже «разряженным» телефоном
За всеми этими штучками забывается правило: явное лучше неявного. У обычной машины два состояния: открыта и закрыта. Если я решил, что ей нужно быть закрытой, так и будет. Если я решил оставить ее открытой на сутки на даче, тоже так и будет. Никаких удивлений. А статье куча условий: если это, то одно, если это, то другое. Слишком замороченно запоминать. Просто дай человеку свободу делать так, как нужно ему в конкретной ситуации.
Я согласен с вашим принципом, но дизайн — это такая штука, где в конфликте могут находиться разные принципы. Если считать ваш принцип подавляющим, то вы как бы говорите, что бесключевого доступа быть не должно вообще. А я считаю, что должно. Я считаю, что он него пользы больше, чем от «принципа».
Мне нравится идея бесшовного режима, что двери заблокированы по умолчанию.
Как по мне, все двери должны блокироваться и открываться каждая самостоятельно. И открываться они должны когда кто либо хочет открыть любую дверь, то в момент дергания за ручку, дверь автоматически разблокируется, как это сделано в некоторых машинах когда выходишь из машины с заблокированными дверьми.
Водитель или владелец машины настраивает по умолчанию режим доверия к миру. Допустим, Дружелюбный, Доверительный, Тревожный. Есть кнопка переключения режима, которая временно переводит в другие режимы. Причём если идём в сторону более из закрытого в более открытый, то тайминг более быстрый (поминутный) возвращения в состояние по умолчанию, а если в обратную сторону, то более продолжительный (почасовой). С возможностью настроить комфортный тайминг.
При дружелюбном режиме, открывается всем с любой стороны когда ключ хоть в машине, хоть снаружи.
При доверительном режиме, если человек уже сидит, то дверь снаружи заблокированна. Но так же стоит запрограммировать опцию джентельмена, когда кто-то помогает выходить снаружи.
При аварии двери должны быть разблокированы автоматом.
Если в машине все пристёгнуты, то нет смысла держать двери открытыми.
Вот верно написали выше про «явное лучше неявного».
Выяснять «что там решила машина» в каждой из описанных ситуаций — такое себе развлечение. Еще и потребности разные бывают.
Единственное, что бы я поменял на существующих брелоках сигнализации — вместо кнопок-тычек любой переключатель с модальностью: выставлен переключатель «открыто всегда», значит именно так машина сейчас себя и ведет. На брелках с двусторонней связью, которые с экраном, кстати, так и работает (у меня не такой).
Вопрос «забытого внутри ключа» решается доступом к смене режима с телефона.
Самый главный забытый сценарий — когда производитель принудительно обновляет прошивку, внося непрошеные и неожиданные «улучшения» в логику работы системы, иногда со сбросом пользовательских настроек.
Ключ излишен. Надо чтобы по отпечатку открывалось и можно было легко добавить новый. те когда доверенный человек тянет ручку — открыто, а если другой — закрыто