iotredloop/flows/K.Thermostat.json
2024-04-30 00:28:34 +02:00

5836 lines
No EOL
107 KiB
JSON

[
{
"id": "80f2ffd4953c67e9",
"type": "tab",
"label": "K.Thermostat",
"disabled": false,
"info": "",
"env": []
},
{
"id": "f12560e95cd346d2",
"type": "group",
"z": "80f2ffd4953c67e9",
"name": "thermostat - bucket",
"style": {
"fill": "#ffC000",
"fill-opacity": "0.05",
"label": true,
"stroke": "#ffC000"
},
"nodes": [
"f0bd4b1ffe5da318",
"5c64177e3bbfd337",
"4f0f1c286cdfedcd"
],
"x": 94,
"y": 19,
"w": 342,
"h": 82
},
{
"id": "9e18b65b8d6e5bc3",
"type": "group",
"z": "80f2ffd4953c67e9",
"name": "thermostat - config",
"style": {
"fill": "#777777",
"fill-opacity": "0.05",
"label": true
},
"nodes": [
"91157899ceb2151b",
"19bd3df3be006a24"
],
"x": 68,
"y": 173,
"w": 1454,
"h": 254
},
{
"id": "dbf491fd689e7cd2",
"type": "group",
"z": "80f2ffd4953c67e9",
"name": "thermostat",
"style": {
"fill": "#777777",
"fill-opacity": "0.05",
"label": true
},
"nodes": [
"ccc78d495cbd8f7d",
"e57e9c900c787424",
"8206912d2f9bab36",
"0af18fd6cc155518",
"c311204f22191fa2",
"868902cdeaa428fe",
"467ec12f292b2573",
"6c4b12585b58300e"
],
"x": 78,
"y": 1973,
"w": 2204,
"h": 1874
},
{
"id": "7e9cff1699c061ec",
"type": "group",
"z": "80f2ffd4953c67e9",
"name": "thermostat - compute heat request",
"style": {
"stroke": "#92d04f",
"fill": "#92d04f",
"fill-opacity": "0.05",
"label": true
},
"nodes": [
"1452439e0c937126",
"15d8d0ba06961e4b",
"4b342483a51b0f93"
],
"x": 94,
"y": 1819,
"w": 522,
"h": 82
},
{
"id": "81842bf5581a2a3f",
"type": "group",
"z": "80f2ffd4953c67e9",
"name": "thermostat - device - partial (bucket must have other thermostat values)",
"style": {
"fill": "#ffC000",
"fill-opacity": "0.05",
"label": true,
"stroke": "#ffC000"
},
"nodes": [
"d8585174fdd6097c",
"a35aaf65004eeaac",
"f61fef9768da8558",
"5cbb323f0e362aed",
"3b8629192cde74db",
"82a9ec30d38dec10",
"9c5d6532a1c36bc4",
"804a2d1f3c05de7e",
"c170b43fcf7a5bc2",
"e1663eb05a273810",
"60a8b6c3b2e72ae2",
"d5cbc2f49e5bcf37",
"a0b0a47a4719edd4",
"11886766f827e1fd",
"9dc49d567806c040",
"db296997eb05a7e3",
"de88d060a6e9ab68",
"4209dce5b520e62e",
"2cda217228ab8a5f",
"7c192da441c0e46b",
"8d1ed0f3a77d2bb9",
"209e2b300932e1ce",
"c61e55af251c1588",
"c1d7285b5e0a4ef9",
"7f74332e39e8c3b6",
"ea4ed028bce71805",
"c22a1d18683ea7c0"
],
"x": 94,
"y": 499,
"w": 922,
"h": 1282
},
{
"id": "93075511ad056e6d",
"type": "group",
"z": "80f2ffd4953c67e9",
"name": "thermostat - update - outdoor temperature (customized to my needs)",
"style": {
"label": true,
"fill": "#92d04f",
"fill-opacity": "0.05"
},
"nodes": [
"8bbf52c2a83e09ea",
"0a9cb3219b03ca53",
"de7ea9b615e052e6",
"37844601d21c6184",
"e3dc3f877be31d77",
"6fbdfc1ab44f9754",
"85f9e2ad24cb8a5a"
],
"x": 94,
"y": 3919,
"w": 1102,
"h": 82
},
{
"id": "e653f3ec3dc88a8f",
"type": "group",
"z": "80f2ffd4953c67e9",
"name": "thermostat - update - indoor temperature",
"style": {
"fill": "#92d04f",
"fill-opacity": "0.05",
"label": true
},
"nodes": [
"3099e4a17fd21410",
"a2b07c98d61de126",
"d09ad27d05d54698",
"4c169fc26f833802",
"a21c6a2db7aeab09",
"c7d315d762524494",
"e2c388ba43ec89f0",
"9eb8cf78caf3141d",
"313fbd5fc01985a5",
"b7ffd39578f29c8b"
],
"x": 94,
"y": 4039,
"w": 1742,
"h": 82
},
{
"id": "6f1f772c23d57e24",
"type": "group",
"z": "80f2ffd4953c67e9",
"name": "thermostat - update - offloading",
"style": {
"fill": "#92d04f",
"fill-opacity": "0.05",
"label": true
},
"nodes": [
"5cb2a229a6fec1aa",
"1c4fbd9e3d313b43",
"2aaf95392a970167",
"e78638ee35b8c069",
"2cb92368cb319c65",
"1dd82f8d7e2ccd52",
"4b2f0c80863bf5e7",
"91ee9f04019a9999",
"53f044d01f2d18b2",
"2df7aa160cbf3a71",
"db3681610a5d90d9",
"7869c56dce3123ed",
"ea0c6cadf1d594c3",
"285a0091abda1f58",
"96e92d4bad3792d3",
"3de9c88ac7ce9a77",
"6e120320180e5cfd",
"d237415ac7c1b47b",
"808426e9258cd024"
],
"x": 94,
"y": 4159,
"w": 3582,
"h": 82
},
{
"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": 4279,
"w": 1752,
"h": 502
},
{
"id": "91157899ceb2151b",
"type": "group",
"z": "80f2ffd4953c67e9",
"g": "9e18b65b8d6e5bc3",
"name": "thermostat - config - device",
"style": {
"fill": "#ffC000",
"fill-opacity": "0.05",
"label": true
},
"nodes": [
"4aab252764e96897",
"2b5ebe5c93914bd9",
"ece815da9a3e1dab",
"f2fcc76292e4e686"
],
"x": 94,
"y": 199,
"w": 542,
"h": 142
},
{
"id": "19bd3df3be006a24",
"type": "group",
"z": "80f2ffd4953c67e9",
"g": "9e18b65b8d6e5bc3",
"name": "thermostat - config - ui",
"style": {
"fill": "#6f2fa0",
"fill-opacity": "0.05",
"label": true
},
"nodes": [
"11cf1061a2c539a1",
"884976027c7e86a2",
"6fad4103dfdc045f",
"52e9e7f197ba916f",
"7a0cd3a41aafad17",
"75b5d1f31a8fa165",
"c13917bf46188642",
"4f450cad246d50cf",
"51c7f61e5f0e55fb"
],
"x": 714,
"y": 199,
"w": 782,
"h": 202
},
{
"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": 104,
"y": 3379,
"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": 104,
"y": 3019,
"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": 104,
"y": 2779,
"w": 1632,
"h": 202
},
{
"id": "0af18fd6cc155518",
"type": "group",
"z": "80f2ffd4953c67e9",
"g": "dbf491fd689e7cd2",
"name": "thermostat - udpate - temperature setpoint",
"style": {
"label": true,
"fill": "#ff0000",
"fill-opacity": "0.05"
},
"nodes": [
"e7a80893daf9f5cd",
"85d6369076d887c9",
"1164fe72097e884c",
"0eb756ee244751a4",
"3a3af17d95ca520a",
"70c27df7cb0add1d",
"64754ad76b3561d6",
"f9fad454dec37bc7",
"55660ec49f882e13"
],
"x": 104,
"y": 2539,
"w": 1412,
"h": 202
},
{
"id": "c311204f22191fa2",
"type": "group",
"z": "80f2ffd4953c67e9",
"g": "dbf491fd689e7cd2",
"name": "thermostat - update - delayed aperture",
"style": {
"label": true,
"fill": "#ff0000",
"fill-opacity": "0.05"
},
"nodes": [
"f1240da189a60ba8",
"ecda411603ebcccf",
"f3eb2e8c09f67e89",
"f305bda7c25657e5",
"6a726c7db415e700",
"4658e2323b1a287a",
"37b31a14146e2a3f",
"92add418b3868c54",
"6893398018de38e9"
],
"x": 104,
"y": 2359,
"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": 104,
"y": 1999,
"w": 972,
"h": 142
},
{
"id": "467ec12f292b2573",
"type": "group",
"z": "80f2ffd4953c67e9",
"g": "dbf491fd689e7cd2",
"name": "thermostat - update - heat request",
"style": {
"label": true,
"fill": "#ff0000",
"fill-opacity": "0.05"
},
"nodes": [
"1ed6b5ff63020d07",
"69fda60f897db5fd",
"d75bdce71118a56f",
"5f6fd378f40e4c81",
"0fb59058d3aa9663",
"0998eafda2346961"
],
"x": 104,
"y": 2179,
"w": 1172,
"h": 157
},
{
"id": "6c4b12585b58300e",
"type": "group",
"z": "80f2ffd4953c67e9",
"g": "dbf491fd689e7cd2",
"name": "thermostat - metric - output",
"style": {
"label": true,
"fill": "#ff0000",
"fill-opacity": "0.05"
},
"nodes": [
"a091b2e84a4e89e6",
"34e6817c2f435667",
"9ba0a97276e93540",
"147aa94543fa77cb"
],
"x": 104,
"y": 3679,
"w": 592,
"h": 142
},
{
"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": "f0bd4b1ffe5da318",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "f12560e95cd346d2",
"name": "bucket",
"rules": [
{
"t": "set",
"p": "bucket",
"pt": "msg",
"to": "thermostat",
"tot": "str"
},
{
"t": "set",
"p": "bucket",
"pt": "flow",
"to": "bucket",
"tot": "msg"
},
{
"t": "set",
"p": "thermostats",
"pt": "flow",
"to": "{}",
"tot": "jsonata"
},
{
"t": "set",
"p": "offloading",
"pt": "flow",
"to": "0",
"tot": "num"
},
{
"t": "set",
"p": "sort",
"pt": "flow",
"to": "[]",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 270,
"y": 60,
"wires": [
[
"4f0f1c286cdfedcd"
]
]
},
{
"id": "5c64177e3bbfd337",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "f12560e95cd346d2",
"name": "thermostat - bucket",
"links": [
"25445f5a9b787a0a"
],
"x": 135,
"y": 60,
"wires": [
[
"f0bd4b1ffe5da318"
]
]
},
{
"id": "4f0f1c286cdfedcd",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "f12560e95cd346d2",
"name": "thermostat - bucket",
"mode": "link",
"links": [
"4aab252764e96897"
],
"x": 395,
"y": 60,
"wires": []
},
{
"id": "4aab252764e96897",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "91157899ceb2151b",
"name": "thermostat - config - device",
"links": [
"4f0f1c286cdfedcd"
],
"x": 135,
"y": 240,
"wires": [
[
"2b5ebe5c93914bd9",
"f2fcc76292e4e686"
]
]
},
{
"id": "2b5ebe5c93914bd9",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "91157899ceb2151b",
"name": "config / aperture delay / number / 5",
"rules": [
{
"t": "set",
"p": "measurement",
"pt": "msg",
"to": "config",
"tot": "str"
},
{
"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": 360,
"y": 240,
"wires": [
[
"ece815da9a3e1dab"
]
]
},
{
"id": "ece815da9a3e1dab",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "91157899ceb2151b",
"name": "thermostat - config - device",
"mode": "link",
"links": [
"bfa594bf1f876c92"
],
"x": 595,
"y": 240,
"wires": []
},
{
"id": "f2fcc76292e4e686",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "91157899ceb2151b",
"name": "config / offloading delay / number / 30",
"rules": [
{
"t": "set",
"p": "measurement",
"pt": "msg",
"to": "config",
"tot": "str"
},
{
"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": 370,
"y": 300,
"wires": [
[
"ece815da9a3e1dab"
]
]
},
{
"id": "11cf1061a2c539a1",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "19bd3df3be006a24",
"name": "thermostat - config - ui - metric",
"links": [
"031a6afd8300356a"
],
"x": 755,
"y": 240,
"wires": [
[
"6fad4103dfdc045f"
]
]
},
{
"id": "884976027c7e86a2",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "19bd3df3be006a24",
"name": "thermostat - config - ui - metric",
"mode": "link",
"links": [
"206c1fb4a48067df"
],
"x": 1455,
"y": 300,
"wires": []
},
{
"id": "6fad4103dfdc045f",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "19bd3df3be006a24",
"name": "check path",
"property": "path",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "thermostat/config/aperture delay",
"vt": "str"
},
{
"t": "eq",
"v": "thermostat/config/offloading delay",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 2,
"x": 910,
"y": 240,
"wires": [
[
"52e9e7f197ba916f"
],
[
"7a0cd3a41aafad17"
]
]
},
{
"id": "52e9e7f197ba916f",
"type": "ui-slider",
"z": "80f2ffd4953c67e9",
"g": "19bd3df3be006a24",
"group": "403aaeef14cd4c8f",
"name": "aperture delay",
"label": "Délai ouvrant",
"tooltip": "",
"order": 0,
"width": "6",
"height": "1",
"passthru": false,
"outs": "end",
"topic": "aperture delay",
"topicType": "str",
"thumbLabel": true,
"min": "1",
"max": "30",
"step": 1,
"className": "",
"x": 1120,
"y": 300,
"wires": [
[
"75b5d1f31a8fa165"
]
]
},
{
"id": "7a0cd3a41aafad17",
"type": "ui-slider",
"z": "80f2ffd4953c67e9",
"g": "19bd3df3be006a24",
"group": "403aaeef14cd4c8f",
"name": "offloading delay",
"label": "Temps de délestage",
"tooltip": "",
"order": 0,
"width": "6",
"height": "1",
"passthru": false,
"outs": "end",
"topic": "offloading delay",
"topicType": "str",
"thumbLabel": true,
"min": "1",
"max": "60",
"step": 1,
"className": "",
"x": 1120,
"y": 360,
"wires": [
[
"75b5d1f31a8fa165"
]
]
},
{
"id": "75b5d1f31a8fa165",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "19bd3df3be006a24",
"name": "set metric",
"rules": [
{
"t": "set",
"p": "bucket",
"pt": "msg",
"to": "bucket",
"tot": "flow"
},
{
"t": "set",
"p": "measurement",
"pt": "msg",
"to": "config",
"tot": "str"
},
{
"t": "set",
"p": "field",
"pt": "msg",
"to": "topic",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1320,
"y": 300,
"wires": [
[
"884976027c7e86a2"
]
]
},
{
"id": "c13917bf46188642",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "19bd3df3be006a24",
"name": "thermostat - config - ui - load",
"links": [
"25445f5a9b787a0a"
],
"x": 755,
"y": 300,
"wires": [
[
"4f450cad246d50cf",
"51c7f61e5f0e55fb"
]
]
},
{
"id": "4f450cad246d50cf",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "19bd3df3be006a24",
"name": "from global",
"rules": [
{
"t": "set",
"p": "bucket",
"pt": "msg",
"to": "bucket",
"tot": "flow"
},
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "metrics[msg.bucket]config['aperture delay']",
"tot": "global"
},
{
"t": "set",
"p": "class",
"pt": "msg",
"to": "",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 910,
"y": 300,
"wires": [
[
"52e9e7f197ba916f"
]
]
},
{
"id": "51c7f61e5f0e55fb",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "19bd3df3be006a24",
"name": "from global",
"rules": [
{
"t": "set",
"p": "bucket",
"pt": "msg",
"to": "bucket",
"tot": "flow"
},
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "metrics[msg.bucket]config['offloading delay']",
"tot": "global"
},
{
"t": "set",
"p": "class",
"pt": "msg",
"to": "",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 910,
"y": 360,
"wires": [
[
"7a0cd3a41aafad17"
]
]
},
{
"id": "cfeaa3a9e12b40eb",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "ccc78d495cbd8f7d",
"name": "thermostat - update - pilot metric",
"mode": "link",
"links": [
"206c1fb4a48067df"
],
"x": 2065,
"y": 3540,
"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": 280,
"y": 3480,
"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": 440,
"y": 3480,
"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": 840,
"y": 3540,
"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": 850,
"y": 3480,
"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": 640,
"y": 3420,
"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": 1030,
"y": 3600,
"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": 1070,
"y": 3420,
"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": 1310,
"y": 3600,
"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": 1880,
"y": 3600,
"wires": [
[
"cfeaa3a9e12b40eb",
"93d2b581d45d7631"
]
]
},
{
"id": "e50f34cde29f1023",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "ccc78d495cbd8f7d",
"name": "thermostat - update - pilot",
"links": [
"be58e8ac1e1b6eb1"
],
"x": 145,
"y": 3480,
"wires": [
[
"2b98ac8845853557"
]
]
},
{
"id": "502bf87b213069c7",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "ccc78d495cbd8f7d",
"name": "thermostat - update - pilot",
"mode": "link",
"links": [
"147aa94543fa77cb"
],
"x": 1805,
"y": 3420,
"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": 1630,
"y": 3480,
"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": 1620,
"y": 3540,
"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": 850,
"y": 3420,
"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": 1890,
"y": 3480,
"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": 2130,
"y": 3600,
"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": 470,
"y": 3060,
"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": 670,
"y": 3120,
"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": 880,
"y": 3180,
"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": 1100,
"y": 3240,
"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": 1470,
"y": 3060,
"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": 1470,
"y": 3120,
"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": 1480,
"y": 3180,
"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": 1470,
"y": 3240,
"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": 1470,
"y": 3300,
"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": 1680,
"y": 3120,
"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": 280,
"y": 3120,
"wires": [
[
"cd96635eddc7da1f"
],
[
"cd96635eddc7da1f"
],
[
"cd96635eddc7da1f"
],
[
"cd96635eddc7da1f"
]
]
},
{
"id": "ffdbc6f74f0bd44a",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "e57e9c900c787424",
"name": "thermostat - update - status",
"links": [
"be58e8ac1e1b6eb1"
],
"x": 145,
"y": 3120,
"wires": [
[
"6335a0ba7e4fd02e"
]
]
},
{
"id": "1ff0b0648a927b0f",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "e57e9c900c787424",
"name": "thermostat - update - status",
"mode": "link",
"links": [
"147aa94543fa77cb"
],
"x": 1845,
"y": 3120,
"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": 1920,
"y": 3060,
"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": 1290,
"y": 3300,
"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": 280,
"y": 2880,
"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": 440,
"y": 2880,
"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": 610,
"y": 2940,
"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": 830,
"y": 2940,
"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": 1080,
"y": 2940,
"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": 1330,
"y": 2880,
"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": 670,
"y": 2820,
"wires": [
[
"3bc159f186c762cd"
]
]
},
{
"id": "1b11e45ef3e9f02f",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "8206912d2f9bab36",
"name": "thermostat - update - offloading",
"links": [
"be58e8ac1e1b6eb1"
],
"x": 145,
"y": 2880,
"wires": [
[
"f3335edf661bfc8d"
]
]
},
{
"id": "3bc159f186c762cd",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "8206912d2f9bab36",
"name": "thermostat - update - offloading",
"mode": "link",
"links": [
"147aa94543fa77cb"
],
"x": 1505,
"y": 2820,
"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": 1590,
"y": 2880,
"wires": []
},
{
"id": "e7a80893daf9f5cd",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "0af18fd6cc155518",
"name": "trigger",
"property": "field",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "operating mode",
"vt": "str"
},
{
"t": "eq",
"v": "confort setpoint",
"vt": "str"
},
{
"t": "eq",
"v": "eco setpoint",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 3,
"x": 280,
"y": 2640,
"wires": [
[
"85d6369076d887c9"
],
[
"85d6369076d887c9"
],
[
"85d6369076d887c9"
]
]
},
{
"id": "85d6369076d887c9",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "0af18fd6cc155518",
"name": "check operating mode",
"property": "th['operating mode']",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "confort",
"vt": "str"
},
{
"t": "eq",
"v": "eco",
"vt": "str"
},
{
"t": "eq",
"v": "anti-freeze",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 3,
"x": 490,
"y": 2640,
"wires": [
[
"1164fe72097e884c"
],
[
"0eb756ee244751a4"
],
[
"3a3af17d95ca520a"
]
]
},
{
"id": "1164fe72097e884c",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "0af18fd6cc155518",
"name": "confort",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "th['confort setpoint']",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 700,
"y": 2580,
"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": 700,
"y": 2640,
"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": 720,
"y": 2700,
"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": 990,
"y": 2640,
"wires": [
[
"f9fad454dec37bc7",
"55660ec49f882e13"
]
]
},
{
"id": "64754ad76b3561d6",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "0af18fd6cc155518",
"name": "thermostat - update - temperature setpoint",
"links": [
"be58e8ac1e1b6eb1"
],
"x": 145,
"y": 2640,
"wires": [
[
"e7a80893daf9f5cd"
]
]
},
{
"id": "f9fad454dec37bc7",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "0af18fd6cc155518",
"name": "thermostat - update - tempearture setpoint",
"mode": "link",
"links": [
"147aa94543fa77cb"
],
"x": 1205,
"y": 2640,
"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": 1330,
"y": 2580,
"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": 280,
"y": 2460,
"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": 460,
"y": 2460,
"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": 910,
"y": 2400,
"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": 910,
"y": 2460,
"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": 1230,
"y": 2460,
"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": 650,
"y": 2460,
"wires": [
[
"f3eb2e8c09f67e89",
"f305bda7c25657e5"
]
]
},
{
"id": "37b31a14146e2a3f",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "c311204f22191fa2",
"name": "thermostat - update - delayed aperture",
"links": [
"be58e8ac1e1b6eb1"
],
"x": 145,
"y": 2460,
"wires": [
[
"f1240da189a60ba8"
]
]
},
{
"id": "92add418b3868c54",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "c311204f22191fa2",
"name": "thermostat - update - delayed aperture",
"mode": "link",
"links": [
"147aa94543fa77cb"
],
"x": 1415,
"y": 2460,
"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": 1530,
"y": 2400,
"wires": []
},
{
"id": "266e831763ed3b77",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "868902cdeaa428fe",
"name": "thermostat - metric - input",
"links": [
"031a6afd8300356a"
],
"x": 145,
"y": 2100,
"wires": [
[
"ed42e96a79df8e09"
]
]
},
{
"id": "ed42e96a79df8e09",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "868902cdeaa428fe",
"name": "measurement",
"property": "measurement",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "thermostat",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 310,
"y": 2100,
"wires": [
[
"7b43ab1cda2d8f3f"
]
]
},
{
"id": "7b43ab1cda2d8f3f",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "868902cdeaa428fe",
"name": "bucket",
"property": "thermostats",
"propertyType": "flow",
"rules": [
{
"t": "hask",
"v": "bucket",
"vt": "msg"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 500,
"y": 2100,
"wires": [
[
"ff4225d872a9a0d3"
]
]
},
{
"id": "ff4225d872a9a0d3",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "868902cdeaa428fe",
"name": "from global",
"rules": [
{
"t": "set",
"p": "th",
"pt": "msg",
"to": "metrics[msg.bucket]thermostat",
"tot": "global"
},
{
"t": "set",
"p": "th.bucket",
"pt": "msg",
"to": "bucket",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 680,
"y": 2100,
"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": 920,
"y": 2040,
"wires": []
},
{
"id": "be58e8ac1e1b6eb1",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "868902cdeaa428fe",
"name": "thermostat - update - metric",
"mode": "link",
"links": [
"0998eafda2346961",
"1b11e45ef3e9f02f",
"37b31a14146e2a3f",
"64754ad76b3561d6",
"e50f34cde29f1023",
"ffdbc6f74f0bd44a"
],
"x": 825,
"y": 2100,
"wires": []
},
{
"id": "1ed6b5ff63020d07",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "467ec12f292b2573",
"name": "thermostat / heat request",
"rules": [
{
"t": "set",
"p": "field",
"pt": "msg",
"to": "heat request",
"tot": "str"
},
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "msg.th.compute>0",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 840,
"y": 2280,
"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": 280,
"y": 2280,
"wires": [
[
"d75bdce71118a56f"
],
[
"d75bdce71118a56f"
],
[
"d75bdce71118a56f"
],
[
"d75bdce71118a56f"
]
]
},
{
"id": "d75bdce71118a56f",
"type": "link call",
"z": "80f2ffd4953c67e9",
"g": "467ec12f292b2573",
"name": "",
"links": [
"1452439e0c937126"
],
"linkType": "static",
"timeout": "30",
"x": 530,
"y": 2280,
"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": 1120,
"y": 2220,
"wires": []
},
{
"id": "0fb59058d3aa9663",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "467ec12f292b2573",
"name": "thermostat - update - heat request",
"mode": "link",
"links": [
"147aa94543fa77cb"
],
"x": 1025,
"y": 2280,
"wires": []
},
{
"id": "0998eafda2346961",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "467ec12f292b2573",
"name": "thermostat - update - heat request",
"links": [
"be58e8ac1e1b6eb1"
],
"x": 145,
"y": 2280,
"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": 290,
"y": 3780,
"wires": [
[
"34e6817c2f435667",
"9ba0a97276e93540"
]
]
},
{
"id": "34e6817c2f435667",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "6c4b12585b58300e",
"name": "thermostat - metric - output",
"mode": "link",
"links": [
"206c1fb4a48067df"
],
"x": 425,
"y": 3780,
"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": 530,
"y": 3720,
"wires": []
},
{
"id": "147aa94543fa77cb",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "6c4b12585b58300e",
"name": "thermostat - update - metric",
"links": [
"0fb59058d3aa9663",
"1ff0b0648a927b0f",
"3bc159f186c762cd",
"502bf87b213069c7",
"92add418b3868c54",
"f9fad454dec37bc7"
],
"x": 145,
"y": 3780,
"wires": [
[
"a091b2e84a4e89e6"
]
]
},
{
"id": "1452439e0c937126",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "7e9cff1699c061ec",
"name": "thermostat - compute heat request",
"links": [],
"x": 135,
"y": 1860,
"wires": [
[
"15d8d0ba06961e4b"
]
]
},
{
"id": "15d8d0ba06961e4b",
"type": "function",
"z": "80f2ffd4953c67e9",
"g": "7e9cff1699c061ec",
"name": "thermostat compute heat request",
"func": "var txt = '';\nvar souscalcul = ((msg.th['temperature setpoint'] - msg.th['indoor temperature']) * msg.th['indoor coefficient']) + ((msg.th['indoor temperature'] - msg.th['outdoor temperature']) * msg.th['outdoor coefficient']);\nvar calculb = (souscalcul / 100 * msg.th['cycle time']);\nvar calculc = (msg.th['cycle time'] * msg.th['preheat time'] / 100);\ncalculb = calculb.toFixed(1);\ncalculc = calculc.toFixed(1);\n\n// positive result for heat request\nmsg.th.compute = calculb - calculc;\n\nreturn msg;",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 360,
"y": 1860,
"wires": [
[
"4b342483a51b0f93"
]
]
},
{
"id": "4b342483a51b0f93",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "7e9cff1699c061ec",
"name": "thermostat - compute heat request",
"mode": "return",
"links": [],
"x": 575,
"y": 1860,
"wires": []
},
{
"id": "d8585174fdd6097c",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"name": "thermostat - device",
"links": [
"17e1e87a7ce7485f",
"3f8eedb7511f6d4b",
"4b367a6794c1c02b",
"8f95239c80a9e5c0",
"5bb391e01c291936",
"6e6b82140c236603",
"e425e9dd73683671",
"a57dadebc90cb6a7",
"1249dc707643b70f",
"ab8491370b4f3838"
],
"x": 135,
"y": 540,
"wires": [
[
"a35aaf65004eeaac"
]
]
},
{
"id": "a35aaf65004eeaac",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"name": "bucket",
"property": "bucket",
"propertyType": "msg",
"rules": [
{
"t": "nempty"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 270,
"y": 540,
"wires": [
[
"7f74332e39e8c3b6",
"9c5d6532a1c36bc4",
"5cbb323f0e362aed",
"3b8629192cde74db",
"7c192da441c0e46b",
"82a9ec30d38dec10",
"804a2d1f3c05de7e",
"c170b43fcf7a5bc2",
"9dc49d567806c040",
"db296997eb05a7e3",
"de88d060a6e9ab68",
"4209dce5b520e62e",
"2cda217228ab8a5f",
"8d1ed0f3a77d2bb9",
"c1d7285b5e0a4ef9",
"60a8b6c3b2e72ae2",
"d5cbc2f49e5bcf37",
"a0b0a47a4719edd4",
"11886766f827e1fd",
"e1663eb05a273810",
"c22a1d18683ea7c0"
]
]
},
{
"id": "f61fef9768da8558",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"name": "flow",
"rules": [
{
"t": "set",
"p": "thermostats[msg.bucket]",
"pt": "flow",
"to": "true",
"tot": "bool"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 630,
"y": 600,
"wires": [
[]
]
},
{
"id": "5cbb323f0e362aed",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 540,
"y": 720,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "3b8629192cde74db",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 530,
"y": 780,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "82a9ec30d38dec10",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 540,
"y": 900,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "9c5d6532a1c36bc4",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 510,
"y": 660,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "804a2d1f3c05de7e",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 550,
"y": 960,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "c170b43fcf7a5bc2",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 560,
"y": 1020,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "e1663eb05a273810",
"type": "change",
"z": "80f2ffd4953c67e9",
"d": true,
"g": "81842bf5581a2a3f",
"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": 550,
"y": 1740,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "60a8b6c3b2e72ae2",
"type": "change",
"z": "80f2ffd4953c67e9",
"d": true,
"g": "81842bf5581a2a3f",
"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": 550,
"y": 1500,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "d5cbc2f49e5bcf37",
"type": "change",
"z": "80f2ffd4953c67e9",
"d": true,
"g": "81842bf5581a2a3f",
"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": 550,
"y": 1560,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "a0b0a47a4719edd4",
"type": "change",
"z": "80f2ffd4953c67e9",
"d": true,
"g": "81842bf5581a2a3f",
"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": 530,
"y": 1620,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "11886766f827e1fd",
"type": "change",
"z": "80f2ffd4953c67e9",
"d": true,
"g": "81842bf5581a2a3f",
"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": 530,
"y": 1680,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "9dc49d567806c040",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 560,
"y": 1080,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "db296997eb05a7e3",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 550,
"y": 1140,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "de88d060a6e9ab68",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 540,
"y": 1200,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "4209dce5b520e62e",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 520,
"y": 1260,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "2cda217228ab8a5f",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 530,
"y": 1320,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "7c192da441c0e46b",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 560,
"y": 840,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "8d1ed0f3a77d2bb9",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 520,
"y": 1380,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "209e2b300932e1ce",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"name": "thermostat - device",
"mode": "link",
"links": [
"bfa594bf1f876c92"
],
"x": 975,
"y": 540,
"wires": []
},
{
"id": "c61e55af251c1588",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"name": "set metric",
"rules": [
{
"t": "set",
"p": "measurement",
"pt": "msg",
"to": "thermostat",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 840,
"y": 540,
"wires": [
[
"209e2b300932e1ce"
]
]
},
{
"id": "c1d7285b5e0a4ef9",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"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": 540,
"y": 1440,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "7f74332e39e8c3b6",
"type": "delay",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"name": "delay 50 ms",
"pauseType": "delay",
"timeout": "50",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 450,
"y": 600,
"wires": [
[
"f61fef9768da8558"
]
]
},
{
"id": "ea4ed028bce71805",
"type": "comment",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"name": "manage by bucket",
"info": "",
"x": 210,
"y": 1500,
"wires": []
},
{
"id": "c22a1d18683ea7c0",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "81842bf5581a2a3f",
"name": "measurement",
"property": "measurement",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "thermostat",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 460,
"y": 540,
"wires": [
[
"c61e55af251c1588"
]
]
},
{
"id": "8bbf52c2a83e09ea",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "93075511ad056e6d",
"name": "thermostat - update - outdoor temperature",
"links": [
"031a6afd8300356a"
],
"x": 135,
"y": 3960,
"wires": [
[
"0a9cb3219b03ca53"
]
]
},
{
"id": "0a9cb3219b03ca53",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "93075511ad056e6d",
"name": "trigger",
"property": "path",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "parking/temperature/probe",
"vt": "str"
},
{
"t": "eq",
"v": "jardin/temperature/probe",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 2,
"x": 270,
"y": 3960,
"wires": [
[
"85f9e2ad24cb8a5a"
],
[
"85f9e2ad24cb8a5a"
]
]
},
{
"id": "de7ea9b615e052e6",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "93075511ad056e6d",
"name": "buckets",
"rules": [
{
"t": "set",
"p": "old_payload",
"pt": "msg",
"to": "payload",
"tot": "msg"
},
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "thermostats",
"tot": "flow"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 680,
"y": 3960,
"wires": [
[
"37844601d21c6184"
]
]
},
{
"id": "37844601d21c6184",
"type": "split",
"z": "80f2ffd4953c67e9",
"g": "93075511ad056e6d",
"name": "bucket",
"splt": "\\n",
"spltType": "str",
"arraySplt": 1,
"arraySpltType": "len",
"stream": false,
"addname": "bucket",
"x": 850,
"y": 3960,
"wires": [
[
"e3dc3f877be31d77"
]
]
},
{
"id": "e3dc3f877be31d77",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "93075511ad056e6d",
"name": "set metric",
"rules": [
{
"t": "set",
"p": "measurement",
"pt": "msg",
"to": "thermostat",
"tot": "str"
},
{
"t": "set",
"p": "field",
"pt": "msg",
"to": "outdoor temperature",
"tot": "str"
},
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "old_payload",
"tot": "msg"
},
{
"t": "set",
"p": "repeat",
"pt": "msg",
"to": "true",
"tot": "bool"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1020,
"y": 3960,
"wires": [
[
"6fbdfc1ab44f9754"
]
]
},
{
"id": "6fbdfc1ab44f9754",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "93075511ad056e6d",
"name": "thermostat - update - outdoor temperature",
"mode": "link",
"links": [
"206c1fb4a48067df"
],
"x": 1155,
"y": 3960,
"wires": []
},
{
"id": "85f9e2ad24cb8a5a",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "93075511ad056e6d",
"name": "ponderation",
"rules": [
{
"t": "set",
"p": "jardin",
"pt": "msg",
"to": "metrics.jardin.temperature.probe",
"tot": "global"
},
{
"t": "set",
"p": "parking",
"pt": "msg",
"to": "metrics.parking.temperature.probe",
"tot": "global"
},
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "$round(($number(msg.jardin)+$number(msg.parking)*2)/3, 1)",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 490,
"y": 3960,
"wires": [
[
"de7ea9b615e052e6"
]
]
},
{
"id": "3099e4a17fd21410",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "e653f3ec3dc88a8f",
"name": "thermostat - update - indoor temperature",
"links": [
"031a6afd8300356a"
],
"x": 135,
"y": 4080,
"wires": [
[
"4c169fc26f833802"
]
]
},
{
"id": "a2b07c98d61de126",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "e653f3ec3dc88a8f",
"name": "set metric",
"rules": [
{
"t": "set",
"p": "measurement",
"pt": "msg",
"to": "thermostat",
"tot": "str"
},
{
"t": "set",
"p": "field",
"pt": "msg",
"to": "indoor temperature",
"tot": "str"
},
{
"t": "set",
"p": "repeat",
"pt": "msg",
"to": "true",
"tot": "bool"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1660,
"y": 4080,
"wires": [
[
"d09ad27d05d54698"
]
]
},
{
"id": "d09ad27d05d54698",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "e653f3ec3dc88a8f",
"name": "thermostat - update - indoor temperature",
"mode": "link",
"links": [
"206c1fb4a48067df"
],
"x": 1795,
"y": 4080,
"wires": []
},
{
"id": "4c169fc26f833802",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "e653f3ec3dc88a8f",
"name": "measurement",
"property": "measurement",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "temperature",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 300,
"y": 4080,
"wires": [
[
"a21c6a2db7aeab09"
]
]
},
{
"id": "a21c6a2db7aeab09",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "e653f3ec3dc88a8f",
"name": "buckets",
"rules": [
{
"t": "set",
"p": "old_payload",
"pt": "msg",
"to": "payload",
"tot": "msg"
},
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "thermostats",
"tot": "flow"
},
{
"t": "set",
"p": "scene.bucket",
"pt": "msg",
"to": "bucket",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 500,
"y": 4080,
"wires": [
[
"e2c388ba43ec89f0"
]
]
},
{
"id": "c7d315d762524494",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "e653f3ec3dc88a8f",
"name": "exists",
"property": "scene.bucket",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "bucket",
"vt": "msg"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 830,
"y": 4080,
"wires": [
[
"9eb8cf78caf3141d"
]
]
},
{
"id": "e2c388ba43ec89f0",
"type": "split",
"z": "80f2ffd4953c67e9",
"g": "e653f3ec3dc88a8f",
"name": "bucket",
"splt": "\\n",
"spltType": "str",
"arraySplt": 1,
"arraySpltType": "len",
"stream": false,
"addname": "bucket",
"x": 670,
"y": 4080,
"wires": [
[
"c7d315d762524494"
]
]
},
{
"id": "9eb8cf78caf3141d",
"type": "link call",
"z": "80f2ffd4953c67e9",
"g": "e653f3ec3dc88a8f",
"name": "",
"links": [
"ddd39f991efd9d31"
],
"linkType": "static",
"timeout": "30",
"x": 1030,
"y": 4080,
"wires": [
[
"313fbd5fc01985a5"
]
]
},
{
"id": "313fbd5fc01985a5",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "e653f3ec3dc88a8f",
"name": "rsp",
"property": "search.response",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "1",
"vt": "num"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 1230,
"y": 4080,
"wires": [
[
"b7ffd39578f29c8b"
]
]
},
{
"id": "b7ffd39578f29c8b",
"type": "delay",
"z": "80f2ffd4953c67e9",
"g": "e653f3ec3dc88a8f",
"name": "limit 1 msg / s / topic",
"pauseType": "queue",
"timeout": "5",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": true,
"allowrate": false,
"outputs": 1,
"x": 1440,
"y": 4080,
"wires": [
[
"a2b07c98d61de126"
]
]
},
{
"id": "5cb2a229a6fec1aa",
"type": "link in",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "thermostat - update - offloading",
"links": [
"031a6afd8300356a"
],
"x": 135,
"y": 4200,
"wires": [
[
"1c4fbd9e3d313b43"
]
]
},
{
"id": "1c4fbd9e3d313b43",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "trigger",
"property": "path",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "system/mode/offloading",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 270,
"y": 4200,
"wires": [
[
"e78638ee35b8c069"
]
]
},
{
"id": "2aaf95392a970167",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "mode offloading",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "offloaded",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 880,
"y": 4200,
"wires": [
[
"1dd82f8d7e2ccd52"
]
]
},
{
"id": "e78638ee35b8c069",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "mode master",
"property": "metrics.system.mode.master",
"propertyType": "global",
"rules": [
{
"t": "eq",
"v": "about.automate",
"vt": "global"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 450,
"y": 4200,
"wires": [
[
"2cb92368cb319c65"
]
]
},
{
"id": "2cb92368cb319c65",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "mode automate",
"property": "metrics.system.mode.automate",
"propertyType": "global",
"rules": [
{
"t": "eq",
"v": "automatic",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 660,
"y": 4200,
"wires": [
[
"2aaf95392a970167"
]
]
},
{
"id": "1dd82f8d7e2ccd52",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "thermostats",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "thermostats",
"tot": "flow"
},
{
"t": "set",
"p": "offloading",
"pt": "flow",
"to": "0",
"tot": "num"
},
{
"t": "set",
"p": "sort",
"pt": "flow",
"to": "[]",
"tot": "json"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1090,
"y": 4200,
"wires": [
[
"4b2f0c80863bf5e7"
]
]
},
{
"id": "4b2f0c80863bf5e7",
"type": "split",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "split thermostats",
"splt": "\\n",
"spltType": "str",
"arraySplt": 1,
"arraySpltType": "len",
"stream": false,
"addname": "bucket",
"x": 1300,
"y": 4200,
"wires": [
[
"d237415ac7c1b47b"
]
]
},
{
"id": "91ee9f04019a9999",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "load thermostat",
"rules": [
{
"t": "set",
"p": "th",
"pt": "msg",
"to": "metrics[msg.payload.bucket]thermostat",
"tot": "global"
},
{
"t": "set",
"p": "th.bucket",
"pt": "msg",
"to": "payload.bucket",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 2900,
"y": 4200,
"wires": [
[
"53f044d01f2d18b2"
]
]
},
{
"id": "53f044d01f2d18b2",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "state offloading",
"property": "th.offloading",
"propertyType": "msg",
"rules": [
{
"t": "false"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 3120,
"y": 4200,
"wires": [
[
"db3681610a5d90d9"
]
]
},
{
"id": "2df7aa160cbf3a71",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "set metric",
"rules": [
{
"t": "set",
"p": "bucket",
"pt": "msg",
"to": "th.bucket",
"tot": "msg"
},
{
"t": "set",
"p": "measurement",
"pt": "msg",
"to": "thermostat",
"tot": "str"
},
{
"t": "set",
"p": "field",
"pt": "msg",
"to": "offloading",
"tot": "str"
},
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "true",
"tot": "bool"
},
{
"t": "set",
"p": "tmp",
"pt": "msg",
"to": "offloading",
"tot": "flow"
},
{
"t": "set",
"p": "offloading",
"pt": "flow",
"to": "$number(msg.tmp) + 1",
"tot": "jsonata"
},
{
"t": "delete",
"p": "parts",
"pt": "msg"
},
{
"t": "delete",
"p": "th",
"pt": "msg"
},
{
"t": "delete",
"p": "tmp",
"pt": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 3500,
"y": 4200,
"wires": [
[
"7869c56dce3123ed"
]
]
},
{
"id": "db3681610a5d90d9",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "state pilot",
"property": "th.pilot",
"propertyType": "msg",
"rules": [
{
"t": "true"
}
],
"checkall": "false",
"repair": false,
"outputs": 1,
"x": 3320,
"y": 4200,
"wires": [
[
"2df7aa160cbf3a71"
]
]
},
{
"id": "7869c56dce3123ed",
"type": "link out",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "thermostat - update - offloading",
"mode": "link",
"links": [
"206c1fb4a48067df"
],
"x": 3635,
"y": 4200,
"wires": []
},
{
"id": "ea0c6cadf1d594c3",
"type": "delay",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "delay 50 ms",
"pauseType": "delay",
"timeout": "50",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 2530,
"y": 4200,
"wires": [
[
"285a0091abda1f58"
]
]
},
{
"id": "285a0091abda1f58",
"type": "switch",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "limit",
"property": "offloading",
"propertyType": "flow",
"rules": [
{
"t": "lt",
"v": "2",
"vt": "num"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 2710,
"y": 4200,
"wires": [
[
"91ee9f04019a9999"
]
]
},
{
"id": "96e92d4bad3792d3",
"type": "split",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "",
"splt": "\\n",
"spltType": "str",
"arraySplt": 1,
"arraySpltType": "len",
"stream": false,
"addname": "",
"x": 2350,
"y": 4200,
"wires": [
[
"ea0c6cadf1d594c3"
]
]
},
{
"id": "3de9c88ac7ce9a77",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "sort offloading count",
"rules": [
{
"t": "set",
"p": "sort",
"pt": "msg",
"to": "sort",
"tot": "flow"
},
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "$sort(msg.sort, function($l, $r) {\t $l.nb > $r.nb\t})",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 2140,
"y": 4200,
"wires": [
[
"96e92d4bad3792d3"
]
]
},
{
"id": "6e120320180e5cfd",
"type": "join",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "",
"mode": "auto",
"build": "object",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"accumulate": true,
"timeout": "",
"count": "",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "",
"reduceFixup": "",
"x": 1730,
"y": 4200,
"wires": [
[
"808426e9258cd024"
]
]
},
{
"id": "d237415ac7c1b47b",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "get offloading count",
"rules": [
{
"t": "set",
"p": "tmp",
"pt": "msg",
"to": "metrics[msg.bucket]thermostat['offloading count']",
"tot": "global"
},
{
"t": "set",
"p": "sort[msg.parts.index]",
"pt": "flow",
"to": "{\t \"bucket\":msg.bucket,\t \"nb\":msg.tmp\t }",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1530,
"y": 4200,
"wires": [
[
"6e120320180e5cfd"
]
]
},
{
"id": "808426e9258cd024",
"type": "delay",
"z": "80f2ffd4953c67e9",
"g": "6f1f772c23d57e24",
"name": "delay 50 ms",
"pauseType": "delay",
"timeout": "50",
"timeoutUnits": "milliseconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"allowrate": false,
"outputs": 1,
"x": 1910,
"y": 4200,
"wires": [
[
"3de9c88ac7ce9a77"
]
]
},
{
"id": "659f9752db0967bc",
"type": "ui-slider",
"z": "80f2ffd4953c67e9",
"g": "c3cbb2a2dd06d1bb",
"group": "75a98516fdcdf832",
"name": "indoor temperature",
"label": "Température intèrieur",
"tooltip": "",
"order": 2,
"width": "6",
"height": "1",
"passthru": false,
"outs": "end",
"topic": "indoor temperature",
"topicType": "str",
"thumbLabel": true,
"min": 0,
"max": "30",
"step": 1,
"className": "",
"x": 870,
"y": 4440,
"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": 4560,
"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": 4380,
"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": 4500,
"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": 4740,
"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": 4680,
"wires": [
[
"d60c017a8962d3f8"
]
]
},
{
"id": "d60c017a8962d3f8",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "c3cbb2a2dd06d1bb",
"name": "field",
"rules": [
{
"t": "set",
"p": "th",
"pt": "msg",
"to": "thermostattest",
"tot": "flow"
},
{
"t": "set",
"p": "th[msg.topic]",
"pt": "msg",
"to": "payload",
"tot": "msg"
},
{
"t": "set",
"p": "thermostattest",
"pt": "flow",
"to": "th",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1090,
"y": 4380,
"wires": [
[
"6e4f87c323cc4659"
]
]
},
{
"id": "dc37631fe73fce2a",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "c3cbb2a2dd06d1bb",
"name": "reset",
"rules": [
{
"t": "set",
"p": "th",
"pt": "msg",
"to": "{\t 'indoor temperature':20,\t 'outdoor temperature':20,\t 'temperature setpoint':20,\t 'indoor coefficient':5,\t 'outdoor coefficient':5,\t 'preheat time':10,\t 'cycle time':30\t }",
"tot": "jsonata"
},
{
"t": "set",
"p": "thermostattest",
"pt": "flow",
"to": "th",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 330,
"y": 4320,
"wires": [
[
"67e91e753d3708e2",
"6e4f87c323cc4659"
]
]
},
{
"id": "c932311ec07112b5",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "c3cbb2a2dd06d1bb",
"name": "topic",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "thermostattest['indoor temperature']",
"tot": "flow"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 670,
"y": 4440,
"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": 4380,
"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": 4320,
"wires": [
[
"dc37631fe73fce2a"
]
]
},
{
"id": "f974a627497b4b7d",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "c3cbb2a2dd06d1bb",
"name": "topic",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "thermostattest['outdoor temperature']",
"tot": "flow"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 670,
"y": 4560,
"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": 4380,
"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": 4320,
"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": 4620,
"wires": [
[
"d60c017a8962d3f8"
]
]
},
{
"id": "f81152d8df61c845",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "c3cbb2a2dd06d1bb",
"name": "topic",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "thermostattest['temperature setpoint']",
"tot": "flow"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 670,
"y": 4380,
"wires": [
[
"515b0c184c8a3628"
]
]
},
{
"id": "bc4771242d5d3bd8",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "c3cbb2a2dd06d1bb",
"name": "topic",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "thermostattest['indoor coefficient']",
"tot": "flow"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 670,
"y": 4500,
"wires": [
[
"13697bbd73295b46"
]
]
},
{
"id": "135b7546018ecfba",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "c3cbb2a2dd06d1bb",
"name": "topic",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "thermostattest['outdoor coefficient']",
"tot": "flow"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 670,
"y": 4620,
"wires": [
[
"f10733a435dc7390"
]
]
},
{
"id": "6bf593bd1612dbde",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "c3cbb2a2dd06d1bb",
"name": "topic",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "thermostattest['preheat time']",
"tot": "flow"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 670,
"y": 4740,
"wires": [
[
"c6fdc57a80266f04"
]
]
},
{
"id": "64405bce10cccde1",
"type": "change",
"z": "80f2ffd4953c67e9",
"g": "c3cbb2a2dd06d1bb",
"name": "topic",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "thermostattest['cycle time']",
"tot": "flow"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 670,
"y": 4680,
"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": 4320,
"wires": [
[
"c9291360c0f0b490"
]
]
},
{
"id": "6e4f87c323cc4659",
"type": "link call",
"z": "80f2ffd4953c67e9",
"g": "c3cbb2a2dd06d1bb",
"name": "",
"links": [
"1452439e0c937126"
],
"linkType": "static",
"timeout": "30",
"x": 1340,
"y": 4320,
"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": []
}
]