Skip to content

Missing firmware/hardware version fields in pypvs models (regression from dl_cgi) #17

@smcneece

Description

@smcneece

pypvs library currently doesn't provide firmware and hardware version fields for inverters, meters, and ESS devices, causing a data regression compared to the legacy dl_cgi endpoint.

Old Firmware (dl_cgi endpoint) provided:

Inverters:

"hw_version": "4403",
"SWVER": "4.21.4"

Battery devices:

"hw_version": "4.51",
"SWVER": "2.8"

ESS device:

"hw_version": "0",
"SWVER": "0"

Power Meters:

"SWVER": "3000"

pypvs currently provides:

  • PVSInverter model: No firmware/hardware fields
  • PVSESS model: No firmware/hardware fields
  • PVSMeter model: No firmware/hardware fields
  • gateway (PVS device): Has software_version and hardware_version

Impact:

Home Assistant integrations using pypvs now show "Firmware: Unknown Hardware: Unknown" for all inverters, meters, and battery devices, which looks broken to users. This information was available in the old dl_cgi format and should be preserved in the new LocalAPI/pypvs implementation.

Requested Enhancement:

Add firmware/hardware version fields to pypvs models:

@dataclass(slots=True)
class PVSInverter:
    serial_number: str
    model: str
    software_version: str  # NEW
    hardware_version: str  # NEW
    # ... existing fields

Similar additions needed for PVSESS and PVSMeter models.

Varserver Data Source:

The /sys/devices/inverter/, /sys/devices/ess/, and /sys/devices/meter/ varserver endpoints likely contain these fields (similar to how /sys/info provides gateway versions). The from_varserver() methods would need to extract them.

Workaround:

Currently using placeholders ("SWVER": "pypvs", "HWVER": model) to avoid showing "Unknown" in UI, but this loses valuable diagnostic information that was previously available.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions