What's new

modmon modmon - WebUI for monitoring Virgin Hub 3 cable modem stats

  • 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!

Would graphing Virgin Media Superhub 3 stats from Merlin be useful for you?

  • Yes

    Votes: 13 86.7%
  • No

    Votes: 2 13.3%

  • Total voters
    15
  • Poll closed .
This might be helpful at least for those with an SB8200. Any chance to get this working I am able to use an exporter to put the levels into a readable format For example on my local network this is acccessable from http://192.168.1.165:9195/metrics

Code:
# HELP python_gc_objects_collected_total Objects collected during gc
# TYPE python_gc_objects_collected_total counter
python_gc_objects_collected_total{generation="0"} 171.0
python_gc_objects_collected_total{generation="1"} 7283.0
python_gc_objects_collected_total{generation="2"} 0.0
# HELP python_gc_objects_uncollectable_total Uncollectable object found during GC
# TYPE python_gc_objects_uncollectable_total counter
python_gc_objects_uncollectable_total{generation="0"} 0.0
python_gc_objects_uncollectable_total{generation="1"} 0.0
python_gc_objects_uncollectable_total{generation="2"} 0.0
# HELP python_gc_collections_total Number of times this generation was collected
# TYPE python_gc_collections_total counter
python_gc_collections_total{generation="0"} 93.0
python_gc_collections_total{generation="1"} 8.0
python_gc_collections_total{generation="2"} 0.0
# HELP python_info Python platform information
# TYPE python_info gauge
python_info{implementation="CPython",major="3",minor="7",patchlevel="4",version="3.7.4"} 1.0
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 3.8313984e+07
# HELP process_resident_memory_bytes Resident memory size in bytes.
# TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 2.9896704e+07
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1.6240506714e+09
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 0.52
# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 6.0
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1e+06
# HELP sb8200_downstream_power No Documentation
# TYPE sb8200_downstream_power gauge
sb8200_downstream_power{channel_id="6",frequency="537000000 Hz"} -2.7
# HELP sb8200_downstream_snr_mer No Documentation
# TYPE sb8200_downstream_snr_mer gauge
sb8200_downstream_snr_mer{channel_id="6",frequency="537000000 Hz"} 39.5
# HELP sb8200_downstream_corrected_total No Documentation
# TYPE sb8200_downstream_corrected_total counter
sb8200_downstream_corrected_total{channel_id="6",frequency="537000000 Hz"} 374600.0
# HELP sb8200_downstream_uncorrectables_total No Documentation
# TYPE sb8200_downstream_uncorrectables_total counter
sb8200_downstream_uncorrectables_total{channel_id="6",frequency="537000000 Hz"} 362837.0
# HELP sb8200_downstream_state No Documentation
# TYPE sb8200_downstream_state gauge
sb8200_downstream_state{channel_id="6",frequency="537000000 Hz",lock_status="Locked",modulation="QAM256"} 1.0
# HELP sb8200_downstream_power No Documentation
# TYPE sb8200_downstream_power gauge
sb8200_downstream_power{channel_id="1",frequency="507000000 Hz"} -2.3
# HELP sb8200_downstream_snr_mer No Documentation
# TYPE sb8200_downstream_snr_mer gauge
sb8200_downstream_snr_mer{channel_id="1",frequency="507000000 Hz"} 39.3
# HELP sb8200_downstream_corrected_total No Documentation
# TYPE sb8200_downstream_corrected_total counter
sb8200_downstream_corrected_total{channel_id="1",frequency="507000000 Hz"} 546150.0
# HELP sb8200_downstream_uncorrectables_total No Documentation
# TYPE sb8200_downstream_uncorrectables_total counter
sb8200_downstream_uncorrectables_total{channel_id="1",frequency="507000000 Hz"} 932007.0
# HELP sb8200_downstream_state No Documentation
# TYPE sb8200_downstream_state gauge
sb8200_downstream_state{channel_id="1",frequency="507000000 Hz",lock_status="Locked",modulation="QAM256"} 1.0
# HELP sb8200_downstream_power No Documentation
# TYPE sb8200_downstream_power gauge
sb8200_downstream_power{channel_id="2",frequency="513000000 Hz"} -2.5
# HELP sb8200_downstream_snr_mer No Documentation
# TYPE sb8200_downstream_snr_mer gauge
sb8200_downstream_snr_mer{channel_id="2",frequency="513000000 Hz"} 39.5
# HELP sb8200_downstream_corrected_total No Documentation
# TYPE sb8200_downstream_corrected_total counter
sb8200_downstream_corrected_total{channel_id="2",frequency="513000000 Hz"} 570567.0
# HELP sb8200_downstream_uncorrectables_total No Documentation
# TYPE sb8200_downstream_uncorrectables_total counter
sb8200_downstream_uncorrectables_total{channel_id="2",frequency="513000000 Hz"} 996627.0
# HELP sb8200_downstream_state No Documentation
# TYPE sb8200_downstream_state gauge
sb8200_downstream_state{channel_id="2",frequency="513000000 Hz",lock_status="Locked",modulation="QAM256"} 1.0
# HELP sb8200_downstream_power No Documentation
# TYPE sb8200_downstream_power gauge
sb8200_downstream_power{channel_id="3",frequency="519000000 Hz"} -2.6
# HELP sb8200_downstream_snr_mer No Documentation
# TYPE sb8200_downstream_snr_mer gauge
sb8200_downstream_snr_mer{channel_id="3",frequency="519000000 Hz"} 39.5
# HELP sb8200_downstream_corrected_total No Documentation
# TYPE sb8200_downstream_corrected_total counter
sb8200_downstream_corrected_total{channel_id="3",frequency="519000000 Hz"} 550885.0
# HELP sb8200_downstream_uncorrectables_total No Documentation
# TYPE sb8200_downstream_uncorrectables_total counter
sb8200_downstream_uncorrectables_total{channel_id="3",frequency="519000000 Hz"} 916267.0
# HELP sb8200_downstream_state No Documentation
# TYPE sb8200_downstream_state gauge
sb8200_downstream_state{channel_id="3",frequency="519000000 Hz",lock_status="Locked",modulation="QAM256"} 1.0
# HELP sb8200_downstream_power No Documentation
# TYPE sb8200_downstream_power gauge
sb8200_downstream_power{channel_id="4",frequency="525000000 Hz"} -2.7
# HELP sb8200_downstream_snr_mer No Documentation
# TYPE sb8200_downstream_snr_mer gauge
sb8200_downstream_snr_mer{channel_id="4",frequency="525000000 Hz"} 39.5
# HELP sb8200_downstream_corrected_total No Documentation
# TYPE sb8200_downstream_corrected_total counter
sb8200_downstream_corrected_total{channel_id="4",frequency="525000000 Hz"} 502283.0
# HELP sb8200_upstream_channel No Documentation
# TYPE sb8200_upstream_channel gauge
sb8200_upstream_channel{channel_id="5",frequency="20400000 Hz"} 1.0
# HELP sb8200_upstream_width No Documentation
# TYPE sb8200_upstream_width gauge
sb8200_upstream_width{channel_id="5",frequency="20400000 Hz"} 3.2e+06
# HELP sb8200_upstream_power No Documentation
# TYPE sb8200_upstream_power gauge
sb8200_upstream_power{channel_id="5",frequency="20400000 Hz"} 42.0
# HELP sb8200_upstream_state No Documentation
# TYPE sb8200_upstream_state gauge
sb8200_upstream_state{channel_id="5",frequency="20400000 Hz",lock_status="Locked",us_channel_type="SC-QAM"} 1.0
# HELP sb8200_upstream_channel No Documentation
# TYPE sb8200_upstream_channel gauge
sb8200_upstream_channel{channel_id="6",frequency="23600000 Hz"} 2.0
# HELP sb8200_upstream_width No Documentation
# TYPE sb8200_upstream_width gauge
sb8200_upstream_width{channel_id="6",frequency="23600000 Hz"} 3.2e+06
# HELP sb8200_upstream_power No Documentation
# TYPE sb8200_upstream_power gauge
sb8200_upstream_power{channel_id="6",frequency="23600000 Hz"} 42.0
# HELP sb8200_upstream_state No Documentation
# TYPE sb8200_upstream_state gauge
sb8200_upstream_state{channel_id="6",frequency="23600000 Hz",lock_status="Locked",us_channel_type="SC-QAM"} 1.0
# HELP sb8200_upstream_channel No Documentation
# TYPE sb8200_upstream_channel gauge
sb8200_upstream_channel{channel_id="7",frequency="28400000 Hz"} 3.0
# HELP sb8200_upstream_width No Documentation
# TYPE sb8200_upstream_width gauge
sb8200_upstream_width{channel_id="7",frequency="28400000 Hz"} 6.4e+06
# HELP sb8200_upstream_power No Documentation
# TYPE sb8200_upstream_power gauge
sb8200_upstream_power{channel_id="7",frequency="28400000 Hz"} 44.0
# HELP sb8200_upstream_state No Documentation
# TYPE sb8200_upstream_state gauge
sb8200_upstream_state{channel_id="7",frequency="28400000 Hz",lock_status="Locked",us_channel_type="SC-QAM"} 1.0
# HELP sb8200_upstream_channel No Documentation
# TYPE sb8200_upstream_channel gauge
sb8200_upstream_channel{channel_id="8",frequency="34800000 Hz"} 4.0
# HELP sb8200_upstream_width No Documentation
# TYPE sb8200_upstream_width gauge
sb8200_upstream_width{channel_id="8",frequency="34800000 Hz"} 6.4e+06
# HELP sb8200_upstream_power No Documentation
# TYPE sb8200_upstream_power gauge
sb8200_upstream_power{channel_id="8",frequency="34800000 Hz"} 44.0
# HELP sb8200_upstream_state No Documentation
# TYPE sb8200_upstream_state gauge
sb8200_upstream_state{channel_id="8",frequency="34800000 Hz",lock_status="Locked",us_channel_type="SC-QAM"} 1.0
# HELP sb8200_state No Documentation
# TYPE sb8200_state gauge
 
