OWFS is an easy way to use the powerful 1-wire system of Dallas/Maxim. OWFS is a simple and flexible program to monitor and control the physical environment. You can write scripts to read temperature, flash lights, write to an LCD, log and graph, ...
Die Software mit Quellen erhält man hier :
Ein vorher per "apt-get" installiertes OWFS wird durch eine eigene Compilierung leider nicht ersetzt. Ein per "apt-get" installiertes OWFS muß manchmal entfernt werden, da es manchmal nicht spielt. Der Abruf mit dem Web-Interface funktioniert, aber sonst nichts. Wenn die "apt-get" Installation funktioniert : umso besser !
Wenn nicht :
Entfernen einer "alten", per "apt-get" installierten Version
Folgende Kommandos sollten eine "apt-get" installierte Version erst einmal entfernen :
$ sudo apt-get remove owfs # sollte funktionieren, falls nicht komplett weiter :
$ sudo apt-get purge owfs
$ sudo apt-get autoremove
Allerdings wird es dann noch unschöne System-Meldungen geben. "apt-get" und "dpkg" interagieren noch irgendwie im Hintergrund. Es mag genügen, nur eine Option anzugeben. Welche Option die beste ist, ist noch unklar. Deswegen einfach mal alle 3 Optionen durchlaufen lassen. Was beim Neustart bleibt, aber wohl keinen Schaden anrichtet :
owserver : No such file or directory
owftd : No such file or directory
owhttpd : No such file or directory
Auch beim Herunterfahren gibt es noch etwas Schmutz.
Den unschädlichen "Schmutz" kann man mit etwas Handarbeit entfernen.
$ dpkg -l ow\*
listet, was noch im System vorhanden ist. Man sieht dann so etwas wie
rc owfs-common 2.8p15-1 all common files used by any of the O
rc owserver 2.8p15-1 armhf Backend server for 1-Wire control
then you where not able to purge everything (rc means removed but configured, i.e. no binary but only config files.)
If you would like to wipe out everything go with "apt-get purge owserver” and so on.
To avoid this situation the correct sequence is
apt-get purge owfs
apt-get autoremove --purge
But I would stay on the safe side and avoid the "autoremove --purge” and instead using explicit purge commands after listing what was effectively installed.
Compilieren und installieren der aktuellen OWFS Version
Zur Vorbereitung der Compilierung müssen alle möglichen Hilfesprogramme installiert werden.
Die Liste stammt "irgendwo" aus dem Internet. Vielleicht gibt es ja auch die Möglichkeit, in den Quellen zu erkennen, welche Pakete notwendig sind.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install automake
sudo apt-get install gcc-4.7
sudo apt-get install libtool
sudo apt-get install libusb-dev
sudo apt-get install libfuse-dev
sudo apt-get install libi2c-dev
sudo apt-get install tcl8.5-doc
sudo apt-get install tcl8.5-dev
sudo apt-get install swig
sudo apt-get install dh-php5
sudo apt-get install libusb-1.0-0-dev
In Raspian "Buster" enthalten :
Fragwürdig : python2.7-dev, kernel-headers-x.x.xx (in my case 2.4.27-2-386)
# teilweise wird auch noch python2.6-dev und tcl8.4-dev vorgeschlagen
# Inspiration auch hier : http://wiki.m.nu/index.php/OWFS_with_i2c_support_on_Raspberry_Pi_(English_version) )
# get the latest OWFS
pi@pi3:~ $ cd /usr/src
pi@pi3:/usr/src $
pi@pi3:/usr/src $ sudo git clone https://github.com/owfs/owfs
Klone nach 'owfs' ...
remote: Enumerating objects: 45789, done.
remote: Total 45789 (delta 0), reused 0 (delta 0), pack-reused 45789
Empfange Objekte: 100% (45789/45789), 8.00 MiB | 478.00 KiB/s, Fertig.
Löse Unterschiede auf: 100% (38200/38200), Fertig.
Checke Dateien aus: 100% (959/959), Fertig.
pi@raspx3:/usr/src $
pi@pi3:/usr/src $ cd owfs
pi@pi3:/usr/src/owfs $
## alt : cd owfs<TAB> # vervollständigt die Zeile, z.B. zu owfs-2.9p9
pi@pi3:/usr/src/owfs $ sudo ./bootstrap
pi@pi3:/usr/src/owfs $ sudo ./configure
Current configuration:
Deployment location: /opt/owfs
Compile-time options:
USB is enabled
AVAHI is DISABLED
I2C is enabled
W1 is enabled
Parallel port DS1410E is enabled
FTDI (LinkUSB) is DISABLED
Zeroconf/Bonjour is enabled
uthash is DISABLED
Debug-output is enabled
Mutexdebug is enabled
Profiling is DISABLED
Tracing memory allocation is DISABLED
Module configuration:
owlib is enabled
owshell is enabled
owfs is enabled
owhttpd is enabled
owftpd is enabled
owserver is enabled
owexternal is enabled
ownet is enabled
ownetlib is enabled
owtap is enabled
owmon is enabled
owcapi is enabled
swig is enabled
owperl is enabled
owphp is DISABLED
owpython is enabled
owtcl is enabled
unit tests are DISABLED
pi@pi3:/usr/src/owfs $
pi@pi3:/usr/src/owfs $ sudo make # dauert eventuell lange
pi@pi3:/usr/src/owfs $ sudo make install # dauert einige Minuten und installiert die OWFS Programme nach /opt/owfs.
# Hat es geklappt ?
pi@pi3:/usr/src/owfs $ sudo /opt/owfs/bin/owfs --version # 2019-04-11, 2019-08-17
/opt/owfs/bin/owfs version:
3.2p3
libow version:
3.2p3
# Was geht ?
$ sudo /opt/owfs/bin/owfs -h
1-WIRE access programs by Paul H Alfille and others.
Syntax: /opt/owfs/bin/owfs [options] device mountpoint
Help resources:
/opt/owfs/bin/owfs --help This page
/opt/owfs/bin/owfs --help=device Bus master device options
/opt/owfs/bin/owfs --help=error List of error return codes
/opt/owfs/bin/owfs --help=program Program services (mountpoint, port)
/opt/owfs/bin/owfs --help=cache Cache and communication timing
/opt/owfs/bin/owfs --help=job Job control and debugging
/opt/owfs/bin/owfs --help=temperature Temperature scale and device format options
man /opt/owfs/bin/owfs man page for this program
and man pages for individual 1-wire devices e.g. 'man DS2409'
Copyright 2003-8 GPLv2 by Paul Alfille. See http://www.owfs.org for support, downloads
# Um die Sache besser zu verstehen, kann man mit den beiden folgenden Kommandos
# jeweils einen Server in einem eigenen (Putty) Terminal-Fenster starten
# OWFS Server starten auf OWFS IANA Standard Port 4304, 1 Wire Adapter auf USB
# "--foreground --debug" sorgt dafür, daß man in den Terminal Fenstern was sieht.
$ sudo /opt/owfs/bin/owserver -p 4304 -d /dev/ttyUSB0 --foreground --debug
# OWFS http Server starten, liest port 4304 aus (siehe oben) und gibt aus auf Port 2121
$ sudo /opt/owfs/bin/owhttpd -s 4304 -p 2121 --foreground --debug
# Dann kann man in jedem Browser auf dem Raspi auf dem Port 2121 sehen, was läuft :
# In crontab eintragen, damit die beiden Server nach dem Starten (reboot) automatisch aufgerufen werden
$ crontab -e
# folgende zwei Zeilen (s.o.) am Ende einfügen :
@reboot /opt/owfs/bin/owserver -p 4304 -d /dev/ttyUSB0
@reboot /opt/owfs/bin/owhttpd -s 4304 -p 2121
# dann : $ sudo reboot
# Sollte klappen, :-)
In einigen Anleitungen wird auch gerne noch angegeben :
--allow_other > /dev/null 2>&1
Noch nicht ganz klar, was das bringt ? Normalerweise ist es doch interessant die Meldungen der Applikation zu haben, wenn etwas schief geht. Und der Default sollte sein, daß Meldungen nicht unterdrückt werden ! Da gibt es noch etwas Forschungspotenzial ! ;-)
Und nun etwas Philosophie, :-)
OWFS ist toll, so wie es ist. Wenn jemanden der Wissensdrang treibt, könnte man/frau natürlich anhand der Quellen alle Infos kriegen, die man überhaupt nur kriegen kann, ;-) . Vielleicht geht das, was im Folgenden gewünscht wird, schon "irgendwie". Bei der Zusammenstellung der zur Kompilierung erforderlichen Pakete fällt auf, daß die Warnungen/Fehlermeldungen, die da beim Compilieren und Installieren so auftreten, immer mal ein bischen anders aussehen. Also nichts für Leute, die ein Kompilieren mit 0 Warnungen/Fehlern erwarten. Und auch die Kompilierung sieht, abhängig vom darunterliegenden Linux, immer mal ein bischen anders aus. Solange alles funktioniert, sind das ja auch nur Kapriolen.
Dies ist eine Sammlung von Wünschen an OWFS. Wenn OWFS per "apt-get" installiert wird, kann man ja hier konfigurieren : Default configuration file (/etc/owfs.conf). Aber nur dann. Anders sieht das aus, wenn man "zu Fuß" installiert.
Hier ist die ewige Liste, die vielleicht mal irgendwann an die OWFS-Entwicklergemeinde geht, schon brav auf ausländisch, wenn die Antworten vorher nicht schon von selber aufpoppen :
>>>##############################
Statistics
The statistics are nice to see. Anyhow, I did not find something like
OWFS uptime : 120 days, 18 hours
# Sensors : 10
Sensor Alias hex total read error
Outside 10.34mmmmm 34.504 4
Cellar 10.hhhhh 35.604 20
Living room 10.kkkkk 25.578 17
.....
Would be really nice
Initialisation/document file
Format of an Ini File : http://en.m.wikipedia.org/wiki/INI_file
A file named owfs.ini should contain :
Also the last used commandline should be listed.
When owfs starts, it should check for the owfs.ini file, and create it, should it not already be there. It could have the syntax of the well known .ini files. If an alias is given for a sensor, this alias should be used. Changes to alias names should be tracked here. The presence and location of that .ini file should be shown in the port 2121 web page. It should be possible to retrieve the aliases from the OWFS server.
The file owfs.ini can be deleted at any time without further functional consequences. It will be rebuild automatically.
85 Degree error message
TBD
>>>##############################
Lazarus, bzw. Pascal
Es gibt die Quellcode, um den owserver direkt aus Lazarus/Pascal/Delphi abzufragen :
http://owfs.cvs.sourceforge.net/viewvc/owfs/owfs/module/ownet/pascal/