node-red-contrib-power-saver 3.3.2 → 3.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.firebase/hosting.ZG9jcy8udnVlcHJlc3MvZGlzdA.cache +94 -0
- package/.firebaserc +5 -0
- package/.github/workflows/firebase-hosting-merge.yml +20 -0
- package/.github/workflows/firebase-hosting-pull-request.yml +17 -0
- package/README.md +1 -1
- package/docs/.vuepress/components/BestSaveVerificator.vue +3 -3
- package/docs/.vuepress/config.js +15 -1
- package/docs/.vuepress/dist/404.html +23 -5
- package/docs/.vuepress/dist/assets/css/896.styles.21a80cb6.css +1 -0
- package/docs/.vuepress/dist/assets/css/styles.1c48cbd0.css +10 -0
- package/docs/.vuepress/dist/assets/img/heat-capacitor-temperatureVsPrice.6e74905b.png +0 -0
- package/docs/.vuepress/dist/assets/img/node-ps-strategy-heat-capacitor-cascade-control.2e75ed9e.png +0 -0
- package/docs/.vuepress/dist/assets/img/node-ps-strategy-heat-capacitor-simple-flow-example.29d9bf59.png +0 -0
- package/docs/.vuepress/dist/assets/img/oven-setpoint-calculation.5bda0eec.png +0 -0
- package/docs/.vuepress/dist/assets/img/overshoot-time.b3b5d70e.png +0 -0
- package/docs/.vuepress/dist/assets/js/229.5c5378fa.js +1 -0
- package/docs/.vuepress/dist/assets/js/331.872104cd.js +1 -0
- package/docs/.vuepress/dist/assets/js/405.f4edd94d.js +2 -0
- package/docs/.vuepress/dist/assets/js/{619.8ba1b1f6.js.LICENSE.txt → 405.f4edd94d.js.LICENSE.txt} +0 -0
- package/docs/.vuepress/dist/assets/js/490.1e639e05.js +1 -0
- package/docs/.vuepress/dist/assets/js/{491.17a98f38.js → 491.bd938119.js} +1 -1
- package/docs/.vuepress/dist/assets/js/555.d8963d84.js +1 -0
- package/docs/.vuepress/dist/assets/js/{811.6a3392d5.js → 811.5f659592.js} +0 -0
- package/docs/.vuepress/dist/assets/js/app.dfdee6f9.js +1 -0
- package/docs/.vuepress/dist/assets/js/runtime~app.f6ac32d7.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-0607240a.0193a377.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-08683c60.52e94cb6.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-0aca7ba6.cac5d4b9.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-0b5e3c8c.18561f6e.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-1ad821fa.6697a349.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-1b3a0ab8.c6c4e19b.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-1e2b191e.07b8ab21.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-29504124.00be7399.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-30acb564.28af12af.js +1 -0
- package/docs/.vuepress/dist/assets/js/{v-3706649a.d7f73384.js → v-3706649a.c76d575b.js} +1 -1
- package/docs/.vuepress/dist/assets/js/v-4637f9e4.d334c29a.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-4c28314d.8cbb0f9d.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-510ed0d4.c04bc2e4.js +1 -0
- package/docs/.vuepress/dist/assets/js/{v-5954bcb2.937005d0.js → v-5954bcb2.dff3fc67.js} +1 -1
- package/docs/.vuepress/dist/assets/js/v-5db8da3a.e5e6d7a6.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-61f728ca.81968036.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-677dfaed.c159b0f4.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-7446a652.8fc2c591.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-7c87f26e.8ed52391.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-84304104.f3f07ed3.js +1 -0
- package/docs/.vuepress/dist/assets/js/{v-8daa1a0e.c63afc2b.js → v-8daa1a0e.ed84ca09.js} +1 -1
- package/docs/.vuepress/dist/assets/js/{v-b4a42144.733e4e7c.js → v-b4a42144.9a2a0c9f.js} +1 -1
- package/docs/.vuepress/dist/assets/js/v-e8c55052.b7d52fc6.js +1 -0
- package/docs/.vuepress/dist/assets/js/v-fffb8e28.d09ab959.js +1 -0
- package/docs/.vuepress/dist/changelog/index.html +23 -5
- package/docs/.vuepress/dist/contribute/index.html +23 -5
- package/docs/.vuepress/dist/examples/example-cascade-temperature-control.html +304 -0
- package/docs/.vuepress/dist/examples/example-heat-capacitor.html +247 -0
- package/docs/.vuepress/dist/examples/example-next-schedule-entity.html +27 -9
- package/docs/.vuepress/dist/examples/example-nordpool-current-state.html +24 -6
- package/docs/.vuepress/dist/examples/example-nordpool-events-state.html +24 -6
- package/docs/.vuepress/dist/examples/example-tibber-mqtt.html +24 -6
- package/docs/.vuepress/dist/examples/index.html +23 -5
- package/docs/.vuepress/dist/faq/best-save-viewer.html +23 -5
- package/docs/.vuepress/dist/faq/index.html +23 -5
- package/docs/.vuepress/dist/guide/index.html +24 -6
- package/docs/.vuepress/dist/index.html +23 -5
- package/docs/.vuepress/dist/nodes/index.html +23 -5
- package/docs/.vuepress/dist/nodes/old-power-saver-doc.html +25 -7
- package/docs/.vuepress/dist/nodes/power-saver.html +23 -5
- package/docs/.vuepress/dist/nodes/ps-elvia-add-tariff.html +23 -5
- package/docs/.vuepress/dist/nodes/ps-general-add-tariff.html +23 -5
- package/docs/.vuepress/dist/nodes/ps-receive-price.html +26 -8
- package/docs/.vuepress/dist/nodes/ps-strategy-best-save.html +32 -9
- package/docs/.vuepress/dist/nodes/ps-strategy-heat-capacitor.html +260 -0
- package/docs/.vuepress/dist/nodes/ps-strategy-lowest-price.html +30 -7
- package/docs/.vuepress/dist/nodes/strategy-input.html +24 -6
- package/docs/README.md +1 -1
- package/docs/changelog/README.md +14 -0
- package/docs/contribute/README.md +8 -0
- package/docs/examples/README.md +8 -2
- package/docs/examples/example-cascade-temperature-control.md +346 -0
- package/docs/examples/example-heat-capacitor.md +271 -0
- package/docs/images/heat-capacitor-temperatureVsPrice.png +0 -0
- package/docs/images/node-ps-strategy-heat-capacitor-cascade-control.png +0 -0
- package/docs/images/node-ps-strategy-heat-capacitor-simple-flow-example.png +0 -0
- package/docs/images/node-ps-strategy-heat-capacitor.png +0 -0
- package/docs/images/oven-setpoint-calculation.png +0 -0
- package/docs/images/overshoot-time.png +0 -0
- package/docs/images/temperature-manipulation-config.png +0 -0
- package/docs/nodes/README.md +7 -1
- package/docs/nodes/ps-strategy-heat-capacitor.md +346 -0
- package/examples/add-general-tariff.json +103 -0
- package/examples/best-save-for-water-heater.json +140 -0
- package/examples/elvia-add-tariff.json +99 -0
- package/examples/elvia-get-tariff-types.json +58 -0
- package/examples/elvia-get-tariff.json +60 -0
- package/examples/heat-capacitor-for-room-heating.json +186 -0
- package/examples/lowest-price-for-heating-cables.json +159 -0
- package/firebase.json +6 -0
- package/package.json +17 -9
- package/public/404.html +33 -0
- package/public/index.html +89 -0
- package/src/elvia/elvia-tariff.js +2 -1
- package/src/handle-input.js +6 -3
- package/src/strategy-heat-capacitor-functions.js +246 -0
- package/src/strategy-heat-capacitor.html +85 -0
- package/src/strategy-heat-capacitor.js +125 -0
- package/test/data/converted-prices.json +1 -1
- package/test/data/multiple-trades.json +53 -0
- package/test/data/tibber-decreasing-24h.json +101 -0
- package/test/data/tibber-decreasing2-24h.json +101 -0
- package/test/strategy-heat-capacitor-node.test.js +183 -0
- package/test/strategy-heat-capacitor.test.js +103 -0
- package/test/strategy-lowest-price-functions.test.js +1 -1
- package/test/utils.test.js +0 -2
- package/docs/.vuepress/dist/.nojekyll +0 -0
- package/docs/.vuepress/dist/assets/css/563.styles.99f4a8aa.css +0 -1
- package/docs/.vuepress/dist/assets/css/styles.031dcf27.css +0 -9
- package/docs/.vuepress/dist/assets/js/262.cf2c57d2.js +0 -1
- package/docs/.vuepress/dist/assets/js/293.08ea5200.js +0 -1
- package/docs/.vuepress/dist/assets/js/331.15ee3c51.js +0 -1
- package/docs/.vuepress/dist/assets/js/619.8ba1b1f6.js +0 -2
- package/docs/.vuepress/dist/assets/js/app.b705176c.js +0 -1
- package/docs/.vuepress/dist/assets/js/runtime~app.47f4f812.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-0607240a.a57c2199.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-08683c60.ccafdcab.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-0aca7ba6.25903946.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-0b5e3c8c.a6a015b4.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-1ad821fa.5978386f.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-1e2b191e.88dc5555.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-29504124.4aca27d5.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-30acb564.529a3c16.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-4637f9e4.703b1d96.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-510ed0d4.7b142a81.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-5db8da3a.3de3588d.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-61f728ca.21d432fe.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-677dfaed.44a653b9.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-7446a652.74b21d0b.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-7c87f26e.ee5be992.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-e8c55052.ab0a79ec.js +0 -1
- package/docs/.vuepress/dist/assets/js/v-fffb8e28.525be02a.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[363],{3594:(e,n,s)=>{s.r(n),s.d(n,{data:()=>a});const a={key:"v-0b5e3c8c",path:"/nodes/ps-strategy-best-save.html",title:"ps-strategy-best-save",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Description",slug:"description",children:[]},{level:2,title:"Configuration",slug:"configuration",children:[{level:3,title:"Dynamic config",slug:"dynamic-config",children:[]},{level:3,title:"Dynamic commands",slug:"dynamic-commands",children:[]}]},{level:2,title:"Input",slug:"input",children:[]},{level:2,title:"Output",slug:"output",children:[{level:3,title:"Output 1",slug:"output-1",children:[]},{level:3,title:"Output 2",slug:"output-2",children:[]},{level:3,title:"Output 3",slug:"output-3",children:[]},{level:3,title:"Data saved in context",slug:"data-saved-in-context",children:[]}]},{level:2,title:"Algorithm",slug:"algorithm",children:[]},{level:2,title:"Data used for calculation",slug:"data-used-for-calculation",children:[]},{level:2,title:"Restarts",slug:"restarts",children:[]},{level:2,title:"Integration with MagicMirror",slug:"integration-with-magicmirror",children:[]},{level:2,title:"Viewer",slug:"viewer",children:[]}],filePathRelative:"nodes/ps-strategy-best-save.md",git:{updatedTime:1642535555e3}}},3747:(e,n,s)=>{s.r(n),s.d(n,{default:()=>Ce});var a=s(6252),t=s(7188),o=s(5442);const r=(0,a._)("h1",{id:"ps-strategy-best-save",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#ps-strategy-best-save","aria-hidden":"true"},"#"),(0,a.Uk)(" ps-strategy-best-save")],-1),l=(0,a._)("p",null,[(0,a._)("img",{src:t,alt:"ps-strategy-best-save"})],-1),i=(0,a._)("p",null,"Strategy node to postpone power consumption until the price is lower.",-1),c=(0,a._)("h2",{id:"description",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#description","aria-hidden":"true"},"#"),(0,a.Uk)(" Description")],-1),u=(0,a._)("p",null,"This strategy turns off the hours where the price difference is largest compared to the next hour that is on. The idea is that the power you are not using when the switch is turned off, will be used immediately when the switch is turned on. This would fit well for turning off a water heater or another thermostat controlled heater.",-1),p=(0,a._)("p",null,[(0,a.Uk)("The picture at the bottom of the page, under "),(0,a._)("a",{href:"#integration-with-magicmirror"},"Integration with MagicMirror"),(0,a.Uk)(", illustrates this by the purple strokes, taking the price from the top of the price curve to the level of the first hour after the save-period.")],-1),d=(0,a._)("h2",{id:"configuration",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#configuration","aria-hidden":"true"},"#"),(0,a.Uk)(" Configuration")],-1),h=(0,a._)("p",null,[(0,a._)("img",{src:o,alt:"Best Save Config"})],-1),_=(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[(0,a._)("th",null,"Value"),(0,a._)("th",null,"Description")])]),(0,a._)("tbody",null,[(0,a._)("tr",null,[(0,a._)("td",null,"Max per sequence"),(0,a._)("td",null,"Maximum number of hours to turn off in a sequence.")]),(0,a._)("tr",null,[(0,a._)("td",null,"Min recover"),(0,a._)("td",null,"Minimum hours to turn on immediately after a period when turned off the maximum number of hours that is allowed to be turned off")]),(0,a._)("tr",null,[(0,a._)("td",null,"Min saving"),(0,a._)("td",null,"Minimum amount to save per kWh in order to bother turning it off. It is recommended to have some amount here, e.g. 2 cents / 2 øre. No point in saving 0.001, is it?")]),(0,a._)("tr",null,[(0,a._)("td",null,"Send when rescheduling"),(0,a._)("td",null,"Check this to make sure on or off output is sent immediately after rescheduling")]),(0,a._)("tr",null,[(0,a._)("td",null,"If no schedule, send"),(0,a._)("td",null,"What to do if there is no valid schedule any more (turn on or off).")])])],-1),k=(0,a._)("div",{class:"custom-container warning"},[(0,a._)("p",{class:"custom-container-title"},"Min recover"),(0,a._)("p",null,[(0,a.Uk)("NB! The "),(0,a._)("code",null,"Min recover"),(0,a.Uk)(" only has effect if the previous save-period is of length "),(0,a._)("code",null,"Max per sequence"),(0,a.Uk)(". If the save-period is shorter, the following on-period may be as short as one hour.")])],-1),b=(0,a._)("h3",{id:"dynamic-config",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#dynamic-config","aria-hidden":"true"},"#"),(0,a.Uk)(" Dynamic config")],-1),m=(0,a._)("p",null,"It is possible to change config dynamically by sending a config message to the node. The config messages has a payload with a config object like this example:",-1),g=(0,a._)("div",{class:"language-json ext-json line-numbers-mode"},[(0,a._)("pre",{class:"language-json"},[(0,a._)("code",null,[(0,a._)("span",{class:"token property"},'"payload"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"config"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"maxHoursToSaveInSequence"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"4"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"minHoursOnAfterMaxSequenceSaved"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"2"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"minSaving"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"0.02"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"sendCurrentValueWhenRescheduling"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"outputIfNoSchedule"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n"),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n")])]),(0,a._)("div",{class:"line-numbers"},[(0,a._)("span",{class:"line-number"},"1"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"2"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"3"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"4"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"5"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"6"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"7"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"8"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"9"),(0,a._)("br")])],-1),f=(0,a._)("p",null,"All the variables in the config object are optional. You can send only those you want to change.",-1),y=(0,a._)("p",null,"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.",-1),U=(0,a._)("p",null,"When a config is sent like this, and without price data, the schedule will be replanned based on the last previously received price data. If no price data has been received, no scheduling is done.",-1),v=(0,a._)("p",null,"However, you can send config and price data in the same message. Then both will be used.",-1),w=(0,a._)("h3",{id:"dynamic-commands",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#dynamic-commands","aria-hidden":"true"},"#"),(0,a.Uk)(" Dynamic commands")],-1),x=(0,a._)("p",null,[(0,a.Uk)("You can dynamically send some commands to the node via its input, by using a "),(0,a._)("code",null,"commands"),(0,a.Uk)(" object in the payload as described below.")],-1),M=(0,a._)("p",null,"Commands can be sent together with config and/or price data, but the exact behavior is not defined.",-1),T=(0,a._)("h4",{id:"sendschedule",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#sendschedule","aria-hidden":"true"},"#"),(0,a.Uk)(" sendSchedule")],-1),I=(0,a._)("p",null,"You can get the schedule sent to output 3 any time by sending a message like this to the node:",-1),q=(0,a._)("div",{class:"language-json ext-json line-numbers-mode"},[(0,a._)("pre",{class:"language-json"},[(0,a._)("code",null,[(0,a._)("span",{class:"token property"},'"payload"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"commands"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"sendSchedule"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n"),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n")])]),(0,a._)("div",{class:"line-numbers"},[(0,a._)("span",{class:"line-number"},"1"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"2"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"3"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"4"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"5"),(0,a._)("br")])],-1),W=(0,a._)("p",null,"When you do this, the current schedule is actually recalculated based on the last received data, and then sent to output 3 the same way as when it was originally planned.",-1),S=(0,a._)("h4",{id:"reset",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#reset","aria-hidden":"true"},"#"),(0,a.Uk)(" reset")],-1),j=(0,a._)("p",null,"You can reset data the node has saved in context by sending this message:",-1),N=(0,a._)("div",{class:"language-json ext-json line-numbers-mode"},[(0,a._)("pre",{class:"language-json"},[(0,a._)("code",null,[(0,a._)("span",{class:"token property"},'"payload"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"commands"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"reset"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n"),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n")])]),(0,a._)("div",{class:"line-numbers"},[(0,a._)("span",{class:"line-number"},"1"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"2"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"3"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"4"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"5"),(0,a._)("br")])],-1),D=(0,a._)("p",null,'When you do this, all historical data the node has saved is deleted, including the current schedule, so the result will be that the node shows status "No price data". When new price data is received, a schedule is calculated without considering any history.',-1),O=(0,a._)("p",null,"The nodes config is not deleted, as the node depends on it to work.",-1),R=(0,a._)("div",{class:"custom-container warning"},[(0,a._)("p",{class:"custom-container-title"},"WARNING"),(0,a._)("p",null,"This operation cannot be undone."),(0,a._)("p",null,"However, it is normally not a big loss, as you can just feed the node with new price data and start from scratch.")],-1),A=(0,a._)("h2",{id:"input",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#input","aria-hidden":"true"},"#"),(0,a.Uk)(" Input")],-1),C=(0,a.Uk)("The input is the "),H=(0,a.Uk)("common strategy input format"),Y=(0,a.Uk)("."),E=(0,a._)("p",null,"In addition to the prices sent as input, the node is using the schedule for the day before it receives data for, so that it can calculate the schedule in the beginning of the day according to the configured rules. This requires of course that the node was run the day before.",-1),V=(0,a._)("h2",{id:"output",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#output","aria-hidden":"true"},"#"),(0,a.Uk)(" Output")],-1),B=(0,a._)("p",null,"There are three outputs. You use only those you need for your purpose.",-1),P=(0,a._)("h3",{id:"output-1",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#output-1","aria-hidden":"true"},"#"),(0,a.Uk)(" Output 1")],-1),G=(0,a._)("p",null,[(0,a.Uk)("A payload with the word "),(0,a._)("code",null,"true"),(0,a.Uk)(" is sent to output 1 whenever the power / switch shall be turned on.")],-1),L=(0,a._)("h3",{id:"output-2",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#output-2","aria-hidden":"true"},"#"),(0,a.Uk)(" Output 2")],-1),Z=(0,a._)("p",null,[(0,a.Uk)("A payload with the word "),(0,a._)("code",null,"false"),(0,a.Uk)(" is sent to output 2 whenever the power / switch shall be turned off.")],-1),z=(0,a._)("h3",{id:"output-3",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#output-3","aria-hidden":"true"},"#"),(0,a.Uk)(" Output 3")],-1),F=(0,a._)("p",null,"When a valid input is received, and the schedule is recalculated, the resulting schedule, as well as some other information, is sent to output 3. You can use this to see the plan and verify that it meets your expectations. You can also use it to display the schedule in any way you like.",-1),J=(0,a._)("p",null,"Example of output:",-1),K=(0,a._)("div",{class:"language-json ext-json line-numbers-mode"},[(0,a._)("pre",{class:"language-json"},[(0,a._)("code",null,[(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"schedule"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"["),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"time"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-09-30T00:00:00.000+02:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"value"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"false"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"time"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-09-30T01:00:00.000+02:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"value"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"]"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"hours"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"["),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"price"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"1.2584"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"onOff"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"false"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"start"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-09-30T00:00:00.000+02:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"saving"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"0.2034"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"price"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"1.055"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"onOff"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"start"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-09-30T01:00:00.000+02:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"saving"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token null keyword"},"null"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"price"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"1.2054"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"onOff"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"start"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-09-30T02:00:00.000+02:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"saving"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token null keyword"},"null"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"]"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"source"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"Nord Pool"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"config"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"maxHoursToSaveInSequence"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"3"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"minHoursOnAfterMaxSequenceSaved"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"1"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"minSaving"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"0.001"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"sendCurrentValueWhenRescheduling"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"outputIfNoSchedule"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"false"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"time"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-09-30T23:45:12.123+02:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"version"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"3.1.2"'),(0,a.Uk)("\n"),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n")])]),(0,a._)("div",{class:"line-numbers"},[(0,a._)("span",{class:"line-number"},"1"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"2"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"3"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"4"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"5"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"6"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"7"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"8"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"9"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"10"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"11"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"12"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"13"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"14"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"15"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"16"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"17"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"18"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"19"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"20"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"21"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"22"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"23"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"24"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"25"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"26"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"27"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"28"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"29"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"30"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"31"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"32"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"33"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"34"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"35"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"36"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"37"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"38"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"39"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"40"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"41"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"42"),(0,a._)("br")])],-1),Q=(0,a._)("p",null,[(0,a.Uk)("The "),(0,a._)("code",null,"schedule"),(0,a.Uk)(" array shows every time the switch is turned on or off. The "),(0,a._)("code",null,"hours"),(0,a.Uk)(" array shows values per hour containing the price (received as input), whether that hour is on or off, the start time of the hour and the amount per kWh that is saved on hours that are turned off, compared to the next hour that is on.")],-1),X=(0,a._)("h3",{id:"data-saved-in-context",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#data-saved-in-context","aria-hidden":"true"},"#"),(0,a.Uk)(" Data saved in context")],-1),$=(0,a._)("p",null,"The node saves some data in the nodes context, so that it can be used on restarts and also taken into consideration when calculating the schedule over midnight.",-1),ee=(0,a._)("p",null,'You can see the saved data if you select the node in Node-RED, and view "Context data", and refresh the Node context.',-1),ne=(0,a._)("h2",{id:"algorithm",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#algorithm","aria-hidden":"true"},"#"),(0,a.Uk)(" Algorithm")],-1),se=(0,a._)("p",null,"The calculation that decides what hours to turn off works as follows:",-1),ae=(0,a._)("ol",null,[(0,a._)("li",null,"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."),(0,a._)("li",null,"The matrix is filled with how much you save by turning off hour x for y hours."),(0,a._)("li",null,"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."),(0,a._)("li",null,"The remaining sequences are sorted by how much that is saved, in descending order."),(0,a._)("li",null,'Next, a table with one value per hour is created, with all hours in state "on".'),(0,a._)("li",null,"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."),(0,a._)("li",null,"When all sequences are processed, the resulting table shows a pretty good savings plan, that in most cases would be the optimal plan.")],-1),te=(0,a._)("p",null,'I say "in most cases", 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.',-1),oe=(0,a._)("h2",{id:"data-used-for-calculation",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#data-used-for-calculation","aria-hidden":"true"},"#"),(0,a.Uk)(" Data used for calculation")],-1),re=(0,a._)("p",null,"Normally data is received for one or two whole days, and all this data is used to do the calculation. In addition, if the node has run before, so there is historical data, the last period on or off before the period data is received for, is considered in the calculation, so that the rules in the configuration are followed also between days.",-1),le=(0,a._)("h2",{id:"restarts",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#restarts","aria-hidden":"true"},"#"),(0,a.Uk)(" Restarts")],-1),ie=(0,a._)("p",null,"The node saves data in the nodes context, so if Node-RED is configured to save context between restarts, the node will replan with the last received data when it restarts.",-1),ce={class:"custom-container warning"},ue=(0,a.uE)('<p class="custom-container-title">WARNING</p><p>In Home Assistant, Node-RED is by default configured to save context between restarts. However, if you run Node-RED another way, this may not be the case by default. If context is only stored in memory, it is lost between restarts, and even between re-deployments. This can be changed in the <code>settings.js</code> file for Node-RED like this:</p><div class="language-javascript ext-js line-numbers-mode"><pre class="language-javascript"><code>contextStorage<span class="token operator">:</span> <span class="token punctuation">{</span>\n <span class="token keyword">default</span><span class="token operator">:</span> <span class="token punctuation">{</span>\n module<span class="token operator">:</span> <span class="token string">"localfilesystem"</span>\n <span class="token punctuation">}</span>\n<span class="token punctuation">}</span>\n</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></div></div>',3),pe=(0,a.Uk)("Please read the "),de={href:"https://nodered.org/docs/user-guide/context",target:"_blank",rel:"noopener noreferrer"},he=(0,a.Uk)("Node-RED documentation"),_e=(0,a.Uk)(" for more details about this."),ke=(0,a._)("h2",{id:"integration-with-magicmirror",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#integration-with-magicmirror","aria-hidden":"true"},"#"),(0,a.Uk)(" Integration with MagicMirror")],-1),be=(0,a.Uk)("Are you using "),me={href:"https://magicmirror.builders/",target:"_blank",rel:"noopener noreferrer"},ge=(0,a.Uk)("MagicMirror"),fe=(0,a.Uk)("? Are you also using "),ye={href:"https://tibber.com/",target:"_blank",rel:"noopener noreferrer"},Ue=(0,a.Uk)("Tibber"),ve=(0,a.Uk)("? If so, there is a module for MM called "),we={href:"https://github.com/ottopaulsen/MMM-Tibber",target:"_blank",rel:"noopener noreferrer"},xe=(0,a.Uk)("MMM-Tibber"),Me=(0,a.Uk)(", that easily can be used to show savings from this node."),Te=(0,a._)("p",null,[(0,a._)("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"})],-1),Ie=(0,a._)("p",null,"The purple lines show savings per kWh.",-1),qe=(0,a.Uk)("Read more about this in the "),We={href:"https://github.com/ottopaulsen/MMM-Tibber#show-savings",target:"_blank",rel:"noopener noreferrer"},Se=(0,a.Uk)("MMM-Tibber documentation"),je=(0,a.Uk)("."),Ne=(0,a._)("h2",{id:"viewer",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#viewer","aria-hidden":"true"},"#"),(0,a.Uk)(" Viewer")],-1),De=(0,a.Uk)("If you like to analyze the data output by the node, take a look at the "),Oe=(0,a.Uk)("Best Save Viewer"),Re=(0,a.Uk)("."),Ae={},Ce=(0,s(3744).Z)(Ae,[["render",function(e,n){const s=(0,a.up)("RouterLink"),t=(0,a.up)("OutboundLink");return(0,a.wg)(),(0,a.iD)(a.HY,null,[r,l,i,c,u,p,d,h,_,k,b,m,g,f,y,U,v,w,x,M,T,I,q,W,S,j,N,D,O,R,A,(0,a._)("p",null,[C,(0,a.Wm)(s,{to:"/nodes/strategy-input.html"},{default:(0,a.w5)((()=>[H])),_:1}),Y]),E,V,B,P,G,L,Z,z,F,J,K,Q,X,$,ee,ne,se,ae,te,oe,re,le,ie,(0,a._)("div",ce,[ue,(0,a._)("p",null,[pe,(0,a._)("a",de,[he,(0,a.Wm)(t)]),_e])]),ke,(0,a._)("p",null,[be,(0,a._)("a",me,[ge,(0,a.Wm)(t)]),fe,(0,a._)("a",ye,[Ue,(0,a.Wm)(t)]),ve,(0,a._)("a",we,[xe,(0,a.Wm)(t)]),Me]),Te,Ie,(0,a._)("p",null,[qe,(0,a._)("a",We,[Se,(0,a.Wm)(t)]),je]),Ne,(0,a._)("p",null,[De,(0,a.Wm)(s,{to:"/faq/best-save-viewer.html"},{default:(0,a.w5)((()=>[Oe])),_:1}),Re])],64)}]])},3744:(e,n)=>{n.Z=(e,n)=>{const s=e.__vccOpts||e;for(const[e,a]of n)s[e]=a;return s}},5442:(e,n,s)=>{e.exports=s.p+"assets/img/best-save-config.79a2f39a.png"},7188:(e,n,s)=>{e.exports=s.p+"assets/img/node-ps-strategy-best-save.392292d5.png"}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[22],{2336:(e,r,o)=>{o.r(r),o.d(r,{data:()=>t});const t={key:"v-1ad821fa",path:"/nodes/power-saver.html",title:"power-saver",lang:"en-US",frontmatter:{next:"./ps-strategy-best-save.md"},excerpt:"",headers:[],filePathRelative:"nodes/power-saver.md",git:{updatedTime:1639315027e3}}},8718:(e,r,o)=>{o.r(r),o.d(r,{default:()=>k});var t=o(6252),a=o(7656),s=o(2913),n=o(1758);const d={id:"power-saver",tabindex:"-1"},i=(0,t._)("a",{class:"header-anchor",href:"#power-saver","aria-hidden":"true"},"#",-1),l=(0,t.Uk)(" power-saver "),p=(0,t._)("p",null,[(0,t._)("img",{src:a,alt:"Power Saver node"})],-1),c=(0,t._)("p",null,"This is the node from version 2. It is still working, but should be replaced.",-1),v=(0,t._)("p",null,"To migrate, just replace the Power Saver node by a combination of the ps-receive-price and the ps-best-save nodes:",-1),u=(0,t._)("p",null,[(0,t.Uk)("Replace the "),(0,t._)("code",null,"Power Saver"),(0,t.Uk)(" node from version 2:")],-1),h=(0,t._)("p",null,[(0,t._)("img",{src:s,alt:"Power Saver node"})],-1),_=(0,t._)("p",null,[(0,t.Uk)("with this combination of "),(0,t._)("code",null,"ps-receive-price"),(0,t.Uk)(" and "),(0,t._)("code",null,"ps-strategy-best-save"),(0,t.Uk)(" from version 3:")],-1),f=(0,t._)("p",null,[(0,t._)("img",{src:n,alt:"Migrate Power Saver"})],-1),m=(0,t._)("p",null,[(0,t.Uk)("The configuration is done in the "),(0,t._)("code",null,"ps-strategy-best-save"),(0,t.Uk)(" node, and is the same as in the old "),(0,t._)("code",null,"Power Saver"),(0,t.Uk)(" node.")],-1),w=(0,t._)("p",null,[(0,t.Uk)("Should you need it, here is the "),(0,t._)("a",{href:"./old-power-saver-doc"},"old documentation"),(0,t.Uk)(" for the PowerSaver node from version 2.")],-1),g={},k=(0,o(3744).Z)(g,[["render",function(e,r){const o=(0,t.up)("Badge");return(0,t.wg)(),(0,t.iD)(t.HY,null,[(0,t._)("h1",d,[i,l,(0,t.Wm)(o,{type:"warning",text:"deprecated",vertical:"middle"})]),p,c,v,u,h,_,f,m,w],64)}]])},3744:(e,r)=>{r.Z=(e,r)=>{const o=e.__vccOpts||e;for(const[e,t]of r)o[e]=t;return o}},1758:(e,r,o)=>{e.exports=o.p+"assets/img/migrate-best-save.f73420f6.png"},2913:(e,r,o)=>{e.exports=o.p+"assets/img/migrate-power-saver.aae13f9d.png"},7656:(e,r,o)=>{e.exports=o.p+"assets/img/node-power-saver.51ff2e5d.png"}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[737],{1510:(e,t,a)=>{a.r(t),a.d(t,{data:()=>i});const i={key:"v-1e2b191e",path:"/nodes/ps-general-add-tariff.html",title:"ps-general-add-tariff",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Description",slug:"description",children:[]},{level:2,title:"Configuration",slug:"configuration",children:[{level:3,title:"Add and delete periods",slug:"add-and-delete-periods",children:[]},{level:3,title:"From time and Value",slug:"from-time-and-value",children:[]},{level:3,title:"Valid from date",slug:"valid-from-date",children:[]},{level:3,title:"Valid to date",slug:"valid-to-date",children:[]}]},{level:2,title:"Input",slug:"input",children:[]},{level:2,title:"Output",slug:"output",children:[]}],filePathRelative:"nodes/ps-general-add-tariff.md",git:{updatedTime:1641586171e3}}},2733:(e,t,a)=>{a.r(t),a.d(t,{default:()=>H});var i=a(6252),d=a(4693),r=a(2884);const n=(0,i._)("h1",{id:"ps-general-add-tariff",tabindex:"-1"},[(0,i._)("a",{class:"header-anchor",href:"#ps-general-add-tariff","aria-hidden":"true"},"#"),(0,i.Uk)(" ps-general-add-tariff")],-1),l=(0,i._)("p",null,[(0,i._)("img",{src:d,alt:"ps-general-add-tariff"})],-1),o=(0,i._)("p",null,"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.",-1),s=(0,i._)("h2",{id:"description",tabindex:"-1"},[(0,i._)("a",{class:"header-anchor",href:"#description","aria-hidden":"true"},"#"),(0,i.Uk)(" Description")],-1),h=(0,i._)("p",null,"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.",-1),u=(0,i._)("p",null,"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.",-1),c=(0,i._)("p",null,"Here is how this node is normally used:",-1),f=(0,i._)("p",null,[(0,i._)("img",{src:r,alt:"general flow"})],-1),p=(0,i._)("div",{class:"custom-container tip"},[(0,i._)("p",{class:"custom-container-title"},"Changes during the year"),(0,i._)("p",null,[(0,i.Uk)("If there is one price now, and another price from a specific date, you can use two nodes after each other. Set the "),(0,i._)("code",null,"Valid to date"),(0,i.Uk)(" of the node with the current prices to the last date the current prices are valid. Set the "),(0,i._)("code",null,"Valid from date"),(0,i.Uk)(" of the node with the upcoming prices to the first date those prices are valid.")])],-1),m=(0,i._)("h2",{id:"configuration",tabindex:"-1"},[(0,i._)("a",{class:"header-anchor",href:"#configuration","aria-hidden":"true"},"#"),(0,i.Uk)(" Configuration")],-1),_=(0,i._)("h3",{id:"add-and-delete-periods",tabindex:"-1"},[(0,i._)("a",{class:"header-anchor",href:"#add-and-delete-periods","aria-hidden":"true"},"#"),(0,i.Uk)(" Add and delete periods")],-1),g=(0,i._)("p",null,[(0,i.Uk)("You can have from 1 to 24 periods during the day, with different values to add for each hour. Click the "),(0,i._)("code",null,"Add period"),(0,i.Uk)(" button to add more periods. Click the "),(0,i._)("code",null,"X"),(0,i.Uk)(" button to delete a period.")],-1),v=(0,i._)("h3",{id:"from-time-and-value",tabindex:"-1"},[(0,i._)("a",{class:"header-anchor",href:"#from-time-and-value","aria-hidden":"true"},"#"),(0,i.Uk)(" From time and Value")],-1),k=(0,i._)("p",null,"For each period, select the time of the day the value is valid from, and enter the value.",-1),y=(0,i._)("h3",{id:"valid-from-date",tabindex:"-1"},[(0,i._)("a",{class:"header-anchor",href:"#valid-from-date","aria-hidden":"true"},"#"),(0,i.Uk)(" Valid from date")],-1),b=(0,i._)("p",null,"Fill in the first date the config is valid.",-1),U=(0,i._)("p",null,"If this is empty, the config is valid from the dawn of time.",-1),w=(0,i._)("h3",{id:"valid-to-date",tabindex:"-1"},[(0,i._)("a",{class:"header-anchor",href:"#valid-to-date","aria-hidden":"true"},"#"),(0,i.Uk)(" Valid to date")],-1),x=(0,i._)("p",null,"Fill in the last date the config is valid.",-1),I=(0,i._)("p",null,"If this is empty, the config is valid until forever.",-1),V=(0,i._)("h2",{id:"input",tabindex:"-1"},[(0,i._)("a",{class:"header-anchor",href:"#input","aria-hidden":"true"},"#"),(0,i.Uk)(" Input")],-1),C=(0,i.Uk)("The input is the "),F=(0,i.Uk)("common strategy input format"),T=(0,i._)("h2",{id:"output",tabindex:"-1"},[(0,i._)("a",{class:"header-anchor",href:"#output","aria-hidden":"true"},"#"),(0,i.Uk)(" Output")],-1),A=(0,i.Uk)("The output is the "),D=(0,i.Uk)("common strategy input format"),O=(0,i._)("p",null,"If there is a config property in the input payload, it is passed on to the output payload.",-1),S={},H=(0,a(3744).Z)(S,[["render",function(e,t){const a=(0,i.up)("RouterLink");return(0,i.wg)(),(0,i.iD)(i.HY,null,[n,l,o,s,h,u,c,f,p,m,_,g,v,k,y,b,U,w,x,I,V,(0,i._)("p",null,[C,(0,i.Wm)(a,{to:"/nodes/strategy-input.html"},{default:(0,i.w5)((()=>[F])),_:1})]),T,(0,i._)("p",null,[A,(0,i.Wm)(a,{to:"/nodes/strategy-input.html"},{default:(0,i.w5)((()=>[D])),_:1})]),O],64)}]])},3744:(e,t)=>{t.Z=(e,t)=>{const a=e.__vccOpts||e;for(const[e,i]of t)a[e]=i;return a}},2884:(e,t,a)=>{e.exports=a.p+"assets/img/add-tariff-flow.eb700d4f.png"},4693:(e,t,a)=>{e.exports=a.p+"assets/img/node-ps-general-add-tariff.a3cf6f06.png"}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[525],{5682:(e,a,t)=>{t.r(a),t.d(a,{data:()=>n});const n={key:"v-29504124",path:"/faq/best-save-viewer.html",title:"Best Save Viewer",lang:"en-US",frontmatter:{sidebar:"auto"},excerpt:"",headers:[{level:2,title:"Tool",slug:"tool",children:[]},{level:2,title:"Explanation",slug:"explanation",children:[{level:3,title:"Config",slug:"config",children:[]},{level:3,title:"Meta data",slug:"meta-data",children:[]},{level:3,title:"Days",slug:"days",children:[]},{level:3,title:"Hours",slug:"hours",children:[]}]},{level:2,title:"Something seems wrong",slug:"something-seems-wrong",children:[]}],filePathRelative:"faq/best-save-viewer.md",git:{updatedTime:1642797462e3}}},3361:(e,a,t)=>{t.r(a),t.d(a,{default:()=>D});var n=t(6252),r=t(503);const o=(0,n._)("h1",{id:"best-save-viewer",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#best-save-viewer","aria-hidden":"true"},"#"),(0,n.Uk)(" Best Save Viewer")],-1),s=(0,n._)("h2",{id:"tool",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#tool","aria-hidden":"true"},"#"),(0,n.Uk)(" Tool")],-1),i=(0,n._)("p",null,"Below is a tool you can use to look at how the Best Save node is working. In order to use it, you must copy the payload from output 3 on the node:",-1),h=(0,n._)("p",null,[(0,n._)("img",{src:r,alt:"Copy payload"})],-1),l=(0,n._)("p",null,"Then paste it here and see the result below:",-1),u=(0,n._)("h2",{id:"explanation",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#explanation","aria-hidden":"true"},"#"),(0,n.Uk)(" Explanation")],-1),d=(0,n._)("h3",{id:"config",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#config","aria-hidden":"true"},"#"),(0,n.Uk)(" Config")],-1),c=(0,n._)("p",null,"This is the configuration you have used.",-1),f=(0,n._)("h3",{id:"meta-data",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#meta-data","aria-hidden":"true"},"#"),(0,n.Uk)(" Meta data")],-1),p=(0,n._)("p",null,"Other information about the calculation etc.",-1),g=(0,n._)("h3",{id:"days",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#days","aria-hidden":"true"},"#"),(0,n.Uk)(" Days")],-1),_=(0,n._)("p",null,"Here you can see some summary and average for each date in the data set. Hover over the column title for explanation.",-1),v=(0,n._)("h3",{id:"hours",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#hours","aria-hidden":"true"},"#"),(0,n.Uk)(" Hours")],-1),m=(0,n._)("p",null,"Here is your dta represented per hour, as well as potential savings calculated by the tool. Negative numbers are hidden, but you can select to show them.",-1),b=(0,n._)("h4",{id:"input-data",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#input-data","aria-hidden":"true"},"#"),(0,n.Uk)(" Input data")],-1),y=(0,n._)("p",null,"This is the data per hour that you used as input.",-1),w=(0,n._)("h4",{id:"saving-if-turned-off-x-hours",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#saving-if-turned-off-x-hours","aria-hidden":"true"},"#"),(0,n.Uk)(" Saving if turned off x hours")],-1),x=(0,n._)("p",null,[(0,n.Uk)("There are the same number of columns as you have configured as "),(0,n._)("code",null,"Max in sequence"),(0,n.Uk)(". The cells show how much you will save per hWh by turning that hour off for "),(0,n._)("code",null,"x"),(0,n.Uk)(" hours, starting at that hour. It is the difference between the price at that hour and the price x hours later. Click on a cell to see the cells used in the calculation.")],-1),k=(0,n._)("h4",{id:"saving-for-sequence-of-x-hours",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#saving-for-sequence-of-x-hours","aria-hidden":"true"},"#"),(0,n.Uk)(" Saving for sequence of x hours")],-1),U=(0,n._)("p",null,"These cells show how much you can save per kWh in average per hour by turning off a sequence of x hours starting at that hour. Click on a cell to see the cells used in the calculation.",-1),T=(0,n._)("p",null,"Above the table you can select to see the average per hour or the su for all saved hours.",-1),S=(0,n._)("p",null,[(0,n.Uk)("If the average per hour is less than what you have configured as "),(0,n._)("code",null,"Minimum saving"),(0,n.Uk)(", the number is red, and that sequence will not be used.")],-1),q=(0,n._)("p",null,"If the number is black, it could be used, but only if all other criteria are satisfied, and only if it saves more than any other combination.",-1),C=(0,n._)("h2",{id:"something-seems-wrong",tabindex:"-1"},[(0,n._)("a",{class:"header-anchor",href:"#something-seems-wrong","aria-hidden":"true"},"#"),(0,n.Uk)(" Something seems wrong")],-1),B=(0,n._)("p",null,"The tool is not using the same code as the node, so in case there is a bg in the node (or in the tool) the numbers may not match.",-1),H=(0,n._)("hr",null,null,-1),I={},D=(0,t(3744).Z)(I,[["render",function(e,a){const t=(0,n.up)("BestSaveVerificator"),r=(0,n.up)("DonateButtons");return(0,n.wg)(),(0,n.iD)(n.HY,null,[o,s,i,h,l,(0,n.Wm)(t),u,d,c,f,p,g,_,v,m,b,y,w,x,k,U,T,S,q,C,B,H,(0,n.Wm)(r)],64)}]])},3744:(e,a)=>{a.Z=(e,a)=>{const t=e.__vccOpts||e;for(const[e,n]of a)t[e]=n;return t}},503:(e,a,t)=>{e.exports=t.p+"assets/img/copy-payload-best-save.b9192985.png"}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[901],{8835:(s,n,a)=>{a.r(n),a.d(n,{data:()=>t});const t={key:"v-30acb564",path:"/examples/example-nordpool-events-state.html",title:"Nord Pool and events: state node",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Description",slug:"description",children:[]},{level:2,title:"Flow",slug:"flow",children:[]}],filePathRelative:"examples/example-nordpool-events-state.md",git:{updatedTime:1639315027e3}}},2870:(s,n,a)=>{a.r(n),a.d(n,{default:()=>u});var t=a(6252),o=a(2201);const e=(0,t._)("h1",{id:"nord-pool-and-events-state-node",tabindex:"-1"},[(0,t._)("a",{class:"header-anchor",href:"#nord-pool-and-events-state-node","aria-hidden":"true"},"#"),(0,t.Uk)(" Nord Pool and events: state node")],-1),p=(0,t._)("h2",{id:"description",tabindex:"-1"},[(0,t._)("a",{class:"header-anchor",href:"#description","aria-hidden":"true"},"#"),(0,t.Uk)(" Description")],-1),k=(0,t._)("p",null,[(0,t.Uk)("In this example, data is read from the Nord Pool sensor in HA via the "),(0,t._)("code",null,"events: state"),(0,t.Uk)(" node. The "),(0,t._)("code",null,"ps-lowest-price"),(0,t.Uk)(" node is used to control a switch, controlled by "),(0,t._)("code",null,"call service"),(0,t.Uk)(" nodes in Home Assistant, to turn on the cheapest 4 hours between 18:00 and 08:00. The schedule is printed to a debug node. The flow is triggered every time the Nord Pool sensor receives new prices.")],-1),c=(0,t._)("p",null,[(0,t._)("img",{src:o,alt:"Example with Tibber and MQTT"})],-1),r=(0,t._)("h2",{id:"flow",tabindex:"-1"},[(0,t._)("a",{class:"header-anchor",href:"#flow","aria-hidden":"true"},"#"),(0,t.Uk)(" Flow")],-1),l=(0,t._)("div",{class:"language-json ext-json"},[(0,t._)("pre",{class:"language-json"},[(0,t._)("code",null,[(0,t._)("span",{class:"token punctuation"},"["),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"3662aca5.dfe974"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"server-state-changed"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Nord Pool sensor"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"server"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ec4a12a1.b2be9"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"version"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"3"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"exposeToHomeAssistant"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"haConfig"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"property"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"name"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"value"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"property"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"icon"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"value"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"entityidfilter"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"sensor.nordpool_kwh_trheim_nok_3_095_025"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"entityidfiltertype"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"exact"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"outputinitially"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"state_type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"str"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"haltifstate"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"halt_if_type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"str"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"halt_if_compare"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"is"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"outputs"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"1"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"output_only_on_state_change"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"for"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"0"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"forType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"num"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"forUnits"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"minutes"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"ignorePrevStateNull"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"ignorePrevStateUnknown"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"ignorePrevStateUnavailable"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"ignoreCurrentStateUnknown"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"ignoreCurrentStateUnavailable"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"outputProperties"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"property"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"payload"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"propertyType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"msg"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"value"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"valueType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"entityState"'),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"property"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"data"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"propertyType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"msg"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"value"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"valueType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"eventData"'),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"property"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"topic"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"propertyType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"msg"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"value"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"valueType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"triggerId"'),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"120"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"620"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token string"},'"e21a4b49adea2350"'),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ed7202ff.b5725"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"debug"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Nord Pool result"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"active"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"tosidebar"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"console"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"tostatus"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"complete"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"true"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"targetType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"full"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"statusVal"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"statusType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"auto"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"720"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"680"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"32f17ab2.927cf6"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"api-call-service"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Turn on"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"server"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ec4a12a1.b2be9"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"version"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"3"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"debugenabled"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"service_domain"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"switch"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"service"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"turn_on"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"entityId"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"switch.varmtvannsbereder_switch"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"data"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"dataType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"jsonata"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"mergecontext"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"mustacheAltTags"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"outputProperties"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"queue"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"none"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"700"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"580"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"2a3cd7db.0891f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"api-call-service"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Turn off"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"server"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ec4a12a1.b2be9"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"version"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"3"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"debugenabled"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"service_domain"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"switch"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"service"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"turn_off"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"entityId"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"switch.varmtvannsbereder_switch"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"data"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"dataType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"json"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"mergecontext"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"mustacheAltTags"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"outputProperties"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"queue"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"none"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"700"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"620"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"e21a4b49adea2350"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ps-receive-price"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Price Receiver"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"310"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"620"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token string"},'"391ac08890e0dd40"'),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"391ac08890e0dd40"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ps-strategy-lowest-price"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Lowest Price"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"fromTime"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"18"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"toTime"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"08"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"hoursOn"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"04"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"doNotSplit"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"sendCurrentValueWhenRescheduling"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"outputIfNoSchedule"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"false"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"outputOutsidePeriod"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"false"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"490"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"620"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token string"},'"32f17ab2.927cf6"'),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token string"},'"2a3cd7db.0891f8"'),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token string"},'"ed7202ff.b5725"'),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ec4a12a1.b2be9"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"server"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Home Assistant"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"version"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"2"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"addon"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"rejectUnauthorizedCerts"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"ha_boolean"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"y|yes|true|on|home|open"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"connectionDelay"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"cacheJson"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"heartbeat"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"heartbeatInterval"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"30"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t.Uk)("\n"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n")])])],-1),_={},u=(0,a(3744).Z)(_,[["render",function(s,n){return(0,t.wg)(),(0,t.iD)(t.HY,null,[e,p,k,c,r,l],64)}]])},3744:(s,n)=>{n.Z=(s,n)=>{const a=s.__vccOpts||s;for(const[s,t]of n)a[s]=t;return a}},2201:(s,n,a)=>{s.exports=a.p+"assets/img/power-saver-nordpool-events-state.8c392507.png"}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[418],{3959:(n,e,s)=>{s.r(e),s.d(e,{data:()=>a});const a={key:"v-4637f9e4",path:"/nodes/ps-strategy-lowest-price.html",title:"ps-strategy-lowest-price",lang:"en-US",frontmatter:{next:"./ps-receive-price.md"},excerpt:"",headers:[{level:2,title:"Description",slug:"description",children:[]},{level:2,title:"Configuration",slug:"configuration",children:[{level:3,title:"Dynamic config",slug:"dynamic-config",children:[]},{level:3,title:"Dynamic commands",slug:"dynamic-commands",children:[]}]},{level:2,title:"Input",slug:"input",children:[]},{level:2,title:"Output",slug:"output",children:[]},{level:2,title:"Tips & tricks",slug:"tips-tricks",children:[{level:3,title:"Multiple nodes works together",slug:"multiple-nodes-works-together",children:[]},{level:3,title:"Highest price",slug:"highest-price",children:[]}]}],filePathRelative:"nodes/ps-strategy-lowest-price.md",git:{updatedTime:1642369461e3}}},3572:(n,e,s)=>{s.r(e),s.d(e,{default:()=>nn});var a=s(6252),t=s(6110),o=s(3981);const l=(0,a._)("h1",{id:"ps-strategy-lowest-price",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#ps-strategy-lowest-price","aria-hidden":"true"},"#"),(0,a.Uk)(" ps-strategy-lowest-price")],-1),r=(0,a._)("p",null,[(0,a._)("img",{src:t,alt:"ps-strategy-lowest-price"})],-1),p=(0,a._)("p",null,"Strategy node to turn on power the hours when the price is lowest during a given period, and turn off the other hours.",-1),c=(0,a._)("h2",{id:"description",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#description","aria-hidden":"true"},"#"),(0,a.Uk)(" Description")],-1),i=(0,a._)("p",null,"The node can work on a specific period from 1 to 24 hours during a 24 hour period. Inside this period, you can decide how many hours that shall be on. The rest of the period will be off. Outside the period, you can select that the output shall be either on or off. You can also decide that the hours on shall be consecutive (one continuous period) or spread around in multiple on-periods.",-1),u=(0,a._)("h2",{id:"configuration",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#configuration","aria-hidden":"true"},"#"),(0,a.Uk)(" Configuration")],-1),_=(0,a._)("p",null,[(0,a._)("img",{src:o,alt:"Node Configuration"})],-1),k=(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[(0,a._)("th",null,"Value"),(0,a._)("th",null,"Description")])]),(0,a._)("tbody",null,[(0,a._)("tr",null,[(0,a._)("td",null,"From Time"),(0,a._)("td",null,"The start time of the selected period.")]),(0,a._)("tr",null,[(0,a._)("td",null,"To Time"),(0,a._)("td",null,"The end time of the selected period.")]),(0,a._)("tr",null,[(0,a._)("td",null,"Hours On"),(0,a._)("td",null,"The number of hours that shall be turned on.")]),(0,a._)("tr",null,[(0,a._)("td",null,"Consecutive On-Period"),(0,a._)("td",null,"Check this if you need the on-period to be consecutive.")]),(0,a._)("tr",null,[(0,a._)("td",null,"Send When Rescheduling"),(0,a._)("td",null,"Check this to make sure on or off output is sent immediately after rescheduling.")]),(0,a._)("tr",null,[(0,a._)("td",null,"If No Schedule, Send"),(0,a._)("td",null,"What to do if there is no valid schedule any more (turn on or off).")]),(0,a._)("tr",null,[(0,a._)("td",null,"Outside Period, Send"),(0,a._)("td",null,"Select the value to send outside the selected period.")])])],-1),d=(0,a._)("p",null,"If you want to use a period of 24 hours, set the From Time and To Time to the same value. The time you select is significant in the way that it decides which 24 hours that are considered when finding the hours with lowest price.",-1),h=(0,a._)("div",{class:"custom-container tip"},[(0,a._)("p",{class:"custom-container-title"},"Example with Consecutive On-Period"),(0,a._)("p",null,[(0,a.Uk)("One example to need a consecutive on-period can be if you want to control the washing machine. Let's say it needs 3 hours, and you want it to run between 22:00 and 06:00. Set "),(0,a._)("code",null,"From Time = 22:00"),(0,a.Uk)(", "),(0,a._)("code",null,"To Time = 06:00"),(0,a.Uk)(" and check the "),(0,a._)("code",null,"Consecutive On-Period"),(0,a.Uk)(" flag. This will turn on the cheapest 3-hour period from 22:00 to 06:00.")]),(0,a._)("p",null,"NB! It is not recommended to run the washing machine when you are sleeping or away.")],-1),b=(0,a._)("div",{class:"custom-container tip"},[(0,a._)("p",{class:"custom-container-title"},"Example with non-consecutive on-period"),(0,a._)("p",null,[(0,a.Uk)("If you have heating cables in the driveway, you may need them to be on only for a few hours every day, for example 4 hours, but it may not be important when this is. Then set "),(0,a._)("code",null,"From Time = 00:00"),(0,a.Uk)(", "),(0,a._)("code",null,"To Time = 00:00"),(0,a.Uk)(" and "),(0,a._)("strong",null,"un-check"),(0,a.Uk)(" the "),(0,a._)("code",null,"Consecutive On-Period"),(0,a.Uk)(" flag. This will turn on the 4 cheapest hours during the whole day, and off the rest.")]),(0,a._)("p",null,[(0,a.Uk)("You can use any time for start and end, but it is a good idea to use "),(0,a._)("code",null,"00:00"),(0,a.Uk)(", since the prices normally comes for this period.")])],-1),m=(0,a._)("div",{class:"custom-container warning"},[(0,a._)("p",{class:"custom-container-title"},"Outside Period, Send"),(0,a._)("p",null,[(0,a.Uk)("Unless the period you select is 24 hours ("),(0,a._)("code",null,"From Time"),(0,a.Uk)(" and "),(0,a._)("code",null,"To Time"),(0,a.Uk)(" are the same), it is important what value you choose for "),(0,a._)("code",null,"Outside Period, Send"),(0,a.Uk)(". This decides whether the output is on or off during the period that is outside the selected period.")])],-1),U=(0,a._)("div",{class:"custom-container danger"},[(0,a._)("p",{class:"custom-container-title"},"Schedule not calculated"),(0,a._)("p",null,"If you select a period for example from 10:00 to 02:00, it may not be possible to calculate before the period starts. This is because electricity prices for the next day (in the Nord Pool area) normally are received around 13:00. The node cannot calculate the period until it has price data for the whole period.")],-1),g=(0,a._)("h3",{id:"dynamic-config",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#dynamic-config","aria-hidden":"true"},"#"),(0,a.Uk)(" Dynamic config")],-1),y=(0,a._)("p",null,"It is possible to change config dynamically by sending a config message to the node. The config messages has a payload with a config object like this example:",-1),f=(0,a._)("div",{class:"language-json ext-json line-numbers-mode"},[(0,a._)("pre",{class:"language-json"},[(0,a._)("code",null,[(0,a._)("span",{class:"token property"},'"payload"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"config"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"fromTime"'),(0,a.Uk)(),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"10"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"toTime"'),(0,a.Uk)(),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"16"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"hoursOn"'),(0,a.Uk)(),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"3"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"doNotSplit"'),(0,a.Uk)(),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"false"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"sendCurrentValueWhenRescheduling"'),(0,a.Uk)(),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"outputIfNoSchedule"'),(0,a.Uk)(),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"false"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"outputOutsidePeriod"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"false"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n"),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n")])]),(0,a._)("div",{class:"line-numbers"},[(0,a._)("span",{class:"line-number"},"1"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"2"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"3"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"4"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"5"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"6"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"7"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"8"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"9"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"10"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"11"),(0,a._)("br")])],-1),w=(0,a._)("p",null,"All the variables in the config object are optional. You can send only those you want to change.",-1),v=(0,a._)("p",null,"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.",-1),T=(0,a._)("p",null,"When a config is sent like this, and without price data, the schedule will be replanned based on the last previously received price data. If no price data has been received, no scheduling is done.",-1),x=(0,a._)("p",null,"However, you can send config and price data in the same message. Then both will be used .",-1),O=(0,a._)("h3",{id:"dynamic-commands",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#dynamic-commands","aria-hidden":"true"},"#"),(0,a.Uk)(" Dynamic commands")],-1),S=(0,a._)("p",null,[(0,a.Uk)("You can dynamically send some commands to the node via its input, by using a "),(0,a._)("code",null,"commands"),(0,a.Uk)(" object in the payload as described below.")],-1),j=(0,a._)("p",null,"Commands can be sent together with config and/or price data, but the exact behavior is not defined.",-1),C=(0,a._)("h4",{id:"sendschedule",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#sendschedule","aria-hidden":"true"},"#"),(0,a.Uk)(" sendSchedule")],-1),I=(0,a._)("p",null,"You can get the schedule sent to output 3 any time by sending a message like this to the node:",-1),W=(0,a._)("div",{class:"language-json ext-json line-numbers-mode"},[(0,a._)("pre",{class:"language-json"},[(0,a._)("code",null,[(0,a._)("span",{class:"token property"},'"payload"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"commands"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"sendSchedule"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n"),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n")])]),(0,a._)("div",{class:"line-numbers"},[(0,a._)("span",{class:"line-number"},"1"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"2"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"3"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"4"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"5"),(0,a._)("br")])],-1),N=(0,a._)("p",null,"When you do this, the current schedule is actually recalculated based on the last received data, and then sent to output 3 the same way as when it was originally planned.",-1),P=(0,a._)("h4",{id:"reset",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#reset","aria-hidden":"true"},"#"),(0,a.Uk)(" reset")],-1),Y=(0,a._)("p",null,"You can reset data the node has saved in context by sending this message:",-1),D=(0,a._)("div",{class:"language-json ext-json line-numbers-mode"},[(0,a._)("pre",{class:"language-json"},[(0,a._)("code",null,[(0,a._)("span",{class:"token property"},'"payload"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"commands"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"reset"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n"),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n")])]),(0,a._)("div",{class:"line-numbers"},[(0,a._)("span",{class:"line-number"},"1"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"2"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"3"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"4"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"5"),(0,a._)("br")])],-1),H=(0,a._)("p",null,'When you do this, all historical data the node has saved is deleted, including the current schedule, so the result will be that the node shows status "No price data". When new price data is received, a schedule is calculated without considering any history.',-1),F=(0,a._)("p",null,"The nodes config is not deleted, as the node depends on it to work.",-1),R=(0,a._)("div",{class:"custom-container warning"},[(0,a._)("p",{class:"custom-container-title"},"WARNING"),(0,a._)("p",null,"This operation cannot be undone."),(0,a._)("p",null,"However, it is normally not a big loss, as you can just feed the node with new price data and start from scratch.")],-1),E=(0,a._)("h2",{id:"input",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#input","aria-hidden":"true"},"#"),(0,a.Uk)(" Input")],-1),V=(0,a.Uk)("The input is the "),A=(0,a.Uk)("common strategy input format"),L=(0,a._)("h2",{id:"output",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#output","aria-hidden":"true"},"#"),(0,a.Uk)(" Output")],-1),M=(0,a._)("p",null,"When a valid input is received, and the schedule is recalculated, the resulting schedule, as well as some other information, is sent to output 3. You can use this to see the plan and verify that it meets your expectations. You can also use it to display the schedule in any way you like.",-1),Z=(0,a._)("p",null,"Example of output:",-1),B=(0,a._)("div",{class:"language-json ext-json line-numbers-mode"},[(0,a._)("pre",{class:"language-json"},[(0,a._)("code",null,[(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"schedule"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"["),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"time"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-12-10T00:00:00.000+01:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"value"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"true"'),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"time"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-12-10T04:00:00.000+01:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"value"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"time"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-12-10T10:00:00.000+01:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"value"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"false"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"time"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-12-10T18:00:00.000+01:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"value"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"true"'),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"time"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-12-11T04:00:00.000+01:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"value"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"time"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-12-11T10:00:00.000+01:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"value"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"false"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"time"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-12-11T18:00:00.000+01:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"value"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"true"'),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"]"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"hours"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"["),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"price"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"0.4778"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"onOff"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"true"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"start"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-12-10T00:00:00.000+01:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"saving"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token null keyword"},"null"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"price"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"0.4828"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"onOff"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"true"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"start"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-12-10T01:00:00.000+01:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"saving"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token null keyword"},"null"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token comment"},"//..."),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"price"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token number"},"0.6514"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"onOff"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"true"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"start"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-12-11T23:00:00.000+01:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"saving"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token null keyword"},"null"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"]"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"source"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"Tibber"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"config"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token punctuation"},"{"),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"fromTime"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"04"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"toTime"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"18"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"hoursOn"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"06"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"doNotSplit"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"false"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"sendCurrentValueWhenRescheduling"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token boolean"},"true"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"outputIfNoSchedule"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"true"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"outputOutsidePeriod"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"true"'),(0,a.Uk)("\n "),(0,a._)("span",{class:"token punctuation"},"}"),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"time"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"2021-09-30T23:45:12.123+02:00"'),(0,a._)("span",{class:"token punctuation"},","),(0,a.Uk)("\n "),(0,a._)("span",{class:"token property"},'"version"'),(0,a._)("span",{class:"token operator"},":"),(0,a.Uk)(),(0,a._)("span",{class:"token string"},'"3.1.2"'),(0,a.Uk)("\n"),(0,a._)("span",{class:"token punctuation"},"}"),(0,a.Uk)("\n")])]),(0,a._)("div",{class:"line-numbers"},[(0,a._)("span",{class:"line-number"},"1"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"2"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"3"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"4"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"5"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"6"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"7"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"8"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"9"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"10"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"11"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"12"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"13"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"14"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"15"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"16"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"17"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"18"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"19"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"20"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"21"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"22"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"23"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"24"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"25"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"26"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"27"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"28"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"29"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"30"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"31"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"32"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"33"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"34"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"35"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"36"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"37"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"38"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"39"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"40"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"41"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"42"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"43"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"44"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"45"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"46"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"47"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"48"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"49"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"50"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"51"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"52"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"53"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"54"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"55"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"56"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"57"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"58"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"59"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"60"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"61"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"62"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"63"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"64"),(0,a._)("br"),(0,a._)("span",{class:"line-number"},"65"),(0,a._)("br")])],-1),G=(0,a._)("p",null,[(0,a.Uk)("The "),(0,a._)("code",null,"schedule"),(0,a.Uk)(" array shows every time the switch is turned on or off. The "),(0,a._)("code",null,"hours"),(0,a.Uk)(" array shows values per hour containing the price (received as input), whether that hour is on or off, the start time of the hour and the amount per kWh that is saved on hours that are turned off, compared to the next hour that is on.")],-1),J=(0,a._)("h2",{id:"tips-tricks",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#tips-tricks","aria-hidden":"true"},"#"),(0,a.Uk)(" Tips & tricks")],-1),q=(0,a._)("h3",{id:"multiple-nodes-works-together",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#multiple-nodes-works-together","aria-hidden":"true"},"#"),(0,a.Uk)(" Multiple nodes works together")],-1),z=(0,a._)("p",null,"You can use multiple nodes simultanously, for different periods, if you want more hours on one part of the day than another part, or to make sure there are at least some hours on during each period.",-1),K=(0,a._)("h3",{id:"highest-price",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#highest-price","aria-hidden":"true"},"#"),(0,a.Uk)(" Highest price")],-1),Q=(0,a._)("p",null,[(0,a.Uk)("If you want to find the "),(0,a._)("code",null,"x"),(0,a.Uk)(" hours with the highest prices, do as follows:")],-1),X=(0,a._)("ol",null,[(0,a._)("li",null,[(0,a.Uk)("Calculate "),(0,a._)("code",null,"y"),(0,a.Uk)(" as the total number of hours in the period. For example, if the period is from "),(0,a._)("code",null,"08:00"),(0,a.Uk)(" to "),(0,a._)("code",null,"20:00"),(0,a.Uk)(", then "),(0,a._)("code",null,"y = 12"),(0,a.Uk)(".")]),(0,a._)("li",null,[(0,a.Uk)("Configure "),(0,a._)("code",null,"Hours On = y - x"),(0,a.Uk)(", so if "),(0,a._)("code",null,"x = 4"),(0,a.Uk)(", then "),(0,a._)("code",null,"Hours On = 12 - 4 = 8"),(0,a.Uk)(".")]),(0,a._)("li",null,[(0,a.Uk)("Use "),(0,a._)("strong",null,"Output 2"),(0,a.Uk)(" to get a signal when you have the hours with the highest prices. Just remember that the value sent to output 2 is "),(0,a._)("code",null,"false"),(0,a.Uk)(", not "),(0,a._)("code",null,"true"),(0,a.Uk)(" as it is on output 1.")])],-1),$={},nn=(0,s(3744).Z)($,[["render",function(n,e){const s=(0,a.up)("RouterLink");return(0,a.wg)(),(0,a.iD)(a.HY,null,[l,r,p,c,i,u,_,k,d,h,b,m,U,g,y,f,w,v,T,x,O,S,j,C,I,W,N,P,Y,D,H,F,R,E,(0,a._)("p",null,[V,(0,a.Wm)(s,{to:"/nodes/strategy-input.html"},{default:(0,a.w5)((()=>[A])),_:1})]),L,M,Z,B,G,J,q,z,K,Q,X],64)}]])},3744:(n,e)=>{e.Z=(n,e)=>{const s=n.__vccOpts||n;for(const[n,a]of e)s[n]=a;return s}},3981:(n,e,s)=>{n.exports=s.p+"assets/img/lowest-price-config.6d66a8c2.png"},6110:(n,e,s)=>{n.exports=s.p+"assets/img/node-ps-strategy-lowest-price.3a4ad347.png"}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[495],{3707:(e,i,l)=>{l.r(i),l.d(i,{data:()=>a});const a={key:"v-510ed0d4",path:"/changelog/",title:"Change Log",lang:"en-US",frontmatter:{sidebar:"auto"},excerpt:"",headers:[{level:2,title:"3.3.1",slug:"_3-3-1",children:[]},{level:2,title:"3.3.0",slug:"_3-3-0",children:[]},{level:2,title:"3.2.3",slug:"_3-2-3",children:[]},{level:2,title:"3.2.2",slug:"_3-2-2",children:[]},{level:2,title:"3.2.1",slug:"_3-2-1",children:[]},{level:2,title:"3.2.0",slug:"_3-2-0",children:[]},{level:2,title:"3.1.2",slug:"_3-1-2",children:[]},{level:2,title:"3.1.1",slug:"_3-1-1",children:[]},{level:2,title:"3.1.0",slug:"_3-1-0",children:[]},{level:2,title:"3.0.10",slug:"_3-0-10",children:[]},{level:2,title:"3.0.9",slug:"_3-0-9",children:[]},{level:2,title:"3.0.8",slug:"_3-0-8",children:[]},{level:2,title:"3.0.7",slug:"_3-0-7",children:[]},{level:2,title:"3.0.6",slug:"_3-0-6",children:[]},{level:2,title:"3.0.5",slug:"_3-0-5",children:[]},{level:2,title:"3.0.4",slug:"_3-0-4",children:[]},{level:2,title:"3.0.3",slug:"_3-0-3",children:[]},{level:2,title:"3.0.2",slug:"_3-0-2",children:[]},{level:2,title:"3.0.1",slug:"_3-0-1",children:[]},{level:2,title:"3.0.0",slug:"_3-0-0",children:[]},{level:2,title:"2.1.0",slug:"_2-1-0",children:[]},{level:2,title:"2.0.5",slug:"_2-0-5",children:[]},{level:2,title:"2.0.4",slug:"_2-0-4",children:[]},{level:2,title:"2.0.3",slug:"_2-0-3",children:[]},{level:2,title:"2.0.2",slug:"_2-0-2",children:[]},{level:2,title:"2.0.1",slug:"_2-0-1",children:[]},{level:2,title:"2.0.0",slug:"_2-0-0",children:[]},{level:2,title:"1.0.9",slug:"_1-0-9",children:[]}],filePathRelative:"changelog/README.md",git:{updatedTime:1643047651e3}}},9191:(e,i,l)=>{l.r(i),l.d(i,{default:()=>c});var a=l(6252);const t=(0,a._)("h1",{id:"change-log",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#change-log","aria-hidden":"true"},"#"),(0,a.Uk)(" Change Log")],-1),d=(0,a._)("p",null,"List the most significant changes, starting in version 1.0.9.",-1),r=(0,a._)("h2",{id:"_3-3-1",tabindex:"-1"},[(0,a._)("a",{class:"header-anchor",href:"#_3-3-1","aria-hidden":"true"},"#"),(0,a.Uk)(" 3.3.1")],-1),n=(0,a._)("li",null,[(0,a.Uk)("Move doc to "),(0,a._)("a",{href:"power-saver.smoky.no"},"power-saver.smoky.no")],-1),o=(0,a.Uk)("Make tool to test the result of the best save node: "),h=(0,a.Uk)("Best Save Viewer"),s=(0,a.uE)('<h2 id="_3-3-0" tabindex="-1"><a class="header-anchor" href="#_3-3-0" aria-hidden="true">#</a> 3.3.0</h2><ul><li>Remove the config option to schedule from the current hour. The feature did not work, and it was not clear how it should work.</li><li>Added a dynamic command feature to make it possible to dynamically <ol><li>Tell the node to send the schedule to output 3.</li><li>Reset saved data making the next schedule to start without historical data.</li></ol></li><li>Fix node status so it says "No price data" when there is no price data available.</li><li>Added an FAQ section to the doc.</li></ul><h2 id="_3-2-3" tabindex="-1"><a class="header-anchor" href="#_3-2-3" aria-hidden="true">#</a> 3.2.3</h2><ul><li>Remove unused imports</li><li>Fix doc deployment issue</li></ul><h2 id="_3-2-2" tabindex="-1"><a class="header-anchor" href="#_3-2-2" aria-hidden="true">#</a> 3.2.2</h2><ul><li>New attempt to solve the problem with multiple outputs at the same time.</li></ul><h2 id="_3-2-1" tabindex="-1"><a class="header-anchor" href="#_3-2-1" aria-hidden="true">#</a> 3.2.1</h2><ul><li>Fix that may solve the problem with multiple outputs at the same time.</li></ul><h2 id="_3-2-0" tabindex="-1"><a class="header-anchor" href="#_3-2-0" aria-hidden="true">#</a> 3.2.0</h2><ul><li>Config can be sent on input to strategy nodes together with price data, in the same message.</li><li>The ps-receive-price and ps-xxx-add-tariff nodes pass config through from input to output.</li><li>Status on strategy nodes shows the time for the next change.</li></ul><h2 id="_3-1-2" tabindex="-1"><a class="header-anchor" href="#_3-1-2" aria-hidden="true">#</a> 3.1.2</h2><ul><li>Add time, version and current value to output from strategy nodes.</li></ul><h2 id="_3-1-1" tabindex="-1"><a class="header-anchor" href="#_3-1-1" aria-hidden="true">#</a> 3.1.1</h2><ul><li>Fix schedule for Lowest Price node so it uses data from previous day correctly. It sometimes failed when the selected period went over midnight.</li><li>Fix so old data in the Lowest Price node context is deleted.</li></ul><h2 id="_3-1-0" tabindex="-1"><a class="header-anchor" href="#_3-1-0" aria-hidden="true">#</a> 3.1.0</h2><ul><li>New node <code>ps-general-add-tariff</code> to add values that varies af fixed times during the day.</li></ul><h2 id="_3-0-10" tabindex="-1"><a class="header-anchor" href="#_3-0-10" aria-hidden="true">#</a> 3.0.10</h2><ul><li>Fix bug in ps-elvia-add-tariff so it connects to API.</li></ul><h2 id="_3-0-9" tabindex="-1"><a class="header-anchor" href="#_3-0-9" aria-hidden="true">#</a> 3.0.9</h2><ul><li>Fix Nord Pool input for current state node, to read data when payload is set to entity.</li></ul><h2 id="_3-0-8" tabindex="-1"><a class="header-anchor" href="#_3-0-8" aria-hidden="true">#</a> 3.0.8</h2><ul><li>Fix bug in Lowest Price node when period goes over midnight.</li><li>Fix documentation - lots of pages were failing.</li></ul><h2 id="_3-0-7" tabindex="-1"><a class="header-anchor" href="#_3-0-7" aria-hidden="true">#</a> 3.0.7</h2><ul><li>Fix Nord Pool current state node input.</li></ul><h2 id="_3-0-6" tabindex="-1"><a class="header-anchor" href="#_3-0-6" aria-hidden="true">#</a> 3.0.6</h2><ul><li>Remove non-existent node from package.json.</li></ul><h2 id="_3-0-5" tabindex="-1"><a class="header-anchor" href="#_3-0-5" aria-hidden="true">#</a> 3.0.5</h2><ul><li>Move dependencies to correct section (node_fetch and lodash.cloneDeep).</li></ul><h2 id="_3-0-4" tabindex="-1"><a class="header-anchor" href="#_3-0-4" aria-hidden="true">#</a> 3.0.4</h2><ul><li>Remove <code>null</code>-values from Nord Pool data for <code>tomorrow</code>.</li></ul><h2 id="_3-0-3" tabindex="-1"><a class="header-anchor" href="#_3-0-3" aria-hidden="true">#</a> 3.0.3</h2><ul><li>Fix bug in lowest price strategy, when period ends at midnight.</li><li>Fix labels for hours on, so they do not have leading zero.</li><li>Fix so source should be visible in output 3.</li></ul><h2 id="_3-0-2" tabindex="-1"><a class="header-anchor" href="#_3-0-2" aria-hidden="true">#</a> 3.0.2</h2><ul><li>Bugfix in Lowest Price node (not successful)</li></ul><h2 id="_3-0-1" tabindex="-1"><a class="header-anchor" href="#_3-0-1" aria-hidden="true">#</a> 3.0.1</h2><ul><li>Fix so elvia subscription key is stored as credential</li><li>Fix bug on config for strategy nodes. Config was not saved properly.</li><li>Remove double output bug, and better handling when hoursOn > period</li></ul><h2 id="_3-0-0" tabindex="-1"><a class="header-anchor" href="#_3-0-0" aria-hidden="true">#</a> 3.0.0</h2><ul><li>Deprecating old Power Saver node, adding multiple new nodes.</li><li>New node <code>ps-strategy-best-save</code> is replacing old node <code>Power Saver</code> together with the new <code>ps-receive-price</code> node.</li><li>Add new strategy node: <code>ps-strategy-lowest-price</code>.</li><li>Add new node: <code>ps-receive-price</code>.</li><li>Add grid tariff for Elvia customers, using the <code>ps-elvia-add-tariff</code> node.</li><li>New documentation.</li><li>Change node category to Power Saver.</li></ul><h2 id="_2-1-0" tabindex="-1"><a class="header-anchor" href="#_2-1-0" aria-hidden="true">#</a> 2.1.0</h2><ul><li>Accept config as input, making it possible to dynamically change config</li><li>Fix dropdown for config value for selecting output when there is no schedule</li><li>Improve config screen and documentation</li></ul><h2 id="_2-0-5" tabindex="-1"><a class="header-anchor" href="#_2-0-5" aria-hidden="true">#</a> 2.0.5</h2><ul><li>Update links to examples</li></ul><h2 id="_2-0-4" tabindex="-1"><a class="header-anchor" href="#_2-0-4" aria-hidden="true">#</a> 2.0.4</h2><ul><li>Update doc and add examples</li></ul><h2 id="_2-0-3" tabindex="-1"><a class="header-anchor" href="#_2-0-3" aria-hidden="true">#</a> 2.0.3</h2><ul><li>Bugfix</li></ul><h2 id="_2-0-2" tabindex="-1"><a class="header-anchor" href="#_2-0-2" aria-hidden="true">#</a> 2.0.2</h2><ul><li>Fix so Nord Pool data can be read directly from the current state node</li></ul><h2 id="_2-0-1" tabindex="-1"><a class="header-anchor" href="#_2-0-1" aria-hidden="true">#</a> 2.0.1</h2><ul><li>Fix bug that caused no schedule</li><li>Add config to output</li></ul><h2 id="_2-0-0" tabindex="-1"><a class="header-anchor" href="#_2-0-0" aria-hidden="true">#</a> 2.0.0</h2><ul><li>New and better algorithm to calculate savings, resulting in a better schedule.</li><li>Removed possibility to configure maximum hours to save per day, as this does not really make much sense.</li><li>Round savings to 4 decimals.</li><li>Set last savings hour to null when 0.</li></ul><h2 id="_1-0-9" tabindex="-1"><a class="header-anchor" href="#_1-0-9" aria-hidden="true">#</a> 1.0.9</h2><ul><li>Fix bug in saving last hour of the day.</li></ul>',54),u={},c=(0,l(3744).Z)(u,[["render",function(e,i){const l=(0,a.up)("RouterLink");return(0,a.wg)(),(0,a.iD)(a.HY,null,[t,d,r,(0,a._)("ul",null,[n,(0,a._)("li",null,[o,(0,a.Wm)(l,{to:"/changelog/power-saver.smoky.no/faq/best-save-viewer.html"},{default:(0,a.w5)((()=>[h])),_:1})])]),s],64)}]])},3744:(e,i)=>{i.Z=(e,i)=>{const l=e.__vccOpts||e;for(const[e,a]of i)l[e]=a;return l}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunknode_red_contrib_power_saver=self.webpackChunknode_red_contrib_power_saver||[]).push([[625],{8682:(s,n,a)=>{a.r(n),a.d(n,{data:()=>t});const t={key:"v-5db8da3a",path:"/examples/example-tibber-mqtt.html",title:"Tibber, a switch and MQTT",lang:"en-US",frontmatter:{},excerpt:"",headers:[{level:2,title:"Description",slug:"description",children:[]},{level:2,title:"Flow",slug:"flow",children:[]}],filePathRelative:"examples/example-tibber-mqtt.md",git:{updatedTime:1642369461e3}}},5479:(s,n,a)=>{a.r(n),a.d(n,{default:()=>d});var t=a(6252),o=a(3837);const p=(0,t._)("h1",{id:"tibber-a-switch-and-mqtt",tabindex:"-1"},[(0,t._)("a",{class:"header-anchor",href:"#tibber-a-switch-and-mqtt","aria-hidden":"true"},"#"),(0,t.Uk)(" Tibber, a switch and MQTT")],-1),e=(0,t._)("h2",{id:"description",tabindex:"-1"},[(0,t._)("a",{class:"header-anchor",href:"#description","aria-hidden":"true"},"#"),(0,t.Uk)(" Description")],-1),c=(0,t.Uk)("In this example, data is read from Tibber and used to turn on/off a switch, scheduled by the "),k=(0,t._)("code",null,"ps-best-save",-1),r=(0,t.Uk)(" node to be off up to 5 hours in a row, but only if at least 5 cents/øre is saved per kWh. Data is also sent to MQTT, for example to be displayed on "),l={href:"https://magicmirror.builders/",target:"_blank",rel:"noopener noreferrer"},_=(0,t.Uk)("Magic Mirror"),u=(0,t.Uk)("."),i=(0,t._)("p",null,[(0,t._)("img",{src:o,alt:"Example with Tibber and MQTT"})],-1),U=(0,t._)("h2",{id:"flow",tabindex:"-1"},[(0,t._)("a",{class:"header-anchor",href:"#flow","aria-hidden":"true"},"#"),(0,t.Uk)(" Flow")],-1),y=(0,t._)("div",{class:"language-json ext-json"},[(0,t._)("pre",{class:"language-json"},[(0,t._)("code",null,[(0,t._)("span",{class:"token punctuation"},"["),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"467a5fe.d0bbba"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"mqtt out"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Send switch to MM"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"topic"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"powersaver/switch"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"qos"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"0"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"retain"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"false"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"broker"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"24fbcfb5.569ea"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"730"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"120"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ab2d599a.077738"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"tibber-query"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Get Tibber prices"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"active"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"apiEndpointRef"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"b70ec5d0.6f8f08"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"470"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"100"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token string"},'"0ef929fde193cf4d"'),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"4f11b5ae.4cc22c"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"inject"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Refresh"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"props"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"p"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"payload"'),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"repeat"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"3600"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"crontab"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"once"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"onceDelay"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"1"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"topic"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"payload"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"{ viewer { homes { currentSubscription{ priceInfo{ today { total startsAt } tomorrow { total startsAt } } } } } }"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"payloadType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"str"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"280"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"100"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token string"},'"ab2d599a.077738"'),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"42d8b632.402e38"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"mqtt out"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Send schedule to MM"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"topic"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"powersaver/plan"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"qos"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"0"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"retain"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"true"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"broker"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"24fbcfb5.569ea"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"740"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"240"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"5e485ff7.db156"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"api-call-service"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Turn on VVB"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"server"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ec4a12a1.b2be9"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"version"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"3"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"debugenabled"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"service_domain"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"switch"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"service"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"turn_on"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"entityId"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"switch.varmtvannsbereder_switch"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"data"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"dataType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"jsonata"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"mergecontext"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"mustacheAltTags"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"outputProperties"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"queue"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"none"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"710"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"60"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"9c978d1c.ee76"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"api-call-service"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Turn off VVB"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"server"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ec4a12a1.b2be9"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"version"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"3"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"debugenabled"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"service_domain"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"switch"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"service"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"turn_off"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"entityId"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"switch.varmtvannsbereder_switch"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"data"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"dataType"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"json"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"mergecontext"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"mustacheAltTags"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"outputProperties"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"queue"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"none"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"710"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"180"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"5b6be1568744c6cf"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ps-strategy-best-save"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Best Save"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"maxHoursToSaveInSequence"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"5"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"minHoursOnAfterMaxSequenceSaved"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"1"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"minSaving"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"0.05"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"sendCurrentValueWhenRescheduling"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"outputIfNoSchedule"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"true"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"490"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"160"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token string"},'"467a5fe.d0bbba"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"5e485ff7.db156"'),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token string"},'"9c978d1c.ee76"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"467a5fe.d0bbba"'),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token string"},'"42d8b632.402e38"'),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"0ef929fde193cf4d"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ps-receive-price"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"z"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"d938c47f.3398f8"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Price Receiver"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"x"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"280"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"y"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"160"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"wires"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token punctuation"},"["),(0,t._)("span",{class:"token string"},'"5b6be1568744c6cf"'),(0,t._)("span",{class:"token punctuation"},"]"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"24fbcfb5.569ea"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"mqtt-broker"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"MQTT"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"broker"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"10.0.0.15"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"port"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"1883"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"clientid"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"usetls"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"compatmode"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"keepalive"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"60"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"cleansession"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"birthTopic"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"birthQos"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"0"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"birthPayload"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"closeTopic"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"closeQos"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"0"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"closePayload"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"willTopic"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"willQos"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"0"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"willPayload"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'""'),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"b70ec5d0.6f8f08"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"tibber-api-endpoint"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"feedUrl"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"wss://api.tibber.com/v1-beta/gql/subscriptions"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"queryUrl"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"https://api.tibber.com/v1-beta/gql"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Tibber API"'),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"{"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"id"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"ec4a12a1.b2be9"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"type"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"server"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"name"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"Home Assistant"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"version"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"2"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"addon"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"rejectUnauthorizedCerts"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"ha_boolean"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token string"},'"y|yes|true|on|home|open"'),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"connectionDelay"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"cacheJson"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"true"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"heartbeat"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token boolean"},"false"),(0,t._)("span",{class:"token punctuation"},","),(0,t.Uk)("\n "),(0,t._)("span",{class:"token property"},'"heartbeatInterval"'),(0,t._)("span",{class:"token operator"},":"),(0,t.Uk)(),(0,t._)("span",{class:"token number"},"30"),(0,t.Uk)("\n "),(0,t._)("span",{class:"token punctuation"},"}"),(0,t.Uk)("\n"),(0,t._)("span",{class:"token punctuation"},"]"),(0,t.Uk)("\n")])])],-1),b={},d=(0,a(3744).Z)(b,[["render",function(s,n){const a=(0,t.up)("OutboundLink");return(0,t.wg)(),(0,t.iD)(t.HY,null,[p,e,(0,t._)("p",null,[c,k,r,(0,t._)("a",l,[_,(0,t.Wm)(a)]),u]),i,U,y],64)}]])},3744:(s,n)=>{n.Z=(s,n)=>{const a=s.__vccOpts||s;for(const[s,t]of n)a[s]=t;return a}},3837:(s,n,a)=>{s.exports=a.p+"assets/img/power-saver-tibber-mqtt.16891dd2.png"}}]);
|