E-shop MojeTT

Rocrail – rozjíždíme kolejiště přes počítač (3) – Raspberry Pi

Minule to fungovalo celé na notebooku, dneska jsem se pokusil rozchodit Rocrail na Raspberry Pi jako „server“ a připojovat se k němu bezdrátově. Rocrail je totiž v jedné verzi připravený pro běh na ARM procesorech (např Raspberry Pi), a nabízí díky rozdělení „server“ a „klient“ možnost provozovat server na jiném zařízení, než klienta a klienti se k němu přes domácí wifi připojují (šlo by to i zvenku, ale asi nechcete řídit kolejiště z práce).

Pointa je tedy ta, že se nainstaluje serverová část na minipočítač, ten se nechá běžet „pod kolejištěm“ nonstop, a zrovna Rocrail slibuje možnost připojit se přes mobilní appku, webové rozhraní nebo přes klasický Rocview, který slouží i jako nastavovat program. V Rocview (pouze) jde konfigurovat změny nebo přidávání lokomotiv, webové verze pak slouží už jen jako prohlížeč hotového bez možnosti úprav. To vše bezdrátově. Výhoda tedy je, že se ke kolejišti nemusím nutně připojovat počítačem a zároveň využít možnost řízení jen z mobilu.

Z mobilu a webu můžete jen ovládat již dříve vyvořené lokomotivy, plán kolejiště nebo automatizaci. Nemůžete si ale například vytvořit novou lokomotivu s novou adresou nebo dělat úpravy v plánu kolejiště.

Instalace na Raspberry mi s pomocí AI zabrala asi 8 hodin – dělal jsem s tím poprvé. Obecně nemám problém následovat pokyny co kde zapnout, ale než jsem se někdy „trefil“ nebo si věci vyzkoušel, občas jsem se dost zasekl.

Technicky umí běžet server na maličkém Pi Zero 2 W, lepší je Pi 3 model B s nadbytkem výkonu (a novější). (Zdroj foto 2x: https://rpishop.cz/)

Pi Zero 2 W stojí 500 Kč, a to je celá investice.

Napájení z Micro USB jsem vyhrabal ze starých nabíječek na mobily a propojovací USB do Li-USB už jsem měl od počítače. Nahoře Raspberry, pod ním Li-USB přilepené oboustrannou páskou ke kostce Roco, a zboku přilepené rozbočení pro více RJ11 zásuvek. Toto je vlastně moje současná centrála. Kdyby se to dalo do krabičky, bylo by to i estetické.

Nebudu zde popisovat instalaci, ostatně, byla to moje premiéra, tak nemám co rozdávat za rady. Jestli jste někdy dělali s příkazovým řádkem nebo jste vyrostli v generaci DOSu, tak „to s pomocí AI dáte“. Pokud jste vyrostli ve Windowsu a v Chromu, tak to spíš „nedáte“, nebo za cenu velkého úsilí a pokusů.

Občas se dobrat něčeho přes příkazový řádek je práce na 5 minut, i když AI pomáhá vypsat přesné příkazy. Hrozně to zdržuje proti nějakém grafickému uživatelskému rozhraní.

Co se v krocích musí, alespoň rámcově, pokud už jsem měl hotový plánek kolejiště předem

  1. nainstalovat Pi OS na paměťovou kartu
  2. rozjet Pi OS
  3. zjistit IP adresu Pi a ideálně jí zafixovat na routeru, aby se postupem času neměnila
  4. přes WinSCP přetáhnout ZIP s Rocrailem na kartu
  5. rozbalit Rocrail
  6. pohlídat si názvy adresářů Rocrailu pro pozdější zadávání a vyvolávání funkcí či vyhledávání
  7. zkusit spustit Rocrail server přes příkazový řádek
  8. doplnit automatické spouštění serveru při startu Pi
  9. na PC spustit Rocview, přihlásit se přes IP adresu do serveru
  10. nastavit si adresáře pro images, svg, library, port pro webovou verzi (standardně 8080) – to vše doporučuji nastavovat v nastavení Rocview a ne v rocview.ini, jinak jí Rocview přepíše na původní hodnoty, kopíroval jsem starší projekt a na tomto jsem se na dlouho zaseknul
  11. připojit stařičké Li-USB a přidat ho do Nastavení Rocrail serveru jako zdroj, během toho si dotazy v příkazáku zjistit, jak se jmenuje rozhraní, aby se dalo zadat do rocrailu (naštěstí se při správném připojení objeví na výběr samo, ale na tomto jsem se taky dlouho zaseknul)
  12. nastavit parametry připojení k Li-USB, což je další zásek a pokus-omyl, protože popis parametrů jednotlivých podomácku dělaných převodníků není na internetu téměř k dostání a nastavení se liší od původního nastavení pro připojení k PC

Funkční ověřené nastavení pro Li-USB od DCCdoma.

Rozhodně ani jeden z bodů nebyl pro mě, jako nováčka, něco, kde se klikne na „rozbalit“ a je to. Každý krok byl na 30-60 minut, než jsem si dal dohromady souvislosti. Dokonce jsem to měl chuť párkrát i vzdát, ale ten výsledek mě zajímal.

No, pokud teď vím IP adresu a port webového rozhraní, můžu pustit aplikaci Androc nebo IP zadat do jakéhokoliv prohlížeče na mobilu nebo počítači, který je na stejné síti, adresu něco ve tvaru 192.168.0.něco (nebo podle rozsahu, který doma máte), a port 8080 (nebo jaký se nastavil v Nastavení) a vyběhne na mě plán kolejiště.

Toto je aplikace Androc stažená z Google Play, připojuje se přes stejný webový port.

Ovládat jde jedna lokomotiva v jeden moment. Velký posuvník na rychlost. Za mě je trochu nepraktické umístění F0 (nejčastěji používané). Ale dá se s tím dělat.

Co se mi opravdu nelíbilo je přepinání lokomotiv. Kliknout na ikonu lokomotivy, dále do stromového menu a teprve vybrat. Při větším počtu lokomotiv ještě skrolovat. Pro rychlé přepinání mezi lokomotivami, když to chci dělat často, je to otravné. Mělo by to umět asi zobrazit i obrázky lokomotiv, ale asi jsem měl špatně nastavenou cílovou složku s obrázky.

Druhá možnost je vybrat si „hostovskou lkomotivu“ s ruční volbou adresy.

„Osina v zadku“ je přestavování výhybek. To probíhá klepnutím na výhybku podobně jako v počítačové verzi. To by se ještě dalo, i když někdy se prstem trefit – vidíte, že výhybky jsou u sebe dost natěsno. Ale zadruhé, plánek se nevejde na obrazovku, takže musíte ještě zoomovat nebo posouvat celý plánek, a to už je opravdu otravné. Při tom si kliknete někde omylem vedle a je s tím akorát vztek.

Nyní přeskočím k verzi přímo pro prohlížeč, zde konkrétně na Androidu v Google Chrome. Načítání výhybek nefunguje vždy spolehlivě, občas vypadne nějaké SVG a plánek se nevykreslí dokonale. Do rozhraní se navíc cpe „zbytek“ dialogu lokomotiv (vertikální čára).

Při otevření dialogu s lokomotivou to pak někdy zůstane zaseklé někde na polovině. Pozitivní je, že zde už je vidět nahraný obrázek lokomotivy. Ale představa, že tohle dáte třeba dítěti do ruky, tak budete pořád říkat jen „počkej, to se musí tady… ještě tohle se musí… tady posunout…“ a stejně to za chvíli prohlásite za nepoužitelné.

Pokud se vše otevře zrovna korektně, tak to vypadá použitelně a vlstně i hezky. Ale stalo se mi to málokdy.

Při pokusu zavřít ovládání lokomotivy a vrátit se zpět na plánek se někdy ovladač zasekne a zůstaen viset „před vertikální hranou“.

Možnost změny barvy pozadí už pak nezachrání základní nepoužitelnost klienta… Zde ještě pohled na přestavování výhybky. Schválně si zkuste na monitoru jakoby dotykem na displej přepnout výhybku a TREFIT SE!

Při přesunu do horizontální polohy se plánek nevejde na výšku, a vůbec se nevejde dialog s lokomotivami. Je to úplně nepoužitelné.

Při otevření v prohlížeči na počítači se vše naopak chová korektně, očekávaně, bez chyb. Ale proč bych si otevíral klienta v dnešní době na počítači a pak to ovládal myši? Určitý kompromis by asi přinesl tablet a tam bych to považoval za použitelné.

Závěr k tomu celému…. Pro někoho, kdo umí zapnout Roco centrálu, tak skutečně varuji – ani se o to nepokoušejte, akorát se naštvete. Kdo se v tom chce zkusti hrabat, tomu to může zabrat klidně týden, než se k tomu dopracuje.

Jak bych hodnotil jednotlivé benefity bezdrátového řešení?

  • Raspberry Pi jako server – 3/10 – je s tím strašně práce při zavádění. Je to hezká technická vychytávka. Pro ovládání mobilem nepoužitelné, pro ovládání počítačem těžkopádné, pro ovládání tabletem asi ok (nezkoušeno).
  • Rocview na počítači bezdrátově připojený k serveru – 3/10 – pokud mám počítač u kolejiště, za tu práci to nestojí, je to hezká vychytávka a můžu mít počítač dál od centrály, ale je víc práce s restarty serveru nebo hlídáním aktivního wifi připojení, než jen připíchnout počítač rovnou do Li-USB.
  • Rocweb v prohlížeči telefonu – 1/10 – na mobilu je to hnusné a použitelné jen v nejvyšší nouzi. Rozhodně to nemůže dostat do ruky dítě ani nepříčetný dospělý.
  • Rocweb v prohlížeči počítače – 6/10 – funguje to dobře, ale proč bych měl chtít na počítači ovládání s tak omezenými možnostmi? Takhle to má fungovat na mobilu. Jediné dobré využití je např. na výstavy nebo na ovládání kolejišti osobami, které se bojí, že tlačítkem „F“ vypnou celosvětový internet a plnotučný Rocview jim tak nepatří do ruky.

Pokud půjdete cestou Raspberry Pi jako wifi serveru, příkazový řádek se skutečně stane vaším kámošem, a vpodstatě ve většině momentů budete jako nováčci jen tupě kopírovat příkazy do něj a odpovědi z něj do svého chatbota. Dalším kámošem se stane prohlížeč a FTP klient, práce s IP adresami a porty. Dostatečný signál wifi v místě kolejiště je pro celý případ samozřejmostí.

Pár tipů, co jsem nevěděl

  • USB porty na Pi nemusí být rovnocenné, některý jen nabíjí a některý umí vést i signál.
  • Pi by se nemělo vytrhávat ze zásuvky, ale mělo by se restartovat přes příkazový řádek vždy, když potřebujete restartovat Rocrail server.
  • Často je jednodušší restartovat celé Pi, než jen server. Výhoda naopak je, že restart samotného serveru na běžícím Pi je otázka cca 2 vteřin.
  • Konfigurace parametrů Li-USB nemusí být shodná jako při přímém připojení z PC

RocWeb (webový port 8080) je ve verzi zdarma funkční jen na 5 minut po startu serveru. Pak se musí server restartovat a RocWeb spustit znovu. To je na testování možné, ale na běžné použití dost nepraktické – jedete, ovládáte, najednou to vypadne. Chvíli se snažíte připojit, pak vám dojde, že vypršel limit. Appka vás vyhodí rovnou, prohlížeč se jen odpojí. Pak musíte sáhnout po Multimausu a lokomotivu rychle zastavit. Pak musíte vše oběhnout a znovu se připojit. To nebude bavit nikoho. Cena „placené podpory“ nebo spíš „daru na podporu“ je 12 EUR za rok, za kterou dostanete klíč, který zruší časové omezení. 12 EUR je půlka ceny vagónu nebo jedna stavebnice, není to tedy nic hrozného. Kdo celý Rocweb shledá užitečný a bude ho využívat častěji, určitě se investice do ročního „předplatného“ dá snadno ospravedlnit.

Pro testování jde nastavit na Rocrail serveru automatickou úlohu, že se každých 5 minut restartuje server sám, reconnect pak trvá cca 2 vteřiny. Je to ale skutečně jen na testování, protože v základní verzi se sám zavře počítačový Rocview a otevřít ho trvá dalších 20 vteřin z 5-ti minutového fondu, takže je to dost nepraktické. Dá se v klientu Rocview nastavit, aby se nezavíral, ale i tak jsem ho musel vždy připojovat zpět ručně. A to žere taky čas… Aplikace se musí ručně připojit zpět.  Kdo by myslel, že obejde limit pomocí pravidelných restartů, připravte se na mravenčí práci s CRONem (plánovač automatických akcí), který bude restart provádět, a úpravou příkazů tak, aby nevyžadovaly občas zadání hesla pro potvrzení restartu, jinak restart neproběhne a musíte se přihlásit opět do příkazového řádku a server restartovat ručně. Tohle opět „nechcete řešit“. Vyřešeno postupně během několika dnů testování pro proviorní využití, ale snadné bych to nenazýval.

Dělám na tom intenzivně cca týden, začíná se to dostávat do stavu, kdy to „jakoby“ poběží nějak ke spokojenosti. Ale pořád narážím na komplikace viz automatický restart – Chyba: musíte zadat heslo – AI s dotazem „jak to obejít“ – programování v příkazovém řádku. A tak pořád dokola. A pak přijde ten hrozný klient, který sice 10 – 15 let byl jak zjevení, ale od té doby se na něj nehráblo ani po stránce přizpůsobení dnešním technologiím, ani po stránce estetické. A tak vlastně zjistíte, že sice rozchodíte server, ale nechcete přes něj kolejiště ovládat.

Ale příště si, milé děti, povíme, jak si k tomu naprogramovat lepšího klienta 🙂

4 komentáře u „Rocrail – rozjíždíme kolejiště přes počítač (3) – Raspberry Pi“

  1. Asi Ti to trápení stojí za to, mě to spíš připadá jako drbat se levou rukou za pravým uchem.
    Nebo spíš jak mi kdysi na výstavě řekl jeden zkušený modelář:
    ,,Potom nekoukáte na mašiny ale na displej.,,
    Ale samozřejmě nic proti tomu.

  2. Počkej na příští díl, třeba to za to nakonec stálo 🙂 Ale chápu, co myslíš. O samotné ovládání lokomotiv tolik nejde, ale přehazovat 35 výhybek na myši je opruz 🙂 Ale nakonec, i MTB má pravdu, že noví (mladí) modeláři to budou chtít ovládat přes mobil, který mají přirostlý k ruce 🙂

  3. Pro budoucí generace. RPi 5 potřebuje chlazení a bez něj se peče. Jenže celohliníkový case/chladič zase moc nesvědčí wifině.

  4. Co se vyhybek tyce, zatim jsem uspesne experimentoval s apkou od Roco. Umi stavet na jeden klik preddefinovane vlakove cesty vcetne navestidla. Jen to v budoucnu bude chtit velky display. Na manualni rizeni loko mi naopak mys prijde dobra. Pokud teda resim jen rychlost jizdy.

Napsat komentář

Web používá Akismet ke snížení množství spamu. Zjistěte, jak jsou zpracovávány údaje z komentářů.