# CT01 - A - Grid Phase A # CT02 - G - Dryer # CT03 - D - Furnace # CT04 - B - Grid Phase B # CT05 - E - Basement Plugs (Computer is on this circuit) # CT06 - F - Nursery, Kitchen, and Dining Room Lights # CT07 - C - Sump Pump Plug # CT08 - H - Microwave Plug # CT09 - I - Stove/Oven # CT10 - J - Front Room Plugs # CT11 - M - Heat Pump # CT12 - L - Kitchen Circuit 1 (Fridge is on this circuit) substitutions: devicename: power-monitor friendly_name: 'PM:' entity_name: power_monitor comment: Clever Power Monitor static_ip: !secret power-monitor-ip platform: ESP32 board: nodemcu-32s update_time: 500ms kwh_report_interval: 60s watt_heartbeat: 60s throttle_time: 60s watt_delta: "50.0" #watt_delta: "5.0" #grid_watt_delta: "10.0" grid_watt_delta: "200.0" #fast_update_time: 10s #medium_update_time: 30s #slow_update_time: 60s ct01Name: 'Grid Phase A' ct04Name: 'Grid Phase B' ct22Name: 'Well' # 1, 3 # sct010 - O ct12Name: 'Kitchen 1' # 5 # sct006 - L ct16Name: 'Kitchen 2' # 7 # sct006 - S ct18Name: 'Laundry Plug' # 9 # sct006 - N ct08Name: 'Microwave Plug' # 11 # sct006 - H ct17Name: 'Bathroom Plug' # 13 # sct006 - R ct11Name: 'Heat Pump' # 15, 17 - M ct24Name: 'Basement Bedroom and Furnace Room Lights' # 19 # sct006 - K ct05Name: 'Basement Plugs' # 21a # sct006 - E ct23Name: 'Basement and Laundry Lights and Plugs' # 21b # sct006 - W ct07Name: 'Sump Pump Plug' # 23 # sct006 - C ct06Name: 'Nursery, Dining, Kitchen Lights' # 2 # sct006 - F ct20Name: 'Master Suite' # 4 # sct006 - T ct03Name: 'Furnace' # 6 # sct006 - D ct15Name: 'Basement Stairs and Lights' # 8 # sct006 - P ct21Name: 'Dishwasher' # 10 # sct006 - V ct13Name: 'Garage Outside and Front Garage Lights' # 12 # sct006 - U ct10Name: 'Front Room Plugs' # 14 # sct006 - J ct14Name: 'Garage and Outside Plugs' # 16 # sct006 - Q ct09Name: 'Stove' # 18, 20 # sct016 - I ct02Name: 'Dryer' # 22, 24 # sct010 - G ct19Name: 'Unused' # Current Transformers: # 20A/25mA SCT-006: 11143 sct006: '11143' # 30A/1V SCT-013-030: 8650 # 50A/1V SCT-013-050: 15420 # 80A/26.6mA SCT-010: 41660 sct010: '41660' # 100A/50ma SCT-013-000: 27518 sct013: '27518' # 120A/40mA: SCT-016: 41787 sct016: '41787' # 200A/100mA SCT-024: 27518 #current_cal: '27518' # Jameco 9VAC Transformer: # For meter versions: # >= v1.3: 7305 voltage_cal: '7305' packages: wifi: !include common/wifi.yaml # device_base: !include common/complex_esp32_base.yaml device_base: !include common/device_base.yaml esp32: board: nodemcu-32s # web_server: # port: 80 time: - platform: sntp id: sntp_time timezone: America/Detroit logger: level: DEBUG logs: sensor: DEBUG spi: clk_pin: 18 miso_pin: 19 mosi_pin: 23 sensor: #IC1 Main - platform: atm90e32 cs_pin: 5 phase_a: voltage: name: ${friendly_name} [V] id: ic1Volts filters: - throttle_average: 60s accuracy_decimals: 1 current: name: ${friendly_name} ${ct01Name} [A] id: ct1Amps filters: - or: - delta: 2 - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} power: name: ${friendly_name} ${ct01Name} [W] id: ct1Watts filters: - or: - delta: ${grid_watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct016} phase_b: power: name: ${friendly_name} ${ct02Name} [W] id: ct2Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct010} phase_c: power: name: ${friendly_name} ${ct03Name} [W] id: ct3Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} frequency: name: ${friendly_name} Freq A filters: - or: - delta: 0.05 - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} line_frequency: 60Hz gain_pga: 1X update_interval: ${update_time} #IC2 Main - platform: atm90e32 cs_pin: 4 phase_a: current: name: ${friendly_name} ${ct04Name} [A] id: ct4Amps filters: - or: - delta: ${grid_watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 power: name: ${friendly_name} ${ct04Name} [W] id: ct4Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} gain_voltage: ${voltage_cal} gain_ct: ${sct016} phase_b: power: name: ${friendly_name} ${ct05Name} [W] id: ct5Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} phase_c: power: name: ${friendly_name} ${ct06Name} [W] id: ct6Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} frequency: name: ${friendly_name} Freq B filters: - or: - delta: 0.05 - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} line_frequency: 60Hz gain_pga: 1X update_interval: ${update_time} #IC1 AddOn 1 - platform: atm90e32 cs_pin: 0 phase_a: power: name: ${friendly_name} ${ct07Name} [W] id: ct7Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} phase_b: power: name: ${friendly_name} ${ct08Name} [W] id: ct8Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} - multiply: -1 accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} phase_c: power: name: ${friendly_name} ${ct09Name} [W] id: ct9Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct013} line_frequency: 60Hz gain_pga: 1X update_interval: ${update_time} #IC2 AddOn 1 - platform: atm90e32 cs_pin: 16 phase_a: power: name: ${friendly_name} ${ct10Name} [W] id: ct10Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} phase_b: power: name: ${friendly_name} ${ct11Name} [W] id: ct11Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} - multiply: -1 accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct010} phase_c: power: name: ${friendly_name} ${ct12Name} [W] id: ct12Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} - multiply: -1 accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} line_frequency: 60Hz gain_pga: 1X update_interval: ${update_time} #IC1 AddOn 2 - platform: atm90e32 cs_pin: 27 phase_a: power: name: ${friendly_name} ${ct13Name} [W] id: ct13Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} - multiply: -1 accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} phase_b: power: name: ${friendly_name} ${ct14Name} [W] id: ct14Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} - multiply: -1 accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} phase_c: power: name: ${friendly_name} ${ct15Name} [W] id: ct15Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} - multiply: -1 accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} line_frequency: 60Hz gain_pga: 1X update_interval: ${update_time} #IC2 AddOn 2 - platform: atm90e32 cs_pin: 17 phase_a: power: name: ${friendly_name} ${ct16Name} [W] id: ct16Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} phase_b: power: name: ${friendly_name} ${ct17Name} [W] id: ct17Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} - multiply: -1 accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} phase_c: power: name: ${friendly_name} ${ct18Name} [W] id: ct18Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} - multiply: -1 accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} line_frequency: 60Hz gain_pga: 1X update_interval: ${update_time} #IC1 AddOn 3 - platform: atm90e32 #do not use GPIO2 if ESP32 has an on-board LED assigned to it cs_pin: 2 phase_a: power: name: ${friendly_name} ${ct19Name} [W] id: ct19Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} phase_b: power: name: ${friendly_name} ${ct20Name} [W] id: ct20Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} gain_voltage: ${voltage_cal} gain_ct: ${sct006} phase_c: power: name: ${friendly_name} ${ct21Name} [W] id: ct21Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} line_frequency: 60Hz gain_pga: 1X update_interval: ${update_time} #IC2 AddOn 3 - platform: atm90e32 cs_pin: 21 phase_a: power: #name: ${friendly_name} ${ct22Name} [W] internal: true id: ct22Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct010} phase_b: power: name: ${friendly_name} ${ct23Name} [W] id: ct23Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} - multiply: -1 accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} phase_c: power: name: ${friendly_name} ${ct24Name} [W] id: ct24Watts filters: - or: - delta: ${watt_delta} - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} - multiply: -1 accuracy_decimals: 1 gain_voltage: ${voltage_cal} gain_ct: ${sct006} line_frequency: 60Hz gain_pga: 1X update_interval: ${update_time} #Total Amps From Grid - platform: template name: ${friendly_name} Grid Total [A] id: totalAmpsFromGrid lambda: return id(ct1Amps).state + id(ct4Amps).state ; accuracy_decimals: 1 unit_of_measurement: A device_class: current state_class: measurement update_interval: ${update_time} filters: - or: - delta: 2.0 - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} #Total Watts From Grid - platform: template name: ${friendly_name} Grid Total [W] id: totalWattsFromGrid lambda: return id(ct1Watts).state + id(ct4Watts).state ; accuracy_decimals: 1 unit_of_measurement: W device_class: power state_class: measurement update_interval: ${update_time} filters: - or: - delta: 5.0 - throttle_average: ${throttle_time} # - heartbeat: ${watt_heartbeat} #kWh From Grid - platform: total_daily_energy name: ${friendly_name} Grid [kWh] power_id: totalWattsFromGrid filters: - multiply: 0.001 # - heartbeat: ${kwh_report_interval} unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} # The CT for the Well needs to be calibrated. # In the interim, I'm using this lambda - platform: template name: ${friendly_name} ${ct22Name} [W] id: ct22WattsPositive state_class: measurement lambda: |- if (id(ct22Watts).state < 0){ return 0; } else { return id(ct22Watts).state ; } accuracy_decimals: 1 unit_of_measurement: W icon: mdi:lightning-bolt-circle update_interval: ${update_time} filters: - delta: 5.0 # - heartbeat: ${watt_heartbeat} # kWh from CT1 # This is included in the grid calculation # kWh from CT2 (the dryer) - platform: total_daily_energy name: ${friendly_name} ${ct02Name} [kWh] power_id: ct2Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 3 - platform: total_daily_energy name: ${friendly_name} ${ct03Name} [kWh] power_id: ct3Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} # kWh From CT 4 # This is included in the Grid calculation area #kWh From CT 5 - platform: total_daily_energy name: ${friendly_name} ${ct05Name} [kWh] power_id: ct5Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 6 - platform: total_daily_energy name: ${friendly_name} ${ct06Name} [kWh] power_id: ct6Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 7 - platform: total_daily_energy name: ${friendly_name} ${ct07Name} [kWh] power_id: ct7Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 8 - platform: total_daily_energy name: ${friendly_name} ${ct08Name} [kWh] power_id: ct8Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 9 - platform: total_daily_energy name: ${friendly_name} ${ct09Name} [kWh] power_id: ct9Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 10 - platform: total_daily_energy name: ${friendly_name} ${ct10Name} [kWh] power_id: ct10Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 11 (Heat Pump) - platform: total_daily_energy name: ${friendly_name} ${ct11Name} [kWh] power_id: ct11Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 12 - platform: total_daily_energy name: ${friendly_name} ${ct12Name} [kWh] power_id: ct12Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 13 - platform: total_daily_energy name: ${friendly_name} ${ct13Name} [kWh] power_id: ct13Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 14 - platform: total_daily_energy name: ${friendly_name} ${ct14Name} [kWh] power_id: ct14Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 15 - platform: total_daily_energy name: ${friendly_name} ${ct15Name} [kWh] power_id: ct15Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 16 - platform: total_daily_energy name: ${friendly_name} ${ct16Name} [kWh] power_id: ct16Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 17 - platform: total_daily_energy name: ${friendly_name} ${ct17Name} [kWh] power_id: ct17Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 18 - platform: total_daily_energy name: ${friendly_name} ${ct18Name} [kWh] power_id: ct18Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 19 # this is not used # - platform: total_daily_energy # name: ${friendly_name} ${ct19Name} [kWh] # power_id: ct19Watts # filters: # - multiply: 0.001 # - throttle_average: ${kwh_report_interval} # unit_of_measurement: kWh # device_class: energy # state_class: total_increasing # # min_save_interval: ${update_time} #kWh From CT 20 - platform: total_daily_energy name: ${friendly_name} ${ct20Name} [kWh] power_id: ct20Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 21 - platform: total_daily_energy name: ${friendly_name} ${ct21Name} [kWh] power_id: ct21Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 22 - platform: total_daily_energy name: ${friendly_name} ${ct22Name} [kWh] power_id: ct22WattsPositive filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 23 - platform: total_daily_energy name: ${friendly_name} ${ct23Name} [kWh] power_id: ct23Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time} #kWh From CT 24 - platform: total_daily_energy name: ${friendly_name} ${ct24Name} [kWh] power_id: ct24Watts filters: - multiply: 0.001 unit_of_measurement: kWh device_class: energy state_class: total_increasing # min_save_interval: ${update_time}