الحالة أثناء التشغيل مقابل الحالة المستمرة في Home Assistant: ما الذي يجب أن يبقى بعد إعادة التشغيل؟

إيفا وونغ هي كاتبة تقنية و ومهندسة هاوية في ZimaSpace. مهووسة بالتكنولوجيا مدى الحياة ولديها شغف بالمختبرات المنزلية والبرمجيات مفتوحة المصدر، تتخصص في تبسيط المفاهيم التقنية المعقدة إلى أدلة عملية وسهلة الفهم. تؤمن إيفا بأن الاستضافة الذاتية يجب أن تكون ممتعة وليست مخيفة. من خلال دروسها، تمكّن المجتمع من تبسيط إعدادات الأجهزة، بدءًا من بناء أول نظام تخزين شبكي NAS وحتى إتقان حاويات Docker.

«الحالة» في Home Assistant ليست شيئًا واحدًا. إذ تحتفظ العملية قيد التشغيل بآلة حالات في الذاكرة تمثّل ما تُبلغه الكيانات الآن، بينما تحدد الإعدادات والسجلات الدائمة ما ينبغي أن يكون موجودًا بعد إعادة التشغيل. ويحتفظ Recorder بالملاحظات التاريخية، كما يمكن لبعض منصات الكيانات المحددة حفظ القيم خصيصًا لاستعادتها لاحقًا.

لذلك لا يحاول النشر الموثوق تحويل كل كائن مؤقت في الذاكرة إلى بيانات متسلسلة. بل يحافظ على مصادر الحقيقة الدائمة، ويتيح للعملية الجديدة إعادة بناء الحالة النشطة من التكاملات والسجلات والقيم المستعادة وتقارير الأجهزة الجديدة.

آلة الحالات هي عرض وقت تشغيل للعالم الحالي

يحتفظ Home Assistant Core بحالات الكيانات الحالية في آلة الحالات، ويصدر أحداثًا عند تغيّر تلك الحالات. وينتمي هذا العرض الحالي إلى عملية Core قيد التشغيل.

تصف وثائق بنية Core آلة الحالات بأنها المكوّن الذي يتتبع الحالات الحالية ويطلق أحداث state_changed. ويُعد ناقل الأحداث وسجل الخدمات والمؤقت مكوّنات وقت تشغيل مرتبطة بها.

بعد إعادة التشغيل، تُملأ آلة الحالات من جديد. لذلك قد يكون الجهاز الذي لم يُعد الاتصال به غير متاح، حتى مع بقاء ملاحظاته القديمة مخزنة بأمان في Recorder.

تحتفظ سجلات الكيانات بالهوية، لا بالحقيقة الحية للجهاز

يحتاج Home Assistant إلى التعرّف على الكيان نفسه عبر عمليات إعادة التشغيل، حتى لا تختفي تخصيصات المستخدم ومعرّفات الكيانات والأسماء والمناطق والإعدادات الأخرى في كل مرة يعاود فيها التكامل الاتصال.

يوجد سجل الكيانات لأن Home Assistant يحتاج إلى هوية دائمة للكيان عبر عمليات إعادة التشغيل للاحتفاظ بالتخصيصات وتتبع الكيانات المعروفة. ولا يعني إدخال السجل أن قراءة المستشعر الحالية أصبحت محدثة تلقائيًا بعد الإقلاع.

فكّر في الهوية والقيمة الحية كسجلين منفصلين: يجيب السجل عن سؤال «ما هذا الكيان؟»، بينما يجيب التكامل عن سؤال «ماذا يُبلغ الآن؟»

تُحفظ بعض قيم الكيانات عمدًا لاستعادتها

تستفيد كيانات معينة، ولا سيما المساعدات والكيانات البرمجية التي تحتفظ بحالة، من استعادة قيمتها السابقة قبل توفر ملاحظة خارجية جديدة. ويوفر Home Assistant نقطة تحقق دائمة مخصصة لهذه الكيانات.

يوضح إجراء حفظ الحالات الدائمة الحالي أن بعض الكيانات تستعيد قيمتها الأخيرة بعد إعادة التشغيل، وأن Home Assistant يحفظ هذه القيم عادةً عند بدء التشغيل وكل 15 دقيقة وعند إيقاف التشغيل.

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

-15% OFF

يحتفظ Recorder بالملاحظات التاريخية، لا بالعملية قيد التشغيل

يخزن Recorder تغيّرات الحالات والأحداث لعرض السجل والتحليلات والإحصاءات. ويمكن لقاعدة البيانات هذه أن تبقى بعد العديد من عمليات إعادة تشغيل Home Assistant، بينما تُعاد تهيئة آلة الحالات وقت التشغيل في كل مرة.

ينتمي استعلام السجل الذي يجيب عن سؤال «كم كانت درجة الحرارة عند الساعة الثالثة مساءً؟» إلى التخزين التاريخي. أما الأتمتة الحية التي تسأل «هل الباب مفتوح الآن؟» فتعتمد على حالة وقت التشغيل الحالية ومسار التكامل.

يوضح هذا الفرق لماذا قد يؤدي حذف Recorder أو إتلافه إلى إزالة السجل دون محو الأتمتة والمستخدمين وإعدادات التكامل بالضرورة، بينما قد يؤدي فقدان دليل الإعدادات إلى تدمير الهوية والإعداد حتى لو ظلت قاعدة بيانات سجل قديمة موجودة.

يجب أن يحفظ النشر الملفات التي تعيد إنشاء هذه الطبقات

يضيف Home Assistant الذي يعمل داخل حاوية حدًا فاصلًا آخر: يمكن استبدال صورة وقت التشغيل، بينما يجب أن يبقى مجلد الإعدادات المُركّب والاعتماديات الخارجية خارجها. ويجب أن يحافظ المجلد المُركّب على إعدادات Home Assistant وتخزين السجل ومراجع الأسرار وقاعدة البيانات إذا كان Recorder محليًا.

تتناول مقالة ZimaSpace حول أدوار البيانات الدائمة في Home Assistant نطاق الاسترداد. ويوضح الفرق بين وقت التشغيل والبيانات الدائمة سبب أهمية هذه الملفات: فهي المدخلات التي تعيد العملية التالية من خلالها بناء المنزل.

استخدم طبقة التخزين الدائم التي تتوافق مع دور الحالة

دور الحالة مكان وجودها ما يحدث بعد إعادة التشغيل
حالة الكيان الحالية آلة الحالات وقت التشغيل تُعاد بناؤها من التكاملات/الاستعادة
هوية الكيان/التخصيص السجل/الإعدادات الدائمة تُحمّل من جديد
القيم المحددة القابلة للاستعادة نقطة تحقق الحالات الدائمة تُستعاد إلى أن تُحدّث
السجل/الإحصاءات قاعدة بيانات Recorder تبقى بيانات تاريخية
اتصالات التكامل/كائنات وقت التشغيل ذاكرة العملية تُعاد إنشاؤها وإعادة الاتصال بها
صورة الحاوية/وقت التشغيل طبقة نشر قابلة للاستبدال يمكن إعادة إنشائها حول البيانات الدائمة

القاعدة الآمنة هي حفظ الهوية والإعدادات وبيانات الاسترداد والحالة التي يتعامل معها Home Assistant عمدًا باعتبارها دائمة. أما حالة وقت التشغيل المؤقتة، فاتركها تُعاد بناؤها. فهذا ينتج نموذجًا أنظف لإعادة التشغيل من افتراض أن كل قيمة في الذاكرة يجب أن تبقى دون تغيير.

مركز التكنولوجيا والذكاء الاصطناعي

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.