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.
Files changed (36) hide show
  1. package/docs/.vuepress/config.js +8 -2
  2. package/docs/.vuepress/dist/.nojekyll +0 -0
  3. package/docs/.vuepress/dist/404.html +4 -4
  4. package/docs/.vuepress/dist/Ukraine-heart-shape-flag.png +0 -0
  5. package/docs/.vuepress/dist/assets/js/app.6c6c1409.js +1 -0
  6. package/docs/.vuepress/dist/changelog/index.html +4 -4
  7. package/docs/.vuepress/dist/contribute/index.html +4 -4
  8. package/docs/.vuepress/dist/examples/example-cascade-temperature-control.html +4 -4
  9. package/docs/.vuepress/dist/examples/example-heat-capacitor.html +4 -4
  10. package/docs/.vuepress/dist/examples/example-next-schedule-entity.html +4 -4
  11. package/docs/.vuepress/dist/examples/example-nordpool-current-state.html +4 -4
  12. package/docs/.vuepress/dist/examples/example-nordpool-events-state.html +4 -4
  13. package/docs/.vuepress/dist/examples/example-tibber-mqtt.html +4 -4
  14. package/docs/.vuepress/dist/examples/index.html +4 -4
  15. package/docs/.vuepress/dist/faq/best-save-viewer.html +4 -4
  16. package/docs/.vuepress/dist/faq/index.html +4 -4
  17. package/docs/.vuepress/dist/guide/index.html +4 -4
  18. package/docs/.vuepress/dist/index.html +4 -4
  19. package/docs/.vuepress/dist/nodes/index.html +4 -4
  20. package/docs/.vuepress/dist/nodes/old-power-saver-doc.html +4 -4
  21. package/docs/.vuepress/dist/nodes/power-saver.html +4 -4
  22. package/docs/.vuepress/dist/nodes/ps-elvia-add-tariff.html +4 -4
  23. package/docs/.vuepress/dist/nodes/ps-general-add-tariff.html +4 -4
  24. package/docs/.vuepress/dist/nodes/ps-receive-price.html +4 -4
  25. package/docs/.vuepress/dist/nodes/ps-strategy-best-save.html +4 -4
  26. package/docs/.vuepress/dist/nodes/ps-strategy-heat-capacitor.html +4 -4
  27. package/docs/.vuepress/dist/nodes/ps-strategy-lowest-price.html +4 -4
  28. package/docs/.vuepress/dist/nodes/strategy-input.html +4 -4
  29. package/docs/.vuepress/public/Ukraine-heart-shape-flag.png +0 -0
  30. package/docs/changelog/README.md +4 -0
  31. package/package.json +1 -1
  32. package/src/elvia/elvia-add-tariff.html +7 -1
  33. package/src/elvia/elvia-config.js +7 -0
  34. package/src/elvia/elvia-tariff-types.js +0 -6
  35. package/.firebase/hosting.ZG9jcy8udnVlcHJlc3MvZGlzdA.cache +0 -94
  36. 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://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9857859182772006" crossorigin="anonymous"></script><title>Nodes | 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.dfdee6f9.js" as="script">
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>Nodes | 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 aria-current="page" href="/nodes/" class="router-link-active router-link-exact-active 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 aria-current="page" href="/nodes/" class="router-link-active router-link-exact-active 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">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="nodes" tabindex="-1"><a class="header-anchor" href="#nodes" aria-hidden="true">#</a> Nodes</h1><p>Here is an overview of the nodes, and links to detailed descriptions for eah of them.</p><h2 id="power-saver" tabindex="-1"><a class="header-anchor" href="#power-saver" aria-hidden="true">#</a> <a href="./power-saver">Power Saver</a> <span class="badge warning" style="vertical-align:middle;"><!--[-->deprecated<!--]--></span></h2><p><img src="/assets/img/node-power-saver.51ff2e5d.png" alt="Power Saver node"></p><p>The old node from version 2 is still working, but should be replaced.</p><h2 id="strategy-nodes" tabindex="-1"><a class="header-anchor" href="#strategy-nodes" aria-hidden="true">#</a> Strategy nodes</h2><p>These are the nodes used to calculate and control saving.</p><h3 id="ps-strategy-best-save" tabindex="-1"><a class="header-anchor" href="#ps-strategy-best-save" aria-hidden="true">#</a> <a href="./ps-strategy-best-save">ps-strategy-best-save</a></h3><p><img src="/assets/img/node-ps-strategy-best-save.392292d5.png" alt="ps-strategy-best-save"></p><p>Strategy to find the best hours to postpone power consumption to achieve the most saving.</p><h3 id="ps-strategy-lowest-price" tabindex="-1"><a class="header-anchor" href="#ps-strategy-lowest-price" aria-hidden="true">#</a> <a href="./ps-strategy-lowest-price">ps-strategy-lowest-price</a></h3><p><img src="/assets/img/node-ps-strategy-lowest-price.3a4ad347.png" alt="ps-strategy-lowest-price"></p><p>Strategy to find the x hours with lowest price in a given period each day.</p><h3 id="ps-strategy-heat-capacitor-experimental" tabindex="-1"><a class="header-anchor" href="#ps-strategy-heat-capacitor-experimental" aria-hidden="true">#</a> <a href="./ps-strategy-heat-capacitor">ps-strategy-heat-capacitor</a> <span class="badge warning" style=""><!--[-->Experimental<!--]--></span></h3><p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAABNCAYAAAB9nyxVAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMjHxIGmVAAAGXklEQVR4Xu2dz2vcRhTH8z/tf5Cjj7mmYEyg5GRyCviUa+nFwadsE+cUwh5q7KwpFJKUsJdC6MXFCTE0JadAwaSkbZriH3mdN9JIb0ZPs9pdSZa1X8EHrBnNzFrvozdajeJcISIASlELAXCohQA41EIAHGqhxnh3RA/uf0fD4RBcYjiGHMswvmWohSGPHt6lV+Nb9OHFDfprstYK73/8iuiXr0HNnL68Se+e3aadx/dMaPV4S9RCCcvRphgOCNIsLEoVSdRCB6cizhxaAJsGgjQPZ5Jp041a6OD56iKyBwNBmoezCMc4jLtELXTwTY0WvDaAIO3AMQ7jLlELHRCk/0AQEAWCgCgQBESBIDVzvHWVBqvX6Fipm8rTa7Q+uEp7T5W6CwKC1AwEEXRSkNEKDQYrtMeBGgwsm6O8/mAjKbPMG0iD2o8dW5at0d6qGX8jLd+4XmybCXGdNgtlwbFpe+0zJGOs0IEbU/zOVtqgbVV6Kog4mXY/PeH8s5CCT/D61prfvgqRfvwMkgRLHqu1zT5rkEG0vrLPa38vFiKvc/u+EEVhZqGngsg0LU6srZv/ZGVE+okGtUAaWFUQJbBCLk8sV+eEsf0oP89BTwXxT4iXKdLgOkqDnB1TcnJL+pkqiA2Ya3eV1ksFkVOOhD+P0q/3ewu5uFyKJKjyey5XBgmOTU5QiQAzIPuZJkh45ZdPMSLI6bGSaAYx2M9h6vm4sj6q0FNBwoyRnHQ/eGmd3K9IrJ9Kgrh6l01UQYrjeG09IZJxPNmzTCUvltnpqSAr5q6eT06CvILsSU7LFzl5pf1kgeFgKdkrqzeYYB8oQnGd+8z+OEIAr86MvyWFEX0Jweaht4LIE7kUKNmQBdKm1lmAIJcUd4+R7KfZQt6T2JvcxaYXBoJcWoJvOTJ72HOwePZg+icIqBUIAqJAEBAFgoAo9Qry9jV9oU909laUNQQEaYeOCTKkk4/v6fwfw8cJfVaPSYAg7dCyIHfo3zdD+swc3lHqR3R2anrm7fQ1/Veoz4Eg7dCyIBM6Nw3t9mmi1HdckGCtZBmYS5Dt7W3bULJ9f0jPfxhDkDkoLP5dMJPdb2j7gR9fG2MTd7N5Lng7zP7+Ph0eHtLR0ZEHl42fPKHJ5KcZBNmhU77fyO45IIhW3yYsx/7e96Ux5vibLfPBk4MN0ho6uI6PqS6I2LdCXBJB7Mpp+oi7sP6RP/7238PIV2oT0uWA9LG4pQOScOaoEmOzFQXhNKM1kvAx/RbEBNJ7f8OJECztB9lGW1xzx3Ypg1SNsdlqEOS3Azo/OyFi/n5uynqSQbIpJskYVhBb5y8Sli+3J+0giP1Wk26hEH0TRE4VEpc1vPrkXdQqgngvDLUgEQRZhBkzSE4w/fR1ipn5JnWZBClIIKeRpC7MJl0UZKGbVGamr7lLJUi+n00J8huOnGJMuZ06XL3tl+su/kWnhb7mOtggTjMS9UHZmwmdueccxzumTDz3CPftcxCsxXSBhR6USbiRF7ipj9rrA4K0A8c4jLtELXTogtS/fflz5I9jgCDtUK8gv47o5I+f6+f3b/1xDBCkHeoVpEUgSDtAEBAFgoAoEAREgSAgCgQBUSBI17CP5Lvzb4shSNeQghTWftoHgnQZCDI/TQjivZxTthJryJb006u97G+y5qu0KbJPgzpelkHkynAuSdln5PL1jZVkvBpfHYAgKf47GfLdDg6UuIrlFODE8YLrjk36yIQJskHpeLL/aBv5vokTp/57FwhiCV/2KccGyRNEyBPrR5Gn/DhNkGIbKYwVJMhQdQBBLOGLP5IkMC6tr6+GgvhXrU313lWdYtrlwY6MVypIsQ0EidBaBgklkPv255IMEkwP07JBRqkgyCAz0ew9iDjhngQum0hBRNDksTa4+RWfZJNcmPh4miBhG+UeBILk1C0IkwQxJQuEk4IxwRqJoKXBrPI3WTdHxSlCHU8KIsb2RUsRQkCQgCYEmRkvmP0EgiwCBIEgUSAIBFl2IAiIAkFAlIUE4f/4/8OLG2oAmwaCNM/py5vEMQ7jLlELHePdEb0a31ID2DQQpHnePbtNHOMw7hK1UPLo4d0LySIQpFk4e+w8vmdCrMfdoRaGsCScSdoUBYI0A4vBmaOKHIxaqMGpiOcrvqkBlxeO4bRpRaIWAuBQCwFwqIUAJNCV/wHqxZ2/2166bwAAAABJRU5ErkJggg==" alt="ps-strategy-heat-capacitor"></p><p>A strategy for moving consumption from expensive to cheap periods utilizing climate entities and trading principles.</p><h2 id="utility-nodes" tabindex="-1"><a class="header-anchor" href="#utility-nodes" aria-hidden="true">#</a> Utility nodes</h2><h3 id="ps-receive-price" tabindex="-1"><a class="header-anchor" href="#ps-receive-price" aria-hidden="true">#</a> <a href="./ps-receive-price">ps-receive-price</a></h3><p><img src="/assets/img/node-ps-receive-price.76eaa418.png" alt="ps-receive-price"></p><p>Node to convert different types of input data to the format used by the strategy nodes.</p><h2 id="grid-tariff-nodes" tabindex="-1"><a class="header-anchor" href="#grid-tariff-nodes" aria-hidden="true">#</a> Grid tariff nodes</h2><h3 id="ps-general-add-tariff" tabindex="-1"><a class="header-anchor" href="#ps-general-add-tariff" aria-hidden="true">#</a> <a href="./ps-general-add-tariff">ps-general-add-tariff</a></h3><p><img src="/assets/img/node-ps-general-add-tariff.a3cf6f06.png" alt="ps-general-add-tariff"></p><p>Node to add a variable grid tariff (or any value) to the prices before sending them to the strategy nodes.</p><h3 id="ps-elvia-add-tariff" tabindex="-1"><a class="header-anchor" href="#ps-elvia-add-tariff" aria-hidden="true">#</a> <a href="./ps-elvia-add-tariff">ps-elvia-add-tariff</a></h3><p><img src="/assets/img/node-ps-elvia-add-tariff.94ea2b09.png" alt="ps-elvia-add-tariff"></p><p>Node to add Elvia grid tariff to the prices before sending them to the strategy nodes.</p><h2 id="other-nodes" tabindex="-1"><a class="header-anchor" href="#other-nodes" aria-hidden="true">#</a> Other nodes</h2><p>These are a couple of other nodes for using the Elvia API, but these are not important to the Power Saver, so they are not given any further documentation here.</p><h3 id="ps-elvia-tariff-types" tabindex="-1"><a class="header-anchor" href="#ps-elvia-tariff-types" aria-hidden="true">#</a> ps-elvia-tariff-types</h3><p>Use this to get a list of the tariff types available in the Elvia API.</p><h3 id="ps-elvia-tariff" tabindex="-1"><a class="header-anchor" href="#ps-elvia-tariff" aria-hidden="true">#</a> ps-elvia-tariff</h3><p>Use this to get the Elvia grid tariff for a selected tariff type.</p><!--]--></div><footer class="page-meta"><!----><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><!----></footer><!----><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
31
- <script src="/assets/js/runtime~app.f6ac32d7.js" defer></script><script src="/assets/js/405.f4edd94d.js" defer></script><script src="/assets/js/app.dfdee6f9.js" defer></script>
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 aria-current="page" href="/nodes/" class="router-link-active router-link-exact-active 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 aria-current="page" href="/nodes/" class="router-link-active router-link-exact-active 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">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="nodes" tabindex="-1"><a class="header-anchor" href="#nodes" aria-hidden="true">#</a> Nodes</h1><p>Here is an overview of the nodes, and links to detailed descriptions for eah of them.</p><h2 id="power-saver" tabindex="-1"><a class="header-anchor" href="#power-saver" aria-hidden="true">#</a> <a href="./power-saver">Power Saver</a> <span class="badge warning" style="vertical-align:middle;"><!--[-->deprecated<!--]--></span></h2><p><img src="/assets/img/node-power-saver.51ff2e5d.png" alt="Power Saver node"></p><p>The old node from version 2 is still working, but should be replaced.</p><h2 id="strategy-nodes" tabindex="-1"><a class="header-anchor" href="#strategy-nodes" aria-hidden="true">#</a> Strategy nodes</h2><p>These are the nodes used to calculate and control saving.</p><h3 id="ps-strategy-best-save" tabindex="-1"><a class="header-anchor" href="#ps-strategy-best-save" aria-hidden="true">#</a> <a href="./ps-strategy-best-save">ps-strategy-best-save</a></h3><p><img src="/assets/img/node-ps-strategy-best-save.392292d5.png" alt="ps-strategy-best-save"></p><p>Strategy to find the best hours to postpone power consumption to achieve the most saving.</p><h3 id="ps-strategy-lowest-price" tabindex="-1"><a class="header-anchor" href="#ps-strategy-lowest-price" aria-hidden="true">#</a> <a href="./ps-strategy-lowest-price">ps-strategy-lowest-price</a></h3><p><img src="/assets/img/node-ps-strategy-lowest-price.3a4ad347.png" alt="ps-strategy-lowest-price"></p><p>Strategy to find the x hours with lowest price in a given period each day.</p><h3 id="ps-strategy-heat-capacitor-experimental" tabindex="-1"><a class="header-anchor" href="#ps-strategy-heat-capacitor-experimental" aria-hidden="true">#</a> <a href="./ps-strategy-heat-capacitor">ps-strategy-heat-capacitor</a> <span class="badge warning" style=""><!--[-->Experimental<!--]--></span></h3><p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAABNCAYAAAB9nyxVAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMjHxIGmVAAAGXklEQVR4Xu2dz2vcRhTH8z/tf5Cjj7mmYEyg5GRyCviUa+nFwadsE+cUwh5q7KwpFJKUsJdC6MXFCTE0JadAwaSkbZriH3mdN9JIb0ZPs9pdSZa1X8EHrBnNzFrvozdajeJcISIASlELAXCohQA41EIAHGqhxnh3RA/uf0fD4RBcYjiGHMswvmWohSGPHt6lV+Nb9OHFDfprstYK73/8iuiXr0HNnL68Se+e3aadx/dMaPV4S9RCCcvRphgOCNIsLEoVSdRCB6cizhxaAJsGgjQPZ5Jp041a6OD56iKyBwNBmoezCMc4jLtELXTwTY0WvDaAIO3AMQ7jLlELHRCk/0AQEAWCgCgQBESBIDVzvHWVBqvX6Fipm8rTa7Q+uEp7T5W6CwKC1AwEEXRSkNEKDQYrtMeBGgwsm6O8/mAjKbPMG0iD2o8dW5at0d6qGX8jLd+4XmybCXGdNgtlwbFpe+0zJGOs0IEbU/zOVtqgbVV6Kog4mXY/PeH8s5CCT/D61prfvgqRfvwMkgRLHqu1zT5rkEG0vrLPa38vFiKvc/u+EEVhZqGngsg0LU6srZv/ZGVE+okGtUAaWFUQJbBCLk8sV+eEsf0oP89BTwXxT4iXKdLgOkqDnB1TcnJL+pkqiA2Ya3eV1ksFkVOOhD+P0q/3ewu5uFyKJKjyey5XBgmOTU5QiQAzIPuZJkh45ZdPMSLI6bGSaAYx2M9h6vm4sj6q0FNBwoyRnHQ/eGmd3K9IrJ9Kgrh6l01UQYrjeG09IZJxPNmzTCUvltnpqSAr5q6eT06CvILsSU7LFzl5pf1kgeFgKdkrqzeYYB8oQnGd+8z+OEIAr86MvyWFEX0Jweaht4LIE7kUKNmQBdKm1lmAIJcUd4+R7KfZQt6T2JvcxaYXBoJcWoJvOTJ72HOwePZg+icIqBUIAqJAEBAFgoAo9Qry9jV9oU909laUNQQEaYeOCTKkk4/v6fwfw8cJfVaPSYAg7dCyIHfo3zdD+swc3lHqR3R2anrm7fQ1/Veoz4Eg7dCyIBM6Nw3t9mmi1HdckGCtZBmYS5Dt7W3bULJ9f0jPfxhDkDkoLP5dMJPdb2j7gR9fG2MTd7N5Lng7zP7+Ph0eHtLR0ZEHl42fPKHJ5KcZBNmhU77fyO45IIhW3yYsx/7e96Ux5vibLfPBk4MN0ho6uI6PqS6I2LdCXBJB7Mpp+oi7sP6RP/7238PIV2oT0uWA9LG4pQOScOaoEmOzFQXhNKM1kvAx/RbEBNJ7f8OJECztB9lGW1xzx3Ypg1SNsdlqEOS3Azo/OyFi/n5uynqSQbIpJskYVhBb5y8Sli+3J+0giP1Wk26hEH0TRE4VEpc1vPrkXdQqgngvDLUgEQRZhBkzSE4w/fR1ipn5JnWZBClIIKeRpC7MJl0UZKGbVGamr7lLJUi+n00J8huOnGJMuZ06XL3tl+su/kWnhb7mOtggTjMS9UHZmwmdueccxzumTDz3CPftcxCsxXSBhR6USbiRF7ipj9rrA4K0A8c4jLtELXTogtS/fflz5I9jgCDtUK8gv47o5I+f6+f3b/1xDBCkHeoVpEUgSDtAEBAFgoAoEAREgSAgCgQBUSBI17CP5Lvzb4shSNeQghTWftoHgnQZCDI/TQjivZxTthJryJb006u97G+y5qu0KbJPgzpelkHkynAuSdln5PL1jZVkvBpfHYAgKf47GfLdDg6UuIrlFODE8YLrjk36yIQJskHpeLL/aBv5vokTp/57FwhiCV/2KccGyRNEyBPrR5Gn/DhNkGIbKYwVJMhQdQBBLOGLP5IkMC6tr6+GgvhXrU313lWdYtrlwY6MVypIsQ0EidBaBgklkPv255IMEkwP07JBRqkgyCAz0ew9iDjhngQum0hBRNDksTa4+RWfZJNcmPh4miBhG+UeBILk1C0IkwQxJQuEk4IxwRqJoKXBrPI3WTdHxSlCHU8KIsb2RUsRQkCQgCYEmRkvmP0EgiwCBIEgUSAIBFl2IAiIAkFAlIUE4f/4/8OLG2oAmwaCNM/py5vEMQ7jLlELHePdEb0a31ID2DQQpHnePbtNHOMw7hK1UPLo4d0LySIQpFk4e+w8vmdCrMfdoRaGsCScSdoUBYI0A4vBmaOKHIxaqMGpiOcrvqkBlxeO4bRpRaIWAuBQCwFwqIUAJNCV/wHqxZ2/2166bwAAAABJRU5ErkJggg==" alt="ps-strategy-heat-capacitor"></p><p>A strategy for moving consumption from expensive to cheap periods utilizing climate entities and trading principles.</p><h2 id="utility-nodes" tabindex="-1"><a class="header-anchor" href="#utility-nodes" aria-hidden="true">#</a> Utility nodes</h2><h3 id="ps-receive-price" tabindex="-1"><a class="header-anchor" href="#ps-receive-price" aria-hidden="true">#</a> <a href="./ps-receive-price">ps-receive-price</a></h3><p><img src="/assets/img/node-ps-receive-price.76eaa418.png" alt="ps-receive-price"></p><p>Node to convert different types of input data to the format used by the strategy nodes.</p><h2 id="grid-tariff-nodes" tabindex="-1"><a class="header-anchor" href="#grid-tariff-nodes" aria-hidden="true">#</a> Grid tariff nodes</h2><h3 id="ps-general-add-tariff" tabindex="-1"><a class="header-anchor" href="#ps-general-add-tariff" aria-hidden="true">#</a> <a href="./ps-general-add-tariff">ps-general-add-tariff</a></h3><p><img src="/assets/img/node-ps-general-add-tariff.a3cf6f06.png" alt="ps-general-add-tariff"></p><p>Node to add a variable grid tariff (or any value) to the prices before sending them to the strategy nodes.</p><h3 id="ps-elvia-add-tariff" tabindex="-1"><a class="header-anchor" href="#ps-elvia-add-tariff" aria-hidden="true">#</a> <a href="./ps-elvia-add-tariff">ps-elvia-add-tariff</a></h3><p><img src="/assets/img/node-ps-elvia-add-tariff.94ea2b09.png" alt="ps-elvia-add-tariff"></p><p>Node to add Elvia grid tariff to the prices before sending them to the strategy nodes.</p><h2 id="other-nodes" tabindex="-1"><a class="header-anchor" href="#other-nodes" aria-hidden="true">#</a> Other nodes</h2><p>These are a couple of other nodes for using the Elvia API, but these are not important to the Power Saver, so they are not given any further documentation here.</p><h3 id="ps-elvia-tariff-types" tabindex="-1"><a class="header-anchor" href="#ps-elvia-tariff-types" aria-hidden="true">#</a> ps-elvia-tariff-types</h3><p>Use this to get a list of the tariff types available in the Elvia API.</p><h3 id="ps-elvia-tariff" tabindex="-1"><a class="header-anchor" href="#ps-elvia-tariff" aria-hidden="true">#</a> ps-elvia-tariff</h3><p>Use this to get the Elvia grid tariff for a selected tariff type.</p><!--]--></div><footer class="page-meta"><!----><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><!----></footer><!----><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
31
+ <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>
32
32
  </body>
