![]() |
|
Speed Meter - Verze k tisku +- XBMC-Kodi.cz (https://www.xbmc-kodi.cz) +-- Fórum: KODI - Doplňky (https://www.xbmc-kodi.cz/forum-kodi-doplnky) +--- Fórum: Programy a hry (https://www.xbmc-kodi.cz/forum-programy-a-hry) +--- Téma: Speed Meter (/prispevek-speed-meter) Stran:
1
2
|
Speed Meter - JiRo - 30.3.2022 Zobrazení on-line měření rychlosti komunikace v Kodi dělám většinou přes funkce systému. Napadlo mě, že by možná bylo zajímavé, mít takovou funkci přímo v Kodi. Zkombinoval jsem to s tím, že bych se rád naučil něco více o programování addons (plugin i scriptů) a tak v roce 2022 na jeden zátah a přes víkend vznikla první a dosud neveřejná verze addon Kodi Speed Meter, který online vyhodnocuje a zobrazuje rychlost komunikace na vybraném rozhraní. První pokus dopadl vcelku dobře, dlouho jsme to používal jen pro vlastní potřebu, ale kvůli naléhání přátel jsem se nakonec rozhodl, že aktuální verzi zvěřejním. Trvalo to dlouho, protože jsme stále váhal, zda dolněk vypustit mezi lidi i přesto, že není dokonalý a také proto, že jsem ho vytořil v době, kdy jsem ještě neměl takové zkušenosti, jako mám nyní, kdy bych doplněk koncipoval trochu jinak, lépe a dokonaleji. Dalším důvodem bylo, že ne všechny funkce, tak, jak jsem si je naplánoval, jsme dotáhl do konce. V některých případech, hlavně v nastavení doplňku, jsou tedy nedostupné. Chtěl bych, pokud se k tomu dostanu, je postupně dokončit a uvolnit a možná, pokud bude chuť a schopnosti, doplněk překlopit do nějaké dokonalejší verze. 2.0. To ovšem neznamená, že na stávající verzi nebudu dále pracovat podle toho, jakou budu od vás dostávat zpětnou vazbu. Budou-li to náměty smysluplné a já se na jejich realizaci budu cítit, klidně je ještě do stávajcíí verze zahrnu. [attachment=11048]Předkládám první veřejnou verzi doplňku Speed Meter, kterou je možné zařadit do mé skupiny tzv. Easy Tols. Něco málo k řešení Koncipované je to jako kombinace program doplňku částí script a service, pracující de facto jako dvojice klient - server, které si vyměňují data přes UDP socket komunikaci. Fungovat by to mělo v systémech *ELEC. Já to mám 100% ověřené v LibreELEC a CoreELEC verzí 20 a 21. Teoreticky by to tedy mělo fungovat i v Linux, ale protože jsou v části service využívány systémové příkazy (ifconfig, sed a další), může záležet na tom, jaké verze těchto příkazů budou v konkrétním systému použity. Teoreticky by to také mohlo fungovat i ve Windows (a vlastně mi to už fungovalo), ale byly s tím v poslední době nějaké problémy, tak jsem zatím tuto možnost v distribuované verzi zakázal. Část service v roli server nedělá nic jiného, než v periodě (v dané verzi je ta perioda pevně 5 s) zjišťuje počet přenesených byte na síťovém rozhraní (v dané verzi je to rozhraní pevně nastaveno na eth0) a z něj pak spočítá průměrnou rychlost komunikace za tuto periodu. Část script, v roli klient, má na starosti gui funkce. Součástí řešení, na které je funkce postavena, je i definiční soubor skinu, který script pro zobrazení používá. Implicitně se používá default, součástí stávající verze jsou ale i explicitní definice pro skin Estuary, případně Estuary Easy. Tady by to asi chtělo vysvětlení. Definiční soubor skinu je vlastně předpis, podle kterého doplněk zobrazuje to, co zobrazovat má. Protože v tomto případě je množství infomací, které je potřeba do okna dostat, enormě velké a soustředěné na malé ploše, zvolil jsem při prvním návrhu, který jsem dělal pro Estuary, nejměnší možný font font_flag., a pro Estury Easy si dokonce vytvořil font ještě měnší, font_flagL Tyto fonty se v ostatních skinech nevyskytujeí resp. se tam nějaký podobný vyskytovat může, ale pod jiným názvem. Spustí-li se tedy script v Kodi s jiným skinem, je nahrazen tzv. default fontem daného skinu, který má zpravidla větší velikost. To pak vede k tomu, že se zobrazení stane nečitelným. Já jsem tedy postupoval tak, že pro default skin v doplňku jsem pro tato zobrazení zvolil font10, který ještě zvolenému rozložení zobrazení jakž takž vyhovuje. Znamená to, že u skinů, které font10 používají také, nebo skiny, jejichž default font je stejně velký (nebo menší) jako font10, je zobrazení v pořádku. Pro jiné skiny to ale platit nemusí. Ono tam těch problémů je ještě více, ale nebudu se už do jejich popus pouštět protože to není podstatné. Pokud si někdo doplněk nainstaluje a spustí doplněk a uvidí, že se mu zobrazují nesmyly, může mě zde požádat a já pro něj explicitní definici pro jeho skin vyrobím a umístím do nové verze doplňku. To, které typy skinů jsou s doplňkěm kompatibilní, ať už jako default, nebo explicitně, uvedu zde a zároveň to bude vždy uvedeno v popisu dané verze doplňku. Jaké funkce dnes doplněk nabízí Funkce, které jsou k dispozici:
Volba funkcí se zobrazí v záhlaví okna po stisku klávesy OK/ENTER. Ukončení zobrazení volby funkcí pomocí klávesy BACK/BACKSPACE/... Pohyb po jendotlivých položká pomocí kurzorových kláves RIGHT/LEFT. K dispozici jsou funkce, které se volí nebo ovládají stiskem klávesy OK/ENTER:
Kromě funkcí v nastavení doplňku, které jsou momentálně nedostupné, jsou to:
Doplněk ke stažení Aktuální verze doplňku v zip formátu ke stažení a instalaci v Kodi je níže připojena. RE: Speed Meter - jkmh - 13.4.2022 @JiRo: Hezká práce. Předpokládám (doufám), že budeš ochotný se se svým počinem podělit i s ostatními. Jsem programováním políbený mnohem méně než ty. Zkoušel jsem něco podobného, ale jednoduššího vytvořit také, ale bez úspěchu. Resp. bez trpělivosti, protože vše dělám jen systémem pokus/omyl. Pokud se jedná o změny/úpravy ve skinu, s tím nemám problém, ale skripty/service je už na mně moc. RE: Speed Meter - JiRo - 13.4.2022 @jkmh Samozřejmě, že to zveřejním, jinak bych tady o tom nepsal. Jen na to mám málo času, takže tomu věnuji maximálně pár desítek minut týdně. Přes Velikonoce ale snad času najdu více... RE: Speed Meter - JiRo - 11.12.2024 Tak nakonec to trvalo přes 2 roky a já nyní představuji první veřejnou tzv. Alpha verzi doplňku Speed Meter. Ke stažení ji najdete v 1. příspěvku tohoto támatu. Je to vydané nahonem, protože před Vánocemi toho asi už moc nestihnu a byl bych rád, kdyby mi přišly nějaké reakce od uživatelů, kteří si doplněk nainstaluji a budou ho používat. Přečtěte si prosím omezení, jaké tato verze má. A aby to skutečně nezapadlo, napíši to i zde:
RE: Speed Meter - jkmh - 11.12.2024 Vánoční dárek? Večer vyzkouším. ![]() Edit: jen drobná poznámka. Podle popisu je zatím zprovozněné jen eth0. Možná, že by bylo dobré v popisu k nefukčním systémům přidat i *ELEC a linux, pokud jsou na wifi. RE: Speed Meter - JiRo - 11.12.2024 @jkmh: OK, doplním. A zároveň ještě zkusím to wifi v další verzi přidat. Zatím jenom výběrem z předdefinovaných rozhraní. Musím se podívat, jaké všechny názvy rozhrní to může mít. Že bych to načetl přímo ze systém, to asi tak rychle dohromady nedám. Ale zkusím to také. RE: Speed Meter - jkmh - 11.12.2024 No, já to mám v appce takhle Kód: if os.name == 'posix': # LinuxRE: Speed Meter - JiRo - 11.12.2024 @jkmh: Jo jo, tohle fungovat bude a asi to nějak tak zatím udělám. Ale to je speciální i když asi ten nejčastější případ, když máš na HW právě jen jedno rozhraní eth a jedno wifi. Ale stačí, aby si někdo přidal nějaké další rozhraní, např. přes USB nebo si ten *ELEC pouštěl na virtuálce nebo "co já ještě vím", a už to tak jednoduché nebude. Asi nejlepší řešení (zatím) bude mít možnost v nastavní nastavit default rozhraní, přes které je systém připojený ven. To se zjistit dá v Linux přes route. To udělám asi jako první variantu řešení. RE: Speed Meter - jkmh - 11.12.2024 To s tebou naprosto souhlasím. Další postřehy: Po instalaci se musí Kodi restartovat, aby se spustila služba. To jsem u tebe nikde nečetl a ne každého to musí trknout. Pokud jsem to přehlédl, předem se omlouvám. Během instalace na mě vyskočila chyba doplňku - podrobnosti bla, bla, bla. V logu: Kód: Error Type: <class 'FileNotFoundError'>Ničemu to nevadí, vše je funkční. Je možné, že si toho hodně lidí ani nevšimne. RE: Speed Meter - JiRo - 11.12.2024 Práce kvapná, málo platná. ![]() Tak moc jsem pospíchal, až jsem zapomněl, že mám v doplňku implementovanou experimentální funkci vytváření journal-u. Ona vliv na funkci nemá, ale zapisuje data na disk do datového adresáře doplňku. A to by se dlouhodobě asi vašim SD kartám, USB flash nebo mmc pamětem moc nelíbilo. Vytváření journal-u jsem tedy ve verzi 1.0.1 vyhodil. Stačí přeinstalovat a příležitostně z adresáře .../userdata/addon_data/script.speedmeter smazat soubor nebo soubory *.csv. Dá se to samozřejmě provést i z Kodi ve Správci souborů. Omlouvám se! @jkmh: Ta chyba souvisí s něčím, co tam nemá být. Ve verzi 1.0.1 je už mezitím opraveno, vyzkoušej. Ta nutnost restartu mě překvapuje. Na to se tedy ješt podívám. Jinak díky za testování a poznatky. RE: Speed Meter - jkmh - 11.12.2024 Vím, že tě štvu. Chtěl jsem ti dát echo dřív než vypustíš další verzi.
RE: Speed Meter - JiRo - 11.12.2024 @jkmh: Ale ona by v té verzi 1.0.1 už být neměla. Byla právě v tom journalu. Tedy alespoň si to tak myslím. Když jsem ho vyhodil, vyhodil jsem (snad) i tu chybu. @jkmh: Tak jsem doplněk odinstaloval i se smazáním dat, a pak restartoval Kodi, abych to měl úplně čisté. A potom znova doplněk nainstaloval. A mně se ta service normálně rozjela sama. A takhle to má fungovat a funguje to u všech doplňků, takže nevím, proč to tobě nezafungovalo stejně. Záhada. RE: Speed Meter - jkmh - 11.12.2024 Tak jsem v1.0.0 odinstaloval, aby se všechno smazalo. V1.0.1 jsem nainstaloval. Chybová hláška už nevyskočila. I měření se spustilo bez restartování. Nevím, proč předtím měření naběhlo až po restartu. Takže OK. Ještě bych se přimlouval, aby defaultní nastavení bylo download. Myslím, že to bude uživatele zajímat více. ![]() Edit: Odinstaloval a restartoval, aby se všechno smazalo RE: Speed Meter - JiRo - 11.12.2024 @jkmh: Jasně, ta service se nespustila kvůli té chybě. RE: Speed Meter - jkmh - 11.12.2024 Aha. Ještě jedna věc, kterou zřejmě neovlivníš. Spuštěním vyběhne zatížení CPU na +-85%. Samozřejmě s tím i teplota. Předpokládám, že spuštěním něčeho náročnějšího společně s appkou se budou slabší boxy přehřívat a kousat. Jinak
RE: Speed Meter - JiRo - 11.12.2024 @jkmh: No, toho zatízení jsem se trochu bál. Já doma žádný slabší box nemám, na všech mých se žádný nárůst teplot nekoná, ani není vidět žádný nárůst zatížení. Ale je to divné. Ten 5 sekundový cyklus v service za to určitě nemůže. Tak Jedině snad to zobrazení. To asi bude ten problém. Celé se to pořád dokola překresluje a všechno to počítá CPU. Není to video, aby se do toho zapojila GPU. Takže ten problém bude asi tam. Já to původně řešil trochu jinak a docela komplikovaně, protože jsem měl z toho překreslování obavy, ale když jsem zjistil, že to moje CPU v pohodě stíhá, tak jsme to udělal jednoduše. A asi to byla chyba. No, ukazuje se typická slabina levných boxů. Ony jsou optimalizovány na video a zpracování v GPU, ale jak po nich chceš nějaký výkon CPU, tak je zle. No, nic jiného, než že to někdo nebude moci používat, se nestane. RE: Speed Meter - jkmh - 11.12.2024 To nic. Třeba to nebude tak zlé. Jsou to první postřehy, na sekvencích pár vteřin dlouhých. Ono je také vidět, že CE není na vícevláknový provoz moc optimalizované. Jedno vlákno těch +-85%, zbývající 3 vlákna se vyloženě flákají kolem 2%. Na tom oteplování se také může podílet řešení (ne)chlazení mého boxu. Nemusí to být univerzální poznatek i na slabších boxech. RE: Speed Meter - JiRo - 11.12.2024 @jkmh: S tím "CE není na vícevláknový provoz moc optimalizované" je to jinak. To není vina CE, ale python-u. Ten neumí spouštět úlohy ve více jádrech. I když jsou napsané jako multithread, vždy všechny thready poběží jen v jednom vlákně/jádru CPU. U vlastního Kodi, které je psané v C++, tak tam to funguje, ale u doplňků v python bohužel ne. RE: Speed Meter - jkmh - 11.12.2024 OK, ale to na výsledku nic nemění. Říkal jsem, že to asi neovlivníš. RE: Speed Meter - meda - 12.12.2024 Vyzkoušel jsem na třech zařízeních. RPi4 - LibreELEC - lan0 eth0 (kabel) - měří ...Moje chyba, opravuji! NUC7 - LibreELEC - wlan0 (WiFi) - neměří NUC7 - LinuxMint - eno1 (kabel) - neměří a nenaskočí ani horní popisky "download..." Je to větší změna parametrů, nebo stačí jen pojmenovat? Potom by nešlo např v menu jen ručně zapsat název rozhraní? |