tuya-local icon indicating copy to clipboard operation
tuya-local copied to clipboard

Request support for K-Rain Irrigation Controller

Open Grahamm6315 opened this issue 1 year ago • 2 comments

Log message

This error originated from a custom integration.

Logger: custom_components.tuya_local.config_flow
Source: custom_components/tuya_local/config_flow.py:399
integration: Tuya Local (documentation, issues)
First occurred: 3:04:52 PM (2 occurrences)
Last logged: 3:25:16 PM

Include the previous log messages with any new device request to https://github.com/make-all/tuya-local/issues/This error originated from a custom integration.

Logger: custom_components.tuya_local.config_flow
Source: custom_components/tuya_local/config_flow.py:376
integration: Tuya Local (documentation, issues)
First occurred: 3:04:52 PM (2 occurrences)
Last logged: 3:25:16 PM

Adding KRX8 device with product id o4lzusmr4igv5ux3

This error originated from a custom integration.

Logger: custom_components.tuya_local.config_flow
Source: custom_components/tuya_local/config_flow.py:393
integration: Tuya Local (documentation, issues)
First occurred: 3:04:52 PM (2 occurrences)
Last logged: 3:25:16 PM

Device matches garage_door_opener with quality of 8%. DPS: {"updated_at": 1732863882.4312968, "1": false, "101": false, "102": false, "103": false, "104": false, "105": false, "106": false, "107": false, "108": false, "117": false, "118": false, "119": false, "120": false, "121": true, "122": true, "123": true, "124": false, "125": false, "126": 1, "130": true, "131": true, "132": false, "135": true, "136": false, "137": false}
Device matches garage_door_opener with quality of 8%. DPS: {"updated_at": 1732865107.8888738, "1": false, "101": false, "102": false, "103": false, "104": false, "105": false, "106": false, "107": false, "108": false, "117": false, "118": false, "119": false, "120": false, "121": true, "122": true, "123": true, "124": false, "125": false, "126": 1, "130": true, "131": true, "132": false, "135": true, "136": false, "137": false}

Product ID

o4lzusmr4igv5ux3

Product Name

K-Rrain XR8

DPS information

