# How to start with GenieACS and TR069 (Huawei ONT provisioning))

**URL:** <https://forum.genieacs.com/t/how-to-start-with-genieacs-and-tr069-huawei-ont-provisioning/1170>\
**Category:** Uncategorized\
**Created:** [October 28, 2020, 1:50pm UTC](https://forum.genieacs.com/t/how-to-start-with-genieacs-and-tr069-huawei-ont-provisioning/1170 "2020-10-28T13:50:37Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bartek](https://avatars.discourse-cdn.com/v4/letter/b/bcef8e/32.png) [@Bartek](https://forum.genieacs.com/u/Bartek)\
**Post date:** [October 28, 2020, 1:50pm UTC](https://forum.genieacs.com/t/how-to-start-with-genieacs-and-tr069-huawei-ont-provisioning/1170/1 "2020-10-28T13:50:37Z")

</div>

Hi everyone.  
I have a GenieACS server on Centos7 (cwmp+nbi+fs+gui).  
Server is working on MongoDB 4.4.0

I need to have some basic information how to start adding some data to ACS to provision services on Huawei ONT.  
Basically ONT is added to OLT with some line/service profiles, also service-ports are created but i don’t know how to add rest of data to ACS Server - data which can not be added via SSH

Maybe someone have some experience with this.

I know exactly what i need to do on OLT site (tr069-server-profile, ont tr069-server-config, etc) but the problem is what should i do and how to put some specific data to ACS database, for example how to add do ACS server specific SSID, password, channel, etc to specific serial numer of Huawei ONT

Thanks for any help

---

<div class="post-metadata">

**Author:** ![akcoder](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/akcoder/32/11_2.png) [@akcoder](https://forum.genieacs.com/u/akcoder)\
**Post date:** [October 28, 2020, 3:51pm UTC](https://forum.genieacs.com/t/how-to-start-with-genieacs-and-tr069-huawei-ont-provisioning/1170/2 "2020-10-28T15:51:46Z")

</div>

These two links should help you understand how to do integration.

> **[genieacs/genieacs](https://github.com/genieacs/genieacs/wiki/Provisions)**
>
> A fast and lightweight TR-069 Auto Configuration Server (ACS) - genieacs/genieacs

> **[genieacs/genieacs](https://github.com/genieacs/genieacs/wiki/Example-of-a-Provisioning-Flow)**
>
> A fast and lightweight TR-069 Auto Configuration Server (ACS) - genieacs/genieacs

---

<div class="post-metadata">

**Author:** ![Bartek](https://avatars.discourse-cdn.com/v4/letter/b/bcef8e/32.png) [@Bartek](https://forum.genieacs.com/u/Bartek)\
**Post date:** [October 30, 2020, 9:44am UTC](https://forum.genieacs.com/t/how-to-start-with-genieacs-and-tr069-huawei-ont-provisioning/1170/4 "2020-10-30T09:44:14Z")

</div>

OK, i have done some first commands, at this moment i use curl to test it:

curl -i ‘[http://192.168.1.234:7557/devices/00259E-EG8145V5-48575443E87EBE9A/tags/testing123](http://192.168.1.234:7557/devices/00259E-EG8145V5-48575443E87EBE9A/tags/testing123)’ -X POST

curl -i ‘[http://192.168.1.234:7557/devices/?query={“InternetGatewayDevice.DeviceInfo.SerialNumber”:“48575443E87EBE9A”}](http://192.168.1.234:7557/devices/?query=%7B%22InternetGatewayDevice.DeviceInfo.SerialNumber%22:%2248575443E87EBE9A%22%7D)’

curl -i ‘[http://192.168.1.234:7557/devices?query={"\_id":“00259E-EG8145V5-48575443E87EBE9A”}&projection=InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID](http://192.168.1.234:7557/devices?query=%7B%22_id%22:%2200259E-EG8145V5-48575443E87EBE9A%22%7D&projection=InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID)’

curl -i ‘[http://192.168.1.234:7557/devices/00259E-EG8145V5-48575443E87EBE9A/tasks?connection\_request](http://192.168.1.234:7557/devices/00259E-EG8145V5-48575443E87EBE9A/tasks?connection_request)’ -X POST --data ‘{“name”:“setParameterValues”, “parameterValues”: [[“InternetGatewayDeviceonfiguration.1.SSID”, “TEST123”, “xsd:string”]]}’

curl -i ‘[http://192.168.1.234:7557/tasks/5f9ada62d1358643fd43563d/retry](http://192.168.1.234:7557/tasks/5f9ada62d1358643fd43563d/retry)’ -X POST

etc.

but question is - how to add totally new device to ACS DB, is that necessary to add all parameters (most of then stay blank or default) or can I add only this what i need to set (WLAN parameters, IP, etc)

---

<div class="post-metadata">

**Author:** ![akcoder](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/akcoder/32/11_2.png) [@akcoder](https://forum.genieacs.com/u/akcoder)\
**Post date:** [October 30, 2020, 4:34pm UTC](https://forum.genieacs.com/t/how-to-start-with-genieacs-and-tr069-huawei-ont-provisioning/1170/6 "2020-10-30T16:34:10Z")

</div>

For a new device to get added to the ACS it first has to communicate with the ACS. You do not preemptively added devices to the ACS.

---

<div class="post-metadata">

**Author:** ![Bartek](https://avatars.discourse-cdn.com/v4/letter/b/bcef8e/32.png) [@Bartek](https://forum.genieacs.com/u/Bartek)\
**Post date:** [November 2, 2020, 7:42am UTC](https://forum.genieacs.com/t/how-to-start-with-genieacs-and-tr069-huawei-ont-provisioning/1170/7 "2020-11-02T07:42:17Z")

</div>

OK, I have tested that on Mikrotik AP and its working just like You said. My question is what decide how many parameters is on ACS server for a specific device, when i connected a Mikrotik RB751G-2HnD with configured ACS url/login/password i’ve got only few parameters in ACS:

curl -i ‘[http://10.10.110.184:7557/devices/?query={“Device.DeviceInfo.ProvisioningCode”%3A"AP-UP"}](http://10.10.110.184:7557/devices/?query=%7B%22Device.DeviceInfo.ProvisioningCode%22%3A%22AP-UP%22%7D)’  
HTTP/1.1 200 OK  
GenieACS-Version: 1.1.2  
Content-Type: application/json  
total: 1  
Date: Mon, 02 Nov 2020 07:32:04 GMT  
Connection: keep-alive  
Transfer-Encoding: chunked

[  
{"\_id":“E48D8C-RB751G%2D2HnD-3A650208FFA3”,“Device”:{“DeviceInfo”:{“HardwareVersion”:{"\_object":false,"\_timestamp":“2020-11-02T07:31:49.849Z”,"\_type":“xsd:string”,"\_value":“v1.0”},“ProvisioningCode”:{"\_object":false,"\_timestamp":“2020-11-02T07:31:49.849Z”,"\_type":“xsd:string”,"\_value":“AP-UP”},“SoftwareVersion”:{"\_object":false,"\_timestamp":“2020-11-02T07:31:49.849Z”,"\_type":“xsd:string”,"\_value":“6.47.7”},"\_object":true},“ManagementServer”:{“AliasBasedAddressing”:{"\_object":false,"\_timestamp":“2020-11-02T07:31:49.849Z”,"\_type":“xsd:boolean”,"\_value":false},“ConnectionRequestURL”:{"\_object":false,"\_timestamp":“2020-11-02T07:31:49.849Z”,"\_type":“xsd:string”,"\_value":“[http://172.20.0.12:7547/4d1c4841a7e312f4f7c9dbbe3a7db1b90edd"},“ParameterKey”:{"\_object":false,"\_timestamp":“2020-11-02T07:31:49.849Z”,"\_type":“xsd:string”,"\_value":""},"\_object":true},“RootDataModelVersion”:{"\_object":false,"\_timestamp":“2020-11-02T07:31:49.849Z”,"\_type":“xsd:string”,"\_value":“2.11”},"\_object":true,"\_writable":false},"\_deviceId":{"\_Manufacturer":“MikroTik”,"\_OUI":“E48D8C”,"\_ProductClass":“RB751G-2HnD”,"\_SerialNumber":“3A650208FFA3”},"\_lastInform":“2020-11-02T07:31:49.849Z”,"\_registered":“2020-10-30T13:13:08.540Z”,"\_timestamp":“2020-10-30T14:37:27.472Z”,“Reboot”:{"\_object":false,"\_timestamp":“2020-10-30T13:24:15.475Z”,"\_type":“xsd:dateTime”,"\_value":“2020-10-30T13:24:15.475Z”},"\_lastBoot":“2020-10-30T13:41:30.870Z”,"\_lastBootstrap":"2020-10-30T13:41:30.870Z](http://172.20.0.12:7547/4d1c4841a7e312f4f7c9dbbe3a7db1b90edd%22%7D,%22ParameterKey%22:%7B%22_object%22:false,%22_timestamp%22:%222020-11-02T07:31:49.849Z%22,%22_type%22:%22xsd:string%22,%22_value%22:%22%22%7D,%22_object%22:true%7D,%22RootDataModelVersion%22:%7B%22_object%22:false,%22_timestamp%22:%222020-11-02T07:31:49.849Z%22,%22_type%22:%22xsd:string%22,%22_value%22:%222.11%22%7D,%22_object%22:true,%22_writable%22:false%7D,%22_deviceId%22:%7B%22_Manufacturer%22:%22MikroTik%22,%22_OUI%22:%22E48D8C%22,%22_ProductClass%22:%22RB751G-2HnD%22,%22_SerialNumber%22:%223A650208FFA3%22%7D,%22_lastInform%22:%222020-11-02T07:31:49.849Z%22,%22_registered%22:%222020-10-30T13:13:08.540Z%22,%22_timestamp%22:%222020-10-30T14:37:27.472Z%22,%22Reboot%22:%7B%22_object%22:false,%22_timestamp%22:%222020-10-30T13:24:15.475Z%22,%22_type%22:%22xsd:dateTime%22,%22_value%22:%222020-10-30T13:24:15.475Z%22%7D,%22_lastBoot%22:%222020-10-30T13:41:30.870Z%22,%22_lastBootstrap%22:%222020-10-30T13:41:30.870Z)”}

why only this, where are parameters starting with InternetGatewayDevice. I know that it cane be some different between mikrotik and Huawei devices but so big difference ? please explain me that

---

<div class="post-metadata">

**Author:** ![akcoder](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/akcoder/32/11_2.png) [@akcoder](https://forum.genieacs.com/u/akcoder)\
**Post date:** [November 2, 2020, 5:13pm UTC](https://forum.genieacs.com/t/how-to-start-with-genieacs-and-tr069-huawei-ont-provisioning/1170/8 "2020-11-02T17:13:26Z")

</div>

> [@Bartek](#):
>
> ```json
> {"RootDataModelVersion":{"_object":false,"_timestamp":"2020-11-02T07:31:49.849Z","_type":"xsd:string","_value":"2.11"}}
> 
> ```

The mtik is using device data model v2, more specifically v2.11. I suggest you read up on data model v2.

-dan

---

<div class="post-metadata">

**Author:** ![Bartek](https://avatars.discourse-cdn.com/v4/letter/b/bcef8e/32.png) [@Bartek](https://forum.genieacs.com/u/Bartek)\
**Post date:** [November 3, 2020, 1:40pm UTC](https://forum.genieacs.com/t/how-to-start-with-genieacs-and-tr069-huawei-ont-provisioning/1170/9 "2020-11-03T13:40:08Z")

</div>

at this moment i’m using genieacs device simulator, I have a device, i can read some parameters:

curl -i ‘[http://10.10.110.184:7557/devices?query={"\_id"%3A"202BC1-BM632w-000000"}&projection=InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID](http://10.10.110.184:7557/devices?query=%7B%22_id%22%3A%22202BC1-BM632w-000000%22%7D&projection=InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID)’

**HTTP/1.1 200 OK**  
GenieACS-Version: 1.1.2  
Content-Type: application/json  
total: 1  
Date: Tue, 03 Nov 2020 13:36:11 GMT  
Connection: keep-alive  
Keep-Alive: timeout=5  
Transfer-Encoding: chunked

[  
{"\_id":“202BC1-BM632w-000000”,“InternetGatewayDevice”:{“LANDevice”:{“1”:{“WLANConfiguration”:{“1”:{“SSID”:{"\_object":false,"\_timestamp":“2020-11-03T13:33:56.631Z”,"\_type":“xsd:string”,"\_value":“404 **WiMAX Not Found** ”,"\_writable":true}}}}}}}  
]

but when i try to change something i get an error 405:

curl -i ‘[http://10.10.110.184:7557/devices/202BC1-BM632w-000000/tasks?connection\_request](http://10.10.110.184:7557/devices/202BC1-BM632w-000000/tasks?connection_request)’ -X POST --data ‘{“name”:“setParameterValues”, “parameterValues”: [[“InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID”, “BARTEK\_TEST”, “xsd:string”]]}’  
HTTP/1.1 202 Unexpected response code from device: 405  
GenieACS-Version: 1.1.2  
Content-Type: application/json  
Date: Tue, 03 Nov 2020 13:44:53 GMT  
Connection: keep-alive  
Keep-Alive: timeout=5  
Transfer-Encoding: chunked

{“name”:“setParameterValues”,“parameterValues”:[[“InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID”,“BARTEK\_TEST”,“xsd:string”]],“device”:“202BC1-BM632w-000000”,“timestamp”:“2020-11-03T13:44:53.355Z”,"\_id":“5fa15ed5a3be4c22fd1de73f”}

can anyone explain that

---

<div class="post-metadata">

**Author:** ![Shrawan](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/shrawan/32/1467_2.png) [@Shrawan](https://forum.genieacs.com/u/Shrawan)\
**Post date:** [August 25, 2021, 4:55pm UTC](https://forum.genieacs.com/t/how-to-start-with-genieacs-and-tr069-huawei-ont-provisioning/1170/10 "2021-08-25T16:55:54Z")

</div>

> [@akcoder](#):
>
> genieacs/genieacs

similar process I did in the simulator, the same result was found. But does not work with the device. I have used Huawei ONT for that.
