Zyxel AX7501 with Opal-OS

What path are you trying to write to, and what is the output of the debug log for that CPE?

Trying to build firewall rules to allow access, but nothing works unless it’s already there. For instance:
Device.X_ZYXEL_RemoteManagement.SPService.
I’ll try to path up “Device.X_ZYXEL_RemoteManagement.SPService.1”, but no go, neither by script or gui… It’s just not writable. I can edit or delete the existing ones, though. Go figure. On TR-098 it works just fine doing this:
declare(“InternetGatewayDevice.X_ZYXEL_RemoteManagement.SPTrustDomain.[Enable:true,IPAddress:10.129.131.240,SubnetMask:28]”, {path: now}, { path: 1 });

I tried setting cwmp.skipWritableCheck to true (should it be true/false og 1/0?), but it didn’t make much of a difference. Will try to capture some debug today.
Adding insult to injury, Zyxel are really heavy on manufacturer-specific entries. A loooot of X_ZYXEL in there…

So much for standards.

I’ve been working at ISP’s for the past 10 years now, 2 years as an integrator and tech for multiple ISP’s and a vendor partner for Genexis, Huawei and more. It’s always a drag to make the vendors understand that there is a world outside…
Will be leaving the ISP (and consultant) world in two weeks and work as a network tech at our national broadcaster (NRK) so anything I get done is good, but after that it’s someone else’s headache… :smiley:

Okay, now I understand what you are trying to do. You are writing to the wrong param. You want Device.X_ZYXEL_RemoteManagement.TrustDomain. Try this: declare("Device.X_ZYXEL_RemoteManagement.TrustDomain.[Enable:true,IPAddress:10.129.131.240,SubnetMask:28,Enable:true]", {path: 1}, { path: 1 });

That you can’t add instances to SPService makes sense (and it shouldn’t let you delete, but alas appears to allow that, but I haven’t tried). There are only a limited set number of services that actually exist on the CPE. You can’t add/remove the services. Only enable/disable them.

Hi
I have the same issue with the Zyxel Trust Domain
I tried the method you mention, but I can’t seem to get it to work. I have 1 Trust Domain and I’m trying to create instance number 2
trustdomain

declare("Device.X_ZYXEL_RemoteManagement.TrustDomain.2[Enable:true,IPAddress:192.168.20.0,SubnetMask:24,Enable:true]", {path: 1}, { path: 1 });

@akcoder SpService is different, of course, I pasted the wrong line… We use both trustdomain and sptrustdomain and they work fine on TR-098. Unless there is already a path, nothing is editable in TR-181.

@martink, we “solved” it by switching to TR-098 with this:
declare(“Device.ManagementServer.X_ZYXEL_DataModelSpec”,null,{value:“TR-098”});
This will reboot the device and re-read it, but it will be left unchanged.
After that you can do:
declare(“InternetGatewayDevice.X_ZYXEL_EXT.RemoteManagement.TrustDomain.[Enable:true,IPAddress:10.0.0.0,SubnetMask:24]”, {path: now}, { path: 1 });

Thanks @gittela I’ll try that method, being new to genieacs and trying to learn “the Zyxel way” of configuring things isn’t always easy.

By the way, on another Zyxel I want to change a value from true to false and then send a reboot command for the change to take effect.
The value changes when I run my declare, but after that when the reboot runs I get “The TR-069 session was unsuccessfully terminated” and the reboot doesn’t happen.

This is not the full provision script but these are the last two lines:

const now = Date.now();
declare("Device.Ethernet.Interface.6.EEEEnable", {path: now, value: now}, {value: "false"});
declare("Reboot", null, {value: now});

And the log:

ACS request; acsRequestId="178498baaed0101" acsRequestName="SetParameterValues"
ACS request; acsRequestId="178498baaed0102" acsRequestName="Reboot"
Session timeout; sessionTimestamp=1616141593325
Channel has faulted; channel="Setup" retries=0 faultCode="session_terminated" faultMessage="The TR-069 session was unsuccessfully terminated"

Quite embarrassing, I got stuck in the matrix of scripts that log into the CPE, changes the value in the text configuration file and reboots the CPE for it to take effect.

When I push this value via ACS, the change happens on the fly in the running configuration. That’s why the reboot command fails, the WAN interface flaps when I push the change via ACS. So no need for reboot…

Well, it’s Zyxel, we have various issues with them… We’re still trying to get them on the ball with proper TR-181.
I made a small script that runs after bootstrap. It checks which version and sets it for stuff to work. That was the only way I managed to get them up and running out of the box.

Did you get anywhere with this? I have bokses that supports and uses TR-181 by default, but genieACS uses TR098 by default it seems.

TR-181 is an extension of TR-069. Same as TR-098, TR-143, etc.

I’ve had the VMG4927 running for over a year using GenieACS v1.1 with the VMG4927 in TR-181 mode.

Can i see your config-files?

What specifically do you want to see?

TR-181 mode, i can’t find this.

If that option is available on your CPE it will be on the TR-069 page. You have to login as supervisor to see that page. IIRC, the supervisor password is the admin password plus the last 5 of the mac (or is it the serial).

I did not have it inside the UI with my zyxel devices. Best option is to get in touch with zyxel, send them your config with the request to change to tr181.
They will also provide the supervisor password.

How do i change GenieACS to TR-181 i think i have manage to change the Zyxel to 181

If only there was a search function for the forum…

hello, could you tell me how you did to use another data model in GenieACS?

Can you be more specific in the information you want to acquire?