Inhaltsverzeichnis:

Verlaufsdatenlogger von Nest Thermostat - Gunook
Verlaufsdatenlogger von Nest Thermostat - Gunook

Video: Verlaufsdatenlogger von Nest Thermostat - Gunook

Video: Verlaufsdatenlogger von Nest Thermostat - Gunook
Video: Switchbot Indoor Outdoor Thermo-Hygrometer Alexa Google Home Temperatur und Luftfeuchtigkeit fragen 2024, November
Anonim
Nest Thermostat-Verlaufsdatenlogger
Nest Thermostat-Verlaufsdatenlogger

Nest Thermostat verfolgt Temperatur, Luftfeuchtigkeit und Ofen-/AC-Nutzung und Nutzer können nur 10 Tage lang historische Daten sehen. Ich wollte historische Daten sammeln (>10 Tage) und bin auf ein Google-Spreadsheet-Skript gestoßen, das jedes Mal pingt und auch lokale Wetterdaten von openweathermap.org erhält und in der Tabelle speichert.

Ein Jahr lang lief alles gut und das Skript hörte plötzlich auf, Daten zu sammeln. Nach einiger Google-Suche wurde mir klar, dass eine Zeile alle 5 Minuten für Google Spreadhseet bedeutet, dass die maximale Anzahl von Zellen erreicht wird, die eine Google-Tabelle aufnehmen kann. Ich habe das ursprüngliche Skript aktualisiert, um Nest weiterhin alle 5 Minuten zu pingen, aber Daten in einer Zeile pro Tag zu sammeln. Das Skript überprüft die letzte Zeile und wenn es derselbe Tag ist, hängt es die Daten an dieselbe Zeile an, anstatt eine neue Zeile hinzuzufügen.

Gutschrift für das ursprüngliche Skript. Ich habe nur ein paar Änderungen vorgenommen, um meine Bedürfnisse zu erfüllen.

// die Arbeit von michael-pesce: https://gist.github.com/michael-pesce/a4ba55d4fc4…// die Arbeit von BEEZLY:

Keywords: Nest Thermostat-Verlauf, Nest Heat, Nest-Temperaturverlauf, Nest Thermostat-Hack, Nest Thermostat-Tipps, Nest-Energieverlauf, Nest-Tägliche Nutzung, Nest-Tägliche Nutzung, Nest-Thermostatdaten herunterladen

Schritt 1: Erstellen Sie ein neues Google-Blatt (Speichern unter in meiner freigegebenen Tabelle)

Erstellen Sie ein neues Google-Tabellenblatt (Speichern unter in meiner freigegebenen Tabelle)
Erstellen Sie ein neues Google-Tabellenblatt (Speichern unter in meiner freigegebenen Tabelle)

Beginnen Sie mit meinem unten verlinkten gemeinsamen Google-Blatt (Öffnen Sie diese Datei und klicken Sie auf Datei und dann auf "Kopie erstellen" und in Ihrem Google-Laufwerk speichern).

PS: Bitten Sie mich nicht, Ihnen die Erlaubnis zu erteilen, diese Datei zu bearbeiten. Bevor Sie Änderungen vornehmen, die Sie nicht vornehmen können, da ich dies als schreibgeschützte Tabelle freigegeben habe, führen Sie eine "Kopie erstellen" in Ihrem eigenen Google-Laufwerk durch und fahren Sie dann mit den Bearbeitungen fort.

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

Für Leute, die Probleme mit der Autorisierung haben: Versuchen Sie das Skript in der folgenden Datei. Es verfügt über zusätzliche Funktionen im Zusammenhang mit den neuen 2.0-Autorisierungsprotokollen von Nest. Ich habe es noch nicht ausprobiert. Wenn Sie also Fragen oder Probleme haben, posten Sie es bitte im Kommentarbereich. Kredit an mcr2582.

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

Eine weitere Variante des Skripts von Coder56: Weitere Details im Kommentarbereich. Ich habe es nicht ausprobiert, aber das Skript ist sehr gut organisiert und scheint für viele Benutzer gut zu funktionieren.

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

Schritt 2: Skript kopieren

Überspringen Sie diesen Schritt, wenn Sie eine Kopie auf meinem freigegebenen Google-Blatt gespeichert haben.

  • Klicken Sie in der Menüleiste auf Extras -> Skript-Editor…, um den Skript-Editor zu öffnen (neues Fenster)
  • Löschen Sie im Skripteditor alle Standardskripts/-dateien und erstellen Sie eine neue (ich habe sie "NestScript.gs" genannt).
  • Schneiden Sie diesen gesamten Text aus der angehängten Datei aus und fügen Sie ihn in NestScript.gs ein, dann SPEICHERN SIE DAS SKRIPT (Für diesen Schritt verwenden Sie bitte das Skript aus dem Google-Blatt, das ich in Schritt 1 geteilt habe. Wenn Sie eine Kopie dieser Datei gespeichert haben, sollte das Skript bereits haben. Wenn Sie dies nicht getan haben, können Sie diese Datei öffnen und zum Skriptabschnitt gehen und den Text einfügen. Ich habe die Skripttextdatei gelöscht, die an diesen Schritt angehängt war, da sie nicht aktuell war und Verwirrung stiften könnte.).

Schritt 3: Als Web-App bereitstellen

Als Web-App bereitstellen
Als Web-App bereitstellen
Als Web-App bereitstellen
Als Web-App bereitstellen
  • Klicken Sie in der Menüleiste auf Extras -> Skript-Editor…, um den Skript-Editor zu öffnen (neues Fenster)
  • Klicken Sie in der Menüleiste auf Veröffentlichen -> Als Web-App bereitstellen
  • Wählen Sie "App als ich ausführen"
  • Wählen Sie Wer hat Zugriff auf die App: "Jeder, auch anonym"
  • Kopieren/notieren Sie sich den Link zu Ihrer neuen Web-App vorerst, und er wird in späteren Schritten der unten aufgeführten runDataCollection-Routine (dem ersten Code) hinzugefügt.

Schritt 4: Auslöser

Löst aus
Löst aus
Löst aus
Löst aus
Löst aus
Löst aus

Hier legen Sie fest, wie oft Daten gesammelt werden sollen.

  • Klicken Sie in der Menüleiste auf Trigger des aktuellen Projekts
  • Klicken Sie auf Neuen Auslöser hinzufügen
  • Wählen Sie für Run die Funktion runDataCollection, Events: time-driven, und wählen Sie den Rest nach Ihren Wünschen aus (ich mache alle 5 Minuten).

Schritt 5: Zusätzliche Informationen im Skript

Zusätzliche Informationen im Skript
Zusätzliche Informationen im Skript
Zusätzliche Informationen im Skript
Zusätzliche Informationen im Skript
Zusätzliche Informationen im Skript
Zusätzliche Informationen im Skript

Lassen Sie uns das Skript an Ihren spezifischen Thermostat, Ihre Stadt und Ihr Google-Tabellenblatt anpassen.

Jede Änderung wird mit einer Zeilennummer des Skripts aufgelistet. Sie müssen zu dieser Zeile im Skript gehen und wie unten beschrieben aktualisieren. (Zeilennummern sollten korrekt sein, wenn Zeile 40 "runDataCollection()…" ist).

  • Zeile 45: Webapp-Link im runDataCollection-Routing hinzufügen (Dies haben Sie in einem der vorherigen Schritte notiert)
  • Zeile 53: Nest-Nutzername und -Passwort
  • Zeile 77: Geräte-ID des Thermostats

Sie können die ID für jeden Thermostat abrufen, indem Sie zum Nest-Dashboard gehen, auf den Thermostat klicken, oben rechts auf das Zahnradsymbol klicken und dann das Feld "Seriennummer" kopieren. Es sieht in etwa so aus: 02XX01XX471XXX3S

Zeile 90: City ID (zusätzliche Anweisungen im Skript über dieser Zeile können hilfreich sein.)

Um eine Stadt-ID zu finden, gehen Sie zu "https://openweathermap.org/find?q=" suchen Sie nach Ihrer Stadt, klicken Sie auf den Stadt-Link und die ID ist die 7-stellige Zahl in der URL

Zeile 103: Google-Blatt-ID (zusätzliche Anweisungen im Skript über dieser Zeile können hilfreich sein.)

Die Blatt-ID kann aus der Blatt-URL abgerufen werden. Sehen Sie sich dieses Muster an, um zu sehen, wo sich die Blatt-ID in der URL befindet:

Schritt 6: Fertigstellen der Tabelle

Überspringen Sie diesen Schritt, wenn Sie mit meiner freigegebenen Tabelle begonnen haben.

Diese beiden Zeilen müssen in der Tabelle enthalten sein, damit der Code funktioniert.

Erste Zeile (Kopfzeile): Leerzeichen trennt Spalten

Datum/Uhrzeit Monat Tag Jahr Temp. Luftfeuchtigkeit AußenTemp. AußenLuftfeuchtigkeit Heat_Usage AC_Usage Weather AutoAway

Zweite Reihe:

Fügen Sie das gestrige Datum in die erste Spalte und Nullen in die restlichen Spalten ein.

Das ist es. Lassen Sie das Skript laufen und es sollte eine Zeile pro Tag hinzufügen und Ihren Thermostat und das lokale Wetter für Daten gemäß der von Ihnen festgelegten Auslösefrequenz anpingen.

Wenn Sie die Webapp erneut bereitstellen, verwenden Sie die neue Revision. Ich hatte Probleme, dieselben Revisionen zu verwenden, wenn das Skript nicht ausgeführt wurde

Wenn das Skript nicht ausgeführt wird, gehen Sie die vorherigen Schritte erneut durch und stellen Sie sicher, dass Sie das Skript wie in diesen Schritten vorgeschlagen korrekt aktualisiert haben. Dies ist die wahrscheinlichste Ursache für das Problem, dass das Skript nicht ausgeführt wird

Bekannte Probleme (Wenn jemand den Fix kennt, antworten Sie bitte im Kommentarbereich):

1) Das Skript kann den ganzen Tag keine Daten von nest abrufen. Ich habe meinen Trigger alle 5 Minuten, was insgesamt 288 Lesevorgänge pro Tag ergeben sollte. Ich bekomme ~170. Der niedrigste Wert, den ich erreicht hatte, war 16 und der höchste 264.

Empfohlen: