Membalikkan rekayasa protokol pertukaran dalam peralatan EOS



Saya harus mengatakan segera, judulnya mungkin sedikit keras. Saya benar-benar perlu mengeluarkan hanya satu perintah dari protokol untuk mengontrol dimmer. Tentang bagaimana ini dilakukan dan apa yang terjadi pada akhirnya, baca terus di artikel.

Jadi, ada perusahaan Jerman seperti EOS Premium SPA Technology . Ini menghasilkan berbagai peralatan untuk sauna. Mereka memiliki panel kontrol yang cukup menarik, dengan layar sentuh, unit daya berkualitas tinggi. Benar, mereka cukup mahal, tetapi mereka tampaknya membenarkan diri mereka sendiri.

Namun, ada satu minus besar dalam peralatan mereka. Unit daya dapat mengontrol tungku listrik multi-kilowatt, tetapi pada saat yang sama mereka memiliki saluran kontrol pencahayaan yang sangat lemah. Hanya hingga 150 watt! Pencahayaan dapat dikontrol dengan mudah langsung dari remote control, menyalakan / mematikannya, dan menyesuaikan kecerahan. Tapi 150 W SANGAT kecil! Ada unit tambahan untuk kontrol pencahayaan yang dijual, tetapi label harganya sangat tidak manusiawi.
Dalam hal ini, tugas tersebut tampaknya membuat dimmer yang akan mengontrol beban dengan lebih banyak daya dan, di samping itu, beban tegangan rendah (strip LED pada 12 / 24V atau lampu halogen pada 24V).

Halogen, meskipun mereka mengkonsumsi lebih banyak dan cenderung kelelahan, tetapi menurut saya, pencahayaan dari mereka lebih menyenangkan. Meskipun ini masalah selera. Secara umum, tugas seperti itu telah matang. Mengapa pencahayaan seperti itu diperlukan diilustrasikan dengan baik dalam gambar ini:



EOS merilis banyak panel kontrol, tetapi yang paling umum adalah Emotec dan Emotouch III. Kami akan berurusan dengan mereka.





Saya harus mengatakan bahwa panel kontrol pada peralatan EOS terhubung ke unit daya melalui kabel telepon 4-pin konvensional:



Pemeriksaan cepat papan menunjukkan bahwa dua kabel diberikan untuk daya 24V, dan dua lainnya pada garis antarmuka RS-485. Secara umum, implementasi standar. Garis A dan B ada di tengah:



Setelah terhubung ke saluran menggunakan konverter USB-RS-485 dan mengatur kecepatan pada 9600 bps dari botak, kami melihat byte berjalan, tetapi tujuannya, tentu saja, tidak diketahui. Protokol pertukaran tidak ditemukan dalam domain publik, dan pabrikan itu sendiri menolak untuk menyediakannya, meskipun permintaan yang sesuai dikirimkan kepada mereka.
Saya harus berurusan dengan decoding sendiri :-)

Ya, saya akan segera mencatat satu nuansa. Kontrol dimmer hanya berfungsi setelah unit daya dioperasikan. Ini terlihat jelas ketika lampu terhubung ke output dari dimmer built-in. Itu mulai bersinar hanya setelah sauna mulai memanas.

Awalnya, mereka mulai memilah-milah kecepatan dari 9600 hingga 115200 bps dari seri standar.
Dan pada kecepatan 38.400 saya sadar bahwa perintah dipisahkan oleh dua byte standar 0x0A, 0x0D.

Nah, ini sudah sesuatu. Ayo lakukan trik selanjutnya. Mari kita mencari perintah yang kita butuhkan dengan nilai kecerahan. Tiba-tiba itu ditransmisikan secara jelas.

Kami menetapkan nilai 73 (0x49) pada remote control:



Selanjutnya, kami menghapus log dan mencari byte ini di sana:



Voila! Kami menemukannya, lihat kiri dan kanan ke byte 0x0A, 0x0D, mencoba memilih paket yang kita butuhkan. Dan sebagai hasilnya, kita mendapatkan struktur ini:

0x0E 0x04 0x04 0x49 0x49 0x00 0x00 0xD1 0x0A 0x0D

Selama percobaan, ditemukan bahwa 2 dan 3 byte selalu sama dengan 0x04, 4 dan 5 mengatur kecerahan dalam persen, 6 dan 7 sama dengan 0, 8 - itu berubah, yang berarti tidak jelas, 9 dan 10 - 0x0A, 0xD.

Seperti yang ditunjukkan percobaan, byte pertama adalah alamat. Ini menetapkan apa yang disebut nomor kamar. Faktanya adalah remote EOS dapat mengendalikan beberapa unit daya secara bersamaan. Masing-masing memiliki alamatnya sendiri, yang dikirimkan dalam byte ini.

Alamatnya adalah sebagai berikut:
Untuk panel kontrol oven:
01 - kamar pertama
21 - kamar kedua
41 - kamar ketiga
61 - kamar keempat
81 - kamar kelima
A1 - kamar keenam
C1 - kamar ketujuh
E1 - kamar kedelapan

Untuk panel kontrol pembuat uap:
0E - kamar pertama
2E - kamar kedua
4E - kamar ketiga
6E - kamar keempat
8E - kamar kelima
AE - kamar keenam
CE - kamar ketujuh
EE - kamar kedelapan

Sebenarnya, ini semua decoding.

Untuk memeriksa, sehingga untuk berbicara dalam "dinamika", kami dengan cepat melemparkan program pada Delphi untuk menampilkan nilai kecerahan dan memutar bilah geser. Semuanya memenuhi dengan jelas.

Setelah itu, kami mengembangkan di C program sederhana untuk memecahkan kode paket-paket ini dan meluncurkan semuanya dalam perangkat keras. Perangkat itu sendiri cukup sederhana. Di sana, PWM biasa diimplementasikan pada tombol daya, tetapi jika tertarik, saya kemudian dapat menulis artikel terpisah tentang itu.

Source: https://habr.com/ru/post/id453234/


All Articles