Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Nest termostat prati temperaturu, vlažnost i upotrebu peći/izmjenične struje, a korisnici mogu vidjeti povijesne podatke samo 10 dana. Htio sam prikupiti povijesne podatke (> 10 dana) i naišao na skriptu google tablica koje se ping gnijezde svaki put, a dobivaju i lokalne vremenske podatke s openweathermap.org i spremaju u proračunsku tablicu.
Godinu dana sve je išlo dobro, a skripta je odjednom prestala prikupljati podatke. Nakon nekog Google pretraživanja, shvatio sam da jedan redak svakih 5 minuta za google spreadhseet znači postizanje maksimalnog ograničenja ćelija koje Google tablica može primiti. Ažurirao sam izvornu skriptu tako da i dalje pinguje Nest svakih 5 minuta i prikuplja podatke u jednom retku dnevno. Skripta provjerava zadnji redak i ako je isti dan, tada dodaje podatke u isti redak, umjesto da dodaje novi redak.
Zasluge za originalnu skriptu. Upravo sam napravio nekoliko izmjena koje odgovaraju mojim potrebama.
// djelo Michaela-pescea: https://gist.github.com/michael-pesce/a4ba55d4fc4…// BEEZLYJEvo djelo:
Ključne riječi: Povijest Nest termostata, Nest Toplota, Povijest temperature gnijezda, Hack termostata Nest, Savjeti za Nest termostat, Povijest gnijezda Nest, Dnevna upotreba Nesta, Dnevna upotreba Nesta, Preuzimanje podataka gnijezda termostata
Korak 1: Izradite novu Google tablicu (Spremite kao na mojoj zajedničkoj proračunskoj tablici)
Počnite s mojim dijeljenim google listom povezanim dolje (otvorite tu datoteku, kliknite Datoteka, a zatim "napravi kopiju" i spremite na svoj google disk).
P. S: Ne tražite od mene da vam dam dopuštenje za uređivanje ove datoteke. Prije nego unesete bilo kakve izmjene, koje nećete moći izvršiti jer sam to podijelio kao proračunsku tablicu samo za čitanje, napravite "napravite kopiju" na svom Google pogonu, a zatim nastavite s uređivanjem.
docs.google.com/spreadsheets/d/1zTHUfiltWomhPYmfD3TYRRoJZsgcjrQ_A2xHSTK5_dE/edit?usp=sharing
Ljudima koji imaju problema s autorizacijom: Isprobajte skriptu u sljedećoj datoteci. Ima dodatne funkcije povezane s Nest -ovim novim protokolima za autorizaciju 2.0. Nisam probao, pa ako naiđete na bilo kakva pitanja ili probleme, postavite ih u odjeljku za komentare. Zasluge za mcr2582.
www.dropbox.com/s/8rbtg7pb0xl9n9x/nest%20t…
Još jedna varijacija Coder56 skripte: Dodatni detalji u odjeljku komentara. Nisam probao, ali skripta je vrlo dobro organizirana i čini se da radi dobro za mnoge korisnike.
docs.google.com/spreadsheets/d/15bTn9_Cv9I…
Korak 2: Kopirajte skriptu
Preskočite ovaj korak ako ste ipak spremili kopiju na moju zajedničku Google tablicu.
- Na traci izbornika kliknite Alati -> Uređivač skripti … da biste otvorili Uređivač skripti (novi prozor)
- U uređivaču skripti izbrišite sve zadane skripte/datoteke i stvorite novu (nazvao sam je "NestScript.gs")
- Izrežite i zalijepite cijeli tekst iz priložene datoteke u NestScript.gs, a zatim SPREMITE SCRIPT (Za ovaj korak upotrijebite skriptu s google tablice koju sam podijelio u 1. koraku. Ako ste spremili kopiju u tu datoteku, trebao bi već imati skriptu. Ako niste, možete otvoriti tu datoteku i otići u odjeljak skripte i kopirati pored teksta. Izbrisao sam tekstualnu datoteku skripte koja je priložena ovom koraku jer nije ažurirana i može stvoriti zabunu.).
Korak 3: Implementirajte kao web aplikaciju
- Na traci izbornika kliknite Alati -> Uređivač skripti … da biste otvorili Uređivač skripti (novi prozor)
- Na traci izbornika kliknite Objavi -> Postavi kao web aplikaciju
- Odaberite "Izvedi aplikaciju kao ja"
- Odaberite Tko ima pristup aplikaciji: "Bilo tko, čak i anoniman"
-
Kopirajte/zapamtite vezu do vaše nove web aplikacije za sada, a ona će biti dodana u rutinu runDataCollection ispod (prvi kôd) u kasnijim koracima.
Korak 4: Okidači
Ovdje definirate koliko često ćete prikupljati podatke.
- Na traci izbornika kliknite Okidači trenutnog projekta
- Kliknite dodaj novi okidač
- Za Pokreni odaberite funkciju runDataCollection, Događaji: vremenski vođena, a ostalo odaberite prema vlastitim željama (ja to radim svakih 5 minuta)
Korak 5: Dodatne informacije u skripti
Izmijenimo skriptu u vaš specifični termostat, grad i Google tablicu.
Svaka je promjena navedena s rednim brojem skripte. Morat ćete otići na taj redak u skripti i ažurirati prema donjim uputama. (Brojevi redaka trebaju biti točni ako je redak 40 "runDataCollection () …").
- Redak 45: dodajte webapp vezu u usmjeravanje runDataCollection (To ste primijetili u jednom od prethodnih koraka)
- Redak 53: Nest korisničko ime i lozinka
- Redak 77: ID uređaja termostata
ID za svaki termostat možete dobiti ako odete na nadzornu ploču Nest, kliknete na termostat, kliknete ikonu zupčanika u gornjem desnom kutu, a zatim kopirate polje "Serijski broj." "Izgledat će otprilike ovako: 02XX01XX471XXX3S
Redak 90: ID grada (dodatne upute u skripti iznad ovog retka mogu biti korisne.)
Da biste pronašli ID grada, idite na "https://openweathermap.org/find?q=" potražite svoj grad, kliknite na vezu grada i ID će biti 7 -znamenkasti broj u URL -u
Redak 103: ID Google lista (dodatne upute u skripti iznad ovog retka mogu biti korisne.)
ID tablice može se dohvatiti s URL -a shee. Pogledajte ovaj uzorak gdje se ID tablice nalazi u URL -u:
Korak 6: Dovršite proračunsku tablicu
Preskočite ovaj korak ako ste započeli s mojom zajedničkom proračunskom tablicom.
Ova dva retka moraju biti u proračunskoj tablici da bi kôd funkcionirao.
Prvi redak (redak zaglavlja): Razmak odvaja stupce
Datum/Vrijeme Mjesec Dan Godina Godina Temperatura Vlažnost vani VazduhTempera spoljaVlažnost Vrućina_Upotreba AC_Upotreba Vrijeme AutoAway
Druga linija:
Dodajte jučerašnji datum u prvi stupac i nule u preostale stupce.
To je to. Pustite skriptu da radi i trebala bi dodati jedan redak dnevno i pingati vaš termostat i lokalno vrijeme za podatke prema frekvenciji okidanja koju ste postavili.
Ako ponovno postavite web stranicu, upotrijebite novu reviziju. Imao sam problema s korištenjem istih revizija sa skriptom koja se ne izvodi
Ako se skripta ne izvodi, ponovno pređite na prethodne korake i provjerite jeste li točno ažurirali skriptu kako su vam predložili ovi koraci. Ovo je najvjerojatniji uzrok problema s skriptom koja se ne izvodi
Poznati problemi (Ako netko zna rješenje, molimo vas da odgovorite u odjeljku komentara):
1) Skripta ne uspijeva dobiti podatke iz gnijezda tijekom dana. Imam okidač svakih 5 minuta, što bi trebalo rezultirati s ukupno 288 očitavanja tijekom dana. Dobivam ~ 170. Najniže što sam dobio je 16, a najviše 264.