What's new
  • 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!

YazDHCP YazDHCP - feature expansion of DHCP assignments (increasing limit on the number of DHCP reservations)

I get this:

-sh: YazDHCP: not found

even though 1.0.6 is there in AMTM
Try the long version:
Code:
sh /jffs/scripts/YazDHCP develop
 
I am getting this:
sh: can't open '/jffs/scripts/YazDHCP'

What am I doing wrongly?
Can you please try:

Code:
sh /jffs/scripts/YazDHCP.sh develop

k.
 
Can you pelase try:

Code:
sh /jffs/scripts/YazDHCP.sh develop

k.
Thanks, but still getting this:
sh: can't open '/jffs/scripts/YazDHCP.sh'

Just trying to get this script to run on my new RT-BE88U running the latest AsusMerlin RT-BE88U_3006_102.4_beta1.
 
Thanks, but still getting this:
sh: can't open '/jffs/scripts/YazDHCP.sh'

Just trying to get this script to run on my new RT-BE88U running the latest AsusMerlin RT-BE88U_3006_102.4_beta1.
Darn, I had to run a CLI command with .sh appended on another script so thought it might work here.

I have (just now) installed YazDHCP (j7) from amtm, which installs 1.06, ran it, exported my current DHCP assignments, exited amtm, then ran @Ripshod CLI command and it worked to get to 1.07.

Code:
sh /jffs/scripts/YazDHCP develop
 

Attachments

  • Yzzy.jpg
    Yzzy.jpg
    60.8 KB · Views: 39
Last edited:
I am getting this:
sh: can't open '/jffs/scripts/YazDHCP'

What am I doing wrongly?
That typically means you don't have YazDHCP installed.

For people new to this, install YazDHCP first either through AMTM (option j7) or manually:
Code:
/usr/sbin/curl -fsL --retry 3 "https://jackyaz.io/YazDHCP/master/install/YazDHCP.sh" -o "/jffs/scripts/YazDHCP" && chmod 0755 /jffs/scripts/YazDHCP && /jffs/scripts/YazDHCP install
Then you can update to the YazFi develop (1.0.7) version by running:
Code:
sh /jffs/scripts/YazDHCP develop

PS: No idea if one could try to manually install the develop version directly, using code below, without installing the older master version first. Never personally tried it.
Code:
/usr/sbin/curl -fsL --retry 3 "https://jackyaz.io/YazDHCP/develop/install/YazDHCP.sh" -o "/jffs/scripts/YazDHCP" && chmod 0755 /jffs/scripts/YazDHCP && /jffs/scripts/YazDHCP install
 
That typically means you don't have YazDHCP installed.

For people new to this, install YazDHCP first either through AMTM (option j7) or manually:
Code:
/usr/sbin/curl -fsL --retry 3 "https://jackyaz.io/YazDHCP/master/install/YazDHCP.sh" -o "/jffs/scripts/YazDHCP" && chmod 0755 /jffs/scripts/YazDHCP && /jffs/scripts/YazDHCP install
Then you can update to the YazFi develop (1.0.7) version by running:
Code:
sh /jffs/scripts/YazDHCP develop

PS: No idea if one could try to manually install the develop version directly, using code below, without installing the older master version first. Never personally tried it.
Code:
/usr/sbin/curl -fsL --retry 3 "https://jackyaz.io/YazDHCP/develop/install/YazDHCP.sh" -o "/jffs/scripts/YazDHCP" && chmod 0755 /jffs/scripts/YazDHCP && /jffs/scripts/YazDHCP install
Thank you for the detailed instruction.
 
On the latest "1.0.6" version, YazDHCP has the option to back up & restore custom user icons, and using this feature includes backing up the custom client names.
Apologies if this has been answered, I did a search within this thread but could not find a specific response. I’m using 1.0.7 develop on the 3006 Beta on an RT-AX88U Pro.

As regards custom client names (old custom_clientlist in /jffs/nvram which I emptied to avoid conflicts), you note above that backing up the icons also backs up custom client names.

Is this backup of the custom client names in the same zip file as the icons (and can it be extracted and edited for re-upload/restore?), or is there a separate file where custom client names are stored (and that can be edited if need be)? Thank you 🙏.

[EDIT]

Out of curiosity (yea, poor cat), I had a wee look inside a custom icons file (gzip YazDHCP GUI back up ) e.g. CustomUserIcons_2025-04-11_12-02-44.tar.gzip located in /opt/var/SavedUserIcons. Apart from what appears to be the standard icons in a #.log format and the custom icons in MAC.log (AA33EE22DDFF.log) format there are three other files:

Code:
NVRAMfile_custom_clientlist.TMP
NVRAMvar_custom_clientlist.TMP
usericon_md5.json

I am not touching the .json with a barge pole but looking inside the .TMP files it appears they follow a similar format to custom_clientlist that used to be in /jffs/nvram? I am not sure what the difference in content is between these two TMP files, they appear quite similar.

I assume these get loaded back with the icons, but if someone wanted to amend these manually, would it be possible?

The format of the custom_client list (all on one line) seems to be something like:
Code:
<Custom_NAME1>MA:AC:AD:DR:ES:S1>0>XX>>>>><Custom_NAME2>MA:AC:AD:DR:ES:S2>0>YY>>>>>REPEAT SEQUENCE
I am sure I would break something or stuff it up if I attempted to amend it and I am also not 100% sure what the "XX" and "YY" numbers represent, but if it's logical, in "theory" I could use an existing custom_client file I have and just amend it, name it to the TMP file format and pop it back in the gzip?

[EDIT] Amended format from old suffix two ">>" to new, 5 ">>>>>".
 
Last edited:
Apologies if this has been answered, I did a search within this thread but could not find a specific response. I’m using 1.0.7 develop on the 3006 Beta on an RT-AX88U Pro.

As regards custom client names (old custom_clientlist in /jffs/nvram which I emptied to avoid conflicts), you note above that backing up the icons also backs up custom client names.

Is this backup of the custom client names in the same zip file as the icons (and can it be extracted and edited for re-upload/restore?), or is there a separate file where custom client names are stored (and that can be edited if need be)? Thank you 🙏.
As you have already found out, the archive gzip file contains copies of the icons files themselves, the corresponding JSON file, and a copy of the contents of the "custom_clientlist'' NVRAM variable.

Using the YazDHCP CLI menu, you can select a specific archive gzip file to view its contents easily:

YazDHCP_v1.0.7_CLI_Icons1.jpg


YazDHCP_v1.0.7_CLI_Icons2.jpg


[EDIT]

Out of curiosity (yea, poor cat), I had a wee look inside a custom icons file (gzip YazDHCP GUI back up ) e.g. CustomUserIcons_2025-04-11_12-02-44.tar.gzip located in /opt/var/SavedUserIcons. Apart from what appears to be the standard icons in a #.log format and the custom icons in MAC.log (AA33EE22DDFF.log) format there are three other files:

Code:
NVRAMfile_custom_clientlist.TMP
NVRAMvar_custom_clientlist.TMP
usericon_md5.json

I am not touching the .json with a barge pole but looking inside the .TMP files it appears they follow a similar format to custom_clientlist that used to be in /jffs/nvram? I am not sure what the difference in content is between these two TMP files, they appear quite similar.
Yes, those two *.TMP files are exact copies of the NVRAM variable and its corresponding file found in the "/jffs/nvram" directory. The shell script essentially makes a copy for backup and puts the copies back when restoring.

I assume these get loaded back with the icons, but if someone wanted to amend these manually, would it be possible?
Yes, it's certainly possible.

The format of the custom_client list (all on one line) seems to be something like:
Code:
<Custom_NAME1>MA:AC:AD:DR:ES:S1>0>XX>><Custom_NAME2>MA:AC:AD:DR:ES:S2>0>YY>>REPEAT SEQUENCE
I am sure I would break something or stuff it up if I attempted to amend it and I am also not 100% sure what the "XX" and "YY" numbers represent, but if it's logical, in "theory" I could use an existing custom_client file I have and just amend it, name it to the TMP file format and pop it back in the gzip?
Yes, it's theoretically possible. The caveat is that you will need to be extremely careful when making any changes so that the format always remains intact. Any minor mistake will likely corrupt the contents of the NVRAM variable when restoring it. This assumes, of course, that the format has not changed between the different F/W branches and versions - in case you wanted to restore the custom icons from one router model to a different router, or to the same router after upgrading to a different F/W version.

I wish you good luck.
 
I wish you good luck.
A very comprehensive response as always, much appreciated.

At this point I'm probably not going to push my luck (lol) attempting to edit the file(s) unless I have to make wholesale changes, best just populate it as far as possible in the YazDHCP GUI, export it and reimport it, which gives me the custom client list details at the point in time I exported the user icons. Make changes in the GUI, re-export, rinse, repeat. Thank you!

[EDIT] Still unsure about scheme of XX and YY numbering though.
 
Last edited:
A very comprehensive response as always, much appreciated.

At this point I'm probably not going to push my luck (lol) attempting to edit the file(s) unless I have to make wholesale changes, best just populate it as far as possible in the YazDHCP GUI, export it and reimport it, which gives me the custom client list details at the point in time I exported the user icons. Make changes in the GUI, re-export, rinse, repeat. Thank you!
Yeah, that would be the safest approach to a solution.

