Përmbajtje:
- Hapi 1: Dekodimi i formatit të të dhënave
- Hapi 2: Duke kërkuar më thellë
- Hapi 3: Hartimi i tij
- Hapi 4: Muri me tulla përpara
- Hapi 5: Duke e bërë të funksionojë.
- Hapi 6: Diçka më e përhershme
- Hapi 7: OpenHAB Config
- Hapi 8: Përmbledhje
Video: Hacking një ndarje të drejtuar nga LG për automatizimin e shtëpisë: 8 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
Para së gjithash - Ky nuk është një tjetër hakim i emulimit të telekomandës me rreze infra të kuqe. AC -ja ime e veçantë nuk ka ndërfaqe të përdorshme të dizajnuar për çdo lloj kontrolli tjetër përveç kontrolleve inteligjente të përfshira në mur.
Unë kam një sistem të ndarjes së kundërt të LG Ducted në shtëpinë time. Fatkeqësisht, ajo u bë në një kohë kur IoT nuk ishte e lartë në asnjë listë prodhuesish. Zbulova se kishte disa opsione për kontrollin 'master', por edhe pse njësia ishte vetëm 2 vjeç në kohën kur unë e provova për herë të parë këtë, bordet e zgjerimit ishin të padobishme dhe çmimet ishin astronomike gjithsesi. Ashtu siç ishte shtesa 'Wireless RF Remote' e cila do t'i kishte bërë gjërat shumë më të lehta, por të pamundura për t'u blerë.
Sikur të kishte qenë zgjedhja ime, nuk do të ishte një LG, por meqenëse u instalua në shtëpi kur e bleva (dhe kostoja e saj e zëvendësimit ka të ngjarë të jetë më shumë se 10 mijë dollarë) është ajo me të cilën duhet të merresha.
Qëllimi - Të jeni në gjendje të kontrolloni AC përmes MQTT për qëllime automatizimi përmes OpenHAB dhe IFTTT/Google Assistant
Hapi 1: Dekodimi i formatit të të dhënave
Unë e fillova këtë proces 4 vjet më parë, por nuk arrita shumë larg dhe nuk doja të rrezikoja të dëmtoja njësinë - Sidomos pasi pjesët për të duket pothuajse e pamundur për t'u gjetur.
Duke e hequr kontrolluesin nga muri, gjeta 3 tela për të cilat përcaktova se ishin Ground, 12v dhe "sinjal"
Tensioni i sinjalizimit në linjën e të dhënave ishte në 12v, por vura re që dukej se luhatet në multimetër (një lloj impulseje në linjë).
Unë hipa në një qark bazë për të drejtuar një izolator opto përmes kunjit të të dhënave dhe lidha anën tjetër të izolatorit opto si një hyrje në kartën e zërit të kompjuterit tim dhe mora një version të dobët të një rezultati të fushës (Figura 1).
Kjo ka të bëjë me atë që kam arritur në atë kohë - unë mund të shihja se kishte diçka atje, por nuk dija me të vërtetë se si ta "deshifroja" atë.
Meqenëse aktivizova IoT tim Machine Coffee, kisha një interes të rifilluar ta provoja përsëri me pak vendosmëri këtë herë.
I postova gjetjet e mia në forumet EEVBlog për të parë nëse dikush mund të jetë në gjendje të hedhë dritë dhe një djalë i madh i quajtur Ian më erdhi në ndihmë - Ai e paraqiti atë në një mënyrë që kishte kuptim të plotë (Figura 2)
Në thelb, rryma e të dhënave është 13 bajtë e 'serisë standarde' - 8 bit të dhënash, një bit fillimi dhe një bit ndalimi (pa barazi), por me një normë shumë të ulët baud prej 104bps.
Hapi 2: Duke kërkuar më thellë
Pra, tani që kisha një ide se si u formatuan të dhënat, më duhej një mënyrë për të qenë në gjendje t'i lexoja të dhënat në një mënyrë më dinamike.
Unë tërhoqa njërin nga kontrolluesit e mi nga muri dhe e lidha me anë të një ndërruesi të nivelit logjik në një Arduino me një skicë të thjeshtë për të lexuar 13 bajt të dhëna përmes portës seriale të softuerit të konfiguruar në 104bps dhe për ta printuar atë:
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, ** Në fakt 12 bajtë këtu
Ne kishim aksion!
Duke ndryshuar atëherë cilësimet e ndryshme në kontrollues, unë isha në gjendje të përpunoja bajtët që ndryshojnë:
168, 3, 0, 0, 0, 192, 3, 31, 0, 0, 0, 0, 248, Fan LOW168, 35, 0, 0, 0, 192, 3, 31, 0, 0, 0, 0, 248, Tifoz MED 168, 67, 0, 0, 0, 192, 3, 31, 0, 0, 0, 0, 152, Tifoz i Lartë
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, Mode FAN 168, 79, 0, 0, 0, 136, 10, 35, 0, 0, 0, 0, 249, Modaliteti AUTO 168, 67, 0, 0, 0, 136, 3, 35, 0, 0, 0, 0, 204, Modaliteti COOL 168, 83, 0, 0, 0, 136, 15, 34, 0, 0, 0, 0, 225, Modaliteti HEAT 168, 7, 0, 0, 0, 136, 15, 34, 0, 0, 0, 0, 61, Modaliteti DH
168, 15, 0, 0, 0, 136, 3, 34, 0, 0, 0, 0, 49, Temp 18 168, 15, 0, 0, 0, 136, 4, 34, 0, 0, 0, 0, 48, Temp 19 168, 15, 0, 0, 0, 136, 5, 34, 0, 0, 0, 0, 51, Temp 20 168, 15, 0, 0, 0, 136, 15, 34, 0, 0, 0, 0, 37, Temp 30
Numrat kanë më shumë kuptim kur i shikoni në binar por çfarë ka me bajtin e 13 -të ?? Allshtë kudo…
Hapi 3: Hartimi i tij
Përmes provës dhe gabimit, unë kam qenë në gjendje të përcaktoj bitët përkatës në 13 bajt të dhëna që do të më duheshin për të qenë në gjendje të transmetoja.
Hapi 4: Muri me tulla përpara
Këtu u komplikua. Kisha dy pengesa për të kapërcyer
a) Bajti i 13 -të dukej se ishte një kontroll i të dhënave që më duheshin për të punuar disi.b) Si t'i transmetoj të dhënat atëherë? Onlyshtë vetëm një tel.
Çështja 'a' doli të ishte vërtet e lehtë, por ishte rastësisht e pastër që unë arrita ta kaloja atë.
Në analizat e mia, unë isha duke kërkuar në të dhënat si: A802000000040F61000000004B A81200004004169A00000000FB A81200004004159A00000000F8 A81200004004149A00000000E5 A81200084000149C00000000E7 A83200084000149C0000000087 A85200084000149C00000000A7
Këto janë 13bajt të dhëna duke përfshirë grumbullin e kontrollit (këtu në HEX në vend të DEC).
Kur isha duke kërkuar në orakullin që është google mbi "si të ndryshosh një inxhinier të kontrollit", hasa në këtë faqe në shkëmbimin e pirgjeve me dikë tjetër që shkonte me emrin Nick duke kërkuar pothuajse të njëjtën gjë si unë, por jo vetëm kaq, ata folën në lidhje me një kondicioner dhe të dhënat e tyre ishin pothuajse të njëjta në formatin tim - A mund të jetë ??? Në të gjitha kërkimet e mia (në rreth 4 vjet), asnjë person nuk kishte postuar ndonjë informacion se si të hakonte protokollin në këto kondicionerë dhe unë rastësisht bie në rast se dikush po bën të njëjtën gjë duke kërkuar diçka pothuajse krejtësisht të palidhur? Ishte një bekim - Ai madje postoi se ai e përpunoi atë dhe zgjidhja ishte: Shtoni të gjitha bajtët e të dhënave dhe më pas XOR me "U".
Me atë në dorë e shtova atë në kodin tim për të llogaritur atë që mendova se duhet të ishte shuma e kontrollit kundrejt asaj që në të vërtetë ishte, por ishte e gjitha E KURTE !!
Siç doli, ishte disi e gabuar. Kur fillova të shikoja numrat në binar, kishte kuptim të plotë.
Përgjigja nga 'XOR me U' kthente gjithmonë 9 bit të dhëna (biti i 9 -të gjithmonë një), por pjesët e tjera kishin të drejtë. Unë thjesht hoqa bitin e 9 -të duke marrë 256 nga numri që rezulton dhe pastaj ai u përputh !!
Po të mos kishte qenë për këtë individ, unë ende mund të kruaja kokën. I urrej edhe atij, por nuk mund ta kontaktoj - ky ishte në thelb postimi i tij i vetëm në forumin e shkëmbimit të stackex. Epo, faleminderit i huaj:)
Sfida tjetër ishte bërja e një qarku që do të më lejonte të simuloja kontrolluesin ekzistues. Unë hartova skemën për qarkun e vozitjes (Pic1 dhe Pic 2), por më dukej shumë e komplikuar që të kisha nevojë ta riprodhoja atë për të marrë atë që doja. Në fund të fundit, unë tashmë po lexoja sinjalin. Zgjodha një metodë shumë më të thjeshtë - Përdorimin e arduino për të drejtuar një izolator opto për të tërhequr vijën e sinjalit 12v poshtë siç kërkohet.
Unë gjithashtu hartova një qark më të thjeshtë për Rx por kjo nuk është e testuar, përfundova duke iu përmbajtur konvertuesit të nivelit për thjeshtësi.
Hapi 5: Duke e bërë të funksionojë.
Sapo kisha qarkun e transmetimit të prerë në tavolinë, dhe me një zemër të shpejtë, grumbullova një varg (statik) prej 12 bajtësh, llogaritja shumën e kontrollit dhe i kërkova arduino të dërgonte komandën - Çuditërisht, ekrani u përditësua !!! Fito!
Testi përfundimtar aktual ishte të shtoja arduino -n time në BUS me 2 kontrolluesit e tjerë për një test të vërtetë të drejtpërdrejtë dhe me siguri, funksionoi.
Kështu që tani mund të lexoja dhe shkruaja në autobus, por thjesht më mungonte aftësia për të qenë në gjendje ta bëja atë thjesht.
Meqenëse unë përdor MQTT pothuajse ekskluzivisht për të gjithë automatizimin e shtëpisë sime, ishte e natyrshme që kjo të ishte e njëjtë. Kam shkruar kodin për disa ditë për të kontrolluar 4 elementët kryesorë të AC, duke lexuar gjithashtu statusin ekzistues (nga modulet e tjerë në BUS)
Synimi ishte që kodi të funksiononte në një modul ESP8266 megjithatë do të dukej se ESP8266 nuk është në gjendje të prodhojë një normë baud aq të ulët sa 104bps. Më duhej të kthehesha në një Arduino Uno të përgjithshëm me Wiznet ethernet, por kjo nuk ishte e vështirë, pasi rafti i komunikimit tim ishte fjalë për fjalë në anën tjetër të murit nga një nga kontrolluesit AC.
Kodi është pak a shumë kudo, por duhet të jetë i lexueshëm. Unë kisha shumë probleme me parandalimin e kontrolluesit nga leximi i prodhimit të tij, por edhe përsëritja e kodit të tij, temat e publikuara nga MQTT u kthyen në kondicioner. Në thelb, do të krijonte një lak të pafund. Në fund, disa pastrim tampon dhe vonesa në përpunimin e kodit pas publikimit në MQTT e zgjidhën atë.
Kunjat Rx, Tx në AC janë të koduar si 3, 4, por ndryshoni nëse dëshironi
Kodi është konfiguruar për të publikuar dhe pranuar komanda si të tilla:
ha/mod/5557/P 0/1 - Powerha/mod/5557/M 0/1/2/3/4 - Modaliteti Ftohës, Dehumidify, Fan, Auto, Heatha/mod/5557/F 0/1/2 - Fan i ulët, med, highha/mod/5557/Z dmth. 1111 për të gjitha zonat në 1000 për vetëm zonën 1 më.
** Nga kontrolluesi, zonat nuk mund të vendosen në '0000' megjithatë duket se nëse e lëshoni vlerën, ajo do të kthehet në '1000'.
Versioni i fundit i kodit është në dispozicion nga GitHub Repo im:
Hapi 6: Diçka më e përhershme
Mblodha një bord prototip arduino dhe i instalova të gjitha pjesët ashtu siç i kisha me bukë.
Hapi 7: OpenHAB Config
Shihni skedarin e bashkangjitur për artikujt, hartën e faqes dhe rregullat e OpenHAB
Kombinojeni këtë me lidhësin IFTTT OpenHab dhe Google Assistant/Home dhe keni një zë shumë të fuqishëm të kontrolluar dhe/ose ajër të zgjuar që tejkalon pothuajse çdo produkt komercialisht të disponueshëm!
Hapi 8: Përmbledhje
Si Përfundim - Nëse jeni një nga shpirtrat e varfër me një kondicioner të ndarë pak më të vjetër LG, nuk jeni vetëm. Ende ka shpresë për ne!
Shpresoj që ky i udhëzueshëm të gjejë dikë që ka nevojë për të aq sa unë. Në thelb NUK ka informacion që mund të gjej (përveç verifikimit nga 'Nick'). Më duhej të filloja nga e para, por jam i mahnitur me rezultatin.
Informacioni është pak i paqartë që e di, por nëse jeni në të njëjtën situatë si unë, do të jem më shumë se i gatshëm për t'ju ndihmuar.
-- Kujdes / Përditësim --- Megjithëse është e mundur të ndryshoni cilësimet në AC me njësinë Fikur, kam gjetur se kur bëhet fjalë për kontrollin e Zonës duket se ngatërrohet me të. Bëra shumë testime me njësinë e fikur dhe zbulova se zonat do të shfaqeshin si joaktive, por kur njësia po funksionon, duket se prishësit nuk janë mbyllur plotësisht (por as nuk janë hapur plotësisht). Rivendosja njësinë në ndërprerësin kryesor dhe kjo e zgjidhi çështjen. Meqenëse vetëm ndryshimi i zonave kur njësia është e ndezur, ky nuk ka qenë problem
Unë gjithashtu kam përditësuar kodin për të publikuar vetëm (në MQTT) ndryshimet që vijnë nga kontrolluesi kryesor dhe jo nga njësia kryesore. Edhe një herë, kjo mund të shkaktojë probleme sepse njësia kryesore do të dërgojë '0000' për zonat (e cila gjithashtu mund të ketë qenë problemi)
Kodi i azhurnuar gjithashtu prezanton disa kufizime kohore për të parandaluar transmetimin e arduino në të njëjtën kohë të masterit dhe njësisë kryesore. Unë jam i sigurt se ka ndoshta një metodë që kontrolluesi përdor për të nisur një dërgim të të dhënave, si tërheqja e vijës së ulët për Xms para dërgimit, por unë nuk e kam zbuluar ende nëse ka
Kam zbuluar se njësia kryesore do të dërgojë të dhëna çdo 60 sekonda dhe kontrolluesi kryesor dërgon çdo 20 sekonda. Kodi përpiqet të ndalojë dërgimin e të dhënave brenda 2 sekondave nga marrja e paketës së të dhënave. Sidoqoftë, ndonjëherë njësia kryesore dhe kryesore transmetojnë shumë afër njëri -tjetrit. Kjo ndoshta do të rafinohet më shpejt.----------------------------
** Mund të punojë në njësi më të reja
*** Disa informacione të gjetura në udhëtimet e mia kërkimore treguan se ndarja e kanalit Panasonic mund të përdorë të njëjtin protokoll. YMMV.
Recommended:
Si të bëni një shtëpi të zgjuar duke përdorur modulin e stafetës së kontrollit Arduino - Idetë për automatizimin e shtëpisë: 15 hapa (me fotografi)
Si të bëni një shtëpi të zgjuar duke përdorur modulin e stafetës së kontrollit Arduino | Idetë e automatizimit të shtëpisë: Në këtë projekt të automatizimit të shtëpisë, ne do të hartojmë një modul të zgjuar të stafetës në shtëpi që mund të kontrollojë 5 pajisje shtëpiake. Ky modul stafetë mund të kontrollohet nga celulari ose smartphone, telekomanda IR ose telekomandë, ndërprerës manual. Kjo stafetë e zgjuar gjithashtu mund të ndiejë r
Moduli i kontrollit 4CH i kontrolluar nga WI-Fi për automatizimin e shtëpisë: 7 hapa (me fotografi)
Moduli i stafetës i kontrolluar me Wi-Fi 4CH për automatizimin e shtëpisë: Unë kam përdorur shumë WI-FI bazuar në çelsat e fikur më parë. Por ato nuk përshtaten me Kërkesën time. Kjo është arsyeja pse doja të ndërtoja të miat, të cilat mund të zëvendësojnë prizat normale të Ndërprerësit të Murit pa asnjë modifikim. Çipi ESP8266 është i aktivizuar me Wifi
Një mënyrë jashtëzakonisht e thjeshtë për të filluar me automatizimin e shtëpisë duke përdorur module DIY: 6 hapa
Një mënyrë jashtëzakonisht e thjeshtë për të filluar me automatizimin e shtëpisë duke përdorur module DIY: Unë u befasova këndshëm kur vendosa të përpiqem të shtoj disa sensorë DIY në asistentin e shtëpisë. Përdorimi i ESPHome është jashtëzakonisht i thjeshtë dhe në këtë postim, ne do të mësojmë se si të kontrollojmë një kunj GPIO dhe gjithashtu të marrim temperaturë & të dhëna për lagështinë nga një wireless wireless
Ndërtimi i pajisjeve Homie për IoT ose Automatizimin e Shtëpisë: 7 hapa (me fotografi)
Ndërtimi i pajisjeve Homie për IoT ose Automatizimin e Shtëpisë: Ky udhëzues është pjesë e serisë sime të Automatizimit të Shtëpisë DIY, shikoni artikullin kryesor " Planifikimi i një Sistemi të Automatizimit të Shtëpisë DIY ". Nëse nuk e dini ende se çfarë është Homie, hidhini një sy homie-esp8266 + homie nga Marvin Roger. Ka shumë sen
Sistemi i lirë, i lehtë, i kontrolluar nga interneti për automatizimin e shtëpisë: 5 hapa (me fotografi)
Sistemi i lirë, i lehtë, i kontrolluar nga interneti për automatizimin e shtëpisë: Nëse keni kafshë shtëpiake/fëmijë dhe keni nevojë t'i ushqeni ose t'i rrahni përmes internetit, ky sistem mund të jetë i dobishëm për ju. Shtë një mënyrë shumë e lehtë dhe e lirë për të kontrolluar motorët, LED -të, etj. Në shtëpi nga çdo kompjuter i lidhur me uebin. Gjithçka që nevojitet është një Webc