@Jack Yaz is there an update on the horizon at all for modmon to capture hub 4 info? Recently switched to one as my area has been upgraded to docsis 3.1.. downloads on spdmerlin now show consistent downloads with no massive drops at peak times. upload is still docsis 3.0 though.

you getting full fibre on your gigabit broadband or still coax?
 
@Jack Yaz is there an update on the horizon at all for modmon to capture hub 4 info? Recently switched to one as my area has been upgraded to docsis 3.1.. downloads on spdmerlin now show consistent downloads with no massive drops at peak times. upload is still docsis 3.0 though.

you getting full fibre on your gigabit broadband or still coax?
my gigabit upgrade is in the works (via O2 Volt), so I should be getting a Hub 4 in the next few weeks. I'll be looking to add support if possible, and I'm trying to get my hands on the Hub 5 that's available for select customers (not sure Virgin Media care about modmon enough to bump me up the list though!)
 
my gigabit upgrade is in the works (via O2 Volt), so I should be getting a Hub 4 in the next few weeks. I'll be looking to add support if possible, and I'm trying to get my hands on the Hub 5 that's available for select customers (not sure Virgin Media care about modmon enough to bump me up the list though!)
I’d asked for a hub 5 too but they said they’d literally only just started rolling them out. I’m leaving it til after Christmas then gonna mither for one again! Might go for the gigabit myself depending on what Black Friday deals are going..
 
