devices.esphome.io
Hiking DDS238-1-W1 WiFi Single Phase 63A Energy Meter
Hiking DDS238-1-W1 WiFi Single Phase 63A Energy Meter
Device Type: miscElectrical Standard: globalBoard: bk72xxDifficulty: Chip needs replacement, 5/5
Manufacturer
Hiking TOMZN (Tuya)
Product Info
| Spec | Value | 
|---|---|
| Rate Frequency | 50 or 60 Hz | 
| Rated Current | 63A | 
| Rate Voltage | 85~300V AC | 
| kWH accuracy | Class 1 | 
| R.M.S. accuracy | Class 0.5 | 
| Starting current | 20 mA | 
| WiFi network | 2.4GHz only | 
| Operational temp. | -25~70°C | 
35mm Din Rail install
Product Images
      
  
        
        
        
Device button (named SET) wired to Tuya MCU. Load toggling happens on tripple SET key pressing.
Flashing info
Originally device equipped with WB3S module. Module replaced with ESP-12F and following config provided.
ESP-12F must be flashed before installing into device as RX/TX pins wired to Tuya MCU. 10 kOm resistor additionally to be soldered between GND and GPIO15 pins (SMD 0805 is a good choice).
Device case is secured by screws, but also glued in some places. Then opened - PCB can be easily detached from.
ESP GPIO Pinout
| Pin | Function | Note | 
|---|---|---|
| GPIO01 | Tuya MCU Rx | |
| GPIO03 | Tuya MCU Tx | |
| GPIO02 | Blue LED on ESP-12F | inverted | 
| GPIO14 | Blue LED on device | inverted | 
| GPIO16 | SET long press (>3 sec.) | inverted | 
Tuya Component Output
Tuya:  Datapoint 16: switch (value: OFF)  Datapoint 6: raw (value: 00.00.00.00.00.00.00.00.03.E8.00.00.00.09.47 (15))  Datapoint 1: int value (value: 3)  Datapoint 101: int value (value: 3)  Datapoint 102: int value (value: 0)  Datapoint 11: switch (value: OFF)  Datapoint 13: int value (value: 0)  Datapoint 107: int value (value: 0)  Datapoint 109: int value (value: 0)  Datapoint 17: raw (value: 00.00.00.00.00.00.00.00.00.00.00.64.00.01.0E.00.00.AA.00.00.00.00.00.0A.00.00.00.00.00.00 (30))  Datapoint 18: raw (value: 00.05.00.64.00.05.00.1E.00.3C.00.00.00.00.00.00.00 (17))  Datapoint 9: bitmask (value: 0)  Datapoint 108: string value (value: 000000000000)  Datapoint 103: int value (value: 0)  Datapoint 110: int value (value: 0)  Datapoint 111: int value (value: 1000)  Datapoint 105: int value (value: 5001)  GPIO Configuration: status: pin 26, reset: pin 14  Product: '{"p":"i55reuttymjocx0j","v":"1.0.0","m":2}'Tuya DataPoints
| DP | Switch | Notes | 
|---|---|---|
| 16 | To operate Relay | |
| 11 | Relay on startup | OFF - Restore, ON - Relay OFF | 
Relay is driven by Tuya MCU. ESP restart will not affect state of Relay !
| DP | Sensor | Multiply | Unit | Decimals | 
|---|---|---|---|---|
| 101 | Energy Total | 0.001 | kWh | 3 | 
| 1 | Energy from Grid | 0.001 | kWh | 3 | 
| 102 | Energy to Grid | 0.001 | kWh | 3 | 
| 103 | Power Active | 0.001 | kW | 3 | 
| 110 | Power Reactive | 0.001 | kVAr | 3 | 
| 111 | Power Factor | 0.001 | 3 | |
| 105 | Frequency | 0.01 | Hz | 2 | 
| 108 | So far always reported 0 | |||
| 109 | Power Flow ? Reported 4 when flow is to Grid | 
Report negative "Power Active" when power flow is to Grid.
Tuya DataPoint 6 (raw, 15 bytes)
| Bytes | Sensor | Multiply | Unit | Decimals | Parsed by MCU | 
|---|---|---|---|---|---|
| 13,14 | Voltage | 0.1 | V | 1 | |
| 11,12 | Current | 0.001 | A | 3 | |
| 06,07 | Power Reactive | 0.001 | kVAr | 3 | as DP110 | 
| 02,03 | Power Active | 0.001 | kW | 3 | as DP103 | 
| 00 | Power Flow Direction: 00 - from Grid, 01 - to Grid | 
Basic Configuration
# Basic Config---substitutions:  device_name:   "energy-meter"  friendly_name: "Energy Meter"
esphome:  name: ${device_name}  friendly_name: ${friendly_name}  platform: ESP8266  board: esp12e
wifi:  ssid: !secret wifi_ssid  password: !secret wifi_pass
  on_connect:    - output.turn_on:  tuya_led_wifi  on_disconnect:    - output.turn_off: tuya_led_wifi
logger:  baud_rate: 0
api:
ota:  - platform: esphome
uart:  rx_pin: GPIO03  tx_pin: GPIO01  baud_rate: 9600
tuya:  on_datapoint_update:    - sensor_datapoint: 6      datapoint_type: raw      then:        - lambda: |-            ESP_LOGD("main", "on_datapoint_update %s", format_hex_pretty(x).c_str());            id(voltage).publish_state((x[13] << 8 | x[14]) * 0.1);            id(current).publish_state((x[11] << 8 | x[12]) * 0.001);
#            id(power_active).publish_state((x[02] << 8 | x[03]) * 0.001);   # Power Active   in kW   - DP103#            id(power_reactive).publish_state((x[06] << 8 | x[07]) * 0.001); # Power Reactive in kVAr - DP110
output:  - platform: gpio    pin: GPIO14    id: tuya_led_wifi    inverted: True
switch:  - platform: "tuya"    id: sw_relay    name: "Switch"    switch_datapoint: 16
  - platform: "tuya"    name: "Restore on startup"    switch_datapoint: 11    inverted: True
binary_sensor:  - platform: gpio    pin:      number: GPIO16      inverted: True    name: "SET long press"
sensor:  - platform: template    id: voltage    name: "Voltage"    device_class: voltage    unit_of_measurement: V    state_class: measurement    accuracy_decimals: 1
  - platform: template    id: current    name: "Current"    device_class: current    unit_of_measurement: A    state_class: measurement    accuracy_decimals: 3
  - platform: "tuya"    name: "Frequency"    sensor_datapoint: 105    device_class: frequency    unit_of_measurement: Hz    state_class: measurement    accuracy_decimals: 2    filters:      - multiply: 0.01
  - platform: "tuya"    id: power_active    name: "Power Active"    sensor_datapoint: 103    device_class: power    unit_of_measurement: kW    state_class: measurement    accuracy_decimals: 3    filters:      - multiply: 0.001
  - platform: "tuya"    id: power_reactive    name: "Power Reactive"    sensor_datapoint: 110    device_class: power    unit_of_measurement: kVAr    state_class: measurement    accuracy_decimals: 3    filters:      - multiply: 0.001
  - platform: "tuya"    name: "Power Factor"    sensor_datapoint: 111    device_class: power_factor    state_class: measurement    accuracy_decimals: 3    filters:      - multiply: 0.001
  - platform: "tuya"    name: "Energy"    sensor_datapoint: 101    device_class: energy    unit_of_measurement: kWh    state_class: total_increasing    accuracy_decimals: 3    filters:      - multiply: 0.001
  - platform: "tuya"    name: "Energy from Grid"    sensor_datapoint: 1    device_class: energy    unit_of_measurement: kWh    state_class: total_increasing    accuracy_decimals: 3    filters:      - multiply: 0.001
  - platform: "tuya"    name: "Energy to Grid"    sensor_datapoint: 102    device_class: energy    unit_of_measurement: kWh    state_class: total_increasing    accuracy_decimals: 3    filters:      - multiply: 0.001