Hughesnet Community

Status monitor for Linux

cancel
Showing results for 
Search instead for 
Did you mean: 
bmillham
Freshman

Status monitor for Linux

Hi all, I'm new to the forums here, but a long time HN user (going back to the DircWay days!)

 

Way back in those early days, there was no good way to know your usage, or even if you have been FAPed, so I had created a nice tool to monitor that. (If you've been around that long you may remember it as dwfapmon or hnfapmon).

 

Fast forward to today. HN has greatly improved the modem for showing usage status, but it's still a pain to have to access the modem's web page to know what's going on. So I've created a new status monitor that polls the modem to gather usage information and displays that in a nice summary GUI.

 

Currently It will only work on Debian based Linux systems. I've tested it only with Linux Mint, but Ubuntu and similar distributions should also work fine.

 

You can access it for free at https://github.com/bmillham/hnstatus

Just download the zip and extract it to a directory and run hnstatus.py

 

Check the README for more information.

 

Please share you experience if you give it a try!

 

Brian

13 REPLIES 13
GabeU
Distinguished Professor IV

Though I don't use it on a regular basis, and even when I do it's just for fun, I should try it on Raspbian with my Raspberry Pi 3 B+.  It's Debian based, so it should work.   

 

A few years back another member had written a Status Meter for his Linux based system, though I can't recall if he released it to anyone else.  I do remember that it was a work in progress and, at least at the point, it was very basic, only giving the current data amounts.  Unfortunately, all of his posts have since been removed, so there's no way to see it, nor if there was a link to the program.

If you try it and find any issues, please let me know so I can fix them.

 

I do plan on adding data usage logging. My plan is to allow it to be set by the user to keep X days worth of data. I hope to have the logging working in the next few days.

MarkJFine
Professor

Got it working under Fedora 30 under kernel 5.2.8 and python 3.7.4. I might also want to try it under macOS to see how it works under Homebrew and natvely under Darwin/Cocoa.

 

Good stuff. Just a few nits:

1. Under this configuration I already had Pillow, but had to pip3 install humanfriendly (of all things).

2. Had to modify config.yaml to make it display: start_minimized: False

3. I throws this security warning when loading the config file:

  • ./hnstatus.py:45: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
    config = yaml.load(f)

4. There's no hn-indicater.png in the repository under resources/images, so the icon is missing and gives an error in a couple of places in the glade spec:

  • (hnstatus.py:24912): Gtk-WARNING **: 15:17:18.661: Could not load image 'resources/images/hn-indicater.png': Failed to open file “/hnstatus-master/resources/images/hn-indicater.png”: No such file or directory
  • (hnstatus.py:24912): Gtk-WARNING **: 15:17:18.744: Could not load image 'resources/images/hn-indicater.png': Failed to open file “/hnstatus-master/resources/images/hn-indicater.png”: No such file or directory

5. Might want to check for dark mode for the Data labels (see below).

6. Might also want to put an "Esc to Close" or something so the user knows how to close the About box.
7. Other than that you may want to consider lowering the communication rate. right now it's going back and forth at around 24kbps to/from the modem (once a second?) which is quite a bit. It is interesting to see the SQF change at that high rate. However, you might want to consider pinging the modem maybe four times a minute to lower the resource drain so you can be sure there's no other effects.

 

Screen Shot 2019-08-18 at 3.05.51 PM.jpg


* Disclaimer: I am a HughesNet customer and not a HughesNet employee. All of my comments are my own and do not necessarily represent HughesNet in any way.
C0RR0SIVE
Associate Professor

From the screenshots and what I have looked at in like 20 seconds, it appears the reason it talks so often is to get real-time stats on current up/down speeds?  That's not really something needed...  Could be an average over X time, it's a bad idea to generate that much extra traffic between a machine and these terminals as the terminal has enough to deal with as is.

I was looking at the readme and saw you mention the stat codes, are you referencing the 0.0.0 statecodes there?  I have a fairly completed list on my website, though, it doesn't have many of the newer codes introduced with these HT2000w units, I have been able to get some of them added as I have seen them.

If you have any statecodes and information on them that aren't listed on my list, please let me know. 

https://chucksbasix.com/2017/09/29/hughesnet-jupiter-state-code-list/

Thank you for the link to the status codes!

Thank you for the feedback. I will address your issues in the next update (probably tomorrow, possibly this evening)

 

The update interval should be adjustable. It's in the config.yaml.

 

I forgot the humanfriendly was required, I'll add that to the readme, and add a warning to install it if it's not found.

 

If you leave start_minimized: True you can maximize it by clicking on the status icon.

 

I'll look at why you are getting the yaml.load error. I don't get that on Linux Mint.

 

4 should be fixed in the last update, just grab the latest from github. (I think I fixed that last night)

 

I will look at how to improve issue #5.

 

6 should be fixed where you can click close to close the about window.

 

As to the update interval being a load on the modem, I've been running this for about a year with a 1 second update with no problems. But just change it to 10000 and it wil update every 10 seconds, or 25000 to update 4 times a minute. I've acutally tested with as low as 500 (.5 seconds) with no problems, but only ran like that for a few minutes. BTW, the data rates that you see are only from the modem to the internet, the traffic from the PC to the modem is not included. It's also a very small dataset returned (if you look in the hnmodemstatus.py code you will see the 4 pages I'm accessing to retreive the data. You can manually look at the returned data with a web browser and you will see it's not much)

 

Anyways, I'll post here when the next update is ready. Thanks for the feedback and for trying it!

I just pushed a few changes. If you cloned the git repository, just do a pull to get the changes, otherwise download the zip again.

 

Fixes:

 

3: The yaml warning should be gone

4: The png missing warning is fixed.

6: Added message in the About box about using ESC to close.

 

I will look at the dark theme problem next.

#5 should now be fixed for dark themes. It now will use the default theme color.


@MarkJFine wrote:

5. Might want to check for dark mode for the Data labels (see below).

The changes have been pushed to github so you can pull or download the zip.

Always willing to help a developer out.

 

I had often thought of developing something that talks to the modem for that info. I gave up and ended up modifying the existing Usage Meter's javascript instead. I can really appreciate how much it took to figure out how to do the interfacing with little to no documentation.


* Disclaimer: I am a HughesNet customer and not a HughesNet employee. All of my comments are my own and do not necessarily represent HughesNet in any way.

It took me a while to figure out how the JS on the modem was getting the information. I finally used Chromiums built in network monitor and that's how I saw the 'hidden' api pages being accessed. Once I found the hidden pages it was easy as they are just returning a small JSON structure.

 

I added a little code to check the amount of data returned when I'm 'pinging' the modem. It's 1004 bytes each status update.

The hidden part is probably what stopped me. I used to be more adventurous.


* Disclaimer: I am a HughesNet customer and not a HughesNet employee. All of my comments are my own and do not necessarily represent HughesNet in any way.

I've added the state codes that were kindly supplied by CORROSIVE.

I also did some other minor changes and added better state code displays in the GUI.

Just pull the new version or get the latest zip from https://github.com/bmillham/hnstatus

 

I've made some major updates to the monitor. It now can save status history to a sqlite3 database (configurable) You can't really do anything yet with that information, but I have plans for it ;-). There are also some bug fixes. Now the window position is saved on exit and properly restored. And I added lots more interesting information:

 

hnstat-usage.pnghnstat-sat.pnghnstat-san.pnghnstat-wifi.pnghnstat-other.png

 

Please let me know if you try it out and it works for you. Or if you have problems.

 

Just pull the new version or get the latest zip from https://github.com/bmillham/hnstatus