لماذا يفقد Home Assistant التحكم المحلي الموثوق بعد إعادة التشغيل؟

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

قد يبدو Home Assistant “قيد التشغيل” بعد إعادة التشغيل، بينما لا يزال التحكم المحلي الموثوق غير مكتمل. قد تُحمَّل واجهة الويب قبل أن تعود كل عمليات التكامل، وأجهزة الراديو، والأتمتة، والمساعدات، ومسارات قاعدة البيانات، واتصالات الأجهزة إلى حالة قابلة للاستخدام.

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

تأكد من اكتمال بدء التشغيل فعليًا

ابدأ بالسجلات وحالة التكاملات بدلًا من تبديل كل عمليات الأتمتة فورًا. قد تكون عملية الحاوية قيد التشغيل بينما لا يزال Home Assistant يستعيد الكيانات، أو يتصل بالتكاملات، أو يفتح Recorder، أو ينتظر منسقًا لاسلكيًا.

أظهرت مشكلة حديثة في بدء تشغيل Home Assistant أن تكامل ZHA أخّر عملية التهيئة مدة كافية جعلت كيانات أتمتة YAML تظل غير متاحة بعد إعادة التشغيل. هذا لا يعني أن ZHA غير آمن عمومًا؛ بل يوضح أن “واجهة المستخدم فتحت” ليس دليلًا على أن بيئة التشغيل الكاملة للأتمتة أصبحت جاهزة.

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

انتظر التبعيات التي تحتاج إليها الأتمتة فعليًا

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

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

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

افصل بين حالة الأتمتة وحالة الجهاز

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

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

لكل أتمتة حرجة، سجّل ما إذا كان كيان التشغيل مستعادًا، أو غير معروف، أو غير متاح، أو محدّثًا حديثًا بعد إعادة التشغيل. يوضح هذا الفرق ما إذا كان الفشل يحدث في استعادة الحالة، أو إعادة اتصال التكامل، أو الأتمتة نفسها.

اختبر مسار التحكم المحلي دون الإنترنت الواسع

قد تختلط مشكلات إعادة التشغيل بمشكلات الإنترنت عندما تتغير حالة DNS المحلي أو MQTT أو Wi-Fi أو وكيل عكسي أو تكامل يعتمد على سحابة المورّد أثناء الإقلاع. احتفظ باختبار تحكم محلي بسيط لا يعتمد على الإنترنت العام.

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

يُعد دليل ZimaSpace حول بناء مركز أتمتة محلي بحدود واضحة للتحكم المحلي والتعافي مرجعًا مفيدًا للحفاظ على مسار المنزل الحرج مستقلًا عن خدمات الإنترنت الاختيارية.

استخدم اختبار قبول لإعادة التشغيل بدلًا من التخمين المتكرر

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

أصلح أصغر طبقة فاشلة. أعد تحميل تكامل واحد أو أصلحه عندما تكون كياناته مفقودة؛ وأصلح الحالة أو التخزين عندما تكون القيم المستعادة غير صحيحة؛ وغيّر تسلسل بدء التشغيل فقط عندما يثبت أن إحدى التبعيات متأخرة. لا حاجة إلى إعادة بناء 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.