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
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en-US">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
+
<meta name="generator" content="VuePress 2.0.0-beta.35">
|
|
7
|
+
<style>
|
|
8
|
+
:root {
|
|
9
|
+
--c-bg: #fff;
|
|
10
|
+
}
|
|
11
|
+
html.dark {
|
|
12
|
+
--c-bg: #22272e;
|
|
13
|
+
}
|
|
14
|
+
html, body {
|
|
15
|
+
background-color: var(--c-bg);
|
|
16
|
+
}
|
|
17
|
+
</style>
|
|
18
|
+
<script>
|
|
19
|
+
const userMode = localStorage.getItem('vuepress-color-scheme');
|
|
20
|
+
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
21
|
+
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
|
|
22
|
+
document.documentElement.classList.toggle('dark', true);
|
|
23
|
+
}
|
|
24
|
+
</script>
|
|
25
|
+
<link rel="shortcut icon" type="image/x-icon" href="euro.png"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9857859182772006" crossorigin="anonymous"></script><title>Cascade temperature control | Power Saver</title><meta name="description" content="A Node-RED note to save money on hourly changing power prices">
|
|
26
|
+
<link rel="preload" href="/assets/js/runtime~app.f6ac32d7.js" as="script"><link rel="preload" href="/assets/css/styles.1c48cbd0.css" as="style"><link rel="preload" href="/assets/js/405.f4edd94d.js" as="script"><link rel="preload" href="/assets/js/app.dfdee6f9.js" as="script">
|
|
27
|
+
<link rel="stylesheet" href="/assets/css/styles.1c48cbd0.css">
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div id="app"><!--[--><div class="theme-container"><!--[--><header ref_key="navbar" class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/" class=""><!----><span class="site-name">Power Saver</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/guide/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><a href="/nodes/" class="" aria-label="Nodes"><!--[--><!--]--> Nodes <!--[--><!--]--></a></div><div class="navbar-item"><a href="/examples/" class="router-link-active" aria-label="Examples"><!--[--><!--]--> Examples <!--[--><!--]--></a></div><div class="navbar-item"><a href="/faq/" class="" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a></div><div class="navbar-item"><a href="/contribute/" class="" aria-label="Contribute"><!--[--><!--]--> Contribute <!--[--><!--]--></a></div><div class="navbar-item"><a href="/changelog/" class="" aria-label="Changes"><!--[--><!--]--> Changes <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="https://github.com/ottopaulsen/node-red-contrib-power-saver" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-dark-button" title="toggle dark mode"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><!----></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><a href="/guide/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><a href="/nodes/" class="" aria-label="Nodes"><!--[--><!--]--> Nodes <!--[--><!--]--></a></div><div class="navbar-item"><a href="/examples/" class="router-link-active" aria-label="Examples"><!--[--><!--]--> Examples <!--[--><!--]--></a></div><div class="navbar-item"><a href="/faq/" class="" aria-label="FAQ"><!--[--><!--]--> FAQ <!--[--><!--]--></a></div><div class="navbar-item"><a href="/contribute/" class="" aria-label="Contribute"><!--[--><!--]--> Contribute <!--[--><!--]--></a></div><div class="navbar-item"><a href="/changelog/" class="" aria-label="Changes"><!--[--><!--]--> Changes <!--[--><!--]--></a></div><div class="navbar-item"><a class="external-link" href="https://github.com/ottopaulsen/node-red-contrib-power-saver" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading active">Examples <!----></p><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a href="/examples/example-nordpool-current-state.html" class="sidebar-item" aria-label="Nord Pool and current state node"><!--[--><!--]--> Nord Pool and current state node <!--[--><!--]--></a><!----></li><li><a href="/examples/example-nordpool-events-state.html" class="sidebar-item" aria-label="Nord Pool and events: state node"><!--[--><!--]--> Nord Pool and events: state node <!--[--><!--]--></a><!----></li><li><a href="/examples/example-tibber-mqtt.html" class="sidebar-item" aria-label="Tibber, a switch and MQTT"><!--[--><!--]--> Tibber, a switch and MQTT <!--[--><!--]--></a><!----></li><li><a href="/examples/example-heat-capacitor.html" class="sidebar-item" aria-label="Simple heat capacitor strategy flow"><!--[--><!--]--> Simple heat capacitor strategy flow <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/examples/example-cascade-temperature-control.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="Cascade temperature control"><!--[--><!--]--> Cascade temperature control <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/examples/example-cascade-temperature-control.html#description" class="router-link-active router-link-exact-active sidebar-item" aria-label="Description"><!--[--><!--]--> Description <!--[--><!--]--></a><!--[--><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/examples/example-cascade-temperature-control.html#an-example" class="router-link-active router-link-exact-active sidebar-item" aria-label="An example"><!--[--><!--]--> An example <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><li><a aria-current="page" href="/examples/example-cascade-temperature-control.html#requirements" class="router-link-active router-link-exact-active sidebar-item" aria-label="Requirements"><!--[--><!--]--> Requirements <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/examples/example-cascade-temperature-control.html#instructions" class="router-link-active router-link-exact-active sidebar-item" aria-label="Instructions"><!--[--><!--]--> Instructions <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/examples/example-cascade-temperature-control.html#flow" class="router-link-active router-link-exact-active sidebar-item" aria-label="Flow"><!--[--><!--]--> Flow <!--[--><!--]--></a><!----></li><!--]--></ul><!--]--></li><!--]--></ul><!--]--></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page"><!--[--><!--]--><div class="theme-default-content"><!--[--><h1 id="cascade-temperature-control" tabindex="-1"><a class="header-anchor" href="#cascade-temperature-control" aria-hidden="true">#</a> Cascade temperature control</h1><h2 id="description" tabindex="-1"><a class="header-anchor" href="#description" aria-hidden="true">#</a> Description</h2><p>The controller changes the setpoint of climate entities to regulate the temperature of room with increased responsiveness, accuracy, and stability.</p><h3 id="an-example" tabindex="-1"><a class="header-anchor" href="#an-example" aria-hidden="true">#</a> An example</h3><p>A room has a temperature sensor and en electric heater. Given a setpoint temperature, the controller can make the sensor match the given value by adjusting the temperature settings of the electric heater. This type of control usually reacts faster and is more accurate then the alternative of simply changing the temperature settings of the heater. The flow requires that node-red, home assistant, and the connection to the climate entity are stable.</p><p><img src="/assets/img/node-ps-strategy-heat-capacitor-cascade-control.2e75ed9e.png" alt="cascade_flow"></p><p><img src="https://deltamotion.com/support/webhelp/rmctools/Controller_Features/Control_Modes/Advanced_Control/CascadeLoop.png" alt="cascade_example"></p><p>The example utilizes a PID controller to provide a number between 0 and 1 to indicate a load on the heater</p><p>A cascade temperature controller is a controller which utilizes the input/setpoints of other controllers/climate entities to regulate to its own setpoint</p><hr><h2 id="requirements" tabindex="-1"><a class="header-anchor" href="#requirements" aria-hidden="true">#</a> Requirements</h2><ul><li><p>Home assistant integrated with Node-RED</p></li><li><p>The PID node installed - https://flows.nodered.org/node/node-red-contrib-pid</p></li><li><p>A climate entity</p></li></ul><h2 id="instructions" tabindex="-1"><a class="header-anchor" href="#instructions" aria-hidden="true">#</a> Instructions</h2><ul><li><p>Create an <code>input_number</code> entity in Home Assistant and name it "cascade_setpoint"</p></li><li><p>Create an <code>input_boolean</code> entity in Home Assistant and name it <code>cascade_enabled</code></p></li></ul><ul><li>When set to false, this will disengage the controller</li></ul><ul><li><p>Import the flow into Node-RED</p></li><li><p>Enter the correct sensor tempertaure entity in the <code>Temp sensor</code> node</p></li><li><p>Change the climate entity name in three places</p></li></ul><ul><li>Current climate settings - node</li><li>Set Temperature node - two places <ul><li><code>Entity ID</code></li><li><code>Data</code></li></ul></li></ul><ul><li>(optional) Change the oven setpoint range - see figure below.</li></ul><ul><li>This regulates what values the controller sends to the oven. As a default, the value sent is oven_setpoint = setpoint +- 5 degrees. That is, for a setoint of 10C, the controller will be sending setpoints between 5 and 15 C to the oven. This is further limited to whole numbers, a minimum value of 5, and a maximum value of 30.</li></ul><ul><li>(reccomended) Tune the PID controller - Detailed instructions can be found here: http://blog.clanlaw.org.uk/pid-loop-tuning.html</li></ul><ul><li>Measure the system and find the overshoot time <ul><li>Set the proportional band to <strong>zero</strong> and place the setpoint a bit above the current measured value (se figure).</li><li>Wait for the system to overshoot the target temperature and measure the time it takes for the system to return to the setpoint.</li></ul></li><li>Set the proportional band. This is the value indicates how much the measured temperature is allowed to deviate from the setpoint before max load is applied.</li><li>Spesify the integral time. A good value is two times the overshoot time.</li><li>Insert the derivative time. A good value here is half of the overshoot time.</li></ul><p><img src="/assets/img/oven-setpoint-calculation.5bda0eec.png" alt="oven_setoint"><img src="/assets/img/overshoot-time.b3b5d70e.png" alt="overshoot_time"></p><hr><h2 id="flow" tabindex="-1"><a class="header-anchor" href="#flow" aria-hidden="true">#</a> Flow</h2><hr><details class="custom-container details"><summary>Flow code</summary><div class="language-json ext-json"><pre class="language-json"><code><span class="token punctuation">[</span>
|
|
31
|
+
<span class="token punctuation">{</span>
|
|
32
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
33
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"tab"</span><span class="token punctuation">,</span>
|
|
34
|
+
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"PID Controller - cascade"</span><span class="token punctuation">,</span>
|
|
35
|
+
<span class="token property">"disabled"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
36
|
+
<span class="token property">"info"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
37
|
+
<span class="token property">"env"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
|
|
38
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
39
|
+
<span class="token punctuation">{</span>
|
|
40
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"61ae0bee1a382102"</span><span class="token punctuation">,</span>
|
|
41
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"server-state-changed"</span><span class="token punctuation">,</span>
|
|
42
|
+
<span class="token property">"z"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
43
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Setpoint"</span><span class="token punctuation">,</span>
|
|
44
|
+
<span class="token property">"server"</span><span class="token operator">:</span> <span class="token string">"e2dd69fb.8f70a8"</span><span class="token punctuation">,</span>
|
|
45
|
+
<span class="token property">"version"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>
|
|
46
|
+
<span class="token property">"exposeToHomeAssistant"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
47
|
+
<span class="token property">"haConfig"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
|
48
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"name"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
49
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"icon"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span> <span class="token punctuation">}</span>
|
|
50
|
+
<span class="token punctuation">]</span><span class="token punctuation">,</span>
|
|
51
|
+
<span class="token property">"entityidfilter"</span><span class="token operator">:</span> <span class="token string">"input_number.cascade_setpoint"</span><span class="token punctuation">,</span>
|
|
52
|
+
<span class="token property">"entityidfiltertype"</span><span class="token operator">:</span> <span class="token string">"exact"</span><span class="token punctuation">,</span>
|
|
53
|
+
<span class="token property">"outputinitially"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
54
|
+
<span class="token property">"state_type"</span><span class="token operator">:</span> <span class="token string">"num"</span><span class="token punctuation">,</span>
|
|
55
|
+
<span class="token property">"haltifstate"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
56
|
+
<span class="token property">"halt_if_type"</span><span class="token operator">:</span> <span class="token string">"str"</span><span class="token punctuation">,</span>
|
|
57
|
+
<span class="token property">"halt_if_compare"</span><span class="token operator">:</span> <span class="token string">"is"</span><span class="token punctuation">,</span>
|
|
58
|
+
<span class="token property">"outputs"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
|
59
|
+
<span class="token property">"output_only_on_state_change"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
60
|
+
<span class="token property">"for"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
|
61
|
+
<span class="token property">"forType"</span><span class="token operator">:</span> <span class="token string">"num"</span><span class="token punctuation">,</span>
|
|
62
|
+
<span class="token property">"forUnits"</span><span class="token operator">:</span> <span class="token string">"minutes"</span><span class="token punctuation">,</span>
|
|
63
|
+
<span class="token property">"ignorePrevStateNull"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
64
|
+
<span class="token property">"ignorePrevStateUnknown"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
65
|
+
<span class="token property">"ignorePrevStateUnavailable"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
66
|
+
<span class="token property">"ignoreCurrentStateUnknown"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
67
|
+
<span class="token property">"ignoreCurrentStateUnavailable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
68
|
+
<span class="token property">"outputProperties"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
|
69
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"payload"</span><span class="token punctuation">,</span> <span class="token property">"propertyType"</span><span class="token operator">:</span> <span class="token string">"msg"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span> <span class="token property">"valueType"</span><span class="token operator">:</span> <span class="token string">"entityState"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
70
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"data"</span><span class="token punctuation">,</span> <span class="token property">"propertyType"</span><span class="token operator">:</span> <span class="token string">"msg"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span> <span class="token property">"valueType"</span><span class="token operator">:</span> <span class="token string">"eventData"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
71
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"topic"</span><span class="token punctuation">,</span> <span class="token property">"propertyType"</span><span class="token operator">:</span> <span class="token string">"msg"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span> <span class="token property">"valueType"</span><span class="token operator">:</span> <span class="token string">"triggerId"</span> <span class="token punctuation">}</span>
|
|
72
|
+
<span class="token punctuation">]</span><span class="token punctuation">,</span>
|
|
73
|
+
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">120</span><span class="token punctuation">,</span>
|
|
74
|
+
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>
|
|
75
|
+
<span class="token property">"wires"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">"f8958d382348c254"</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
|
76
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
77
|
+
<span class="token punctuation">{</span>
|
|
78
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"ef1c6050d6de41c7"</span><span class="token punctuation">,</span>
|
|
79
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"server-state-changed"</span><span class="token punctuation">,</span>
|
|
80
|
+
<span class="token property">"z"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
81
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Temp. sensor"</span><span class="token punctuation">,</span>
|
|
82
|
+
<span class="token property">"server"</span><span class="token operator">:</span> <span class="token string">"e2dd69fb.8f70a8"</span><span class="token punctuation">,</span>
|
|
83
|
+
<span class="token property">"version"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>
|
|
84
|
+
<span class="token property">"exposeToHomeAssistant"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
85
|
+
<span class="token property">"haConfig"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
|
86
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"name"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
87
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"icon"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span> <span class="token punctuation">}</span>
|
|
88
|
+
<span class="token punctuation">]</span><span class="token punctuation">,</span>
|
|
89
|
+
<span class="token property">"entityidfilter"</span><span class="token operator">:</span> <span class="token string">"sensor.kjokken_temp"</span><span class="token punctuation">,</span>
|
|
90
|
+
<span class="token property">"entityidfiltertype"</span><span class="token operator">:</span> <span class="token string">"exact"</span><span class="token punctuation">,</span>
|
|
91
|
+
<span class="token property">"outputinitially"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
92
|
+
<span class="token property">"state_type"</span><span class="token operator">:</span> <span class="token string">"num"</span><span class="token punctuation">,</span>
|
|
93
|
+
<span class="token property">"haltifstate"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
94
|
+
<span class="token property">"halt_if_type"</span><span class="token operator">:</span> <span class="token string">"str"</span><span class="token punctuation">,</span>
|
|
95
|
+
<span class="token property">"halt_if_compare"</span><span class="token operator">:</span> <span class="token string">"is"</span><span class="token punctuation">,</span>
|
|
96
|
+
<span class="token property">"outputs"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
|
97
|
+
<span class="token property">"output_only_on_state_change"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
98
|
+
<span class="token property">"for"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
|
99
|
+
<span class="token property">"forType"</span><span class="token operator">:</span> <span class="token string">"num"</span><span class="token punctuation">,</span>
|
|
100
|
+
<span class="token property">"forUnits"</span><span class="token operator">:</span> <span class="token string">"seconds"</span><span class="token punctuation">,</span>
|
|
101
|
+
<span class="token property">"ignorePrevStateNull"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
102
|
+
<span class="token property">"ignorePrevStateUnknown"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
103
|
+
<span class="token property">"ignorePrevStateUnavailable"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
104
|
+
<span class="token property">"ignoreCurrentStateUnknown"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
105
|
+
<span class="token property">"ignoreCurrentStateUnavailable"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
106
|
+
<span class="token property">"outputProperties"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
|
107
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"payload"</span><span class="token punctuation">,</span> <span class="token property">"propertyType"</span><span class="token operator">:</span> <span class="token string">"msg"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span> <span class="token property">"valueType"</span><span class="token operator">:</span> <span class="token string">"entityState"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
108
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"data"</span><span class="token punctuation">,</span> <span class="token property">"propertyType"</span><span class="token operator">:</span> <span class="token string">"msg"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span> <span class="token property">"valueType"</span><span class="token operator">:</span> <span class="token string">"eventData"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
109
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"topic"</span><span class="token punctuation">,</span> <span class="token property">"propertyType"</span><span class="token operator">:</span> <span class="token string">"msg"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span> <span class="token property">"valueType"</span><span class="token operator">:</span> <span class="token string">"triggerId"</span> <span class="token punctuation">}</span>
|
|
110
|
+
<span class="token punctuation">]</span><span class="token punctuation">,</span>
|
|
111
|
+
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">130</span><span class="token punctuation">,</span>
|
|
112
|
+
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">160</span><span class="token punctuation">,</span>
|
|
113
|
+
<span class="token property">"wires"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">"ee1904546f36bdcb"</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
|
114
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
115
|
+
<span class="token punctuation">{</span>
|
|
116
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"f8958d382348c254"</span><span class="token punctuation">,</span>
|
|
117
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"function"</span><span class="token punctuation">,</span>
|
|
118
|
+
<span class="token property">"z"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
119
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Specify topic"</span><span class="token punctuation">,</span>
|
|
120
|
+
<span class="token property">"func"</span><span class="token operator">:</span> <span class="token string">"msg.topic = \"setpoint\"\nflow.set('setpoint',msg.payload)\nreturn msg"</span><span class="token punctuation">,</span>
|
|
121
|
+
<span class="token property">"outputs"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
|
122
|
+
<span class="token property">"noerr"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
|
123
|
+
<span class="token property">"initialize"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
124
|
+
<span class="token property">"finalize"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
125
|
+
<span class="token property">"libs"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
|
126
|
+
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">270</span><span class="token punctuation">,</span>
|
|
127
|
+
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>
|
|
128
|
+
<span class="token property">"wires"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">"6f77dd60c21180e1"</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
|
129
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
130
|
+
<span class="token punctuation">{</span>
|
|
131
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"6f77dd60c21180e1"</span><span class="token punctuation">,</span>
|
|
132
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"PID"</span><span class="token punctuation">,</span>
|
|
133
|
+
<span class="token property">"z"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
134
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
135
|
+
<span class="token property">"setpoint"</span><span class="token operator">:</span> <span class="token string">"7"</span><span class="token punctuation">,</span>
|
|
136
|
+
<span class="token property">"pb"</span><span class="token operator">:</span> <span class="token string">"0.6"</span><span class="token punctuation">,</span>
|
|
137
|
+
<span class="token property">"ti"</span><span class="token operator">:</span> <span class="token string">"3600"</span><span class="token punctuation">,</span>
|
|
138
|
+
<span class="token property">"td"</span><span class="token operator">:</span> <span class="token string">"900"</span><span class="token punctuation">,</span>
|
|
139
|
+
<span class="token property">"integral_default"</span><span class="token operator">:</span> <span class="token number">0.5</span><span class="token punctuation">,</span>
|
|
140
|
+
<span class="token property">"smooth_factor"</span><span class="token operator">:</span> <span class="token string">"2"</span><span class="token punctuation">,</span>
|
|
141
|
+
<span class="token property">"max_interval"</span><span class="token operator">:</span> <span class="token string">"600"</span><span class="token punctuation">,</span>
|
|
142
|
+
<span class="token property">"enable"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
|
143
|
+
<span class="token property">"disabled_op"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
|
144
|
+
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">430</span><span class="token punctuation">,</span>
|
|
145
|
+
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">140</span><span class="token punctuation">,</span>
|
|
146
|
+
<span class="token property">"wires"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">"ea6adedb7e2fc14e"</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
|
147
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
148
|
+
<span class="token punctuation">{</span>
|
|
149
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"ea6adedb7e2fc14e"</span><span class="token punctuation">,</span>
|
|
150
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"function"</span><span class="token punctuation">,</span>
|
|
151
|
+
<span class="token property">"z"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
152
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Calc oven setpoint"</span><span class="token punctuation">,</span>
|
|
153
|
+
<span class="token property">"func"</span><span class="token operator">:</span> <span class="token string">"msg.load = msg.payload\n//Max adjustment is +-5 degrees\ntemp = flow.get('setpoint')+ 5 * 2 * (msg.load-0.5)\n//Some ovens have max and min temperature settings\nif(temp<5) {temp=5.0;}\nif(temp>30) {temp=30.0;}\n//Many ovens cannot deal with decimals.\ntemp = Math.round(temp)\nmsg.heater_setpoint=temp\nreturn msg"</span><span class="token punctuation">,</span>
|
|
154
|
+
<span class="token property">"outputs"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
|
155
|
+
<span class="token property">"noerr"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
|
156
|
+
<span class="token property">"initialize"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
157
|
+
<span class="token property">"finalize"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
158
|
+
<span class="token property">"libs"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
|
159
|
+
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">590</span><span class="token punctuation">,</span>
|
|
160
|
+
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">140</span><span class="token punctuation">,</span>
|
|
161
|
+
<span class="token property">"wires"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">"45925567a1177d5b"</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
|
162
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
163
|
+
<span class="token punctuation">{</span>
|
|
164
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"5fa07ec0c1842823"</span><span class="token punctuation">,</span>
|
|
165
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"api-current-state"</span><span class="token punctuation">,</span>
|
|
166
|
+
<span class="token property">"z"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
167
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Current climate settings"</span><span class="token punctuation">,</span>
|
|
168
|
+
<span class="token property">"server"</span><span class="token operator">:</span> <span class="token string">"e2dd69fb.8f70a8"</span><span class="token punctuation">,</span>
|
|
169
|
+
<span class="token property">"version"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>
|
|
170
|
+
<span class="token property">"outputs"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
|
171
|
+
<span class="token property">"halt_if"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
172
|
+
<span class="token property">"halt_if_type"</span><span class="token operator">:</span> <span class="token string">"str"</span><span class="token punctuation">,</span>
|
|
173
|
+
<span class="token property">"halt_if_compare"</span><span class="token operator">:</span> <span class="token string">"is"</span><span class="token punctuation">,</span>
|
|
174
|
+
<span class="token property">"entity_id"</span><span class="token operator">:</span> <span class="token string">"climate.my_climate"</span><span class="token punctuation">,</span>
|
|
175
|
+
<span class="token property">"state_type"</span><span class="token operator">:</span> <span class="token string">"str"</span><span class="token punctuation">,</span>
|
|
176
|
+
<span class="token property">"blockInputOverrides"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
177
|
+
<span class="token property">"outputProperties"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
|
178
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"payload"</span><span class="token punctuation">,</span> <span class="token property">"propertyType"</span><span class="token operator">:</span> <span class="token string">"msg"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span> <span class="token property">"valueType"</span><span class="token operator">:</span> <span class="token string">"entityState"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
179
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"data"</span><span class="token punctuation">,</span> <span class="token property">"propertyType"</span><span class="token operator">:</span> <span class="token string">"msg"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span> <span class="token property">"valueType"</span><span class="token operator">:</span> <span class="token string">"entity"</span> <span class="token punctuation">}</span>
|
|
180
|
+
<span class="token punctuation">]</span><span class="token punctuation">,</span>
|
|
181
|
+
<span class="token property">"for"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
|
182
|
+
<span class="token property">"forType"</span><span class="token operator">:</span> <span class="token string">"num"</span><span class="token punctuation">,</span>
|
|
183
|
+
<span class="token property">"forUnits"</span><span class="token operator">:</span> <span class="token string">"minutes"</span><span class="token punctuation">,</span>
|
|
184
|
+
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">950</span><span class="token punctuation">,</span>
|
|
185
|
+
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">140</span><span class="token punctuation">,</span>
|
|
186
|
+
<span class="token property">"wires"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">"ba7e48582e04c14c"</span><span class="token punctuation">,</span> <span class="token string">"0a7c09c92a01178e"</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
|
187
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
188
|
+
<span class="token punctuation">{</span>
|
|
189
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"ba7e48582e04c14c"</span><span class="token punctuation">,</span>
|
|
190
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"switch"</span><span class="token punctuation">,</span>
|
|
191
|
+
<span class="token property">"z"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
192
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Not same?"</span><span class="token punctuation">,</span>
|
|
193
|
+
<span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"data.attributes.temperature"</span><span class="token punctuation">,</span>
|
|
194
|
+
<span class="token property">"propertyType"</span><span class="token operator">:</span> <span class="token string">"msg"</span><span class="token punctuation">,</span>
|
|
195
|
+
<span class="token property">"rules"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">{</span> <span class="token property">"t"</span><span class="token operator">:</span> <span class="token string">"neq"</span><span class="token punctuation">,</span> <span class="token property">"v"</span><span class="token operator">:</span> <span class="token string">"heater_setpoint"</span><span class="token punctuation">,</span> <span class="token property">"vt"</span><span class="token operator">:</span> <span class="token string">"msg"</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
|
196
|
+
<span class="token property">"checkall"</span><span class="token operator">:</span> <span class="token string">"true"</span><span class="token punctuation">,</span>
|
|
197
|
+
<span class="token property">"repair"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
198
|
+
<span class="token property">"outputs"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
|
199
|
+
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">1150</span><span class="token punctuation">,</span>
|
|
200
|
+
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">140</span><span class="token punctuation">,</span>
|
|
201
|
+
<span class="token property">"wires"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">"1114bb7e63d16e98"</span><span class="token punctuation">,</span> <span class="token string">"0a7c09c92a01178e"</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
|
202
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
203
|
+
<span class="token punctuation">{</span>
|
|
204
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"1114bb7e63d16e98"</span><span class="token punctuation">,</span>
|
|
205
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"api-call-service"</span><span class="token punctuation">,</span>
|
|
206
|
+
<span class="token property">"z"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
207
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Sett temperatur"</span><span class="token punctuation">,</span>
|
|
208
|
+
<span class="token property">"server"</span><span class="token operator">:</span> <span class="token string">"e2dd69fb.8f70a8"</span><span class="token punctuation">,</span>
|
|
209
|
+
<span class="token property">"version"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>
|
|
210
|
+
<span class="token property">"debugenabled"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
211
|
+
<span class="token property">"service_domain"</span><span class="token operator">:</span> <span class="token string">"climate"</span><span class="token punctuation">,</span>
|
|
212
|
+
<span class="token property">"service"</span><span class="token operator">:</span> <span class="token string">"set_temperature"</span><span class="token punctuation">,</span>
|
|
213
|
+
<span class="token property">"entityId"</span><span class="token operator">:</span> <span class="token string">"climate.my_climate"</span><span class="token punctuation">,</span>
|
|
214
|
+
<span class="token property">"data"</span><span class="token operator">:</span> <span class="token string">"{\"entity_id\":\"climate.my_climate\",\"temperature\":\"{{heater_setpoint}}\"}"</span><span class="token punctuation">,</span>
|
|
215
|
+
<span class="token property">"dataType"</span><span class="token operator">:</span> <span class="token string">"json"</span><span class="token punctuation">,</span>
|
|
216
|
+
<span class="token property">"mergecontext"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
217
|
+
<span class="token property">"mustacheAltTags"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
218
|
+
<span class="token property">"outputProperties"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
|
219
|
+
<span class="token property">"queue"</span><span class="token operator">:</span> <span class="token string">"none"</span><span class="token punctuation">,</span>
|
|
220
|
+
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">1320</span><span class="token punctuation">,</span>
|
|
221
|
+
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">140</span><span class="token punctuation">,</span>
|
|
222
|
+
<span class="token property">"wires"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
|
223
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
224
|
+
<span class="token punctuation">{</span>
|
|
225
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"45925567a1177d5b"</span><span class="token punctuation">,</span>
|
|
226
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"api-current-state"</span><span class="token punctuation">,</span>
|
|
227
|
+
<span class="token property">"z"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
228
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Enabled?"</span><span class="token punctuation">,</span>
|
|
229
|
+
<span class="token property">"server"</span><span class="token operator">:</span> <span class="token string">"e2dd69fb.8f70a8"</span><span class="token punctuation">,</span>
|
|
230
|
+
<span class="token property">"version"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>
|
|
231
|
+
<span class="token property">"outputs"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>
|
|
232
|
+
<span class="token property">"halt_if"</span><span class="token operator">:</span> <span class="token string">"true"</span><span class="token punctuation">,</span>
|
|
233
|
+
<span class="token property">"halt_if_type"</span><span class="token operator">:</span> <span class="token string">"bool"</span><span class="token punctuation">,</span>
|
|
234
|
+
<span class="token property">"halt_if_compare"</span><span class="token operator">:</span> <span class="token string">"is"</span><span class="token punctuation">,</span>
|
|
235
|
+
<span class="token property">"entity_id"</span><span class="token operator">:</span> <span class="token string">"input_boolean.cascade_enabled"</span><span class="token punctuation">,</span>
|
|
236
|
+
<span class="token property">"state_type"</span><span class="token operator">:</span> <span class="token string">"habool"</span><span class="token punctuation">,</span>
|
|
237
|
+
<span class="token property">"blockInputOverrides"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
238
|
+
<span class="token property">"outputProperties"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
|
239
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"enabled"</span><span class="token punctuation">,</span> <span class="token property">"propertyType"</span><span class="token operator">:</span> <span class="token string">"msg"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span> <span class="token property">"valueType"</span><span class="token operator">:</span> <span class="token string">"entityState"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
240
|
+
<span class="token punctuation">{</span> <span class="token property">"property"</span><span class="token operator">:</span> <span class="token string">"data"</span><span class="token punctuation">,</span> <span class="token property">"propertyType"</span><span class="token operator">:</span> <span class="token string">"msg"</span><span class="token punctuation">,</span> <span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span> <span class="token property">"valueType"</span><span class="token operator">:</span> <span class="token string">"entity"</span> <span class="token punctuation">}</span>
|
|
241
|
+
<span class="token punctuation">]</span><span class="token punctuation">,</span>
|
|
242
|
+
<span class="token property">"for"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
|
243
|
+
<span class="token property">"forType"</span><span class="token operator">:</span> <span class="token string">"num"</span><span class="token punctuation">,</span>
|
|
244
|
+
<span class="token property">"forUnits"</span><span class="token operator">:</span> <span class="token string">"minutes"</span><span class="token punctuation">,</span>
|
|
245
|
+
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">760</span><span class="token punctuation">,</span>
|
|
246
|
+
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">140</span><span class="token punctuation">,</span>
|
|
247
|
+
<span class="token property">"wires"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">"5fa07ec0c1842823"</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
|
248
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
249
|
+
<span class="token punctuation">{</span>
|
|
250
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"0a7c09c92a01178e"</span><span class="token punctuation">,</span>
|
|
251
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"debug"</span><span class="token punctuation">,</span>
|
|
252
|
+
<span class="token property">"z"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
253
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
254
|
+
<span class="token property">"active"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
255
|
+
<span class="token property">"tosidebar"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
256
|
+
<span class="token property">"console"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
257
|
+
<span class="token property">"tostatus"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
258
|
+
<span class="token property">"complete"</span><span class="token operator">:</span> <span class="token string">"true"</span><span class="token punctuation">,</span>
|
|
259
|
+
<span class="token property">"targetType"</span><span class="token operator">:</span> <span class="token string">"full"</span><span class="token punctuation">,</span>
|
|
260
|
+
<span class="token property">"statusVal"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
261
|
+
<span class="token property">"statusType"</span><span class="token operator">:</span> <span class="token string">"auto"</span><span class="token punctuation">,</span>
|
|
262
|
+
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">1330</span><span class="token punctuation">,</span>
|
|
263
|
+
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">240</span><span class="token punctuation">,</span>
|
|
264
|
+
<span class="token property">"wires"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
|
|
265
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
266
|
+
<span class="token punctuation">{</span>
|
|
267
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"ee1904546f36bdcb"</span><span class="token punctuation">,</span>
|
|
268
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"delay"</span><span class="token punctuation">,</span>
|
|
269
|
+
<span class="token property">"z"</span><span class="token operator">:</span> <span class="token string">"29fde6c61057362b"</span><span class="token punctuation">,</span>
|
|
270
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
|
271
|
+
<span class="token property">"pauseType"</span><span class="token operator">:</span> <span class="token string">"delay"</span><span class="token punctuation">,</span>
|
|
272
|
+
<span class="token property">"timeout"</span><span class="token operator">:</span> <span class="token string">"100"</span><span class="token punctuation">,</span>
|
|
273
|
+
<span class="token property">"timeoutUnits"</span><span class="token operator">:</span> <span class="token string">"milliseconds"</span><span class="token punctuation">,</span>
|
|
274
|
+
<span class="token property">"rate"</span><span class="token operator">:</span> <span class="token string">"1"</span><span class="token punctuation">,</span>
|
|
275
|
+
<span class="token property">"nbRateUnits"</span><span class="token operator">:</span> <span class="token string">"1"</span><span class="token punctuation">,</span>
|
|
276
|
+
<span class="token property">"rateUnits"</span><span class="token operator">:</span> <span class="token string">"second"</span><span class="token punctuation">,</span>
|
|
277
|
+
<span class="token property">"randomFirst"</span><span class="token operator">:</span> <span class="token string">"1"</span><span class="token punctuation">,</span>
|
|
278
|
+
<span class="token property">"randomLast"</span><span class="token operator">:</span> <span class="token string">"5"</span><span class="token punctuation">,</span>
|
|
279
|
+
<span class="token property">"randomUnits"</span><span class="token operator">:</span> <span class="token string">"seconds"</span><span class="token punctuation">,</span>
|
|
280
|
+
<span class="token property">"drop"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
281
|
+
<span class="token property">"allowrate"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
282
|
+
<span class="token property">"outputs"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
|
283
|
+
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">290</span><span class="token punctuation">,</span>
|
|
284
|
+
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">160</span><span class="token punctuation">,</span>
|
|
285
|
+
<span class="token property">"wires"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">"6f77dd60c21180e1"</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
|
286
|
+
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
287
|
+
<span class="token punctuation">{</span>
|
|
288
|
+
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"e2dd69fb.8f70a8"</span><span class="token punctuation">,</span>
|
|
289
|
+
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"server"</span><span class="token punctuation">,</span>
|
|
290
|
+
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Home Assistant"</span><span class="token punctuation">,</span>
|
|
291
|
+
<span class="token property">"version"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>
|
|
292
|
+
<span class="token property">"addon"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
293
|
+
<span class="token property">"rejectUnauthorizedCerts"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
294
|
+
<span class="token property">"ha_boolean"</span><span class="token operator">:</span> <span class="token string">"y|yes|true|on|home|open"</span><span class="token punctuation">,</span>
|
|
295
|
+
<span class="token property">"connectionDelay"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
|
296
|
+
<span class="token property">"cacheJson"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
297
|
+
<span class="token property">"heartbeat"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
298
|
+
<span class="token property">"heartbeatInterval"</span><span class="token operator">:</span> <span class="token string">"30"</span>
|
|
299
|
+
<span class="token punctuation">}</span>
|
|
300
|
+
<span class="token punctuation">]</span>
|
|
301
|
+
</code></pre></div></details><!--]--></div><footer class="page-meta"><!----><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><!----></footer><nav class="page-nav"><p class="inner"><span class="prev"><a href="/examples/example-heat-capacitor.html" class="" aria-label="Simple heat capacitor strategy flow"><!--[--><!--]--> Simple heat capacitor strategy flow <!--[--><!--]--></a></span><!----></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
|
302
|
+
<script src="/assets/js/runtime~app.f6ac32d7.js" defer></script><script src="/assets/js/405.f4edd94d.js" defer></script><script src="/assets/js/app.dfdee6f9.js" defer></script>
|
|
303
|
+
</body>
|
|
304
|
+
</html>
|