Link

Make Good MG-MD04W 4-Gang Wifi Switch with Power Monitoring

TuyaMCU Pinout

Dpid # Component
D1 Switch1
D2 Switch2
D3 Switch3
D4 Switch4
D7 SwitchTimer1
D8 SwitchTimer2
D9 SwitchTimer3
D10 SwitchTimer4
D102 Amps (x 0.001)
D103 Watts (x 0.1)
D104 Volts (x 0.1)

Getting it up and running

These switches can no longer be converted with Tuya-convert. See discussion here https://github.com/sillyfrog/contact/issues/4

Basic Functionality with Power Monitoring and Device status sensors (No Timers)

substitutions:
  device_name: mg-md04w
  friendly_name: "Touch WIFI Light Switch"

esphome:
  name: ${device_name}
  platform: ESP8266
  board: esp01_1m
  esp8266_restore_from_flash: true

wifi:
  ssid: !secret iot_wifi_ssid
  password: !secret iot_wifi_pwd
  fast_connect: on

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: ${device_name} Fallback
    password: ""

captive_portal:

logger:
  baud_rate: 0

api:

ota:

web_server:
  port: 80

time:
  - platform: sntp
    id: my_time

tuya:

uart:
  rx_pin: GPIO3
  tx_pin: GPIO1
  baud_rate: 9600

sensor:
  - platform: wifi_signal
    name: ${friendly_name} Wifi Signal Strength
    update_interval: 60s
  - platform: uptime
    name: ${friendly_name} Uptime
  - platform: tuya
    name: ${friendly_name} Watts
    id: total_watts
    sensor_datapoint: 103
    unit_of_measurement: W
    accuracy_decimals: 1
    filters:
    - multiply: 0.1
  - platform: tuya
    name: ${friendly_name} Amps
    sensor_datapoint: 102
    unit_of_measurement: A
    accuracy_decimals: 3
    filters:
    - multiply: 0.001
  - platform: tuya
    name: ${friendly_name} Volts
    sensor_datapoint: 104
    unit_of_measurement: VAC
    accuracy_decimals: 0
    filters:
    - multiply: 0.1
  - platform: total_daily_energy
    name: ${friendly_name} Total Daily Energy
    power_id: total_watts

text_sensor:
  - platform: wifi_info
    ip_address:
      name: ${friendly_name} IP
    ssid:
      name: ${friendly_name} SSID
    bssid:
      name: ${friendly_name} BSSID
    mac_address:
      name: ${friendly_name} Mac

switch:
  - platform: restart
    name: ${friendly_name} REBOOT
  - platform: tuya
    name: ${friendly_name} Switch 1
    switch_datapoint: 1
  - platform: tuya
    name: ${friendly_name} Switch 2
    switch_datapoint: 2
  - platform: tuya
    name: ${friendly_name} Switch 3
    switch_datapoint: 3
  - platform: tuya
    name: ${friendly_name} Switch 4
    switch_datapoint: 4