In meinem Beitrag vom November „Mit Perl Skript 1-Wire Temperatursensor DS18B20 am Raspberry Pi abrufen“ habe ich beschrieben, wie man ohne großartige Software einen Temperatursensor des Modells DS18B20 per Skript abrufen kann. Mittlerweile bin ich aus dem Ultra-Alpha-Stadium (Ausnahme bildet hier die Verkabelung (da bin ich echt nicht gut drin)) raus und habe auf einen DS9490R und mehrere DS18B20 umgerüstet.
Hierbei bin ich auf ein paar Probleme gestoßen. Wie man Temperatursensoren noch ansteuern kann, möchte ich hier kurz erläutern. Meine Anleitungen basieren ab sofort auf dem DS9490R, es scheint hier ein paar Unterscheidungen zu der GPIO-Variante zu geben.
Variante 1: OWFS
Unter Archlinux lässt sich OWFS (1-Wire Filesystem) einfach über Pacman installieren. Nachdem man sich einen Mountpoint angelegt hat, lässt sich der 1-Wire Bus über folgenden Befehl einbinden:
owfs --allow_other -a alias.txt -u /mnt
Ich mounte immer als Root, deshalb empfiehlt sich der an FUSE durchgereichte Parameter „–allow_other“. Mit der Option „-u“ teilt man OWFS mit, dass er den DS9490R als Quelle verwenden soll. Mein absoluter Favorit bildet die Option „-a“, die es ermöglicht menschenfreundliche Namen hinter den IDs zu hinterlegen. Im eingebundenen Verzeichnis finden sich dann nicht mehr die kryptischen IDs, sondern die entsprechenden Namen. Weitere Informationen findet man in der ausführlichen Onlinehilfe. Zusätzliche Optionen habe ich bisher nicht benötigt. Zugriff ergibt sich dann z.B. über cat:
[[email protected] ~]$ cat /mnt/$NAME_DES_SENSORS/temperature; echo 20.4375 [[email protected] ~]$
Die Temperatur wird immer eine gewisse Zeit – ich nenne es mal so – gecached. Ich teste immer ob ich den richtigen Sensor habe, in dem ich Ihn anhauche – da braucht man unter Umständen einen etwas längeren Atem. 😉
Variante 2: OWServer
Ich führe explizit den OWServer auf, da er im Zusammenspiel mit FHEM (Super Anleitung) genutzt wird. Es gibt aber auch noch weitere Usecases. So lässt sich OWFS auf einen OWServer verbinden, der im Netzwerk bereit steht. Es ergibt sich zum Beispiel der Anwendungsfall, dass die Verbindung nicht unbedingt kabelgebunden (über 1-Wire) erfolgen muss. Über den OWServer lässt sich auch direkt über meine Lieblingssprache Perl programmieren (auch über USB direkt möglich).
Variante 3: OWhttp
Die Oberfläche von OWhttp würde ich jetzt nicht gerade als „fancy“ bezeichnen, aber es passt irgendwie zu 1-Wire: stabil und funktional. Hier lassen sich alle Werte auslesen und gegebenenfalls auch setzen.
Anzeige eines DS18B20 über OWHTTP
Pingback: Raspberry Pi + node.js | Pearltrees