[Гаджеты, Разработка для интернета вещей, Умный дом] Делаем трекер Bluetooth-устройств с помощью колонок Google
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Многие, вероятно, не в курсе, что у колонок Google есть свой локальный API. Я сейчас говорю не про протокол Chromecast, который бесспорно хорош. Я говорю про API, который позволяет настраивать колонки Google с помощью мобильного приложения Google Home.
Первая информация об этом протоколе появилась в январе 2018 года. API можно было свободно пользоваться в пределах локальной сети.
В январе 2019 года Google выпустил обновление, добавляющее обязательную авторизацию. Для выполнения команд требовался локальный токен — прям как в колонках Яндекса. В сообществе нашли решение в виде запуска виртуальной машины с рутованным Android, а затем извлечение токена из приложения Google Home по adb. Сложность такого подхода заставила многих отказаться от этого API.
И вот совсем недавно автор неофициальной документации локального API предложил более цивилизованный способ получить локальный токен — с помощью логина и пароля от Google-аккаунта.
Сперва необходимо получить master-токен для своего аккаунта Google. Для этого нужно притворяться Android-приложением от Google, используя библиотеку gpsoauth (Google Play Services OAuth). Для безопасности можно создать и использовать пароль приложений Google вместо своего основного пароля. И в итоге сохранить только токен. Он выдаётся надолго.
Затем, используя ту же библиотеку, получить access-токен. И уже с его помощью, используя утилиту gRPCurl и предложенный автором файл proto, получить ваш Home Graph.
Home Graph сам по себе очень интересен: он содержит полную информацию о вашем умном доме Google, включая список устройств, комнат, локацию во всех подробностях. В Home Graph есть локальные токены колонок.
Ещё там есть список типов устройств, которые потенциально собирается поддерживать Google. Я насчитал 130 штук, и среди них есть “устройства” кошка и собака...
Типы устройств из Home Graph
SPL
AC_HEATING: Air conditioner and heating unit
AC_UNIT: Air conditioner
AIRCOOLER: Air cooler
AIRFRESHENER: Air freshener
AIRPURIFIER: Air purifier
ALARM: Alarm
AUDIO_VIDEO_RECEIVER: AVR
AUTO: Automobile
AWNING: Awning
BAG: Bag
BATHTUB: Bathtub
BATTERY: Battery
BED: Bed
BIKE: Bike
BLENDER: Blender
BLINDS: Blinds
BOILER: Boiler
BUTTON: Button
CAMERA: Camera
CARBON_MONOXIDE_DETECTOR: Carbon monoxide detector
CAT: Cat
CHARGER: Charger
CHROMECAST: Chromecast
CLOCK: Clock
CLOCKRADIO: Clock radio
CLOSET: Closet
CLOTHING: Clothing
COFFEE_MAKER: Coffee maker
COMPUTER: Computer
COOKTOP: Cooktop
CURTAIN: Curtain
DEHUMIDIFIER: Dehumidifier
DEHYDRATOR: Dehydrator
DISHWASHER: Dishwasher
DISPLAY: Display
DOG: Dog
DOOR: Door
DOORBELL: Doorbell
DRAWER: Drawer
DRYER: Dryer
ELEVATOR: Elevator
FAN: Fan
FAUCET: Faucet
FILTER: Filter
FIREPLACE: Fireplace
FREEZER: Freezer
FRYER: Fryer
GAME_CONSOLE: Game console
GARAGE: Garage
GARDEN: Garden
GATE: Gate
GOOGLE_HOME: Speaker
GRILL: Grill
HEADPHONES: Headphones
HEATER: Heater
HOOD: Range hood
HUMIDIFIER: Humidifier
IDBADGE: ID badge
INTERCOM: Intercom
KETTLE: Kettle
KEYS: Keys
LAPTOP: Laptop
LIGHT: Light
LOCATORTAG: Locator tag
LOCK: Lock
MAILBOX: Mailbox
MATTRESS: Mattress
MICROPHONE: Microphone
MICROWAVE: Microwave
MIXER: Mixer
MOP: Mop
MOWER: Mower
MULTICOOKER: Multicooker
NETWORK: Network
NOTEBOOK: Notebook
OUTLET: Outlet
OVEN: Oven
PASSPORT: Passport
PERGOLA: Pergola
PETFEEDER: Pet feeder
PHONE: Phone
PICTURE: Picture frame
PRESSURECOOKER: Pressure cooker
RADIATOR: Radiator
REFRIGERATOR: Refrigerator
REMOTECONTROL: Remote control
ROBOT: Robot
ROOF: Roof
ROUTER: Router
ROUTINE: Router
SCENE: Scene
SCREEN: Screen
SECURITYSYSTEM: Security system
SENSOR: Sensor
SETTOP: Set-top box
SHOWER: Shower
SHUTTER: Shutter
SMOKE_DETECTOR: Smoke detector
SOUNDBAR: Soundbar
SOUSVIDE: Sous-vide cooker
SPEAKER: Speaker
SPEAKER_GROUP: Speaker group
SPEAKER_PAIR: Speaker pair
SPRINKLER: Sprinkler
STANDMIXER: Stand Mixer
STREAMING_BOX: Streaming Box
STREAMING_SOUNDBAR: Streaming Soundbar
STREAMING_STICK: Streaming Stick
STYLER: Styler
SWITCH: Switch
SYNCBOX: Sync box
TABLET: Tablet
THERMOSTAT: Thermostat
TOILET: Toilet
TOY: TOY
TV: TV
UMBRELLA: Umbrella
VACUUM: Vacuum
VALVE: Valve
VENTILATOR: Ventilator
WALLET: Wallet
WATCH: Watch
WASHER: Washer
WATERHEATER: Water heater
WATERPURIFIER: Water purifier
WATERSOFTENER: Water softener
WEATHERSTATION: Weather station
WINDOW: Window
WINECELLAR: Wine Cellar
YOGURTMAKER: Yogurt maker
Так чем же хорош локальный API? С его помощью можно узнавать список будильников и удалять их (создавать нельзя). Можно управлять эквалайзером и режимом “не беспокоить”. Но самое интересное — можно запускать поиск окружающих устройств Bluetooth.
В списке Bluetooth-устройств будет MAC-адрес и мощность сигнала. И по возможности — имя и класс устройства.
На этих данных можно построить “логику присутствия”. Конечно, при условии, что ваши устройстройства дают себя обнаружить. В Home Assistant когда-то давно был как раз такой компонент, но его удалили после появления авторизации в API.
Если в вашем доме несколько Google-колонок, можно попытаться реализовать позиционирование человека в пределах квартиры.
У меня достаточно много проектов, чтоб заняться ещё и этим. Но надеюсь, кто-нибудь воспользуется этими знаниями и сделает что-то прикольное для себя, а может, и для сообщества.
===========
Источник:
habr.com
===========
Похожие новости:
- [Гаджеты, Производство и разработка электроники, Процессоры, Смартфоны] Apple загрузила заказами на iPhone 12 все линии TSMC на 5 нм
- [Я пиарюсь] How I’m creating a digital mini-guitar
- [Гаджеты, Смартфоны] Microsoft Surface Duo протестировали на прочность
- [Беспроводные технологии, Программирование микроконтроллеров, Разработка для интернета вещей, Производство и разработка электроники, Интернет вещей] ИК датчик движения на STM32
- [Беспроводные технологии, Гаджеты, Информационная безопасность, Умный дом] Bluetooth-атака BLESA затрагивает миллиарды мобильных устройств
- [Разработка для интернета вещей, Гаджеты, Умный дом] Подключаем новый Xiaomi Gateway 3 к Home Assistant без паяльника и смс
- [Гаджеты] Новые лампы Remez с солнечным спектром
- [Гаджеты, Компьютерное железо, Старое железо, Лайфхаки для гиков] Как смотреть «Ютубчик» на старых телевизорах без рекламы, управляя «родным» ИК пультом ДУ
- [Видеотехника, Гаджеты, Носимая электроника, Работа с видео] GoPro выпустила новую экшн-камеру HERO9 Black
- [IT-компании, Гаджеты, Смартфоны] Spotify призвала антимонопольщиков расследовать единую подписку Apple One
Теги для поиска: #_gadzhety (Гаджеты), #_razrabotka_dlja_interneta_veschej (Разработка для интернета вещей), #_umnyj_dom (Умный дом), #_google_home, #_google_home_mini, #_bluetooth, #_gadzhety (
Гаджеты
), #_razrabotka_dlja_interneta_veschej (
Разработка для интернета вещей
), #_umnyj_dom (
Умный дом
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 21:45
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Многие, вероятно, не в курсе, что у колонок Google есть свой локальный API. Я сейчас говорю не про протокол Chromecast, который бесспорно хорош. Я говорю про API, который позволяет настраивать колонки Google с помощью мобильного приложения Google Home. Первая информация об этом протоколе появилась в январе 2018 года. API можно было свободно пользоваться в пределах локальной сети. В январе 2019 года Google выпустил обновление, добавляющее обязательную авторизацию. Для выполнения команд требовался локальный токен — прям как в колонках Яндекса. В сообществе нашли решение в виде запуска виртуальной машины с рутованным Android, а затем извлечение токена из приложения Google Home по adb. Сложность такого подхода заставила многих отказаться от этого API. И вот совсем недавно автор неофициальной документации локального API предложил более цивилизованный способ получить локальный токен — с помощью логина и пароля от Google-аккаунта. Сперва необходимо получить master-токен для своего аккаунта Google. Для этого нужно притворяться Android-приложением от Google, используя библиотеку gpsoauth (Google Play Services OAuth). Для безопасности можно создать и использовать пароль приложений Google вместо своего основного пароля. И в итоге сохранить только токен. Он выдаётся надолго. Затем, используя ту же библиотеку, получить access-токен. И уже с его помощью, используя утилиту gRPCurl и предложенный автором файл proto, получить ваш Home Graph. Home Graph сам по себе очень интересен: он содержит полную информацию о вашем умном доме Google, включая список устройств, комнат, локацию во всех подробностях. В Home Graph есть локальные токены колонок. Ещё там есть список типов устройств, которые потенциально собирается поддерживать Google. Я насчитал 130 штук, и среди них есть “устройства” кошка и собака... Типы устройств из Home GraphSPLAC_HEATING: Air conditioner and heating unit
AC_UNIT: Air conditioner AIRCOOLER: Air cooler AIRFRESHENER: Air freshener AIRPURIFIER: Air purifier ALARM: Alarm AUDIO_VIDEO_RECEIVER: AVR AUTO: Automobile AWNING: Awning BAG: Bag BATHTUB: Bathtub BATTERY: Battery BED: Bed BIKE: Bike BLENDER: Blender BLINDS: Blinds BOILER: Boiler BUTTON: Button CAMERA: Camera CARBON_MONOXIDE_DETECTOR: Carbon monoxide detector CAT: Cat CHARGER: Charger CHROMECAST: Chromecast CLOCK: Clock CLOCKRADIO: Clock radio CLOSET: Closet CLOTHING: Clothing COFFEE_MAKER: Coffee maker COMPUTER: Computer COOKTOP: Cooktop CURTAIN: Curtain DEHUMIDIFIER: Dehumidifier DEHYDRATOR: Dehydrator DISHWASHER: Dishwasher DISPLAY: Display DOG: Dog DOOR: Door DOORBELL: Doorbell DRAWER: Drawer DRYER: Dryer ELEVATOR: Elevator FAN: Fan FAUCET: Faucet FILTER: Filter FIREPLACE: Fireplace FREEZER: Freezer FRYER: Fryer GAME_CONSOLE: Game console GARAGE: Garage GARDEN: Garden GATE: Gate GOOGLE_HOME: Speaker GRILL: Grill HEADPHONES: Headphones HEATER: Heater HOOD: Range hood HUMIDIFIER: Humidifier IDBADGE: ID badge INTERCOM: Intercom KETTLE: Kettle KEYS: Keys LAPTOP: Laptop LIGHT: Light LOCATORTAG: Locator tag LOCK: Lock MAILBOX: Mailbox MATTRESS: Mattress MICROPHONE: Microphone MICROWAVE: Microwave MIXER: Mixer MOP: Mop MOWER: Mower MULTICOOKER: Multicooker NETWORK: Network NOTEBOOK: Notebook OUTLET: Outlet OVEN: Oven PASSPORT: Passport PERGOLA: Pergola PETFEEDER: Pet feeder PHONE: Phone PICTURE: Picture frame PRESSURECOOKER: Pressure cooker RADIATOR: Radiator REFRIGERATOR: Refrigerator REMOTECONTROL: Remote control ROBOT: Robot ROOF: Roof ROUTER: Router ROUTINE: Router SCENE: Scene SCREEN: Screen SECURITYSYSTEM: Security system SENSOR: Sensor SETTOP: Set-top box SHOWER: Shower SHUTTER: Shutter SMOKE_DETECTOR: Smoke detector SOUNDBAR: Soundbar SOUSVIDE: Sous-vide cooker SPEAKER: Speaker SPEAKER_GROUP: Speaker group SPEAKER_PAIR: Speaker pair SPRINKLER: Sprinkler STANDMIXER: Stand Mixer STREAMING_BOX: Streaming Box STREAMING_SOUNDBAR: Streaming Soundbar STREAMING_STICK: Streaming Stick STYLER: Styler SWITCH: Switch SYNCBOX: Sync box TABLET: Tablet THERMOSTAT: Thermostat TOILET: Toilet TOY: TOY TV: TV UMBRELLA: Umbrella VACUUM: Vacuum VALVE: Valve VENTILATOR: Ventilator WALLET: Wallet WATCH: Watch WASHER: Washer WATERHEATER: Water heater WATERPURIFIER: Water purifier WATERSOFTENER: Water softener WEATHERSTATION: Weather station WINDOW: Window WINECELLAR: Wine Cellar YOGURTMAKER: Yogurt maker Так чем же хорош локальный API? С его помощью можно узнавать список будильников и удалять их (создавать нельзя). Можно управлять эквалайзером и режимом “не беспокоить”. Но самое интересное — можно запускать поиск окружающих устройств Bluetooth. В списке Bluetooth-устройств будет MAC-адрес и мощность сигнала. И по возможности — имя и класс устройства. На этих данных можно построить “логику присутствия”. Конечно, при условии, что ваши устройстройства дают себя обнаружить. В Home Assistant когда-то давно был как раз такой компонент, но его удалили после появления авторизации в API. Если в вашем доме несколько Google-колонок, можно попытаться реализовать позиционирование человека в пределах квартиры. У меня достаточно много проектов, чтоб заняться ещё и этим. Но надеюсь, кто-нибудь воспользуется этими знаниями и сделает что-то прикольное для себя, а может, и для сообщества. =========== Источник: habr.com =========== Похожие новости:
Гаджеты ), #_razrabotka_dlja_interneta_veschej ( Разработка для интернета вещей ), #_umnyj_dom ( Умный дом ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 21:45
Часовой пояс: UTC + 5