01.11.2025, 22:45
(Tento příspěvek byl naposledy změněn: 02.11.2025, 9:58 uživatelem JiRo.
Důvod úpravy: Překlepy, doplnění informace.
)
Přepínání režimu komunikace BT/IR
Tak se z toho trochu neplánovaně stal seriál, ale já si myslím, že když to budu popisovat krok po kroku, že to pomůže pochopit, jak to celé funguje.
Takže jsem udělal to, co jsem si myslel, že by mělo pomoci, a skutečně to pomohlo. Umístil jsem do adresáře .config/sleep.d (defaultně adresář není vytvořený, je tedy třeba použít mkdir a adrsář před tím vytvořit) soubor nazvaný bluetooth.power. Ta přípona power je důležitá, bez ní to fungovat nebude! Já jsem na to zapomněl a trápil jsme se s tím pěkně dlouho. Principem funkce je to, že při každém uspání a probuzení systém postupně spustí všechny soubory s příponou .power, které v adresáři najde a jako paramer jim předá řetěze "pre" nebo "post" podle toho, zda se systém právě uspává nebo probouzí.
Obsah mého souboru bluetooth.power je tento:
Ty dvě dvojice zakomentářovaných řádků jsem tam nechal z mých pokusů, kdy jsem zjišťoval, zda bude stačit odpojit pouze DO nebo vypnout celé bluetooth a jestli nebude potřeba tam vložit nějakou prodlevu, protože operace s BT zařízeními chvíli trvají. Zatím se ukazuje, že ani jedno není potřeba.
Obsahem proměnné REMOTE_MAC je MAC adresa ovladače. Tu musíte samozřejmě změnit a dosadit tam MAC adresu vašeho ovladače. Získáte ji takto:
![[Obrázek: vZp5c6s.png]](https://i.imgur.com/vZp5c6s.png)
A to je vše. Teď mi ovladač funguje v režimu BT, pokud je CE a Kodi spuštěné (a samozřejmě pokud je ovladač spárovaný a připojený), a systém ho vidí jako HID zařízení se všem výhodami (bude fungovat longpress) a nevýhodami (případné doplnění nedefinovaných tlačítek bude o něco složitější). Pokud v této chvíli stisknu tlačítko POWER, zachytí ho Kodi a na základě mapování a nastavení v Kodi box buď vypne nebo uspí. V okamžiku, jakmile se ale CE/box vypne nebo uspí, tak ovladač funguje v režimu IR. V této chvíli box reaguje pouze na povel tlačítka POWER a box se po jeho stisku spustí nebo probudí.
To ale samozřejmě není všechno. BT kódy DO některých tlačítek neodpovídají tomu, jaké CE resp. Kodi očekávají, v některých případech dokonce pro taková tlačítka ani nemají žádné funkce. Jak vyřešit tohle, k tomu se vrátím v některém z dalších přípěvků.
Tak se z toho trochu neplánovaně stal seriál, ale já si myslím, že když to budu popisovat krok po kroku, že to pomůže pochopit, jak to celé funguje.
Takže jsem udělal to, co jsem si myslel, že by mělo pomoci, a skutečně to pomohlo. Umístil jsem do adresáře .config/sleep.d (defaultně adresář není vytvořený, je tedy třeba použít mkdir a adrsář před tím vytvořit) soubor nazvaný bluetooth.power. Ta přípona power je důležitá, bez ní to fungovat nebude! Já jsem na to zapomněl a trápil jsme se s tím pěkně dlouho. Principem funkce je to, že při každém uspání a probuzení systém postupně spustí všechny soubory s příponou .power, které v adresáři najde a jako paramer jim předá řetěze "pre" nebo "post" podle toho, zda se systém právě uspává nebo probouzí.
Obsah mého souboru bluetooth.power je tento:
Kód:
#!/bin/sh
REMOTE_MAC="00:16:2A:80:6F:4C"
case "$1" in
pre)
/usr/bin/bluetoothctl disconnect $REMOTE_MAC
# bluetoothctl power off
# sleep 5
;;
post)
# sleep 5
# bluetoothctl power on
/usr/bin/bluetoothctl connect $REMOTE_MAC
;;
esac
exit 0Ty dvě dvojice zakomentářovaných řádků jsem tam nechal z mých pokusů, kdy jsem zjišťoval, zda bude stačit odpojit pouze DO nebo vypnout celé bluetooth a jestli nebude potřeba tam vložit nějakou prodlevu, protože operace s BT zařízeními chvíli trvají. Zatím se ukazuje, že ani jedno není potřeba.
Obsahem proměnné REMOTE_MAC je MAC adresa ovladače. Tu musíte samozřejmě změnit a dosadit tam MAC adresu vašeho ovladače. Získáte ji takto:
![[Obrázek: vZp5c6s.png]](https://i.imgur.com/vZp5c6s.png)
A to je vše. Teď mi ovladač funguje v režimu BT, pokud je CE a Kodi spuštěné (a samozřejmě pokud je ovladač spárovaný a připojený), a systém ho vidí jako HID zařízení se všem výhodami (bude fungovat longpress) a nevýhodami (případné doplnění nedefinovaných tlačítek bude o něco složitější). Pokud v této chvíli stisknu tlačítko POWER, zachytí ho Kodi a na základě mapování a nastavení v Kodi box buď vypne nebo uspí. V okamžiku, jakmile se ale CE/box vypne nebo uspí, tak ovladač funguje v režimu IR. V této chvíli box reaguje pouze na povel tlačítka POWER a box se po jeho stisku spustí nebo probudí.
To ale samozřejmě není všechno. BT kódy DO některých tlačítek neodpovídají tomu, jaké CE resp. Kodi očekávají, v některých případech dokonce pro taková tlačítka ani nemají žádné funkce. Jak vyřešit tohle, k tomu se vrátím v některém z dalších přípěvků.
