Integrasi khusus Asisten Rumah untuk penanganan lokal perangkat berbasis Tuya.
Integrasi khusus ini memperbarui status perangkat melalui pembaruan push, bukan polling, sehingga pembaruan status berlangsung cepat (bahkan ketika dioperasikan secara manual). Integrasi ini juga mendukung Tuya IoT Cloud API, untuk pengambilan informasi dan kunci_lokal perangkat.
CATATAN: Konfigurasi akun Cloud API tidak wajib (LocalTuya juga dapat berfungsi tanpanya) tetapi sangat disarankan untuk memudahkan pengambilan (dan pembaruan otomatis setelah memasangkan ulang perangkat) dari local_keys. Panggilan Cloud API hanya dilakukan saat startup, dan ketika pembaruan local_key diperlukan.
Jenis perangkat Tuya berikut saat ini didukung:
Pemantauan energi (tegangan, arus, watt, dll.) didukung untuk perangkat yang kompatibel.
Saat ini, protokol Tuya dari 3.1 hingga 3.4 didukung.
Pengembangan repositori ini dimulai dengan kode dari @NameLessJedi, @mileperhour dan @TradeFace. Kode mereka kemudian difaktorkan ulang secara mendalam untuk menyediakan integrasi yang tepat dengan lingkungan Home Assistant, menambahkan alur konfigurasi dan fitur lainnya. Lihat bagian "Terima kasih" di bawah.
Cara termudah, jika Anda menggunakan HACS, adalah menginstal LocalTuya melalui HACS.
Untuk instalasi manual, salin folder localtuya dan semua isinya ke folder custom_components Home Assistant Anda. Folder ini biasanya ada di dalam folder /config
Anda. Jika Anda menjalankan Hass.io, gunakan SAMBA untuk menyalin folder tersebut. Jika Anda menjalankan Home Assistant Supervised, folder custom_components mungkin terletak di /usr/share/hassio/homeassistant
. Anda mungkin perlu membuat folder custom_components
lalu menyalin folder localtuya dan semua isinya ke dalamnya.
CATATAN: Anda harus memiliki Kunci dan ID perangkat Tuya Anda untuk menggunakan LocalTuya. Cara termudah adalah dengan mengonfigurasi akun Cloud API dalam integrasi. Jika Anda memilih untuk tidak melakukannya, ada beberapa cara untuk mendapatkan local_keys bergantung pada lingkungan dan perangkat yang Anda miliki. Tempat yang baik untuk mulai mendapatkan info adalah https://github.com/codetheweb/tuyapi/blob/master/docs/SETUP.md atau https://pypi.org/project/tinytuya/.
CATATAN 2: Jika Anda berencana untuk mengintegrasikan perangkat ini pada jaringan yang memiliki internet dan memblokir akses internetnya, Anda juga harus memblokir permintaan DNS (ke server DNS lokal, misalnya 192.168.1.1). Jika Anda hanya memblokir internet keluar, maka perangkat akan berada dalam keadaan zombie; itu akan menolak/tidak merespons koneksi apa pun dengan kunci lokal. Oleh karena itu, Anda harus terlebih dahulu menghubungkan perangkat dengan koneksi internet aktif, mengambil kunci lokal setiap perangkat, dan menerapkan pemblokiran.
CATATAN: mulai dari v4.0.0, konfigurasi menggunakan file YAML tidak lagi didukung. Integrasi hanya dapat dikonfigurasi menggunakan alur konfigurasi.
Untuk mulai mengonfigurasi integrasi, cukup tekan tombol "+TAMBAH INTEGRASI" di halaman Pengaturan - Integrasi, dan pilih LocalTuya dari menu drop-down. Halaman konfigurasi Cloud API akan muncul, meminta untuk memasukkan kredensial akun Tuya IoT Platform Anda:
Untuk menyiapkan akun Platform IoT Tuya dan menyiapkan proyek di dalamnya, lihat petunjuk integrasi resmi Tuya: https://www.home-assistant.io/integrations/tuya/ Tempat untuk menemukan ID Klien dan Rahasianya adalah dijelaskan dalam tautan ini (di paragraf "Dapatkan Kunci Otorisasi"), sedangkan ID Pengguna dapat ditemukan di subtab "Tautkan Akun Aplikasi Tuya" dalam proyek Cloud:
Catatan: seperti yang dinyatakan dalam tautan di atas, jika Anda sudah memiliki akun dan proyek IoT, pastikan akun tersebut dibuat setelah 25 Mei 2021 (karena perubahan yang diperkenalkan di cloud untuk Tuya 2.0). Jika tidak, Anda perlu membuat proyek baru. Lihat tangkapan layar berikut untuk memeriksa tanggal pembuatan proyek Anda:
Setelah menekan tombol Kirim, pengaturan pertama selesai dan Integrasi akan ditambahkan.
Catatan: memasukkan kredensial Cloud API tidak wajib: Anda dapat memilih untuk mencentang tombol "Jangan konfigurasikan akun Cloud API", dan Integrasi akan tetap ditambahkan.
Setelah Integrasi diatur, perangkat dapat ditambahkan dan dikonfigurasi dengan menekan tombol Konfigurasi di halaman Integrasi:
Menu konfigurasinya adalah sebagai berikut:
Dari menu ini, Anda dapat memilih "Konfigurasi ulang akun Cloud API" untuk mengedit kredensial dan pengaturan Tuya Cloud Anda, jika ada perubahan atau jika integrasi dimigrasikan dari versi v.3.xx.
Anda kemudian dapat melanjutkan Menambah atau Mengedit perangkat Tuya Anda.
Jika Anda memilih "Tambah atau Edit perangkat", menu drop-down akan muncul berisi daftar perangkat yang terdeteksi (menggunakan penemuan otomatis jika penambahan dipilih, atau daftar perangkat yang sudah dikonfigurasi jika pengeditan dipilih): Anda dapat pilih salah satunya, atau masukkan semua parameter secara manual dengan memilih opsi "...".
Catatan: Aplikasi tuya di perangkat Anda harus ditutup agar langkah-langkah berikut dapat berfungsi dengan baik.
Jika sudah memilih satu entri, Anda hanya perlu memasukkan Friendly Name perangkat dan localKey. Nilai-nilai ini akan diambil secara otomatis jika Anda telah mengonfigurasi akun Cloud API Anda, jika tidak, Anda perlu memasukkannya secara manual.
Mengatur interval pemindaian bersifat opsional, ini hanya diperlukan jika nilai energi/daya tidak cukup sering diperbarui secara default. Nilai kurang dari 10 detik dapat menyebabkan masalah stabilitas.
Menyetel 'DPS Manual Untuk Ditambahkan' bersifat opsional, ini hanya diperlukan jika perangkat tidak mengiklankan DPS dengan benar hingga entitas telah diinisiasi dengan benar. Pengaturan ini seringkali dapat dihindari dengan terlebih dahulu menghubungkan/menginisialisasi perangkat dengan Aplikasi Tuya, kemudian menutup aplikasi dan kemudian menambahkan perangkat dalam integrasi. Catatan: DPS apa pun yang ditambahkan menggunakan opsi ini akan memiliki nilai -1 selama penyiapan.
Menyetel 'DPID yang akan dikirim dalam perintah RESET' adalah opsional. Ini digunakan ketika perangkat tidak merespons perintah Tuya apa pun setelah siklus daya, namun dapat dihubungkan ke (status zombie). Skenario ini sebagian besar terjadi ketika perangkat diblokir dari mengakses internet. DPids akan bervariasi antar perangkat, tetapi biasanya "18,19,20" yang digunakan. Jika entri yang salah ditambahkan di sini, perangkat mungkin tidak keluar dari status zombie. Biasanya hanya DPID sensor yang dimasukkan di sini.
Setelah Anda menekan "Kirim", koneksi diuji untuk memeriksa apakah semuanya berfungsi.
Lalu, saatnya menambahkan entitas: langkah ini akan dilakukan beberapa kali. Pertama, pilih jenis entitas dari menu drop-down untuk menyiapkannya. Setelah Anda menentukan semua entitas yang diperlukan, biarkan kotak centang "Jangan tambahkan entitas lainnya" dicentang: ini akan menyelesaikan prosedur.
Untuk setiap entitas, DP terkait harus dipilih. Semua opsi yang diperlukan untuk memilih DP akan menyediakan menu drop-down yang menunjukkan semua DP tersedia yang ditemukan di perangkat (dengan statusnya saat ini!!) untuk memudahkan identifikasi.
Catatan: Jika perangkat Anda memerlukan LocalTuya untuk mengirimkan nilai inisialisasi ke entitas agar dapat berfungsi, ini dapat dikonfigurasi (di entitas yang didukung) melalui opsi 'Entitas pasif'. Secara opsional, Anda dapat menentukan nilai inisialisasi yang akan dikirim
Setiap jenis entitas memiliki opsi berbeda untuk dikonfigurasi. Berikut adalah contoh untuk entitas "switch":
Setelah Anda mengonfigurasi entitas, prosedurnya selesai. Anda sekarang dapat mengaitkan perangkat dengan Area di Home Assistant
Jika Anda mengupgrade LocalTuya dari v3.xx atau lebih lama, entri konfigurasi akan secara otomatis dimigrasikan ke pengaturan baru. Semuanya harus berfungsi seperti sebelum pemutakhiran, terlepas dari kenyataan bahwa di tab Integrasi Anda hanya akan melihat satu integrasi LocalTuya (menunjukkan jumlah perangkat dan entitas yang dikonfigurasi) dan bukan beberapa Integrasi yang dikelompokkan dalam Kotak LocalTuya. Ini akan terjadi jika konfigurasi lama dilakukan menggunakan file YAML dan dengan alur konfigurasi. Setelah dimigrasi, Anda cukup memasukkan kredensial akun Tuya IoT Anda untuk mengaktifkan dukungan untuk Cloud API (dan memanfaatkan pengambilan local_key dan pembaruan otomatis): lihat Menu konfigurasi.
Jika Anda telah mengonfigurasi LocalTuya menggunakan file YAML, Anda dapat menghapus semua referensinya dari dalam file YAML karena referensi tersebut tidak lagi dipertimbangkan sehingga mungkin menimbulkan kebingungan (hanya bagian konfigurasi logger yang perlu disimpan, tentu saja, lihat Debugging ).
Anda dapat memperoleh pemantauan Energi (tegangan, arus) dengan dua cara berbeda:
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 '
Ada banyak iklim berbasis Tuya di luar sana, baik pemanas, termostat, dan AC. Semuanya tampaknya terintegrasi dengan cara yang berbeda dan sulit untuk menemukan pemetaan DP yang umum. Di bawah ini adalah tabel pemetaan DP ke produk yang saat ini terlihat berfungsi. Gunakan ini sebagai panduan untuk pemetaan Anda sendiri dan silakan berkontribusi pada daftar jika Anda memiliki kemungkinan.
DP | Moes BHT 002 | Qlima WMS S + SC52 (AB;AF) | Avatar |
---|---|---|---|
1 | ID: Hidup/Mati {benar, salah} | ID: Hidup/Mati {benar, salah} | ID: Hidup/Mati {benar, salah} |
2 | Suhu sasaran Integer, penskalaan: 0,5 | Suhu sasaran Integer, penskalaan 1 | Suhu sasaran Integer, penskalaan 1 |
3 | Suhu saat ini Integer, penskalaan: 0,5 | Suhu saat ini Integer, penskalaan: 1 | Suhu saat ini Integer, penskalaan: 1 |
4 | Mode {0, 1} | Mode {"panas", "angin", "basah", "dingin", "otomatis"} | ? |
5 | Modus ramah lingkungan ? | Modus kipas {"kuat", "tinggi", "sedang", "rendah", "otomatis"} | ? |
15 | Tidak didukung | Didukung, tidak diketahui {benar, salah} | ? |
19 | Tidak didukung | Satuan suhu {"c", "f"} | ? |
23 | Tidak didukung | Didukung, tidak diketahui Bilangan bulat, misalnya. 68 | ? |
24 | Tidak didukung | Didukung, tidak diketahui Bilangan bulat, misalnya. 64 | ? |
101 | Tidak didukung | Suhu luar ruangan Bilangan bulat. Penskalaan: 1 | ? |
102 | Suhu sensor eksternal Integer, penskalaan: 0,5 | Didukung, tidak diketahui Bilangan bulat, misalnya. 34 | ? |
104 | Didukung, tidak diketahui {benar, salah(?)} | Tidak didukung | ? |
Termostat Moes BHT 002 Avatto
Setiap kali Anda menulis laporan bug, akan sangat membantu jika Anda menyertakan log debug secara langsung (jika tidak, kami hanya akan memintanya dan ini akan memakan waktu lebih lama). Jadi harap aktifkan log debug seperti ini dan sertakan dalam masalah Anda:
logger :
default : warning
logs :
custom_components.localtuya : debug
custom_components.localtuya.pytuya : debug
Kemudian, edit perangkat yang menunjukkan masalah dan centang tombol "Aktifkan debugging untuk perangkat ini".
Buat sensor (penghitung) (yang baik dan tepat) untuk Energi (kWh) -bukan hanya Daya, tetapi berdasarkan itu-. Ide: Gunakan: https://www.home-assistant.io/integrations/integration/ dan https://www.home-assistant.io/integrations/utility_meter/
Semuanya tercantum di #15
NameLessJedi https://github.com/NameLessJedi/localtuya-homeassistant dan mileperhour https://github.com/mileperhour/localtuya-homeassistant menjadi sumber inspirasi utama, dan kode untuk sakelar pada dasarnya tidak berubah.
TradeFace, karena menjadi satu-satunya yang memberikan kode yang benar untuk komunikasi dengan sampul (khususnya, perintah 0x0d untuk status, bukan 0x0a, dan kebutuhan terkait seperti balasan ganda yang akan diterima): https://github. com/TradeFace/tuya/
sean6541, untuk Python Handler (standar) yang berfungsi untuk perangkat Tuya.
jasonacox, untuk proyek TinyTuya tempat saya dapat mengimpor kode untuk berkomunikasi dengan perangkat menggunakan protokol 3.4.
postlund, atas idenya, untuk mengkode 95% refactoring dan meningkatkan kualitas repo ini ke tingkat yang sulit dibayangkan (setidaknya bagi saya) dan mengajari saya BANYAK cara kerja di Home Assistant.