Оглавление:

Регистратор данных истории термостата Nest: 6 шагов (с изображениями)
Регистратор данных истории термостата Nest: 6 шагов (с изображениями)

Видео: Регистратор данных истории термостата Nest: 6 шагов (с изображениями)

Видео: Регистратор данных истории термостата Nest: 6 шагов (с изображениями)
Видео: CS50 2013 - Week 9 2024, Ноябрь
Anonim
Регистратор данных истории термостата Nest
Регистратор данных истории термостата Nest

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

Год все шло хорошо, и скрипт внезапно перестал собирать данные. После некоторого поиска в Google я понял, что одна строка каждые 5 минут для электронной таблицы Google означает достижение максимального предела ячеек, который может вместить электронная таблица Google. Я обновил исходный сценарий, чтобы по-прежнему проверять связь с Nest каждые 5 минут и собирать данные в 1 строку в день. Скрипт проверяет последнюю строку и, если это тот же день, добавляет данные в ту же строку, а не добавляет новую строку.

Кредит для оригинального сценария. Я только что внес несколько правок, чтобы удовлетворить свои потребности.

// Работа Майкла-Пеше: https://gist.github.com/michael-pesce/a4ba55d4fc4…// Работа BEEZLY:

Ключевые слова: история термостата Nest, тепло в гнезде, история температуры гнезда, взлом термостата гнезда, советы по термостату гнезда, история энергии гнезда, ежедневное использование гнезда, ежедневное использование гнезда, загрузка данных термостата гнезда

Шаг 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.

  • В строке меню нажмите Инструменты -> Редактор скриптов…, чтобы открыть Редактор скриптов (в новом окне).
  • В редакторе сценариев удалите все сценарии / файлы по умолчанию и создайте новый (я назвал его «NestScript.gs»).
  • Вырежьте и вставьте весь этот текст из прикрепленного файла в NestScript.gs, затем СОХРАНИТЕ СЦЕНАРИЙ (для этого шага используйте скрипт из таблицы Google, которую я предоставил на шаге 1. Если вы сохранили копию этого файла, вы у вас уже должен быть скрипт. Если вы этого не сделали, вы можете открыть этот файл и перейти в раздел скрипта и скопировать текст. Я удалил текстовый файл скрипта, который был прикреплен к этому шагу, так как он был устаревшим и может вызвать путаницу..).

Шаг 3. Разверните как веб-приложение

Развернуть как веб-приложение
Развернуть как веб-приложение
Развернуть как веб-приложение
Развернуть как веб-приложение
  • В строке меню нажмите Инструменты -> Редактор скриптов…, чтобы открыть Редактор скриптов (в новом окне).
  • В строке меню нажмите Опубликовать -> Развернуть как веб-приложение.
  • Выберите «Запустить приложение от имени меня».
  • Выберите У кого есть доступ к приложению: «Любой, даже анонимный».
  • Скопируйте / примите к сведению ссылку на ваше новое веб-приложение, и она будет добавлена в процедуру runDataCollection ниже (первый код) на более поздних этапах.

Шаг 4: триггеры

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

Здесь вы определяете, как часто собирать данные.

  • В строке меню щелкните Триггеры текущего проекта.
  • Нажмите добавить новый триггер
  • Для Run выберите функцию runDataCollection, Events: time-driven, а остальные выберите в соответствии с вашими предпочтениями (я делаю каждые 5 минут)

Шаг 5: Дополнительная информация в скрипте

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

Давайте изменим сценарий для вашего конкретного термостата, города и таблицы Google.

Каждое изменение указано с номером строки сценария. Вам нужно будет перейти к этой строке в скрипте и выполнить обновление, как указано ниже. (Номера строк должны быть правильными, если строка 40 - «runDataCollection ()…»).

  • Строка 45: добавьте ссылку на веб-приложение в маршрутизацию runDataCollection (это то, что вы отметили на одном из предыдущих шагов)
  • Строка 53: Имя пользователя и пароль Nest.
  • Строка 77: ID термостата.

Вы можете получить идентификатор каждого термостата, перейдя на панель управления Nest, нажав на термостат, щелкнув значок шестеренки в правом верхнем углу и скопировав поле «Серийный номер». Оно будет выглядеть примерно так: 02XX01XX471XXX3S

Строка 90: ID города (могут быть полезны дополнительные инструкции в скрипте над этой строкой.)

Чтобы найти идентификатор города, перейдите в "https://openweathermap.org/find?q=", найдите свой город, щелкните ссылку города, и идентификатор будет 7-значным числом в URL-адресе.

Строка 103: идентификатор листа Google (могут быть полезны дополнительные инструкции в скрипте над этой строкой.)

Идентификатор листа можно получить из URL-адреса листа. См. Этот шаблон, чтобы узнать, где идентификатор листа находится в URL-адресе:

Шаг 6. Завершите работу с таблицей

Пропустите этот шаг, если вы начали с моей общей электронной таблицы.

Эти две строки должны быть в электронной таблице, чтобы код работал.

Первая строка (строка заголовка): пробел разделяет столбцы

Дата / Время Месяц День Год Температура Влажность На улице Температура На улице Влажность Heat_Usage AC_Usage Погода AutoAway

Вторая линия:

Добавьте вчерашнюю дату в первый столбец и нули в остальные столбцы.

Вот и все. Запустите скрипт, и он должен добавлять одну строку в день и проверять ваш термостат и местную погоду для получения данных в соответствии с установленной вами частотой запуска.

Если вы повторно развернете веб-приложение, используйте новую версию. У меня были проблемы с использованием тех же ревизий, когда скрипт не работал

Если скрипт не запущен, повторите предыдущие шаги еще раз и убедитесь, что вы обновили скрипт точно в соответствии с этими шагами. Это наиболее вероятная причина проблемы с неработающим скриптом

Известные проблемы (если кто-то знает исправление, ответьте в разделе комментариев):

1) Скрипту не удается получить данные из гнезда в течение дня. У меня триггер срабатывает каждые 5 минут, что должно дать в общей сложности 288 чтений за день. Получаю ~ 170. Самый низкий результат - 16, самый высокий - 264.

Рекомендуемые: