לאחר שחיברתם כמה וכמה מכשירים חכמים בבית וודאי שאלתם את עצמכם איך עכשיו גורמים לכולם לעבוד ביחד ולהפעיל אחד את השני. להיכנס לאפליקציה כדי להפעיל את המנורה או הטלויזיה זה נחמד אבל לא מספיק. בדיוק בשביל זה המציאו את Home Assistant, פלטפורמה לניהול בית חכם במקום אחד.
מקום אחד לכל המוצרים החכמים
אפתח ואומר, זוהי לא אפליקציה או תוכנה שמתקינים פעם אחת וסיימנו. הפלטפורמה עלולה לדרוש הגדרות ותחזוקה וכדאי לקרוא לעומק כדי לוודא שיש בידיכם את היכולת לעבוד איתה. כן אציין שעם הזמן הפלטפורמה הופכת לפשוטה ונגישה יותר כך שרמת הסיבוך גם יורדת עם הזמן.
Home Assistant היא פלטפורמת קוד פתוח (זה אומר שהקוד כולו פתוח ונגיש לכל מי שירצה) ומתחוזקת על ידי קהילה רחבה של מפתחים ומשתמשים. ליבה של הפלטפורמה הם המכשירים החכמים, בצורה רחבה יותר הם נקראים כאן Components, או ׳שירותים׳, נכון לכתיבת שורות אלה, נתמכים כ 975 שירותים(!) ועם כל גרסה חדשה מתווספים שירותים חדשים, הנה כמה דוגמאות לשירותים קיימים: Broadlink RM לשליטה על מוצרים ב IR או RF, מסנג׳ר של פייסבוק לשליחת הודעות בצורה אוטומטית על דברים שקורים לכם בבית, נורות פיליפס, גוגל הום, אמזון אקו (אלקסה), מצלמות, פרוטוקולים אלחוטיים ועוד..
לאחר הגדרת השירותים האלה, ניתן לשלוט בכולם דרך הממשק הוובי של הפלטפורמה. שימו לב שאם עד עכשיו היה עלינו להשתמש במספר אפליקציות שונות כדי לשלוט במכשירים מיצרנים שונים, כעת ניתן לשלוט בכולם במקום אחד ובצורה מהירה ופשוטה, לפעמים אפילו פשוטה יותר מהאפליקציה הייעודית של המכשיר.
השלב הבא הוא האוטומציה, זהו בעצם היתרון הגדול של הפלטפורמה, תוכלו להגדיר שחיישן תנועה של Xiaomi ידליק מנורה של פיליפס או שאם יצאתם מהעבודה והיה יום גשום או מעונן, הדוד ידלק עצמאית ותחכה לך מקלחת חמה בהגיעכם הביתה. כאן תוכלו למצוא רשימה קצרה של דוגמאות דומות, אך כמות האפשרויות כמעט בלתי מוגבלת.
אנסה לתאר כאן על דרישות הפלטפורמה, ההתקנה, הגדרת שירות חדש ואוטומציה, הפלטפורמה גדולה, אפשר לדון על הפלטפורמה בלי סוף ולהקדיש מאמר שלם לכל חלק בפלטפורמה אבל אני מקווה שבכל זאת תקבלו כאן מספיק מידע כדי שתוכלו לדעת קצת יותר למה אתם נכנסים והאם זה בשבילכם.
מה צריך בשביל לגרום לזה לעבוד?
הפלטפורמה כתובה ב-Python 3 ולכן יכולה לרוץ על כל מערכת שתומכת בשפה, זה יכול להיות PC, raspberry pi או אפילו שרת NAS. ניתן להתקין על כמעט כל מערכת הפעלה אך יהיה קל יותר לעבוד בסביבת Linux, גם אם לא התנסיתם עד היום ב-Linux, לא לפחד, הכל מתועד בצורה מיטבית ויש קהילה מאד רחבה שתתמוך בכם, הפלטפורמה כמובן דורשת שהמערכת עליה הפלטפורמה מותקנת תרוץ ותהיה מחוברת לרשת באופן קבוע ולכן Raspberry PI הוא אפשרות נפלאה כיוון שצריכת החשמל שלו נמוכה וקיימת תמיכה ייעודית להתקנה עליו. כדי להתקין ולהשתמש בפלטפורמה אין צורך בידע תכנותי, אמנם מדי פעם יש צעדים מעט טכנים, אך שוב, יש כמה וכמה קהילות בארץ ובעולם שתוכלו להיעזר בהן (לינקים בסוף הפוסט).
מאז כתיבת המדריך וכמו שכתבתי בפסקה הראשונה, הפלטפורמה הופכת פשוטה יותר עם הזמן. בפסקה הבאה פירטתי לדוגמה על הוספת נורה חכמה של Yeelight דרך פיצ’ר ה-Integration החדש והפשוט, ומתחת, הסבר על הוספת אותה נורה באופן “ידני” לקובץ ה-configuration.
דרך Integrations
הדבר הראשון שתעשו הוא למצוא את ה-Component המתאים למוצר שבידיכם. במקרה שלנו מדובר על נורת Yeelight, והעמוד המתאים הוא כאן. בחלקו העליון של העמוד תוכלו לראות את הצעדים עבור הוספת נורה חכמה וזה מאד פשוט. לכו לעמוד ה-Integrations ב-Home Assistant המקורי. לחצו על הוספה, ובחרו Yeelight מהרשימה. הנורות שמחוברות לאותה רשת כעת יזוהו אוטומטית ויתווספו לפלטפורמה.
הגדרה ידנית – Configuration
לאחר ההתקנה, תגלו כמה קבצים בתקייה בה בחרנו להתקין, הקובץ בו מגדירים את כל השירותים נקרא configuration.yaml, למי שרואה את הסיומת הזו פעם ראשונה ולא מכיר, yaml הינו פורמט היררכי, דומה ל-xml או json בבסיסו, אך להבדיל מהם, הוא משתמש בהזחות (רווחים) כדי להגדיר את ההירככיה, ארמוז לכם כבר מעכשיו שכנראה שרוב הטעויות והשגיאות שלכם יהיו קשורות לפורמט המעצבן שלא משאיר כמעט מקום לרווח אחד שלא במקום.
נחזור לקובץ הקונפיגורציה, שימו לב שהשירותים שלנו הם לא לא רק מכשירים חכמים אלא גם מיקום, מזג אוויר שירותי התראות וכו׳. כאשר אתם רוצים להגדיר שירות חדש, עליכם למצוא את הנתונים שהוא דורש, חלק דורשים IP, חלק MAC וחלק גם דורשים אישורי גישות מהאפליקציות הייעודיות. כדי לדעת בדיוק מה ההגדרות עבור השירות שאתם רוצים, חפשו בעמוד השירותים את השירות הרצוי ותופנו לעמוד הרלוונטי עם הפרטים המלאים על הגדרת השירות.
אם למשל נרצה להגדיר נורת Yeelight חכמה, ברשימת השירותים ונגיע לעמוד הזה, בחלק העליון של העמוד תוכלו לראות דוגמא להגדרה של המכשיר כך שיהיה מאד קל להעתיק בשינוי הפרמטרים המתאימים כדי לגרום לזה לעבוד, במקרה שלנו:
light: - platform: yeelight devices: 192.168.1.25: name: Living Room
אז מה אנחנו רואים בעצם? הקטגוריה היא light, כלומר אנחנו מגדירים שירות מסוג “תאורה”, תחת קטגוריה זו יוגדרו כל שירותי התאורה שלכם, לא משנה מי היצרן, השורה הבאה היא הפלטפורמה, כאן היא שם היצרן, yeelight, ואז מגיעה רשימה של נורות, ניתן לראות כי לכל נורה יש 2 פרמטרים שהם חובה, כתובת ה IP של הנורה ושם, כך שיהיה קל לזהות את הנורה במידה ויש ברשותנו כמה, נעדכן את ה IP ונבצע אתחול לפלטפורמה (configuration > general > restart), אם אין לכם טעות, בעמוד הראשי של הפלטפורמה תופיע ‘קוביה’ חדשה עם הכותרת Lights ומתחתיה הנורה החדשה שהגדרתם עם אפשרות להדליק, לכבות, לעמעם או לקבוע תצורה אחרת (הבהוב איטי/מהיר וכו’).
יש מים חמים?
אז יש מלא מכשירים מוגדרים אבל הם טיפשים, צריך להדליק אותם ידנית והם לא יודעים לעשות שום דבר שלא אומרים להם. וכאן נכנסת האוטומציה, אז למה בכלל אני מתכוון?
בלוק אוטומציה ב Home Assistant מורכב מטריגר (trigger) ופעולות (actions), אם רוצים, אפשר גם להוסיף תנאים (conditions) שחייבים להתקיים בזמן הטריגר כדי שרצף הפעולות יבוצע. דוגמא לאוטומציה פשוטה, אם השעה בין 16:00 ל 23:00 ויורד גשם (הטריגר), הדלק את האור בחדר שינה בצבע כחול למשך 10 דקות. זוהי דוגמא די פשוטה, בדוגמאות אחרות יכול כל אחד מהחלקים בבלוק להיות מסובך ומורכב מכמה חלקים בעצמו.
גם כאן, בדומה לקונפיגורציה, עדכונים אחרונים מאפשרים ליצור תסריט אוטומטי בקלות ואפילו להשתמש בתבניות מוכנות הנקראות Blueprints. אמנם ההגדרה הידנית תאפשר שליטה נרחבת יותר, אך לרוב המוחלט של התסריטים לא תצטרכו אותה. אתאר כאן גם הגדרה בשיטה הקלה והחדשה וגם הגדרה ידנית עבור התסריט הגשום בפסקה מעל.
כדי ליצור אוטומציה, נלך לתפריט Configuration ונבחר Automation, נלחץ על New automation. כעת יש לנו אפשרות לבחור תבנית קיימת אך אנחנו ניצור אוטומציה מאפס ונבחר Start with an empty automation. במסך הבא נראה את החלקים שציינתי קודם – Trigger, Condition ו-Actions. כאשר בכל אחד מהם עלינו לבחור את הרכיב והפרטים. לחצו על התמונה הבאה כדי לראות את ההגדרה המלאה
בכדי להגדיר בלוקים של אוטומציה נשתמש בקובץ ה automations.yaml, הפורמט גם כאן הוא yaml כפי שהיה בקובץ הקונפיגורציה, כעת אציג את בלוק האוטומציה:
automation: - alias: 'Rainy Day' trigger: - condition: state entity_id: sensor.is_raining state: 'on' condition: - platform: time after: '16:00:00' before: '23:00:00' action: - service: light.turn_on entity_id: light.bedroom_light data: color_name: blue - service: delay minutes: '10' - service: light.turn_off entity_id: light.bedroom_light
אז אולי יקח טיפה זמן להבין בדיוק את המבנה, “השפה” ומה כל שורה עושה בנפרד, אבל אני חושב באופן כללי די ברור מה בגדול קורה כאן.
אם תחזרו למסך הראשי של הפלטפורמה תראו שנוצרה לכם קוביית ‘Automation’, ובה יש שורה של ‘Rainy Day’, זה אומר שכנראה אין לכם טעויות, אם תרצו לבדוק את האוטומציה שזה עתה יצרתם, תוכלו ללכת לעמוד ה Services (חפשו את האייקון של השלט בצד שמאל למטה), תחת Service בחרו ‘automation.trigger’, תחת Entity, תהיה רק אפשרות אחת בשם ‘automation.rainy_day’, בחרו אותה ולחצו על Call Service, מה שעשינו כעת הוא בעצם לדמות פעולה של הטריגר (במקרה שלנו, שעה מסויימת), ואם אכן יורד גשם, המנורה שלכם תאיר כעת בצבע כחול.
וככה זה יראה
לאחר שתוסיפו את כל המכשירים שלכם ואולי תגדירו גם כמה חיישנים (sensors), תקבלו בממשק הוובי משהו שדומה לדמו הבא: (לחצו כאן לצפייה במסך מלא)
אז נכון, אולי זה לא יקרה מיד אחרי ההתקנה וכנראה שאצלכם הממשק יראה קצת עירום, אתם גם תתקלו בבעיות ולא מעט דברים מעצבנים, אבל יש גם לא מעט כיף וסיפוק בדרך, בסופו של הדברים ייבנו והפלטפורמה תתרחב למרכז בית חכם של ממש שכיף להרחיב ולשחק איתו לפי מה שמתאים לכם ובדיוק בשביל זה, אנחנו כאן.
פלטפורמות דומות
- Calaos – התחיל כפרוייקט של חברה צרפתית והפך לפרוייקט קוד פתוח, מותאם למערכות Linux, יש לפלטפורמה אפליקציות ייעודיות למסך מגע, אנדרואיד ו iOS. רוב הפורומים של התמיכה יהיו בצרפתית.
- Domoticz – פלטפורמה עם ספרייה די רחבה של מכשירים נתמכים וגם פרוטורולים, הממשק משתמש כתוב ב HTML5 כך שהוא רץ בתאימות גבוהה גם על מחשבים וגם על ניידים אך לא דורש משאבים רבים.
- OpenHAB – קיצור ל Open Home Automation Bus, אחת מהפלטפורמות היותר מוכרות בקהילת הקוד הפתוח, כתובה ב Java ורצה על מרבית מערכות ההפעלה המוכרות, הרעיון המרכזי בפלטפורמה היא שהיא מתייחסת באופן זהה לכל המכשירים כך שקל יותר לנהל אותה ולפתח לה שירותים או פלאג-אינים.
- OpenMotics – אם פתרונות אלחוטיים לא מדברים אליכם, OpenMotics מתמחה דווקא בפתרונות חוטיים, הרעיון בפלטפורמה היא יותר לשלוט במכשירים ופחות לתאם בין מכשירים מיצרנים שונים כפי שהפלטפורמות האחרות מציעות.
הרשימה ממשיכה, יש עוד לא מעט פלטפורמות אך אלו המוכרות והרחבות יותר בקהילה כיום וכנראה שלפחות אחת מהן תתאים לכם.
קישורים שיכולים לעזור:
אתר Home Assistant, תוכלו למצוא שם מדריכים, דוגמאות ופורום תמיכה מאד רחב (אנגלית)
מדריך וידאו למתחילים, משלב ההתקנה ועד אוטומציה
אתר Home Assistant בעברית, תוכלו למצוא כאן כמה דוגמאות ומדריכים נחמדים
קהילת עוזרות אישיות ובית חכם בפייסבוק (ישראלית), תוכלו לשאול כאן שאלות
קהילה נוספת של בית חכם בפייסבוק (ישראלית)
אהבתם את הפוסט? עקבו אחר עמוד הפייסבוק של הבלוג.