curl --request GET "https://openapi.tuyaeu.com/v1.0/iot-03/devices/{ "result": { "properties": [ 
{ "code": "switch", "custom_name": "", "dp_id": 1, "time": 1731233002562, "type": "bool", "value": true }, 
{ "code": "zone_1", "custom_name": "", "dp_id": 101, "time": 1731233002578, "type": "bool", "value": true }, 
{ "code": "zone_2", "custom_name": "", "dp_id": 102, "time": 1731215612166, "type": "bool", "value": false }, 
{ "code": "zone_3", "custom_name": "", "dp_id": 103, "time": 1727508362712, "type": "bool", "value": false }, 
{ "code": "zone_4", "custom_name": "", "dp_id": 104, "time": 1731227102310, "type": "bool", "value": false }, 
{ "code": "zone_5", "custom_name": "", "dp_id": 105, "time": 1731203082171, "type": "bool", "value": false }, 
{ "code": "zone_6", "custom_name": "", "dp_id": 106, "time": 1731203443138, "type": "bool", "value": false }, 
{ "code": "zone_7", "custom_name": "", "dp_id": 107, "time": 1731189602249, "type": "bool", "value": false }, 
{ "code": "zone_8", "custom_name": "", "dp_id": 108, "time": 1726190352688, "type": "bool", "value": false }, 
{ "code": "zone_9", "custom_name": "", "dp_id": 109, "time": 1674817296952, "type": "bool", "value": false }, 
{ "code": "zone_10", "custom_name": "", "dp_id": 110, "time": 1674817296952, "type": "bool", "value": false }, 
{ "code": "zone_11", "custom_name": "", "dp_id": 111, "time": 1674817296952, "type": "bool", "value": false }, 
{ "code": "zone_12", "custom_name": "", "dp_id": 112, "time": 1674817296952, "type": "bool", "value": false }, 
{ "code": "zone_13", "custom_name": "", "dp_id": 113, "time": 1674817296952, "type": "bool", "value": false }, 
{ "code": "zone_14", "custom_name": "", "dp_id": 114, "time": 1674817296952, "type": "bool", "value": false }, 
{ "code": "zone_15", "custom_name": "", "dp_id": 115, "time": 1674817296952, "type": "bool", "value": false }, 
{ "code": "zone_16", "custom_name": "", "dp_id": 116, "time": 1674817296952, "type": "bool", "value": false }, 
{ "code": "start_a", "custom_name": "", "dp_id": 117, "time": 1731189602262, "type": "bool", "value": false }, 
{ "code": "start_b", "custom_name": "", "dp_id": 118, "time": 1731227102313, "type": "bool", "value": false }, 
{ "code": "start_c", "custom_name": "", "dp_id": 119, "time": 1726190352688, "type": "bool", "value": false }, 
{ "code": "start_d", "custom_name": "", "dp_id": 120, "time": 1726190352688, "type": "bool", "value": false }, 
{ "code": "starts_enable", "custom_name": "", "dp_id": 121, "time": 1726436307825, "type": "bool", "value": true }, 
{ "code": "start_a_enable", "custom_name": "", "dp_id": 122, "time": 1731152345834, "type": "bool", "value": true }, 
{ "code": "start_b_enable", "custom_name": "", "dp_id": 123, "time": 1730527039424, "type": "bool", "value": true }, 
{ "code": "start_c_enable", "custom_name": "", "dp_id": 124, "time": 1674817309137, "type": "bool", "value": false }, 
{ "code": "start_d_enable", "custom_name": "", "dp_id": 125, "time": 1698094732736, "type": "bool", "value": false }, 
{ "code": "watering_delay", "custom_name": "", "dp_id": 126, "time": 1684883398119, "type": "value", "value": 1 }, 
{ "code": "starts", "custom_name": "", "dp_id": 127, "time": 1731152345614, "type": "raw", "value": "SAAAfwUACAAAfw8tAAAAfwAADAAAfwAA" }, 
{ "code": "zones", "custom_name": "", "dp_id": 128, "time": 1730527039478, "type": "raw", "value": "Ah4ABQAKAAoABQAFAAIeAA8ACgAKAAUABQACDwAKAAoABQAFAAUAAi0AKAAKAAUABQAFAAIKAAoACgAKAAUABQACCgAKAAoACgAFAAUAAg8ACgAKAAoABQAFAAAKAAoACgAKAAUABQAACgAKAAoACgAFAAUAAAoACgAKAAoABQAFAAAKAAoACgAKAAUABQAACgAKAAoACgAFAAUAAAoACgAKAAoABQAFAAAKAAoACgAKAAUABQAACgAKAAoACgAFAAUAAAoACgAKAAoABQAFAA==" }, 
{ "code": "date_time", "custom_name": "", "dp_id": 129, "time": 1674817296952, "type": "raw" }, 
{ "code": "battery_ok", "custom_name": "", "dp_id": 130, "time": 1726190351920, "type": "bool", "value": true }, 
{ "code": "main_power_ok", "custom_name": "", "dp_id": 131, "time": 1726190351910, "type": "bool", "value": true }, 
{ "code": "watering", "custom_name": "", "dp_id": 132, "time": 1731233002570, "type": "bool", "value": true }, 
{ "code": "manual_command", "custom_name": "", "dp_id": 133, "time": 1731233001799, "type": "raw", "value": "AQMAAA8ADwACAB4ABgAGAAIACgAKAAoACgAKAAoACgAKAAoA" }, 
{ "code": "technical_info", "custom_name": "", "dp_id": 134, "time": 1731233241824, "type": "raw", "value": "AwAAAAAAAAAAAFl1CwB7AEsABhfPAAAAABgLCwUAGAsKEgcVAwAA" }, 
{ "code": "starts_initialized", "custom_name": "", "dp_id": 135, "time": 1726190352688, "type": "bool", "value": true }, 
{ "code": "use_watering_delay", "custom_name": "", "dp_id": 136, "time": 1729612800193, "type": "bool", "value": false }, 
{ "code": "sensor", "custom_name": "", "dp_id": 137, "time": 1726190352688, "type": "bool", "value": false } ] }, "success": true, "t": 1731233242263, "tid": "93c2cff59f4b11ef838d1e579e4aaca8"/specification" --header "sign_method: HMAC-SHA256" --header "client_id: t5ht9ufj83ptjr9tq7vu" --header "t: 1731233333642" --header "mode: cors" --header "Content-Type: application/json" --header "sign: 7367D02077F3E3BECF815362AF0D722EF6A90984529E3CCC398B217898D73981" --header "access_token: a47e629478c0e3f62c705b473a3453c5"

Information about how the device functions

This device is the same as a Holman XR8 irrigation controller but with a different product ID and DPI It has eight switches to control solenoid valves which are assigned to [zones] It then has a number of [Programs] which are configured to set the start time for the zones to turn on The system has options for adding sensors for rain detection and moisture level monitoring https://www.k-rain.com.au/product/krx8-8-station-wifi-irrigation-controller/ Screen Shot 2024-11-29 at 5 53 31 pm Screen Shot 2024-11-29 at 5 58 11 pm

If any other information is required I am happy to help.

For what it's worth here is an example file that I have created based on the existing holman_wx8_irrigation_controller.yaml

name: KRX8 products:

  • id: o4lzusmr4igv5ux3 name: KRX8 primary_entity: entity: binary_sensor class: running icon: mdi:sprinkler-variant dps:
    • id: 101 type: boolean name: valve secondary_entities:
  • entity: valve name: Zone 1 class: water dps:
    • id: 101 type: boolean name: valve
  • entity: switch name: Zone 1 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 101 type: boolean name: switch
  • entity: valve name: Zone 2 class: water dps:
    • id: 102 type: boolean name: valve
  • entity: switch name: Zone 2 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 102 type: boolean name: switch
  • entity: valve name: Zone 3 class: water dps:
    • id: 103 type: boolean name: valve
  • entity: switch name: Zone 3 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 103 type: boolean name: switch
  • entity: valve name: Zone 4 class: water dps:
    • id: 104 type: boolean name: valve
  • entity: switch name: Zone 4 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 104 type: boolean name: switch
  • entity: valve name: Zone 5 class: water dps:
    • id: 105 type: boolean name: valve
  • entity: switch name: Zone 5 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 105 type: boolean name: switch
  • entity: valve name: Zone 6 class: water dps:
    • id: 106 type: boolean name: valve
  • entity: switch name: Zone 6 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 106 type: boolean name: switch
  • entity: valve name: Zone 7 class: water dps:
    • id: 107 type: boolean name: valve
  • entity: switch name: Zone 7 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 107 type: boolean name: switch
  • entity: valve name: Zone 8 class: water dps:
    • id: 108 type: boolean name: valve
  • entity: switch name: Zone 8 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 108 type: boolean name: switch
  • entity: sensor name: Firmware Version class: version dps:
    • id: 116 type: integer name: firmware_version
  • entity: sensor name: Power Supply Voltage class: voltage category: diagnostic dps:
    • id: 117 type: integer unit: "V" mapping:
      • scale: 10
  • entity: sensor name: Battery Voltage class: voltage category: diagnostic dps:
    • id: 118 type: integer unit: "V" mapping:
      • scale: 10
  • entity: binary_sensor name: Power Supply Status class: problem category: diagnostic dps:
    • id: 120 type: bitfield mapping:
      • dps_val: 2 value: false
      • value: true
  • entity: binary_sensor name: Watering class: running dps:
    • id: 120 type: bitfield mapping:
      • dps_val: 4 value: true
      • value: false
  • entity: binary_sensor name: Rain Sensor class: moisture dps:
    • id: 120 type: bitfield mapping:
      • dps_val: 8 value: true
      • value: false

Grahamm6315 avatar Nov 29 '24 10:11 Grahamm6315

Hi I have been using the code below for a few weeks now. It doesn't have all the entities but is functional

name: KRX8 products:

  • id: o4lzusmr4igv5ux3 name: KRX8 primary_entity: entity: binary_sensor name: Watering class: running dps:
    • id: 1 type: boolean name: switch optinal: true secondary_entities:
  • entity: valve name: Zone 1 class: water dps:
    • id: 101 type: boolean name: valve
  • entity: switch name: Zone 1 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 101 type: boolean name: switch
  • entity: valve name: Zone 2 class: water dps:
    • id: 102 type: boolean name: valve
  • entity: switch name: Zone 2 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 102 type: boolean name: switch
  • entity: valve name: Zone 3 class: water dps:
    • id: 103 type: boolean name: valve
  • entity: switch name: Zone 3 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 103 type: boolean name: switch
  • entity: valve name: Zone 4 class: water dps:
    • id: 104 type: boolean name: valve
  • entity: switch name: Zone 4 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 104 type: boolean name: switch
  • entity: valve name: Zone 5 class: water dps:
    • id: 105 type: boolean name: valve
  • entity: switch name: Zone 5 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 105 type: boolean name: switch
  • entity: valve name: Zone 6 class: water dps:
    • id: 106 type: boolean name: valve
  • entity: switch name: Zone 6 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 106 type: boolean name: switch
  • entity: valve name: Zone 7 class: water dps:
    • id: 107 type: boolean name: valve
  • entity: switch name: Zone 7 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 107 type: boolean name: switch
  • entity: valve name: Zone 8 class: water dps:
    • id: 108 type: boolean name: valve
  • entity: switch name: Zone 8 category: config deprecated: valve icon: mdi:sprinkler-variant dps:
    • id: 108 type: boolean name: switch

Grahamm6315 avatar Jan 07 '25 04:01 Grahamm6315

Missing range info and more detailed descriptions of what all the settings are.

Range info is really only needed for the watering_delay dp, as others are all boolean (simple true/false) or raw (unusable)

But a lot of the booleans are a bit of a mystery as to what they do without more descriptions (which the requested Query Things Data Model result usually has, even if usually in Chinese).

make-all avatar Jan 11 '25 08:01 make-all

Support was added by PR #2948

make-all avatar Aug 13 '25 11:08 make-all