Integrate Litmus Edge with Tiger Cloud
Stream industrial device data from Litmus Edge into your service using the PostgreSQL integration connector
Litmus Edge is an industrial edge platform that collects data from PLCs, sensors, and other operational technology assets over protocols such as OPC UA, MQTT, and Modbus, then forwards that data to enterprise systems and databases.
This page shows you how to configure the PostgreSQL integration connector in Litmus Edge to stream device data into your Tiger Cloud service, where it is stored as a hypertable for time-series analytics.
In this integration guide, you:
- Create a target hypertable in your Tiger Cloud service.
- Configure the PostgreSQL connector in Litmus Edge to point at your service.
- Subscribe a DeviceHub topic to the connector so device data flows into the hypertable.
Prerequisites for this integration guide
To follow these steps, you'll need:
-
These steps use Tiger Cloud, but the same approach applies to a self-hosted TimescaleDB instance.
- Your connection details.
- A running Litmus Edge instance that can reach your Tiger Cloud service on port
5432. - At least one device configured in Litmus Edge DeviceHub that is publishing tags you want to stream.
Prepare your service
Section titled “Prepare your service”Litmus Edge writes every published tag to a fixed schema. Pre-create the table as a hypertable so time-series queries and columnstore policies work out of the box.
- Connect to your Tiger Cloud service
Use the Tiger Console,
psql, or any other SQL editor to connect to your Tiger Cloud service. - Create the target hypertable
Litmus Edge writes one row per tag update with the following columns. Create the table directly as a hypertable partitioned on
arrived_at:CREATE TABLE litmus_data (id bigserial,record uuid NOT NULL,arrived_at timestamptz NOT NULL,device_id varchar(64),register_id varchar(64),tag_name varchar(64),datatype varchar(32),value varchar,success boolean) WITH (timescaledb.hypertable,timescaledb.chunk_interval = '7 days',timescaledb.segmentby = 'tag_name, device_id, register_id');Litmus Edge’s default schema declares
idas the primary key, but a hypertable primary key must include the partition column. The statement above omits the primary key so thatarrived_atalone partitions the data. Leave theCreate Table If Missingoption in Litmus Edge unchecked so it writes into this table instead of trying to create its own.If you need row-level uniqueness — for upserts or logical replication, for example — add
PRIMARY KEY (arrived_at, record):recordis alreadyNOT NULLand a uuid, and pairing it with the partition column satisfies the hypertable requirement.The
chunk_intervalsetting controls how much data each hypertable chunk holds. Aim for chunks that fit the most recent working set in memory — a good starting point is an interval that produces chunks roughly 25% of your service’s RAM. For a busy line publishing thousands of tags per second, that may mean hours rather than days; You can change the interval later withset_chunk_time_interval()— it only affects new chunks.
Configure the PostgreSQL connector in Litmus Edge
Section titled “Configure the PostgreSQL connector in Litmus Edge”Litmus Edge ships two PostgreSQL integration types: DB - PostgreSQL for plaintext connections and DB - PostgreSQL SSL
for TLS-protected connections. Tiger Cloud requires TLS, so use the SSL variant for Tiger Cloud and either
variant for self-hosted TimescaleDB.
- Open the Integration pane
Log in to Litmus Edge, then select
Integrationfrom the navigation panel. - Add a PostgreSQL connector
Click the add icon, then select
DB - PostgreSQL SSLfrom the list of integration connectors. - Configure connection settings
Using your Tiger Cloud service connection details, fill in the connector fields:
Name: a label for this connector, for exampletiger-cloud.Hostname: your service hostname.Port:5432.SSL Mode:require. Useverify caorverify fullif you want Litmus Edge to validate the server certificate.Username: your service username, typicallytsdbadmin.Password: your service password.Database:tsdb.Table:litmus_data.
Leave
CA Certificate,Certificate, andPrivate Keyblank whenSSL Modeisrequire. Forverify caorverify full, paste the Tiger Cloud CA certificate intoCA Certificate. - Tune the write behavior
For production workloads that require high throughput, set:
Bulk Insert Count: number of messages to batch perINSERT. A value between100and1000reduces commit overhead at high message rates.Commit Timeout: maximum milliseconds to wait before flushing a partial batch.1000is a good starting point — drop to200–500if you need sub-second freshness.Persistent Storage: enable to spool messages to disk if the connection to your service drops, so no data is lost during a brief outage.
Leave
Create Table If Missingunchecked — the hypertable you created earlier is the target. - Save the connector
Click
OK. The new connector appears as a tile in the Integration pane with its status indicator.
Stream device data to your service
Section titled “Stream device data to your service”A connector by itself does not move data. Subscribe one or more DeviceHub topics to it so tag updates flow into your hypertable.
- Open the connector
In the Integration pane, click the tile for the connector you just created.
- Add a topic subscription
Select the
Topicstab, click the add icon, then chooseadd a new subscription. - Map a DeviceHub tag to the connector
Configure the subscription:
Data direction:Local to Remote.Local data topic: click the search icon and select the DeviceHub device and tag you want to stream. To stream every tag from a device, use a wildcard suffix.Remote data topic: leave the default or enter a label that identifies this stream.QoS:1for at-least-once delivery.Enable: toggle on.
Click
OK, then confirm the prompt to restart the connector.
Verify the integration
Section titled “Verify the integration”To confirm Litmus Edge is writing data to your Tiger Cloud service:
- Trigger a tag update in Litmus Edge
Generate activity on the subscribed tag — let the device publish, or open the tag in DeviceHub and use
Write Valueto push a test value. - Query the target table
From the Tiger Console or
psql, run:SELECT arrived_at, device_id, tag_name, valueFROM litmus_dataORDER BY arrived_at DESCLIMIT 10;You see one row per tag update, with
arrived_atreflecting when Litmus Edge received the value,device_idandtag_nameidentifying the source, andvalueholding the payload as a string.
You have successfully integrated Litmus Edge with Tiger Cloud.
Troubleshooting
Section titled “Troubleshooting”- Connector status shows
disconnected: check that the Litmus Edge host can reach your service on port5432, and that theUsername,Password, andDatabasematch your connection details. relation "litmus_data" does not exist: Litmus Edge is writing to the wrong table. Confirm theTablefield is set tolitmus_dataandCreate Table If Missingis unchecked.- SSL handshake fails: Tiger Cloud requires TLS — use the
DB - PostgreSQL SSLconnector, not the plainDB - PostgreSQLconnector. If you selectedverify caorverify full, make sure theCA Certificatefield contains the Tiger Cloud CA certificate. - No rows appearing after a tag update: confirm that the topic subscription is
Enabledand that you restarted the connector after adding it.
For other connectivity and authentication issues, see Troubleshoot Tiger Cloud integrations.
Limitations
Section titled “Limitations”- The PostgreSQL connector is outbound only. Litmus Edge writes to your Tiger Cloud service but cannot read from it. To query the hypertable from inside Litmus Edge, use the Litmus SQL node in a Flow — it can read from your service and feed the results back into DeviceHub or another connector.
- Litmus Edge writes the tag payload to a single
varcharcolumn. Castvalueto the appropriate type ((value)::double precision,(value)::int) at query time, or use a continuous aggregate to materialize typed columns.