Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Xiaomi Roborock inn i Homeseer (Linux)


ZoRaC

Anbefalte innlegg

På 5.12.2019 den 8.53, Kenneth skrev:


Må gjerne finne iveren etter å se på en mer native plugin for RoboRock. Har selv en S6 jeg gjerne skulle automatisert, og er ikke helt sikker på mqtt veien. 
Kjøre HS på windows og er ikke sterkt motivert av å bruke masse tid på å få noe til å funke som jeg i utgangspunktet ikke skjønner noe av :)

Har nå fått testet mine Mqtt programmer mot S6 modellen og de funker for den også! ?

Lenke til kommentar
Del på andre sider

På 30.8.2019 den 18.36, Rogerbl skrev:

Flott! Man kan også bruke iobroker til dette , de har adapter til både Roborock'en og Mqtt klient og server.
Da får du ved hjelp av mcsMqtt plugin'en i Hs3 importert de samme devicene til Hs3.
Forskjellen mellom dette og min løsning(som når koster 400 kr) er at jeg har lagt inn sonebasert  rengjøring og waypoints.
Sonebasert rengjøring har ikke denne Roborock'en( s5) men det har etterfølgeren S6. 
Bakdelen med S6 er at den koster rundt 6 tusen kr pr. idag. Ja så mangler den waypoints . ?
 

Nå har Jørgen fra Sverige testet mitt MQTT system mot Roborock S6 og han melder at det fungerer fremragende! ?

Lenke til kommentar
Del på andre sider

  • 2 uker senere...

Dette er work-in-progress, men med mini-guiden til @ZoRaC prøver jeg meg fram på Windows. Jeg kjører Homeseer på Windows 10. Har aldri tatt i MQTT før (kanskje på tide nå), så dette blir litt prøving og feiling...

 

Kort oppsummert så langt:

 

Token var ganske greit å få tak i:

- Installerte Android-emu for Windows: www.bluestacks.com

- Installerte versjon 5.4.49 av Mi Home: https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-4-49-release/

- Logga inn på Mi Home

- Token ligger i klartekst i .log-fila i SmartHome\logs\plug_DeviceManager-mappa (Ikke den som ligger i SmartHome\logs)

 

Videre...

- Installert mcsMQTT-plugin i Homeseer

- Installerte Python: https://www.python.org/downloads/windows/

- Installerte Mosquitto: https://mosquitto.org/download/

- Installerte Visual C++ Build Tools: https://go.microsoft.com/fwlink/?LinkId=691126 (usikker på om denne faktisk var nødvendig)

- Installerte pip: https://pip.pypa.io/en/stable/installing/

- Installerte python-miio: pip install python-miio

 

Mosquitto og kommunikasjon med roborocken ser ut til å fungere:

 

mqtt1.thumb.PNG.e2e7d7549c6b95a75ceef33d96ac0583.PNG

 

Jeg gjør tydeligvis noe feil med MQTT i Homeseer:

mqtt2.thumb.PNG.c4fce284358c2c0f00dd21a265cc9f0c.PNG

 

mqtt3.thumb.PNG.e0d24ffc208f603bdc5fcfec47159866.PNG

 

Hva gjør jeg feil?

 

Jeg vet forresten ikke om det er nødvendig å fjerne token fra bildene, men da har jeg gjort det for sikkerhets skyld :)

 

Lenke til kommentar
Del på andre sider

13 minutter siden, lasseruud skrev:

Hva gjør jeg feil?

 

I bash-script på Linux så betyr dette "kjør kommandoen og bruk resultatet av den": "$(miiocli -o json vacuum --ip $IP --token $TOKEN status)"

Men, i Windows så tolker den det der som helt vanlig tekst, ser det ut til.

 

Det kan hende noe sånt som dette funker i Windows:

for /F "usebackq delims=" %A in (`miiocli -o json vacuum --ip $IP --token $TOKEN status`) do mosquitto_pub -h localhost -t vacuum/status -m %A

 

Lenke til kommentar
Del på andre sider

9 minutter siden, lasseruud skrev:

Måtte endre siste %A til "%A" for at den skulle gå gjennom, men det dukker allikevel ikke opp i HS:

 

Du nærmer deg! :)

Problemet nå er nok at også selve JSON-strengen bruker " i seg, så i praksis stå det nå bare '-m "{"' 

Kan du prøve '%A' i stedet og se om det funker?

Lenke til kommentar
Del på andre sider

8 minutter siden, lasseruud skrev:

Fjerna mcsMQTT-plugin og la inn MQTT-plugin for å teste:

mqtt8.thumb.PNG.29cb32b7c969e3328c988c94d54ca009.PNG

 

Nå er du veldig nærme! :)

Mener det er en innstilling i mcsMQTT for å fortelle den at payload er en JSON, slik at den da splitter det opp i flere devicer. Husker ikke i farten hvor man setter det valget... 

Lenke til kommentar
Del på andre sider

4 minutter siden, lasseruud skrev:

Når tror jeg det stopper i mcsMQTT her. Ser at alle meldinger havner i statistikken som "MQTT Received & not Accepted by mcsMQTT".

 

Ser du den på hovedsiden til mcsMQTT->MQTT-setup?

Lenke til kommentar
Del på andre sider

Problemet var at " ble borte et sted i prosessen, slik at mcsMQTT ikke klarte å parse dataene. Fyren som lager mcsMQTT slang sammen en versjon som parser json uten qoutes og da fungerte det. Kjapp resons fra han. :) Skal prøve å finne ut hvor tegnene ble av, for kommandoen som blir sendt er med tegnene:

 

mqtt!!.thumb.PNG.07acd08245efeb2fd585005fb253ef76.PNG

  • Like 1
Lenke til kommentar
Del på andre sider

Genererte output fra miiocli til ei txt-fil og brukte innholdet brukte mosquitto_pub til å sende innholdet i txt-fila. Da kom qoutes med. Må nok leke litt mer med for-kommandoen. Det er mange år siden... ?

miiocli -o json vacuum --ip 10.10.0.135 --token 1234561234564513246 status > test.txt
mosquitto_pub -h localhost -t vacuum/status -f test.txt

 

mqtt1234.thumb.PNG.03e48f993e0f367bf721b0586e14332a.PNG

 

 

mqtt12345.thumb.PNG.18198f82c6b3a39204b0a52e940bdce5.PNG

  • Like 1
Lenke til kommentar
Del på andre sider

12 minutter siden, lasseruud skrev:

Genererte output fra miiocli til ei txt-fil og brukte innholdet brukte mosquitto_pub til å sende innholdet i txt-fila. Da kom qoutes med. Må nok leke litt mer med for-kommandoen. Det er mange år siden... ?


Kan du ikke bare bruke det slik da? Du lager deg jo uansett bare en BAT-fil og om den inneholder 6 linjer eller 3 linjer spiller vel ingen rolle? :) 
 

Lenke til kommentar
Del på andre sider

Jo, absolutt, men jeg liker å fikse ting fremfor workarounds. ? Dessuten har jeg nå forstått hva MQTT kan gjøre, og så lenge jeg stort sett kun har Windows i hus, er det greit å fikse dette en gang for alle i stedet for workaround. ?? Ser for meg at jeg kommer til å bruke MQTT mer framover.

  • Like 1
Lenke til kommentar
Del på andre sider

Siden dette er en work in progress, oppdaterer jeg her. Tar gjerne imot tips og tilbakemeldinger om lure måter å gjøre ting på. Nå skal jeg først få det til å spille. :)

 

Det blir en workaround (enn så lenge...) Med eksport av json-data til fil og sending av innholdet i denne fila med mqtt, fungerer det fint. Det jeg foreløpig har gjort, er å lage en event som kjører hvert 5. minutt. Denne eventen kjører rett og slett ei .bat-fil som jeg har lagt i scripts-mappa til Homeseer.

 

@echo off
echo Oppdaterer Roborockstatus...
"c:\program files\python38\scripts\miiocli" -o json vacuum --ip 10.10.0.135 --token 123456789ab123456789ab123456789a status > "c:\program files (x86)\homeseer hs3\data\vacuum\status.txt"
"c:\program files\python38\scripts\miiocli" -o json vacuum --ip 10.10.0.135 --token 123456789ab123456789ab123456789a consumable_status > "c:\program files (x86)\homeseer hs3\data\vacuum\status_consumable.txt"
"c:\program files\python38\scripts\miiocli" -o json vacuum --ip 10.10.0.135 --token 123456789ab123456789ab123456789a carpet_mode > "c:\program files (x86)\homeseer hs3\data\vacuum\status_carpet_mode.txt"
"c:\program files\mosquitto\mosquitto_pub" -h localhost -t vacuum/status -f "c:\program files (x86)\homeseer hs3\data\vacuum\status.txt"
"c:\program files\mosquitto\mosquitto_pub" -h localhost -t vacuum/status -f "c:\program files (x86)\homeseer hs3\data\vacuum\status_consumable.txt"
"c:\program files\mosquitto\mosquitto_pub" -h localhost -t vacuum/status -f "c:\program files (x86)\homeseer hs3\data\vacuum\status_carpet_mode.txt"

