Reboot boxu z DO - Verze k tisku +- XBMC-Kodi.cz (https://www.xbmc-kodi.cz) +-- Fórum: Obecná diskuse (https://www.xbmc-kodi.cz/forum-obecna-diskuse) +--- Fórum: Tipy, triky a návody (https://www.xbmc-kodi.cz/forum-tipy-triky-a-navody) +--- Téma: Reboot boxu z DO (/prispevek-reboot-boxu-z-do) |
Reboot boxu z DO - JiRo - 04.9.2021 Měl jsme tuto funkci vyřešenou u všech mých boxů, pokud jsme je ovládal přes Logitech Harmony One. Tam jsem si na to prostě vyhradil nepouživané kódy tlačítek v příslušném "Device". Poté, co jsem přešel na trochu jiný typ DO, tak mi ta funkce chybí. Zejména v době, kdy zkouším a testuji nové verze Kodi a binárních addon, kde k "zamrznutí" Kodi není daleko. Čekat až se Kodi při neopatrné práci vzpamatuje nebo dokonce box odpojovat od napájení není jednak pohodlné, není to ani ohleduplné k HW a navíc, protože některé funkce testuji na hlavním Kodi v domácnosti, protože tak nejlépe některé funkce dlouhoodobě prověřím, nemohu čekat, že některé postupy budou provádět ostaní uživatelé. Dále popisované řešení je jen jakési "udělátko" a pro ostré nasazení pro širší veřejnost by bylo třeba, aby se ho ujal někdo zkušený a učesal to, případně využil lépe dostupné funkce a nástroje/aplikace systému. Já jsem například laboroval se systemd, ale zjistil jsem že pro tak krátké časy, které potřebuji sledovat a vyhodnocovat, je lepší to vytvořit celé na bázi sh scriptů. Proto to publikuji tak, jak to je, a přidávám stručný popis. Můžete si hrát, případně tomu dodat nějakou lepší fazónu. Přivítám i nějaké nápady... Předpoklady:
V první řadě je třeba umět odchytit povel z DO. Tedy definovat tabulku pro aplikaci ireexec. Ta může vypadat třeba takto (jde o textový soubor): Kód: begin Kód: ... Vlastní řešení je postavené na dvou sh scriptech, které jsem umístil do podadresáře rescsue mého oblíbeného adresáře /storage/.config/scripts, ve kterém si takováto "udělátka" ukládám. Mám to tak už léta a všechny mé *ELEC implementace to mají stejné. První script, catch.sh je spouštěn stisky tlačíka POWER na DO a počet jejich stisknutí ukládá do souboru rescue.cnt. Zároveň spouští postupně jednotlivé instance scriptu clear.sh. První instance spustí čekání v daném časovém okně (zde je nastaveno 5 sekund). Pokud v tomto čase první script nenačítá nastavený počet tisknutí POWER tlačíka, tak se soubor smaže a nestane se nic. Pokud ale počet stisknutí překročí nastavený limit (zde je nastaveno také 5, ale počet stisknutí), spustí se příkaz reboot. Zde jsou oba scripty: Catch.sh Kód: #! /bin/sh Clear.sh Kód: #! /bin/sh Kód jsme poněkud nafoukl, je tam bohaté protokolování, včetně času, aby bylo vidět, jak to celé probíhá, log se ukládá do souboru rescue.log. Pro někoho možná nelogicky v okamžiku, než se zadá příkaz reboot, provede se o tom ještě notifikace v Kodi, i když na ni ve většině případů už nedojde. Ale to tam mám spíše pro ladění a efekt... Závěrem: Pro ty, kterým uvedené scripty nic neříkají nebo jim to není úplně jasné (popisu jsem nevěnoval moc velkou pozornost protože to celé je určeno spíše pro ty, kteří se vyznají v detailech a jistě princip pochopí), ještě jednou zběžné závěrečné shrnutí:
A ještě jedna poznámka: Někdo možná namítne, že by úplně stačilo ovládat vypnutí Kodi tak, že by se výše uvedeným postupem vypínal celý systém. Tzn. natvrdo po odchycení stisku tlačítka POWER zadat příkaz shutdown. Ano, to by šlo, a bylo by to jednodušší, ale má to jeden háček, to vypínání (a následné zapínání) trvá dlouho (včetně náběhu všech funcí Kodi), zatímco většina uživatelů chce za normální situace box při "vypnutí" pouze uspat, a pak ho zase přes DO probudit. Ten rozdíl mezi vypínáním/zapínáním a uspáním/probuzením je zásadní. Tak proto... RE: Reboot boxu z DO - meda - 05.9.2021 Asi to, co napíšu, není úplně pokračování tématu, ale... Pokud mi Kodi zamrzne, jen tak, že přestane vnímat povely z HDMI-CEC (tedy z D.O. od TV), použiji aplikaci Kore (Android remote) https://kodi.tv/article/new-kore-version-v251/ ...instalovanou na mobilní telefon. Musí fungovat spojení přes domácí síť. V rozvinovacím menu je volba Restartovat. Samozřejmě je to restart systému. U mne LibreElec na RPi4/3, trvá necelých 28 sec. RE: Reboot boxu z DO - Rossi D - 05.9.2021 Já používám toto (navolím si co potřebuji) → SSH button RE: Reboot boxu z DO - JiRo - 08.9.2021 @Rossi D: & @meda: Oběma díky za příspěvek do diskuse. Kore (a jakákoliv mobilní aplikace DO) na Kodi má smysl, pouze pokud to člověk používá běžně. Já, ani nikdo z mého okolí, ale DO na mobilu nepoužíváme. Je to prostě součást relaxu, konečně po celém dni odložit mobil a vzít si do ruky jednoduché DO. SSH Button je něco jiného, používám ho také, ale právě jen v případech údržby a práce na Kodi nebo jiných aplikacích v domácí síti, ale hlavně když jsem u někoho a "spravuju" mu Kodi/Tvheadend a nemám nebo mi nestojí za to startovat počtač pro přístup přes ssh. Naklonovat si pár povelů je věcí okamžiku. Ale že bych ssh button instaloval běžným uživatelům, to ais ne. Proto ta snaha řešit to přes zařízení, které pro ovládání běžně používají. Navíc, ta instrukce: "Když ti nejde nic v Kodi ovládat přes DO, stiskni 5x po sobě tlačítko na zapnutí a chvíli počkej, ono se to vzpamatuje," je jasná každému. RE: Reboot boxu z DO - Rossi D - 08.9.2021 @JiRo: Jsem si vědom, že příspěvek stran ovládání přes aplikaci z MT zrovna do tohoto vlákna nepatří (není to tu vzhledem k rozsáhlému návodu ani moc košer) a může se to zdát jako "drbání" levého ucha pravou rukou Řešení restartu via DO je samozřejmě někde jinde, telefon je taková "nouzovka" pro "state of emergency" u známého či když je přístroj aktuálně v ruce - což je u mne bohužel dost často (a ne nejsem závislák). SSH Button je mé jediné "jiné" ovládání kromě DO/TV, tak nějak jsem si na něj zvykl - ono to jeho použití není nijak časté a to co má udělat to udělá. Přišlo mi, že by byla škoda ho tu nezmínit a to právě tady v tomto vláknu, které mi onu aplikaci vlastně připomnělo a proto jsem ji zde i uvedl jako onu možnou "nouzovku" na cesty Omlouvám se za OT ! RE: Reboot boxu z DO - Tomik68 - 08.9.2021 V případě zamrznutí používám toto https://m.aliexpress.com/item/4001189495103.html?spm=a2g0n.orderlist-amp.item.4001189495103&aff_trace_key=3f7bc50be199479cb82c15309d2fd563-1626521857800-01589-_AmKZsd&aff_platform=msite&m_page_id=3051amp-xoMWpjguo5tdkqo4FyjHAg1631090494442&browser_id=7e6f143472d848a7bf8da6517288da8d&is_c=N RE: Reboot boxu z DO - meda - 08.9.2021 @JiRo: & @Rossi D: Každé zde uvedené řešení někomu pomůže. Děkuji. RE: Reboot boxu z DO - Onygzz - 08.9.2021 Jen se zeptám...to asi nejde aplikovat na ovládání přes HDMI-CEC ovladačem od TV? Jedná se tady jen o DO přímo boxu, ať už IR, nebo BT? RE: Reboot boxu z DO - JiRo - 08.9.2021 @Onygzz Jak už bylo popsáno, toto řešení je vytvořeno pro DO, kde alespoň jedno tlačítko (zde POWER) aktivuje přenos kódu pře IR. Je to proto, že taková DO existují, já je používám a hlavně proto, že dokážu stisk takového tlačítka v systému rozpoznat ještě před tím, než je jeho kód předaný do Kodi. Určitě by totéž šlo udělat u DO, které se v systému tváří jako klávesnice (to je většina DO android boxů) s RF přenosem (a USB dongelem) nebo BT, ale já to neumím. U HDMI-CEC by to ale bylo ještě složitější, protože tam je mezi zpracováním dat z HDMI-CEC v systému a v Kodi dost problematický vztah a i když využití HDMI-CEC komunikace na úrovni systému není tak složité, má vliv na to, jak jsou pak kódy tlačítek a dalších funkcí předávány do Kodi. Takže když to shrnu, to co je tu popsané, pro ovládání ovladačem (např. ovladačem TV) komunikujícím s Kodi přes HDMI-CEC, použít nelze (resp. já v současné chvíli nevím, jak by mohlo). RE: Reboot boxu z DO - Onygzz - 08.9.2021 Díky za vyčerpávající odpověď. Škoda, protože pokud by to šlo, bylo by to super. Myslím si, že spoustu lidí používá u TV boxů výhradně a jen ovladač od televize využívající funkci H-CEC. Pokud by tě napadlo, jak na to, určitě dej vědět :) Já tedy pro tyto případy používám mobil a buď přes SSH klienta, nebo přes nějaký ovladač aka Sybu atd. provedu reboot. RE: Reboot boxu z DO - meda - 08.9.2021 @Onygzz: @JiRo: Já mám vyzkoušené, že pokud Kodi zamrzne a přestane fungovat CEC ovládání Kodi, nefunguje zřejmě ani komunikace CEC se systémem. Aspoň moje TV Samsung (řady U) ztratí o funkčnosti informaci. Proto odhaduji, že předat kód pro vyvolání restartu už pak není možné a musí aspoň zůstat funkčnost jiného portu boxu, tedy IR nebo LAN. RE: Reboot boxu z DO - JiRo - 09.9.2021 @meda Jo, to je možné. Teoreticky by snad v tuto chvíli mohla roli Kodi převzít cec-client aplikace, ale je těžké jak ji aktivovat. Hele, měli bychom se asi obecně snažit soustředit se na to, aby Kodi implementace byla stabilní a potřeba restartu/rebootu tu vůbec nebyla. Tzn. u těch aplikací, kdy udělátka typu ssh button není praktické použít (manželky, malé děti, starší rodiče) nebo tam, kde není obvyké používat mobil jako DO, neexperimentovat s prerelease verzemi či dokonce nighties. Ta moje potřeba rebootu z DO se týká těch případů, kdy lidé vědomě a na základě nějaké potřeby provozují nestabilní verze na produktivních instalacích, a ta zas tak častá není. Já má třeba, kromě té instalace, kde testuji, ostatní instalace Kodi, kde ze zásady používám pouze stabilní verzi Kodi a všech addon, neexperimentuji tam s ničím, a tam mi Kodi snad nezamrzlo ještě nikdy. Ještě k té ztrátě komunikace HDMI-CEC s TV. Mohlo by se třeba zkusit monitorovat HDMI-CEC status a na jeho základě (tedy pokud komunikace vypadne) například spustit automatický restart/reboot. Problém je, že jak se sáhne do HDMI-CEC komunikace ze systému, tak to většinou zboří komunikaci z Kodi, takže nějaké periodické testování asi může být problém. Je to taková varianta Heisenbergova prinipu neurčitosti: "Můžeme se dozvědět, zda je komunikace funkční, ale zároveň ji tím učiníme nefunkční." RE: Reboot boxu z DO - meda - 09.9.2021 @JiRo: .....ano. Je myslím rozumné vrátit se k tvému prvnimu příspěvku. Myslíš, že lze pomocí čidlana boxu odchytávat komunikaci originálního TV D.O. (IR/BT) s TV? Například to 5x opakované stisknutí zvoleného tlačítka? RE: Reboot boxu z DO - JiRo - 09.9.2021 @meda Hmm, zajímavý problém. Tak snad by v Linux šlo spustit více instancí lirc. Tohle se dělá v případě, že je třeba na jednom systému přijímat/vysílat z/do víc směrů. Ale jeslti je tohle cesta, to teď nedokážu posoudit. S tímhle ti asi neporadím. RE: Reboot boxu z DO - jojovrtak - 15.9.2021 (08.9.2021, 7:12)JiRo Napsal(a): Pro ty, kterým uvedené scripty nic neříkají... Ahoj, som jeden znich a tento restart Kodi vCoreElec po stlačení 5x power by som ocenil. No strácam sa vtom čo/kde..? Možno jednoduchšie keby sa to pre nás nechápavých napísalo polopate. - do adresára /storage/.config/ som vytvoril zložku scripts a v nej zložku rescue a tam mám tie 2 .sh súbory, ale nereštartuje sa mi Kodi. //nereštartuje sa ani po vložení autostart.sh a keymaps.cfg, počkám na odpoveď - súbor autostart.sh som nenašiel, zrejme ho treba vytvoriť v .config? wiki už nefunguje https://wiki.openelec.tv/index.php/Autostart.sh Citace:... - aj ten keymaps.cfg treba vytvoriť v .config Citace:begin RE: Reboot boxu z DO - meda - 15.9.2021 ... https://wiki.libreelec.tv/configuration/startup-shutdown#autostart-sh RE: Reboot boxu z DO - JiRo - 15.9.2021 @jojovrtak Strašně se omlouvám , zapomněl jsem napsat, že oba soubory (catsh.sh i clear.sh) musí být (pokud jsou scripty napsané takto), nastavené jako spustitelné. Pokud jsi v adresáři, kde jsou umístěné, tak stačí zadat: chmod +x catsh.sh chmod +x clear.sh Pokud jsi jinde, tak vždy včetně celé cesty k nim. Ano, pokud autostart.sh nemáš, je třeba ho vytvořit. RE: Reboot boxu z DO - JiRo - 21.9.2021 Je zajímavé, jak se kruh uzavírá. Po hrátkách s řešením reboot boxu z DO jsem dospěl k úplně prapůvodnímu řešení ovládání uspávání/probouzení boxu na kterém běží *ELEC, které jsem používal už kdysi ještě u MediPortal a potom i Kodi pod Windows (poprvé nějakých 14 let zpátky), tedy zachycovat stisk POWER tlačítka (IR) v systému a vůbec to v Kodi neřešit. To mě vedlo k lehkému přepracování logiky ovládní, která vůbec nezávisí na tom, v jakém stavu je Kodi *):
RE: Reboot boxu z DO - JiRo - 24.10.2021 Drobné vylepšení, trochu jsem to učesal, přidal tam "hafo" notifikací a zápisů do systémového logu. Není to samozřejmě nutné, ale protože to dělám pro kamaráda, který to tak chce, tak to tak má. Tak jsem to všechno alespon udělal vypínatelné. Teď jsou funkce následující:
|