Skip to content

Request support for "InverCHLOR - Salt & Mineral Chlorinator" #3719

@acheronfail

Description

@acheronfail

Log message

This error originated from a custom integration.

Logger: custom_components.tuya_local.config_flow
Source: custom_components/tuya_local/config_flow.py:433
integration: Tuya Local (documentation, issues)
First occurred: 9:05:07 AM (1 occurrence)
Last logged: 9:05:07 AM

Device matches None with quality of 0%. DPS: {"updated_at": 1757547304.30917, "101": 1557, "103": true, "107": false, "109": 50, "120": 26, "122": "4", "125": 0, "126": 0, "127": "F3", "129": 0, "132": "smart", "134": false, "136": true, "145": 3}

Product ID

cplkrhlhx1sl0jz1

Product Name

InverCHLOR - Salt & Mineral Chlorinator

DPS information

{
  "result": {
    "model": "{\"modelId\":\"fw6ezk\",\"services\":[{\"actions\":[],\"code\":\"\",\"description\":\"\",\"events\":[],\"name\":\"默认服务\",\"properties\":[
{\"abilityId\":101,\"accessMode\":\"ro\",\"code\":\"con\",\"description\":\"\",\"extensions\":{\"trigger\":\"direct\"},\"name\":\"盐度\",\"typeSpec\":{\"type\":\"value\",\"max\":10000,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"ppm\"}},
{\"abilityId\":102,\"accessMode\":\"ro\",\"code\":\"temp1\",\"description\":\"\",\"extensions\":{\"trigger\":\"direct\"},\"name\":\"泳池水温\",\"typeSpec\":{\"type\":\"value\",\"max\":1000,\"min\":-1000,\"scale\":1,\"step\":1,\"unit\":\"℃\"}},
{\"abilityId\":103,\"accessMode\":\"rw\",\"code\":\"on_off\",\"description\":\"\",\"name\":\"开关机\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":104,\"accessMode\":\"rw\",\"code\":\"temp_unit\",\"description\":\"摄氏度、华摄氏度切换\",\"name\":\"温度单位切换\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":105,\"accessMode\":\"ro\",\"code\":\"temp2\",\"description\":\"\",\"extensions\":{\"trigger\":\"direct\"},\"name\":\"机箱温度\",\"typeSpec\":{\"type\":\"value\",\"max\":1000,\"min\":-1000,\"scale\":1,\"step\":1,\"unit\":\"℃\"}},
{\"abilityId\":106,\"accessMode\":\"ro\",\"code\":\"u\",\"description\":\"\",\"extensions\":{\"trigger\":\"direct\"},\"name\":\"电解电压\",\"typeSpec\":{\"type\":\"value\",\"max\":5000,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"V\"}},
{\"abilityId\":107,\"accessMode\":\"rw\",\"code\":\"turbo\",\"description\":\"turbo开关\",\"name\":\" 涡轮增压器\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":108,\"accessMode\":\"rw\",\"code\":\"orp_s\",\"description\":\"\",\"name\":\"设定ORP值\",\"typeSpec\":{\"type\":\"value\",\"max\":800,\"min\":650,\"scale\":0,\"step\":1,\"unit\":\"mv\"}},
{\"abilityId\":109,\"accessMode\":\"rw\",\"code\":\"size\",\"description\":\"\",\"name\":\"泳池体积\",\"typeSpec\":{\"type\":\"value\",\"max\":150,\"min\":5,\"scale\":0,\"step\":5,\"unit\":\"m³\"}},
{\"abilityId\":110,\"accessMode\":\"rw\",\"code\":\"ph_s\",\"description\":\"\",\"name\":\"设定PH值\",\"typeSpec\":{\"type\":\"value\",\"max\":76,\"min\":72,\"scale\":1,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":111,\"accessMode\":\"ro\",\"code\":\"orp\",\"description\":\"\",\"extensions\":{\"trigger\":\"direct\"},\"name\":\"ORP值\",\"typeSpec\":{\"type\":\"value\",\"max\":2000,\"min\":-2000,\"scale\":0,\"step\":1,\"unit\":\"mv\"}},
{\"abilityId\":112,\"accessMode\":\"ro\",\"code\":\"ph\",\"description\":\"\",\"extensions\":{\"trigger\":\"direct\"},\"name\":\"PH值\",\"typeSpec\":{\"type\":\"value\",\"max\":140,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":113,\"accessMode\":\"ro\",\"code\":\"output\",\"description\":\"\",\"extensions\":{\"trigger\":\"direct\"},\"name\":\"实际产氯量\",\"typeSpec\":{\"type\":\"value\",\"max\":200,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"%\"}},
{\"abilityId\":114,\"accessMode\":\"ro\",\"code\":\"no_flow\",\"description\":\"\",\"name\":\"无水流\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":115,\"accessMode\":\"ro\",\"code\":\"add_acid\",\"description\":\"\",\"name\":\"需要加酸\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":116,\"accessMode\":\"ro\",\"code\":\"need_calibrate\",\"description\":\"\",\"name\":\"需要校准\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":117,\"accessMode\":\"ro\",\"code\":\"add_salt\",\"description\":\"\",\"name\":\"加盐\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":118,\"accessMode\":\"ro\",\"code\":\"replace_sensors\",\"description\":\"\",\"name\":\"更换探头\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":119,\"accessMode\":\"ro\",\"code\":\"water_quality\",\"description\":\"\",\"name\":\"水质\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"WAIT\",\"GOOD\",\"GREAT\"]}},
{\"abilityId\":120,\"accessMode\":\"rw\",\"code\":\"electrolytic_chip_size\",\"description\":\"\",\"name\":\"电解片规格\",\"typeSpec\":{\"type\":\"value\",\"max\":100,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"g\"}},
{\"abilityId\":121,\"accessMode\":\"rw\",\"code\":\"timer_sw\",\"description\":\"\",\"name\":\"定时开关\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":122,\"accessMode\":\"rw\",\"code\":\"change_time\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"倒极时间\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\"]}},
{\"abilityId\":123,\"accessMode\":\"rw\",\"code\":\"check_con_flag\",\"description\":\"\",\"name\":\"实时检测盐度\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":124,\"accessMode\":\"ro\",\"code\":\"p\",\"description\":\"\",\"extensions\":{\"trigger\":\"direct\"},\"name\":\"电解功率\",\"typeSpec\":{\"type\":\"value\",\"max\":500000,\"min\":0,\"scale\":2,\"step\":1,\"unit\":\"W\"}},
{\"abilityId\":125,\"accessMode\":\"rw\",\"code\":\"expect_power\",\"description\":\"auto ph、smart、manual模式下手动设置产率量\",\"extensions\":{\"scope\":\"\"},\"name\":\"目标产率量\",\"typeSpec\":{\"type\":\"value\",\"max\":100,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"%\"}},
{\"abilityId\":126,\"accessMode\":\"rw\",\"code\":\"manual_acid\",\"description\":\"manual控制模式下手动设置每天的加酸量\",\"extensions\":{\"scope\":\"\"},\"name\":\"定时加酸量\",\"typeSpec\":{\"type\":\"value\",\"max\":6000,\"min\":0,\"scale\":0,\"step\":50,\"unit\":\"ml/day\"}},
{\"abilityId\":127,\"accessMode\":\"ro\",\"code\":\"board_config\",\"description\":\"\",\"name\":\"机器配置\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"F1\",\"F2\",\"F3\",\"F4\"]}},
{\"abilityId\":128,\"accessMode\":\"ro\",\"code\":\"show___\",\"description\":\"第一个字节(0:ORP显示DP111 1:ORP显示“---” 2:ORP显示“---”)\\n第二个字节(0:水温显示DP102 1:水温显示“--”  2:水温显示“--”)\\n第三个字节(0:PH显示DP112 1:PH显示“--”  2:PH显示“--”)\",\"name\":\"主页横杠显示\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}},
{\"abilityId\":129,\"accessMode\":\"ro\",\"code\":\"error_code\",\"description\":\"\",\"extensions\":{\"scope\":\"fault\"},\"name\":\"故障代码\",\"typeSpec\":{\"type\":\"bitmap\",\"label\":[\"E1\",\"E2\",\"E3\",\"E4\",\"E5\",\"E6\",\"E7\",\"E8\",\"E9\",\"E10\",\"A1\",\"A2\",\"A3\",\"A4\",\"A5\",\"A6\"],\"maxlen\":16}},
{\"abilityId\":130,\"accessMode\":\"ro\",\"code\":\"i\",\"description\":\"\",\"extensions\":{\"trigger\":\"direct\"},\"name\":\"电解电流\",\"typeSpec\":{\"type\":\"value\",\"max\":30000,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"A\"}},
{\"abilityId\":131,\"accessMode\":\"rw\",\"code\":\"customized_models\",\"description\":\"定制机型识别\",\"name\":\"定制机型\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"base\",\"Italian_water_pump\"]}},
{\"abilityId\":132,\"accessMode\":\"rw\",\"code\":\"work_mode\",\"description\":\"变频模式、控制模式、智能模式、手动模式\",\"extensions\":{\"scope\":\"\"},\"name\":\"工作模式\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"inverter\",\"auto_ph\",\"smart\",\"manual\"]}},
{\"abilityId\":133,\"accessMode\":\"ro\",\"code\":\"temp3\",\"description\":\"\",\"extensions\":{\"trigger\":\"direct\"},\"name\":\"泳池温度华摄氏度\",\"typeSpec\":{\"type\":\"value\",\"max\":2120,\"min\":-1480,\"scale\":1,\"step\":1,\"unit\":\"℉\"}},
{\"abilityId\":134,\"accessMode\":\"rw\",\"code\":\"salt_type\",\"description\":\"0表示Salt,1表示Mineral\",\"extensions\":{\"scope\":\"\"},\"name\":\"电解盐的类别\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":135,\"accessMode\":\"rw\",\"code\":\"timer\",\"description\":\"第一个字节\\ntrue/false\\ntrue:主机定时器1生效;false:主机定时器1失效\\n第二个字节\\ntrue/false\\ntrue:主机定时器2生效;false:主机定时器2失效\\n第三个字节\\n00~23\\n主机定时器1 ON 小时\\n第四个字节\\n00~59\\n主机定时器1 ON 分钟\\n第五个字节\\n00~23\\n主机定时器1 OFF 小时\\n第六个字节\\n00~59\\n主机定时器1 OFF 分钟\\n第七个字节\\n00~23\\n主机定时器2 ON 小时\\n第八个字节\\n00~59\\n主机定时器2 ON 分钟\\n第九个字节\\n00~23\\n主机定时器2 OFF小时\\n第十个字节\\n00~59\\n主机定时器2 OFF 分钟\",\"name\":\"定时器\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}},
{\"abilityId\":136,\"accessMode\":\"ro\",\"code\":\"cell_polarity\",\"description\":\"\",\"name\":\"电解片极性\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":145,\"accessMode\":\"ro\",\"code\":\"cell_life\",\"description\":\"\",\"name\":\"电解片寿命\",\"typeSpec\":{\"type\":\"value\",\"max\":100000,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"Hrs\"}},
{\"abilityId\":152,\"accessMode\":\"wr\",\"code\":\"enter_app_upload_flag\",\"description\":\"app下发1触发设备端加快上报频率,持续60秒\",\"name\":\"进入APP上报触发\",\"typeSpec\":{\"type\":\"bool\"}}]}]}"
  },
  "success": true,
  "t": 1757548780446,
  "tid": "36c88ff78ea211f0a25e9ed280a40f39"
}
This is the JSON under the `result.model` prettified:
{
  "modelId": "fw6ezk",
  "services": [
    {
      "actions": [],
      "code": "",
      "description": "",
      "events": [],
      "name": "默认服务",
      "properties": [
        {
          "abilityId": 101,
          "accessMode": "ro",
          "code": "con",
          "description": "",
          "extensions": {
            "trigger": "direct"
          },
          "name": "盐度",
          "typeSpec": {
            "type": "value",
            "max": 10000,
            "min": 0,
            "scale": 0,
            "step": 1,
            "unit": "ppm"
          }
        },
        {
          "abilityId": 102,
          "accessMode": "ro",
          "code": "temp1",
          "description": "",
          "extensions": {
            "trigger": "direct"
          },
          "name": "泳池水温",
          "typeSpec": {
            "type": "value",
            "max": 1000,
            "min": -1000,
            "scale": 1,
            "step": 1,
            "unit": ""
          }
        },
        {
          "abilityId": 103,
          "accessMode": "rw",
          "code": "on_off",
          "description": "",
          "name": "开关机",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 104,
          "accessMode": "rw",
          "code": "temp_unit",
          "description": "摄氏度、华摄氏度切换",
          "name": "温度单位切换",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 105,
          "accessMode": "ro",
          "code": "temp2",
          "description": "",
          "extensions": {
            "trigger": "direct"
          },
          "name": "机箱温度",
          "typeSpec": {
            "type": "value",
            "max": 1000,
            "min": -1000,
            "scale": 1,
            "step": 1,
            "unit": ""
          }
        },
        {
          "abilityId": 106,
          "accessMode": "ro",
          "code": "u",
          "description": "",
          "extensions": {
            "trigger": "direct"
          },
          "name": "电解电压",
          "typeSpec": {
            "type": "value",
            "max": 5000,
            "min": 0,
            "scale": 1,
            "step": 1,
            "unit": "V"
          }
        },
        {
          "abilityId": 107,
          "accessMode": "rw",
          "code": "turbo",
          "description": "turbo开关",
          "name": " 涡轮增压器",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 108,
          "accessMode": "rw",
          "code": "orp_s",
          "description": "",
          "name": "设定ORP值",
          "typeSpec": {
            "type": "value",
            "max": 800,
            "min": 650,
            "scale": 0,
            "step": 1,
            "unit": "mv"
          }
        },
        {
          "abilityId": 109,
          "accessMode": "rw",
          "code": "size",
          "description": "",
          "name": "泳池体积",
          "typeSpec": {
            "type": "value",
            "max": 150,
            "min": 5,
            "scale": 0,
            "step": 5,
            "unit": ""
          }
        },
        {
          "abilityId": 110,
          "accessMode": "rw",
          "code": "ph_s",
          "description": "",
          "name": "设定PH值",
          "typeSpec": {
            "type": "value",
            "max": 76,
            "min": 72,
            "scale": 1,
            "step": 1,
            "unit": ""
          }
        },
        {
          "abilityId": 111,
          "accessMode": "ro",
          "code": "orp",
          "description": "",
          "extensions": {
            "trigger": "direct"
          },
          "name": "ORP值",
          "typeSpec": {
            "type": "value",
            "max": 2000,
            "min": -2000,
            "scale": 0,
            "step": 1,
            "unit": "mv"
          }
        },
        {
          "abilityId": 112,
          "accessMode": "ro",
          "code": "ph",
          "description": "",
          "extensions": {
            "trigger": "direct"
          },
          "name": "PH值",
          "typeSpec": {
            "type": "value",
            "max": 140,
            "min": 0,
            "scale": 1,
            "step": 1,
            "unit": ""
          }
        },
        {
          "abilityId": 113,
          "accessMode": "ro",
          "code": "output",
          "description": "",
          "extensions": {
            "trigger": "direct"
          },
          "name": "实际产氯量",
          "typeSpec": {
            "type": "value",
            "max": 200,
            "min": 0,
            "scale": 0,
            "step": 1,
            "unit": "%"
          }
        },
        {
          "abilityId": 114,
          "accessMode": "ro",
          "code": "no_flow",
          "description": "",
          "name": "无水流",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 115,
          "accessMode": "ro",
          "code": "add_acid",
          "description": "",
          "name": "需要加酸",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 116,
          "accessMode": "ro",
          "code": "need_calibrate",
          "description": "",
          "name": "需要校准",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 117,
          "accessMode": "ro",
          "code": "add_salt",
          "description": "",
          "name": "加盐",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 118,
          "accessMode": "ro",
          "code": "replace_sensors",
          "description": "",
          "name": "更换探头",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 119,
          "accessMode": "ro",
          "code": "water_quality",
          "description": "",
          "name": "水质",
          "typeSpec": {
            "type": "enum",
            "range": [
              "WAIT",
              "GOOD",
              "GREAT"
            ]
          }
        },
        {
          "abilityId": 120,
          "accessMode": "rw",
          "code": "electrolytic_chip_size",
          "description": "",
          "name": "电解片规格",
          "typeSpec": {
            "type": "value",
            "max": 100,
            "min": 0,
            "scale": 0,
            "step": 1,
            "unit": "g"
          }
        },
        {
          "abilityId": 121,
          "accessMode": "rw",
          "code": "timer_sw",
          "description": "",
          "name": "定时开关",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 122,
          "accessMode": "rw",
          "code": "change_time",
          "description": "",
          "extensions": {
            "scope": ""
          },
          "name": "倒极时间",
          "typeSpec": {
            "type": "enum",
            "range": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10"
            ]
          }
        },
        {
          "abilityId": 123,
          "accessMode": "rw",
          "code": "check_con_flag",
          "description": "",
          "name": "实时检测盐度",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 124,
          "accessMode": "ro",
          "code": "p",
          "description": "",
          "extensions": {
            "trigger": "direct"
          },
          "name": "电解功率",
          "typeSpec": {
            "type": "value",
            "max": 500000,
            "min": 0,
            "scale": 2,
            "step": 1,
            "unit": "W"
          }
        },
        {
          "abilityId": 125,
          "accessMode": "rw",
          "code": "expect_power",
          "description": "auto ph、smart、manual模式下手动设置产率量",
          "extensions": {
            "scope": ""
          },
          "name": "目标产率量",
          "typeSpec": {
            "type": "value",
            "max": 100,
            "min": 0,
            "scale": 0,
            "step": 1,
            "unit": "%"
          }
        },
        {
          "abilityId": 126,
          "accessMode": "rw",
          "code": "manual_acid",
          "description": "manual控制模式下手动设置每天的加酸量",
          "extensions": {
            "scope": ""
          },
          "name": "定时加酸量",
          "typeSpec": {
            "type": "value",
            "max": 6000,
            "min": 0,
            "scale": 0,
            "step": 50,
            "unit": "ml/day"
          }
        },
        {
          "abilityId": 127,
          "accessMode": "ro",
          "code": "board_config",
          "description": "",
          "name": "机器配置",
          "typeSpec": {
            "type": "enum",
            "range": [
              "F1",
              "F2",
              "F3",
              "F4"
            ]
          }
        },
        {
          "abilityId": 128,
          "accessMode": "ro",
          "code": "show___",
          "description": "第一个字节(0:ORP显示DP111 1:ORP显示“---” 2:ORP显示“---”)\n第二个字节(0:水温显示DP102 1:水温显示“--”  2:水温显示“--”)\n第三个字节(0:PH显示DP112 1:PH显示“--”  2:PH显示“--”)",
          "name": "主页横杠显示",
          "typeSpec": {
            "type": "raw",
            "maxlen": 128
          }
        },
        {
          "abilityId": 129,
          "accessMode": "ro",
          "code": "error_code",
          "description": "",
          "extensions": {
            "scope": "fault"
          },
          "name": "故障代码",
          "typeSpec": {
            "type": "bitmap",
            "label": [
              "E1",
              "E2",
              "E3",
              "E4",
              "E5",
              "E6",
              "E7",
              "E8",
              "E9",
              "E10",
              "A1",
              "A2",
              "A3",
              "A4",
              "A5",
              "A6"
            ],
            "maxlen": 16
          }
        },
        {
          "abilityId": 130,
          "accessMode": "ro",
          "code": "i",
          "description": "",
          "extensions": {
            "trigger": "direct"
          },
          "name": "电解电流",
          "typeSpec": {
            "type": "value",
            "max": 30000,
            "min": 0,
            "scale": 1,
            "step": 1,
            "unit": "A"
          }
        },
        {
          "abilityId": 131,
          "accessMode": "rw",
          "code": "customized_models",
          "description": "定制机型识别",
          "name": "定制机型",
          "typeSpec": {
            "type": "enum",
            "range": [
              "base",
              "Italian_water_pump"
            ]
          }
        },
        {
          "abilityId": 132,
          "accessMode": "rw",
          "code": "work_mode",
          "description": "变频模式、控制模式、智能模式、手动模式",
          "extensions": {
            "scope": ""
          },
          "name": "工作模式",
          "typeSpec": {
            "type": "enum",
            "range": [
              "inverter",
              "auto_ph",
              "smart",
              "manual"
            ]
          }
        },
        {
          "abilityId": 133,
          "accessMode": "ro",
          "code": "temp3",
          "description": "",
          "extensions": {
            "trigger": "direct"
          },
          "name": "泳池温度华摄氏度",
          "typeSpec": {
            "type": "value",
            "max": 2120,
            "min": -1480,
            "scale": 1,
            "step": 1,
            "unit": ""
          }
        },
        {
          "abilityId": 134,
          "accessMode": "rw",
          "code": "salt_type",
          "description": "0表示Salt,1表示Mineral",
          "extensions": {
            "scope": ""
          },
          "name": "电解盐的类别",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 135,
          "accessMode": "rw",
          "code": "timer",
          "description": "第一个字节\ntrue/false\ntrue:主机定时器1生效;false:主机定时器1失效\n第二个字节\ntrue/false\ntrue:主机定时器2生效;false:主机定时器2失效\n第三个字节\n00~23\n主机定时器1 ON 小时\n第四个字节\n00~59\n主机定时器1 ON 分钟\n第五个字节\n00~23\n主机定时器1 OFF 小时\n第六个字节\n00~59\n主机定时器1 OFF 分钟\n第七个字节\n00~23\n主机定时器2 ON 小时\n第八个字节\n00~59\n主机定时器2 ON 分钟\n第九个字节\n00~23\n主机定时器2 OFF小时\n第十个字节\n00~59\n主机定时器2 OFF 分钟",
          "name": "定时器",
          "typeSpec": {
            "type": "raw",
            "maxlen": 128
          }
        },
        {
          "abilityId": 136,
          "accessMode": "ro",
          "code": "cell_polarity",
          "description": "",
          "name": "电解片极性",
          "typeSpec": {
            "type": "bool"
          }
        },
        {
          "abilityId": 145,
          "accessMode": "ro",
          "code": "cell_life",
          "description": "",
          "name": "电解片寿命",
          "typeSpec": {
            "type": "value",
            "max": 100000,
            "min": 0,
            "scale": 0,
            "step": 1,
            "unit": "Hrs"
          }
        },
        {
          "abilityId": 152,
          "accessMode": "wr",
          "code": "enter_app_upload_flag",
          "description": "app下发1触发设备端加快上报频率,持续60秒",
          "name": "进入APP上报触发",
          "typeSpec": {
            "type": "bool"
          }
        }
      ]
    }
  ]
}

Information about how the device functions

This is an automatic chlorinator for a home pool setup.

Key:

  • 🚫 - read only
  • ✍️ - read write
  • 🟢 - required functionality
  • 🟡 - functionality not available unless additional dosing unit is connected
  • ⚪ - optional functionality - I don't think this is required for the integration but would be "nice to have"

Looking through the data I see:

  • detecting the salt levels (concentration) in the pool (measured in ppm)
    • abilityId: 101 or code: con 🚫🟢
  • detecting pool water temp
    • abilityId: 102 or code: temp1 🚫🟢
  • this turns the unit itself on or off
    • if it's set to "auto" mode, when it's on and the time is within the timer the pool pump will turn on
    • if it's set to "manual" then the pool pump will always be on when this is on
    • abilityId: 103 or code: on_off ✍️🟢
  • switch between C and F units
    • abilityId: 104 or code: temp_unit ✍️⚪
    • note marked as optional since we can export temp1, temp2 and temp3 sensors to HA and perform conversion there if needed
  • detecting chassis water temp
    • abilityId: 105 or code: temp2 🚫🟢
  • detect electrolysis voltage
    • abilityId: 106 or code: u 🚫🟢
  • ability to enable "boost" mode which increases chlorine production
    • abilityId: 107 or code: turbo ✍️🟢
  • set a target ORP (Oxidation-Reduction Potential) note this isn't available in the app itself
    • abilityId: 108 or code: orp_s ✍️⚪
  • configure the pool volume in m^3
    • abilityId: 109 or code: size ✍️🟢
  • configure target pH (note only works if the separate acid doser unit is connected)
    • abilityId: 110 or code: ph_s ✍️🟡
  • read ORP value
    • abilityId: 111 or code: orp 🚫⚪
  • read pH value
    • abilityId: 112 or code: ph 🚫🟢
  • read actual chlorine production (measured as %)
    • abilityId: 113 or code: output 🚫🟢
  • the following are booleans indicating alert conditions:
    • abilityId: 114 or code: no_flow: No water flow
    • abilityId: 115 or code: add_acid: Need to add acid
    • abilityId: 116 or code: need_calibrate: Need to calibrate
    • abilityId: 117 or code: add_salt: Need to add salt
    • abilityId: 118 or code: replace_sensors: Need to add salt
    • abilityId: 119 or code: water_quality: enum value for water quality
  • turn on/off salinity detection (this would be paired with 101)
    • abilityId: 123 or code: check_con_flag ✍️🟢
  • detect Electrolysis power (W)
    • abilityId: 124 or code: p 🚫🟢
  • set Target Yield (measured in %) - I believe this refers to the 101 value (AKA mg of chlorine/hour)
    • abilityId: 125 or code: expect_power ✍️🟢
  • manually set dosage of acid (when additional unit connected)
    • abilityId: 126 or code: manual_acid ✍️🟡
  • show machine configuration? I don't know what this is - potentially different setups or operating modes
    • abilityId: 127 or code: board_config 🚫⚪
  • this is some raw format of bytes I think for a display?
    • abilityId: 128 or code: show___ 🚫⚪
    • its description contains instructions for how to decode it
    • I don't think it's necessary given we have the other detectors available?
  • error or fault sensor - looks like an enum/bitmap
    • abilityId: 129 or code: error_code 🚫🟢
  • electrolysis current (A) - good to pair with 124 and 106
    • abilityId: 130 or code: i 🚫🟢
  • this controls whether it's the "base" model or some other customised model - likely not needed
    • abilityId: 131 or code: customized_models ✍️
  • configure which mode this pump is using (enum)
    • abilityId: 132 or code: work_mode ✍️🟢
  • pool water temp in F
    • abilityId: 133 or code: temp3 🚫🟢
  • configure salt type
    • abilityId: 134 or code: salt_type ✍️🟢
    • 0/false means "Salt", 1/true means "Mineral"
  • timer configuration - raw format
    • abilityId: 135 or code: timer ✍️⚪
    • Note I marked this as optional, since we should be able to do timers from HA
    • First Byte: true/false - Enable/Disable Host Timer 1
    • Second Byte: true/false - Enable/Disable Host Timer 2
    • Third Byte: 00~23 - Hour Host Timer 1 ON
    • Fourth Byte: 00~59 - Minute Host Timer 1 ON
    • Fifth Byte: 00~23 - Hour Host Timer 1 OFF
    • Sixth Byte: 00~59 - Minute Host Timer 1 OFF
    • Seventh Byte: 00~23 - Hour Host Timer 2 ON
    • Eighth Byte: 00~59 - Minute Host Timer 2 ON
    • Ninth Byte: 00~23 - Hour Host Timer 2 OFF
    • Tenth Byte: 00~59 - Minute Host Timer 2 OFF
  • electrolyte polarity
    • abilityId: 136 or code: cell_polarity ✍️🟢

Product page: https://madimack.com/au/products/water-treatment/inverchlor
User manual: https://madimack.com/hubfs/2023/MacBlack%20page%20for%20AU/Brochures/Madimack-InverCHLOR-User-Manual.pdf?hsLang=en-us

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions