-
Notifications
You must be signed in to change notification settings - Fork 731
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tuya water valve (TS0049 by _TZ3210_0jxeoadc) #2377
Comments
It would be great, I have same device !! |
I just bought one of these as well, hoping to get it working. Seems like not yet! Would love to have support, as a renter its nearly impossible to get a hose valve I can simply switch on and off without HACS and cloud services and timings and checking weather schedules (looking at you, Orbit). My setup would greatly benefit from the simplicity of my end points just being on/off switches! |
I also bought one of these irrigation valves. ZHA has not a quirk for a moment (at least I found nothing), but Zigbee2MQTT already developed some workaround. Can anybody from development team check following link it the provided code helo to build up a quirk for that device? |
I have one too. I try create a quirks but only get a show a useless switch. The switch stage change but it don't do nothing. |
Have you guys found a custom solution for this? It would really great if this valve could be added to ZHA. |
I tried to put the pieces together for a custom quirk but was not successful. The quirk was applied successfully, switch status is shown in the UI, it reacts to the physical button press, but it is not possible to control it from the UI. Zigbee2MQTT implementation had to send some custom command to activate it, but I am a complete novice with ZHA quirks and Zigbee itself. Anyway, if anyone wants to continue, here is the starting point for a quirk. from typing import Dict
from zigpy.profiles import zha
from zigpy.quirks import CustomDevice
import zigpy.types as t
from zigpy.zcl import foundation
from zigpy.zcl.clusters.general import Basic, Groups, Identify, OnOff, Ota, Scenes, Time
from zigpy.zcl.clusters.smartenergy import Metering
from zhaquirks import DoublingPowerConfigurationCluster
from zhaquirks.const import (
DEVICE_TYPE,
ENDPOINTS,
INPUT_CLUSTERS,
MODELS_INFO,
OUTPUT_CLUSTERS,
PROFILE_ID,
)
from zhaquirks.tuya import (
TUYA_SET_DATA,
TuyaLocalCluster,
TuyaNewManufCluster,
TuyaZBExternalSwitchTypeCluster,
TuyaPowerConfigurationCluster2AA,
)
from zhaquirks.tuya.mcu import (
DPToAttributeMapping,
EnchantedDevice,
TuyaMCUCluster,
TuyaOnOff,
TuyaOnOffNM,
TuyaPowerConfigurationCluster,
)
class TuyaFJKZYellowValveManufCluster(TuyaMCUCluster):
"""Manufacturer Specific Cluster for the _TZ3210_0jxeoadc water valve sold as RAIN SEER FJKZ005C-Y."""
# class BatteryState(t.enum8):
# """Battery state option."""
# Low = 0x00
# Medium = 0x01
# High = 0x02
attributes = TuyaMCUCluster.attributes.copy()
dp_to_attribute: Dict[int, DPToAttributeMapping] = {
101: DPToAttributeMapping(
TuyaOnOff.ep_attribute,
"on_off",
),
102: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"dp_2",
),
103: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"dp_3",
),
105: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"dp_5",
),
106: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"dp_6",
),
109: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"dp_9",
),
110: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"dp_110",
),
111: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"dp_111",
),
115: DPToAttributeMapping(
TuyaPowerConfigurationCluster.ep_attribute,
"battery_status",
),
}
data_point_handlers = {
101: "_dp_2_attr_update",
102: "_dp_2_attr_update",
103: "_dp_2_attr_update",
105: "_dp_2_attr_update",
106: "_dp_2_attr_update",
109: "_dp_2_attr_update",
110: "_dp_2_attr_update",
111: "_dp_2_attr_update",
115: "_dp_2_attr_update",
}
class TuyaFJKZYellowValve(EnchantedDevice):
signature = {
MODELS_INFO: [("_TZ3210_0jxeoadc", "TS0049")],
ENDPOINTS: {
# <SimpleDescriptor endpoint=1 profile=260 device_type=266
# device_version=1
# input_clusters=[0, 61184]
# output_clusters=[10, 25]>
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH,
INPUT_CLUSTERS: [
Basic.cluster_id,
TuyaFJKZYellowValveManufCluster.cluster_id,
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
},
}
replacement = {
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH,
INPUT_CLUSTERS: [
Basic.cluster_id,
TuyaOnOff,
TuyaPowerConfigurationCluster,
TuyaFJKZYellowValveManufCluster,
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
},
} |
Thanks @Margriko, I have tried it and it is working as you said. cannot control the switch from home assistant but can see the status changing when I physically press the button. For the time I use a work around and combine it with a finger bot. the finger bot presses and status changes in home assistant. not ideal but it works for now. Hope someone will manage to totally fix it and make it work properly so I can use the fingerbot elsewhere. |
log output: "data": { |
Hi, They had the same issue in Z2M, and this was because of that: |
hi everyone, any idea, if this will be ever available please ? |
FWIW I would like to add my voice to this request :) |
I have a test to do but as I am not close to the device this week, so I cannot test it myself now. |
Thanks, but the behaviour is the same as described above for me... |
I finally decided to go with Z2M because I have another device that is not supported, I was just at the beginning of my setup and estimated that I will spend less time setting up Z2M than trying to blindly fix the quirks. |
I can understand that, for me this is the only device out of quite a few which is not yet supported, so I'm sticking with ZHA for the time being. Good luck! |
So I found this over at Z2MQTT, which is the converter for the device. I can see that a special conversion has been set up for the Switch and Timer for the valve, but I have no idea how to convert this into the required code for a quirk. Any ideas? const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); const TS0049_ValueConverter = { const definition = { |
Is the device fully functionnal with Z2M ? Thank you . |
Hi,
Yes, the device is working fine in Z2M. Here are the entities that has been
added to HA:
https://github.com/zigpy/zha-device-handlers/assets/40169798/59c8f464-d437-434d-b888-bc12bb946bae
Regards
|
So with some trial and error, (mostly the latter :) ) and borrowing other bits of code I found a way to control the valve. It is throwing warning messages which I haven't eliminated yet but it is a start... from typing import Any, Dict, Optional, Union
from zigpy.profiles import zha
from zigpy.quirks import CustomDevice
import zigpy.types as t
from zigpy.zcl import foundation
from zigpy.zcl.clusters.general import Basic, Identify, OnOff, Ota, Time
from zigpy.zcl.clusters.smartenergy import Metering
from zhaquirks import DoublingPowerConfigurationCluster
from zhaquirks.const import (
DEVICE_TYPE,
ENDPOINTS,
INPUT_CLUSTERS,
MODELS_INFO,
OUTPUT_CLUSTERS,
PROFILE_ID,
)
from zhaquirks.tuya import (
TUYA_SEND_DATA,
# TuyaLocalCluster,
)
from zhaquirks.tuya.mcu import (
DPToAttributeMapping,
EnchantedDevice,
TuyaMCUCluster,
TuyaOnOff,
TuyaPowerConfigurationCluster,
)
class TuyaValveFamilyCluster(TuyaMCUCluster):
"""On/Off Tuya family cluster with extra device attributes"""
attributes = TuyaMCUCluster.attributes.copy()
async def command(
self,
command_id: Union[foundation.GeneralCommand, int, t.uint8_t],
*args,
manufacturer: Optional[Union[int, t.uint16_t]] = None,
expect_reply: bool = True,
tsn: Optional[Union[int, t.uint8_t]] = None,
**kwargs: Any,
):
"""Override the default Cluster command."""
self.debug("Setting the NO manufacturer id in command: %s", command_id)
return await super().command(
TUYA_SEND_DATA,
*args,
manufacturer=foundation.ZCLHeader.NO_MANUFACTURER_ID,
expect_reply=expect_reply,
tsn=tsn,
**kwargs,
)
dp_to_attribute: Dict[int, DPToAttributeMapping] = {
26: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"error_status",
),
101: DPToAttributeMapping(
TuyaOnOff.ep_attribute,
"on_off",
),
110: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"dp_110",
),
111: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"irrigation_time",
),
115: DPToAttributeMapping(
TuyaPowerConfigurationCluster.ep_attribute,
"battery_state",
),
}
data_point_handlers = {
26: "_dp_2_attr_update",
101: "_dp_2_attr_update",
110: "_dp_2_attr_update",
111: "_dp_2_attr_update",
115: "_dp_2_attr_update",
}
class TuyaIrrigationValve(EnchantedDevice):
"""Tuya green irrigation valve device."""
signature = {
MODELS_INFO: [("_TZ3210_0jxeoadc", "TS0049")],
ENDPOINTS: {
# <SimpleDescriptor endpoint=1 profile=260 device_type=0
# device_version=1
# input_clusters=[0, 61184]
# output_clusters=[10, 25]>
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH,
INPUT_CLUSTERS: [
Basic.cluster_id,
TuyaValveFamilyCluster.cluster_id,
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
},
}
replacement = {
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH,
INPUT_CLUSTERS: [
Basic.cluster_id,
TuyaOnOff,
TuyaPowerConfigurationCluster,
TuyaValveFamilyCluster
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
},
} |
I will try it out If I have some time during the weekend.... what sort of warning messages do you get? |
I get these: This is the pair I get when I turn the valve on. I get another pair when I turn the valve off which are the same except for the last digit which is a zero. From what I can gather, the warning seems to be triggered by a response coming back from the valve but I could be wrong :) |
Hi, I did some minor changes to expose the irrigation_timer in the cluster settings in ZHA. This way you can set a different maximum duration for the cycle directly from HomeAssistant. Still trying to understand the warnings and the override of the command function... I am also curious about how to read the battery status properly.... from typing import Any, Dict, Optional, Union
from zigpy.profiles import zha
from zigpy.quirks import CustomDevice
import zigpy.types as t
from zigpy.zcl import foundation
from zigpy.zcl.clusters.general import Basic, Identify, OnOff, Ota, Time
from zigpy.zcl.clusters.smartenergy import Metering
from zhaquirks import DoublingPowerConfigurationCluster
from zhaquirks.const import (
DEVICE_TYPE,
ENDPOINTS,
INPUT_CLUSTERS,
MODELS_INFO,
OUTPUT_CLUSTERS,
PROFILE_ID,
)
from zhaquirks.tuya import (
TUYA_SEND_DATA,
# TuyaLocalCluster,
)
from zhaquirks.tuya.mcu import (
DPToAttributeMapping,
EnchantedDevice,
TuyaMCUCluster,
TuyaOnOff,
TuyaPowerConfigurationCluster,
)
class TuyaValveFamilyCluster(TuyaMCUCluster):
"""On/Off Tuya family cluster with extra device attributes"""
attributes = TuyaMCUCluster.attributes.copy()
attributes.update(
{
0xEF01: ("irrigation_time", t.uint32_t, True),
0xEF02: ("dp_110", t.uint32_t, True),
0xEF03: ("error_status", t.uint32_t, True),
}
)
async def command(
self,
command_id: Union[foundation.GeneralCommand, int, t.uint8_t],
*args,
manufacturer: Optional[Union[int, t.uint16_t]] = None,
expect_reply: bool = True,
tsn: Optional[Union[int, t.uint8_t]] = None,
**kwargs: Any,
):
"""Override the default Cluster command."""
self.debug("Setting the NO manufacturer id in command: %s", command_id)
return await super().command(
TUYA_SEND_DATA,
*args,
manufacturer=foundation.ZCLHeader.NO_MANUFACTURER_ID,
expect_reply=expect_reply,
tsn=tsn,
**kwargs,
)
dp_to_attribute: Dict[int, DPToAttributeMapping] = {
26: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"error_status",
),
101: DPToAttributeMapping(
TuyaOnOff.ep_attribute,
"on_off",
),
110: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"dp_110",
),
111: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"irrigation_time",
),
115: DPToAttributeMapping(
TuyaPowerConfigurationCluster.ep_attribute,
"battery_percentage_remaining",
),
}
data_point_handlers = {
26: "_dp_2_attr_update",
101: "_dp_2_attr_update",
110: "_dp_2_attr_update",
111: "_dp_2_attr_update",
115: "_dp_2_attr_update",
}
class TuyaIrrigationValve(EnchantedDevice):
"""Tuya green irrigation valve device."""
signature = {
MODELS_INFO: [("_TZ3210_0jxeoadc", "TS0049")],
ENDPOINTS: {
# <SimpleDescriptor endpoint=1 profile=260 device_type=0
# device_version=1
# input_clusters=[0, 61184]
# output_clusters=[10, 25]>
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH,
INPUT_CLUSTERS: [
Basic.cluster_id,
TuyaValveFamilyCluster.cluster_id,
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
},
}
replacement = {
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH,
INPUT_CLUSTERS: [
Basic.cluster_id,
TuyaOnOff,
TuyaPowerConfigurationCluster,
TuyaValveFamilyCluster
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
},
} |
Hi danpeig, After reloading, the new quirk, I didn't see any difference but after deleting the device and re-adding it I am getting a Battery reading, although it is only 2% (seems very low). I haven't seen any additional Entities exposed regarding the Irrigation timer, or is this meant to be controlled another way? The switch is definitely still working :) |
The battery value is not a percentage. it have 3 values: Low = 0x00 So, is necessary a custom battery converter. |
Thanks, That explains why the battery values I was getting were 1 or 2. |
Conversion from 0, 1, 2 to %: 115: DPToAttributeMapping(
TuyaPowerConfigurationCluster.ep_attribute,
"battery_percentage_remaining",
converter=lambda x: x * 50, # Adjust percen
tage
), |
I would use (x+1)*33 HIGH = 99
|
A little improvement battery from typing import Any, Dict, Optional, Union
import zigpy.types as t
from zhaquirks import DoublingPowerConfigurationCluster
from zhaquirks.const import (
DEVICE_TYPE,
ENDPOINTS,
INPUT_CLUSTERS,
MODELS_INFO,
OUTPUT_CLUSTERS,
PROFILE_ID,
)
from zhaquirks.tuya import (
TUYA_SEND_DATA, TuyaLocalCluster,
)
from zhaquirks.tuya.mcu import (
DPToAttributeMapping,
EnchantedDevice,
TuyaMCUCluster,
TuyaOnOff,
)
from zigpy.profiles import zha
from zigpy.zcl import foundation
from zigpy.zcl.clusters.general import Basic, Ota, Time, PowerConfiguration
class TuyaValveFamilyBattery(TuyaLocalCluster, DoublingPowerConfigurationCluster):
_values = [10, 50, 90]
_CONSTANT_ATTRIBUTES = {
PowerConfiguration.attributes_by_name["battery_quantity"].id: 4,
PowerConfiguration.attributes_by_name["battery_size"].id: PowerConfiguration.BatterySize.AAA
}
def _update_attribute(self, attrid, value):
if attrid == self.BATTERY_PERCENTAGE_REMAINING:
value = self._values[value]
super()._update_attribute(attrid, value)
class TuyaValveFamilyCluster(TuyaMCUCluster):
"""On/Off Tuya family cluster with extra device attributes"""
attributes = TuyaMCUCluster.attributes.copy()
attributes.update(
{
0xEF01: ("irrigation_time", t.uint32_t, True),
0xEF02: ("dp_110", t.uint32_t, True),
0xEF03: ("error_status", t.uint32_t, True),
}
)
async def command(
self,
command_id: Union[foundation.GeneralCommand, int, t.uint8_t],
*args,
manufacturer: Optional[Union[int, t.uint16_t]] = None,
expect_reply: bool = True,
tsn: Optional[Union[int, t.uint8_t]] = None,
**kwargs: Any,
):
"""Override the default Cluster command."""
self.debug("Setting the NO manufacturer id in command: %s", command_id)
return await super().command(
TUYA_SEND_DATA,
*args,
manufacturer=foundation.ZCLHeader.NO_MANUFACTURER_ID,
expect_reply=expect_reply,
tsn=tsn,
**kwargs,
)
dp_to_attribute: Dict[int, DPToAttributeMapping] = {
26: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"error_status",
),
101: DPToAttributeMapping(
TuyaOnOff.ep_attribute,
"on_off",
),
110: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"dp_110",
),
111: DPToAttributeMapping(
TuyaMCUCluster.ep_attribute,
"irrigation_time",
),
115: DPToAttributeMapping(
TuyaValveFamilyBattery.ep_attribute,
"battery_percentage_remaining",
),
}
data_point_handlers = {
26: "_dp_2_attr_update",
101: "_dp_2_attr_update",
110: "_dp_2_attr_update",
111: "_dp_2_attr_update",
115: "_dp_2_attr_update",
}
class TuyaIrrigationValve(EnchantedDevice):
"""Tuya green irrigation valve device."""
signature = {
MODELS_INFO: [("_TZ3210_0jxeoadc", "TS0049")],
ENDPOINTS: {
# <SimpleDescriptor endpoint=1 profile=260 device_type=0
# device_version=1
# input_clusters=[0, 61184]
# output_clusters=[10, 25]>
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH,
INPUT_CLUSTERS: [
Basic.cluster_id,
TuyaValveFamilyCluster.cluster_id,
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
},
}
replacement = {
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH,
INPUT_CLUSTERS: [
Basic.cluster_id,
TuyaOnOff,
TuyaValveFamilyBattery,
TuyaValveFamilyCluster
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
},
} I added a rule for battery (low => 10%, medium => 50%, high => 90%), they can be modified easily. And added the battery size and quantity too. |
Thanks MiguelAngelLV. its working well! |
Then you need to carefully go over the logs, see if you're getting some error, you should find some line in the logs referring to this script. |
Hi, this is the home-assistant.log.1 file, but I don't see any errors regarding this: `2024-09-01 12:29:24.245 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration balance_neto which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant 2024-09-01 12:29:30.137 WARNING (MainThread) [homeassistant.helpers.entity] Entity None (<class 'custom_components.smartir.climate.SmartIRClimate'>) is using deprecated supported features values which will be removed in HA Core 2025.1. Instead it should use <ClimateEntityFeature.TARGET_TEMPERATURE|FAN_MODE: 9>, please report it to the author of the 'smartir' custom integration and reference https://developers.home-assistant.io/blog/2023/12/28/support-feature-magic-numbers-deprecation 2024-09-01 12:29:37.806 ERROR (MainThread) [homeassistant.components.device_tracker] Platform mobile_app does not generate unique IDs. ID 6fdc80abe2c33c9c already exists - ignoring device_tracker.poco_f5 2024-09-01 12:29:38.473 WARNING (MainThread) [custom_components.xiaomi_miot.sensor] Get xiaomi scene history for 193087879 272001000690 failed: {'code': 0, 'message': '成功', 'result': {'history': []}} |
Hi, I bought the device from your link (https://es.aliexpress.com/item/1005007314262302.html?aff_fcid=827a1992be684615b51f8b4c46aa4c6f-1725782864569-00173-_DmIrhDD&tt=CPS_NORMAL&aff_fsk=_DmIrhDD&aff_platform=shareComponent-detail&sk=_DmIrhDD&aff_trace_key=827a1992be684615b51f8b4c46aa4c6f-1725782864569-00173-_DmIrhDD&terminal_id=9863ad270f9c41b78137d8733f57b3a6&afSmartRedirect=y) and now when I try to pair it as a zigbee device in HA it doesn't do it, it doesn't find it. However, if I try to pair it with the Tuya app it does find it and works correctly... any ideas to solve this?, thanks, regards. |
How does it get paired with the Tuya app? The only way your Tuya app will be able to find it is if you have a Zigbee hub connected to the Tuya app, but for Zigbee to work in Home Assistant you need a Zigbee hub connected to Home Assistant. Do you have a Zigbee hub? Do you have other Zigbee devices that do work in Home Assistant? |
Hi, yes, I have a zigbee hub, the sonoff (https://www.amazon.es/dp/B09KXTCMSC?ref=ppx_yo2ov_dt_b_fed_asin_title). No, I do not have another zigbee device connected to this hub, thanks, regards. |
I don't understand how are you successfully pairing it with the Tuya App. Either you have a Zigbee hub that's connected to the Tuya app or you accidentally bought a Wifi irrigation valve and not zigbee. |
I have a tuya zigbee hub and I also have the sonoff hub connected to the Raspberry pi with HA. The irrigation valve is the one I bought from the purchase link on your website. Is it possible that they gave me a valve that is not zigbee and is only BT? My tuya hub supports both zigbee and BT, maybe that's why it is able to recognize it and the sonoff doesn't? There is only one purchase option and it says zigbee on the box but I don't understand it. When I try to pair the valve with my HA I have it close, 1 meter away, so I don't think this is the problem. |
Since you say you do not have any other Zigbee devices connected to Home Assistant then I think the most logical thing to do now is to try to pair a different Zigbee device to Home Assistant. If it works then it's an issue with the valve, if it doesn't then it's an issue in Home Assistant. |
Hi, ok I'm going to try to pair another zigbee device with ha to identify where the problem is, thanks. |
Hi, If there is no line between the two that connects it, it doesn't work, right? Thank you very much again for your help, regards. |
Right, so your signal is just very weak. I think this could be an issue for many users, who put this irrigation valve outside of their homes, not realizing that Zigbee signal has trouble crossing through walls and such. I bought 6 units of these extenders: |
Hi, thanks, regards |
Warning! It is not recommended to buy any Tuya repeaters as they are infamously known to have bad firmware that do not always route all communcations and as such can act like a black-hole for some messages: Instead suggest check out the dedicated Zigbee Router devices that are recommended in this thread: |
To do the zigbee Tuya valve community here... :), One of the issues I found, a bit rare but they do happen, is that the valve reports being on but it's not really on. To turn it on I end up turning it off and on again. Sometimes more than once. I suspect something in this quirk doesn't correctly report the actual status of the valve. To solve it, I found a solution I'm really happy about, placing vibration sensor on top of the valve and using an automation to detect with it if it's on or not, restart it if not. These exact sensors: And the automation for it is here: |
Hi, a perhaps silly question: are these valves installable via zigbee mqtt? or is it not possible?, thanks, regards. |
They're supposed to work also with zigbee2mqtt but with that you will probably need a different quirk than the one you find in this thread. I'm working with ZHA and I'm happy with it. |
These valves works out of the box in Z2M: this is the reason why I changed to Z2M (and because of 2 others devices that had better support in Z2M) |
For the record, they did not initially work ”out-of-the-box” with with Zigbee2MQTT, instead they work now because someone wrote a converter for zigbee-herdsman, and their converters are Z2M's equivalent to ZHA Device Handlers (quirks), both "parser" and ”translate”. Zigbee2MQTT might have a larger community that activly contributing such device handler quirks/converters ("parsers" / ”translators”) and therefore sometimes get them before ZHA. As both are free and open-source projects will probably considered in good faith posting here in this zigpy repository for ZHA Device Handlers trying to convince users to migrate to Zigbee2MQTT instead, which can possible make ZHA community grown even less. Regardless, just recommending people to abandon ZHA and instead use Zigbee2MQTT is the opposite to contributing and is off-topic for this ZHA Device Handler (zha quirk) repository. That approach will cause brain-drain in the long run. Personally I would think that all Home Assistant users would want to help improve ZHA for everyone as it is the native Zigbee Gateway that is built-into Home Assistant as the official default. If you are not willing to actively help the community fix the ZHA shortcomming then at least not try to convince other users to simply stop using it. |
You're right and this was not my intention. Sorry for that. I tried to delete my comment but it seems to be bugged |
Hi, I have finally managed to get the irrigation valve to work correctly through both ZHA and Z2M, using another coordinator, the SMLIGHT SLZB-06p7, whose range is greater, without the need for repeaters, thank you very much to everyone for the help and especially to @moryoav. thanks, regards |
You will not be able to do it like that, once you pair a device with zha, it'll get disconnected from smartlife, a device can't have a link to two hubs. What you need to do is move everything to zha by repairing all of them, then install the integration for emulated hue, Google it, and through that expose all your devices, I'm using Alexa, that's how I do it, don't know if it works the same with Google home. Alternatively, get a subscription to Nabu Casa cloud and it'll allow you to control your home with Google home as well. |
Hi all, Are there any plans on supporting this valve natively in HA? Is there anything we can do to help getting it fully integrated? Thanks, |
You can bypass the 1 minute default setting, either manually or with an easy automation. It's explained here: |
Does anyone know if is possible to add the summation sensor (sensor.ts0049_summation_delivered) to this device? |
Problem description
Please can a handler be created to support a Tuya water valve controller (TS0049). The device can be added to home assistant via zha but no entities are available to control the valve.
Solution description
Creation of a new handler to support the device
Screenshots/Video
Screenshots/Video
Device signature
Device signature
Diagnostic information
Diagnostic information
The text was updated successfully, but these errors were encountered: