devices.esphome.io
Kogan SmarterHome Smart Power Board With USB Ports & Energy Meter
Kogan SmarterHome Smart Power Board With USB Ports & Energy Meter
Device Type: plugElectrical Standard: auBoard: esp8266
  
      
  
        
Kogan SmarterHome⢠Smart Power Board With USB Ports & Energy Meter - (KASPS10A3P3UA) - Manual
GPIO Pinout
| Pin | Function | 
|---|---|
| GPIO00 | Push Button | 
| GPIO01 | Green LED (Inverted: true) | 
| GPIO13 | Relay 1 | 
| GPIO14 | Relay 2 | 
| GPIO03 | Relay 3 | 
| GPIO15 | Relay USB | 
| GPIO12 | HLW8012 SEL Pin | 
| GPIO04 | HLW8012 CF Pin | 
| GPIO05 | HLW8012 CF1 Pin | 
Note: In the below configuration, the push button (and surrounding LED) is configured to only control Relay 3 (End Plug)
Basic Config
substitutions:  device_name: kogan_strip_1  device_ip: 192.168.x.x  plug_icon: mdi:power-socket-au  usb_icon: mdi:usb-port  plug1_restore: ALWAYS_ON  plug2_restore: ALWAYS_OFF  plug3_restore: ALWAYS_OFF  usb_restore: ALWAYS_ON    # Higher value gives lower watt readout  current_res: "0.00250"  # Lower value gives lower voltage readout  voltage_div: "799"
esphome:  name: ${device_name}
esp8266:  board: esp8285
wifi:  ssid: !secret wifi_ssid  password: !secret wifi_password  manual_ip:    static_ip: ${device_ip}    gateway: 192.168.x.x    subnet: 255.255.255.0
logger:
web_server:  port: 80  api:  reboot_timeout: 15min  encryption:    key: !secret encryption_key
ota:  password: !secret ota_password
binary_sensor:  - platform: gpio    pin:      number: GPIO0      mode: INPUT_PULLUP      inverted: true    name: "${device_name}_button"    on_multi_click:      - timing:          - ON for 5ms to 350ms          - OFF for at least 750ms        then:          - switch.toggle: relayusb      - timing:          - ON for 5ms to 350ms          - OFF for 5ms to 350ms          - ON for 5ms to 350ms          - OFF for at least 750ms        then:          - switch.toggle: relay1      - timing:          - ON for 5ms to 350ms          - OFF for 5ms to 350ms          - ON for 5ms to 350ms          - OFF for 5ms to 350ms          - ON for 5ms to 350ms          - OFF for at least 750ms        then:          - switch.toggle: relay2      - timing:          - ON for 5ms to 350ms          - OFF for 5ms to 350ms          - ON for 5ms to 350ms          - OFF for 5ms to 350ms          - ON for 5ms to 350ms          - OFF for 5ms to 350ms          - ON for 5ms to 350ms          - OFF for at least 750ms        then:          - switch.toggle: relay3
  - platform: status    name: "${device_name}_status"
light:  - platform: status_led    id: green_led    pin:      number: GPIO1      inverted: true
switch:  - platform: gpio    name: "${device_name}_plug1"    pin: GPIO13    id: relay1    icon: ${plug_icon}    restore_mode: ${plug1_restore}
  - platform: gpio    name: "${device_name}_plug2"    pin: GPIO14    id: relay2    icon: ${plug_icon}    restore_mode: ${plug2_restore}
  - platform: gpio    name: "${device_name}_plug3"    pin: GPIO3    id: relay3    icon: ${plug_icon}    restore_mode: ${plug3_restore}    on_turn_on:      - light.turn_on: green_led    on_turn_off:      - light.turn_off: green_led
  - platform: gpio    name: "${device_name}_usb"    pin: GPIO15    id: relayusb    icon: ${usb_icon}    restore_mode: ${usb_restore}
sensor:  - platform: hlw8012    sel_pin:      number: GPIO12      inverted: true    cf_pin: GPIO04    cf1_pin: GPIO05    current:      name: "${device_name}_current"      unit_of_measurement: A    voltage:      name: "${device_name}_voltage"      unit_of_measurement: V    power:      id: ${device_name}_wattage      name: "${device_name}_wattage"      unit_of_measurement: W    current_resistor: ${current_res}    voltage_divider: ${voltage_div}    change_mode_every: 8    update_interval: 15s
  - platform: total_daily_energy    name: "${device_name}_daily_energy"    power_id: ${device_name}_wattage    filters:      - multiply: 0.001    unit_of_measurement: kWh
  - platform: wifi_signal    name: "${device_name}_rssi"    update_interval: 5min
  - platform: uptime    id: uptime_sec    name: "${device_name}_uptime"    update_interval: 5min
text_sensor:  - platform: template    name: "${device_name}_upformat"    lambda: |-      uint32_t dur = id(uptime_sec).state;      int dys = 0;      int hrs = 0;      int mnts = 0;      if (dur > 86399) {        dys = trunc(dur / 86400);        dur = dur - (dys * 86400);      }      if (dur > 3599) {        hrs = trunc(dur / 3600);        dur = dur - (hrs * 3600);      }      if (dur > 59) {        mnts = trunc(dur / 60);        dur = dur - (mnts * 60);      }      char buffer[17];      sprintf(buffer, "%ud %02uh %02um %02us", dys, hrs, mnts, dur);      return {buffer};    icon: mdi:clock-start    update_interval: 5min
time:  - platform: homeassistant    id: homeassistant_time