منشئ FloorPlan لرفيق ESPresense
تم إنشاء هذا المشروع لتسهيل إنشاء مخطط أرضي لـ ESPresenseIPS (https://github.com/ESPresense/ad-espresense-ips) أو ESPresense-companion (https://github.com/ESPresense/ESPresense-companion) من خلال وجود واجهة المستخدم الرسومية. فهو يوفر سهولة الوصول إلى الغرف لسهولة المحاذاة، ويمنحك قياسات على كل جانب من جوانب المؤشر عندما تكون على الحائط. تم تطوير هذا التطبيق بلغة HTML/JS/CSS، ولا توجد مكتبات (ولكنه رائع على قرص مضغوط)، وقوة اللوحة القماشية!
العرض التوضيحي ومنشئ مخطط الأرضية عبر الإنترنت
يمكنك الآن تجربة التطبيق على: https://espresense.com/Floorplan-Creator/
ستكون قادرًا على رسم خططك واختبار التطبيق وإنشاء الصادرات. يجب أن يعمل تكامل Mqtt ولكن مع نسخة عامة من mqtt في https. (يتم الآن تنفيذ SSL MQTT)
كيفية الاستخدام
- قم بتنزيل المشروع
- افتح "index.html" باستخدام المتصفح
- ابدأ برسم كل غرفة
- إضافة أجهزة esp32 داخل كل غرفة
- انقر فوق الزر "تصدير إلى yaml".
- انسخ الكود الذي تم إنشاؤه إلى ملف ESPresenseIPS app.js
- خياري :
- بعد نسخ التكوين وإعادة تشغيل AppDaemon
- افتح لوحة تكوين MQTT (⚙) وأدخل ملف التكوين الخاص بك
- ستظهر الأجهزة على مخطط الأرضية في الوقت الفعلي
- ستظهر الأجهزة أيضًا في القائمة في لوحة تكوين MQTT
- استمتع بتعديل كل شيء لجعله مثاليًا
التغييرات
12-03-2023
- تم تعديل إخراج yaml ليكون متوافقًا مع https://github.com/ESPresense/ESPresense-companion
05-04-2022
- الحساب الثابت لمعظم الغرف العلوية واليسرى (في بعض الحالات حيث لا تكون معظم الغرف العلوية واليسرى هي نفس الغرفة) - شكرًا @Shuttleu
21-03-2022
- تمت إضافة محدد الوحدة، عند تحديد الأقدام، سيتم تحويل القيم إلى أمتار قبل تصدير Yaml.
- يمكنك تبديل الوحدة على خطة مرسومة بالفعل
- التطبيق المستخدم لحفظ الوحدة في التخزين المحلي، أصبح الآن متغيرًا.
- إذا قمت بالتحديث، فسترى الوحدة على المخطط والعناصر الصحيحة مثل mm وmft (لأن الوحدة القديمة "m" موجودة في الملصق وألحق وحدة المتغير الجديدة)
- مجرد خطأ في واجهة المستخدم، وسوف يعمل كما هو متوقع
- يمكنك إزالة الحرف "m" يدويًا من تسميات الغرفة الموجودة في وحدة التخزين المحلية إذا كان ذلك يزعجك.
05-03-2022
- اجعل MQTT يسمح بالاتصالات المجهولة - شكرًا @DTTerastar
- احصل على استثناءات قطع اتصال MQTT لمنع تنفيذ جافا سكريبت من الانهيار - شكرًاDTTerastar
- تم تنفيذ SSL في عميل MQTT - شكرًا @DTTerastar
- SSL قابل للتكوين من لوحة الإعدادات
- إخفاء/إظهار الأجهزة على مخطط الأرضية عبر لوحة إعدادات MQTT
- قم بتغيير لون الأجهزة على مخطط الأرضية عبر لوحة إعدادات MQTT
28-02-2022
- قائمة الأدوات الجديدة على اليسار
- تبديل تسمية جديدة لإخفاء/إظهار تسميات الخطة (عنوان الغرفة والمقاطع)
- بنية ملف جديدة (لم يكن من المفترض أن ينمو المشروع بهذا القدر)
- إصلاح المسافة البادئة عند تصدير yaml
- إضافة اسم إلى أجهزة esp32. يتم تصدير الاسم في yaml
27-02-2022
- إظهار مؤشرات الأسهم في أعلى اللوحة القماشية ويسارها وأسفلها ويمينها إذا كان مخطط الأرضية خارج الشاشة للإشارة إلى الجانب/الجوانب الموجودة فيه
26-02-2022
- تعرض لوحة تحكم MQTT الآن الأجهزة المتصلة (والأجهزة المعروفة حتى لو لم تعد متصلة)
- عميل MQTT لتتبع الأجهزة
- صفحة إعدادات MQTT لإدخال التكوين
- إظهار الأجهزة على مخطط الأرضية في الوقت الفعلي
26-02-2022
- إظهار زر تغطية جهاز ESP32
- تغطية ESP32 تظهر على شكل دائرة حول الجهاز
- مسافة التغطية قابلة للتعديل
- لون الدائرة قابل للتعديل
- يمكن أن تكون دائرة التغطية مرئية عند وضع الجهاز للمساعدة في وضعه بشكل صحيح
- الآن يمكنك أيضًا صنع أعمال فنية باستخدام التطبيق.
25-02-2022
- موضوع الظلام
- إصلاح إحداثيات مخطط الأرضية yaml (كان بالسنتيمتر يحتاج إلى m)
- الأيقونات وتعديلات واجهة المستخدم الصغيرة
- أضف ESP32 إلى الغرف
- قم بتحرير قيمة ESP32 Z وشاهد رمز yaml الخاص بها
- تصدير yaml يصدر الآن موقع esp32 أيضًا
24-02-2022
- عجلة التمرير/الماوس لتحريك مخطط الأرضية في اللوحة القماشية
ما هو مخطط له.
[] واجهة مستخدم/تجربة أفضل.
[✓] قم بالتمرير/العجلة على اللوحة القماشية لتحريك مخطط الأرضية.
[ ] تكبير اللوحة القماشية.
[ ] تحريك على القماش.
[✓] القدرة على إضافة esp32 في الغرف ووضعها بدقة.
[✓] تصدير موضع esp32 من الغرف إلى تنسيق ESPresenseIPS yaml.
[✓] اجعل نصف قطر إشارة البلوتوث esp32 مرئيًا على الخطة للتأكد من أن لديك 3 إشارات على الأقل في كل غرفة. (سوف يساعد في تحديد المكان الأفضل لوضعها؛)).
[✓] عميل MQTT لإظهار الأجهزة على مخطط الأرضية مباشرة.
[ ] السماح بتغيير الدقة أثناء السحب/إنشاء الغرفة.
[✓] SSL لـ MQTT (لتتمكن من استضافة التطبيق على مجلد www للمساعد المنزلي في مثيلات https)
[✓] شريط الأدوات الأيسر
[ ] شريط الأدوات الأيسر يحتوي على معدِّلات القيم للسماح للمستخدم بتخصيص عتبات الانطباق والدقة والمزيد
[✓] إصلاح المسافة البادئة في Yaml
[ ] إعادة هيكلة الكود، أضف التعليقات.
اِصطِلاحِيّ
غرف على شكل U / L :
- إنشاء غرف متعددة للوصول إلى الشكل المطلوب
- قم بتسميتهم جميعًا بنفس الاسم
- يجب على ESPresenseIPS إرسال نفس الاسم إلى المساعد المنزلي إذا كان المستخدم في أي من تلك الغرف.
يتم احتساب المناصب على النحو التالي:
- ابحث عن الغرفة ذات القيمة الأصغر لـ x (الجانب الأيسر من الشاشة)
- ابحث عن الغرفة ذات القيمة الأصغر لـ y (أعلى الشاشة)
- قم بإنشاء إزاحة بهاتين القيمتين (مما يعني أن "أصغر X، أصغر Y" هو الآن الموضع "0,0"
- يتم بعد ذلك إعادة حساب كل مركز تم حفظه من الغرف المسحوبة باستخدام هذه الإزاحة
التمرير :
- يقوم التمرير بتحريك مخطط الأرضية على اللوحة القماشية
- يتم تحديث موضع التمرير مباشرةً في وحدة التخزين (بدلاً من إزاحته في كل مكان في الكود)
- سوف تتغير الإحداثيات الأولية لكل غرفة إذا قمت بالتمرير
- وهذا ليس له أي تأثير على القيم المصدرة النهائية بفضل الطريقة التي يتم بها حسابها قبل التصدير.
أجهزة ESP32 :
- تقوم الأجهزة بتصدير قيم x وy وz فقط
- يحمل الجهاز اسم الغرفة الخاصة به عند تصديره إلى yaml
- يتم تعيين قيمة z على 0 افتراضيًا ويمكن تغييرها عند فتح الجهاز المشروط (المربع الأخضر أسفل اسم الغرفة في القائمة اليمنى)
- التغطية وقيمة اللون هي لأغراض العرض فقط (لا يتم تصديرها)
الاسترداد/YAML إلى JSON/التخزين المحلي المحذوف.... عفوًا! (إذا قمت بتصدير كود yaml من قبل):
- في التطبيق، انقر فوق زر الاسترداد.
- اقرأ التنبيه، انقر فوق موافق
- اقرأ النص الموجود أعلى النموذج
- الصق كود yaml الخاص بك في منطقة yaml (على اليسار).
- على اليمين سترى كائن json المقابل.
- انقر على "حفظ" وأعد التحميل، ومن المفترض أن ترى مخطط الأرضية الخاص بك مرة أخرى.
- هذه الميزة تجريبية، وعملية التحويل مشفرة بشكل سيئ وقد تعمل فقط مع بناء جملة محدد (راجع كود مخطط الأرضية أدناه على سبيل المثال لما تم ترميز عملية التحويل من أجله)
- لا يؤدي التحويل إلى إعادة حساب موضع التصنيف للغرف، لذا سيكون لديك تسميات في أعلى اليسار وبعضها غير محدد في القائمة اليمنى. ولكن يمكن أن يوفر عليك بعض الوقت ولا يزال بإمكانك العمل عليه وتصدير yaml المحدث دون مشاكل
- هذه شبكة أمان إضافية، إذا نجحت، كن سعيدًا، إذا لم تنجح، فابدأ بالرسم. ربما لن أقوم بتحديث هذه "الميزة"
حاول أن يكون لديك غرف: ... ثم مخططات الغرف: ... بالنسبة لخطط الغرف، اجعل y1 وx1 وy2 وx2 بهذا الترتيب. الغرف: يجب أن تتطابق الأسماء مع خطط الغرف: الأسماء (لأن التطبيق يحتاج إلى وضع جهاز في غرفة ويتم إجراء العمليات الحسابية باستخدام الاسم)
rooms:
kitchen: [0.035, 2.285, 0]
bedroom: [3.68, 11.045, 1.2]
livingroom: [3.59, 5.805, 1.2]
second_bedroom: [7.275, 5.559928991794586, 0]
office: [10.48, 2.715, 0]
roomplans:
- name: kitchen
y1: 0
x1: 0
y2: 4.29
x2: 3.59
- name: bathroom
y1: 4.29
x1: 0
y2: 6.72
x2: 2.36
- name: toilet
y1: 6.72
x1: 0
y2: 7.98
x2: 2.36
- name: second_bedroom
y1: 7.98
x1: 0
y2: 12.06
x2: 3.68
- name: bedroom
y1: 7.98
x1: 3.68
y2: 12.06
x2: 7.6
- name: entrance
y1: 4.29
x1: 2.36
y2: 7.98
x2: 3.59
- name: entrance
y1: 6.2
x1: 3.59
y2: 7.98
x2: 7.6
- name: livingroom
y1: 1.37
x1: 3.59
y2: 6.2
x2: 7.6
- name: office
y1: 0
x1: 7.6
y2: 4.92
x2: 10.53
لمحات صغيرة (قديمة ولكن لا يمكنني أخذ لمحات جديدة حاليًا - تحقق من العرض التوضيحي لرؤية التصميم والميزات الجديدة)







