# OpcOffNormalAlarm Members

> Reference: Represents a snapshot of a 'Opc.UaFx.OpcOffNormalAlarmNode'.

<dl class="api-definition">
<dt>Type</dt>
<dd><a href="./">OpcOffNormalAlarm</a></dd>
<dt>Namespace</dt>
<dd><a href="../namespaces/opc.uafx">Opc.UaFx</a></dd>
<dt>Assembly</dt>
<dd>Opc.UaFx.Advanced.dll</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced v2.59.0</dd>
<dt>Also in</dt>
<dd>Opc.UaFx.Client</dd>
</dl>

Inherits members from [OpcAlarmCondition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcalarmcondition/members), [OpcAcknowledgeableCondition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcacknowledgeablecondition/members), [OpcCondition](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccondition/members), [OpcEvent](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcevent/members).

## Constructors

### OpcOffNormalAlarm

<span class="api-meta">since v2.8</span>

Initializes a new instance of the [OpcOffNormalAlarm](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcoffnormalalarm/) class using the `dataStore` specified.

<div class="api-signature" data-lang="csharp">

```csharp
public OpcOffNormalAlarm(IOpcReadOnlyNodeDataStore dataStore)
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public Sub New(dataStore As IOpcReadOnlyNodeDataStore)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `dataStore` | [IOpcReadOnlyNodeDataStore](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcreadonlynodedatastore/) | The [IOpcReadOnlyNodeDataStore](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcreadonlynodedatastore/) of the 'Opc.UaFx.OpcOffNormalAlarmNode' to represent. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `dataStore` is a null reference (Nothing in Visual Basic). |

## Properties

### NormalStateId

Gets the node identifier that points to a variable which has a value that corresponds to one of the possible values of the variable pointed to by the [InputNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcalarmcondition/members#inputnodeid) property where the [NormalStateId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcoffnormalalarm/members#normalstateid) property variable value is the value that is considered to be the normal state of the variable pointed to by the [InputNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcalarmcondition/members#inputnodeid) property.

<div class="api-signature" data-lang="csharp">

```csharp
public OpcNodeId NormalStateId { get; }
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public ReadOnly Property NormalStateId As OpcNodeId
```

</div>

**Property value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)

When the value of the variable referenced by the 'Opc.UaFx.OpcAlarmConditionNode.InputNodeId' property is not equal to the value of the [NormalStateId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcoffnormalalarm/members#normalstateid) property the alarm is active. If this variable is not in the address space, a [Null](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/members#null) is provided. For more information see 'Opc.UaFx.OpcOffNormalAlarmNode.NormalStateId'.
