Nest Thermostat History Datalogger - Ajarnpa
Nest Thermostat History Datalogger - Ajarnpa
Anonim
Nest Thermostat Geschiedenis Datalogger
Nest Thermostat Geschiedenis Datalogger

De Nest-thermostaat houdt de temperatuur, luchtvochtigheid en het oven-/AC-gebruik bij en gebruikers kunnen historische gegevens slechts tien dagen bekijken. Ik wilde historische gegevens verzamelen (>10 dagen) en kwam een Google Spreadheets-script tegen dat elke ingestelde tijd nestelt en ook lokale weergegevens van openweathermap.org krijgt en opslaat in de spreadsheet.

Een jaar lang ging alles goed en het script stopte plotseling met het verzamelen van gegevens. Na wat zoeken op Google, realiseerde ik me dat een rij om de 5 minuten voor Google Spreadhseet betekent dat je de maximale limiet van cellen bereikt die een Google-spreadsheet kan bevatten. Ik heb het originele script geüpdatet om Nest nog steeds elke 5 minuten te pingen, maar gegevens in 1 rij per dag te verzamelen. Script controleert de laatste rij en als het dezelfde dag is, voegt het de gegevens toe aan dezelfde rij in plaats van een nieuwe rij toe te voegen.

Krediet voor het originele script. Ik heb zojuist een paar bewerkingen gemaakt om aan mijn behoeften te voldoen.

// werk van michael-pesce: https://gist.github.com/michael-pesce/a4ba55d4fc4…// werk van BEEZLY:

Trefwoorden: Nest Thermostat History, Nest Heat, Nest Temperature History, Nest Thermostat Hack, Nest Thermostat Tips, Nest Energy History, Nest Daily Use, Nest Daily Gebruik, Nest Thermostat-gegevens downloaden

Stap 1: Maak een nieuw Google-blad (Doe een Opslaan als op Mijn gedeelde spreadsheet)

Maak een nieuw Google-blad (Doe een Opslaan als op Mijn gedeelde spreadsheet)
Maak een nieuw Google-blad (Doe een Opslaan als op Mijn gedeelde spreadsheet)

Begin met mijn gedeelde Google-blad dat hieronder is gelinkt (Open dat bestand en klik op Bestand en vervolgens "maak een kopie" en sla op in uw Google-station).

P. S: Vraag me niet om je toestemming te geven om dit bestand te bewerken. Voordat u wijzigingen aanbrengt, die u niet kunt maken omdat ik dit als een alleen-lezen spreadsheet heb gedeeld, maakt u een "kopie" in uw eigen Google Drive en gaat u verder met het maken van bewerkingen.

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

Voor mensen die problemen hebben met autorisatie: Probeer het script in het volgende bestand. Het heeft extra functionaliteit met betrekking tot de nieuwe 2.0-autorisatieprotocollen van Nest. Ik heb het niet geprobeerd, dus als je vragen of problemen tegenkomt, plaats deze dan in het opmerkingengedeelte. Met dank aan mcr2582.

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

Een andere variatie op het script door Coder56: Aanvullende details in de opmerkingensectie. Ik heb het niet geprobeerd, maar het script is erg goed georganiseerd en het lijkt voor veel gebruikers goed te werken.

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

Stap 2: Script kopiëren

Sla deze stap over als je een kopie op mijn gedeelde Google-blad hebt opgeslagen.

  • Klik in de menubalk op Extra -> Scripteditor… om Scripteditor te openen (nieuw venster)
  • Verwijder in Script Editor alle standaard scripts/bestanden en maak een nieuwe (ik noemde het "NestScript.gs")
  • Knip en plak deze volledige tekst uit het bijgevoegde bestand in NestScript.gs, en BEWAAR DE SCRIPT vervolgens (gebruik voor deze stap het script van het Google-blad dat ik in stap 1 heb gedeeld. Als je een kopie van dat bestand hebt opgeslagen, zou het script al moeten hebben. Als u dat niet had, kunt u dat bestand openen en naar de scriptsectie gaan en de tekst kopiëren. Ik heb het scripttekstbestand verwijderd dat aan deze stap was toegevoegd omdat het niet up-to-date was en verwarring kan veroorzaken.).

Stap 3: Implementeren als web-app

