Mundarija:

Uyni avtomatlashtirish uchun LG kanalli bo'linishini buzish: 8 qadam (rasmlar bilan)
Uyni avtomatlashtirish uchun LG kanalli bo'linishini buzish: 8 qadam (rasmlar bilan)

Video: Uyni avtomatlashtirish uchun LG kanalli bo'linishini buzish: 8 qadam (rasmlar bilan)

Video: Uyni avtomatlashtirish uchun LG kanalli bo'linishini buzish: 8 qadam (rasmlar bilan)
Video: 😱😱DAXSHAT TEZ Ko'ring Bu Bola Odammas Ekan Bu Rekordku😱😱Boshi Uzilib ketdimi korib qoyil qolasiz 2024, Noyabr
Anonim
Uyni avtomatlashtirish uchun LG kanalli bo'linmasini buzish
Uyni avtomatlashtirish uchun LG kanalli bo'linmasini buzish

Birinchidan - bu masofadan boshqarish pultining boshqa infraqizil emulyatsiyasi emas. Mening maxsus AC -da devorga o'rnatilgan aqlli boshqaruv elementlaridan boshqa har qanday boshqaruv uchun mo'ljallangan interfeys yo'q.

Mening uyimda LG Ducted teskari split tizimi bor. Afsuski, u IoT ishlab chiqaruvchilar ro'yxatida yuqori bo'lmagan paytda qilingan. Men "usta" boshqaruvining ba'zi variantlari borligini kashf qildim, lekin men buni birinchi marta sinab ko'rganimda, qurilma atigi 2 yoshda bo'lsa -da, kengaytirish taxtalari unan bo'lmagan va narxlar baribir astronomik edi. "Simsiz RF masofadan boshqarish pulti" kabi, bu ishni ancha osonlashtirardi, lekin sotib olishning iloji yo'q edi.

Agar men tanlagan bo'lsam, bu LG emas edi, lekin men uni sotib olganimda uyga o'rnatganimdan (va uning narxi 10 ming dollardan oshishi mumkin edi) men bilan shug'ullanishim kerak edi.

Maqsad - OpenHAB va IFTTT/Google Assistant orqali avtomatlashtirish maqsadida ACni MQTT orqali boshqarishni bilish.

1 -qadam: Ma'lumotlar formatini dekodlash

Ma'lumot formatini dekodlash
Ma'lumot formatini dekodlash
Ma'lumot formatini dekodlash
Ma'lumot formatini dekodlash

Men bu jarayonni 4 yil oldin boshlaganman, lekin uzoqqa bormadim va jihozni shikastlamoqchi emas edim - Ayniqsa, uning qismlarini topish deyarli imkonsizdek.

Tekshirgichni devordan uzib, men 3 ta simni topdim, ular Ground, 12v va "signal"

Ma'lumot uzatish liniyasidagi signal kuchlanishi 12v edi, lekin men uning multimetrda (chiziqdagi qandaydir pulslar) tebranayotganini payqadim.

Men nonni optik izolyatorni ma'lumotlar pinidan o'tkazish uchun asosiy sxemaga o'tirdim va opto -izolyatorning boshqa tomonini shaxsiy kompyuterimning ovoz kartasiga kirish sifatida uladim va keng qamrovli chiqishning yomon versiyasini oldim (1 -rasm).

Bu men bilgan vaqtga to'g'ri keladi - men u erda biror narsa borligini ko'rardim, lekin uni qanday "dekodlashni" bilmasdim.

Coffee Machine IoT -ni ishga tushirganimdan so'ng, men bu safar biroz qat'iyat bilan yana urinib ko'rishga qiziqdim.

Men o'z topilmalarimni EEVBlog forumlarida joylashtirdim, kimdir yorug'lik bera oladimi yoki yo'qmi, ko'rish uchun va Ian ismli buyuk yigit meni qutqarishga keldi - u buni to'liq tushunarli qilib aytdi (2 -rasm)

