INA219 DC Current Sensor
========================

.. seo::
    :description: Instructions for setting up INA219 DC current sensors
    :image: ina219.jpg
    :keywords: ina219

The ``ina219`` sensor platform allows you to use your INA219 High Side DC Current Sensor
(`datasheet <https://cdn-learn.adafruit.com/downloads/pdf/adafruit-ina219-current-sensor-breakout.pdf>`__,
`Adafruit`_) sensors with
ESPHome. The :ref:`I²C Bus <i2c>` is
required to be set up in your configuration for this sensor to work.


.. figure:: images/ina219-full.jpg
    :align: center
    :width: 50.0%

    INA219 DC Current Sensor.

.. _Adafruit: https://www.adafruit.com/product/904

.. figure:: images/ina219-ui.png
    :align: center
    :width: 80.0%

.. code-block:: yaml

    # Example configuration entry
    sensor:
      - platform: ina219
        address: 0x40
        shunt_resistance: 0.1 ohm
        current:
          name: "INA219 Current"
        power:
          name: "INA219 Power"
        bus_voltage:
          name: "INA219 Bus Voltage"
        shunt_voltage:
          name: "INA219 Shunt Voltage"
        max_voltage: 32.0V
        max_current: 3.2A
        update_interval: 60s

Configuration variables:
------------------------

- **address** (*Optional*, int): Manually specify the I²C address of the sensor. Defaults to ``0x40``.
- **shunt_resistance** (*Optional*, float): The value of the shunt resistor on the board for current calculation.
  Defaults to ``0.1 ohm``.
- **max_voltage** (*Optional*, float): The maximum bus voltage you are expecting. ESPHome will use this to
  configure the sensor optimally. Defaults to ``32V`` (the max).
- **max_current** (*Optional*, float): The maximum current you are expecting. ESPHome will use this to
  configure the sensor optimally. Defaults to ``3.2A``.
- **current** (*Optional*): Use the current value of the sensor in amperes. All options from
  :ref:`Sensor <config-sensor>`.
- **power** (*Optional*): Use the power value of the sensor in watts. All options from
  :ref:`Sensor <config-sensor>`.
- **bus_voltage** (*Optional*): Use the bus voltage (voltage of the high side contact) value of the sensor in V.
  All options from :ref:`Sensor <config-sensor>`.
- **shunt_voltage** (*Optional*): Use the shunt voltage (voltage across the shunt resistor) value of the sensor in V.
  All options from :ref:`Sensor <config-sensor>`.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check the sensor. Defaults to ``60s``.


See Also
--------

- :ref:`sensor-filters`
- :doc:`ina3221`
- :apiref:`ina219/ina219.h`
- `INA219 Arduino Library <https://github.com/adafruit/Adafruit_INA219>`__ by `Adafruit <https://www.adafruit.com/>`__
- :ghedit:`Edit`