mirror of
https://github.com/esphome/esphome-docs.git
synced 2024-12-28 17:48:35 +01:00
204 lines
7.3 KiB
ReStructuredText
204 lines
7.3 KiB
ReStructuredText
|
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 <http://ww1.microchip.com/downloads/en/devicedoc/Atmel-46003-SE-M90E32AS-Datasheet.pdf>`__) 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 <spi>`, 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 <https://circuitsetup.us/index.php/product/split-single-phase-real-time-whole-house-energy-meter-v1-2/>`__ 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 <https://circuitsetup.us/index.php/product/expandable-6-channel-esp32-energy-meter/>`__ 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 <config-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 <config-sensor>`.
|
||
|
- **current** (*Optional*): Use the current value of this phase in amperes. All options from
|
||
|
:ref:`Sensor <config-sensor>`.
|
||
|
- **power** (*Optional*): Use the power value on this phase in watts. All options from
|
||
|
:ref:`Sensor <config-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 <spi>` 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 <https://amzn.to/2E0KVvo>`__
|
||
|
current transformers, and the `Jameco Reliapro 9v AC transformer <https://amzn.to/2XcWJjI>`__.
|
||
|
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 <https://amzn.to/2TXT7jx>`__ 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`
|