devices.esphome.io
Smart Powermeter
Smart Powermeter
Device Type: sensorElectrical Standard: globalBoard: esp32Difficulty: Soldering required, 4/5Project URL: https://smart-powermeter.readthedocs.io
      
  
        
Pinout
| ESP32-S2 | CT-Clamps | e-Paper | Component | 
|---|---|---|---|
| GPIO 01 | Probe 1 | ||
| GPIO 02 | Probe 2 | ||
| GPIO 03 | Probe 3 | ||
| GPIO 04 | Probe 4 | ||
| GPIO 05 | Probe 5 | ||
| GPIO 06 | Probe 6 | ||
| GPIO 08 | LED | ||
| GPIO 10 | CS | ||
| GPIO 11 | MOSI | ||
| GPIO 12 | CLK | ||
| GPIO 13 | DC/MISO | ||
| GPIO 14 | BUSY | ||
| GPIO 15 | RST | ||
| GPIO 33 | SDA | ||
| GPIO 34 | SCL | 
Basic Configuration
substitutions:  device_name: "smart-powermeter"  friendly_name: "Smart Powermeter"  project_name: "smart.powermeter"  project_version: "2.0"  ap_ssid: "Smart-Powermeter"  ap_pwd: "smartpowermeter"
esphome:  name: "${device_name}"  name_add_mac_suffix: true  project:    name: "${project_name}"    version: "${project_version}"
esp32:  board: esp32-s2-saola-1  framework:    type: arduino
# Enable logginglogger:
# Enable Home Assistant APIapi:
# Enable Over The Air updatesota:
#Public location of this yaml filedashboard_import:  package_import_url: github://JGAguado/Smart_Powermeter/docs/source/files/configuration.yaml@V2R1  import_full_config: true
# Enable fallback hotspot (captive portal) in case wifi connection failscaptive_portal:
improv_serial:
wifi:  ssid: !secret wifi_ssid  password: !secret wifi_password  ap:    ssid: "${ap_ssid}"    password: "${ap_pwd}"
sensor:  - platform: adc    pin: GPIO1    id: Input_1    attenuation: 12db    update_interval: 1s
  - platform: adc    pin: GPIO2    id: Input_2    attenuation: 12db    update_interval: 1s
  - platform: adc    pin: GPIO3    id: Input_3    attenuation: 12db    update_interval: 1s
  - platform: adc    pin: GPIO4    id: Input_4    attenuation: 12db    update_interval: 1s
  - platform: adc    pin: GPIO5    id: Input_5    attenuation: 12db    update_interval: 1s
  - platform: adc    pin: GPIO6    id: Input_6    attenuation: 12db    update_interval: 1s
  - platform: ct_clamp    sensor: Input_1    id: Probe_1    name: "Probe 1"    sample_duration: 200ms    update_interval: 1s    filters:      - calibrate_linear:          - 0 -> 0          - 0.022 -> 0.66
  - platform: ct_clamp    sensor: Input_2    name: "Probe 2"    id: Probe_2    sample_duration: 200ms    update_interval: 1s    filters:      - calibrate_linear:          - 0 -> 0          - 0.022 -> 0.66
  - platform: ct_clamp    sensor: Input_3    name: "Probe 3"    id: Probe_3    sample_duration: 200ms    update_interval: 1s    filters:      - calibrate_linear:          - 0 -> 0          - 0.022 -> 0.66
  - platform: ct_clamp    sensor: Input_4    name: "Probe 4"    id: Probe_4    sample_duration: 200ms    update_interval: 1s    filters:      - calibrate_linear:          - 0 -> 0          - 0.022 -> 0.66
  - platform: ct_clamp    sensor: Input_5    name: "Probe 5"    id: Probe_5    sample_duration: 200ms    update_interval: 1s    filters:      - calibrate_linear:          - 0 -> 0          - 0.022 -> 0.66
  - platform: ct_clamp    sensor: Input_6    name: "Probe 6"    id: Probe_6    sample_duration: 200ms    update_interval: 1s    filters:      - calibrate_linear:          - 0 -> 0          - 0.022 -> 0.66
  - platform: total_daily_energy    name: "Total Daily Power"    power_id: current_power    id: daily_power
  - platform: template    id: current_power    name: "Measured Power"    lambda: return (id(Probe_1).state + id(Probe_2).state + id(Probe_3).state) * 230.0 / 1000; #Power = Current * Voltage    unit_of_measurement: 'kW'    update_interval: 5s
spi:  clk_pin: GPIO12  mosi_pin: GPIO11  # Works on the e-paper
display:  - platform: waveshare_epaper    cs_pin: GPIO10    dc_pin: GPIO13    busy_pin: GPIO14    reset_pin: GPIO15    model: 2.90inv2    rotation: 270    update_interval: 1min    full_update_every: 1