Remote.it JumpBox behind StarLink

While this topic has been addressed, see Starlink Port Forwarding Starlink, Cellular, CGNAT, Dec 2022, a peculiarity in my proposed application leaves uncertainty about the JumpBox applicability.

I have many legacy HAI Omni controllers in service and customers considering moving to StarLink as their ISP. The Omni is/must be assigned a static LAN IP address, the router assigned a static WAN IP address and fort forwarding set up to route incoming tracffic destin for the Omni controller.

Assume the StarLink router is put in bridge mode and a 3rd party router is used to establish the network with the staticly addressed Omni controller and other devices and accomplish the port forwarding task.

The Omni controller never initiates network messaging, only responses to incoming messages. Message traffic is between a mobile or Windows application and the Omni direct, no server. I do not know the detailed nature of the messaging protocol or contents, but from the “remote” app standpoint, it directs Omni traffic to a WAN IP address (or URL) and a port number.

Can the JumpBox behind the StarLink router be reached with an “assigned” WAN IP address (or URL) and a port number and complete the connection through the 3rd party router to the Omni controller? And of course route the reply back to the originator?

Appreciate all y’all’s help

David//

Hello David,
The connection to the Omni Controller will be a jump connection and if you need to have a “static IP” or address to access it, then you would need to install the Remote.It Desktop or CLI on the computer or server that will be using the connection. This connection will look like a localhost connection to the initiating computer/server with a high port number.
In other words on the Starlink side, you would have a jump host (no port forwarding needed there). This article covers setting up a jumpbox using a raspberry pi, but you could also use a simple OpenWRT travel router too. The directions are the same, just choose OpenWRT when selecting the device type. Raspberry Pi Jumpbox
Then for making the connection to the omni controller, you would install the Remote.It Desktop or the Remote.It CLI on the initiating connector side. https://www.remote.it/download-list?products=desktop|cli#Download-Results These connections are not sharable or public so each computer/device needs to install the Remote.It Desktop or CLI and create their own connections.

Here is another post about a the same thing just with a different service. https://forum.remote.it/t/starlink-port-forwarding/645

Brenda,

  • Well thank you for the thoughtful response, much appreciated. Question - Is the Remote.It CLI (app) available on Mobile devices. Omni is a security/home automation device, and everyone accesses their’s with a mobile app.

No RemoteIt CLI is not available on Mobile devices. Unfortunately, I cannot offer a solution there at this time.

If your going to run a jump box anyway You can ship a neat little “appliance” that runs Node-RED on a Raspberry Pi, talks to the OmniPro II via OmniLinkBridge, and you (or customers) reach its web UI through remote.it—no open ports.

Here’s a tight blueprint you can build today.

Architecture

  • OmniPro II (Ethernet or RS-232 → USB)

  • Raspberry Pi (Pi 4/5, Raspberry Pi OS Lite)

    • OmniLinkBridge (speaks OmniLink to the panel, exposes MQTT/REST/WS)

    • Mosquitto (MQTT broker)

    • Node-RED (+ node-red-dashboard) → your web UI

    • (optional) Caddy (local reverse proxy + auth, not needed if using remote.it)

  • remote.it → on-demand, authenticated tunnel to Node-RED’s UI

Data flow

OmniPro II ⇄ OmniLinkBridge ⇄ MQTT (Mosquitto) ⇄ Node-RED flows ⇄ Node-RED Dashboard (web UI)
Remote access: you open remote.it → click the “Node-RED (1880)” service → it pops the dashboard in your browser.

If you run this through an AI, you can probably build this in about 30 min, then you would have a custom branded remote accessible appliance based on a rasberry pi that could be remote accessed via any remote.it app/website from anywhere in the world.

You could probably sell lots of these because it solves the old technology aspect of the Omni controller with a modern interface.

-M

mycal,

WOW, just what I was searching for. Thank You! Please allow me to clarify/understand the application.

At a high level, confirm this implementation provides a Remote.it hosted URL/Subdomain that provides specific Omni to Windows/Smart Phone hosted Omni application native data connectivity transparent of the StarLink CGNAT?

And, given the nature of statically addressed LAN devices, like the Omni - camera DVRs in particular, is the OmniLinkBridge really just a format-independent NAT function that can be progerammed to access any port-addressed device on a LAN independent of the data format/port assignment? (The Omni version using port 4369.)

Second, is there a source for a preconfigured Raspberry Pi, or integrators that I could subcontract to get this done? If not, where are the various components, OmniLinkBridge, MQTT (Mosquitto), Node-RE, sourced?

Certainly appreciate you helping me out with this critical challenge.

David//

