Co je potřeba
- Fibaro HC2/HCL s virtuálním zařízením pro ovládání robota (viz příloha).
- Nakonfigurovaný iRobot Roomba (Testováno s robotem Roomba 980) přes aplikaci iRobot.
- PC (Raspberry PI, stolní PC, ...) nebo NAS (Synology) s nainstalovaným Gitem a Node.js nebo npm.
Kompletní konfigurace v Gitu
Instalace repozitáře
Pro co nejjednodušší ovládání robota přes Fibaro se použije repozitář rest980 (odkaz na konci řešení) z Gitu. Jde o ovládání přes REST API. Pro integraci iRobota s Fibarem je toto nejjednodušší řešení.
Postup:
- Otevřete konzoli Git-Bash (Windows). Na PC s Linuxem stačí jen otevřít konzoli ve složce uživatele.
- Naklonujte Git repozitář pomocí příkazu
git clone https://github.com/koalazak/rest980.git
- Přejděte do adresáře rest980 pomocí příkazu cd rest980.
- Proveďte instalaci Node.js nebo npm v tomto repozitáři příkazem npm install.
- Poznámka: npm install lze provést jen v repozitáři. Nelze jej provést ve složce uživatele. Zahlásí chybu.
Pokud vše proběhlo v pořádku, tak by jste měli vidět výstup z konzole. Pokud ne podívejte se níže do kapitoly Řešení nejčastějšíchproblému.
Konfigurace repozitáře
Pokud máte již repozitář nainstalovaný, tak je třeba provést některá nastavení a zjistit heslo a blid (uživatelské jméno) vysavače.
Postup:
- Proveďte příkaz pro zjisštění hesla npm run getpassword <robot IP>.
- Příklad npm run getpassword 10.10.10.10
- Stiskněte a držtena robotovi tlačítko home po dobu cca 2 sekund, dokud nezazní tón a tlačítko CLEAN se nerozsvítí zeleně.
- Stiskněte jakoukoliv klávesu.
Pokud vše proběhlo v pořádku měl by se vám zobrazit JSON výstup. Pokud ne a uvidíte tam chybu, pokračujte níže do kapitoly Řešení nejčastějších problémů.
- Otevřete v textovém editoru (např. Notepad++) soubor v default.json.
- Nachází se v C:\Users\[Username]\rest980\config\ pro Windows.
- Nachází se v ~/rest980/config pro linux.
- Vyplňte blid a heslo a IP adresu a verzi na 2 (pokud je ver 2, viz obrázek výše).
- V základním nastavení bude API server poslouchat na portu 3000. Pokud vám port 3000 nevyhovuje, lze jej nastavit na jiný. Doporučuje se port větší než 1024.
- Soubor uložte.
Spuštění API serveru
Pokud jste provedli kroky výše, tak již zbývá jen spustit API server. Díky němu budete moc ovládat robotický vysavač Roomba z Fibara.
Proveďte příkaz DEBUG=rest980:* npm start
- Lze spustit jen příkazem npm start. Debug ale vypíše i něco navíc (viz obrázek níže o poslouchání na portu 3000).
Kompletní konfigurace ve Fibaru
- Přihlašte se do řídící jednotky.
- Přejděte do Zařízení (Devices)
- V levém menu zvolte Přidat nebo Odebrat zařízení (Add or Remove device)
- Importujte virtuální zařízení (příloha tohoto článku).
- Vyplňte IP adresu a Port.
- IP adresa: PC nebo NAS, kde běží api server (rest980)
- Port: port, který jste zvolili v souboru default.json. Pokud jste port neměnili, tak by měl být 3000.
- (Volitelné) Přidejte virtuálnímu zařízení a jeho tačítkum ikony.
- Uložte nastavení kliknutím na ikonu diskety vpravo.
Ukázky
Webové rozhran Fibara:
Android aplikace
Řešení nejčastějších problémů
Problém: Zobrazí se npm command not found.
Řešení: Nainstalujte Node.js nebo npm a restartujte Git. Po restartu Gitu najděte npm přes příkaz where npm nebo jej najděte ve výpisu přes příkaz echo $PATH.
Problém: Zobrazí se, že process.stdin.setRavMode(true) není funkce.
Řešení: Přejděte do složky (repozitáře) rest980. Odtud pokračujte do node_modules -> dorita980 -> bin. Zde otevřete v textovém editoru soubor getpassword.js a process.stdin.setRavMode(true) zakomentujte tak, že před funkci napíšete dvě lomítka (//). Například //process.stdin.setRavMode(true).
Odkazy
Repozitář rest980: https://github.com/koalazak/rest980