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

Xiaomi Roborock inn i Homeseer (Windows)


lasseruud

Anbefalte innlegg

Først... All ære til @ZoRaC for denne! 

 

Jeg kjører Homeseer på Windows 10, så målet mitt var å kunne ordne alt derfra så jeg ikke var avhengig av en annen maskin.

 

1: Token

Spoiler

Siden vi ikke har noe Android i huset, var dette den greieste måten å få tak i token på:

 

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/

 

- Starte Mi Home og logge på. Jeg ser at flere skriver at de måtte kjøre en runde støvsuging, men det trengte ikke jeg.

 

- Token ligger i klartekst i .log-fila i SmartHome\logs\plug_DeviceManager-mappa:

* Start Media Manager i Blue Stacks

* Explore

* SmartHome

* logs

* plug_DeviceManager

* Åpne log-fila i f.eks. Chrome

* Se etter "token":"123123123132123123123132132123123"

 

 

2: python

Last ned fra https://www.python.org/downloads/windows/ og installer. Husk å få med at python skal legges i path i første steg av installasjonen. Denne står ikke på som default.

 

3: mosquitto

Last ned fra https://mosquitto.org/download/ og installer. Her mener jeg det var en rett fram installasjon.

 

4: Vistual C++ Build Tools
Last ned fra https://go.microsoft.com/fwlink/?LinkId=691126 og installer. Denne krevde reboot hos meg.

 

5: python-miio

Installer python-miio. Det gjør du i command prompt (DOS! ?) med kommandoen:

pip install python-miio
Jeg husker ikke om jeg måtte kjøre command prompt i admin-modus.

 

Da skal alt av verktøy være på plass. 

 

6: Sjekke kommunikasjon mot støvsuger

Spoiler

Sjekk at alt fungerer ved å kjøre en discover. Av ukjente grunner, fungerte ikke "mirobo discover" hos meg, så jeg måtte kjøre:

mirobo discover --handshake 1

 

Hvis du får opp IP-adressen til støvsugeren, skal alt være klart.

 

Prøv også:

mirobo --ip x.x.x.x --token 123123132321321321321321321321213 status

 

Da skal du få info om støvsugeren.

 

7: Installere mcsMQTT i Homeseer

Denne trenger ikke mer info. Den ligger under "Lighting & Primary Technology". Installer plugin og start den.

 

8: Få ut data fra Roborock til fil

Spoiler

Som nevnt i denne tråden, sleit jeg med quotes i cmd. Har derfor tatt en workaround og skrevet resultatet til fil før jeg sender med mosquitto.

Det er helt sikker mulighet til å få til dette i en kommando, men det har jeg ikke tatt meg tid til å finne ut.

 

Denne kommandoen genererer json-data om støvsugeren som den skriver til status.txt:

"c:\program files\python38\scripts\miiocli" -o json vacuum --ip x.x.x.x --token 123123132321321321321321321321213 status > "c:\program files (x86)\homeseer hs3\data\vacuum\status.txt"

 

Sjekk at mappene er riktig hos deg! Hos meg var dette riktig. På en annen maskin jeg har, ligger miiocli i c:\users\username\AppData\Local\Programs\Python\Python38-32\Scripts.

Jeg har valgt å legge txt-filene som dataene skrives til i Homeseer-mappa for enkelhetsskyld.

 

9: Få data fra fil til Homeseer med MQTT

Spoiler

Det neste blir å bruke mosquitto.

 

Denne kommandoen sender innholder i status.txt via MQTT:

"c:\program files\mosquitto\mosquitto_pub" -h localhost -t vacuum/status -f "c:\program files (x86)\homeseer hs3\data\vacuum\status.txt"

 

Husk å sjekke mappenavn her også!

 

Gå inn i Plug-ins - mcsMQTT - MQTT Setup.

 

I bunnen her bør det ha dukket opp en del linjer:

guide01.thumb.PNG.f35ee86d404ae0274a76619722c7a482.PNG

(Her har jeg flere verdier enn du vil få ved kun å kjøre 'status'. Jeg har i tillegg kjørt 'consumable_status' og 'carpet_mode'. Kanskje enda flere under testing... I .bat-fila i punkt 11 ligger imidlertid både status, consumable_status og carpet_mode inne.)

 

Merk av under "a" for de du vil ha som egne devicer i Homeseer. Det er ikke nødvendigvis de samme som jeg har valgt:

 

guide02.thumb.PNG.f19f2c683b01bc20149c7fa80ffda0b9.PNG

(her har jeg døpt dem om og laget egne status tekster)

 

 

10: Kontrollere Roborock fra Homeseer

Spoiler

Kommandoen for å kontrollere støvsugeren er ganske grei:

mirobo --ip x.x.x.x --token 123123231321321321321321321213321 start/stop/home osv...

 

Jeg har laget ei .bat-fil som ser slik ut:



@echo off
"C:\Program Files\Python38\Scripts\mirobo.exe" --ip x.x.x.x --token 123123123132132132132132132132 %1

Denne starter jeg med eventer hvor jeg bare endrer parameter:

guide03.thumb.PNG.91b6b6246d7b97badf0ec59a9f9aeb14.PNG

guide04.thumb.PNG.19bbdd123fa1963d5408398ffca17cc2.PNG

 

 

11: Automatisk oppdatere status på Roborock til Homeseer:

Spoiler

Jeg har jeg laget to eventer som kjører hhv. hvert 30. sekund eller 15. minutt avhengig av om støvsugeren går eller ikke:

guide05.thumb.PNG.d9a18f087ae78be26c0b69b5c7797046.PNG

 

Dette er ei .bat-fil som ser slik ut:



@echo off
echo Oppdaterer Roborockstatus...
"c:\program files\python38\scripts\miiocli" -o json vacuum --ip x.x.x.x --token 12312312313212313213213213213212 status > "c:\program files (x86)\homeseer hs3\data\vacuum\status.txt"
"c:\program files\python38\scripts\miiocli" -o json vacuum --ip x.x.x.x --token 12312312313212313213213213213212 consumable_status > "c:\program files (x86)\homeseer hs3\data\vacuum\status_consumable.txt"
"c:\program files\python38\scripts\miiocli" -o json vacuum --ip x.x.x.x --token 12312312313212313213213213213212 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"

 

 

Jeg tror det var alt. Håper jeg ikke har glemt noe. Dukker det opp noe, skal jeg oppdatere posten. Igjen, all credit til @ZoRaC. Jeg hadde aldri tatt i MQTT før jeg så posten hans.

 

Det er helt sikker andre og bedre måter å få til dette på, men akkurat nå fungerer det hos meg, så da lar jeg det rulle og gå. :)  Det eneste jeg har lyst til å finne ut, er hvordan jeg kan starte zoned cleanup av f.eks. kjøkken, stue, osv. Utfordringen her er koordinater. Jeg har ikke funnet noen enkel måte å hente ut koordinater. FloleVac har jeg prøvd, men jeg får ikke opp kartet på noen av Android-emulatorene jeg har prøvd.

 

Disclaimer: Alt på eget ansvar, osv. Ta backup først!

Edit: Gjorde topic litt bedre

Endret av lasseruud
  • Like 6
  • Thanks 3
Lenke til kommentar
Del på andre sider

Hei @lasseruud

 

Da har jeg testet litt og kommer nesten  mål.

 

Punkt 2

Det kommer opp ett valg under installasjon av python om path skal legges til environmental ett eller annet. Dette kan være lurt å huke av for hvis punkt 5 skal fungere skikkelig.

 

Punkt 5

Kan være en ide å oppdatere guiden med at dette er command prompt (ja for dummies)

 

Punkt 6

Her hadde jeg litt trøbbel:mirobo discover --handshake 1
INFO:miio.device:Sending discovery to <broadcast> with timeout of 5s..
WARNING:miio.device:error while reading discover results: 'token'

 

Virket ikke, helt kjørte så  kommando:

mirobo discover
INFO:miio.discovery:Discovering devices with mDNS, press any key to quit...
WARNING:miio.discovery:Found unsupported device roborock-vacuum-s6_miio261333659._miio._udp.local. at 10.0.0.160, please report to developers

 

Feil mld er jeg usikker på, men får IP output.

Kommanoden under gir meg altså en output:

 

mirobo --ip 10.0.0.160 --token "token" status
State: Charging
Battery: 100 %
Fanspeed: 104 %
Cleaning since: 0:00:03
Cleaned area: 0.0 m²

 

Skal denne innehold mer?

 

Punkt 8

Her får jeg feil på miiocli" -o, switchen -o finnes ikke. Jeg endret den til --output men det er kanskje ikke korrekt?

Output:

{"msg_ver": 2, "msg_seq": 42, "state": 8, "battery": 100, "clean_time": 3, "clean_area": 0, "error_code": 0, "map_present": 1, "in_cleaning": 0, "in_returning": 0, "in_fresh_state": 1, "lab_status": 1, "water_box_status": 0, "fan_power": 104, "dnd_enabled": 0, "map_status": 3, "lock_status": 0}'

 

Punkt 9

Kommandoen gir meg mye mindredevicer enn det du har:

 

2059794480_Screenshot2020-01-14at14_56_47.thumb.png.6ee77148165ce7d57da1344f0c7b8ac0.png

 

Så her gjør jeg noe galt?

Har dette noe med -o vs --output som jeg endret?

 

 

 

Endret av Kenneth
Lenke til kommentar
Del på andre sider

@Kenneth

 

Punkt 2:

Stemmer. Det står i guiden. :)

 

Punkt 5:

Det er sant. Jeg oppdaterer guiden. Jeg tok for gitt at de som kjører Homeseer er litt over middels kyndige. ?

 

Punkt 6: Du får kun fram IP, ikke token, ved bruk av mirobo discover (-- handshake 1). Den kommandoen er mer for å sjekke at python-miio er riktig installert.

Hva som gjør at "mirobo discover" fungerte hos deg, mens jeg måtte kjøre "mirobo discover --handshake 1" er jeg usikker på.

 

Status gir samme resultat hos meg, så det ser riktig ut.

guide06.PNG.f6fef2f2963b0a45e09895ee54444cd5.PNG

 

Punkt 8:

Rart det ikke fungerer med -o hos deg. Det fungerer hos meg. json-outputen du får ser imidlertid helt riktig ut:

guide07.thumb.PNG.30ce6f0cbefc31cecc9e72fe5a3a7080.PNG

 

 

Punkt 9:

Grunnen til at du har mindre devicer enn meg er fordi du har kun verdiene fra 'status'. Jeg har i tillegg har kjørt consumable_status og carpet_mode:

miiocli -o json vacuum --ip 10.10.0.135 --token 1231231231231231231321321 consumable_status

miiocli -o json vacuum --ip 10.10.0.135 --token 1231231231231231231321321 carpet_mode

Disse ligger for øvrig i .bat-fila i punkt 11.

Legger ei linje om det i guiden.

Lenke til kommentar
Del på andre sider

Hei, @lasseruud
Har prøvd oppsettet ditt, og det fungerer supert. Sleit med å få tak i token. Men etter en nedgradering av appen til en eldre versjon, som ikke skjuler token, reinstallasjon av støvsuger i nettet, så fant jeg riktig token i en loggfil på telefonen.

Endret av Siggi
Lenke til kommentar
Del på andre sider

Takk, @lasseruud

Super guide! Ser at jeg ikke fikk inn de samme devicer som du fikk, selv med å kjøre .bat filen. Bla. vanntank(Ref 710) og status Ref (711) hos deg. Men det er ikke så viktig. 

 

Vet du hvordan man kan gjøre om verdier til å bli litt mer forståelig? F.eks clean_area eller main_brush_work_time. Ser @ZoRaC har fått omgjort verdiene, kanskje du kan forklare? ?   

Endret av Utkilars
Lenke til kommentar
Del på andre sider

9 minutter siden, Utkilars skrev:

Vet du hvordan man kan gjøre om verdier til å bli litt mer forståelig? F.eks clean_area eller main_brush_work_time. Ser @ZoRaC har fått omgjort verdiene, kanskje du kan forklare? ?   

Det er bare å endre navnet som du gjør med andre devicer i Device Management

Endret av Siggi
Lenke til kommentar
Del på andre sider

3 minutter siden, Siggi skrev:

Det er bare å endre navnet som du gjør med andre devicer i Device Management

Kanskje dårlig forklart av meg, men mener ikke selve navnet på devicen. F.eks main_brush_work_time så viser den en verdi på 27441 hos lasseruud. I timer vil dette si i underkant av 8 timer, altså 27441/3600= 7,62 timer. Så det jeg lurer på er hvordan man kan få verdiene til å bli vist i timer eller m2

Lenke til kommentar
Del på andre sider

I forbindelse med at jeg at jeg styret med dette så ble støvsugeren min oppdatert med nyeste firmware. Og PLUTSELIG var min S5 i stand til å håndtere forskjellige rom! ?

646795C3-4DAA-440B-9AAD-D5CB906FCB9C.thumb.png.7e300469abb7d6d510c69eb97646adf2.png
 

Antar at miio må oppdateres før det vil være mulig å kontrollere dette?

Lenke til kommentar
Del på andre sider

Du har nok fått 5 Max softwaren installert:

 

»

Differences between the S5and S5 Max

The S5 Max has Selective Room Cleaning that the standard model does not have. The S5 Max allows setting suction per room, mopping water level ('dripping') per room, and no-mop zones, all lacking in the base S5

 

Jeg har og S5, virker den nye softwaren?

 

/Helge

Endret av Byelektrikeren
Lenke til kommentar
Del på andre sider

1 hour ago, Byelektrikeren said:

Du har nok fått 5 Max softwaren installert:

 

»

Differences between the S5and S5 Max

The S5 Max has Selective Room Cleaning that the standard model does not have. The S5 Max allows setting suction per room, mopping water level ('dripping') per room, and no-mop zones, all lacking in the base S5

 

Jeg har og S5, virker den nye softwaren?

 

/Helge

Om du «snakker til» meg så har ikke jeg i alle fall ikke gjort noe aktivt for å få S5 Max FW. Men hva vet vel jeg om hva Kina har gjort av valg for meg ?

Lenke til kommentar
Del på andre sider

  • lasseruud endret tittelen til Xiaomi Roborock inn i Homeseer (Windows)

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.