Sonoff-diy-ota-firmware
عملية سطر الأوامر لتحميل برنامج ثابت جديد عبر أجهزة Sonoff DIY باستخدام API REST http://developers.sonoff.tech/basicr3-rfr3-mini-http-api.html.
تم إنشاؤها باستخدام Python 3.8 على Ubuntu 20.04 واختبارها على Sonoff Basic R3 و Sonoff Mini.
يجب أن يكون جهاز Sonoff على وضع DIY وعلى نفس الشبكة (Sonoffdiy) مع تشغيل الكمبيوتر هذا البرنامج النصي.
هذا يتطلب:
- DIY 1.0:
- الطائر على المسامير المخصصة
- شبكة WiFi مع SSID: Sonoffdiy وكلمة المرور: 20170618SN
- DIY 2.0: تحقق من http://developers.sonoff.tech/sonoff-diy-mode-api-protocol.html
الاستخدام الموصى به:
appimage:
- إذا كان على Linux ، قم بتنزيل وتنفيذ AppImage من صفحة الإصدارات.
بيئة بيثون الافتراضية (Linux & Windows):
- قم بإنشاء بيئة افتراضية (VenV أو Conda أو أي شيء آخر):
python3 -m venv /path/to/new/virtual/environment
أو
conda create -n <environment_name> python=3.8
- قم بتفعيل البيئة وفقًا لبيئتك الافتراضية.
- تثبيت التبعيات:
pip3 install -r requirements.txt
- تنفيذ البرنامج النصي:
قد تختلف الأوامر عن Windows.
لا تحاول وميض البرامج الثابتة التي تزيد عن 508 كيلو بايت. استخدم شيئًا مثل Tasmota-lite.bin ثم من داخل Tasmota ، واضميس البرامج الثابتة الكاملة.
خطوات العملية:
- قم بتنزيل ملف البرامج الثابتة (على سبيل المثال Tasmota-lite.bin).
- قم بتشغيل البرنامج النصي الرئيسي.
- انتظر حتى يتم اكتشاف جهازك. إذا كان الأمر كذلك ، يتوقف الاكتشاف عن طريق الضغط على Enter. تكتشف العملية جميع أجهزة Ewelink على الشبكة باستخدام MDNS (بفضل Zeroconf https://pypi.org/project/zeroconf).
- حدد الجهاز لتحميل البرامج الثابتة الجديدة.
- يبدأ خادم HTTP (بفضل RangeHttSpserver https://github.com/danvk/rangehttpserver) لخدمة دليل البرامج الثابتة المحددة.
- تتأكد العملية من عدم تأمين وظيفة OTA ، باستخدام طلب REST المناسب.
- أرسل طلبًا منشورًا إلى الجهاز الذي يوفر رابط خادم HTTP للبرامج الثابتة الجديدة.
- نوم لمدة 10 دقائق للتأكد من أن ناقل الحركة قد انتهى. إذا رأيت أنه قد انتهى (يظهر Tasmota wifi) ، اقتل المؤيد مع Ctrl-C.
ملحوظات:
- إذا لم يستجب الجهاز لرسائل MDNS ، فقم بإزالة مصدر الطاقة وقم بتوصيله مرة أخرى أثناء وجود الاكتشاف.
التبعيات:
- https://pypi.org/project/rangehttpserver/
- https://pypi.org/project/zeroconf
- https://pypi.org/project/requests/
- https://pypi.org/project/simple-term-menu/
تودو:
- التعامل مع رموز الخطأ طلبات.
- إضافة dockerfile.
تم تطوير هذه البرامج النصية بسرعة لاحتياجاتي الخاصة لفلاش البرامج الثابتة الجديدة في أجهزة Sonoff لأن الأدوات الحالية تبدو معقدة للغاية ولم تتمكن من استخدامها على Linux. لا أضمن أنه يعمل في أي حالات. يرجى استخدامه على مسؤوليتك الخاصة.