Мазмуну:

XiaoMi Vacuum + Amazon Button = Dash тазалоо: 5 кадам (Сүрөттөр менен)
XiaoMi Vacuum + Amazon Button = Dash тазалоо: 5 кадам (Сүрөттөр менен)

Video: XiaoMi Vacuum + Amazon Button = Dash тазалоо: 5 кадам (Сүрөттөр менен)

Video: XiaoMi Vacuum + Amazon Button = Dash тазалоо: 5 кадам (Сүрөттөр менен)
Video: Xiaomi Mi Portable (Mini) Vacuum Cleaner: Review & Test 2024, Ноябрь
Anonim
XiaoMi Vacuum + Amazon Button = Даш тазалоо
XiaoMi Vacuum + Amazon Button = Даш тазалоо

Бул көрсөтмө XiaoMi вакуумун көзөмөлдөө үчүн запастагы Amazon Dash баскычтарын кантип колдонууну түшүндүрөт.

Менде Amazon Buttons топтому бар болчу, алар $ 1 болгондон бери тегеренип жатты, мен аларды колдоно алган жокмун. Бирок жаңы робот чаң соргучту алгандан кийин, бул баскычтарды вакуумду башкаруу катары колдонуу абдан ыңгайлуу болот деп чечтим.

Ziploc баскычын басыңыз, ал уктоочу бөлмөнү соруп алат.

Glad баскычын басыңыз, ал конок бөлмөсүн соруп алат.

Фиджини басыңыз.. сизде идея бар.

Бул долбоор интернеттен көптөгөн бузукулуктарды камтыйт. Мен көптөгөн адамдардын кылган ишин абдан баалайм жана алардын изилдөөлөрүнө таянып, менин кичинекей карама -каршылыгым менен бөлүшүшүм керек деп ойлойм.

Жоопкерчиликтен баш тартуу: Төмөндөгү кадамдардын баары өз тобокелиңизде! Эгер кадамдарды кылдаттык менен аткарсаңыз, бир нерсеге зыян келтирүү мүмкүнчүлүгү өтө аз. Бирок андай болбойт! Жана мен бул үчүн эч кандай жоопкерчиликти албайм. BTW бардык кадамдарын артка кайтарса болот, андыктан кепилдикти бузуу болбойт. Бирок, албетте - YMMV

Негизги принцип - роутердеги баскычты басып, Амазонкадан товар сатып алуунун ордуна Вакуумга вебхукту жөнөтөбүз.

Эмне керек болот:

  • DHCPди көзөмөлдөгөн, скрипттерди иштете алган жана get | пост сурамдарын аткара ала турган колдонуучунун микрофону менен роутер. Mikrotik, DD-WRT, OpenWRT, помидор ж.
  • XiaoMi Vacuum. v1 же v2
  • Amazon Dash баскычтары

Тактап айтканда, мен колдонгон:

  • Mikrotik
  • XiaoMi v2 Vacuum Roborock S50
  • Amazon Dash баскычтарынын топтому

Мына процедурасы

  1. Вакуумду тамырлап алабыз
  2. Вакуумда тамыры астында керектүү пакеттерди орнотуңуз жана конфигурациялаңыз
  3. Amazon Dash баскычын орнотуңуз
  4. Роутерди орнотуу баскычтын өтүнүчүн кармоо жана вакуумду башкаруу

Эскертүү: Чындыгында, аны көзөмөлдөө үчүн боштукту жок кылуунун кажети жок. Эгерде сиздин тилде (же кайсы жерде болбосун) python же phpди иштете турган башка сервер болсо, анда аларга вебхуктарды багыттай аласыз. Бирок мен андай эмесмин. Мен аны тыкан жана боштуктун өзүндө сактап калгым келди. Ошентип, эгер менин мамилем сизге жакпаса, менимче, бул окуудан өзүңүздүн орточо сервериңизди кантип орнотуу керек экенин түшүнө аласыз. Түз эле 2 -пунктка өтүңүз.

Макул мына кеттик…

1 -кадам: Токенди алуу жана тамыр соргуч

Токенди жана тамыр соргучту алыңыз
Токенди жана тамыр соргучту алыңыз
Токенди жана тамыр соргучту алыңыз
Токенди жана тамыр соргучту алыңыз
Токенди жана тамыр соргучту алыңыз
Токенди жана тамыр соргучту алыңыз
Токенди жана тамыр соргучту алыңыз
Токенди жана тамыр соргучту алыңыз

Бардык программалык камсыздоо, программалык камсыздоо жана тамырлоо боюнча көрсөтмөлөр алынган: https://4pda.ru/forum/index.php? Showtopic = 881982

