TMP1075 Temperature Sensor
==========================

.. seo::
    :description: Instructions for setting up the TMP1075 Temperature sensor.
    :image: tmp1075.jpg
    :keywords: TMP1075

The TMP1075 Temperature sensor allows you to use your TMP1075
(`datasheet <https://www.ti.com/lit/gpn/tmp1075>`__)
sensors with ESPHome.

.. figure:: images/tmp1075.jpg
    :align: center
    :width: 30.0%

    TMP1075 Temperature Sensor.
    (Credit: `Texas Instruments <https://www.ti.com/content/dam/ticom/images/products/ic/sensing-products/chips/tmp1075-technical-chip-shot.png>`__, image cropped and compressed)

The TMP1075 is a high precision temperature sensor that communicates over I²C.
Each sensor is tested on a NIST tracable test setup during Texas Instruments'
production process. Accuracy is typically ±0.25°C across the -55°C to +125°C
range, with a maximum error of ±2°C in that same range and ±1°C in the -40°C to
+110°C range.

To use the sensor, first set up an :ref:`I²C Bus <i2c>` and connect the sensor
to the specified pins.

.. code-block:: yaml

    # Example configuration entry
    sensor:
      - platform: tmp1075
        name: "Temperature TMP1075"
        update_interval: 10s
        i2c_id: i2c_bus
        conversion_rate: 27.5ms
        alert:
          function: comparator
          polarity: active_high
          limit_low: 50
          limit_high: 75
          fault_count: 1

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

- **name** (**Required**, string): The name for the temperature sensor.
- **id** (*Optional*, :ref:`config-id`): Set the ID of this sensor for lambdas/multiple sensors.
- **address** (*Optional*, int): The I²C address of the sensor.
  See :ref:`I²C Addresses <tmp1075_i2c_addresses>` for more information. Defaults to ``0x48``.
- **update_interval** (*Optional*, :ref:`config-time`): The interval to check
  the sensor temperature. Defaults to ``60s``.
- **conversion_rate** (*Optional*): The interval at which the IC performs a
  temperature measurement. This setting also determines how fast the alert pin
  responds to temperature changes, and is thus independent of how often ESPHome
  checks the sensor. Possible values are ``27.5ms``, ``55ms``, ``110ms``, and
  ``220ms``. Defaults to ``27.5ms``.
- **alert** (*Optional*): Configure the alert pin behaviour.
  
    - **function** (*Optional*, enum): Function of the alert pin, either ``comparator`` or ``interrupt``. Defaults to ``comparator``.
    - **polarity** (*Optional*, enum): Polarity of the alert pin, either ``active_high`` or ``active_low``. Defaults to ``active_high``.
    - **limit_low** (*Optional*, int): Lower temperature limit, in °C. Defaults to ``-128`` (the lowest possible limit value).
    - **limit_high** (*Optional*, int): Higher temperature limit, in °C. Defaults to ``127.9375`` (the highest possible limit value).
    - **fault_count** (*Optional*, int): Number of measurements. required for the alert pin to act. Must be between ``1`` and ``4``, inclusive. Defaults to ``1``.

.. _tmp1075_i2c_addresses:

I²C Addresses
-------------

In order to allow multiple sensors to be connected to the same I²C bus, the
creators of this sensor hardware have included some options to change the I²C
address. Three address pins can be connected to GND, VCC, SDA, or SCL, creating
32 possible addresses. See section 9.3.2.2 of the `datasheet
<https://www.ti.com/lit/gpn/tmp1075>`__ for the mapping table.

When all address pins are connected to GND, the address is ``0x48``, which is
the default address for this sesnsor component.
