prefixkit Ask an engineerAsk Support RU

ESPHome devices

DETA Grid Connect Smart Switch (Single 6911HA / Double 6912HA / Triple 6903HA / Quad 6904HA): ESPHome

DETA Grid Connect Smart Switch (Single 6911HA / Double 6912HA / Triple 6903HA / Quad 6904HA) (wall switches, BK72XX): GPIO pinout and a starter ESPHome config with relays, buttons, LED. Local Home Assistant control with no cloud.

Type
Wall switches
Chip
BK72XX
Region standard
AU

Pinout

PinFunction
GPIO4Status LED _(inverted)_
GPIO12Button, Bottom
GPIO13Relay, Top _(includes LED)_
GPIO14Relay, Bottom _(includes LED)_
GPIO16Button, Top
GPIO16Button, Top
GPIO4Button, Middle
GPIO3Button, Bottom
GPIO5Relay, Top _(includes LED)_
GPIO14Relay, Middle _(includes LED)_
GPIO12Relay, Bottom _(includes LED)_
GPIO0Status LED _(inverted)_
P6Relay, Left _(includes LED)_
P9Status LED _(inverted)_
P14Button, Left
P24Button, Right
P26Relay, Right _(includes LED)_

Find it in shops: AliExpress

Links open a search in the shop; some are affiliate links: buying through them costs you nothing extra and supports this site. We do not sell devices or get them from manufacturers.

Starter ESPHome config

Built from the pinout above. Keys and the Wi-Fi password come from secrets.yaml in ESPHome. Check the pins against your hardware revision before flashing: one model can ship with different boards.

substitutions:
  name: deta-grid-connect-smart-

esphome:
  name: ${name}
  friendly_name: "DETA Grid Connect Smart Switch (Single 6911HA / Double 6912HA / Triple 6903HA / Quad 6904HA)"

bk72xx:
  board: generic-bk7231n-qfn32-tuya  # BK7231T or BK7231N: check the chip marking

logger:
api:
  encryption:
    key: !secret api_key
ota:
  - platform: esphome
    password: !secret ota_password
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap: {}
captive_portal:

switch:
  - platform: gpio
    pin: GPIO13
    id: relay1
    name: "Relay 1"  # Relay, Top _(includes LED)_
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: gpio
    pin: GPIO14
    id: relay2
    name: "Relay 2"  # Relay, Bottom _(includes LED)_
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: gpio
    pin: GPIO5
    id: relay3
    name: "Relay 3"  # Relay, Top _(includes LED)_
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: gpio
    pin: GPIO14
    id: relay4
    name: "Relay 4"  # Relay, Middle _(includes LED)_
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: gpio
    pin: GPIO12
    id: relay5
    name: "Relay 5"  # Relay, Bottom _(includes LED)_
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: gpio
    pin: P6
    id: relay6
    name: "Relay 6"  # Relay, Left _(includes LED)_
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: gpio
    pin: P26
    id: relay7
    name: "Relay 7"  # Relay, Right _(includes LED)_
    restore_mode: RESTORE_DEFAULT_OFF

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO12
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 1"  # Button, Bottom
    on_press:
      - switch.toggle: relay1
  - platform: gpio
    pin:
      number: GPIO16
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 2"  # Button, Top
    on_press:
      - switch.toggle: relay2
  - platform: gpio
    pin:
      number: GPIO16
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 3"  # Button, Top
    on_press:
      - switch.toggle: relay3
  - platform: gpio
    pin:
      number: GPIO4
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 4"  # Button, Middle
    on_press:
      - switch.toggle: relay4
  - platform: gpio
    pin:
      number: GPIO3
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 5"  # Button, Bottom
    on_press:
      - switch.toggle: relay5
  - platform: gpio
    pin:
      number: P14
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 6"  # Button, Left
    on_press:
      - switch.toggle: relay6
  - platform: gpio
    pin:
      number: P24
      mode: INPUT_PULLUP
      inverted: true
    name: "Button 7"  # Button, Right
    on_press:
      - switch.toggle: relay7

status_led:
  pin:
    number: GPIO4
    inverted: true  # Status LED _(inverted)_

# Other pins from the pinout:
#   GPIO0: Status LED _(inverted)_
#   P9: Status LED _(inverted)_

How to flash

  • Most devices are flashed over UART: a 3.3 V USB-TTL adapter to RX, TX, GND and 3V3, holding GPIO0 to ground at power-on (ESP8266/ESP32). Mains power disconnected.
  • Beken (BK72xx) and Realtek chips are flashed with ltchiptool, or with cloudcutter without opening the case if the firmware allows it.
  • Details and board photos: the device page in the ESPHome database.

A config from scratch: ESPHome generator. Which pins are safe: pinout.

Similar devices

Idea?