This is seriously somthing that you could take the spec I provided before and put it into claud.ai or chatgpt5, probably even Grok and it would provide you a step by step on how to build it. Node red is graphical no programming and I think the LLM’s have this well understood so it should be easy to design an UI. I’d start there, this is not complex and using that spec the LLM’s should just design it for you.

I asked Gemini and it told me this, you could ask further and it would give you more detail: Here’s how you can make your Omni controller remotely accessible using a Raspberry Pi and remote.it, following the provided blueprint. This is a project outline, and the difficulty will depend on your familiarity with the listed technologies. It’s not a single command but a series of setup steps.

The Overall Plan

You’ll set up a Raspberry Pi to act as a jump box or gateway appliance. This Pi will run several software components that work together to:

  1. Talk to the OmniPro II controller: The OmniLinkBridge software handles this.

  2. Process and route data: An MQTT broker (Mosquitto) acts as a central hub for communication between the different applications.

  3. Provide a modern web interface: Node-RED is a flow-based programming tool that you’ll use to create a visual dashboard for controlling and monitoring your Omni system.

  4. Securely expose the web interface: remote.it creates a secure tunnel, making the Node-RED dashboard accessible from anywhere without opening any ports on your router.


Step-by-Step Instructions

1. Set Up the Raspberry Pi

Start with a fresh install of Raspberry Pi OS Lite on a Raspberry Pi 4 or 5. This is a minimal, headless (no desktop environment) version of the operating system, which is ideal for an appliance. You’ll need to enable SSH to access the Pi remotely from your computer.

2. Install the Core Software

You’ll need to install the following applications. You can use the apt package manager for Mosquitto and Node.js. Node-RED is a Node.js application, and OmniLinkBridge can be installed the same way.

  • Node.js: Needed to run Node-RED and OmniLinkBridge.

  • Mosquitto: The MQTT broker. Use sudo apt install mosquitto.

  • OmniLinkBridge: The software that communicates directly with your OmniPro II controller. You’ll need to configure this to connect to your controller, either via Ethernet or an RS-232 to USB adapter.

  • Node-RED: The dashboard and web UI. Install it using the provided script from the Node-RED website.

  • Node-RED Dashboard: This is a set of nodes you install within Node-RED to build the UI. You can install it from the Node-RED palette manager.

3. Configure the Data Flow

This is the most complex part and involves configuring each piece of software to communicate with the others.

  1. OmniLinkBridge Configuration: Configure OmniLinkBridge to connect to your OmniPro II panel and to publish data to the Mosquitto MQTT broker. It will publish state changes (e.g., a zone opening) and allow you to send commands to the panel.

  2. Node-RED Flow: In the Node-RED web interface (which runs on port 1880 by default), you’ll create flows. You’ll use an MQTT input node to subscribe to topics from the Mosquitto broker, which will receive data from OmniLinkBridge. You’ll then use dashboard nodes to display this data (e.g., status lights, text).

  3. Build the Dashboard: Use the various Node-RED dashboard nodes (e.g., button, gauge, switch, chart) to create a custom user interface. You can set up buttons to send commands back to the Omni controller via an MQTT output node.

4. Set Up Remote Access with remote.it

  1. Install the remote.it agent: Download and install the remote.it agent on your Raspberry Pi.

  2. Register your device: Create a free account on the remote.it website and register your Raspberry Pi as a device.

  3. Create a Service: Within your remote.it account, create a new service for the Node-RED web interface. You’ll specify that it’s a TCP service on port 1880. This creates a secure tunnel to your Pi.

  4. Access: From any web browser or the remote.it desktop application, you can now connect to the Node-RED (1880) service. The remote.it service will create a secure, on-demand connection, and your browser will display the Node-RED dashboard as if it were running on a local server.

Final Notes

The difficulty of this project lies in correctly configuring each component and creating the Node-RED flows. The blueprint is a solid starting point, but you’ll need to read the documentation for each piece of software to complete the project successfully. The process isn’t a single 30-minute task but a project that can be completed in an afternoon or over a few days, depending on your experience. The remote.it part is relatively easy and is the key to providing secure, no-port-forwarding remote access.

can you walk me though this: 3. Configure the Data Flow

This is the most complex part and involves configuring each piece of software to communicate with the others.

OmniLinkBridge Configuration: Configure OmniLinkBridge to connect to your OmniPro II panel and to publish data to the Mosquitto MQTT broker. It will publish state changes (e.g., a zone opening) and allow you to send commands to the panel.

Node-RED Flow: In the Node-RED web interface (which runs on port 1880 by default), you’ll create flows. You’ll use an MQTT input node to subscribe to topics from the Mosquitto broker, which will receive data from OmniLinkBridge. You’ll then use dashboard nodes to display this data (e.g., status lights, text).

Build the Dashboard: Use the various Node-RED dashboard nodes (e.g., button, gauge, switch, chart) to create a custom user interface. You can set up buttons to send commands back to the Omni controller via an MQTT output node.

Setting up the data flow is the core of this project, as it’s where you integrate all the components. Here’s a walkthrough of how to configure OmniLinkBridge, Mosquitto, and Node-RED to work together, following the blueprint you provided.


1. OmniLinkBridge Configuration

The first step is to get OmniLinkBridge talking to both your OmniPro II panel and the MQTT broker (Mosquitto).

  • Edit the config.json file: OmniLinkBridge uses a configuration file, typically named config.json, to set its parameters. You’ll need to modify this file to tell it where to find your OmniPro II controller and your Mosquitto server.

    • OmniPro II Connection: Specify the connection details for your Omni controller. If you’re using an Ethernet connection, you’ll provide the IP address and port. If you’re using an RS-232 to USB adapter, you’ll specify the serial port name (e.g., /dev/ttyUSB0 on Linux) and the baud rate.

    • MQTT Broker: Enter the IP address of your Raspberry Pi (or localhost) and the default MQTT port, which is 1883. You’ll also define the base topic, which acts as the root for all MQTT messages. For example, setting the base topic to omni means all messages will start with omni/. This keeps things organized.

  • Start OmniLinkBridge: Run the OmniLinkBridge application. It should connect to both your panel and the Mosquitto broker. As soon as something happens on the panel (like a zone change or a keypad press), OmniLinkBridge will publish an MQTT message to the broker under the topic you defined.


2. Node-RED Flow Creation

Node-RED is a visual tool where you’ll create a “flow” that defines how data moves and is presented.

  1. Access the Node-RED UI: In your web browser, navigate to your Raspberry Pi’s IP address on port 1880 (e.g., http://<your-pi-ip>:1880). This is where the Node-RED editor runs.

  2. Add an MQTT Input Node: The MQTT input node is how you receive data from Mosquitto. . Drag and drop it onto the canvas.

    • Configure the Node: Double-click the node to configure it. You’ll need to add a new MQTT broker. The server will be localhost (since Mosquitto is running on the same Pi), and the port is 1883.

    • Set the Topic: The topic field is crucial. It tells Node-RED what messages to listen for. To listen for all messages from OmniLinkBridge, set the topic to omni/#. The # is a wildcard that means “everything under the omni/ base topic.”

  3. Use Debug Nodes: For testing, connect a debug node to the output of your MQTT input node. This will display all incoming messages in the debug panel on the right side of the screen. Trigger an event on your Omni panel (e.g., open a door), and you should see a message pop up, confirming that the data flow is working.


3. Build the Dashboard

The dashboard is the user-friendly web interface that displays the data and lets you send commands.

  1. Install the Dashboard Nodes: In the Node-RED editor, click the menu in the top-right corner, go to “Manage Palette,” and install the node-red-dashboard package. This will add new nodes to your palette on the left side, such as Text, Switch, Button, and Gauge.

  2. Create a Simple Display:

    • Status Light: Use a text node to display the status of a specific zone. Connect it to your MQTT input node, but this time, set the topic to be more specific, like omni/zone/1/status.

    • Control Panel: Use a button node to send a command. A button node sends a message when it’s clicked. Connect the button to an MQTT output node.

    • Configure the MQTT Output Node: Set the topic of the MQTT output node to the command topic for OmniLinkBridge (e.g., omni/command/arm_away). The payload of the button press will be sent to this topic, and OmniLinkBridge will interpret it as a command to arm the panel.

  3. View Your Dashboard: Once you’ve created and deployed your flow, you can view the dashboard by navigating to a specific URL in your browser: http://<your-pi-ip>:1880/ui. This is the user interface you’ll be accessing remotely through remote.it. You can customize the layout, add charts for historical data, and create a complete modern interface for your OmniPro II controller.

mycal,

Well thank you again. Guest I will be introducing myself to Claude!

May I indulge you to answer my first question and a half?

At a high level, confirm this implementation provides a Remote.it hosted URL/Subdomain that provides specific Omni to Windows/Smart Phone hosted Omni application native data connectivity transparent of the StarLink CGNAT?

And, given the nature of statically addressed LAN devices, like the Omni - camera DVRs in particular, is the OmniLinkBridge really just a format-independent NAT function that can be programmed to access any port-addressed device on a LAN independent of the data format/port assignment? (The Omni version using port 4369.)

Appreciate this.

David//

OmniLinkBridge Provides MQTT bridge, web service API, time sync, and logging for HAI/Leviton OmniPro II controllers. The node-red-dashboard is the UI and remote.it connects to that, these should be all on the same PI so the IP never changes its just itself.