Xiaomi enheter vi monitorerer og kontrollerer via Mqttt protokollen

Xiaomi Roborock Støvsuger

Vi har nå ferdig styreprogram for denne via mqtt.
Disse kan kjøres automatisk eller manuelt, med eller uten stemmestyring.
Vi finner Alexa bedre egnet enn Google Home fordi Alexa gir oss mulighet for å editere kommandoene til et mer forståelig språk. Desverre er Alexa ikke på Norsk ennå.

Programmet har følgende egenskaper som ikke finnes i appen:

1. Sonebasert rengjøring– Man definerer opp boligen i forskjellige soner f.eks  kjøkken, stue, hall mm. Da kan man kjøre kommandoen ‘Alexa, clean kitchen’ eller ‘Alexa, clean livingroom’ mm.
Du kan definere opptil 10 soner.

2. Multisonebasert – her kan man få støvsugeren til å rengjøre flere soner i en operasjon i den rekkefølge du bestemmer. f.eks. ‘Alexa, clean hall and hallway’.

3. Waypoints– dette er koordinater som er tatt ut av kartet som er generert av støvsugeren.
Har du funnet koordinatene til yttergangen gir dette mulighet for å kjøre kommandoen ‘Alexa, goto livingroom’ e.l. Du kan ha opptil 10 waypoints.
tips: finn koordinatene etter du har generert soner. Ta X= x2 -x2 og Y= y2 -y1 fra sonen og
du har X og Y koordinater i sonen. Diss kan så justeres etterhvert hvis de ikke er helt der du ønsket punktet.

Ellers har programvaren de fleste kommandoer som også finnes i appen.(se under).
Og det beste av alt, programmet gjør at Roborock kan styres fra hvilket som helst
automasjonsystem via MQTT protokollen.

For å få tak i koden(token) for denne måtte vi følge denne oppskriften.
Og da fikk vi koblet opp slik at vi mottok status fra den. 🙂
Vi har også en annen metode å få tak i token, og dette er beskrevet i doc fila som
følger med innstallasjonsfila.

Kommandoer via mqtt.
F.eks.
miio/set/vaccum/192.168.100.145/start=1 – starter rengjøring av hele huset
eller
miio/set/vaccum/192.168.100.145/home=1 – går til dokking stasjonen

osv.
Følgende kommandoer er tilgjengelige:

home =1 – go to docking station
pause= 1
start= 1
clean = 1  (clean house-all zones)
speed = 1-100(%)
setvol= 1-100(%)
stop= 1
spot=1  — spot cleaning
soundtest=1 — it says ‘Starting the cleanup!’
resume_zoned_clean=1
resume_or_start=1
goto = x, y -koordinater
multi= section1, section3, section5(defined in cfg file) — zoned clean -clean multiple zones in one command
waypoint= like ‘kitchen'(x, y defined in cfg file) – goto waypoint
find = 1 (say «Hi, I’m over here»)

Waypoint kommandoen tar utgangspunkt i oppsettet i cfg fila hvor man kan definere opptil
10 waypoints.
Det gir en muligheten til å koble opp mot et talestyrt opplegg som f.eks Google Home eller Alexa. Jeg anbefaler Alexa fordi der kan man endre kommandoene ved å opprette såkalte routines. Da får man mer naturlig språk.

Da kan en si f.eks. ‘Hei Google, waypoint kjøkken på’ (eller ‘Alexa,go to kitchen’ om man vil) og roboten drar dit til det punktet på kartet du har forhåndsdefinert som kitchen i cfg fila.

Det samme gjelder for sonebasert rengjøring.
Alle sonene må defineres i cfg fila på forhånd. Etter dette er gjort kan talekommandoen
‘Alexa, clean the livingroom!’ føre til at roboten gjør akkurat det. 🙂

Sonene som er definert blir også benyttet i Multisone rengjøring hvor du kan be roboten om
å rengjøre flere soner i rekkefølgen du velger.
Da kan kommandoen ‘Alexa, clean Livingroom and Hall’  føre til at det blir skinnende rent der.

Kommandoen Find kan både brukes om en ønsker selskap eller om en ønsker å drive vekk uvedkommende med en kvinnestemme som roper «Hey, I am over here!»

 

Xiaomi’s luftrenser

Vi er kommet så langt at vi har klar en styre og monitoreringsmodul for Xiaomi’s luftrenser 2s(Les mer om den her )
Monitor programmet henter status fra luftrenseren og publiserer data ut til mqtt brokeren.

Data som publiseres til mqtt brokeren.


De samme data inne på HomeSeer Hs3 med mcsMqtt plugin’en.


Og de samme data som nå fremstår som devicer i HomeSeer Hs3.

Kontrollmodulen ligger og venter på kommando for å styre luftrenseren.
Følgende kommandoer er  mulig, avhengig av modell:
Power (on, off)*
Operation modes (auto, silent, favorite, idle)*
Buzzer (on, off)*
Child lock (on, off)
LED (on, off)*
Led_brightness(value)
Favorite Level (0…16)*
Reset filter()
Autodetect(on, off)
Extra features(value)
Learn mode(on,off)
Volume(value)- volum på buzzer

*testet og virker på Airpurifier 2s (zhimi.airpurifier.ma2)

Følgende data blir publisert til mqtt brokeren:
Status
power=on,off
aqi=1->
average_aqi=1->
temperature= grader Celsius
humidity= 0-100%
mode=OperationMode(Silent,Auto, Idle, Favorite)
led=On, Off
led_brightness=Bright, Dim, Off
illuminance=0-100 (lux)
buzzer=On, Off
child_lock=On, Off
favorite_level=0-17
filter_life_remaining= days
filter_hours_used= hours
use_time= sec
purify_volume=m3
motor_speed= speed
motor2_speed=speed if exits
volume= 0-100
filter_rfid_product_id=id
filter_rfid_tag=tag
filter_type=regular, anti-bacterial, anti-formaldehyde, unknown
learn_mode=On, Off
sleep_mode=Silent, Idle
sleep_time=sec
sleep_mode_learn_count= int
extra_features= int
turbo_mode_supported=True,False
auto_detect=None, On, Off
button_pressed=None or button(Power)

Prosjektet baserer seg på biblioteket python-miio som krever minimum python ver. 3.5
Du må også installer bibliotekene paho-mqtt og miio.
Mange kunder som har kjøpt Xiaomi’s Airpurifier 2s har opplevd at de ikke får lagt inn luftrenseren i Xiaomi’s app for Android eller IOS. Ved hjelp av mqtt protokollen er det likevel mulig å styre luftrenseren via telefonen eller via et automasjonsystem.
For å få koblet opp luftrenseren på ditt private wifi nettverk gjør du følgende:
Last ned Xiaomi’s MI Home app til telefonen din.
Velg profil>settings>Region>Mainland China
Velg profil>settings>Language>Chinese
Nå er app språket kinesisk så best å holde tunga rett i munnen.
Gå tilbake til hovedskjermen og trykk på Add device(+).
Velg type enhet.
Du vil få spørsmål om wifi Nettverk. Velg ditt nettverk og passord.
Etter ei stund kan man se at det dukker opp en luftrenser på skjermen.
Og prosessen som nå går feiler, men fortvil ikke!
Kanskje må du ta strømmen på luftrenseren for at den skal koble seg på ditt nettverk først.
Nå kan du gå  inn på din lokale brannmur/router og se hvilken ipadresse luftrenseren har fått og eventuelt reservere denne.
Du behøver unit id og token også for å få til å kommunisere.
Dette kan du få ved å installere et kommandolinjeverktøy som heter miio med følgende
kommando:
npm install -g miio
Kjør så kommandoen Miio discover fra et dosvindu.
Alle dine Miio enheter vil da skrive ut i dette formatet på skjermen ettersom de blir funnet på
nettverket ditt:

Device ID: 48765421
Model info: zhimi.airpurifier.m1
Address: 192.168.100.9
Token: token-as-hex-here via auto-token
Support: At least basic

Mer info om dette verktøyet her.

Xiaomi’s luftfukter (Air huidifier 2)

Vi har også Mqtt programvare klar for denne.
Det fungerer perfekt med et automasjonsystem som HomeSeer Hs3 og er også kompatibelt med de fleste andre automasjonsystemer som støtter Mqtt protokollen.
Testene viser at fuktigheten hodes jevnt mellom 40 og 50%. Tidligere var den mellom 25 og 35%. For tørr luft kan føre til sår hals, såre øyne, hudutslett mm.

Ta kontakt med oss for mer info.