Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Termostatul Nest urmărește temperatura, umiditatea și utilizarea cuptorului / AC, iar utilizatorii pot vedea datele istorice doar timp de 10 zile. Am vrut să colectez date istorice (> 10 zile) și am întâlnit un script de foi de calcul Google care face cuiburi la fiecare oră stabilită și obține, de asemenea, date meteo locale de la openweathermap.org și salvează în foaia de calcul.
Totul mergea bine timp de un an, iar scenariul a încetat brusc să colecteze date. După câteva căutări pe Google, mi-am dat seama că un rând la fiecare 5 minute pentru google spreadhseet înseamnă atingerea limitei maxime de celule pe care o poate adăuga o foaie de calcul Google. Am actualizat scriptul original pentru a face ping la Nest la fiecare 5 minute, dar colectez date pe 1 rând pe zi. Scriptul verifică ultimul rând și dacă este aceeași zi, atunci adaugă datele la același rând, mai degrabă decât să adauge un rând nou.
Credit pentru scenariul original. Tocmai am făcut câteva modificări pentru a se potrivi nevoilor mele.
// lucrarea lui michael-pesce: https://gist.github.com/michael-pesce/a4ba55d4fc4…// Lucrarea lui BEEZLY:
Cuvinte cheie: Istoricul Nest Thermostat, Nest Heat, Nest Temperature History, Nest Thermostat Hack, Nest Thermostat Tips, Nest Energy History, Nest Daily Use, Nest Daily Use, Download nest termostat data
Pasul 1: Creați o nouă foaie Google (faceți o salvare ca pe foaia mea de calcul partajată)
Începeți cu foaia mea Google partajată legată mai jos (Deschideți fișierul respectiv și faceți clic pe Fișier și apoi „faceți o copie” și salvați în unitatea Google).
P. S: Nu-mi cereți să vă acord permisiunea de a edita acest fișier. Înainte de a face modificări, pe care nu le veți putea face pentru că am distribuit acest lucru ca foaie de calcul numai în citire, faceți o „creați o copie” în propriul dvs. drive Google și apoi continuați cu modificările.
docs.google.com/spreadsheets/d/1zTHUfiltWomhPYmfD3TYRRoJZsgcjrQ_A2xHSTK5_dE/edit?usp=sharing
Pentru persoanele care au probleme cu autorizarea: Încercați scriptul din fișierul următor. Are funcționalități suplimentare legate de noile protocoale de autorizare Nest 2.0. Nu l-am încercat, așa că dacă întâlniți întrebări sau probleme, vă rugăm să postați în secțiunea de comentarii. Credite la mcr2582.
www.dropbox.com/s/8rbtg7pb0xl9n9x/nest%20t…
O altă variantă a scriptului de Coder56: Detalii suplimentare în secțiunea de comentarii. Nu l-am încercat, dar scriptul este organizat foarte bine și pare să funcționeze bine pentru mulți utilizatori.
docs.google.com/spreadsheets/d/15bTn9_Cv9I…
Pasul 2: Copiați scriptul
Omiteți acest pas dacă ați salvat o copie pe foaia mea Google partajată.
- În bara de meniu, faceți clic pe Instrumente -> Script Editor … pentru a deschide Script Editor (fereastră nouă)
- În Editorul de Scripturi ștergeți toate scripturile / fișierele implicite și creați unul nou (l-am numit „NestScript.gs”)
- Tăiați și lipiți întregul text din fișierul atașat în NestScript.gs, apoi SALVAȚI SCRIPTUL (Pentru acest pas, utilizați scriptul din foaia google pe care am distribuit-o la pasul 1. Dacă ați salvat o copie pe acel fișier, ar trebui să aibă deja scriptul. Dacă nu, puteți deschide acel fișier și accesați secțiunea script și copiați textul. Am șters fișierul text script care a fost atașat la acest pas deoarece nu era actualizat și poate crea confuzie.).
Pasul 3: Implementați ca aplicație web
- În bara de meniu, faceți clic pe Instrumente -> Script Editor … pentru a deschide Script Editor (fereastră nouă)
- În bara de meniu faceți clic pe Publicare -> Implementare ca aplicație web
- Selectați „Executați aplicația ca și mine”
- Selectați Cine are acces la aplicație: „Oricine, chiar anonim”
-
Copiați / luați în considerare linkul către noua aplicație web pentru moment și va fi adăugat la rutina runDataCollection de mai jos (primul cod) în pașii ulteriori.
Pasul 4: declanșează
Aici definiți frecvența colectării datelor.
- În bara de meniu, faceți clic pe Declanșatorii proiectului curent
- Faceți clic pe adăugați un declanșator nou
- Pentru Run selectați funcția runDataCollection, Events: time-driven și selectați restul în funcție de preferințe (fac la fiecare 5 minute)
Pasul 5: Informații suplimentare în script
Să modificăm scriptul pentru termostatul dvs. specific, orașul și foaia Google.
Fiecare modificare este listată cu un număr de linie al scriptului. Va trebui să mergeți la acea linie din script și să actualizați conform instrucțiunilor de mai jos. (Numerele de linie ar trebui să fie corecte dacă linia 40 este "runDataCollection () …").
- Linia 45: adăugați link webapp în rutare runDataCollection (Aceasta este ceea ce ați observat într-unul din pașii anteriori)
- Linia 53: Numele de utilizator și parola Nest
- Linia 77: ID dispozitiv termostat
Puteți obține codul pentru fiecare termostat accesând tabloul de bord Nest, făcând clic pe termostat, făcând clic pe pictograma roată din partea dreaptă sus, apoi copiând câmpul „Nr. De serie”. „Va arăta ca:
Linia 90: ID-ul orașului (instrucțiunile suplimentare din scriptul de deasupra acestei linii pot fi utile.)
Pentru a găsi ID-ul orașului, accesați „https://openweathermap.org/find?q=” căutați orașul dvs., faceți clic pe link-ul orașului și ID-ul va fi numărul din 7 cifre din URL
Rândul 103: ID foaie Google (instrucțiunile suplimentare din scriptul de deasupra acestei linii pot fi utile.)
ID-ul foii poate fi preluat de pe URL-ul shee Consultați acest model pentru locul în care se află ID-ul foii în URL:
Pasul 6: Finalizați foaia de calcul
Omiteți acest pas dacă ați început cu foaia mea de calcul partajată.
Aceste două linii trebuie să fie în foaia de calcul pentru ca codul să funcționeze.
Prima linie (rândul antet): spațiul separă coloanele
Data / Ora Lună Zi An Temperatură Umiditate AfarăTemp Afară Umiditate Căldură_Utilizare AC_Utilizare Vreme AutoAway
A doua linie:
Adăugați data de ieri în prima coloană și zerouri în coloanele rămase.
Aia este. Lăsați scriptul să ruleze și acesta ar trebui să adauge un rând pe zi și să pingă termostatul și vremea locală pentru date pe frecvența de declanșare setată.
Dacă redistribuiți aplicația web, utilizați noua versiune. Am avut probleme cu utilizarea acelorași revizuiri cu scriptul care nu rulează
Dacă scriptul nu rulează, parcurgeți din nou pașii anteriori și asigurați-vă că ați actualizat scriptul așa cum sugerează acești pași cu precizie. Aceasta este cea mai probabilă cauză a problemei cu scriptul care nu rulează
Probleme cunoscute (dacă cineva știe remedierea, răspundeți în secțiunea de comentarii):
1) Scriptul nu reușește să obțină date din cuib pe tot parcursul zilei. Am declanșatorul meu la fiecare 5 minute, ceea ce ar trebui să conducă la un total de 288 de citiri pe parcursul unei zile. Am ~ 170. Cel mai mic pe care l-am obținut este 16 și cel mai mare este 264.