מאמרים, רשת ותשתית

מה זה MQTT ואיך הוא מחבר בין כל מה שיש לכם בבית

מיני מחשב כסוף על מדף בארון תקשורת ביתי מסודר, שני כבלי רשת מחוברים ונורית הפעלה כחולה
0
(0)

אם התחלתם לעבוד עם Home Assistant, בשלב מסוים תיתקלו במונח MQTT. בדרך כלל זה קורה כשמנסים להתקין משהו כמו Zigbee2MQTT או ESPHome, ופתאום מבקשים מכם להתקין קודם משהו שנקרא Broker.

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

מה זה בעצם MQTT

MQTT הוא פרוטוקול להעברת הודעות קצרות בין התקנים. הוא נבנה להיות קל, מהיר וחסכוני במשאבים, ולכן הוא נמצא בשימוש בעולם ה-IoT כבר שנים לפני שמישהו דיבר על בתים חכמים.

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

למה בכלל צריך את זה

קחו בית ממוצע שאנחנו מתכננים: חיישני תנועה, נורות Zigbee, בקר תריסים, מערכת השקיה, כמה מכשירי ESPHome שבנינו לבד, ו-Home Assistant שמנהל את הכל.

בלי שכבת תיווך, כל התקן היה צריך לדעת מי עוד קיים במערכת ואיך לדבר איתו. כל תוספת חדשה הייתה דורשת לעדכן את כל השאר.

עם MQTT כל התקן צריך לדעת דבר אחד בלבד: איפה נמצא ה-Broker. אם מחר מוסיפים חיישן, הוא פשוט מתחיל לפרסם הודעות והמערכת קולטת אותן. אף אחד מההתקנים הקיימים לא צריך לדעת שמשהו השתנה.

Broker

הלב של המערכת. כל הודעה עוברת דרכו, והוא מחליט למי להעביר אותה. הוא רץ על אותו מחשב שעליו רץ Home Assistant וכמעט לא צורך משאבים. במערכות שאנחנו בונים זה תמיד Mosquitto.

Topic

הכתובת שאליה נשלחת ההודעה, משהו בסגנון home/kitchen/light או garden/irrigation/status. אפשר לחשוב על זה כמו על כתובת דואר. מי שמאזין לכתובת יקבל את מה שנשלח אליה.

Payload

תוכן ההודעה עצמה. לפעמים זה פשוט ON, OFF או 25.4, ולפעמים מבנה JSON שלם עם עשרה ערכים. הפרוטוקול לא מתעניין בתוכן, הוא רק מעביר אותו.

Publish ו-Subscribe

שני הצדדים של אותו מטבע. מי ששולח הודעה מבצע Publish, ומי שרוצה לקבל הודעות מכתובת מסוימת מבצע Subscribe. Home Assistant מאזין בדרך כלל לענף שלם, וכך מקבל את כל מה שקורה בבית.

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

איך זה נראה בפועל

חיישן דלת נפתח ומפרסם הודעה לכתובת שלו. ה-Broker מקבל אותה. Home Assistant, שנרשם מראש להאזין לכתובת הזו, מקבל את ההודעה ומפעיל את האוטומציה שמדליקה את האור במסדרון.

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

שלוש תכונות ששווה להכיר

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

Retained Messages

ה-Broker שומר את ההודעה האחרונה שנשלחה לכל כתובת. בלי זה, אחרי כל הפעלה מחדש של Home Assistant כל המכשירים היו מופיעים כלא ידועים עד שמישהו נוגע בהם. עם Retain, המערכת יודעת מיד מה המצב של כל אחד.

QoS

רמת האמינות של העברת ההודעה. ברמה 0 ההודעה נשלחת פעם אחת בלי אישור, ברמה 1 היא תישלח שוב עד שתתקבל, וברמה 2 מובטח שהיא תגיע בדיוק פעם אחת. בבתים רגילים רמות 0 ו-1 מספיקות בשפע.

Last Will and Testament

התכונה האלגנטית ביותר בפרוטוקול. כל התקן משאיר אצל ה-Broker הודעה שתפורסם במקומו אם הוא יתנתק באופן בלתי צפוי. כך Home Assistant יודע תוך שניות שהתקן ירד, במקום להציג לכם ערך ישן עוד שעות.

MQTT Discovery, ולמה זה חוסך שעות

כשהתקן חדש עולה לראשונה, הוא יכול לפרסם הודעה שמתארת מה הוא ומה הוא יודע לעשות. Home Assistant קורא את ההודעה ומוסיף את המכשיר למערכת עם כל הישויות והכפתורים המתאימים.

בבית עם שמונים מכשירי Zigbee, זה ההבדל בין עשר דקות ליום שלם של הגדרות ידניות. זו גם הסיבה ש-Zigbee2MQTT משתלב כל כך בקלות.

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

אבטחה, בקצרה

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

חייבים MQTT?

לא. Home Assistant יודע לעבוד מצוין גם בלעדיו, ויש מערכות שלמות שבנינו בלי לגעת בו.

אבל ברגע שנכנסים Zigbee2MQTT, ESPHome, Tasmota או כמעט כל פרויקט קוד פתוח בתחום, MQTT מופיע בדרישות. בפועל זה רכיב שמתקינים פעם אחת וכמעט לא נוגעים בו אחר כך.

לסיכום

MQTT הוא אחת מאבני היסוד של הבית החכם המודרני. הוא פשוט, מהיר, ועובד בלי לצאת מהבית. המונחים Publish, Subscribe ו-Broker נשמעים מרתיעים בשלב הראשון, אבל מדובר בשלושה רעיונות שאפשר להסביר בדקה.

אם אתם מתכננים להעמיק ב-Home Assistant, כדאי להכיר את MQTT מוקדם. הוא ילווה אתכם כמעט בכל פרויקט שתבנו.

שאלות נפוצות

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

כמעט בכלל לא. Mosquitto רץ בנוחות מלאה על Raspberry Pi ומצריך מעט מאוד זיכרון. ברוב המערכות שלנו הוא רץ על אותו מחשב של Home Assistant ולא מורגש בכלל.

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

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

טכנית כן, אבל זה מבטל את רוב היתרון. ברגע שה-Broker יושב בחו״ל, כל הודעה מחיישן בסלון לנורה בסלון עושה דרך ארוכה מאוד, והכל נעצר כשהאינטרנט נופל. אנחנו מריצים אותו תמיד בבית.

רוצים מערכת שעובדת גם בלי אינטרנט?

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

המשך קריאה

מתאם Zigbee/Thread SONOFF Dongle Max - בחנות שלנו

עד כמה המאמר הזה היה שימושי?

לחצו על כוכב כדי לדרג אותו!

אודות קובי פלדמן

מייסד ובעלים של פלדמן מערכות, 30 שנה בהנדסת מערכות ובקרה.

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

השם והתגובה יתפרסמו באתר, והאימייל לא יוצג. פרטים נוספים במדיניות הפרטיות.