Skip to content

Troxlly Chlorine Generator TP #6142

Description

@boblisky

Log message

This is the output from python -m tinytuya wizard:
[TROXLLY Chlorinator      ]     - DPS: {'102': True, '105': 80, '108': True, '111': 867, '112': 0, '113': True, '114': 816, '116': 3500, '117': True, '118': 2972, '119': 2336, '120': 9, '121': 0, '122': 602, '123': 0, '126': 0, '128': 1000, '129': 970, '132': 800, '133': 0, '134': 0, '136': 816, '137': 'US', '138': 0, '139': 'V0.0.0'}

Here is an output during setup of the integration using my yaml below:
Device matches troxlly_chlorine_generator_TP with quality of 93%. LOCAL DPS: {"updated_at": 1789013716.3526485, "101": true, "102": false, "105": 80, "107": "4H", "108": true, "111": 842, "112": 0, "113": false, "114": 819, "116": 3500, "117": false, "118": 3013, "119": 66, "120": 0, "121": 0, "122": 0, "123": 0, "126": 3, "128": 1000, "129": 970, "132": 16300, "133": 0, "134": 0, "136": 819, "137": "US", "138": 0, "139": "V0.0.0"}

Product ID

jmuj45qjrngvc7ao

Product Name

Troxlly TP

DPS information

{
  "result": {
    "model": "{\"modelId\":\"e1nojcnw\",\"services\":[{\"actions\":[],\"code\":\"\",\"description\":\"\",\"events\":[],\"name\":\"\",\"properties\":[
{\"abilityId\":101,\"accessMode\":\"rw\",\"code\":\"power\",\"description\":\"\",\"extensions\":{\"iconName\":\"icon-dp_power\",\"scope\":\"\",\"attribute\":\"0\"},\"name\":\"不使用--开关\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":102,\"accessMode\":\"rw\",\"code\":\"strong_mode\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"强力模式\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":103,\"accessMode\":\"rw\",\"code\":\"winter_mode\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--冬季模式\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":104,\"accessMode\":\"ro\",\"code\":\"not_use_1\",\"description\":\"\",\"extensions\":{\"iconName\":\"\",\"scope\":\"\",\"attribute\":\"0\"},\"name\":\"未使用1\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":105,\"accessMode\":\"rw\",\"code\":\"level_lc150_above\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"目标氯输出\",\"typeSpec\":{\"type\":\"value\",\"max\":100,\"min\":0,\"scale\":0,\"step\":5,\"unit\":\"%\"}},
{\"abilityId\":106,\"accessMode\":\"rw\",\"code\":\"run_time\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--运行时间\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"4H\",\"8H\",\"12H\",\"24H\"]}},
{\"abilityId\":107,\"accessMode\":\"rw\",\"code\":\"cell_time\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--换极时间\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"4H\",\"8H\",\"12H\"]}},
{\"abilityId\":108,\"accessMode\":\"rw\",\"code\":\"temperature_unit\",\"description\":\"\",\"name\":\"单位\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":109,\"accessMode\":\"rw\",\"code\":\"salinity_enable\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--盐度检测\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":110,\"accessMode\":\"rw\",\"code\":\"flow_enable\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--水流检测\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":111,\"accessMode\":\"ro\",\"code\":\"temperature\",\"description\":\"\",\"name\":\"水温\",\"typeSpec\":{\"type\":\"value\",\"max\":3000,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":112,\"accessMode\":\"ro\",\"code\":\"error_code\",\"description\":\"\",\"name\":\"故障代码\",\"typeSpec\":{\"type\":\"value\",\"max\":20,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":113,\"accessMode\":\"ro\",\"code\":\"flow\",\"description\":\"\",\"name\":\"水流开关\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":114,\"accessMode\":\"rw\",\"code\":\"operated\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"清洁提醒\",\"typeSpec\":{\"type\":\"value\",\"max\":10000,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"H\"}},
{\"abilityId\":115,\"accessMode\":\"rw\",\"code\":\"device_type\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--dt\",\"typeSpec\":{\"type\":\"value\",\"max\":255,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":116,\"accessMode\":\"ro\",\"code\":\"salinity\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"当前盐度\",\"typeSpec\":{\"type\":\"value\",\"max\":10000,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"PPM\"}},
{\"abilityId\":117,\"accessMode\":\"ro\",\"code\":\"pwm_ok\",\"description\":\"\",\"name\":\"氯产生\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":118,\"accessMode\":\"ro\",\"code\":\"vee\",\"description\":\"\",\"name\":\"ve\",\"typeSpec\":{\"type\":\"value\",\"max\":4500,\"min\":0,\"scale\":2,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":119,\"accessMode\":\"ro\",\"code\":\"vele_p\",\"description\":\"\",\"name\":\"vp\",\"typeSpec\":{\"type\":\"value\",\"max\":4500,\"min\":0,\"scale\":2,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":120,\"accessMode\":\"ro\",\"code\":\"vele_n\",\"description\":\"\",\"name\":\"vn\",\"typeSpec\":{\"type\":\"value\",\"max\":4500,\"min\":0,\"scale\":2,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":121,\"accessMode\":\"ro\",\"code\":\"r_work\",\"description\":\"\",\"name\":\"r\",\"typeSpec\":{\"type\":\"value\",\"max\":4500,\"min\":0,\"scale\":2,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":122,\"accessMode\":\"ro\",\"code\":\"v_dim\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"dim\",\"typeSpec\":{\"type\":\"value\",\"max\":5000,\"min\":0,\"scale\":3,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":123,\"accessMode\":\"ro\",\"code\":\"hr\",\"description\":\"\",\"name\":\"hr\",\"typeSpec\":{\"type\":\"value\",\"max\":24,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":124,\"accessMode\":\"ro\",\"code\":\"min\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--min\",\"typeSpec\":{\"type\":\"value\",\"max\":60,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":125,\"accessMode\":\"ro\",\"code\":\"sec\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--sec\",\"typeSpec\":{\"type\":\"value\",\"max\":60,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":126,\"accessMode\":\"ro\",\"code\":\"c_hr\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"换极提醒\",\"typeSpec\":{\"type\":\"value\",\"max\":24,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"H\"}},
{\"abilityId\":127,\"accessMode\":\"ro\",\"code\":\"i25_percent\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--i25%\",\"typeSpec\":{\"type\":\"value\",\"max\":2000,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":128,\"accessMode\":\"ro\",\"code\":\"i50_percent\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--i50%\",\"typeSpec\":{\"type\":\"value\",\"max\":2000,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":129,\"accessMode\":\"ro\",\"code\":\"i100_percent\",\"description\":\"\",\"name\":\"i100%\",\"typeSpec\":{\"type\":\"value\",\"max\":2000,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":130,\"accessMode\":\"ro\",\"code\":\"r_percent\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--r%\",\"typeSpec\":{\"type\":\"value\",\"max\":200,\"min\":0,\"scale\":2,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":131,\"accessMode\":\"ro\",\"code\":\"salinity_status\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"不使用--salinity_status\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"nomal\",\"low\",\"high\"]}},
{\"abilityId\":132,\"accessMode\":\"rw\",\"code\":\"pool_gallon\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"泳池水量\",\"typeSpec\":{\"type\":\"value\",\"max\":1000000,\"min\":800,\"scale\":0,\"step\":100,\"unit\":\"\"}},
{\"abilityId\":133,\"accessMode\":\"ro\",\"code\":\"salt_addition\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"加盐量\",\"typeSpec\":{\"type\":\"value\",\"max\":1000000,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"KG\"}},
{\"abilityId\":134,\"accessMode\":\"ro\",\"code\":\"version\",\"description\":\"\",\"name\":\"version\",\"typeSpec\":{\"type\":\"value\",\"max\":1000,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"\"}},
{\"abilityId\":135,\"accessMode\":\"ro\",\"code\":\"not_use_2\",\"description\":\"\",\"name\":\"未使用2\",\"typeSpec\":{\"type\":\"bool\"}},
{\"abilityId\":136,\"accessMode\":\"ro\",\"code\":\"usage_hours\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"累计使用\",\"typeSpec\":{\"type\":\"value\",\"max\":100000,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"H\"}},
{\"abilityId\":137,\"accessMode\":\"rw\",\"code\":\"unit1\",\"description\":\"\",\"extensions\":{\"scope\":\"\"},\"name\":\"单位1\",\"typeSpec\":{\"type\":\"enum\",\"range\":[\"US\",\"METRIC\"]}},
{\"abilityId\":138,\"accessMode\":\"ro\",\"code\":\"salt_addition_lbs\",\"description\":\"\",\"extensions\":{\"iconName\":\"\",\"scope\":\"\",\"attribute\":\"0\"},\"name\":\"加盐量-LBS\",\"typeSpec\":{\"type\":\"value\",\"max\":1000000,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"LBS\"}},
{\"abilityId\":139,\"accessMode\":\"ro\",\"code\":\"version_str\",\"description\":\"\",\"name\":\"固件版本-字符串\",\"typeSpec\":{\"type\":\"string\",\"maxlen\":255}}]}]}"
  },
  "success": true,
  "t": 1788997773983,
  "tid": "1bb03a4eaca911f18d1efa4ad2c6b2c1"
}

Information about how the device functions

I own the TP 30. I got it working using your repo. I created the yaml below using info from the tuya developer site as described in your readme. I manually added the attached yaml to my custom components and it is working in my homeassistant.

https://troxlly.com/products/troxlly-tp-series-salt-chlorine-generator?variant=42783909249118

If you could please look it over and consider adding it to the list of devices, thanks.

troxlly_chlorine_generator_TP.yaml

The only thing I am not sure is working is the Salt Needed id:133 and 138. My pool currently has the correct amount of salt so the app is not currently recommending to add salt. So I am not sure if it's just not working because of that or something I did wrong. I got these errors:

Logger: custom_components.tuya_local.helpers.config
Source: custom_components/tuya_local/helpers/config.py:34
Integration: Tuya Local (documentation, issues)
First occurred: 12:15:21 AM (1 occurrence)
Last logged: 12:15:21 AM

Error adding event_salt_needed for troxlly_chlorine_generator_TP.yaml: 'event'

Logger: homeassistant.components.event
Source: helpers/entity_platform.py:499
Integration: Event (documentation, issues)
First occurred: 12:15:21 AM (1 occurrence)
Last logged: 12:15:21 AM

Error while setting up tuya_local platform for event: TROXLLY Chlorinator does not support use as a event device.
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 499, in _async_setup_platform
await asyncio.shield(awaitable)
File "/config/custom_components/tuya_local/event.py", line 19, in async_setup_entry
await async_tuya_setup_platform(
...<5 lines>...
)
File "/config/custom_components/tuya_local/helpers/config.py", line 42, in async_tuya_setup_platform
raise ValueError(f"{device.name} does not support use as a {platform} device.")
ValueError: TROXLLY Chlorinator does not support use as a event device.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    • Status
      🔖 Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions