Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Nest -termostaatti seuraa lämpötilaa, kosteutta ja uunin/vaihtovirtakäyttöä, ja käyttäjät voivat nähdä historialliset tiedot vain 10 päivän ajalta. Halusin kerätä historiallisia tietoja (> 10 päivää) ja törmäsin Googlen laskentataulukkoskriptiin, joka pingottaa jokaisen määritetyn ajan ja saa myös paikalliset säätiedot osoitteesta openweathermap.org ja tallentaa laskentataulukkoon.
Kaikki meni hyvin vuoden ajan, ja käsikirjoitus lopetti yhtäkkiä tietojen keräämisen. Google -haun jälkeen huomasin, että yksi rivi joka 5. minuutti google -laskentataulukossa tarkoittaa sitä, että ylitän Google -laskentataulukon sisältämien solujen enimmäismäärän. Päivitin alkuperäisen komentosarjan niin, että se pingottaa edelleen Nestiä 5 minuutin välein ja kerään tietoja 1 rivillä päivässä. Skripti tarkistaa viimeisen rivin ja jos se on sama päivä, se liittää tiedot samaan riviin sen sijaan, että lisäisi uuden rivin.
Kiitos alkuperäisestä käsikirjoituksesta. Tein vain muutaman muokkauksen tarpeitteni mukaan.
// michael-pescen työ: https://gist.github.com/michael-pesce/a4ba55d4fc4…// BEEZLYn työ:
Avainsanat: Nest -termostaattien historia, Nest -lämpö, Nest -lämpötilahistoria, Nest -termostaattien hakkerointi, Nest -termostaattivinkit, Nest -energiahistoria, Nest -päivittäinen käyttö, Nest -päivittäinen käyttö, Nest -termostaattitietojen lataaminen
Vaihe 1: Luo uusi Google -taulukko (Tallenna nimellä jaettuun laskentataulukkoon)
Aloita alla olevasta linkitetystä jaetusta Google -taulukostani (avaa tiedosto ja napsauta Tiedosto ja sitten "tee kopio" ja tallenna se Google -asemaan).
P. S: Älä pyydä minua antamaan sinulle lupa muokata tätä tiedostoa. Ennen kuin teet muutoksia, joita et voi tehdä, koska jaoin tämän vain luku -taulukkona, tee "kopio" omassa Google -asemassasi ja jatka sitten muokkaamista.
docs.google.com/spreadsheets/d/1zTHUfiltWomhPYmfD3TYRRoJZsgcjrQ_A2xHSTK5_dE/edit?usp=sharing
Ihmisille, joilla on ongelmia valtuutuksen kanssa: Kokeile seuraavan tiedoston komentosarjaa. Siinä on lisätoimintoja, jotka liittyvät Nestin uusiin 2.0 -valtuutusprotokolliin. En ole kokeillut sitä, joten jos kohtaat kysymyksiä tai ongelmia, lähetä kommentit -osioon.
www.dropbox.com/s/8rbtg7pb0xl9n9x/nest%20t…
Toinen Coder56: n käsikirjoituksen muunnelma: Lisätietoja kommenttiosassa. En ole kokeillut sitä, mutta käsikirjoitus on järjestetty erittäin hyvin ja se näyttää toimivan hyvin monille käyttäjille.
docs.google.com/spreadsheets/d/15bTn9_Cv9I…
Vaihe 2: Kopioi komentosarja
Ohita tämä vaihe, jos tallensit kopion jaetulle Google -arkilleni.
- Napsauta valikkorivillä Työkalut -> Skriptieditori… avataksesi skriptieditorin (uusi ikkuna)
- Poista komentosarjojen muokkausohjelmassa kaikki oletuskomennot/tiedostot ja luo uusi (kutsuin sitä "NestScript.gs")
- Leikkaa ja liitä koko teksti liitteenä olevasta tiedostosta NestScript.gs -tiedostoon ja tallenna sitten skripti (Käytä tässä vaiheessa vaiheessa 1 jaetun google -taulukon komentosarjaa. pitäisi olla jo käsikirjoitus. Jos et, voit avata tiedoston ja siirtyä komentosarjan osioon ja kopioida tekstin ohi. Poistin tähän vaiheeseen liitetyn komentosarjan tekstitiedoston, koska se ei ollut ajan tasalla ja saattaa aiheuttaa sekaannusta.).
Vaihe 3: Ota käyttöön Web -sovelluksena
- Napsauta valikkorivillä Työkalut -> Skriptieditori… avataksesi skriptieditorin (uusi ikkuna)
- Valitse valikkoriviltä Julkaise -> Ota käyttöön Web -sovelluksena
- Valitse "Suorita sovellus kuin minä"
- Valitse Kenellä on pääsy sovellukseen: "Kuka tahansa, jopa anonyymi"
-
Kopioi/huomioi linkki uuteen verkkosovellukseesi toistaiseksi, ja se lisätään alla olevaan runDataCollection -rutiiniin (ensimmäinen koodi) myöhemmissä vaiheissa.
Vaihe 4: Liipaisimet
Tässä voit määrittää, kuinka usein tietoja kerätään.
- Napsauta valikkorivillä Nykyisen projektin laukaisimet
- Napsauta Lisää uusi liipaisin
- Valitse Suorita-funktio runDataCollection, Tapahtumat: aikapohjainen ja valitse loput haluamallasi tavalla (teen 5 minuutin välein)
Vaihe 5: Lisätietoja skriptissä
Muokataan komentosarjaa haluamaasi termostaattiin, kaupunkiin ja Google -taulukkoon.
Jokainen muutos luetellaan komentosarjan rivinumerolla. Sinun on siirryttävä kyseiselle riville komentosarjassa ja päivitettävä alla olevien ohjeiden mukaisesti. (Rivinumeroiden tulee olla oikein, jos rivi 40 on "runDataCollection ()…").
- Rivi 45: lisää webapp -linkki runDataCollection -reititykseen (Tämän huomasit yhdessä edellisistä vaiheista)
- Rivi 53: Nest -käyttäjänimi ja salasana
- Rivi 77: Termostaatin laitetunnus
Saat jokaisen termostaatin tunnuksen siirtymällä Nest -hallintapaneeliin, napsauttamalla termostaattia, napsauttamalla oikeassa yläkulmassa olevaa rataskuvaketta ja kopioimalla sarjanumeron.
Rivi 90: Kaupungin tunnus (tämän rivin yläpuolella olevan komentosarjan lisäohjeista voi olla apua.)
Löydät kaupunkitunnuksen siirtymällä "https://openweathermap.org/find?q=" etsimään kaupunkiasi, napsauttamalla kaupungin linkkiä ja tunnus on 7 -numeroinen numero URL -osoitteessa
Rivi 103: Google -arkin tunnus (tämän rivin yläpuolella olevan komentosarjan lisäohjeista voi olla apua.)
Sheet -tunnus voidaan noutaa shee -URL -osoitteesta Katso tästä mallista, missä Sheet ID on URL -osoitteessa:
Vaihe 6: Viimeistele laskentataulukko
Ohita tämä vaihe, jos aloitit jaetulla laskentataulukollani.
Näiden kahden rivin on oltava taulukossa, jotta koodi toimii.
Ensimmäinen rivi (otsikkorivi): väli erottaa sarakkeet
Päivämäärä/aika Kuukausi Päivä Vuosi Lämpötila Kosteus Ulkona Lämpötila Ulkona Kosteus Lämpö_käyttö AC_käyttö Sää AutoAway
Toinen linja:
Lisää eilinen päivämäärä ensimmäiseen sarakkeeseen ja nollit muihin sarakkeisiin.
Se on siinä. Anna komentosarjan toimia, ja sen pitäisi lisätä yksi rivi päivässä ja pingottaa termostaattiasi ja paikallista säätietojasi asetetun laukaisutaajuuden mukaan.
Jos otat verkkosovelluksen uudelleen käyttöön, käytä uutta versiota. Minulla oli ongelmia käyttää samoja versioita, kun komentosarja ei ollut käynnissä
Jos komentosarja ei ole käynnissä, mene edellisten vaiheiden läpi uudelleen ja varmista, että olet päivittänyt komentosarjan näiden ohjeiden mukaisesti oikein. Tämä on todennäköisin syy ongelmaan, jossa komentosarja ei ole käynnissä
Tunnetut ongelmat (jos joku tietää korjauksen, vastaa kommenttikenttään):
1) Skripti ei saa tietoja pesästä koko päivän. Minulla on liipaisin 5 minuutin välein, minkä pitäisi johtaa yhteensä 288 lukemiseen päivän aikana. Saan ~ 170. Alin mitä olen saanut on 16 ja korkein 264.