mirror of
https://github.com/CeeWeasel/fresh-home.git
synced 2026-08-10 02:50:12 -04:00
stop hating myself
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
# ESPHome Configuration for Expandable 6-Channel ESP32 Energy Meter
|
||||
|
||||
This folder contains [ESPHome](https://esphome.io) configuration files used to monitor power and energy via the CircuitSetup Expandable 6-Channel Energy Meter. These configurations support flexible deployments - with or without add-on boards - as well as Wi-Fi or Ethernet connections. Many files use `!include` statements to modularize calibration, sensor definitions, power quality metrics, and device status.
|
||||
|
||||
---
|
||||
|
||||
## 📁 Base Config Files
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `6chan_common.yaml` | Base shared configuration: sets platform (`esp32`), SPI, includes time and API components. Meant to be included in Wi-Fi-based setups. |
|
||||
| `6chan_common_ethernet.yaml` | Same as `6chan_common.yaml`, but for the [Lilygo T-ETH-Lite ESP32S3](https://lilygo.cc/products/t-eth-lite) and the [CircuitSetup 6 Channel Energy Meter Ethernet Adapter](https://circuitsetup.us/product/6-channel-energy-meter-to-lilygo-t-eth-lite-esp32s3-ethernet-adapter/) . |
|
||||
| `6chan_energy_meter_main_board.yaml` | Full configuration for monitoring only the main board's 6 channels via Wi-Fi. |
|
||||
| `6chan_energy_meter_main_ethernet.yaml` | Ethernet-based variant of `6chan_energy_meter_main_board.yaml`. |
|
||||
| `6chan_energy_meter_1-addon.yaml` | Main board + 1 add-on board (12 channels). |
|
||||
| `6chan_energy_meter_2-addons.yaml` | Main board + 2 add-ons (18 channels). |
|
||||
| `6chan_energy_meter_3-addons.yaml` | Main board + 3 add-ons (24 channels). |
|
||||
|
||||
---
|
||||
|
||||
## 📂 calibration/
|
||||
|
||||
When these files are included, and calibration is enabled, semi-automatic calibration can be done for each current and voltage channel by providing a current and voltage reference. Calculated values for offset and gain stored in memory take priority over config values.
|
||||
To save calculated calibration values, copy them from the ESPHome logs to your config then use the clear buttons to clear the calibration values from memory
|
||||
|
||||
[See details on semi-automatic calibrations here](https://esphome.io/components/sensor/atm90e32.html#calibration)
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `6chan_xxxx_calibration.yaml` | Enables calibration buttons for gain, power offset, current/voltage offset, and clear buttons for each |
|
||||
| `6chan_xxxx_offset_calibrations.yaml` | Offset calibration values fine tuned via the output of the semi-automatic calibrations. Values should be copied in from the meter's ESPHome log |
|
||||
|
||||
---
|
||||
|
||||
## 📂 meter_sensors/
|
||||
|
||||
Default current, power (watts), and voltage sensor entities per meter board
|
||||
[More details on each sensor here](https://esphome.io/components/sensor/atm90e32.html#configuration-variables)
|
||||
|
||||
---
|
||||
|
||||
## 📂 status_fields/
|
||||
|
||||
These fields display the status of each CT, or phase, with a short text description. [See more details here](https://esphome.io/components/sensor/atm90e32.html#text-sensor)
|
||||
|
||||
---
|
||||
|
||||
## 📂 power_quality/
|
||||
|
||||
Contains power quality values that are available for each phase, and can be enabled per meter board. Enabling these on every current channel is possible, but will produce a lot of data and sensors that are likely not needed. They include reactive_power, apparent_power, harmonic_power, power_factor, phase_angle, peak_current
|
||||
[More details on each sensor here](https://esphome.io/components/sensor/atm90e32.html#configuration-variables)
|
||||
|
||||
---
|
||||
|
||||
## 📂 examples/
|
||||
|
||||
Pre-configured use cases to jumpstart your setup.
|
||||
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `6chan_energy_meter_3-phase_ethernet.yaml` | Configuration for 3-phase measurement with Ethernet. Uses main board + 1 add-on. |
|
||||
| `6chan_energy_meter_6-addons_ethernet.yaml` | Max configuration: main board + 6 add-ons over Ethernet (42 channels). |
|
||||
| `6chan_energy_meter_house_solar_ha_kwh.yaml` | Real-world example measuring house + solar circuits. |
|
||||
| `6chan_main_calibration_beta.yaml` | Beta calibration test — for experimentation only, not recommended for production. |
|
||||
|
||||
---
|
||||
|
||||
## Measuring More Than 65A on a Current Channel
|
||||
The max value for current that the meter can output is 65.535. If you expect to measure current over 65A, divide `current_cal_ctx` by 2 (120A CT) or 4 (200A CT) and multiply the current and power values by 2 or 4, uncommenting the below and changing the `id` and `phase_x` accordingly.
|
||||
|
||||
Under `sensor:` add:
|
||||
```
|
||||
- id: !extend ${main_meter_id1} # CTs 1-3
|
||||
phase_a: # CT1
|
||||
current:
|
||||
filters:
|
||||
- multiply: 2
|
||||
power:
|
||||
filters:
|
||||
- multiply: 2
|
||||
```
|
||||
---
|
||||
|
||||
## Monitoring More Than 1 Voltage
|
||||
By default, all voltage channels are connected, and set up to monitor a single phase. [See here on what needs to be done with hardware if monitoring more than 1 voltage.](https://github.com/CircuitSetup/Expandable-6-Channel-ESP32-Energy-Meter/tree/master?tab=readme-ov-file#measuring-a-second-voltage)
|
||||
|
||||
In the config, under `sensor:` add:
|
||||
```
|
||||
- id: !extend ${main_meter_id2}
|
||||
phase_a:
|
||||
voltage:
|
||||
name: Voltage 2
|
||||
id: ic2Volts
|
||||
accuracy_decimals: 1
|
||||
frequency:
|
||||
name: Frequency 2
|
||||
```
|
||||
---
|
||||
|
||||
## Excluding/Removing Sensors
|
||||
If you, for example, want to see power quality sensors on only 2 out of the 4 CT channels of the main board, you could add something like this in your base config file. This is assuming you are including `Software/ESPHome/power_quality/6chan_main_power_quality.yaml` and you want to exclude power quality sensors for the last 4 CTs:
|
||||
|
||||
Under `sensor:` add:
|
||||
```
|
||||
- id: !extend ${main_meter_id1}
|
||||
phase_c: # CT3
|
||||
reactive_power: !remove
|
||||
apparent_power: !remove
|
||||
harmonic_power: !remove
|
||||
power_factor: !remove
|
||||
phase_angle: !remove
|
||||
peak_current: !remove
|
||||
|
||||
- id: !extend ${main_meter_id2}
|
||||
phase_a: # CT4
|
||||
reactive_power: !remove
|
||||
apparent_power: !remove
|
||||
harmonic_power: !remove
|
||||
power_factor: !remove
|
||||
phase_angle: !remove
|
||||
peak_current: !remove
|
||||
phase_b: #CT5
|
||||
reactive_power: !remove
|
||||
apparent_power: !remove
|
||||
harmonic_power: !remove
|
||||
power_factor: !remove
|
||||
phase_angle: !remove
|
||||
peak_current: !remove
|
||||
phase_c: #CT6
|
||||
reactive_power: !remove
|
||||
apparent_power: !remove
|
||||
harmonic_power: !remove
|
||||
power_factor: !remove
|
||||
phase_angle: !remove
|
||||
peak_current: !remove
|
||||
```
|
||||
---
|
||||
|
||||
## Including Files Locally
|
||||
|
||||
You can copy config files to your local directories and change the `packages:` part of your config to something like this:
|
||||
```
|
||||
packages:
|
||||
common: !include Software/ESPHome/6chan_common.yaml
|
||||
main: !include Software/ESPHome/meter_sensors/6chan_main_sensor.yaml
|
||||
main_status: !include Software/ESPHome/status_fields/6chan_main_status.yaml
|
||||
main_cal: !include Software/ESPHome/calibration/6chan_main_calibration.yaml
|
||||
```
|
||||
---
|
||||
|
||||
## Compiled Firmware
|
||||
|
||||
[See here to flash your ESP32](https://circuitsetup.github.io/ESPWebInstaller/)
|
||||
Reference in New Issue
Block a user