Sommario:

Registratore di dati cronologico del termostato Nest: 6 passaggi (con immagini)
Registratore di dati cronologico del termostato Nest: 6 passaggi (con immagini)

Video: Registratore di dati cronologico del termostato Nest: 6 passaggi (con immagini)

Video: Registratore di dati cronologico del termostato Nest: 6 passaggi (con immagini)
Video: Maisi Wireless CCTV Cameras with NVR Box (Install & Info) 2024, Dicembre
Anonim
Registro dati cronologia termostato Nest
Registro dati cronologia termostato Nest

Il termostato Nest tiene traccia della temperatura, dell'umidità e dell'utilizzo del forno/aria condizionata e gli utenti possono visualizzare i dati storici solo per 10 giorni. Volevo raccogliere dati storici (> 10 giorni) e mi sono imbattuto nello script di fogli di calcolo di Google che esegue il ping ogni volta che viene impostato e ottiene anche i dati meteorologici locali da openweathermap.org e salva nel foglio di calcolo.

Tutto stava andando bene per un anno e la sceneggiatura ha improvvisamente smesso di raccogliere dati. Dopo alcune ricerche su google, mi sono reso conto che una riga ogni 5 minuti per google spreadhseet significa raggiungere il limite massimo di celle che un foglio di calcolo di google può ospitare. Ho aggiornato lo script originale per eseguire il ping di Nest ogni 5 minuti, ma raccolgo dati in 1 riga al giorno. Lo script controlla l'ultima riga e, se è lo stesso giorno, aggiunge i dati alla stessa riga anziché aggiungere una nuova riga.

Credito per la sceneggiatura originale. Ho solo apportato alcune modifiche per soddisfare le mie esigenze.

// Il lavoro di michael-pesce: https://gist.github.com/michael-pesce/a4ba55d4fc4…// Il lavoro di BEEZLY:

Parole chiave: Cronologia del termostato Nest, Nest Heat, Cronologia della temperatura Nest, Hack del termostato Nest, Suggerimenti per il termostato Nest, Cronologia dell'energia Nest, Uso quotidiano Nest, Uso quotidiano Nest, Scarica i dati del termostato Nest

Passaggio 1: crea un nuovo foglio Google (salva con nome sul mio foglio di calcolo condiviso)

Crea un nuovo foglio Google (Salva con nome sul mio foglio di calcolo condiviso)
Crea un nuovo foglio Google (Salva con nome sul mio foglio di calcolo condiviso)

Inizia con il mio foglio google condiviso collegato di seguito (apri quel file e fai clic su File, quindi "fai una copia" e salva nel tuo google drive).

P. S: Non chiedermi di darti il permesso di modificare questo file. Prima di apportare modifiche, che non sarai in grado di apportare perché ho condiviso questo come foglio di calcolo di sola lettura, fai una "copia" nel tuo Google Drive e poi procedi con le modifiche.

docs.google.com/spreadsheets/d/1zTHUfiltWomhPYmfD3TYRRoJZsgcjrQ_A2xHSTK5_dE/edit?usp=sharing

Per le persone che hanno problemi con l'autorizzazione: provare lo script nel file seguente. Ha funzionalità aggiuntive relative ai nuovi protocolli di autorizzazione 2.0 di Nest. Non l'ho provato, quindi se incontri domande o problemi, pubblica nella sezione commenti. Ringraziamo mcr2582.

www.dropbox.com/s/8rbtg7pb0xl9n9x/nest%20t…

Un'altra variazione dello script di Coder56: ulteriori dettagli nella sezione commenti. Non l'ho provato, ma lo script è organizzato molto bene e sembra funzionare bene per molti utenti.

docs.google.com/spreadsheets/d/15bTn9_Cv9I…

Passaggio 2: copia lo script

Salta questo passaggio se hai salvato una copia sul mio foglio Google condiviso.

  • Nella barra dei menu fare clic su Strumenti -> Script Editor… per aprire Script Editor (nuova finestra)
  • In Script Editor elimina tutti gli script/file predefiniti e creane uno nuovo (l'ho chiamato "NestScript.gs")
  • Taglia e incolla questo intero testo dal file allegato in NestScript.gs, quindi SALVA LO SCRIPT (Per questo passaggio, utilizza lo script dal foglio di Google che ho condiviso nel passaggio 1. Se hai salvato una copia su quel file, dovrebbe già avere lo script. Se non l'hai fatto, puoi aprire quel file e andare alla sezione dello script e copiare oltre il testo. Ho eliminato il file di testo dello script che era allegato a questo passaggio perché non era aggiornato e potrebbe creare confusione.).

Passaggio 3: distribuire come app Web

Distribuisci come app Web
Distribuisci come app Web
Distribuisci come app Web
Distribuisci come app Web
  • Nella barra dei menu fare clic su Strumenti -> Script Editor… per aprire Script Editor (nuova finestra)
  • Nella barra dei menu fai clic su Pubblica -> Distribuisci come app Web
  • Seleziona "Esegui l'app come me"
  • Seleziona Chi ha accesso all'app: "Chiunque, anche anonimo"
  • Copia / prendi nota del collegamento alla tua nuova app Web per ora e verrà aggiunto alla routine runDataCollection di seguito (il primo codice) nei passaggi successivi.

Passaggio 4: trigger

Trigger
Trigger
Trigger
Trigger
Trigger
Trigger

Qui è dove definisci la frequenza con cui raccogliere i dati.

  • Nella barra dei menu fai clic su Trigger del progetto corrente
  • Fai clic su aggiungi nuovo trigger
  • Per Esegui seleziona la funzione runDataCollection, Events: time-driven e seleziona il resto secondo le tue preferenze (lo faccio ogni 5 minuti)

Passaggio 5: informazioni aggiuntive nello script

Informazioni aggiuntive nello script
Informazioni aggiuntive nello script
Informazioni aggiuntive nello script
Informazioni aggiuntive nello script
Informazioni aggiuntive nello script
Informazioni aggiuntive nello script

Modifichiamo lo script in base al tuo termostato, città e foglio google specifici.

Ogni modifica è elencata con un numero di riga dello script. Dovrai andare a quella riga nello script e aggiornare come indicato di seguito. (I numeri di riga dovrebbero essere corretti se la riga 40 è "runDataCollection()…").

  • Riga 45: aggiungi collegamento webapp nel routing runDataCollection (questo è quello che hai notato in uno dei passaggi precedenti)
  • Riga 53: nome utente e password Nest
  • Riga 77: ID dispositivo termostato

Puoi ottenere l'ID per ogni termostato andando nella dashboard di Nest, facendo clic sul termostato, facendo clic sull'icona a forma di ingranaggio in alto a destra, quindi copiando il campo "Numero di serie". Avrà un aspetto simile a: 02XX01XX471XXX3S

Riga 90: ID città (ulteriori istruzioni nello script sopra questa riga potrebbero essere utili)

Per trovare l'ID della città vai su "https://openweathermap.org/find?q=" cerca la tua città, fai clic sul collegamento della città e l'ID sarà il numero di 7 cifre nell'URL

Riga 103: ID foglio Google (ulteriori istruzioni nello script sopra questa riga potrebbero essere utili)

L'ID foglio può essere preso dall'URL shee Vedi questo pattern per sapere dove si trova l'ID foglio nell'URL:https://docs.google.com/spreadsheets/d/THIS_IS_WHERE_THE_SHEET_ID_IS/edit#gid=123456789

Passaggio 6: finalizzare il foglio di calcolo

Salta questo passaggio se hai iniziato con il mio foglio di calcolo condiviso.

Queste due righe devono essere nel foglio di calcolo affinché il codice funzioni.

Prima riga (riga di intestazione): lo spazio separa le colonne

Data/Ora Mese Giorno Anno Temp Umidità Temperatura Esterna Umidità Esterna Heat_Usage AC_Usage Weather AutoAway

Seconda linea:

Aggiungi la data di ieri nella prima colonna e gli zeri nelle colonne rimanenti.

Questo è tutto. Lascia eseguire lo script e dovrebbe aggiungere una riga al giorno e eseguire il ping del termostato e del meteo locale per i dati in base alla frequenza di attivazione impostata.

Se ridistribuisci la webapp, usa la nuova revisione. Ho avuto problemi nell'usare le stesse revisioni con lo script non in esecuzione

Se lo script non è in esecuzione, ripassa i passaggi precedenti e assicurati di aver aggiornato lo script come suggerito da questi passaggi in modo accurato. Questa è la causa più probabile del problema con lo script non in esecuzione

Problemi noti (se qualcuno conosce la correzione, risponda nella sezione commenti):

1) Lo script non riesce a ottenere i dati dal nido durante il giorno. Ho il mio trigger ogni 5 minuti, il che dovrebbe portare a un totale di 288 letture durante il giorno. Ottengo ~170. Il minimo che ho ottenuto è 16 e il massimo è 264.

Consigliato: