مرحبا بالجميع! أخيرًا ، انتهى الإصلاح الشامل في الشقة ، وفي هذا الصدد ، أود أن أشارك معك مشروع الشقة الذكية الذي تم تنفيذه بالقدرات الأساسية للتحكم في الإضاءة ، والتدفئة تحت الأرضية ، والتحكم في درجة حرارة الغرفة والرطوبة ، وغيرها من الأشياء الجيدة. سيتم صنع الجزء الوصفي على شكل دليل (يسهل ذكره أو شيء ما).

المعدات
في ضوء حقيقة أنني ، من حيث المبدأ ، كنت أرغب في تجميع جميع الأتمتة على القرارات الجاهزة ، ولكن قرارات الميزانية للأجهزة التنفيذية والتحكم ، تم اتخاذ قرار بالإجماع (في شخص واحد) ، لاستخدام قائمة المعدات هذه:
خادم الإدارة - Raspberry Pi 3 + OpenHAB 2 - 1pc (3000 rub.)
وحدة تحكم متعددة الوظائف - MegaD-2561 - 1pc (3480 rub.)
وحدة تنفيذية مع 14 مخرجات تتابع - MegaD-14-R - 1pc (4480 روبل)
مستشعرات درجة الحرارة والرطوبة DHT22 (AM2303) - 4 قطع (1960 فرك).
أجهزة استشعار درجة الحرارة 1-سلك DS18B20 للماء - 2 جهاز كمبيوتر شخصى (180 فرك).
مزود الطاقة 12V DR-60-12 - 1pc (1420 rub.)
أغطية لأجهزة استشعار Dsen-Box - 4 قطع (1000 فرك).
جهاز لوحي لإدارة وعرض المعلمات - موجود بالفعل (3000-10000r.)
يمكن شراء معظم القائمة على ALI.
تمهيدي
أحد المبادئ الأساسية لتشغيل أنظمة الأتمتة هو التشغيل المتواصل والتكرار للوظائف. أي أنه حتى إذا تم حرق جميع الأتمتة المنخفضة التيار إلى الجحيم ، فيجب ألا نفقد وظيفة التحكم في الإضاءة وغيرها من الأجهزة التنفيذية الهامة. وبالتالي ، سيتم تنفيذ حل التحكم في الإضاءة على ما يسمى "نظام المرور" ، أي سيتم تشغيل المفاتيح (المفاتيح) في الغرف ، وسيتم لعب دور المفاتيح الثانية (المفاتيح) بواسطة مرحلات في الوحدة التنفيذية MegaD-14-R. شريطة ، بالطبع ، أن البكرات نفسها لا تحترق ، فلن نفقد وظيفتها إذا فشلت وحدات الأتمتة. لذلك ، من خلال جميع مفاتيح Legrand Etika ذات المفتاحين والمفتاحين ، يتم تثبيتها في جميع الغرف (تبدو جميلة مقارنة بـ Valenoy).
اتصال
يتم تثبيت أجهزة استشعار درجة الحرارة والرطوبة DHT22 في حاويات Dsen-Box على مستوى حوالي 2 متر من الأرضية في كل غرفة. لا تنس أن الشقة تم إصلاحها وتم وضع جميع الأسلاك بعناية من الدرع إلى مواقع أجهزة الاستشعار والأجهزة.
تم وضع الكابل في كل مكان تقريبًا بواسطة SFTP 4x2x0.5 محمي. يتم تثبيت أجهزة استشعار درجة الحرارة DS18B20 في وقت تركيب التدفئة تحت البلاط.



نقوم بتثبيت أجهزة MegaD في لوحة العدادات ، ونقرنها بكابل 34 pin أصلي ونتصل بشبكة Ethernet. ننتقل إلى واجهة الويب على 192.168.0.14/sec. في قسم "التكوين" ، قم بتعيين العنوان المطلوب أو اتركه بشكل افتراضي ، تأكد من تحديد عنوان خادم Openhab (سنكتشف لاحقًا عندما ننشر صورة Openhab على التوت أو نكتبها على الفور ، وقم بتغييرها على التوت). نقوم بتوصيل جميع أجهزة الاستشعار والأسلاك من المفاتيح وفقًا لنفس الخط.


في إعدادات المنفذ لجهاز MegaD ، قم بتعيين الأنواع (OUT - إذا كان التتابع أو IN أو Dsen - إذا كان إدخال المستشعر). إذا أشرت إلى النوع الصحيح على منافذ المستشعرات المتصلة ، فسوف نرى على الفور القراءات الحالية.

