diff --git a/components/sensor/atm90e32.rst b/components/sensor/atm90e32.rst new file mode 100644 index 000000000..d0bc22910 --- /dev/null +++ b/components/sensor/atm90e32.rst @@ -0,0 +1,203 @@ +ATM90E32 Power Sensor +===================== + +.. seo:: + :description: Instructions for setting up ATM90E32 energy metering sensors + :image: atm90e32.png + :keywords: ATM90E32, CircuitSetup, Split Single Phase Real Time Whole House Energy Meter, Expandable 6 Channel ESP32 Energy Meter Main Board + +The ``atm90e32`` sensor platform allows you to use your ATM90E32 voltage/current and power sensors +(`datasheet `__) sensors with +ESPHome. This sensor is commonly found in CircuitSetup 2 and 6 channel energy meters. + +Communication with the device is done via an :ref:`SPI bus `, so you need to have an ``spi:`` entry in your configuration +with both ``mosi_pin`` and ``miso_pin`` set. + +The atm90e32 IC can measure up to three AC voltages although typically only one +voltage measurement would be used for the mains electricity phase of a +household. Three current measurements are read via CT clamps. + +The `CircuitSetup 2-Channel Energy Monitor `__ can read 2 current channels and one voltage channel. + +.. figure:: images/atm90e32-cs-2chan-full.jpg + :align: center + :width: 50.0% + + CircuitSetup Split Single Phase Real Time Whole House Energy Meter. + +The `CircuitSetup 6-Channel Energy Monitor `__ can read 6 current channels and 2 voltage channels at a time, this board has two atm90e32 ICs and requires two sensors to be configured in ESPHome. + +.. figure:: images/atm90e32-cs-6chan-full.jpg + :align: center + :width: 50.0% + + CircuitSetup Expandable 6 Channel ESP32 Energy Meter Main Board. + +.. code-block:: yaml + + # Example configuration entry + spi: + clk_pin: 18 + miso_pin: 19 + mosi_pin: 23 + + sensor: + - platform: atm90e32 + cs_pin: 5 + phase_a: + voltage: + name: "EMON Line Voltage A" + current: + name: "EMON CT1 Current" + power: + name: "EMON Active Power CT1" + gain_voltage: 41820 + gain_ct: 25498 + phase_b: + current: + name: "EMON CT2 Current" + power: + name: "EMON Active Power CT2" + gain_voltage: 41820 + gain_ct: 25498 + frequency: + name: "EMON Line Frequency" + line_frequency: 50Hz + gain_pga: 2X + update_interval: 60s + +Configuration variables: +------------------------ + +- **cs_pin** (**Required**, :ref:`Pin Schema `): The pin CS is connected to. +- **line_frequency** (**Required**, string): The AC line frequency of the supply voltage. One of ``50Hz``, ``60Hz``. +- **phase_a** (*Optional*): The configuration options for the 1st phase. + + - **voltage** (*Optional*): Use the voltage value of this phase in V (RMS). + All options from :ref:`Sensor `. + - **current** (*Optional*): Use the current value of this phase in amperes. All options from + :ref:`Sensor `. + - **power** (*Optional*): Use the power value on this phase in watts. All options from + :ref:`Sensor `. + - **gain_voltage** (*Optional*, int): Voltage gain to scale the low voltage AC power pack to household mains feed. + Defaults to ``41820``. + - **gain_ct** (*Optional*, int): CT clamp calibration for this phase. + Defaults to ``25498``. + +- **phase_b** (*Optional*): The configuration options for the 2nd phase. Same options as 1st phase. +- **phase_c** (*Optional*): The configuration options for the 3rd phase. Same options as 1st phase. +- **gain_pga** (*Optional*, string): The gain for the CT clamp, ``2X`` for 100A, ``4X`` for 100A - 200A. One of ``1X``, ``2X``, ``4X``. + Defaults to ``2X`` which is suitable for the popular SCT-013-000 clamp. +- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``. +- **spi_id** (*Optional*, :ref:`config-id`): Manually specify the ID of the :ref:`SPI Component ` if you want + to use multiple SPI buses. + +Calibration +----------- + +This sensor needs calibration to show correct values. The default gain configuration is set to use the `SCT-013-000 `__ +current transformers, and the `Jameco Reliapro 9v AC transformer `__. +A load which uses a known amount of current can be used to calibrate. For for a more accurate calibration use a +`Kill-A-Watt `__ meter or similar, mains voltages can fluctuate depending on grid load. + +Voltage +^^^^^^^ + +Use the expected mains voltage for your region 110V/230V or plug in the Kill-A-Watt and select voltage. See what +value the ATM90E32 sensor reports for voltage. To adjust the sensor use the calculation: + +``New gain_voltage = (your voltage reading / ESPHome voltage reading) * existing gain_voltage value`` + +Update **gain_voltage** for all phases in your ESPHome yaml, recompile and upload. Repeat as necessary. + +Current +^^^^^^^ + +Switch on the current load and see what value the ATM90E32 sensor reports for +current on the selected phase. Using the known or measured current adjust the +sensor using calculation: + +``New gain_ct = (your current reading / ESPHome current reading) * existing gain_ct value`` + +Update **gain_ct** for the phase in your ESPHome yaml, recompile and upload. Repeat as necessary. + +It is possible that the two identical CT current sensors will have different +**gain_ct** numbers due to variances in manufacturing although it will be +small. The current calibration can be done once and used on all sensors or +repeated for each one. + +Additional Examples +------------------- + +.. code-block:: yaml + + # Example CircuitSetup 6-channel entry + spi: + clk_pin: 18 + miso_pin: 19 + mosi_pin: 23 + sensor: + - platform: atm90e32 + cs_pin: 5 + phase_a: + voltage: + name: "EMON Line Voltage A" + current: + name: "EMON CT1 Current" + power: + name: "EMON Active Power CT1" + gain_voltage: 47660 + gain_ct: 12577 + phase_b: + current: + name: "EMON CT2 Current" + power: + name: "EMON Active Power CT2" + gain_voltage: 47660 + gain_ct: 12577 + phase_c: + current: + name: "EMON CT3 Current" + power: + name: "EMON Active Power CT3" + gain_voltage: 47660 + gain_ct: 12577 + frequency: + name: "EMON Line Frequency" + line_frequency: 50Hz + gain_pga: 2X + update_interval: 60s + - platform: atm90e32 + cs_pin: 4 + phase_a: + current: + name: "EMON CT4 Current" + power: + name: "EMON Active Power CT4" + gain_voltage: 47660 + gain_ct: 12577 + phase_b: + current: + name: "EMON CT5 Current" + power: + name: "EMON Active Power CT5" + gain_voltage: 47660 + gain_ct: 12577 + phase_c: + current: + name: "EMON CT6 Current" + power: + name: "EMON Active Power CT6" + gain_voltage: 47660 + gain_ct: 12577 + line_frequency: 50Hz + gain_pga: 2X + update_interval: 60s + + +See Also +-------- + +- :ref:`sensor-filters` +- :apiref:`atm90e32/atm90e32.h` +- :ghedit:`Edit` diff --git a/components/sensor/images/atm90e32-cs-2chan-full.jpg b/components/sensor/images/atm90e32-cs-2chan-full.jpg new file mode 100644 index 000000000..36106225e Binary files /dev/null and b/components/sensor/images/atm90e32-cs-2chan-full.jpg differ diff --git a/components/sensor/images/atm90e32-cs-6chan-full.jpg b/components/sensor/images/atm90e32-cs-6chan-full.jpg new file mode 100644 index 000000000..0363150a1 Binary files /dev/null and b/components/sensor/images/atm90e32-cs-6chan-full.jpg differ diff --git a/images/atm90e32.jpg b/images/atm90e32.jpg new file mode 100644 index 000000000..0c9e212c8 Binary files /dev/null and b/images/atm90e32.jpg differ diff --git a/index.rst b/index.rst index fc6880bd0..6ab882e49 100644 --- a/index.rst +++ b/index.rst @@ -90,6 +90,7 @@ Sensor Components ADS1115, components/sensor/ads1115, ads1115.jpg AM2320, components/sensor/am2320, am2320.jpg APDS9960, components/sensor/apds9960, apds9960.jpg + ATM90E32, components/sensor/atm90e32, atm90e32.jpg BH1750, components/sensor/bh1750, bh1750.jpg Binary Sensor Map, components/sensor/binary_sensor_map, binary_sensor_map.jpg BLE RSSI, components/sensor/ble_rssi, bluetooth.svg