Whether you are building a smart home monitoring system or managing environmental conditions in a commercial setting, 1-Wire temperature sensors offer a reliable, cost-effective solution. To unlock their full potential, you need the right software infrastructure. Learn about Owserver the backbone of the OWFS (1-Wire File System) ecosystem that makes managing 1-Wire devices simple and scalable.

What is Owserver and the OWFS Ecosystem?

Owserver is the core daemon in the OWFS (1-Wire File System) suite, which helps managing access to 1-Wire devices like our USB Thermometer.

ComponentPurposeTypical Use Case
owserverBackend daemon that arbitrates access to the physical 1-Wire bus.Manages communication with sensors (required for each below).
owfsMounts the 1-Wire network as a filesystem for easy file-like access to sensor data.Browse sensors like regular directories (/mnt/1wire/28.XXXX/temperature).
owhttpdDelivers a web interface (port 2121) to view temperatures via browser.Access sensor data via browser at http://localhost:2121.
owftpdFTP server for 1-Wire device access.Legacy access method using FTP clients.

For most IoT and home automation setups, owserver alone is sufficient, especially when paired with Home Assistant’s native 1-Wire integration. This minimizes resource usage while providing robust sensor access.

Installing Owserver on Ubuntu and Raspberry Pi

On Ubuntu or Raspberry Pi OS, update packages and install via apt.

# Update package lists
sudo apt update

# Install the OWFS suite (includes owserver, owhttpd and owfs)
sudo apt install owserver owhttpd owfs

Verify the installation succeeded:

owserver --version
# Should return something like: owserver version 3.2p4

Configuring Owserver for Passive USB Operation

Owserver expects an active 1-Wire controller (like DS9490R) by default. Our USB Thermometer requires passive mode configuration.

Quick Test (Without Service)

Before configuring the systemd service, verify your hardware works with this command:

sudo owserver --foreground --passive=/dev/ttyUSB0 --8bit

You should see output indicating successful bus initialization. Press Ctrl+C to stop the server.

🔍 Finding your device path: If /dev/ttyUSB0 doesn’t exist, check available serial devices with:

ls -l /dev/ttyUSB*
# Or for persistent naming:
ls -l /dev/serial/by-id/

Creating a Persistent Configuration File

Create /etc/owfs.conf with the following content:

# /etc/owfs.conf - Configuration for USB Thermometer in passive mode
#                  For full documentation, run: `man 5 owfs`.

# Configuration for the USB Thermometer
# https://electromake.pl/product/usb-thermometer-with-sensor-ds18b20/
! server: server = localhost:4304
server: port = localhost:4304
#              ^ or *:4304 for access from anywhere.
server: passive = /dev/ttyUSB0
server: 8bit

# Optional: Enable the HTTP interface
http: port = 2121

# Optional: Filesystem mount
# mountpoint = /mnt/1wire
#            ^ The path `/mnt/1wire` must exist,
#              so don't forget to run `sudo mkdir /mnt/1wire`.
# allow_other

# Optional:  Enable the FTP interface
# ftp: port = 2120

Save and exit. Then reload systemd and start the service:

sudo systemctl restart owserver
sudo systemctl restart owfs
sudo systemctl restart owhttpd

With owhttpd installed and configured (port 2121 in our example config), visit http://<your-device-ip>:2121 in a browser to see a directory listing of all detected 1-Wire devices it is useful for debugging before Home Assistant integration.

Connecting Owserver to Home Assistant

Home Assistant includes a native 1-Wire integration that communicates directly with Owserver over TCP. If you would like to install Home Assistant, check out our post How to install Home Assistant in Docker.

Prerequisites

  1. Owserver must be running on the same machine as Home Assistant or accessible over your local network.
  2. Port 4304 must be open (default Owserver port)

Integration Setup

  1. In Home Assistant, navigate to SettingsDevices & Services+ Add Integration
  2. Search for and select “1-Wire”
  3. Configure the integration:
    • Host: localhost (if Owserver runs on the same machine) or the IP address of your Owserver host
    • Port: 4304 (default)
  4. Click Submit

Home Assistant will automatically discover all connected temperature sensors and create entities like 28.9082E2080000 Temperature.

Rate this post

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *