Files
openhab-addons/bundles/org.openhab.binding.onewiregpio
Andrew Fiddian-GreenandGitHub a5a74fd085 [ci build] Apply spotless to fix poms (#21115)
* fix poms
* change version on itests

Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch>
2026-07-06 21:54:17 +02:00
..
2026-01-02 10:51:48 +01:00
2020-09-21 03:37:19 +02:00

OneWire GPIO Binding

This binding reads temperature values from OneWire bus sensors connected to the GPIO bus on a Raspberry Pi.

Supported Things

Temperature sensors. Tested successfully with DS18B20 sensor on Raspberry Pi 3.

Binding Configuration

The binding requires a OneWire sensor properly connected to the Raspberry Pi GPIO bus; the "w1_gpio" and "wire" kernel modules must be loaded. Configuration is correct when the /sys/bus/w1/devices folder is present and contains the sensor's data.

Thing Configuration

The sensors are visible in the system as folders containing files with sensor data. By default, all OneWire GPIO devices are stored in /sys/bus/w1/devices/DEVICE_ID_FOLDER, and the temperature value is available in the file w1_slave. The Thing needs the full path to the w1_slave file. Note the values in sysfs are in Celsius.

The optional precision parameter lets you lower the precision of the sensor value, e.g., precision 1 shows one digit after the decimal point, precision 2 shows two digits. Rounding is applied (e.g., 20.534 °C with precision 1 becomes 20.5 °C; 20.555 °C with the same precision becomes 20.6 °C). Allowed values are from 0 to 3. The default is 3 (maximum precision).

In the Thing file, this looks e.g. like

Thing onewiregpio:sensor:livingRoom "Living room" [gpio_bus_file="/sys/bus/w1/devices/28-0000061b587b/w1_slave",refresh_time=30,precision=1]

Channels

The device currently supports one channel, "temperature", which reads the temperature from the OneWire sensor.

Full Example

sample onewiregpio.things file content:

Thing onewiregpio:sensor:livingroom "Living room" [gpio_bus_file="/sys/bus/w1/devices/28-0000061b587b/w1_slave",refresh_time=30]

sample onewiregpio.items file content (implements QuantityType for unit conversion):

Number:Temperature LivingRoomTemperature      "Temperature: [%.2f %unit%]" <temperature>  { channel="onewiregpio:sensor:livingroom:temperature" }

sample demo.sitemap file content:

sitemap demo label="Main Menu"
{
    Text item=LivingRoomTemperature
}