# OPC-UA without Discovery

**URL:** <https://forum.inductiveautomation.com/t/opc-ua-without-discovery/26059>\
**Category:** Ignition\
**Created:** [June 24, 2019, 1:46pm UTC](https://forum.inductiveautomation.com/t/opc-ua-without-discovery/26059 "2019-06-24T13:46:50Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ecujak](https://avatars.discourse-cdn.com/v4/letter/e/839c29/32.png) [@ecujak](https://forum.inductiveautomation.com/u/ecujak)\
**Post date:** [June 24, 2019, 1:46pm UTC](https://forum.inductiveautomation.com/t/opc-ua-without-discovery/26059/1 "2019-06-24T13:46:50Z")

</div>

How can we connect to an OPC-UA server without discovery?

I have no issue at all browsing, reading, writing, or executing call functions with the FreeOpcUa/python-opcua application.  
[https://github.com/FreeOpcUa/python-opcua](https://github.com/FreeOpcUa/python-opcua)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/2X/a/a50782d9399a3e8acc06f41ba70375a0ec1afe96.png)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [June 24, 2019, 3:03pm UTC](https://forum.inductiveautomation.com/t/opc-ua-without-discovery/26059/2 "2019-06-24T15:03:58Z")

</div>

Discovery isn’t optional. In many cases the endpoint URL and discovery URL will be the same, so try that to start.

---

<div class="post-metadata">

**Author:** ![ecujak](https://avatars.discourse-cdn.com/v4/letter/e/839c29/32.png) [@ecujak](https://forum.inductiveautomation.com/u/ecujak)\
**Post date:** [June 24, 2019, 3:34pm UTC](https://forum.inductiveautomation.com/t/opc-ua-without-discovery/26059/3 "2019-06-24T15:34:36Z")

</div>

Can you give me a reference that shows discovery is required for OPC-UA standard spec. So that I may use this reference in my support request with my device OEM?

…and thank you for the quick response.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [June 24, 2019, 3:41pm UTC](https://forum.inductiveautomation.com/t/opc-ua-without-discovery/26059/4 "2019-06-24T15:41:27Z")

</div>

Part 4, section 5.4.1 Discovery Service Set Overview:

> Every Server shall have a Discovery Endpoint that Clients can access without establishing a Session.

All OPC UA clients I've seen use a 2-step connect process:

1. open a connection, call GetEndpoints on the "discovery URL" to get a list of endpoints, close this connection.
2. scan through that list of endpoints to find one that matches what was configured (endpoint URL, security, etc...), and then open a connection to that endpoint.

In many cases the "discovery URL" and chosen "endpoint URL" are the same, but there are situations where they can be different.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [June 24, 2019, 4:25pm UTC](https://forum.inductiveautomation.com/t/opc-ua-without-discovery/26059/5 "2019-06-24T16:25:24Z")

</div>

A little later in this section there’s some language that allows discovery services to be disabled for a server, which requires that a client be able to cache all the necessary information to connect to that endpoint without going through discovery first. This also implies that for a server that will have discovery services disabled it should be configurable, so that they can be enabled for a client to connect, do discovery, and cache the chosen endpoint in the first place.

Ignition’s client does not support this and I don’t think figuring out how I can make this work in a backwards compatible manner is going to be high priority.

---

<div class="post-metadata">

**Author:** ![ecujak](https://avatars.discourse-cdn.com/v4/letter/e/839c29/32.png) [@ecujak](https://forum.inductiveautomation.com/u/ecujak)\
**Post date:** [June 25, 2019, 12:22pm UTC](https://forum.inductiveautomation.com/t/opc-ua-without-discovery/26059/6 "2019-06-25T12:22:01Z")

</div>

I was looking for a good case to show a hardware OEM that they need to configure discovery properly and why it was important. Was that OPC Foundation Spec document? “Part 4, section 5.4.1 Discovery Service Set Overview”

Thanks again.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [June 25, 2019, 12:41pm UTC](https://forum.inductiveautomation.com/t/opc-ua-without-discovery/26059/7 "2019-06-25T12:41:08Z")

</div>

Yes, it was OPC UA Spec version 1.03, Part 4.
