Templates with specific settings depending on the model and manufacturer

Background for situation:
For example I wrote web app to manage device model M1 vendor V1. Everything was perfect until I connected new device model M2 vendor V2 because this device has some difference in TR 069 implementation.

My questions:

  1. What are the best pratice to mange diffrent model and vendor devices with TR069?

  2. ProductClass and OUI are enough to select template with specific settings for model X and vendor Y?

  3. …or there is better way to do this?

I try and keep everything as generic as possible. To avoid a ton of scripts with repeated code blocks, if the need arises, I put in an if statement where I need to deviate for a specific model.

1 Like

Hi, i have the same question. What file i need edit to make this? summary_parameters.yml or other?

Thanks.

@perikopico you need to be more specific about what you are trying to accomplish.

summary_parameters.yml is used for choosing what gets displayed on the /devices/<acs_id> page.

sorry. i need to edit index_parameters.yml to add differents parameter for two or more brands? i`m spanish and my english hasn’t good.

I edit index_parameters.yml to use TP-LINK XR500v but, in my network i use another devices, for example grandstrem to VOIP, what need i to use this two devices with genieacs? thanks.

So the answer to this question entirely depends on what you want to accomplish. For the two different devices, are you trying to display the same information from each one, but under different vendor specific params? For example, in my environment, I need to know what version of the config file is loaded on the CPE. Different firmware versions put this information on under different vendor specific params. So I created a virtual parameter named ConfigOrigin and the vparam has the rules for figuring out which value to return (InternetGatewayDevice.DeviceInfo.X_SMARTRG_COM_Origin, InternetGatewayDevice.DeviceInfo.X_CLEARACCESS_COM_Origin).

Here is a vparam script you can use, plug in your values for the keys:

let result = '';
let keys = [
    'InternetGatewayDevice.DeviceInfo.X_SMARTRG_COM_Origin',
    'InternetGatewayDevice.DeviceInfo.X_CLEARACCESS_COM_Origin',
    'InternetGatewayDevice.DeviceConfig.PersistentData'
];

for (let key of keys) {
    let k = declare(key, {value: Date.now()});
    if (k.size) {
        result = k.value[0];
        break;
    }
}

return {writable: false, value: [result, "xsd:string"]};