Эгерде сизде Windowsтан башка OS жана Androidден башка телефон болсо (nox менен виртуалды колдоно аласыз), жогорудагы шилтемени ээрчип (Google Translateти колдонуңуз) жана башка нускамаларды окуңуз, антпесе бул жердеги нускаманы аткарыңыз.

Тамырыбызды жок кылуу үчүн боштуктан ip дарегин жана токенди алышыбыз керек.

7z.

Сураныч, Android'ге Vevs тартып Mihome орнотуу. Сиз Архивден бирөөнү колдонсоңуз болот же эгерде бул көрсөтмө эскирген болсо, анда анын акыркы версиясын анын веб-сайтынан (https://www.kapiba.ru/2017/11/mi-home.html) же анын Google Drive'ынан (https://drive.google.com/drive/folders/1IyjvIWiGaeD7iLWWtBlb6jSEHTLg9XGj)

Сиздин MiHomeго кириңиз. Сиз China Mainlandды эсепке коюп, ага Вакуумду кошушуңуз керек).

Вакуум сөлөкөтүнүн Орнотууларын таптаңыз (Жогорку оң жактагы үч чекит) Жалпы Орнотуулар Тармак маалыматы

Win-mirobo/win-mirobo.iniде ip дарегин жана энбелгини толтуруңуз

Терезелерде брандмауэрди өчүрүү. Win-mirobo.bat иштетип, камтылган программаны жаркылдатыңыз.

!!!!!!!!! V1 v1 Vacuum үчүн жана V2 v2 Vacuum үчүн (Roborock S50) !!!!!!! Эгерде сиз туура эмес FW жарк эттирсеңиз - 4pda шилтемесине өтүңүз (бул кадамда биринчи) жана кантип калыбына келүү керектигин окуңуз.

Arter Vacuum кайра жүктөлөт - сиз вакуумду ийгиликтүү тамырлап алдыңыз, эми ага ssh аркылуу кире аласыз!

SSH ага (Putty менен) тазалагыч/тазалагыч менен. Passwd менен сырсөзүңүздү өзгөртүңүз

2 -кадам: Вакуумдагы Тамыр астындагы Керектүү Топтомдорду Орнотуу жана Конфигурациялоо

Бөлмө

