What's new

Belmon - new beta addon (modmon for belgian VOO modem - Technicolor CGA4233 )

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

Wistuplu

Regular Contributor
Dear forum members,

I am pleased to announce my first addon. It is a fork from modmon from JackYaz. I have nowhere near the experience of regular addon authors. And belmon is beta software, which has never been tested with another modem than mine. But still, if you always wanted to use modmon, but your cable modem is not supported, you might be interested in belmon.

belmon is intended to be useable by customers of the VOO ISP in Belgium that are equipped with a Technicolor CGA4233, and want to record the history of the modem's signal strength and other metrics. See screenshot below. (Note that there is some uncertainty around authentication, to be reviewed with the first testers ;-) ).

If you have another modem and you are ready to write some code, you could also look at the repo: v0.1.0-alpha or the branch Example-of-minimum-changes-for-new-modem-support could give you some ideas. Also, the documentation folder could help you understand how I git from modmon to belmon.

The addon is somewhat documented in the README at https://github.com/waluwaz/belmon, including some more warnings. It's currently in version 0.5.1 beta.

If you feel adventurous enough to give it a try, you're most welcome.

Best regards
Wistuplu

PS: Here is an example of charts, after filtering for just a few channels. (NB: At least at my address, this modem uses 16 channels among 20 available channels. And the channel selection typically changes every few days.)
Screenshot 2022-03-23 at 08-21-26 modmon.png
 
Thanks for this version. I am looking at hacking it to work with an Arris SB6183 modem.
Unfortunatly, there is no SNMP support nor a way to request via and API particular metrics (at least from what I can see from the modem).
Im stuck with a rather large html file (captured via 192.168.100.1/RgConnect.asp.
jq is not happy with this file - so, I am trying various see/grep/awk to extract information.
 
BTW, I'm stumped on sed and grep outputting a complete line of text...

Here are some of the lines:
Code:
<tr><td>1</td><td>Locked^M</td><td>QAM256</td><td>26</td><td>513000000 Hz^M</td><td>14.9 dBmV</td><td>42.3 dB</td><td>0</td><td>0</td></tr>
<tr><td>2</td><td>Locked^M</td><td>QAM256</td><td>5</td><td>375000000 Hz^M</td><td>18.3 dBmV</td><td>43.6 dB</td><td>0</td><td>0</td></tr>
<tr><td>3</td><td>Locked^M</td><td>QAM256</td><td>1</td><td>351000000 Hz^M</td><td>19.1 dBmV</td><td>44.0 dB</td><td>0</td><td>0</td></tr>
<tr><td>4</td><td>Locked^M</td><td>QAM256</td><td>2</td><td>357000000 Hz^M</td><td>18.8 dBmV</td><td>43.9 dB</td><td>0</td><td>0</td></tr>

Here is an attempt at pulling the entire line out (BTW, the sed is to get rid of all the stuff before the actual info. This works fine. It's the grep that is stumping me):
Code:
sed '1,/Downstream Bonded Channels/d' ttt2 | grep -a Locked

Unfortunately, here is the output.
Code:
</td><td>14.9 dBmV</td><td>42.3 dB</td><td>0</td><td>0</td></tr>
</td><td>18.3 dBmV</td><td>43.6 dB</td><td>0</td><td>0</td></tr>
</td><td>19.1 dBmV</td><td>44.0 dB</td><td>0</td><td>0</td></tr>
</td><td>18.8 dBmV</td><td>43.9 dB</td><td>0</td><td>0</td></tr>
</td><td>18.4 dBmV</td><td>43.7 dB</td><td>0</td><td>0</td></tr>
 
I would replace blank with comma, then the tags and units with nothing.
Modmon has something to read the nth item of the line based on a delimiter (e.g. Comma). Probably around line 800.
Best of luck
 
I made some great progress on the Arris version. I need to do some code cleanup (lots of debug echos ;-)
I have the modified belmont (called arrismon) displaying Rx Power/SNR/ChannelID,Frequency and Tx showing Power and Symbol Rate.
Even the logs are being shown.
The code is pretty rough at the moment, give me a few days and I will send it to you.
You might be able to auto detect either a Technicolor or Arris and adjust dynamically.
Or, we see if @Jack Yaz has any interest into rolling it all into a multi modem modmon.
 
Happy about your progress.
I can't talk for Jack, but as far as I'm concerned I have no interest in working on the add-on to "auto detect either a Technicolor or Arris and adjust dynamically". I guess 99,9% of people having a cable modem have just one single cable modem. So, the usage scenario I have in mind is that users install the flavour (belmon, arrismon, modmon etc) that match their modem.

Even if the multi-modem scenario is more frequent than I think, I still have just one modem to test, and no ability to install a second one. And starting with version 0.2, belmon has hard-coded/changed a lot of stuff (e.g. to store 7 metrics, 6 about Rx and 1 for Tx), the code will probably NOT be "compatible" with the core of arrismon (nor modmon).
Enjoy the weekend

W.
 
Happy about your progress.
I can't talk for Jack, but as far as I'm concerned I have no interest in working on the add-on to "auto detect either a Technicolor or Arris and adjust dynamically". I guess 99,9% of people having a cable modem have just one single cable modem. So, the usage scenario I have in mind is that users install the flavour (belmon, arrismon, modmon etc) that match their modem.

Even if the multi-modem scenario is more frequent than I think, I still have just one modem to test, and no ability to install a second one. And starting with version 0.2, belmon has hard-coded/changed a lot of stuff (e.g. to store 7 metrics, 6 about Rx and 1 for Tx), the code will probably NOT be "compatible" with the core of arrismon (nor modmon).
Enjoy the weekend

W.
I hear you. Unfortunate that there isn’t a standard metric for cable modems. For example, your reports Octets, mine doesn’t but does present Upstream Symbol Rate…

My thoughts on auto-detect were more attempting to only have 1 add-on with a common code base. Making the changes to the shell script wasn’t too bad - once I figured out how it wants to extract the data for the database. Lots of sed and awk.
My biggest challenge (and still not well - a real hack) was the .asp and .html stuff.
Im not even sure they can have conditionals - I don’t program .asp or html stuff. Im old school - “C” and shell (with a bit of python on the side). In fact, my first dozen programs when I was in the work force was in assembler (Z80 and 680X0). C was just in its infancy ;-)
 
Here are a few screen shots from an Arris SB6183. Interesting that a few corrected showed up on 2 channels today. Maybe an email alert if/when corrected/uncorrected exceed a threshold?

Also note that channel 8 is identified as Channel ID 26. Go figure!

Belmon1.png

Belmon2.png
 
I hear you. Unfortunate that there isn’t a standard metric for cable modems. For example, your reports Octets, mine doesn’t but does present Upstream Symbol Rate…

My thoughts on auto-detect were more attempting to only have 1 add-on with a common code base. Making the changes to the shell script wasn’t too bad - once I figured out how it wants to extract the data for the database. Lots of sed and awk.
My biggest challenge (and still not well - a real hack) was the .asp and .html stuff.
Im not even sure they can have conditionals - I don’t program .asp or html stuff. Im old school - “C” and shell (with a bit of python on the side). In fact, my first dozen programs when I was in the work force was in assembler (Z80 and 680X0). C was just in its infancy ;-)
I usually do conditional stuff in javascript and use it to dynamically append HTML.
 

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top