Skip to content

BL0937: Add voltage/current spike filter command (e.g. VCPSpikeFilter) #2128

Description

@cristianforgiarini

Problem

BL0937-based plugs report occasional large voltage spikes (300–500V) that are
clearly false readings caused by electrical transients when the relay switches.
The actual grid voltage is stable at ~234V.

This has been confirmed by comparing the same BK7238 hardware flashed with
OpenBeken vs ESPHome — ESPHome shows clean readings (230–242V), OpenBeken
shows periodic spikes up to 500V.

What exists today

  • VCPPublishThreshold reduces MQTT noise but does NOT filter spikes — a 400V
    spike still gets published since it exceeds the threshold.
  • PowerSave 0 is already set, no improvement.
  • Flag 25/26 are unrelated.

In an Elektroda forum post (topic3964717, post #20495199) the project author
mentioned "we have a setting to skip large power spikes, it's in the command
docs" — but this command does not appear in the current commands.md or
commands-extended.md.

Request

Add a command like VCPSpikeFilter <maxVoltage> <maxCurrent> <maxPower> that
discards any reading exceeding the specified threshold before publishing or
storing. Values above the threshold would be silently ignored (keeping the
last valid reading).

Example: VCPSpikeFilter 280 16 3600 would discard any voltage reading above
280V on a 230V grid.

Environment

  • Chip: BK7238
  • Firmware: OpenBeken 1.18.288
  • Energy chip: BL0937

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions