תוכן עניינים:

כונן הנתונים של היסטוריית Nest Nest: 6 שלבים (עם תמונות)
כונן הנתונים של היסטוריית Nest Nest: 6 שלבים (עם תמונות)

וִידֵאוֹ: כונן הנתונים של היסטוריית Nest Nest: 6 שלבים (עם תמונות)

וִידֵאוֹ: כונן הנתונים של היסטוריית Nest Nest: 6 שלבים (עם תמונות)
וִידֵאוֹ: Chia Outreach, Austin כותב מאמר ואנחנו משוחחים #קריפטו דברים מהנים 2024, נוֹבֶמבֶּר
Anonim
כונן הנתונים של היסטוריית Nest Thermostat
כונן הנתונים של היסטוריית Nest Thermostat

תרמוסטט קן עוקב אחר טמפרטורה, לחות ושימוש בתנור/AC ומשתמשים יכולים לראות נתונים היסטוריים רק למשך 10 ימים. רציתי לאסוף נתונים היסטוריים (> 10 ימים) ונתקלתי בסקריפט של גיליונות אלקטרוניים של גוגל שמצמיד קישורים בכל זמן מוגדר וגם מקבל נתוני מזג אוויר מקומיים מ- openweathermap.org ושומר בגיליון האלקטרוני.

הכל הלך כשנה במשך שנה, והתסריט הפסיק פתאום לאסוף נתונים. לאחר חיפושים כלשהם בגוגל הבנתי ששורה אחת בכל 5 דקות עבור spreadhseet של גוגל פירושה פגיעה בגבול התאים המרבי שגיליון אלקטרוני של Google יכול להכיל. עדכנתי את הסקריפט המקורי ל'עדיין פינג 'של Nest כל 5 דקות, אך אוסף נתונים בשורה אחת ביום. סקריפט בודק את השורה האחרונה ואם זה אותו היום, הוא מצרף את הנתונים לאותה שורה במקום להוסיף שורה חדשה.

קרדיט לתסריט המקורי. ביצעתי רק כמה עריכות שיתאימו לצרכים שלי.

// עבודתו של מייקל-פסה: https://gist.github.com/michael-pesce/a4ba55d4fc4…// עבודתו של BEEZLY:

מילות מפתח: היסטוריית Nest Thermostat, Nest Heat, Nest Temperature History, Nest Thermostat Hack, עצות של Nest Thermostat, היסטוריית האנרגיה של Nest, שימוש יומי של Nest, שימוש יומי של Nest, הורדת נתוני תרמוסטט קן

שלב 1: צור גיליון Google חדש (בצע שמירה כמו בגיליון האלקטרוני המשותף שלי)

צור גיליון Google חדש (בצע שמירה כמו בגיליון האלקטרוני המשותף שלי)
צור גיליון Google חדש (בצע שמירה כמו בגיליון האלקטרוני המשותף שלי)

התחל בגיליון הגוגל המשותף שלי המקושר למטה (פתח את הקובץ ולחץ על קובץ ולאחר מכן "צור עותק" ושמור בכונן Google שלך).

P. S: אל תבקש ממני לתת לך את האישור לערוך קובץ זה. לפני שתבצע שינויים כלשהם, שלא תוכל לבצע מכיוון ששיתפתי את זה כגיליון אלקטרוני לקריאה בלבד, בצע "צור עותק" בכונן הגוגל שלך ולאחר מכן המשך בעריכות.

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

לאנשים שיש להם בעיות עם הרשאה: נסה את הסקריפט בקובץ הבא. יש לו פונקציונליות נוספת הקשורה לפרוטוקולי הרשאה 2.0 החדשים של Nest. לא ניסיתי את זה, אז אם אתה נתקל בשאלות או בעיות, אנא פרסם בסעיף ההערות. קרדיט ל- mcr2582.

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

וריאציה נוספת של התסריט מאת Coder56: פרטים נוספים בחלק ההערות. לא ניסיתי את זה, אבל התסריט מאורגן היטב ונראה שהוא עובד היטב עבור משתמשים רבים.

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

שלב 2: העתקת סקריפט

דלג על שלב זה אם שמרת עותק בגיליון הגוגל המשותף שלי.

  • בשורת התפריטים לחץ על כלים -> עורך סקריפטים … כדי לפתוח את עורך הסקריפט (חלון חדש)
  • בעורך הסקריפט מחק את כל הסקריפטים/קבצי ברירת המחדל, וצור קובץ חדש (קראתי לו "NestScript.gs")
  • גזור והדבק את כל הטקסט הזה מהקובץ המצורף לתוך NestScript.gs, ולאחר מכן שמור את הסקריפט (לשלב זה, אנא השתמש בסקריפט מהגיליון של Google ששיתפתי בשלב 1. אם עשית עותק בקובץ זה, אתה אמור להיות כבר הסקריפט. אם לא היית יכול לפתוח את הקובץ וללכת לקטע סקריפט ולהעתיק את הטקסט. מחקתי את קובץ הטקסט של הסקריפט שהצורף לשלב זה מכיוון שהוא לא היה מעודכן ועלול ליצור בלבול.).

שלב 3: פריסה כאפליקציית אינטרנט

פריסה כאפליקציית אינטרנט
פריסה כאפליקציית אינטרנט
פריסה כאפליקציית אינטרנט
פריסה כאפליקציית אינטרנט
  • בשורת התפריטים לחץ על כלים -> עורך סקריפטים … כדי לפתוח את עורך הסקריפט (חלון חדש)
  • בשורת התפריטים לחץ על פרסם -> פריס כאפליקציית אינטרנט
  • בחר "הפעל את האפליקציה כמוני"
  • בחר למי יש גישה לאפליקציה: "כל אחד, אפילו אנונימי"
  • העתק/שימו לב לקישור לאפליקציית האינטרנט החדשה שלכם לעת עתה, והוא יתווסף לשגרת runDataCollection להלן (הקוד הראשון) בשלבים מאוחרים יותר.

שלב 4: מפעילים

מפעילים
מפעילים
מפעילים
מפעילים
מפעילים
מפעילים

כאן אתה מגדיר באיזו תדירות לאסוף נתונים.

  • בשורת התפריטים לחץ על טריגרים של הפרויקט הנוכחי
  • לחץ על הוסף טריגר חדש
  • עבור הפעלה בחר את הפונקציה runDataCollection, אירועים: מונע זמן, ובחר את השאר לפי העדפתך (אני עושה כל 5 דקות)

שלב 5: מידע נוסף בסקריפט

מידע נוסף בסקריפט
מידע נוסף בסקריפט
מידע נוסף בסקריפט
מידע נוסף בסקריפט
מידע נוסף בסקריפט
מידע נוסף בסקריפט

בואו נשנה את הסקריפט לתרמוסטט הספציפי שלך, לעיר ולגיליון Google שלך.

כל שינוי מופיע עם מספר שורה של התסריט. יהיה עליך לעבור לשורה זו בסקריפט ולעדכן בהתאם להוראות להלן. (מספרי הקווים צריכים להיות נכונים אם שורה 40 היא "runDataCollection () …").

  • שורה 45: הוסף קישור webapp בניתוב runDataCollection (זה מה שציינת באחד השלבים הקודמים)
  • שורה 53: שם משתמש וסיסמה של Nest
  • שורה 77: מזהה מכשיר תרמוסטט

תוכל לקבל את המזהה עבור כל תרמוסטט על ידי מעבר ללוח המחוונים של Nest, לחיצה על התרמוסטט, לחיצה על סמל גלגל השיניים בפינה השמאלית העליונה ולאחר מכן העתקת השדה "מספר סידורי". זה ייראה בערך כמו: 02XX01XX471XXX3S

שורה 90: מזהה עיר (הוראות נוספות בתסריט שמעל לשורה זו עשויות להיות מועילות)

כדי למצוא את מזהה העיר, עבור אל "https://openweathermap.org/find?q=" חיפוש העיר שלך, לחץ על קישור העיר והמזהה יהיה המספר בן 7 הספרות בכתובת האתר

שורה 103: מזהה גיליון Google (הוראות נוספות בתסריט שמעל לשורה זו עשויות להיות מועילות)

ניתן לתפוס את מזהה הגיליון מכתובת ה- URL. ראה תבנית זו של המקום שבו מזהה הגיליון נמצא בכתובת האתר:

שלב 6: סיים את הגיליון האלקטרוני

דלג על שלב זה אם התחלת בגיליון האלקטרוני המשותף שלי.

שתי השורות האלה צריכות להיות בגיליון האלקטרוני כדי שהקוד יעבוד.

שורה ראשונה (שורה בכותרת): רווח מפריד בין עמודות

תאריך/שעה חודש יום שנה שנה לחות בחוץ בחוץ טמפ בחוץ לחות_ שימוש חום AC_ שימוש מזג אוויר AutoAway

שורה שנייה:

הוסף את התאריך של אתמול בעמודה הראשונה ואת האפסים בעמודות הנותרות.

זהו זה. תן לתסריט לפעול והוא אמור להוסיף שורה אחת ליום ולצלול את התרמוסטט ומזג האוויר המקומי לקבלת נתונים לפי תדירות ההדק שהגדרת.

אם אתה מפיץ מחדש את ה- webapp, השתמש בגירסה החדשה. היו לי בעיות בשימוש באותן הגרסאות כשהסקריפט לא פועל

אם התסריט אינו פועל, עבור שוב על השלבים הקודמים וודא שעדכנת את הסקריפט כפי שהציע שלבים אלה במדויק. זו הסיבה הסבירה ביותר לבעיה שבהסקריפט לא פועל

בעיות ידועות (אם מישהו יודע את התיקון, אנא השיב בסעיף ההערות):

1) סקריפט לא מצליח להשיג נתונים מהקן לאורך כל היום. יש לי את ההדק שלי כל 5 דקות, מה שאמור להביא ל -288 קריאות במהלך היום. אני מקבל ~ 170. הנמוך ביותר שקיבלתי הוא 16 והגבוה ביותר הוא 264.

מוּמלָץ: