Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Nest termostat sleduje teplotu, vlhkost a využití pece/AC a uživatelé mohou vidět historická data pouze za 10 dní. Chtěl jsem shromáždit historická data (> 10 dní) a narazil jsem na skript google spreadsheets, který ping hnízdí každou nastavenou dobu a také získává místní data o počasí z openweathermap.org a ukládá je do tabulky.
Rok se vše dařilo a skript najednou přestal sbírat data. Po nějakém hledání Google jsem si uvědomil, že jeden řádek každých 5 minut pro google spreadhseet znamená dosažení maximálního limitu buněk, které může obsahovat tabulka Google. Aktualizoval jsem původní skript tak, aby stále pingoval Nest každých 5 minut, ale shromažďoval data v 1 řádku denně. Skript zkontroluje poslední řádek a pokud je stejný den, přidá data do stejného řádku, místo aby přidal nový řádek.
Kredit za původní scénář. Právě jsem provedl několik úprav, aby vyhovovaly mým potřebám.
// práce Michaela-Pesce: https://gist.github.com/michael-pesce/a4ba55d4fc4…// práce BEEZLY:
Klíčová slova: Nest Thermostat History, Nest Heat, Nest Temperature History, Nest Thermostat Hack, Nest Thermostat Tips, Nest Energy History, Nest Daily Use, Nest Daily Usage, Download nest termostat data
Krok 1: Vytvořte nový list Google (Uložit jako na mé sdílené tabulce)
Začněte odkazem na můj sdílený google list níže (Otevřete tento soubor a klikněte na Soubor a poté na „vytvořit kopii“a uložit na disk Google).
P. S: Nežádejte po mně povolení k úpravě tohoto souboru. Než provedete jakékoli změny, které nebudete moci provést, protože jsem to sdílel jako tabulku pouze pro čtení, proveďte „vytvoření kopie“na svém vlastním disku Google a poté pokračujte v úpravách.
docs.google.com/spreadsheets/d/1zTHUfiltWomhPYmfD3TYRRoJZsgcjrQ_A2xHSTK5_dE/edit?usp=sharing
Lidem, kteří mají problémy s autorizací: Zkuste skript v následujícím souboru. Má další funkce související s novými autorizačními protokoly Nest 2.0. Nezkoušel jsem to, takže pokud narazíte na nějaké dotazy nebo problémy, napište prosím do sekce komentářů. Kredit na mcr2582.
www.dropbox.com/s/8rbtg7pb0xl9n9x/nest%20t…
Další variace skriptu od Coder56: Další podrobnosti v sekci komentáře. Nezkoušel jsem to, ale skript je organizován velmi dobře a zdá se, že funguje dobře pro mnoho uživatelů.
docs.google.com/spreadsheets/d/15bTn9_Cv9I…
Krok 2: Zkopírujte skript
Tento krok přeskočte, pokud jste uložili kopii na můj sdílený list Google.
- Na panelu nabídek klikněte na Nástroje -> Script Editor… a otevřete Script Editor (nové okno)
- V editoru skriptů odstraňte všechny výchozí skripty/soubory a vytvořte nový (nazval jsem ho „NestScript.gs“)
- Vystřihněte a vložte celý tento text z připojeného souboru do souboru NestScript.gs, poté ULOŽTE SKRIPT (K tomuto kroku použijte skript z listu Google, který jsem sdílel v kroku 1. Pokud jste do tohoto souboru uložili kopii, měl by již mít skript. Pokud jste to neudělali, můžete tento soubor otevřít a přejít do sekce skriptů a zkopírovat text. Smazal jsem textový soubor skriptu, který byl připojen k tomuto kroku, protože nebyl aktuální a může způsobit zmatek.).
Krok 3: Nasazení jako webové aplikace
- Na panelu nabídek klikněte na Nástroje -> Script Editor… a otevřete Script Editor (nové okno)
- Na panelu nabídek klikněte na Publikovat -> Nasadit jako webovou aplikaci
- Vyberte „Spustit aplikaci jako já“
- Vyberte, kdo má přístup k aplikaci: „Kdokoli, dokonce anonymní“
-
Prozatím zkopírujte/vezměte na vědomí odkaz na vaši novou webovou aplikaci a bude přidán do rutiny runDataCollection níže (první kód) v dalších krocích.
Krok 4: Spouštěče
Zde definujete, jak často sbírat data.
- Na řádku nabídek klikněte na Spouštěče aktuálního projektu
- Klikněte na Přidat nový spouštěč
- Pro Spustit vyberte funkci runDataCollection, Events: časově řízené a vyberte zbytek podle svých preferencí (dělám každých 5 minut)
Krok 5: Další informace ve skriptu
Pojďme upravit skript na váš konkrétní termostat, město a list Google.
Každá změna je uvedena s číslem řádku skriptu. Na tento řádek ve skriptu budete muset přejít a aktualizovat jej podle níže uvedených pokynů. (Čísla řádků by měla být správná, pokud je řádek 40 „runDataCollection ()…“).
- Řádek 45: přidejte odkaz webapp do směrování runDataCollection (To jste zaznamenali v jednom z předchozích kroků)
- Řádek 53: Nest uživatelské jméno a heslo
- Řádek 77: ID zařízení termostatu
ID každého termostatu můžete získat tak, že přejdete na hlavní panel Nest, kliknete na termostat, kliknete na ikonu ozubeného kola vpravo nahoře a zkopírujete pole „Sériové číslo“. Bude to vypadat nějak takto: 02XX01XX471XXX3S
Řádek 90: ID města (další pokyny ve skriptu nad tímto řádkem mohou být užitečné.)
Chcete -li zjistit ID města, přejděte na „https://openweathermap.org/find?q=“vyhledejte své město, klikněte na odkaz na město a ID bude 7místné číslo v adrese URL.
Řádek 103: ID listu Google (další pokyny ve skriptu nad tímto řádkem mohou být užitečné.)
ID listu lze načíst z adresy URL. Podívejte se na tento vzor, kde je ID listu v adrese URL:
Krok 6: Dokončete tabulku
Tento krok přeskočte, pokud jste začali s mojí sdílenou tabulkou.
Tyto dva řádky musí být v tabulce, aby kód fungoval.
První řádek (řádek záhlaví): Mezery oddělují sloupce
Datum/čas Měsíc Den Rok Teplota Vlhkost Venku Teplota Venku Vlhkost Teplo_Použití AC_Použití Počasí AutoAway
Druhý řádek:
Přidejte včerejší datum do prvního sloupce a nuly do zbývajících sloupců.
To je vše. Nechte skript spustit a měl by přidat jeden řádek denně a pingovat termostat a místní počasí pro data podle vámi nastavené spouštěcí frekvence.
Pokud znovu nasadíte webovou aplikaci, použijte novou revizi. Měl jsem problémy s používáním stejných revizí, když skript neběžel
Pokud skript neběží, přejděte znovu na předchozí kroky a ujistěte se, že jste skript aktualizovali přesně podle těchto kroků. Toto je nejpravděpodobnější příčina problému se spuštěným skriptem
Známé problémy (Pokud někdo zná opravu, odpovězte prosím v sekci komentáře):
1) Skript nedokáže získat data z hnízda po celý den. Mám spoušť každých 5 minut, což by mělo vést k celkovému počtu 288 přečtení za den. Dostávám ~ 170. Nejnižší, kterou jsem dostal, je 16 a nejvyšší je 264.