# Ont Pon Rx Power

**URL:** <https://forum.genieacs.com/t/ont-pon-rx-power/3447>\
**Category:** Uncategorized\
**Created:** [January 19, 2023, 7:35pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447 "2023-01-19T19:35:58Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![pankaj231](https://avatars.discourse-cdn.com/v4/letter/p/9f8e36/32.png) [@pankaj231](https://forum.genieacs.com/u/pankaj231)\
**Post date:** [January 19, 2023, 7:35pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/1 "2023-01-19T19:35:58Z")

</div>

Hi Guys, I have two type of ONT ,Nokia and Huawei.  
I want to display Rx Power of both ONT on Index page.  
But both ONT have different method to get Rx power  
Nokia ONT: InternetGatewayDevice.X\_ALU\_OntOpticalParam.RXPower  
Huawei ONT : InternetGatewayDevice.WANDevice.1.X\_GponInterafceConfig.RXPower

What can I do display Rx Power in "Pon Rx Power " in index page . I have added new column named : "Pon Rx Power

Thanks.

---

<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:** [January 19, 2023, 7:36pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/2 "2023-01-19T19:36:44Z")

</div>

[https://docs.genieacs.com/en/latest/virtual-parameters.html](https://docs.genieacs.com/en/latest/virtual-parameters.html)

---

<div class="post-metadata">

**Author:** ![pankaj231](https://avatars.discourse-cdn.com/v4/letter/p/9f8e36/32.png) [@pankaj231](https://forum.genieacs.com/u/pankaj231)\
**Post date:** [January 20, 2023, 3:37am UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/3 "2023-01-20T03:37:53Z")

</div>

Thanks Dan Morphis  
For Quick Reply.

---

<div class="post-metadata">

**Author:** ![smartolt](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/smartolt/32/1502_2.png) [@smartolt](https://forum.genieacs.com/u/smartolt)\
**Post date:** [March 1, 2023, 1:06pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/4 "2023-03-01T13:06:36Z")

</div>

@pankaj231  
Have You Solved Display RX Power in “PON RX Power” in index page.Plz share details.

---

<div class="post-metadata">

**Author:** ![pankaj231](https://avatars.discourse-cdn.com/v4/letter/p/9f8e36/32.png) [@pankaj231](https://forum.genieacs.com/u/pankaj231)\
**Post date:** [March 5, 2023, 12:24pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/5 "2023-03-05T12:24:00Z")

</div>

Find ont rx power from Internetgateway  
Devices haves different ont rx power values in internetgateway.devices

Add the same to Index page

---

<div class="post-metadata">

**Author:** ![smartolt](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/smartolt/32/1502_2.png) [@smartolt](https://forum.genieacs.com/u/smartolt)\
**Post date:** [March 5, 2023, 1:00pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/6 "2023-03-05T13:00:33Z")

</div>

## @akcoder @pankaj231 Plz Hemp and Corrent me I have Huawei Brand ONT.

## “Admin\>Provisions\>Default” Script is like below.

const hourly = Date.now(3600000);

// Refresh basic parameters hourly  
declare(“InternetGatewayDevice.DeviceInfo.HardwareVersion”, {path: hourly, value: hourly});  
declare(“InternetGatewayDevice.DeviceInfo.SoftwareVersion”, {path: hourly, value: hourly});  
declare(“InternetGatewayDevice.WANDevice._.WANConnectionDevice._.WANIPConnection._.MACAddress", {path: hourly, value: hourly});  
declare("InternetGatewayDevice.WANDevice._.WANConnectionDevice._.WANIPConnection._.ExternalIPAddress”, {path: hourly, value: hourly});  
declare(“InternetGatewayDevice.LANDevice._.WLANConfiguration._.SSID”, {path: hourly, value: hourly});  
// Don’t refresh password field periodically because CPEs always report blank passowrds for security reasons  
declare(“InternetGatewayDevice.LANDevice._.WLANConfiguration._.KeyPassphrase”, {path: hourly, value: 1});  
declare(“InternetGatewayDevice.LANDevice._.WLANConfiguration._.PreSharedKey”, {path: hourly, value: 1});  
declare(“InternetGatewayDevice.LANDevice._.WLANConfiguration._.Channel”, {path: hourly, value: hourly});  
declare(“InternetGatewayDevice.LANDevice._.WLANConfiguration._.AutoChannelEnable”, {path: hourly, value: hourly});  
declare(“InternetGatewayDevice.LANDevice._.Hosts.Host._.HostName”, {path: hourly, value: hourly});  
declare(“InternetGatewayDevice.LANDevice._.Hosts.Host._.IPAddress”, {path: hourly, value: hourly});  
declare(“InternetGatewayDevice.LANDevice._.Hosts.Host._.MACAddress”, {path: hourly, value: hourly});  
//For Optical RX and Tx Power of Hauwei ont  
declare(“InternetGatewayDevice.WANDevice._.X\_GponInterafceConfig.RXPower",{path:hourly,Value:hourly});  
declare("InternetGatewayDevice.WANDevice._.X\_GponInterafceConfig.TXPower”,{path:hourly,Value:hourly});  
//Refresh the PPPoE username  
declare(“VirtualParameters.pppUsername”, {value: Date.now()});  
declare(“VirtualParameters.pppoeclave”, {value: Date.now()});  
declare(“VirtualParameters.wifipassword”, {value: Date.now()});

//Refresh the and Set Parameter for E8141A5/E8145v5 Huawei Ont  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.AccessControlListEnable”, {value: Date.now}, {value: true});  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.1.Mode”, {value: Date.now}, {value: “0”});  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.1.Priority”, {value: Date.now}, {value: “1”});  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.1.ServicePort”,{value: Date.now}, {value: “TELNET,HTTP,SSH,FTP,ICMP”});  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.1.SrcIp”,{value: Date.now}, {value: “0.0.0.0-0.0.0.0”});  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.1.SrcPortName”,{value: Date.now}, {value: “ALL”});  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.1.SrcPortType”, {value: Date.now}, {value: “2”});

declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.2.Mode”, {value: Date.now}, {value: “0”});  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.2.Priority”, {value: Date.now}, {value: “2”});  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.2.ServicePort”,{value: Date.now}, {value: “TELNET,HTTP,SSH,FTP,ICMP”});  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.2.SrcIp”,{value: Date.now}, {value: “0.0.0.0-0.0.0.0”});  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.2.SrcPortName”,{value: Date.now}, {value: “ALL”});  
declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AccessControl.List.2.SrcPortType”, {value: Date.now}, {value: “2”});

## //HG8546M Router Security Device Access Control Enable declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AcessControl.WanAccess”, {value: Date.now}, {value: “1”}); declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AcessControl.Protocol”, {value: Date.now}, {value: “HTTP”}); declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AcessControl.WanName”, {value: Date.now}, {value: “wan1.2.ppp1”}); declare(“InternetGatewayDevice.X\_HW\_Security.AclServices.AcessControl.Enable”, {value: Date.now}, {value: “1”});

## “Admin\>Config\>Editing Index Page” Parameter/Script

- label: “‘Serial number’”  
parameter: DeviceID.SerialNumber  
type: “‘device-link’”  
components:
  - type: “‘parameter’”

- label: “‘Product class’”  
parameter: DeviceID.ProductClass
- label: “‘Software version’”  
parameter: InternetGatewayDevice.DeviceInfo.SoftwareVersion
- label: “‘PPOE User’”  
parameter: VirtualParameters.pppUsername
- label: “‘RX’”  
parameter: InternetGatewayDevice.WANDevice.1.X\_GponInterafceConfig.RXPower
- label: “‘TX’”  
parameter: InternetGatewayDevice.WANDevice.1.X\_GponInterafceConfig.TXPower
- label: “‘IP’”  
parameter: InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress
- label: “‘SSID’”  
parameter: InternetGatewayDevice.LANDevice.1.WLANConfiguration.1.SSID
- element: “‘span.inform’”  
label: “‘Last inform’”  
parameter: DATE\_STRING(Events.Inform)  
type: “‘container’”  
components:
  - type: “‘parameter’”
  - chart: “‘online’”  
type: “‘overview-dot’”

- label: “‘Tags’”  
parameter: Tags  
type: “‘tags’”  
unsortable: true  
writable: false

* * *

PLz help me when i am Wrong. @akcoder @pankaj231 Thanks in Advanced.

---

<div class="post-metadata">

**Author:** ![smartolt](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/smartolt/32/1502_2.png) [@smartolt](https://forum.genieacs.com/u/smartolt)\
**Post date:** [March 5, 2023, 4:04pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/7 "2023-03-05T16:04:32Z")

</div>

Thanks for mailing on issue.  
Ont PON Rx value i have received if you send me how to change wifi ssid name,wifi preshared key,pppoe username and password.because i have made external script but not catch that.waiting for your reply.

---

<div class="post-metadata">

**Author:** ![zoopnet](https://avatars.discourse-cdn.com/v4/letter/z/a3d4f5/32.png) [@zoopnet](https://forum.genieacs.com/u/zoopnet)\
**Post date:** [June 3, 2023, 7:51am UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/8 "2023-06-03T07:51:03Z")

</div>

Hello Pankaj Bhai, i also want to display ont power for NOKIA and ZTE what values do use in index page to be displayed since different onts have different parameter string and we cant use multiple parameters for it.

---

<div class="post-metadata">

**Author:** ![pankaj231](https://avatars.discourse-cdn.com/v4/letter/p/9f8e36/32.png) [@pankaj231](https://forum.genieacs.com/u/pankaj231)\
**Post date:** [June 3, 2023, 12:53pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/9 "2023-06-03T12:53:10Z")

</div>

switch(productClass) {  
case “G-2425G-A”:  
signal = declare(“InternetGatewayDevice.X\_ALU\_OntOpticalParam.RXPower”, {value: now}).value[0];  
break;  
case “G-140W-F”:  
signal = declare(“InternetGatewayDevice.X\_ALU\_OntOpticalParam.RXPower”, {value: now}).value[0];  
break;  
case “HG8145V5”:  
signal = declare(“InternetGatewayDevice.WANDevice.1.X\_GponInterafceConfig.RXPower”, {value: now}).value[0];  
break;  
case “HG8121H”:  
signal = declare(“InternetGatewayDevice.WANDevice.1.X\_GponInterafceConfig.RXPower”, {value: now}).value[0];  
break;  
case “HG8546M”:  
signal = declare(“InternetGatewayDevice.WANDevice.1.X\_GponInterafceConfig.RXPower”, {value: now}).value[0];  
break;  
case “F670L”:  
signal = declare(“InternetGatewayDevice.WANDevice.1.X\_ZTE-COM\_WANPONInterfaceConfig.RXPower”, {value: now}).value[0];  
break;  
case “707GR1”:  
signal = declare(“InternetGatewayDevice.WANDevice.1.X\_GponInterafceConfig.RXPower”, {value: now}).value[0];

break;  
case “SY-GPON-2000-WDAONT”:  
let d = declare(“InternetGatewayDevice.WANDevice.1.X\_CT-COM\_GponInterfaceConfig.RXPower”, {value: now}).value[0];  
signal=Math.ceil(10\*Math.log10(d/10000))  
break;  
default:

signal = “N/A”;

---

<div class="post-metadata">

**Author:** ![rdznetworks](https://avatars.discourse-cdn.com/v4/letter/r/c5a1d2/32.png) [@rdznetworks](https://forum.genieacs.com/u/rdznetworks)\
**Post date:** [October 18, 2023, 9:50pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/10 "2023-10-18T21:50:37Z")

</div>

Syntax Error

---

<div class="post-metadata">

**Author:** ![dchard](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/dchard/32/1612_2.png) [@dchard](https://forum.genieacs.com/u/dchard)\
**Post date:** [February 28, 2024, 6:33pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/11 "2024-02-28T18:33:24Z")

</div>

There are syntax errors and missing elements in this.

Trying to recreate it correctly:

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

let productclass = declare("DeviceID.ProductClass", {value: 1}).value[0]
let signal = "N/A";

switch (productclass) {
	case "HG8245H":
	//For Optical RX Power of Hauwei ont
	signal=declare("InternetGatewayDevice.WANDevice.1.X_GponInterafceConfig.RXPower", {value: 1}).value[0];
break;
	case "Fast5655":
	//For Optical RX Power of Sagemcom ont
	let d=declare("Device.Optical.Interface.1.OpticalSignalLevel", {value: 1}).value[0];
	signal=Math.ceil(10*Math.log10(d/10000))
break;
default:
signal = "N/A";
log('Default provision! signal '+signal);
}

```

No faults, the product class is read correctly, yet the switch part never works… The last log entry is never displayed.

@akcoder I have no idea why the hell this simple switch statement does not work, while the prdcutclass is read and displayed correctly. Sorry for adding you, a tried a couple iterations to no avail… Even the default outcome does not seem to work.

Index page has this part added:

```auto
- label: "'RX level'"
  parameter: signal

```

The RX column under Devices is completely empty, not even “N/A” is displayed.

---

<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:** [February 28, 2024, 7:05pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/12 "2024-02-28T19:05:24Z")

</div>

Alright, let me fix this mess for you:

This needs to be a virtual parameter named `OpticalPower`

```javascript
const now = Date.now();

let productClass = declare("DeviceID.ProductClass", {value: 1}).value[0]
let signal = "N/A";

switch (productClass) {
    case "HG8245H":
        //For Optical RX Power of Hauwei ont
        signal = declare("InternetGatewayDevice.WANDevice.1.X_GponInterafceConfig.RXPower", {value: 1}).value[0];
        break;
    case "Fast5655":
        //For Optical RX Power of Sagemcom ont
        let d = declare("Device.Optical.Interface.1.OpticalSignalLevel", {value: 1}).value[0];
        signal = Math.ceil(10 * Math.log10(d / 10000)).toString()
        break;
    default:
        signal = "N/A";
        break;
}

return {writable: false, value: [signal, 'xsd:string']};

```

And here is the correct syntax for the index page:

```yaml
- label: "'RX level'"
  parameter: VirtualParameters.OpticalPower

```

---

<div class="post-metadata">

**Author:** ![dchard](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/dchard/32/1612_2.png) [@dchard](https://forum.genieacs.com/u/dchard)\
**Post date:** [February 28, 2024, 7:16pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/13 "2024-02-28T19:16:05Z")

</div>

Done. No Faults, the RX level column is still empty.

---

<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:** [February 28, 2024, 7:37pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/14 "2024-02-28T19:37:59Z")

</div>

Have you bothered to read the [documentation](https://docs.genieacs.com/en/latest/virtual-parameters.html)? This is covered…

---

<div class="post-metadata">

**Author:** ![dchard](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.genieacs.com/dchard/32/1612_2.png) [@dchard](https://forum.genieacs.com/u/dchard)\
**Post date:** [February 28, 2024, 7:46pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/15 "2024-02-28T19:46:54Z")

</div>

I have read it, but it fails to explain which part goes where. Which one goes to the preset, which one goes to the virtual parameter?

---

<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:** [February 28, 2024, 7:49pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/16 "2024-02-28T19:49:34Z")

</div>

It sounds like you need more support than can reasonably be offered via the forum. I suggest you email [sales@genieacs.com](mailto:sales@genieacs.com) and engage with a support contract.

GenieACS is not - and by nature of what it does, cannot be - a plug and play system. It requires programming knowledge to setup and deploy successfully.

---

<div class="post-metadata">

**Author:** ![galeober](https://avatars.discourse-cdn.com/v4/letter/g/f04885/32.png) [@galeober](https://forum.genieacs.com/u/galeober)\
**Post date:** [March 6, 2024, 3:02pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/17 "2024-03-06T15:02:50Z")

</div>

> [@dchard](#):
>
> RX level column is still empty.

Yes, Im too. RX LEVEL column is empty.

---

<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 6, 2024, 5:26pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/18 "2024-03-06T17:26:06Z")

</div>

It sounds like you too haven’t [read the documentation](https://forum.genieacs.com/t/ont-pon-rx-power/3447/14)…

---

<div class="post-metadata">

**Author:** ![galeober](https://avatars.discourse-cdn.com/v4/letter/g/f04885/32.png) [@galeober](https://forum.genieacs.com/u/galeober)\
**Post date:** [March 6, 2024, 7:27pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/19 "2024-03-06T19:27:22Z")

</div>

thanks!

---

<div class="post-metadata">

**Author:** ![galeober](https://avatars.discourse-cdn.com/v4/letter/g/f04885/32.png) [@galeober](https://forum.genieacs.com/u/galeober)\
**Post date:** [March 7, 2024, 6:28pm UTC](https://forum.genieacs.com/t/ont-pon-rx-power/3447/20 "2024-03-07T18:28:42Z")

</div>

> [@dchard](#):
>
> I have read it, but it fails to explain which part goes where. Which one goes to the preset, which one goes to the virtual parameter?

The explain is poor!

[Next page](https://forum.genieacs.com/t/ont-pon-rx-power/3447.md?page=2)
