sphfreq - Tool zum Einstellen der LTE-Frequenz(en)

      hi EMKay77, ja so wars, ich wollte direkt drauf schreiben. Mit deinen Lösungen oben komme ich weiter ;) Danke

      P.S. Habe eben mal den Spendenbutton hier fürs Forum benutzt, die Infos hier sind sensationell! Auch zu Antennen gibts hier scheinbar richtig fundierte Beiträge!

      Viele Grüsse Harald

      hando schrieb:

      P.S. Habe eben mal den Spendenbutton hier fürs Forum benutzt, die Infos hier sind sensationell! Auch zu Antennen gibts hier scheinbar richtig fundierte Beiträge!

      Ich habe auch mal ein paar Euros gespendet.
      Dank eurer Hilfe konnte ich die 800er Zellen abstellen, die mir immer dazwischen gefunkt haben.
      Statt 3Mbit kommen bei mir jetzt gut 21Mbit (von max. 22Mbit) an!
      Vielen Dank eMKay77 für Dein sensationelles Tool. Ich habe heute erstmal Verbindung zu 1800MHz Masten aufbauen können, das war vorher nicht möglich, das blöde Modem hat sich immer auf 800MHz verbunden. Jetzt kann ich endlich mit einer gescheiten Antenne versuchen auf akzeptable Empfangswerte zu kommen.
      Moin @hefr54!

      hefr54 schrieb:

      Moin,
      wie sieht es eigentlich mit der Überarbeitung von sphfreq aus? War da nicht mal was von Erweiterungen
      im Umlauf?


      Kommt :D
      Hab' heute noch einen wichtigen privaten Termin wegen meinen Eltern - ein paar in der Familie haben wohl etwas dagegen, daß gerade ich mich um sie kümmer (selbst wollen sie zwar auch nich...) - also heut' Termin mit Betreuungsstelle... deshalb zuletzt etwas abgelenkt gewesen vom Forum etc. ;)

      Danach kehrt hoffentlich wieder Ruhe ein - und ich hab' wieder mehr Zeit.

      mfg, emkay
      Moin Leutz!

      Hab' ein kleines Update in die WebDisk gepackt ==> sphfreq-1.0.1

      Geht in erster Linie darum, zusätzliche Infos mit auszugeben
      - die LOCInfo also: PLMN, LAC, RAC, und die lange CellID...

      Da die Ausgabe von sphfreq show nun etwas länger ist, muß man, wenn man sie automatisch per Script auswertet, seine Scripts eventuell anpassen.

      mfg, emkay

      EDIT: die Änderung war notwendig, um zum Beispiel sowas wie im Bild zu machen...
      Bilder
      • ltegraph.png

        119,89 kB, 1.200×1.000, 519 mal angesehen

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „eMKay77“ ()

      Stricted schrieb:

      musste ich zum glück nicht (habe per regex nur den Current-CellInfo block geparst, da hat sich ja nichts verändert)

      Ich dacht' mal, ich weise darauf hin ;)
      Habe ja bewusst die Feldnamen nicht verändert (auch wenn man die kurze CellID auch als physiche CellID bezeichnen könnte...) - eben damit das Risko nicht so hoch ist. Aber wenn man zB. (wie ich aus Faulheit) mit 'tail -n 6' geparsed hat... :D

      Shell-Script

      1. #!/bin/sh
      2. # Timestamp - Freq - LTEBand - CellID - RSRP - RSRQ - RSSI - PLMN - LAC - RAC - CELL_ID
      3. echo $(date +%Y%m%d%H%M) $(sphfreq show | busybox-mips tail -n 12 | cut -d ':' -f 2 | grep '[0-9]')

      war eine kleine Änderung nötig. (erzeugt bei mir die Zeile für's Log)

      mfg, emkay

      hefr54 schrieb:

      Moin

      Reh-Moin!

      hefr54 schrieb:

      gibt es eine Möglichkeit "SIRN" mit anzeigen zu lassen? Wäre ein sehr nützlicher Parameter

      Beschreibst Du mir kurz, wofür der gut ist? Erstens aus Neugier, zweitens ist er dann einfacher zu finden - wenn ich weiß was er bedeutet (er könnte ja in der API anders heißen - oder durch Tippfehler verunstaltet sein...)

      hefr54 schrieb:

      Der Refresh in der Weboberfläche ist auch noch immer ganz schön zickig, ließe sich das anders lösen?

      Der Refresh in der WebUI ist am meisten von deinem Browser/PC abhängig - ist aber eh nur für Testzwecke gedacht gewesen... das soll ja nicht so bleiben. (normalerweise würde man wohl die Werte per JS holen und nur Änderungen durchführen, statt die ganze Seite neu zu laden) ==> wenn ich schnellere Werte will, nutze ich (noch) ssh/telnet & 'sphfreq watch' im Terminal :D
      (auch ne Möglichkeit: busybox-mips watch -n1 sphfreq show)

      hefr54 schrieb:

      Gruß hefr

      mfg, emkay
      :D

      hefr54 schrieb:

      In der Konsole habe ich es noch nicht versucht, habe einen Schnellstarter in der Browserleiste

      solltest Du... das läuft nahezu in Echtzeit :D (auch per Android-Telnet/-ssh)

      Für den SINR müsst ich wohl an den AT^HCSQ kommen... mal schauen, ob der verfügbar ist.

      mfg, emkay

      EDIT: kann mal jemand auf einem neuerem Huawei-LTE-Stick (am besten auf einem e3276) die Ausgabe von 'AT^HCSQ' prüfen / posten? Geht darum, ob der Chip den Befehl kennt und beantwortet - die SPH-Api hat den Befehl nicht, aber es ließe sich eventuell tricksen.

      hefr54 schrieb:

      Ist ja auch so ein "Springer" , der Refresh sollte sich ja nur auf die Parameter die sich verändern beziehen

      sag ja: sphfreq watch :D

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „eMKay77“ ()

      @hefr54: gut - dann besteht (ein wenig) Hoffnung :D
      Die normale API hat den Befehl nämlich nicht - aber diese baut auf niedrigeren APIs auf (welche wieder auf niedrigeren APIs aufbauen...).

      Es könnte also klappen, einfach ein Stufe tiefer in der API zu gehen - da kann man nämlich den AT-Befehl selbst bauen.
      Die ist aber (wie Alles ander auch) nicht dokumentiert und baut auf mehreren ineinander verschachtelten Datenstrukturen auf - deshalb hab' ich das bis jetzt vermieden ;)
      Aber jetzt hätte ich 'nen Grund. Und damit wären dann wirklich alle AT-Commands möglich, welche das Hardware-Modul versteht.
      Eventuell also, wenn das Modul es kann, auch die Temperatur-Sensoren. (AT+XTAMR AT^CHIPTEMP)

      mfg, emkay
      @hefr54: es gibt ja eine API-Funktion, welche augenscheinlich die Zelle setzen kann - die gleiche, welche auch zum Lesen benutzt wird.
      Diese hat nämlich eine Result-Struct und eine Set-Struct - die Set-Struct nutze ich nur bis jetzt eben nicht.

      Der Grund dafür ist einfach: die Datenstruktur beinhaltet recht viele Daten - ob die alle notwendig sind zum setzen müsste ich erst per Trial&Error testen. Dazu kommt, das zumindest im Moment noch keine Möglichkeit existiert, die erreichbaren Zellen zu scannen.
      Man wäre also erstmal auf die bekannten Zellen beschränkt - nur von diesen hat man ja die notwendigen Daten...
      (ich hab' auch keine Ahnung, ob die Zelle dann nur gesetzt wäre oder auch gepinnt... es existiert ja keine Doku.)

      mfg, emkay

      xdjbx schrieb:

      ich würde Dir ja so gerne helfen, aber dann muss ich vermutlich erstmal ein paar Jahre C lernen...

      Das Problem ist in dem Fall nichmal 'C' - es ist nur etwas mühsam...

      Du hast 'ne Datenstruktur, deren Felder sind Datenstrukturen, deren Felder sind Datenstrukturen, deren Felder... :D
      Und ohne Doku kann man nur raten, welche der Strukturen wirklich notwendig sind und welche man einfach Nullen kann.

      Die Set-Struct für die Zelle geht da noch, aber die niedrigere AT-API ist schon recht verschachtelt ;)

      mfg, emkay

      danXde schrieb:

      @eMKay77 ...verrät's Du noch die Anpassungen für gnuplot? ;o)

      /opt/bin/ltegraph

      Shell-Script

      1. #!/bin/sh
      2. busybox-mips tail -n 120 /opt/logdata/lte.log | sed -r 's/^[0-9]+$/& 0 0 0 NaN NaN NaN/' > /tmp/lte.dat
      3. gnuplot -e "
      4. set term svg size 1200, 1000 background rgb '#F0F0F0' font ',16' name 'LTEGraph';
      5. set grid front lc rgb 'black';
      6. set title 'LTEGraph' font ',28';
      7. intime(COL) = strptime('%Y%m%d%H%M',strcol(COL));
      8. stats '/tmp/lte.dat' using (intime(1)) name 't' nooutput;
      9. set timefmt '%Y%m%d%H%M';
      10. set format x '%H:%M';
      11. set xdata time;
      12. set key out;
      13. set autoscale yfix;
      14. set tics out;
      15. set xtics 300 nomirror;
      16. set xtics rotate by 315 offset graph -0.01;
      17. set mxtics 5;
      18. set ytics 5;
      19. set mytics 5;
      20. rmin=t_max-(2*60*60)+60;
      21. set xrange [rmin:t_max];
      22. set yrange [-120:0];
      23. set offsets 30,30,0,0;
      24. oldCell=NaN;
      25. set style line 1 pt 7 ps 0.5 lc rgb 'blue';
      26. set style line 2 pt 7 ps 0.5 lc rgb 'green';
      27. set style line 3 pt 7 ps 0.5 lc rgb 'yellow';
      28. set style line 4 pt 7 ps 0.4 lc rgb 'pink';
      29. set boxwidth 60;
      30. rsrq(rb,rsrp,rssi) = 10*log10(rb*10**(rsrp/10)/10**(rssi/10));
      31. set label system('sphfreq show') at screen 0.86,0.8 font ',14';
      32. set label '>> Known CellIDs <<' at screen 0.86,0.36 font ',14';
      33. set label system('knowncellids') at screen 0.86,0.34 font ',14';
      34. plot '/tmp/lte.dat' using 1:(\$3>=0?-120:0):(\$3<20?(\$3==0?0xFF0000:0xA0A000):0xA000A0) w boxes fill solid lc rgb variable notitle, \
      35. '' using 1:(\$6<0?\$6:NaN) w lp ls 1 t 'gRSRQ', \
      36. '' using 1:(\$6<0?rsrq(\$3==20?50:100,\$5,\$7):NaN) w lp ls 4 t 'bRSRQ', \
      37. '' using 1:(\$7<0?\$7:NaN) w lp ls 2 t 'RSSI', \
      38. '' using 1:(\$5<0?\$5:NaN) w lp ls 3 t 'RSRP', \
      39. '' using 1:(0):((\$4!=oldCell&&intime(1)>=rmin)?oldCell=\$4:'') w labels left rotate offset screen 0,0.005 font ',10' notitle;
      40. "
      41. rm /tmp/lte.dat

      /opt/bin/knowncellids

      Shell-Script

      1. #!/bin/sh
      2. cut -d ' ' -f 4,3,2,11 /opt/logdata/lte.log | busybox-mips sort | busybox-mips uniq | grep ' [1-9][0-9]* '

      Reicht Dir das erstmal? Weil - bin auch noch am Basteln :D

      mfg, emkay