WebHooks ордуна MiVacuum ар XiaoMi IoT түзмөктөрүндөй эле miio протоколун колдонот. Ошентип, биз вебхуктарды түшүнүү үчүн аны үйрөнүшүбүз керек. Бизге вебхукту кармап, аны түзмөккө miio протоколуна которо ала турган орточо адам керек. Python китепканасы бар (https://github.com/rytilahti/python-miio), бирок биз аны вакуумда колдоно албайбыз, анткени вакуумда Python 3.5+ үчүн орун жетишсиз.

Бирок, бактыга жараша, PHP-miio китепканасы бар (https://github.com/skysilver-lab/php-miio), бул салыштырмалуу абдан жеңил жана биз муну колдонобуз (btw ал жогорудагы win-miroboдо да колдонулат)). Вебхукту кармоочу - бул вебхуктун демону (https://github.com/adnanh/webhook), ал кирүүчү веб -хукка php үчүн скрипт иштетет.

Вакуумга SSH (Putty менен):

#Тамыр астында кыл. Ооба, мен бул коопсуз эмес экенин билем..whatevs.sudo su #Бул жерде биз бардык керектүү нерселерди орнотобуз apt-get install -y wget php5-cli nano #Калганынын баары бара жатат /cd /opt

#Php-miio жүктөп алыңыз

#Githubдагы акыркы жаңылыктарды текшериңиз. Төмөндөгү линиялар акыркы wget боюнча https://github.com/skysilver-lab/php-miio/archive/v.0.2.6.tar.gz tar -xzvf v.0.2.6.tar.gz mv php- miio-v.0.2.6 php-miio rm -f v.0.2.6.tar.gz

#Webhooks демонун жүктөп алыңыз

#Githubдагы акыркы жаңылыктарды текшериңиз. Төмөнкү линия акыркы wget боюнча https://github.com/adnanh/webhook/releases/download/2.6.8/webhook-linux-arm.tar.gz tar -xzvf webhook-linux-arm.tar.gz mv webhook-linux-arm webhook rm -f webhook-linux-arm.tar.gz

#Webhook үчүн жөндөөлөрдү түзүңүз

nano /opt/webhook/hooks.json #Input hooks.json мазмунун бул жерге. Шыбакты оң баскыч менен чыкылдатыңыз. #Ctr+X сактоо Y.

#Php-miio чалуу үчүн скрипт түзүңүз

nano /opt/webhook/mirobo.sh #Бул жерге mirobo.sh мазмунун киргизиңиз. Шыбакты оң баскыч менен чыкылдатыңыз. # Ctr +X Save Y. # Аткарыла турган chmod +x /opt/webhook/mirobo.sh кылыңыз

#Авто баштоо скриптин түзүп, конфигурацияларды жаңыртыңыз

echo "/opt/webhook/webhook -hooks /opt/webhook/hooks.json" >> /etc/init.d/webhook.sh chmod ugo+x /etc/init.d/webhook.sh update -rc.d webhook.sh демейки

#Системаны кайра жүктөө

кайра жүктөө

Кайра жүктөөдөн кийин браузердеги жөндөөлөрүңүздү текшериңиз:

192.168.your.ip: 9000/hooks/mirobo? method = find_me

ыкма - буйрук

параметрлер - параметрлер

Бардык ыкмаларды (буйруктарды) жана параметрлерди бул жерден таба аласыз:

github.com/marcelrv/XiaomiRobotVacuumProtocol

Hooks.json мазмуну

Бул жердеги токенди боштуктан токенге алмаштырыңыз.

Жергиликтүү тармагыңыз үчүн IP-ак тизмесин тууралаңыз же илгичтериңизди башка жактан иштетсеңиз, толугу менен алып салыңыз (кооптуу).

[{"id": "mirobo", "execute-command": "/opt/webhook/mirobo.sh", "command-working-directory": "/opt/webhook", "answer-message": "Аткарылууда mirobo сценарийи "," камтыйт-команда-чыгарууга-жооп ": false," pass-environment-to-command ": [{" source ":" string "," envname ":" token "," name ": "your-token-here"}], "command-to-pass": [{"source": "url", "name": "method"}, {"source": "url", "name ":" params "}]," trigger-rule ": {" match ": {" type ":" ip-whitelist "," ip-range ":" 192.168.1.0/24 "}}}}]

mirobo.sh файлынын мазмуну. Жөн эле көчүрүү-чаптоо. Эки гана сап бар (3 эмес).

#!/bin/bashphp /opt/php-miio/miio-cli.php --ip '127.0.0.1' --bindip '127.0.0.1' --token $ token --sendcmd '{"id":' $ RANDOM ', "method": "' $ 1 '", "params": [' $ 2 ']}'

3 -кадам: Amazon Dash баскычтарын орнотуңуз

Amazon колдонмоңузду ачыңыз. Dash түзмөктөрүнө өтүңүз. Адаттагыдай эле жаңы сызык баскычын кошуңуз. Продуктту тандоодо ЭМЕС. Колдонмону жабыңыз. Сиз бүттүңүз.

4 -кадам: Маршрутизаторду баскычтын талабын кармоо жана MiVacuum көзөмөлдөө

Маршрутизаторду баскычтын талабын кармоо жана MiVacuum көзөмөлдөө үчүн
Маршрутизаторду баскычтын талабын кармоо жана MiVacuum көзөмөлдөө үчүн
Маршрутизаторду баскычтын талабын кармоо жана MiVacuum көзөмөлдөө үчүн
Маршрутизаторду баскычтын талабын кармоо жана MiVacuum көзөмөлдөө үчүн
Маршрутизаторду баскычтын талабын кармоо жана MiVacuum көзөмөлдөө үчүн
Маршрутизаторду баскычтын талабын кармоо жана MiVacuum көзөмөлдөө үчүн

Бул төмөнкүдөй иштейт.

Кнопка басылганда, ал сиздин тармагыңыз менен байланышып турат жана dhcp серверинен анын дарегин дайындоону суранат. Биз бул өтүнүчтү кармап, боштукка веб -хукту аткарышыбыз керек. Кошумча коопсуздук чарасы катары биз Amazon менен байланышты бөгөп коёбуз, андыктан Amazon биздин баскычты басканыбызды жана программалык камсыздоону жаңыртууну же башка нерсени басууга мүмкүнчүлүгүбүз жок экенин билбейт.

Көбүнчө мен WinBox колдоном, бирок кээде терминал оңой болот.

#Бөгөттөө үчүн дарек тизмеси бар брандмауэрди түшүрүү эрежесин түзүңүз

/ip firewall чыпкасы кошуу чынжыры = алдыга src-address-list = blockdash action = комментарий калтыруу = "Amazon Dash'ти таштоо"

Андан кийин биз ар бир баскыч үчүн dhcp ижара эрежесин түзүшүбүз керек. Winboxто жасоо абдан оңой.

DHCP Server - Ижаралар

Биз баскычты басабыз, жаңы ижара пайда болот. Биз аны статикалык катары чыкылдатып, даректер тизмесин 'blockdash' деп коебуз, ижара убактысын 5 секундага койобуз (ижаранын мөөнөтү кийинки пресске чейин бүтөт) жана Mac дарегин кийинчерээк көчүрөбүз.

#Бул буйрук шилтеме үчүн гана, эгер сиз winboxко ижара кошсоңуз, аны өткөрүп жибериңиз.

/ip dhcp-server leasing add address-list = blockdash mac-address = XXXXXXXXXX address = 192.168.x.x ижара убактысы = 5с

Эми биз сценарийди көрсөтүшүбүз керек.

DHCP өтмөгүн ачыңыз жана dhcp сервериңизде ижара скрипти катары 'myLeaseScript' кошуңуз.

Эми Система - Скрипттерди ачыңыз жана окуу, тест уруксаттары менен 'myLeaseScript'ти кошуңуз.

MyLeaseScriptтин мазмуну:

#Script эки жолу ижарага (1) жана релизге (0) чакырылат: if ($ leaseBound = 1) do = { /log info ("myLeaseScript иштеп жатат. Кимдир бирөө Даш баскычын баскан?")

Чалуу үчүн бардык баскычтарыңыздын жана url тизмегиңиз

: жергиликтүү баскычтар {"XX: XX: XX: XX: XX: XX" = "https://192.168.your.ip: 9000/hooks/mirobo? method = app_zoned_clean¶ms = [19300, 21000, 21200, 23800, 1] "; "YY: YY: YY: YY: YY: YY" = "https://192.168.your.ip: 9000/hooks/mirobo? Method = app_zoned_clean¶ms = [24000, 21500, 26100, 22900, 1]"; "ZZ: ZZ: ZZ: ZZ: ZZ: ZZ" = "https://192.168.your.ip: 9000/hooks/mirobo? Method = app_zoned_clean¶ms = [21400, 24200, 22700, 26200, 1], [24000, 21500, 26100, 22900, 1] "; "AA: AA: AA: AA: AA: AA" = "https://whateveryouwant.com:9000/other?argument=and_values"; };

#Басылган баскычты жана url дарегин текшериңиз

: foreach mac, url in = $ button do = {: if ($ mac = $ leaseActMAC) do = { /log info ("Pressed". $ mac. "button") /tool get keep-result = no mode = https http-method = пост url = $ url}}}