Asosan, ma'lumotlar oqimi "standart ketma -ketlik" ning 13 baytini tashkil etadi - 8 ta ma'lumotlar biti, bitta boshlang'ich va bitta to'xtash biti (paritet yo'q), lekin juda past tezlikdagi sekundiga 104bit.

2 -qadam: Chuqurroq ko'rish

Chuqurroq qarab
Chuqurroq qarab

Ma'lumotlar qanday formatlanganligi haqida tasavvurga ega bo'lganimdan so'ng, men ma'lumotni yanada dinamik o'qish imkoniyatiga ega bo'ldim.

Men boshqaruvchilardan birini devordan tortib oldim va uni oddiy eskiz bilan Arduino -ga mantiqiy darajali o'tish moslamasi bilan uladim, 13 bayt ma'lumotni ketma -ket 104 -soniyada sozlangan dasturiy port orqali o'qish va chop etish uchun:

168, 18, 0, 8, 0, 192, 6, 22, 0, 0, 0, 0, 168, 18, 0, 8, 0, 192, 6, 22, 0, 0, 0, 0, 40, 19, 0, 8, 0, 200, 6, 31, 0, 0, 0, 0, 40, 19, 0, 8, 0, 200, 6, 31, 0, 0, 0, 0, 200, 18, 0, 8, 64, 0, 6, 25, 0, 0, 0, 0, 200, 18, 0, 8, 64, 0, 6, 25, 0, 0, 0, 0, 168, 18, 0, 8, 0, 200, 6, 22, 0, 0, 0, 0, 168, 18, 0, 8, 0, 200, 6, 22, 0, 0, 0, 0, 168, 18, 0, 8, 0, 200, 6, 22, 0, 0, 0, 0, ** Aslida bu erda 12 bayt

Bizda harakat bor edi!

Keyin tekshirgichdagi turli xil sozlamalarni o'zgartirib, men o'zgaradigan baytlarni ishlab chiqa oldim:

168, 3, 0, 0, 0, 192, 3, 31, 0, 0, 0, 0, 248, muxlis LOW168, 35, 0, 0, 0, 192, 3, 31, 0, 0, 0, 0, 248, Fan MED 168, 67, 0, 0, 0, 192, 3, 31, 0, 0, 0, 0, 152, Fan HIGH

168, 67, 0, 0, 0, 248, 3, 33, 0, 0, 0, 0, 82, Z1234 168, 67, 0, 0, 0, 192, 3, 34, 0, 0, 0, 0, 133, Z1 168, 67, 0, 0, 0, 160, 3, 34, 0, 0, 0, 0, 229, Z2 168, 67, 0, 0, 0, 144, 3, 34, 0, 0, 0, 0, 245, Z3 168, 67, 0, 0, 0, 136, 3, 35, 0, 0, 0, 0, 204, Z4

168, 75, 0, 0, 0, 136, 3, 35, 0, 0, 0, 0, 244, FAN rejimi 168, 79, 0, 0, 0, 136, 10, 35, 0, 0, 0, 0, 249, AVTO 168, 67, 0, 0, 0, 136, 3, 35, 0, 0, 0, 0, 204, SOLIQ rejimi 168, 83, 0, 0, 0, 136, 15, 34, 0, 0, 0, 0, 225, ISITISH rejimi 168, 7, 0, 0, 0, 136, 15, 34, 0, 0, 0, 0, 61, DH rejimi

168, 15, 0, 0, 0, 136, 3, 34, 0, 0, 0, 0, 49, Harorat 18 168, 15, 0, 0, 0, 136, 4, 34, 0, 0, 0, 0, 48, Harorat 19 168, 15, 0, 0, 0, 136, 5, 34, 0, 0, 0, 0, 51, Harorat 20 168, 15, 0, 0, 0, 136, 15, 34, 0, 0, 0, 0, 37, harorat 30

Agar siz ularni ikkilik ko'rinishda ko'rsangiz, bu raqamlar mantiqiyroq bo'ladi, lekin 13 -bayt nima bilan bog'liq? Hamma joyda …

3 -qadam: Xaritani tuzing

Xaritaga chiqarish
Xaritaga chiqarish

Sinov va xato orqali men uzatishim kerak bo'lgan 13 bayt ma'lumotlarning tegishli bitlarini aniqlay oldim.

4 -qadam: G'isht devor oldinga

Oldinda g'isht devori!
Oldinda g'isht devori!
Oldinda g'isht devori!
Oldinda g'isht devori!
Oldinda g'isht devori!
Oldinda g'isht devori!

Bu erda murakkablashdi. Menda ikkita to'siq bor edi

a) 13 -bayt qandaydir tarzda ishlashim kerak bo'lgan ma'lumotlarning nazorat yig'indisi bo'lib tuyuldi. b) Ma'lumotni qanday uzataman? Bu faqat bitta sim.

"A" sonini chiqarish juda oson bo'lib chiqdi, lekin men tasodifan o'tib ketdim.

Sinovlarda men A802000000040F61000000004B A81200004004169A00000000FB A81200004004159A00000000F8 A81200004004149A00000000E5 A81200084000149C000000000070080080070080000700

