# openHistorian to openPDC C37.118 output configuration

**URL:** <http://discussions.gridprotectionalliance.org/t/openhistorian-to-openpdc-c37-118-output-configuration/1532>\
**Category:** openHistorian\
**Created:** [September 10, 2026, 3:43pm UTC](http://discussions.gridprotectionalliance.org/t/openhistorian-to-openpdc-c37-118-output-configuration/1532 "2026-09-10T15:43:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Korunekosama](http://discussions.gridprotectionalliance.org/user_avatar/discussions.gridprotectionalliance.org/korunekosama/32/708_2.png) [@Korunekosama](http://discussions.gridprotectionalliance.org/u/Korunekosama)\
**Post date:** [September 10, 2026, 3:43pm UTC](http://discussions.gridprotectionalliance.org/t/openhistorian-to-openpdc-c37-118-output-configuration/1532/1 "2026-09-10T15:43:42Z")

</div>

Hello,

I would like to test the following architecture involving openHistorian and openPDC:

- Two C37.118 streams (one containing PMUs at 50 fps, the other containing PMUs at 100 fps) are pushed to ports **4712** and **4713** on my **openHistorian** server. openHistorian listens on these ports, archives the data, and exposes it to Grafana.
- I would then like a subset of these measurements (for example **f** , **df** , **V+** , and/or **P** ) to be sent to or retrieved by **two additional servers running openPDC** :
  - one openPDC server handling **50 fps** data,
  - the other openPDC server handling **100 fps** data.On each of these two openPDC servers, a local **CustomActionAdapter** module runs calculations based on these measurements and produces additional result measurements. These calculation results must then be sent back to the openHistorian server for archiving and visualization in Grafana.

I am currently blocked on the part where openHistorian should send data to the two PDC servers via two distinct **C37.118 output streams** :

- In openPDC, there is a clear configuration path via **Outputs \> Concentrator Output Streams**.
- However, in openHistorian, I cannot find an equivalent screen or function to define C37.118 output streams.

Additionally, I would prefer **not** to use STTP for these two flows, because, as far as I know, STTP streams do **not** allow filtering of PMUs/measurements at the output side – they tend to send the full set of data managed by openHistorian/openPDC, whereas in this use case I need to send only selected PMUs/measurements (e.g., the calculated results measurements).

Could you please advise whether it is possible to configure openHistorian to establish **two C37.118 output streams** towards my two openPDC servers, and, if so, how to do this (screens, configuration steps, or components involved)?

**Additional context / PS:**

Initially, I considered connecting my two openPDC servers directly to the same C37.118 sources as openHistorian. However, in StreamSplitter I cannot configure two **“proxy connections”** with the same listening port to then route these flows to both openPDC servers in addition to openHistorian. When I tried to configure this, I encountered the following error:

> `ERROR: Connection attempt failed due to exception: Only one usage of each socket address (protocol/network address/port) is normally permitted in "transportProtocol=Tcp".`

Given this constraint, I am looking for a solution where openHistorian acts as the single C37.118 ingestion point, then forwards (in a filtered way) the required measurements to the two openPDC servers, which in turn run CustomActionAdapter calculations and send results back to openHistorian.

Any guidance, best-practice recommendations, or configuration examples you can provide would be greatly appreciated.

Best regards,

openHistorian version : 2.8.284  
openPDC version : 2.9.210  
StreamSplitter version (used to send PMU data from a secure zone to the openHistorian server as two separate streams (50 and 100 fps), over C37.118 TCP) : 1.1.10

---

<div class="post-metadata">

**Author:** ![ritchiecarroll](http://discussions.gridprotectionalliance.org/user_avatar/discussions.gridprotectionalliance.org/ritchiecarroll/32/2_2.png) [@ritchiecarroll](http://discussions.gridprotectionalliance.org/u/ritchiecarroll)\
**Post date:** [September 10, 2026, 4:01pm UTC](http://discussions.gridprotectionalliance.org/t/openhistorian-to-openpdc-c37-118-output-configuration/1532/2 "2026-09-10T16:01:17Z")

</div>

We do not normally enable output concentration features in openHistorian – this is more a philosophical constraint though, not a technical one – that is, architecting your system so openPDC “routes / transforms” data and openHistorian “archives”. That’s why you do not see the option there.

That said, you can add the screen the openHistorian’s `Menu.xml` file. This file drives what you see in the local UI manager application.

You can copy the “Outputs \> Concentrator Output Streams” line from openPDC’s `Menu.xml` to openHistorian’s.

Thanks,  
Ritchie

---

<div class="post-metadata">

**Author:** ![Korunekosama](http://discussions.gridprotectionalliance.org/user_avatar/discussions.gridprotectionalliance.org/korunekosama/32/708_2.png) [@Korunekosama](http://discussions.gridprotectionalliance.org/u/Korunekosama)\
**Post date:** [September 16, 2026, 8:04pm UTC](http://discussions.gridprotectionalliance.org/t/openhistorian-to-openpdc-c37-118-output-configuration/1532/3 "2026-09-16T20:04:49Z")

</div>

Thank you very much,  
It works well : I’m now able to build Concentrator Output Stream from openHistorian.

Regards