Ved å holde meg i Homeseer-mappa, kommer dette med i automatisk backup. Greit å samle alt et sted synes jeg.

 

Nå får jeg status på roborocken hvert 5. minutt i HS:

 

vacuum.thumb.PNG.efc0bbe44a6e0fdcba44d379f67890b4.PNG

 

  • Like 2
Lenke til kommentar
Del på andre sider

Kom i mål! Får status og får styrt støvsugeren i HSTouch. Enda en app mindre å bruke. Daikin-appen er allerede kasta ut til fordel for DaikinSeer. :)

 

572767491_2020-01-0612_49_14.thumb.png.e64118097afee9fe0707f4031552e6ce.png  982054336_2020-01-0612_49_52.thumb.png.192898394c4f54ad2f1015d0cdff54ae.png  71762026_2020-01-0612_50_12.thumb.png.eb3db698845309dab5857c83f23ba6e8.png

 

Måtte lage meg flere knapper. Har ikke lært meg hvordan jeg kan velge action basert på verdi. Skifte bilde ut i fra verdi er ikke noe problem.

 

Må også prøve å få starta romrengjøring direkte. Det har jeg ikke prøvd på enda.

 

Prøvde også å få norsk språk med språkfila til @ZoRaC, men det feilet. Fikk du til? Fikk generert .wav-filene og laget .pkg-fila. Overføring til støvsugeren så ut til å gå fint, men den klarte ikke å aktivere den. Kunne se ut som problemer med checksum. Har prøvd både med uten md5.

 

@Rogerbl: Jeg ser du også har prøvd å endre språk. Ut i fra loggene dine, ser det ut til at du har prøvd å sende csv-fila til støvsugeren. csv-fila brukes for å generere wav-filer via gtts som så settes sammen til ei pkg-fil som sendes til støvsugeren.

 

Trenger custom språk roota firmware kanskje?

 

Endret av lasseruud
  • Like 1
  • Confused 1
Lenke til kommentar
Del på andre sider

28 minutter siden, lasseruud skrev:

Prøvde også å få norsk språk med språkfila til @ZoRaC, men det feilet. Fikk du til? Fikk generert .wav-filene og laget .pkg-fila. Overføring til støvsugeren så ut til å gå fint, men den klarte ikke å aktivere den. Kunne se ut som problemer med checksum. Har prøvd både med uten md5.

 

Hos meg virket dette på første forsøk... husk at den overskriver det språket den allerede bruker, så du skal ikke velge språk i appen etterpå - hvis du gjør det så blir det tilbakestilt igjen til default. Kanskje språkoverføring er noe som bare virker med Linux? 

 

29 minutter siden, lasseruud skrev:

Trenger custom språk roota firmware kanskje?

 

Jeg har ikke rootet. :) 

Lenke til kommentar
Del på andre sider

4 timer siden, lasseruud skrev:

 

@Rogerbl: Jeg ser du også har prøvd å endre språk. Ut i fra loggene dine, ser det ut til at du har prøvd å sende csv-fila til støvsugeren. csv-fila brukes for å generere wav-filer via gtts som så settes sammen til ei pkg-fil som sendes til støvsugeren.

 

Trenger custom språk roota firmware kanskje?

 

Hmm, kanskje det. Har ikke prøvd dette etterpå.. holder meg til engelsk..

Lenke til kommentar
Del på andre sider

På 6.1.2020 den 13.03, lasseruud skrev:

Kom i mål!

Hei! Har lest, fundert og prøvd å følge det du har gjort men uten å komt i mål. Kan veldig lite om dette, så virker som om det er noen steg som mangler i min framgangsmåte. Kunne du ha laget en litt mer detaljert og gjerne idiot-sikker guide? ?

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.