# Update params at end of provisions

**URL:** <https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254>\
**Category:** Uncategorized\
**Created:** [July 24, 2023, 7:56pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254 "2023-07-24T19:56:30Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Felipe](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/felipe/32/1949_2.png) [@Felipe](https://forum.genieacs.com/u/Felipe)\
**Post date:** [July 24, 2023, 7:56pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/1 "2023-07-24T19:56:30Z")

</div>

Hi all,

I have two provisions, the first one update some params and add a tag:

```auto
const now = Date.now()

declare(
  'VirtualParameters.bytesReceived', 
   { value: now }, 
)

const wait = ext('getTimestamp', 'getTimestamp', JSON.stringify({ now }))

declare(
  'InternetGatewayDevice.WANDevice.1.WANCommonInterfaceConfig.TotalBytesReceived', 
  {path: now}, 
)

declare('Tags.Updated', null, {value: true})

log('Atualização finalizada')

```

After this, I have other that collect the values and do some math.

The question is: the values are just updated after both provisions end, but I read that there’s a implicit commit() at end of each provision, so, why the values are not updated before the second provisions starts?

---

<div class="post-metadata">

**Author:** ![Felipe](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/felipe/32/1949_2.png) [@Felipe](https://forum.genieacs.com/u/Felipe)\
**Post date:** [July 24, 2023, 8:00pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/2 "2023-07-24T20:00:31Z")

</div>

There’s the second provision:

```auto
log('Coleta iniciada')
const now = Date.now()

const bytesAnteriores = declare(
  'VirtualParameters.bytesReceived', 
  { value: 1 }
).value[0]

const bytesAtuais = declare(
  'InternetGatewayDevice.WANDevice.1.WANCommonInterfaceConfig.TotalBytesReceived', 
  { value: 1 },
).value[0]

const traffic = Math.trunc(((bytesAtuais - bytesAnteriores)*8)/1000000)

log(`Download in Mb: ${traffic}`)

```

and log of event:

```auto
2023-07-24T19:51:32.390Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: Inform; cpeRequestId="630" informEvent="6 CONNECTION REQUEST" informRetryCount=0
2023-07-24T19:51:32.428Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: ACS request; acsRequestId="1898974fb050000" acsRequestName="GetParameterNames"
2023-07-24T19:51:32.443Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: ACS request; acsRequestId="1898974fb050001" acsRequestName="GetParameterNames"
2023-07-24T19:51:32.456Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: ACS request; acsRequestId="1898974fb050002" acsRequestName="GetParameterNames"
2023-07-24T19:51:32.521Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: ACS request; acsRequestId="1898974fb050003" acsRequestName="GetParameterNames"
2023-07-24T19:51:32.538Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: ACS request; acsRequestId="1898974fb050004" acsRequestName="GetParameterNames"
2023-07-24T19:51:32.556Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: ACS request; acsRequestId="1898974fb050005" acsRequestName="GetParameterNames"
2023-07-24T19:51:32.625Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: ACS request; acsRequestId="1898974fb050006" acsRequestName="GetParameterNames"
2023-07-24T19:51:32.651Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: ACS request; acsRequestId="1898974fb050007" acsRequestName="GetParameterValues"
2023-07-24T19:51:35.057Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: Script: Atualização finalizada
2023-07-24T19:51:35.082Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: ACS request; acsRequestId="1898974fb050200" acsRequestName="GetParameterNames"
2023-07-24T19:51:35.123Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: ACS request; acsRequestId="1898974fb050201" acsRequestName="GetParameterValues"
2023-07-24T19:51:35.228Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: ACS request; acsRequestId="1898974fb050202" acsRequestName="GetParameterNames"
2023-07-24T19:51:35.250Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: Script: Coleta iniciada
2023-07-24T19:51:37.271Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: Script: Atualização finalizada
2023-07-24T19:51:37.275Z [INFO] 10.0.0.253 00259E-HG8121H-48575443A53FF09E: Script: Download in Mb: 0

```

---

<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:** [July 24, 2023, 10:28pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/3 "2023-07-24T22:28:08Z")

</div>

> [@Felipe](#):
>
> ```auto
> const bytesAnteriores = declare(
> 'VirtualParameters.bytesReceived', 
> { value: 1 }
> ).value[0]
> 
> const bytesAtuais = declare(
> 'InternetGatewayDevice.WANDevice.1.WANCommonInterfaceConfig.TotalBytesReceived', 
> { value: 1 },
> ).value[0]
> 
> ```

This is not refresh the value from the router. `{value: 1}` means if there is currently a value in the mongo db for the param requested, use that. You need to use `{value: Date.now()}` to refresh the value.

> [@Felipe](#):
>
> ```auto
> const wait = ext('getTimestamp', 'getTimestamp', JSON.stringify({ now }))
> 
> ```

What are you trying to do with this line? I don’t see it used anywhere in your provision script.

---

<div class="post-metadata">

**Author:** ![Felipe](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/felipe/32/1949_2.png) [@Felipe](https://forum.genieacs.com/u/Felipe)\
**Post date:** [July 25, 2023, 11:19am UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/4 "2023-07-25T11:19:38Z")

</div>

Actually I do like this in the firts provision, the second it’s just to get the values already updated, but, as I said, the parameter is just updated before two provisions end, so,the value I get is not a updated value.

About

```auto
const wait = ext('getTimestamp', 'getTimestamp', JSON.stringify({ now }))

```

It’s an external function to wait 2 seconds. My idea is use that to get traffic in real time, got it?

---

<div class="post-metadata">

**Author:** ![rudymartin](https://avatars.discourse-cdn.com/v4/letter/r/919ad9/32.png) [@rudymartin](https://forum.genieacs.com/u/rudymartin)\
**Post date:** [July 25, 2023, 1:34pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/5 "2023-07-25T13:34:47Z")

</div>

if your goal is to get the traffic in real time as you said then you are using the wrong tool.

snmp is what you need. the acs can only help you to fire diagnostics on cpe side.

---

<div class="post-metadata">

**Author:** ![Felipe](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/felipe/32/1949_2.png) [@Felipe](https://forum.genieacs.com/u/Felipe)\
**Post date:** [July 25, 2023, 4:07pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/6 "2023-07-25T16:07:58Z")

</div>

ok, thanks for answer!

---

<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:** [July 25, 2023, 5:09pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/7 "2023-07-25T17:09:10Z")

</div>

SNMP as @rudymartin said is one way.

Another option is to get the stats directly from the access controller. I poll our access controller once per second and then I graph this data in our subscriber management system. Blue dashed line is the max download speed. Orange dashed line is max upload speed. They are offset from each other so we customers have a symmetrical connection, you can still see both lines. See screenshot 2.

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/genieacs/original/2X/e/ee3b1c8d0a4f26357ffa1c31d121db5d126a0afe.png)

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/genieacs/original/2X/a/a2c0b09b3945ba8a4e0da6cfc6fa9e054710fff3.png)

---

<div class="post-metadata">

**Author:** ![Felipe](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/felipe/32/1949_2.png) [@Felipe](https://forum.genieacs.com/u/Felipe)\
**Post date:** [July 25, 2023, 6:22pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/8 "2023-07-25T18:22:02Z")

</div>

Realy nice, I’ll search for other tool to do that. Thanks again!

---

<div class="post-metadata">

**Author:** ![DeepBlueSea](https://avatars.discourse-cdn.com/v4/letter/d/ba9def/32.png) [@DeepBlueSea](https://forum.genieacs.com/u/DeepBlueSea)\
**Post date:** [April 9, 2024, 7:32pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/9 "2024-04-09T19:32:02Z")

</div>

Very Interested

---

<div class="post-metadata">

**Author:** ![Dulguun](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@Dulguun](https://forum.genieacs.com/u/Dulguun)\
**Post date:** [March 24, 2025, 11:12am UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/10 "2025-03-24T11:12:10Z")

</div>

@akcoder how can we generate this type of graph using LTE CPE DL/UL information to GenieACS?

---

<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:** [March 24, 2025, 5:02pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/11 "2025-03-24T17:02:17Z")

</div>

This graph is generated by our subscriber management server using data from our traffic shaper.

---

<div class="post-metadata">

**Author:** ![Dulguun](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@Dulguun](https://forum.genieacs.com/u/Dulguun)\
**Post date:** [March 24, 2025, 6:17pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/12 "2025-03-24T18:17:17Z")

</div>

traffic shaper is bandwidth manager?

---

<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:** [March 24, 2025, 7:42pm UTC](https://forum.genieacs.com/t/update-params-at-end-of-provisions/4254/13 "2025-03-24T19:42:04Z")

</div>

Yes
