it:iot:hodinky-garmin-api-call

Toto je starší verze dokumentu!


Hodinky Garmin a volání API

Pro hodinky Garmin existuje zajímavá aplikace {API}Call. Použití je popsáno v dokumentaci. Aplikace má 39 předdefinovaných tlačítek, které lze namapovat na volání API příkazů.

Bohužel je zde z povahy věci dost omezení. Například není implementování OAuth autentizace, kterou využívá Spotify, Google a jiné servery. Nabízí se ovšem obejítí skrze Node RED. Autentizaci udělat na Node REDu a vytvořit si jednoduché api, které pak budou volat hodinky. Nebo si prostě pod Node RED schovat sekvenci příkazů, které se spustí na Node REDu a ovládat tak i domácnost skrze hodinky.

Node RED mám na lokální síti a tady jsem poprvé narazil. Jak je popsáno v diskusi: Connect version 4.20 broke local http access?, tak hodinky neumí přistupovat k serverům v lokální síti. Nelze v lokální síti využít HTTP protokol. A bohužel HTTPs také nelze využít - to lze využít pouze na internetu. Musel bych tedy server s Node REDem zpřístupnit z internetu. A aby toho nebylo málo, tak software Garmin vynucuje vyloženě HTTPs protokol.

To už se nám naskládalo dost nepříjemných situací. Přesto je zde řešení, jak naučit hodinky Garmin volat API v lokální síti skrze HTTP. Někdo si dal už tu práci přede mnou a popsal slepé cesty i vítěznou v článku: About Communication Between Garmin SDK and a Raspberry Pi

Software garmin umí volat pouze několik serverů skrze HTTP. Podle článku jsou to tyto (všechny jsem netestoval):

<domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">garmin.com</domain>
        <domain includeSubdomains="true">garmin.cn</domain>
        <domain includeSubdomains="true">garmincdn.com</domain>
        <domain includeSubdomains="true">180.168.57.218</domain>
        <domain includeSubdomains="true">180.168.57.219</domain>
        <domain includeSubdomains="true">strava.com</domain>
        <domain includeSubdomains="true">127.0.0.1</domain>
        <domain includeSubdomains="true">localhost</domain>
    </domain-config>
  • it/iot/hodinky-garmin-api-call.1673204290.txt.gz
  • Poslední úprava: 2023/01/08 18:58
  • autor: Petr Nosek