Dallas Temperature Sensor¶
To use your dallas sensor, first define a dallas “hub” with a pin and
id, which you will later use to create the sensors. The 1-Wire bus the
sensors are connected to should have an external pullup resistor of
about 4.7KΩ. For this, connect a resistor of about 4.7KΩ (values around that like 1KΩ will, if you don’t have
massively long wires, work fine in most cases) between
3.3V and the data pin.
# Example configuration entry dallas: - pin: 23 # Individual sensors sensor: - platform: dallas address: 0x1c0000031edd2a28 name: "Livingroom Temperature"
dallas sensor allows you to use DS18B20 and similar sensors.
First, you need to define a dallas sensor component.
The dallas sensor component (or “hub”) is an internal model that defines which pins the DS18B20
sensors are connected to. This is because with these sensors you can actually connect multiple
sensors to a single pin and use them all at once.
To initialize a sensor, first supply either
index to identify the sensor.
# Example configuration entry dallas: - pin: GPIO23 # Individual sensors sensor: - platform: dallas address: 0x1C0000031EDD2A28 name: "Living Room Temperature"
address (Required, int): The address of the sensor. Use either this option or index.
index (Required, int): The index of the sensor starting with 0. So the first sensor will for example have index 0. It’s recommended to use address instead.
resolution (Optional, int): An optional resolution from 8 to 12. Higher means more accurate. Defaults to the maximum for most Dallas temperature sensors: 12.
id (Optional, ID): Manually specify the ID used for code generation.
All other options from Sensor.
Getting Sensor IDs¶
It is highly recommended to use the
address attribute for creating
dallas sensors, because if you have multiple sensors on a bus and the
automatic sensor discovery fails, all sensors indices will be shifted by
one. In order to get the address, simply start the firmware on your
device with a configured dallas hub and observe the log output (the log
level must be set to at least
debug!). Note that you don’t need to define the individual sensors just yet, as
the scanning will happen even with no sensors connected. For example with this configuration:
# Example configuration entry dallas: - pin: GPIO23 # Note you don't have to add any sensors at this point
You will find something like this:
Now we can add the individual sensors to our configuration:
# Example configuration entry dallas: - pin: GPIO23 sensor: - platform: dallas address: 0xA40000031F055028 name: "Temperature #1" - platform: dallas address: 0xDD0000031EFB0428 name: "Temperature #2" - platform: dallas # ...
Next, individually warm up or cool down the sensors and observe the log again.
You will see the outputted sensor values changing when they’re being warmed.
When you’re finished mapping each address to a name, just change the
to your assigned names and you should be ready.