33
33
  </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://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9857859182772006" crossorigin="anonymous"></script><title>node-red-contrib-power-saver v2 (deprecated) | 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.dfdee6f9.js" as="script">
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>node-red-contrib-power-saver v2 (deprecated) | 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">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">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="node-red-contrib-power-saver-v2-deprecated" tabindex="-1"><a class="header-anchor" href="#node-red-contrib-power-saver-v2-deprecated" aria-hidden="true">#</a> node-red-contrib-power-saver v2 (deprecated)</h1><p>A Node-RED node to save money when power prices are changing. Saving is done by postponing power consumption until the price is lower.</p><p>You can configure maximum number of hours to save in a sequence, and minimum time to recover after a maximum saving period.</p><p><img src="https://github.com/ottopaulsen/node-red-contrib-power-saver/blob/main/doc/node-red-contrib-power-saver-flow.png?raw=true" alt="Normal flow"></p><p>You can use it to control for example a heater, a water heater or any other power consumer that is acceptable to turn off now and then.</p><p>The node takes power prices per hour as input, and sends output to turn a switch on or off based on the power price. It also outputs the schedule that is planned, as well as how much you save per kWh for each of the hours that are turned off, assuming that the same power is used as soon as the power is turned on.</p><p>Power prices may be received from Tibber, Nord Pool or any other source that gives price per hour for today and optionally tomorrow. It is primarily made to be used together with Home Assistant (HA), but there is no dependency to HA, so it can just as well be used by itself.</p><p>The node can also be used in combination with MagicMirror with the MMM-MQTT and MMM-Tibber modules, in order to get the savings displayed on the MM screen in the MMM-Tibber module.</p><p><strong>NB! WIP</strong></p><p>This node is currently rather new, and has been tried for a few weeks, enough to come in a version two with improved savings plan.</p><p>Feel free to try it, and report back problems or ideas as <a href="https://github.com/ottopaulsen/node-red-contrib-power-saver/issues" target="_blank" rel="noopener noreferrer">Github issues<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>.</p><h2 id="installation" tabindex="-1"><a class="header-anchor" href="#installation" aria-hidden="true">#</a> Installation</h2><p>Install in Node-RED via the Manage Palette menu.</p><p>May also be installed via npm:</p><p><code>npm install node-red-contrib-power-saver</code></p><p>Make sure that you upgrade now and then to get the latest version. See <a href="CHANGELOG">changelog</a> for changes.</p><h2 id="input" tabindex="-1"><a class="header-anchor" href="#input" aria-hidden="true">#</a> Input</h2><p>3 different types of input are accepted:</p><ul><li>Tibber</li><li>Nordpool</li><li>Other sources in a specific JSON format</li></ul><p>Choose the one that fits you best. Of course, all inputs are JSON, but the Tibber and Nord Pool alternatives are designed to connect directly to those sources with a minimum effort.</p><p>From version 2.1.0, you can also send a config object as input for dynamically changing the node config.</p><h3 id="tibber-input" tabindex="-1"><a class="header-anchor" href="#tibber-input" aria-hidden="true">#</a> Tibber input</h3><p>If you are a Tibber customer, you can use the <code>tibber-query</code> node from the <a href="https://flows.nodered.org/node/node-red-contrib-tibber-api" target="_blank" rel="noopener noreferrer"><code>node-red-contrib-tibber-api</code> node<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>. Set it up with the following query:</p><div class="language-gql ext-gql line-numbers-mode"><pre class="language-gql"><code>{
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">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="node-red-contrib-power-saver-v2-deprecated" tabindex="-1"><a class="header-anchor" href="#node-red-contrib-power-saver-v2-deprecated" aria-hidden="true">#</a> node-red-contrib-power-saver v2 (deprecated)</h1><p>A Node-RED node to save money when power prices are changing. Saving is done by postponing power consumption until the price is lower.</p><p>You can configure maximum number of hours to save in a sequence, and minimum time to recover after a maximum saving period.</p><p><img src="https://github.com/ottopaulsen/node-red-contrib-power-saver/blob/main/doc/node-red-contrib-power-saver-flow.png?raw=true" alt="Normal flow"></p><p>You can use it to control for example a heater, a water heater or any other power consumer that is acceptable to turn off now and then.</p><p>The node takes power prices per hour as input, and sends output to turn a switch on or off based on the power price. It also outputs the schedule that is planned, as well as how much you save per kWh for each of the hours that are turned off, assuming that the same power is used as soon as the power is turned on.</p><p>Power prices may be received from Tibber, Nord Pool or any other source that gives price per hour for today and optionally tomorrow. It is primarily made to be used together with Home Assistant (HA), but there is no dependency to HA, so it can just as well be used by itself.</p><p>The node can also be used in combination with MagicMirror with the MMM-MQTT and MMM-Tibber modules, in order to get the savings displayed on the MM screen in the MMM-Tibber module.</p><p><strong>NB! WIP</strong></p><p>This node is currently rather new, and has been tried for a few weeks, enough to come in a version two with improved savings plan.</p><p>Feel free to try it, and report back problems or ideas as <a href="https://github.com/ottopaulsen/node-red-contrib-power-saver/issues" target="_blank" rel="noopener noreferrer">Github issues<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>.</p><h2 id="installation" tabindex="-1"><a class="header-anchor" href="#installation" aria-hidden="true">#</a> Installation</h2><p>Install in Node-RED via the Manage Palette menu.</p><p>May also be installed via npm:</p><p><code>npm install node-red-contrib-power-saver</code></p><p>Make sure that you upgrade now and then to get the latest version. See <a href="CHANGELOG">changelog</a> for changes.</p><h2 id="input" tabindex="-1"><a class="header-anchor" href="#input" aria-hidden="true">#</a> Input</h2><p>3 different types of input are accepted:</p><ul><li>Tibber</li><li>Nordpool</li><li>Other sources in a specific JSON format</li></ul><p>Choose the one that fits you best. Of course, all inputs are JSON, but the Tibber and Nord Pool alternatives are designed to connect directly to those sources with a minimum effort.</p><p>From version 2.1.0, you can also send a config object as input for dynamically changing the node config.</p><h3 id="tibber-input" tabindex="-1"><a class="header-anchor" href="#tibber-input" aria-hidden="true">#</a> Tibber input</h3><p>If you are a Tibber customer, you can use the <code>tibber-query</code> node from the <a href="https://flows.nodered.org/node/node-red-contrib-tibber-api" target="_blank" rel="noopener noreferrer"><code>node-red-contrib-tibber-api</code> node<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>. Set it up with the following query:</p><div class="language-gql ext-gql line-numbers-mode"><pre class="language-gql"><code>{
31
31
  viewer {
32
32
  homes {
33
33
  currentSubscription {
@@ -110,6 +110,6 @@
110
110
  <span class="token punctuation">}</span>
111
111
  <span class="token punctuation">}</span>
112
112
  </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></div></div><p>All the variables in the config object are optional. You can send only those you want to change.</p><p>The config sent like this will be valid until a new config is sent the same way, or until the flow is restarted. On a restart, the original config set up in the node will be used.</p><p>When a config is sent like this, the schedule will be replanned based on the last previously received price data. If no price data has been received, no scheduling is done.</p><h2 id="algorithm" tabindex="-1"><a class="header-anchor" href="#algorithm" aria-hidden="true">#</a> Algorithm</h2><p>The calculation that decides what hours to turn off works as follows:</p><ol><li>A matrix (x * y) is created where x is the number of hours we have price information for, and y is the configured maximum number of hours to turn off in a sequence.</li><li>The matrix is filled with how much you save by turning off hour x for y hours.</li><li>The matrix is processed calculating all possibilities for turning off a number of hours in a sequence and by that saving money. In this process all non-saving sequences are discarded. Also, if the average saving per hour is less than what you have configured as minimum amount to save per kWh, the sequence is discarded.</li><li>The remaining sequences are sorted by how much that is saved, in descending order.</li><li>Next, a table with one value per hour is created, with all hours in state &quot;on&quot;.</li><li>Then the saving sequences is applied one by one, turning off the hours in each sequence, discarding sequences that lead to any violation of the rules set by the config.</li><li>When all sequences are processed, the resulting table shows a pretty good savings plan, that in most cases would be the optimal plan.</li></ol><p>I say &quot;in most cases&quot;, because there is a chance that a group of two or more sequences combined can give a better plan than a single sequence preceeding those two, but where the selection of the one sequence causes the group to be discarded. If anyone encounters this situation, I would be happy to receive the price data set, and try to improve the algorithm even further.</p><h2 id="integration-with-magicmirror" tabindex="-1"><a class="header-anchor" href="#integration-with-magicmirror" aria-hidden="true">#</a> Integration with MagicMirror</h2><p>Are you using <a href="https://magicmirror.builders/" target="_blank" rel="noopener noreferrer">MagicMirror<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>? Are you also using <a href="https://tibber.com/" target="_blank" rel="noopener noreferrer">Tibber<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>? If so, there is a module for MM called <a href="https://github.com/ottopaulsen/MMM-Tibber" target="_blank" rel="noopener noreferrer">MMM-Tibber<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>, that easily can be used to show savings from this node.</p><p><img src="https://github.com/ottopaulsen/MMM-Tibber/blob/master/doc/MMM-Tibber-screenshot-savings-graph.png?raw=true" alt="Show savings in MMM-Tibber"></p><p>The purple lines show savings per kWh.</p><p>Read more about this in the <a href="https://github.com/ottopaulsen/MMM-Tibber#show-savings" target="_blank" rel="noopener noreferrer">MMM-Tibber documentation<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>.</p><h2 id="change-log" tabindex="-1"><a class="header-anchor" href="#change-log" aria-hidden="true">#</a> Change Log</h2><p>See <a href="/nodes/CHANGELOG.html" class="">CHANGELOG.md</a></p><h2 id="contribute" tabindex="-1"><a class="header-anchor" href="#contribute" aria-hidden="true">#</a> Contribute</h2><p>Contributions are welcome. Please start by creating a Github Issue with suggested changes, and state what you would like to do.</p><!--]--></div><footer class="page-meta"><!----><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><!----></footer><!----><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
113
- <script src="/assets/js/runtime~app.f6ac32d7.js" defer></script><script src="/assets/js/405.f4edd94d.js" defer></script><script src="/assets/js/app.dfdee6f9.js" defer></script>
113
+ <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>
114
114
  </body>
115
115
  </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://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9857859182772006" crossorigin="anonymous"></script><title>power-saver | 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.dfdee6f9.js" as="script">
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>power-saver | 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 active" 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">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="power-saver" tabindex="-1"><a class="header-anchor" href="#power-saver" aria-hidden="true">#</a> power-saver <span class="badge warning" style="vertical-align:middle;"><!--[-->deprecated<!--]--></span></h1><p><img src="/assets/img/node-power-saver.51ff2e5d.png" alt="Power Saver node"></p><p>This is the node from version 2. It is still working, but should be replaced.</p><p>To migrate, just replace the Power Saver node by a combination of the ps-receive-price and the ps-best-save nodes:</p><p>Replace the <code>Power Saver</code> node from version 2:</p><p><img src="/assets/img/migrate-power-saver.aae13f9d.png" alt="Power Saver node"></p><p>with this combination of <code>ps-receive-price</code> and <code>ps-strategy-best-save</code> from version 3:</p><p><img src="/assets/img/migrate-best-save.f73420f6.png" alt="Migrate Power Saver"></p><p>The configuration is done in the <code>ps-strategy-best-save</code> node, and is the same as in the old <code>Power Saver</code> node.</p><p>Should you need it, here is the <a href="./old-power-saver-doc">old documentation</a> for the PowerSaver node from version 2.</p><!--]--></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="next"><a href="/nodes/ps-strategy-best-save.html" class="" aria-label="ps-strategy-best-save"><!--[--><!--]--> ps-strategy-best-save <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
31
- <script src="/assets/js/runtime~app.f6ac32d7.js" defer></script><script src="/assets/js/405.f4edd94d.js" defer></script><script src="/assets/js/app.dfdee6f9.js" defer></script>
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 active" 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">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="power-saver" tabindex="-1"><a class="header-anchor" href="#power-saver" aria-hidden="true">#</a> power-saver <span class="badge warning" style="vertical-align:middle;"><!--[-->deprecated<!--]--></span></h1><p><img src="/assets/img/node-power-saver.51ff2e5d.png" alt="Power Saver node"></p><p>This is the node from version 2. It is still working, but should be replaced.</p><p>To migrate, just replace the Power Saver node by a combination of the ps-receive-price and the ps-best-save nodes:</p><p>Replace the <code>Power Saver</code> node from version 2:</p><p><img src="/assets/img/migrate-power-saver.aae13f9d.png" alt="Power Saver node"></p><p>with this combination of <code>ps-receive-price</code> and <code>ps-strategy-best-save</code> from version 3:</p><p><img src="/assets/img/migrate-best-save.f73420f6.png" alt="Migrate Power Saver"></p><p>The configuration is done in the <code>ps-strategy-best-save</code> node, and is the same as in the old <code>Power Saver</code> node.</p><p>Should you need it, here is the <a href="./old-power-saver-doc">old documentation</a> for the PowerSaver node from version 2.</p><!--]--></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="next"><a href="/nodes/ps-strategy-best-save.html" class="" aria-label="ps-strategy-best-save"><!--[--><!--]--> ps-strategy-best-save <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
31
+ <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>
32
32
  </body>
33
33
  </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://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9857859182772006" crossorigin="anonymous"></script><title>ps-elvia-add-tariff | 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.dfdee6f9.js" as="script">
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-elvia-add-tariff | 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">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 active">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 aria-current="page" href="/nodes/ps-elvia-add-tariff.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="ps-elvia-add-tariff"><!--[--><!--]--> ps-elvia-add-tariff <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-elvia-add-tariff.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-elvia-add-tariff.html#configuration" class="router-link-active router-link-exact-active sidebar-item" aria-label="Configuration"><!--[--><!--]--> Configuration <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-elvia-add-tariff.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-elvia-add-tariff.html#output" class="router-link-active router-link-exact-active sidebar-item" aria-label="Output"><!--[--><!--]--> Output <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></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-elvia-add-tariff" tabindex="-1"><a class="header-anchor" href="#ps-elvia-add-tariff" aria-hidden="true">#</a> ps-elvia-add-tariff</h1><p><img src="/assets/img/node-ps-elvia-add-tariff.94ea2b09.png" alt="ps-elvia-add-tariff"></p><p>Node to add grid tariff from Elvia.</p><div class="custom-container warning"><p class="custom-container-title">Elvia API</p><p>You need an Elvia API subscription key to use this node. See <a href="#elvia-configuration">configuration</a>.</p></div><h2 id="description" tabindex="-1"><a class="header-anchor" href="#description" aria-hidden="true">#</a> Description</h2><p>When grid tariff changes from hour to hour, this should normally also be considered when finding the most favorable hours to use power. This node retrieves prices from Elvia, so if you are an elvia customer, you can put this node between the <code>ps-receive-price</code> node and the strategy nodes. When configured, it will add Elvia tariff to the power prices before doing the calculation:</p><p><img src="/assets/img/elvia-flow.bae2a4d5.png" alt="Elvia flow"></p><h2 id="configuration" tabindex="-1"><a class="header-anchor" href="#configuration" aria-hidden="true">#</a> Configuration</h2><div class="custom-container warning"><p class="custom-container-title">Elvia API subscription key</p><p>This node uses the Elvia API, and you must get your own Elvia API subscription key in order to use it. Go to the <a href="https://elvia.portal.azure-api.net/" target="_blank" rel="noopener noreferrer">Elvia Developer Portal<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> to sign up, and then request for a subscription to the GridTariffAPI. When your subscription is approved, you will find your subscription key in the <a href="https://elvia.portal.azure-api.net/developer" target="_blank" rel="noopener noreferrer">developer portal<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> under Your subscriptions.</p></div><p>The first time you use this node, you must create a <code>ps-elvia-config</code> entry. Click on the edit button to the right of Elvia Config:</p><p><img src="/assets/img/elvia-config-no-config.b4bb972c.png" alt="Elvia configuration"></p><p>Then enter the Elvia API subscription key:</p><p><img src="/assets/img/elvia-config-subscription-key.8be8ab8a.png" alt="Elvia configuration"></p><p>After entering the Elvia API subscription key the first time, it is not possible to select tariff.</p><p><img src="/assets/img/elvia-config-no-tariff.3f89aba8.png" alt="Elvia configuration"></p><p>To fix that, save the config, deploy, and then open the node again. Now you should be able to select the right tariff:</p><p><img src="/assets/img/elvia-config-select-tariff.0f73fd56.png" alt="Elvia configuration"></p><p>The next time you use this node, you can select the same config as you created the first time, and then you can also select tariff immediately.</p><h2 id="input" tabindex="-1"><a class="header-anchor" href="#input" aria-hidden="true">#</a> Input</h2><p>The input is the <a href="/nodes/strategy-input.html" class="">common strategy input format</a></p><h2 id="output" tabindex="-1"><a class="header-anchor" href="#output" aria-hidden="true">#</a> Output</h2><p>The output is the <a href="/nodes/strategy-input.html" class="">common strategy input format</a></p><!--]--></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-general-add-tariff.html" class="" aria-label="ps-general-add-tariff"><!--[--><!--]--> ps-general-add-tariff <!--[--><!--]--></a></span><!----></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
31
- <script src="/assets/js/runtime~app.f6ac32d7.js" defer></script><script src="/assets/js/405.f4edd94d.js" defer></script><script src="/assets/js/app.dfdee6f9.js" defer></script>
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">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 active">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 aria-current="page" href="/nodes/ps-elvia-add-tariff.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="ps-elvia-add-tariff"><!--[--><!--]--> ps-elvia-add-tariff <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-elvia-add-tariff.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-elvia-add-tariff.html#configuration" class="router-link-active router-link-exact-active sidebar-item" aria-label="Configuration"><!--[--><!--]--> Configuration <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-elvia-add-tariff.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-elvia-add-tariff.html#output" class="router-link-active router-link-exact-active sidebar-item" aria-label="Output"><!--[--><!--]--> Output <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></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-elvia-add-tariff" tabindex="-1"><a class="header-anchor" href="#ps-elvia-add-tariff" aria-hidden="true">#</a> ps-elvia-add-tariff</h1><p><img src="/assets/img/node-ps-elvia-add-tariff.94ea2b09.png" alt="ps-elvia-add-tariff"></p><p>Node to add grid tariff from Elvia.</p><div class="custom-container warning"><p class="custom-container-title">Elvia API</p><p>You need an Elvia API subscription key to use this node. See <a href="#elvia-configuration">configuration</a>.</p></div><h2 id="description" tabindex="-1"><a class="header-anchor" href="#description" aria-hidden="true">#</a> Description</h2><p>When grid tariff changes from hour to hour, this should normally also be considered when finding the most favorable hours to use power. This node retrieves prices from Elvia, so if you are an elvia customer, you can put this node between the <code>ps-receive-price</code> node and the strategy nodes. When configured, it will add Elvia tariff to the power prices before doing the calculation:</p><p><img src="/assets/img/elvia-flow.bae2a4d5.png" alt="Elvia flow"></p><h2 id="configuration" tabindex="-1"><a class="header-anchor" href="#configuration" aria-hidden="true">#</a> Configuration</h2><div class="custom-container warning"><p class="custom-container-title">Elvia API subscription key</p><p>This node uses the Elvia API, and you must get your own Elvia API subscription key in order to use it. Go to the <a href="https://elvia.portal.azure-api.net/" target="_blank" rel="noopener noreferrer">Elvia Developer Portal<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> to sign up, and then request for a subscription to the GridTariffAPI. When your subscription is approved, you will find your subscription key in the <a href="https://elvia.portal.azure-api.net/developer" target="_blank" rel="noopener noreferrer">developer portal<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> under Your subscriptions.</p></div><p>The first time you use this node, you must create a <code>ps-elvia-config</code> entry. Click on the edit button to the right of Elvia Config:</p><p><img src="/assets/img/elvia-config-no-config.b4bb972c.png" alt="Elvia configuration"></p><p>Then enter the Elvia API subscription key:</p><p><img src="/assets/img/elvia-config-subscription-key.8be8ab8a.png" alt="Elvia configuration"></p><p>After entering the Elvia API subscription key the first time, it is not possible to select tariff.</p><p><img src="/assets/img/elvia-config-no-tariff.3f89aba8.png" alt="Elvia configuration"></p><p>To fix that, save the config, deploy, and then open the node again. Now you should be able to select the right tariff:</p><p><img src="/assets/img/elvia-config-select-tariff.0f73fd56.png" alt="Elvia configuration"></p><p>The next time you use this node, you can select the same config as you created the first time, and then you can also select tariff immediately.</p><h2 id="input" tabindex="-1"><a class="header-anchor" href="#input" aria-hidden="true">#</a> Input</h2><p>The input is the <a href="/nodes/strategy-input.html" class="">common strategy input format</a></p><h2 id="output" tabindex="-1"><a class="header-anchor" href="#output" aria-hidden="true">#</a> Output</h2><p>The output is the <a href="/nodes/strategy-input.html" class="">common strategy input format</a></p><!--]--></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-general-add-tariff.html" class="" aria-label="ps-general-add-tariff"><!--[--><!--]--> ps-general-add-tariff <!--[--><!--]--></a></span><!----></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
31
+ <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>
32
32
  </body>
33
33
  </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://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9857859182772006" crossorigin="anonymous"></script><title>ps-general-add-tariff | 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.dfdee6f9.js" as="script">
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-general-add-tariff | 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">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 active">Grid tariff nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-general-add-tariff.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="ps-general-add-tariff"><!--[--><!--]--> ps-general-add-tariff <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-general-add-tariff.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-general-add-tariff.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-general-add-tariff.html#add-and-delete-periods" class="router-link-active router-link-exact-active sidebar-item" aria-label="Add and delete periods"><!--[--><!--]--> Add and delete periods <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-general-add-tariff.html#from-time-and-value" class="router-link-active router-link-exact-active sidebar-item" aria-label="From time and Value"><!--[--><!--]--> From time and Value <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-general-add-tariff.html#valid-from-date" class="router-link-active router-link-exact-active sidebar-item" aria-label="Valid from date"><!--[--><!--]--> Valid from date <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-general-add-tariff.html#valid-to-date" class="router-link-active router-link-exact-active sidebar-item" aria-label="Valid to date"><!--[--><!--]--> Valid to date <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><li><a aria-current="page" href="/nodes/ps-general-add-tariff.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-general-add-tariff.html#output" class="router-link-active router-link-exact-active sidebar-item" aria-label="Output"><!--[--><!--]--> Output <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></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-general-add-tariff" tabindex="-1"><a class="header-anchor" href="#ps-general-add-tariff" aria-hidden="true">#</a> ps-general-add-tariff</h1><p><img src="/assets/img/node-ps-general-add-tariff.a3cf6f06.png" alt="ps-general-add-tariff"></p><p>Node to add a value, for example a variable grid tariff, to the price before it is used to calculate savings in the strategy nodes.</p><h2 id="description" tabindex="-1"><a class="header-anchor" href="#description" aria-hidden="true">#</a> Description</h2><p>This node is useful if there is an addition to the electricity price that varies over the day, as it might be for the grid tariff.</p><p>If there is one price for example from 22:00 to 06:00 every day, and another price from 06:00 to 22:00, this is the right node to use. It can be used for more than two periods, as long as the time it changes is the same every day.</p><p>Here is how this node is normally used:</p><p><img src="/assets/img/add-tariff-flow.eb700d4f.png" alt="general flow"></p><div class="custom-container tip"><p class="custom-container-title">Changes during the year</p><p>If there is one price now, and another price from a specific date, you can use two nodes after each other. Set the <code>Valid to date</code> of the node with the current prices to the last date the current prices are valid. Set the <code>Valid from date</code> of the node with the upcoming prices to the first date those prices are valid.</p></div><h2 id="configuration" tabindex="-1"><a class="header-anchor" href="#configuration" aria-hidden="true">#</a> Configuration</h2><h3 id="add-and-delete-periods" tabindex="-1"><a class="header-anchor" href="#add-and-delete-periods" aria-hidden="true">#</a> Add and delete periods</h3><p>You can have from 1 to 24 periods during the day, with different values to add for each hour. Click the <code>Add period</code> button to add more periods. Click the <code>X</code> button to delete a period.</p><h3 id="from-time-and-value" tabindex="-1"><a class="header-anchor" href="#from-time-and-value" aria-hidden="true">#</a> From time and Value</h3><p>For each period, select the time of the day the value is valid from, and enter the value.</p><h3 id="valid-from-date" tabindex="-1"><a class="header-anchor" href="#valid-from-date" aria-hidden="true">#</a> Valid from date</h3><p>Fill in the first date the config is valid.</p><p>If this is empty, the config is valid from the dawn of time.</p><h3 id="valid-to-date" tabindex="-1"><a class="header-anchor" href="#valid-to-date" aria-hidden="true">#</a> Valid to date</h3><p>Fill in the last date the config is valid.</p><p>If this is empty, the config is valid until forever.</p><h2 id="input" tabindex="-1"><a class="header-anchor" href="#input" aria-hidden="true">#</a> Input</h2><p>The input is the <a href="/nodes/strategy-input.html" class="">common strategy input format</a></p><h2 id="output" tabindex="-1"><a class="header-anchor" href="#output" aria-hidden="true">#</a> Output</h2><p>The output is the <a href="/nodes/strategy-input.html" class="">common strategy input format</a></p><p>If there is a config property in the input payload, it is passed on to the output payload.</p><!--]--></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="next"><a href="/nodes/ps-elvia-add-tariff.html" class="" aria-label="ps-elvia-add-tariff"><!--[--><!--]--> ps-elvia-add-tariff <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
31
- <script src="/assets/js/runtime~app.f6ac32d7.js" defer></script><script src="/assets/js/405.f4edd94d.js" defer></script><script src="/assets/js/app.dfdee6f9.js" defer></script>
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">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 active">Grid tariff nodes <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-general-add-tariff.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="ps-general-add-tariff"><!--[--><!--]--> ps-general-add-tariff <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/nodes/ps-general-add-tariff.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-general-add-tariff.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-general-add-tariff.html#add-and-delete-periods" class="router-link-active router-link-exact-active sidebar-item" aria-label="Add and delete periods"><!--[--><!--]--> Add and delete periods <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-general-add-tariff.html#from-time-and-value" class="router-link-active router-link-exact-active sidebar-item" aria-label="From time and Value"><!--[--><!--]--> From time and Value <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-general-add-tariff.html#valid-from-date" class="router-link-active router-link-exact-active sidebar-item" aria-label="Valid from date"><!--[--><!--]--> Valid from date <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/nodes/ps-general-add-tariff.html#valid-to-date" class="router-link-active router-link-exact-active sidebar-item" aria-label="Valid to date"><!--[--><!--]--> Valid to date <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><li><a aria-current="page" href="/nodes/ps-general-add-tariff.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-general-add-tariff.html#output" class="router-link-active router-link-exact-active sidebar-item" aria-label="Output"><!--[--><!--]--> Output <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></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-general-add-tariff" tabindex="-1"><a class="header-anchor" href="#ps-general-add-tariff" aria-hidden="true">#</a> ps-general-add-tariff</h1><p><img src="/assets/img/node-ps-general-add-tariff.a3cf6f06.png" alt="ps-general-add-tariff"></p><p>Node to add a value, for example a variable grid tariff, to the price before it is used to calculate savings in the strategy nodes.</p><h2 id="description" tabindex="-1"><a class="header-anchor" href="#description" aria-hidden="true">#</a> Description</h2><p>This node is useful if there is an addition to the electricity price that varies over the day, as it might be for the grid tariff.</p><p>If there is one price for example from 22:00 to 06:00 every day, and another price from 06:00 to 22:00, this is the right node to use. It can be used for more than two periods, as long as the time it changes is the same every day.</p><p>Here is how this node is normally used:</p><p><img src="/assets/img/add-tariff-flow.eb700d4f.png" alt="general flow"></p><div class="custom-container tip"><p class="custom-container-title">Changes during the year</p><p>If there is one price now, and another price from a specific date, you can use two nodes after each other. Set the <code>Valid to date</code> of the node with the current prices to the last date the current prices are valid. Set the <code>Valid from date</code> of the node with the upcoming prices to the first date those prices are valid.</p></div><h2 id="configuration" tabindex="-1"><a class="header-anchor" href="#configuration" aria-hidden="true">#</a> Configuration</h2><h3 id="add-and-delete-periods" tabindex="-1"><a class="header-anchor" href="#add-and-delete-periods" aria-hidden="true">#</a> Add and delete periods</h3><p>You can have from 1 to 24 periods during the day, with different values to add for each hour. Click the <code>Add period</code> button to add more periods. Click the <code>X</code> button to delete a period.</p><h3 id="from-time-and-value" tabindex="-1"><a class="header-anchor" href="#from-time-and-value" aria-hidden="true">#</a> From time and Value</h3><p>For each period, select the time of the day the value is valid from, and enter the value.</p><h3 id="valid-from-date" tabindex="-1"><a class="header-anchor" href="#valid-from-date" aria-hidden="true">#</a> Valid from date</h3><p>Fill in the first date the config is valid.</p><p>If this is empty, the config is valid from the dawn of time.</p><h3 id="valid-to-date" tabindex="-1"><a class="header-anchor" href="#valid-to-date" aria-hidden="true">#</a> Valid to date</h3><p>Fill in the last date the config is valid.</p><p>If this is empty, the config is valid until forever.</p><h2 id="input" tabindex="-1"><a class="header-anchor" href="#input" aria-hidden="true">#</a> Input</h2><p>The input is the <a href="/nodes/strategy-input.html" class="">common strategy input format</a></p><h2 id="output" tabindex="-1"><a class="header-anchor" href="#output" aria-hidden="true">#</a> Output</h2><p>The output is the <a href="/nodes/strategy-input.html" class="">common strategy input format</a></p><p>If there is a config property in the input payload, it is passed on to the output payload.</p><!--]--></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="next"><a href="/nodes/ps-elvia-add-tariff.html" class="" aria-label="ps-elvia-add-tariff"><!--[--><!--]--> ps-elvia-add-tariff <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
31
+ <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>
32
32
  </body>
33
33
  </html>