Jeez @Martinski ... you have a lot of iPads on your network! LOL. Excellent work!!Release Notes for YazDHCP v1.2.0 Development Version
[BETA v1.2.0_25091923] [2025-Sep-20]
To update from the currently installed production version to the latest 1.2.0 Beta development version, run the following command on an SSH terminal session:
Bash:/jffs/scripts/YazDHCP develop /jffs/scripts/YazDHCP forceupdate
This is the 1st BETA development version of YazDHCP 1.2.0, which introduces a new feature to allow users to manually assign DHCP IP address reservations to clients on any available Guest Network whose subnet is separate from the main LAN subnet. See below for more details.
When reporting any issues, please provide readable screenshots as well as all relevant information regarding the Guest Network that appears to show the problem/bug being reported. I'll try to reply within 24 to 48 hours.
----------
DETAILS:
----------
- When the YazDHCP 1.2.0 Beta development version is a fresh installation (*not* a version update), the script automatically checks if there are any DHCP IP address reservations stored in NVRAM. If found, it will prompt the user to confirm exporting all the existing reservations from NVRAM to YazDHCP internal files. This export process extracts all the relevant information to create the initial list of network clients from both the Main LAN and the Guest Networks (if any). Also, it allows users to restore the same IP address reservations to their original NVRAM state if you decide to uninstall YazDHCP at a later time.
View attachment 67970
- If a current production version of YazDHCP is already installed, updating to the latest 1.2.0 Beta development version will add an option 'x' in the SSH CLI menu to export any existing DHCP IP address reservations stored in NVRAM (if found). If this option is selected, the same export process triggered during a fresh installation will run.
View attachment 67971
- After the export of the NVRAM information is completed, any existing IP address reservations from Guest Networks will be shown as DISABLED (i.e. red background). Also, by default, if at least one suitable Guest Network is found enabled/active, the new feature is set to DISABLED, so the original behavior & functionality continues to run as usual.
View attachment 67972
- If at least one suitable Guest Network is found enabled/active, you will need to manually ENABLED the feature to activate all the Guest Network IP address assignments and to allow the user to input more entries. Make sure to click on the "Apply" button at the bottom of the WebUI page to make any changes permanent.
View attachment 67975
- After a Guest Network client IP address reservation is assigned, it will not be automatically removed from the WebUI page even if the feature is manually DISABLED, or if the Guest Network is temporarily DISABLED. However, the files associated with the dnsmasq instance will have the Guest Network client entries removed automatically.
View attachment 67974
- The menu option to toggle the new functionality will be grayed out and marked as UNAVAILABLE if there are no enabled Guest Networks whose subnet is separate from the main LAN subnet.
- You can manually add IP address reservations to Guest Network clients as long as the target Guest Network remains enabled and active.
- When assigning a new IP address reservation, the code will check if it falls within the subnet range of an available Guest Network in addition to the main LAN subnet; otherwise, an error message is displayed.
Have fun with it!!![]()
@Martinski, this looks awesome, thank you!@Martinski, haven't installed the beta yet, but do have a question. For the Guest Network Pro profile IP reservations, does the Beta only pull those reservations from NVRAM? Or does the Beta also check and pull the reservations from dnsmasq-INDEX.conf.add or dnsmasq-sdn.postconf file if those are used for the manual reservations instead of using the Guest Network Pro profile's Manually assigned IP around the DHCP list option (which are saved to NVRAM)?
LOL!!!Jeez @Martinski ... you have a lot of iPads on your network! LOL. Excellent work!!
@Martinski, haven't installed the beta yet, but do have a question. For the Guest Network Pro profile IP reservations, does the Beta only pull those reservations from NVRAM? Or does the Beta also check and pull the reservations from dnsmasq-INDEX.conf.add or dnsmasq-sdn.postconf file if those are used for the manual reservations instead of using the Guest Network Pro profile's Manually assigned IP around the DHCP list option (which are saved to NVRAM)?
The current implementation does not read such user-supplied files to transfer IP address assignments into YazDHCP internal files - only NVRAM-based settings are checked and transferred.@Martinski, this looks awesome, thank you!
Like @bennor I have not installed it yet, primarily because (like @bennor) I have dnsmasq-sdn.postconf files (dnsmasq-1.postconf and dnsmasq-2.postconf) in /jffs/configs/ and I was wondering if I should remove these first and populate the GUI manually with the same data, or whether the install will access the data in the files and do it automagically? Thanks!
MAC,IP,HOSTNAME,DNS
MAC,IP,HOSTNAME,DNS
AA:BB:CC:DD:EE:FF,192.168.50.10,,
AB:BC:CD:DE:EF:FA,192.168.50.11,MyHostName1,
FF:EE:DD:CC:BB:AA,192.168.50.12,MyHostName2,9.9.9.9
It's not the colouring that's taking time and holding things up, LOL!!I'm not complaining but someone will:
When "Allow Guest Network Client Assignments" is enabled the page takes an extra ~10 second for the page to complete loading (ie colouring the guest IPs is holding things up).
I know you've sacrificed some time getting it working, but is the colouring really necessary?
All good points, no problem doing this manually, I already used option 3 for a batch of Primary DHCP reservations.3) If you prefer doing the above changes offline on your personal laptop using your preferred text editor, or perhaps using MS Excel, you could export to CSV your current client list using the WebUI:
View attachment 67987
After you finish making all the changes and additions, you can then import the modified file into YazDHCP using the webUI page as well. Once you're satisfied with all your changes, make sure to click on the "Apply" button to make them persistent.
HTH.
Your custom "dnsmasq-*" files are read byAll good points, no problem doing this manually, I already used option 3 for a batch of Primary DHCP reservations.
My main concern was (is) that the presence of these files didn’t stuff up the new GUI listings, so I guess one question is do we delete these files prior to adding (the same) information to DHCP_clients.csv (and importing that) via YazDHCP GUI.
dnsmasq
to apply the directives you have specified. The WebUI is not aware at all of the existence of these user-supplied, custom files. When transferring all the IP address assignments to YazDHCP, you must delete the same entries from your custom files to avoid having duplicates in the resulting dnsmasq configuration. If your custom files have some other "content" unrelated to the IP address reservations, that can remain intact, so you don't have to delete the file itself unless, of course, it's empty after you have transferred the information to YazDHCP.OK, that sounds like a good plan. Make sure to double-check your modified DHCP_clients.csv file (typos, missing/extra commas, etc.) so that the import/transfer process goes smoothly. Good Luck!!Anyway I’ll try, in order, (a) deleting dnsmasq-1.postconf and dnsmasq-2.postconf (b) copying that information (in YazDHCP format) to my existing DHCP_clients.csv file (which currently only contains the Primary reservations) and (c) Importing the whole shebang back into YazDHCP then (d) enabling the non-primary reservations using your new WebGUI switch.
I have two separate networks but one of them has a GN in the same subnet as the Primary (reason: Shelly IoT Devices, use a main and fallback wifi SSID, but due to Shelly scripting (with static IPs) I need the IP Address to be the same, so the fallback Wifi is the same IP (subnet the same) but on a different SSID).- The menu option to toggle the new functionality will be grayed out and marked as UNAVAILABLE if there are no enabled Guest Networks whose subnet is separate from the main LAN subnet.
- You can manually add IP address reservations to Guest Network clients as long as the target Guest Network remains enabled and active.
Well I followed my 4 steps and it all seemed to go smoothly, thank you!OK, that sounds like a good plan. Make sure to double-check your modified DHCP_clients.csv file (typos, missing/extra commas, etc.) so that the import/transfer process goes smoothly. Good Luck!!
Keep in mind that when you set up a client IP address reservation on the WebUI, you enter its MAC address and the desired IP address - nothing else is required - so if the same subnet from the Main LAN is being used for the Guest Network clients, YazDHCP has no way to tell them apart.I have two separate networks but one of them has a GN in the same subnet as the Primary (reason: Shelly IoT Devices, use a main and fallback wifi SSID, but due to Shelly scripting (with static IPs) I need the IP Address to be the same, so the fallback Wifi is the same IP (subnet the same) but on a different SSID).
How does the beta handle GN IPs that are on the same subnet as the primary please? It is a valid GN right?
I ran it but it (as expected) it does not colour the GN (i.e. not done by SSID) just by a GN with a different subnet?
Thank you, totally understood now; it is not SSID based nor does it look for those devices on the same subnet but different SSID as a fall-back. Relies solely on IP and MAC.Keep in mind that when you set up a client IP address reservation on the WebUI, you enter its MAC address and the desired IP address - nothing else is required - so if the same subnet from the Main LAN is being used for the Guest Network clients, YazDHCP has no way to tell them apart.
I won't be able to help much WRT IPv6 since I don't have it enabled on my router. But, more importantly, the dialog that pops up when you click on the "icon card" from a client row is actually *not* part of YazDHCP. That dialog is generated via a separate JavaScript function call found in a F/W built-in JS file (client_function.js), so any issues with that dialog would have to be investigated, debugged, and fixed in the native JavaScript code.Before I was going to get into the update, I wanted to fix the current YazDHCP assignments as I am struggling with working out why, for around 6 to 8 of 52-odd reservations, the CUSTOM CLIENT NAME field(s) cannot be populated (will not populate nor can they be filled in). These initially appeared to be only for clients with IPv6 addresses, but I found one that was OK, so ruled that out.
What could be causing these to fail (when the others are all fine?)
Is there some way to reset something here?
Well, you can use AI if you want, but you have to ignore half of what it says. The key is to distinguish which half, LOL!!![EDIT] I know I shouldn't use AI but this is what it said after a bunch of SSH commands in testing.
No problem. I did actually disable IPv6 but (as far as I coudl tell) it did not fix it.I won't be able to help much WRT IPv6 since I don't have it enabled on my router.
Ah. OK... I will see if I can do that at some stage, and in the meantime then hope @RMerlin could take a wee look and comment if he has time, on what I currently see.But, more importantly, the dialog that pops up when you click on the "icon card" from a client row is actually *not* part of YazDHCP. That dialog is generated via a separate JavaScript function call found in a F/W built-in JS file (client_function.js), so any issues with that dialog would have to be investigated, debugged, and fixed in the native JavaScript code.
You could try running the same test scenario under the same or similar conditions using the native WebUI page (i.e. after uninstalling YazDHCP). If you experience the same problem, you could submit a bug report to ASUS, or perhaps @RMerlin might want to take a look.
So true it's not funny. I don't code at all, but I now have 4 working scripts for Shelly devices, 600-odd lines each and boy that was hard.Well, you can use AI if you want, but you have to ignore half of what it says. The key is to distinguish which half, LOL!!!![]()
Correct. When the client IP address does not belong to the Main LAN subnet, that's when the new code searches all the enabled/active Guest Networks to associate the client with the correct Guest Network profile, the designated virtual interface, and ultimately the correct dnsmasq instance.Thank you, totally understood now; it is not SSID based nor does it look for those devices on the same subnet but different SSID as a fall-back. Relies solely on IP and MAC.
Yes, as long as the IP address belongs to the Main LAN subnet, the current YazDHCP production release should work.So for that use case, the current YazDHCP Addon (not the current beta) is totally servicable (unless I also have a proper SDN with a different subnet on the same system, which I do, albeit for a minor number of devices).
What you were doing is basically called "Vibe Coding." An emergent S/W Dev. methodology that aims to make programming easier, but it's still in its infancy, so the resulting code tends to be inefficient or have poor quality, and sometimes is just plain wrong.I was going around and around in circles and code that was working perfectly well was mysteriously modified and 'improved' when I did not ask for it; plus I had to tell it every time that Shellys use modified Espruino. I hate that it then says "You're right", like it is some Euereka moment. Most worrisome was I was applying my logic and commonsense to a machine.... and talking to it, sometimes in a less than polite manner than I should have. Ah well..
/jffs/scripts/YazDHCP develop
/jffs/scripts/YazDHCP forceupdate
Welcome To SNBForums
SNBForums is a community for anyone who wants to learn about or discuss the latest in wireless routers, network storage and the ins and outs of building and maintaining a small network.
If you'd like to post a question, simply register and have at it!
While you're at it, please check out SmallNetBuilder for product reviews and our famous Router Charts, Ranker and plenty more!