كيف يعمل النظام؟
مسار الأمر من الضغطة إلى الجهاز
- المستخدم يضغط Toggle في Dashboard أو يقول أمراً صوتياً.
- الـ API يحدّث حالة الجهاز في قاعدة البيانات ويسجّل سجلّاً (Device Log).
- MqttService ينشر رسالة على الموضوع المناسب:
- مع
esp32_name:smarthome/sala/relay/3 - بدون اسم:
smarthome/relay/3(توافق مع الإصدارات القديمة)
- مع
- ESP32 يستقبل الرسالة ويُشغّل أو يُطفئ الـ Relay.
- Pusher يُحدّث الواجهة فوراً لجميع المستخدمين المتصلين.
Multi-Tenant
كل شركة (Tenant) لها:
- قاعدة بيانات معزولة
- نطاق فرعي:
{company}.homatic.io - إعدادات Branding (شعار، ألوان، عنوان Dashboard)
Central API Tenant API (per subdomain)
│ │
├─ Super Admin ├─ Devices, Rooms, Scenes
├─ Billing (Stripe) ├─ Automations, Reports
└─ Tenant provisioning └─ Branding, Users
عدة لوحات ESP32
يمكن ربط أكثر من ESP32 لكل Tenant. كل لوحة لها اسم فريد (esp32_name) مثل sala أو bedroom يحدد مسار MQTT:
smarthome/sala/relay/1 … smarthome/sala/relay/16
smarthome/bedroom/relay/1 … smarthome/bedroom/relay/16
وضع Offline
عند فقدان الاتصال بالسحابة، يكتشف العميل (ويب/موبايل) عنوان الـ API المحلي ويواصل التحكم داخل الشبكة المنزلية.