Bu 13 baytlik ma'lumotlar, shu jumladan nazorat yig'indisi (bu erda DEC o'rniga HEXda).

Men google -da "cheksum muhandisligini qanday teskari o'zgartirish" haqida qidirayotganimda, men bu sahifani Nik ismli boshqa birov bilan ketma -ket almashish paytida uchratdim, lekin men bilan bir xil narsani so'radi konditsioner va ularning ma'lumotlari meniki bilan deyarli bir xil edi - Bo'lishi mumkinmi ??? Mening barcha qidiruvlarimda (4 yil ichida) hech kim bu konditsionerlarda protokolni qanday buzish haqida hech qanday ma'lumot joylashtirmagan va men deyarli hech narsaga aloqasi bo'lmagan narsani qidirib, xuddi shu narsani qilgan odamga duch keldimmi? Bu ne'mat edi - U hatto buni ishlab chiqqanini ham e'lon qildi va uning echimi: Ma'lumotlarning barcha baytlarini, so'ng XORni "U" bilan qo'shing.

Qo'limda men uni o'z kodimga qo'shib qo'ydimki, checksum aslida nima bo'lishi kerak deb o'ylayman, lekin bu hammasi noto'g'ri!

Ma'lum bo'lishicha, bu qandaydir noto'g'ri edi. Men raqamlarni ikkilikda ko'rishni boshlaganimda, bu to'liq ma'noga ega edi.

"U bilan XOR" javobi har doim 9 bit ma'lumotni qaytargan (9 -bit har doim bitta), lekin boshqa bitlar to'g'ri edi. Olingan sondan 256 ni olib, 9 -bitni olib tashladim va u mos keldi !!

Agar bu odam bo'lmaganida, men hali ham boshimni qirib tashlagan bo'lardim. Shlyapalar ham unga yopiq, lekin men u bilan bog'lana olmayman - bu asosan uning stackexchange forumidagi yagona xabari edi. Xo'sh, rahmat begona:)

Keyingi qiyinchilik, menda mavjud boshqaruvchini simulyatsiya qilishga imkon beradigan sxemani tuzish edi. Men haydovchi sxemasi sxemasini (Pic1 va Pic 2) xaritaga tushirdim, lekin men xohlagan narsani olish uchun uni qayta ishlab chiqarish men uchun juda murakkab bo'lib tuyuldi. Men allaqachon signalni o'qigan edim. Men juda oddiy usulni tanladim - arduino yordamida opto izolyatorini haydash uchun 12V signal chizig'ini kerak bo'lganda pastroq torting.

Men ham Rx uchun oddiyroq sxemani ishlab chiqdim, lekin bu tekshirilmagan, men oddiylik uchun darajali konvertorga yopishib qoldim.

5 -qadam: uni ishga tushirish

Bir marta men uzatuvchi sxemani taxtaga qo'ydim va yurak bilan, men 12 baytli (statik) simni chalg'itdim, checksumni hisobladim va arduinoga buyruq yubordim - Ajablanarlisi, displey yangilandi !!! G'alaba qozon!

Yakuniy haqiqiy sinov - bu mening arduino -ni avtobusga boshqa 2 ta nazoratchi bilan qo'shib, haqiqiy sinov uchun va, albatta, u ishladi.

Shunday qilib, endi men avtobusda o'qish va yozish imkoniyatiga ega bo'ldim, lekin buni shunchaki qila olmasdim.

Men MQTT -ni deyarli faqat o'z uyimni avtomatlashtirish uchun ishlatganim uchun, bu bir xil bo'lishi tabiiy edi. Men kodni bir necha kun davomida ACning 4 ta asosiy elementini boshqarish uchun yozdim, shuningdek, mavjud holatni o'qib chiqdim (BUSdagi boshqa modullardan).

Niyat ESP8266 modulida ishlaydigan kod edi, lekin ESP8266 104 soniyagacha past tezlikda ishlab chiqarishga qodir emasdek tuyuldi. Men Wiznet chekilgan umumiy Arduino Uno -ga qaytishim kerak edi, lekin bu qiyin emas edi, chunki mening qo'mondon panelim devorning narigi tomonida AC kontrollerlaridan birida joylashgan edi.

Kod hamma joyda biroz, lekin tushunarli bo'lishi kerak. Menda nazoratchining o'z chiqishini o'qishiga to'sqinlik qilish bilan bir qatorda, MQTT -dan konditsionerga qaytarilgan o'z nashr etilgan mavzularini takrorlash bilan bog'liq ko'p muammolar bor edi. Asosan, u cheksiz pastadir yaratadi. Oxir -oqibat, MQTT -da chop etilgandan so'ng, buferni tozalash va kodni qayta ishlashdagi kechikishlar uni tartibga keltirdi.