my gigabit upgrade is in the works (via O2 Volt), so I should be getting a Hub 4 in the next few weeks. I'll be looking to add support if possible, and I'm trying to get my hands on the Hub 5 that's available for select customers (not sure Virgin Media care about modmon enough to bump me up the list though!)
I bumped to the Hub4 and Gig1 a few weeks ago - I asked about Hub5 and was told it's not in general release yet but Gig1 customers will be the first to be upgraded (presumably since Gig1 is actually 1.2Gbps, so can make use of the new 2.5Gbps WAN port).
Happy to help if you want to test any Hub4 update for modmon, been missing it since upgrading...
 
I bumped to the Hub4 and Gig1 a few weeks ago - I asked about Hub5 and was told it's not in general release yet but Gig1 customers will be the first to be upgraded (presumably since Gig1 is actually 1.2Gbps, so can make use of the new 2.5Gbps WAN port).
Happy to help if you want to test any Hub4 update for modmon, been missing it since upgrading...
the hub 5 is why im also looking at getting myself an AX86U :D
 
the hub 5 is why im also looking at getting myself an AX86U :D
Just it’s a non puma chipset or anything specific? Curious as to what pleasant surprises it brings!

Also seen on the VM forums that they’re offering them to people below the 1 gig packages. Supposedly the general release is early Jan (Vm forum)..
 
Just it’s a non puma chipset or anything specific? Curious as to what pleasant surprises it brings!

Also seen on the VM forums that they’re offering them to people below the 1 gig packages. Supposedly the general release is early Jan (Vm forum)..
the 2.5gbps port will be good for the link between the modem and router. ideally I'll also use link aggregation to link in to my 24 port managed switch that sits under the stairs, for future proofing (until I buy a 2.5g capable managed switch)
 
Good news everyone. I now have a Hub 4, so can work on updating modmon to work with it. It appears this is the magic URL: http://192.168.100.1/php/ajaxGet_device_networkstatus_data.php

Just need to modify modmon to parse it.

I have stumbled on another project in Go, for anyone who runs a Linux stack with grafana, that mentions an issue with the Hub 4 which will also impact modmon: https://github.com/msh100/modem-stats/issues/2
Looking forward to this roll out. Will it be a seperate release or merge into for backwards compatible mode?
 
Will this work on the Virgin Media business modems? I have the Hitron modem.
HITRON Chita to be specific.

I am running the Virgin router it in modem mode connected to a Asus RT-AX88U (Merlin 386.4). Router address is 192.168.1.1

I have not installed the script yet.... as
  • I am unable to access 192.168.100.1 from my connected laptop
  • cannot even ping 192.168.100.1 from my router either

@Jack Yaz
Anyway to resolve these basic issue(s) above?
 
Last edited:
Dear Jack, dear fellow enthusiasts,

As I don't have a supported modem, and at first I didn't even remember this, I tried an alternate approach, let me share this for the unlucky ones that don't have a supported modem and might end up here. And as, in this thread, we all rely on DOCSIS, it's also an experience with DOCSIS...

I live in Belgium, a big player (at the scale of Belgium) ISP is VOO. They provide a modem that can synchronize sixteen channels. The cable in my street has 20 channels. To balance the load, sometimes my modem is assigned to channel IDs 1 to 16 (like every other week or so). This is all good for my household. And sometimes to a different mix that includes 21 and 22 (158 and 166 MHz; so higher IDs, but lower frequency than the others). And then the behaviour is less favourable and varies a lot. Hard data helps to guide and motivate the ISP.

I used a browser extension (for Firefox), PageProbe (https://nodetics.com/pageprobe/) to "harvest" the information on the http://192.168.100.1/#/status/docsis_signal page of the modem. PageProbe is flexible (just right-click on the part of the page you want to monitor), cool, and also produces graphs. It doesn't handle authentication but if you hammer the modem before the timeout, the session stays open indefinitely apparently :)

See how the power varies abruptly. Graph shows 4 days or so:
See how the power varies abruptly. Graph shows 4 days or so.




But PageProbe is limited as to the number of datapoints that it can store (200 in the global log; 150 per metric; like 5 days in that graph). So much so that I suggested them to look at Jack's work as inspiration, at https://github.com/jackyaz/connmon. Indeed, connmon holds 30+ days of my pings every 4 minutes, and doesn't skip a beat. Anyway, I patiently gathered the measures from PageProbe in LibreOffice Calc where I plotted them as a XY (scatter) plot (4000+ data points so far). See again how channel ID 22 (in blue below) varies abruptly from e.g. -2 to -8 dBmV. Channel 16 in orange below is much more stable, probably varying only due to weather conditions.

Getting the full undivided attention of the ISP is another matter, but I'm still hopeful, and thanks to their actions (including two medium trucks in my street), I went from -10dBmV on channel 22 (a few weeks ago); to varying levels between -2 and - 8, which is still an improvement, and results in significantly less packet loss.
On this graph, one can see how channel ID 16 (orange) has slow daily variations; and channel 22 (blue) has hectic variations with a few minutes.

Note that this graph has the full detail, so many more data points, than the graph of PageProbe that only remembers summarized data. And I have data for many older days, but they are not more interesting than this.

Take care
See you soon for another post more focused on modmon ;-)
Regards
Wistuplu
 
