تكامل مخصص لمساعد المنزل للتعامل المحلي مع الأجهزة المستندة إلى Tuya.
يقوم هذا التكامل المخصص بتحديث حالة الجهاز عبر دفع التحديثات بدلاً من الاستقصاء، بحيث تكون تحديثات الحالة سريعة (حتى عند تشغيلها يدويًا). يدعم التكامل أيضًا واجهات برمجة تطبيقات Tuya IoT Cloud، لاسترجاع المعلومات والمفاتيح المحلية للأجهزة.
ملاحظة: تكوين حساب Cloud API ليس إلزاميًا (يمكن أن يعمل LocalTuya أيضًا بدونه) ولكن يُقترح بشدة لسهولة استرجاع المفاتيح المحلية (والتحديث التلقائي بعد إعادة إقران الجهاز). يتم إجراء مكالمات Cloud API فقط عند بدء التشغيل، وعند الحاجة إلى تحديث local_key.
أنواع أجهزة Tuya التالية مدعومة حاليًا:
يتم دعم مراقبة الطاقة (الجهد والتيار والواط وما إلى ذلك) للأجهزة المتوافقة.
حاليًا، يتم دعم بروتوكولات Tuya من 3.1 إلى 3.4.
بدأ تطوير هذا المستودع كرمز من @NameLessJedi و@mileperhour و@TradeFace. تمت بعد ذلك إعادة صياغة التعليمات البرمجية الخاصة بهم بعمق لتوفير التكامل المناسب مع بيئة Home Assistant، وإضافة تدفق التكوين وميزات أخرى. راجع قسم "شكرًا لـ" أدناه.
الطريقة الأسهل، إذا كنت تستخدم HACS، هي تثبيت LocalTuya من خلال HACS.
للتثبيت اليدوي، انسخ المجلد localtuya وجميع محتوياته إلى مجلد custom_components الخاص بمساعد المنزل. عادة ما يكون هذا المجلد داخل مجلد /config
الخاص بك. إذا كنت تقوم بتشغيل Hass.io، فاستخدم SAMBA لنسخ المجلد. إذا كنت تقوم بتشغيل Home Assistant Supervised، فقد يكون المجلد custom_components موجودًا في /usr/share/hassio/homeassistant
. قد تحتاج إلى إنشاء المجلد custom_components
ثم نسخ المجلد localtuya وجميع محتوياته إليه.
ملحوظة: يجب أن يكون لديك مفتاح ومعرف جهاز Tuya الخاص بك حتى تتمكن من استخدام LocalTuya. أسهل طريقة هي تكوين حساب Cloud API في عملية التكامل. إذا اخترت عدم القيام بذلك، فهناك عدة طرق للحصول على المفاتيح المحلية اعتمادًا على البيئة الخاصة بك والأجهزة التي تمتلكها. المكان الجيد لبدء الحصول على المعلومات هو https://github.com/codetheweb/tuyapi/blob/master/docs/SETUP.md أو https://pypi.org/project/tinytuya/.
ملاحظة 2: إذا كنت تخطط لدمج هذه الأجهزة على شبكة بها إنترنت وحظر وصولها إلى الإنترنت، فيجب عليك أيضًا حظر طلبات DNS (إلى خادم DNS المحلي، على سبيل المثال 192.168.1.1). إذا قمت بحظر الإنترنت الصادر فقط، فسيظل الجهاز في حالة زومبي؛ سوف يرفض / لن يستجيب لأي اتصالات مع المفتاح المحلي. لذلك، يجب عليك أولاً توصيل الأجهزة باتصال إنترنت نشط، والحصول على المفتاح المحلي لكل جهاز، وتنفيذ الحظر.
ملاحظة: بدءًا من الإصدار 4.0.0، لم يعد التكوين باستخدام ملفات YAML مدعومًا. لا يمكن تكوين التكامل إلا باستخدام تدفق التكوين.
لبدء تكوين التكامل، فقط اضغط على الزر "+ADD INTEGRATION" في صفحة الإعدادات - عمليات التكامل، ثم حدد LocalTuya من القائمة المنسدلة. ستظهر صفحة تكوين Cloud API، وتطلب إدخال بيانات اعتماد حساب Tuya IoT Platform الخاص بك:
لإعداد حساب Tuya IoT Platform وإعداد مشروع فيه، راجع تعليمات تكامل Tuya الرسمي: https://www.home-assistant.io/integrations/tuya/ مكان العثور على معرف العميل والسر هو الموضح في هذا الرابط (في فقرة "الحصول على مفتاح التفويض")، بينما يمكن العثور على معرف المستخدم في علامة التبويب الفرعية "ربط حساب تطبيق Tuya" داخل مشروع السحابة:
ملاحظة: كما هو مذكور في الرابط أعلاه، إذا كان لديك بالفعل حساب ومشروع إنترنت الأشياء، فتأكد من إنشائه بعد 25 مايو 2021 (بسبب التغييرات التي تم إدخالها على السحابة لـ Tuya 2.0). خلاف ذلك، تحتاج إلى إنشاء مشروع جديد. راجع لقطة الشاشة التالية لمعرفة مكان التحقق من تاريخ إنشاء مشروعك:
بعد الضغط على زر الإرسال، يكتمل الإعداد الأول وستتم إضافة التكامل.
ملاحظة: ليس من الضروري إدخال بيانات اعتماد Cloud API: يمكنك اختيار تحديد الزر "عدم تكوين حساب Cloud API"، وستتم إضافة التكامل على أي حال.
بعد إعداد التكامل، يمكن إضافة الأجهزة وتهيئتها بالضغط على زر التكوين في صفحة التكاملات:
قائمة التكوين هي التالية:
من هذه القائمة، يمكنك تحديد "إعادة تكوين حساب Cloud API" لتحرير بيانات اعتماد وإعدادات Tuya Cloud الخاصة بك، في حالة تغييرها أو إذا تم ترحيل التكامل من إصدارات v.3.xx.
يمكنك بعد ذلك متابعة إضافة أو تحرير أجهزة Tuya الخاصة بك.
إذا حددت "إضافة جهاز أو تحريره"، فستظهر قائمة منسدلة تحتوي على قائمة الأجهزة المكتشفة (باستخدام الاكتشاف التلقائي إذا تم تحديد الإضافة، أو قائمة الأجهزة التي تم تكوينها بالفعل إذا تم تحديد التحرير): يمكنك حدد واحدًا منها، أو أدخل جميع المعلمات يدويًا مع تحديد الخيار "...".
ملحوظة: يجب إغلاق تطبيق tuya على جهازك حتى تعمل الخطوات التالية بشكل موثوق.
إذا قمت بتحديد إدخال واحد، فستحتاج فقط إلى إدخال الاسم المألوف للجهاز والمفتاح المحلي. سيتم استرداد هذه القيم تلقائيًا إذا قمت بتكوين حساب Cloud API الخاص بك، وإلا فستحتاج إلى إدخالها يدويًا.
يعد تعيين الفاصل الزمني للمسح أمرًا اختياريًا، فهو ضروري فقط إذا لم يتم تحديث قيم الطاقة/الطاقة بشكل متكرر بما يكفي بشكل افتراضي. قد تتسبب القيم الأقل من 10 ثوانٍ في حدوث مشكلات في الاستقرار.
يعد تعيين "إضافة DPS يدويًا" أمرًا اختياريًا، فهو ضروري فقط إذا لم يعلن الجهاز عن DPS بشكل صحيح حتى تتم تهيئة الكيان بشكل صحيح. غالبًا ما يمكن تجنب هذا الإعداد عن طريق توصيل/تهيئة الجهاز أولاً باستخدام تطبيق Tuya، ثم إغلاق التطبيق ثم إضافة الجهاز في عملية التكامل. ملاحظة: أي DPS تمت إضافته باستخدام هذا الخيار سيكون له قيمة -1 أثناء الإعداد.
يعد تعيين "DPIDs لإرسالها في أمر RESET" أمرًا اختياريًا. يتم استخدامه عندما لا يستجيب الجهاز لأي أوامر Tuya بعد دورة الطاقة، ولكن يمكن توصيله بـ (حالة الزومبي). يحدث هذا السيناريو غالبًا عندما يتم حظر الجهاز من الوصول إلى الإنترنت. ستختلف أرقام DPids بين الأجهزة، ولكن عادةً ما يتم استخدام "18,19,20". إذا تمت إضافة إدخالات خاطئة هنا، فقد لا يخرج الجهاز من حالة الزومبي. عادةً ما يتم إدخال معرفات DPID للمستشعر هنا فقط.
بمجرد الضغط على "إرسال"، يتم اختبار الاتصال للتأكد من أن كل شيء يعمل.
ثم حان الوقت لإضافة الكيانات: سيتم تنفيذ هذه الخطوة عدة مرات. أولاً، حدد نوع الكيان من القائمة المنسدلة لإعداده. بعد تحديد جميع الكيانات المطلوبة، اترك مربع الاختيار "عدم إضافة المزيد من الكيانات" محددًا: سيؤدي هذا إلى إكمال الإجراء.
بالنسبة لكل كيان، يجب تحديد DP المرتبط. ستوفر جميع الخيارات التي تتطلب تحديد DP قائمة منسدلة تعرض جميع DPs المتاحة الموجودة على الجهاز (مع حالتها الحالية!!) لسهولة التعرف عليها.
ملاحظة: إذا كان جهازك يتطلب LocalTuya لإرسال قيمة تهيئة إلى الكيان حتى يعمل، فيمكن تكوين ذلك (في الكيانات المدعومة) من خلال خيار "الكيان السلبي". اختياريًا، يمكنك تحديد قيمة التهيئة المراد إرسالها
يحتوي كل نوع كيان على خيارات مختلفة ليتم تكوينها. فيما يلي مثال لكيان "التبديل":
بمجرد تكوين الكيانات، يكتمل الإجراء. يمكنك الآن ربط الجهاز بمنطقة في Home Assistant
إذا قمت بترقية LocalTuya من الإصدار v3.xx أو الإصدارات الأقدم، فسيتم ترحيل إدخال التكوين تلقائيًا إلى الإعداد الجديد. يجب أن يعمل كل شيء كما كان قبل الترقية، بصرف النظر عن حقيقة أنه في علامة التبويب "التكامل" ستشاهد تكامل LocalTuya واحدًا فقط (يُظهر عدد الأجهزة والكيانات التي تم تكوينها) بدلاً من العديد من عمليات التكامل المجمعة داخل LocalTuya Box. سيحدث هذا إذا تم إجراء التكوين القديم باستخدام ملفات YAML ومع تدفق التكوين. بمجرد الترحيل، يمكنك فقط إدخال بيانات اعتماد حساب Tuya IoT الخاص بك لتمكين دعم Cloud API (والاستفادة من استرداد المفتاح المحلي والتحديث التلقائي): راجع قائمة التكوين.
إذا قمت بتكوين LocalTuya باستخدام ملفات YAML، فيمكنك حذف جميع مراجعها من داخل ملفات YAML لأنها لن يتم أخذها في الاعتبار بعد الآن، لذا قد تسبب ارتباكًا (يجب الاحتفاظ فقط بجزء تكوين المُسجل، بالطبع، راجع تصحيح الأخطاء ).
يمكنك الحصول على مراقبة الطاقة (الجهد والتيار) بطريقتين مختلفتين:
sensor :
- platform : template
sensors :
tuya-sw01_voltage :
value_template : >-
{{ states.switch.sw01.attributes.voltage }}
unit_of_measurement : ' V '
tuya-sw01_current :
value_template : >-
{{ states.switch.sw01.attributes.current }}
unit_of_measurement : ' mA '
tuya-sw01_current_consumption :
value_template : >-
{{ states.switch.sw01.attributes.current_consumption }}
unit_of_measurement : ' W '
هناك العديد من المناخات القائمة على تويا، سواء السخانات أو منظمات الحرارة أو أجهزة تكييف الهواء. يبدو أن كل شيء متكامل بطرق مختلفة ومن الصعب العثور على رسم خرائط مشترك لـ DP. يوجد أدناه جدول لـ DP لتعيين المنتج والذي يتم رؤيته وهو يعمل حاليًا. استخدمه كدليل لرسم الخرائط الخاصة بك ويرجى المساهمة في القائمة إذا كان لديك الإمكانية.
موانئ دبي | مويس BHT 002 | كليما WMS S + SC52 (AB;AF) | أفاتو |
---|---|---|---|
1 | المعرف: تشغيل/إيقاف {صحيح، كاذب} | المعرف: تشغيل/إيقاف {صحيح، كاذب} | المعرف: تشغيل/إيقاف {صحيح، كاذب} |
2 | درجة الحرارة المستهدفة عدد صحيح، القياس: 0.5 | درجة الحرارة المستهدفة عدد صحيح، القياس 1 | درجة الحرارة المستهدفة عدد صحيح، القياس 1 |
3 | درجة الحرارة الحالية عدد صحيح، القياس: 0.5 | درجة الحرارة الحالية عدد صحيح، القياس: 1 | درجة الحرارة الحالية عدد صحيح، القياس: 1 |
4 | وضع {0، 1} | وضع {"حار"، "رياح"، "رطب"، "بارد"، "تلقائي"} | ؟ |
5 | الوضع البيئي ؟ | وضع المروحة {"قوي"، "عالي"، "متوسط"، "منخفض"، "تلقائي"} | ؟ |
15 | غير معتمد | مدعوم، غير معروف {صحيح، كاذب} | ؟ |
19 | غير معتمد | وحدة درجة الحرارة {"ج"، "و"} | ؟ |
23 | غير معتمد | مدعوم، غير معروف عدد صحيح، على سبيل المثال. 68 | ؟ |
24 | غير معتمد | مدعوم، غير معروف عدد صحيح، على سبيل المثال. 64 | ؟ |
101 | غير معتمد | درجة الحرارة الخارجية عدد صحيح. التحجيم: 1 | ؟ |
102 | درجة حرارة المستشعر الخارجي عدد صحيح، القياس: 0.5 | مدعوم، غير معروف عدد صحيح، على سبيل المثال. 34 | ؟ |
104 | مدعوم، غير معروف {صحيح، خطأ(؟)} | غير معتمد | ؟ |
منظم الحرارة Moes BHT 002 Avatto
عندما تكتب تقريرًا عن الأخطاء، فمن المفيد للغاية أن تقوم بتضمين سجلات التصحيح مباشرةً (وإلا فسنطلبها فقط وسيستغرق الأمر وقتًا أطول). لذا يرجى تمكين سجلات تصحيح الأخطاء مثل هذه وإدراجها في مشكلتك:
logger :
default : warning
logs :
custom_components.localtuya : debug
custom_components.localtuya.pytuya : debug
ثم قم بتحرير الجهاز الذي يعرض المشاكل وحدد الزر "تمكين تصحيح الأخطاء لهذا الجهاز".
إنشاء حساس (عداد) (جيد ودقيق) للطاقة (كيلوواط ساعة) -ليس فقط الطاقة، بل يعتمد عليها-. الأفكار: استخدم: https://www.home-assistant.io/integrations/integration/ وhttps://www.home-assistant.io/integrations/utility_meter/
كل ما ورد في رقم 15
NameLessJedi https://github.com/NameLessJedi/localtuya-homeassistant وmileperhour https://github.com/mileperhour/localtuya-homeassistant هما المصدران الرئيسيان للإلهام، ولم يتغير رمز المفاتيح الخاص به إلى حد كبير.
TradeFace، لكونها الوحيدة التي قدمت الرمز الصحيح للتواصل مع الغلاف (على وجه الخصوص، الأمر 0x0d للحالة بدلاً من 0x0a، والاحتياجات ذات الصلة مثل الرد المزدوج الذي سيتم استلامه): https://github. كوم/ترافيس/تويا/
sean6541، لمعالج Python العامل (القياسي) لأجهزة Tuya.
jasonacox، لمشروع TinyTuya حيث يمكنني استيراد الكود للتواصل مع الأجهزة باستخدام البروتوكول 3.4.
postlund، للأفكار، لترميز 95٪ من إعادة الهيكلة وتعزيز جودة هذا الريبو إلى مستويات يصعب تخيلها (بواسطتي، على الأقل) وتعليمي الكثير عن كيفية عمل الأشياء في Home Assistant.