Here is my pe653.json for anyone with firmware 3.9 for better access to settings. Note that I should have written this so that it only works with V3.9 firmware, but I have never written these config files before and was unsure of the formatting. So only use this if you have a PE653 with firmware 3.9.
{
"manufacturer": "Intermatic",
"manufacturerId": "0x0005",
"label": "PE653",
"description": "Pool Control",
"devices": [
{
"productType": "0x5045",
"productId": "0x0653"
}
],
"firmwareVersion": {
"min": "0.0",
"max": "255.255"
},
"paramInformation": [
{
"#": "1[0xff00]",
"label": "Pump Spd when Booster On",
"description": "1=no booster, 2=Relay1, 3=VarSpd1, 4=VarSpd2, 5=VarSpd3, 6=VarSpd4",
"valueSize": 2,
"unit": "Decimal",
"minValue": 1,
"maxValue": 6,
"defaultValue": 1
},
{
"#": "1[0xff]",
"label": "Pump Type",
"description": "0=1SpdPump NoBooster, 1=1SpdPump w/Booster, 2=2SpdPump NoBooster, 3=2SpdPump w/Booster",
"valueSize": 2,
"unit": "Decimal",
"minValue": 0,
"maxValue": 7,
"defaultValue": 0
},
{
"#": "2[0xff00]",
"label": "Fireman Timeout",
"description": "Minutes (0-15) pump runs after heater off. 255= no heater",
"valueSize": 2,
"unit": "minutes",
"minValue": 0,
"maxValue": 255,
"defaultValue": 1,
"unsigned": true
},
{
"#": "2[0xff]",
"label": "Heater Safety",
"description": "1=enabled, disable only if you have a separate pump not controlled by PE653",
"valueSize": 2,
"unit": "Decimal",
"minValue": 0,
"maxValue": 1,
"defaultValue": 1,
"unsigned": true
},
{
"#": "4[0xffff]",
"label": "Chlor Timer off",
"description": "Chlor Timer off",
"valueSize": 4,
"unit": "Decimal",
"minValue": 0,
"maxValue": 4300000000,
"defaultValue": 65535,
"unsigned": true
},
{
"#": "4[0xffff0000]",
"label": "Chlor Timer on",
"description": "Chlor Timer on",
"valueSize": 4,
"unit": "Decimal",
"minValue": 0,
"maxValue": 4300000000,
"defaultValue": 65535,
"unsigned": true
},
{
"#": "39[0xffff]",
"label": "Speed 2 Timer off",
"description": "Speed 2 Timer off",
"valueSize": 4,
"unit": "Decimal",
"minValue": 0,
"maxValue": 4300000000,
"defaultValue": 65535,
"unsigned": true
},
{
"#": "39[0xffff0000]",
"label": "Speed 2 Timer on",
"description": "Speed 2 Timer on",
"valueSize": 4,
"unit": "Decimal",
"minValue": 0,
"maxValue": 4300000000,
"defaultValue": 65535,
"unsigned": true
},
{
"#": "22",
"label": "Pool/Spa Mode",
"description": "0=pool, 1=spa, 2=both",
"valueSize": 1,
"unit": "Decimal",
"minValue": 0,
"maxValue": 2,
"defaultValue": 0
},
{
"#": "32",
"label": "Speed 1",
"description": "Speed 1",
"valueSize": 2,
"unit": "Decimal",
"minValue": 1000,
"maxValue": 1500,
"defaultValue": 1200
},
{
"#": "33",
"label": "Speed 2",
"description": "Speed 2",
"valueSize": 2,
"unit": "Decimal",
"minValue": 1000,
"maxValue": 2000,
"defaultValue": 1800
},
{
"#": "34",
"label": "Speed 3",
"description": "Speed 3",
"valueSize": 2,
"unit": "Decimal",
"minValue": 1000,
"maxValue": 3000,
"defaultValue": 2750
},
{
"#": "35",
"label": "Speed 4",
"description": "Speed4",
"valueSize": 2,
"unit": "Decimal",
"minValue": 1000,
"maxValue": 3400,
"defaultValue": 3200
},
{
"#": "49",
"label": "Speed Max",
"description": "Speed-Max",
"valueSize": 2,
"unit": "Decimal",
"minValue": 1000,
"maxValue": 3450,
"defaultValue": 3450
}
],
"associations": {
"1": {
"label": "Lifeline",
"maxNodes": 5,
"isLifeline": true
}
},
"compat": [
{
// Fixes #4588: Firmware v3.4 has numerous bugs related to multi-endpoint support.
// Firmware v3.3 and v3.1 do not appear to have the same issues.
"$if": "firmwareVersion === 3.4",
"commandClasses": {
// Force use of MultiChannelCC v1.
"add": {
"0x60": {
"isSupported": true,
"version": 1
}
},
// The firmware handles requests on some endpoints incorrectly, often reporting garbage
// that confuses discovery or inhibits operation. Remove all of these broken CCs.
"remove": {
// BasicCC: All endpoints control the state of Switch 1 so only keep the root endpoint
// to reduce clutter and to handle received BASIC_SET events.
"0x20": {
"endpoints": [1, 2, 3, 4, 5]
},
// ManufacturerSpecificCC: Endpoint 1 erroneously reports an incorrect manufacturer
// and product ID, unlike on the root endpoint.
"0x72": {
"endpoints": [1]
},
// ClockCC: Endpoint 1 erroneously reports a time with an invalid minute field,
// unlike on the root endpoint.
"0x81": {
"endpoints": [1]
},
// AssociationCC: Endpoint 1 erroneously reports that it supports 133 associated nodes
// but association commands don't work at all, unlike on the root endpoint.
"0x85": {
"endpoints": [1]
},
// VersionCC: Endpoint 1 reports an unknown version, unlike on the root endpoint.
"0x86": {
"endpoints": [1]
}
}
},
// The device sometimes sends BASIC_SET to the lifeline association when the state of Switch 1
// changes but the value is always 0 so treat it as an event.
"treatBasicSetAsEvent": true
}
]
}