
Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59

Visų pirma - tai nėra dar vienas infraraudonųjų spindulių nuotolinio valdymo pulto emuliacijos įsilaužimas. Mano konkrečiame kintamajame nėra tinkamos sąsajos, skirtos bet kokiam valdymui, išskyrus pridėtus sieninius išmaniuosius valdiklius.
Mano namuose yra „LG Ducted“atvirkštinio padalijimo sistema. Deja, jis buvo sukurtas tuo metu, kai daiktų internetas nebuvo aukštas bet kurio gamintojo sąraše. Aš sužinojau, kad jis turi keletą „pagrindinio“valdymo galimybių, tačiau, nors pirmą kartą bandydamas įrenginį, jam buvo tik 2 metai, išplėtimo plokštės buvo netobulos, o kainos vistiek buvo astronominės. Kaip ir „Wireless RF Remote“priedas, kuris būtų daug palengvinęs, bet neįsigijęs.
Jei tai būtų mano pasirinkimas, tai nebūtų LG, bet kadangi jis buvo įdiegtas namuose, kai jį nusipirkau (o jo pakeitimo kaina greičiausiai viršytų 10 000 USD), tai turėjau susidoroti.
Tikslas - Gebėti valdyti kintamąją srovę per MQTT automatizavimo tikslais per „OpenHAB“ir IFTTT/„Google“padėjėją
1 žingsnis: iššifruokite duomenų formatą


Aš pradėjau šį procesą prieš 4 metus, bet labai toli nenuvažiavau ir nenorėjau rizikuoti sugadinti įrenginį - juolab, kad jo dalių rasti beveik neįmanoma.
Nuplėšdamas valdiklį nuo sienos, radau 3 laidus, kuriuos nustatiau kaip įžeminimą, 12v ir „signalą“
Signalinė įtampa duomenų linijoje buvo 12 voltų, tačiau pastebėjau, kad ji, atrodo, svyruoja multimetre (tam tikri impulsai linijoje).
Aš duona įlipau į pagrindinę grandinę, kad galėčiau valdyti optinį izoliatorių per duomenų kaištį, ir prijungiau kitą opto izoliatoriaus pusę kaip įvestį kompiuterio garso plokštėje ir gavau prastą apimties išvesties versiją (1 pav.).
Tai maždaug tiek, kiek aš tuo metu gavau - mačiau, kad ten kažkas yra, bet tikrai nežinojau, kaip jį „iššifruoti“.
Nuo tada, kai įjungiau kavos aparato IoT, šį kartą norėjau dar kartą pabandyti tai padaryti šiek tiek ryžtingiau.
Aš paskelbiau savo išvadas EEVBlog forumuose, norėdamas sužinoti, ar kas nors galėtų nušviesti, ir man į pagalbą atėjo puikus vaikinas Ianas - jis išdėstė tai visiškai suprantama (2 pav.)
Iš esmės duomenų srautas yra 13 baitų „standartinio serijinio“- 8 duomenų bitai, vienas pradžios bitas ir vienas sustojimo bitas (be pariteto), tačiau LABAI žemas 104 bitų perdavimo greitis.
2 žingsnis: atrodykite giliau

Taigi dabar, kai turėjau idėją, kaip buvo suformatuoti duomenys, man reikėjo būdo, kad galėčiau dinamiškiau skaityti duomenis.
Aš ištraukiau vieną iš savo valdiklių nuo sienos ir per loginį lygio perjungiklį prijungiau jį prie „Arduino“su paprastu eskizu, kad galėčiau nuskaityti 13 baitų duomenų per programinės įrangos nuoseklųjį prievadą, sukonfigūruotą esant 104 bps, ir atsispausdinti:
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, ** Tiesą sakant, čia yra 12 baitų
Turėjome veiksmų!
Tada pakeisdamas įvairius valdiklio nustatymus galėjau išsiaiškinti, kokie baitai keičiasi:
168, 3, 0, 0, 0, 192, 3, 31, 0, 0, 0, 0, 248, ventiliatorius LOW168, 35, 0, 0, 0, 192, 3, 31, 0, 0, 0, 0, 248, ventiliatorius MED 168, 67, 0, 0, 0, 192, 3, 31, 0, 0, 0, 0, 152, ventiliatorius AUKŠTAS
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, režimas FAN 168, 79, 0, 0, 0, 136, 10, 35, 0, 0, 0, 0, 249, režimas AUTO 168, 67, 0, 0, 0, 136, 3, 35, 0, 0, 0, 0, 204, režimas COOL 168, 83, 0, 0, 0, 136, 15, 34, 0, 0, 0, 0, 225, HEAT režimas 168, 7, 0, 0, 0, 136, 15, 34, 0, 0, 0, 0, 61, DH režimas
168, 15, 0, 0, 0, 136, 3, 34, 0, 0, 0, 0, 49, temperatūra 18 168, 15, 0, 0, 0, 136, 4, 34, 0, 0, 0, 0, 48, temperatūra 19 168, 15, 0, 0, 0, 136, 5, 34, 0, 0, 0, 0, 51, temperatūra 20 168, 15, 0, 0, 0, 136, 15, 34, 0, 0, 0, 0, 37, 30 temperatūra
Skaičiai yra daug prasmingesni, kai žiūrite į juos dvejetainiu būdu, bet kas yra su 13 baitu? Visur yra…
3 žingsnis: nustatykite žemėlapį

Bandymų ir klaidų dėka man pavyko nustatyti atitinkamus bitus 13 baitų duomenų, kuriuos man reikės perduoti.
4 žingsnis: plytų siena į priekį



Čia ir tapo sudėtinga. Turėjau įveikti dvi kliūtis
a) 13 baitas atrodė kaip kontrolinė duomenų, kuriuos man reikėjo kažkaip išsiaiškinti, suma. b) Kaip tada perduoti duomenis? Tai tik vienas laidas.
Klausimas „a“pasirodė tikrai lengvas, tačiau tai atsitiko visiškai atsitiktinai.
Bandydama aš žiūrėjau į tokius duomenis:
Tai yra 13 baitų duomenų, įskaitant kontrolinę sumą (čia HEX, o ne DEC).
Kai aš ieškojau „Google“orakulo „kaip pakeisti kontrolinę sumą“, aš aptikau šį puslapį, susijusį su keitimu, ir kažkas kitas, vardu Nickas, klausė beveik to paties, kaip ir aš, bet ne tik, kad jie kalbėjo apie oro kondicionierių ir jų duomenys buvo beveik identiško formato kaip mano - ar gali būti ??? Per visą mano paiešką (per maždaug ketverius metus) ne vienas asmuo nebuvo paskelbęs jokios informacijos apie tai, kaip nulaužti šių oro kondicionierių protokolą, ir aš tiesiog atsitiktinai užklydau, kai kažkas daro tą patį, ieškodamas beveik visiškai nesusijusių dalykų? Tai buvo palaima - jis netgi paskelbė, kad tai išsiaiškino, ir sprendimas buvo toks: pridėkite visus baitus duomenų ir tada XOR su „U“.
Turėdamas tai rankoje, pridėjau jį prie savo kodo, norėdamas apskaičiuoti, kokia, mano manymu, turėtų būti kontrolinė suma, palyginti su tuo, kas iš tikrųjų buvo, bet viskas buvo neteisinga !!
Kaip paaiškėja, tai buvo kažkaip neteisinga. Kai pradėjau žiūrėti skaičius dvejetainiu būdu, tai buvo visiškai prasminga.
Atsakymas iš „XOR su U“visada grąžino 9 bitus duomenų (9 -asis bitas visada buvo vienas), tačiau kiti bitai buvo teisingi. Aš tiesiog pašalinau 9 bitą, paimdamas 256 iš gauto skaičiaus ir tada jis atitiko !!
Jei ne šis asmuo, aš vis tiek krapščiau galvą. Skrybėlės jam taip pat, bet negaliu su juo susisiekti - tai iš esmės buvo vienintelis jo pranešimas stackexchange forume. Na, ačiū, nepažįstamasis:)
Kitas iššūkis buvo sukurti grandinę, kuri leistų man imituoti esamą valdiklį. Aš suplanavau pavaros grandinės schemą („Pic1“ir „Pic 2“), bet man atrodė pernelyg sudėtinga, kad turėčiau ją atkurti, kad gaučiau tai, ko norėjau. Galų gale aš jau skaičiau signalą. Aš pasirinkau daug paprastesnį metodą - naudojant „arduino“vairuoti opto izoliatorių, kad prireikus būtų sumažinta 12 V signalo linija.
Aš taip pat suprojektavau paprastesnę „Rx“grandinę, tačiau tai nėra išbandyta, todėl paprastumo dėlei prilipau prie lygio keitiklio.
5 žingsnis: kad jis veiktų
Kai man buvo perduota perdavimo grandinė, ir aš, lenktyniaujanti širdimi, sukūriau (statinę) 12 baitų eilutę, apskaičiavau kontrolinę sumą ir paprašiau arduino atsiųsti komandą - nuostabu, ekranas atnaujintas !!! Laimėk!
Paskutinis tikrasis bandymas buvo pridėti mano arduino prie autobuso kartu su kitais 2 valdikliais, kad būtų galima atlikti tiesioginį testą, ir tikrai, jis veikė.
Taigi dabar galėjau skaityti ir rašyti į autobusą, bet man tiesiog trūko sugebėjimo tai padaryti paprasčiausiai.
Kadangi MQTT naudoju beveik vien tik savo namų automatizavimui, buvo natūralu, kad tai bus tas pats. Aš parašiau kodą per kelias dienas, kad galėčiau valdyti 4 pagrindinius kintamosios srovės elementus, taip pat perskaičiau esamą būseną (iš kitų BUS modulių)
Tikslas buvo, kad kodas veiktų ESP8266 modulyje, tačiau atrodo, kad ESP8266 nesugeba sukurti tik 104 bitų spartos. Turėjau grįžti prie bendro „Arduino Uno“su „Wiznet Ethernet“, bet tai nebuvo sunku, nes mano komiksų lentynėlė tiesiogine to žodžio prasme buvo kitoje sienos pusėje nuo vieno iš kintamosios srovės valdiklių.
Kodas yra šiek tiek visur, bet turėtų būti įskaitomas. Turėjau daug problemų neleisdamas valdikliui skaityti savo išvesties, bet ir pakartoti savo paties paskelbtą kodą, gautą iš MQTT atgal į oro kondicionierių. Iš esmės tai sukurtų begalinę kilpą. Galų gale, kai kurie buferio išvalymai ir vėlavimas apdoroti kodą po paskelbimo MQTT jį sutvarkė.
Rx, Tx kištukai prie kintamosios srovės yra koduojami kaip 3, 4, bet pakeiskite, jei norite
Kodas sukonfigūruotas skelbti ir priimti komandas kaip tokias:
ha/mod/5557/P 0/1 - „Powerha/mod“/5557/M 0/1/2/3/4 - režimas „Cool“, sausinimas, ventiliatorius, automatinis, „Heatha“/mod/5557/F 0/1/2 - Ventiliatorius žemas, vidutinis, aukštas/mod/5557/Z, ty 1111 visoms zonoms, esant 1000, tik 1 zonai įjungus.
** Iš valdiklio zonų negalima nustatyti į „0000“, tačiau atrodo, kad jei išrašysite vertę, ji grįš į „1000“.
Naujausią kodo versiją galite rasti mano „GitHub Repo“:
6 žingsnis: kažkas pastovesnio


Aš surinkau „arduino“prototipo lentą ir sumontavau visas dalis, kai turėjau jas apkalti duona.
7 veiksmas: „OpenHAB Config“
Žiūrėkite pridėtą „OpenHAB“elementų, svetainės schemos ir taisyklių failą
Sujunkite tai su IFTTT „OpenHab“įrišimu ir „Google Assistant/Home“ir turėsite labai galingą balsu valdomą ir (arba) „išmanųjį“oro kondicionierių, kuris pranoksta beveik kiekvieną parduodamą produktą!
8 žingsnis: Santrauka
Apibendrinant - jei esate viena iš vargšų sielų, turinti šiek tiek senesnį LG ortakio oro kondicionierių, nesate vienas. Mums dar yra vilties!
Tikiuosi, kad ši pamoka suras žmogų, kuriam to reikia taip pat, kaip man. Iš esmės nėra jokios informacijos, kurią galėčiau rasti (išskyrus „Nick“kontrolinę sumą). Turėjau pradėti nuo nulio, bet esu labai patenkinta rezultatu.
Žinau, kad informacija yra šiek tiek miglota, bet jei esate tokioje pačioje situacijoje kaip aš, aš būsiu labiau pasirengęs padėti.
- Atsargiai / atnaujinti --- Nors galima keisti kintamosios srovės nustatymus, kai įrenginys išjungtas, pastebėjau, kad, kai kalbama apie zonos valdymą, atrodo, kad jis su juo sutrinka. Atlikau daug bandymų, kai įrenginys buvo išjungtas, ir sužinojau, kad zonos bus rodomos kaip neaktyvios, tačiau kai įrenginys veikia, atrodo, kad sklendės nėra visiškai uždarytos (bet ir ne visiškai atidarytos). Iš naujo nustatiau įrenginį prie pagrindinio pertraukiklio ir tai išsprendė problemą. Kadangi zonos keičiamos tik įjungus įrenginį, tai nebuvo problema
Aš taip pat atnaujinau kodą, kad paskelbčiau tik (MQTT) pakeitimus, kurie gaunami iš pagrindinio valdiklio, o ne iš pagrindinio įrenginio. Dar kartą tai gali sukelti problemų, nes pagrindinis įrenginys atsiųs „0000“zonoms (o tai taip pat galėjo būti problema)
Atnaujintas kodas taip pat įveda tam tikrus laiko apribojimus, siekdamas neleisti „arduino“perduoti pagrindinio ir pagrindinio įrenginio tuo pačiu metu. Esu tikras, kad greičiausiai yra metodas, kurį valdiklis naudoja duomenų siuntimui inicijuoti, pvz., Prieš siunčiant Xms žemą liniją, bet dar neatradau, jei yra
Aš sužinojau, kad pagrindinis įrenginys siunčia duomenis kas 60 sekundžių, o pagrindinis valdiklis - kas 20 sekundžių. Kodas bando sustabdyti duomenų siuntimą per 2 sekundes nuo duomenų paketo gavimo. Tačiau kartais pagrindinis ir pagrindinis įrenginys perduoda labai arti vienas kito. Greičiausiai tai bus patikslinta greičiau.----------------------------
** Gali dirbti su naujesniais įrenginiais
*** Kai kuri informacija, rasta mano tyrimų kelionėse, parodė, kad „Panasonic“ortakių padalijimas gali naudoti tą patį protokolą. YMMV.
Rekomenduojamas:
Kaip padaryti daiktų internetu pagrįstą namų automatizavimą naudojant „NodeMCU“jutiklių valdymo relę: 14 žingsnių (su paveikslėliais)

Kaip padaryti namų automatizuotą daiktų internetu naudojant „NodeMCU“jutiklių valdymo relę: Šiame IoT pagrįstame projekte aš sukūriau namų automatizavimą su „Blynk“ir „NodeMCU“valdymo relės moduliu su grįžtamuoju ryšiu realiuoju laiku. Rankiniu režimu šį relės modulį galima valdyti iš mobiliojo telefono ar išmaniojo telefono ir rankinio jungiklio. Automatiniu režimu šis kvapas
Pradžia naudojant namų automatizavimą: „Home Assistant“diegimas: 3 veiksmai

Pradžia naudojant namų automatizavimą: „Home Assistant“diegimas: Dabar pradėsime namų automatikos seriją, kurime išmaniuosius namus, kurie leis mums valdyti tokius dalykus kaip žibintai, garsiakalbiai, jutikliai ir pan., Naudojant centrinį stebulę ir balso asistentas. Šiame įraše sužinosime, kaip
Itin paprastas būdas pradėti namų automatizavimą naudojant „pasidaryk pats“modulius: 6 žingsniai

Itin paprastas būdas pradėti naudotis namų automatizavimu naudojant „pasidaryk pats“modulius: buvau maloniai nustebintas, kai nusprendžiau prie namų asistento pridėti keletą „pasidaryk pats“jutiklių. Naudoti „ESPHome“yra labai paprasta ir šiame įraše sužinosime, kaip valdyti GPIO kaištį, taip pat gauti temperatūrą & drėgmės duomenys iš belaidžio tinklo
Pasidaryk pats įsilaužimas į savo namų automatizavimo sistemą: 7 žingsniai (su nuotraukomis)

„Pasidaryk pats“įsilaužimas į savo namų automatizavimo sistemą: namų automatizavimo sistema turėtų turėti galimybę įjungti/išjungti prietaisus, tokius kaip žibintai, ventiliatoriai, pramogų sistemos ir kt. Belaidė, tačiau nepriklausoma nuo interneto sistema, bet svarbiausia - pasidaryk pats ir atvira -šaltinis, nes noriu suprasti
Signalizacija PIR į „WiFi“(ir namų automatizavimą): 7 žingsniai (su paveikslėliais)

„Alarm PIR to WiFi“(ir namų automatizavimas): apžvalga Ši instrukcija suteiks jums galimybę peržiūrėti paskutinę datą/laiką (ir pasirinktinai laikų istoriją), kai jūsų namų automatikoje buvo suaktyvinti jūsų namų signalizacijos PIR (pasyvūs infraraudonųjų spindulių jutikliai). programinė įranga. Šiame projekte aš