mirror of
https://github.com/CeeWeasel/fresh-home.git
synced 2026-08-09 18:40:14 -04:00
stop hating myself
This commit is contained in:
@@ -0,0 +1,420 @@
|
||||
# CircuitSetup 6 Channel Energy Meter Main Board example config
|
||||
# See all options at https://esphome.io/components/sensor/atm90e32.html
|
||||
|
||||
substitutions:
|
||||
# Change the disp_name to something you want
|
||||
disp_name: Energy-Meter
|
||||
friendly_name: CircuitSetup Energy Meter Wifi
|
||||
# Interval of how often the power data is updated
|
||||
update_time: 60s
|
||||
|
||||
# Change current_cal to the corresponding CT's that you're using
|
||||
# If different CTs per current channel, remove or change "${current_cal}" from
|
||||
# "gain_ct" below and replace with the CT calibration number respectively
|
||||
# Current Transformers:
|
||||
# 20A/25mA SCT-006: 11143
|
||||
# 30A/1V SCT-013-030: 8650
|
||||
# 50A/1V SCT-013-050: 15420
|
||||
# 50A/16.6mA SCT-010: 41334
|
||||
# 80A/26.6mA SCT-010: 41660
|
||||
# 100A/50ma SCT-013-000: 27518
|
||||
# 120A/40mA: SCT-016: 41787
|
||||
# 200A/100mA SCT-024: 27518
|
||||
# 200A/50mA SCT-024: 55036
|
||||
current_cal_ct1: '27518'
|
||||
current_cal_ct2: '27518'
|
||||
current_cal_ct3: '27518'
|
||||
current_cal_ct4: '27518'
|
||||
current_cal_ct5: '27518'
|
||||
current_cal_ct6: '27518'
|
||||
# This only needs to be changed if you're using something other than the
|
||||
# Jameco 9VAC Transformer:
|
||||
voltage_cal1: '7305'
|
||||
voltage_cal2: '7305'
|
||||
|
||||
main_meter_name1: Meter 1-3
|
||||
main_meter_name2: Meter 4-6
|
||||
main_meter_id1: meter_main1
|
||||
main_meter_id2: meter_main2
|
||||
ct1_name: CT1
|
||||
ct2_name: CT2
|
||||
ct3_name: CT3
|
||||
ct4_name: CT4
|
||||
ct5_name: CT5
|
||||
ct6_name: CT6
|
||||
|
||||
#packages:
|
||||
# common: github://CircuitSetup/Expandable-6-Channel-ESP32-Energy-Meter/Software/ESPHome/6chan_common.yaml
|
||||
esphome:
|
||||
name: energy-meter
|
||||
friendly_name: "${friendly_name}"
|
||||
name_add_mac_suffix: true
|
||||
min_version: '2025.5.0'
|
||||
project:
|
||||
name: circuitsetup.6c-energy-meter
|
||||
version: "1.5"
|
||||
|
||||
esp32:
|
||||
board: nodemcu-32s
|
||||
|
||||
captive_portal:
|
||||
|
||||
improv_serial:
|
||||
|
||||
logger:
|
||||
level: DEBUG
|
||||
|
||||
# Enable OTA updating
|
||||
ota:
|
||||
- platform: esphome
|
||||
|
||||
web_server:
|
||||
port: 80
|
||||
|
||||
spi:
|
||||
interface: software
|
||||
clk_pin: 18
|
||||
miso_pin: 19
|
||||
mosi_pin: 23
|
||||
|
||||
time:
|
||||
- platform: homeassistant
|
||||
id: homeassistant_time
|
||||
|
||||
dashboard_import:
|
||||
package_import_url: github://CircuitSetup/Expandable-6-Channel-ESP32-Energy-Meter/Software/ESPHome/6chan_main_calibration_beta.yaml
|
||||
import_full_config: false
|
||||
|
||||
api:
|
||||
|
||||
wifi:
|
||||
# Set up a wifi access point
|
||||
ap:
|
||||
|
||||
sensor:
|
||||
#IC1
|
||||
- platform: atm90e32
|
||||
cs_pin: 5
|
||||
id: ${main_meter_id1}
|
||||
phase_a:
|
||||
voltage:
|
||||
name: Voltage 1
|
||||
id: ic1Volts
|
||||
accuracy_decimals: 1
|
||||
current:
|
||||
name: ${ct1_name} Amps
|
||||
id: ct1Amps
|
||||
# The max value for current that the meter can output is 65.535. If you expect to measure current over 65A,
|
||||
# divide the gain_ct by 2 (120A CT) or 4 (200A CT) and multiply the current and power values by 2 or 4 by uncommenting the filter below
|
||||
# filters:
|
||||
# - multiply: 2
|
||||
power:
|
||||
name: ${ct1_name} Watts
|
||||
id: ct1Watts
|
||||
# filters:
|
||||
# - multiply: 2
|
||||
reactive_power:
|
||||
name: ${ct1_name} VAR
|
||||
apparent_power:
|
||||
name: ${ct1_name} VA
|
||||
harmonic_power:
|
||||
name: ${ct1_name} Harmonic Power
|
||||
power_factor:
|
||||
name: ${ct1_name} PF
|
||||
phase_angle:
|
||||
name: ${ct1_name} Phase Angle
|
||||
peak_current:
|
||||
name: ${ct1_name} Peak Current
|
||||
gain_voltage: ${voltage_cal1}
|
||||
gain_ct: ${current_cal_ct1}
|
||||
offset_voltage: 0
|
||||
offset_current: 0
|
||||
offset_active_power: 0
|
||||
offset_reactive_power: 0
|
||||
phase_b:
|
||||
current:
|
||||
name: ${ct2_name} Amps
|
||||
id: ct2Amps
|
||||
power:
|
||||
name: ${ct2_name} Watts
|
||||
id: ct2Watts
|
||||
reactive_power:
|
||||
name: ${ct2_name} VAR
|
||||
apparent_power:
|
||||
name: ${ct2_name} VA
|
||||
harmonic_power:
|
||||
name: ${ct2_name} Harmonic Power
|
||||
power_factor:
|
||||
name: ${ct2_name} PF
|
||||
phase_angle:
|
||||
name: ${ct2_name} Phase Angle
|
||||
peak_current:
|
||||
name: ${ct2_name} Peak Current
|
||||
gain_voltage: ${voltage_cal1}
|
||||
gain_ct: ${current_cal_ct2}
|
||||
offset_voltage: 0
|
||||
offset_current: 0
|
||||
offset_active_power: 0
|
||||
offset_reactive_power: 0
|
||||
phase_c:
|
||||
current:
|
||||
name: ${ct3_name} Amps
|
||||
id: ct3Amps
|
||||
power:
|
||||
name: ${ct3_name} Watts
|
||||
id: ct3Watts
|
||||
reactive_power:
|
||||
name: ${ct3_name} VAR
|
||||
apparent_power:
|
||||
name: ${ct3_name} VA
|
||||
harmonic_power:
|
||||
name: ${ct3_name} Harmonic Power
|
||||
power_factor:
|
||||
name: ${ct3_name} PF
|
||||
phase_angle:
|
||||
name: ${ct3_name} Phase Angle
|
||||
peak_current:
|
||||
name: ${ct3_name} Peak Current
|
||||
gain_voltage: ${voltage_cal1}
|
||||
gain_ct: ${current_cal_ct3}
|
||||
offset_voltage: 0
|
||||
offset_current: 0
|
||||
offset_active_power: 0
|
||||
offset_reactive_power: 0
|
||||
frequency:
|
||||
name: Frequency 1
|
||||
chip_temperature:
|
||||
name: ${main_meter_name1} Chip Temp
|
||||
line_frequency: 60Hz
|
||||
gain_pga: 1X
|
||||
update_interval: ${update_time}
|
||||
enable_offset_calibration: true
|
||||
enable_gain_calibration: true
|
||||
#IC2
|
||||
- platform: atm90e32
|
||||
cs_pin: 4
|
||||
id: ${main_meter_id2}
|
||||
phase_a:
|
||||
#this voltage is only needed if monitoring 2 voltages
|
||||
# voltage:
|
||||
# name: Voltage 2
|
||||
# id: ic2Volts
|
||||
# accuracy_decimals: 1
|
||||
current:
|
||||
name: ${ct4_name} Amps
|
||||
id: ct4Amps
|
||||
power:
|
||||
name: ${ct4_name} Watts
|
||||
id: ct4Watts
|
||||
reactive_power:
|
||||
name: ${ct4_name} VAR
|
||||
apparent_power:
|
||||
name: ${ct4_name} VA
|
||||
harmonic_power:
|
||||
name: ${ct4_name} Harmonic Power
|
||||
power_factor:
|
||||
name: ${ct4_name} PF
|
||||
phase_angle:
|
||||
name: ${ct4_name} Phase Angle
|
||||
peak_current:
|
||||
name: ${ct4_name} Peak Current
|
||||
gain_voltage: ${voltage_cal2}
|
||||
gain_ct: ${current_cal_ct4}
|
||||
offset_voltage: 0
|
||||
offset_current: 0
|
||||
offset_active_power: 0
|
||||
offset_reactive_power: 0
|
||||
phase_b:
|
||||
current:
|
||||
name: ${ct5_name} Amps
|
||||
id: ct5Amps
|
||||
power:
|
||||
name: ${ct5_name} Watts
|
||||
id: ct5Watts
|
||||
reactive_power:
|
||||
name: ${ct5_name} VAR
|
||||
apparent_power:
|
||||
name: ${ct5_name} VA
|
||||
harmonic_power:
|
||||
name: ${ct5_name} Harmonic Power
|
||||
power_factor:
|
||||
name: ${ct5_name} PF
|
||||
phase_angle:
|
||||
name: ${ct5_name} Phase Angle
|
||||
peak_current:
|
||||
name: ${ct5_name} Peak Current
|
||||
gain_voltage: ${voltage_cal2}
|
||||
gain_ct: ${current_cal_ct5}
|
||||
offset_voltage: 0
|
||||
offset_current: 0
|
||||
offset_active_power: 0
|
||||
offset_reactive_power: 0
|
||||
phase_c:
|
||||
current:
|
||||
name: ${ct6_name} Amps
|
||||
id: ct6Amps
|
||||
power:
|
||||
name: ${ct6_name} Watts
|
||||
id: ct6Watts
|
||||
reactive_power:
|
||||
name: ${ct6_name} VAR
|
||||
apparent_power:
|
||||
name: ${ct6_name} VA
|
||||
harmonic_power:
|
||||
name: ${ct6_name} Harmonic Power
|
||||
power_factor:
|
||||
name: ${ct6_name} PF
|
||||
phase_angle:
|
||||
name: ${ct6_name} Phase Angle
|
||||
peak_current:
|
||||
name: ${ct6_name} Peak Current
|
||||
gain_voltage: ${voltage_cal2}
|
||||
gain_ct: ${current_cal_ct6}
|
||||
offset_voltage: 0
|
||||
offset_current: 0
|
||||
offset_active_power: 0
|
||||
offset_reactive_power: 0
|
||||
#this is only needed if monitoring 2 voltages
|
||||
# frequency:
|
||||
# name: Frequency 2
|
||||
chip_temperature:
|
||||
name: ${main_meter_name2} Chip Temp
|
||||
line_frequency: 60Hz
|
||||
gain_pga: 1X
|
||||
update_interval: ${update_time}
|
||||
enable_offset_calibration: true
|
||||
enable_gain_calibration: true
|
||||
|
||||
#Total Amps
|
||||
- platform: template
|
||||
name: ${disp_name} Total Amps
|
||||
id: totalAmps
|
||||
lambda: return id(ct1Amps).state + id(ct2Amps).state + id(ct3Amps).state + id(ct4Amps).state + id(ct5Amps).state + id(ct6Amps).state ;
|
||||
accuracy_decimals: 2
|
||||
unit_of_measurement: A
|
||||
device_class: current
|
||||
update_interval: ${update_time}
|
||||
#Total Watts
|
||||
- platform: template
|
||||
name: ${disp_name} Total Watts
|
||||
id: totalWatts
|
||||
lambda: return id(ct1Watts).state + id(ct2Watts).state + id(ct3Watts).state + id(ct4Watts).state + id(ct5Watts).state + id(ct6Watts).state ;
|
||||
accuracy_decimals: 1
|
||||
unit_of_measurement: W
|
||||
device_class: power
|
||||
update_interval: ${update_time}
|
||||
#kWh
|
||||
- platform: total_daily_energy
|
||||
name: ${disp_name} Total kWh
|
||||
power_id: totalWatts
|
||||
filters:
|
||||
- multiply: 0.001
|
||||
unit_of_measurement: kWh
|
||||
device_class: energy
|
||||
state_class: total_increasing
|
||||
|
||||
#wifi diagnostic
|
||||
- platform: wifi_signal
|
||||
name: ${disp_name} WiFi
|
||||
id: wifi_signal_db
|
||||
entity_category: diagnostic
|
||||
|
||||
- platform: copy
|
||||
source_id: wifi_signal_db
|
||||
id: wifi_signal_pct
|
||||
name: ${disp_name} WiFi %
|
||||
filters:
|
||||
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
|
||||
unit_of_measurement: "%"
|
||||
entity_category: diagnostic
|
||||
|
||||
switch:
|
||||
- platform: restart
|
||||
name: ${disp_name} Restart
|
||||
entity_category: diagnostic
|
||||
|
||||
text_sensor:
|
||||
- platform: atm90e32
|
||||
id: ${main_meter_id1}
|
||||
phase_status:
|
||||
phase_a:
|
||||
name: "${ct1_name} Status"
|
||||
phase_b:
|
||||
name: "${ct2_name} Status"
|
||||
phase_c:
|
||||
name: "${ct3_name} Status"
|
||||
frequency_status:
|
||||
name: "Frequency Status 1"
|
||||
|
||||
- platform: atm90e32
|
||||
id: ${main_meter_id2}
|
||||
phase_status:
|
||||
phase_a:
|
||||
name: "${ct4_name} Status"
|
||||
phase_b:
|
||||
name: "${ct5_name} Status"
|
||||
phase_c:
|
||||
name: "${ct6_name} Status"
|
||||
#this is only needed if monitoring 2 voltages
|
||||
# freq_status:
|
||||
# name: "Frequency Status 2"
|
||||
|
||||
button:
|
||||
- platform: atm90e32
|
||||
id: ${main_meter_id1}
|
||||
run_gain_calibration:
|
||||
name: "Run ${main_meter_name1} Gain Calibration"
|
||||
clear_gain_calibration:
|
||||
name: "Clear ${main_meter_name1} Gain Calibration"
|
||||
run_offset_calibration:
|
||||
name: "Run ${main_meter_name1} Offset Calibration"
|
||||
clear_offset_calibration:
|
||||
name: "Clear ${main_meter_name1} Offset Calibration"
|
||||
run_power_offset_calibration:
|
||||
name: "Run ${main_meter_name1} Power Offset Calibration"
|
||||
clear_power_offset_calibration:
|
||||
name: "Clear ${main_meter_name1} Power Offset Calibration"
|
||||
|
||||
- platform: atm90e32
|
||||
id: ${main_meter_id2}
|
||||
run_gain_calibration:
|
||||
name: "Run ${main_meter_name2} Gain Calibration"
|
||||
clear_gain_calibration:
|
||||
name: "Clear ${main_meter_name2} Gain Calibration"
|
||||
run_offset_calibration:
|
||||
name: "Run ${main_meter_name2} Offset Calibration"
|
||||
clear_offset_calibration:
|
||||
name: "Clear ${main_meter_name2} Offset Calibration"
|
||||
run_power_offset_calibration:
|
||||
name: "Run ${main_meter_name2} Power Offset Calibration"
|
||||
clear_power_offset_calibration:
|
||||
name: "Clear ${main_meter_name2} Power Offset Calibration"
|
||||
|
||||
number:
|
||||
- platform: atm90e32
|
||||
id: ${main_meter_id1}
|
||||
reference_voltage:
|
||||
# will copy to phase_b/c for calibration reference
|
||||
phase_a:
|
||||
name: "Ref Voltage 1"
|
||||
reference_current:
|
||||
phase_a:
|
||||
name: "${ct1_name} Ref Current"
|
||||
phase_b:
|
||||
name: "${ct2_name} Ref Current"
|
||||
phase_c:
|
||||
name: "${ct3_name} Ref Current"
|
||||
|
||||
- platform: atm90e32
|
||||
id: ${main_meter_id2}
|
||||
reference_voltage:
|
||||
# needed to calibrate voltage registers even if not output
|
||||
phase_a:
|
||||
name: "Ref Voltage 2"
|
||||
reference_current:
|
||||
phase_a:
|
||||
name: "${ct4_name} Ref Current"
|
||||
phase_b:
|
||||
name: "${ct5_name} Ref Current"
|
||||
phase_c:
|
||||
name: "${ct6_name} Ref Current"
|
||||
Reference in New Issue
Block a user