[ { "id": "80f2ffd4953c67e9", "type": "tab", "label": "K.Thermostat", "disabled": false, "info": "", "env": [] }, { "id": "dbf491fd689e7cd2", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat - kernel", "style": { "fill": "#777777", "fill-opacity": "0.05", "label": true }, "nodes": [ "ccc78d495cbd8f7d", "e57e9c900c787424", "8206912d2f9bab36", "0af18fd6cc155518", "c311204f22191fa2", "868902cdeaa428fe", "467ec12f292b2573", "6c4b12585b58300e", "7e9cff1699c061ec", "272756073495f0a8" ], "x": 68, "y": 2393, "w": 2204, "h": 2174 }, { "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": 6519, "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": "ef2c257bbe04f8d2", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat - trigger", "style": { "fill": "#777777", "fill-opacity": "0.05", "label": true }, "nodes": [ "b3bc1717c16dc7dc", "6f1f772c23d57e24", "e653f3ec3dc88a8f", "8ecd405cd0a1e5ac", "3c533bc3592e06b9", "f987d89b8997cf8d", "57656fc40a9ba454" ], "x": 68, "y": 4613, "w": 3284, "h": 1514 }, { "id": "9cb08113dfb0f712", "type": "group", "z": "80f2ffd4953c67e9", "name": "thermostat - device", "style": { "label": true, "fill": "#777777", "fill-opacity": "0.05" }, "nodes": [ "e6edd4684b272434", "bb2ebd173a2ba06c", "eafad08e39c60266", "f4f5c470dc44c769" ], "x": 68, "y": 173, "w": 6584, "h": 2174 }, { "id": "7e9cff1699c061ec", "type": "group", "z": "80f2ffd4953c67e9", "g": "dbf491fd689e7cd2", "name": "thermostat - compute heat request", "style": { "stroke": "#92d04f", "fill": "#92d04f", "fill-opacity": "0.05", "label": true }, "nodes": [ "1452439e0c937126", "15d8d0ba06961e4b", "4b342483a51b0f93", "9f5320eaa60df7cf" ], "x": 94, "y": 2419, "w": 792, "h": 142 }, { "id": "e653f3ec3dc88a8f", "type": "group", "z": "80f2ffd4953c67e9", "g": "ef2c257bbe04f8d2", "name": "thermostat - trigger - indoor temperature", "style": { "fill": "#ff0000", "fill-opacity": "0.05", "label": true }, "nodes": [ "3099e4a17fd21410", "a2b07c98d61de126", "d09ad27d05d54698", "4c169fc26f833802", "9eb8cf78caf3141d", "313fbd5fc01985a5", "b7ffd39578f29c8b", "c3b17da928d7afba", "b7a2b83163ce711a" ], "x": 94, "y": 4819, "w": 1692, "h": 142 }, { "id": "6f1f772c23d57e24", "type": "group", "z": "80f2ffd4953c67e9", "g": "ef2c257bbe04f8d2", "name": "thermostat - trigger - offloading", "style": { "fill": "#ff0000", "fill-opacity": "0.05", "label": true }, "nodes": [ "079470627ad50e8f", "155125df6f9f4c8f", "e34e8e0cc31ce986", "997102eb65c0f5a6", "88a5a0ac352fc41d", "3dcb3769e00444e7", "436d4c01221aac9b", "c17018592ee074bc", "620e2650e654d9f6", "26ba5f96ea39ad61", "5e7a96ca03ea3041", "381cef91081d78b4", "14218375ec9530c1", "6e4177612c29fa84", "8a2948a62f550e2b", "5bf92e5b12ab168c", "fbe02bdff670f4bd" ], "x": 94, "y": 5419, "w": 3232, "h": 142 }, { "id": "e6edd4684b272434", "type": "group", "z": "80f2ffd4953c67e9", "g": "9cb08113dfb0f712", "name": "thermostat - device", "style": { "label": true, "fill": "#ffC000", "fill-opacity": "0.05" }, "nodes": [ "949a8ee5f18f108a", "fae8eb23e8443ee5", "c2589545c2409827", "55333767f9209bca", "c5b547a57eb368ad", "958bbeb30de3eada", "9ca9625cd3f893dc", "4efebf9bfd65df96", "96d26c543c5fcf13", "5f1e10e5657e3138", "2039bf8bb21c10d1", "21d8e3e1da7313ff", "657fe886d2a3f59f", "f513b11976d16bb9", "73c382176ddebc2b", "a900585cd904a957", "873ead3b33da82c9", "e069a71e517cb7ea", "834fc1d89a1493b3", "c79982618f4e3345", "cb222ce1c4c3d7dc", "3006243d30270236", "1707bc7a4bb0daa5", "ea848cdc88365d9a", "0c919f0ee88983ad", "780cf693ea55249b", "fb20d3e29fc3092d", "2b4f4116011a9ca6", "07b7d259f0949e49", "a895f0ea053086fe", "3683e8f63f0dc5aa", "bae9495793960012", "d93c5182974350b0", "ae60f951124d5757", "a21d727b6d73b7f1", "f97b5115e1d99d4b", "08830b1bec822cd0", "8f479a7a6d5419a5", "14793d33b66432fd" ], "x": 94, "y": 199, "w": 1142, "h": 1882 }, { "id": "8ecd405cd0a1e5ac", "type": "group", "z": "80f2ffd4953c67e9", "g": "ef2c257bbe04f8d2", "name": "thermostat - trigger - aperture opened", "style": { "fill": "#ff0000", "fill-opacity": "0.05", "label": true }, "nodes": [ "7837b5fcc1432bfa", "6632e88ee0633e4c", "87b35783671bc785", "748b1f355c0e00f8", "86cb7c12e7bccf56", "a91a6950282e40e0", "2b1ba57fb5c945df", "618c0cd766442117", "c422635e69d1eaf7", "092568ca52a77671", "abef8f252aedce0a", "632ae6a86b8d4095", "cff0bca6c0bb1782", "8d466808ce870af4", "b315363385257040", "c86253a53e062d16", "9a561c9f4fd75edb", "dba3af356708ccb7", "3c2f8f4f7cff096c", "30460d81f866f13d" ], "x": 94, "y": 5179, "w": 2792, "h": 202 }, { "id": "b3bc1717c16dc7dc", "type": "group", "z": "80f2ffd4953c67e9", "g": "ef2c257bbe04f8d2", "name": "thermostat - update - operating mode", "style": { "stroke": "#a4a4a4", "fill": "#92d04f", "fill-opacity": "0.05", "label": true }, "nodes": [ "048bc1e501b0f9f2", "3b8d8924bdb03f80", "3e40fc1c77ed372a", "b461040a6c998b61", "3c808f997ae66a1c", "069ab711c0c089a6", "c20295d9b0ac3419", "34992e101a5f7e1c", "36eb92fa692e166c", "d4c1d964e9c56e01", "abd02925c2597211", "e267a0404a5c5d6c", "758acb218148a1d7", "0728c8c3564e6e93", "d1c7f4810b12afe2", "35ea643afefc732d", "45bd2f5743776c20", "d6ec98126b0438ab", "84f1bb54c15f032d", "f05d34dd5ff9746b", "080a2e3d678b9119", "0cac48ac1fa4efa4" ], "x": 94, "y": 5779, "w": 3212, "h": 322 }, { "id": "bb2ebd173a2ba06c", "type": "group", "z": "80f2ffd4953c67e9", "g": "9cb08113dfb0f712", "name": "room - ui - thermostat", "style": { "fill": "#6f2fa0", "fill-opacity": "0.05", "label": true }, "nodes": [ "9737afb19d9c9fbb", "dd49b4996fb683ff", "fc673a36d8691d63", "37aa96c6d80d8ade", "1ef76a4c1fab9b78", "adc6196b15cf8c39", "26bdcbaa93cfcc27", "c4f79cb042dc36a1", "f391ba85b3d53073", "7e364afe6e09d405", "f85914dec075a3d8", "bd8ab43b4a91a2ae", "19b6504e1bbece40", "f968a8fc298f04c3", "07108de5adf3ae2a", "bcf6468037b4c2a6", "37794c3da2ceda38", "dfd8650d923f73e4", "4c5adf85df17025b", "26537f8818c29c61", "a7420198a3e0f879", "f23d5105ca948593", "2efa063af4b505d2", "6cc81c8342d6ef1c", "f7ed99ce22cd37cb", "348134507ffe8815", "63561fec4fba2afd", "53f7b3195f6dfeed", "99e789a941d2af52", "39615dab9370d868", "e223793b9998818b", "136162f12991809c", "fb9711affc7d14af", "a9e89b46159c4ec8", "cb3f8f9fa322b59f", "51dc21bc28ea3f06", "272807d6b707d92f", "4540d4f432f8742d", "6d0cb16590b1da18", "bfb0a473b6a09c81", "61d316384ef1521b", "27d7b08fb3646a52", "3f9eefa51c1e5e9e", "ff2211c1efd24971", "f814aebd5bd599b5", "8c3c9bc4a66b1e32", "93e874f6e4a1f87a", "3d40410e159beaab", "4565730f04bd7072", "79764253e9e92fda", "4ad97596d0efa64b", "33fde1af7428bf26", "1d92bf6b8fc98959", "25b3542fda8fae4d", "4b8267934ced5596", "151d5194b8538480", "f670239d8cf08808", "a4b56ada8159bff6", "990b4d58c23a68a2", "ee3e358d88bbf249", "6f096e24c9634c56", "83b16f9aed4fa051", "db3ebf0b6421aeae", "10c3697bddec1a05", "4f0ea1cdd4d0b719", "b87af6e4d9e65d33", "aefd619aa22eea0b", "bc775d86aa14a73f", "b74bf0ca5e271336", "f8705fb32062a93f", "3afbcb94c2dd9a98", "5058697599c00bfb", "788641b627884830", "2a09806bd2dd8204", "2daacd754d59567f", "2f53d6a12a1b9648", "38b3de42eccb63ea", "cd64045ae78319dc", "74b33297e4369aee", "a3a5880c2003c6cd", "86a901b933d34c8a", "d820170df2717cca", "3a1f2c63baddb5b7" ], "x": 1334, "y": 199, "w": 1962, "h": 2122 }, { "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": 4099, "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": 3739, "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": 3499, "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", "3a23d8541c5bc71c" ], "x": 94, "y": 3199, "w": 1412, "h": 262 }, { "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": 3019, "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": 2599, "w": 1172, "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", "5409904037bf4a62", "7d5ba4790bc3a720", "92e341f726c9c5ac", "e13e76f216b98c22" ], "x": 94, "y": 2779, "w": 1732, "h": 202 }, { "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": 4399, "w": 592, "h": 142 }, { "id": "272756073495f0a8", "type": "group", "z": "80f2ffd4953c67e9", "g": "dbf491fd689e7cd2", "name": "thermostat - compute cool request", "style": { "stroke": "#92d04f", "fill": "#92d04f", "fill-opacity": "0.05", "label": true }, "nodes": [ "0162f458d02a06ca", "736b4f85b471f119", "97694aa50cf4ce0e", "919dab1a8b106864" ], "x": 974, "y": 2419, "w": 792, "h": 142 }, { "id": "3c533bc3592e06b9", "type": "group", "z": "80f2ffd4953c67e9", "g": "ef2c257bbe04f8d2", "name": "thermostat - trigger - input", "style": { "fill": "#ff0000", "fill-opacity": "0.05", "label": true }, "nodes": [ "4146df2b9fa3a8cd", "cb4e055ec23ccd1c", "6b4c87d53563c36d", "e3b571afbf1bcf4f", "2b3708a60ff31dac", "4ffd7369035e168f", "5336228b64d336af", "a118873a4609acd7" ], "x": 94, "y": 4639, "w": 1532, "h": 142 }, { "id": "f987d89b8997cf8d", "type": "group", "z": "80f2ffd4953c67e9", "g": "ef2c257bbe04f8d2", "name": "thermostat - trigger - output", "style": { "fill": "#ff0000", "fill-opacity": "0.05", "label": true }, "nodes": [ "7a77ef69ce9e0f32", "63f9a6d8c925d3d3", "12d940e60360ef46", "fb119d97ea6bb137" ], "x": 94, "y": 5599, "w": 592, "h": 142 }, { "id": "eafad08e39c60266", "type": "group", "z": "80f2ffd4953c67e9", "g": "9cb08113dfb0f712", "name": "thermostat - ui - apertures", "style": { "stroke": "#ff0000", "fill": "#ff0000", "fill-opacity": "0.05", "label": true }, "nodes": [ "ea1b7dbf3573fd5e", "0711217590341f99", "3930f84bd36fd5aa", "b6f3145afc37707c", "7a9f4d42d5c7497c", "dd517b4d06983aac", "e7dcdd83cf9e08e1", "73dc6a2b0e041f8e", "ad09f7f6ad1acedd", "7bb3239b80bb5650", "e0613fa53ec99a7d", "b0670866409f1f18", "7421f25ff88e96ea", "1e23b9043692efc9", "ed6edb1e6f6e0603", "c1311d74af614a6b", "c5b1171ac4cfb2fa", "f80f5a53d9b07000", "2d0116a7f0e5267e", "47121b9ebadde960", "e770267366a41538" ], "x": 3374, "y": 199, "w": 3252, "h": 262 }, { "id": "f4f5c470dc44c769", "type": "group", "z": "80f2ffd4953c67e9", "g": "9cb08113dfb0f712", "name": "thermostat - ui - outdoors", "style": { "stroke": "#ff0000", "fill": "#ff0000", "fill-opacity": "0.05", "label": true }, "nodes": [ "99820dc85872f042", "e22365b6f5faa937", "d2068bbda5e20f86", "7b0cbcf02bc8dd7e", "61a21c746c904524", "b5a2ecd26dffba3a", "67d347fd47288266", "64580efef0e57642", "aee1a18c7263ba86", "b0ad0b1193226130", "00f707d1661e4bef", "127c961637b6310d", "354a444bcb3837e0", "3da0bd1cf66878da", "ad6b3250a3541a1f", "3dda93172bdc65d7", "b3e1001ef74f47b3", "713df21fb71f138b" ], "x": 3374, "y": 559, "w": 3092, "h": 202 }, { "id": "57656fc40a9ba454", "type": "group", "z": "80f2ffd4953c67e9", "g": "ef2c257bbe04f8d2", "name": "thermostat - trigger - outdoor temperature", "style": { "label": true, "fill": "#ff0000", "fill-opacity": "0.05" }, "nodes": [ "5c2ee7a9a0b1a4f4", "60f65b4b5f4c2cc4", "f425887de67cad57", "7a3b533f0e9d934a", "33151ec7b379db49", "b3f3ee85862b09ef", "5f67fdb103a398c8" ], "x": 94, "y": 4999, "w": 1172, "h": 142 }, { "id": "cfeaa3a9e12b40eb", "type": "link out", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "thermostat - update - pilot metric", "mode": "link", "links": [ "206c1fb4a48067df" ], "x": 2055, "y": 4260, "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": 4200, "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": 4200, "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": 4260, "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": 4200, "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": 4140, "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": 4320, "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": 4140, "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": 4320, "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": 4320, "wires": [ [ "cfeaa3a9e12b40eb", "93d2b581d45d7631" ] ] }, { "id": "e50f34cde29f1023", "type": "link in", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "thermostat - update - pilot", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 4200, "wires": [ [ "2b98ac8845853557" ] ] }, { "id": "502bf87b213069c7", "type": "link out", "z": "80f2ffd4953c67e9", "g": "ccc78d495cbd8f7d", "name": "thermostat - update - pilot", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1795, "y": 4140, "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": 4200, "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": 4260, "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": 4140, "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": 4200, "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": 4320, "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": 3780, "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": 3840, "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": 3900, "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": 3960, "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": 3780, "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": 3840, "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": 3900, "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": 3960, "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": 4020, "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": 3840, "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": 3840, "wires": [ [ "cd96635eddc7da1f" ], [ "cd96635eddc7da1f" ], [ "cd96635eddc7da1f" ], [ "cd96635eddc7da1f" ] ] }, { "id": "ffdbc6f74f0bd44a", "type": "link in", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "thermostat - update - status", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 3840, "wires": [ [ "6335a0ba7e4fd02e" ] ] }, { "id": "1ff0b0648a927b0f", "type": "link out", "z": "80f2ffd4953c67e9", "g": "e57e9c900c787424", "name": "thermostat - update - status", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1835, "y": 3840, "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": 3780, "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": 4020, "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": 3600, "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": 3600, "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": 3660, "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": 3660, "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": 3660, "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": 3600, "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": 3540, "wires": [ [ "3bc159f186c762cd" ] ] }, { "id": "1b11e45ef3e9f02f", "type": "link in", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "thermostat - update - offloading", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 3600, "wires": [ [ "f3335edf661bfc8d" ] ] }, { "id": "3bc159f186c762cd", "type": "link out", "z": "80f2ffd4953c67e9", "g": "8206912d2f9bab36", "name": "thermostat - update - offloading", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1495, "y": 3540, "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": 3600, "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" }, { "t": "eq", "v": "cold setpoint", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 4, "x": 270, "y": 3300, "wires": [ [ "85d6369076d887c9" ], [ "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": "cool", "vt": "str" }, { "t": "eq", "v": "confort", "vt": "str" }, { "t": "eq", "v": "eco", "vt": "str" }, { "t": "eq", "v": "anti-freeze", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 4, "x": 480, "y": 3300, "wires": [ [ "3a23d8541c5bc71c" ], [ "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": 3300, "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": 3360, "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": 3420, "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": 3300, "wires": [ [ "f9fad454dec37bc7", "55660ec49f882e13" ] ] }, { "id": "64754ad76b3561d6", "type": "link in", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "thermostat - update - temperature setpoint", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 3300, "wires": [ [ "e7a80893daf9f5cd" ] ] }, { "id": "f9fad454dec37bc7", "type": "link out", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "thermostat - update - tempearture setpoint", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1195, "y": 3300, "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": 3240, "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": 3120, "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": 3120, "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": 3060, "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": 3120, "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": 3120, "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": 3120, "wires": [ [ "f3eb2e8c09f67e89", "f305bda7c25657e5" ] ] }, { "id": "37b31a14146e2a3f", "type": "link in", "z": "80f2ffd4953c67e9", "g": "c311204f22191fa2", "name": "thermostat - update - delayed aperture", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 3120, "wires": [ [ "f1240da189a60ba8" ] ] }, { "id": "92add418b3868c54", "type": "link out", "z": "80f2ffd4953c67e9", "g": "c311204f22191fa2", "name": "thermostat - update - delayed aperture", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1405, "y": 3120, "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": 3060, "wires": [] }, { "id": "266e831763ed3b77", "type": "link in", "z": "80f2ffd4953c67e9", "g": "868902cdeaa428fe", "name": "thermostat - metric - input", "links": [ "031a6afd8300356a" ], "x": 135, "y": 2700, "wires": [ [ "ed42e96a79df8e09" ] ] }, { "id": "ed42e96a79df8e09", "type": "switch", "z": "80f2ffd4953c67e9", "g": "868902cdeaa428fe", "name": "check measurement", "property": "measurement", "propertyType": "msg", "rules": [ { "t": "eq", "v": "thermostat", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 320, "y": 2700, "wires": [ [ "7b43ab1cda2d8f3f" ] ] }, { "id": "7b43ab1cda2d8f3f", "type": "switch", "z": "80f2ffd4953c67e9", "g": "868902cdeaa428fe", "name": "check field", "property": "metrics[msg.bucket][msg.measurement]", "propertyType": "global", "rules": [ { "t": "hask", "v": "pilot", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 550, "y": 2700, "wires": [ [ "ff4225d872a9a0d3" ] ] }, { "id": "ff4225d872a9a0d3", "type": "change", "z": "80f2ffd4953c67e9", "g": "868902cdeaa428fe", "name": "get thermostat from global metrics", "rules": [ { "t": "set", "p": "th", "pt": "msg", "to": "metrics[msg.bucket][msg.measurement]", "tot": "global" }, { "t": "set", "p": "th.bucket", "pt": "msg", "to": "bucket", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 820, "y": 2700, "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": 1110, "y": 2640, "wires": [] }, { "id": "be58e8ac1e1b6eb1", "type": "link out", "z": "80f2ffd4953c67e9", "g": "868902cdeaa428fe", "name": "thermostat - update - metric", "mode": "link", "links": [ "0998eafda2346961", "1b11e45ef3e9f02f", "37b31a14146e2a3f", "64754ad76b3561d6", "e50f34cde29f1023", "ffdbc6f74f0bd44a", "6e0cafa29c0a6d42" ], "x": 1035, "y": 2700, "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": "$number(msg.th.compute)>0", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1390, "y": 2880, "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": 2880, "wires": [ [ "92e341f726c9c5ac" ], [ "92e341f726c9c5ac" ], [ "92e341f726c9c5ac" ], [ "92e341f726c9c5ac" ] ] }, { "id": "d75bdce71118a56f", "type": "link call", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "", "links": [ "1452439e0c937126" ], "linkType": "static", "timeout": "30", "x": 780, "y": 2940, "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": 1670, "y": 2820, "wires": [] }, { "id": "0fb59058d3aa9663", "type": "link out", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "thermostat - update - heat request", "mode": "link", "links": [ "147aa94543fa77cb" ], "x": 1575, "y": 2880, "wires": [] }, { "id": "0998eafda2346961", "type": "link in", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "thermostat - update - heat request", "links": [ "be58e8ac1e1b6eb1" ], "x": 135, "y": 2880, "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": 4500, "wires": [ [ "34e6817c2f435667", "9ba0a97276e93540" ] ] }, { "id": "34e6817c2f435667", "type": "link out", "z": "80f2ffd4953c67e9", "g": "6c4b12585b58300e", "name": "thermostat - metric - output", "mode": "link", "links": [ "206c1fb4a48067df" ], "x": 415, "y": 4500, "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": 4440, "wires": [] }, { "id": "147aa94543fa77cb", "type": "link in", "z": "80f2ffd4953c67e9", "g": "6c4b12585b58300e", "name": "thermostat - update - metric", "links": [ "0fb59058d3aa9663", "1ff0b0648a927b0f", "3bc159f186c762cd", "502bf87b213069c7", "92add418b3868c54", "f9fad454dec37bc7", "ab22bd17459bcba2" ], "x": 135, "y": 4500, "wires": [ [ "a091b2e84a4e89e6" ] ] }, { "id": "1452439e0c937126", "type": "link in", "z": "80f2ffd4953c67e9", "g": "7e9cff1699c061ec", "name": "thermostat - compute heat request", "links": [], "x": 135, "y": 2520, "wires": [ [ "15d8d0ba06961e4b" ] ] }, { "id": "15d8d0ba06961e4b", "type": "function", "z": "80f2ffd4953c67e9", "g": "7e9cff1699c061ec", "name": "thermostat compute heat request", "func": "var 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\nif (msg.th.compute > 0) {\n node.status({\n fill: \"red\", shape: \"ring\", text: msg.th.bucket+' heat resquest at '+msg.th.compute\n });\n}\nif (msg.th.compute <= 0) {\n node.status({\n fill: \"green\", shape: \"ring\", text: msg.th.bucket+' at '+msg.th.compute\n });\n}\n\n\nreturn msg;", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 360, "y": 2520, "wires": [ [ "4b342483a51b0f93", "9f5320eaa60df7cf" ] ] }, { "id": "4b342483a51b0f93", "type": "link out", "z": "80f2ffd4953c67e9", "g": "7e9cff1699c061ec", "name": "thermostat - compute heat request", "mode": "return", "links": [], "x": 575, "y": 2520, "wires": [] }, { "id": "3099e4a17fd21410", "type": "link in", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "thermostat - update - indoor temperature", "links": [ "6b4c87d53563c36d" ], "x": 135, "y": 4920, "wires": [ [ "b7a2b83163ce711a" ] ] }, { "id": "a2b07c98d61de126", "type": "change", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "set field", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "indoor temperature", "tot": "str" }, { "t": "set", "p": "trigger_payload", "pt": "msg", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1300, "y": 4920, "wires": [ [ "d09ad27d05d54698", "c3b17da928d7afba" ] ] }, { "id": "d09ad27d05d54698", "type": "link out", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "thermostat - update - indoor temperature", "mode": "link", "links": [ "63f9a6d8c925d3d3" ], "x": 1435, "y": 4920, "wires": [] }, { "id": "4c169fc26f833802", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "trigger", "property": "measurement", "propertyType": "msg", "rules": [ { "t": "eq", "v": "temperature", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 470, "y": 4920, "wires": [ [ "9eb8cf78caf3141d" ] ] }, { "id": "9eb8cf78caf3141d", "type": "link call", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "", "links": [ "ddd39f991efd9d31" ], "linkType": "static", "timeout": "30", "x": 670, "y": 4920, "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": 870, "y": 4920, "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": 1080, "y": 4920, "wires": [ [ "a2b07c98d61de126" ] ] }, { "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": 6680, "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": 6800, "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": 6620, "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": 6740, "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": 6980, "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": 6920, "wires": [ [ "d60c017a8962d3f8" ] ] }, { "id": "d60c017a8962d3f8", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "field", "rules": [ { "t": "set", "p": "th", "pt": "msg", "to": "#:(onMemory)::thermostattest", "tot": "flow" }, { "t": "set", "p": "th[msg.topic]", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "#:(onMemory)::thermostattest", "pt": "flow", "to": "th", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1090, "y": 6620, "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": "#:(onMemory)::thermostattest", "pt": "flow", "to": "th", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 330, "y": 6560, "wires": [ [ "67e91e753d3708e2", "6e4f87c323cc4659" ] ] }, { "id": "c932311ec07112b5", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "#:(onMemory)::thermostattest['indoor temperature']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6680, "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": 6620, "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": 6560, "wires": [ [ "dc37631fe73fce2a" ] ] }, { "id": "f974a627497b4b7d", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "#:(onMemory)::thermostattest['outdoor temperature']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6800, "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": 6620, "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": 6560, "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": 6860, "wires": [ [ "d60c017a8962d3f8" ] ] }, { "id": "f81152d8df61c845", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "#:(onMemory)::thermostattest['temperature setpoint']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6620, "wires": [ [ "515b0c184c8a3628" ] ] }, { "id": "bc4771242d5d3bd8", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "#:(onMemory)::thermostattest['indoor coefficient']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6740, "wires": [ [ "13697bbd73295b46" ] ] }, { "id": "135b7546018ecfba", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "#:(onMemory)::thermostattest['outdoor coefficient']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6860, "wires": [ [ "f10733a435dc7390" ] ] }, { "id": "6bf593bd1612dbde", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "#:(onMemory)::thermostattest['preheat time']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6980, "wires": [ [ "c6fdc57a80266f04" ] ] }, { "id": "64405bce10cccde1", "type": "change", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "topic", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "#:(onMemory)::thermostattest['cycle time']", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 6920, "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": 6560, "wires": [ [ "c9291360c0f0b490" ] ] }, { "id": "6e4f87c323cc4659", "type": "link call", "z": "80f2ffd4953c67e9", "g": "c3cbb2a2dd06d1bb", "name": "", "links": [ "1452439e0c937126" ], "linkType": "static", "timeout": "30", "x": 1340, "y": 6560, "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": [ [ "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", "d93c5182974350b0", "ae60f951124d5757", "f97b5115e1d99d4b", "08830b1bec822cd0" ] ] }, { "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": 600, "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": 660, "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": 720, "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": 1440, "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": 1200, "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": 1260, "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": 1320, "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": 1380, "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": 780, "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": 840, "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": 900, "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": 960, "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": 1020, "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": 540, "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": 1080, "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": "...", "rules": [], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1050, "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": 1140, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "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": 1500, "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": 1560, "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": 1620, "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": 1680, "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": 1740, "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": 1980, "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": 2040, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "7837b5fcc1432bfa", "type": "link in", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "thermostat - update - aperture opened", "links": [ "6b4c87d53563c36d" ], "x": 135, "y": 5280, "wires": [ [ "87b35783671bc785" ] ] }, { "id": "6632e88ee0633e4c", "type": "link out", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "thermostat - update - aperture opened", "mode": "link", "links": [ "63f9a6d8c925d3d3" ], "x": 2555, "y": 5340, "wires": [] }, { "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" }, { "t": "eq", "v": "th['aperture 6']", "vt": "msg" } ], "checkall": "false", "repair": false, "outputs": 6, "x": 270, "y": 5280, "wires": [ [ "632ae6a86b8d4095" ], [ "632ae6a86b8d4095" ], [ "632ae6a86b8d4095" ], [ "632ae6a86b8d4095" ], [ "632ae6a86b8d4095" ], [ "632ae6a86b8d4095" ] ] }, { "id": "748b1f355c0e00f8", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "compare", "property": "#:(onMemory)::aperture[msg.th.bucket]", "propertyType": "flow", "rules": [ { "t": "neq", "v": "th['aperture opened']", "vt": "msg" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 2240, "y": 5300, "wires": [ [ "86cb7c12e7bccf56" ] ] }, { "id": "86cb7c12e7bccf56", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "set field", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "aperture opened", "tot": "str" }, { "t": "set", "p": "trigger_payload", "pt": "msg", "to": "#:(onMemory)::aperture[msg.th.bucket]", "tot": "flow" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2420, "y": 5340, "wires": [ [ "6632e88ee0633e4c", "a91a6950282e40e0" ] ] }, { "id": "a91a6950282e40e0", "type": "debug", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "thermostat - trigger - aperture opened", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 2690, "y": 5280, "wires": [] }, { "id": "c3b17da928d7afba", "type": "debug", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "thermostat - trigger - indoor temperature", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1580, "y": 4860, "wires": [] }, { "id": "048bc1e501b0f9f2", "type": "change", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "confort", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "confort", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2450, "y": 6060, "wires": [ [ "0728c8c3564e6e93" ] ] }, { "id": "3b8d8924bdb03f80", "type": "change", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "eco", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "eco", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2450, "y": 6000, "wires": [ [ "0728c8c3564e6e93" ] ] }, { "id": "3e40fc1c77ed372a", "type": "switch", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "mode heating", "property": "metrics.system.mode.heating", "propertyType": "global", "rules": [ { "t": "eq", "v": "off", "vt": "str" }, { "t": "eq", "v": "cool", "vt": "str" }, { "t": "eq", "v": "anti-freeze", "vt": "str" }, { "t": "eq", "v": "automatic", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 4, "x": 1820, "y": 5880, "wires": [ [ "b461040a6c998b61" ], [ "0cac48ac1fa4efa4" ], [ "3c808f997ae66a1c" ], [ "069ab711c0c089a6" ] ] }, { "id": "b461040a6c998b61", "type": "change", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "off", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "off", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2450, "y": 5820, "wires": [ [ "0728c8c3564e6e93" ] ] }, { "id": "3c808f997ae66a1c", "type": "change", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "anti-freeze", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "anti-freeze", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2470, "y": 5940, "wires": [ [ "0728c8c3564e6e93" ] ] }, { "id": "069ab711c0c089a6", "type": "switch", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "hour confort", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "0", "vt": "num" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 2050, "y": 6000, "wires": [ [ "3b8d8924bdb03f80" ], [ "35ea643afefc732d" ] ] }, { "id": "c20295d9b0ac3419", "type": "change", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "set metric", "rules": [ { "t": "set", "p": "bucket", "pt": "msg", "to": "scene.bucket", "tot": "msg" }, { "t": "set", "p": "measurement", "pt": "msg", "to": "scene.measurement", "tot": "msg" }, { "t": "set", "p": "field", "pt": "msg", "to": "scene.field", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2840, "y": 5880, "wires": [ [ "e267a0404a5c5d6c", "34992e101a5f7e1c" ] ] }, { "id": "34992e101a5f7e1c", "type": "debug", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "thermostat - update - operating mode", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 3110, "y": 5820, "wires": [] }, { "id": "36eb92fa692e166c", "type": "switch", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "rsp", "property": "routine.response", "propertyType": "msg", "rules": [ { "t": "eq", "v": "1", "vt": "num" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 1630, "y": 5880, "wires": [ [ "3e40fc1c77ed372a" ] ] }, { "id": "d4c1d964e9c56e01", "type": "link call", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "", "links": [ "c1a22098f4c6b607" ], "linkType": "static", "timeout": "30", "x": 1450, "y": 5880, "wires": [ [ "36eb92fa692e166c" ] ] }, { "id": "abd02925c2597211", "type": "change", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "scene thermostat / operating mode / text", "rules": [ { "t": "set", "p": "scene.bucket", "pt": "msg", "to": "room", "tot": "msg" }, { "t": "set", "p": "scene.measurement", "pt": "msg", "to": "thermostat", "tot": "str" }, { "t": "set", "p": "scene.field", "pt": "msg", "to": "operating mode", "tot": "str" }, { "t": "set", "p": "scene.format", "pt": "msg", "to": "text", "tot": "str" }, { "t": "set", "p": "scene.type", "pt": "msg", "to": "thermostat", "tot": "str" }, { "t": "set", "p": "scene.on", "pt": "msg", "to": "eco", "tot": "str" }, { "t": "set", "p": "scene.off", "pt": "msg", "to": "off", "tot": "str" }, { "t": "delete", "p": "room", "pt": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1160, "y": 5880, "wires": [ [ "d4c1d964e9c56e01" ] ] }, { "id": "e267a0404a5c5d6c", "type": "link out", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "thermostat - update - operating mode", "mode": "link", "links": [ "206c1fb4a48067df" ], "x": 2975, "y": 5880, "wires": [] }, { "id": "758acb218148a1d7", "type": "comment", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "don not call system/mode/heating as thermostat because of modes off are different", "info": "", "x": 1670, "y": 5820, "wires": [] }, { "id": "0728c8c3564e6e93", "type": "switch", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "compare", "property": "payload", "propertyType": "msg", "rules": [ { "t": "neq", "v": "routine[msg.scene.field]", "vt": "msg" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 2660, "y": 5880, "wires": [ [ "c20295d9b0ac3419" ] ] }, { "id": "d1c7f4810b12afe2", "type": "link in", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "thermostat - update - operating mode - out", "links": [ "0857f7c3fc012063", "2ced5243fb4aa8a7", "2df681beb21344f6", "307e1f98694a09a1", "377374bc3cc49bc5", "438b7d7c7b096219", "4a2c85990a2b061e", "7dc41ad29651ef76", "9820c6e109f25a2a", "f8f9a6db99bb33e8" ], "x": 755, "y": 5880, "wires": [ [ "d6ec98126b0438ab" ] ] }, { "id": "35ea643afefc732d", "type": "switch", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "mode presence", "property": "metrics.system.mode.presence", "propertyType": "global", "rules": [ { "t": "eq", "v": "absent", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 2260, "y": 6060, "wires": [ [ "3b8d8924bdb03f80" ], [ "048bc1e501b0f9f2" ] ] }, { "id": "45bd2f5743776c20", "type": "change", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "sync", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "sync", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 470, "y": 5880, "wires": [ [ "84f1bb54c15f032d" ] ] }, { "id": "d6ec98126b0438ab", "type": "switch", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "room", "property": "room", "propertyType": "msg", "rules": [ { "t": "istype", "v": "string", "vt": "string" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 890, "y": 5880, "wires": [ [ "abd02925c2597211" ] ] }, { "id": "84f1bb54c15f032d", "type": "link out", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "thermostat - update - operating modee - in", "mode": "link", "links": [ "30a4c71f8d02384d", "3dc0abb4933cf52c", "628c2e8014a8c40c", "64765643b13c207f", "6f4850f14b12df44", "8f0b1f8de9fbfc9f", "94744f7b1ec149b3", "afd97549392e0e45", "c39d452224c976fc", "eec0c12c5dac7ac0" ], "x": 595, "y": 5880, "wires": [] }, { "id": "f05d34dd5ff9746b", "type": "link in", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "thermostat - update - operating mode - boot", "links": [ "427c0a5a050502e2" ], "x": 135, "y": 5880, "wires": [ [ "080a2e3d678b9119" ] ] }, { "id": "9737afb19d9c9fbb", "type": "link in", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "room - ui - thermostat - load", "links": [ "9e4bfee0db3051d4" ], "x": 1375, "y": 240, "wires": [ [ "4b8267934ced5596", "86a901b933d34c8a" ] ] }, { "id": "dd49b4996fb683ff", "type": "link in", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "room - ui - thermostat - metric", "links": [ "b6323e1460f6f50c" ], "x": 1375, "y": 300, "wires": [ [ "7e364afe6e09d405" ] ] }, { "id": "fc673a36d8691d63", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "reset", "rules": [], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2450, "y": 360, "wires": [ [ "f85914dec075a3d8", "f968a8fc298f04c3", "37794c3da2ceda38", "f23d5105ca948593", "348134507ffe8815", "93e874f6e4a1f87a", "3d40410e159beaab", "4565730f04bd7072", "79764253e9e92fda", "4ad97596d0efa64b", "63561fec4fba2afd", "07108de5adf3ae2a", "bcf6468037b4c2a6", "4c5adf85df17025b", "3f9eefa51c1e5e9e", "dfd8650d923f73e4", "53f7b3195f6dfeed", "6cc81c8342d6ef1c", "99e789a941d2af52", "f7ed99ce22cd37cb", "cb3f8f9fa322b59f", "51dc21bc28ea3f06", "272807d6b707d92f", "4540d4f432f8742d", "6d0cb16590b1da18", "bfb0a473b6a09c81", "61d316384ef1521b", "8c3c9bc4a66b1e32", "ff2211c1efd24971", "33fde1af7428bf26", "f814aebd5bd599b5", "25b3542fda8fae4d", "e223793b9998818b", "bc775d86aa14a73f", "aefd619aa22eea0b", "b74bf0ca5e271336" ] ] }, { "id": "37aa96c6d80d8ade", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "set metric", "rules": [ { "t": "set", "p": "measurement", "pt": "msg", "to": "thermostat", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 3120, "y": 600, "wires": [ [ "1ef76a4c1fab9b78" ] ] }, { "id": "1ef76a4c1fab9b78", "type": "link out", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "room - ui - thermostat - metric", "mode": "link", "links": [ "2690f4e06626ebda" ], "x": 3255, "y": 600, "wires": [] }, { "id": "adc6196b15cf8c39", "type": "switch", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "field", "property": "field", "propertyType": "msg", "rules": [ { "t": "eq", "v": "actif", "vt": "str" }, { "t": "eq", "v": "status", "vt": "str" }, { "t": "eq", "v": "heat request", "vt": "str" }, { "t": "eq", "v": "pilot", "vt": "str" }, { "t": "eq", "v": "aperture opened", "vt": "str" }, { "t": "eq", "v": "delayed aperture", "vt": "str" }, { "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" }, { "t": "eq", "v": "eco setpoint", "vt": "str" }, { "t": "eq", "v": "confort setpoint", "vt": "str" }, { "t": "eq", "v": "cold setpoint", "vt": "str" }, { "t": "eq", "v": "indoor coefficient", "vt": "str" }, { "t": "eq", "v": "outdoor coefficient", "vt": "str" }, { "t": "eq", "v": "preheat time", "vt": "str" }, { "t": "eq", "v": "cycle time", "vt": "str" }, { "t": "eq", "v": "aperture delay", "vt": "str" }, { "t": "eq", "v": "offloading delay", "vt": "str" }, { "t": "eq", "v": "offloading power", "vt": "str" }, { "t": "eq", "v": "aperture 1", "vt": "str" }, { "t": "eq", "v": "aperture 2", "vt": "str" }, { "t": "eq", "v": "aperture 3", "vt": "str" }, { "t": "eq", "v": "aperture 4", "vt": "str" }, { "t": "eq", "v": "aperture 5", "vt": "str" }, { "t": "eq", "v": "aperture 6", "vt": "str" }, { "t": "eq", "v": "outdoor 1", "vt": "str" }, { "t": "eq", "v": "outdoor 2", "vt": "str" }, { "t": "eq", "v": "last pilot", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 29, "x": 1910, "y": 600, "wires": [ [ "f85914dec075a3d8", "1d92bf6b8fc98959" ], [ "fb9711affc7d14af" ], [ "61d316384ef1521b" ], [ "37794c3da2ceda38" ], [ "bd8ab43b4a91a2ae" ], [ "19b6504e1bbece40" ], [ "a7420198a3e0f879" ], [ "26537f8818c29c61" ], [ "27d7b08fb3646a52" ], [ "151d5194b8538480" ], [ "07108de5adf3ae2a", "f670239d8cf08808" ], [ "bcf6468037b4c2a6", "a4b56ada8159bff6" ], [ "b87af6e4d9e65d33", "bc775d86aa14a73f" ], [ "6cc81c8342d6ef1c", "990b4d58c23a68a2" ], [ "f7ed99ce22cd37cb", "ee3e358d88bbf249" ], [ "51dc21bc28ea3f06", "6f096e24c9634c56" ], [ "4540d4f432f8742d", "83b16f9aed4fa051" ], [ "ff2211c1efd24971", "db3ebf0b6421aeae" ], [ "f814aebd5bd599b5", "10c3697bddec1a05" ], [ "bfb0a473b6a09c81", "4f0ea1cdd4d0b719" ], [ "3afbcb94c2dd9a98" ], [ "5058697599c00bfb" ], [ "788641b627884830" ], [ "2a09806bd2dd8204" ], [ "2daacd754d59567f" ], [ "2f53d6a12a1b9648" ], [ "74b33297e4369aee" ], [ "a3a5880c2003c6cd" ], [ "c4f79cb042dc36a1" ] ] }, { "id": "26bdcbaa93cfcc27", "type": "humanizer", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "", "input": "msg.payload", "x": 2250, "y": 2280, "wires": [ [ "2efa063af4b505d2" ] ] }, { "id": "c4f79cb042dc36a1", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "calcul", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "$round(($millis() - msg.payload)/1000)", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 2280, "wires": [ [ "26bdcbaa93cfcc27" ] ] }, { "id": "f391ba85b3d53073", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "set metric", "rules": [ { "t": "set", "p": "measurement", "pt": "msg", "to": "cible", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 3120, "y": 780, "wires": [ [ "1ef76a4c1fab9b78" ] ] }, { "id": "7e364afe6e09d405", "type": "switch", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "measurement", "property": "measurement", "propertyType": "msg", "rules": [ { "t": "eq", "v": "thermostat", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 1540, "y": 300, "wires": [ [ "39615dab9370d868", "f8705fb32062a93f" ] ] }, { "id": "f85914dec075a3d8", "type": "ui-switch", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "actif", "label": "", "group": "28836135eb153545", "order": 2, "width": "1", "height": "1", "passthru": false, "topic": "actif", "topicType": "str", "style": "", "className": "", "onvalue": "true", "onvalueType": "bool", "onicon": "cog", "oncolor": "teal", "offvalue": "false", "offvalueType": "bool", "officon": "cog-off-outline", "offcolor": "grey", "x": 2870, "y": 600, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "bd8ab43b4a91a2ae", "type": "ui-switch", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "aperture opened", "label": "", "group": "28836135eb153545", "order": 6, "width": "1", "height": "1", "passthru": false, "topic": "topic", "topicType": "msg", "style": "", "className": "", "onvalue": "true", "onvalueType": "bool", "onicon": "door-open", "oncolor": "teal", "offvalue": "false", "offvalueType": "bool", "officon": "door-closed", "offcolor": "grey", "x": 2900, "y": 840, "wires": [ [] ] }, { "id": "19b6504e1bbece40", "type": "ui-switch", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "delayed aperture", "label": "", "group": "28836135eb153545", "order": 7, "width": "1", "height": "1", "passthru": false, "topic": "topic", "topicType": "msg", "style": "", "className": "", "onvalue": "true", "onvalueType": "bool", "onicon": "timer-remove", "oncolor": "grey", "offvalue": "false", "offvalueType": "bool", "officon": "timer-check", "offcolor": "teal", "x": 2910, "y": 900, "wires": [ [] ] }, { "id": "f968a8fc298f04c3", "type": "ui-dropdown", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "operating mode", "label": "Mode", "tooltip": "", "order": 11, "width": "6", "height": "1", "passthru": false, "multiple": false, "chips": false, "clearable": false, "options": [ { "label": "Arrêt", "value": "off", "type": "str" } ], "payload": "", "topic": "operating mode", "topicType": "str", "className": "", "typeIsComboBox": true, "x": 2900, "y": 1140, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "07108de5adf3ae2a", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "eco setpoint", "label": "", "tooltip": "", "order": 13, "width": "4", "height": "1", "passthru": false, "outs": "end", "topic": "eco setpoint", "topicType": "str", "thumbLabel": true, "min": "15", "max": "35", "step": "0.5", "className": "", "x": 2890, "y": 1200, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "bcf6468037b4c2a6", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "confort setpoint", "label": "", "tooltip": "", "order": 15, "width": "4", "height": "1", "passthru": false, "outs": "end", "topic": "confort setpoint", "topicType": "str", "thumbLabel": true, "min": "15", "max": "35", "step": "0.5", "className": "", "x": 2900, "y": 1260, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "37794c3da2ceda38", "type": "ui-switch", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "pilot", "label": "", "group": "28836135eb153545", "order": 5, "width": "1", "height": "1", "passthru": false, "topic": "pilot", "topicType": "str", "style": "", "className": "", "onvalue": "true", "onvalueType": "bool", "onicon": "power-plug", "oncolor": "teal", "offvalue": "false", "offvalueType": "bool", "officon": "power-plug-off", "offcolor": "grey", "x": 2870, "y": 780, "wires": [ [ "f391ba85b3d53073" ] ] }, { "id": "dfd8650d923f73e4", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 9, "width": "2", "height": "1", "name": "indoor temperature", "label": "", "format": "{{msg.payload}}", "layout": "row-left", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2650, "y": 1080, "wires": [] }, { "id": "4c5adf85df17025b", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 8, "width": "2", "height": "1", "name": "temperature setpoint", "label": "", "format": "{{msg.payload}}", "layout": "row-left", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2660, "y": 960, "wires": [] }, { "id": "26537f8818c29c61", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Interieur à '&msg.payload&'°'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1080, "wires": [ [ "dfd8650d923f73e4" ] ] }, { "id": "a7420198a3e0f879", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Consigne à '&msg.payload&'°'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 960, "wires": [ [ "4c5adf85df17025b" ] ] }, { "id": "f23d5105ca948593", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 40, "width": "6", "height": "1", "name": "seens", "label": "", "format": "{{msg.payload}}", "layout": "row-spread", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2610, "y": 2280, "wires": [] }, { "id": "2efa063af4b505d2", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Dernier ordre il y a '&msg.payload.humanized", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2430, "y": 2280, "wires": [ [ "f23d5105ca948593" ] ] }, { "id": "6cc81c8342d6ef1c", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "indoor coefficient", "label": "", "tooltip": "", "order": 19, "width": "4", "height": "1", "passthru": false, "outs": "end", "topic": "indoor coefficient", "topicType": "str", "thumbLabel": true, "min": 0, "max": "200", "step": 1, "className": "", "x": 2910, "y": 1380, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "f7ed99ce22cd37cb", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "outdoor coefficient", "label": "", "tooltip": "", "order": 21, "width": "4", "height": "1", "passthru": false, "outs": "end", "topic": "outdoor coefficient", "topicType": "str", "thumbLabel": true, "min": 0, "max": "200", "step": 1, "className": "", "x": 2910, "y": 1440, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "348134507ffe8815", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 3, "width": "2", "height": "1", "name": "status", "label": "", "format": "{{msg.payload}}", "layout": "row-left", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2610, "y": 660, "wires": [] }, { "id": "63561fec4fba2afd", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 12, "width": "2", "height": "1", "name": "eco setpoint (txt)", "label": "", "format": "{{msg.payload}}", "layout": "row-right", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2650, "y": 1200, "wires": [] }, { "id": "53f7b3195f6dfeed", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 18, "width": "2", "height": "1", "name": "indoor coefficient (txt)", "label": "", "format": "{{msg.payload}}", "layout": "row-right", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2660, "y": 1380, "wires": [] }, { "id": "99e789a941d2af52", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 20, "width": "2", "height": "1", "name": "outdoor coefficient (txt)", "label": "", "format": "{{msg.payload}}", "layout": "row-right", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2660, "y": 1440, "wires": [] }, { "id": "39615dab9370d868", "type": "delay", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "150 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": 1740, "y": 600, "wires": [ [ "adc6196b15cf8c39" ] ] }, { "id": "e223793b9998818b", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 14, "width": "2", "height": "1", "name": "confort setpoint (txt)", "label": "", "format": "{{msg.payload}}", "layout": "row-right", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2660, "y": 1260, "wires": [] }, { "id": "136162f12991809c", "type": "link call", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "", "links": [ "df0e4ab2e1efc286" ], "linkType": "static", "timeout": "30", "x": 2260, "y": 660, "wires": [ [ "a9e89b46159c4ec8" ] ] }, { "id": "fb9711affc7d14af", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "move", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 660, "wires": [ [ "136162f12991809c" ] ] }, { "id": "a9e89b46159c4ec8", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "move", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "trans", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2450, "y": 660, "wires": [ [ "348134507ffe8815" ] ] }, { "id": "cb3f8f9fa322b59f", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 22, "width": "2", "height": "1", "name": "preheat time(txt)", "label": "", "format": "{{msg.payload}}", "layout": "row-right", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2640, "y": 1500, "wires": [] }, { "id": "51dc21bc28ea3f06", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "preheat time", "label": "", "tooltip": "", "order": 23, "width": "4", "height": "1", "passthru": false, "outs": "end", "topic": "preheat time", "topicType": "str", "thumbLabel": true, "min": "5", "max": "60", "step": "5", "className": "", "x": 2890, "y": 1500, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "272807d6b707d92f", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 24, "width": "2", "height": "1", "name": "cycle time(txt)", "label": "", "format": "{{msg.payload}}", "layout": "row-right", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2640, "y": 1560, "wires": [] }, { "id": "4540d4f432f8742d", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "cycle time", "label": "", "tooltip": "", "order": 25, "width": "4", "height": "1", "passthru": false, "outs": "end", "topic": "cycle time", "topicType": "str", "thumbLabel": true, "min": "5", "max": "120", "step": "5", "className": "", "x": 2880, "y": 1560, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "6d0cb16590b1da18", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 30, "width": "2", "height": "1", "name": "offloading power (txt)", "label": "", "format": "{{msg.payload}}", "layout": "row-right", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2660, "y": 1740, "wires": [] }, { "id": "bfb0a473b6a09c81", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "offloading power", "label": "", "tooltip": "", "order": 31, "width": "4", "height": "1", "passthru": false, "outs": "end", "topic": "offloading power", "topicType": "str", "thumbLabel": true, "min": "100", "max": "1500", "step": "100", "className": "", "x": 2900, "y": 1740, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "61d316384ef1521b", "type": "ui-switch", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "heat request", "label": "", "group": "28836135eb153545", "order": 4, "width": "1", "height": "1", "passthru": false, "topic": "topic", "topicType": "msg", "style": "", "className": "", "onvalue": "true", "onvalueType": "bool", "onicon": "cog-play", "oncolor": "teal", "offvalue": "false", "offvalueType": "bool", "officon": "cog-stop-outline", "offcolor": "grey", "x": 2890, "y": 720, "wires": [ [] ] }, { "id": "27d7b08fb3646a52", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Exterieur à '&msg.payload&'°'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1020, "wires": [ [ "3f9eefa51c1e5e9e" ] ] }, { "id": "3f9eefa51c1e5e9e", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 10, "width": "2", "height": "1", "name": "outdoor temperature", "label": "", "format": "{{msg.payload}}", "layout": "row-left", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2660, "y": 1020, "wires": [] }, { "id": "ff2211c1efd24971", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "aperture delay", "label": "", "tooltip": "", "order": 27, "width": "4", "height": "1", "passthru": false, "outs": "end", "topic": "aperture delay", "topicType": "str", "thumbLabel": true, "min": "1", "max": "30", "step": 1, "className": "", "x": 2900, "y": 1620, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "f814aebd5bd599b5", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "offloading delay", "label": "", "tooltip": "", "order": 29, "width": "4", "height": "1", "passthru": false, "outs": "end", "topic": "offloading delay", "topicType": "str", "thumbLabel": true, "min": "1", "max": "60", "step": 1, "className": "", "x": 2900, "y": 1680, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "8c3c9bc4a66b1e32", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 26, "width": "2", "height": "1", "name": "aperture delay(txt)", "label": "", "format": "{{msg.payload}}", "layout": "row-right", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2650, "y": 1620, "wires": [] }, { "id": "0711217590341f99", "type": "change", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "from global", "rules": [ { "t": "set", "p": "old_payload", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "metrics", "tot": "global" }, { "t": "set", "p": "#:(onMemory)::thermostat.apertures", "pt": "flow", "to": "[]", "tot": "jsonata" }, { "t": "set", "p": "#:(onMemory)::thermostat.apertures[0]", "pt": "flow", "to": "{\t 'label': 'non assigné',\t 'value': ''\t}", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 3890, "y": 360, "wires": [ [ "3930f84bd36fd5aa" ] ] }, { "id": "3930f84bd36fd5aa", "type": "split", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "buckets", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "bucket", "property": "payload", "x": 4080, "y": 360, "wires": [ [ "b6f3145afc37707c" ] ] }, { "id": "b6f3145afc37707c", "type": "split", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "measurements", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "measurement", "property": "payload", "x": 4280, "y": 360, "wires": [ [ "7a9f4d42d5c7497c" ] ] }, { "id": "7a9f4d42d5c7497c", "type": "switch", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "measurement", "property": "measurement", "propertyType": "msg", "rules": [ { "t": "eq", "v": "aperture", "vt": "str" }, { "t": "eq", "v": "photovoltaic", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 3, "x": 4500, "y": 360, "wires": [ [ "dd517b4d06983aac" ], [ "e0613fa53ec99a7d" ], [ "c1311d74af614a6b" ] ] }, { "id": "dd517b4d06983aac", "type": "split", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "field", "property": "payload", "x": 4690, "y": 240, "wires": [ [ "e7dcdd83cf9e08e1" ] ] }, { "id": "e7dcdd83cf9e08e1", "type": "switch", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "field", "property": "field", "propertyType": "msg", "rules": [ { "t": "neq", "v": "shutter", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 4850, "y": 240, "wires": [ [ "ad09f7f6ad1acedd" ], [ "f80f5a53d9b07000" ] ] }, { "id": "73dc6a2b0e041f8e", "type": "change", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "add", "rules": [ { "t": "set", "p": "metric", "pt": "msg", "to": "$substring(msg.metric,1)", "tot": "jsonata" }, { "t": "set", "p": "options", "pt": "msg", "to": "#:(onMemory)::thermostat.apertures", "tot": "flow" }, { "t": "set", "p": "count", "pt": "msg", "to": "$count(msg.options)-1", "tot": "jsonata" }, { "t": "set", "p": "count", "pt": "msg", "to": "msg.count+1", "tot": "jsonata" }, { "t": "set", "p": "options[msg.count]", "pt": "msg", "to": "{\t 'label': msg.trans.path,\t 'value': msg.metric\t}", "tot": "jsonata" }, { "t": "set", "p": "#:(onMemory)::thermostat.apertures", "pt": "flow", "to": "options", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 5410, "y": 240, "wires": [ [ "f80f5a53d9b07000" ] ] }, { "id": "93e874f6e4a1f87a", "type": "ui-dropdown", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "aperture 1", "label": "Ouverture 1 :", "tooltip": "", "order": 32, "width": "6", "height": "1", "passthru": false, "multiple": false, "options": [ { "label": "non assigné", "value": "", "type": "str" } ], "payload": "", "topic": "aperture 1", "topicType": "str", "className": "", "x": 2890, "y": 1800, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "3d40410e159beaab", "type": "ui-dropdown", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "aperture 2", "label": "Ouverture 2 :", "tooltip": "", "order": 33, "width": "6", "height": "1", "passthru": false, "multiple": false, "options": [ { "label": "non assigné", "value": "", "type": "str" } ], "payload": "", "topic": "aperture 2", "topicType": "str", "className": "", "x": 2890, "y": 1860, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "4565730f04bd7072", "type": "ui-dropdown", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "aperture 3", "label": "Ouverture 3 :", "tooltip": "", "order": 34, "width": "6", "height": "1", "passthru": false, "multiple": false, "options": [ { "label": "non assigné", "value": "", "type": "str" } ], "payload": "", "topic": "aperture 3", "topicType": "str", "className": "", "x": 2890, "y": 1920, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "79764253e9e92fda", "type": "ui-dropdown", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "aperture 4", "label": "Ouverture 4 :", "tooltip": "", "order": 35, "width": "6", "height": "1", "passthru": false, "multiple": false, "options": [ { "label": "non assigné", "value": "", "type": "str" } ], "payload": "", "topic": "aperture 4", "topicType": "str", "className": "", "x": 2890, "y": 1980, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "4ad97596d0efa64b", "type": "ui-dropdown", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "aperture 5", "label": "Ouverture 5 :", "tooltip": "", "order": 36, "width": "6", "height": "1", "passthru": false, "multiple": false, "options": [ { "label": "non assigné", "value": "", "type": "str" } ], "payload": "", "topic": "aperture 5", "topicType": "str", "className": "", "x": 2890, "y": 2040, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "33fde1af7428bf26", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 28, "width": "2", "height": "1", "name": "offloading delay(txt)", "label": "", "format": "{{msg.payload}}", "layout": "row-right", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2650, "y": 1680, "wires": [] }, { "id": "1d92bf6b8fc98959", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "msg.payload?\"Gestion de thermostat active\":\"Gestion de thermostat inactive\"", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 600, "wires": [ [ "25b3542fda8fae4d" ] ] }, { "id": "25b3542fda8fae4d", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 1, "width": "5", "height": "1", "name": "actif (txt)", "label": "", "format": "{{msg.payload}}", "layout": "row-right", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2620, "y": 600, "wires": [] }, { "id": "4b8267934ced5596", "type": "delay", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "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": 1510, "y": 360, "wires": [ [ "fc673a36d8691d63" ] ] }, { "id": "151d5194b8538480", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "options", "rules": [ { "t": "set", "p": "options", "pt": "msg", "to": "[\t {'label':'Eco','value':'eco'},\t {'label':'Confort','value':'confort'},\t {'label':'Hors-Gel','value':'anti-freeze'},\t {'label':'Climatisation','value':'cool'},\t {'label':'Arrêt','value':'off'}\t]", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2080, "y": 1140, "wires": [ [ "f968a8fc298f04c3" ] ] }, { "id": "f670239d8cf08808", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Mode eco à '&msg.payload&'°'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1200, "wires": [ [ "63561fec4fba2afd" ] ] }, { "id": "a4b56ada8159bff6", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Mode confort à '&msg.payload&'°'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1260, "wires": [ [ "e223793b9998818b" ] ] }, { "id": "990b4d58c23a68a2", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Coef. int. de '&msg.payload", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1380, "wires": [ [ "53f7b3195f6dfeed" ] ] }, { "id": "ee3e358d88bbf249", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Coef. ext. de '&msg.payload", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1440, "wires": [ [ "99e789a941d2af52" ] ] }, { "id": "6f096e24c9634c56", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Préchauffe de '&msg.payload&'m'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1500, "wires": [ [ "cb3f8f9fa322b59f" ] ] }, { "id": "83b16f9aed4fa051", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Cycle de '&msg.payload&'m'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1560, "wires": [ [ "272807d6b707d92f" ] ] }, { "id": "db3ebf0b6421aeae", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Délai ouvrant '&msg.payload&'m'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1620, "wires": [ [ "8c3c9bc4a66b1e32" ] ] }, { "id": "10c3697bddec1a05", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Délai délestage '&msg.payload&'m'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1680, "wires": [ [ "33fde1af7428bf26" ] ] }, { "id": "4f0ea1cdd4d0b719", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Puissance de '&msg.payload&'w'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1740, "wires": [ [ "6d0cb16590b1da18" ] ] }, { "id": "ad09f7f6ad1acedd", "type": "change", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "metric", "rules": [ { "t": "set", "p": "metric", "pt": "msg", "to": "'/'&msg.bucket&'/'&msg.measurement&'/'&msg.field", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 5010, "y": 240, "wires": [ [ "7bb3239b80bb5650" ] ] }, { "id": "7bb3239b80bb5650", "type": "link call", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "", "links": [ "025e219749a67439" ], "linkType": "static", "timeout": "30", "x": 5210, "y": 240, "wires": [ [ "73dc6a2b0e041f8e" ] ] }, { "id": "080a2e3d678b9119", "type": "gate", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "gate scene", "controlTopic": "gate scene", "defaultState": "closed", "openCmd": "open", "closeCmd": "close", "toggleCmd": "toggle", "defaultCmd": "default", "statusCmd": "status", "persist": false, "storeName": "onFile", "x": 290, "y": 5880, "wires": [ [ "45bd2f5743776c20" ] ] }, { "id": "d93c5182974350b0", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / cold setpoint / number / 18", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "cold setpoint", "tot": "str" }, { "t": "set", "p": "format", "pt": "msg", "to": "number", "tot": "str" }, { "t": "set", "p": "default", "pt": "msg", "to": "18", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 750, "y": 480, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "b87af6e4d9e65d33", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "format", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "'Mode froid à '&msg.payload&'°'", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2070, "y": 1320, "wires": [ [ "aefd619aa22eea0b" ] ] }, { "id": "aefd619aa22eea0b", "type": "ui-text", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "order": 16, "width": "2", "height": "1", "name": "cold setpoint (txt)", "label": "", "format": "{{msg.payload}}", "layout": "row-right", "style": false, "font": "", "fontSize": 16, "color": "#717171", "className": "", "x": 2650, "y": 1320, "wires": [] }, { "id": "bc775d86aa14a73f", "type": "ui-slider", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "cold setpoint", "label": "", "tooltip": "", "order": 17, "width": "4", "height": "1", "passthru": false, "outs": "end", "topic": "cold setpoint", "topicType": "str", "thumbLabel": "true", "showTicks": "false", "min": "18", "max": "30", "step": "0.5", "className": "", "iconPrepend": "", "iconAppend": "", "color": "", "colorTrack": "", "colorThumb": "", "x": 2890, "y": 1320, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "0162f458d02a06ca", "type": "link in", "z": "80f2ffd4953c67e9", "g": "272756073495f0a8", "name": "thermostat - compute cool request", "links": [], "x": 1015, "y": 2520, "wires": [ [ "736b4f85b471f119" ] ] }, { "id": "736b4f85b471f119", "type": "function", "z": "80f2ffd4953c67e9", "g": "272756073495f0a8", "name": "thermostat compute cool request", "func": "// compute temperatures\nvar interieur = msg.th['indoor temperature'] - msg.th['temperature setpoint'] - 2;\nvar exterieur = (msg.th['outdoor temperature'] - msg.th['temperature setpoint']) *2;\nvar compute = interieur + exterieur;\ncompute = compute.toFixed(1);\n\nmsg.th.compute = compute;\n\n//var calcul = msg.th['outdoor temperature'] + msg.th['indoor temperature'] - 2 * msg.th['temperature setpoint'] - 5;\n//calcul = calcul.toFixed(1);\n//msg.th.compute = calcul;\n\nif (msg.th.compute > 0) {\n node.status({\n fill: \"blue\", shape: \"ring\", text: msg.th.bucket+' cool resquest at '+msg.th.compute\n });\n}\nif (msg.th.compute <= 0) {\n node.status({\n fill: \"green\", shape: \"ring\", text: msg.th.bucket+' at '+msg.th.compute\n });\n}\n\nreturn msg;", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1240, "y": 2520, "wires": [ [ "97694aa50cf4ce0e", "919dab1a8b106864" ] ] }, { "id": "97694aa50cf4ce0e", "type": "link out", "z": "80f2ffd4953c67e9", "g": "272756073495f0a8", "name": "thermostat - compute cool request", "mode": "return", "links": [], "x": 1455, "y": 2520, "wires": [] }, { "id": "0cac48ac1fa4efa4", "type": "change", "z": "80f2ffd4953c67e9", "g": "b3bc1717c16dc7dc", "name": "cool", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "cool", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2450, "y": 5880, "wires": [ [ "0728c8c3564e6e93" ] ] }, { "id": "3a23d8541c5bc71c", "type": "change", "z": "80f2ffd4953c67e9", "g": "0af18fd6cc155518", "name": "cold", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "th['cold setpoint']", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 690, "y": 3240, "wires": [ [ "70c27df7cb0add1d" ] ] }, { "id": "5409904037bf4a62", "type": "link call", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "", "links": [ "0162f458d02a06ca" ], "linkType": "static", "timeout": "30", "x": 1080, "y": 2820, "wires": [ [ "1ed6b5ff63020d07" ] ] }, { "id": "7d5ba4790bc3a720", "type": "switch", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "check temperature setpoint", "property": "th['temperature setpoint']", "propertyType": "msg", "rules": [ { "t": "gte", "v": "19", "vt": "num" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 760, "y": 2880, "wires": [ [ "5409904037bf4a62" ], [ "e13e76f216b98c22" ] ] }, { "id": "92e341f726c9c5ac", "type": "switch", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "check operating mode", "property": "th['operating mode']", "propertyType": "msg", "rules": [ { "t": "eq", "v": "cool", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 480, "y": 2880, "wires": [ [ "7d5ba4790bc3a720" ], [ "d75bdce71118a56f" ] ] }, { "id": "e13e76f216b98c22", "type": "change", "z": "80f2ffd4953c67e9", "g": "467ec12f292b2573", "name": "force compute to -1", "rules": [ { "t": "set", "p": "th['compute']", "pt": "msg", "to": "-1", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1030, "y": 2880, "wires": [ [ "1ed6b5ff63020d07" ] ] }, { "id": "2b1ba57fb5c945df", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "cool operating mode", "property": "th['operating mode']", "propertyType": "msg", "rules": [ { "t": "eq", "v": "cool", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 1440, "y": 5280, "wires": [ [ "30460d81f866f13d" ], [ "abef8f252aedce0a" ] ] }, { "id": "632ae6a86b8d4095", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "aperture 1", "rules": [ { "t": "set", "p": "tmp", "pt": "msg", "to": "th['aperture 1']", "tot": "msg" }, { "t": "set", "p": "tmp", "pt": "msg", "to": "msg.tmp!=\"\"?msg.tmp:'a/a/a'", "tot": "jsonata" }, { "t": "set", "p": "spl", "pt": "msg", "to": "$split(msg.tmp,'/')", "tot": "jsonata" }, { "t": "set", "p": "apertures[msg.tmp]", "pt": "msg", "to": "metrics[msg.spl[0]][msg.spl[1]][msg.spl[2]]", "tot": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 450, "y": 5280, "wires": [ [ "cff0bca6c0bb1782" ] ] }, { "id": "618c0cd766442117", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "aperture", "rules": [ { "t": "set", "p": "apertures[msg.path]", "pt": "msg", "to": "trigger_payload", "tot": "msg" }, { "t": "set", "p": "#:(onMemory)::aperture[msg.th.bucket]", "pt": "flow", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 840, "y": 5280, "wires": [ [ "c422635e69d1eaf7" ] ] }, { "id": "c422635e69d1eaf7", "type": "split", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "apertures", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "aperture_path", "property": "apertures", "x": 1020, "y": 5280, "wires": [ [ "dba3af356708ccb7" ] ] }, { "id": "092568ca52a77671", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "payload", "property": "apertures", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 1400, "y": 5340, "wires": [ [ "9a561c9f4fd75edb" ], [ "abef8f252aedce0a" ] ] }, { "id": "9a561c9f4fd75edb", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "true", "rules": [ { "t": "set", "p": "#:(onMemory)::aperture[msg.th.bucket]", "pt": "flow", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1910, "y": 5280, "wires": [ [ "abef8f252aedce0a" ] ] }, { "id": "abef8f252aedce0a", "type": "join", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "", "mode": "auto", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "useparts": false, "accumulate": true, "timeout": "", "count": "", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 2070, "y": 5340, "wires": [ [ "86cb7c12e7bccf56" ] ] }, { "id": "cff0bca6c0bb1782", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "aperture 2", "rules": [ { "t": "set", "p": "tmp", "pt": "msg", "to": "th['aperture 2']", "tot": "msg" }, { "t": "set", "p": "tmp", "pt": "msg", "to": "msg.tmp!=\"\"?msg.tmp:'a/a/a'", "tot": "jsonata" }, { "t": "set", "p": "spl", "pt": "msg", "to": "$split(msg.tmp,'/')", "tot": "jsonata" }, { "t": "set", "p": "apertures[msg.tmp]", "pt": "msg", "to": "metrics[msg.spl[0]][msg.spl[1]][msg.spl[2]]", "tot": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 5280, "wires": [ [ "c86253a53e062d16" ] ] }, { "id": "c86253a53e062d16", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "aperture 3", "rules": [ { "t": "set", "p": "tmp", "pt": "msg", "to": "th['aperture 3']", "tot": "msg" }, { "t": "set", "p": "tmp", "pt": "msg", "to": "msg.tmp!=\"\"?msg.tmp:'a/a/a'", "tot": "jsonata" }, { "t": "set", "p": "spl", "pt": "msg", "to": "$split(msg.tmp,'/')", "tot": "jsonata" }, { "t": "set", "p": "apertures[msg.tmp]", "pt": "msg", "to": "metrics[msg.spl[0]][msg.spl[1]][msg.spl[2]]", "tot": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 530, "y": 5280, "wires": [ [ "b315363385257040" ] ] }, { "id": "b315363385257040", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "aperture 4", "rules": [ { "t": "set", "p": "tmp", "pt": "msg", "to": "th['aperture 4']", "tot": "msg" }, { "t": "set", "p": "tmp", "pt": "msg", "to": "msg.tmp!=\"\"?msg.tmp:'a/a/a'", "tot": "jsonata" }, { "t": "set", "p": "spl", "pt": "msg", "to": "$split(msg.tmp,'/')", "tot": "jsonata" }, { "t": "set", "p": "apertures[msg.tmp]", "pt": "msg", "to": "metrics[msg.spl[0]][msg.spl[1]][msg.spl[2]]", "tot": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 570, "y": 5280, "wires": [ [ "8d466808ce870af4" ] ] }, { "id": "8d466808ce870af4", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "aperture 5", "rules": [ { "t": "set", "p": "tmp", "pt": "msg", "to": "th['aperture 5']", "tot": "msg" }, { "t": "set", "p": "tmp", "pt": "msg", "to": "msg.tmp!=\"\"?msg.tmp:'a/a/a'", "tot": "jsonata" }, { "t": "set", "p": "spl", "pt": "msg", "to": "$split(msg.tmp,'/')", "tot": "jsonata" }, { "t": "set", "p": "apertures[msg.tmp]", "pt": "msg", "to": "metrics[msg.spl[0]][msg.spl[1]][msg.spl[2]]", "tot": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 610, "y": 5280, "wires": [ [ "3c2f8f4f7cff096c" ] ] }, { "id": "dba3af356708ccb7", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "production", "property": "aperture_path", "propertyType": "msg", "rules": [ { "t": "regex", "v": "production power", "vt": "str", "case": false }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 1210, "y": 5280, "wires": [ [ "2b1ba57fb5c945df" ], [ "092568ca52a77671" ] ] }, { "id": "3c2f8f4f7cff096c", "type": "change", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "aperture 6", "rules": [ { "t": "set", "p": "tmp", "pt": "msg", "to": "th['aperture 6']", "tot": "msg" }, { "t": "set", "p": "tmp", "pt": "msg", "to": "msg.tmp!=\"\"?msg.tmp:'a/a/a'", "tot": "jsonata" }, { "t": "set", "p": "spl", "pt": "msg", "to": "$split(msg.tmp,'/')", "tot": "jsonata" }, { "t": "set", "p": "apertures[msg.tmp]", "pt": "msg", "to": "metrics[msg.spl[0]][msg.spl[1]][msg.spl[2]]", "tot": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 650, "y": 5280, "wires": [ [ "618c0cd766442117" ] ] }, { "id": "ae60f951124d5757", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / aperture 6 / text / ", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "aperture 6", "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": 1800, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "b74bf0ca5e271336", "type": "ui-dropdown", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "aperture 6", "label": "Ouverture 6 :", "tooltip": "", "order": 37, "width": "6", "height": "1", "passthru": false, "multiple": false, "chips": false, "clearable": false, "options": [ { "label": "non assigné", "value": "", "type": "str" } ], "payload": "", "topic": "aperture 6", "topicType": "str", "className": "", "typeIsComboBox": true, "x": 2890, "y": 2100, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "e0613fa53ec99a7d", "type": "split", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "field", "property": "payload", "x": 4690, "y": 300, "wires": [ [ "b0670866409f1f18" ] ] }, { "id": "b0670866409f1f18", "type": "switch", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "field", "property": "field", "propertyType": "msg", "rules": [ { "t": "eq", "v": "production power", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 4850, "y": 300, "wires": [ [ "ad09f7f6ad1acedd" ], [ "f80f5a53d9b07000" ] ] }, { "id": "30460d81f866f13d", "type": "switch", "z": "80f2ffd4953c67e9", "g": "8ecd405cd0a1e5ac", "name": "production > offloading", "property": "th['offloading power']", "propertyType": "msg", "rules": [ { "t": "gt", "v": "apertures", "vt": "msg" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 1700, "y": 5220, "wires": [ [ "9a561c9f4fd75edb" ], [ "abef8f252aedce0a" ] ] }, { "id": "a21d727b6d73b7f1", "type": "comment", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "set \"cold setpoint\" to 18 to disable it", "info": "", "x": 260, "y": 480, "wires": [] }, { "id": "919dab1a8b106864", "type": "debug", "z": "80f2ffd4953c67e9", "g": "272756073495f0a8", "name": "thermostat - compute cold request", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1580, "y": 2460, "wires": [] }, { "id": "9f5320eaa60df7cf", "type": "debug", "z": "80f2ffd4953c67e9", "g": "7e9cff1699c061ec", "name": "thermostat - compute heat request", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 700, "y": 2460, "wires": [] }, { "id": "4146df2b9fa3a8cd", "type": "link in", "z": "80f2ffd4953c67e9", "g": "3c533bc3592e06b9", "name": "thermostat - trigger - input", "links": [ "031a6afd8300356a" ], "x": 135, "y": 4740, "wires": [ [ "cb4e055ec23ccd1c" ] ] }, { "id": "cb4e055ec23ccd1c", "type": "change", "z": "80f2ffd4953c67e9", "g": "3c533bc3592e06b9", "name": "load global metrics", "rules": [ { "t": "set", "p": "trigger_payload", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "metrics", "tot": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 310, "y": 4740, "wires": [ [ "e3b571afbf1bcf4f" ] ] }, { "id": "6b4c87d53563c36d", "type": "link out", "z": "80f2ffd4953c67e9", "g": "3c533bc3592e06b9", "name": "thermostat - trigger - input", "mode": "link", "links": [ "8bbf52c2a83e09ea", "3099e4a17fd21410", "7837b5fcc1432bfa", "079470627ad50e8f", "5c2ee7a9a0b1a4f4" ], "x": 1375, "y": 4740, "wires": [] }, { "id": "e3b571afbf1bcf4f", "type": "split", "z": "80f2ffd4953c67e9", "g": "3c533bc3592e06b9", "name": "split by buckets", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "metric_bucket", "property": "payload", "x": 540, "y": 4740, "wires": [ [ "2b3708a60ff31dac" ] ] }, { "id": "2b3708a60ff31dac", "type": "split", "z": "80f2ffd4953c67e9", "g": "3c533bc3592e06b9", "name": "split by measurements", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "metric_measurement", "property": "payload", "x": 780, "y": 4740, "wires": [ [ "4ffd7369035e168f" ] ] }, { "id": "4ffd7369035e168f", "type": "switch", "z": "80f2ffd4953c67e9", "g": "3c533bc3592e06b9", "name": "is thermostat", "property": "metric_measurement", "propertyType": "msg", "rules": [ { "t": "eq", "v": "thermostat", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 1010, "y": 4740, "wires": [ [ "5336228b64d336af" ] ] }, { "id": "5336228b64d336af", "type": "change", "z": "80f2ffd4953c67e9", "g": "3c533bc3592e06b9", "name": "load thermostat", "rules": [ { "t": "set", "p": "th", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "th.bucket", "pt": "msg", "to": "metric_bucket", "tot": "msg" }, { "t": "set", "p": "th.measurement", "pt": "msg", "to": "metric_measurement", "tot": "msg" }, { "t": "delete", "p": "metric_bucket", "pt": "msg" }, { "t": "delete", "p": "metric_measurement", "pt": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1220, "y": 4740, "wires": [ [ "6b4c87d53563c36d", "a118873a4609acd7" ] ] }, { "id": "7a77ef69ce9e0f32", "type": "change", "z": "80f2ffd4953c67e9", "g": "f987d89b8997cf8d", "name": "set metric", "rules": [ { "t": "set", "p": "bucket", "pt": "msg", "to": "th.bucket", "tot": "msg" }, { "t": "set", "p": "measurement", "pt": "msg", "to": "th.measurement", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "trigger_payload", "tot": "msg" }, { "t": "set", "p": "repeat", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 280, "y": 5700, "wires": [ [ "12d940e60360ef46", "fb119d97ea6bb137" ] ] }, { "id": "63f9a6d8c925d3d3", "type": "link in", "z": "80f2ffd4953c67e9", "g": "f987d89b8997cf8d", "name": "thermostat - trigger - output", "links": [ "6fbdfc1ab44f9754", "d09ad27d05d54698", "6632e88ee0633e4c", "5bf92e5b12ab168c", "b3f3ee85862b09ef" ], "x": 135, "y": 5700, "wires": [ [ "7a77ef69ce9e0f32" ] ] }, { "id": "12d940e60360ef46", "type": "link out", "z": "80f2ffd4953c67e9", "g": "f987d89b8997cf8d", "name": "thermostat - trigger - output", "mode": "link", "links": [ "206c1fb4a48067df" ], "x": 415, "y": 5700, "wires": [] }, { "id": "fb119d97ea6bb137", "type": "debug", "z": "80f2ffd4953c67e9", "g": "f987d89b8997cf8d", "name": "thermostat - trigger - output", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 520, "y": 5640, "wires": [] }, { "id": "b7a2b83163ce711a", "type": "switch", "z": "80f2ffd4953c67e9", "g": "e653f3ec3dc88a8f", "name": "check bucket", "property": "th.bucket", "propertyType": "msg", "rules": [ { "t": "eq", "v": "bucket", "vt": "msg" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 290, "y": 4920, "wires": [ [ "4c169fc26f833802" ] ] }, { "id": "a118873a4609acd7", "type": "debug", "z": "80f2ffd4953c67e9", "g": "3c533bc3592e06b9", "name": "thermostat - trigger - input", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1470, "y": 4680, "wires": [] }, { "id": "155125df6f9f4c8f", "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": 5520, "wires": [ [ "381cef91081d78b4" ] ] }, { "id": "e34e8e0cc31ce986", "type": "change", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "stack offloading count", "rules": [ { "t": "set", "p": "sort_count", "pt": "msg", "to": "th['offloading count']", "tot": "msg" }, { "t": "set", "p": "sort_bucket", "pt": "msg", "to": "th.bucket", "tot": "msg" }, { "t": "set", "p": "#:(onMemory)::sort[msg.parts.parts.index]", "pt": "flow", "to": "{\t \"bucket\":msg.sort_bucket,\t \"nb\":msg.sort_count,\t 'th':msg.th\t }", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1120, "y": 5520, "wires": [ [ "997102eb65c0f5a6" ] ] }, { "id": "997102eb65c0f5a6", "type": "trigger", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "", "op1": "", "op2": "", "op1type": "nul", "op2type": "payl", "duration": "100", "extend": true, "overrideDelay": false, "units": "ms", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 1, "x": 1370, "y": 5520, "wires": [ [ "88a5a0ac352fc41d" ] ] }, { "id": "88a5a0ac352fc41d", "type": "change", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "sort offloading count", "rules": [ { "t": "set", "p": "sort", "pt": "msg", "to": "#:(onMemory)::sort", "tot": "flow" }, { "t": "set", "p": "payload", "pt": "msg", "to": "$sort(msg.sort, function($l, $r) {\t $l.nb > $r.nb\t})", "tot": "jsonata" }, { "t": "set", "p": "#:(onMemory)::offloading", "pt": "flow", "to": "0", "tot": "num" }, { "t": "set", "p": "#:(onMemory)::sort", "pt": "flow", "to": "[]", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1620, "y": 5520, "wires": [ [ "3dcb3769e00444e7" ] ] }, { "id": "3dcb3769e00444e7", "type": "split", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "", "property": "payload", "x": 1830, "y": 5520, "wires": [ [ "8a2948a62f550e2b" ] ] }, { "id": "436d4c01221aac9b", "type": "delay", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "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": 2170, "y": 5520, "wires": [ [ "c17018592ee074bc" ] ] }, { "id": "c17018592ee074bc", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "limit", "property": "#:(onMemory)::offloading", "propertyType": "flow", "rules": [ { "t": "lt", "v": "2", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 2330, "y": 5520, "wires": [ [ "620e2650e654d9f6" ] ] }, { "id": "620e2650e654d9f6", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "state offloading", "property": "payload.th.offloading", "propertyType": "msg", "rules": [ { "t": "false" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 2520, "y": 5520, "wires": [ [ "26ba5f96ea39ad61" ] ] }, { "id": "26ba5f96ea39ad61", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "state pilot", "property": "payload.th.pilot", "propertyType": "msg", "rules": [ { "t": "true" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 2720, "y": 5520, "wires": [ [ "5e7a96ca03ea3041" ] ] }, { "id": "5e7a96ca03ea3041", "type": "change", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "set field", "rules": [ { "t": "set", "p": "th", "pt": "msg", "to": "payload.th", "tot": "msg" }, { "t": "set", "p": "field", "pt": "msg", "to": "offloading", "tot": "str" }, { "t": "set", "p": "trigger_payload", "pt": "msg", "to": "true", "tot": "bool" }, { "t": "set", "p": "tmp", "pt": "msg", "to": "#:(onMemory)::offloading", "tot": "flow" }, { "t": "set", "p": "#:(onMemory)::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": 2900, "y": 5520, "wires": [ [ "fbe02bdff670f4bd", "5bf92e5b12ab168c" ] ] }, { "id": "079470627ad50e8f", "type": "link in", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "thermostat - update - offloading", "links": [ "6b4c87d53563c36d" ], "x": 135, "y": 5520, "wires": [ [ "155125df6f9f4c8f" ] ] }, { "id": "fbe02bdff670f4bd", "type": "debug", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "thermostat - trigger - offloading", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 3150, "y": 5460, "wires": [] }, { "id": "381cef91081d78b4", "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": 5520, "wires": [ [ "14218375ec9530c1" ] ] }, { "id": "14218375ec9530c1", "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": 5520, "wires": [ [ "6e4177612c29fa84" ] ] }, { "id": "6e4177612c29fa84", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "mode offloading", "property": "metrics.system.mode.offloading", "propertyType": "global", "rules": [ { "t": "eq", "v": "offloaded", "vt": "str" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 880, "y": 5520, "wires": [ [ "e34e8e0cc31ce986" ] ] }, { "id": "8a2948a62f550e2b", "type": "switch", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "not empty", "property": "payload", "propertyType": "msg", "rules": [ { "t": "nempty" } ], "checkall": "false", "repair": false, "outputs": 1, "x": 2000, "y": 5520, "wires": [ [ "436d4c01221aac9b" ] ] }, { "id": "5bf92e5b12ab168c", "type": "link out", "z": "80f2ffd4953c67e9", "g": "6f1f772c23d57e24", "name": "thermostat - update - offloading", "mode": "link", "links": [ "63f9a6d8c925d3d3" ], "x": 3035, "y": 5520, "wires": [] }, { "id": "ea1b7dbf3573fd5e", "type": "debug", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "ui - thermostat - apertures", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 6470, "y": 360, "wires": [] }, { "id": "f8705fb32062a93f", "type": "rbe", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "", "func": "rbe", "gap": "", "start": "", "inout": "out", "septopics": false, "property": "bucket", "topi": "topic", "x": 1730, "y": 300, "wires": [ [ "3a1f2c63baddb5b7" ] ] }, { "id": "7421f25ff88e96ea", "type": "link in", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "thermostat - ui - apertures", "links": [], "x": 3415, "y": 420, "wires": [ [ "e770267366a41538" ] ] }, { "id": "1e23b9043692efc9", "type": "link out", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "thermostat - ui - apertures", "mode": "return", "links": [], "x": 6375, "y": 420, "wires": [] }, { "id": "ed6edb1e6f6e0603", "type": "join", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "", "mode": "auto", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "useparts": false, "accumulate": "false", "timeout": "", "count": "", "reduceRight": false, "x": 5890, "y": 360, "wires": [ [ "2d0116a7f0e5267e" ] ] }, { "id": "c1311d74af614a6b", "type": "join", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "", "mode": "auto", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "useparts": false, "accumulate": "false", "timeout": "", "count": "", "reduceRight": false, "x": 5730, "y": 360, "wires": [ [ "ed6edb1e6f6e0603" ] ] }, { "id": "c5b1171ac4cfb2fa", "type": "change", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "options", "rules": [ { "t": "set", "p": "options", "pt": "msg", "to": "#:(onMemory)::thermostat.apertures", "tot": "flow" }, { "t": "set", "p": "options", "pt": "msg", "to": "$sort(msg.options, function($l, $r) {\t $l[0].label > $r[0].label\t})", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 6240, "y": 420, "wires": [ [ "1e23b9043692efc9", "ea1b7dbf3573fd5e" ] ] }, { "id": "3afbcb94c2dd9a98", "type": "link call", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "", "links": [ "7421f25ff88e96ea" ], "linkType": "static", "timeout": "30", "x": 2130, "y": 1800, "wires": [ [ "93e874f6e4a1f87a" ] ] }, { "id": "5058697599c00bfb", "type": "link call", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "", "links": [ "7421f25ff88e96ea" ], "linkType": "static", "timeout": "30", "x": 2130, "y": 1860, "wires": [ [ "3d40410e159beaab" ] ] }, { "id": "788641b627884830", "type": "link call", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "", "links": [ "7421f25ff88e96ea" ], "linkType": "static", "timeout": "30", "x": 2130, "y": 1920, "wires": [ [ "4565730f04bd7072" ] ] }, { "id": "2a09806bd2dd8204", "type": "link call", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "", "links": [ "7421f25ff88e96ea" ], "linkType": "static", "timeout": "30", "x": 2130, "y": 1980, "wires": [ [ "79764253e9e92fda" ] ] }, { "id": "2daacd754d59567f", "type": "link call", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "", "links": [ "7421f25ff88e96ea" ], "linkType": "static", "timeout": "30", "x": 2130, "y": 2040, "wires": [ [ "4ad97596d0efa64b" ] ] }, { "id": "2f53d6a12a1b9648", "type": "link call", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "", "links": [ "7421f25ff88e96ea" ], "linkType": "static", "timeout": "30", "x": 2130, "y": 2100, "wires": [ [ "b74bf0ca5e271336" ] ] }, { "id": "f80f5a53d9b07000", "type": "join", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "", "mode": "auto", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "useparts": false, "accumulate": "false", "timeout": "", "count": "", "reduceRight": false, "x": 5570, "y": 300, "wires": [ [ "c1311d74af614a6b" ] ] }, { "id": "2d0116a7f0e5267e", "type": "change", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "payload", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "old_payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 6060, "y": 360, "wires": [ [ "c5b1171ac4cfb2fa" ] ] }, { "id": "47121b9ebadde960", "type": "switch", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "done", "property": "#:(onMemory)::thermostat", "propertyType": "flow", "rules": [ { "t": "hask", "v": "apertures", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 3710, "y": 420, "wires": [ [ "c5b1171ac4cfb2fa" ], [ "0711217590341f99" ] ] }, { "id": "e770267366a41538", "type": "delay", "z": "80f2ffd4953c67e9", "g": "eafad08e39c60266", "name": "1 / s", "pauseType": "rate", "timeout": "2", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 3550, "y": 420, "wires": [ [ "47121b9ebadde960" ] ] }, { "id": "f97b5115e1d99d4b", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / outdoor 1 / text / ", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "outdoor 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": 720, "y": 1860, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "08830b1bec822cd0", "type": "change", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "thermostat / outdoor 2 / text / ", "rules": [ { "t": "set", "p": "field", "pt": "msg", "to": "outdoor 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": 720, "y": 1920, "wires": [ [ "1707bc7a4bb0daa5" ] ] }, { "id": "38b3de42eccb63ea", "type": "ui-dropdown", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "outdoor 1", "label": "Temperature exterieur 1 :", "tooltip": "", "order": 38, "width": "6", "height": "1", "passthru": false, "multiple": false, "chips": false, "clearable": false, "options": [ { "label": "non assigné", "value": "", "type": "str" } ], "payload": "", "topic": "outdoor 1", "topicType": "str", "className": "", "typeIsComboBox": true, "x": 2880, "y": 2160, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "cd64045ae78319dc", "type": "ui-dropdown", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "group": "28836135eb153545", "name": "outdoor 2", "label": "Temperature exterieur 2 :", "tooltip": "", "order": 39, "width": "6", "height": "1", "passthru": false, "multiple": false, "chips": false, "clearable": false, "options": [ { "label": "non assigné", "value": "", "type": "str" } ], "payload": "", "topic": "outdoor 2", "topicType": "str", "className": "", "typeIsComboBox": true, "x": 2880, "y": 2220, "wires": [ [ "37aa96c6d80d8ade" ] ] }, { "id": "99820dc85872f042", "type": "debug", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "ui - thermostat - outdoors", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 6310, "y": 660, "wires": [] }, { "id": "e22365b6f5faa937", "type": "change", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "from global", "rules": [ { "t": "set", "p": "old_payload", "pt": "msg", "to": "payload", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "metrics", "tot": "global" }, { "t": "set", "p": "#:(onMemory)::thermostat.outdoors", "pt": "flow", "to": "[]", "tot": "jsonata" }, { "t": "set", "p": "#:(onMemory)::thermostat.outdoors[0]", "pt": "flow", "to": "{\t 'label': 'non assigné',\t 'value': ''\t}", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 3890, "y": 660, "wires": [ [ "d2068bbda5e20f86" ] ] }, { "id": "d2068bbda5e20f86", "type": "split", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "buckets", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "bucket", "property": "payload", "x": 4080, "y": 660, "wires": [ [ "7b0cbcf02bc8dd7e" ] ] }, { "id": "7b0cbcf02bc8dd7e", "type": "split", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "measurements", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "measurement", "property": "payload", "x": 4280, "y": 660, "wires": [ [ "61a21c746c904524" ] ] }, { "id": "61a21c746c904524", "type": "switch", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "measurement", "property": "measurement", "propertyType": "msg", "rules": [ { "t": "eq", "v": "temperature", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 4500, "y": 660, "wires": [ [ "b5a2ecd26dffba3a" ], [ "354a444bcb3837e0" ] ] }, { "id": "b5a2ecd26dffba3a", "type": "split", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "", "splt": "\\n", "spltType": "str", "arraySplt": 1, "arraySpltType": "len", "stream": false, "addname": "field", "property": "payload", "x": 4690, "y": 600, "wires": [ [ "64580efef0e57642" ] ] }, { "id": "67d347fd47288266", "type": "change", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "add", "rules": [ { "t": "set", "p": "metric", "pt": "msg", "to": "$substring(msg.metric,1)", "tot": "jsonata" }, { "t": "set", "p": "options", "pt": "msg", "to": "#:(onMemory)::thermostat.outdoors", "tot": "flow" }, { "t": "set", "p": "count", "pt": "msg", "to": "$count(msg.options)-1", "tot": "jsonata" }, { "t": "set", "p": "count", "pt": "msg", "to": "msg.count+1", "tot": "jsonata" }, { "t": "set", "p": "options[msg.count]", "pt": "msg", "to": "{\t 'label': msg.trans.path,\t 'value': msg.metric\t}", "tot": "jsonata" }, { "t": "set", "p": "#:(onMemory)::thermostat.outdoors", "pt": "flow", "to": "options", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 5250, "y": 600, "wires": [ [ "ad6b3250a3541a1f" ] ] }, { "id": "64580efef0e57642", "type": "change", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "metric", "rules": [ { "t": "set", "p": "metric", "pt": "msg", "to": "'/'&msg.bucket&'/'&msg.measurement&'/'&msg.field", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 4850, "y": 600, "wires": [ [ "aee1a18c7263ba86" ] ] }, { "id": "aee1a18c7263ba86", "type": "link call", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "", "links": [ "025e219749a67439" ], "linkType": "static", "timeout": "30", "x": 5050, "y": 600, "wires": [ [ "67d347fd47288266" ] ] }, { "id": "b0ad0b1193226130", "type": "link in", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "thermostat - ui - outdoors", "links": [], "x": 3415, "y": 720, "wires": [ [ "713df21fb71f138b" ] ] }, { "id": "00f707d1661e4bef", "type": "link out", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "thermostat - ui - outdoors", "mode": "return", "links": [], "x": 6215, "y": 720, "wires": [] }, { "id": "127c961637b6310d", "type": "join", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "", "mode": "auto", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "useparts": false, "accumulate": "false", "timeout": "", "count": "", "reduceRight": false, "x": 5730, "y": 660, "wires": [ [ "3dda93172bdc65d7" ] ] }, { "id": "354a444bcb3837e0", "type": "join", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "", "mode": "auto", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "useparts": false, "accumulate": "false", "timeout": "", "count": "", "reduceRight": false, "x": 5570, "y": 660, "wires": [ [ "127c961637b6310d" ] ] }, { "id": "3da0bd1cf66878da", "type": "change", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "options", "rules": [ { "t": "set", "p": "options", "pt": "msg", "to": "#:(onMemory)::thermostat.outdoors", "tot": "flow" }, { "t": "set", "p": "options", "pt": "msg", "to": "$sort(msg.options, function($l, $r) {\t $l[0].label > $r[0].label\t})", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 6080, "y": 720, "wires": [ [ "00f707d1661e4bef", "99820dc85872f042" ] ] }, { "id": "ad6b3250a3541a1f", "type": "join", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "", "mode": "auto", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "useparts": false, "accumulate": "false", "timeout": "", "count": "", "reduceRight": false, "x": 5410, "y": 600, "wires": [ [ "354a444bcb3837e0" ] ] }, { "id": "3dda93172bdc65d7", "type": "change", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "payload", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "old_payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 5900, "y": 660, "wires": [ [ "3da0bd1cf66878da" ] ] }, { "id": "b3e1001ef74f47b3", "type": "switch", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "done", "property": "#:(onMemory)::thermostat", "propertyType": "flow", "rules": [ { "t": "hask", "v": "outdoors", "vt": "str" }, { "t": "else" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 3710, "y": 720, "wires": [ [ "3da0bd1cf66878da" ], [ "e22365b6f5faa937" ] ] }, { "id": "713df21fb71f138b", "type": "delay", "z": "80f2ffd4953c67e9", "g": "f4f5c470dc44c769", "name": "1 / s", "pauseType": "rate", "timeout": "2", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "allowrate": false, "outputs": 1, "x": 3550, "y": 720, "wires": [ [ "b3e1001ef74f47b3" ] ] }, { "id": "74b33297e4369aee", "type": "link call", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "", "links": [ "b0ad0b1193226130" ], "linkType": "static", "timeout": "30", "x": 2130, "y": 2160, "wires": [ [ "38b3de42eccb63ea" ] ] }, { "id": "a3a5880c2003c6cd", "type": "link call", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "", "links": [ "b0ad0b1193226130" ], "linkType": "static", "timeout": "30", "x": 2130, "y": 2220, "wires": [ [ "cd64045ae78319dc" ] ] }, { "id": "5c2ee7a9a0b1a4f4", "type": "link in", "z": "80f2ffd4953c67e9", "g": "57656fc40a9ba454", "name": "thermostat - update - outdoor temperature", "links": [ "6b4c87d53563c36d" ], "x": 135, "y": 5100, "wires": [ [ "60f65b4b5f4c2cc4" ] ] }, { "id": "60f65b4b5f4c2cc4", "type": "switch", "z": "80f2ffd4953c67e9", "g": "57656fc40a9ba454", "name": "trigger", "property": "path", "propertyType": "msg", "rules": [ { "t": "eq", "v": "th['outdoor 1']", "vt": "msg" }, { "t": "eq", "v": "th['outdoor 2']", "vt": "msg" } ], "checkall": "false", "repair": false, "outputs": 2, "x": 270, "y": 5100, "wires": [ [ "f425887de67cad57" ], [ "f425887de67cad57" ] ] }, { "id": "f425887de67cad57", "type": "change", "z": "80f2ffd4953c67e9", "g": "57656fc40a9ba454", "name": "temperature 1", "rules": [ { "t": "set", "p": "temperatures", "pt": "msg", "to": "[]", "tot": "jsonata" }, { "t": "set", "p": "tmp", "pt": "msg", "to": "th['outdoor 1']", "tot": "msg" }, { "t": "set", "p": "tmp", "pt": "msg", "to": "msg.tmp!=\"\"?msg.tmp:'a/a/a'", "tot": "jsonata" }, { "t": "set", "p": "spl", "pt": "msg", "to": "$split(msg.tmp,'/')", "tot": "jsonata" }, { "t": "set", "p": "temperatures[0]", "pt": "msg", "to": "metrics[msg.spl[0]][msg.spl[1]][msg.spl[2]]", "tot": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 460, "y": 5100, "wires": [ [ "7a3b533f0e9d934a" ] ] }, { "id": "7a3b533f0e9d934a", "type": "change", "z": "80f2ffd4953c67e9", "g": "57656fc40a9ba454", "name": "temperature 2", "rules": [ { "t": "set", "p": "tmp", "pt": "msg", "to": "th['outdoor 2']", "tot": "msg" }, { "t": "set", "p": "tmp", "pt": "msg", "to": "msg.tmp!=\"\"?msg.tmp:'a/a/a'", "tot": "jsonata" }, { "t": "set", "p": "spl", "pt": "msg", "to": "$split(msg.tmp,'/')", "tot": "jsonata" }, { "t": "set", "p": "temperatures[1]", "pt": "msg", "to": "metrics[msg.spl[0]][msg.spl[1]][msg.spl[2]]", "tot": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 500, "y": 5100, "wires": [ [ "33151ec7b379db49" ] ] }, { "id": "33151ec7b379db49", "type": "function", "z": "80f2ffd4953c67e9", "g": "57656fc40a9ba454", "name": "compute temperatures", "func": "var msg = msg;\nvar temperature = 0;\n\nif (typeof msg.temperatures[1] !== 'undefined') {\n temperature = msg.temperatures[1];\n}\nif (typeof msg.temperatures[0] !== 'undefined') {\n temperature = msg.temperatures[0];\n}\nif (typeof msg.temperatures[0] !== 'undefined' && typeof msg.temperatures[1] !== 'undefined') {\n temperature = (msg.temperatures[0] + msg.temperatures[1]) / 2;\n}\n\ntemperature = temperature.toFixed(1);\nmsg.trigger_payload = temperature;\nmsg.field = 'outdoor temperature';\n\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 740, "y": 5100, "wires": [ [ "b3f3ee85862b09ef", "5f67fdb103a398c8" ] ] }, { "id": "b3f3ee85862b09ef", "type": "link out", "z": "80f2ffd4953c67e9", "g": "57656fc40a9ba454", "name": "thermostat - update - outdoor temperature", "mode": "link", "links": [ "63f9a6d8c925d3d3" ], "x": 915, "y": 5100, "wires": [] }, { "id": "5f67fdb103a398c8", "type": "debug", "z": "80f2ffd4953c67e9", "g": "57656fc40a9ba454", "name": "thermostat - trigger - outdoor temperature", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 1060, "y": 5040, "wires": [] }, { "id": "8f479a7a6d5419a5", "type": "comment", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "set a \"power production\" as aperture enable cold features", "info": "", "x": 330, "y": 1800, "wires": [] }, { "id": "14793d33b66432fd", "type": "comment", "z": "80f2ffd4953c67e9", "g": "e6edd4684b272434", "name": "one or more outdoor temperature probes must be set", "info": "", "x": 310, "y": 1860, "wires": [] }, { "id": "86a901b933d34c8a", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "group", "rules": [ { "t": "set", "p": "group", "pt": "msg", "to": "Thermostat", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2050, "y": 240, "wires": [ [ "d820170df2717cca" ] ] }, { "id": "d820170df2717cca", "type": "link out", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "room - ui - thermostat - control", "mode": "link", "links": [ "4afaf74fbb2e3c7f" ], "x": 2175, "y": 240, "wires": [] }, { "id": "3a1f2c63baddb5b7", "type": "change", "z": "80f2ffd4953c67e9", "g": "bb2ebd173a2ba06c", "name": "control", "rules": [ { "t": "set", "p": "control", "pt": "msg", "to": "show", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1890, "y": 300, "wires": [ [ "86a901b933d34c8a" ] ] } ]