Holman WX8 Watering System

Using Tuya Local I have being able to intergrate my Holeman WX8 Watering system into my HA configuration. I am then using a simple scheduler to control the watering.

You will need to connect the WX8 to to the Tuya Smart app. This give toy the same access as much of the Holeman app. they have obviouly developed their app using Tuya anyway. The addtional smart features that the holamn app are better controlled from HA anyway so you will not loose any functionallity.

You will also need to create a cloud project on the Tuya IoT Platform. There are a number of videos online on how to do this. I recomend this anyway if you have any devices that use Tuya and there anre many cheaper devices that this will allow you to connect to HA. You only need one project for all your devices you are connecting this way.

The two peices of data you need from Tuya is the Device Id and the The local key. (Again the online videos can show you how to get these)

Then (Using HACS) you and can install local tuya.

You can use the Local Tula to add the WX8 or add to your configuration.yaml
I have posted below what I have in my yamll that has worked for me.

There a s few DPS that I have not worked out yet.

DPS 120 is a 8 BGit string that reports status of some function I have only worked out that

01000000 is the Evie Battery Status and 00000100 is If the system is watering but DPS is the Stop switch which also come on when watering so you can use that also for automation.

 localtuya:
   - host: 10.0.0.20
    device_id: xxxxx
    local_key: xxxx
    friendly_name: WX8 Holman Watering System
    protocol_version: "3.3"
    entities:
        
      - platform: sensor
        friendly_name: WX8 Firmware Version
        id: 116

      - platform: sensor
        friendly_name: WX8 Power
        id: 117
        scaling: 0.1
        device_class: power
        unit_of_measurement: "V"

	 - platform: sensor 
        friendly_name: WX8 Battery Charge
        id: 118
        scaling: 0.1
        device_class: battery
        unit_of_measurement: "V"

	 - platform: sensor
        friendly_name: WX8 DPS 119
        id: 119

	 - platform: sensor
        friendly_name: WX8 8 Bit String
        id: 120

	 - platform: sensor
        friendly_name: WX8 DPS 121
        id: 121

	 - platform: sensor
        friendly_name: WX8 Battery Voltage
        id: 122

      - platform: switch
        friendly_name: WX8 Watering
        id: 123

      - platform: switch
        friendly_name: WX8 Lavender Beds #Valve 1
        id: 102

      - platform: switch
        friendly_name: WX8 Lavender Beds #Valve 1
        id: 102

      - platform: switch
        friendly_name: WX8 Back Shrubs #Valve 2
        id: 103

      - platform: switch
        friendly_name: WX8 Back Lawn #Valve 3
        id: 104

      - platform: switch
        friendly_name: WX8 Vegitable Beds #Valve 4
        id: 105

      - platform: switch
        friendly_name: WX8 V5 #Valve 5
        id: 106

      - platform: switch
        friendly_name: WX8 V6 #Valve 6
        id: 107

      - platform: switch
        friendly_name: WX8 Front Hedge #Valve 7
        id: 108

      - platform: switch
        friendly_name: WX8 Front Lawn #Valve 8
        id: 112
6 Likes

Hi, I am looking to get one of these too. Can you tell me whether the rain sensor is accessible through Home Assistant? Just wondering if it can be used for other automations?

thanks

Yes. I have worked out that the Evie sensor (wifi) and the wired sensor show in DPS 120.

As I posted the DPS 120 is 8 bit binary (converted to decimal)
I have created a attributes to a sensor so I can see whats changes.
Im not sure what Bit is the Wired sensor as I donā€™t have one attached at the moment but almost possitive it one that I havnā€™t detected a change on yet.

1 Like

Update: The Tuya intergration has removed the Yaml setup and you need configure the device through the intergration now. I little anoying as hard to pass on my work to others but it doesnā€™t take long if you know what DPS are what.

This is my coding for a sensor attributes for the 8 bit string on DPS 120

template:
  - sensor:
      - name: WX8 Status
        state: >
          {% set RemVal = states('sensor.wx8_8_bit_string')|float %}
          {{RemVal}}

        attributes:
          Bit_0: >
            {% set RemVal = states('sensor.wx8_8_bit_string')|float %}
            {% if RemVal is odd %}
            true
            {% else %}
            false
            {% endif %}

          Bit_1: >
            {% set RemVal = states('sensor.wx8_8_bit_string')|float %}
            {% if (RemVal/2)|int is odd %}
            true
            {% else %}
            false
            {% endif %}

          Watering: >
            {% set RemVal = states('sensor.wx8_8_bit_string')|float %}
            {% if (RemVal/4)|int is odd %}
            true
            {% else %}
            false
            {% endif %}

          Bit_3: >
            {% set RemVal = states('sensor.wx8_8_bit_string')|float %}
            {% if (RemVal/8)|int is odd|int %}
            true
            {% else %}
            false
            {% endif %}

          Bit_4: >
            {% set RemVal = states('sensor.wx8_8_bit_string')|float %}
            {% if (RemVal/16)|int is odd %}
            true
            {% else %}
            false
            {% endif %}

          Bit_5: >
            {% set RemVal = states('sensor.wx8_8_bit_string')|float %}
            {% if (RemVal/32)|int is odd %}
            true
            {% else %}
            false
            {% endif %}

          Evie Battery Good: >
            {% set RemVal = states('sensor.wx8_8_bit_string')|float %}
            {% if (RemVal/64)|int is odd %}
            true
            {% else %}
            false
            {% endif %}

          Evie Wet: >
            {% set RemVal = states('sensor.wx8_8_bit_string')|float %}
            {% if (RemVal/128)|int is odd %}
            true
            {% else %}
            false
            {% endif %}
3 Likes

Thank you for sharing all this timnell - I have the same unit and your work will save me hours. I appreciate that very much. Have a good day

How you get this done, My config flow stops already at device Binding with an error. but the Tuya CLI works. Double-checked the device IDs and Local keys several times

Happy to try and help if I know at what point its failing.

Note my update: Tuya doesnt support the Yaml any more and you have to configure each DPS using the Tuya Local.

Just so I know where you are up to . If you have Tuya local setup and you should see following in your HA intergrations.
image

If you havnā€™t already then you use ID and local Key when you add a new device by selecting Configure.

image

Click Submit

If everything is set correctly on your Tuya IoT Platform. you should see your device in the list to add.
Sorry Canā€™t show you mine as they are removed from the list when successfully installed.

The basic workflow is.

  • Connect to WX8 via Tuya smart app (Sound like you have done this)

  • Setup Tuya IoT Platform to connect the device (You have Key and Id so assume you have this)

  • Install HACS and Tuya Local

  • Add Device using Configure

  • Edit Device using Configure to add the DPS

  • Create a sensor if you need it but this is not essential

If you could give me a sense of what point you have working Iā€™ll see if I can help

1 Like

Apologies if this has already been worked out and reported, but I didnā€™t see it anywhere. Iā€™ve just noticed that DPS 121 appears to align with the amount of time remaining on the station it is currently watering.

Figuring out the DPS values. I think DPS 120 is the Evie Sensor. Itā€™s reporting:

  • 3 when itā€™s off or offline (when I was doing this initially it was out of out of battery).
  • 67 = ā€˜not connectedā€™
  • 99 seems to equal ā€˜dryā€™,
  • 227 seems to equal ā€˜wetā€™ but itā€™s reported up to 231 and the app still shows ā€˜wetā€™.

My system aligns with @PhantomCanary that 121 aligns with the timer duration

I reckon some of the unlabelled DPS are things like Dial Position, Automatic Starts.

One question - how can I add a new DPS to the list (I deleted one trying) without deleting the whole lot and starting again, possibly Iā€™d also like to change some switches to sensors but that seems impossible right now.

Update:
113, 114, 115 Are Start A, Start B, Start C respectively.
123 is the master waterflow solenoid (opens up when any of the other watering programs need to run - itā€™s sort of a main flow safety valve).

Can someone point a noob in the right direction?

  • I tried adding the device through the tuya integration, but I only got the sense I created in the app

  • I tried adding the device using local tuya, and I always get the error below

image

I also tried adding the provided yaml into my configuration.yaml but I donā€™t see any new entities.

You need to have entities added as well that map to the DPS. So for example, on the manual DPS field, add 116,117,118 etc then when you click finish, youā€™ll get a popup for entities. Then you would map the entity to the id.

i.e select Sensor, then on the next screen the Friendly Name is ā€œWX8 Firmware Versionā€ and the Id should map to 116. Rinse and repeat for the rest that OP has in their localtuya config. I have more detail in a readme I created for a fork I did for the WX1 (based on original work of @darecki) here. NOTE that the WX1 and WX2 use a CID to identify them - the WX8 doesnā€™t appear to need that.

Hope that helps. This community has been really helpful to get this up and running.

If itā€™s any help, I donā€™t have the Evie Sensor. For me DPS 120 reports ā€œ3ā€ when no stations are watering and ā€œ7ā€ when any stations are watering.

If itā€™s any help, I donā€™t have the Evie Sensor. For me DPS 120 reports ā€œ3ā€ when no stations are watering and ā€œ7ā€ when any stations are watering.

Any luck with this mate? Iā€™m looking at getting the WX8 with the Evie Sensor too. And would really like to integrate this into HA @wrh75

Iā€™m setting up a new HA environment. I currently have my WX8 linked to the Holman Home app. If I attach it to the Tuya Smart app, will this disable access via the Holman Home app? Reason for asking is, I have shared access to our gardener using the Homan app. Not yet ready to start given HA access to others. Really appreciate some guidance here.

Apparently the answer is yes, as I successfully added it to the Tuya Smart app and eth Holman app still works! Case closed.

Got it all sorted Yew! Awesome work guys.

I did however note that DPS 118 is not the Battery % and infact just Battery Voltage, so should be defined device_class: voltage & unit_of_measurement: ā€œVā€

@david_in_Oz - Still not sure how you were able to get both Holman and Tuya Apps working simultaneously tried a few different ways and have been unsuccessful.

Thanks @timnell and other contributors for this awesome write-up, Iā€™ve just bought the WX8 with EVIE Sensor and was able to integrate it easily into HA. Hereā€™s something I have learnt:

Within the Tuya IoT platform you are able to query the device status (go to Device Control > Query Properties > Enter the device ID > Submit Request). This will give you a list of the DPS and their values:

DPS Code Note Device Type Device Class Unit of Measure
101 kCommand This DPS didnā€™t get added automatically to Home Assistant. It doesnā€™t show any value so not sure what it does. N/A
102 kZone1 Turns on/off Valve 1 Switch
103 kZone2 Turns on/off Valve 2 Switch
104 kZone3 Turns on/off Valve 3 Switch
105 kZone4 Turns on/off Valve 4 Switch
106 kZone5 Turns on/off Valve 5 Switch
107 kZone6 Turns on/off Valve 6 Switch
108 kZone7 Turns on/off Valve 7 Switch
112 kZone8 Turns on/off Valve 8 Switch
113 kStartA Turns on/off Programme A Switch
114 kStartB Turns on/off Programme B Switch
115 kStartC Turns on/off Programme C Switch
116 kFWVer Firmware version Sensor
117 kValveVoltage Sensor Power V
118 k9VBatteryVoltage Voltage of the 9V battery Sensor Voltage V
119 kCatchcupVoltage I am guessing this may be the voltage of any hardwired rain sensor. I donā€™t have one, so canā€™t test. Sensor Voltage V
120 kDeviceFlag Using @timnellā€™s template sensor above, I was able to see the following values which reliably corresponded with the Tuya app:
Bit_0 - 9V Battery Good
Bit_1 - Unknown
Bit_2 - Watering
Bit_3 - Unknown
Bit_4 - Unknown
Bit_5 - Unknown
Bit_6 - Evie Battery Good
Bit_7 - Evie Wet
Sensor
121 kTimeLeft Watering minutes remaining. Sensor
122 kDial Position of the dial on the controller:
1-8 are Valves 1-8 respectively
9 is AP
10 is OFF
11 is RUN
12 is TEST
Sensor
123 switch Per @Timmwardion this is the Master valve, it turns on when any of the other valves are turned on. Switch
124 kRaining This DPS didnā€™t get automatically added to Home Assistant. Even with water in the EVIE sensor the value is still ā€˜falseā€™ so Iā€™m not sure what this does. I canā€™t seem to add it manually to HA either (probably a gap in my knowledge). Sensor
3 Likes

Hi All,
Hope you can assist me in setting up the WX1 tap timer and wifi socket. It came with the hub and it has been successfully setup in Tuya.

I have local key for the hub but not the tap timer or socket. They are blank on the IoT platform so assume they connect to the hub as sub devices.

Is there a guide on how to set up these two devices in local tuya?

Thanks

I have found some more bit statusā€™s for the 120 kDeviceFlag - the Evie sensor is absolutely horrible and constantly plays up, Iā€™ve already replaced it once and it died again (thinks its wet when itā€™s not) - so got a hard wired rainbird sensor for it and now some more bit statusā€™s have come alive:

Bit 3 - Hard wired rain sensor Wet
Bit 5 - Evie connected.

The only 2 unknown bits now are 1 and 4 - 1 never seems to change from True and 4 never seems to change from False.

Cheers, Mike