Connect the systems your team already uses.
Bring supported equipment and vendor data into a shared operating record. Gen318 complements metering, billing and programme platforms, with exports and controlled data access for the next handoff.
Find the connection your workflow needs.
Match your equipment model, account access and required signals to a supported connection path. SparkMeter remains your metering and billing partner; Odyssey remains the programme platform. Equipment control is assessed separately from telemetry access.
Showing all 16 paths
Check credentials and available signals
Partner remains metering and billing source
Mesh topology and per-node readings
Reads on site · does not depend on VRM being reachable
SMA, SolarEdge, Fronius · presets carry each brand's port and unit id
Deye, SunSynk, GoodWe, Solis, Sungrow, SRNE, Felicity · community register maps
Axpert, MPP Solar, Sako, EASUN, PowMr · its own protocol, not Modbus
Deep Sea Electronics, SmartGen HGM · ComAp by per-site export
Victron-profile packs · listen-only, never transmits
Anything else, by register map
Separate actuation gates · off by default
Reviewable programme export · not claim approval
Enablement and scoped access required
Connection finder
Check your equipment.
Every path here is implemented and shipping in this codebase. Each entry names the file that implements it and where its register map came from. Your exact model and firmware are confirmed at commissioning.
24 connection paths · reviewed 19 September 2026
Solar and hybrid inverters
Edge11Read on site, over the inverter's own serial or network port.
SMA Sunny Boy and Sunny TripowerOperationalDetails
- Signals
- As SunSpec above, depending on the models the unit presents.
- What you need
- Enable the Modbus TCP server in the inverter's web interface — it is off by default. Port 502, SunSpec unit ID 126. Sunny Island is not covered: it does not present a SunSpec map.
- Where the mapping comes from
- SunSpec model discovery. The preset carries SMA's port and unit ID so an installer does not have to find them.
SolarEdgeOperationalDetails
- Signals
- As SunSpec above. Battery is not read: SolarEdge storage sits behind proprietary blocks rather than the standard storage model.
- What you need
- Enable Modbus TCP in SetApp. Port 1502, not 502. One client connection only, with a two-minute idle timeout, so no other Modbus client can share the inverter.
- Where the mapping comes from
- SunSpec model discovery, with SolarEdge's port and single-client behaviour handled by the preset.
Fronius GEN24, Symo Hybrid and SnapINverterOperationalDetails
- Signals
- As SunSpec above, including storage on GEN24 hybrids.
- What you need
- Enable Slave as Modbus TCP, port 502. The meter is a separate unit ID: 200 on GEN24, 240 on Datamanager and SnapINverter.
- Where the mapping comes from
- SunSpec model discovery. The installer's float or integer model choice is read from the chain rather than configured.
Deye SG04LP3 and SG01HP3 hybridsOperationalDetails
- Signals
- Inverter output per phase, run state and fault words; PV per MPPT with the array total; battery voltage, current, power, temperature, state of charge and charge limits; grid voltage, frequency, per-phase power and import/export energy; load and generator port where wired.
- What you need
- RS485 on the inverter's Modbus port — not the BMS port. 9600 8N1, slave 1. One inverter binds to four assets, so the site needs inverter, battery, solar array and grid connection defined.
- Where the mapping comes from
- Transcribed from two published open-source projects, every register carrying its source. Sign conventions and the RS485 pinout are confirmed at commissioning. Not yet read on a physical unit.
SunSynk three-phase hybridsOperationalDetails
- Signals
- As Deye: the hardware and register map are the same.
- What you need
- As Deye. The map differs only in the vendor it reports for identity.
- Where the mapping comes from
- Shares the Deye map by explicit inheritance rather than a second copy. No SunSynk unit has been read on a bench either.
GoodWe ET, EH, BT and BH hybridsOperationalDetails
- Signals
- PV per MPPT with the array total; inverter output; grid voltage, frequency, per-phase power and import/export energy; battery voltage, current, power, temperature, state of charge and state of health.
- What you need
- Modbus TCP on the LAN and WiFi dongle, or RS485 direct. Slave address 247 — unit 1 gets no reply from these models, which looks like a dead bus.
- Where the mapping comes from
- Transcribed from a published open-source library, every register sourced. Battery power sign is confirmed at commissioning. Not yet read on a physical unit.
Solis S5, S6-EH1P and RHI hybridsOperationalDetails
- Signals
- PV power and energy; inverter output and temperature; grid frequency and meter voltage, current, power and energy; battery voltage, current, state of charge and state of health.
- What you need
- RS485 direct is the reliable path — some Solis loggers ship with local Modbus TCP switched off. 9600 8N1, input registers rather than holding registers.
- Where the mapping comes from
- Transcribed from a published open-source integration. Battery power is deliberately not read: the source keeps direction in a separate register, so a single value would report a discharging pack as charging. Not yet read on a physical unit.
Sungrow SH hybrids and SG string invertersOperationalDetails
- Signals
- SH: PV per MPPT, phase voltages, grid import and export, battery charge and discharge energy. SG: PV power and energy, inverter output, phase voltages. A string inverter has no battery and the two maps are separate files.
- What you need
- Modbus TCP via the WiNet dongle, enabled in the iSolarCloud app, with the IP whitelist off or the node whitelisted. The dongle needs a minimum firmware and is slow, so requests are paced.
- Where the mapping comes from
- Transcribed from published open-source integrations. Battery power is deliberately not read: the source records that its sign convention changed with a 2024 firmware. Not yet read on a physical unit.
SRNE hybrid invertersOperationalDetails
- Signals
- Battery state of charge, voltage and temperature; PV per tracker with the array total; grid voltage, current and frequency; inverter output voltage, current, frequency and heatsink temperature; load power; today's yield; the active fault code.
- What you need
- RS485 to the inverter, 9600 8N1, slave 1. Single-tracker models reject any read that spans the second tracker's registers, so the second tracker is switched on per site rather than assumed.
- Where the mapping comes from
- Transcribed from SRNE's own protocol document and two published open-source projects, every register carrying its source. Battery current, the lifetime energy counters and both state enumerations are deliberately absent: the sources contradict each other on each one, and the map names the contradiction line by line. SRNE is worth knowing about because it is rarely sold under its own name — a good deal of house-brand and importer-badged stock is this board. Not yet read on a physical unit.
Felicity Solar IVEM hybridsOperationalDetails
- Signals
- Battery voltage, power, temperature, state of charge and state of health; PV voltage, current and power; grid voltage, frequency, current and power; inverter output voltage, current, frequency and temperature; load power.
- What you need
- RS232, not RS485 — the RJ45 socket marked RS232 beside the BMS port, through a straight USB lead or a level shifter. An RS485 converter on that socket reads nothing. The two published sources disagree on baud rate, so the site confirms 9600 or 2400.
- Where the mapping comes from
- Transcribed from two published open-source projects, every register sourced. Two things are absent because they are absent from the hardware: this inverter reports no serial number, model or firmware on the wire, and no energy counter of any kind — so daily and lifetime yield are the platform's, not the device's. Battery current is not read either, because three registers claim the name and the sources disagree on their scale. Not yet read on a physical unit.
Voltronic-core inverters (Axpert family)OperationalDetails
- Signals
- Grid voltage and frequency; inverter output voltage, frequency and power; battery voltage, state of charge and current; PV voltage and power, per tracker on newer units; the run mode and the warning word.
- What you need
- A serial lead to the inverter's RS232 port at 2400 8N1, or a USB lead to the inverter's own socket, which presents as a HID device. Two incompatible protocol generations are in the field and a unit only reveals which it speaks by answering, so the node asks rather than being configured.
- Where the mapping comes from
- The same board is sold as Axpert, MPP Solar, Sako, EASUN, PowMr, Greco and Mecer, among others, so the badge on the box is a poor guide to what is inside. Gen318's own implementation of Voltronic's published command protocol, both generations. This is not Modbus and not a register map. It is read-only by construction: the vendor's setting commands are indistinguishable from its queries on the wire, so only an explicit list of read commands is ever sent. Not yet read on a physical unit.
Genset controllers
Edge3Read on site. Check the model number first — not every variant has a port.
Deep Sea Electronics genset controllersOperationalDetails
- Signals
- Engine state, oil pressure, coolant temperature, fuel level and starting battery voltage; output voltage, frequency and power in watts; run hours, generated kWh and start count.
- What you need
- RS485 to the controller, or Modbus TCP where fitted. Baud and slave vary by installation — 115200 and slave 10 are the documented starting point.
- Where the mapping comes from
- Transcribed from three agreeing public sources including the manufacturer's own protocol document. Unimplemented sensors are reported as absent rather than as a reading, using the controller's own reserved-value convention. Fuel flow is not read: it is not in the protocol and is never derived from load percentage. Not yet read on a physical controller.
ComAp InteliLite and InteliGen controllersOperationalDetails
- Signals
- The same genset measurements as DSE, once the addresses are filled in.
- What you need
- RS485 at 57600 8N1, one object per request. ComAp addresses communication objects rather than fixed registers, so the register table is exported from LiteEdit or InteliConfig for that controller's own configuration and firmware.
- Where the mapping comes from
- A template with the measurements named and the addresses blank. It refuses to poll until they are filled from the site's own export, so a half-finished setup fails loudly rather than reporting nothing. Not yet read on a physical controller.
SmartGen HGM genset controllersOperationalDetails
- Signals
- Engine state across SmartGen's own sixteen states; oil pressure, temperature, fuel level and starting battery voltage; output voltage, frequency and power; run hours, start count, generated kWh, fuel consumed and fuel rate; the mains side of the transfer switch.
- What you need
- RS485 at 9600, eight data bits, no parity and two stop bits. The second stop bit is unusual and is what a silent bus usually turns out to be. Covers the HGM7220 and HGM9510 families.
- Where the mapping comes from
- Transcribed from two of SmartGen's own current protocol documents, which agree on every register read here. Worth checking the model number first: SmartGen's manual states the HGM6110N and HGM6120N have no RS485 port at all, so they cannot be read by anything. The Modbus sibling carries an NC suffix. HGM7110N and HGM7120N are also not covered, because their own document prints no units. Not yet read on a physical controller.
Battery packs
Edge1A listen-only tap on the inverter-to-battery bus. Most sites do not need it.
CAN battery packs (Victron-profile)OperationalDetails
- Signals
- State of charge and health, voltage, current, temperature, charge and discharge limits, and a coarse alarm state.
- What you need
- A CAN interface on the edge node, tapping the inverter-to-battery bus. The node listens and never transmits: the interface must be in listen-only mode before it will open the bus. Most sites do not need this — a hybrid inverter already republishes the pack's readings into its own registers.
- Where the mapping comes from
- The Victron-profile frame set that FreedomWon, Pylontech-class and BYD packs speak. The alarm frame is read coarsely, because published descriptions of it disagree on what individual bits mean. Not yet read on a physical pack.
Gateways and protocols
Edge3No per-brand map needed. If the equipment speaks these, it is covered.
SunSpec-compliant inverters and metersOperationalDetails
- Signals
- Inverter current, voltage, power, frequency and temperature; per-phase detail; meter power, energy in both directions and power factor; battery state of charge where the unit exposes storage; per-string DC current, voltage and power on multi-MPPT units.
- What you need
- Commissioned edge node, Modbus TCP reachable on the local network, and the Modbus server enabled on the inverter — it ships disabled on several brands.
- Where the mapping comes from
- The SunSpec Alliance's own model definitions. Integer and float model variants, meters, basic storage and the multi-MPPT extension are all read; the model chain reports which the unit presents.
Victron GX devices, locallyOperationalDetails
- Signals
- The same system, battery, solar charger and inverter readings VRM shows — read from the device on site rather than from the cloud.
- What you need
- A Cerbo GX or Venus GX reachable on the local network, with Modbus TCP or the local MQTT broker enabled on it.
- Where the mapping comes from
- Victron's published register table for Modbus, or the GX device's own MQTT topics. Useful where the site has no reliable internet: it does not depend on VRM being reachable.
Mapped Modbus equipmentOperationalDetails
- Signals
- Whatever the device's register map exposes, addressed to the right asset; units, scaling and polling are set per site.
- What you need
- Commissioned edge node, local device access, and the model and firmware register documentation.
- Where the mapping comes from
- Site-specific register configuration, or one of the shipped vendor maps below.
Vendor cloud platforms
Cloud6Read from the vendor's API. No box on site, but you need API access.
Victron VRMOperationalDetails
- Signals
- Battery state of charge, voltage, current and power; PV power and daily yield; inverter output and system consumption.
- What you need
- Authorised VRM token and installation ID. Confirm that the installation exposes the signals you need.
- Where the mapping comes from
- VRM system and widget fields
SparkMeterOperationalDetails
- Signals
- Meter energy, power, voltage, current and power factor.
- What you need
- Authorised SparkMeter token, service endpoint and customer code; meter-to-asset mapping.
- Where the mapping comes from
- SparkMeter meter fields
SparkMeter KoiosOperationalDetails
- Signals
- Meter energy, power, voltage, current and power factor; recognised grid-status values.
- What you need
- Authorised API token, grid IDs and meter-to-asset mapping.
- Where the mapping comes from
- Koios meter fields and grid-status vocabulary
Huawei FusionSolarOperationalDetails
- Signals
- Mapped station, inverter, battery and meter readings; availability depends on the equipment and API access.
- What you need
- FusionSolar API account, regional endpoint and station codes. A portal login alone does not establish API access.
- Where the mapping comes from
- FusionSolar KPI fields
Growatt ShineServerOperationalDetails
- Signals
- Mapped inverter output, PV power and battery readings, including state of charge where exposed.
- What you need
- Authorised Growatt API token, service endpoint and plant IDs; verify the device response and mapping.
- Where the mapping comes from
- ShineServer inverter and storage fields
Okra Harvest meshOperationalDetails
- Signals
- Per-node PV power and battery state of charge, plus mesh topology: node count, active node-to-node connections and power shared between them.
- What you need
- Authorised Okra Harvest API access for the deployment.
- Where the mapping comes from
- Okra Harvest node and topology fields. The mesh view is the point — a cluster's health is not visible from any single node.
Every path here reads. Writing to equipment is a separate assessment and is off by default. Share the model, firmware and the measurements you need — never passwords or API tokens. SparkMeter remains the metering and billing platform; Gen318 connects its authorised readings to operational workflows.
Connected isn't done. Coverage still matters.
See which signals arrived, which passed validity checks and which need attention. Source age and expected cadence help explain gaps even when an adapter is connected.
Connection checks.
A gauge alone cannot establish evidence quality.
From a decision to a checked execution path.
For compatible equipment, review the command path, permission and safety checks before enabling physical control. Actuation is off by default; an approved recommendation alone does not establish delivery or equipment response.
Proposed response → operator review → separate execution path → observed result
Check role, proposal and expiry
Check actuation gates and local safety conditions
Retain execution records and subsequent findings
Keep the record through interrupted links.
Commissioned edge nodes buffer readings locally and prioritise critical records when connectivity returns. Size power, storage and retention for the site; remote views remain stale while the link is down.
- Confirm site-specific equipment and register mappings
- Edge compresses and batches before anything leaves the site
- Priority queue drains in order when signal returns
Priority indicates queue order, not guaranteed delivery time. Buffering depends on power, storage and configuration.
Carry authorised evidence into partner workflows.
Use exports for a reporting handoff, scoped read APIs for authorised data access and webhooks for event notifications. Agree the recipient and data scope; API and webhook availability depends on deployment enablement, entitlement and permissions.
Read the developer reference →Bring your equipment list and the workflow you need.
Explore the signals you can connect, the output you need and the setup each path requires.