Dear Jack, dear fellow enthusiasts,

My modem is the reference CGA4233 from the VOO ISP in Belgium, the contractor of VOO for the modem is Technicolor. A very similar modem is also used by Vodaphone in Germany https://kabel.vodafone.de/static/media/Technicolor_VodafoneStation_CGA4233DE.pdf . The modem is DOCSIS 3.1 compliant but I think the network globally is still 3.0.
http://192.168.100.1/#/status/docsis_signal looks like this
Screenshot 2022-03-12 at 19-33-14 192.168.100.1.png


Using F12 (Developer tools)/Network/All, one can identify an underlying request for JSON data.
The JSON requests, translated to curl, looks like this.
curl 'http://192.168.100.1/api/v1/modem/exUSTbl,exDSTbl,USTbl,DSTbl,ErrTbl?_=1647091502526' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:98.0) Gecko/20100101 Firefox/98.0' -H 'Accept: */*' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate' -H 'X-CSRF-TOKEN: e2e17093a9d053ef75f634b21b7918a0' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' -H 'Referer: http://192.168.100.1/' -H 'Cookie: lang=fr; PHPSESSID=mhtal0ckajf2hsjsec5ch4m76a; auth=e2e17093a9d053ef75f634b21b7918a0' -H 'DNT: 1' -H 'Sec-GPC: 1' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache'

One can streamline it removing part of the fluff to
curl 'http://192.168.100.1/api/v1/modem/exUSTbl,exDSTbl,USTbl,DSTbl,ErrTbl' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:98.0) Gecko/20100101 Firefox/98.0' -H 'Accept: */*' -H 'X-CSRF-TOKEN: 8540964d05dd11960218290da2f77b29' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' -H 'Cookie: lang=fr; PHPSESSID=l3ljblkpfhf5k6vgh7vuhsfngn; auth=8540964d05dd11960218290da2f77b29'

The information looks like follows:

Full text, which is valid JSON, at pastebin
https://pastebin.com/tX2wDs28

Wild JSON extract (only part of the data):
{"error":"ok","message":"all values retrieved","data":{"exUSTbl":[],"exDSTbl":[],"USTbl":[{"__id":"1","ChannelID":"1","Frequency":"50.7 MHz","PowerLevel":"48.8 dBmV","ChannelType":"SC-QAM","SymbolRate":"5120000","Modulation":"32-qam","LockStatus":"Locked"},{"__id":"2","ChannelID":"2","Frequency":"57.2 MHz","PowerLevel":"48.8 dBmV","ChannelType":"SC-QAM","SymbolRate":"5120000","Modulation":"32-qam","LockStatus":"Locked"},{"__id":"3","ChannelID":"3","Frequency":"37.2 MHz","PowerLevel":"47.8 dBmV","ChannelType":"SC-QAM","SymbolRate":"5120000","Modulation":"32-qam","LockStatus":"Locked"},{"__id":"4","ChannelID":"4","Frequency":"44.2 MHz","PowerLevel":"47.8 dBmV","ChannelType":"SC-QAM","SymbolRate":"5120000","Modulation":"32-qam","LockStatus":"Locked"}],"DSTbl":[{"__id":"1","ChannelID":"3","Frequency":"466 MHz","PowerLevel":"-4.9 dBmV","SNRLevel":"39.6 dB","Modulation":"256-QAM","Octets":"799845969","Correcteds":"580253","Uncorrectables":"11254","LockStatus":"Locked","ChannelType":"SC-QAM"},{"__id":"2","ChannelID":"1","Frequency":"450 MHz","PowerLevel":"-4.3 dBmV","SNRLevel":"39.8 dB","Modulation":"256-QAM","Octets":"799958505","Correcteds":"723183","Uncorrectables":"11529","LockStatus":"Locked","ChannelType":"SC-QAM"},{"__id":"3","ChannelID":"2","Frequency":"458 MHz","PowerLevel":"-5.0 dBmV","SNRLevel":"39.6 dB","Modulation":"256-QAM","Octets":"800243487","Correcteds":"674184","Uncorrectables":"11632","LockStatus":"Locked","ChannelType":"SC-QAM"},{"__id":"4","ChannelID":"4","Frequency":"474 MHz","PowerLevel":"-4.7 dBmV","SNRLevel":"39.3 dB","Modulation":"256-QAM","Octets":"800531266","Correcteds":"567544","Uncorrectables":"10991","LockStatus":"Locked","ChannelType":"SC-QAM"}]}}

Note that there are 5 "subtrees" (see screenshot below). 1 and 2 are empty. 3 and 4 are dedicated to downstream and upstream respectively. 5 provides data that was already in 4 (5 is not at all in the extract above, 5 is only on pastebin). NB: Below, the subtrees are collapsed; 3, 4 and 5 are NOT empty.

Collapsed:
Screenshot from 2022-03-12 20-02-51.png



Expanded:
Screenshot from 2022-03-12 20-04-01.png


I guess there are a few challenges.
First the content doesn't look anywhere near the sample at
http://www.snbforums.com/threads/modmon-webui-for-monitoring-virgin-hub-3-cable-modem-stats.61363/
and maybe sed wouldn't be the right approach. I'm referring to line 754 of version 1.1.8 https://github.com/jackyaz/modmon/blob/master/modmon.sh:
/usr/sbin/curl -fs --retry 3 --connect-timeout 15 "http://192.168.100.1/getRouterStatus" | sed s/1.3.6.1.2.1.10.127.1.1.1.1.6/RxPwr/ | sed s/1.3.6.1.4.1.4491.2.1.20.1.2.1.1/TxPwr/ | sed s/1.3.6.1.4.1.4491.2.1.20.1.2.1.2/TxT3Out/ | sed s/1.3.6.1.4.1.4491.2.1.20.1.2.1.3/TxT4Out/ | sed s/1.3.6.1.4.1.4491.2.1.20.1.24.1.1/RxMer/ | sed s/1.3.6.1.2.1.10.127.1.1.4.1.4/RxPstRs/ | sed s/1.3.6.1.2.1.10.127.1.1.4.1.5/RxSnr/ | sed s/1.3.6.1.2.1.69.1.5.8.1.2/DevEvFirstTimeOid/ | sed s/1.3.6.1.2.1.69.1.5.8.1.5/DevEvId/ | sed s/1.3.6.1.2.1.69.1.5.8.1.7/DevEvText/ | sed 's/"//g' | sed 's/,$//g' | sed 's/\./,/' | sed 's/:/,/' | grep "^[A-Za-z]" > "$shstatsfile"
I have never used perl but would it be a good bet to turn the json input from my modem into a similar format to what is expected by modmon ? It seems there is a perl on the modem.

Second, the target of curl needs to refer to sessions etc because the modem requires authentication on that page too. I could deal with that part in a dirty way: Start a session in Firefox, collect the identifiers thanks to developer tools in the browser, update the script by patching the identifiers, and let it roll.

What could help me find a solution and understand Jack's code better would be if someone could send/share the full result of http://192.168.100.1/getRouterStatus on a supported modem. That would help me run it through the sed above, and generate a "shstatsfile" as it's named in Jack's code, and see what the remaining code expects as input. And if you have a web page that shows the same information in a way that makes sense, a screenshot would help too. And I guess it would help anyone trying to customize the code for another modem in the future.

EDIT: The code of Jack is wonderful. Although the actual details and syntax of commands are way beyond my skill level, the structure and design are wonderfully clear. I will torture Jack's code at https://github.com/waluwaz/modmon/tree/Support-for-belgian-VOO-CGA4233-Technicolor and hopefully, I'll be able to get somewhere, at least, I'm having a blast trying.

And of course Jack, if you have some advices ;-) I have had great experiences with customizing connmon and spdmerlin to my specific needs (adding additional servers for ping; or additional servers on the same WAN interface for spdMerlin, https://github.com/waluwaz), thanks to Jack(s very clear coding. So maybe, I can also customize this :) (NB: By success, I mean fulfilling my own need in a hacky way. It's nowhere near as polished as what Jack produces.)

Take care
Best regards

wistuplu

EDIT: I see the router has "jq" which seems to aim at parsing json. To be continued...
MORE EDITS above...
 
Last edited:

Similar threads

Sign Up For SNBForums Daily Digest

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