במה אפליקציית KolHive יכולה לשלוט
כשאתם בונים אפליקציה ב־KolHive, היא יכולה לתקשר עם מכשירים פיזיים בסביבה שלכם. האפליקציה יכולה להתחבר להתקני Bluetooth Low Energy, לגשת למכשירים ברשת הביתית או המשרדית ולקרוא נתונים מחיישני התנועה של הטלפון. בטלפונים תומכים עם Android, היא יכולה גם לשדר אותות אינפרא־אדום לשליטה מרחוק.
לדוגמה, נועה מבאר שבע יכולה לבנות כלי מעקב שקורא נתונים מרצועת הדופק שלה ב־Bluetooth או בודק חיישן לחות בעציץ. איתי מחיפה יכול להפעיל שקע חכם ברשת המשרדית או להעיר את המחשב השולחני שלו באמצעות Wake-on-LAN. בטלפון Android עם משדר אינפרא־אדום (IR blaster), דנה מירושלים יכולה לבנות שלט רחוק לטלוויזיה בסלון.
אפליקציות לעולם לא מתחברות לחומרה ישירות. כל בקשה עוברת דרך KolHive, שבודקת על אילו הרשאות האפליקציה הצהירה ומבקשת את אישורכם תחילה.
Bluetooth Low Energy
אפליקציה שנבנתה ב־KolHive יכולה להשתמש ב־Bluetooth Low Energy (או BLE) כמכשיר מרכזי (Central). היא יכולה לסרוק התקנים קרובים, להתחבר אליהם, לקרוא ולכתוב נתונים בגודל של עד 512 בייט, ולהירשם לקבלת התראות. אין תמיכה ב־Classic Bluetooth, בפרופילי שמע ובחיבורים טוריים מסוג RFCOMM.
האפליקציה לעולם לא מקבלת רשימה שקטה של מכשירים בסביבה. כשהאפליקציה מבקשת לסרוק, KolHive פותחת על המסך חלונית בחירת מכשירים משלה. האפליקציה רואה רק את המכשיר הבודד שבחרתם ורק את שירותי ה־Bluetooth שהיא ציינה מראש.
חיבור Bluetooth פועל באפליקציית KolHive ב־Mac, ב־Windows, ב־iPhone, ב־iPad וב־Android. מכשירי Apple מבקשים הרשאה בשימוש הראשון, ומכשירי Android 12 ומעלה מבקשים הרשאה לגישה למכשירים קרובים (Nearby devices). בדפדפן, Bluetooth פועל רק ב־Chrome וב־Edge, ולא ב־Safari או ב־Firefox.
מכשירים ברשת המקומית
האפליקציה שלכם יכולה לאתר מכשירים ברשת המקומית ולתקשר איתם על גבי HTTP, WebSocket, TCP ו־UDP. היא יכולה לגלות חומרה באמצעות SSDP או mDNS ולשלוח חבילות Wake-on-LAN. הגישה מתאפשרת רק לכתובות ברשת הפרטית. KolHive חוסמת חיבורים לשרתים באינטרנט הציבורי, לכתובות Loopback ולכתובת העצמית של המכשיר שלכם.
כל חלון אפליקציה יכול לפתוח עד 16 חיבורי Socket במקביל ולהריץ ארבע קריאות לגילוי מכשירים בדקה. תשובות HTTP מוגבלות ל־5 MB. אישורי אבטחה בחתימה עצמית (Self-signed certificates) מתקבלים רק עבור מכשירים מקומיים ורק כשהאפליקציה מבקשת זאת.
שליטה מלאה ברשת המקומית פועלת ב־Mac, ב־Windows וב־Android. ב־Mac, מערכת ההפעלה מציגה בקשת הרשאה לגישה לרשת המקומית. ב־iPhone וב־iPad אפשר להשתמש ב־HTTP, ב־WebSocket, ב־TCP ובשמות .local, אך גילוי מכשירים ב־Multicast (כמו SSDP), שידורי Broadcast ו־Wake-on-LAN אינם פועלים. לכן, יוסי מבאר שבע יכול להדליק טלוויזיה באמצעות Wake-on-LAN ממחשב Mac, ממחשב Windows או מטלפון Android, אך לא מ־iPhone או מ־iPad.
בדפדפן, השליטה ברשת המקומית מועברת דרך אחד המכשירים שלכם שמחובר לחשבון KolHive, על גבי חיבור עמית־לעמית (Peer-to-peer) ישיר ומוצפן. בשימוש הראשון מופיעה בקשת אישור באותו מכשיר. התעבורה עוברת ישירות ממכשיר למכשיר ללא שרת ממסר מסוג TURN, והשרתים שלנו מעבירים רק את הודעות האיתות הקטנות הדרושות ליצירת החיבור. אם אף מכשיר שלכם אינו מקוון, האפליקציה מקבלת הודעה שאין מכשיר ממסר זמין.
חיישני תנועה, אינפרא־אדום ומיקום
חיישני תנועה פועלים באפליקציות המותקנות בטלפונים ובטאבלטים בלבד. ב־iPhone, ב־iPad וב־Android, אפליקציה יכולה לקרוא נתונים מהג'ירוסקופ, ממד התאוצה (Accelerometer), ממד תאוצת המשתמש, מהמגנטומטר ומהברומטר בתדר של עד 200 Hz. מחשבי Mac, Windows ו־Linux מדווחים שחיישנים אלה אינם נתמכים.
בדפדפן, אפליקציות משתמשות ב־Generic Sensor API של הדפדפן או באירועי תנועת מכשיר (Device motion) היכן שהם קיימים, ללא פתרון חלופי בדפדפן עבור מגנטומטר או ברומטר. דפדפן Safari ב־iPhone וב־iPad מבקש הרשאה לפני שיתוף נתוני חיישנים.
אפליקציה שנבנתה ב־KolHive יכולה לשדר קודי שלט רחוק באינפרא־אדום רק בטלפונים עם Android שכוללים חומרת אינפרא־אדום מובנית (IR blaster). כל תבנית שידור מוגבלת ל־1,024 פולסים ולמשך של עד 2 שניות. אינפרא־אדום אינו זמין ב־iPhone, ב־iPad, ב־Mac, ב־Windows, ב־Linux או בדפדפן.
אפליקציות יכולות גם לקרוא את מיקום המכשיר באמצעות GPS ומיקום משולב (Fused location) ב־Android, או באמצעות Core Location במכשירי Apple. אפשרות זו פועלת רק כשהאפליקציה מצהירה על שימוש במיקום ואתם מאשרים זאת.
מה פועל בכל פלטפורמה
הגישה לחומרה תלויה במכשיר שבו אתם משתמשים ובשאלה אם אתם מפעילים את אפליקציית KolHive המותקנת או עובדים דרך דפדפן.
| יכולת | Mac | Windows | iPhone/iPad | Android | דפדפן |
|---|---|---|---|---|---|
| Bluetooth LE | כן | כן | כן | כן | Chrome ו־Edge |
| רשת מקומית | כן | כן | כן | כן | דרך המכשיר שלכם |
| גילוי מכשירים ו־Wake-on-LAN | כן | כן | לא | כן | דרך המכשיר שלכם |
| חיישני תנועה | לא | לא | כן | כן | בדפדפנים תומכים |
| אינפרא־אדום | לא | לא | לא | כן | לא |
איך KolHive מבקרת את הגישה לחומרה
אפליקציות ניגשות לחומרה דרך kolhive.lan, kolhive.bluetooth, kolhive.sensors ו־kolhive.infrared. כל יכולת חייבת להיות מוצהרת בקובץ ה־Manifest של האפליקציה יחד עם פירוט המטרה והשימוש בנתונים. כל קריאה שלא הוצהרה נחסמת בשלוש שכבות: בבדיקת ההתקנה, בתוך העמוד וברמת המארח (Host). אפשר לקרוא עוד על האופן שבו KolHive בודקת הרשאות במאמר סקירת אבטחה לצוותי IT.
בחירת מכשיר היעד מתבצעת דרך חלונית הבחירה של KolHive, כך שהאפליקציה אינה יכולה לסרוק או להתחבר ברקע. כשאתם סוגרים או טוענים מחדש את חלון האפליקציה, KolHive סוגרת כל חיבור Socket פתוח, חיבור Bluetooth וזרם נתוני חיישנים. בזמן שחלון האפליקציה מוסתר, הזרמת הנתונים מהחיישנים מושהית אוטומטית וחיבורי ה־Bluetooth ממשיכים לפעול.
לפני שימוש ביכולת חומרה כלשהי, האפליקציה קוראת לפונקציה available() כדי לבדוק אם המכשיר שלכם תומך בה. בדיקה זו לעולם לא מקפיצה בקשת הרשאה, ומחזירה את הסיבה המדויקת שבגללה היכולת אינה זמינה. כך האפליקציה יכולה להציג לכם הודעה ברורה ומדויקת כשמשהו אינו נתמך במכשיר שלכם.
מגבלות
- חיבורי USB, חיבורים טוריים (Serial), התקני HID ו־NFC אינם נתמכים באפליקציות שנבנו ב־KolHive.
- אין תמיכה ב־Classic Bluetooth, בפרופילי שמע של Bluetooth ובחיבורים טוריים מסוג RFCOMM.
- ב־Linux אין גשר לרשת המקומית עבור אפליקציות שנבנו ב־KolHive, מכיוון שהן נפתחות בדפדפן המערכת.
- הפעלה מרחוק עם Wake-on-LAN וגילוי מכשירים ב־Multicast (כמו SSDP) אינם פועלים מ־iPhone או מ־iPad.
- שליטה באינפרא־אדום פועלת רק בטלפונים עם Android שכוללים משדר IR מובנה.
- חיישני תנועה אינם פועלים במחשבים שולחניים וניידים עם Mac, Windows או Linux.
- שליטה באינפרא־אדום דורשת את אפליקציית KolHive ל־Android, שעדיין לא זמינה ב־Google Play.
שאלות נפוצות
האם אפליקציה ב־KolHive יכולה לשלוט במכשירי הבית החכם שלי?
כן, אם מכשירי הבית החכם מתקשרים ברשת המקומית על גבי HTTP, WebSocket, TCP או UDP, או משתמשים ב־Bluetooth Low Energy. ב־Mac, ב־Windows וב־Android, אפליקציות יכולות גם לגלות מכשירים ברשת המקומית באמצעות SSDP או mDNS ולשלוח חבילות Wake-on-LAN. ב־iPhone וב־iPad, חיבורים ישירים ושמות .local פועלים, אך גילוי מכשירים ב־Multicast ו־Wake-on-LAN אינם נתמכים.
האם אפשר להשתמש בחיישנים של הטלפון מתוך אפליקציה שרצה במחשב?
לא, חיישני תנועה כמו ג'ירוסקופ ומד תאוצה פועלים רק כשמפעילים את האפליקציה בטלפון או בטאבלט. מחשבי Mac, Windows ו־Linux מדווחים שחיישני תנועה אינם נתמכים. אמנם דפדפן במחשב יכול להעביר בקשות לרשת המקומית דרך טלפון שמחובר לחשבון, אך הוא אינו מעביר זרמי נתונים מחיישנים.
האם גרסת הדפדפן תומכת ב־Bluetooth?
כן, כשמשתמשים ב־Google Chrome או ב־Microsoft Edge. דפדפנים אלה מאפשרים ל־KolHive להציג את חלונית בחירת המכשירים ולהתחבר להתקני Bluetooth Low Energy. הדפדפנים Safari ו־Firefox אינם תומכים בחיבורי Bluetooth.
האם אפליקציה יכולה לסרוק מכשירים בלי לשאול אותי?
לא, אפליקציה אינה יכולה לסרוק מכשירי Bluetooth באופן שקט או להשתמש בחומרה שלא הוצהרה מראש. בחיבור Bluetooth, מערכת KolHive מציגה חלונית בחירה משלה וחושפת לאפליקציה רק את המכשיר הבודד שבחרתם. בגישה לרשת המקומית, מערכת ההפעלה או מכשיר הממסר שלכם מבקשים את אישורכם לפני שהאפליקציה יכולה להתחבר.
בחינם ל־Mac, ל־Windows ול־Linux, או ישירות בדפדפן.
הורדת KolHive