Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 20 additions & 16 deletions catalog/inverter_models/models/anenji_ges48120m250_500p.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,36 +4,40 @@
"manufacturer": "Anenji",
"model": "GES48120M250-500P",
"aliases": ["Anenji white 12kW split-phase"],
"lifecycle": "research",
"lifecycle": "experimental",
"variants": [
{
"variant_key": "sumry_ges_7530_unqualified_identity",
"label": "0x7530 telemetry observed; automatic identity not qualified",
"device_descriptor_keys": [],
"known_firmware": []
"variant_key": "sumry_ges_7530",
"label": "Sumry/GES 0x7530 map, model 45 / class 10 / protocol 220",
"device_descriptor_keys": ["anenji_ges48120m250_500p"],
"known_firmware": ["protocol raw 220 (0x00DC at 0xC768)"]
}
],
"validation": {"hardware": "captured", "telemetry": "partial", "controls": "none"},
"validation": {
"hardware": "captured",
"telemetry": "partial",
"controls": "none"
},
"coverage": {
"runtime_control_surface": "none",
"smartess_control_surface": "unknown",
"vendor_register_map": "partial",
"notes": [
"CRC-valid owner FC03 replies corroborate battery and phase-A output/mains voltage, current and frequency locations in the community-hosted V2.6.3 PDF.",
"A small read-only schema is retained for offline replay only; no runtime descriptor, detection action or model-selection bypass enables it.",
"The owner's fork reports screen agreement, but voltage/SOC plausibility is not family identity. Model/class registers 0xC738/0xC739 have not been captured."
"Runtime binding requires three exact FC03 identity anchors on holding registers 0xC738-0xC739 and 0xC768: model code 45, product class 10, protocol version raw 220.",
"The bound read-only surface exposes nine phase-A and battery measurements from 0x7530, 0x7548 and 0x756A only; no derived power totals or write profile.",
"CRC-valid owner captures corroborate battery and phase-A output/mains voltage, current and frequency in the community-hosted V2.6.3 PDF."
]
},
"known_limitations": [
"Automatic detection remains unsupported pending a qualified model/class fingerprint; the PDF gives no GES-specific model-code value.",
"Split-phase second-leg, active-power direction, CT and temperature-location semantics are not qualified by the available raw evidence.",
"No derived power totals, inferred watts from AC voltage/current, controls or write profiles are exposed.",
"The protocol PDF is community-hosted, not independently authenticated supplier documentation."
"Split-phase second leg, PV, CT-only grid semantics, temperatures and active-power registers are not part of this read-only subset.",
"Product class 10 is required for this entry; other PDF enum values must not select this descriptor.",
"The protocol PDF is community-hosted, not independently authenticated supplier documentation.",
"No controls or write profiles are exposed."
],
"knowledge_summary": "Issue #49 establishes an Anenji GES48120M250-500P answering the Sumry/GES-style 0x7530 holding-register map, not the low-address SMG map. Battery and phase-A telemetry have a source-backed offline decoder. The public fork is useful corroboration, not a safe automatic binding: immutable model/class values and split-phase semantics remain unresolved. This research record does not claim runtime support.",
"knowledge_summary": "Anenji GES48120M250-500P answers the Sumry/GES-style high-address holding map at 0x7530, not the low-address SMG map. Owner FC03 captures establish model 45, product class 10 and protocol 220 together with corroborated battery and phase-A telemetry. The integration exposes a small read-only runtime surface gated on all three identity anchors.",
"source_keys": [
"issue_49_ges_7530_read_evidence",
"community_ges_modbus_v263",
"issue_49_txau_fork_a4125af"
"issue_49_ges_identity_capture",
"community_ges_modbus_v263"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
"reference": "project-issue:49; project-comment:5881202245; project-comment:5881411950",
"captured_at": "2026-10-02",
"visibility": "public",
"summary": "Owner identifies the white 12kW split-phase unit as GES48120M250-500P. Raw slave-1 FC03 replies at 0x7530, 0x7548 and 0x756A pass CRC and length checks. Battery voltage 51.5 V, SOC 65%, phase-A output 122.9 V and mains 122.7 V agree with the community protocol. No 0xC738/0xC739 model/class response is supplied; successful telemetry alone does not qualify automatic binding.",
"summary": "Owner identifies the white 12kW split-phase unit as GES48120M250-500P. Raw slave-1 FC03 replies at 0x7530, 0x7548 and 0x756A pass CRC and length checks. Battery voltage 51.5 V, SOC 65%, phase-A output 122.9 V and mains 122.7 V agree with the community protocol. Identity registers 0xC738/0xC739 and 0xC768 are captured separately in issue_49_ges_identity_capture.",
"assertions": ["commercial_identity", "register_map", "telemetry_validation"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"schema_version": 1,
"source_key": "issue_49_ges_identity_capture",
"kind": "github_comment",
"title": "Issue #49 GES48120M250-500P FC03 identity registers",
"reference": "project-issue:49; owner-modbus-capture:2026-10-02",
"captured_at": "2026-10-02",
"visibility": "public",
"summary": "Owner slave-1 FC03 reads at 0xC738 (2 words) and 0xC768 (1 word) pass CRC checks. Model code 45 (0x002D), product class 10 (0x000A), protocol version raw 220 (0x00DC). Together with the existing 0x7530 telemetry captures these anchors qualify automatic read-only binding for this unit.",
"assertions": ["register_map", "fingerprint", "telemetry_validation"]
}
Original file line number Diff line number Diff line change
Expand Up @@ -930,6 +930,46 @@
{"key": "identity.hopewind_switch", "source_key": "hopewind_switch", "register": 40546},
{"key": "identity.hopewind_state", "source_key": "hopewind_state", "register": 40547}
]
},
{
"key": "modbus_catalog.sumry_ges_identity_model_class",
"kind": "modbus_read",
"register": 51000,
"count": 2,
"function": 3,
"cost": 1,
"optional": true,
"evidence_fields": [
{
"key": "identity.sumry_ges_model_code",
"source_key": "sumry_ges_model_code",
"register": 51000,
"words": 1
},
{
"key": "identity.sumry_ges_product_class",
"source_key": "sumry_ges_product_class",
"register": 51001,
"words": 1
}
]
},
{
"key": "modbus_catalog.sumry_ges_identity_protocol",
"kind": "modbus_read",
"register": 51048,
"count": 1,
"function": 3,
"cost": 1,
"optional": true,
"evidence_fields": [
{
"key": "identity.sumry_ges_protocol_version",
"source_key": "sumry_ges_protocol_version",
"register": 51048,
"words": 1
}
]
}
],
"layouts": [],
Expand Down Expand Up @@ -1206,6 +1246,33 @@
"Support capture uses protocol_catalogs/command_schemas/eybond_g_ascii/base.json as the schema-driven read-only command probe plan. Captured unknown fields are maintainer evidence only until the schema/driver decoder is explicitly updated."
]
},
"sumry_ges_7530": {
"ranges": [
[
30000,
3
],
[
30024,
3
],
[
30058,
3
],
[
51000,
2
],
[
51048,
1
]
],
"notes": [
"Anenji GES48120M250-500P Sumry/GES map: read-only FC03 telemetry at 0x7530/0x7548/0x756A plus identity holding registers 0xC738-0xC739 (model/class) and 0xC768 (protocol version raw 220). Modbus RTU 9600 8N1, slave 1."
]
},
"aohai_fsa": {
"ranges": [
[
Expand Down Expand Up @@ -1813,6 +1880,17 @@
"default_for_driver": true,
"support_capture_policy": "aohai_fsa"
},
{
"key": "sumry_ges_7530_read_only",
"protocol_key": "modbus_catalog",
"driver_key": "modbus_catalog",
"variant_key": "sumry_ges_7530",
"profile_name": "",
"register_schema_name": "sumry_ges_7530/base.json",
"tier": "partial",
"read_only": true,
"support_capture_policy": "sumry_ges_7530"
},
{
"key": "growatt_spf_untested",
"protocol_key": "modbus_catalog",
Expand Down Expand Up @@ -3123,6 +3201,39 @@
"confidence": "documented-read-only"
}
},
{
"entry_key": "anenji_ges48120m250_500p",
"surface_key": "sumry_ges_7530_read_only",
"model_name": "Anenji GES48120M250-500P (Sumry/GES 0x7530)",
"aliases": [
"Anenji white 12kW split-phase"
],
"priority": 115,
"anchors": [
{
"key": "identity.sumry_ges_model_code",
"equals": 45,
"cost": 1
},
{
"key": "identity.sumry_ges_product_class",
"equals": 10,
"cost": 1
},
{
"key": "identity.sumry_ges_protocol_version",
"equals": 220,
"cost": 1
}
],
"provenance": {
"sources": [
"GitHub issue #49 owner capture: FC03 0xC738/0xC739 model 45 product class 10, 0xC768 protocol 220, and CRC-valid 0x7530 telemetry",
"community Sumry/GES inverter Modbus protocol V2.6.3 (quky PDF)"
],
"confidence": "capture-confirmed-read-only"
}
},
{
"entry_key": "hopewind_0237_family",
"surface_key": "hopewind_0237_untested_controls",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"schema_key": "sumry_ges_7530_evidence_subset",
"title": "Sumry/GES 0x7530 evidence subset (not enabled for detection)",
"title": "Sumry/GES 0x7530 read-only telemetry subset",
"driver_key": "modbus_catalog",
"protocol_family": "sumry_ges_7530",
"blocks": [
Expand Down
28 changes: 16 additions & 12 deletions docs/generated/INVERTER_MODEL_CATALOG.generated.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ This page describes what has been confirmed for a specific inverter model or mod
| Anenji | ANJ-11KW-48V-WIFI / WIFI-P — Anenji ANJ-11KW-48V-WIFI (0x8401) | modbus_smg | fingerprint | full | confirmed | partial | captured |
| Anenji | ANJ-4000W-24V | modbus_smg | fingerprint | full | confirmed | partial | captured |
| Anenji | ANJ-6200-48PL | modbus_smg | fingerprint | full | confirmed | partial | captured |
| Anenji | GES48120M250-500P | modbus_catalog | anchors | partial | partial | none | captured |
| Anenji | HHS-11kW-WIFI (without parallel) | modbus_smg | fingerprint | full | partial | partial | captured |
| Aninerel | 6200 (dual output) | modbus_smg | fingerprint | full | confirmed | partial | captured |
| Aninerel | ANL-4200T-24L-W-PRO | modbus_smg | fingerprint | full | partial | partial | captured |
Expand All @@ -53,7 +54,6 @@ This page describes what has been confirmed for a specific inverter model or mod

| Manufacturer | Model | Protocol | Detection | Runtime Tier | Telemetry | Controls | Hardware |
|---|---|---|---|---|---|---|---|
| Anenji | GES48120M250-500P | ? | ? | ? | partial | none | captured |
| Yingfa | YF6.2K-2K-LEL-IF | ? | ? | ? | unknown | none | reported |

## Family-Level Runtime Coverage
Expand Down Expand Up @@ -189,24 +189,28 @@ Runtime descriptors with no specific commercial model record. These are generic

### Anenji — GES48120M250-500P (`anenji_ges48120m250_500p`)

- Lifecycle: research
- Lifecycle: experimental
- Aliases: Anenji white 12kW split-phase
- Validation: hardware captured, telemetry partial, controls none
- Coverage: runtime none, cloud unknown, vendor map partial
- Coverage notes:
- CRC-valid owner FC03 replies corroborate battery and phase-A output/mains voltage, current and frequency locations in the community-hosted V2.6.3 PDF.
- A small read-only schema is retained for offline replay only; no runtime descriptor, detection action or model-selection bypass enables it.
- The owner's fork reports screen agreement, but voltage/SOC plausibility is not family identity. Model/class registers 0xC738/0xC739 have not been captured.
- Summary: Issue #49 establishes an Anenji GES48120M250-500P answering the Sumry/GES-style 0x7530 holding-register map, not the low-address SMG map. Battery and phase-A telemetry have a source-backed offline decoder. The public fork is useful corroboration, not a safe automatic binding: immutable model/class values and split-phase semantics remain unresolved. This research record does not claim runtime support.
- Runtime binding requires three exact FC03 identity anchors on holding registers 0xC738-0xC739 and 0xC768: model code 45, product class 10, protocol version raw 220.
- The bound read-only surface exposes nine phase-A and battery measurements from 0x7530, 0x7548 and 0x756A only; no derived power totals or write profile.
- CRC-valid owner captures corroborate battery and phase-A output/mains voltage, current and frequency in the community-hosted V2.6.3 PDF.
- Summary: Anenji GES48120M250-500P answers the Sumry/GES-style high-address holding map at 0x7530, not the low-address SMG map. Owner FC03 captures establish model 45, product class 10 and protocol 220 together with corroborated battery and phase-A telemetry. The integration exposes a small read-only runtime surface gated on all three identity anchors.
- Variants:
- `sumry_ges_7530_unqualified_identity` — 0x7530 telemetry observed; automatic identity not qualified
- Descriptors: Unresolved; no runtime mapping claimed
- Known firmware: —
- `sumry_ges_7530` — Sumry/GES 0x7530 map, model 45 / class 10 / protocol 220
- Descriptors: anenji_ges48120m250_500p
- Known firmware: protocol raw 220 (0x00DC at 0xC768)
- `anenji_ges48120m250_500p` → surface `sumry_ges_7530_read_only` (driver modbus_catalog, variant sumry_ges_7530)
- Protocol: modbus_catalog | Detection: anchors (identity.sumry_ges_model_code=45; identity.sumry_ges_product_class=10; identity.sumry_ges_protocol_version=220)
- Tier: partial | Read-only: yes | Profile: — | Schema: sumry_ges_7530/base.json
- Capabilities: no model-specific profile | Telemetry: 9 measurements, 0 binary sensors
- Known limitations:
- Automatic detection remains unsupported pending a qualified model/class fingerprint; the PDF gives no GES-specific model-code value.
- Split-phase second-leg, active-power direction, CT and temperature-location semantics are not qualified by the available raw evidence.
- No derived power totals, inferred watts from AC voltage/current, controls or write profiles are exposed.
- Split-phase second leg, PV, CT-only grid semantics, temperatures and active-power registers are not part of this read-only subset.
- Product class 10 is required for this entry; other PDF enum values must not select this descriptor.
- The protocol PDF is community-hosted, not independently authenticated supplier documentation.
- No controls or write profiles are exposed.
- Evidence: 3 source(s)

### Anenji — HHS-11kW-WIFI (without parallel) (`anenji_hhs_11kw_wifi_no_parallel`)
Expand Down
Loading
Loading