ZoRaC Skrevet 30. august 2019 Skrevet 30. august 2019 (endret) EDIT: Se egen guide for å få til det samme i Windows her: ————— Det finnes en tråd med litt diskusjon rundt det å få Xiaomi-støvsugere inn i HomeSeer her: https://www.hjemmeautomasjon.no/forums/topic/4080-xiaomi-mi-roborock-robotstøvsuger/ Resultatet i den tråden er at @Rogerbl har laget en integrasjon som han selger via sin nettbutikk. Når jeg kjøpte min første Roborock S5 denne uka så syntes jeg 800 kr var litt for mye for en programvare til en støvsuger jeg betalte 2400 kr for (no offence, @Rogerbl ). Så da måtte jeg ta saken i egne hender og ordne det selv. Jeg skal her forsøke å beskrive hvordan dette er gjort, forhåpentligvis godt nok til at flere kan kopiere løsningen. Jeg kjører Ubuntu, så om dette er mulig å få til på Windows har jeg ingen anelse om... Programvare som brukes: * En MQTT-broker (f.eks Moquitto) * mcsMQTT-plugin til HomeSeer * python-miio * mqtt-launcher Start med installasjon av python-miio: https://python-miio.readthedocs.io/en/latest/discovery.html Uthenting av token var veldig enkelt med Android, som beskrevet her: https://python-miio.readthedocs.io/en/latest/discovery.html#tokens-from-mi-home-logs Når du får "mirobo discover" fungerer så kan du gå videre. Hvis du ikke har en MQTT-broker, sett opp det og test at den fungerer, f.eks Mosquitto: https://mosquitto.org/download/ Installer og konfigurere mcsMQTT-plugin i HomeSeer og sjekk at den fungerer. Lag "/usr/local/HomeSeer/scripts/vacuum.sh": #!/bin/bash IP=192.168.1.10 TOKEN=1234567868767786345 mosquitto_pub -h localhost -t vacuum/status -m "$(miiocli -o json vacuum --ip $IP --token $TOKEN status)" mosquitto_pub -h localhost -t vacuum/consumable_status -m "$(miiocli -o json vacuum --ip $IP --token $TOKEN consumable_status)" mosquitto_pub -h localhost -t vacuum/status/carpet_mode -m "$(miiocli -o json vacuum --ip $IP --token $TOKEN carpet_mode)" Kjør den og sjekk at du finner disse i mcsMQTT. Hak av for "associate" på de samme enheten som jeg har over. Gå inn på enheten og gjør justeringer på prefix/suffix, osv etter eget ønske. Legg til vacuum/control i mcsMQTT, med dette oppsettet: Legg inn mqtt-launcher.py og .conf i /scripts-mappa: https://github.com/jpmens/mqtt-launcher Legg dette i mqtt-launcher.conf: logfile = 'logfile' mqtt_broker = 'localhost' # default: 'localhost'. If using TLS, this must be set to the domain name signed by your TLS certificate. mqtt_port = 1883 # default: 1883 mqtt_clientid = 'mqtt-launcher-1' mqtt_username = None mqtt_password = None mqtt_tls = None # default: No TLS topiclist = { # topic payload value program & arguments "vacuum/control" : { 'start' : [ '/usr/local/bin/mirobo', '--ip', '192.168.1.10', '--token', '2313213213221321231', 'start' ], 'find' : [ '/usr/local/bin/mirobo', '--ip', '192.168.1.10', '--token', '2313213213221321231', 'find' ], 'home' : [ '/usr/local/bin/mirobo', '--ip', '192.168.1.10', '--token', '2313213213221321231', 'home' ], 'spot' : [ '/usr/local/bin/mirobo', '--ip', '192.168.1.10', '--token', '2313213213221321231', 'spot' ], 'pause' : [ '/usr/local/bin/mirobo', '--ip', '192.168.1.10', '--token', '2313213213221321231', 'pause' ], }, "vacuum/control/fanspeed" : { None : [ '/usr/local/bin/mirobo', '--ip', '192.168.1.10', '--token', '2313213213221321231', 'set_fan_speed', '@!@' ], }, "vacuum/control/carpet_mode" : { None : [ '/usr/local/bin/miiocli', 'vacuum', '--ip', '192.168.1.10', '--token', '2313213213221321231', 'set_carpet_mode', '@!@' ], }, } (bytt ut "2313213213221321231" med token) Endre denne linjen i mqtt-launcher.py: https://github.com/jpmens/mqtt-launcher/blob/master/mqtt-launcher.py#L43 Legg inn CONFIG="/usr/local/HomeSeer/scripts/mqtt-launcher.conf" Kjør mqtt-launcher.py. Når du ser at det fungerer, legg den inn som en service, slik at den kjører automatisk, slik som beskrevet her: https://github.com/jpmens/mqtt-launcher/issues/20 Det var en "lyn-guide" på hvordan dette er satt opp. Kan utdype mer senere, ellers er det bare å spørre så skal jeg svare så godt jeg kan, selv om jeg verken kan noe særlig om MQTT eller Python... Endret 14. januar 2020 av ZoRaC Lenke til Windows-guide 2 Siter
Rogerbl Skrevet 30. august 2019 Skrevet 30. august 2019 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 . ? Siter
Moskus Skrevet 30. august 2019 Skrevet 30. august 2019 Hvis noen leser dette og lurer på hvilken støvsuger de skal bruke, så kan det nevnes at Neato er et alternativ. Plugin koster $30, men det tar maks 2 minutter å sette den opp. Siter
ZoRaC Skrevet 30. august 2019 Forfatter Skrevet 30. august 2019 2 timer siden, Moskus skrev: Hvis noen leser dette og lurer på hvilken støvsuger de skal bruke, så kan det nevnes at Neato er et alternativ. Plugin koster $30, men det tar maks 2 minutter å sette den opp. Men de koster et par tusen mer enn S5, så vidt jeg kan se? 1 Siter
ZoRaC Skrevet 31. august 2019 Forfatter Skrevet 31. august 2019 20 timer siden, Rogerbl skrev: som når koster 400 kr Hadde ikke fått med meg det - da begynner det jo faktisk å nærme deg aktuelt. ? men, ser du også går veien via MQTT, så da er det ikke så mye å spare på det... Hadde jeg kunnet VB.net så skulle jeg ha laget meg en ordentlig plugin, uten MQTT. miiocli-kommandoene returnerer jo JSON, så det burde ikke være noe problem å kalle miiocli via VB.net og parse JSON-output man får i retur. Da hadde det vært nok å oppgi IP og token til plugin, så hadde resten fungert av seg selv. Får satse på at @Moskus sliter ute Neatoen sin og kjøper seg en Roborock. ? 6 timer siden, Moskus skrev: Vel... Spørs om jeg har sammenlignet billigste Roborock med dyreste Neato... ? Siter
ZoRaC Skrevet 31. august 2019 Forfatter Skrevet 31. august 2019 8 timer siden, ZoRaC skrev: Hadde jeg kunnet VB.net så skulle jeg ha laget meg en ordentlig plugin, uten MQTT. miiocli-kommandoene returnerer jo JSON, så det burde ikke være noe problem å kalle miiocli via VB.net og parse JSON-output man får i retur. Da hadde det vært nok å oppgi IP og token til plugin, så hadde resten fungert av seg selv. Fikk ikke sove, så da ble det litt googling. Har funnet svar på det jeg lurte på, så da blir det trolig et VB-script eller en plugin etterhvert, som ikke benytter MQTT. «Teaser»: Sitat imports System.Diagnostics IMPORTS Newtonsoft.Json IMPORTS Newtonsoft.Json.Linq Sub Main(parm as object) Dim obj as New JObject Dim psi As New ProcessStartInfo() psi.FileName = "/bin/bash" psi.Arguments = "-c ""miiocli -o json_pretty vacuum --ip 192.168.1.10 --token 123123123123123 status""" psi.RedirectStandardOutput = True psi.RedirectStandardError = True psi.CreateNoWindow = False psi.WindowStyle = ProcessWindowStyle.Hidden psi.UseShellExecute = False Dim process As Process = Process.Start(psi) Dim processoutput As String = process.StandardOutput.ReadToEnd() process.WaitForExit() hs.writelog("Output", processoutput) obj = JsonConvert.DeserializeObject(processoutput) hs.writelog("Output", obj.Item("clean_time").ToString) End Sub Gir dette i loggen: Sitat Output 351 Output { "state": 8, "fan_power": 100, "dnd_enabled": 0, "map_present": 1, "in_cleaning": 0, "lab_status": 1, "in_fresh_state": 1, "clean_area": 7075000, "error_code": 0, "msg_ver": 2, "msg_seq": 414, "battery": 100, "in_returning": 0, "clean_time": 351 } Men, jeg tror ikke jeg gidder programmere resten på mobilen, så det får bli etterhvert! ? 1 1 Siter
Moskus Skrevet 1. september 2019 Skrevet 1. september 2019 Bonuspoeng hvis du slipper et eksternt Python-script! 1 Siter
ZoRaC Skrevet 1. september 2019 Forfatter Skrevet 1. september 2019 5 minutter siden, Moskus skrev: Bonuspoeng hvis du slipper et eksternt Python-script! Haha! Tror ikke jeg skal ta jobben med å porte Python-miio til VB.net - siden jeg verken kan Python eller VB.net... ? En fordel er at noen andre sørger for at det fortsatt fungerer om Xiaomi gjør endringer. Siter
bjornepappa Skrevet 10. september 2019 Skrevet 10. september 2019 På 30.8.2019 den 18.40, Moskus skrev: Hvis noen leser dette og lurer på hvilken støvsuger de skal bruke, så kan det nevnes at Neato er et alternativ. Plugin koster $30, men det tar maks 2 minutter å sette den opp. Vi har no to Neato Botvac Connected på drift, så sånn sett koster vel plugin berre $15 per støvsuger 2 Siter
ZoRaC Skrevet 15. september 2019 Forfatter Skrevet 15. september 2019 Har ikke hatt tid til å se nærmere på dette, men har laget en norsk spårkpakke til støvsugeren i det minste. https://github.com/dgiese/dustcloud/blob/cc4f2ffe6d002a88b36f0bbb18782f3e12994a1f/devices/xiaomi.vacuum/audio_generator/language/audio_no.csv 1 Siter
Rogerbl Skrevet 18. september 2019 Skrevet 18. september 2019 (endret) Har nå også montert et Arlo kamera på min Roborock og koblet sammen dette og Mqtt styringen av Roborock. På denne måten kan jeg få robotstøvsugeren til å stoppe om der er personer eller dyr i veien for den. Jeg kan også sende den på patrulje rundt i huset når jeg er bortreist. Ved deteksjon av uvanlig lyd f.eks. ? Men patruljering er bare mulig om man har waypoint mulighet. Da kan man sende den til soverommet f.eks. Endret 18. september 2019 av Rogerbl 3 Siter
Marhil Skrevet 18. september 2019 Skrevet 18. september 2019 Har ikke hatt tid til å se nærmere på dette, men har laget en norsk spårkpakke til støvsugeren i det minste. [emoji4] https://github.com/dgiese/dustcloud/blob/cc4f2ffe6d002a88b36f0bbb18782f3e12994a1f/devices/xiaomi.vacuum/audio_generator/language/audio_no.csvFlott! Regner med at jeg må roote eller legge inn custom fw for å få inn dette?(er forresten et ekstra blankt tegn på slutten av linje 68 som github ikke liker) Sent fra min BLA-L29 via Tapatalk Siter
ZoRaC Skrevet 19. september 2019 Forfatter Skrevet 19. september 2019 8 timer siden, Hilmar skrev: Flott! Regner med at jeg må roote eller legge inn custom fw for å få inn dette? Nei, du bare laster det opp med python-miio (install_sound): https://python-miio.readthedocs.io/en/latest/miio.html 8 timer siden, Hilmar skrev: (er forresten et ekstra blankt tegn på slutten av linje 68 som github ikke liker) Ser det ikke på mobilen, men skal sjekke det. 1 Siter
Rogerbl Skrevet 4. oktober 2019 Skrevet 4. oktober 2019 (endret) Hei! Fikk ikke til å installere. Denne feilmeldingen kom etter at jeg kjørte kommandoen mirobo -ip x.x.x.x --token yyyyyyyy install-sound audio_no.csv : Installing from audio_no.csv (md5: None) for id 10000 INFO:miio.updater:Serving on 0.0.0.0:54015, timeout 10 INFO:miio.updater:Using local audio_no.csv (md5: 5c01bf1e69de33e5c6efab5f3eb79ff2) Hosting file at http://192.168.100.54:54015/audio_no.csv ERROR:miio.updater:No request was made.. ERROR:miio.device:Got error when receiving: timed out Error: No response from the device ********* får pinget den og andre kommandoer går greit. Noen tips? Endret 4. oktober 2019 av Rogerbl Siter
ZoRaC Skrevet 5. oktober 2019 Forfatter Skrevet 5. oktober 2019 Hvilken modell har du? Er PC og støvsuger på samme nettverk? Har du siste firmware på støvsugeren? Prøvd å slå av og på støvsugeren med hovebryteren? Siter
Rogerbl Skrevet 9. oktober 2019 Skrevet 9. oktober 2019 (endret) På 5.10.2019 den 15.45, ZoRaC skrev: Hvilken modell har du? Er PC og støvsuger på samme nettverk? Har du siste firmware på støvsugeren? Prøvd å slå av og på støvsugeren med hovebryteren? Har s5 med firmware 3.3.9.001886 som er den siste firmwaren. Pc og roborock er på samme nettverk og jeg får pinget den fra pc. Fant ut at jeg manglet en "-" foran ip parameteret, men det løste ikke saken... kom endel videre men får 0% downloaded: Installing from audio_no.csv (md5: None) for id 10000 INFO:miio.updater:Serving on 0.0.0.0:64219, timeout 10 INFO:miio.updater:Using local audio_no.csv (md5: 5c01bf1e69de33e5c6efab5f3eb79ff2) Hosting file at http://172.17.171.161:64219/audio_no.csv <SoundInstallStatus sid: None (state: SoundInstallState.Unknown, error: 0) - progress: 0> Downloading (0 %) Downloading (0 %) ERROR:miio.updater:No request was made.. Error (0 %) Error during installation: 2 **************** Kan være at brannmuren min ikke tillater nedlasting fra 172.17.171.161? Men det er ikke såå viktig med norsk tale, vi forstår engelsk her i huset! ? Endret 9. oktober 2019 av Rogerbl Siter
JohnMartin Skrevet 5. desember 2019 Skrevet 5. desember 2019 On 31/08/2019 at 23:54, ZoRaC said: Fikk ikke sove, så da ble det litt googling. Har funnet svar på det jeg lurte på, så da blir det trolig et VB-script eller en plugin etterhvert, som ikke benytter MQTT. «Teaser»: Gir dette i loggen: Men, jeg tror ikke jeg gidder programmere resten på mobilen, så det får bli etterhvert! ? Ble vist en S6 på meg sisy helg. Har du kommet noe videre med VB-script eller plugin? ? Siter
ZoRaC Skrevet 5. desember 2019 Forfatter Skrevet 5. desember 2019 2 timer siden, JohnMartin skrev: Har du kommet noe videre med VB-script eller plugin? ? Nei, dessverre. Har hatt den i HomeSeer via MQTT i noen mnd nå, foreløpig ikke satt opp et eneste event eller brukt statusene til noe som helst... ? så jeg er litt usikker på om jeg skal ta meg tid til å gjøre noe mer eller bare ha det som det er... Siter
Kenneth Skrevet 5. desember 2019 Skrevet 5. desember 2019 1 hour ago, ZoRaC said: Nei, dessverre. Har hatt den i HomeSeer via MQTT i noen mnd nå, foreløpig ikke satt opp et eneste event eller brukt statusene til noe som helst... ? så jeg er litt usikker på om jeg skal ta meg tid til å gjøre noe mer eller bare ha det som det er... 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 Siter
JohnMartin Skrevet 6. desember 2019 Skrevet 6. desember 2019 On 05/12/2019 at 07:27, ZoRaC said: Nei, dessverre. Har hatt den i HomeSeer via MQTT i noen mnd nå, foreløpig ikke satt opp et eneste event eller brukt statusene til noe som helst... ? så jeg er litt usikker på om jeg skal ta meg tid til å gjøre noe mer eller bare ha det som det er... Ja, jeg ser den. Er appen såpass bra at du klarer å automatisere alt via den? Med turnus på begge to, så er det ingen dag som er like hos oss, så spørs om appen er bra nok for oss. Kan hende jeg bare må begi meg ut på den skumle ferden med MQTT ? Siter
JohnMartin Skrevet 7. desember 2019 Skrevet 7. desember 2019 @ZoRaC, må dette kjøres på HS3 maskinen, eller kan jeg kjøre ubuntu i VM for dette? ? Siter
ZoRaC Skrevet 8. desember 2019 Forfatter Skrevet 8. desember 2019 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 Om jeg skulle laget et script/plugin så vil det nok uansett bare blitt noe som hadde brukt Python-miio i bunn, så man måtte fått det til å fungere uansett (mulig det funker på Windows, men vet ikke). 9 timer siden, JohnMartin skrev: @ZoRaC, må dette kjøres på HS3 maskinen, eller kan jeg kjøre ubuntu i VM for dette? ? Det er en av de sterke sidene til MQTT - så dette kan du kjøre på hva som helst, bare den kan kommunisere med MQTT-brokeren du bruker i HomeSeer! Siter
JohnMartin Skrevet 8. desember 2019 Skrevet 8. desember 2019 9 hours ago, ZoRaC said: Det er en av de sterke sidene til MQTT - så dette kan du kjøre på hva som helst, bare den kan kommunisere med MQTT-brokeren du bruker i HomeSeer! Akkurat. Da er det jo en mulighet å kjøre enda en VM sånn at jeg kan følge guiden Skal lese litt mer om muligheten å kjøre på windows først. Siter
Kenneth Skrevet 8. desember 2019 Skrevet 8. desember 2019 @ZoRaC, ok takk for tilbake mld . Så for meg noe ala det Homassistant har med en "enkel" plugin. Ser at ikke det det er for alle å lage en slik plugin, jeg får vurdere hva jeg skal gjøre. Ser at noen har installert Homeassistant for så å knytte HS opp mot denne igjen for å få inn Roborock devucene.. Ikke en smooth løsning, men pt finn finnes det ikke en enkel løsning sånn jeg forstår det. Siter
Anbefalte innlegg
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.