Energy Nodes
The Energy category is what makes SETI AI a power platform, not just another automation canvas. These 14 gold-themed nodes connect the Node Editor directly to real solar inverters, batteries, meters, chargers and grid services — turning live hardware telemetry into wires you can route into AI agents, conditions and alerts.
Every Energy node calls the same backend dispatcher (/api/energy/<type>), which is also used by the server-side Workflow Engine. That means a flow you prototype live in the browser and a flow deployed to run 24/7 on the server return identical real data — no surprises between testing and production.
The "no fake data" principle
This is the single most important promise of the Energy nodes, and it's enforced in code:
If a node has no real driver wired to your hardware, it returns a clear
driver_pendingstatus — never a fabricated number.
There is no Math.random(), no demo placeholder telemetry, no "looks live but isn't." A node either reads a genuine value from your equipment (Modbus register, VRM cloud cache, vendor API, local gateway) or it tells you honestly that the driver is pending and why — typically a missing API key, an unset IP address, or a driver that hasn't been implemented for your specific brand yet. The node surfaces a short note explaining exactly what to configure.
This matters for an industrial power operator: a dashboard that quietly invents a battery state-of-charge is worse than no dashboard at all. SETI AI would rather show you "pending — set the inverter IP" than a confident lie.
Live vs. driver_pending at a glance
| Node | Status | Backend / data source |
|---|---|---|
solar-inverter |
Live | 6 brand drivers + Victron VRM fallback — see Inverter Drivers |
battery-monitor |
Live | Victron VRM cache |
grid-meter |
Live | Victron VRM cache (net L1+L2+L3) |
powerwall (SETI Power Wall) |
Live | Victron VRM cache |
energy-forecast |
Live | forecast.solar public API (no key) |
energy-cost |
Live | Pure computation (always real) |
load-controller |
Live | Pure logic (always real) |
ups-monitor |
Live | apcupsd NIS protocol, TCP :3551 |
co2-tracker |
Live* | CO2Signal API (*needs free API key) |
ev-charger |
driver_pending |
Wallbox / Easee / JuiceBox / Tesla… (planned) |
utility-rates |
driver_pending |
Opower / Amber / Octopus / Tibber… (needs account) |
water-heater |
driver_pending |
AO Smith / Rheem… (planned) |
demand-response |
driver_pending |
Utility-specific integration |
powerline-quality |
driver_pending |
PQ-meter Modbus map (planned) |
* co2-tracker is fully implemented but returns driver_pending until you supply a free CO2Signal API key.
Node reference
1. Solar Inverter — solar-inverter · Live
The flagship node. Reads live production from your PV inverter and auto-dispatches by brand: the configured brand routes to a dedicated driver (SMA, Sol-Ark, Enphase, SolarEdge, Schneider) or falls back to the Victron VRM cloud cache. Brands without a dedicated driver yet (Growatt, Fronius, Huawei, iMeon, GoodWe) return driver_pending with guidance.
- Outputs: PV power (W), AC power (W), yield today (kWh), lifetime yield (kWh), string voltage, string current, error.
- Config: host/IP, brand, Modbus unit, and cloud credentials (API key, site/plant ID, system ID) as needed per brand.
- Use case: A solar farm operator wires this into a Display widget and a Critic agent to watch real-time production and get flagged when a string underperforms. Full per-brand protocol detail in Inverter Drivers.
2. Battery Monitor — battery-monitor · Live
Reads live pack telemetry from the Victron VRM cache. Returns driver_pending only if the VRM cache hasn't populated yet.
- Outputs: SoC (%), voltage, current, power, cell temperature, time-to-go, plus SoH and cycle-count fields. Chemistry-aware (Supercap, LiFePO₄, Li-ion, Lead-acid, NiMH).
- Use case: An off-grid site monitors its SETI supercap/LiFePO₄ bank and triggers a load-shed when SoC drops below a floor — the core of the Node Editor low-battery worked example.
3. Grid Meter — grid-meter · Live
Reports import/export and net power from the Victron VRM cache, summing all three phases (L1+L2+L3). Net positive = importing, net negative = exporting. Honestly returns driver_pending on a pure off-grid system with no grid feed.
- Outputs: import power, export power, net power, frequency, per-phase voltages (L1/L2/L3), power factor, error.
- Use case: A commercial site tracks grid export to verify net-metering credits and alerts when it unexpectedly starts importing during daylight.
4. SETI Power Wall — powerwall · Live
Whole-site storage view combining battery, solar and load power from the VRM cache, with a configurable backup reserve and operating mode (self-consumption, backup-only, time-of-use, autonomous). Grid power is reported as 0 for the off-grid SETI Power Wall.
- Outputs: site power, battery power, solar power, grid power, reserve (%), current mode, error. Accepts a
set modeinput to switch modes. - Use case: A facilities manager runs the wall in time-of-use mode during peak tariffs and self-consumption otherwise, switching modes from an upstream schedule.
5. Solar Forecast — energy-forecast · Live
Calls the free, public forecast.solar API (no key required) for your exact location and array geometry. Returns a real 24-hour hourly generation curve.
- Outputs: today (kWh), tomorrow (kWh), hourly forecast array, peak hour.
- Config: latitude, longitude, system kWp, azimuth, tilt. (Defaults are Ft. Myers, FL.)
- Use case: A load controller pre-charges the battery the night before a forecast-poor day, or schedules EV charging into the forecast peak-production hour.
6. CO₂ Tracker — co2-tracker · Live (needs key)
Calls the CO2Signal API for real grid carbon intensity in your region. Fully implemented; returns driver_pending with a note until you set a free CO2SIGNAL_KEY.
- Outputs: grid intensity (gCO₂/kWh), renewable %, offset today (kg).
- Config: region (e.g.
US-FL), source. - Use case: An ESG-conscious operator times heavy loads for the greenest grid hours and reports avoided CO₂ in a sustainability dashboard.
7. UPS Monitor — ups-monitor · Live
Speaks the real apcupsd NIS protocol over TCP :3551. Other drivers (NUT, TrippLite, Eaton, CyberPower) return driver_pending until implemented.
- Outputs: status, battery (%), load (%), runtime (min), input voltage, output voltage, error.
- Use case: A control-room UPS feeds a condition node that fires a Discord alert the instant it switches to battery, with estimated runtime remaining.
8. Energy Cost — energy-cost · Live (computed)
Pure math, so it's always real. Multiplies kWh by a $/kWh rate and projects monthly and yearly cost.
- Outputs: cost ($), monthly estimate, yearly estimate. Accepts
kWh usedand$/kWhas inputs (e.g. wired from a meter and a rates node). - Config: currency (USD/EUR/GBP/CAD/AUD).
- Use case: Wire a Grid Meter's consumption into this node to put a live running dollar figure on the dashboard.
9. Load Controller — load-controller · Live (computed)
Pure priority logic, always real. Given an available-power budget and a ranked priority list, it decides which circuits to keep and which to shed.
- Outputs: action, loads shed, loads kept, total shed (W), error.
- Config: priority list (e.g.
critical,medical,refrigerator,lights,hvac,ev,pool), budget (W). It notes that wiring per-circuit meters populates live loads. - Use case: During a grid outage on battery, automatically drop the pool pump and HVAC to protect medical and refrigeration circuits.
10. EV Charger — ev-charger · driver_pending
Node and outputs are defined; the driver isn't implemented yet, so it honestly returns pending.
- Outputs (planned): state, power (W), session kWh, session cost. Accepts a
start/stopcommand input. - Config: brand (Wallbox, Blue Current, Easee, JuiceBox, ChargePoint, Tesla, Enphase, OpenEVSE), host, rate.
- Use case (planned): Charge the car only from surplus solar by gating the charger on the Solar Forecast and live PV output.
11. Utility Rates — utility-rates · driver_pending
Defined for 20+ providers (Opower, Amber, Octopus, Tibber, EnergyZero, and many US utilities). Returns driver_pending because these APIs require your account credentials.
- Outputs (planned): current $/kWh, rate tier, 24h rate curve, next peak.
- Use case (planned): Shift discretionary loads off real-time peak pricing automatically.
12. Water Heater — water-heater · driver_pending
Defined for AO Smith, Rheem, AquaCell, OSO; driver not yet implemented.
- Outputs (planned): tank temp (°F), power (W), mode, heating. Accepts a
set °Fsetpoint input. - Use case (planned): Treat the tank as thermal storage — heat on solar surplus, coast through peak tariff.
13. Demand Response — demand-response · driver_pending
Defined per utility (e.g. FPL enrollment); requires a utility-specific integration.
- Outputs (planned): DR event active, target kW, duration (min), reward ($).
- Use case (planned): Auto-curtail load during a paid demand-response event and log the reward.
14. Power Quality — powerline-quality · driver_pending
Defined with a PQ-meter Modbus endpoint; the register map isn't implemented yet.
- Outputs (planned): THD (%), sag count, swell count, flicker (Pst), PQ score.
- Use case (planned): Catch voltage sags/swells that damage sensitive equipment and correlate them with inverter behavior.
How the data gets in
| Mechanism | Nodes using it |
|---|---|
| Victron VRM cloud cache (live snapshot injected at startup) | battery-monitor, grid-meter, powerwall, and the default solar-inverter path |
| Direct Modbus TCP | solar-inverter (Sol-Ark :8899, Schneider :502) — see Inverter Drivers |
| Vendor cloud / local gateway APIs | solar-inverter (SMA, Enphase, SolarEdge, Schneider) |
| Public free APIs | energy-forecast (forecast.solar), co2-tracker (CO2Signal) |
| Native device protocols | ups-monitor (apcupsd NIS) |
| Pure computation | energy-cost, load-controller |
When a driver_pending node returns, its payload includes a human-readable note telling you precisely what to set — an IP, an API key, a site ID — so configuration is self-documenting right on the canvas.
Putting them to work
Energy nodes are just nodes — wire them into the rest of the Node Editor:
- Battery Monitor → If/Condition → Webhook Out for a low-SoC alert.
- Solar Forecast → Load Controller → EV Charger to schedule charging into peak production.
- Grid Meter → Energy Cost → Display for a live running cost ticker.
- Solar Inverter + Battery Monitor → SETI Agent to have an AI co-worker reason over the whole power picture and recommend or take action.
Build and test live in the browser, then deploy oneshot or on a cron schedule with the Workflow Engine so your power automations run 24/7 on the server with the exact same real data.
Related pages
- Node Editor — the visual canvas these nodes live on
- Inverter Drivers — the 6 supported inverter brands and their protocols
- Workflow Engine — running energy workflows server-side, 24/7