Google Home, Googles udvalg af smart home-højttalere, mangler en ordentlig API. Men en frygtløs udvikler på Reddit stykkede uofficiel dokumentation sammen ved at sniffe lokal netværkstrafik.
Google Home, Googles voksende udvalg af AI-drevne højttalere, byder på et væld af muligheder for hobbyfolk i smarte hjem. Problemet er, at det er låst ret stramt. Når det kommer til at få adgang til alarmdata, indstillinger, Bluetooth-tilstande og andre oplysninger på enheden, har du to muligheder: Tjek Google Home-appen på din smartphone og/eller tablet, eller råb et kommando. Lige nu mangler Google Home en ordentlig API.
Det har ikke stoppet en uforfærdet udvikler på Google Home subreddit fra at sammensætte en selv. Redditor rithvikvibhu omhyggeligt snusede en Google Home-enheds trafik og registrerede hver netværksanmodning, og samlede resultaterne i et smart snydeark på Github. Indtil videre er det lykkedes ham at identificere lokale GET- og POST-kommandoer for equalizerindstillinger, enhedsindstillinger, nattilstand og mere, udover forbindelsesanmodninger, der returnerer en given højttalers Wi-Fi-konfiguration, dens understøttede liste over tidszoner og lokaliteter og navnene på bundet Bluetooth-enheder.
Det er en forholdsvis enkel proces. Når du har identificeret IP-adressen på din Google Home-højttaler ved at bruge en app som f.eks Fling, kan du foretage GET- og POST-opkald ved at tilføje adressen med URI'er i Google Homes lokale API-dokumentation.
Denne URI, for eksempel, fanger en liste over lokale alarmer og timere på en Google Home-højttaler:
/setup/assistant/alarms
Her er GET-kaldet ("X"-mærkerne er pladsholdere):
http://192.168.x.x: 8008/setup/assistant/alarms
Navigering til den adresse på en hvilken som helst enhed, der er tilsluttet det samme netværk som Google Home, returnerer et JSON-svar med dag, måned, år og tidspunkt, hvor alarmen er planlagt til at lyde:
Denne relaterede URI returnerer alarm og timer lydstyrke på en Google Home-højttaler:
/setup/assistant/alarms/volume
POST-kaldet returnerer lydstyrken i decimalform:
0.8199999928474426
Hvis du føler dig modig, denne URI genstarter en Google Home-enhed:
/setup/reboot
Den uofficielle dokumentation for Google Homes lokale API er tilgængelig på rithvikvibhus Github-depot, sammen med den kode, der kræves for at bruge den. Husk dog, at det på ingen måde er officielt – forvent ikke, at API'erne opfører sig forudsigeligt.
Kilde: Google Home Local APIKilde 2: /r/GoogleHome