Node-RED: Optimized Off-Grid Starlink System
Sometimes it's good to dream small.
Can you design a small power system that's wicked smart for a specific application? We encounter new examples daily: a pond aerator, a security trailer, a buffalo fence, or—as described in this case study—a Starlink remote monitoring camera system on an airplane runway.
These systems start with needing power, and then someone says, "Wouldn't it be great if the X happened when Y happened." In the scenario below, given its remote location, these types of logic conditions were easily solvable using Node-RED.
What is Node-RED?We typically describe Node-RED as a remotely accessible Programmable Logic Controller that now resides inside Victron's Cerbo GX and has built-in Victron communications protocols. This makes communicating with Victron equipment straightforward and extremely powerful. You can also interface with virtually anything else that has wires. Being remotely accessible, it's a direct competitor to many other PLC options, or in some cases, an excellent supplement to the local control system.
This example system aims to get you thinking about simple, quick solutions that make Victron power systems even smarter.
The Challenge:
One of our clients owns a remote ranch accessible only by plane. The runway's condition is always uncertain, so the owner installed a Starlink internet system connected to a camera for monitoring: "We're keeping an eye on weather, wind socks, and what kinds of critters are napping on our runway."
The area is partially shaded, and the power system running this camera is small because the actual load requirement is small, and all equipment must be flown in. (The load would be significant if running constantly, but when used only as needed, it's minimal.)
So, how can we control it intelligently?
Our Solution:
The main goal is to minimize the system's load and protect the battery's state of charge (SOC) and heat source as much as possible, ensuring the system can "fly" another day.
This setup exemplifies Node-RED functionality within the Cerbo GX, integrated with a communicating Pylontech RT battery, a Victron solar charge controller, a 24V 100W Solar Land solar panel, and a small 250W Victron inverter. See a diagram of the setup below.
The heart of the system is the Cerbo GX running OS large.
It communicates with all components, including the Pylontech RT. The RT seamlessly interfaces with the rest if the system, outputting crucial temperature and state of charge (SOC) data while regulating its charge and discharge with DVCC. We can also run a small wire to a digital input on the RT to control its built-in heater pad. Controlling heat is a vital part of our power budget strategy.
In summary, we can toggle the Starlink on or off by controlling the inverter. We can heat the battery based on solar input and SOC conditions. Maximizing performance with this level of control was a fun exercise and an good starting point for someone learning Node-RED.
Communications cables used:
- VE.direct cable (Inverter to Cerbo)
- VE.direct cable (MPPT to Cerbo)
- BMS CAN RJ45 cable (Battery to Cerbo)
- 24 AWG two conductor cable (Battery Heater Digital input to Cerbo Relay 2)
>>> Download the Node-RED demonstration code
The logic steps in the Node-RED code are as follows:
Cerbo GX Relay 2 (heater contact on the Pylontech RT)
This actively controls the RT battery's built-in heater. It functions as follows:
- Relay 2 engages when SOC is > 50% and solar power is available.
- When the battery temperature reaches 34°F, it pulses the heater until 35°F is achieved. This keeps the battery warm without overheating, regardless of SOC, accounting for a slight temperature overshoot.
- When the heater is inactive, an off signal is sent every 5 seconds to keep control of the ready if someone tries to activate it remotely, say via remote console or VRM.
Note: When we have solar power and our SOC exceeds 50%, we activate the heater even if it's not immediately necessary for survival. Instead of wasting this potential solar energy, we warm up before nighttime.
Overheating isn't a concern, as the heater's maximum temperature will only raise the battery to a safe level—we're simply enabling it.
VE.direct cable to the Cerbo GX (inverter control)
In Node-RED the inverter logic is as follows:
- If SOC > 75%, the inverter stays on (Summertime).
- If SOC > 50%, & solar is producing a charge the inverter cycles on (Power Saving Mode)
- If SOC > 7%, & solar is charging the inverter cycles on for 10 minutes on the hour (Limp Mode)
- When SOC is <= 7%, the inverter turns on and sends the last bit of data, and alarms until 5% when the battery shuts off.
Note: Because the system islands itself, there's no user input from VRM. If you tried to use Relay 1 as a latching-on relay, it could take up to 50 minutes before the system calls home. You'd then have to choose an auto-shutoff time (again programmed in Node-RED to change the relay state to off).
Summary:
The inverter will always stay on if the batteries are above 75%.
If the batteries are between 51% and 75%, we use solar power as an indicator of sunlight and only run the system during the day.
When the batteries are between 8% and 50%, the system powers on for exactly 10 minutes at the top of each hour. This allows the Starlink to connect and the cameras to upload images to its server. The customer can't see a live feed during this time but he can view the runway's status within that hour.
At 7%, we assume the system won't make it, and our battery-saving plans aren't working. We want to broadcast an SOS until the battery isolates the loads at 5% SOC.
Are there alternative control systems for this scenario? Certainly. This is just one way to do it. If you're already using Victron and have purchased the equipment, this is a way to utilize Node-RED, a feature that's already there. (Note: it took Ryan longer to make the cables for this job than to program it!)
You could accomplish the task with external equipment but it would be more complex - more things to go wrong and not remotely accessible. Because we have Node-RED accessible through the VRM platform, we can make changes to the program remotely if we identify an issue.
Is the system sized for winter? We're not sure, but we have all the tools and data to find out, and the customer can add solar or battery capacity in spring. Adding a few more solar modules and battery capacity would help, but no matter the system's size, we still want the system to be intelligent.
If you're uncomfortable with programming or want advice on achieving your desired functionality, get in touch with our design team.
We look forward to learning about your latest challenge and finding the best solution together.