Эми сиз Amazon Dash Button баскычында тазалоону автоматташтырдыңыз. Көңүл ачуу

Көңүл буруңуз: Webhooksту шифрсиз жөнөтүү өтө кооптуу. Webhook шифрлөөнү колдоно алат, бирок мен аны иштетүүгө аракет кылдым, эч качан болгон эмес. Мен муну жергиликтүү тармагымда колдонгондуктан, мен анча деле тынчсызданбайм. Эгер сиз аны интернетте колдонуп, Google Жардамчысы менен IFTTTге кошулууну кааласаңыз, бул фактыга көңүл буруңуз! Менин ишимде крипто ийгиликсиздигинин себеби эмнеде болгонун билбейм. Мен кол койгон күбөлүктөр, мен letsencrypt тарабынан берилген. NATv топтому менен өтө татаал тармак, мен ipv6 менен сабадым. Бирок мага webhooks сертификаттар менен абдан начар иштейт окшойт жана чындыгында абдан начар документтештирилген. Жана IFTTT ipv6 менен иштебейт окшойт. Колдон келишинче аракет кылдым, бирок болбой калды. Сизге мындан да жакшы ийгилик болушу мүмкүн. Пост жазууну унутпаңыз.

upd: Менде аны шифрлөөсүз кантип коопсуз кылуу керек деген ой бар. Сиз аткаргыңыз келген ар бир иш үчүн бир нече сценарий түзөсүз. Сиз mirobo.sh файлын вебхукка жөнөтүлгөн параметр менен скриптке чалуу үчүн өзгөртө аласыз. clean_bedroom. Дал ушул. Илгичти эң көп колдонгон адам - бул сиздин уктоочу бөлмөнү кайра -кайра тазалоо …)) Мен муну кылгандан кийин мен инструкцияны жаңыртам

5 -кадам: Картаңызды кантип түзөсүз

Картаңызды кантип түзсөңүз болот
Картаңызды кантип түзсөңүз болот

MiHome колдонмоңузда толук картаңыз даяр болгондон кийин, 'app_goto' буйругу аркылуу вакуумду белгилүү жерге жөнөтүңүз.

Жөнөтүлгөн жана базасы бар толук картанын скриншотун жасаңыз. Вакуумду кайра жүктөөдөн кийинки базалык чекит - бул [25500, 25500] Бул кубаттоо базасынын орду эмес, бирок эгер сиз вакуумду кубаттоо базасында кайра жүктөсөңүз, анда заряддык базанын позициясы 25500, 25500 болот. Демек, белгилүү позициядан жөнөтүлгөн жана сиз алган скриншот менен картаны каалаган CAD программасында түзө аласыз. Мен бекер QCAD колдондум.

Сүрөттү сеткага орноткондон кийин, мен зонанын башталышын жана аяктоо чекитин өлчөө үчүн бөлмө боюнча сызыкты колдоном.

Сунушталууда: