Homepoint عبارة عن واجهة قائمة على الشاشة لأجهزة Smarthome المتصلة بـ MQTT وHomeKit والتي تعمل على مجموعة شرائح ESP32.
سمات
تجريبي
تثبيت
يبني
إعدادات
المشاهد والأجهزة
واي فاي وMQTT
وقت NTP (اختياري)
أمثلة
خريطة الطريق
الأخطاء والقضايا المعروفة
المساهمة
اشتري لي قهوة
رخصة
شاهد وقم بتشغيل المشاهد (مجموعات الأجهزة) على الشاشة الأمامية.
قم بتشغيل الأجهزة الفردية من خلال الغوص في المشاهد (من خلال النقر على المؤشر أو الضغط لفترة طويلة على الزر).
شاهد المشاهد التي تم تشغيلها جزئيًا باستخدام أجهزة متعددة في لمحة واحدة.
دعم أجهزة استشعار درجة الحرارة والرطوبة وجودة الهواء وقراءات الطاقة تسموتا .
التكوين عن بعد : قم بتكوين HomePoint وإعادة تشغيله من خلال واجهة الويب. لا حاجة لتعيد تحميل ملفات.
التحديثات عبر الأثير (تجريبية) : قم بتحديث الإصدارات الجديدة من HomePoint لاسلكيًا عبر الأثير.
دعم HomeKit Switch (إعداد عمليات التشغيل التلقائي في تطبيق Home للتبديل من Homepoint)*
يدعم كلاً من شاشة اللمس أو التنقل القائم على الأزرار .
رد الفعل : تحديثات الشاشة عند تشغيل الأجهزة من مكان آخر.
تكوين سهل من خلال ملف JSON، دون الحاجة إلى كود إضافي.
تعمل شاشة التوقف على توفير الطاقة عن طريق إيقاف تشغيل الشاشة بعد 10 دقائق.
يعرض شريط الحالة إمكانية الاتصال بشبكة WiFi وMQTT بالإضافة إلى الوقت.
الوضع الآمن من الفشل : في حالة التكوين الفاسد، يتم توفير الوضع الآمن من الفشل للوصول عن بعد.
الثنائيات المترجمة مسبقًا : ما عليك سوى تشغيل HomePoint على جهاز ESP32 الخاص بك دون تجميع.
* حاليا في الفرع التجريبي.
يأتي HomePoint في ملفين .bin تم تجميعهما مسبقًا وجاهزين للوميض إما على وحدة ESP32 عامة أو M5Stack. مزيد من التفاصيل حول إعداد الأجهزة متوفرة في Wiki.
خطوات التثبيت:
قم بتنزيل ESPTools من https://github.com/espressif/esptool/releases
قم بتثبيت ESPTools مع python setup.py install
قم بتشغيل esptool.py -b 921600 write_flash -fs 4MB -fm dout 0x0 homepoint_espgeneric.bin
(أو homepoint_m5stack.bin لـ M5Stack)
بدلا من ذلك، شاهد فيديو التثبيت أدناه:
تم إنشاء Homepoint باستخدام ESP-IDF SDK.
تتوفر تعليمات البناء التفصيلية في Wiki.
التكوين موجود في data/config.json
.
يدعم HomePoint نوعين من المشاهد مع مجموعة مختارة من الأجهزة لكل منهما:
أنواع المشهد | أنواع الأجهزة |
---|---|
الضوء، التبديل | (لا شيء، من المتوقع أن تكون جميع الأجهزة عبارة عن محولات) |
الاستشعار | عرض قيمة واحدة أو قيمتين في وقت واحد باستخدام أيقونات قابلة للتخصيص (قيمة فردية/قيم مجمعة) |
تدعم المستشعرات المجمعة ما يصل إلى جهازين (بسبب مساحة الشاشة).
تدعم ميزة Lights & Switches عددًا لا حصر له من الأجهزة في المجموعة.
تستخدم بعض أجهزة الاستشعار JSON كتنسيق بيانات، وفي هذه الحالة يمكن تعريف المفتاح . يمكن أن تكون هذه على أي مستوى من حمولة مستشعر json، بالنسبة لمقابس Tasmota الذكية، يمكن استخدام القيمة الرئيسية "الطاقة" لعرض استهلاك الطاقة الحالي.
يجب تحديد بيانات اعتماد WiFi وMQTT في المستوى الأعلى.
لتعيين المنطقة الزمنية الصحيحة، انسخ إعداد NTP TZ والصقه في مفتاح timezone
.
يبدو أن بعض وحدات العرض IL9341 تختلف في كيفية توافق إحداثيات شاشة اللمس مع الشاشة أو كيفية التحكم في الإضاءة الخلفية LED. لذلك نقدم بعض الخيارات لتجاوز الإعدادات الافتراضية في ملف التكوين.
مفتاح | يكتب | قيمة |
---|---|---|
"ledPinPullup" | منطقية | true أم false - التحكم في قوة الإضاءة الخلفية التي يمكن سحبها لأعلى/لأسفل حسب الوحدة |
"زاوية دوران الشاشة" | كثافة العمليات | يمكن أن تكون معلمة الدوران 0 أو 1 أو 2 أو 3 - متزايدة بزوايا 90 درجة |
"دقائق شاشة التوقف" | كثافة العمليات | دقائق حتى يتم إيقاف تشغيل الشاشة (الافتراضي 10) |
"touchXAxisInverted" | بول | الافتراضي: false ، قم بعكس المحور X لشاشة اللمس في حالة عدم محاذاته |
"touchYAxisInverted" | بول | الافتراضي: true ، قم بعكس المحور Y لشاشة اللمس في حالة عدم محاذاته |
"displayColorInverted" | بول | الافتراضي: false ، عكس مساحة الألوان (على سبيل المثال، لشاشات ILI9342C) |
تعتبر موضوعات MQTT حساسة لحالة الأحرف وفقًا لمواصفات MQTT.
{ "wifi": "MyWifiSSID"، "password": "كلمة مرور Wifi الخاصة بي"، "اسم المضيف": "اسم مضيف اختياري"، "تسجيل الدخول": "admin"، "webpass": "admin"، "mqttbroker": "mqtt: //192.168.1.2"، "mqttusername": "mqttusername"، "mqttpasswd": "mymqttpassword"، "timezone": "CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00"، "مشاهد": [{ "اسم": "غرفة المعيشة"، "نوع": "إضاءة" , "icon": "livingroom", "devices": [{ "name": "Some Light", "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on", "getTopic": "hue/status/lights/Hue color lamp 1", "onValue": " صحيح"، "offValue": "خطأ" }, { "name": "ضوء الباب"، "setTopic": "lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on"، "getTopic": "hue/status" /أضواء/مصباح لون Hue 1"، "onValue": "true"، "offValue": "false"، "icon": "door" }, ] }, { "الاسم": "غرفة النوم"، "النوع": "المستشعر"، "أيقونة": "الباب"، "الأجهزة": [{ "الاسم": "مستشعر درجة الحرارة DHT"، "النوع": "قيمة مفردة"، " jsondata": true، "firstIcon": "temperature_small"، "firstKey": "درجة الحرارة"، "getTopic": "bedroom/esptemp" }, { "name": "Tasmota Smart Plug"، "type": "singleValue"، "jsondata": صحيح، "firstKey": "Power"، "firstIcon":":wattage_small"، "getTopic": "tele/DVES_2F73BE/ الاستشعار" }] }] }
يتوفر مثال أكثر تكوينًا بالكامل هنا.
وثائق التكامل مع Homebridge-Hue وHomeAssistant / ZigBee2MQTT
دعم هوم كيت
اختبار
إذا وجدت أي أخطاء أو كنت بحاجة إلى مساعدة، فلا تتردد وافتح مشكلة :)
المساهمات هي موضع ترحيب! ما عليك سوى الاختراق وفتح طلب السحب. ولكن يرجى اتباع نمط الكود الموجود بالفعل (على سبيل المثال، بدون علامات تبويب أو مسافات).
لقد قمت بتطوير HomePoint في وقت فراغي لأنني أردت معرفة المزيد عن C++ على ESP32 وحل مشكلة ملموسة في منزلي الذكي.
مع استمرار التطوير، فكرت في طرق لجعل هذا المشروع مفتوح المصدر وأكثر سهولة في الوصول إليه وسهل الاستخدام لمجتمع المصنع.
إذا كنت تستمتع باستخدام HomePoint أو هذا العمل، فكر في التبرع بمبلغ صغير. ولكن لا تقلق، سأواصل العمل على هذا على أي حال؛-).
معهد ماساتشوستس للتكنولوجيا © ماتياس فريك