# Get/bind tag historical deadband style

**URL:** <https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877>\
**Category:** Ignition\
**Created:** [May 22, 2022, 12:14am UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877 "2022-05-22T00:14:02Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![ASF](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@ASF](https://forum.inductiveautomation.com/u/ASF)\
**Post date:** [May 22, 2022, 12:14am UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/1 "2022-05-22T00:14:02Z")

</div>

I’m setting up a tag configuration page, and I have successfully built something where a user can identify a data point, bring up a configuration window, enable/disable tag history, and select a historical data provider from a session. The last piece of the puzzle I’d like to bring in is the ability to set the historical deadband style. It doesn’t appear that this tag property is exposed anywhere for me to use - is there any way of binding a dropdown to this property somehow, without having to attach a script to every single tag?

---

<div class="post-metadata">

**Author:** ![josborn](https://avatars.discourse-cdn.com/v4/letter/j/4bbf92/32.png) [@josborn](https://forum.inductiveautomation.com/u/josborn)\
**Post date:** [May 22, 2022, 12:40am UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/2 "2022-05-22T00:40:40Z")

</div>

You can use `system.tag.getConfiguration` to get the current historical deadband style:

```auto
path = '[default]New Tag4'
config = system.tag.getConfiguration(path, False)
print config[0]['historicalDeadbandStyle']

```

Then `system.tag.configure` to set the deadband style to what you want. Hopefully i got the idea on what you are trying to do and this helps.

---

<div class="post-metadata">

**Author:** ![ASF](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@ASF](https://forum.inductiveautomation.com/u/ASF)\
**Post date:** [May 22, 2022, 12:42am UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/3 "2022-05-22T00:42:52Z")

</div>

Yes, that was exactly it. Thanks a lot!

---

<div class="post-metadata">

**Author:** ![ASF](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@ASF](https://forum.inductiveautomation.com/u/ASF)\
**Post date:** [May 22, 2022, 1:07pm UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/4 "2022-05-22T13:07:57Z")

</div>

Just a small caveat: `system.tag.getConfiguration` only returns values that are **not at the default value**. So if the deadband style is `Auto`, it will not be returned by `system.tag.getConfiguration`.

What I ended up doing was creating a history configuration popup with three custom methods: `getDefaults`, `getTagConfig` and `setTagConfig`.

`getDefaults` just returns a manually-generated dictionary of _all_ tag history related parameters, and their default values. So now I have a complete structure of tag history related parameters.

`getConfiguration` gets the existing tag configuration and then compares it to the default configuration. It then builds a complete configuration by combining the non-default values returned by  
`system.tag.getConfiguration` and the default values returned by `getDefaults`, and puts this information into various fields on the popup.

`setConfiguration` then reads the information out of the fields on the popup and creates an updated configuration dictionary. It also re-reads the existing tag configuration and the default configuration, to ensure that it only updates values that are being changed from what they currently are. Finally, it writes that updated configuration back to the tag using `system.tag.configure`

A note to developers on this front: it wasn’t exactly straightforward to _find_ all of the tag parameters, since `system.tag.getConfiguration` only returns non-default parameters. I ended up creating a tag, setting all the history parameters to non-default values, and then running `system.tag.getConfiguration` on that tag in the script console. Even then, it wasn’t immediately clear how each value is interpreted. For example, on the tag configuration window, you can set the minimum sample time units to milliseconds, seconds, minutes and so on - but at the back end, the parameter value is `MS, SEC, MIN` and so on. Some of them were even more unexpected - the deadband style in particular threw me because if you set it to `Auto`, the parameter value is `Auto`, if you set it to `Discrete` the parameter value is likewise `Discrete`, but if you set it to `Analog`, the parameter value is `Analog_Compressed`. I ended up having to select every possible combination of parameters and run system.tag.getConfiguration repeatedly to make sure I had collated all of the different parameter names and their possible values. It would be really helpful if these parameter names and values were documented somewhere! (or if they _are_ documented somewhere and I just didn’t find it, perhaps a link could be added to the `system.tag.configure` and `system.tag.getConfiguration` manual pages?)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 22, 2022, 1:47pm UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/5 "2022-05-22T13:47:28Z")

</div>

Start here:

[https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.1/com/inductiveautomation/ignition/common/tags/config/properties/WellKnownTagProps.html](https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.1/com/inductiveautomation/ignition/common/tags/config/properties/WellKnownTagProps.html)

Then here:

[https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.1/com/inductiveautomation/ignition/common/config/Property.html](https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.1/com/inductiveautomation/ignition/common/config/Property.html)

Notice the .getDefaultValue() method for these property definitions.

---

<div class="post-metadata">

**Author:** ![josborn](https://avatars.discourse-cdn.com/v4/letter/j/4bbf92/32.png) [@josborn](https://forum.inductiveautomation.com/u/josborn)\
**Post date:** [May 22, 2022, 9:23pm UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/6 "2022-05-22T21:23:52Z")

</div>

> [@ASF](#):
>
> `system.tag.getConfiguration` only returns values that are **not at the default value**.

That is what the manual states, but when i tested, i was able to get a return of "Auto" I don't know if its expected behavior or not, but it appears to only not return a value if the property was never changed from default. If you set it to something else, then back to Auto you get a result. Splitting hairs at this point i think.

---

<div class="post-metadata">

**Author:** ![ASF](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@ASF](https://forum.inductiveautomation.com/u/ASF)\
**Post date:** [May 22, 2022, 9:31pm UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/7 "2022-05-22T21:31:00Z")

</div>

I still can’t see any of these properties listed on that page - although the getDefaultValue() method is a useful one to know!

---

<div class="post-metadata">

**Author:** ![ASF](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@ASF](https://forum.inductiveautomation.com/u/ASF)\
**Post date:** [May 22, 2022, 9:32pm UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/8 "2022-05-22T21:32:17Z")

</div>

Yes, if you set a tag to a non-default and then set it back to the default, it appears to retain its “override” property, and it continues to be returned by `system.tag.getConfiguration`. If you remove the override entirely, it is no longer returned.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 23, 2022, 12:30am UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/9 "2022-05-23T00:30:39Z")

</div>

> [@ASF](#):
>
> I still can’t see any of these properties listed on that page

Sorry, these too.

[https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.16/com/inductiveautomation/ignition/common/tags/config/properties/TagHistoryProps.html](https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.16/com/inductiveautomation/ignition/common/tags/config/properties/TagHistoryProps.html)

The javadocs cross references to implementing classes are incomplete. ):

Others are scattered about, and both modules and users can define more.

---

<div class="post-metadata">

**Author:** ![ASF](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@ASF](https://forum.inductiveautomation.com/u/ASF)\
**Post date:** [May 23, 2022, 8:01am UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/10 "2022-05-23T08:01:22Z")

</div>

There they are! Of course, that still doesn’t give me a list of the potential values, and if I wanted to nitpick I’d suggest that they parameter names are all in `TitleCase` in that list, but in `camelCase` in ignition.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 23, 2022, 12:22pm UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/11 "2022-05-23T12:22:55Z")

</div>

Drill into the enumeration classes where defined, the `X` in `Property<X>`. That shows the possible values. Like [InterpolationMode](https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.16/com/inductiveautomation/ignition/common/sqltags/history/InterpolationMode.html) for `HistoricalDeadbandStyle`.

{ Do links highlight in your browser? You can click on them to explore… /snark }

---

<div class="post-metadata">

**Author:** ![ASF](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@ASF](https://forum.inductiveautomation.com/u/ASF)\
**Post date:** [May 23, 2022, 9:51pm UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/12 "2022-05-23T21:51:59Z")

</div>

Ah, there we go. I tried the links in the Field column, and missed the links in the type column entirely 🙃

Thanks!

---

<div class="post-metadata">

**Author:** ![Ervin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ervin/32/57644_2.png) [@Ervin](https://forum.inductiveautomation.com/u/Ervin)\
**Post date:** [September 8, 2026, 10:03am UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/13 "2026-09-08T10:03:21Z")

</div>

links above posts are no longer valid. may I ask for some updates?

I am dealing with the same/similar issue  
trying only to READ a tag's historicalDeadbandStyle when it is part of an UDT instance with no override on DeadbandStyle

My goal is to determine what interpolation to use on a dynamically populated PowerChart. where distinguishing between Int(2,4,etc) and Float is not enough. since in some cases even float values are not progressively changing between historical dataPoints and need to be displayed as StepAfter.

I need to use Cuved Linear only on Float and Analog tags and all other I need StepAfter.

The only problem is that I built everything around specific UDT's to ease the implementations, since it is a 400k tag system over multiple RemoteTagProvider servers.

I use ignition 8.1.45 since this was availabe and financed when the project was started. and no option to migrate to 8.3 where are more easier ways to read this.

> My simple test looks like this:  
> path = '[RTP\_IOcanal].. . .. . /Nivel'  
> config = system.tag.getConfiguration(path, True)  
> print system.tag.readBlocking(path+'.DataType')[0].value  
> print config[0]['historicalDeadbandStyle']

and it works, but

my problem is that historicalDeadbandStyle is only readable this way if it is explicitly overvritten (green dot) or changed. where the tag is part of an UDT Instance

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [September 8, 2026, 12:36pm UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/14 "2026-09-08T12:36:48Z")

</div>

Use indirect bindings to `{1}.historicalDeadbandStyle` and `{1}.dataType` in your view. Where `{1}` is your tag path. Or just read both of those with `readBlocking()` if it must be a script.

Also, javadocs have moved. Bookmark this page to always find the latest:

> **[Ignition SDK Programmer's Guide | Ignition SDK Programmer's Guide](https://www.sdk-docs.inductiveautomation.com/)**
>
> Description will go into a meta tag in

---

<div class="post-metadata">

**Author:** ![Ervin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ervin/32/57644_2.png) [@Ervin](https://forum.inductiveautomation.com/u/Ervin)\
**Post date:** [September 9, 2026, 7:25am UTC](https://forum.inductiveautomation.com/t/get-bind-tag-historical-deadband-style/59877/15 "2026-09-09T07:25:56Z")

</div>

> [@pturmel](#):
>
> {1}.historicalDeadbandStyle

Thank you very much. This time I never thought to try to see if it can be read directly, even if it is not visible among the others in the browser.
