# If condition script writing as null?

**URL:** <https://forum.inductiveautomation.com/t/if-condition-script-writing-as-null/60865>\
**Category:** Ignition\
**Created:** [June 16, 2022, 11:02pm UTC](https://forum.inductiveautomation.com/t/if-condition-script-writing-as-null/60865 "2022-06-16T23:02:57Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Baglane](https://avatars.discourse-cdn.com/v4/letter/b/82dd89/32.png) [@Baglane](https://forum.inductiveautomation.com/u/Baglane)\
**Post date:** [June 16, 2022, 11:02pm UTC](https://forum.inductiveautomation.com/t/if-condition-script-writing-as-null/60865/1 "2022-06-16T23:02:57Z")

</div>

Im attempting to write a very simple script that will run on a 1sec interval as the communications heartbeat. The script simply writes to a tag a 0 or a 1 depending on what its current state is at time of running (1 second interval). However every time it checks it seems to write the variable as null? cant really figure out why. This is the code im using:

HeartBeatRead = system.tag.read("[default]IgnitionHeartbeat/HeartBeat")  
HeartBeatWrite = system.tag.write("[default]IgnitionHeartbeat/HeartBeat")  
HeartBeatWrite = 1  
if HeartBeatRead == 0:  
HeartBeatWrite = 1  
else:  
HeartBeatWrite = 0

Perhaps there is a better way to accomplish this? thanks.

---

<div class="post-metadata">

**Author:** ![Matrix\_Engineering](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/matrix_engineering/32/19781_2.png) [@Matrix\_Engineering](https://forum.inductiveautomation.com/u/Matrix_Engineering)\
**Post date:** [June 16, 2022, 11:23pm UTC](https://forum.inductiveautomation.com/t/if-condition-script-writing-as-null/60865/2 "2022-06-16T23:23:14Z")

</div>

> [@Baglane](#):
>
> HeartBeatRead = system.tag.read("[default]IgnitionHeartbeat/HeartBeat")  
> HeartBeatWrite = system.tag.write("[default]IgnitionHeartbeat/HeartBeat")  
> HeartBeatWrite = 1  
> if HeartBeatRead == 0:  
> HeartBeatWrite = 1  
> else:  
> HeartBeatWrite = 0

Welcome!

First off, please use the pre-formatted text option, as it saves indentation, which matters in Jython.

You can do this using this button when you add a post:

![code](https://us1.discourse-cdn.com/inductiveautomation/original/3X/d/7/d7f5be6046ee58ebfcb275145679dc209879acf9.png)

So, you didn't mention which version, as you are using read and write I am assuming 7.9, if you are on 8.0 or 8.1 you should as good practice use readBlocking etc, however the simple read will still work.

I think your code should look more like this:

```auto
HeartBeatRead = system.tag.read("[default]IgnitionHeartbeat/HeartBeat")

if HeartBeatRead.value == 0:
   system.tag.write("[default]IgnitionHeartbeat/HeartBeat", 1)
else:
   system.tag.write("[default]IgnitionHeartbeat/HeartBeat", 0)

```

---

<div class="post-metadata">

**Author:** ![Baglane](https://avatars.discourse-cdn.com/v4/letter/b/82dd89/32.png) [@Baglane](https://forum.inductiveautomation.com/u/Baglane)\
**Post date:** [June 16, 2022, 11:29pm UTC](https://forum.inductiveautomation.com/t/if-condition-script-writing-as-null/60865/3 "2022-06-16T23:29:20Z")

</div>

Thanks for the help, that did the trick. Still working on my jython syntax. Ill keep the code formatting in mind for the future.

Thanks again!

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [June 17, 2022, 12:05am UTC](https://forum.inductiveautomation.com/t/if-condition-script-writing-as-null/60865/4 "2022-06-17T00:05:03Z")

</div>

You can avoid some duplication with a relatively simple rewrite:

```python
path = "[default]IgnitionHeartbeat/HeartBeat"
HeartBeatRead = system.tag.read(path)
system.tag.write(path, not HeartBeatRead.value)

```

`not` is a Python operator that returns the inverse of the current value as a boolean - so 1 (True) becomes False (0), and vice-versa.
