# CPCB

YuDash NUREX supports real-time data push to the **Central Pollution Control Board (CPCB)** Online Continuous Emission/Effluent Monitoring System (OCEMS) portal at `cems.cpcb.gov.in`. This is the national regulatory requirement for industries under CPCB monitoring.

NUREX implements the **CPCB 2025 API** with AES-256 encryption as mandated by CPCB guidelines. Data is pushed at configurable intervals (typically every 15 minutes) directly from the NUREX device to the CPCB server. Please refere to following link for CPCB OCEMS documentaton:

<https://cems.cpcb.gov.in/#/p/login>

***

## Required CPCB credentials for Configuration

Before configuring NUREX, you must have completed registration on the CPCB OCEMS portal and received the following credentials:

### 1) CPCB Tokens

Following is a sample set of credentials received from CEMS CPCB authority after your industry is registered on the OCEMS portal. This email contains all the credentials needed to configure NUREX. Note down the following from this email:

* **Industry Id** — your industry registration ID
* **Device ID** — unique device identifier assigned by CPCB
* **Station Id** — monitoring station identifier
* **Token Id** — authentication token used for AES-256 encryption

<figure><img src="/files/IoiyBV3uvciaTTbfbWas" alt=""><figcaption></figcaption></figure>

***

### 2) CPCB Industry Key&#x20;

The industry Key has to be downloaded from relevant **Industry Key Generation** section in the CEMS portal. Following is sample industry key download snippet:

Log in to `cems.cpcb.gov.in` and navigate to **Industry Key Generation** from the left sidebar.  The public key dialog will appear showing the RSA public key in PEM format. Click **Copy Key** to copy the full key text to your clipboard — you will paste this into NUREX in a later step.

{% hint style="info" %}
You need to click **Generate New Key** if no key exists. This step may lose all created devices. So, it is advisable to have the Industy Key generated before stations and devices are added.
{% endhint %}

<figure><img src="/files/nTqWxsIUd58TCHv7zbLc" alt=""><figcaption></figcaption></figure>

### 3) Approved Parameter List

Only the approved parameters for a given station can be pushed to CPCB portal. The name of parameters and applicable units should be available for given station.

***

## NUREX Device Configuration for CPCB

CPCB push is configured under **Multi-API mode** in the NUREX configuration page. This allows CPCB push to run alongside other API cloud destinations (MQTT, HTTP, FTP) simultaneously.

#### Step 1 — Select Multi-API Cloud Mode

Open the NUREX configuration page at `http://<NUREX-IP>/api/config` and click **Multi-API Settings** from the left sidebar. The **Multi-Cloud API Settings** panel will appear. In the **Add API** row, enter a name for this API entry (e.g. `cpcb`) in the name field, then click the **Select API** dropdown.

<figure><img src="/files/KYNgGISVppylxPpn3E0H" alt=""><figcaption></figcaption></figure>

***

#### Step 2 — Select CPCB from the API List

The API type dropdown shows all supported PCB and cloud APIs. Select **Central CPCB (CEMS)** from the list. Other state PCB options (Tamil Nadu, Haryana, Punjab, Maharashtra, Madhya Pradesh, etc.) are also available for specific part number.

<figure><img src="/files/Z7T9sMN2Tw3BgaZZDJBP" alt=""><figcaption></figcaption></figure>

***

#### Step 3 — Add CPCB API in the API list

With the name set to cpcb and Central CPCB (CEMS) selected, click the Add button. This creates the CPCB API entry as Seq#1 in your Multi-API configuration.

<figure><img src="/files/pTPlHJhpjwUG2SSDV9la" alt=""><figcaption></figcaption></figure>

After adding, the **CPCB Configuration** panel appears. This panel has three fields to fill:

* **Device ID** — from the CPCB approval email
* **Station ID** — from the CPCB approval email
* **Token ID** — from the CPCB approval email

<figure><img src="/files/lDpn57ua5dEp8eTzRVEU" alt=""><figcaption></figcaption></figure>

#### Step 4 — Enter Token Settings

Enter the **Device ID**, **Station ID**, and **Token ID** exactly as received in the CPCB approval email. Once filled, click **Manage Industry Key** to open the public key dialog where you will paste the key copied from the CPCB portal.

Click **Populate & Verify JSON** after filling the fields to generate and validate the configuration.

<figure><img src="/files/S4DV1LOwwnIKZKrx6hfp" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The **Data Pause** option controls whether NUREX pauses data submission — leave it on **Never** for continuous monitoring. Use **On DI1** if you have a physical pause signal from your instrument system.
{% endhint %}

#### Step 5 — Enter Industry Key

Once filled, click **Manage Industry Key** to open the public key dialog where you will paste the key copied from the CPCB portal.

The **Industry Key** dialog shows the file location where the key will be saved on NUREX (`api directory/cpcb/public.pem`). Paste the full public key text copied from the CPCB portal — it must include the `-----BEGIN PUBLIC KEY-----` and `-----END PUBLIC KEY-----` lines.&#x20;

<figure><img src="/files/JMBy9aIdg3zktIVaE3Ix" alt=""><figcaption></figcaption></figure>

NUREX confirms with a **"Public Key saved successfully!"** message. The key is now stored on the device at `api directory/cpcb/public.pem` and will be used automatically for AES-256 encryption of all data sent to the CPCB server. Click **OK** to close.

<figure><img src="/files/5sKvUKQ5KX5TWSKq3FTP" alt=""><figcaption></figcaption></figure>

#### Step 6 — Device Registration with CPCB portal

{% hint style="info" %}
This step registers data logger with the CPCB ODAMS server and sets up a periodic heartbeat. It is required for full CPCB compliance but may not needed for basic data push to start.
{% endhint %}

{% hint style="info" %}
**Disclaimer:** If the registration process stops or fails midway, it may not be possible to re-run it for the same Device ID. YuDash provides the registration wizard as a convenience mechanism and has no control over the CPCB registration software or server behavior. YuDash cannot provide support for registration failures — please contact CPCB directly in such cases.
{% endhint %}

After entering credentials and saving the Industry Key, click **Open Registration Wizard** under the **Device Registration** row. This opens the registration page in a new browser tab.

<figure><img src="/files/GVFCTsKpVswYjSeN0taH" alt=""><figcaption></figcaption></figure>

> **Use LAN/Ethernet only for this step.** The registration process downloads software components from the CPCB server. 4G/Mobile connections may cause timeouts and incomplete registration. Connect NUREX to a stable wired internet connection before proceeding.

The **Device Registration: cpcb** page loads with two steps. The Device ID and Token ID are automatically pre-filled from your saved configuration.

Download the CPCB registration executable (`main` file) from the CPCB portal. Select the **Linux ARM64** version — this is the correct binary for NUREX hardware. Click **Choose File**, select the downloaded `main` file, and click **Upload File**.

<figure><img src="/files/QuONvxaTqfrfDEKBd7Ig" alt=""><figcaption></figcaption></figure>

Verify that the Device ID and Token ID are correctly shown. Click **Start Registration** to begin the process.

<figure><img src="/files/h6aFttWD6MvOAX3Anv5m" alt=""><figcaption></figcaption></figure>

The terminal window shows the registration progress in real time. NUREX connects to the CPCB ODAMS server, sends the Device ID and Token, receives a unique **Machine ID**, and sets up a cron job for periodic heartbeat.

<figure><img src="/files/IdxkGYMzNsCKietSlel3" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/BgaNumSBx9lH6fByVNSj" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
A successful registration ends with:

Response Status Code: success\
Device Register Successfully!\
Device Added Successfully
{% endhint %}

**Disclaimer:** If the registration process stops or fails midway, it may not be possible to re-run it for the same Device ID. YuDash provides the registration wizard as a convenience mechanism and has no control over the CPCB registration software or server behavior. YuDash cannot provide support for registration failures — please contact CPCB directly in such cases.

### Parameter Configuration & Data Flow&#x20;

This section explains the complete data flow from instrument to CPCB portal, using a 4-parameter effluent monitoring station as an example. In this example, four 4–20mA inputs are mapped to four CPCB approved parameters:

<table><thead><tr><th width="136">Channel</th><th width="94">Variable Name</th><th width="250">Parameter</th><th>Typical Unit</th></tr></thead><tbody><tr><td>Ch 1</td><td><code>bod</code></td><td>Biological Oxygen Demand</td><td>mg/L</td></tr><tr><td>Ch 2</td><td><code>cod</code></td><td>Chemical Oxygen Demand</td><td>mg/L</td></tr><tr><td>Ch 3</td><td><code>tss</code></td><td>Total Suspended Solids</td><td>mg/L</td></tr><tr><td>Ch 4</td><td><code>ph</code></td><td>pH</td><td>pH</td></tr></tbody></table>

Each variable read by NUREX must be named using the **exact CPCB approved parameter name** for your station. The variable name in NUREX is what gets sent to the CPCB portal — so it must match the approved parameter list precisely.

Input data can come from any source — Analog inputs, Modbus RS485, Modbus TCP/IP, or HTML Parser. In this example, four parameters are read from 4–20mA analog inputs.

{% hint style="info" %}
**The variable name must exactly match the CPCB approved parameter name — including lower/upper case.** For example, use `bod` not `BOD`, `ph` not `PH`. Only the approved parameters from NUREX master list are pushed to CPCB API, other parametersa are skipped. NUREX automatically assigns the correct unit for each recognised parameter — no manual unit entry is needed.
{% endhint %}

Open **Analog Input Settings → Open Analog Wizard → Channel Matrix**. Enable each channel, select the input topology (e.g. 0–20mA), and enter the **Variable name** using the exact CPCB approved parameter name for that channel.

<figure><img src="/files/gha4z8ojODMGtlLeVeOP" alt=""><figcaption></figcaption></figure>

Open **DataScale Settings** and configure the input-to-output scaling for each variable. This converts the raw 4–20mA signal from the instrument into the actual engineering value sent to CPCB.

!\[Image 18 — Data Scale Settings showing scaling for bod, cod, tss, ph with Variable Name column highlighted]

In this example:

* `bod`, `cod` — 4–20mA input mapped to 0–300 mg/L output, cutoff –1 to 300
* `tss` — 4–20mA input mapped to 0–150 mg/L output, cutoff –1 to 150
* `ph` — 4–20mA input mapped to 0–14 pH output, cutoff –1 to 14

<figure><img src="/files/9T70gJ2CGp85Ghjy5OdS" alt=""><figcaption></figcaption></figure>

Enable the **Enable Scaling Flag** for each active variable. NUREX sends the scaled output value to CPCB — units are automatically applied based on the parameter name.

{% hint style="info" %}
If your approved parameter is not in the NUREX default list, or CPCB has specified a non-standard unit for your station, NUREX supports custom parameter addition and unit override. Contact [YuDash support](mailto:info@yudash.com) for assistance
{% endhint %}

### Data Push Timing & Averaging

<figure><img src="/files/keufm8kUbzDqOOo53w70" alt=""><figcaption></figcaption></figure>

CPCB guidelines require data to be submitted at **15-minute intervals**, exactly at **xx:00, xx:15, xx:30, and xx:45** of each hour. Each submission must represent the **average of per-minute readings** over that 15-minute window (15 samples per push).

NUREX handles this automatically:

* Set **TimeSync Run (Minute)** to `1` so that NUREX reads the input parameter every 1 minute.
* NUREX internally averages the 15 per-minute readings and pushes the result at each 15-minute boundary
* The averaging window and push timing are managed by the NUREX CPCB API — no manual configuration is needed. There is option to over-rider the averaging mechanism.

### Security & Encryption

All data transmitted from NUREX to the CPCB OCEMS portal is protected by the encryption and authentication framework mandated under the CPCB 2025 API guidelines:

* **AES-256-CBC encryption** — every data payload is encrypted using the industry-specific RSA public key obtained from the CPCB portal before transmission
* **Token-based authentication** — each request is authenticated using the unique Token ID issued by CPCB, ensuring only registered devices can submit data for a given station
* **HTTPS transport** — all communication with `cems.cpcb.gov.in` is over TLS-secured HTTPS, preventing interception or tampering in transit
* **Device binding** — the Machine ID assigned during device registration ties the NUREX unit to the specific CPCB device record, preventing unauthorized substitution

The entire security layer — key management, payload encryption, token handling, and secure transmission — is handled automatically by NUREX firmware based on the credentials provided during configuration. No additional security configuration is required from the user.

***

## Troubleshooting

***

## YuDash CEMS and AKSH Platform


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.yudash.com/nurex/cems/cpcb.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