ACga Rx, Tx pinlari 3, 4 sifatida kodlangan, lekin agar xohlasangiz, o'zgartiring

Kod buyruqlarni nashr qilish va qabul qilish uchun tuzilgan:

ha/mod/5557/P 0/1 - Powerha/mod/5557/M 0/1/2/3/4 - Salqin rejim, Dehumidify, Fan, Auto, Heatha/mod/5557/F 0/1/2 - Fan past, med, highha/mod/5557/Z, ya'ni 1111 barcha zonalar uchun 1000da faqat 1 -zonada.

** Nazoratchidan zonalarni "0000" qilib belgilash mumkin emas, lekin agar siz qiymat chiqarsangiz, u "1000" ga qaytadi.

Kodning so'nggi versiyasini GitHub Repo -dan olish mumkin:

6 -qadam: Doimiyroq narsa

Yana bir narsa
Yana bir narsa
Yana bir narsa
Yana bir narsa

Men arduino prototip taxtasini yig'dim va nonni taxlaganimdek, uning barcha qismlarini o'rnatdim.

7 -qadam: OpenHAB konfiguratsiyasi

OpenHAB elementlari, sayt xaritasi va qoidalari uchun biriktirilgan faylga qarang

Buni IFTTT OpenHab biriktirgichi va Google Assistant/Home bilan birlashtiring, shunda sizda ovoz bilan boshqariladigan va/yoki "aqlli" konditsioner mavjud bo'lib, u deyarli har qanday sotuvda mavjud mahsulotdan ustun turadi!

8 -qadam: Xulosa

Xulosa - Agar siz bir oz eski LG kanalli split konditsionerli kambag'al ruhlardan bo'lsangiz, siz yolg'iz emassiz. Bizdan hali ham umid bor!

Umid qilamanki, bu ko'rsatma men kabi menga muhtoj bo'lgan kishini topadi. Men topa oladigan hech qanday ma'lumot yo'q ("Nik" nazorat summasidan tashqari). Men noldan boshlashim kerak edi, lekin natijadan xursand bo'ldim.

Ma'lumot men bilmaydigan darajada noaniq, lekin agar siz ham men bilan bir xil vaziyatda bo'lsangiz, men yordam berishga tayyor bo'laman.

-- Ogohlantirish / yangilash --- O'chirish moslamasi bilan AC sozlamalarini o'zgartirish mumkin bo'lsa-da, men zonani boshqarish haqida gap ketganda, u chalkash bo'lib ketayotganini ko'rdim. Men qurilmani o'chirib qo'yganimda juda ko'p sinovlarni o'tkazdim va men zonalar faol emasligini ko'rdim, lekin qurilma ishlayotganda, amortizatorlar to'liq yopilmagan ko'rinadi (lekin to'liq ochilmagan). Men qurilmani asosiy to'xtatuvchiga tikladim va bu muammoni hal qildi. Jihoz yoqilganda faqat zonalar o'zgargani uchun bu muammo bo'lmadi

Men kodni faqat asosiy blokdan emas, balki asosiy boshqaruvchidan keladigan o'zgarishlarni e'lon qilish uchun (MQTTga) yangiladim. Yana bir bor, bu muammolarga olib kelishi mumkin, chunki asosiy birlik zonalar uchun '0000' yuboradi (bu ham muammo bo'lishi mumkin edi)

Yangilangan kod, shuningdek, arduino -ning asosiy va asosiy qurilmaning bir vaqtning o'zida uzatilishiga yo'l qo'ymaslik uchun vaqt cheklovlarini ham kiritadi. Ishonchim komilki, tekshiruvchi yuborishdan oldin Xms uchun past chiziqni tortib olish kabi ma'lumotlarni jo'natishni boshlash uchun ishlatadi, lekin agar mavjud bo'lsa, men uni hali kashf qilmaganman

Men aniqladimki, asosiy qurilma har 60 soniyada ma'lumot yuboradi va bosh nazoratchi har 20 soniyada yuboradi. Kod ma'lumot paketini olganidan keyin 2 soniya ichida ma'lumotlarni uzatishni to'xtatishga harakat qiladi. Biroq, ba'zida usta va asosiy blok bir -biriga juda yaqin uzatiladi. Bu, ehtimol, yaqinda aniqlanadi.----------------------------

** Yangi birliklarda ishlashi mumkin

*** Mening tadqiqot safarlarimda topilgan ba'zi ma'lumotlar Panasonic kanalli bo'linishi xuddi shu protokoldan foydalanishi mumkinligini ko'rsatdi. YMMV.

Tavsiya: