zha-device-handlers
zha-device-handlers copied to clipboard
TS004F by _TZ3000_ja5osu5g
Problem description
This is a single button device, its working in a switch like manner, single press "on" double press "off"
_TZ3000_ja5osu5g TS004F Switch turned on 11:48:45 - 3 minutes ago _TZ3000_ja5osu5g TS004F Switch turned off 11:48:42 - 4 minutes ago
Solution description
I'd like to use this to open a garage door, is it possible to change the output to: single press / double press / long press
Screenshots/Video
Screenshots/Video
[Paste/upload your media here]
Device signature
Device signature
{
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4742, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
"endpoints": {
"1": {
"profile_id": "0x0104",
"device_type": "0x0000",
"input_clusters": [
"0x0000",
"0x0001",
"0x0003",
"0x0004",
"0x0006",
"0x1000",
"0xe001"
],
"output_clusters": [
"0x0003",
"0x0004",
"0x0006",
"0x0008",
"0x000a",
"0x0019",
"0x1000"
]
}
},
"manufacturer": "_TZ3000_ja5osu5g",
"model": "TS004F",
"class": "zigpy.device.Device"
}
Diagnostic information
Diagnostic information
{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2024.4.3",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.12.2",
"docker": true,
"arch": "aarch64",
"timezone": "Pacific/Auckland",
"os_name": "Linux",
"os_version": "6.1.63-haos-raspi",
"supervisor": "2024.04.0",
"host_os": "Home Assistant OS 11.5",
"docker_version": "24.0.7",
"chassis": "embedded",
"run_as_root": true
},
"custom_components": {
"hacs": {
"version": "1.27.2",
"requirements": [
"aiogithubapi>=22.2.4"
]
},
"pid_controller": {
"version": "v1.1.5",
"requirements": []
}
},
"integration_manifest": {
"domain": "zha",
"name": "Zigbee Home Automation",
"after_dependencies": [
"onboarding",
"usb"
],
"codeowners": [
"@dmulcahey",
"@adminiuga",
"@puddly",
"@TheJulianJES"
],
"config_flow": true,
"dependencies": [
"file_upload"
],
"documentation": "https://www.home-assistant.io/integrations/zha",
"iot_class": "local_polling",
"loggers": [
"aiosqlite",
"bellows",
"crccheck",
"pure_pcapy3",
"zhaquirks",
"zigpy",
"zigpy_deconz",
"zigpy_xbee",
"zigpy_zigate",
"zigpy_znp",
"universal_silabs_flasher"
],
"requirements": [
"bellows==0.38.1",
"pyserial==3.5",
"pyserial-asyncio==0.6",
"zha-quirks==0.0.114",
"zigpy-deconz==0.23.1",
"zigpy==0.63.5",
"zigpy-xbee==0.20.1",
"zigpy-zigate==0.12.0",
"zigpy-znp==0.12.1",
"universal-silabs-flasher==0.0.18",
"pyserial-asyncio-fast==0.11"
],
"usb": [
{
"vid": "10C4",
"pid": "EA60",
"description": "*2652*",
"known_devices": [
"slae.sh cc2652rb stick"
]
},
{
"vid": "10C4",
"pid": "EA60",
"description": "*slzb-07*",
"known_devices": [
"smlight slzb-07"
]
},
{
"vid": "1A86",
"pid": "55D4",
"description": "*sonoff*plus*",
"known_devices": [
"sonoff zigbee dongle plus v2"
]
},
{
"vid": "10C4",
"pid": "EA60",
"description": "*sonoff*plus*",
"known_devices": [
"sonoff zigbee dongle plus"
]
},
{
"vid": "10C4",
"pid": "EA60",
"description": "*tubeszb*",
"known_devices": [
"TubesZB Coordinator"
]
},
{
"vid": "1A86",
"pid": "7523",
"description": "*tubeszb*",
"known_devices": [
"TubesZB Coordinator"
]
},
{
"vid": "1A86",
"pid": "7523",
"description": "*zigstar*",
"known_devices": [
"ZigStar Coordinators"
]
},
{
"vid": "1CF1",
"pid": "0030",
"description": "*conbee*",
"known_devices": [
"Conbee II"
]
},
{
"vid": "0403",
"pid": "6015",
"description": "*conbee*",
"known_devices": [
"Conbee III"
]
},
{
"vid": "10C4",
"pid": "8A2A",
"description": "*zigbee*",
"known_devices": [
"Nortek HUSBZB-1"
]
},
{
"vid": "0403",
"pid": "6015",
"description": "*zigate*",
"known_devices": [
"ZiGate+"
]
},
{
"vid": "10C4",
"pid": "EA60",
"description": "*zigate*",
"known_devices": [
"ZiGate"
]
},
{
"vid": "10C4",
"pid": "8B34",
"description": "*bv 2010/10*",
"known_devices": [
"Bitron Video AV2010/10"
]
}
],
"zeroconf": [
{
"type": "_esphomelib._tcp.local.",
"name": "tube*"
},
{
"type": "_zigate-zigbee-gateway._tcp.local.",
"name": "*zigate*"
},
{
"type": "_zigstar_gw._tcp.local.",
"name": "*zigstar*"
},
{
"type": "_uzg-01._tcp.local.",
"name": "uzg-01*"
},
{
"type": "_slzb-06._tcp.local.",
"name": "slzb-06*"
}
],
"is_built_in": true
},
"data": {
"ieee": "**REDACTED**",
"nwk": 36009,
"manufacturer": "_TZ3000_ja5osu5g",
"model": "TS004F",
"name": "_TZ3000_ja5osu5g TS004F",
"quirk_applied": false,
"quirk_class": "zigpy.device.Device",
"quirk_id": null,
"manufacturer_code": 4742,
"power_source": "Battery or Unknown",
"lqi": 132,
"rssi": -67,
"last_seen": "2024-04-13T11:56:02",
"available": true,
"device_type": "EndDevice",
"signature": {
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4742, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
"endpoints": {
"1": {
"profile_id": "0x0104",
"device_type": "0x0000",
"input_clusters": [
"0x0000",
"0x0001",
"0x0003",
"0x0004",
"0x0006",
"0x1000",
"0xe001"
],
"output_clusters": [
"0x0003",
"0x0004",
"0x0006",
"0x0008",
"0x000a",
"0x0019",
"0x1000"
]
}
},
"manufacturer": "_TZ3000_ja5osu5g",
"model": "TS004F"
},
"active_coordinator": false,
"entities": [
{
"entity_id": "button.tz3000_ja5osu5g_ts004f_identify",
"name": "_TZ3000_ja5osu5g TS004F"
},
{
"entity_id": "select.tz3000_ja5osu5g_ts004f_start_up_behavior",
"name": "_TZ3000_ja5osu5g TS004F"
},
{
"entity_id": "sensor.tz3000_ja5osu5g_ts004f_battery",
"name": "_TZ3000_ja5osu5g TS004F"
},
{
"entity_id": "switch.tz3000_ja5osu5g_ts004f_switch",
"name": "_TZ3000_ja5osu5g TS004F"
},
{
"entity_id": "update.tz3000_ja5osu5g_ts004f_firmware",
"name": "_TZ3000_ja5osu5g TS004F"
}
],
"neighbors": [],
"routes": [],
"endpoint_names": [
{
"name": "ON_OFF_SWITCH"
}
],
"user_given_name": null,
"device_reg_id": "429c6db8f123ec96da88b23a23e43072",
"area_id": null,
"cluster_details": {
"1": {
"device_type": {
"name": "ON_OFF_SWITCH",
"id": 0
},
"profile_id": 260,
"in_clusters": {
"0x0000": {
"endpoint_attribute": "basic",
"attributes": {
"0x0004": {
"attribute_name": "manufacturer",
"value": "_TZ3000_ja5osu5g"
},
"0x0005": {
"attribute_name": "model",
"value": "TS004F"
}
},
"unsupported_attributes": {}
},
"0x0001": {
"endpoint_attribute": "power",
"attributes": {
"0x0021": {
"attribute_name": "battery_percentage_remaining",
"value": 200
},
"0x0020": {
"attribute_name": "battery_voltage",
"value": 30
}
},
"unsupported_attributes": {
"0x0031": {
"attribute_name": "battery_size"
},
"0x0033": {
"attribute_name": "battery_quantity"
}
}
},
"0x0003": {
"endpoint_attribute": "identify",
"attributes": {},
"unsupported_attributes": {}
},
"0x0004": {
"endpoint_attribute": "groups",
"attributes": {},
"unsupported_attributes": {}
},
"0x0006": {
"endpoint_attribute": "on_off",
"attributes": {
"0x0000": {
"attribute_name": "on_off",
"value": false
},
"0x4003": {
"attribute_name": "start_up_on_off",
"value": 1
}
},
"unsupported_attributes": {}
},
"0x1000": {
"endpoint_attribute": "lightlink",
"attributes": {},
"unsupported_attributes": {}
},
"0xe001": {
"endpoint_attribute": null,
"attributes": {},
"unsupported_attributes": {}
}
},
"out_clusters": {
"0x0019": {
"endpoint_attribute": "ota",
"attributes": {},
"unsupported_attributes": {}
},
"0x000a": {
"endpoint_attribute": "time",
"attributes": {},
"unsupported_attributes": {}
},
"0x0003": {
"endpoint_attribute": "identify",
"attributes": {},
"unsupported_attributes": {}
},
"0x0004": {
"endpoint_attribute": "groups",
"attributes": {},
"unsupported_attributes": {}
},
"0x0006": {
"endpoint_attribute": "on_off",
"attributes": {},
"unsupported_attributes": {}
},
"0x0008": {
"endpoint_attribute": "level",
"attributes": {},
"unsupported_attributes": {}
},
"0x1000": {
"endpoint_attribute": "lightlink",
"attributes": {},
"unsupported_attributes": {}
}
}
}
}
}
}
Logs
Logs
[Paste the logs here]
Custom quirk
Custom quirk
[Paste your custom quirk here]
Additional information
No response
Hey there, I got the same problem over here and I fixed it, here is how:
The quirk for the button already exists but it assumes that the Button is from the DeviceType
DIMMER_SWITCH
(0x0104).
Instead you Button is saying it's an ON_OFF_SWITCH
(0x0000) which is why ZHA won't load the right quirk.
To Fix this issue you have to install the quirk manually and change the DeviceType:
- Go into your HomeAssistant configuration directory where the configuration.yaml is located. Then make a new directory if it doesn't already exists called
zha_quirks
. - Go into the created directory and add the file from the following link ts004f.py.
- Edit the File and change line 335 (TuyaSmartRemote004FSK Class -> Signature -> Endpoints -> 1 -> DeviceType) from
zha.DeviceType.DIMMER_SWITCH
tozha.DeviceType.ON_OFF_SWITCH
- Go back into the config folder and edit your configuration.yaml. Add the following lines:
zha:
custom_quirks_path: /config/zha_quirks
- Restart HomeAssistant and see if the quirk now is getting used.
Maybe someone can look up how we can fix this longterm? A custom quirk should not be the longterm solution.
3. zha.DeviceType.ON_OFF_SWITCH
I can't get this working for the life of me either. My button presses don't even show up in events.
My button presses don't even show up in events.
If the signature shows the following the quirk isn’t getting loaded correctly:
"class": "zigpy.device.Device"
If you post your Signature here I could double check if your button is the one these topic goes about, not every button „TS004F _TZ3000_ja5oso5g“ is the same.
- zha.DeviceType.ON_OFF_SWITCH
I can't get this working for the life of me either. My button presses don't even show up in events.
If it doesn't show up at all press the button 3 times fast. This switches the mode then the events should show
My button presses don't even show up in events.
If the signature shows the following the quirk isn’t getting loaded correctly:
"class": "zigpy.device.Device"
If you post your Signature here I could double check if your button is the one these topic goes about, not every button „TS004F _TZ3000_ja5oso5g“ is the same.
Strike that, following your directions (and actually reading them thoroughly this time) seems to have fixed it. I hadn't changed the ON_OFF switch portion to the correct devices.