03.1.2023, 23:07
(Tento příspěvek byl naposledy změněn: 09.1.2023, 7:58 uživatelem JiRo.
Důvod úpravy: Překlep
)
Hrátky s led
Pro výše popsaná řešení trvale běžícího systému (CoreELEC) na HW Beelink GT King instalace, která kromě Kodi zajišťuje i funkce TVServeru pro celou domácnost jsem chtěl nějak uživatelsky využít led diody boxu
Pozn. Ve skutečnosti rozvěcují tyto diody oči lebky, která je vyobrazené na horní straně box-u.
Oči svítí jednu ze dvou barev. Červenou, která se rozsvěcí při zapnutí napájení a zelenou, jejíž rozvícení se dá definovat v nastavení CoreELEC. Já jim mám nastavenou jako reakci na přijetí IR povelu z DO. V mém případe IR povel vysílá pouze tlačítku POWER, což je přesně to, co potřebuji vědět. Tedy že jsem DO správně namířil a povel byl přijatý.
Dlouho jsem se snažil zjistit, jak by se v CoreELEC dala led rozvěcet z prostředí pythonu, ale nikdo mi nebyl schopen poradit, až jsem v jednom článku narazil na to, jak jsou tyto věci řešeny obecně v Linux-u. Pak už to bylo celkem jednoduché.
Přirazení akce, která rozvítí led, je v tomto případě definováno v /sys/class/leds/sys_led/trigger. Po zadání
pak dostaneme seznam všech aktivit, které mohou stav led ovlivnit:
Aktuálně nastavená hodnota je v tomto případě [rc-feedback], což je právě ona v CoreELEC nastavená reakce na přijetí IR povelu z DO. Rychlý test způsob využití potvrdil. Změnu režimu lze provést zapsáním požadovaného kódu. Trvalého rozsvícení led tedy např. dosáhneme příkazem:
Mně v Kodi běží trvale service, která provádí rychlé periodické dopočty některých proměnných, takže jsem ji využil k tomu, že mi periodicky a střídavě (po 1s) zapisují dva režimy:
Kromě toho mám ještě doplněný další script, který mi led rozsvěcí v jiné periodě, pokud Kodi neběží, ale v Tvheadend probíhá nějaké nahrávání a nebo je k němu připojen nějaký jiný Kodi klient. V tomto případě s pauzou 5 sekund led rychle po sobě zabliká (s periodou 0.4 sekundy) a počet těchto rychlých zabliknutí je dán součtem počtu právě probíhajících nahrávek plus počet aktivních klientů připojených k Tvheadend. To už je ale zase záležitost sh scriptu běžícího v systému mimo Kodi, který je aktivní pouze v okamžiku, kdy Kodi neběží.
Nejde o žádnou důležitou funkci, spíše jsem si jen v době delší nemoci pohrál, ale možná to pro podobné hračičky bude zajímavá inspirace. Použít to lze u všech *ELEC a Linux instalací. Je ale třeba počítat, že konečné adresy /sys/class/leds/... se mohou v jiných systémech nebo verzích lišit, a že i HW může být různý (tzn. nemusí to nutně být Beelink GT King).
Pro výše popsaná řešení trvale běžícího systému (CoreELEC) na HW Beelink GT King instalace, která kromě Kodi zajišťuje i funkce TVServeru pro celou domácnost jsem chtěl nějak uživatelsky využít led diody boxu
Pozn. Ve skutečnosti rozvěcují tyto diody oči lebky, která je vyobrazené na horní straně box-u.
Oči svítí jednu ze dvou barev. Červenou, která se rozsvěcí při zapnutí napájení a zelenou, jejíž rozvícení se dá definovat v nastavení CoreELEC. Já jim mám nastavenou jako reakci na přijetí IR povelu z DO. V mém případe IR povel vysílá pouze tlačítku POWER, což je přesně to, co potřebuji vědět. Tedy že jsem DO správně namířil a povel byl přijatý.
Dlouho jsem se snažil zjistit, jak by se v CoreELEC dala led rozvěcet z prostředí pythonu, ale nikdo mi nebyl schopen poradit, až jsem v jednom článku narazil na to, jak jsou tyto věci řešeny obecně v Linux-u. Pak už to bylo celkem jednoduché.
Přirazení akce, která rozvítí led, je v tomto případě definováno v /sys/class/leds/sys_led/trigger. Po zadání
Kód:
cat /sys/class/leds/sys_led/trigger
Kód:
none kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock timer oneshot heartbeat backlight gpio cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 default-on transient panic emmc sd sdio rfkill0 rfkill1 rfkill2 [rc-feedback] rfkill3
Kód:
echo default-on > /sys/class/leds/sys_led/trigger
Kód:
echo default-on > /sys/class/leds/sys_led/trigger
echo rc-feedback > /sys/class/leds/sys_led/trigger
Nejde o žádnou důležitou funkci, spíše jsem si jen v době delší nemoci pohrál, ale možná to pro podobné hračičky bude zajímavá inspirace. Použít to lze u všech *ELEC a Linux instalací. Je ale třeba počítat, že konečné adresy /sys/class/leds/... se mohou v jiných systémech nebo verzích lišit, a že i HW může být různý (tzn. nemusí to nutně být Beelink GT King).