node-red-contrib-power-saver 3.4.2 → 3.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/.vuepress/config.js +8 -2
- package/docs/.vuepress/dist/.nojekyll +0 -0
- package/docs/.vuepress/dist/404.html +4 -4
- package/docs/.vuepress/dist/Ukraine-heart-shape-flag.png +0 -0
- package/docs/.vuepress/dist/assets/js/app.6c6c1409.js +1 -0
- package/docs/.vuepress/dist/changelog/index.html +4 -4
- package/docs/.vuepress/dist/contribute/index.html +4 -4
- package/docs/.vuepress/dist/examples/example-cascade-temperature-control.html +4 -4
- package/docs/.vuepress/dist/examples/example-heat-capacitor.html +4 -4
- package/docs/.vuepress/dist/examples/example-next-schedule-entity.html +4 -4
- package/docs/.vuepress/dist/examples/example-nordpool-current-state.html +4 -4
- package/docs/.vuepress/dist/examples/example-nordpool-events-state.html +4 -4
- package/docs/.vuepress/dist/examples/example-tibber-mqtt.html +4 -4
- package/docs/.vuepress/dist/examples/index.html +4 -4
- package/docs/.vuepress/dist/faq/best-save-viewer.html +4 -4
- package/docs/.vuepress/dist/faq/index.html +4 -4
- package/docs/.vuepress/dist/guide/index.html +4 -4
- package/docs/.vuepress/dist/index.html +4 -4
- package/docs/.vuepress/dist/nodes/index.html +4 -4
- package/docs/.vuepress/dist/nodes/old-power-saver-doc.html +4 -4
- package/docs/.vuepress/dist/nodes/power-saver.html +4 -4
- package/docs/.vuepress/dist/nodes/ps-elvia-add-tariff.html +4 -4
- package/docs/.vuepress/dist/nodes/ps-general-add-tariff.html +4 -4
- package/docs/.vuepress/dist/nodes/ps-receive-price.html +4 -4
- package/docs/.vuepress/dist/nodes/ps-strategy-best-save.html +4 -4
- package/docs/.vuepress/dist/nodes/ps-strategy-heat-capacitor.html +4 -4
- package/docs/.vuepress/dist/nodes/ps-strategy-lowest-price.html +4 -4
- package/docs/.vuepress/dist/nodes/strategy-input.html +4 -4
- package/docs/.vuepress/public/Ukraine-heart-shape-flag.png +0 -0
- package/docs/changelog/README.md +4 -0
- package/package.json +1 -1
- package/src/elvia/elvia-add-tariff.html +7 -1
- package/src/elvia/elvia-config.js +7 -0
- package/src/elvia/elvia-tariff-types.js +0 -6
- package/.firebase/hosting.ZG9jcy8udnVlcHJlc3MvZGlzdA.cache +0 -94
- package/docs/.vuepress/dist/assets/js/app.dfdee6f9.js +0 -1
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
document.documentElement.classList.toggle('dark', true);
|
|
23
23
|
}
|
|
24
24
|
</script>
|
|
25
|
-
<link rel="shortcut icon" type="image/x-icon" href="euro.png"><script async src="https://
|
|
26
|
-
<link rel="preload" href="/assets/js/runtime~app.f6ac32d7.js" as="script"><link rel="preload" href="/assets/css/styles.1c48cbd0.css" as="style"><link rel="preload" href="/assets/js/405.f4edd94d.js" as="script"><link rel="preload" href="/assets/js/app.
|
|
25
|
+
<link rel="shortcut icon" type="image/x-icon" href="euro.png"><script async src="https://www.googletagmanager.com/gtag/js?id=G-Z2QNNCDQZG"></script><script src="window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-Z2QNNCDQZG');"></script><title>ps-strategy-lowest-price | Power Saver</title><meta name="description" content="A Node-RED note to save money on hourly changing power prices">
|
|
26
|
+
<link rel="preload" href="/assets/js/runtime~app.f6ac32d7.js" as="script"><link rel="preload" href="/assets/css/styles.1c48cbd0.css" as="style"><link rel="preload" href="/assets/js/405.f4edd94d.js" as="script"><link rel="preload" href="/assets/js/app.6c6c1409.js" as="script">
|
|
27
27
|
<link rel="stylesheet" href="/assets/css/styles.1c48cbd0.css">
|
|
28
28
|
</head>
|
|
29
29
|
<body>
|
|
30
|
-
<div id="app"><!--[--><div class="theme-container"><!--[--><header ref_key="navbar" class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/" class=""><!----><span class="site-name">Power Saver</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/guide/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><a href="/nodes/" class="router-link-active" aria-label="Nodes"><!--[--><!--]--> Nodes <!--[--><!--]--></a></div><div class="navbar-item"><a href="/examples/" class="" aria-label="Examples"><!--[--><!--]--> Examples <!--[--><!--]--></a></div><div class="navbar-item"><a href="/faq/" class="" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a></div><div class="navbar-item"><a href="/contribute/" class="" aria-label="Contribute"><!--[--><!--]--> Contribute <!--[--><!--]--></a></div><div class="navbar-item"><a href="/changelog/" class="" aria-label="Changes"><!--[--><!--]--> Changes <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="https://github.com/ottopaulsen/node-red-contrib-power-saver" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-dark-button" title="toggle dark mode"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><!----></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><a href="/guide/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><a href="/nodes/" class="router-link-active" aria-label="Nodes"><!--[--><!--]--> Nodes <!--[--><!--]--></a></div><div class="navbar-item"><a href="/examples/" class="" aria-label="Examples"><!--[--><!--]--> Examples <!--[--><!--]--></a></div><div class="navbar-item"><a href="/faq/" class="" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a></div><div class="navbar-item"><a href="/contribute/" class="" aria-label="Contribute"><!--[--><!--]--> Contribute <!--[--><!--]--></a></div><div class="navbar-item"><a href="/changelog/" class="" aria-label="Changes"><!--[--><!--]--> Changes <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="https://github.com/ottopaulsen/node-red-contrib-power-saver" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading active">Nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/power-saver.md" class="sidebar-item" aria-label="Power Saver"><!--[--><!--]--> Power Saver <!--[--><!--]--></a><!----></li><li><p tabindex="0" class="sidebar-item active">Strategy nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/ps-strategy-best-save.html" class="sidebar-item" aria-label="ps-strategy-best-save"><!--[--><!--]--> ps-strategy-best-save <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="ps-strategy-lowest-price"><!--[--><!--]--> ps-strategy-lowest-price <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#description" class="router-link-active router-link-exact-active sidebar-item" aria-label="Description"><!--[--><!--]--> Description <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#configuration" class="router-link-active router-link-exact-active sidebar-item" aria-label="Configuration"><!--[--><!--]--> Configuration <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#dynamic-config" class="router-link-active router-link-exact-active sidebar-item" aria-label="Dynamic config"><!--[--><!--]--> Dynamic config <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#dynamic-commands" class="router-link-active router-link-exact-active sidebar-item" aria-label="Dynamic commands"><!--[--><!--]--> Dynamic commands <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#input" class="router-link-active router-link-exact-active sidebar-item" aria-label="Input"><!--[--><!--]--> Input <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#output" class="router-link-active router-link-exact-active sidebar-item" aria-label="Output"><!--[--><!--]--> Output <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#tips-tricks" class="router-link-active router-link-exact-active sidebar-item" aria-label="Tips & tricks"><!--[--><!--]--> Tips & tricks <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#multiple-nodes-works-together" class="router-link-active router-link-exact-active sidebar-item" aria-label="Multiple nodes works together"><!--[--><!--]--> Multiple nodes works together <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#highest-price" class="router-link-active router-link-exact-active sidebar-item" aria-label="Highest price"><!--[--><!--]--> Highest price <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><!--]--></ul><!--]--></li><li><a href="/nodes/ps-strategy-heat-capacitor.md" class="sidebar-item" aria-label="ps-strategy-heat-capacitor"><!--[--><!--]--> ps-strategy-heat-capacitor <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><li><p tabindex="0" class="sidebar-item">Utility nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/ps-receive-price.html" class="sidebar-item" aria-label="ps-receive-price"><!--[--><!--]--> ps-receive-price <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><li><p tabindex="0" class="sidebar-item">Grid tariff nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/ps-general-add-tariff.html" class="sidebar-item" aria-label="ps-general-add-tariff"><!--[--><!--]--> ps-general-add-tariff <!--[--><!--]--></a><!----></li><li><a href="/nodes/ps-elvia-add-tariff.html" class="sidebar-item" aria-label="ps-elvia-add-tariff"><!--[--><!--]--> ps-elvia-add-tariff <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><!--]--></ul><!--]--></li><li><p tabindex="0" class="sidebar-item sidebar-heading">Data format <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/strategy-input.html" class="sidebar-item" aria-label="Strategy input format"><!--[--><!--]--> Strategy input format <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page"><!--[--><!--]--><div class="theme-default-content"><!--[--><h1 id="ps-strategy-lowest-price" tabindex="-1"><a class="header-anchor" href="#ps-strategy-lowest-price" aria-hidden="true">#</a> ps-strategy-lowest-price</h1><p><img src="/assets/img/node-ps-strategy-lowest-price.3a4ad347.png" alt="ps-strategy-lowest-price"></p><p>Strategy node to turn on power the hours when the price is lowest during a given period, and turn off the other hours.</p><h2 id="description" tabindex="-1"><a class="header-anchor" href="#description" aria-hidden="true">#</a> Description</h2><p>The node can work on a specific period from 1 to 24 hours during a 24 hour period. Inside this period, you can decide how many hours that shall be on. The rest of the period will be off. Outside the period, you can select that the output shall be either on or off. You can also decide that the hours on shall be consecutive (one continuous period) or spread around in multiple on-periods.</p><h2 id="configuration" tabindex="-1"><a class="header-anchor" href="#configuration" aria-hidden="true">#</a> Configuration</h2><p><img src="/assets/img/lowest-price-config.6d66a8c2.png" alt="Node Configuration"></p><table><thead><tr><th>Value</th><th>Description</th></tr></thead><tbody><tr><td>From Time</td><td>The start time of the selected period.</td></tr><tr><td>To Time</td><td>The end time of the selected period.</td></tr><tr><td>Hours On</td><td>The number of hours that shall be turned on.</td></tr><tr><td>Consecutive On-Period</td><td>Check this if you need the on-period to be consecutive.</td></tr><tr><td>Send When Rescheduling</td><td>Check this to make sure on or off output is sent immediately after rescheduling.</td></tr><tr><td>If No Schedule, Send</td><td>What to do if there is no valid schedule any more (turn on or off).</td></tr><tr><td>Outside Period, Send</td><td>Select the value to send outside the selected period.</td></tr></tbody></table><p>If you want to use a period of 24 hours, set the From Time and To Time to the same value. The time you select is significant in the way that it decides which 24 hours that are considered when finding the hours with lowest price.</p><div class="custom-container tip"><p class="custom-container-title">Example with Consecutive On-Period</p><p>One example to need a consecutive on-period can be if you want to control the washing machine. Let's say it needs 3 hours, and you want it to run between 22:00 and 06:00. Set <code>From Time = 22:00</code>, <code>To Time = 06:00</code> and check the <code>Consecutive On-Period</code> flag. This will turn on the cheapest 3-hour period from 22:00 to 06:00.</p><p>NB! It is not recommended to run the washing machine when you are sleeping or away.</p></div><div class="custom-container tip"><p class="custom-container-title">Example with non-consecutive on-period</p><p>If you have heating cables in the driveway, you may need them to be on only for a few hours every day, for example 4 hours, but it may not be important when this is. Then set <code>From Time = 00:00</code>, <code>To Time = 00:00</code> and <strong>un-check</strong> the <code>Consecutive On-Period</code> flag. This will turn on the 4 cheapest hours during the whole day, and off the rest.</p><p>You can use any time for start and end, but it is a good idea to use <code>00:00</code>, since the prices normally comes for this period.</p></div><div class="custom-container warning"><p class="custom-container-title">Outside Period, Send</p><p>Unless the period you select is 24 hours (<code>From Time</code> and <code>To Time</code> are the same), it is important what value you choose for <code>Outside Period, Send</code>. This decides whether the output is on or off during the period that is outside the selected period.</p></div><div class="custom-container danger"><p class="custom-container-title">Schedule not calculated</p><p>If you select a period for example from 10:00 to 02:00, it may not be possible to calculate before the period starts. This is because electricity prices for the next day (in the Nord Pool area) normally are received around 13:00. The node cannot calculate the period until it has price data for the whole period.</p></div><h3 id="dynamic-config" tabindex="-1"><a class="header-anchor" href="#dynamic-config" aria-hidden="true">#</a> Dynamic config</h3><p>It is possible to change config dynamically by sending a config message to the node. The config messages has a payload with a config object like this example:</p><div class="language-json ext-json line-numbers-mode"><pre class="language-json"><code><span class="token property">"payload"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
|
30
|
+
<div id="app"><!--[--><div class="theme-container"><!--[--><header ref_key="navbar" class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/" class=""><img class="logo" src="/Ukraine-heart-shape-flag.png" alt="Power Saver"><span class="site-name can-hide">Power Saver</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/guide/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><a href="/nodes/" class="router-link-active" aria-label="Nodes"><!--[--><!--]--> Nodes <!--[--><!--]--></a></div><div class="navbar-item"><a href="/examples/" class="" aria-label="Examples"><!--[--><!--]--> Examples <!--[--><!--]--></a></div><div class="navbar-item"><a href="/faq/" class="" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a></div><div class="navbar-item"><a href="/contribute/" class="" aria-label="Contribute"><!--[--><!--]--> Contribute <!--[--><!--]--></a></div><div class="navbar-item"><a href="/changelog/" class="" aria-label="Changes"><!--[--><!--]--> Changes <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="https://github.com/ottopaulsen/node-red-contrib-power-saver" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-dark-button" title="toggle dark mode"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><!----></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><a href="/guide/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><a href="/nodes/" class="router-link-active" aria-label="Nodes"><!--[--><!--]--> Nodes <!--[--><!--]--></a></div><div class="navbar-item"><a href="/examples/" class="" aria-label="Examples"><!--[--><!--]--> Examples <!--[--><!--]--></a></div><div class="navbar-item"><a href="/faq/" class="" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a></div><div class="navbar-item"><a href="/contribute/" class="" aria-label="Contribute"><!--[--><!--]--> Contribute <!--[--><!--]--></a></div><div class="navbar-item"><a href="/changelog/" class="" aria-label="Changes"><!--[--><!--]--> Changes <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="https://github.com/ottopaulsen/node-red-contrib-power-saver" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading active">Nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/power-saver.md" class="sidebar-item" aria-label="Power Saver"><!--[--><!--]--> Power Saver <!--[--><!--]--></a><!----></li><li><p tabindex="0" class="sidebar-item active">Strategy nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/ps-strategy-best-save.html" class="sidebar-item" aria-label="ps-strategy-best-save"><!--[--><!--]--> ps-strategy-best-save <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="ps-strategy-lowest-price"><!--[--><!--]--> ps-strategy-lowest-price <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#description" class="router-link-active router-link-exact-active sidebar-item" aria-label="Description"><!--[--><!--]--> Description <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#configuration" class="router-link-active router-link-exact-active sidebar-item" aria-label="Configuration"><!--[--><!--]--> Configuration <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#dynamic-config" class="router-link-active router-link-exact-active sidebar-item" aria-label="Dynamic config"><!--[--><!--]--> Dynamic config <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#dynamic-commands" class="router-link-active router-link-exact-active sidebar-item" aria-label="Dynamic commands"><!--[--><!--]--> Dynamic commands <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#input" class="router-link-active router-link-exact-active sidebar-item" aria-label="Input"><!--[--><!--]--> Input <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#output" class="router-link-active router-link-exact-active sidebar-item" aria-label="Output"><!--[--><!--]--> Output <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#tips-tricks" class="router-link-active router-link-exact-active sidebar-item" aria-label="Tips & tricks"><!--[--><!--]--> Tips & tricks <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#multiple-nodes-works-together" class="router-link-active router-link-exact-active sidebar-item" aria-label="Multiple nodes works together"><!--[--><!--]--> Multiple nodes works together <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-strategy-lowest-price.html#highest-price" class="router-link-active router-link-exact-active sidebar-item" aria-label="Highest price"><!--[--><!--]--> Highest price <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><!--]--></ul><!--]--></li><li><a href="/nodes/ps-strategy-heat-capacitor.md" class="sidebar-item" aria-label="ps-strategy-heat-capacitor"><!--[--><!--]--> ps-strategy-heat-capacitor <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><li><p tabindex="0" class="sidebar-item">Utility nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/ps-receive-price.html" class="sidebar-item" aria-label="ps-receive-price"><!--[--><!--]--> ps-receive-price <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><li><p tabindex="0" class="sidebar-item">Grid tariff nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/ps-general-add-tariff.html" class="sidebar-item" aria-label="ps-general-add-tariff"><!--[--><!--]--> ps-general-add-tariff <!--[--><!--]--></a><!----></li><li><a href="/nodes/ps-elvia-add-tariff.html" class="sidebar-item" aria-label="ps-elvia-add-tariff"><!--[--><!--]--> ps-elvia-add-tariff <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><!--]--></ul><!--]--></li><li><p tabindex="0" class="sidebar-item sidebar-heading">Data format <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/strategy-input.html" class="sidebar-item" aria-label="Strategy input format"><!--[--><!--]--> Strategy input format <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page"><!--[--><!--]--><div class="theme-default-content"><!--[--><h1 id="ps-strategy-lowest-price" tabindex="-1"><a class="header-anchor" href="#ps-strategy-lowest-price" aria-hidden="true">#</a> ps-strategy-lowest-price</h1><p><img src="/assets/img/node-ps-strategy-lowest-price.3a4ad347.png" alt="ps-strategy-lowest-price"></p><p>Strategy node to turn on power the hours when the price is lowest during a given period, and turn off the other hours.</p><h2 id="description" tabindex="-1"><a class="header-anchor" href="#description" aria-hidden="true">#</a> Description</h2><p>The node can work on a specific period from 1 to 24 hours during a 24 hour period. Inside this period, you can decide how many hours that shall be on. The rest of the period will be off. Outside the period, you can select that the output shall be either on or off. You can also decide that the hours on shall be consecutive (one continuous period) or spread around in multiple on-periods.</p><h2 id="configuration" tabindex="-1"><a class="header-anchor" href="#configuration" aria-hidden="true">#</a> Configuration</h2><p><img src="/assets/img/lowest-price-config.6d66a8c2.png" alt="Node Configuration"></p><table><thead><tr><th>Value</th><th>Description</th></tr></thead><tbody><tr><td>From Time</td><td>The start time of the selected period.</td></tr><tr><td>To Time</td><td>The end time of the selected period.</td></tr><tr><td>Hours On</td><td>The number of hours that shall be turned on.</td></tr><tr><td>Consecutive On-Period</td><td>Check this if you need the on-period to be consecutive.</td></tr><tr><td>Send When Rescheduling</td><td>Check this to make sure on or off output is sent immediately after rescheduling.</td></tr><tr><td>If No Schedule, Send</td><td>What to do if there is no valid schedule any more (turn on or off).</td></tr><tr><td>Outside Period, Send</td><td>Select the value to send outside the selected period.</td></tr></tbody></table><p>If you want to use a period of 24 hours, set the From Time and To Time to the same value. The time you select is significant in the way that it decides which 24 hours that are considered when finding the hours with lowest price.</p><div class="custom-container tip"><p class="custom-container-title">Example with Consecutive On-Period</p><p>One example to need a consecutive on-period can be if you want to control the washing machine. Let's say it needs 3 hours, and you want it to run between 22:00 and 06:00. Set <code>From Time = 22:00</code>, <code>To Time = 06:00</code> and check the <code>Consecutive On-Period</code> flag. This will turn on the cheapest 3-hour period from 22:00 to 06:00.</p><p>NB! It is not recommended to run the washing machine when you are sleeping or away.</p></div><div class="custom-container tip"><p class="custom-container-title">Example with non-consecutive on-period</p><p>If you have heating cables in the driveway, you may need them to be on only for a few hours every day, for example 4 hours, but it may not be important when this is. Then set <code>From Time = 00:00</code>, <code>To Time = 00:00</code> and <strong>un-check</strong> the <code>Consecutive On-Period</code> flag. This will turn on the 4 cheapest hours during the whole day, and off the rest.</p><p>You can use any time for start and end, but it is a good idea to use <code>00:00</code>, since the prices normally comes for this period.</p></div><div class="custom-container warning"><p class="custom-container-title">Outside Period, Send</p><p>Unless the period you select is 24 hours (<code>From Time</code> and <code>To Time</code> are the same), it is important what value you choose for <code>Outside Period, Send</code>. This decides whether the output is on or off during the period that is outside the selected period.</p></div><div class="custom-container danger"><p class="custom-container-title">Schedule not calculated</p><p>If you select a period for example from 10:00 to 02:00, it may not be possible to calculate before the period starts. This is because electricity prices for the next day (in the Nord Pool area) normally are received around 13:00. The node cannot calculate the period until it has price data for the whole period.</p></div><h3 id="dynamic-config" tabindex="-1"><a class="header-anchor" href="#dynamic-config" aria-hidden="true">#</a> Dynamic config</h3><p>It is possible to change config dynamically by sending a config message to the node. The config messages has a payload with a config object like this example:</p><div class="language-json ext-json line-numbers-mode"><pre class="language-json"><code><span class="token property">"payload"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
|
31
31
|
<span class="token property">"config"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
|
32
32
|
<span class="token property">"fromTime"</span> <span class="token operator">:</span> <span class="token number">10</span><span class="token punctuation">,</span>
|
|
33
33
|
<span class="token property">"toTime"</span> <span class="token operator">:</span> <span class="token number">16</span><span class="token punctuation">,</span>
|
|
@@ -119,6 +119,6 @@
|
|
|
119
119
|
<span class="token property">"version"</span><span class="token operator">:</span> <span class="token string">"3.1.2"</span>
|
|
120
120
|
<span class="token punctuation">}</span>
|
|
121
121
|
</code></pre><div class="line-numbers"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br><span class="line-number">31</span><br><span class="line-number">32</span><br><span class="line-number">33</span><br><span class="line-number">34</span><br><span class="line-number">35</span><br><span class="line-number">36</span><br><span class="line-number">37</span><br><span class="line-number">38</span><br><span class="line-number">39</span><br><span class="line-number">40</span><br><span class="line-number">41</span><br><span class="line-number">42</span><br><span class="line-number">43</span><br><span class="line-number">44</span><br><span class="line-number">45</span><br><span class="line-number">46</span><br><span class="line-number">47</span><br><span class="line-number">48</span><br><span class="line-number">49</span><br><span class="line-number">50</span><br><span class="line-number">51</span><br><span class="line-number">52</span><br><span class="line-number">53</span><br><span class="line-number">54</span><br><span class="line-number">55</span><br><span class="line-number">56</span><br><span class="line-number">57</span><br><span class="line-number">58</span><br><span class="line-number">59</span><br><span class="line-number">60</span><br><span class="line-number">61</span><br><span class="line-number">62</span><br><span class="line-number">63</span><br><span class="line-number">64</span><br><span class="line-number">65</span><br></div></div><p>The <code>schedule</code> array shows every time the switch is turned on or off. The <code>hours</code> array shows values per hour containing the price (received as input), whether that hour is on or off, the start time of the hour and the amount per kWh that is saved on hours that are turned off, compared to the next hour that is on.</p><h2 id="tips-tricks" tabindex="-1"><a class="header-anchor" href="#tips-tricks" aria-hidden="true">#</a> Tips & tricks</h2><h3 id="multiple-nodes-works-together" tabindex="-1"><a class="header-anchor" href="#multiple-nodes-works-together" aria-hidden="true">#</a> Multiple nodes works together</h3><p>You can use multiple nodes simultanously, for different periods, if you want more hours on one part of the day than another part, or to make sure there are at least some hours on during each period.</p><h3 id="highest-price" tabindex="-1"><a class="header-anchor" href="#highest-price" aria-hidden="true">#</a> Highest price</h3><p>If you want to find the <code>x</code> hours with the highest prices, do as follows:</p><ol><li>Calculate <code>y</code> as the total number of hours in the period. For example, if the period is from <code>08:00</code> to <code>20:00</code>, then <code>y = 12</code>.</li><li>Configure <code>Hours On = y - x</code>, so if <code>x = 4</code>, then <code>Hours On = 12 - 4 = 8</code>.</li><li>Use <strong>Output 2</strong> to get a signal when you have the hours with the highest prices. Just remember that the value sent to output 2 is <code>false</code>, not <code>true</code> as it is on output 1.</li></ol><!--]--></div><footer class="page-meta"><!----><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><!----></footer><nav class="page-nav"><p class="inner"><span class="prev"><a href="/nodes/ps-strategy-best-save.html" class="" aria-label="ps-strategy-best-save"><!--[--><!--]--> ps-strategy-best-save <!--[--><!--]--></a></span><span class="next"><a href="/nodes/ps-receive-price.html" class="" aria-label="ps-receive-price"><!--[--><!--]--> ps-receive-price <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
|
122
|
-
<script src="/assets/js/runtime~app.f6ac32d7.js" defer></script><script src="/assets/js/405.f4edd94d.js" defer></script><script src="/assets/js/app.
|
|
122
|
+
<script src="/assets/js/runtime~app.f6ac32d7.js" defer></script><script src="/assets/js/405.f4edd94d.js" defer></script><script src="/assets/js/app.6c6c1409.js" defer></script>
|
|
123
123
|
</body>
|
|
124
124
|
</html>
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
document.documentElement.classList.toggle('dark', true);
|
|
23
23
|
}
|
|
24
24
|
</script>
|
|
25
|
-
<link rel="shortcut icon" type="image/x-icon" href="euro.png"><script async src="https://
|
|
26
|
-
<link rel="preload" href="/assets/js/runtime~app.f6ac32d7.js" as="script"><link rel="preload" href="/assets/css/styles.1c48cbd0.css" as="style"><link rel="preload" href="/assets/js/405.f4edd94d.js" as="script"><link rel="preload" href="/assets/js/app.
|
|
25
|
+
<link rel="shortcut icon" type="image/x-icon" href="euro.png"><script async src="https://www.googletagmanager.com/gtag/js?id=G-Z2QNNCDQZG"></script><script src="window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-Z2QNNCDQZG');"></script><title>Strategy input format | Power Saver</title><meta name="description" content="A Node-RED note to save money on hourly changing power prices">
|
|
26
|
+
<link rel="preload" href="/assets/js/runtime~app.f6ac32d7.js" as="script"><link rel="preload" href="/assets/css/styles.1c48cbd0.css" as="style"><link rel="preload" href="/assets/js/405.f4edd94d.js" as="script"><link rel="preload" href="/assets/js/app.6c6c1409.js" as="script">
|
|
27
27
|
<link rel="stylesheet" href="/assets/css/styles.1c48cbd0.css">
|
|
28
28
|
</head>
|
|
29
29
|
<body>
|
|
30
|
-
<div id="app"><!--[--><div class="theme-container"><!--[--><header ref_key="navbar" class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/" class=""
|
|
30
|
+
<div id="app"><!--[--><div class="theme-container"><!--[--><header ref_key="navbar" class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/" class=""><img class="logo" src="/Ukraine-heart-shape-flag.png" alt="Power Saver"><span class="site-name can-hide">Power Saver</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/guide/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><a href="/nodes/" class="router-link-active" aria-label="Nodes"><!--[--><!--]--> Nodes <!--[--><!--]--></a></div><div class="navbar-item"><a href="/examples/" class="" aria-label="Examples"><!--[--><!--]--> Examples <!--[--><!--]--></a></div><div class="navbar-item"><a href="/faq/" class="" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a></div><div class="navbar-item"><a href="/contribute/" class="" aria-label="Contribute"><!--[--><!--]--> Contribute <!--[--><!--]--></a></div><div class="navbar-item"><a href="/changelog/" class="" aria-label="Changes"><!--[--><!--]--> Changes <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="https://github.com/ottopaulsen/node-red-contrib-power-saver" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-dark-button" title="toggle dark mode"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><!----></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><a href="/guide/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><a href="/nodes/" class="router-link-active" aria-label="Nodes"><!--[--><!--]--> Nodes <!--[--><!--]--></a></div><div class="navbar-item"><a href="/examples/" class="" aria-label="Examples"><!--[--><!--]--> Examples <!--[--><!--]--></a></div><div class="navbar-item"><a href="/faq/" class="" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a></div><div class="navbar-item"><a href="/contribute/" class="" aria-label="Contribute"><!--[--><!--]--> Contribute <!--[--><!--]--></a></div><div class="navbar-item"><a href="/changelog/" class="" aria-label="Changes"><!--[--><!--]--> Changes <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="https://github.com/ottopaulsen/node-red-contrib-power-saver" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading">Nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/power-saver.md" class="sidebar-item" aria-label="Power Saver"><!--[--><!--]--> Power Saver <!--[--><!--]--></a><!----></li><li><p tabindex="0" class="sidebar-item">Strategy nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/ps-strategy-best-save.html" class="sidebar-item" aria-label="ps-strategy-best-save"><!--[--><!--]--> ps-strategy-best-save <!--[--><!--]--></a><!----></li><li><a href="/nodes/ps-strategy-lowest-price.html" class="sidebar-item" aria-label="ps-strategy-lowest-price"><!--[--><!--]--> ps-strategy-lowest-price <!--[--><!--]--></a><!----></li><li><a href="/nodes/ps-strategy-heat-capacitor.md" class="sidebar-item" aria-label="ps-strategy-heat-capacitor"><!--[--><!--]--> ps-strategy-heat-capacitor <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><li><p tabindex="0" class="sidebar-item">Utility nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/ps-receive-price.html" class="sidebar-item" aria-label="ps-receive-price"><!--[--><!--]--> ps-receive-price <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><li><p tabindex="0" class="sidebar-item">Grid tariff nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/nodes/ps-general-add-tariff.html" class="sidebar-item" aria-label="ps-general-add-tariff"><!--[--><!--]--> ps-general-add-tariff <!--[--><!--]--></a><!----></li><li><a href="/nodes/ps-elvia-add-tariff.html" class="sidebar-item" aria-label="ps-elvia-add-tariff"><!--[--><!--]--> ps-elvia-add-tariff <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><!--]--></ul><!--]--></li><li><p tabindex="0" class="sidebar-item sidebar-heading active">Data format <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/strategy-input.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="Strategy input format"><!--[--><!--]--> Strategy input format <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page"><!--[--><!--]--><div class="theme-default-content"><!--[--><h1 id="strategy-input-format" tabindex="-1"><a class="header-anchor" href="#strategy-input-format" aria-hidden="true">#</a> Strategy input format</h1><p>The common input for strategy nodes is a payload with a <code>priceData</code> array containing an object for each hour. Each object has a <code>value</code> which is the price, and a <code>start</code> which is the start time for the hour.</p><p>Example:</p><div class="language-json ext-json line-numbers-mode"><pre class="language-json"><code><span class="token punctuation">{</span>
|
|
31
31
|
<span class="token property">"priceData"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
|
32
32
|
<span class="token punctuation">{</span>
|
|
33
33
|
<span class="token property">"value"</span><span class="token operator">:</span> <span class="token number">0.9544</span><span class="token punctuation">,</span>
|
|
@@ -53,6 +53,6 @@
|
|
|
53
53
|
<span class="token punctuation">]</span>
|
|
54
54
|
<span class="token punctuation">}</span>
|
|
55
55
|
</code></pre><div class="line-numbers"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br></div></div><p>This format is used for:</p><ul><li>Output of the <code>ps-receive-price</code> node</li><li>Input and output of the <code>ps-xxx-add-tariff</code> nodes</li><li>Input for the strategy nodes (<code>ps-strategy-xxx-xxx</code>)</li></ul><!--]--></div><footer class="page-meta"><!----><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><!----></footer><!----><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
|
56
|
-
<script src="/assets/js/runtime~app.f6ac32d7.js" defer></script><script src="/assets/js/405.f4edd94d.js" defer></script><script src="/assets/js/app.
|
|
56
|
+
<script src="/assets/js/runtime~app.f6ac32d7.js" defer></script><script src="/assets/js/405.f4edd94d.js" defer></script><script src="/assets/js/app.6c6c1409.js" defer></script>
|
|
57
57
|
</body>
|
|
58
58
|
</html>
|
|
Binary file
|
package/docs/changelog/README.md
CHANGED
package/package.json
CHANGED
|
@@ -18,13 +18,15 @@
|
|
|
18
18
|
oneditprepare: function () {
|
|
19
19
|
const readTariffTypes = function () {
|
|
20
20
|
const configId = $("#node-input-elviaConfig").val();
|
|
21
|
-
if (
|
|
21
|
+
if (configId === "_ADD_") {
|
|
22
|
+
$("#keyMessage").hide();
|
|
22
23
|
return;
|
|
23
24
|
}
|
|
24
25
|
$.getJSON("elvia-tariff-types?configId=" + configId, function (data) {
|
|
25
26
|
if (!data.tariffTypes) {
|
|
26
27
|
return;
|
|
27
28
|
}
|
|
29
|
+
$("#keyMessage").hide();
|
|
28
30
|
$("#node-input-tariffKey").typedInput({
|
|
29
31
|
types: [
|
|
30
32
|
{
|
|
@@ -38,6 +40,7 @@
|
|
|
38
40
|
});
|
|
39
41
|
};
|
|
40
42
|
$("#node-input-elviaConfig").on("change", function () {
|
|
43
|
+
$("#keyMessage").show();
|
|
41
44
|
readTariffTypes();
|
|
42
45
|
});
|
|
43
46
|
readTariffTypes();
|
|
@@ -58,6 +61,9 @@
|
|
|
58
61
|
<label for="node-input-tariffKey"><i class="fa fa-tag"></i> Tariff key</label>
|
|
59
62
|
<input type="text" id="node-input-tariffKey" placeholder="Tariff" style="width: 300px" />
|
|
60
63
|
</div>
|
|
64
|
+
<div id="keyMessage" class="form-row">
|
|
65
|
+
<p>When Subscription key is set in the Elvia config,<br />you must deploy once to get the list of tariff keys.</p>
|
|
66
|
+
</div>
|
|
61
67
|
</script>
|
|
62
68
|
|
|
63
69
|
<script type="text/markdown" data-help-name="ps-elvia-add-tariff">
|
|
@@ -10,6 +10,13 @@ module.exports = function (RED) {
|
|
|
10
10
|
const configList = this.context().global.get("elviaConfigList") || [];
|
|
11
11
|
configList.push(config);
|
|
12
12
|
this.context().global.set("elviaConfigList", configList);
|
|
13
|
+
|
|
14
|
+
const key = this.credentials.elviaSubscriptionKey;
|
|
15
|
+
RED.httpAdmin.get("/elvia-tariff-types", RED.auth.needsPermission("ps-elvia-config.read"), function (req, res) {
|
|
16
|
+
getTariffTypes(null, key).then((json) => {
|
|
17
|
+
res.json(json);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
13
20
|
}
|
|
14
21
|
RED.nodes.registerType("ps-elvia-config", ElviaConfigNode, {
|
|
15
22
|
credentials: {
|
|
@@ -13,12 +13,6 @@ module.exports = function (RED) {
|
|
|
13
13
|
node.send([{ payload: json }]);
|
|
14
14
|
});
|
|
15
15
|
});
|
|
16
|
-
|
|
17
|
-
RED.httpAdmin.get("/elvia-tariff-types", RED.auth.needsPermission("ps-elvia-config.read"), function (req, res) {
|
|
18
|
-
getTariffTypes(null, key).then((json) => {
|
|
19
|
-
res.json(json);
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
16
|
}
|
|
23
17
|
|
|
24
18
|
RED.nodes.registerType("ps-elvia-tariff-types", PsElviaTariffTypesNode);
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
404.html,1645811434412,addf965cf1261688558a31883296f39b2f4f4deef29686ea625d7dbc60b24aab
|
|
2
|
-
euro.png,1645811429838,e6a1d246a05e447333de6e1099b1c3a5ae8ad050b2389e51ff53289e4dc1b8e4
|
|
3
|
-
index.html,1645811433976,06fa65afbcca0c52835a4f44f0e194f510d10896bc967048ad113d27c16e32c7
|
|
4
|
-
assets/img/back-to-top.8b37f773.svg,1645811429403,c6af5f9d1f495b4bb193a957cf5cbddd69b3df8346fb0ad8421ff29e872e660b
|
|
5
|
-
assets/css/835.styles.c5afb22b.css,1645811429836,54c8fc773468d5ab5cacbd55f0535bf1cacbd57cb0ab43cde2a6bc4ea405b80e
|
|
6
|
-
assets/css/styles.1c48cbd0.css,1645811429835,d38c8f7fb1e27516179de03c640af9e818968bc17ae1de343bbad594c8f070e7
|
|
7
|
-
assets/img/next-schedule-flow.413ad62b.png,1645811429478,dc39e108b2e1c231df8172b375f73bbdce6dba5e7b19b16524c81a15a1ce1036
|
|
8
|
-
assets/img/next-schedule-sensor.eb896bdd.png,1645811429478,3017cdc42afaeeccd07240a18729b59264175c8ef7f17d4bf89ecc12dcfd1723
|
|
9
|
-
assets/img/node-power-saver.51ff2e5d.png,1645811429572,bc03e13706d001771796195e67e237873c2f2b3fd014e7f8003d80e3c5e09ea9
|
|
10
|
-
assets/img/node-ps-strategy-best-save.392292d5.png,1645811429572,d9e48500b4df8cdcb2696faeaea1c5e9f462299a07b0231c1a2e4e8d4d88f7bb
|
|
11
|
-
assets/img/node-ps-elvia-add-tariff.94ea2b09.png,1645811429572,82f83794ebee8920524f2c8fb0123014cf8ef0182600c34ca2c170b2adefd970
|
|
12
|
-
assets/img/node-ps-strategy-heat-capacitor-simple-flow-example.29d9bf59.png,1645811429404,31d4e2481f50bf3d26b77e1f53899bb10ee214a8c9675114738a4f8fa2c361d2
|
|
13
|
-
assets/img/node-ps-receive-price.76eaa418.png,1645811429572,9d8f62d2b5bee458952cd895a143a2c757ba5ae6cd7e13afd3103b7872619571
|
|
14
|
-
assets/img/node-ps-general-add-tariff.a3cf6f06.png,1645811429572,0e6ef51de245944acad043cbf6b4c1a9f3762cb0d59c721afd67b8a9fa93dc90
|
|
15
|
-
assets/js/229.5c5378fa.js,1645811429830,a649744039e357eab133a3e44074efc5665b3a4383c379fb0cc55f1df088fec2
|
|
16
|
-
assets/img/node-ps-strategy-lowest-price.3a4ad347.png,1645811429573,dd4e368f5c81e87f64770a5d80b4c026d92fc89a72589f2d8b163e6a251c3662
|
|
17
|
-
assets/js/331.872104cd.js,1645811429830,ac8099e339f2179b45098df3f3501bf9c9cbecc49d93e89c17fa1b607db590a9
|
|
18
|
-
assets/js/491.bd938119.js,1645811429830,539cd56bfe8011f139c577cd90fc6673eb8e50822b8d9a807525f7a334249cbe
|
|
19
|
-
assets/js/555.d8963d84.js,1645811429830,a354ff7311608a93d08a80fe8e7aff411f4686e294327513d4452d17ee3a0245
|
|
20
|
-
assets/js/app.dfdee6f9.js,1645811429403,ccaf87278783d889e683b34df5ddf58f79140e6c8af3f199c5faf86ae7bbabe9
|
|
21
|
-
assets/js/v-0607240a.0193a377.js,1645811429404,e9df5a61d68a4d048016061b2e91795ab26b42e07076b5a8fbba6a96691316a5
|
|
22
|
-
assets/js/runtime~app.f6ac32d7.js,1645811429403,3c96eeef778202b135996b788cc7ec43a5b81d3771351c9240d68b7bb80019e9
|
|
23
|
-
assets/js/811.5f659592.js,1645811429830,4f6777db824062a896831c035032022dcd45d93f634d5afb37e610442f146eef
|
|
24
|
-
assets/css/896.styles.21a80cb6.css,1645811429836,bf775e319685fb2df3ca08ddfecb2a6c0670886b5e9829fa0df3b7723b1d9610
|
|
25
|
-
logo.png,1645811429838,b0d240bb816f26ca3207f1c99f0db945e48b75928ce80b4b3500035a2627583c
|
|
26
|
-
assets/img/elvia-config-no-config.b4bb972c.png,1645811429765,b6d893cf4f56713f3004aff49f28339645ec68e885ec30503740ff071050b643
|
|
27
|
-
assets/img/elvia-config-no-tariff.3f89aba8.png,1645811429765,00eee1c51ab3b19e3db8b139071d7596f61601b4295edcc69ad503bcea026d2f
|
|
28
|
-
assets/img/elvia-config-subscription-key.8be8ab8a.png,1645811429766,1e8f457772d4941c9f4a245e84e0cd89f8d0387b11464a3eab3533ed50780e9b
|
|
29
|
-
assets/img/next-schedule-entity.4406856a.png,1645811429404,d6f36c55bef22fdb27e7a793144016b9b5688fdb7c0f358f446bec4871cb59f1
|
|
30
|
-
assets/js/405.f4edd94d.js.LICENSE.txt,1645811429852,adc4d946db037aab89d8d540dc5ba92ec41212a9777b284c2189f3e90729031c
|
|
31
|
-
assets/img/node-ps-strategy-heat-capacitor-cascade-control.2e75ed9e.png,1645811429404,277fec95ceb1f4a608c512a361778e21da49cfa48f630f43ced60abf7b586c00
|
|
32
|
-
assets/js/v-08683c60.52e94cb6.js,1645811429765,8fd25e78ba78bf62dd075a073b9086ea02abcc6dc868432651192b73d76ef356
|
|
33
|
-
assets/img/oven-setpoint-calculation.5bda0eec.png,1645811429404,d59c196f156dbb561106368065b08b9fa16b0555e0683d3d9c6ef2a123b6b787
|
|
34
|
-
assets/img/add-tariff-flow.eb700d4f.png,1645811429766,a27790951f13dec75da0da079edeb58378aaa6f74c1d708a0c1b5aea846ae808
|
|
35
|
-
assets/img/lowest-price-config.6d66a8c2.png,1645811429817,2e8328c5ccb07158c1c2edb5a5a1b4746f7a773b3a380d88fff2f9da279ffed2
|
|
36
|
-
assets/img/heat-capacitor-temperatureVsPrice.6e74905b.png,1645811429404,4ec0ee90f5f8c110e17a07f1c6572c1d6ef31a318e3cc58125680aae6ac39a30
|
|
37
|
-
assets/js/490.1e639e05.js,1645811429830,006ac095ab16f790b2c0dd877e05da95dfe6781a5fe3b97f0aa20ba1cec548a4
|
|
38
|
-
assets/img/overshoot-time.b3b5d70e.png,1645811429404,c855af9a434f7d56928446dba5466f7fbf62958acf6f53d1230db16d0c40712f
|
|
39
|
-
assets/img/best-save-config.79a2f39a.png,1645811429817,0e854e0ad8521268786a86789707053d08f60f7810bf9bbb1c6cbfc9485c657d
|
|
40
|
-
assets/img/power-saver-nordpool-events-state.8c392507.png,1645811429479,d8cb79a6ded596050e5ba9a81c21d2277a76ac6c43f388d664aae9559f420780
|
|
41
|
-
assets/img/elvia-flow.bae2a4d5.png,1645811429766,a3bbae90b0a528c8975ed92cad0d3cf354aaf6b2df8a8ec8c2f92d55d21e97df
|
|
42
|
-
assets/img/elvia-config-select-tariff.0f73fd56.png,1645811429766,db2bce470db8a714b87e3d07b915d225395b49ae2bc99a271f37844d3356e22f
|
|
43
|
-
assets/img/migrate-power-saver.aae13f9d.png,1645811429765,0f2c1fd39fcea757d41d48b07d2d02832c14d289ee63ed7175d5fddc8f62bcf6
|
|
44
|
-
assets/img/example-flow-2.b653b58d.png,1645811429572,44970df39fb4d1a30778770f91211ef95f13cf14a2137324b955aadff47ab17e
|
|
45
|
-
assets/img/power-saver-nordpool-current-state.bf14afde.png,1645811429478,51824f9b48565e1f6f1f1ab8472bce7a2f5045f4bb9312989a10819c1502945c
|
|
46
|
-
assets/js/v-0aca7ba6.cac5d4b9.js,1645811429404,fd917a61330af443c75121fe1b5e75c4ceaa301b41aa1d3f9b732433d6a51f08
|
|
47
|
-
assets/js/v-1ad821fa.6697a349.js,1645811429648,5e234e0b6d24a8d5916ad639ba74e8eeed633189cecd2d94378d5a2ad1a44afe
|
|
48
|
-
assets/js/v-0b5e3c8c.18561f6e.js,1645811429766,0524b7021c8108c02443e57036de24a8a5813b411680cb8e87bc58b61f51ad9a
|
|
49
|
-
assets/js/v-1e2b191e.07b8ab21.js,1645811429766,f5a6522cd598f7cb571516449564ae6a9b7b462631c8418a010a28b4a2c3f629
|
|
50
|
-
assets/js/v-1b3a0ab8.c6c4e19b.js,1645811429404,529c684f973444575730eeec02703784e32c2904cf74674211a5c163b2fe1e10
|
|
51
|
-
assets/js/v-29504124.00be7399.js,1645811429479,c0373166d28da75d579079f694caa8698c63db39ab793bd653aa2b5266c93546
|
|
52
|
-
assets/js/v-3706649a.c76d575b.js,1645811429830,c1af291965ecc14041d9aa38724848f00d33561d315b43b2bf6e48d200b0e2ff
|
|
53
|
-
assets/js/v-30acb564.28af12af.js,1645811429478,969bd26194d7167ee1d2cd806bc661b57de72b78c20556ef627a182b5b06a6b7
|
|
54
|
-
assets/img/migrate-best-save.f73420f6.png,1645811429572,7dbcde0717bc45d78d3d1e77282f9750aba2a49f3364604a7e29911fbfc490eb
|
|
55
|
-
assets/js/v-510ed0d4.c04bc2e4.js,1645811429403,01aa6cacf6019a9a13c26aab563249af4af8d624cf20637509d124e0432da722
|
|
56
|
-
assets/js/v-5954bcb2.dff3fc67.js,1645811429830,5adc728d7d199c2c278d9849b9d854eccd6153f9fbbc0215038b1ca39ca4ba74
|
|
57
|
-
assets/js/v-4637f9e4.d334c29a.js,1645811429817,66b8a40eefc05a5fdf776b56cdc57ef82764007fc3e56274109ab268e26f2ae2
|
|
58
|
-
assets/js/v-677dfaed.c159b0f4.js,1645811429766,986de6433a55b6b829ab497b789b3990bec8be3d1eeb65a1ec07015729204fd9
|
|
59
|
-
assets/js/v-5db8da3a.e5e6d7a6.js,1645811429479,2584b0b9bb3cdd4567c6d4f9d98caa717f832f12b9060f44b248038dd9280429
|
|
60
|
-
assets/js/v-7c87f26e.8ed52391.js,1645811429479,0fba319bf35d8c3c07bf9b0c31a75a6b304af1e732ef08aab71a759af099c3d0
|
|
61
|
-
assets/js/v-61f728ca.81968036.js,1645811429478,79e92e6e9b476275dd1472045777f9326be5f3c97850fe3a9be6bddc808da23e
|
|
62
|
-
assets/js/v-8daa1a0e.ed84ca09.js,1645811429403,84a5a30cb2e59ada56691b1df6fe69be6d786cec8b75e14801825519af70dcb1
|
|
63
|
-
assets/js/v-7446a652.8fc2c591.js,1645811429479,d1615da751dd371cb5bed434cbef5b6fbff6d7a8cf6d4c00c6dff6409a85d8b8
|
|
64
|
-
assets/js/v-b4a42144.9a2a0c9f.js,1645811429573,d3142bccc90c0404147ea31a45103ced4b2eda0117492868a433cd9b408493c0
|
|
65
|
-
assets/js/v-84304104.f3f07ed3.js,1645811429404,7439928b4c8e094cb03a4c2a58c72391981867578fd39665604d91d76c8699ef
|
|
66
|
-
assets/js/v-e8c55052.b7d52fc6.js,1645811429572,fc09eb3b7463332fc69dd5ab437216f91948ae8f91f6c62b0f47e3f3d82da9cc
|
|
67
|
-
assets/js/v-fffb8e28.d09ab959.js,1645811429568,979fe0e5f53f986da5ef18761193d3a0be919dcc5378c5df4fd68ee6883f126a
|
|
68
|
-
changelog/index.html,1645811434019,f94505f81d65a9359ad42b61d6a8967430655f72af37b1fea126f08f249ad968
|
|
69
|
-
contribute/index.html,1645811434125,369de0bd83f5df6d05ffef6063228093570480c1ba7b375658235cc1c4c530dd
|
|
70
|
-
examples/example-next-schedule-entity.html,1645811434083,5a0924250f7a0558e6faf85a37226e6dc999d882b0e141b2227a90618cdbfb65
|
|
71
|
-
assets/img/copy-payload-best-save.b9192985.png,1645811429480,7b12f6464e3fc8a83222e1e55d0ecdc81c9fdf5356eadd173c98313a45f44f75
|
|
72
|
-
examples/example-heat-capacitor.html,1645811434072,8fd6265569df05dd7ec38a2a20a011e0f2afd6e9b2adb6a219901a0f62a7d0c8
|
|
73
|
-
examples/example-nordpool-current-state.html,1645811434092,271c108f7953fff08d601564d028721e49f9164ba8414b2d19c7a91ef383e1d0
|
|
74
|
-
examples/example-nordpool-events-state.html,1645811434102,a4735ce22fa2a7300366027b1aeb9e9fc670ff92bbc0bd7181b93927e6395360
|
|
75
|
-
examples/example-tibber-mqtt.html,1645811434115,195ccc9339fd616fe3e0f279cf45e40477686b3358ccde46df4fd6fc7356167f
|
|
76
|
-
examples/index.html,1645811434044,e220d9feb2d2bb3cf8efcb2875cd5b51d47c7a26487ce99faf3c9bcf375e3166
|
|
77
|
-
faq/best-save-viewer.html,1645811434172,fb7bbed04ccbfeb1e22ba05e3e2fbdcfc3d68532fb6823ccbcfe2d1ce9027c7a
|
|
78
|
-
assets/img/power-saver-tibber-mqtt.16891dd2.png,1645811429479,24f2cad039c83c9031aa7f9d3decadc107b7cc257676e0e466078b2089632fcf
|
|
79
|
-
assets/img/example-flow-1.3ff3e23f.png,1645811429572,9602bdee071fd442bc5c466600970ad5b639a8e15c09206c8f824840979b6122
|
|
80
|
-
assets/js/405.f4edd94d.js,1645811429836,b1ab4766249e1c371d6fad1120f70a29eddafedbec8fcd4ced179e1e3e1ea3bb
|
|
81
|
-
guide/index.html,1645811434203,344d07b979e6f673cb2c58ceb468fe90be6709d341080278b046da2ee7040f9d
|
|
82
|
-
faq/index.html,1645811434142,5048881bfe07b5c4e4a5bc42d7d789c15885ef323384eedba512d4acda810dfc
|
|
83
|
-
examples/example-cascade-temperature-control.html,1645811434059,006d0d0c6c62c571fe425e6b0345ba6d5df26680cbb12375847c20a67d51c7ef
|
|
84
|
-
nodes/index.html,1645811434238,7fef763cdef1ac91215dd691b71f95bbd2baaacdba99d245dd54db71c241873b
|
|
85
|
-
nodes/old-power-saver-doc.html,1645811434257,277ff09f7750f9a5089d6d3a034f6b9532271b9458ef5f83c17e9ffe00450b29
|
|
86
|
-
nodes/power-saver.html,1645811434272,00e7695c6d5ac103b48037e07164b9e74064b4dc64dfef916ffd23eecdb68dde
|
|
87
|
-
nodes/ps-elvia-add-tariff.html,1645811434283,d43458926d9a30fdb9d6e5bbf8cf4034a4832a987c66e7b4c3b5a09ea94f1a20
|
|
88
|
-
nodes/ps-receive-price.html,1645811434318,41fbfd1b9daba9c39a32f19f7ca22c273231332629bf56b6e924a70449867951
|
|
89
|
-
assets/js/v-4c28314d.8cbb0f9d.js,1645811429817,b24bc2e669f9e2a79198b8a7680c65d63f2e3db962e8b6719ea13a38ec5975e1
|
|
90
|
-
nodes/ps-general-add-tariff.html,1645811434304,d83d9995fe8154bc04d618a6239510754cbf862920c2f8edbb29280bb2668635
|
|
91
|
-
nodes/ps-strategy-lowest-price.html,1645811434400,d3064b70fa5d28d14e282a893544f586c63dd88b606c89f0391d004f81d06b52
|
|
92
|
-
nodes/ps-strategy-best-save.html,1645811434338,d9fa9da54318ed33671177b04f4416a23e329e1d3306ea68a71cc9647999d54c
|
|
93
|
-
nodes/strategy-input.html,1645811434408,a62cb80a8a2ddf419b8a778f25e77ce8c982337de0405341f561848aac76def1
|
|
94
|
-
nodes/ps-strategy-heat-capacitor.html,1645811434379,e92a1e16315898e798bd84cd54ef9221bb39cfcb6c35c37f25ad3d1c379f47d9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[143],{7453:(e,t,a)=>{a.d(t,{g:()=>l});var n=a(7478),d=a(6971),s=a(1598),o=a(7406),i=a(6252),r=a(7444);const l=[n.Z,d.Z,s.Z,o.Z,({app:e})=>{e.component("BestSaveVerificator",(0,i.RC)((()=>Promise.all([a.e(896),a.e(331)]).then(a.bind(a,6331))))),e.component("DonateButtons",(0,i.RC)((()=>Promise.all([a.e(835),a.e(811)]).then(a.bind(a,6811)))))},({app:e,router:t,siteData:a})=>{e.use(r.ZP)}]},9947:(e,t,a)=>{a.d(t,{p:()=>n});const n=[a(3051).Z]},4611:(e,t,a)=>{a.d(t,{l:()=>o});var n=a(1263),d=a(6243),s=a(8866);const o=[n.Z,d.Z,s.Z]},4150:(e,t,a)=>{a.d(t,{Z:()=>d});var n=a(6252);const d={404:(0,n.RC)((()=>a.e(491).then(a.bind(a,8491)))),Layout:(0,n.RC)((()=>a.e(229).then(a.bind(a,4229))))}},6056:(e,t,a)=>{a.d(t,{b:()=>d});var n=a(6252);const d={"v-8daa1a0e":(0,n.RC)((()=>a.e(509).then(a.bind(a,425)))),"v-510ed0d4":(0,n.RC)((()=>a.e(495).then(a.bind(a,7203)))),"v-0aca7ba6":(0,n.RC)((()=>a.e(27).then(a.bind(a,9637)))),"v-84304104":(0,n.RC)((()=>a.e(254).then(a.bind(a,7994)))),"v-1b3a0ab8":(0,n.RC)((()=>a.e(545).then(a.bind(a,4657)))),"v-0607240a":(0,n.RC)((()=>a.e(35).then(a.bind(a,3328)))),"v-61f728ca":(0,n.RC)((()=>a.e(283).then(a.bind(a,6546)))),"v-30acb564":(0,n.RC)((()=>a.e(901).then(a.bind(a,2870)))),"v-5db8da3a":(0,n.RC)((()=>a.e(625).then(a.bind(a,9426)))),"v-7c87f26e":(0,n.RC)((()=>a.e(889).then(a.bind(a,7883)))),"v-7446a652":(0,n.RC)((()=>a.e(969).then(a.bind(a,1773)))),"v-29504124":(0,n.RC)((()=>a.e(525).then(a.bind(a,3361)))),"v-fffb8e28":(0,n.RC)((()=>a.e(807).then(a.bind(a,8253)))),"v-e8c55052":(0,n.RC)((()=>a.e(651).then(a.bind(a,5262)))),"v-b4a42144":(0,n.RC)((()=>a.e(407).then(a.bind(a,1206)))),"v-1ad821fa":(0,n.RC)((()=>a.e(22).then(a.bind(a,8718)))),"v-08683c60":(0,n.RC)((()=>a.e(332).then(a.bind(a,7143)))),"v-1e2b191e":(0,n.RC)((()=>a.e(737).then(a.bind(a,2733)))),"v-677dfaed":(0,n.RC)((()=>a.e(745).then(a.bind(a,3645)))),"v-0b5e3c8c":(0,n.RC)((()=>a.e(363).then(a.bind(a,2435)))),"v-4c28314d":(0,n.RC)((()=>a.e(684).then(a.bind(a,5294)))),"v-4637f9e4":(0,n.RC)((()=>a.e(418).then(a.bind(a,7951)))),"v-5954bcb2":(0,n.RC)((()=>a.e(317).then(a.bind(a,886)))),"v-3706649a":(0,n.RC)((()=>a.e(88).then(a.bind(a,8109))))}},9706:(e,t,a)=>{a.d(t,{T:()=>n});const n={"v-8daa1a0e":()=>a.e(509).then(a.bind(a,6464)).then((({data:e})=>e)),"v-510ed0d4":()=>a.e(495).then(a.bind(a,3707)).then((({data:e})=>e)),"v-0aca7ba6":()=>a.e(27).then(a.bind(a,7726)).then((({data:e})=>e)),"v-84304104":()=>a.e(254).then(a.bind(a,8800)).then((({data:e})=>e)),"v-1b3a0ab8":()=>a.e(545).then(a.bind(a,6739)).then((({data:e})=>e)),"v-0607240a":()=>a.e(35).then(a.bind(a,3811)).then((({data:e})=>e)),"v-61f728ca":()=>a.e(283).then(a.bind(a,4773)).then((({data:e})=>e)),"v-30acb564":()=>a.e(901).then(a.bind(a,8835)).then((({data:e})=>e)),"v-5db8da3a":()=>a.e(625).then(a.bind(a,8682)).then((({data:e})=>e)),"v-7c87f26e":()=>a.e(889).then(a.bind(a,9459)).then((({data:e})=>e)),"v-7446a652":()=>a.e(969).then(a.bind(a,4129)).then((({data:e})=>e)),"v-29504124":()=>a.e(525).then(a.bind(a,5682)).then((({data:e})=>e)),"v-fffb8e28":()=>a.e(807).then(a.bind(a,9570)).then((({data:e})=>e)),"v-e8c55052":()=>a.e(651).then(a.bind(a,3029)).then((({data:e})=>e)),"v-b4a42144":()=>a.e(407).then(a.bind(a,7952)).then((({data:e})=>e)),"v-1ad821fa":()=>a.e(22).then(a.bind(a,2336)).then((({data:e})=>e)),"v-08683c60":()=>a.e(332).then(a.bind(a,5845)).then((({data:e})=>e)),"v-1e2b191e":()=>a.e(737).then(a.bind(a,1510)).then((({data:e})=>e)),"v-677dfaed":()=>a.e(745).then(a.bind(a,192)).then((({data:e})=>e)),"v-0b5e3c8c":()=>a.e(363).then(a.bind(a,3594)).then((({data:e})=>e)),"v-4c28314d":()=>a.e(684).then(a.bind(a,4907)).then((({data:e})=>e)),"v-4637f9e4":()=>a.e(418).then(a.bind(a,3959)).then((({data:e})=>e)),"v-5954bcb2":()=>a.e(317).then(a.bind(a,1535)).then((({data:e})=>e)),"v-3706649a":()=>a.e(88).then(a.bind(a,1801)).then((({data:e})=>e))}},4634:(e,t,a)=>{a.d(t,{g:()=>d});var n=a(4802);const d=[["v-8daa1a0e","/",{title:""},["/index.html","/README.md"]],["v-510ed0d4","/changelog/",{title:"Change Log"},["/changelog/index.html","/changelog/README.md"]],["v-0aca7ba6","/examples/",{title:"Examples"},["/examples/index.html","/examples/README.md"]],["v-84304104","/examples/example-cascade-temperature-control.html",{title:"Cascade temperature control"},["/examples/example-cascade-temperature-control","/examples/example-cascade-temperature-control.md"]],["v-1b3a0ab8","/examples/example-heat-capacitor.html",{title:"Simple heat capacitor strategy flow"},["/examples/example-heat-capacitor","/examples/example-heat-capacitor.md"]],["v-0607240a","/examples/example-next-schedule-entity.html",{title:"Output schedule to a sensor entity"},["/examples/example-next-schedule-entity","/examples/example-next-schedule-entity.md"]],["v-61f728ca","/examples/example-nordpool-current-state.html",{title:"Nord Pool and current state node"},["/examples/example-nordpool-current-state","/examples/example-nordpool-current-state.md"]],["v-30acb564","/examples/example-nordpool-events-state.html",{title:"Nord Pool and events: state node"},["/examples/example-nordpool-events-state","/examples/example-nordpool-events-state.md"]],["v-5db8da3a","/examples/example-tibber-mqtt.html",{title:"Tibber, a switch and MQTT"},["/examples/example-tibber-mqtt","/examples/example-tibber-mqtt.md"]],["v-7c87f26e","/contribute/",{title:"Contribute"},["/contribute/index.html","/contribute/README.md"]],["v-7446a652","/faq/",{title:"FAQ"},["/faq/index.html","/faq/README.md"]],["v-29504124","/faq/best-save-viewer.html",{title:"Best Save Viewer"},["/faq/best-save-viewer","/faq/best-save-viewer.md"]],["v-fffb8e28","/guide/",{title:"Guide"},["/guide/index.html","/guide/README.md"]],["v-e8c55052","/nodes/",{title:"Nodes"},["/nodes/index.html","/nodes/README.md"]],["v-b4a42144","/nodes/old-power-saver-doc.html",{title:"node-red-contrib-power-saver v2 (deprecated)"},["/nodes/old-power-saver-doc","/nodes/old-power-saver-doc.md"]],["v-1ad821fa","/nodes/power-saver.html",{title:"power-saver"},["/nodes/power-saver","/nodes/power-saver.md"]],["v-08683c60","/nodes/ps-elvia-add-tariff.html",{title:"ps-elvia-add-tariff"},["/nodes/ps-elvia-add-tariff","/nodes/ps-elvia-add-tariff.md"]],["v-1e2b191e","/nodes/ps-general-add-tariff.html",{title:"ps-general-add-tariff"},["/nodes/ps-general-add-tariff","/nodes/ps-general-add-tariff.md"]],["v-677dfaed","/nodes/ps-receive-price.html",{title:"ps-receive-price"},["/nodes/ps-receive-price","/nodes/ps-receive-price.md"]],["v-0b5e3c8c","/nodes/ps-strategy-best-save.html",{title:"ps-strategy-best-save"},["/nodes/ps-strategy-best-save","/nodes/ps-strategy-best-save.md"]],["v-4c28314d","/nodes/ps-strategy-heat-capacitor.html",{title:"ps-strategy-heat-capacitor Experimental"},["/nodes/ps-strategy-heat-capacitor","/nodes/ps-strategy-heat-capacitor.md"]],["v-4637f9e4","/nodes/ps-strategy-lowest-price.html",{title:"ps-strategy-lowest-price"},["/nodes/ps-strategy-lowest-price","/nodes/ps-strategy-lowest-price.md"]],["v-5954bcb2","/nodes/strategy-input.html",{title:"Strategy input format"},["/nodes/strategy-input","/nodes/strategy-input.md"]],["v-3706649a","/404.html",{title:""},["/404"]]].reduce(((e,[t,a,d,s])=>(e.push({name:t,path:a,component:n.Y,meta:d},...s.map((e=>({path:e,redirect:a})))),e)),[{name:"404",path:"/:catchAll(.*)",component:n.Y}])},5220:(e,t,a)=>{a.d(t,{H:()=>n});const n={base:"/",lang:"en-US",title:"Power Saver",description:"A Node-RED note to save money on hourly changing power prices",head:[["link",{rel:"shortcut icon",type:"image/x-icon",href:"euro.png"}],["script",{async:!0,src:"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9857859182772006",crossorigin:"anonymous"}]],locales:{}}},2232:(e,t,a)=>{a.d(t,{f:()=>n});const n={contributors:!1,navbar:[{text:"Guide",link:"/guide/"},{text:"Nodes",link:"/nodes/"},{text:"Examples",link:"/examples/"},{text:"FAQ",link:"/faq/"},{text:"Contribute",link:"/contribute/"},{text:"Changes",link:"/changelog/"},{text:"GitHub",link:"https://github.com/ottopaulsen/node-red-contrib-power-saver"}],sidebar:{"/guide/":[{text:"Guide",children:["/guide/README.md"]}],"/nodes/":[{text:"Nodes",children:[{text:"Power Saver",link:"/nodes/power-saver.md"},{text:"Strategy nodes",children:["/nodes/ps-strategy-best-save.md","/nodes/ps-strategy-lowest-price.md",{text:"ps-strategy-heat-capacitor",link:"/nodes/ps-strategy-heat-capacitor.md"}]},{text:"Utility nodes",children:["/nodes/ps-receive-price.md"]},{text:"Grid tariff nodes",children:["/nodes/ps-general-add-tariff.md","/nodes/ps-elvia-add-tariff.md"]}]},{text:"Data format",children:["/nodes/strategy-input.md"]}],"/examples/":[{text:"Examples",children:["/examples/example-nordpool-current-state.md","/examples/example-nordpool-events-state.md","/examples/example-tibber-mqtt.md","/examples/example-heat-capacitor.md","/examples/example-cascade-temperature-control.md"]}],"/faq/":[{text:"FAQ",children:["/faq/README.md"]}],"/contribute/":[{text:"Contribute",children:["/contribute/README.md"]}],"/changelog/":[{text:"Changelog",children:["/changelog/README.md"]}]},locales:{"/":{selectLanguageName:"English"}},logo:null,darkMode:!0,repo:null,selectLanguageText:"Languages",selectLanguageAriaLabel:"Select language",sidebarDepth:2,editLink:!0,editLinkText:"Edit this page",lastUpdated:!0,lastUpdatedText:"Last Updated",contributorsText:"Contributors",notFound:["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],backToHome:"Take me home",openInNewWindow:"open in new window",toggleDarkMode:"toggle dark mode",toggleSidebar:"toggle sidebar"}}},e=>{e.O(0,[979,405],(()=>(8336,e(e.s=8336)))),e.O()}]);
|