UNPKG

@iseeberg79/battery-usage-optimization-nodes

Version:
115 lines (113 loc) 4.81 kB
<script type="text/javascript"> RED.nodes.registerType('@iseeberg79/EstimateBatterymode', { category: 'function', color: '#a6bbcf', defaults: { name: { value: "" }, batteryBuffer: { value: 5, validate: RED.validators.number() }, batteryCapacity: { value: 10, validate: RED.validators.number() }, maxCharge: { value: 5, validate: RED.validators.number() }, feedin: { value: 0.079, validate: RED.validators.number() }, efficiency: { value: 80, validate: RED.validators.number() }, performance: { value: 20, validate: RED.validators.number() } }, inputs: 1, outputs: 1, icon: "file.png", label: function() { return this.name || "Estimate Battery Mode"; } }); </script> <script type="text/x-red" data-template-name="@iseeberg79/EstimateBatterymode"> <div class="form-row"> <label for="node-input-name">Name</label> <input type="text" id="node-input-name" placeholder="Name" class="input-typed"/> </div> <div class="form-row"> <label for="node-input-batteryBuffer">Battery Buffer (%)</label> <input type="text" id="node-input-batteryBuffer" placeholder="5" class="input-typed"/> </div> <div class="form-row"> <label for="node-input-batteryCapacity">Battery Capacity (kWh)</label> <input type="text" id="node-input-batteryCapacity" placeholder="10" class="input-typed"/> </div> <div class="form-row"> <label for="node-input-maxCharge">Max Charge (kWh)</label> <input type="text" id="node-input-maxCharge" placeholder="5" class="input-typed"/> </div> <div class="form-row"> <label for="node-input-feedin">Feed-in Tariff (€)</label> <input type="text" id="node-input-feedin" placeholder="0.079" class="input-typed"/> </div> <div class="form-row"> <label for="node-input-efficiency">Efficiency (%)</label> <input type="text" id="node-input-efficiency" placeholder="80" class="input-typed"/> </div> <div class="form-row"> <label for="node-input-performance">Performance (%)</label> <input type="text" id="node-input-performance" placeholder="20" class="input-typed"/> </div> </script> <script type="text/x-red" data-help-name="@iseeberg79/EstimateBatterymode"> <p>Dieser Node ermöglicht die Schätzung des Batteriemodus basierend auf den aktuellen Preis- und Prognosedaten.</p> <p><b>Inputs:</b></p> <ul> <li><b>Battery Buffer (%):</b> - der Mindest-SoC der Hausbatterie</li> <li><b>Battery Capacity (kWh):</b> - die Gesamtkapazität der Batterie</li> <li><b>Max Charge (kWh):</b> - die maximale Ladeleistung</li> <li><b>Feed-in Tariff (€):</b> - Einspeisevergütung</li> <li><b>Efficiency (%):</b> - Wirkungsgrad der Batterie</li> <li><b>Performance (%):</b> - Preisvorteil</li> <li><b>lastGridchargePrice (€):</b> - letzter Preis für Netzladung, optional</li> <li><b>charge (bool):</b> - Netzladung erlaubt, optional</li> <li><b>msg.payload.priceData</b> - Array mit stündlichen Strompreisen (Import/Export)</li> <li><b>msg.payload.productionForecast</b> - Prognose der PV-Erzeugung</li> <li><b>msg.payload.consumptionForecast</b> - Prognose des Haushaltsverbrauchs</li> <li><b>msg.payload.soc</b> - aktueller Ladestand der Batterie</li> </ul> <p><b>Beispiel für eine Preis- und Prognosenachricht:</b></p> <pre> { "priceData": [ {"start": "2025-02-15T00:00:00+01:00", "importPrice": 0.3123, "exportPrice": 0.079}, {"start": "2025-02-15T12:00:00+01:00", "importPrice": 0.2851, "exportPrice": 0.079}, {"start": "2025-02-15T18:00:00+01:00", "importPrice": 0.3592, "exportPrice": 0.079} ], "productionForecast": [ {"start": "2025-02-15T08:00:00.000Z", "value": 0.1811}, {"start": "2025-02-15T12:00:00.000Z", "value": 5.087} ], "consumptionForecast": [ {"start": "2025-02-15T06:00:00.000Z", "value": 1}, {"start": "2025-02-15T18:00:00.000Z", "value": 1} ], "soc": 5 } </pre> <p><b>Outputs:</b></p> <ul> <li><b>msg.payload.batteryModes</b> - ein Array der erwarteten Energieverteilung (Attribute: start, mode)</li> <li><b>msg.payload.stats</b> - Statistiken</li> </ul> </script>