{"ts": {"base": "/ts", "params": [
{"path": "", "type": "float", "readonly": false, "cmd": "run ts", "description": "ts", "kids": 14},
{"path": "send", "type": "text", "readonly": false, "cmd": "ts send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "readonly": false, "cmd": "ts is_running", "visibility": 3},
{"path": "set", "type": "float", "readonly": false, "cmd": "ts set"},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "ts tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "ts maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "ts settle"},
{"path": "log", "type": "text", "readonly": false, "cmd": "ts log", "visibility": 3, "kids": 4},
{"path": "log/mean", "type": "float", "visibility": 3},
{"path": "log/m2", "type": "float", "visibility": 3},
{"path": "log/stddev", "type": "float", "visibility": 3},
{"path": "log/n", "type": "float", "visibility": 3},
{"path": "mode", "type": "enum", "enum": {"undefined": 0, "hiT": 1, "midT": 2, "lowT": 3, "condense": 4}, "readonly": false, "cmd": "ts mode"},
{"path": "lasts_until", "type": "text"},
{"path": "pot_state", "type": "text"},
{"path": "target_hours", "type": "float", "readonly": false, "cmd": "ts target_hours", "description": "how many hours the pot should last (< 75)"}]},

"th": {"base": "/th", "params": [
{"path": "", "type": "float", "readonly": false, "cmd": "run th", "description": "th", "kids": 18},
{"path": "send", "type": "text", "readonly": false, "cmd": "th send", "visibility": 3},
{"path": "status", "type": "text", "visibility": 3},
{"path": "is_running", "type": "int", "readonly": false, "cmd": "th is_running", "visibility": 3},
{"path": "mainloop", "type": "text", "readonly": false, "cmd": "th mainloop", "visibility": 3},
{"path": "target", "type": "float"},
{"path": "running", "type": "int"},
{"path": "tolerance", "type": "float", "readonly": false, "cmd": "th tolerance"},
{"path": "maxwait", "type": "float", "readonly": false, "cmd": "th maxwait"},
{"path": "settle", "type": "float", "readonly": false, "cmd": "th settle"},
{"path": "log", "type": "text", "readonly": false, "cmd": "th log", "visibility": 3, "kids": 4},
{"path": "log/mean", "type": "float", "visibility": 3},
{"path": "log/m2", "type": "float", "visibility": 3},
{"path": "log/stddev", "type": "float", "visibility": 3},
{"path": "log/n", "type": "float", "visibility": 3},
{"path": "pot", "type": "float", "kids": 4},
{"path": "pot/curve", "type": "text", "readonly": false, "cmd": "th pot/curve", "kids": 1},
{"path": "pot/curve/points", "type": "floatvarar", "readonly": false, "cmd": "th pot/curve/points", "visibility": 3},
{"path": "pot/alarm", "type": "float", "readonly": false, "cmd": "th pot/alarm"},
{"path": "pot/stddev", "type": "float"},
{"path": "pot/raw", "type": "float"},
{"path": "low", "type": "float", "kids": 4},
{"path": "low/curve", "type": "text", "readonly": false, "cmd": "th low/curve", "kids": 1},
{"path": "low/curve/points", "type": "floatvarar", "readonly": false, "cmd": "th low/curve/points", "visibility": 3},
{"path": "low/alarm", "type": "float", "readonly": false, "cmd": "th low/alarm"},
{"path": "low/stddev", "type": "float"},
{"path": "low/raw", "type": "float"},
{"path": "sorb", "type": "float", "kids": 4},
{"path": "sorb/curve", "type": "text", "readonly": false, "cmd": "th sorb/curve", "kids": 1},
{"path": "sorb/curve/points", "type": "floatvarar", "readonly": false, "cmd": "th sorb/curve/points", "visibility": 3},
{"path": "sorb/alarm", "type": "float", "readonly": false, "cmd": "th sorb/alarm"},
{"path": "sorb/stddev", "type": "float"},
{"path": "sorb/raw", "type": "float"},
{"path": "plate", "type": "float", "kids": 4},
{"path": "plate/curve", "type": "text", "readonly": false, "cmd": "th plate/curve", "kids": 1},
{"path": "plate/curve/points", "type": "floatvarar", "readonly": false, "cmd": "th plate/curve/points", "visibility": 3},
{"path": "plate/alarm", "type": "float", "readonly": false, "cmd": "th plate/alarm"},
{"path": "plate/stddev", "type": "float"},
{"path": "plate/raw", "type": "float"},
{"path": "set", "type": "float", "readonly": false, "cmd": "th set", "kids": 18},
{"path": "set/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "th set/mode"},
{"path": "set/reg", "type": "float"},
{"path": "set/ramp", "type": "float", "readonly": false, "cmd": "th set/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
{"path": "set/wramp", "type": "float", "readonly": false, "cmd": "th set/wramp"},
{"path": "set/smooth", "type": "float", "readonly": false, "cmd": "th set/smooth", "description": "smooth time (minutes)"},
{"path": "set/channel", "type": "text", "readonly": false, "cmd": "th set/channel"},
{"path": "set/limit", "type": "float", "readonly": false, "cmd": "th set/limit"},
{"path": "set/resist", "type": "float", "readonly": false, "cmd": "th set/resist"},
{"path": "set/maxheater", "type": "text", "readonly": false, "cmd": "th set/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
{"path": "set/linearpower", "type": "float", "readonly": false, "cmd": "th set/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
{"path": "set/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
{"path": "set/maxpower", "type": "float", "readonly": false, "cmd": "th set/maxpower", "description": "maximum power [W]"},
{"path": "set/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
{"path": "set/manualpower", "type": "float", "readonly": false, "cmd": "th set/manualpower"},
{"path": "set/power", "type": "float"},
{"path": "set/prop", "type": "float", "readonly": false, "cmd": "th set/prop", "description": "bigger means more gain"},
{"path": "set/integ", "type": "float", "readonly": false, "cmd": "th set/integ", "description": "bigger means faster"},
{"path": "set/deriv", "type": "float", "readonly": false, "cmd": "th set/deriv"},
{"path": "setsorb", "type": "float", "readonly": false, "cmd": "th setsorb", "kids": 18},
{"path": "setsorb/mode", "type": "enum", "enum": {"disabled": -1, "off": 0, "controlling": 1, "manual": 2}, "readonly": false, "cmd": "th setsorb/mode"},
{"path": "setsorb/reg", "type": "float"},
{"path": "setsorb/ramp", "type": "float", "readonly": false, "cmd": "th setsorb/ramp", "description": "maximum ramp in K/min (0: ramp off)"},
{"path": "setsorb/wramp", "type": "float", "readonly": false, "cmd": "th setsorb/wramp"},
{"path": "setsorb/smooth", "type": "float", "readonly": false, "cmd": "th setsorb/smooth", "description": "smooth time (minutes)"},
{"path": "setsorb/channel", "type": "text", "readonly": false, "cmd": "th setsorb/channel"},
{"path": "setsorb/limit", "type": "float", "readonly": false, "cmd": "th setsorb/limit"},
{"path": "setsorb/resist", "type": "float", "readonly": false, "cmd": "th setsorb/resist"},
{"path": "setsorb/maxheater", "type": "text", "readonly": false, "cmd": "th setsorb/maxheater", "description": "maximum heater limit, units should be given without space: W, mW, A, mA"},
{"path": "setsorb/linearpower", "type": "float", "readonly": false, "cmd": "th setsorb/linearpower", "description": "when not 0, it is the maximum effective power, and the power is linear to the heater output"},
{"path": "setsorb/maxpowerlim", "type": "float", "description": "the maximum power limit (before any booster or converter)"},
{"path": "setsorb/maxpower", "type": "float", "readonly": false, "cmd": "th setsorb/maxpower", "description": "maximum power [W]"},
{"path": "setsorb/maxcurrent", "type": "float", "description": "the maximum current before any booster or converter"},
{"path": "setsorb/manualpower", "type": "float", "readonly": false, "cmd": "th setsorb/manualpower"},
{"path": "setsorb/power", "type": "float"},
{"path": "setsorb/prop", "type": "float", "readonly": false, "cmd": "th setsorb/prop", "description": "bigger means more gain"},
{"path": "setsorb/integ", "type": "float", "readonly": false, "cmd": "th setsorb/integ", "description": "bigger means faster"},
{"path": "setsorb/deriv", "type": "float", "readonly": false, "cmd": "th setsorb/deriv"},
{"path": "display", "type": "text", "readonly": false, "cmd": "th display"},
{"path": "remote", "type": "bool"}]}}
