Module #4 of the MMM-FroniusSolar
-family (see below)
The MMM-FroniusSolar4
module is designed for the MagicMirror² platform to visualize solar energy data from a Fronius solar system and additional Shelly devices. It provides real-time visualization of energy flows and intuitive gauges for a comprehensive overview.
- Dynamic Gauges: Displays real-time data for:
P_Akku
(Battery Power)P_Grid
(Grid Power)P_Load
(House Load)P_PV
(Solar Panel Power)P_Shelly
(Shelly PV Power)
- Shelly Integration: Fetches and visualizes power data from Shelly devices (See MMM-ShellyPV for API instructions).
- Text Messages: Provides contextual messages based on power grid usage.
- Configurable Layout: Allows customization of radius, max power, and other gauge properties.
- Clone the repository into your MagicMirror/modules directory:
cd ~/MagicMirror/modules
git clone https://github.com/ChrisF1976/MMM-FroniusSolar4.git
- Install dependencies:
cd MMM-FroniusSolar4
npm install
Add the module to the config.js
file:
{
module: "MMM-FroniusSolar4",
position: "bottom_right",
header: "MMM-FroniusSolar4",
config: {
updateInterval: 5*1000, // Update Fronius Data every 5 seconds
updateIntervalShelly: 30*1000, // Update Shelly Date every 30 seconds - keep a little higher to reduce API calls
shellysPV: [
{ name: "PV Mini1", id: "xxxxxx" },
{ name: "PV Mini2", id: "xxxxxx" },
// Add more devices if necessary
],
icons: {
P_Akku: "mdi:car-battery",
P_Grid: "mdi:transmission-tower",
P_Load: "mdi:home-lightbulb",
P_PV: "mdi:solar-panel-large"
P_Shelly: "mdi:solar-panel-large",
},
Radius: 120, // Radius for the SVG gauge
MaxPower: 4000, // Maximum power for Grid scaling
MaxPowerPV: 10400, // Maximum power for PV scaling
MaxPowerShelly: 600, // Maximum power for shelly PV scaling
ShowText: true,
TextMessge: [
{ about: "600", Text: "Leicht erhöhter Netzbezug.", color: "#999" },
{ about: "1000", Text: "Über 1 KW Netzbezug!", color: "#ffffff" },
{ about: "1500", Text: "Über 1,5KW Netzbezug.", color: "#eea205" },
{ about: "2500", Text: "Über 2,5KW aus dem Netz!", color: "#ec7c25" },
{ about: "5000", Text: "Auto lädt, richtig? Nächstes Mal auf Sonne warten.", color: "#cc0605" },
{ less: "-500", Text: "Sonne scheint! Mehr als 500W frei.", color: "#f8f32b" },
{ less: "-2000", Text: "Wäsche waschen! Über 2KW freie Energie!", color: "#00bb2d" },
{ less: "-4000", Text: "Auto laden! Über 4KW freie Energie!", color: "#f80000" },
],
},
},
Option | Default | Description |
---|---|---|
InverterIP |
"192.168.178.134" |
IP address of the Fronius inverter to fetch solar energy data. |
serverUriShelly |
"https://shelly-55-eu.shelly.cloud" |
URI for Shelly Cloud API to fetch additional PV system data. See MMM-ShellyPV for instructions |
authKey |
"<your-shelly-auth-key>" |
Authentication key for accessing the Shelly API. |
updateInterval |
5*1000 (5 sec) |
Time interval (in milliseconds) between data updates from the Fronius system. |
updateIntervalShelly |
30*1000 (30 sec) |
Time interval (in milliseconds) between data updates from Shelly devices. |
shellysPV |
[] |
Array of Shelly devices with name and id for monitoring additional PV systems. |
icons |
N/A | Define custom icons for power flow elements using Iconify. |
Radius |
80 |
Radius of the SVG gauges (in pixels). |
MaxPower |
1000 |
Maximum power value for scaling P_Grid and P_Load gauges. |
MaxPowerPV |
10400 |
Maximum power value for scaling P_PV (solar panel power). |
MaxPowerShelly |
600 |
Maximum power value for scaling P_Shelly (Shelly PV power). |
ShowText |
true |
Enable or disable dynamic text messages below the gauges. |
TextMessge |
[] |
Array of objects defining conditional text messages based on P_Grid values. |
Key | Description |
---|---|
about |
Display the message when P_Grid exceeds this value. |
less |
Display the message when P_Grid is below this value. |
Text |
The message to display. |
color |
Color of the message text (hex or CSS color names). |
- Fetches real-time data from the Fronius system and Shelly API using the
node_helper.js
backend.
- Gauges are created using SVG, displaying current values and percentages.
- Displays context-sensitive messages based on
P_Grid
values.
Custom styles can be adjusted in the MMM-FroniusSolar4.css
file.
Condition | Color | Description |
---|---|---|
P_Akku - 100 > abs(P_Grid) |
#a3c49f |
Light green: High battery activity is contributing significantly to the house's energy consumption. |
P_Grid > 150 |
#808080 |
Gray: High grid consumption is being used to power the house. |
outerPower > 0 |
#00ff00 |
Green: Positive power flow (house is self-sufficient or partially consuming generated energy). |
outerPower < 0 |
#add8e6 |
Light blue: Energy is being exported to the grid (surplus power). |
- MagicMirror²
- Fronius Symo GEN24 with activated SolarApi.
- Shelly device for PV power measuring
All 4 modules, MMM-FroniusSolar, MMM-FroniusSolar2, MMM-FroniusSolar3 and MMM-FroniusSolar4 are designed to display solar energy data. They share several configurations and CSS properties:
- Configuration Settings: Each module displays metrics such as
P_Akku
,P_Grid
,P_Load
, andP_PV
using configurable icons and messages. - Dynamic SVG Gauges: All modules include gauges to represent power flow visually.
- Text Messages: Each module uses conditional text messages based on
P_Grid
values.
- MMM-FroniusSolar: Simpler functionality with standard gauge rendering.
- MMM-FroniusSolar2: Adds animation, making it visually engaging for displaying dynamic power changes.
- MMM-FroniusSolar3: Focuses on adaptability with dynamic sizing and layout adjustments.
- MMM-FroniusSolar4: Adds a visualisation for an additional mini PV using the ShellyAPI.
This module is distributed under the MIT License. See LICENSE for more details.