Съдържание:

Регистратор на данни за историята на Nest Thermostat: 6 стъпки (със снимки)
Регистратор на данни за историята на Nest Thermostat: 6 стъпки (със снимки)

Видео: Регистратор на данни за историята на Nest Thermostat: 6 стъпки (със снимки)

Видео: Регистратор на данни за историята на Nest Thermostat: 6 стъпки (със снимки)
Видео: CS50 2013 - Week 9 2024, Ноември
Anonim
Регистратор на данни за историята на Nest Thermostat
Регистратор на данни за историята на Nest Thermostat

Термостатът Nest следи температурата, влажността и използването на пещ/променлив ток и потребителите могат да виждат исторически данни само за 10 дни. Исках да събера исторически данни (> 10 дни) и попаднах на скрипт за електронни таблици на Google, който пинговете се гнездят всеки зададен час, а също така получава местни метеорологични данни от openweathermap.org и записва в електронната таблица.

Всичко вървеше добре в продължение на една година и скриптът изведнъж спря да събира данни. След известно търсене в Google осъзнах, че един ред на всеки 5 минути за google spreadhseet означава да се достигне максималното ограничение на клетките, които електронната таблица на Google може да настани. Актуализирах оригиналния скрипт, за да продължа да пингвам Nest на всеки 5 минути и да събирам данни в 1 ред на ден. Скриптът проверява последния ред и ако е същия ден, той добавя данните към същия ред, вместо да добавя нов ред.

Кредит за оригиналния сценарий. Току -що направих няколко редакции според моите нужди.

// произведението на Michael-Pesce: https://gist.github.com/michael-pesce/a4ba55d4fc4…// Работата на BEEZLY:

Ключови думи: История на Nest Thermostat, Nest Heat, Nest Temperature History, Nest Thermostat Hack, Nest Thermostat Tips, Nest Energy History, Nest Daily Use, Nest Daily Usage, Download Data Nest Termostat

Стъпка 1: Създайте нов лист в Google (Направете запис като в Моята споделена електронна таблица)

Създайте нов лист в Google (направете запис като в споделената ми електронна таблица)
Създайте нов лист в Google (направете запис като в споделената ми електронна таблица)

Започнете с моя споделен лист в Google, свързан по -долу (Отворете този файл и щракнете върху Файл и след това „направете копие“и запишете на вашия google диск).

P. S: Не ме молете да ви дам разрешение да редактирате този файл. Преди да направите каквито и да било промени, които няма да можете да направите, тъй като споделих това като електронна таблица само за четене, направете „направете копие“в собствения си google диск и след това продължете с редактирането.

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

За хора, които имат проблеми с упълномощаването: Опитайте скрипта в следния файл. Той има допълнителна функционалност, свързана с новите протоколи за оторизация на Nest 2.0. Не съм го пробвал, така че ако срещнете въпроси или проблеми, моля, публикувайте в секцията за коментари. Кредит на mcr2582.

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

Друг вариант на скрипта от Coder56: Допълнителни подробности в раздела за коментари. Не съм го пробвал, но скриптът е организиран много добре и изглежда, че работи добре за много потребители.

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

Стъпка 2: Копирайте скрипта

Пропуснете тази стъпка, ако сте запазили копие в моя споделен лист в Google.

  • В лентата с менюта щракнете върху Инструменти -> Редактор на скриптове …, за да отворите Редактор на скриптове (нов прозорец)
  • В Script Editor изтрийте всички скриптове/файлове по подразбиране и създайте нов (нарекох го "NestScript.gs")
  • Изрежете и поставете целия текст от прикачения файл в NestScript.gs, след това ЗАПАЗЕТЕ СЦЕНАТА (За тази стъпка, моля, използвайте скрипта от листа на Google, който споделих в стъпка 1. Ако сте запазили копие на този файл, вие би трябвало вече да има скрипта. Ако не сте, можете да отворите този файл и да отидете в секцията скрипт и да копирате покрай текста. Изтрих текстовия файл на скрипта, който беше прикачен към тази стъпка, тъй като не беше актуален и може да създаде объркване.).

Стъпка 3: Разгърнете като уеб приложение

Разгърнете като уеб приложение
Разгърнете като уеб приложение
Разгърнете като уеб приложение
Разгърнете като уеб приложение
  • В лентата с менюта щракнете върху Инструменти -> Редактор на скриптове …, за да отворите Редактор на скриптове (нов прозорец)
  • В лентата с менюта щракнете върху Публикуване -> Разгърнете като уеб приложение
  • Изберете „Изпълнете приложението като мен“
  • Изберете Кой има достъп до приложението: „Всеки, дори анонимен“
  • Копирайте/вземете под внимание връзката към новото ви уеб приложение за сега и тя ще бъде добавена към рутината runDataCollection по -долу (първият код) в по -късните стъпки.

Стъпка 4: Задействания

Тригери
Тригери
Тригери
Тригери
Тригери
Тригери

Тук определяте колко често да събирате данни.

  • В лентата с менюта щракнете върху Тригери на текущия проект
  • Щракнете върху добавяне на нов тригер
  • За Run изберете функцията runDataCollection, Events: управлявана от времето и изберете останалите според вашите предпочитания (правя на всеки 5 минути)

Стъпка 5: Допълнителна информация в скрипта

Допълнителна информация в скрипт
Допълнителна информация в скрипт
Допълнителна информация в скрипт
Допълнителна информация в скрипт
Допълнителна информация в скрипт
Допълнителна информация в скрипт

Нека променим скрипта към вашия специфичен термостат, град и лист в Google.

Всяка промяна е посочена с номер на ред на скрипта. Ще трябва да отидете на този ред в скрипта и да актуализирате, както е указано по -долу. (Номерата на редовете трябва да са правилни, ако ред 40 е "runDataCollection () …").

  • Ред 45: добавете връзка към webapp в маршрутизацията runDataCollection (Това отбелязахте в една от предишните стъпки)
  • Ред 53: Потребителско име и парола на Nest
  • Ред 77: Идентификатор на устройството на термостата

Можете да получите идентификационния номер за всеки термостат, като отидете на таблото за управление на Nest, щракнете върху термостата, щракнете върху иконата на зъбно колело горе вдясно, след което копирате полето "Сериен номер." ". Тя ще изглежда като: 02XX01XX471XXX3S

Ред 90: Идентификатор на града (допълнителни инструкции в скрипта над този ред могат да бъдат полезни.)

За да намерите идентификационния номер на града, отидете на „https://openweathermap.org/find?q=“търсене на вашия град, кликнете върху връзката към града и идентификационният номер ще бъде 7 -цифрения номер в URL адреса

Ред 103: Идент. № на Google (допълнителни инструкции в скрипта над този ред могат да бъдат полезни.)

Идентификаторът на листа може да бъде извлечен от URL адреса на shee Вижте този модел за това къде е идентификаторът на Sheet в URL адреса:

Стъпка 6: Завършете електронната таблица

Пропуснете тази стъпка, ако сте започнали с моята споделена електронна таблица.

Тези два реда трябва да са в електронната таблица, за да работи кодът.

Първи ред (ред заглавие): Пробелът разделя колони

Дата/Час Месец Ден Година Температура Влажност навън Температура отвън Влажност Нагряване_ Използване AC_Употреба Време AutoAway

Втори ред:

Добавете вчерашната дата в първата колона и нули в останалите колони.

Това е. Оставете скрипта да работи и той трябва да добавя един ред на ден и да пингва вашия термостат и местното време за данни за зададената честота на задействане.

Ако преразпределите webapp, използвайте новата версия. Имах проблеми с използването на същите ревизии със скрипта, който не работи

Ако скриптът не се изпълнява, преминете отново към предишните стъпки и се уверете, че сте актуализирали точно скрипта, както е предложено от тези стъпки. Това е най -вероятната причина за проблема с неработещия скрипт

Известни проблеми (Ако някой знае поправката, моля, отговорете в секцията за коментари):

1) Скриптът не успява да получи данни от гнездото през целия ден. Имам спусъка си на всеки 5 минути, което трябва да доведе до общо 288 четения през деня. Получавам ~ 170. Най -ниското, което бях получил, е 16, а най -високото е 264.

Препоръчано: