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

Popular posts from this blog

How To Get Precise Time Outside Your Shack

How To Set Up Your Own Remote Station

How to Put Your AllStar Node on 44Net Connect

Why You Might Want To Set Up Your Raspberry Pi Internet Web Server on 44Net

Building a Secure Web Portal on 44Net Without VPN Headaches

A Non-Programmers Guide on How To Use AI to Write Your Own Custom Ham Radio Computer Applications

Why You Should Use SSH Keys Instead of Passwords on Your Raspberry Pi

Internet Remote Software Defined Radio (SDR) Receivers – A Starter Guide

Wifi Network Clock Review: Great Features <$40 With A Security Concern

Automated Server Failover for Remote Stations

Ham RSS News Feeds

Amateur Radio Daily

ARRL News

Zero Retries