Před dvěma měsíci jsem psal článek o MeshCore, ale byl myšlen jako takový obecný úvod do této sítě spíše než moje osobní zkušenosti, proto jsem se rozhodl, že jej doplním o trochu osobnější pohled.
Za ty dva měsíce se toho událo opravdu hodně. Síť se v České republice až neuvěřitelně rozvinula. Když se dívám na mapu repeaterů, nemůžu uvěřit, že je to ta samá síť. Snad k tomu nárůstu popularity přispěl i můj článek. Patří mezi ty nejčtenější, které jsem za poslední dobu napsal. Tady na blogu už si ho přečetlo téměř 1300 lidí a ještě násobky toho pak na Rootu. Téměř 1100 zhlédnutí má také přednáška Jindry o MeshCore. Stala se tak historicky nejúspěšnějším videem na Vhsky.cz.
Vlastní repeater
Sever Brna už je tak hustě pokrytý, že se mi stává, že mi odpoví klidně šest repeaterů. Sám jsem k tomu přispěl repeaterem doma na střeše. Měl jsem sice na začátku štěstí, že 300 metrů od nás byl repeater ivanovice.meshcore.cz, takže s pokrytím doma jsem neměl problém, ale jak tomuto repeateru došly na konci zimy baterky, prostě umřel. Ponaučení je, že když závisíte na repeaterech ostatních, měli byste mít spojení alespoň na dva. Nebo mít vlastní. Jelikož spolehlivé spojení na další jsem neměl, rozhodl jsem si zprovoznit vlastní.
Úplně se mi nechtělo bastlit vlastní řešení, takže jsem zvolil ověřené hotové řešení SenseCAP Solar Node P1 Pro. I tak jsem musel hodně věcí vyřešit: pořídit dlaždice na ukotvení, pořídit a k nim uchytit konzolu, vymyslet, jak na ni repeater připevnit, protože jeho držák je zjevně dělaný pro konzole a o podstatně větším průměru.
Po rozjetí jsem také zjistil, že je repeater zarušený. 300 metrů od domu máme 4/5G BTS CETINu, na střeše mám 5G modem. Repeater byl slyšet, ale neslyšel. Musel jsem tedy pořídit filtr a když jsem měnil jej, tak jsem vyměnil také pigtail a anténu a pořídil Mikrotik Omnia. A tohle je výsledek:

S výsledkem jsem spokojený. Repeater má kolem 30 sousedů (repeaterů, s kterými dokáže navázat spojení), to mi dává opravdu víc než dostatečné napojení na zbytek sítě. Spojení mám, byť celkem slabé i s repeaterem na Děvíně, což je nějakých 45 km daleko. To je pěkné na to, že nejsme na žádném kopci. Velmi dobré spojení mám díky prakticky přímé viditelnosti na Babí lom, to mi poskytuje spojení směrem na sever.
Celorepubliková komunikace
Spojení přes celou zemi bylo ještě před dvěma měsíci spíš zázrak. Dnes už to je téměř běžná věc. Když jsem si psal s Bycx (já v Brně, on u Hradce), byli jsme před dvěma měsíci rádi, že nějaká zpráva prošla. Často šlo o spojení jižní cestou Děvín-Hostýnské vrchy-Praděd… Dnes už to chodí severní cestou: Babí lom-Orlické hory-Hradec. Zpráva dokáže i s potvrzením dorazit během pár sekund. S Petrem Krčmářem jsem si byl schopen psát až do Liberce. Zajímavé bylo, že když byl na Ještědu, šlo spojení od něj přes Brdy. Jeden skok na víc než 100 km.
Meshy
Co mě štvalo, byl stav klientů pro MeshCore na Linuxu. Problémy jsem popsal už v prvním článku. Fungují, ale způsob, jak je rozjet a propojit se zařízením, není moc uživatelsky přívětivý. Měl jsem pár nápadů, jak to zlepšit, a jeden večer mi to nedalo a řekl jsem si, že zkusím, jak by to opravdu fungovalo.
Co byl na začátku takový osobní experiment, se vyvinulo do docela seriózního projektu. Aplikaci jsem pojmenoval Meshy a dnes už je, co se týče funkcí, srovnatelná s oficiálním klientem. Je napsaná v GTK4 a libadwaita, dokáže se velmi dobře přizpůsobovat malým displejům a našla si tak své uživatele i mezi majiteli linuxových telefonů. Zatímco ostatní klienty mají problém s během v sandboxu, protože vyžadují přímý přístup k Bluetooth, Meshy je od začátku dělaná tak, aby dokázala běžet ve Flatpaku. Na komunikaci přes Bluetooth používá d-busové API BlueZ, pro připojení přes USB si dokáže vyexportovat udev pravidlo, které mu umožní se zařízením komunikovat. Spárování je tak doslova na pár kliknutí.

Oproti oficiálnímu klientu běžícímu v Chromiu má také velmi slušnou spotřebu paměti: po startu se pohybuje někde na úrovni 100 MB, o moc níže už se při použití Pythonu, GTK4 a libadwaita asi nedostanu. Oficiální klient si ale po spuštění na mém počítači vezme rovnou 350 MB.
I v některých funkcích je dnes lepší než oficiální klient. Umí třeba na mapě vykreslit trasu poslední úspěšné zprávy v chatu. Uživatel tak nemusí otevírat mapy s sítí MeshCore a luštit, kudy zpráva vlastně putovala. Pokud si vyžádáte polohu kontaktu, zobrazí vám ji na mapě společně s vaší polohou. Veškeré integrace map dělám přes knihovnu libshumate, kterou používají třeba GNOME Maps.

Aktuálně má Meshy vlastní flatpak repozitář, který se aktualizuje s každým commitem v repozitáři (díky Roští.cz za poskytnutí builderu jak pro x86_64, tak pro aarch64!). Pomalu se dostávám do fáze, kdy bych chtěl dělat stabilní vydání, třeba s měsíční kadencí. Cílem je dostat Meshy také na Flathub. Největší překážkou momentálně je, že abych nainstaloval udev pravidlo pro připojení companiona přes USB, používám flatpak spawn a efektivně obcházím sandbox. A to se lidem z Flathubu nebude líbit. Pravděpodobně budu muset v zájmu bezpečnosti tohle změnit a nechat přípravu v systému na uživateli.
Nicméně psaní klienta pro MeshCore je opravdu zajímavá zkušenost. Teprve během toho jsem pronikl do toho, jak v něm věci v detailu fungují.


Napsat komentář