[ { "id": "80f2ffd4953c67e9", "type": "tab", "label": "K.Thermostat", "disabled": false, "info": "", "env": [] }, { "id": "f12560e95cd346d2", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat - bucket", "style": { "fill": "#ffC000", "fill-opacity": "0.05", "label": true, "stroke": "#ffC000" }, "nodes": [ "f0bd4b1ffe5da318", "5c64177e3bbfd337", "4f0f1c286cdfedcd" ], "x": 94, "y": 19, "w": 342, "h": 82 }, { "id": "dbf491fd689e7cd2", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat", "style": { "fill": "#777777", "fill-opacity": "0.05", "label": true }, "nodes": [ "ccc78d495cbd8f7d", "e57e9c900c787424", "8206912d2f9bab36", "0af18fd6cc155518", "c311204f22191fa2", "868902cdeaa428fe", "467ec12f292b2573", "6c4b12585b58300e" ], "x": 68, "y": 2213, "w": 2204, "h": 1874 }, { "id": "7e9cff1699c061ec", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat - compute heat request", "style": { "stroke": "#92d04f", "fill": "#92d04f", "fill-opacity": "0.05", "label": true }, "nodes": [ "1452439e0c937126", "15d8d0ba06961e4b", "4b342483a51b0f93" ], "x": 94, "y": 1879, "w": 522, "h": 82 }, { "id": "93075511ad056e6d", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat - update - outdoor temperature (customized to my needs)", "style": { "label": true, "fill": "#92d04f", "fill-opacity": "0.05" }, "nodes": [ "8bbf52c2a83e09ea", "0a9cb3219b03ca53", "de7ea9b615e052e6", "37844601d21c6184", "e3dc3f877be31d77", "6fbdfc1ab44f9754", "85f9e2ad24cb8a5a", "818c3dadf81b379e" ], "x": 94, "y": 4159, "w": 1402, "h": 142 }, { "id": "e653f3ec3dc88a8f", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat - update - indoor temperature", "style": { "fill": "#92d04f", "fill-opacity": "0.05", "label": true }, "nodes": [ "3099e4a17fd21410", "a2b07c98d61de126", "d09ad27d05d54698", "4c169fc26f833802", "a21c6a2db7aeab09", "c7d315d762524494", "e2c388ba43ec89f0", "9eb8cf78caf3141d", "313fbd5fc01985a5", "b7ffd39578f29c8b", "c3b17da928d7afba" ], "x": 94, "y": 4339, "w": 2052, "h": 142 }, { "id": "6f1f772c23d57e24", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat - update - offloading", "style": { "fill": "#92d04f", "fill-opacity": "0.05", "label": true }, "nodes": [ "5cb2a229a6fec1aa", "1c4fbd9e3d313b43", "2aaf95392a970167", "e78638ee35b8c069", "2cb92368cb319c65", "1dd82f8d7e2ccd52", "4b2f0c80863bf5e7", "91ee9f04019a9999", "53f044d01f2d18b2", "2df7aa160cbf3a71", "db3681610a5d90d9", "7869c56dce3123ed", "ea0c6cadf1d594c3", "285a0091abda1f58", "96e92d4bad3792d3", "3de9c88ac7ce9a77", "6e120320180e5cfd", "d237415ac7c1b47b", "808426e9258cd024", "3b539d9347f6bb28" ], "x": 94, "y": 4519, "w": 3832, "h": 142 }, { "id": "c3cbb2a2dd06d1bb", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat - ui - test", "style": { "fill": "#6f2fa0", "fill-opacity": "0.05", "label": true }, "nodes": [ "659f9752db0967bc", "9caafb8c1719d275", "515b0c184c8a3628", "13697bbd73295b46", "c6fdc57a80266f04", "b7bc73260cea8570", "d60c017a8962d3f8", "dc37631fe73fce2a", "c932311ec07112b5", "67e91e753d3708e2", "a86e51fee3e3458d", "f974a627497b4b7d", "809635d5f2efc402", "c9291360c0f0b490", "f10733a435dc7390", "f81152d8df61c845", "bc4771242d5d3bd8", "135b7546018ecfba", "6bf593bd1612dbde", "64405bce10cccde1", "bf5b9cb6fe9e3550", "6e4f87c323cc4659" ], "x": 94, "y": 5959, "w": 1752, "h": 502 }, { "id": "1338205554153fa8", "type": "group", "z": "80f2ffd4953c67e9", "name": "catch error", "style": { "fill": "#ff0000", "fill-opacity": "0.05", "label": true, "stroke": "#ff0000" }, "nodes": [ "104783a075f279a3", "225fbec54fe689f8", "efdfaa2b7173a43a" ], "x": 534, "y": 19, "w": 422, "h": 82 }, { "id": "ccc78d495cbd8f7d", "type": "group", "z": "80f2ffd4953c67e9", "g": "dbf491fd689e7cd2", "name": "thermostat - update - pilot", "style": { "label": true, "fill": "#ff0000", "fill-opacity": "0.05" }, "nodes": [ "cfeaa3a9e12b40eb", "2b98ac8845853557", "1b79850c96d3d208", "014df3b24c891646", "d67d4a70e837c744", "b809a2344b2a162c", "b5123d0e6886505f", "2311d66d2d2f1a5a", "d2ded0d940485aa7", "80b02c9d206eb796", "e50f34cde29f1023", "502bf87b213069c7", "4e6ed9498ff4530e", "12cadcc5d1bee95b", "b54dd8d3915e207f", "06abf52a6249bd22", "93d2b581d45d7631" ], "x": 94, "y": 3619, "w": 2152, "h": 262 }, { "id": "e57e9c900c787424", "type": "group", "z": "80f2ffd4953c67e9", "g": "dbf491fd689e7cd2", "name": "thermostat - update - status", "style": { "label": true, "fill": "#ff0000", "fill-opacity": "0.05" }, "nodes": [ "cd96635eddc7da1f", "4fc3e55ddfdaa010", "529ee15b89c1a59a", "559221227a779f47", "5473623028666410", "61a83a7757b78adc", "889157da2139e8ff", "503a81673f2d7fb0", "a4c6172c4c4737ac", "4cdca41467e84399", "6335a0ba7e4fd02e", "ffdbc6f74f0bd44a", "1ff0b0648a927b0f", "f0e65595e5827e60", "54a377fdde983cc9" ], "x": 94, "y": 3259, "w": 1952, "h": 322 }, { "id": "8206912d2f9bab36", "type": "group", "z": "80f2ffd4953c67e9", "g": "dbf491fd689e7cd2", "name": "thermostat - update - offloading", "style": { "label": true, "fill": "#ff0000", "fill-opacity": "0.05" }, "nodes": [ "f3335edf661bfc8d", "82489d3f8ae606cf", "c91c042b412afd7f", "8a7f5acb317722bc", "aa80f7b58c825d6d", "cbb6f339addc057f", "772937ddeb3e1b72", "1b11e45ef3e9f02f", "3bc159f186c762cd", "0ea437f46160f0e5" ], "x": 94, "y": 3019, "w": 1632, "h": 202 }, { "id": "0af18fd6cc155518", "type": "group", "z": "80f2ffd4953c67e9", "g": "dbf491fd689e7cd2", "name": "thermostat - udpate - temperature setpoint", "style": { "label": true, "fill": "#ff0000", "fill-opacity": "0.05" }, "nodes": [ "e7a80893daf9f5cd", "85d6369076d887c9", "1164fe72097e884c", "0eb756ee244751a4", "3a3af17d95ca520a", "70c27df7cb0add1d", "64754ad76b3561d6", "f9fad454dec37bc7", "55660ec49f882e13" ], "x": 94, "y": 2779, "w": 1412, "h": 202 }, { "id": "c311204f22191fa2", "type": "group", "z": "80f2ffd4953c67e9", "g": "dbf491fd689e7cd2", "name": "thermostat - update - delayed aperture", "style": { "label": true, "fill": "#ff0000", "fill-opacity": "0.05" }, "nodes": [ "f1240da189a60ba8", "ecda411603ebcccf", "f3eb2e8c09f67e89", "f305bda7c25657e5", "6a726c7db415e700", "4658e2323b1a287a", "37b31a14146e2a3f", "92add418b3868c54", "6893398018de38e9" ], "x": 94, "y": 2599, "w": 1592, "h": 142 }, { "id": "868902cdeaa428fe", "type": "group", "z": "80f2ffd4953c67e9", "g": "dbf491fd689e7cd2", "name": "thermostat - metric - input", "style": { "label": true, "fill": "#ff0000", "fill-opacity": "0.05" }, "nodes": [ "266e831763ed3b77", "ed42e96a79df8e09", "7b43ab1cda2d8f3f", "ff4225d872a9a0d3", "623975efd8e9bbcd", "be58e8ac1e1b6eb1" ], "x": 94, "y": 2239, "w": 972, "h": 142 }, { "id": "467ec12f292b2573", "type": "group", "z": "80f2ffd4953c67e9", "g": "dbf491fd689e7cd2", "name": "thermostat - update - heat request", "style": { "label": true, "fill": "#ff0000", "fill-opacity": "0.05" }, "nodes": [ "1ed6b5ff63020d07", "69fda60f897db5fd", "d75bdce71118a56f", "5f6fd378f40e4c81", "0fb59058d3aa9663", "0998eafda2346961" ], "x": 94, "y": 2419, "w": 1172, "h": 157 }, { "id": "6c4b12585b58300e", "type": "group", "z": "80f2ffd4953c67e9", "g": "dbf491fd689e7cd2", "name": "thermostat - metric - output", "style": { "label": true, "fill": "#ff0000", "fill-opacity": "0.05" }, "nodes": [ "a091b2e84a4e89e6", "34e6817c2f435667", "9ba0a97276e93540", "147aa94543fa77cb" ], "x": 94, "y": 3919, "w": 592, "h": 142 }, { "id": "e6edd4684b272434", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat - device", "style": { "label": true, "fill": "#ffC000", "fill-opacity": "0.05" }, "nodes": [ "949a8ee5f18f108a", "fae8eb23e8443ee5", "c2589545c2409827", "8f85c87887c020c4", "55333767f9209bca", "c5b547a57eb368ad", "958bbeb30de3eada", "9ca9625cd3f893dc", "4efebf9bfd65df96", "96d26c543c5fcf13", "5f1e10e5657e3138", "2039bf8bb21c10d1", "21d8e3e1da7313ff", "657fe886d2a3f59f", "f513b11976d16bb9", "73c382176ddebc2b", "a900585cd904a957", "873ead3b33da82c9", "e069a71e517cb7ea", "834fc1d89a1493b3", "c79982618f4e3345", "cb222ce1c4c3d7dc", "3006243d30270236", "1707bc7a4bb0daa5", "ea848cdc88365d9a", "e875ef56fb60ac9c", "0c919f0ee88983ad", "780cf693ea55249b", "fb20d3e29fc3092d", "2b4f4116011a9ca6", "07b7d259f0949e49", "a895f0ea053086fe", "3683e8f63f0dc5aa", "bae9495793960012" ], "x": 94, "y": 199, "w": 1142, "h": 1642 }, { "id": "8ecd405cd0a1e5ac", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat - update - aperture opened", "style": { "fill": "#92d04f", "fill-opacity": "0.05", "label": true }, "nodes": [ "7837b5fcc1432bfa", "6632e88ee0633e4c", "3905527e91730097", "01c20d4c1e5db317", "87b35783671bc785", "c52bde31f64b30dd", "748b1f355c0e00f8", "86cb7c12e7bccf56", "c8d72dec2ba2b842", "a91a6950282e40e0", "7cc8434ffb22fe29" ], "x": 94, "y": 4699, "w": 2272, "h": 164.5 }, { "id": "f0bd4b1ffe5da318", "type": "change", "z": "80f2ffd4953c67e9", "g": "f12560e95cd346d2", "name": "bucket", "rules": [ { "t": "set", "p": "bucket", "pt": "msg", "to": "thermostat", "tot": "str" }, { "t": "set", "p": "bucket", "pt": "flow", "to": "bucket", "tot": "msg" }, { "t": "set", "p": "thermostats", "pt": "flow", "to": "{}", "tot": "jsonata" }, { "t": "set", "p": "offloading", "pt": "flow", "to": "0", "tot": "num" }, { "t": "set", "p": "sort", "pt": "flow", "to": "[]", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 270, "y": 60, "wires": [ [ "4f0f1c286cdfedcd" ] ] }, { "id": "5c64177e3bbfd337", "type": "link in", "z": "80f2ffd4953c67e9", "g": "f12560e95cd346d2", "name": "thermostat - bucket", "links": [ "25445f5a9b787a0a" ], "x": 135, "y": 60, "wires": [ [ "f0bd4b1ffe5da318" ] ] }, { "id": "4f0f1c286cdfedcd", "type": "link out", "z": "80f2ffd4953c67e9", "g": "f12560e95cd346d2", "name": "thermostat - bucket", "mode": "link", "links": [ "4aab252764e96897" ], "x": 395, "y": 60, "wires": [] }, { "id": "cfeaa3a9e12b40eb", "type": "link out", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "thermostat - update - pilot metric", "mode": "link", "links": [ "206c1fb4a48067df" ], "x": 2055, "y": 3780, "wires": [] }, { "id": "2b98ac8845853557", "type": "switch", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "trigger", "property": "field", "propertyType": "msg", "rules": [ { "t": "eq", "v": "status", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 270, "y": 3720, "wires": [ [ "1b79850c96d3d208" ] ] }, { "id": "1b79850c96d3d208", "type": "switch", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "status", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "powered", "vt": "str" }, { "t": "eq", "v": "reached", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 3, "x": 430, "y": 3720, "wires": [ [ "b809a2344b2a162c" ], [ "d67d4a70e837c744" ], [ "d67d4a70e837c744" ] ] }, { "id": "014df3b24c891646", "type": "change", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "to true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 830, "y": 3780, "wires": [ [ "4e6ed9498ff4530e", "12cadcc5d1bee95b", "b5123d0e6886505f" ] ] }, { "id": "d67d4a70e837c744", "type": "change", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "to false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 840, "y": 3720, "wires": [ [ "12cadcc5d1bee95b", "4e6ed9498ff4530e", "b5123d0e6886505f" ] ] }, { "id": "b809a2344b2a162c", "type": "switch", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "system offloaded", "property": "metrics.system.mode.offloading", "propertyType": "global", "rules": [ { "t": "eq", "v": "offloaded", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 630, "y": 3660, "wires": [ [ "b54dd8d3915e207f" ], [ "014df3b24c891646" ] ] }, { "id": "b5123d0e6886505f", "type": "change", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "cycle time", "rules": [ { "t": "set", "p": "tc", "pt": "msg", "to": "th['cycle time']", "tot": "msg" }, { "t": "set", "p": "delay", "pt": "msg", "to": "msg.tc * 60000", "tot": "jsonata" }, { "t": "delete", "p": "tc", "pt": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1020, "y": 3840, "wires": [ [ "d2ded0d940485aa7" ] ] }, { "id": "2311d66d2d2f1a5a", "type": "change", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "thermostat / offloading", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "offloading", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1060, "y": 3660, "wires": [ [ "502bf87b213069c7" ] ] }, { "id": "d2ded0d940485aa7", "type": "trigger", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "wait delay then send false, reset on false", "op1": "", "op2": "false", "op1type": "nul", "op2type": "bool", "duration": "30", "extend": false, "overrideDelay": true, "units": "min", "reset": "false", "bytopic": "topic", "topic": "th.bucket", "outputs": 1, "x": 1300, "y": 3840, "wires": [ [ "4e6ed9498ff4530e", "12cadcc5d1bee95b" ] ] }, { "id": "80b02c9d206eb796", "type": "trigger", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "wait 1 min then send last", "op1": "", "op2": "", "op1type": "nul", "op2type": "payl", "duration": "1", "extend": true, "overrideDelay": false, "units": "min", "reset": "", "bytopic": "topic", "topic": "bucket", "outputs": 1, "x": 1870, "y": 3840, "wires": [ [ "cfeaa3a9e12b40eb", "93d2b581d45d7631" ] ] }, { "id": "e50f34cde29f1023", "type": "link in", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "thermostat - update - pilot", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 3720, "wires": [ [ "2b98ac8845853557" ] ] }, { "id": "502bf87b213069c7", "type": "link out", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "thermostat - update - pilot", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1795, "y": 3660, "wires": [] }, { "id": "4e6ed9498ff4530e", "type": "change", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "thermostat / last pilot", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "last pilot", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "", "tot": "date" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1620, "y": 3720, "wires": [ [ "502bf87b213069c7", "06abf52a6249bd22" ] ] }, { "id": "12cadcc5d1bee95b", "type": "change", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "metric cible / pilot", "rules": [ { "t": "set", "p": "bucket", "pt": "msg", "to": "th.bucket", "tot": "msg" }, { "t": "set", "p": "measurement", "pt": "msg", "to": "cible", "tot": "str" }, { "t": "set", "p": "field", "pt": "msg", "to": "pilot", "tot": "str" }, { "t": "delete", "p": "th", "pt": "msg" }, { "t": "set", "p": "repeat", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1610, "y": 3780, "wires": [ [ "80b02c9d206eb796", "cfeaa3a9e12b40eb", "93d2b581d45d7631" ] ] }, { "id": "b54dd8d3915e207f", "type": "change", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "to false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 840, "y": 3660, "wires": [ [ "2311d66d2d2f1a5a", "b5123d0e6886505f" ] ] }, { "id": "06abf52a6249bd22", "type": "debug", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "thermostat / last pilot", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1880, "y": 3720, "wires": [] }, { "id": "93d2b581d45d7631", "type": "debug", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "xxx / cible / pilot", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 2120, "y": 3840, "wires": [] }, { "id": "cd96635eddc7da1f", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "operating mode", "property": "th['operating mode']", "propertyType": "msg", "rules": [ { "t": "eq", "v": "off", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 460, "y": 3300, "wires": [ [ "5473623028666410" ], [ "4fc3e55ddfdaa010" ] ] }, { "id": "4fc3e55ddfdaa010", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "offloading", "property": "th.offloading", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 660, "y": 3360, "wires": [ [ "61a83a7757b78adc" ], [ "529ee15b89c1a59a" ] ] }, { "id": "529ee15b89c1a59a", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "delayed aperture", "property": "th['delayed aperture']", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 870, "y": 3420, "wires": [ [ "889157da2139e8ff" ], [ "559221227a779f47" ] ] }, { "id": "559221227a779f47", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "heat request", "property": "th['heat request']", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 1090, "y": 3480, "wires": [ [ "503a81673f2d7fb0" ], [ "54a377fdde983cc9" ] ] }, { "id": "5473623028666410", "type": "change", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "stopped", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "stopped", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1460, "y": 3300, "wires": [ [ "4cdca41467e84399" ] ] }, { "id": "61a83a7757b78adc", "type": "change", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "offloaded", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "offloaded", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1460, "y": 3360, "wires": [ [ "4cdca41467e84399" ] ] }, { "id": "889157da2139e8ff", "type": "change", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "suspended", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "suspended", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1470, "y": 3420, "wires": [ [ "4cdca41467e84399" ] ] }, { "id": "503a81673f2d7fb0", "type": "change", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "powered", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "powered", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1460, "y": 3480, "wires": [ [ "4cdca41467e84399" ] ] }, { "id": "a4c6172c4c4737ac", "type": "change", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "reached", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "reached", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1460, "y": 3540, "wires": [ [ "4cdca41467e84399" ] ] }, { "id": "4cdca41467e84399", "type": "change", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "thermostat / status", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "status", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1670, "y": 3360, "wires": [ [ "1ff0b0648a927b0f", "f0e65595e5827e60" ] ] }, { "id": "6335a0ba7e4fd02e", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "trigger", "property": "field", "propertyType": "msg", "rules": [ { "t": "eq", "v": "heat request", "vt": "str" }, { "t": "eq", "v": "operating mode", "vt": "str" }, { "t": "eq", "v": "offloading", "vt": "str" }, { "t": "eq", "v": "delayed aperture", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 4, "x": 270, "y": 3360, "wires": [ [ "cd96635eddc7da1f" ], [ "cd96635eddc7da1f" ], [ "cd96635eddc7da1f" ], [ "cd96635eddc7da1f" ] ] }, { "id": "ffdbc6f74f0bd44a", "type": "link in", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "thermostat - update - status", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 3360, "wires": [ [ "6335a0ba7e4fd02e" ] ] }, { "id": "1ff0b0648a927b0f", "type": "link out", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "thermostat - update - status", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1835, "y": 3360, "wires": [] }, { "id": "f0e65595e5827e60", "type": "debug", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "thermostat / status", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1910, "y": 3300, "wires": [] }, { "id": "54a377fdde983cc9", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "cycle time", "property": "th['last pilot']", "propertyType": "msg", "rules": [ { "t": "lt", "v": "$millis() - ($number(msg.th.'cycle time') * 60000)", "vt": "jsonata" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 1280, "y": 3540, "wires": [ [ "a4c6172c4c4737ac" ] ] }, { "id": "f3335edf661bfc8d", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "trigger", "property": "field", "propertyType": "msg", "rules": [ { "t": "eq", "v": "offloading", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 270, "y": 3120, "wires": [ [ "82489d3f8ae606cf" ] ] }, { "id": "82489d3f8ae606cf", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "is true", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 430, "y": 3120, "wires": [ [ "c91c042b412afd7f", "cbb6f339addc057f", "772937ddeb3e1b72" ] ] }, { "id": "c91c042b412afd7f", "type": "change", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "set delay", "rules": [ { "t": "set", "p": "delay", "pt": "msg", "to": "metrics.thermostat.config['offloading delay']", "tot": "global" }, { "t": "set", "p": "delay", "pt": "msg", "to": "$number(msg.delay) * 60000", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 600, "y": 3180, "wires": [ [ "8a7f5acb317722bc" ] ] }, { "id": "8a7f5acb317722bc", "type": "trigger", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "wait delay then false", "op1": "", "op2": "false", "op1type": "nul", "op2type": "bool", "duration": "1", "extend": true, "overrideDelay": true, "units": "min", "reset": "", "bytopic": "topic", "topic": "th.bucket", "outputs": 1, "x": 820, "y": 3180, "wires": [ [ "aa80f7b58c825d6d" ] ] }, { "id": "aa80f7b58c825d6d", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "system offloaded", "property": "metrics.system.mode.offloading", "propertyType": "global", "rules": [ { "t": "eq", "v": "offloaded", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 1070, "y": 3180, "wires": [ [ "c91c042b412afd7f" ], [ "cbb6f339addc057f" ] ] }, { "id": "cbb6f339addc057f", "type": "change", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "thermostat / offloading", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "offloading", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1320, "y": 3120, "wires": [ [ "3bc159f186c762cd", "0ea437f46160f0e5" ] ] }, { "id": "772937ddeb3e1b72", "type": "change", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "thermostat / offloading count", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "offloading count", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "th['offloading count']", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "$number(msg.payload) + 1", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 660, "y": 3060, "wires": [ [ "3bc159f186c762cd" ] ] }, { "id": "1b11e45ef3e9f02f", "type": "link in", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "thermostat - update - offloading", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 3120, "wires": [ [ "f3335edf661bfc8d" ] ] }, { "id": "3bc159f186c762cd", "type": "link out", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "thermostat - update - offloading", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1495, "y": 3060, "wires": [] }, { "id": "0ea437f46160f0e5", "type": "debug", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "thermostat / offloading", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1580, "y": 3120, "wires": [] }, { "id": "e7a80893daf9f5cd", "type": "switch", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "trigger", "property": "field", "propertyType": "msg", "rules": [ { "t": "eq", "v": "operating mode", "vt": "str" }, { "t": "eq", "v": "confort setpoint", "vt": "str" }, { "t": "eq", "v": "eco setpoint", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 3, "x": 270, "y": 2880, "wires": [ [ "85d6369076d887c9" ], [ "85d6369076d887c9" ], [ "85d6369076d887c9" ] ] }, { "id": "85d6369076d887c9", "type": "switch", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "check operating mode", "property": "th['operating mode']", "propertyType": "msg", "rules": [ { "t": "eq", "v": "confort", "vt": "str" }, { "t": "eq", "v": "eco", "vt": "str" }, { "t": "eq", "v": "anti-freeze", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 3, "x": 480, "y": 2880, "wires": [ [ "1164fe72097e884c" ], [ "0eb756ee244751a4" ], [ "3a3af17d95ca520a" ] ] }, { "id": "1164fe72097e884c", "type": "change", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "confort", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "th['confort setpoint']", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 690, "y": 2820, "wires": [ [ "70c27df7cb0add1d" ] ] }, { "id": "0eb756ee244751a4", "type": "change", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "eco", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "th['eco setpoint']", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 690, "y": 2880, "wires": [ [ "70c27df7cb0add1d" ] ] }, { "id": "3a3af17d95ca520a", "type": "change", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "anti-freeze", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "7", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 710, "y": 2940, "wires": [ [ "70c27df7cb0add1d" ] ] }, { "id": "70c27df7cb0add1d", "type": "change", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "thermostat / temperature setpoint", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "temperature setpoint", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 980, "y": 2880, "wires": [ [ "f9fad454dec37bc7", "55660ec49f882e13" ] ] }, { "id": "64754ad76b3561d6", "type": "link in", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "thermostat - update - temperature setpoint", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 2880, "wires": [ [ "e7a80893daf9f5cd" ] ] }, { "id": "f9fad454dec37bc7", "type": "link out", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "thermostat - update - tempearture setpoint", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1195, "y": 2880, "wires": [] }, { "id": "55660ec49f882e13", "type": "debug", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "thermostat / temperature setpoint", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1320, "y": 2820, "wires": [] }, { "id": "f1240da189a60ba8", "type": "switch", "z": "80f2ffd4953c67e9", "g": "c311204f22191fa2", "name": "trigger", "property": "field", "propertyType": "msg", "rules": [ { "t": "eq", "v": "aperture opened", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 270, "y": 2700, "wires": [ [ "ecda411603ebcccf" ] ] }, { "id": "ecda411603ebcccf", "type": "delay", "z": "80f2ffd4953c67e9", "g": "c311204f22191fa2", "name": "delay 250 ms", "pauseType": "delay", "timeout": "250", "timeoutUnits": "milliseconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 450, "y": 2700, "wires": [ [ "4658e2323b1a287a" ] ] }, { "id": "f3eb2e8c09f67e89", "type": "trigger", "z": "80f2ffd4953c67e9", "g": "c311204f22191fa2", "name": "wait delay then false, reset on true", "op1": "", "op2": "false", "op1type": "nul", "op2type": "bool", "duration": "2", "extend": false, "overrideDelay": true, "units": "min", "reset": "true", "bytopic": "topic", "topic": "th.bucket", "outputs": 1, "x": 900, "y": 2640, "wires": [ [ "6a726c7db415e700" ] ] }, { "id": "f305bda7c25657e5", "type": "trigger", "z": "80f2ffd4953c67e9", "g": "c311204f22191fa2", "name": "wait delay then true, reset on false", "op1": "", "op2": "true", "op1type": "nul", "op2type": "bool", "duration": "2", "extend": false, "overrideDelay": true, "units": "min", "reset": "false", "bytopic": "topic", "topic": "th.bucket", "outputs": 1, "x": 900, "y": 2700, "wires": [ [ "6a726c7db415e700" ] ] }, { "id": "6a726c7db415e700", "type": "change", "z": "80f2ffd4953c67e9", "g": "c311204f22191fa2", "name": "thermostat / delayed aperture", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "delayed aperture", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1220, "y": 2700, "wires": [ [ "92add418b3868c54", "6893398018de38e9" ] ] }, { "id": "4658e2323b1a287a", "type": "change", "z": "80f2ffd4953c67e9", "g": "c311204f22191fa2", "name": "set delay", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "$boolean(msg.th.'aperture opened')", "tot": "jsonata" }, { "t": "set", "p": "delay", "pt": "msg", "to": "metrics.thermostat.config['aperture delay']", "tot": "global" }, { "t": "set", "p": "delay", "pt": "msg", "to": "msg.delay * 60000", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 640, "y": 2700, "wires": [ [ "f3eb2e8c09f67e89", "f305bda7c25657e5" ] ] }, { "id": "37b31a14146e2a3f", "type": "link in", "z": "80f2ffd4953c67e9", "g": "c311204f22191fa2", "name": "thermostat - update - delayed aperture", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 2700, "wires": [ [ "f1240da189a60ba8" ] ] }, { "id": "92add418b3868c54", "type": "link out", "z": "80f2ffd4953c67e9", "g": "c311204f22191fa2", "name": "thermostat - update - delayed aperture", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1405, "y": 2700, "wires": [] }, { "id": "6893398018de38e9", "type": "debug", "z": "80f2ffd4953c67e9", "g": "c311204f22191fa2", "name": "thermostat / delayed aperture", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1520, "y": 2640, "wires": [] }, { "id": "266e831763ed3b77", "type": "link in", "z": "80f2ffd4953c67e9", "g": "868902cdeaa428fe", "name": "thermostat - metric - input", "links": [ "031a6afd8300356a" ], "x": 135, "y": 2340, "wires": [ [ "ed42e96a79df8e09" ] ] }, { "id": "ed42e96a79df8e09", "type": "switch", "z": "80f2ffd4953c67e9", "g": "868902cdeaa428fe", "name": "measurement", "property": "measurement", "propertyType": "msg", "rules": [ { "t": "eq", "v": "thermostat", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 300, "y": 2340, "wires": [ [ "7b43ab1cda2d8f3f" ] ] }, { "id": "7b43ab1cda2d8f3f", "type": "switch", "z": "80f2ffd4953c67e9", "g": "868902cdeaa428fe", "name": "bucket", "property": "thermostats", "propertyType": "flow", "rules": [ { "t": "hask", "v": "bucket", "vt": "msg" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 490, "y": 2340, "wires": [ [ "ff4225d872a9a0d3" ] ] }, { "id": "ff4225d872a9a0d3", "type": "change", "z": "80f2ffd4953c67e9", "g": "868902cdeaa428fe", "name": "from global", "rules": [ { "t": "set", "p": "th", "pt": "msg", "to": "metrics[msg.bucket]thermostat", "tot": "global" }, { "t": "set", "p": "th.bucket", "pt": "msg", "to": "bucket", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 2340, "wires": [ [ "623975efd8e9bbcd", "be58e8ac1e1b6eb1" ] ] }, { "id": "623975efd8e9bbcd", "type": "debug", "z": "80f2ffd4953c67e9", "g": "868902cdeaa428fe", "name": "thermostat - metric - input", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 910, "y": 2280, "wires": [] }, { "id": "be58e8ac1e1b6eb1", "type": "link out", "z": "80f2ffd4953c67e9", "g": "868902cdeaa428fe", "name": "thermostat - update - metric", "mode": "link", "links": [ "0998eafda2346961", "1b11e45ef3e9f02f", "37b31a14146e2a3f", "64754ad76b3561d6", "e50f34cde29f1023", "ffdbc6f74f0bd44a" ], "x": 815, "y": 2340, "wires": [] }, { "id": "1ed6b5ff63020d07", "type": "change", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "thermostat / heat request", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "heat request", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "msg.th.compute>0", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 830, "y": 2520, "wires": [ [ "0fb59058d3aa9663", "5f6fd378f40e4c81" ] ] }, { "id": "69fda60f897db5fd", "type": "switch", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "trigger", "property": "field", "propertyType": "msg", "rules": [ { "t": "eq", "v": "temperature setpoint", "vt": "str" }, { "t": "eq", "v": "indoor temperature", "vt": "str" }, { "t": "eq", "v": "outdoor temperature", "vt": "str" }, { "t": "eq", "v": "operating mode", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 4, "x": 270, "y": 2520, "wires": [ [ "d75bdce71118a56f" ], [ "d75bdce71118a56f" ], [ "d75bdce71118a56f" ], [ "d75bdce71118a56f" ] ] }, { "id": "d75bdce71118a56f", "type": "link call", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "", "links": [ "1452439e0c937126" ], "linkType": "static", "timeout": "30", "x": 520, "y": 2520, "wires": [ [ "1ed6b5ff63020d07" ] ] }, { "id": "5f6fd378f40e4c81", "type": "debug", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "thermostat / heat request", "active": false, "tosidebar": true, "console": false, "tostatus": true, "complete": "true", "targetType": "full", "statusVal": "th.compute", "statusType": "msg", "x": 1110, "y": 2460, "wires": [] }, { "id": "0fb59058d3aa9663", "type": "link out", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "thermostat - update - heat request", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1015, "y": 2520, "wires": [] }, { "id": "0998eafda2346961", "type": "link in", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "thermostat - update - heat request", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 2520, "wires": [ [ "69fda60f897db5fd" ] ] }, { "id": "a091b2e84a4e89e6", "type": "change", "z": "80f2ffd4953c67e9", "g": "6c4b12585b58300e", "name": "set metric", "rules": [ { "t": "set", "p": "bucket", "pt": "msg", "to": "th.bucket", "tot": "msg" }, { "t": "set", "p": "measurement", "pt": "msg", "to": "thermostat", "tot": "str" }, { "t": "delete", "p": "th", "pt": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 280, "y": 4020, "wires": [ [ "34e6817c2f435667", "9ba0a97276e93540" ] ] }, { "id": "34e6817c2f435667", "type": "link out", "z": "80f2ffd4953c67e9", "g": "6c4b12585b58300e", "name": "thermostat - metric - output", "mode": "link", "links": [ "206c1fb4a48067df" ], "x": 415, "y": 4020, "wires": [] }, { "id": "9ba0a97276e93540", "type": "debug", "z": "80f2ffd4953c67e9", "g": "6c4b12585b58300e", "name": "thermostat - metric - output", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 520, "y": 3960, "wires": [] }, { "id": "147aa94543fa77cb", "type": "link in", "z": "80f2ffd4953c67e9", "g": "6c4b12585b58300e", "name": "thermostat - update - metric", "links": [ "0fb59058d3aa9663", "1ff0b0648a927b0f", "3bc159f186c762cd", "502bf87b213069c7", "92add418b3868c54", "f9fad454dec37bc7" ], "x": 135, "y": 4020, "wires": [ [ "a091b2e84a4e89e6" ] ] }, { "id": "1452439e0c937126", "type": "link in", "z": "80f2ffd4953c67e9", "g": "7e9cff1699c061ec", "name": "thermostat - compute heat request", "links": [], "x": 135, "y": 1920, "wires": [ [ "15d8d0ba06961e4b" ] ] }, { "id": "15d8d0ba06961e4b", "type": "function", "z": "80f2ffd4953c67e9", "g": "7e9cff1699c061ec", "name": "thermostat compute heat request", "func": "var txt = '';\nvar souscalcul = ((msg.th['temperature setpoint'] - msg.th['indoor temperature']) * msg.th['indoor coefficient']) + ((msg.th['indoor temperature'] - msg.th['outdoor temperature']) * msg.th['outdoor coefficient']);\nvar calculb = (souscalcul / 100 * msg.th['cycle time']);\nvar calculc = (msg.th['cycle time'] * msg.th['preheat time'] / 100);\ncalculb = calculb.toFixed(1);\ncalculc = calculc.toFixed(1);\n\n// positive result for heat request\nmsg.th.compute = calculb - calculc;\n\nreturn msg;", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 360, "y": 1920, "wires": [ [ "4b342483a51b0f93" ] ] }, { "id": "4b342483a51b0f93", "type": "link out", "z": "80f2ffd4953c67e9", "g": "7e9cff1699c061ec", "name": "thermostat - compute heat request", "mode": "return", "links": [], "x": 575, "y": 1920, "wires": [] }, { "id": "8bbf52c2a83e09ea", "type": "link in", "z": "80f2ffd4953c67e9", "g": "93075511ad056e6d", "name": "thermostat - update - outdoor temperature", "links": [ "031a6afd8300356a" ], "x": 135, "y": 4260, "wires": [ [ "0a9cb3219b03ca53" ] ] }, { "id": "0a9cb3219b03ca53", "type": "switch", "z": "80f2ffd4953c67e9", "g": "93075511ad056e6d", "name": "trigger", "property": "path", "propertyType": "msg", "rules": [ { "t": "eq", "v": "parking/temperature/probe", "vt": "str" }, { "t": "eq", "v": "jardin/temperature/probe", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 270, "y": 4260, "wires": [ [ "85f9e2ad24cb8a5a" ], [ "85f9e2ad24cb8a5a" ] ] }, { "id": "de7ea9b615e052e6", "type": "change", "z": "80f2ffd4953c67e9", "g": "93075511ad056e6d", "name": "buckets", "rules": [ { "t": "set", "p": "old_payload", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "thermostats", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 680, "y": 4260, "wires": [ [ "37844601d21c6184" ] ] }, { "id": "37844601d21c6184", "type": "split", "z": "80f2ffd4953c67e9", "g": "93075511ad056e6d", "name": "bucket", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "bucket", "x": 850, "y": 4260, "wires": [ [ "e3dc3f877be31d77" ] ] }, { "id": "e3dc3f877be31d77", "type": "change", "z": "80f2ffd4953c67e9", "g": "93075511ad056e6d", "name": "set metric", "rules": [ { "t": "set", "p": "measurement", "pt": "msg", "to": "thermostat", "tot": "str" }, { "t": "set", "p": "field", "pt": "msg", "to": "outdoor temperature", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "old_payload", "tot": "msg" }, { "t": "set", "p": "repeat", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1020, "y": 4260, "wires": [ [ "6fbdfc1ab44f9754", "818c3dadf81b379e" ] ] }, { "id": "6fbdfc1ab44f9754", "type": "link out", "z": "80f2ffd4953c67e9", "g": "93075511ad056e6d", "name": "thermostat - update - outdoor temperature", "mode": "link", "links": [ "206c1fb4a48067df" ], "x": 1155, "y": 4260, "wires": [] }, { "id": "85f9e2ad24cb8a5a", "type": "change", "z": "80f2ffd4953c67e9", "g": "93075511ad056e6d", "name": "ponderation", "rules": [ { "t": "set", "p": "jardin", "pt": "msg", "to": "metrics.jardin.temperature.probe", "tot": "global" }, { "t": "set", "p": "parking", "pt": "msg", "to": "metrics.parking.temperature.probe", "tot": "global" }, { "t": "set", "p": "payload", "pt": "msg", "to": "$round(($number(msg.jardin)+$number(msg.parking)*2)/3, 1)", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 4260, "wires": [ [ "de7ea9b615e052e6" ] ] }, { "id": "3099e4a17fd21410", "type": "link in", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "thermostat - update - indoor temperature", "links": [ "031a6afd8300356a" ], "x": 135, "y": 4440, "wires": [ [ "4c169fc26f833802" ] ] }, { "id": "a2b07c98d61de126", "type": "change", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "set metric", "rules": [ { "t": "set", "p": "measurement", "pt": "msg", "to": "thermostat", "tot": "str" }, { "t": "set", "p": "field", "pt": "msg", "to": "indoor temperature", "tot": "str" }, { "t": "set", "p": "repeat", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1660, "y": 4440, "wires": [ [ "d09ad27d05d54698", "c3b17da928d7afba" ] ] }, { "id": "d09ad27d05d54698", "type": "link out", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "thermostat - update - indoor temperature", "mode": "link", "links": [ "206c1fb4a48067df" ], "x": 1795, "y": 4440, "wires": [] }, { "id": "4c169fc26f833802", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "measurement", "property": "measurement", "propertyType": "msg", "rules": [ { "t": "eq", "v": "temperature", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 300, "y": 4440, "wires": [ [ "a21c6a2db7aeab09" ] ] }, { "id": "a21c6a2db7aeab09", "type": "change", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "buckets", "rules": [ { "t": "set", "p": "old_payload", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "thermostats", "tot": "flow" }, { "t": "set", "p": "scene.bucket", "pt": "msg", "to": "bucket", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 500, "y": 4440, "wires": [ [ "e2c388ba43ec89f0" ] ] }, { "id": "c7d315d762524494", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "exists", "property": "scene.bucket", "propertyType": "msg", "rules": [ { "t": "eq", "v": "bucket", "vt": "msg" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 830, "y": 4440, "wires": [ [ "9eb8cf78caf3141d" ] ] }, { "id": "e2c388ba43ec89f0", "type": "split", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "bucket", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "bucket", "x": 670, "y": 4440, "wires": [ [ "c7d315d762524494" ] ] }, { "id": "9eb8cf78caf3141d", "type": "link call", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "", "links": [ "ddd39f991efd9d31" ], "linkType": "static", "timeout": "30", "x": 1030, "y": 4440, "wires": [ [ "313fbd5fc01985a5" ] ] }, { "id": "313fbd5fc01985a5", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "rsp", "property": "search.response", "propertyType": "msg", "rules": [ { "t": "eq", "v": "1", "vt": "num" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 1230, "y": 4440, "wires": [ [ "b7ffd39578f29c8b" ] ] }, { "id": "b7ffd39578f29c8b", "type": "delay", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "limit 1 msg / s / topic", "pauseType": "queue", "timeout": "5", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": true, "allowrate": false, "outputs": 1, "x": 1440, "y": 4440, "wires": [ [ "a2b07c98d61de126" ] ] }, { "id": "5cb2a229a6fec1aa", "type": "link in", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "thermostat - update - offloading", "links": [ "031a6afd8300356a" ], "x": 135, "y": 4620, "wires": [ [ "1c4fbd9e3d313b43" ] ] }, { "id": "1c4fbd9e3d313b43", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "trigger", "property": "path", "propertyType": "msg", "rules": [ { "t": "eq", "v": "system/mode/offloading", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 270, "y": 4620, "wires": [ [ "e78638ee35b8c069" ] ] }, { "id": "2aaf95392a970167", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "mode offloading", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "offloaded", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 880, "y": 4620, "wires": [ [ "1dd82f8d7e2ccd52" ] ] }, { "id": "e78638ee35b8c069", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "mode master", "property": "metrics.system.mode.master", "propertyType": "global", "rules": [ { "t": "eq", "v": "about.automate", "vt": "global" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 450, "y": 4620, "wires": [ [ "2cb92368cb319c65" ] ] }, { "id": "2cb92368cb319c65", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "mode automate", "property": "metrics.system.mode.automate", "propertyType": "global", "rules": [ { "t": "eq", "v": "automatic", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 660, "y": 4620, "wires": [ [ "2aaf95392a970167" ] ] }, { "id": "1dd82f8d7e2ccd52", "type": "change", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "thermostats", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "thermostats", "tot": "flow" }, { "t": "set", "p": "offloading", "pt": "flow", "to": "0", "tot": "num" }, { "t": "set", "p": "sort", "pt": "flow", "to": "[]", "tot": "json" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1090, "y": 4620, "wires": [ [ "4b2f0c80863bf5e7" ] ] }, { "id": "4b2f0c80863bf5e7", "type": "split", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "split thermostats", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "bucket", "x": 1300, "y": 4620, "wires": [ [ "d237415ac7c1b47b" ] ] }, { "id": "91ee9f04019a9999", "type": "change", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "load thermostat", "rules": [ { "t": "set", "p": "th", "pt": "msg", "to": "metrics[msg.payload.bucket]thermostat", "tot": "global" }, { "t": "set", "p": "th.bucket", "pt": "msg", "to": "payload.bucket", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2900, "y": 4620, "wires": [ [ "53f044d01f2d18b2" ] ] }, { "id": "53f044d01f2d18b2", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "state offloading", "property": "th.offloading", "propertyType": "msg", "rules": [ { "t": "false" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 3120, "y": 4620, "wires": [ [ "db3681610a5d90d9" ] ] }, { "id": "2df7aa160cbf3a71", "type": "change", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "set metric", "rules": [ { "t": "set", "p": "bucket", "pt": "msg", "to": "th.bucket", "tot": "msg" }, { "t": "set", "p": "measurement", "pt": "msg", "to": "thermostat", "tot": "str" }, { "t": "set", "p": "field", "pt": "msg", "to": "offloading", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" }, { "t": "set", "p": "tmp", "pt": "msg", "to": "offloading", "tot": "flow" }, { "t": "set", "p": "offloading", "pt": "flow", "to": "$number(msg.tmp) + 1", "tot": "jsonata" }, { "t": "delete", "p": "parts", "pt": "msg" }, { "t": "delete", "p": "th", "pt": "msg" }, { "t": "delete", "p": "tmp", "pt": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 3500, "y": 4620, "wires": [ [ "7869c56dce3123ed", "3b539d9347f6bb28" ] ] }, { "id": "db3681610a5d90d9", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "state pilot", "property": "th.pilot", "propertyType": "msg", "rules": [ { "t": "true" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 3320, "y": 4620, "wires": [ [ "2df7aa160cbf3a71" ] ] }, { "id": "7869c56dce3123ed", "type": "link out", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "thermostat - update - offloading", "mode": "link", "links": [ "206c1fb4a48067df" ], "x": 3635, "y": 4620, "wires": [] }, { "id": "ea0c6cadf1d594c3", "type": "delay", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "delay 50 ms", "pauseType": "delay", "timeout": "50", "timeoutUnits": "milliseconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 2530, "y": 4620, "wires": [ [ "285a0091abda1f58" ] ] }, { "id": "285a0091abda1f58", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "limit", "property": "offloading", "propertyType": "flow", "rules": [ { "t": "lt", "v": "2", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 2710, "y": 4620, "wires": [ [ "91ee9f04019a9999" ] ] }, { "id": "96e92d4bad3792d3", "type": "split", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "", "x": 2350, "y": 4620, "wires": [ [ "ea0c6cadf1d594c3" ] ] }, { "id": "3de9c88ac7ce9a77", "type": "change", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "sort offloading count", "rules": [ { "t": "set", "p": "sort", "pt": "msg", "to": "sort", "tot": "flow" }, { "t": "set", "p": "payload", "pt": "msg", "to": "$sort(msg.sort, function($l, $r) {\t $l.nb > $r.nb\t})", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2140, "y": 4620, "wires": [ [ "96e92d4bad3792d3" ] ] }, { "id": "6e120320180e5cfd", "type": "join", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "", "mode": "auto", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "accumulate": true, "timeout": "", "count": "", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 1730, "y": 4620, "wires": [ [ "808426e9258cd024" ] ] }, { "id": "d237415ac7c1b47b", "type": "change", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "get offloading count", "rules": [ { "t": "set", "p": "tmp", "pt": "msg", "to": "metrics[msg.bucket]thermostat['offloading count']", "tot": "global" }, { "t": "set", "p": "sort[msg.parts.index]", "pt": "flow", "to": "{\t \"bucket\":msg.bucket,\t \"nb\":msg.tmp\t }", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1530, "y": 4620, "wires": [ [ "6e120320180e5cfd" ] ] }, { "id": "808426e9258cd024", "type": "delay", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "delay 50 ms", "pauseType": "delay", "timeout": "50", "timeoutUnits": "milliseconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 1910, "y": 4620, "wires": [ [ "3de9c88ac7ce9a77" ] ] }, { "id": "659f9752db0967bc", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "group": "75a98516fdcdf832", "name": "indoor temperature", "label": "Température intèrieur", "tooltip": "", "order": 2, "width": "6", "height": "1", "passthru": false, "outs": "end", "topic": "indoor temperature", "topicType": "str", "thumbLabel": true, "min": 0, "max": "30", "step": 1, "className": "", "x": 870, "y": 6120, "wires": [ [ "d60c017a8962d3f8" ] ] }, { "id": "9caafb8c1719d275", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "group": "75a98516fdcdf832", "name": "outdoor temperature", "label": "Température extèrieur", "tooltip": "", "order": 4, "width": "6", "height": "1", "passthru": false, "outs": "end", "topic": "outdoor temperature", "topicType": "str", "thumbLabel": true, "min": 0, "max": "30", "step": 1, "className": "", "x": 880, "y": 6240, "wires": [ [ "d60c017a8962d3f8" ] ] }, { "id": "515b0c184c8a3628", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "group": "75a98516fdcdf832", "name": "temperature setpoint", "label": "Température consigne", "tooltip": "", "order": 1, "width": "6", "height": "1", "passthru": false, "outs": "end", "topic": "temperature setpoint", "topicType": "str", "thumbLabel": true, "min": 0, "max": "30", "step": 1, "className": "", "x": 880, "y": 6060, "wires": [ [ "d60c017a8962d3f8" ] ] }, { "id": "13697bbd73295b46", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "group": "75a98516fdcdf832", "name": "indoor coefficient", "label": "Coefficient intèrieur", "tooltip": "", "order": 3, "width": "6", "height": "1", "passthru": false, "outs": "end", "topic": "indoor coefficient", "topicType": "str", "thumbLabel": true, "min": "1", "max": "200", "step": 1, "className": "", "x": 870, "y": 6180, "wires": [ [ "d60c017a8962d3f8" ] ] }, { "id": "c6fdc57a80266f04", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "group": "75a98516fdcdf832", "name": "preheat time", "label": "Temps de chauffe", "tooltip": "", "order": 7, "width": "6", "height": "1", "passthru": false, "outs": "end", "topic": "preheat time", "topicType": "str", "thumbLabel": true, "min": "5", "max": "60", "step": "5", "className": "", "x": 850, "y": 6420, "wires": [ [ "d60c017a8962d3f8" ] ] }, { "id": "b7bc73260cea8570", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "group": "75a98516fdcdf832", "name": "cycle time", "label": "Temps de cycle", "tooltip": "", "order": 6, "width": "6", "height": "1", "passthru": false, "outs": "end", "topic": "cycle time", "topicType": "str", "thumbLabel": true, "min": "5", "max": "90", "step": "5", "className": "", "x": 840, "y": 6360, "wires": [ [ "d60c017a8962d3f8" ] ] }, { "id": "d60c017a8962d3f8", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "field", "rules": [ { "t": "set", "p": "th", "pt": "msg", "to": "thermostattest", "tot": "flow" }, { "t": "set", "p": "th[msg.topic]", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "thermostattest", "pt": "flow", "to": "th", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1090, "y": 6060, "wires": [ [ "6e4f87c323cc4659" ] ] }, { "id": "dc37631fe73fce2a", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "reset", "rules": [ { "t": "set", "p": "th", "pt": "msg", "to": "{\t 'indoor temperature':20,\t 'outdoor temperature':20,\t 'temperature setpoint':20,\t 'indoor coefficient':5,\t 'outdoor coefficient':5,\t 'preheat time':10,\t 'cycle time':30\t }", "tot": "jsonata" }, { "t": "set", "p": "thermostattest", "pt": "flow", "to": "th", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 330, "y": 6000, "wires": [ [ "67e91e753d3708e2", "6e4f87c323cc4659" ] ] }, { "id": "c932311ec07112b5", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "thermostattest['indoor temperature']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6120, "wires": [ [ "659f9752db0967bc" ] ] }, { "id": "67e91e753d3708e2", "type": "delay", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "100 ms", "pauseType": "delay", "timeout": "100", "timeoutUnits": "milliseconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 500, "y": 6060, "wires": [ [ "c932311ec07112b5", "f974a627497b4b7d", "f81152d8df61c845", "bc4771242d5d3bd8", "135b7546018ecfba", "6bf593bd1612dbde", "64405bce10cccde1" ] ] }, { "id": "a86e51fee3e3458d", "type": "link in", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "thermostat - ui - test", "links": [], "x": 135, "y": 6000, "wires": [ [ "dc37631fe73fce2a" ] ] }, { "id": "f974a627497b4b7d", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "thermostattest['outdoor temperature']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6240, "wires": [ [ "9caafb8c1719d275" ] ] }, { "id": "809635d5f2efc402", "type": "ui-button", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "group": "75a98516fdcdf832", "name": "reset", "label": "RAZ", "order": 8, "width": "6", "height": "1", "tooltip": "", "color": "", "bgcolor": "", "className": "", "icon": "", "iconPosition": "left", "payload": "", "payloadType": "str", "topic": "topic", "topicType": "msg", "x": 170, "y": 6060, "wires": [ [ "dc37631fe73fce2a" ] ] }, { "id": "c9291360c0f0b490", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "group": "75a98516fdcdf832", "order": 9, "width": "6", "height": "1", "name": "calcul", "label": "Résultat", "format": "{{msg.payload}}", "layout": "row-spread", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 1770, "y": 6000, "wires": [] }, { "id": "f10733a435dc7390", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "group": "75a98516fdcdf832", "name": "outdoor coefficient", "label": "Coefficient extèrieur", "tooltip": "", "order": 5, "width": "6", "height": "1", "passthru": false, "outs": "end", "topic": "outdoor coefficient", "topicType": "str", "thumbLabel": true, "min": "1", "max": "200", "step": 1, "className": "", "x": 870, "y": 6300, "wires": [ [ "d60c017a8962d3f8" ] ] }, { "id": "f81152d8df61c845", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "thermostattest['temperature setpoint']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6060, "wires": [ [ "515b0c184c8a3628" ] ] }, { "id": "bc4771242d5d3bd8", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "thermostattest['indoor coefficient']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6180, "wires": [ [ "13697bbd73295b46" ] ] }, { "id": "135b7546018ecfba", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "thermostattest['outdoor coefficient']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6300, "wires": [ [ "f10733a435dc7390" ] ] }, { "id": "6bf593bd1612dbde", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "thermostattest['preheat time']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6420, "wires": [ [ "c6fdc57a80266f04" ] ] }, { "id": "64405bce10cccde1", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "thermostattest['cycle time']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6360, "wires": [ [ "b7bc73260cea8570" ] ] }, { "id": "bf5b9cb6fe9e3550", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "payload", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "th.compute", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1600, "y": 6000, "wires": [ [ "c9291360c0f0b490" ] ] }, { "id": "6e4f87c323cc4659", "type": "link call", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "", "links": [ "1452439e0c937126" ], "linkType": "static", "timeout": "30", "x": 1340, "y": 6000, "wires": [ [ "bf5b9cb6fe9e3550" ] ] }, { "id": "104783a075f279a3", "type": "catch", "z": "80f2ffd4953c67e9", "g": "1338205554153fa8", "name": "catch error", "scope": null, "uncaught": false, "x": 620, "y": 60, "wires": [ [ "225fbec54fe689f8" ] ] }, { "id": "225fbec54fe689f8", "type": "change", "z": "80f2ffd4953c67e9", "g": "1338205554153fa8", "name": "topic", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "thermostat", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 790, "y": 60, "wires": [ [ "efdfaa2b7173a43a" ] ] }, { "id": "efdfaa2b7173a43a", "type": "link out", "z": "80f2ffd4953c67e9", "g": "1338205554153fa8", "name": "catch error", "mode": "link", "links": [ "a52f0e788cd4dca3" ], "x": 915, "y": 60, "wires": [] }, { "id": "949a8ee5f18f108a", "type": "link in", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat - kernel - device - catch", "links": [ "f1898b7dbc641cd6" ], "x": 135, "y": 240, "wires": [ [ "fae8eb23e8443ee5" ] ] }, { "id": "fae8eb23e8443ee5", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "field", "property": "field", "propertyType": "msg", "rules": [ { "t": "eq", "v": "pilot", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 270, "y": 240, "wires": [ [ "c2589545c2409827" ] ] }, { "id": "c2589545c2409827", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "measurement", "property": "measurement", "propertyType": "msg", "rules": [ { "t": "eq", "v": "thermostat", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 460, "y": 240, "wires": [ [ "e875ef56fb60ac9c", "9ca9625cd3f893dc", "55333767f9209bca", "c5b547a57eb368ad", "c79982618f4e3345", "958bbeb30de3eada", "4efebf9bfd65df96", "96d26c543c5fcf13", "73c382176ddebc2b", "a900585cd904a957", "873ead3b33da82c9", "e069a71e517cb7ea", "834fc1d89a1493b3", "cb222ce1c4c3d7dc", "ea848cdc88365d9a", "2039bf8bb21c10d1", "21d8e3e1da7313ff", "657fe886d2a3f59f", "f513b11976d16bb9", "5f1e10e5657e3138", "0c919f0ee88983ad", "780cf693ea55249b", "fb20d3e29fc3092d", "2b4f4116011a9ca6", "07b7d259f0949e49", "3683e8f63f0dc5aa", "bae9495793960012" ] ] }, { "id": "8f85c87887c020c4", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "flow", "rules": [ { "t": "set", "p": "thermostats[msg.bucket]", "pt": "flow", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 240, "wires": [ [] ] }, { "id": "55333767f9209bca", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / confort setpoint / number / 21", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "confort setpoint", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "21", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 760, "y": 360, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "c5b547a57eb368ad", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / eco setpoint / number / 19", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "eco setpoint", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "19", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 750, "y": 420, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "958bbeb30de3eada", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / operating mode / text / eco", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "operating mode", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "text", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "eco", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 760, "y": 540, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "9ca9625cd3f893dc", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / actif / boolean / true", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "actif", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "boolean", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 730, "y": 300, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "4efebf9bfd65df96", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / aperture opened / boolean / false", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "aperture opened", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "boolean", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 770, "y": 600, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "96d26c543c5fcf13", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / delayed aperture / boolean / false", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "delayed aperture", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "boolean", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 780, "y": 660, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "5f1e10e5657e3138", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / offloading power / number / 500", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "offloading power", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "500", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 770, "y": 1380, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "2039bf8bb21c10d1", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / indoor coefficient / number / 50", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "indoor coefficient", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "50", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 770, "y": 1140, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "21d8e3e1da7313ff", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / outdoor coefficient / number / 5", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "outdoor coefficient", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "5", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 770, "y": 1200, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "657fe886d2a3f59f", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / cycle time / number / 60", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "cycle time", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "60", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 750, "y": 1260, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "f513b11976d16bb9", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / preheat time / number / 15", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "preheat time", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "15", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 750, "y": 1320, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "73c382176ddebc2b", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / outdoor temperature / number / 20", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "outdoor temperature", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "20", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 780, "y": 720, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "a900585cd904a957", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / indoor temperature / number / 21", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "indoor temperature", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "21", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 770, "y": 780, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "873ead3b33da82c9", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / heat request / boolean / false", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "heat request", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "boolean", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 760, "y": 840, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "e069a71e517cb7ea", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / status / text / stopped", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "status", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "text", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "stopped", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 740, "y": 900, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "834fc1d89a1493b3", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / offloading / boolean / false", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "offloading", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "boolean", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 750, "y": 960, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "c79982618f4e3345", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / temperature setpoint / number / 19", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "temperature setpoint", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "19", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 780, "y": 480, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "cb222ce1c4c3d7dc", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / last pilot / number / 0", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "last pilot", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 740, "y": 1020, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "3006243d30270236", "type": "link out", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat - device", "mode": "link", "links": [ "bfa594bf1f876c92" ], "x": 1195, "y": 240, "wires": [] }, { "id": "1707bc7a4bb0daa5", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "set metric", "rules": [ { "t": "set", "p": "measurement", "pt": "msg", "to": "thermostat", "tot": "str" }, { "t": "delete", "p": "path", "pt": "msg" }, { "t": "delete", "p": "protocol", "pt": "msg" }, { "t": "delete", "p": "mdoel", "pt": "msg" }, { "t": "delete", "p": "id", "pt": "msg" }, { "t": "delete", "p": "option", "pt": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1060, "y": 240, "wires": [ [ "3006243d30270236" ] ] }, { "id": "ea848cdc88365d9a", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / offloading count / number / 0", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "offloading count", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "0", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 760, "y": 1080, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "e875ef56fb60ac9c", "type": "delay", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "delay 50 ms", "pauseType": "delay", "timeout": "50", "timeoutUnits": "milliseconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 670, "y": 240, "wires": [ [ "8f85c87887c020c4" ] ] }, { "id": "0c919f0ee88983ad", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / aperture 1 / text / ", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "aperture 1", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "text", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 730, "y": 1440, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "780cf693ea55249b", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / aperture 2 / text / ", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "aperture 2", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "text", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 730, "y": 1500, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "fb20d3e29fc3092d", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / aperture 3 / text / ", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "aperture 3", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "text", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 730, "y": 1560, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "2b4f4116011a9ca6", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / aperture 4 / text / ", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "aperture 4", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "text", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 730, "y": 1620, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "07b7d259f0949e49", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / aperture 5 / text / ", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "aperture 5", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "text", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 730, "y": 1680, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "a895f0ea053086fe", "type": "comment", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "scan device registration to find xxx / thermostat / pilot", "info": "", "x": 310, "y": 300, "wires": [] }, { "id": "3683e8f63f0dc5aa", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / aperture delay / number / 5", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "aperture delay", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "5", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 760, "y": 1740, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "bae9495793960012", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / offloading delay / number / 30", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "offloading delay", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "30", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 760, "y": 1800, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "7837b5fcc1432bfa", "type": "link in", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "thermostat - update - aperture opened", "links": [ "031a6afd8300356a" ], "x": 135, "y": 4800, "wires": [ [ "3905527e91730097" ] ] }, { "id": "6632e88ee0633e4c", "type": "link out", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "thermostat - update - aperture opened", "mode": "link", "links": [ "206c1fb4a48067df" ], "x": 2035, "y": 4800, "wires": [] }, { "id": "01c20d4c1e5db317", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "get thermostat from metrics", "rules": [ { "t": "set", "p": "th", "pt": "msg", "to": "payload.thermostat", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1320, "y": 4800, "wires": [ [ "87b35783671bc785" ] ] }, { "id": "3905527e91730097", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "measurement", "property": "measurement", "propertyType": "msg", "rules": [ { "t": "eq", "v": "aperture", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 300, "y": 4800, "wires": [ [ "c8d72dec2ba2b842" ] ] }, { "id": "87b35783671bc785", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "trigger", "property": "path", "propertyType": "msg", "rules": [ { "t": "eq", "v": "th['aperture 1']", "vt": "msg" }, { "t": "eq", "v": "th['aperture 2']", "vt": "msg" }, { "t": "eq", "v": "th['aperture 3']", "vt": "msg" }, { "t": "eq", "v": "th['aperture 4']", "vt": "msg" }, { "t": "eq", "v": "th['aperture 5']", "vt": "msg" } ], "checkall": "false", "repair": false, "outputs": 5, "x": 1550, "y": 4800, "wires": [ [ "748b1f355c0e00f8" ], [ "748b1f355c0e00f8" ], [ "748b1f355c0e00f8" ], [ "748b1f355c0e00f8" ], [ "748b1f355c0e00f8" ] ] }, { "id": "c52bde31f64b30dd", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "thermostat exists", "property": "payload", "propertyType": "msg", "rules": [ { "t": "hask", "v": "thermostat", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 1050, "y": 4800, "wires": [ [ "01c20d4c1e5db317" ] ] }, { "id": "748b1f355c0e00f8", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "compare", "property": "old_payload", "propertyType": "msg", "rules": [ { "t": "neq", "v": "th['aperture opened']", "vt": "msg" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 1720, "y": 4800, "wires": [ [ "86cb7c12e7bccf56" ] ] }, { "id": "86cb7c12e7bccf56", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "set metric", "rules": [ { "t": "set", "p": "measurement", "pt": "msg", "to": "thermostat", "tot": "str" }, { "t": "set", "p": "field", "pt": "msg", "to": "aperture opened", "tot": "str" }, { "t": "set", "p": "payload", "pt": "msg", "to": "old_payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1900, "y": 4800, "wires": [ [ "6632e88ee0633e4c", "a91a6950282e40e0" ] ] }, { "id": "c8d72dec2ba2b842", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "get thermostats from metrics", "rules": [ { "t": "set", "p": "old_payload", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "metrics", "tot": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 560, "y": 4800, "wires": [ [ "7cc8434ffb22fe29" ] ] }, { "id": "a91a6950282e40e0", "type": "debug", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "thermostat - update - aperture opened", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 2170, "y": 4740, "wires": [] }, { "id": "7cc8434ffb22fe29", "type": "split", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "split by buckets", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "", "x": 820, "y": 4800, "wires": [ [ "c52bde31f64b30dd" ] ] }, { "id": "3b539d9347f6bb28", "type": "debug", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "thermostat - update - offloading", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 3750, "y": 4560, "wires": [] }, { "id": "c3b17da928d7afba", "type": "debug", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "thermostat - update - indoor temperature", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1940, "y": 4380, "wires": [] }, { "id": "818c3dadf81b379e", "type": "debug", "z": "80f2ffd4953c67e9", "g": "93075511ad056e6d", "name": "thermostat - update - outdoor temperature", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1290, "y": 4200, "wires": [] } ]