Back to App

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_pending status — 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 mode input 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 used and $/kWh as 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/stop command 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 °F setpoint 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.