Implementeren als web-app
Implementeren als web-app
Implementeren als web-app
Implementeren als web-app
  • Klik in de menubalk op Extra -> Scripteditor… om Scripteditor te openen (nieuw venster)
  • Klik in de menubalk op Publiceren -> Deploy as Web App
  • Selecteer "Voer de app uit als ik"
  • Selecteer Wie toegang heeft tot de app: "Iedereen, zelfs anoniem"
  • Kopieer / noteer de link naar uw nieuwe web-app voor nu, en deze zal in latere stappen worden toegevoegd aan de runDataCollection-routine hieronder (de eerste code).

Stap 4: Triggers

Triggers
Triggers
Triggers
Triggers
Triggers
Triggers

Hier definieert u hoe vaak gegevens moeten worden verzameld.

  • Klik in de menubalk op de triggers van het huidige project
  • Klik op nieuwe trigger toevoegen
  • Selecteer voor Uitvoeren de functie runDataCollection, Events: time-driven, en selecteer de rest naar uw voorkeur (ik doe elke 5 minuten)

Stap 5: Aanvullende informatie in script

Aanvullende informatie in script
Aanvullende informatie in script
Aanvullende informatie in script
Aanvullende informatie in script
Aanvullende informatie in script
Aanvullende informatie in script

Laten we het script aanpassen aan uw specifieke thermostaat, stad en Google-blad.

Elke wijziging wordt vermeld met een regelnummer van het script. U moet naar die regel in het script gaan en bijwerken zoals hieronder wordt aangegeven. (Regelnummers moeten correct zijn als regel 40 "runDataCollection()…" is).

  • Regel 45: voeg webapp-link toe in de runDataCollection-routering (dit is wat je hebt opgemerkt in een van de vorige stappen)
  • Regel 53: Nest-gebruikersnaam en -wachtwoord
  • Regel 77: Thermostaatapparaat-ID

Je kunt de ID voor elke thermostaat krijgen door naar het Nest-dashboard te gaan, op de thermostaat te klikken, op het tandwielpictogram in de rechterbovenhoek te klikken en vervolgens het veld 'Serienummer' te kopiëren. Het ziet er ongeveer zo uit: 02XX01XX471XXX3S

Regel 90: Stads-ID (aanvullende instructies in het script boven deze regel kunnen nuttig zijn.)

Om de stads-ID te vinden, ga naar "https://openweathermap.org/find?q=" zoek naar uw stad, klik op de stadslink en de ID is het 7-cijferige nummer in de URL

Regel 103: Google-blad-ID (aanvullende instructies in het script boven deze regel kunnen nuttig zijn.)

De blad-ID kan worden opgehaald uit de blad-URL. Zie dit patroon voor waar de blad-id in de URL staat:https://docs.google.com/spreadsheets/d/THIS_IS_WHERE_THE_SHEET_ID_IS/edit#gid=123456789

Stap 6: Voltooi de spreadsheet

Sla deze stap over als je bent begonnen met mijn gedeelde spreadsheet.

Deze twee regels moeten in de spreadsheet staan om de code te laten werken.

Eerste regel (rij koptekst): spatie scheidt kolommen

Datum/Tijd Maand Dag Jaar Temp Vochtigheid BuitenTemp BuitenVochtigheid Heat_Usage AC_Usage Weer AutoAfwezig

Tweede lijn:

Voeg de datum van gisteren toe in de eerste kolom en nullen in de overige kolommen.

Dat is het. Laat het script draaien en het zou één rij per dag moeten toevoegen en je thermostaat en het lokale weer moeten pingen voor gegevens volgens de triggerfrequentie die je hebt ingesteld.

Als u de webapp opnieuw implementeert, gebruikt u de nieuwe revisie. Ik had problemen met het gebruik van dezelfde revisies terwijl het script niet actief was

Als het script niet actief is, overloop dan de vorige stappen opnieuw en zorg ervoor dat u het script nauwkeurig hebt bijgewerkt zoals voorgesteld door deze stappen. Dit is de meest waarschijnlijke oorzaak van het probleem dat het script niet wordt uitgevoerd

Bekende problemen (als iemand de oplossing weet, antwoord dan in het opmerkingengedeelte):

1) Script kan gedurende de dag geen gegevens van nest verkrijgen. Ik heb mijn trigger elke 5 minuten, wat zou moeten resulteren in in totaal 288 reads gedurende een dag. Ik krijg ~170. De laagste die ik had gekregen is 16 en de hoogste is 264.