<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://docs.optrix.com.au/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>ARDI Documentation</title>
        <description></description>
        <link>https://docs.optrix.com.au/</link>
        <lastBuildDate>Wed, 30 Sep 2026 22:58:34 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://docs.optrix.com.au/_media/wiki:dokuwiki.svg</url>
            <title>ARDI Documentation</title>
            <link>https://docs.optrix.com.au/</link>
        </image>
        <item>
            <title>Creating an ARDI Historical Driver</title>
            <link>https://docs.optrix.com.au/ardisdk:creating_a_historical_ardi_driver</link>
            <description>Creating an ARDI Historical Driver

This tutorial will re-create the ARDI Historical Text driver as an example of how to create your own ARDI driver in Python.

Many of the steps are very similar to those from our Creating an ARDI Live Driver tutorial - however the functions that we create are a little different.</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Mon, 21 Sep 2026 02:18:37 +0000</pubDate>
        </item>
        <item>
            <title>Error Notifications - created</title>
            <link>https://docs.optrix.com.au/ardisdk:error_notification</link>
            <description>Error Notifications

Both the Historical and Event drivers have the statusmessage variable that can be used to indicate any issues when making a request.

Simply set the variable to a value that describes the problem (ie. &#039;Access Denied&#039;) to give feedback to the user when a particular action could not be performed.</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Mon, 21 Sep 2026 02:02:48 +0000</pubDate>
        </item>
        <item>
            <title>Python Driver Developer SDK</title>
            <link>https://docs.optrix.com.au/ardisdk:python_driver_developer_sdk</link>
            <description>Python Driver Developer SDK

ARDI includes a library of files to assist in the rapid creation of ARDI drivers.

Most drivers built by Optrix are deliberately left open and documented so they can be used as basis for 3rd parties to create their own drivers. They can also be copied and enhanced if your application needs very specific alterations.</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Mon, 21 Sep 2026 01:59:45 +0000</pubDate>
        </item>
        <item>
            <title>ARDI Driver Guidelines</title>
            <link>https://docs.optrix.com.au/ardisdk:ardi_driver_guidelines</link>
            <description>ARDI Driver Guidelines

ARDI historical drivers have a set of guidelines that every history driver is supposed to follow if at all possible.

No Point Should Have Overlapping Timestamps

History drivers should not produce two values for the exact same timestamp. If there is a transition in a discrete state (ie. a boolean value changing from &#039;false&#039; to &#039;true&#039;), these two points should be offset by a small amount of time (ie. 0.1 seconds).</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Mon, 21 Sep 2026 01:41:51 +0000</pubDate>
        </item>
        <item>
            <title>Live Data Replication</title>
            <link>https://docs.optrix.com.au/distribute:start</link>
            <description>Live Data Replication

ARDIs Live Data Replication functions let you push live data to other platforms as it arrives.

It&#039;s useful for recording data to historians, or pushing data to distribution and messaging systems such as MQTT.

Importantly, it applies ARDIs naming and structure to the incoming data, ensuring that the information is recorded consistently and is easy for users to find.</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Wed, 16 Sep 2026 22:30:31 +0000</pubDate>
        </item>
        <item>
            <title>Creating Your Own Replicator</title>
            <link>https://docs.optrix.com.au/distribute:creating_your_own_distributor</link>
            <description>Creating Your Own Replicator

Replicator files can be found in your Python library directory, under /ardi/consolidator.

Replicator modules are named &#039;dist_xxx&#039;, where &#039;xxx&#039; is the type name used in the configuration file. Note that originally the replication engine was called the</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Wed, 16 Sep 2026 22:30:04 +0000</pubDate>
        </item>
        <item>
            <title>Webhook</title>
            <link>https://docs.optrix.com.au/distribute:webhook</link>
            <description>Webhook

This type of replicator sends incoming data to an HTTP server.

Note that as live data can be very fast, we suggest the webhook server must be able to handle a high rate of incoming calls.

Type Name

The type name to use in your configuration is webhook</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Wed, 16 Sep 2026 22:26:17 +0000</pubDate>
        </item>
        <item>
            <title>TimescaleDB</title>
            <link>https://docs.optrix.com.au/distribute:timescaledb</link>
            <description>TimescaleDB

This type of replicator sends incoming data to a TimescaleDB server to be recorded.

TimescaleDB is a modified version of PostGRESQL designed to handle long term, high-speed time-series data without experiencing the major performance issues that arise when storing this sort of data in a traditional database engine.</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Wed, 16 Sep 2026 22:26:02 +0000</pubDate>
        </item>
        <item>
            <title>Redis</title>
            <link>https://docs.optrix.com.au/distribute:redis</link>
            <description>Redis

This type of replicator sends incoming data to a REDIS server, where it is held in an in-memory data store that can be subscribed to.

Type Name

The type name to use in your configuration is redis.

Configuration

The following configuration options are accepted</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Wed, 16 Sep 2026 22:25:49 +0000</pubDate>
        </item>
        <item>
            <title>MQTT Per-Asset Topics</title>
            <link>https://docs.optrix.com.au/distribute:mqttob</link>
            <description>MQTT Per-Asset Topics

This type of replicator sends incoming data to your MQTT server, with one topic per ARDI asset that has live data.

This will consolidate all updates about an asset into a single message, reducing the total size of the MQTT namespace and reducing the number of total messages sent.</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Wed, 16 Sep 2026 22:25:02 +0000</pubDate>
        </item>
        <item>
            <title>MQTT Event Notifications</title>
            <link>https://docs.optrix.com.au/distribute:mqttev</link>
            <description>MQTT Event Notifications

This type of replicator sends incoming data to your MQTT server, with one topic per property. 

However, rather than being a live stream of updates, these topics are only sent updates when a significant change happens.

For discrete values (on/off signals, statuses, text values etc.), messages will be sent with any change. This reflects machines turning on/off, doors closing etc.</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Wed, 16 Sep 2026 22:24:50 +0000</pubDate>
        </item>
        <item>
            <title>MQTT Per-Point Topics</title>
            <link>https://docs.optrix.com.au/distribute:mqtt</link>
            <description>MQTT Per-Point Topics

This type of replicator sends incoming data to your MQTT server, with one topic per point of live data.

This means that there will be a large number of individual topics in your MQTT hierarchy.

Each message simply contains the raw value of that point of information.</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Wed, 16 Sep 2026 22:24:37 +0000</pubDate>
        </item>
        <item>
            <title>Memcache</title>
            <link>https://docs.optrix.com.au/distribute:memcache</link>
            <description>Memcache

This type of replicator sends incoming data to a Memcache server, where it is held in an in-memory data store.

Type Name

The type name to use in your configuration is memcache.

Configuration

The following configuration options are accepted...
Name</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Wed, 16 Sep 2026 22:24:24 +0000</pubDate>
        </item>
        <item>
            <title>InfluxDB</title>
            <link>https://docs.optrix.com.au/distribute:influx</link>
            <description>InfluxDB

This type of replicator sends incoming data to an InfluxDB server to be recorded.

Type Name

The type name to use in your configuration is influx.

Configuration

The following configuration options are accepted...
NameNotesPurposehostnameRequiredThe full path to your</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Wed, 16 Sep 2026 22:23:57 +0000</pubDate>
        </item>
        <item>
            <title>Pre-Built Replicators</title>
            <link>https://docs.optrix.com.au/distribute:pre-built_distributors</link>
            <description>Pre-Built Replicators

Below are the list of replicator modules that are included with ARDI 2026 and above.

InfluxDB 

Memcache 

MQTT Per-Point Topics 

MQTT Event Notifications 

MQTT Per-Asset Topics 

Redis 

TimescaleDB 

Webhook</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Wed, 16 Sep 2026 22:23:43 +0000</pubDate>
        </item>
        <item>
            <title>linedetails.png - created</title>
            <link>https://docs.optrix.com.au/?image=network%3Alinedetails.png&amp;ns=network&amp;do=media</link>
            <description>&lt;img src=&quot;https://docs.optrix.com.au/_media/network:linedetails.png?w=500&amp;amp;h=500&amp;amp;tok=7ddd61&quot; alt=&quot;linedetails.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Tue, 15 Sep 2026 23:54:16 +0000</pubDate>
        </item>
        <item>
            <title>linediagram.png</title>
            <link>https://docs.optrix.com.au/?image=network%3Alinediagram.png&amp;ns=network&amp;do=media</link>
            <description>&lt;img src=&quot;https://docs.optrix.com.au/_media/network:linediagram.png?w=500&amp;amp;h=500&amp;amp;tok=50f9a6&quot; alt=&quot;linediagram.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Tue, 15 Sep 2026 05:08:38 +0000</pubDate>
        </item>
        <item>
            <title>chorddiagram.png</title>
            <link>https://docs.optrix.com.au/?image=network%3Achorddiagram.png&amp;ns=network&amp;do=media</link>
            <description>&lt;img src=&quot;https://docs.optrix.com.au/_media/network:chorddiagram.png?w=500&amp;amp;h=500&amp;amp;tok=0a48e2&quot; alt=&quot;chorddiagram.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Tue, 15 Sep 2026 05:07:03 +0000</pubDate>
        </item>
        <item>
            <title>articulation.png - created</title>
            <link>https://docs.optrix.com.au/?image=display_list%3Aarticulation.png&amp;ns=display_list&amp;do=media</link>
            <description>&lt;img src=&quot;https://docs.optrix.com.au/_media/display_list:articulation.png?w=500&amp;amp;h=500&amp;amp;tok=f13fca&quot; alt=&quot;articulation.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Thu, 03 Sep 2026 00:02:17 +0000</pubDate>
        </item>
        <item>
            <title>apprisepage.png - created</title>
            <link>https://docs.optrix.com.au/?image=apprise%3Aapprisepage.png&amp;ns=apprise&amp;do=media</link>
            <description>&lt;img src=&quot;https://docs.optrix.com.au/_media/apprise:apprisepage.png?w=500&amp;amp;h=500&amp;amp;tok=d89829&quot; alt=&quot;apprisepage.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
            <author>optrix@undisclosed.example.com (optrix)</author>
            <pubDate>Thu, 20 Aug 2026 04:20:03 +0000</pubDate>
        </item>
    </channel>
</rss>
