Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Termostat Nest melacak suhu, kelembaban, dan penggunaan tungku/AC dan pengguna hanya dapat melihat data historis selama 10 hari. Saya ingin mengumpulkan data historis (>10 hari) dan menemukan skrip google spreadheets yang melakukan ping setiap waktu yang ditentukan dan juga mendapatkan data cuaca lokal dari openweathermap.org dan menyimpannya di spreadsheet.
Semuanya berjalan baik selama setahun, dan skrip tiba-tiba berhenti mengumpulkan data. Setelah beberapa pencarian google, saya menyadari bahwa satu baris setiap 5 menit untuk google spreadhseet berarti mencapai batas maksimal sel yang dapat diakomodasi oleh spreadsheet google. Saya memperbarui skrip asli untuk tetap melakukan ping ke Nest setiap 5 menit, tetapi mengumpulkan data dalam 1 baris per hari. Script memeriksa baris terakhir dan jika itu adalah hari yang sama, maka itu menambahkan data ke baris yang sama daripada menambahkan baris baru.
Kredit untuk skrip asli. Saya hanya membuat beberapa pengeditan sesuai dengan kebutuhan saya.
// karya michael-pesce: https://Gist.github.com/michael-pesce/a4ba55d4fc4…// Karya BEEZLY:
Kata kunci: Nest Thermostat History, Nest Heat, Nest Temperature History, Nest Thermostat Hack, Tips Nest Thermostat, Riwayat Energi Nest, Penggunaan Harian Nest, Penggunaan Harian Nest, Unduh data termostat sarang
Langkah 1: Buat Google Sheet Baru (Lakukan Save As di My Shared Spreadsheet)
Mulailah dengan lembar google bersama saya yang ditautkan di bawah ini (Buka file itu dan klik File lalu "buat salinan" dan simpan di drive google Anda).
P. S: Jangan minta saya memberi Anda izin untuk mengedit file ini. Sebelum Anda membuat perubahan apa pun, yang tidak akan dapat Anda lakukan karena saya membagikan ini sebagai spreadsheet hanya-baca, lakukan "buat salinan" di drive google Anda sendiri dan kemudian lanjutkan dengan melakukan pengeditan.
docs.google.com/spreadsheets/d/1zTHUfiltWomhPYmfD3TYRRoJZsgcjrQ_A2xHSTK5_dE/edit?usp=sharing
Untuk orang-orang yang mengalami masalah dengan otorisasi: Coba skrip di file berikut. Ini memiliki fungsi tambahan yang terkait dengan protokol otorisasi 2.0 baru Nest. Saya belum mencobanya, jadi jika Anda menemukan pertanyaan atau masalah, silakan kirim di bagian komentar. Kredit ke mcr2582.
www.dropbox.com/s/8rbtg7pb0xl9n9x/nest%20t…
Variasi lain dari skrip oleh Coder56: Detail tambahan di bagian komentar. Saya belum mencobanya, tetapi skrip diatur dengan sangat baik dan tampaknya berfungsi dengan baik untuk banyak pengguna.
docs.google.com/spreadsheets/d/15bTn9_Cv9I…
Langkah 2: Salin Skrip
Lewati langkah ini jika Anda menyimpan salinannya di lembar google yang saya bagikan.
- Pada bilah menu klik Tools -> Script Editor… untuk membuka Script Editor (jendela baru)
- Di Script Editor hapus semua skrip/file default, dan buat yang baru (saya menyebutnya "NestScript.gs")
- Potong dan tempel seluruh teks ini dari file terlampir ke NestScript.gs, lalu SIMPAN SKRIP (Untuk langkah ini, silakan gunakan skrip dari google sheet yang saya bagikan pada langkah 1. Jika Anda melakukan simpan salinan pada file itu, Anda seharusnya sudah memiliki skrip. Jika tidak, Anda dapat membuka file itu dan pergi ke bagian skrip dan menyalin teks. Saya menghapus file teks skrip yang dilampirkan pada langkah ini karena tidak mutakhir dan dapat membuat kebingungan.).
Langkah 3: Terapkan Sebagai Aplikasi Web
- Pada bilah menu klik Tools -> Script Editor… untuk membuka Script Editor (jendela baru)
- Pada bilah menu, klik Terbitkan -> Terapkan sebagai Aplikasi Web
- Pilih "Jalankan Aplikasi sebagai Saya"
- Pilih Siapa yang memiliki akses ke aplikasi: "Siapa saja, bahkan anonim"
-
Salin/catat tautan ke aplikasi web baru Anda untuk saat ini, dan itu akan ditambahkan ke rutinitas runDataCollection di bawah (kode pertama) di langkah selanjutnya.
Langkah 4: Pemicu
Di sinilah Anda menentukan seberapa sering mengumpulkan data.
- Pada bilah menu, klik Pemicu Proyek Saat Ini
- Klik tambahkan pemicu baru
- Untuk Run pilih fungsi runDataCollection, Events: time-driven, dan pilih sisanya sesuai preferensi Anda (saya lakukan setiap 5 menit)
Langkah 5: Informasi Tambahan dalam Script
Mari ubah skrip ke termostat, kota, dan lembar google spesifik Anda.
Setiap perubahan dicantumkan dengan nomor baris skrip. Anda harus pergi ke baris itu di skrip dan memperbarui seperti yang diinstruksikan di bawah ini. (Nomor baris harus benar jika baris 40 adalah "runDataCollection()…").
- Baris 45: tambahkan tautan webapp di perutean runDataCollection (Ini yang Anda catat di salah satu langkah sebelumnya)
- Baris 53: Nama pengguna dan kata sandi Nest
- Baris 77: ID perangkat termostat
Anda bisa mendapatkan id untuk setiap termostat dengan membuka dasbor Nest, mengeklik Termostat, mengeklik ikon roda gigi di kanan atas, lalu menyalin kolom "No serial.". Ini akan terlihat seperti: 02XX01XX471XXX3S
Baris 90: ID Kota (petunjuk tambahan dalam skrip di atas baris ini mungkin membantu.)
Untuk menemukan ID kota, buka "https://openweathermap.org/find?q=" cari kota Anda, klik tautan kota dan ID akan menjadi 7 digit nomor di URL
Baris 103: ID lembar Google (petunjuk tambahan dalam skrip di atas baris ini mungkin membantu.)
ID Sheet dapat diambil dari URL shee Lihat pola ini untuk mengetahui lokasi id Sheet di URL:https://docs.google.com/spreadsheets/d/THIS_IS_WHERE_THE_SHEET_ID_IS/edit#gid=123456789
Langkah 6: Selesaikan Spreadsheet
Lewati langkah ini jika Anda memulai dengan spreadsheet bersama saya.
Kedua baris ini harus ada di spreadsheet agar kode berfungsi.
Baris pertama (Baris tajuk): Spasi memisahkan kolom
Tanggal/Waktu Bulan Hari Tahun Suhu Kelembaban LuarSuhu LuarKelembaban Panas_Penggunaan AC_Penggunaan Cuaca AutoAway
Baris kedua:
Tambahkan tanggal kemarin di kolom pertama dan nol di kolom yang tersisa.
Hanya itu saja. Biarkan skrip berjalan dan skrip akan menambahkan satu baris per hari dan melakukan ping termostat dan cuaca lokal Anda untuk data per frekuensi pemicu yang Anda tetapkan.
Jika Anda menerapkan ulang aplikasi web, gunakan revisi baru. Saya mengalami masalah menggunakan revisi yang sama dengan skrip yang tidak berjalan
Jika skrip tidak berjalan, ulangi langkah sebelumnya lagi dan pastikan Anda telah memperbarui skrip seperti yang disarankan oleh langkah-langkah ini secara akurat. Ini adalah kemungkinan besar penyebab masalah dengan skrip tidak berjalan
Masalah yang Diketahui (Jika seseorang mengetahui perbaikannya, harap balas di bagian komentar):
1) Skrip gagal mendapatkan data dari sarang sepanjang hari. Saya memiliki pemicu saya setiap 5 menit, yang seharusnya menghasilkan total 288 bacaan sepanjang hari. Saya mendapatkan ~170. Terendah yang saya dapatkan adalah 16 dan tertinggi adalah 264.