it:iot:xiaomi-mi-robot-vacuum-mop-2-ultra

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
it:iot:xiaomi-mi-robot-vacuum-mop-2-ultra [2023/01/17 22:13] Petr Nosekit:iot:xiaomi-mi-robot-vacuum-mop-2-ultra [2023/01/17 22:47] (aktuální) – [raw_command, get_property_by, call_action_by] Petr Nosek
Řádek 64: Řádek 64:
 </code> </code>
  
 +Pro můj model je omezená možnost příkazů, skrze miiocli. Našel jsem ovšem nějaké záhadný příkazy, o kterých jsem dlouho bádal, jak zavolat. V [[https://github.com/rytilahti/python-miio|dokumentaci miiocli]] jsem dohladal v části Controlling MIoT devices příkazy, který by mi mohly vysvětlit fungování. 
  
 +Podařilo se mi spustit pouze tento:
  
 +<code bash>
 +poetry run miiocli genericmiot --ip 192.168.1.108 --token sifrovacitoken actions
 +</code> 
  
 +Ale z výstupu jsem nebyl moc moudrý. Očekával jsem, že kromě actions se mi podaří jesště zavolat status, set a call, ale to se mi nepodařilo. 
 +
 +
 +==== příkazy: raw_command, get_property_by, call_action_by ====
 +
 +U těchto funkcí jsem pořád nemohl přijít na funkčnost, až po několika hodinách jsem zkoušením a hledáním ve zdrojovém kódu přišel na odpověď.
 +
 +Ze [[https://github.com/rytilahti/python-miio/blob/master/miio/integrations/vacuum/dreame/dreamevacuum_miot.py|zdrojového kódu]] jsem vyčetl v úvodu že například parametr **locate** má hodnotu: **{"siid": 7, "aiid": 1}**. 
 +
 +Později jsem vyčetl, že čísla siid a aiiid + vysvětlení jaké funkce volají jsou dokumentaci mého mopu: https://home.miot-spec.com/spec/dreame.vacuum.p2150a
 +
 +A jak tedy zavolat příkaz?:
 +
 +<code bash>
 +miiocli dreamevacuum --ip 192.168.1.108 --token sifrovanytoken --model dreame.vacuum.p2150a raw_command action '{"siid": 7, "aiid": 1}'
 +</code>
 +
 +
 +To byla akce. Pro čtení zase tento příkaz - vrací mi hodnotu baterie:
 +
 +<code bash>
 +miiocli dreamevacuum --ip 192.168.1.108 --token sifrovanytoken --model dreame.vacuum.p2150a raw_command get_properties '[{"siid": 3, "aiid": 1}]'
 +</code>
 +
 +Ještě by mělo fungovat set_properties na konci a vrátit pole s objektem json, kde bude siid, aiid a typoval bych, že hodnota bude value. To jsem ale nezkoušel.
 +
 +A pak mě napadlo vyzkoušet i funkce call_action_by a get_property_by a fungovalo to:
 +
 +<code bash>
 +miiocli dreamevacuum --ip 192.168.1.108 --token sifrovacitoken --model dreame.vacuum.p2150a call_action_by 7 1
 +miiocli dreamevacuum --ip 192.168.1.108 --token sifrovacitoken --model dreame.vacuum.p2150a get_property_by 2 1
 +</code>
 +
 +
 +==== shrnutí ====
 +
 +K dokonalosti mi bohužel schází implementace výběru konkrétní místnosti, kterou chci vysávat. To se mi zatím nepodařilo. 
 +Při hledání jsem narazil na projekt, kdy už někdo vytvářel kobminaci Home Assistenta, Noderedu a Xiaomi vysavače: [[https://github.com/victorwads/mi-home-api|Home API to Control Home Appliance with Hassio, Motion]]. Pak jsem ale narazil ještě na zajímavější projekt [[https://github.com/Tasshack/dreame-vacuum|Dreame vacuum integration for Home Assistant]] u kterého to vypadá, že Home Assistant má kompletní implementaci i pro můj model. Ke zkoušení Home Assistant jsem se ale ještěš nedostal. 
  • it/iot/xiaomi-mi-robot-vacuum-mop-2-ultra.1673993627.txt.gz
  • Poslední úprava: 2023/01/17 22:13
  • autor: Petr Nosek