Skip to content

Commit 3581f54

Browse files
authored
fix: add disable-releaser: true to autolabeler job (#420)
* Initial plan * Add pv_current formula metric for MPPT PV current The /Pv/x/I topics are deprecated in Venus OS. Add a derived formula metric that calculates PV current as I = P / V for: - Solarcharger total PV current (Yield/Power / Pv/V) - Solarcharger per-tracker current (Pv/{tracker}/P / Pv/{tracker}/V) - Multi RS Solar per-MPPT current (Pv/{n}/P / Pv/{n}/V) * fix: add disable-releaser: true to autolabeler job to fix permission error --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
1 parent 1582ab3 commit 3581f54

3 files changed

Lines changed: 64 additions & 1 deletion

File tree

.github/workflows/release-drafter.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,5 +243,7 @@ jobs:
243243
runs-on: ubuntu-latest
244244
steps:
245245
- uses: release-drafter/release-drafter@v7
246+
with:
247+
disable-releaser: true
246248
env:
247249
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

custom_components/victron_mqtt/_vendor/victron_mqtt/_victron_formulas.py

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,15 @@
44

55
from typing import TYPE_CHECKING
66

7-
from ._victron_enums import ChargeSchedule, ESSModeHub4, ESSState, ESSUserMode, GenericOnOff, PreferRenewableEnergyEnum
7+
from ._victron_enums import (
8+
ChargeSchedule,
9+
ESSModeHub4,
10+
ESSState,
11+
ESSUserMode,
12+
GenericOnOff,
13+
PreferRenewableEnergyEnum,
14+
)
15+
from .constants import MetricType
816
from .data_classes import GpsLocation
917
from .formula_common import left_riemann_sum_internal
1018
from .writable_metric import WritableMetric
@@ -259,3 +267,29 @@ def prefer_renewable_energy_set(
259267
metric.set(PreferRenewableEnergyEnum.FULL_CHARGE_ACTIVE)
260268

261269
return enabled, None
270+
271+
272+
def pv_current(
273+
depends_on: dict[str, Metric], _transient_state: FormulaTransientState | None
274+
) -> tuple[float, None] | None:
275+
"""Calculate PV current from power and voltage (I = P / V).
276+
277+
Since /Pv/x/I topics are deprecated in Venus OS, this formula derives
278+
PV current by dividing PV power by PV voltage.
279+
"""
280+
power_metric = None
281+
voltage_metric = None
282+
for metric in depends_on.values():
283+
if metric.metric_type == MetricType.POWER:
284+
power_metric = metric
285+
elif metric.metric_type == MetricType.VOLTAGE:
286+
voltage_metric = metric
287+
288+
if power_metric is None or voltage_metric is None:
289+
return None
290+
if power_metric.value is None or voltage_metric.value is None:
291+
return None
292+
if voltage_metric.value == 0:
293+
return None
294+
295+
return power_metric.value / voltage_metric.value, None

custom_components/victron_mqtt/_vendor/victron_mqtt/_victron_topics.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1777,6 +1777,15 @@
17771777
name="MPPT {mpptnumber} PV voltage",
17781778
metric_type=MetricType.VOLTAGE,
17791779
),
1780+
TopicDescriptor(
1781+
topic="$$func/multi/pv_current",
1782+
message_type=MetricKind.SENSOR,
1783+
short_id="multi_mppt_{mpptnumber}_current",
1784+
name="MPPT {mpptnumber} current",
1785+
metric_type=MetricType.CURRENT,
1786+
precision=2,
1787+
depends_on=["multi_mppt_{mpptnumber}_power", "multi_mppt_{mpptnumber}_voltage"],
1788+
),
17801789
TopicDescriptor(
17811790
topic="N/{installation_id}/multi/{device_id}/Relay/0/State",
17821791
message_type=MetricKind.SWITCH,
@@ -2551,6 +2560,15 @@
25512560
name="PV tracker {tracker:solarcharger_tracker_{tracker}_name} voltage",
25522561
metric_type=MetricType.VOLTAGE,
25532562
),
2563+
TopicDescriptor(
2564+
topic="$$func/solarcharger/pv_current",
2565+
message_type=MetricKind.SENSOR,
2566+
short_id="solarcharger_tracker_{tracker}_current",
2567+
name="PV tracker {tracker:solarcharger_tracker_{tracker}_name} current",
2568+
metric_type=MetricType.CURRENT,
2569+
precision=2,
2570+
depends_on=["solarcharger_tracker_{tracker}_power", "solarcharger_tracker_{tracker}_voltage"],
2571+
),
25542572
TopicDescriptor(
25552573
topic="N/{installation_id}/solarcharger/{device_id}/Relay/0/State",
25562574
message_type=MetricKind.SWITCH,
@@ -2583,6 +2601,15 @@
25832601
name="PV yield power",
25842602
metric_type=MetricType.POWER,
25852603
),
2604+
TopicDescriptor(
2605+
topic="$$func/solarcharger/pv_current",
2606+
message_type=MetricKind.SENSOR,
2607+
short_id="solarcharger_pv_current",
2608+
name="PV current",
2609+
metric_type=MetricType.CURRENT,
2610+
precision=2,
2611+
depends_on=["solarcharger_yield_power", "solarcharger_voltage"],
2612+
),
25862613
TopicDescriptor(
25872614
topic="N/{installation_id}/solarcharger/{device_id}/Yield/User",
25882615
message_type=MetricKind.SENSOR,

0 commit comments

Comments
 (0)