Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Nest termostat sleduje teplotu, vlhkosť a používanie pece/klimatizácie a používatelia môžu vidieť historické údaje iba za 10 dní. Chcel som zhromaždiť historické údaje (> 10 dní) a narazil som na skript tabuliek Google, ktorý ping hniezdi každý nastavený čas a tiež získava miestne údaje o počasí z openweathermap.org a ukladá ich do tabuľky.
Rok išlo všetko dobre a scenár zrazu prestal zbierať údaje. Po nejakom vyhľadávaní v službe Google som si uvedomil, že jeden riadok každých 5 minút pre google spreadhseet znamená prekročenie maximálneho počtu buniek, ktoré môže tabuľka Google obsahovať. Pôvodný skript som aktualizoval tak, aby každých 20 minút stále pingoval Nest, ale zhromažďoval som údaje v 1 riadku denne. Skript skontroluje posledný riadok a ak je ten istý deň, potom namiesto pridania nového riadka pripojí údaje do rovnakého riadka.
Kredit za pôvodný scenár. Práve som vykonal niekoľko úprav, ktoré vyhovovali mojim potrebám.
// práca Michaela-Pesca: https://gist.github.com/michael-pesce/a4ba55d4fc4…// Práca spoločnosti BEEZLY:
Kľúčové slová: 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: Vytvorte novú tabuľku Google (Uložiť ako v mojej zdieľanej tabuľke)
Začnite mojím zdieľaným hárkom Google, ktorý je prepojený nižšie (Otvorte tento súbor, kliknite na položku Súbor a potom „vytvoriť kópiu“a uložte na disk Google).
P. S: Nežiadajte odo mňa povolenie na úpravu tohto súboru. Pred vykonaním akýchkoľvek zmien, ktoré nebudete môcť vykonať, pretože som to zdieľal ako tabuľku iba na čítanie, urobte „kópiu“na vlastnom disku Google a potom pokračujte v úpravách.
docs.google.com/spreadsheets/d/1zTHUfiltWomhPYmfD3TYRRoJZsgcjrQ_A2xHSTK5_dE/edit?usp=sharing
Ľudia, ktorí majú problémy s autorizáciou: Skúste skript v nasledujúcom súbore. Má ďalšie funkcie súvisiace s novými autorizačnými protokolmi Nest 2.0. Neskúšal som to, takže ak narazíte na nejaké otázky alebo problémy, pošlite prosím ich do sekcie komentárov. Kredit na mcr2582.
www.dropbox.com/s/8rbtg7pb0xl9n9x/nest%20t…
Ďalšia variácia scenára od Coder56: Ďalšie podrobnosti v sekcii komentárov. Neskúšal som to, ale skript je veľmi dobre zorganizovaný a zdá sa, že funguje dobre pre mnohých používateľov.
docs.google.com/spreadsheets/d/15bTn9_Cv9I…
Krok 2: Skopírujte skript
Ak ste si kópiu uložili do môjho zdieľaného hárku Google, tento krok preskočte.
- Na paneli s ponukami kliknite na Nástroje -> Script Editor … a otvorte Script Editor (nové okno)
- V editore skriptov odstráňte všetky predvolené skripty/súbory a vytvorte nový (nazval som ho „NestScript.gs“)
- Vystrihnite a prilepte celý tento text z priloženého súboru do súboru NestScript.gs a potom ULOŽTE SKRIPT (Na tento krok použite skript z hárku Google, ktorý som zdieľal v kroku 1. Ak ste do tohto súboru uložili kópiu, Mal by už mať skript. Ak ste to neurobili, môžete otvoriť tento súbor, prejsť do sekcie skriptov a skopírovať text. Odstránil som textový súbor skriptu, ktorý bol pripojený k tomuto kroku, pretože nebol aktuálny a môže spôsobiť zmätok..).
Krok 3: Nasadiť ako webovú aplikáciu
- Na paneli s ponukami kliknite na Nástroje -> Script Editor … a otvorte Script Editor (nové okno)
- Na paneli s ponukami kliknite na položku Publikovať -> Nasadiť ako webovú aplikáciu
- Vyberte „Spustiť aplikáciu ako ja“
- Vyberte, kto má prístup k aplikácii: „Ktokoľvek, dokonca anonymný“
-
Skopírujte/vezmite si zatiaľ odkaz na svoju novú webovú aplikáciu a bude pridaný do rutiny runDataCollection nižšie (prvý kód) v ďalších krokoch.
Krok 4: Spúšťače
Tu definujete, ako často sa majú zbierať údaje.
- Na paneli s ponukami kliknite na položku Spúšťače aktuálneho projektu
- Kliknite na položku pridať nový spúšťač
- V časti Spustiť vyberte funkciu runDataCollection, Events: riadenú časom a zvyšok vyberte podľa svojich preferencií (robím každých 5 minút)
Krok 5: Ďalšie informácie v skripte
Upravme skript na váš konkrétny termostat, mesto a list Google.
Každá zmena je uvedená s číslom riadka skriptu. Budete musieť prejsť na tento riadok v skripte a aktualizovať ho podľa nižšie uvedených pokynov. (Čísla riadkov by mali byť správne, ak je riadok 40 „runDataCollection ()…“).
- Riadok 45: pridajte odkaz na webovú aplikáciu do smerovania runDataCollection (To ste poznamenali v jednom z predchádzajúcich krokov)
- Riadok 53: Používateľské meno a heslo Nest
- Riadok 77: ID zariadenia termostatu
Identifikátor každého termostatu môžete získať tak, že prejdete na hlavný panel Nest, kliknete na termostat, kliknete na ikonu ozubeného kolieska vpravo hore a skopírujete pole „Sériové číslo“. Bude to vyzerať asi takto: 02XX01XX471XXX3S
Riadok 90: ID mesta (môžu vám pomôcť ďalšie pokyny v scenári nad týmto riadkom.)
Ak chcete nájsť ID mesta, prejdite na „https://openweathermap.org/find?q=“vyhľadajte svoje mesto, kliknite na odkaz na mesto a ID bude 7 -miestne číslo v adrese URL.
Riadok 103: ID listu Google (ďalšie pokyny v skripte nad týmto riadkom môžu byť užitočné.)
ID listu je možné získať z tejto webovej adresy. Pozrite sa na tento vzor, kde nájdete ID listu v adrese URL:
Krok 6: Dokončite tabuľku
Tento krok preskočte, ak ste začali s mojou zdieľanou tabuľkou.
Aby kód fungoval, musia byť tieto dva riadky v tabuľke.
Prvý riadok (riadok hlavičky): stĺpce oddeľuje medzera
Dátum/čas Mesiac Deň Rok Teplota vonkajšia teplota Vonkajšia teplota Vlhkosť Teplo_Používanie AC_Používanie Počasie Automatické preč
Druhý riadok:
Pridajte dátum včerajška do prvého stĺpca a nuly do zvyšných stĺpcov.
Toto je to. Nechajte skript bežať a mal by pridať jeden riadok denne a odoslať ping na váš termostat a miestne počasie na údaje podľa vami nastavenej spúšťacej frekvencie.
Ak znova nasadíte webovú aplikáciu, použite novú revíziu. Mal som problémy s používaním rovnakých verzií, pretože skript nebol spustený
Ak skript nie je spustený, zopakujte predchádzajúce kroky a uistite sa, že ste skript aktualizovali presne podľa týchto krokov. Toto je najpravdepodobnejšia príčina problému so spusteným skriptom
Známe problémy (Ak niekto pozná opravu, odpovedzte v sekcii komentárov):
1) Skript nedokáže získať údaje z hniezda po celý deň. Mám spúšťač každých 5 minút, čo by malo viesť k celkovému počtu 288 prečítaní za deň. Mám ~ 170. Najnižšia hodnota, ktorú som dostal, je 16 a najvyššia je 264.