Ako koristite A1 mobilni kućni internet i ZTE MC888 5G modem, verovatno ste primetili da internet ujutru radi loše, a učitavanje web stranica postaje "kilavo". Ovaj problem se javlja zbog specifičnog načina na koji A1 upravlja svojim baznim stanicama tokom noći.

Priroda problema: Noćno gašenje bandova

Kako bi uštedeli energiju, A1 mreža noću, tačnije posle 01:15, na velikom broju lokacija gasi sve LTE bandove osim B20. Usled toga, modem se raskači sa primarne ćelije (najčešće B3 ili B1) i poveže isključivo na B20. Pravi problem nastaje ujutru oko 06:00 kada se B3 i B1 ponovo reaktiviraju. ZTE MC888 često ne prepozna promenu i ostane "zaglavljen" na B20.

Zašto je ostanak na B20 problematičan - B3 ima 20 MHz širine propusnog opsega, dok B20 ima samo 10 MHz. B20 radi na nižoj frekvenciji, ima znatno veći domet i samim tim pokriva veći broj korisnika, što dovodi do konstantnog opterećenja. Zbog pomenutog zagušenja, signaling kanal postaje veoma loš. SINR često pada na -2 dB, što drastično obara upload brzinu i usporava inicijalni odziv mreže.

PHP skripta kao automatizovano rešenje

Da bih izbegao ručno restartovanje rutera svakog jutra, napisao sam PHP skriptu koja komunicira sa modemom i forsira mrežnu rekonekciju.

Kako funkcioniše implementacija:

  • Skriptu možete postaviti na bilo koji uvek uključeni Linux računar, kao što je vaš Ubuntu server, ili na Raspberry Pi.

  • Potrebno je podesiti cron job koji će pokretati skriptu tačno u 06:15 ujutru.

  • Prilikom izvršavanja skripte doći će do planiranog prekida mrežne veze u trajanju od oko 1 minut.

  • Nakon restarta konekcije, modem će skenirati mrežu, izabrati najbolji primarni nosilac signala koji mu je dostupan u tom momentu (što je najčešće rasterećeni B3) i stabilizovati vezu za ostatak dana.

  • Ukoliko povezivanje na mrežu ne bude uspešno iz bilo kog razloga, skripta će restartovati modem što će osigurati da se modem uredno ponovo poveže na mrežu, ali će izazvati kratkotrajnu nedostupnost WiFi mreže, što može biti problem za neke IoT uređaje ukoliko ih posedujete.

Preuzimanje koda

Kompletan PHP kod skripte je javan i dostupan na mom GitHub Gist profilu. Možete ga pregledati i preuzeti ovde:

https://gist.github.com/milankragujevic/4a8ebee4e9b1233514274e9bf81524f7