Giter Club home page Giter Club logo

owfs's Introduction

build

This is OWFS — the one-wire filesystem.

1-Wire is a data protocol stat allows simple connections to clever chips. The chips are uniquely addressed, and have a variety of types, including temperature and voltage sensors, switches, memory and clocks.

The base functionality is in the owlib library. It includes adapter interface, chip interface, caching, statistics, numeration and command line processing.

owfs

owfs is the filesystem portion of the package. It depends on fuse: basically, fuse (http://fuse.sourceforge.net) exposes filesystem calls in the appropriate directory to this program. This program then calls owlib to query and modify the 1-wire bus.

Despite the project name, the owfs package itself is NOT recommended for any real use, it has well known issues with races etc.

owserver

owserver is a generic backend. It can be remote, and shared by several front ends.

This is the recommended way of accessing your 1-Wire bus.

owhttpd

owhttpd is a simple webserver exposing owlib. It does not need a kernel module and will probably run on a greater platform variety.

Language bindings

owtcl, owphp, owperl, owpython are language bindings using the same backend and naming scheme as owfs

Contribution

This is an old, but stable and well used, project with few people working actively on it. That said, there are a few people contributing and trying to maintain it.

If you have any bugfixes, new features or change requests, your contribution is welcome!

Hosting

From mid April 2018 the source is available at https://github.com/owfs/owfs. Any interaction with developers should preferably take place via PRs and Issues here, alternatively for longer discussions the mailing list is still a good medium:

https://sourceforge.net/p/owfs/mailman/owfs-developers/

The old SourceForge GIT mirror and releases are no longer to be used.

The https://owfs.org page is still not updated to reflect the project move. This is work in progress.

Building

If you checkout out the source

./bootstrap
./configure
make
make install

If you downloaded the source package:

./configure
make
make install

For more information: http://www.owfs.org and https://github.com/owfs/owfs-doc/wiki

owfs's People

Contributors

agentmnm avatar alfille avatar apramorbis avatar arnout avatar d1mag avatar deece avatar dougcollinge avatar frederickjh avatar gregorybrzeski avatar heinervdm avatar hoepfner avatar honechko avatar ianka avatar ianmercer avatar miccoli avatar nhuillard avatar ntitley avatar pascalbaerten avatar pedrocr avatar pkropf avatar rspadim avatar serg-o avatar smurfix avatar stromnet avatar uwebonnes avatar vdanjean avatar vertiv-justinbrewer avatar wavexx avatar winterheart avatar zdzichu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

owfs's Issues

ds1977: how to write to memory?

Hello,

I'm trying to use owfs with an ds1977 and i would like to write to its memory. The ibutton is recognized and I can read its type, address, ... but when I try to read or write to its memory, owfs logs error -22, for which I can't find a description. As far as I know there is no password set yet as an older version of owfs didn't support it. I'm now using the latest release using an rpi i2c-extensions for onewire.

It is possible to write to the memory of a ds1977 using owfs and read from it?

Thank you and kind regards,

Michel

[systemd] Job for owserver.service failed because the service did not take the steps required by its unit configuration.

After upgrading from Ubuntu 18.04 to 20.04 I started to see errors when restarting owserver.service. They appear approximately every second time without clues from the logs.

$ sudo systemctl stop owserver.service; sudo systemctl start owserver.service
Job for owserver.service failed because the service did not take the steps required by its unit configuration.
See "systemctl status owserver.service" and "journalctl -xe" for details.

$ systemctl status owserver.service
● owserver.service - Backend server for 1-wire control
     Loaded: loaded (/lib/systemd/system/owserver.service; disabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-09-30 12:40:53 UTC; 7s ago
       Docs: man:owserver(1)
   Main PID: 13861 (owserver)
      Tasks: 2 (limit: 18965)
     Memory: 1.5M
     CGroup: /system.slice/owserver.service
             └─13861 /usr/bin/owserver -c /etc/owfs.conf

Sep 30 12:40:53 arvid-m12 systemd[1]: Starting Backend server for 1-wire control...
Sep 30 12:40:53 arvid-m12 OWFS[13861]: DEFAULT: ow_daemon.c:(144) Entered background mode, quitting.
Sep 30 12:40:53 arvid-m12 OWFS[13861]: DEFAULT: ow_usb_msg.c:(214) Opened USB DS9490 bus master at 1:3.
Sep 30 12:40:53 arvid-m12 OWFS[13861]: DEFAULT: ow_usb_cycle.c:(128) Set DS9490 1:3 unique id to 81 2C B9 3C 00 00 00 87
Sep 30 12:40:53 arvid-m12 systemd[1]: Started Backend server for 1-wire control.

Versions:

$ dpkg --list | grep "  ow"
ii  owfs-common                          3.2p3+dfsg1-5build1               all          common files used by any of the OWFS programs
ii  owserver                             3.2p3+dfsg1-5build1               amd64        Backend server for 1-Wire control

I've tried both with and without socket activation enabled, with the same intermittent results. I suspect it has to do with sd_notify() mechanism. Be aware that Ubuntu have some patches on top of the releases, the error might be in the packaging, but reporting here first.

Missing README file for autoreconf

Hi,
The README file has been renamed into README.md.
This leads to an error when autoreconf (or just automake) is re-run:
$ autoreconf -vif
[...]
autoreconf: running: automake --add-missing --copy --force-missing
[...]
Makefile.am: error: required file './README' not found
[...]
autoreconf: automake failed with exit status: 1

In the Debian build, I workaround the problem by copying README.md to README at the start of the build process.

owfs docker container not able to access w1-gpio devices on fedora IoT and RPi3

I'm using a Raspberry Pi 3B+ with Fedora IoT, which uses Linux Kernel 5.5.x. This system only ships the w1-gpio module, but not w1_therm. I've connected a D18 Temperature Sensor on GPIO Pin 4 and I'm seeing the sensor under it's sysfs path. On Raspbian with w1_therm however the sysfs contains a w1_slave file which outputs the sensor readings. On Fedora IoT however there is only the generic /sys/bus/w1/devices/<sensorid>/rw. Is owfs able to get this device in theory or is the missing w1_therm module the problem here?

Also, on top of that, the owserver runs in a docker container with /sys mounted to use the --w1 functionality. The server is started with --usb=ALL and --device=<path-to-serial-device to leverage multiple connected bus masters.

owserver is able to read devices from the serial bus master, but not from the one connected with gpio4.

Eeprom write error

Hi,

I have discovered an issue where writing a certain amount (>=4) of bytes to a DS28EC20P+ Eeprom occasionally clears the whole Eeprom page to 0xFF.

To reproduce the issue, I have started only owserver 3.2p3 which accesses the 1wire bus via w1-gpio kernel 4.19.0 driver.

After setting the first page to all zeroes, I continuously write the bytes 0x11 0x22 0x33 0x44 to page 0, offset 0 and check the contents of the whole page with a read afterwards:

owwrite --hex --start=0 /43.F0CFFB000000/pages/page.0 0000000000000000000000000000000000000000000000000000000000000000
count=0;
while
    owwrite --hex --start=0 /43.F0CFFB000000/pages/page.0 11223344;
    readback=`owread --hex --start=0 --size=32 /43.F0CFFB000000/pages/page.0` ;
    count=$[$count+1];
    [ $readback == "1122334400000000000000000000000000000000000000000000000000000000" ];
do
    echo "$count: $readback";
done;
echo $readback

After a few or even a few 1000 cycles the whole page has been reset to 0xFF:

1: 1122334400000000000000000000000000000000000000000000000000000000
2: 1122334400000000000000000000000000000000000000000000000000000000
3: 1122334400000000000000000000000000000000000000000000000000000000
4: 1122334400000000000000000000000000000000000000000000000000000000
5: 1122334400000000000000000000000000000000000000000000000000000000
6: 1122334400000000000000000000000000000000000000000000000000000000
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Now the funny fact, when starting owserver with --error_print=2 --error_level=9 the issue does not occur anymore.

Any hints how I can further debug this?

Regards
Martin

PS: yes this happens on different systems with the same setup, so its not a faulty part.

How to pass options when starting owserver using Python ow module

Hi,

I'm using the ow module of python in our project to read temperature values from different sensors connected to a Raspberry Pi.

Version details are as below,

/opt/owfs/bin/owserver version:
3.2p2
libow version:
3.2p2

Python 2.7.9

currently, the owserver is started with below code,

ow.opt('-c /etc/owfs.conf')
ow.init('127.0.0.1:4304')

But when I see the running process, the arguments don't have the config file name as part of them.

ps -eaf | grep owserver
root 27100 27086 0 08:48 ? 00:00:00 /opt/owfs/bin/owserver --w1 -p 4304 --foreground --error_level=0
root 27517 26320 0 09:00 pts/0 00:00:00 grep owserver

Also, I would like to provide a maximum timeout for reading temperature value from a sensor.

Please point me towards some example code for the same.

Fedora-33 and owfs-3.2p4

OWFS has stopped working after FC33 upgrade. I use either owfs-3.2p4 or owfs-3.1p4, but it gives the same result shown below, i.e. it cannot recognize three USB sensors as before. What has gone missing here?

DEBUG: ow_cache.c:(295) Flipping cache tree (purging timed-out data)
DEBUG: ow_cache.c:(313) flip cache. tdestroy() will be called.
DEBUG: ow_api.c:(74) OWLIB started with <--usb>
DEBUG: ow_inotify.c:(80) No configuration files to monitor
CONNECT: ow_dnssd.c:(75) DL_open [libdns_sd.so] success
DEBUG: ow_dnssd.c:(85) Linked in Bonjour function DNSServiceRefSockFD
DEBUG: ow_dnssd.c:(86) Linked in Bonjour function DNSServiceProcessResult
DEBUG: ow_dnssd.c:(87) Linked in Bonjour function DNSServiceRefDeallocate
DEBUG: ow_dnssd.c:(88) Linked in Bonjour function DNSServiceResolve
DEBUG: ow_dnssd.c:(89) Linked in Bonjour function DNSServiceBrowse
DEBUG: ow_dnssd.c:(90) Linked in Bonjour function DNSServiceRegister
DEBUG: ow_dnssd.c:(91) Linked in Bonjour function DNSServiceReconfirmRecord
DEBUG: ow_dnssd.c:(92) Linked in Bonjour function DNSServiceCreateConnection
DEBUG: ow_dnssd.c:(93) Linked in Bonjour function DNSServiceEnumerateDomains
CALL: ow_parsename.c:(104) path=[]
DEBUG: owlib.c:(77) Global temp limit 0C to 100C (for fake and mock adapters)
]*$> compiled to 0x7f3e5cde2740 expression <^ ([^ ]+)[
]
$> compiled to 0x7f3e5cde2700 expression <^ *([^ ]+) *: ([^ ]+)[
]
$> compiled to 0x7f3e5cde26c0 expression <^ *([^ ]+) *: *([^ ]+) *: *([^ ]+)[
DEBUG: ow_usb_cycle.c:(169) Compare (add,bus) (2,3) with (-1,-1) handle (nil)

Error installing owserver on Raspbian Buster Lite

Brand new RPI 4, with latest Raspbian Buster Lite. Attempted to install owserver and received an error.

Creating config file /etc/owfs.conf with new version
Setting up libow-3.2-3:armhf (3.2p3+dfsg1-2) ...
Setting up owserver (3.2p3+dfsg1-2) ...
Job for owserver.service failed because the service did not take the steps required by its unit configuration.
See "systemctl status owserver.service" and "journalctl -xe" for details.
invoke-rc.d: initscript owserver, action "start" failed.
● owserver.service - Backend server for 1-wire control
   Loaded: loaded (/lib/systemd/system/owserver.service; disabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: protocol) since Thu 2019-11-28 19:37:38 CET; 59ms ago
     Docs: man:owserver(1)
  Process: 21434 ExecStart=/usr/bin/owserver -c /etc/owfs.conf (code=exited, status=0/SUCCESS)
 Main PID: 21434 (code=exited, status=0/SUCCESS)
dpkg: error processing package owserver (--configure):
 installed owserver package post-installation script subprocess returned error exit status 1
Setting up owhttpd (3.2p3+dfsg1-2) ...
Created symlink /etc/systemd/system/multi-user.target.wants/owhttpd.service → /lib/systemd/system/owhttpd.service.
Processing triggers for systemd (241-7~deb10u2+rpi1) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for libc-bin (2.28-10+rpi1) ...
Errors were encountered while processing:
 owserver
Updating FireMotD available updates count ... 
E: Sub-process /usr/bin/dpkg returned an error code (1)

Despite errors Owserver seemed to be active after installation according to following command
sudo systemctl status owserver.service

After reboot Owserver didn’t start. It was reported “dead”.

● owserver.service - Backend server for 1-wire control
Loaded: loaded (/lib/systemd/system/owserver.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:owserver(1)

As I can see others also suffer from this issue
https://sourceforge.net/p/owfs/mailman/message/36765909/
https://www.raspberrypi.org/forums/viewtopic.php?t=251702
openhab/openhabian#703

owfs stuck after exUnknownSensor exception while reading temperature value from sensor

Hi,

I'm using the ow module of python in our project to read temperature values from different sensors connected to a Raspberry Pi.

Version details are as below,

/opt/owfs/bin/owserver version:
3.2p2
libow version:
3.2p2

Python 2.7.9

The initialization of ow client module is done like below,

ow.init('127.0.0.1:4304')

After this, the list of sensors is stored using the below code,

self.sensors = ow.Sensor("/").sensorList()

After this, I read the temperature values of the sensors in a for loop.

Also, the requirement is, if any sensor is not giving temperature value, I should be able to handle that case and continue reading the value from the next available sensor.

for sensor in self.sensors:
    try:
        sensorTemperature = sensor.temperature
    except Exception as error:
        #PRINT_LOG
        continue

For some sensors, below exception is seen when trying to read the temperature,

exUnknownSensor: '/28.72297D080000/temperature'

As can be seen in the above code, exception handling is done and after this, I would like to continue with the loop reading temperature value from other sensors.

But, I'm not getting that desired result, i.e., the read loop is stuck and the program is not coming out of the loop.

I would like to know whether some API needs to be called before the continue keyword so that the read loop doesn't get stuck?

  • Thanks,
    Puneet Ugru

Alias file is undocumented in both the man pages and wiki on github

Hi I was moving my OneWire setup from one server to another and had previously used an alias file in the past but could not remember how and went searching. I stumble upon Aliases for slave IDs.

On that page it says that an alias file can be used for OneWire devices and gives the command line short form option -a and the long option --alias=.

Well, I though if it works on the command line maybe it will work in the configuration file. Using the default install from the packages on Ubuntu the configuration is in /etc/owfs.conf. I added a line like the following to it:

alias=/home/username/onewire-aliases.config

Then I created an alias file that looks something like this:

# Temp_probe_1
28.XXXXXXXXXXXX = Greenhouse Peak
# Temp_probe_2
28.XXXXXXXXXXXX = Outside Air
# Temp_probe_3
28.XXXXXXXXXXXX = 3D Printer

After restarting owserver and owhttpd I now have the devices showing using the alias names instead of the device serial numbers.

I am using my OneWire devices with Home Assistant and when I use an alias file now my devices that the OneWire Integration for Home Assistant recognizes use the Alias names for the device cards in LoveLace control panel and the alias names for the devices IDs.

Please consider adding this hidden configuration feature to the man pages and to the Wiki here on Github. It make it much easier to identify devices than hunting through OneWire serial numbers.

I would be willing to submit a pull request for this if someone can point me to where to add it to the man pages.

Frederick

DS9490 bus master not found

Hi,
I'm looking for some help setting up a DS9490 bus master in owserver.
I've installed owserver in Kubuntu 18.04 from the repository, version 3.1p5.
Running with the command owserver -u --debug gives the error message
<LIBUSB_ERROR_ACCESS> Could not open the USB bus master. Is there a problem with permissions?

DEFAULT: ow_usb_msg.c:(188) <LIBUSB_ERROR_ACCESS> Could not open the USB bus master. Is there a problem with permissions?
  DEBUG: ow_ds9490.c:(297) Cannot open USB device 5:1
CONNECT: ow_ds9490.c:(312) No USB DS9490 bus master found
DEFAULT: owlib.c:(208) Cannot open USB bus master
DEFAULT: owlib.c:(52) No valid 1-wire buses found
 DEBUG: ow_exit.c:(17) Exit code = 1

Running as root

  DEBUG: ow_usb_msg.c:(200) <LIBUSB_ERROR_NOT_FOUND> Could not release kernel module
CONNECT: ow_usb_msg.c:(207) <LIBUSB_ERROR_BUSY> Failed to set configuration on USB DS9490 bus master at 1:5
  DEBUG: ow_usb_msg.c:(233) Did not successfully open DS9490 1:5 -- permission problem?
  DEBUG: ow_ds9490.c:(297) Cannot open USB device 5:1
CONNECT: ow_ds9490.c:(312) No USB DS9490 bus master found
DEFAULT: owlib.c:(208) Cannot open USB bus master
CONNECT: ow_usb_msg.c:(246) <LIBUSB_ERROR_NOT_FOUND> Release interface (USB) failed
  DEBUG: ow_usb_msg.c:(250) <LIBUSB_ERROR_OTHER> Linux kernel driver reattach problem
Segmentation fault

The device is listed
Bus 001 Device 005: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter

Please can anyone help resolve this issue.
Thanks, Stephen

Windows Defender claims trojan detected in v3.2p4 release .zip

Upon downloading owfs-3.2p4.zip from the github release page, Windows Defender immediately claims "Virus detected." Specifically, it is the file owfs-3.2p4/module/ownet/VisualBasic/csocketmaster/OWNet_VB.exe that is flagged inside the .zip file.
Strangely, none of the virus scanners at VirusTotal think this zip file dangerous, but MANY think that the .exe file it contains IS dangerous:

.zip file: https://www.virustotal.com/gui/url/1cd3e16d60a2053dca164bcc7e47907c07256437014af0c485c7b323ef3a86a3/detection

.exe file: https://www.virustotal.com/gui/file/ee2db3c9af9b638b883635314df9ddd80cb174378b9daf5a9e532c21152c6067/detection

Similar issues have been reported with Windows Defender on other software --- e.g., bazelbuild/bazelisk#168 --- but the fact that 30 out of 70 virus checkers on VirusTotal flag it is disturbing, including well known virus checkers such as Avast, AVG, BItDefender, Comodo, MalwareBytes, McAfee, and Symantec, among others.

Windows Defender describes it as follows:

Trojan:Win32/Ymacco.AAEE
Details:This program is dangerous and executes commands from an attacker.
https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=Trojan:Win32/Ymacco.AAEE&ThreatID=2147757298

I presume/hope these are false positives, similar to bazelbuild/bazelisk#168.

It would be nice if this issue could be mitigated for owfs.

Restore CI functionality

Hi all: currently CI via Travis is not working (false negatives.)

I'm opening to notify that I'm working to restore CI functionality and deploy also Github actions.

IPv6 support not found by configure

In the dim and distant past, 2008-06-24 12:06:47 +0100, a patch was made to help support Solaris.

This contained a test for IPv6 support by using '#include "include/stdinc.h"]],'.

Strange for 2 reasons, 1, quoting rather than having the header contained within chevrons, suggests this was part of the owfs distribution, yet it is not there.

Secondly, Linux at least, does not contain a stdinc.h file and I'm not sure if Solaris did or does either.

Changing the 2 lines to include "<netinet.in.h>" allows configure to include IPv6 support.

DS18B20 times don't match datasheet

I have a raspberry pi running owserver, i2c to DS2480 and then 1 wire to DS18B20. The DS18B20 is 5V powered. Timing the conversions gives:

:~# time owread /uncached/28.AD5579A21603/temperature12
20.3125
real 0m0.700s
user 0m0.002s
sys 0m0.019s

~# time owread /uncached/28.AD5579A21603/temperature9
20
real 0m0.676s
user 0m0.002s
sys 0m0.018s

:~# time owread /uncached/28.AD5579A21603/latesttemp
20
real 0m0.085s
user 0m0.011s
sys 0m0.010s

As expected latesttemp is very quick since there is no conversion. But both 9bit and 12bit conversions take the same time, which they shouldn't do according the datasheet. The 12bit can take 1s which is maximum so maybe 0.7s is reasonable. However the 9bit should take 100ms so there should be some difference between the timings.

The returned temperatures seem reasonable. Hence I think the most likely cause is that it is not correctly setting the resolution. I've set the default resolution to 9 bit and checked that byte 4 in the scratchpad (config byte) has R1=R0=0 which is correct for 9 bit (100ms). I've then timed a /temperature owread which should use the default, i.e. the programmed 9 bits. Time is still 0.7s.

Any other suggestions to try?

python3-ow module/bindings not built

The default Python version for some modern Linux distributions (i.e Ubuntu 20.04) is Python3.

Currently, there is no python3-ow module/bindings built for Ubuntu 20.04.

What is the current status on this topic?

bug in split packet

diff -ru owfs-3.2p2.orig/module/owlib/src/c/ow_bus_data.c owfs-3.2p2/module/owlib/src/c/ow_bus_data.c
--- owfs-3.2p2.orig/module/owlib/src/c/ow_bus_data.c    2016-02-04 22:09:53.000000000 +0200
+++ owfs-3.2p2/module/owlib/src/c/ow_bus_data.c 2020-03-09 15:49:31.073080159 +0200
@@ -104,6 +104,7 @@
                if (remain > 0) {
                        RETURN_BAD_IF_BAD( BUS_sendback_data_bitbang(data, resp, max_split_bytes, pn) );
                        RETURN_BAD_IF_BAD( BUS_sendback_data_bitbang(&data[max_split_bytes], resp ? (&resp[max_split_bytes]) : NULL, remain, pn) );
+                       return gbGOOD;
                }
        }

Missing "temphigh" and "templow" for all my DS28EA00 sensors after Raspbian upgrade

Hi Guys,

Previously I was running version 2.8p15 of the various owfs packages on my RPi 2 running on Raspbian 7.11. However as its no longer supported I decided I should upgrade to the latest version of Raspbian.

I installed Raspbian 10.3 onto a new SD Card (and kept the old one intact) and installed the owfs packages which seems to be ok, once I got the services starting on boot - so far so good.

However I've run into some issues with my python scripts that use the "ow" package where I can't access the "temphigh" & "templow" fields of my DS28EA00 sensors that used to work fine for many years.

So I tried the various ow-shell commands like:

root@owfs-pi:~# owdir /42.B7D702000000/
/42.B7D702000000/PIO.BYTE
/42.B7D702000000/PIO.ALL
/42.B7D702000000/PIO.A
/42.B7D702000000/PIO.B
/42.B7D702000000/address
/42.B7D702000000/alias
/42.B7D702000000/crc8
/42.B7D702000000/family
/42.B7D702000000/fasttemp
/42.B7D702000000/id
/42.B7D702000000/latch.BYTE
/42.B7D702000000/latch.ALL
/42.B7D702000000/latch.A
/42.B7D702000000/latch.B
/42.B7D702000000/latesttemp
/42.B7D702000000/locator
/42.B7D702000000/power
/42.B7D702000000/r_address
/42.B7D702000000/r_id
/42.B7D702000000/r_locator
/42.B7D702000000/sensed.BYTE
/42.B7D702000000/sensed.ALL
/42.B7D702000000/sensed.A
/42.B7D702000000/sensed.B
/42.B7D702000000/temperature
/42.B7D702000000/temperature10
/42.B7D702000000/temperature11
/42.B7D702000000/temperature12
/42.B7D702000000/temperature9
/42.B7D702000000/tempres
/42.B7D702000000/type

Seeing that the temphigh and templow fields were missing in the listing, I figured I'd just try to read them anyway using owread and they do return reasonable looking values

owread /42.B7D702000000/templow
           3

owread /42.B7D702000000/temphigh
          70

The temphigh and templow subfields are also missing on the owhttpd server pages for that device

image

So it looks like these particular subfields have disappeared from the list of supported or displayed fields for the DS28EA00 chip, but they can still be accessed if you know the path.

Any suggestions?

Regards
Alex Shepherd

owhttpd 3.2p3 segfaults

There seems to be a bug in owhttpd 3.2p3 talking to owserver both running on RPI 3 / Raspbian Buster. owhttpd segfaults after few minutes under moderate load - with some 23 sensors on the bus being polled every minute or so.
Downgrading to 3.1p5-1 makes is stable again.
Syslog:

Aug  6 22:47:15 spacehouse systemd-coredump[436]: Process 30700 (owhttpd) of user 103 dumped core.
Stack trace of thread 399:
#0  0x0000000076d839e0 parse_reg_exp (libc.so.6)
#1  0x0000000076d81e18 parse_sub_exp (libc.so.6)
#2  0x0000000076d8389c parse_branch (libc.so.6)
#3  0x0000000076d83a10 parse_reg_exp (libc.so.6)
#4  0x0000000076d83ef8 parse (libc.so.6)
#5  0x0000000076d8503c __GI___regcomp (libc.so.6)
#6  0x0000000076efa10c ow_regcomp (libow-3.2.so.3)

What should I provide in order to help debug this?

libc6 is libc6:armhf 2.28-10+rpi1

Programming a DS2406

Hi all,
Sorry if it's a bit off topic but haven't found an answer via the usual search methods. Trying to use owserver to write the eprom memory on a DS2406. We have a circuit that can pulse the 1-wire line to the device to +12v, but reading the data sheet it says there's a sequence of commands to be sent from the master but not sure where to start. We're using a DS2482-800 master via w1. Any suggested approaches very much appreciated.

Cheers and thanks
Rob

owserver memory leak?

Issue
I am facing the issue of owserver continuously occupying more memory with each access.

  • it does not matter whether accessing a temperature sensor or an eeprom
  • it does not matter whether accessing via owfs or the owshell tools
  • there is no difference between cached and uncached access
  • even using just owpresent instead of owread results in growing memory consumption
  • the bug was seen in version 3.1p1 and all newer releases, even with the latest master code from git

Target system
The owfs code is cross-compiled for aarch64 using x86/64 Linux gcc.
Binaries are running on a Xilinx Zynq MPSoC with Petalinux-2018.2 os.

Compiler
aarch64-linux-gnu-gcc (Linaro GCC 7.2-2017.11-rc1) 7.2.1 20171011

Test log

# ps ax | grep owserver
 9642 ?        Ssl    0:00 /usr/bin/owserver -c /etc/owfs.conf --pid_file /var/run/owserver.pid
 9938 pts/0    S+     0:00 grep owserver
# while true; do owread 28.2BC710060000/temperature; echo -n " -- "; grep RSS /proc/9642/status; sleep 1; done
     26.0625 -- VmRSS:      2900 kB
     26.0625 -- VmRSS:      2900 kB
     26.0625 -- VmRSS:      2904 kB
     26.0625 -- VmRSS:      2904 kB
     26.0625 -- VmRSS:      2904 kB
     26.0625 -- VmRSS:      2916 kB
     26.0625 -- VmRSS:      2920 kB
     26.0625 -- VmRSS:      2920 kB
     26.0625 -- VmRSS:      2920 kB
^C
# while true; do owread uncached/28.2BC710060000/temperature; echo -n " -- "; grep RSS /proc/9642/status; sleep 1; done
     26.0625 -- VmRSS:      2924 kB
      26.125 -- VmRSS:      2936 kB
      26.125 -- VmRSS:      2936 kB
      26.125 -- VmRSS:      2944 kB
     26.1875 -- VmRSS:      2956 kB
     26.1875 -- VmRSS:      2956 kB
     26.1875 -- VmRSS:      2956 kB
     26.1875 -- VmRSS:      2972 kB
     26.1875 -- VmRSS:      2972 kB
^C
# while true; do owexist 28.2BC710060000; echo -n " -- "; grep RSS /proc/9642/status; sleep 1; done
 -- VmRSS:          2972 kB
 -- VmRSS:          2976 kB
 -- VmRSS:          2976 kB
 -- VmRSS:          2976 kB
 -- VmRSS:          2976 kB
 -- VmRSS:          2980 kB
 -- VmRSS:          2980 kB
 -- VmRSS:          2980 kB
 -- VmRSS:          2984 kB
^C
# while true; do owpresent 28.2BC710060000; echo -n " -- "; grep RSS /proc/9642/status; sleep 1; done
1 -- VmRSS:         2988 kB
1 -- VmRSS:         2988 kB
1 -- VmRSS:         2992 kB
1 -- VmRSS:         2992 kB
1 -- VmRSS:         2992 kB
1 -- VmRSS:         2996 kB
1 -- VmRSS:         2996 kB
1 -- VmRSS:         2996 kB
1 -- VmRSS:         3000 kB
^C
#

Cannot open server at localhost:4304

Hi, all!

I'm running owfs

/usr/lib/owfs/owfs version:
        3.1p5
libow version:
        3.1p5

Since yesterday I'm I got troubles accessing my Dallas 1-wire sensors read from this "hat" on a Raspberry 3.

This command: sudo /usr/bin/owfs --i2c=ALL:ALL --allow_other /mnt/1wire/ --debug

CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 1B
  DEBUG: ow_ds2482.c:(516) ok
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 1B cannot be reset. Not a DS2482.
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 1C
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 1C cannot be reset. Not a DS2482.
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 1D
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 1D cannot be reset. Not a DS2482.
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 1E
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 1E cannot be reset. Not a DS2482.
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 1F
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 1F cannot be reset. Not a DS2482.
  DEBUG: ow_com_close.c:(43) Unimplemented!!!
CONNECT: owlib.c:(145) Cannot detect an i2c DS2482-x00 on ALL:ALL
  DEBUG: ow_net_client.c:(28) Called with 127.0.0.1:4304 default=4304
  DEBUG: ow_regex.c:(154) Not found
  DEBUG: ow_regex.c:(201) 0: 0->14 found <><127.0.0.1:4304><>
  DEBUG: ow_regex.c:(201) 1: 0->9 found <><127.0.0.1><:4304>
  DEBUG: ow_regex.c:(201) 2: 10->14 found <127.0.0.1:><4304><>
  DEBUG: ow_parse_address.c:(53) IP <127.0.0.1>
  DEBUG: ow_parse_address.c:(120) First <127.0.0.1>
  DEBUG: ow_parse_address.c:(125) Second <4304>
  DEBUG: ow_parse_address.c:(57) Num <4304> 4304
  DEBUG: ow_net_client.c:(85) Called with [127.0.0.1:4304] IP address=[127.0.0.1] port=[4304]
CONNECT: ow_net_client.c:(147) [Connection refused] Socket problem
CONNECT: owlib.c:(108) Cannot open server at 127.0.0.1:4304 -- first attempt.
  DEBUG: ow_net_client.c:(28) Called with 127.0.0.1:4304 default=4304
  DEBUG: ow_regex.c:(154) Not found
  DEBUG: ow_regex.c:(201) 0: 0->14 found <><127.0.0.1:4304><>
  DEBUG: ow_regex.c:(201) 1: 0->9 found <><127.0.0.1><:4304>
  DEBUG: ow_regex.c:(201) 2: 10->14 found <127.0.0.1:><4304><>
  DEBUG: ow_parse_address.c:(53) IP <127.0.0.1>
  DEBUG: ow_parse_address.c:(120) First <127.0.0.1>
  DEBUG: ow_parse_address.c:(125) Second <4304>
  DEBUG: ow_parse_address.c:(57) Num <4304> 4304
  DEBUG: ow_net_client.c:(85) Called with [127.0.0.1:4304] IP address=[127.0.0.1] port=[4304]
CONNECT: ow_net_client.c:(147) [Connection refused] Socket problem
CONNECT: owlib.c:(113) Cannot open server at 127.0.0.1:4304 -- second (and final) attempt.
DEFAULT: owlib.c:(52) No valid 1-wire buses found
  DEBUG: ow_exit.c:(17) Exit code = 1

I have rebooted and also confirmed that I have a i2c instance and restarted all ow* instanced under /usr/bin that I could guess..

What has gone wrong? - This thaw weather can't make it refuse to start (short circut)?

[owserver] DS18B20 can read other parameters, but not temperature

Hi,
I have strange problem with owserver. I can read adress, id and other parameters, but not temperature, fasttemp, etc. I'm using passive components with parasitic power connected to rs232 and DS18B20 sensors. I have tried 1 passive with non-parasitic power, but result is same.
Also I have tried to change sensors.

I have tried version 3.2p2 and 3.2p3 cloned from git. Same results

my owfs config:
cat /etc/owfs.conf | grep -v '#'

server:passive=/dev/ttyr00
server:passive=/dev/ttyr01
server:passive=/dev/ttyr02
server:passive=/dev/ttyr03
server:pid_file=/var/run/owserver.pid
server:timeout_volatile=120
server:timeout_serial=10

root@owfs:/opt/owfs-3.2p2# owdir /bus.1/
/bus.1/interface
/bus.1/28.161896050000
/bus.1/simultaneous
/bus.1/alarm
root@owfs:/opt/owfs-3.2p2# owdir /bus.1/28.161896050000
/bus.1/28.161896050000/address
/bus.1/28.161896050000/alias
/bus.1/28.161896050000/crc8
/bus.1/28.161896050000/errata
/bus.1/28.161896050000/family
/bus.1/28.161896050000/fasttemp
/bus.1/28.161896050000/id
/bus.1/28.161896050000/latesttemp
/bus.1/28.161896050000/locator
/bus.1/28.161896050000/power
/bus.1/28.161896050000/r_address
/bus.1/28.161896050000/r_id
/bus.1/28.161896050000/r_locator
/bus.1/28.161896050000/scratchpad
/bus.1/28.161896050000/temperature
/bus.1/28.161896050000/temperature10
/bus.1/28.161896050000/temperature11
/bus.1/28.161896050000/temperature12
/bus.1/28.161896050000/temperature9
/bus.1/28.161896050000/temphigh
/bus.1/28.161896050000/templow
/bus.1/28.161896050000/tempres
/bus.1/28.161896050000/type
root@owfs:/opt/owfs-3.2p2# owread /bus.1/28.161896050000/type
DS18B20root@owfs:/opt/owfs-3.2p2# owread /bus.1/28.161896050000/fasttemp
ServerRead: Data error on /bus.1/28.161896050000/fasttemp
root@owfs:/opt/owfs-3.2p2# owread /bus.1/28.161896050000/temperature
ServerRead: Data error on /bus.1/28.161896050000/temperature
root@owfs:/opt/owfs-3.2p2# owread /bus.1/28.161896050000/tid
ServerRead: Data error on /bus.1/28.161896050000/tid
root@owfs:/opt/owfs-3.2p2# owread /bus.1/28.161896050000/id
161896050000root@owfs:/opt/owfs-3.2p2# owread /bus.1/28.161896050000/crc8
68root@owfs:/opt/owfs-3.2p2# owread /bus.1/28.161896050000/power
ServerRead: Data error on /bus.1/28.161896050000/power
root@owfs:/opt/owfs-3.2p2# owread /bus.1/28.161896050000/address
2816189605000068root@owfs:/opt/owfs-3.2p2#
root@owfs:/opt/owfs-3.2p2# owread /bus.0/
ServerRead: Data error on /bus.0/
root@owfs:/opt/owfs-3.2p2# owread /bus.0/
ServerRead: Data error on /bus.0/
root@owfs:/opt/owfs-3.2p2# owread /bus.0/
ServerRead: Data error on /bus.0/
root@owfs:/opt/owfs-3.2p2# owread /bus.1/28.161896050000/fasttemp
ServerRead: Data error on /bus.1/28.161896050000/fasttemp
root@owfs:/opt/owfs-3.2p2#

Here is complete debug log.
owserver_debug.txt

Here is stripped debug log.

CONNECT: ow_select.c:(229) Select error for DS18B20 on bus /dev/ttyr00
  DEBUG: ow_transaction.c:(91) select = 1
  DEBUG: ow_cache.c:(941) 28 4F 48 96 05 00 00 45 size=4
  DEBUG: ow_cache.c:(1070) Search in cache sn 28 4F 48 96 05 00 00 45 pointer=0x7f8c5423e2ec index=-2 size=4
  DEBUG: ow_cache.c:(1106) Value not found in cache
  DEBUG: ow_select.c:(70) Selecting a path (and device) path=/28.4F4896050000/temperature12 SN=28 4F 48 96 05 00 00 45 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_tcp_read.c:(63) attempt 1 bytes Time: 10.000000 seconds
  DEBUG: ow_tcp_read.c:(113) read: 1 - 0 = 1
  DEBUG: ow_select.c:(226) Selecting device 28 4F 48 96 05 00 00 45
  DEBUG: ow_bus_data.c:(120) Splitting byte 0 of 9 = 55
  DEBUG: ow_bus_data.c:(120) Splitting byte 1 of 9 = 28
  DEBUG: ow_bus_data.c:(120) Splitting byte 2 of 9 = 4F
  DEBUG: ow_bus_data.c:(120) Splitting byte 3 of 9 = 48
  DEBUG: ow_bus_data.c:(120) Splitting byte 4 of 9 = 96
  DEBUG: ow_bus_data.c:(120) Splitting byte 5 of 9 = 05
  DEBUG: ow_bus_data.c:(120) Splitting byte 6 of 9 = 00
  DEBUG: ow_bus_data.c:(120) Splitting byte 7 of 9 = 00
  DEBUG: ow_bus_data.c:(120) Splitting byte 8 of 9 = 45
  DEBUG: ow_tcp_read.c:(63) attempt 24 bytes Time: 10.000000 seconds
  DEBUG: ow_tcp_read.c:(113) read: 24 - 0 = 24
  DEBUG: ow_tcp_read.c:(63) attempt 24 bytes Time: 10.000000 seconds
  DEBUG: ow_tcp_read.c:(113) read: 24 - 0 = 24
  DEBUG: ow_tcp_read.c:(63) attempt 24 bytes Time: 10.000000 seconds
  DEBUG: ow_tcp_read.c:(113) read: 24 - 0 = 24
  DEBUG: ow_bus_data.c:(141) Consolidating byte 0 of 9 = 55
  DEBUG: ow_bus_data.c:(141) Consolidating byte 1 of 9 = 28
  DEBUG: ow_bus_data.c:(141) Consolidating byte 2 of 9 = EF
  DEBUG: ow_bus_data.c:(141) Consolidating byte 3 of 9 = 48
  DEBUG: ow_bus_data.c:(141) Consolidating byte 4 of 9 = 96
  DEBUG: ow_bus_data.c:(141) Consolidating byte 5 of 9 = 55
  DEBUG: ow_bus_data.c:(141) Consolidating byte 6 of 9 = 00
  DEBUG: ow_bus_data.c:(141) Consolidating byte 7 of 9 = 80
  DEBUG: ow_bus_data.c:(141) Consolidating byte 8 of 9 = 47
  DEBUG: ow_bus_data.c:(38) Response doesn't match data sent
  DEBUG: ow_transaction.c:(113) send = 1
CONNECT: ow_select.c:(229) Select error for DS18B20 on bus /dev/ttyr00
  DEBUG: ow_transaction.c:(91) select = 1
  DEBUG: ow_read.c:(620) Read /28.4F4896050000/temperature12 Extension 0 Gives result -22
  DEBUG: ow_parsename.c:(133) /28.4F4896050000/temperature12
  DEBUG: ow_read.c:(620) Read /28.4F4896050000/temperature Extension 0 Gives result -22
  DEBUG: ow_read.c:(253) return=-22
  DEBUG: ow_read.c:(263) After read is performed (bytes or error -22)
OWQ OneWireQuery structure of /28.4F4896050000/temperature
    OneWireQuery size=12 offset=0, extension=0
Byte buffer OneWireQuery buffer, length=12
--000: 00 00 00 00 00 00 00 00 00 00 00 00
   <............> 

simultaneous feature in ds2409 branches doesn't seem to be implemented

Hi

I've tried the simultaneous temperature read feature with ds2409 based switches.

I've tried to write 1 in each branch (1F.xxxxxxxx/aux/simultaneous/temperature) (tried both cached uncached)
then read the temperatures.
If I read temperature cached, it goes fast, but the temperature is always the same (no conversion is done)
if I read temperature uncached, it goes slow, but correct temperature is read.

It seems that writing 1 to simultaneous/temperature has no effect in ds2409 branches.

After debugging a little bit, the debug log show a potential problem:

  DEBUG: ow_write.c:(437) Write a non-array element /1F.6AE203000000/aux/simultaneous/temperature
  DEBUG: ow_simultaneous.c:(152) TEST if bus powered
  DEBUG: ow_select.c:(70) Selecting a path (and device) path=/1F.6AE203000000/aux/simultaneous/temperature SN=1F 6A E2 03 00 00 00 01 last path=1F C4 DC 03 00 00 00 0D
  DEBUG: ow_select.c:(81) Clearing root branch
  DEBUG: ow_ds9490.c:(562) DS9490 RESET. changed 0, flex: 1
  DEBUG: ow_ds9490.c:(613) DS9490_Reset: OK
  DEBUG: ow_transaction.c:(113) send = 0
  DEBUG: ow_transaction.c:(131) readin = 0
  DEBUG: ow_transaction.c:(208) end = 0
  DEBUG: ow_ds9490.c:(562) DS9490 RESET. changed 0, flex: 1
  DEBUG: ow_ds9490.c:(613) DS9490_Reset: OK
  DEBUG: ow_transaction.c:(91) select = 0
  DEBUG: ow_transaction.c:(113) send = 0
  DEBUG: ow_transaction.c:(131) readin = 0
  DEBUG: ow_transaction.c:(208) end = 0
  DEBUG: ow_cache.c:(510) Adding for conversion time for 1F 6A E2 03 00 00 00 01
  DEBUG: ow_cache.c:(516) 1F 6A E2 03 00 00 00 01
  DEBUG: ow_cache.c:(520) Simultaneous add type=S_T
  DEBUG: ow_cache.c:(635) Add to cache sn 1F 6A E2 03 00 00 00 01 pointer=0xb6f73744 index=0 size=0
  DEBUG: ow_select.c:(70) Selecting a path (and device) path=/1F.6AE203000000/aux/simultaneous/temperature SN=1F 6A E2 03 00 00 00 01 last path=1F C4 DC 03 00 00 00 0D
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds9490.c:(562) DS9490 RESET. changed 0, flex: 1
  DEBUG: ow_ds9490.c:(613) DS9490_Reset: OK
  DEBUG: ow_transaction.c:(91) select = 0
  DEBUG: ow_transaction.c:(113) send = 0
  DEBUG: ow_transaction.c:(208) end = 0
  DEBUG: ow_write.c:(495) Write /1F.6AE203000000/aux/simultaneous/temperature Extension 0 Gives result 0
  DEBUG: ow_write.c:(110) Successful write to /1F.6AE203000000/aux/simultaneous/temperature
  DEBUG: ow_parsename.c:(63) /1F.6AE203000000/aux/simultaneous/temperature

If I understood correctly, simultaneous is supposed to broadcast convert commands to the bus.
select is called, and it doesn't detect that it is in a branch. (Clearing root branch)
So the convert seems to be sent at the root branch instead.

I don't know why pn->ds2409_depth is 0, it should not be.

Thanks

owtcl fails to build

Not really sure what is going on here, but if tcl is enabled when building with clang12.0.0 / libtool (GNU libtool) 2.4.6.42 on Arch:

Making all in owtcl
make[2]: Entering directory '/home/johan/dev/owfs/module/owtcl'
  CCLD     ow.la
libtool:   error: only absolute run-paths are allowed
make[2]: *** [Makefile:598: ow.la] Error 1
make[2]: Leaving directory '/home/johan/dev/owfs/module/owtcl'
make[1]: *** [Makefile:522: all-recursive] Error 1
make[1]: Leaving directory '/home/johan/dev/owfs/module'
make: *** [Makefile:578: all-recursive] Error 1

Disabling the owtcl module allows build to finish fine.

CI tools not working

It is clear that CI tools are currently not working as expected.

I opened this issue just to notify that I'm working on the issue to bring tests back into good shape.

  • avoid build failures in Travis CI
  • implement tests in GitHub Actions

Unable to build from distribution: missing file

The source distribution is missing file ow_ie_rgbw_controller.c.

How to reproduce:

./bootstrap 
./configure 
make dist
mkdir build
tar -x -f owfs-*.tar.gz -C build --strip-components 1
cd build/
./configure 
make

The error is

Making all in owlib
Making all in src
Making all in c
  CC       ow_infernoembedded.lo
ow_infernoembedded.c:588:10: fatal error: 'ow_ie_rgbw_controller.c' file not found
#include "ow_ie_rgbw_controller.c"
         ^~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

BTW, why has ow_ie_rgbw_controller.c a .c extension and not .h?

MAX31826: Wrong temperature reported; fails to write to internal memory pages

Hello,
It seems that for MAX31826 OWFS always returns the current temperature as -0.0625.
OWFS also fails to write to any internal memory page of MAX31826.

I also noticed that content of the scratchpad changes if the temperature of the chip changes (e.g. when I put a finger on it).

I think this conversation might be related to this issue: http://owfs-developers.1086194.n5.nabble.com/Datanab-MAX31850-reading-td12331.html

I can donate one or few of such devices to the developer for testing.

Here's the log for the temperature reading attempt:

ubuntu@ubuntu:~$ /usr/bin/owserver -c /etc/owfs.conf --debug --w1
DEBUG MODE
libow version:
        3.2p3
  DEBUG: ow_daemon.c:(170) main thread id = 281472919396368
CONNECT: ow_dnssd.c:(81) Zeroconf/Bonjour is disabled since dnssd library isn't found
   CALL: ow_parsename.c:(174) path=[]
  DEBUG: owlib.c:(77) Global temp limit 0C to 100C (for fake and mock adapters)
CONNECT: ow_w1_bind.c:(64) [Operation not permitted] Netlink (w1) bind (are you root?)
  DEBUG: ow_w1_monitor.c:(65) [Operation not permitted] Netlink problem -- are you root?
  DEBUG: ow_regex.c:(24) Reg Ex expression <^$> compiled to 0xffff85cd0358
  DEBUG: ow_regex.c:(24) Reg Ex expression <^all$> compiled to 0xffff85cd0398
  DEBUG: ow_regex.c:(24) Reg Ex expression <^scan$> compiled to 0xffff85cd03d8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^\*$> compiled to 0xffff85cd0418
  DEBUG: ow_regex.c:(24) Reg Ex expression <^[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}$> compiled to 0xffff85cd0458
  DEBUG: ow_regex.c:(24) Reg Ex expression <^-?[[:digit:]]+$> compiled to 0xffff85cd0498
]*$> compiled to 0xffff85cd04d8 expression <^ *([^ ]+)[
]*$> compiled to 0xffff85cd0518 expression <^ *([^ ]+) *: *([^ ]+)[
]*$> compiled to 0xffff85cd0558 expression <^ *([^ ]+) *: *([^ ]+) *: *([^ ]+)[
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(100) 0: 0->10 found <></dev/i2c-1><>
  DEBUG: ow_regex.c:(100) 1: 0->10 found <></dev/i2c-1><>
  DEBUG: ow_parse_address.c:(87) Text </dev/i2c-1>
  DEBUG: ow_parse_address.c:(142) First </dev/i2c-1>
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 18
  DEBUG: ow_ds2482.c:(516) ok
CONNECT: ow_ds2482.c:(426) i2c device at /dev/i2c-1 address 18 appears to be DS2482-x00
  DEBUG: ow_ds2482.c:(785) Channel select set error
CONNECT: ow_ds2482.c:(692) DS2482-100 (Single channel)
  DEBUG: ow_ds2482.c:(676) Cannot set to port configuration -- not a DS2483
  DEBUG: ow_net_server.c:(76) ServerAddr: [localhost] [4304]
  DEBUG: ow_tcp_read.c:(63) attempt 24 bytes Time: 10.000000 seconds
  DEBUG: ow_tcp_read.c:(113) read: 24 - 0 = 24
  DEBUG: from_client.c:(65) FromClient payload=38 size=65536 type=2 sg=0x10A offset=0
  DEBUG: from_client.c:(73) FromClient (no servermessage) payload=38 size=65536 type=2 controlflags=0x10A offset=0
  DEBUG: ow_tcp_read.c:(63) attempt 38 bytes Time: 10.000000 seconds
  DEBUG: ow_tcp_read.c:(113) read: 38 - 0 = 38
  DEBUG: handler.c:(152) START handler /uncached/3B.A74463000000/temperature
   CALL: data.c:(103) DataHandler: parse path=/uncached/3B.A74463000000/temperature
  DEBUG: ow_parseobject.c:(163) /uncached/3B.A74463000000/temperature
   CALL: ow_parsename.c:(174) path=[/uncached/3B.A74463000000/temperature]
  DEBUG: ow_regex.c:(24) Reg Ex expression <^bus\.([[:digit:]]+)/?> compiled to 0xffff85cd05b8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^settings/?> compiled to 0xffff85cd05f8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^statistics/?> compiled to 0xffff85cd0638
  DEBUG: ow_regex.c:(24) Reg Ex expression <^structure/?> compiled to 0xffff85cd0678
  DEBUG: ow_regex.c:(24) Reg Ex expression <^system/?> compiled to 0xffff85cd06b8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^interface/?> compiled to 0xffff85cd06f8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^text/?> compiled to 0xffff85cd0738
  DEBUG: ow_regex.c:(24) Reg Ex expression <^json/?> compiled to 0xffff85cd0778
  DEBUG: ow_regex.c:(24) Reg Ex expression <^uncached/?> compiled to 0xffff85cd07b8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^unaliased/?> compiled to 0xffff85cd07f8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^alarm?> compiled to 0xffff85cd0838
  DEBUG: ow_regex.c:(24) Reg Ex expression <^simultaneous/?> compiled to 0xffff85cd0878
  DEBUG: ow_regex.c:(24) Reg Ex expression <^thermostat/?> compiled to 0xffff85cd08b8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^/bus\.[[:digit:]]+/?> compiled to 0xffff85cd08f8
  DEBUG: ow_regex.c:(24) Reg Ex expression <\.> compiled to 0xffff85cd0938
  DEBUG: ow_regex.c:(24) Reg Ex expression <\.all$> compiled to 0xffff85cd0978
  DEBUG: ow_regex.c:(24) Reg Ex expression <\.byte$> compiled to 0xffff85cd09b8
  DEBUG: ow_regex.c:(24) Reg Ex expression <\.[[:digit:]]+$> compiled to 0xffff85cd09f8
  DEBUG: ow_regex.c:(24) Reg Ex expression <\.[[:alpha:]]$> compiled to 0xffff85cd0a38
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(24) Reg Ex expression <^([[:xdigit:]]{2})\.?([[:xdigit:]]{12})\.?([[:xdigit:]]{2}){0,1}$> compiled to 0xffff85cd0a80
  DEBUG: ow_regex.c:(100) 0: 0->15 found <><3B.A74463000000><>
  DEBUG: ow_regex.c:(100) 1: 0->2 found <><3B><.A74463000000>
  DEBUG: ow_regex.c:(100) 2: 3->15 found <3B.><A74463000000><>
  DEBUG: ow_cache.c:(912) Looking for device 3B A7 44 63 00 00 00 95
  DEBUG: ow_cache.c:(1070) Search in cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff85cd0d14 index=0 size=4
  DEBUG: ow_cache.c:(1106) Value not found in cache
 DETAIL: ow_presence.c:(80) Checking presence of /uncached/3B.A74463000000/temperature
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/temperature SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(81) Clearing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_select.c:(247) No DS2409 microlan hub found at this level
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(221) verify = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_presence.c:(274) Presence of 3B A7 44 63 00 00 00 95 FOUND on bus /dev/i2c-1:18
  DEBUG: ow_cache.c:(546) Adding device location 3B A7 44 63 00 00 00 95 bus=0
  DEBUG: ow_cache.c:(635) Add to cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff85cd0d14 index=0 size=4
  DEBUG: ow_cache.c:(546) Adding device location 3B A7 44 63 00 00 00 95 bus=0
  DEBUG: ow_cache.c:(635) Add to cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff85cd0d14 index=0 size=4
  DEBUG: ow_regex.c:(53) Not found
   CALL: data.c:(144) Read message
  DEBUG: read.c:(54) ReadHandler start
  DEBUG: read.c:(60) ReadHandler: From Client sm->payload=38 sm->size=65536 sm->offset=0
  DEBUG: read.c:(78) ReadHandler: call FS_read_postparse on /uncached/3B.A74463000000/temperature
  DEBUG: ow_read.c:(72) /uncached/3B.A74463000000/temperature
  DEBUG: ow_read.c:(204) /uncached/3B.A74463000000/temperature
  DEBUG: ow_read.c:(238) About to read </uncached/3B.A74463000000/temperature> extension=0 size=12 offset=0
  DEBUG: ow_read.c:(332) file_length=12 offset=0 size=12
  DEBUG: ow_parseobject.c:(94) Create sibling temperature12 from /uncached/3B.A74463000000/temperature as /uncached/3B.A74463000000/temperature12
  DEBUG: ow_parseobject.c:(29) /uncached/3B.A74463000000/temperature12
   CALL: ow_parsename.c:(174) path=[/uncached/3B.A74463000000/temperature12]
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(100) 0: 0->15 found <><3B.A74463000000><>
  DEBUG: ow_regex.c:(100) 1: 0->2 found <><3B><.A74463000000>
  DEBUG: ow_regex.c:(100) 2: 3->15 found <3B.><A74463000000><>
  DEBUG: ow_cache.c:(912) Looking for device 3B A7 44 63 00 00 00 95
  DEBUG: ow_cache.c:(1070) Search in cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff85cd0d14 index=0 size=4
  DEBUG: ow_cache.c:(1086) Value found in cache. Remaining life: 120 seconds.
  DEBUG: ow_presence.c:(75) Found device on bus 0
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_read.c:(332) file_length=12 offset=0 size=1
  DEBUG: ow_1820.c:(339) Checking visibility of /uncached/3B.A74463000000/temperature12
  DEBUG: ow_cache.c:(941) 3B A7 44 63 00 00 00 95 size=4
  DEBUG: ow_parseobject.c:(29) /uncached/3B.A74463000000/temperature12
   CALL: ow_parsename.c:(174) path=[/uncached/3B.A74463000000/temperature12]
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(100) 0: 0->15 found <><3B.A74463000000><>
  DEBUG: ow_regex.c:(100) 1: 0->2 found <><3B><.A74463000000>
  DEBUG: ow_regex.c:(100) 2: 3->15 found <3B.><A74463000000><>
  DEBUG: ow_cache.c:(912) Looking for device 3B A7 44 63 00 00 00 95
  DEBUG: ow_cache.c:(1070) Search in cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff85cd0d14 index=0 size=4
  DEBUG: ow_cache.c:(1086) Value found in cache. Remaining life: 120 seconds.
  DEBUG: ow_presence.c:(75) Found device on bus 0
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_parseobject.c:(94) Create sibling scratchpad from /uncached/3B.A74463000000/temperature12 as /uncached/3B.A74463000000/scratchpad
  DEBUG: ow_parseobject.c:(29) /uncached/3B.A74463000000/scratchpad
   CALL: ow_parsename.c:(174) path=[/uncached/3B.A74463000000/scratchpad]
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(100) 0: 0->15 found <><3B.A74463000000><>
  DEBUG: ow_regex.c:(100) 1: 0->2 found <><3B><.A74463000000>
  DEBUG: ow_regex.c:(100) 2: 3->15 found <3B.><A74463000000><>
  DEBUG: ow_cache.c:(912) Looking for device 3B A7 44 63 00 00 00 95
  DEBUG: ow_cache.c:(1070) Search in cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff85cd0d14 index=0 size=4
  DEBUG: ow_cache.c:(1086) Value found in cache. Remaining life: 120 seconds.
  DEBUG: ow_presence.c:(75) Found device on bus 0
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_read.c:(332) file_length=9 offset=0 size=9
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/scratchpad SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(176) CRC8 = 0
  DEBUG: ow_transaction.c:(207) end = 0
Byte buffer OWQ_parse_output_offset_and_size, length=9
--000: 5F 01 FF FF F0 FF FF FF 52
   <_.......R>
  DEBUG: ow_read.c:(620) Read /uncached/3B.A74463000000/scratchpad Extension 0 Gives result 0
  DEBUG: ow_cache.c:(374) Adding data for /uncached/3B.A74463000000/scratchpad
  DEBUG: ow_cache.c:(421) 3B A7 44 63 00 00 00 95 size=9
  DEBUG: ow_cache.c:(635) Add to cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff85ca5f00 index=0 size=9
  DEBUG: ow_parsename.c:(133) /uncached/3B.A74463000000/scratchpad
  DEBUG: ow_cache.c:(584) Adding internal data for 3B A7 44 63 00 00 00 95 size=4
  DEBUG: ow_cache.c:(684) Adding data to permanent store
  DEBUG: ow_parsename.c:(133) /uncached/3B.A74463000000/temperature12
  DEBUG: ow_1820.c:(339) Checking visibility of /uncached/3B.A74463000000/temperature12
  DEBUG: ow_cache.c:(941) 3B A7 44 63 00 00 00 95 size=4
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/temperature12 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_cache.c:(584) Adding internal data for 3B A7 44 63 00 00 00 95 size=1
  DEBUG: ow_cache.c:(635) Add to cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff85ca5310 index=-2 size=1
  DEBUG: ow_1820.c:(852) Unpowered temperature conversion -- 150 msec
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/temperature12 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(164) power (150 usec) = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/temperature12 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(176) CRC8 = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_read.c:(620) Read /uncached/3B.A74463000000/temperature12 Extension 0 Gives result 0
  DEBUG: ow_cache.c:(384) Adding data for /uncached/3B.A74463000000/temperature12
  DEBUG: ow_cache.c:(421) 3B A7 44 63 00 00 00 95 size=8
  DEBUG: ow_cache.c:(635) Add to cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff85ca6000 index=0 size=8
  DEBUG: ow_parsename.c:(133) /uncached/3B.A74463000000/temperature12
  DEBUG: ow_read.c:(620) Read /uncached/3B.A74463000000/temperature Extension 0 Gives result 0
  DEBUG: ow_cache.c:(384) Adding data for /uncached/3B.A74463000000/temperature
  DEBUG: ow_read.c:(253) return=0
Byte buffer OWQ_parse_output_offset_and_size, length=12
--000: 20 20 20 20 20 2D 30 2E 30 36 32 35
   <     -0.0625>
  DEBUG: ow_read.c:(263) After read is performed (bytes or error 12)
OWQ OneWireQuery structure of /uncached/3B.A74463000000/temperature
    OneWireQuery size=12 offset=0, extension=0
Byte buffer OneWireQuery buffer, length=12
--000: 20 20 20 20 20 2D 30 2E 30 36 32 35
   <     -0.0625>
    Cleanup = 0006    OneWireQuery I=12 U=12 F=5.92879E-323 Y=12 D=Thu Jan  1 00:00:12 1970

--- OneWireQuery done
  DEBUG: ow_read.c:(226) /uncached/3B.A74463000000/temperature returns 12
  DEBUG: ow_read.c:(103) /uncached/3B.A74463000000/temperature return 12
  DEBUG: read.c:(80) ReadHandler: FS_read_postparse read on /uncached/3B.A74463000000/temperature return = 12
OWQ OneWireQuery structure of /uncached/3B.A74463000000/temperature
    OneWireQuery size=12 offset=0, extension=0
Byte buffer OneWireQuery buffer, length=12
--000: 20 20 20 20 20 2D 30 2E 30 36 32 35
   <     -0.0625>
    Cleanup = 0006    OneWireQuery I=12 U=12 F=5.92879E-323 Y=12 D=Thu Jan  1 00:00:12 1970

--- OneWireQuery done
  DEBUG: read.c:(88) ReadHandler: FS_read_postparse ok size=12
  DEBUG: read.c:(99) ReadHandler: To Client cm->payload=12 cm->size=12 cm->offset=0
Byte buffer Data returned to client, length=12
-- NULL buffer
  DEBUG: data.c:(146) Read message done value=0xffff74021090
  DEBUG: ow_parsename.c:(133) /uncached/3B.A74463000000/temperature
  DEBUG: data.c:(193) DataHandler: FS_ParsedName_destroy done
  DEBUG: data.c:(207) DataHandler: cm.ret=12
  DEBUG: to_client.c:(74) payload=12 size=12, ret=12, sg=0x10A offset=0
  DEBUG: data.c:(226) Finished with client request
  DEBUG: handler.c:(134) OWSERVER handler done
  DEBUG: ow_net_server.c:(259) Normal completion.

Here's the log for the memory page write attempt:

ubuntu@ubuntu:~$ /usr/bin/owserver -c /etc/owfs.conf --debug --w1
DEBUG MODE
libow version:
        3.2p3
  DEBUG: ow_daemon.c:(170) main thread id = 281472871219216
CONNECT: ow_dnssd.c:(81) Zeroconf/Bonjour is disabled since dnssd library isn't found
   CALL: ow_parsename.c:(174) path=[]
  DEBUG: owlib.c:(77) Global temp limit 0C to 100C (for fake and mock adapters)
CONNECT: ow_w1_bind.c:(64) [Operation not permitted] Netlink (w1) bind (are you root?)
  DEBUG: ow_w1_monitor.c:(65) [Operation not permitted] Netlink problem -- are you root?
  DEBUG: ow_regex.c:(24) Reg Ex expression <^$> compiled to 0xffff82ede358
  DEBUG: ow_regex.c:(24) Reg Ex expression <^all$> compiled to 0xffff82ede398
  DEBUG: ow_regex.c:(24) Reg Ex expression <^scan$> compiled to 0xffff82ede3d8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^\*$> compiled to 0xffff82ede418
  DEBUG: ow_regex.c:(24) Reg Ex expression <^[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}$> compiled to 0xffff82ede458
  DEBUG: ow_regex.c:(24) Reg Ex expression <^-?[[:digit:]]+$> compiled to 0xffff82ede498
]*$> compiled to 0xffff82ede4d8 expression <^ *([^ ]+)[
]*$> compiled to 0xffff82ede518 expression <^ *([^ ]+) *: *([^ ]+)[
]*$> compiled to 0xffff82ede558 expression <^ *([^ ]+) *: *([^ ]+) *: *([^ ]+)[
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(100) 0: 0->10 found <></dev/i2c-1><>
  DEBUG: ow_regex.c:(100) 1: 0->10 found <></dev/i2c-1><>
  DEBUG: ow_parse_address.c:(87) Text </dev/i2c-1>
  DEBUG: ow_parse_address.c:(142) First </dev/i2c-1>
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 18
  DEBUG: ow_ds2482.c:(516) ok
CONNECT: ow_ds2482.c:(426) i2c device at /dev/i2c-1 address 18 appears to be DS2482-x00
  DEBUG: ow_ds2482.c:(785) Channel select set error
CONNECT: ow_ds2482.c:(692) DS2482-100 (Single channel)
  DEBUG: ow_ds2482.c:(676) Cannot set to port configuration -- not a DS2483
  DEBUG: ow_net_server.c:(76) ServerAddr: [localhost] [4304]
  DEBUG: ow_tcp_read.c:(63) attempt 24 bytes Time: 10.000000 seconds
  DEBUG: ow_tcp_read.c:(113) read: 24 - 0 = 24
  DEBUG: from_client.c:(65) FromClient payload=40 size=1 type=3 sg=0x10A offset=0
  DEBUG: from_client.c:(73) FromClient (no servermessage) payload=40 size=1 type=3 controlflags=0x10A offset=0
  DEBUG: ow_tcp_read.c:(63) attempt 40 bytes Time: 10.000000 seconds
  DEBUG: ow_tcp_read.c:(113) read: 40 - 0 = 40
  DEBUG: handler.c:(152) START handler /uncached/3B.A74463000000/pages/page.0
   CALL: data.c:(103) DataHandler: parse path=/uncached/3B.A74463000000/pages/page.0
  DEBUG: ow_parseobject.c:(163) /uncached/3B.A74463000000/pages/page.0
   CALL: ow_parsename.c:(174) path=[/uncached/3B.A74463000000/pages/page.0]
  DEBUG: ow_regex.c:(24) Reg Ex expression <^bus\.([[:digit:]]+)/?> compiled to 0xffff82ede5b8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^settings/?> compiled to 0xffff82ede5f8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^statistics/?> compiled to 0xffff82ede638
  DEBUG: ow_regex.c:(24) Reg Ex expression <^structure/?> compiled to 0xffff82ede678
  DEBUG: ow_regex.c:(24) Reg Ex expression <^system/?> compiled to 0xffff82ede6b8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^interface/?> compiled to 0xffff82ede6f8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^text/?> compiled to 0xffff82ede738
  DEBUG: ow_regex.c:(24) Reg Ex expression <^json/?> compiled to 0xffff82ede778
  DEBUG: ow_regex.c:(24) Reg Ex expression <^uncached/?> compiled to 0xffff82ede7b8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^unaliased/?> compiled to 0xffff82ede7f8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^alarm?> compiled to 0xffff82ede838
  DEBUG: ow_regex.c:(24) Reg Ex expression <^simultaneous/?> compiled to 0xffff82ede878
  DEBUG: ow_regex.c:(24) Reg Ex expression <^thermostat/?> compiled to 0xffff82ede8b8
  DEBUG: ow_regex.c:(24) Reg Ex expression <^/bus\.[[:digit:]]+/?> compiled to 0xffff82ede8f8
  DEBUG: ow_regex.c:(24) Reg Ex expression <\.> compiled to 0xffff82ede938
  DEBUG: ow_regex.c:(24) Reg Ex expression <\.all$> compiled to 0xffff82ede978
  DEBUG: ow_regex.c:(24) Reg Ex expression <\.byte$> compiled to 0xffff82ede9b8
  DEBUG: ow_regex.c:(24) Reg Ex expression <\.[[:digit:]]+$> compiled to 0xffff82ede9f8
  DEBUG: ow_regex.c:(24) Reg Ex expression <\.[[:alpha:]]$> compiled to 0xffff82edea38
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(24) Reg Ex expression <^([[:xdigit:]]{2})\.?([[:xdigit:]]{12})\.?([[:xdigit:]]{2}){0,1}$> compiled to 0xffff82edea80
  DEBUG: ow_regex.c:(100) 0: 0->15 found <><3B.A74463000000><>
  DEBUG: ow_regex.c:(100) 1: 0->2 found <><3B><.A74463000000>
  DEBUG: ow_regex.c:(100) 2: 3->15 found <3B.><A74463000000><>
  DEBUG: ow_cache.c:(912) Looking for device 3B A7 44 63 00 00 00 95
  DEBUG: ow_cache.c:(1070) Search in cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff82eded14 index=0 size=4
  DEBUG: ow_cache.c:(1106) Value not found in cache
 DETAIL: ow_presence.c:(80) Checking presence of /uncached/3B.A74463000000/pages/page.0
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/pages/page.0 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(81) Clearing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_select.c:(247) No DS2409 microlan hub found at this level
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(221) verify = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_presence.c:(274) Presence of 3B A7 44 63 00 00 00 95 FOUND on bus /dev/i2c-1:18
  DEBUG: ow_cache.c:(546) Adding device location 3B A7 44 63 00 00 00 95 bus=0
  DEBUG: ow_cache.c:(635) Add to cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff82eded14 index=0 size=4
  DEBUG: ow_cache.c:(546) Adding device location 3B A7 44 63 00 00 00 95 bus=0
  DEBUG: ow_cache.c:(635) Add to cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff82eded14 index=0 size=4
  DEBUG: ow_regex.c:(53) Not found
  DEBUG: ow_regex.c:(100) 0: 10->11 found <pages/page><.><0>
  DEBUG: ow_regex.c:(100) 0: 10->12 found <pages/page><.0><>
   CALL: data.c:(149) Write message
  DEBUG: write.c:(50) WriteHandler: hd->sm.payload=40 hd->sm.size=1 hd->sm.offset=0 OWQ_size=1 OWQ_offset=0
OWQ OneWireQuery structure of /uncached/3B.A74463000000/pages/page.0
    OneWireQuery size=1 offset=0, extension=0
Byte buffer OneWireQuery buffer, length=1
--000: 31
   <1>
    Cleanup = 0002    OneWireQuery I=1 U=1 F=4.94066E-324 Y=1 D=Thu Jan  1 00:00:01 1970

--- OneWireQuery done
  DEBUG: ow_write.c:(483) Write a separate element /uncached/3B.A74463000000/pages/page.0
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/pages/page.0 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/pages/page.0 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(176) CRC8 = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/pages/page.0 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(176) CRC8 = 0
  DEBUG: ow_transaction.c:(97) compare = 1
  DEBUG: ow_write.c:(495) Write /uncached/3B.A74463000000/pages/page.0 Extension 0 Gives result -22
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/pages/page.0 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(221) verify = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_presence.c:(274) Presence of 3B A7 44 63 00 00 00 95 FOUND on bus /dev/i2c-1:18
  DEBUG: ow_cache.c:(546) Adding device location 3B A7 44 63 00 00 00 95 bus=0
  DEBUG: ow_cache.c:(635) Add to cache sn 3B A7 44 63 00 00 00 95 pointer=0xffff82eded14 index=0 size=4
  DEBUG: ow_write.c:(483) Write a separate element /uncached/3B.A74463000000/pages/page.0
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/pages/page.0 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/pages/page.0 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(176) CRC8 = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/pages/page.0 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(176) CRC8 = 0
  DEBUG: ow_transaction.c:(97) compare = 1
  DEBUG: ow_write.c:(495) Write /uncached/3B.A74463000000/pages/page.0 Extension 0 Gives result -22
  DEBUG: ow_write.c:(483) Write a separate element /uncached/3B.A74463000000/pages/page.0
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/pages/page.0 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/pages/page.0 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(176) CRC8 = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_select.c:(69) Selecting a path (and device) path=/uncached/3B.A74463000000/pages/page.0 SN=3B A7 44 63 00 00 00 95 last path=00 00 00 00 00 00 00 00
  DEBUG: ow_select.c:(84) Continuing root branch
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(620) DS2482 I2C bus /dev/i2c-1:18, channel 0/1 Any devices found on reset? Yes
  DEBUG: ow_select.c:(226) Selecting device 3B A7 44 63 00 00 00 95
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_transaction.c:(207) end = 0
  DEBUG: ow_transaction.c:(90) select = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(112) send = 0
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_ds2482.c:(516) ok
  DEBUG: ow_transaction.c:(130) readin = 0
  DEBUG: ow_transaction.c:(176) CRC8 = 0
  DEBUG: ow_transaction.c:(97) compare = 1
  DEBUG: ow_write.c:(495) Write /uncached/3B.A74463000000/pages/page.0 Extension 0 Gives result -22
  DEBUG: ow_write.c:(112) Error writing to /uncached/3B.A74463000000/pages/page.0
  DEBUG: ow_parsename.c:(133) /uncached/3B.A74463000000/pages/page.0
  DEBUG: data.c:(193) DataHandler: FS_ParsedName_destroy done
  DEBUG: data.c:(207) DataHandler: cm.ret=-22
  DEBUG: to_client.c:(74) payload=0 size=0, ret=-22, sg=0x10A offset=0
  DEBUG: to_client.c:(84) No data
  DEBUG: data.c:(226) Finished with client request
  DEBUG: handler.c:(134) OWSERVER handler done
  DEBUG: ow_net_server.c:(259) Normal completion.

owfs.org is down

Hi there,
it looks like http://owfs.org/ is down. All weekend there were errors from PHP about cache folder permissions, and now (2019-04-08) site is down.

Http header contains a line terminator that isn't \r\n

When I try to access OWFS over Http from C# I get an exception "System.Net.WebException: The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF"

Examining the code that generates the Http header I see that one of the lines is not terminated with \r\n:

fprintf(out, "Date: %*s\n", (int) l, d);

I think it should be

fprintf(out, "Date: %*s\r\n", (int) l, d);

DS9097U-009 failing to connect

Hi,
I have replaced the motherboard on a control system that has been working for some years.
On the new board the DS9097U-009 is not connecting. Clearly all the board hardware is new but hard drive and software are unchanged.
The serial port parameters are:
Note the default baud rate is 115200 that I changed to 9600.

pwrp@LinITX:/opt/owfs/bin$ setserial -av /dev/ttyS0
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
Baud_base: 9600, close_delay: 50, divisor: 0
closing_wait: 3000
Flags: spd_normal skip_test

Starting owserver in debug mode gives the following

pwrp@LinITX:/opt/owfs/bin$ owserver -d /dev/ttyS0 --debug
DEBUG MODE
libow version:
3.1p5
DEBUG: ow_daemon.c:(170) main thread id = 140345131562944
DEBUG: ow_inotify.c:(80) No configuration files to monitor
CONNECT: ow_dnssd.c:(81) Zeroconf/Bonjour is disabled since dnssd library isn't found
CALL: ow_parsename.c:(104) path=[]
DEBUG: owlib.c:(77) Global temp limit 0C to 100C (for fake and mock adapters)
DEBUG: ow_ds9097U.c:(471) Attempt 0 of 3 to initialize the DS9097U

At this point nothing else happens.
Opening another terminal to run owdir gives no result

pwrp@LinITX:/opt/owfs/bin$ owdir
pwrp@LinITX:/opt/owfs/bin$

I would appreciate any help with this problem
Thanks Stephen

owfs file duplicates in /mnt/1wire Raspbian Buster all versions

Hello,

I intend to use the abelectronics DS2482-100 interface board with owfs for managing DS18B20 temperature sensors. The following was tested on Pi 2 with Buster light, Pi3+ and Pi4 with Buster full 2020-02-13 ans subsequent upgrades.

I installed the owfs package according the tutorial given by abelectronics.
https://www.abelectronics.co.uk/kb/article/3/owfs-with-i2c-support-on-raspberry-pi
and changed owfs.conf accordingly.

system works, but virtual file system shows strange results

:/mnt/1wire $ ls -l
drwxrwxrwx 1 root root 4096 Apr 23 11:46 28.0BA7052D1901
drwxrwxrwx 1 root root 4096 Apr 23 11:46 28.0BA7052D1901
drwxr-xr-x 1 root root 4096 Apr 13 21:58 alarm
drwxr-xr-x 1 root root 4096 Apr 13 21:58 bus.0
drwxr-xr-x 1 root root 4096 Apr 13 21:58 bus.1
drwxr-xr-x 1 root root 4096 Apr 13 21:58 settings
drwxrwxrwx 1 root root 4096 Apr 23 11:46 simultaneous
drwxr-xr-x 1 root root 4096 Apr 13 21:58 statistics
drwxr-xr-x 1 root root 4096 Apr 13 21:58 structure
drwxr-xr-x 1 root root 4096 Apr 13 21:58 system
drwxr-xr-x 1 root root 4096 Apr 13 21:58 uncached

the attached sensor is exposed in duplicate, also a 2nd bus, bus.1, is generated with the same content as bus.0. This is also true for the web interface.

With the help of abelectronics support
https://www.abelectronics.co.uk/forums/thread/303/owfs-duplicates
part of the problem was solved
by disabeling 1-wire support on the RaspberryPi via raspi-config and adding
ds2482 in /etc/modules

after reboot, there were still duplicates which can be removed by the command

sudo owfs --w1

made permenatly by

by adding "owfs --w1" to /etc/rc.local.

This leads to the result, that duplicates disappear, but /bus.1 is still generated, without relevant content. Same happens in the web interface.

Surpisingly owdir never reports duplicates.

owdir
/28.0BA7052D1901
/bus.0
/uncached
/settings
/system
/statistics
/structure
/simultaneous
/alarm

How can this different behavior of the package components be explained.

Is there a phyton3 package for owfs available.

Regards
h-wissing

Invalid argument MAX31850

I have communication throw I2C with my Raspberry Pi where is installed latest version of owfs.
Its using Alpine linux in docker (root system under the docker is Hypriot OS - debian).

I want to read temperature of MAX31850 which is connected into the DS2482 i2c to 1w converter.
I have 5 1w devices (each is MAX31850). Mounted directory via owfs is ok (/mnt/1wire/) and i see all 6 devices (3B.3E0B5909FC4C/ , 3B.740B5909FC4C/, 3B.490B5909FC4C/ , 3B.EB418803DC4C/, 3B.5F0B5909FC4C/).

If i read temperature on chip (cat /mnt/1wire/3B.EB418803DC4C/temperature) it shows correct temperature. But If I read temperature on thermocouple (cat /mnt/1wire/3B.EB418803DC4C/thermocouple) it gives me error "read error: Invalid argument".

Is it bug? Or something with thermocouple? I using K type thermocouple and also MAX31850 model for K type.

Thanks Mike

Problems with DS2482-800 in combination with DS2482-100

Hi

I use a DS2482-800 plus a DS2482-100 with a Raspberry Pi, Buster on a I2C bus. OWFS only finds the DS2482-800 on address 1C. The DS2482-100 on address 18 could not be found.

OWDIR:
root@BSR-PI1:~# owdir
/bus.7
/bus.6
/bus.5
/bus.4
/bus.3
/bus.2
/bus.1
/bus.0
/uncached
/settings
/system
/statistics
/structure

Abstract of debug protocol:
DEBUG: ow_parse_address.c:(71) All
CONNECT: ow_ds2482.c:(382) [Is a directory] Could not open i2c device /dev/.
CONNECT: ow_ds2482.c:(382) [Is a directory] Could not open i2c device /dev/..
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 18
DEBUG: ow_ds2482.c:(516) ok
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 18 cannot be reset. Not a DS2482.
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 19
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 19 cannot be reset. Not a DS2482.
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 1A
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 1A cannot be reset. Not a DS2482.
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 1B
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 1B cannot be reset. Not a DS2482.
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 1C
DEBUG: ow_ds2482.c:(516) ok
CONNECT: ow_ds2482.c:(426) i2c device at /dev/i2c-1 address 1C appears to be DS2482-x00
CONNECT: ow_ds2482.c:(703) DS2482-800 (Eight channels)
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 1D
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 1D cannot be reset. Not a DS2482.
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 1E
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 1E cannot be reset. Not a DS2482.
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 1F
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 1F cannot be reset. Not a DS2482.

If I plug out the DS2482-800 from my rapid prototyping port, the DS2482-100 is found by owserver:
CONNECT: ow_ds2482.c:(382) [Is a directory] Could not open i2c device /dev/.
CONNECT: ow_ds2482.c:(382) [Is a directory] Could not open i2c device /dev/..
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 18
DEBUG: ow_ds2482.c:(516) ok
CONNECT: ow_ds2482.c:(426) i2c device at /dev/i2c-1 address 18 appears to be DS2482-x00
DEBUG: ow_ds2482.c:(785) Channel select set error
CONNECT: ow_ds2482.c:(692) DS2482-100 (Single channel)
DEBUG: ow_ds2482.c:(676) Cannot set to port configuration -- not a DS2483
CONNECT: ow_ds2482.c:(396) Found an i2c device at /dev/i2c-1 address 19
CONNECT: ow_ds2482.c:(422) i2c device at /dev/i2c-1 address 19 cannot be reset. Not a DS2482.

Regards
Bernix

ds18b20, multiple temperatures

I just added a DS18B20 to my sensors and find multiple and different temperature files under OWFS, se below:

root@nilx:~# cat /ow/28.44F9FC050000/temperature; echo; cat /ow/28.44F9FC050000/temperature9; echo;cat /ow/28.44F9FC050000/temperature10; echo;cat /ow/28.44F9FC050000/temperature11; echo; cat /ow/28.44F9FC050000/temperature12;echo
1.4375
1.5
1.5
1.625
1.4375

what are the temperature9..temperature12 files and why are they different?
Thanks in advance
H

OWFS not starting on boot

Hi,

I am trying to use a RPi 3 to read some DS18S20 temperature sensors. It almost works but OWFS failed to start on boot.
The screenshot below displays my problem:
screenshot from 2018-11-12 14-38-21
The devices are only visible after "owfs start", this while owfs should have already been called because it is called inside rc.local. This also did not work.

Edit 1:
I made a mistake, my rc.local script was failing on another command. This caused OWFS to not start.
I fixed it by adding || /bin/true to the failing command.

owdir/owserver hangs after reconnecting device

After disconnecting and reconnecting one wire devices, owserver and owdir hang and do not update the device list anymore.

I am using a Raspberry Pi with w1 module and run owdir to see the list of connected devices. After disconnecting and reconnecting a device several or many times, owdir hangs. It returns after about 30 seconds, but does not show connected devices anymore. Recovery is only possible after reboot. Restarting owserver does not help. Same behaviour was observed with owfs and ls and with owcapi OW_get().

Raspberry Pi, owfs-3.2p4, kernel 4.19.113-v7 (Buildroot 2020.05.2)

Steps to reproduce:

  • owserver --pid_file /run/owserver.pid --w1 --port localhost:4304 --foreground --error_level=9 &> owserver.out
  • watch -n1 owdir
  • physically disconnect and connect one wire device many times
  • after several reconnects owdir takes 30 seconds to return and does not show
    connected device.

output from owserver: owserver.out.txt

Strange DS2482 implementation

While trying to get an emulation device working with owfs and the ds2482 protocol I was struggling to find out why it this implementation working. The data from the OW bus is never read using the specified command "DS2482_CMD_1WIRE_READ_BYTE " (defined but not even used), but somehow using the datapointer and writing 0xff.
The implementation always reads back the written bytes and also writes (0xff) first if the OW shall be read.
This seems to be a lot of overhead on the I2C bus always setting the read pointer and reading back each byte even if just the data shall be written.

If haven't found any hint in the datasheet, that this even even working with the DS2482. Only the read command 0x96 is reading data from the bus.
Can anyone feedback?
The code says it was "stolen" from the kernel module, but this (at least now -5 years later) looks different and compliant to the datasheet.

DS9490 slewrate problem

I have an Elektor design (DS2490+DS2751) based on Maxim/Dallas AN3874. It does not work with any OWFS release after 2.8p14, the DS2751 chip never gets detected. The standard linux kernel module ds2490 can detect the DS2751.

By reverting the commit 8eff440 I can get the latest release 3.2p2 working. Reading the datasheet I would argue that the commit is not correct. Default slew rate at power up for flexible speed is 0.83V/us, which was used before the commit. However different 1W network might require other values depending on impedance, termination, topography etc.

As a reference, looking at linux kernel module source it seems like the slew rate setting is never changed.

MAX31850 thermocouple read BUG

I am probably found a bug in thermocouple reading.

owread /uncached/3B.EB418803DC4C/thermocouple it returns 4.5625 but on reference thermocouple in multimeter is around 63°C.

Its connected like - K thermocouple to MAX31851 to DS2482 to I2C (RPI)

Debug data from reading:

--- OneWireQuery done
  DEBUG: ow_read.c:(226) /uncached/3B.EB418803DC4C/thermocouple returns 12
  DEBUG: ow_read.c:(103) /uncached/3B.EB418803DC4C/thermocouple return 12
  DEBUG: read.c:(81) ReadHandler: FS_read_postparse read on /uncached/3B.EB418803DC4C/thermocouple return = 12
OWQ OneWireQuery structure of /uncached/3B.EB418803DC4C/thermocouple
    OneWireQuery size=12 offset=0, extension=0
Byte buffer OneWireQuery buffer, length=12
--000: 20 20 20 20 20 20 20 34 2E 33 37 35
   <       4.375>
    Cleanup = 0006    OneWireQuery I=12 U=12 F=4.375 Y=12 D=Thu Jan  1 00:00:12 1970

--- OneWireQuery done
  DEBUG: read.c:(89) ReadHandler: FS_read_postparse ok size=12
  DEBUG: read.c:(100) ReadHandler: To Client cm->payload=12 cm->size=12 cm->offset=0
Byte buffer Data returned to client, length=12
-- NULL buffer
  DEBUG: data.c:(146) Read message done value=0x76d9e740
  DEBUG: ow_parsename.c:(63) /uncached/3B.EB418803DC4C/thermocouple
  DEBUG: data.c:(193) DataHandler: FS_ParsedName_destroy done
  DEBUG: data.c:(207) DataHandler: cm.ret=12
  DEBUG: to_client.c:(76) payload=12 size=12, ret=12, sg=0x10A offset=0
  DEBUG: data.c:(226) Finished with client request
  DEBUG: handler.c:(135) OWSERVER handler done
  DEBUG: ow_net_server.c:(259) Normal completion.

Setting Pulldown Slew Rate

Hello,
i use DS2482S-100 and DS2482-800 over i2c on a long bus. Is it possible to get and set the values
Pulldown Slew Rate: 1.37V/μs
Write-One Low Time: 11μs
Data Sample Offset/Recovery: 10μs
found on guidelines for long networks ? What default values are used ? Also put R-C filter in front, but currently random devices are not found.

Thanks in advance,
Christoph

run OWFS on Raspberry Pi with GPIO only

I'm trying to setup and run OWFS on openhabian running on Raspberry Pi 3B.
I have two DS18B20 temperature sensors connected to GPIO4.
If I understand the docs correctly I can use OWFS with W1 linux kernel module, without any extra hardware.
The problem is I get erros every time.
I have installed:

ow-shell 3.1p5-1
owserver 3.1p5-1
usbutils 1:007-4

Below is my /etc/owfs.conf:

# Sample configuration file for the OWFS suite for Debian GNU/Linux.
#
#
# This is the main OWFS configuration file. You should read the
# owfs.conf(5) manual page in order to understand the options listed
# here.

######################## SOURCES ########################
#
# With this setup, any client (but owserver) uses owserver on the
# local machine...
! server: server = localhost:4304
#
# ...and owserver uses the real hardware, by default fake devices
# This part must be changed on real installation
server: FAKE = DS18S20,DS2405
#
# USB device: DS9490
#server: usb = all
#
# Serial port: DS9097
#server: device = /dev/ttyS1
#
# owserver tcp address
#server: server = 192.168.10.1:3131
#
# random simulated device
#server: FAKE = DS18S20,DS2405
#
######################### OWFS ##########################
#
#mountpoint = /mnt/1wire
#allow_other
#
####################### OWHTTPD #########################

http: port = 2121

####################### OWFTPD ##########################

ftp: port = 2120

####################### OWSERVER ########################

server: port = localhost:4304

And this is the result of sudo service owserver status

● owserver.service - LSB: 1-wire TCP server
Loaded: loaded (/etc/init.d/owserver; generated; vendor preset: enabled)
Active: active (running) since Sun 2019-04-07 00:17:09 CEST; 3 days ago
Docs: man:systemd-sysv-generator(8)
Process: 515 ExecStart=/etc/init.d/owserver start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/owserver.service
└─645 /usr/bin/owserver -c /etc/owfs.conf --pid-file /var/run/owfs/owserver.pid

Apr 07 00:17:08 openHABianPi systemd[1]: Starting LSB: 1-wire TCP server...
Apr 07 00:17:08 openHABianPi OWFS[645]: DEFAULT: ow_daemon.c:(144) Entered background mode, quitting.
Apr 07 00:17:09 openHABianPi owserver[515]: Starting 1-Wire TCP Server: owserver.
Apr 07 00:17:09 openHABianPi systemd[1]: Started LSB: 1-wire TCP server.

If I understand correctly I should have fake server because I have no hash on line server: FAKE = DS18S20,DS2405

I've checked that I have connected my devices correctly because I see two folders when I go to /sys/bus/w1/devices

I'll be gratefull for help.

1-wire web for ds1991

I set up a 1-wire web for a ds1991 using a ds9490r usb.
Its giving the id of the adress type etc.
When i go to settings there are displayed the three id from the subkeys.
But when i fill in the correct password of id 0,1 or 2 the zeros stay the same from the pages (subkeys). Normally they give carbage when you fill in the wrong pass but here i only get zeros.
Has anyone a solution for this?

[SOLVED] Can't configure

Hi,
I have cloned repository and run this commands:

#!/bin/bash
./bootstrap
./configure --disable-owftpd --enable-owhttpd --enable-debian --enable-mt --disable-w1 --disable-usb --disable-i2c --disable-fuse --prefix=/usr
make -j4
make install

but it ends with error:

checking if usb support is enabled... no
./configure: line 16918: syntax error near unexpected token LIBUSB,' ./configure: line 16918: PKG_CHECK_MODULES(LIBUSB, libusb-1.0 >= 0.9.1, ENABLE_USB=true,ENABLE_USB=false)'
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target 'install'. Stop.

Why, when usb is disabled ?

my config:
dpkg -l "usb"

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                         Version                     Architecture                Description
+++-============================================-===========================-===========================-=============================================================================================
ii  libusb-0.1-4:amd64                           2:0.1.12-30                 amd64                       userspace USB programming library
ii  libusb-1.0-0:amd64                           2:1.0.21-1                  amd64                       userspace USB programming library
ii  libusb-dev                                   2:0.1.12-30                 amd64                       userspace USB programming library development files
un  usb-modeswitch                               <none>                      <none>                      (no description available)

uname -a

Linux gitlab 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux

Simultaneous temperature conversion from python

ive installed installed OWFS using apt-get install on my raspberry pi, ive got pyownet and python-ow, im trying to write data directly to several DS18B20 sensors, in order to reduce read time, im trying to send every sensor a convertT command ([44h]according to the data sheet) in order to have all the sensors begin the conversion process, and after the required conversion time, i would go back and read the results from every sensor. rather than waiting for every sensor to do the conversion, im trying to get all sensors to convert simultaneously. can anybody point me in the right direction to accomplish this with python?
thanks

Owget "memory" vs "pages/page.ALL" vs "pages/page.0"

I scanned the internet and read all kinds of documents. I'm sorry if this the wrong forum to ask, but I guess you are experts that might know.

I've written a DS1992 (1kbit memory, 128 bytes = 4 pages of 32 bytes) slave emulator using the "OneWireSlave" library from "youen/OneWireArduinoSlave" inspired by the example FakeDS18B20.

It's working and I'd like to use it as a wired alternative for my NRF24L01 arduino projects. However I don't understand the low level protocol byte difference between the following calls. Note that F0 is the command for read memory followed by TA1 and TA2 forming the the address offset:
owget /08.000000000002/pages/page.ALL => eventually results in command F0 60 00
owget /08.000000000002/pages/page.3 => eventually results in command F0 60 00
Both command bytes are identical but to my understanding the first call shoudl somehow return all 128 bytes and the 2nd call should return page 3 with 32 bytes

Something similar is happening here:
owget /08.000000000002/pages/page.0 => eventually results in command F0 00 00
owget /08.000000000002/memory => eventually results in command F0 00 00
First call should return page 0 with 32 bytes
Second call should return all memory, meaning 128 bytes (page 0-3)

For now I simply return 32 bytes for all calls, but that doesn't make sense.

Do you have any clue how the DS1992 would discriminate these calls?

Issues with configuration file using w1 protocol, and other issues

After having read #34 and #46 I have noted the following:
On my Raspberry Zero W, using Buster based Raspbian, I

  • could not use a configuration file for neither owfs nor owserver: for both server: w1 is ignored
  • needed to specify --foreground as additional parameter (in addition to --w1) in the service file of owserver to avoid protocol errors

I hope that can help others struggling to use the 1wire kernel module.

Problem installing owserver on Raspbian Buster

I'm trying to install owfs on a rpi running raspbian buster, but it fails. A bit of googling indicates this problem has been going on for a while, but I haven't been able to find a solution. Any help is appreciated.

`lage@templogger:~ $ sudo apt install owfs
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
owfs-doc
The following NEW packages will be installed:
owfs
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/9,248 B of archives.
After this operation, 25.6 kB of additional disk space will be used.
Selecting previously unselected package owfs.
(Reading database ... 40427 files and directories currently installed.)
Preparing to unpack .../owfs_3.2p3+dfsg1-2_all.deb ...
Unpacking owfs (3.2p3+dfsg1-2) ...
Setting up owserver (3.2p3+dfsg1-2) ...
Job for owserver.service failed because the service did not take the steps required by its unit configuration.
See "systemctl status owserver.service" and "journalctl -xe" for details.
invoke-rc.d: initscript owserver, action "start" failed.
● owserver.service - Backend server for 1-wire control
Loaded: loaded (/lib/systemd/system/owserver.service; disabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: protocol) since Sun 2020-02-02 15:56:39 CET; 277ms ago
Docs: man:owserver(1)
Process: 3901 ExecStart=/usr/bin/owserver -c /etc/owfs.conf (code=exited, status=0/SUCCESS)
Main PID: 3901 (code=exited, status=0/SUCCESS)

Feb 02 15:56:40 templogger systemd[1]: owserver.service: Service RestartSec=100ms expired, scheduling restart.
Feb 02 15:56:40 templogger systemd[1]: owserver.service: Scheduled restart job, restart counter is at 1.
Feb 02 15:56:40 templogger systemd[1]: Stopped Backend server for 1-wire control.
dpkg: error processing package owserver (--configure):
installed owserver package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of owfs:
owfs depends on owserver (>= 3.2p3+dfsg1-2); however:
Package owserver is not configured yet.

dpkg: error processing package owfs (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
owserver
owfs
E: Sub-process /usr/bin/dpkg returned an error code (1)
lage@templogger:~ $
`
Best regards,
Lage

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.