[EDIT] Still unsure about scheme of XX and YY numbering though.
I don't know what those numbers mean or represent. For backup & restore purposes, I didn't need to know, and I was never curious enough to dig deep and find out.
 
[EDIT] Still unsure about scheme of XX and YY numbering though.
I don't know what those numbers mean or represent. For backup & restore purposes, I didn't need to know, and I was never curious enough to dig deep and find out.
For completeness and to satisfy my curiosity (and because I had been having a few headaches with the Guest Network Pro Client Names, more on that below), I had a little hunt around to see if the device type numbering scheme was properly documented anywhere. The short answer is 'not that I can find', there is no definitive list I am aware of (but happy to be given one!).

I did however find some sparse information here, with 5# device types previously recorded in 2016:
Code:
35 Laptop
2  Switch
19 Printer
21 iPad
10 iPhone

I had a look at my own list and confirmed device type 10, 21 (are both Apple Devices, iPhones and iPads resp.) and maybe 2 are Routers (Switches?). I found a few more (but not that many).
Code:
1 Asus Windows Desktop
2 GLiNetRouter for each of Eth, Wan and Wifi (same as Switch?); TPLinkRouter
11 AppleTV4K Eth
20 LG Phone (Android?)
23 Amazon Kindle
35 Windows Notebook
73 Samsung Notepad
87 TPlink Wifi USB Adapter

If anyone wants to add to this list feel free to post your recognised devices :-). I am not sure they are that useful and TBH it seems a bit hit and miss anyway, as I had two devices where it didn't even add a 0, this was for a Raspberry Pi 3B (Eth) and Pi4 (Wifi); and a bunch of devices which were just "recognised" as a '0'.

Not suggesting anyone amends custom_clientlist manually as a rule, but even if you did happen to amend it to the wrong device_type, I don't think it's a show stopper, you could always delete that entry from the GUI and put it back again; or restore from a working copy (that you backed up...).

For the record the format is, note the frst name does not have a leading "<", all discussed here, mainly by @ColinTaylor.
Code:
TL_MR3020_Eth>F4:F2:6D:F5:BD:3E>0>2>>>>><SmurfPC>04:92:26:D3:47:D7>0>1>>>>>REPEAT_STARTING_WITH_<
I have only ever seen ">0" after the MAC Address, no other number. In this example, after the next ">", the "2" is actually for a small TPLink Router and the "1" is for an Asus Desktop.

Also noted in that thread is that if you add (actually amend) a Custom Name in the GUI (Network Map, Client List and look at the contents of custom_clientlist straight away, you will see it only adds TWO ">>" after the device type number; however a reboot changes (corrects) that to five ">>>>>".

The reason I mention this here in the YazDHCP thread is that if you add custom client names for devices in your VLANs either:
  1. via the GUI accessed via "Network Map, View List, Client List or
  2. manually, by editing the custom_clientlist file located in /jffs/nvram,
then when YazDHCP (which is only intended for the manual assignments for the Primary Network) backs up Icons, (via the unassumingly-named "Back up Icons" button) it also backs up the custom_clientlist including the entries you just added for the VLANs.

I think this is pretty neat, in fact I think it is absolutely great! I checked the NVRAMvar_custom_clientlist.TMP file located in the CustomUserIcons_date.tar.gzip in /opt/var/SavedUserIcons and sure enough the VLAN assignments were all there. So in conjunction with either:

3. the (relatively new) 3006 FW option of manual MAC/IP/Hostname assignments in the VLAN GUI or
4. adding the dhcp-host=MAC,IP,Hostname via the dnsmasq-x.conf.add option discussed here (or using dnsmasq scripts),

the system is actually complete for VLANs too.

I am sure this is all old hat for the folks who do this for a living, but I'm not one of them, so I'm chuffed to bits this actually works out. Thank you @Martinski, very much appreciated.

For completeness, credit mainly to @ColinTaylor

View the CCL in one line:

Code:
# nvram show | grep custom_clientlist
View the CCL in a more easily read tabular format [NOTE! This misses out the FIRST Device due to lack of a leading "<"]:
Code:
# nvram get custom_clientlist | sed 's/</\n/g; s/>/\t/g' | sed 's/^/custom\t/' | tail '+2' | sed 's/\(^.*\)\(\t.*\)\(\t[0-9A-F][0-9A-F]:.*$\)/\1\3\2/'
Reset the CCL (Note this resets ALL Custom Clints, including YazDHCP ones):
Code:
# nvram set custom_clientlist=""
# nvram commit
Make a new CCL Line from the CLI (all one line, no gaps), "quotation marks":
Code:
# nvram set custom_clientlist="<name>00:11:22:33:44:55>0>0>><name2>11:22:33:44:55:66>0>0>>"
# nvram commit
You can also amend custom_clientlist in WinSCP (it is in /jffs/nvram), which is what I do.
 

Attachments

  • ClientList_AfterCleaning_CustomClientList.jpg
    ClientList_AfterCleaning_CustomClientList.jpg
    60.2 KB · Views: 18
  • ClientList_Afteramending_CustomClientList.jpg
    ClientList_Afteramending_CustomClientList.jpg
    64.6 KB · Views: 26
Last edited:
The short answer is 'not that I can find', there is no definitive list I am aware of (but happy to be given one!).
Take a look here:


 
Last edited:
Take a look here:
Awesome, thank you!

TBH I would never in a grillion years go looking there.

That’s the whole shooting match, seems to correspond to the text you see when you mouse hover over the icons in the manual assignments list on the GUI?

I’ll make a little sortable Excel table tomorrow to close it out.
 
Last edited:
I’ll make a little sortable Excel table tomorrow to close it out.
Ok, this is probably more for interest than anything else, but maybe someone poking around in the contents of custom_clientlist one day will be able to see what the device type that has been assigned is. I am not sure if the assignment in the client_function.js kindly pointed out to me by @dave14305 in the current binary blob (can't believe I just wrote that) gets updated regularly or not but anyway, here is the simplified table.

I used the section in client_function.js called var custom_icon_list_api = {, ; currently these are between lines client_function.js#L3875 to client_function.js#L4341 inclusive.

Some minor comments/observations:
  • The ASUS tag is the only one not in Caps, presumably that is by design as it does need translating?
Code:
            {tag:"#CLIENTLIST_MACBOOK",text:"<#Clientlist_Macbook#>"},
            {tag:"#Clientlist_ASUS_NB",text:"<#Clientlist_ASUS_NB#>"},
            {tag:"#CLIENTLIST_SD_CARD",text:"<#Clientlist_SD_Card#>"},
  • It seems that #PRINTER, #ROUTER AND #IPCAM are the only devices translated directly, all the rest are prefaced with "#CLIENTLIST_ (or nothing, for Media and Entertainment). The mapping table (var custom_icon_db_translation_mapping = [) does however show these mappings, so they just seem to get mapped to existing devices i.e. #Clientlist_Printer# and Device Types 2 and 5 respectively. The #NAS seems to get it's own mapping to #NAS_SERVER ("#CLIENTLIST_NAS_SERVER").
Code:
{tag:"#PRINTER",text:"<#Clientlist_Printer#>"},
{tag:"#ROUTER",text:"<#Device_type_02_RT#>"},
{tag:"#NAS",text:"<#Device_type_04_NS#>"},
{tag:"#IPCAM",text:"<#Device_type_05_IC#>"}
  • None of the Categories "Media and Entertainment" have a Device translation; nor do devices "iMac", "USB", "Camera" or "Kindle". I am sure there's a good reason for this.

  • Maybe a wee typo here?
Code:
        "warables": {
            "title": "Wearables",
            "translation": "#CLIENTLIST_WEARABLES",

XLSX File on Dropbox viewing only, happy to share for editing an offline copy (maybe someone else can host it) but I didn't want to let every person and their dog edit it online.

Thanks again to @dave14305, you're all over this, I'm just curious.

[EDIT] Sorry the first Pic is probably illegible, just too big, so the forum uglifies it. See other extracts, plus the XLSX.
 

Attachments

  • CustomClient_List Device Types.jpg
    CustomClient_List Device Types.jpg
    110.6 KB · Views: 24
  • Sort_Order_01.jpg
    Sort_Order_01.jpg
    88.8 KB · Views: 20
  • Sort_Order_02.jpg
    Sort_Order_02.jpg
    93.3 KB · Views: 19
  • Categories.jpg
    Categories.jpg
    11.6 KB · Views: 21
Last edited:
OK, so as a follow-on to the above, just for fun, I created a custom_clientlist generator as an extra tab in the XLSX v.1, I am sure it is full of bugs, so use with care. Cells are password protected w.e.o. input cells.

I have found custom_clientlist modifications to be reasonably robust, but nonetheless, use at your own risk.

What is nice about this, in conjunction with the Device_Type Table, if you use dnsmasq-x.conf.add for manual assignments (as an alternative to the limited GUI in GNP VLANs) it will populate the VLAN client lists in the Router GUI with the Icon associated with the device type you assign. YazDHCP already does this for the primary network.
 

Attachments

  • CCLGen.jpg
    CCLGen.jpg
    144.9 KB · Views: 25
  • Icons_for_IoT_VLAN.jpg
    Icons_for_IoT_VLAN.jpg
    48.3 KB · Views: 23
Last edited:

Similar threads

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

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