Controlling AC gear with Node-RED and a Tapo Smart Plug (without using Matter or Home Assistant)
If you’ve ever needed a reliable and inexpensive way to control AC gear remotely (power supplies, network equipment, etc) here is a simple solution for you. It will give you simple on/off control of a 15A outlet (with status) that integrates cleanly with an existing Node-RED setup.
Recently I needed exactly that for a remote station I was building where I wanted to utilize an old Raspberry Pi 3B I had sitting in a drawer unused. I also wanted:
• A real AC outlet
• Enough current capacity for a piece of radio gear
• Local control (with minimal cloud dependency once set up)
• Something that works on armv7 / 32-bit Pi OS
• No Home Assistant or Matter complexity
Here’s the solution that worked and why it’s a good fit for other hams.
The Hardware: TP-Link Tapo P125M
The TP-Link Tapo P125M is a compact smart plug with a built-in AC outlet that is under $10 per unit. It supports high-current loads, is inexpensive and can be controlled locally over your LAN.
Key points:
• Built-in AC outlet (no external relay wiring)
• Handles typical shack loads (PSUs, many radio power supplies, routers)
• Stable Wi-Fi connectivity
• Already widely used and well supported
Yes, it supports Matter, but here’s the catch…
Why I Didn’t Use Matter or Home Assistant
Matter looks great on paper, but in practice:
• Home Assistant’s Matter Server does not support armv7
• Raspberry Pi 3 users are effectively locked out
• Docker, firewall rules, and container networking add complexity
• All I needed was ON / OFF / STATUS
For a Pi that already runs Node-RED, Matter is simply overkill right now.
So instead, I went with direct local control.
The Approach: Node-RED + Local CLI Script
The architecture is simple:
Node-RED → exec node → local Node.js script → Tapo plug (LAN)
Almost no cloud calls (only needed occasionally for login token updates) .
No polling services.
No Docker containers.
Node-RED triggers a small Node.js CLI script, which logs into the Tapo plug by LAN IP address, performs the action and returns JSON that Node-RED can parse.
How It Works (At a High Level)
1. Tapo mobile app is used once to set up the plug and join your local wifi
2. A Node.js script:
o Logs into the plug using your Tapo credentials
o Talks directly to the device over the LAN
3. Node-RED:
o Calls the script using an exec node
o Parses the returned JSON
o Uses the result in flows, dashboards, or automations
What You Can Do With It
• Power-cycle devices remotely
• Add automatic shutdowns on fault conditions
• Tie power control into solar / battery logic
• Integrate with radio, AllStar or contest station flows
• Use Node-RED dashboards for manual control
Example JSON returned to Node-RED:
{
"ok": true,
"cmd": "status",
"ip": "192.168.1.100",
"device_on": true,
"model": "P125M"
}
Why This Is a Good Fit for Ham Stations
This setup checks a lot of boxes for amateur radio use:
• No GPIO wiring
• No relay boards
• No USB drivers
• Works over Wi-Fi
• Survives reboots cleanly
• Integrates with existing Node-RED telemetry flows
• Easy to troubleshoot from the command line
For remote stations, simplicity is important.
Security Considerations
• Credentials are stored in a protected .env file
• Permissions are locked down (chmod 600)
• No secrets are hard-coded in Node-RED flows
• All communication stays on your LAN
If you’re already comfortable running Node-RED, this won’t introduce new risks.
Why Not Just Use a Smart Plug App?
Because:
• Apps don’t automate
• Apps don’t integrate
• Apps don’t talk to your station logic
Final Thoughts
This isn’t meant to replace purpose-built power controllers like DLI those still have their place and offer a lot more features and flexibility but at a cost.
But if you already run Node-RED on a Raspberry Pi, and you just need local AC power control, this approach works extremely well especially on older Raspberry Pi hardware.
If you’re interested, I’ve posted to Github
• The full Node-RED flow
• The Node.js control script
Remember to experiment carefully when switching high-power gear and make sure to stay under the plug’s 15A rating.
73
Comments
Post a Comment