Comments 15
1. Покупаем за 10 евро платку(и) с ESP32 на борту
2. Заливаем прошивку: датчик сигналов BLE + отправку списка обнаруженных девайсов на MQTT шину
3. Размещаем платки в удобных местах там где есть USB
4. Детектим наличие людей по сигналам BLE фитнес-браслетов
Я использовал данную систему как детектор присутствия на основе фитнес-браслетов Xiaomi MiFit. Мы управляли отоплением что бы отключать его когда все уходят из дома. Сейчас мы переехали в другой дом с паушальной платой за отопление и необходимость системы отпала, отключил датчик присутствия за ненадобностью, сейчас у нас управление больше сконцентрировано на замечательных кнопках ZigBee от Ikea для отдачи команд типа «выключить всё» при уходе из дома, оказалось несколько практичнее.
З.Ы. с удивлением обнаружил что код прошивки часов + датчик BLE не выложил на гитхаб, могу поделиться если есть интерес.
NodeMCU ESP32 стоит гораздо дешевле 10 евро. И конечно она сильно универсальнее этого способа. Плюс именно BLE-устройства колонки, вероятно, не найдут.
Но когда колонки уже есть, почему бы не найти им дополнительное применение. Особенно, когда они на распродажах строят $20 и уже и так в каждой комнате.
PS: про выключить всё у меня есть статья, как из глупого дверного замка сделать умный. Но она не на Хабре.
Ну да, у каждого BT девайса свой уникальный айди, вроде MAC у сетевых карт. По нему и можно детектить свой браслет. Я как то пробовал давно уже такое сделать. Купил брелок с бт. Пробовал мерить расстояние до него. Если к примеру на кухне, то включать свет. Но все оказалось нестабильно. Если брелок в кармане, стоит его закрыть рукой или повернуться как то неловко, то все, сигнал не ловится или слабый. Ты стоишь рядом а система думает, что ты в десяти метрах и гасит свет. А так прикольно. Да. Пробовал ещё с Pebble часами так делать, это работает, причем лучше чем брелок с бт меткой, но только если часы неспаренны с телефоном. Они просто в невидимом режиме. Только если их отлучить от телефона, тогда детектятся, но тогда зачем они, только время показывают? :) Как сделать, что бы спаренные обнаружились, не нашел. Может надо такие, которые с двумя устройствами одновременно могут спариваться, не знаю.
Забил вообще, в маленькой квартире все равно это баловство имхо. Трудно придумать нормальный сценарий. Датчики движения проще и надёжнее.
Я пробовал сделать детектор, фиксирующий подъезжающие к точке машины (на разгрузку), чтобы их (машины) считать. Стабильность, мягко говоря, хромала, да. Вероятно, мне не хватало фундаментальных знаний радио теории. Машина могла не фиксироваться при нахождении на точке, а могла фиксироваться в 100м от неё.
У нас работало в целом неплохо, радиус действия был примерно на комнату, в каждой стоял ESP32 модуль, который присылал список из MAC-адресов устройств которые он чувствовал в эфире, а центральный сервер умного дома уже сам разбирался что делать с этой информацией (у меня используется OpenHab).
Вы так же можете сканировать вручную на устройствах с BLE на линуксе через команду hcitool — так можно проверить концепцию с радиусом, частотой рассылки и т.п.
На эту тему довольно много всего писано, зацените например статью от Domoticz, там с примерами девайсов подходящих.
Вот! Недавно думал как раз, неужели нету АПИ локального? Хотел поискать, а тут статья в тему :)
Правда разочаровался, так как хотел заставить колонку произносить текст какой нибудь. Типа с Малинки дёрнуть, что бы сказала колонка к примеру, что кошка пришла на террасу. Что бы дверь открыть. В АПИ этого к сожалению нету.
Так это легко делается на колонках Google в том же Home Assistant. Всё на базовых компонентах, которые идут в его поставке. У меня так колонка ругается, когда влажность в ванной большая и нужно открыть дверь. Или когда CO2 в зале повышен и нужно открыть окно.
Можно ли это реализовать без HA?
2. Разместить эту mp3 где-то на веб-сервере в локальной сети.
3. Отправить команду на колонку для проигрывания этой mp3 по протоколу Chromecast.
Именно это всё умеет делать Home Assistant в базовой поставке.
А вы сами пробовали использовать gpsoauth?
Попробовал скрипт get_tokens.py (
gist.github.com/rithvikvibhu/952f83ea656c6782fbd0f1645059055d ).
Подставил USERNAME/PASSWORD.
Все время возвращает ошибку:
[*] Getting master token...
{'Error': 'BadAuthentication'}
[!] Could not get master token.
[*] Master token: None
[*] Getting access token...
{'Error': 'BadAuthentication'}
[!] Could not get access token.
[*] Access token: None
[*] Done.
Есть идеи, что может быть не так?
Делаем трекер Bluetooth-устройств с помощью колонок Google