UNPKG

@gravypower/node-red-franklinwh

Version:

Node-RED node to control FranklinWH gateway

170 lines (151 loc) 5.95 kB
<script type="text/javascript"> RED.nodes.registerType('franklinwh-set-mode',{ category: 'FranklinWH', color: '#a6bbcf', defaults: { name: {value:""}, server: {type:"franklinwh-config", required:true}, mode: {value:""}, usePayload: {value:true} }, inputs:1, outputs:1, icon: "font-awesome/fa-cog", label: function() { return this.name || "set mode"; }, oneditprepare: function() { const usePayloadInput = $("#node-input-usePayload"); usePayloadInput.on("change", function() { const usePayload = $(this).is(":checked"); $(".node-input-mode-row").toggle(!usePayload); }); // Set initial state const usePayload = usePayloadInput.is(":checked"); $(".node-input-mode-row").toggle(!usePayload); } }); </script> <script type="text/html" data-template-name="franklinwh-set-mode"> <div class="form-row"> <label for="node-input-name"><i class="fa fa-tag"></i> Name</label> <input type="text" id="node-input-name" placeholder="Name"> </div> <div class="form-row"> <label for="node-input-server"><i class="fa fa-globe"></i> Server</label> <input type="text" id="node-input-server"> </div> <div class="form-row"> <label for="node-input-usePayload"><i class="fa fa-random"></i> Use Payload</label> <input type="checkbox" id="node-input-usePayload" style="display:inline-block; width:auto; vertical-align:top;"> <span>&nbsp;Use msg.payload for mode value</span> </div> <div class="form-row node-input-mode-row"> <label for="node-input-mode"><i class="fa fa-cog"></i> Default Mode</label> <select id="node-input-mode" style="width:70%;"> <option value="self">Self-consumption</option> <option value="tou">Time of Use</option> <option value="emer">Emergency Backup</option> </select> </div> </script> <script type="text/html" data-help-name="franklinwh-set-mode"> <p>Sets the operating mode of the FranklinWH system. The operating mode determines how the system manages power flow between solar, battery, grid, and loads.</p> <h3>Properties</h3> <dl class="message-properties"> <dt>Name <span class="property-type">string</span> </dt> <dd>Name of the node</dd> <dt>Server <span class="property-type">config</span> </dt> <dd>FranklinWH server configuration</dd> <dt>Use Payload <span class="property-type">boolean</span> </dt> <dd>If enabled, the mode will be taken from msg.payload. If disabled, the Default Mode will be used.</dd> <dt class="optional">Default Mode <span class="property-type">string</span> </dt> <dd>Operating mode to use when not using payload input.</dd> </dl> <h3>Inputs</h3> <dl class="message-properties"> <dt>payload <span class="property-type">string</span> </dt> <dd> When "Use Payload" is enabled, sets the operating mode. Valid values: <ul> <li><code>self</code> - Self-consumption mode</li> <li><code>tou</code> - Time of Use mode</li> <li><code>emer</code> - Emergency Backup mode</li> </ul> </dd> </dl> <h3>Outputs</h3> <dl class="message-properties"> <dt>payload <span class="property-type">object</span> </dt> <dd> An object containing: <ul> <li><code>mode</code> - The mode that was set</li> <li><code>description</code> - Human-readable description of the mode</li> </ul> </dd> </dl> <h3>Operating Modes</h3> <dl> <dt><strong>Self-consumption</strong> (<code>self</code>)</dt> <dd>Optimizes the use of solar power and minimizes grid consumption. The system prioritizes: <ol> <li>Using solar power for immediate consumption</li> <li>Storing excess solar in the battery</li> <li>Using stored battery power when solar is insufficient</li> <li>Using grid power only when necessary</li> </ol> </dd> <dt><strong>Time of Use</strong> (<code>tou</code>)</dt> <dd>Optimizes energy usage based on time-of-use electricity rates: <ul> <li>Charges battery during off-peak hours</li> <li>Discharges battery during peak rate periods</li> <li>Follows configured TOU schedule</li> </ul> </dd> <dt><strong>Emergency Backup</strong> (<code>emer</code>)</dt> <dd>Prioritizes maintaining battery charge for backup power: <ul> <li>Maintains high battery level</li> <li>Minimizes battery discharge</li> <li>Preserves power for emergencies</li> </ul> </dd> </dl> <h3>Status</h3> <dl> <dt>Grey ring</dt> <dd>Waiting for input (when using payload)</dd> <dt>Blue dot</dt> <dd>Default mode configured</dd> <dt>Yellow dot</dt> <dd>Setting new mode</dd> <dt>Green dot</dt> <dd>Mode successfully set</dd> <dt>Red ring</dt> <dd>Error occurred or missing configuration</dd> </dl> <h3>Example Flow</h3> <pre> [{"id":"n1","type":"inject","payload":"tou"}, {"id":"n2","type":"franklinwh-set-mode"}, {"id":"n3","type":"debug"}] </pre> <h3>References</h3> <ul> <li><a href="https://www.franklinwh.com/support" target="_blank">FranklinWH Documentation</a></li> </ul> </script>