External integration - Beem Energy

:sun: Beem Energy (external integration) — v1.0.0 presentation

Hello everyone :waving_hand:

I present to you a new external integration for Gladys: Beem Energy, to monitor your Beem solar kits (BeemBox for 300 W kits, Beem On for 500 W kits). This topic will then be used to announce new features and gather your feedback.

:puzzle_piece: What is it?

A Gladys external integration that runs in its own container, installed from the integrations catalog (Energy section) and reports the production of all the boxes in your Beem account, via the Beem cloud (the boxes do not have local access).

:sparkles: What is supported

  • Each box becomes a Gladys device, with:
    • solar power in real-time (W);
    • a production index (kWh), to be linked to Gladys’ Energy Tracking to see your production every half-hour alongside your consumption;
    • daily production (kWh);
    • the Wi-Fi signal (%).
  • All boxes in a single request, every 2 minutes by default.
  • At night, a box in standby shows 0 W, and not its last power.
  • Nothing is lost at midnight, at the end of the month or during a Gladys shutdown: the index is recalculated from the monthly totals in the cloud.
  • Monthly history retrieved at startup (24 months by default), for the year, the total and the payback period.
  • Protection against the Beem API limit: the token is kept for one hour, and after a refusal (429), the integration waits 20 minutes instead of insisting.

:bar_chart: 4 Dashboard Widgets

In a dashboard: Edit → Add a box → Integration widgets.

  • :sun: Beem Box: one box, with its daily curve, its share of peak power, the day, the month, the yield in kWh/kWc (comparable between a 300 W kit and a 500 W kit), Wi-Fi, the time of the last reading and the panels.
  • :house: Solar Installation: the entire installation, single-phase or three-phase. In three-phase, you assign the boxes of each phase (L1, L2, L3) and get a curve per phase, a line per phase, the phase balance and the underperforming boxes.
  • :euro_banknote: Solar Savings (estimate): daily, monthly, yearly and total savings. With the cost of your kits, it also displays the gauge and the payback date, plus the CO₂ avoided and the savings of the last 12 months.
  • :chart_increasing: Production History: bars over 30 days or 12/24 months, records, comparison with last year, ranking of the boxes.

:euro_banknote: How Savings Work?

A plug-and-play kit does not have a network meter: the estimate is based on your rate, entered in the Configuration tab.

  • Rate: Base or Peak/Off-Peak. In Peak/Off-Peak, the price of the solar kWh is weighted by the hours when your panels actually produce.
  • Self-consumption rate: 100% by default.
  • Selling the surplus: optional, if you have a contract.
  • Installation cost: for the payback period.

:clapper_board: Scenes

  • Trigger Box Underperforming: a box is silent for 30 minutes while the others are producing, or it is producing much less than them. It triggers once per box and per day, practical for detecting a micro-inverter cut off or lost Wi-Fi.
  • Trigger Daily Production Summary: triggers once the solar day is over, with the day’s kWh, savings, CO₂ and the best box. Ideal for an evening message: « :sun: 12.3 kWh today, €2.45 saved ».
  • Action Read Solar Production: power, day, month, year, share of peak power and savings, from one box or the entire installation. For example, to start the dishwasher when the sun is shining.

:rocket: Installation

  1. In Gladys: Integrations → search for Beem → Install.
  2. Configuration tab: the email and password of the Beem app, then Save. The Test Connection button lists your boxes.
  3. Your boxes appear in the Discovery tab: create them.
  4. Optional: enter your rate for savings, and link the production index of each box in Integrations → Energy Tracking.

The complete documentation is accessible from the “Documentation” link on the configuration screen.

:warning: Prerequisites

  • Gladys ≥ 5.1.0.
  • A Beem account with your boxes visible in the app.

:light_bulb: Good to Know

  • Avoid connecting the same Beem account to multiple tools at the same time (Home Assistant, scripts…): the Beem cloud blocks accounts that are too insistent.
  • The day-by-day history accumulates from the installation of the integration. The Beem cloud only provides the month-by-month history.

:test_tube: Feedback Welcome

The Beem API is not public: thanks to the Home Assistant integration CharlesP44/Beem_Energy which documented its exchanges. For my part, I test it on 6 boxes: 3 BeemBox (3 × 300 W) and 3 Beem On (2 × 500 W), one of each per phase.

  • Are the values consistent with the Beem app?
  • If a value seems incorrect to you, the Diagnose Boxes button in the Configuration tab displays what the cloud reports (without email, password or token): paste it here or in an issue.

Repository and release notes: Releases · Terdious/gladys-beem-energy · GitHub



:new_button: Update: v1.1.0 — a more talkative Box widget

Thanks for the first feedback! This version mainly improves the Beem Box widget, to more easily spot a box that produces less than the others or is dropping.

:chart_decreasing: Outages today

  • New Outages today line: the number of times the box produced nothing for at least 5 minutes while the other boxes were producing, with the time of the last one (e.g. 3 · last 09:12, in orange).
  • Ideal for diagnosing a box that connects and disconnects (weak Wi-Fi, capricious micro-inverter).

:chart_increasing: Daily curve + « Expected » curve

  • The power curve is smoothed (averages over 5 minutes): no more sawtooth effect due to the 30 W steps of the Beem cloud.
  • A second Expected curve shows what the box would produce if it yielded as much as the other boxes, at equal size (per kWc). A box below its neighbors is immediately visible.

:balance_scale: Compared to other boxes

  • New line always displayed: the day’s yield of the box as a % of the median of the boxes (e.g. 98 % of the median), or the « silent » / « low yield » alert.

:sparkles: And also

  • Panel orientation in plain sight: SE -30° · ∠30° instead of -30° / 30°.
  • The total indicates since when it counts (e.g. « Since Jan. 2025 »), and « Yesterday » only appears once known.
  • The peak power gauge is no longer orange regardless of its value.
  • Installation, Savings, and History widgets: no more duplicate title under the card title. It only appears if you give one in the widget settings.

:counterclockwise_arrows_button: To enjoy it

Supervision → Update, nothing else to do: the widgets update themselves. Outages are counted from the update.

Full notes: Release v1.1.0 · Terdious/gladys-beem-energy · GitHub