الخادم
نقوم بجمع الخادم. تتكون حالة التوت من مصدر طاقة فاشل للتركيب المريح على سكة din (بالطبع هناك حالة خاصة لهذا ، ولكن هذا ليس عنا))). لا تنسَ لصق محرك أقراص USB المحمول وكابل إيثرنت بشكل طبيعي.
لكي لا تعذب التثبيت ، قررت تنزيل صورة
OpenHabian النهائية - يتم وصف العملية الكاملة لتثبيت وتكوين الخادم بالتفصيل هناك وتتلخص في نشر الصورة على محرك أقراص USB محمول ، وإطلاق التوت والانتظار 15-45 دقيقة. (نعم طويلة) في التكوين الأول. OpenHab جاهز للذهاب!
إذا لم نرغب في تغيير أي شيء في تكوين الخادم (يتم شرح كيفية فتح قسم الإعدادات بالتفصيل على openhab.org) ، فإننا نتصل بـ Openhab
openhabianpi : 8080 ، وحدد الواجهة الرسومية Paper UI وابدأ في نحت كل ما تحتاجه.

التخصيص
الارتباطات
تحتاج أولاً إلى توصيل خادم OH (openhab) و MegaD. يتم دمج المعدات على الخادم ، باستخدام البروتوكولات والقواعد التي يحددها الجهاز ، وذلك باستخدام الملفات الجاهزة ، والتي تسمى "الربط". قم بتنزيل أحدث تجليد لمعدات
MegaD . نقوم بإسقاطه (يمكنك استخدام WinSCP) في مجلد / srv / openhab2-addons على الخادم ، لذلك سنرى هذا الربط في واجهة المستخدم "Bindings" للورق.
علاوة على ذلك ، في "Inbox" ، نقوم بإنشاء محول خادم Bridge MegaD الوارد ، فهو يشبه جسر التواصل الافتراضي بين الخادم والمعدات. نكتب المنفذ المطلوب (يجب أن يكون عنوان الخادم والمنفذ مسجلين في "التكوين" لجهاز MegaD نفسه).

أشياء
بعد إنشاء الجسر ، نقوم أيضًا ، في قسم "البريد الوارد" ، بإنشاء "MegaD Binding Things". "شيء" منفصل - هذه هي الطريقة التي يتم بها تعريف جهاز مادي محدد على الخادم ، سواء كان جهاز استشعار أو مرحل ، والذي سنتفاعل معه بمساعدة الجسر الذي تم إنشاؤه. نذكر فيها على وجه التحديد عنوان IP لجهاز MegaD وكلمة المرور للوصول ومنفذ الجهاز (هذا هو منفذ الإدخال حيث يتم توصيل المستشعر أو منفذ الإخراج للتحكم في الجهاز).
للتوزيع المريح حسب الموقع ، في حقل "الموقع" حدد مكان ما - قاعة ، مطبخ ... بعد إنشاء هذه "الأشياء" ستظهر في "التكوين / الأشياء". ننتقل إلى "الشيء" الذي تم إنشاؤه ، ومن خلال النقر على النوع المطلوب (كان علينا تحديده في إعدادات المنفذ لجهاز MegaD) ، نعلقه على "العنصر" لإنشاء "عنصر جديد" جديد.

العناصر
يتم أخذ "العنصر" بشكل منفصل - على الخادم وفي الواجهة الرسومية ، هذا هو نفس العنصر الذي يعمل كزر تحكم أو بيانات إخراج من المستشعر وميزات أخرى.
يجب أن يكون حقل "الاسم" أبجدية لاتينية مستمرة ، ولكن "التسمية" تسمى ما نريد. في إعدادات "العنصر" ، تحتاج إلى تحديد النوع (إذا كان التتابع ، ثم - SWITCH ، إذا كان المستشعر ، ثم - NUMBER ، إلخ.
إذا كنا نرغب في دمج عناصر معينة في مجموعات (يعد هذا ضروريًا في الغالب للتوزيع والعرض في تطبيق جوال أو باستخدام واجهة المستخدم الأساسية) ، في حقل "المجموعة" حدد المجموعة المطلوبة ، والتي يجب إنشاؤها أولاً في قسم "العناصر" تحديد نوع "المجموعة". بعد هذه التلاعبات ، سنرى "العنصر" الذي تم إنشاؤه في قسم "التحكم" في واجهة المستخدم للورق وإذا تم عمل كل شيء بشكل صحيح ، فعند النقر على "العنصر" الذي تم إنشاؤه من نوع "التبديل" ، سينقر الجهاز المتصل (ترحيل MegaD).
نقوم بتنفيذ إجراءات مماثلة لجميع مفاتيح التبديل وأجهزة الاستشعار ، وتسميتها بشكل صحيح وإعدادها.

واجهة المستخدم
الآن كل هذا ، بالطبع ، يعمل بشكل جيد ، ولكن ليس بشكل جميل وغير مريح.
نأخذ الجهاز اللوحي ، ونذهب من خلال متصفح
openhabianpi : 8080 ، وحدد Habpanel GUI وابدأ التخصيص لتناسب احتياجاتك.
انقر على ترس الإعدادات في الزاوية اليمنى العليا ، ثم انقر على "الإعدادات المتقدمة" وقم بإجراء الإعدادات اللازمة (السمة ، الاسم ...) على الجانب الأيسر من الإعدادات ، وبعد ذلك ، بعد إنشاء الواجهة النهائية ، احفظها "احفظ التكوين الحالي إلى تكوين لوحة جديد" .
نعود من الإعدادات ، استخدم شريط التمرير لتحديد العدد المطلوب من أعمدة البلاط في الواجهة وانقر على "إضافة لوحة تحكم جديدة". في إعدادات التجانب ، حدد مخطط الألوان وأيقونات العرض. باستخدام هذه المربعات ، سنحدد موقع أو مجموعة أجهزتنا (على سبيل المثال ، في حالتي ، هذه غرف).
بعد ذلك ، بعد إنشاء الموقع ، انتقل إليه بالنقر فوق المربع وفي الأعلى ، بجوار اسم المربع ، انقر فوق القلم ، سنقوم بترتيب المربعات التي تم إنشاؤها في نظام "العناصر". في الزاوية العلوية اليمنى ، انقر فوق "إضافة أداة جديدة". اختر نوع التجانب الذي تريده (عند التمرير فوق المؤشر ، ستظهر المطالبات) "Switch" إذا كان مفتاح تبديل ، "Dummy" إذا كان جهاز استشعار ... إلخ. في إعدادات المربع الذي تم إنشاؤه ، نربطه بنظام "العنصر" الحالي ونقوم بتكوين العرض - الرمز واللون والحجم ... بعد إنشاء جميع مربعات "العناصر" الضرورية ، انقر فوق "تشغيل" في الزاوية اليسرى ، وبالتالي حفظ الإعدادات وبدء وضع العرض. هذه هي الطريقة التي ننشئ بها واجهة Habpanel لأنفسنا. بعد التهيئة ، إذا تم ذلك في Chrome ، فمن الملائم للغاية إضافة صفحة Habpanel إلى سطح المكتب للجهاز اللوحي من إعدادات المتصفح.


القواعد
القواعد (القواعد) - تلك القواعد (النصوص) نفسها لتطبيق منطق عمل جهاز واحد أو التفاعلات بين عدة.
ندرك التحكم التلقائي في غطاء المحرك في الحمام.
للقيام بذلك ، يجب علينا إنشاء "عنصر" افتراضي من نوع "رقم" في النظام الذي سوف نسجل فيه قيم مستوى الرطوبة الذي نحتاجه. عنصر آخر من نوع "التبديل" لتشغيل التحكم التلقائي في الرطوبة. حسنًا ، في الواقع القاعدة نفسها ، والتي ستعالج قيمة الرطوبة التي تم الحصول عليها من المستشعر في الحمام ، تحقق من القيمة المحددة لإعداداتنا وتحكم في غطاء المحرك.
لإنشاء قاعدة ، نحتاج إلى إنشاء ملف بامتداد .rules مع محتوى جافا سكريبت في المجلد الموجود على الخادم / etc / openhab2 / Rules. فيما يلي مثال على المحتوى:
قواعد Auto_air.rulesقاعدة "Auto_air"
متى
تلقى عنصر Hum_H_T_sens التحديث
ثم
إذا
(Hum_H_T_sens.state> Set_hum.state && Air_H_T_switch.state == OFF && Set_auto_air.state == ON) {
Air_H_T_switch.sendCommand (ON)
}}
آخر
إذا
(Hum_H_T_sens.state <Set_hum.state && Air_H_T_switch.state == ON && Set_auto_air.state == ON) {
Air_H_T_switch.sendCommand (OFF)
}}
النهاية
حسنًا ، في الواقع ، تحتاج إلى عرض "العناصر- s" التي تم إنشاؤها على شاشة لوحة التحكم في Habpanel. بالنسبة لإعداد "العنصر" لمستوى الرطوبة ، قم بتطبيق نوع "المنزلق".
الرسوم البيانية
ميزة أخرى لطيفة للنظام هي المجموعة الإحصائية للبيانات في قواعد البيانات وعرضها في الرسوم البيانية.
إنشاء رسومات! تحتاج أولاً إلى تكوين قاعدة البيانات.
بشكل افتراضي ، يقدم OpenHab العمل مع قاعدة بيانات Rrd4j ، لكنني لم أستطع تكوينها بشكل طبيعي. لذلك ، بدأت في استخدام MySQL (أكثر شيوعًا).
للعمل مع قاعدة البيانات ، يجب تثبيت الوظيفة الإضافية في النظام. في علامة التبويب "الإضافات" في واجهة المستخدم للورق ، في قسم "المثابرة" ، حدد استمرارية MySQL (تثبيت).
يتم الآن تكوين القاعدة التي أنشأناها.
للقيام بذلك ، يجب علينا إنشاء ملف (إذا كان مفقودًا) في المجلد الموجود على الخادم: /etc/openhab2/persstanding/mysql.persist ، حيث يجب علينا تحديد استراتيجية جمع البيانات (مثل كل ساعة ، يوميًا ، أسبوعيًا ...) وتحديد "العنصر بالإشارة إلى الاستراتيجية التي سيتم تخزينها. على سبيل المثال ، إليك المحتوى:
mysql.persist// استراتيجيات المثابرة لها اسم وتعريف ويشار إليها في قسم "العناصر"
الاستراتيجيات {
// إذا لم يتم تحديد إستراتيجية للعنصر أدناه ، فسيتم استخدام القائمة الافتراضية
everyMinute: "0 * * * *؟"
every5Minutes: "0 * / 5 * * *؟"
everyHour: "0 0 * * *؟"
EveryDay: "0 0 0 * *؟"
افتراضي = everyChange
}}
/ *
* يتم تحديد كل سطر في هذا القسم بالنسبة للسلع (السلع) التي يجب تطبيق الاستراتيجيات (IEs) عليها.
* يمكنك إدراج عناصر مفردة ، واستخدام "*" لجميع العناصر أو "groupitem *" لجميع أعضاء المجموعة
* البند (باستثناء عنصر المجموعة نفسه).
* /
العناصر {
// حفظ جميع العناصر مرة واحدة في اليوم واستعادتها من قاعدة البيانات عند بدء التشغيل مع كل تغيير
// *: Strategy = everyChange ، EveryDay ، RestOnStartup
// بالإضافة إلى ذلك ، يتم حفظ جميع قيم درجة الحرارة والطقس كل ساعة
Weather_Temperature ، Temp_H_LR_sens ، Temp_H_BR_sens ، Temp_H_T_sens ، Temp_H_KT_sens ، TP_H_H_sens ، TP_H_KT_sens ، Weather_Humidity ، Hum_H_LR_sens ، Hum_H_BR_sensHentensument_Humans_um_Hum_Hum_Hum
}}
بعد إنشاء الملف ، سيبدأ النظام بالفعل في جمع البيانات. نحن بحاجة إلى تكوين لوحة التحكم Habpanel لعرض الرسوم البيانية.
نعود إلى Habpanel GUI ، ونذهب إلى الموقع المطلوب ونضيف أداة جديدة بتحديد نوع "الرسوم البيانية". اتصل كما نريد ، "اكتب" حدد "n3-line-chart (Interactive)" ، "مزود الخدمة" - mysql ، "Period" - فترة عرض اليوم (D). في علامة التبويب "سلسلة" - نرفق "العنصر" الذي نحتاجه. وفويلا! نحصل على جدول جميل!

حسنًا ، إذن مبادرة نقية - نركب الجهاز اللوحي على الحائط! O_o ، لهذا ، أخذت بطاقتين مغناطيسيتين بتنسيق em-marin (تلك الرقيقة جدًا) وألصق مغناطيسين نيوديميوم على حواف البطاقة (Uhu). نعلق هذه المنصات بمغناطيس على شريط مزدوج الوجه (رفيع جيد) على الجزء الخلفي من الجهاز اللوحي وعلى الحائط. بالمناسبة ، مقدما في المقبس ، يتم تثبيت التيار الكهربائي MeanWell 5V ، مع كابل microUSB. الجهاز اللوحي على الحائط!

أعتذر عن خصوصية عرض المادة (لم أكتب شيئًا كهذا من قبل). إذا كانت المشاركة على الأقل شائعة ، فسأشرح فيما يلي ميزة إعداد تطبيق جوال. آمل أن يكون مفيدًا. جميع المنزل الذكي)))