DS9490R-USB-Stick als OneWire-Busmaster auf dem Raspberry Pi einrichten mit OWFS/OWServer

IM EINSATZ?

Dann schau dir UNSEREN LOXKURS an und profitiere von unserem Wissen!

Seitdem Loxone bei mir werkelt, bin ich ein wahrer Fan von OneWire geworden. Über zwei OneWire-Extensions konnte ich bisher eine Vielzahl günstiger Sensoren in mein Smart Home integrieren. Allem voran weit mehr als ein Dutzend DS18B20-Temperatursensoren (Affiliate-Link), welche im Estrich installiert sind und nun Aufschluss über den ordnungsgemäßen Betrieb der einzelnen Heizkreise geben.

OneWire kann aber für viel mehr als nur zur Temperaturmessung genutzt werden und so möchte ich den OneWire-Bus künftig im Außenbereich erweitern, u.A. für die Anbindung von Bodenfeuchtesensoren per Arduino, der dabei selbst als virtueller OneWire-Sensor fungiert. Da mittlerweile sowieso ein Raspberry Pi als NodeRed-Server im Schaltschrank hängt, lässt sich die zusätzlich benötigte OneWire-Außenlinie auch mit dem günstigen DS9490R-USB-Stick (Affiliate-Link) realisieren. Wie die Konfiguration im Detail aussieht, damit der OneWire-Busmaster per OWFS/OWServer softwareseitig eingebunden und im Anschluss von FHEM oder NodeRed genutzt werden kann, ist Inhalt des nachfolgenden Blogpost.

DS9490R-USB-Stick als OneWire-Busmaster

Eine beliebte Möglichkeiten einen eigenständigen OneWire-Bus aufzubauen, ist der Hostadapter DS9490R USB – RJ12 (Affiliate-Link). Dieser wird direkt per USB angeschlossen und liefert neben dem OneWire-Signal gleich noch einen Anschluss für 5V, um Verbraucher zusätzlich mit Strom zu versorgen (nichtparasitärer Betrieb).

Laut Spezfikations-Dokument reicht die maximale Leistungsabgabe von insgesamt 25mA zwar für erste Tests aus, wer viele und vorallem stromhungrige Komponenten anschließen möchte, sollte aber besser direkt eine externe 5V-Stromversorgung einsetzen. Ich selbst nutze dazu das im Schaltschrank installierte 5V Hutschienennetzteil (Affiliate-Link) einfach mit, welches sowieso bereits den Raspberry Pi mit Strom füttert und noch Reserven hat. Damit hat man mehr als genug Saft zur Verfügung, um alle möglichen OneWire-Komponenten anzuschließen. In diesem Fall ist es natürlich wichtig die GND-Anschlüsse von Netzteil und OneWire-Busmaster zwecks Potentialausgleich zu verbinden.

Apropos Anschlüsse: Der RS9490R-Adapter besitzt einen RJ12-Anschluss mit 6 Pins. In der Doku ist von RJ11 (4 Pins) die Rede, was aber definitiv nicht korrekt ist. Das passende Kabel samt Steckern ist das hier: Wentronic Modular-Kabel (2x RJ12 Westernstecker, 6-polig, belegt) schwarz 3m (Affiliate-Link)

Schaut man auf die RJ12-Buchse des USB-Adapters, ist die Belegung von rechts nach links (Ausrichtung beachten!!):

1 – VDD – 5V DC Output -> Wird nur benötigt, wenn die OneWire-Sensoren direkt über die Stromversorgung des USB-Adapters versorgt werden sollen. — Wird gewöhnlich an der roten Sensor-Ader angeschlossen. –> weiss (RJ-12-Kabel)

2 – GND -> Wird bei externer 5V-Zuspeisung der Sensoren mit dem GND-Anschluss des Netzteils zwecks Potentialausgleich verbunden. –> braun (RJ-12-Kabel)

3 – OW – 1-Wire Data -> Datenleitung zum Anschluss der OneWire-Sensoren. — Wird gewöhnlich an der gelben Sensor-Ader angeschlossen. –> grün (RJ-12-Kabel)

4 – GND_OW – 1-Wire Retun -> Ground zum Anschluss der OneWire-Sensoren. — Wird gewöhnlich an der schwarzen Sensor-Ader angeschlossen. –> gelb (RJ-12-Kabel)

5 – SUSO – USB Suspend Output – Nicht benötigt. –> pink (RJ-12-Kabel)

6 – N.C. – No Connection – Nicht belegt. –> grau (RJ-12-Kabel)

Zum Anschluss lässt sich das oben verlinkte RJ12-Kabel perfekt nutzen. Das eine Ende wird mit dem verbliebenen RJ12-Stecker in den USB-Adapter selbst gesteckt und das andere Ende abisoliert, mit Adernendhülsen bestückt und zur weiteren Verteilung in die Reihenklemmen geführt.

Ist die Hardware installiert, geht es auf der Softwareseite weiter.

OWFS und OWServer installieren

Eingesetzt wird nachfolgend ein Raspberry Pi 3 (Affiliate-Link) mit Raspbian Stretch Lite. Grundsätzlich sollte das Vorgehen aber bei allen Linux-Distributionen ähnlich sein.

Bevor etwas installiert wird, sollte erstmal geprüft werden, ob der per USB eingesteckte RS9490R-Adapter vom System gefunden wurde. Also erstmal per SSH-Client auf dem RPI einloggen und alle USB-Devices auflisten:

lsusb

Die Ausgabe sollte dann einen solchen Eintrag aufweisen:

Bus 001 Device 006: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter

Hat das geklappt, werden die Paketquellen aktualisiert:

sudo apt-get update

Dann werden die notwendigen Pakete owfs und owserver installiert:

sudo apt-get -y install owfs owserver

Jetzt muss nur noch die Konfigurationsdatei owfs.conf angepasst werden:

sudo nano /etc/owfs.conf

Damit der USB-Adapter genutzt werden kann, muss die Zeile

server: usb = all

einkommentiert sein, also keine führende # davorstehen. Alle anderen mit „server“ beginnenden Zeilen müssen hingegen mit einer # auskommentiert sein/werden.

Die letzte Zeile muss dann auch noch einkommentiert bleiben und bedarf noch etwas Tuning:

server: port = 127.0.0.1:4304

„localhost“ muss also durch „127.0.0.1“ ersetzt werden, damit der Server später über dessen IPv4-Adresse angesprochen werden kann.

Nachdem die Konfigurationsdatei mit STRG +o gespeichert und mit STRG + x geschlossen wurde, muss der Dienst einmal neugestartet werden:

sudo systemctl restart owserver

Bei einem Reboot des Systems startet der Dienst übrigens automatisch mit. Hier bedarf es also keiner weiteren Anpassung.

Das Interface des OWServer ist ab sofort im Browser unter

http://IP_DES_RPI:2121

erreichbar. Alle am OneWire-Bus angeschlossenen Geräte werden dann im „directory“ als separete Einträge aufgelistet.

Bei OneWire braucht man also weder eine Form des Pairing, noch muss man die Geräte individuell konfigurieren. Hintergrund ist, dass jedes OneWire-Device eine individuelle Seriennummer besitzt und seinen OneWire-Devicetyp direkt mitliefert, sodass der Busmaster sofort erkennt, um welche Art von Sensordaten es sind handelt. Aus Anwendersicht also super simpel.

Mit einem Klick auf ein Device sollten dann auch die jeweiligen Messwerte angezeigt werden.

Obige Konfiguration dient dann als Grundlage für die Anbindung externer Plattformen wie FHEM oder NodeRED, die über den OWServer lokal oder auch über das Netzwerk auf die OneWire-Sensordaten zugreifen können.

Im Falle von FHEM reicht schon der Komandozeilen-Befehl:

define OneWireBusmaster OWServer localhost:4304

Alle an den OneWire-Busmaster angeschlossenen Geräte sollten dann automatisch per Autocreate angelegt werden. Wie es in NodeRED abläuft, wird in einem folgenden Blogpost erklärt.

Aus meinem täglichen Leben

Eigentlich war ich fast schon erschrocken darüber, wie einfach die Installation und Konfiguration von OWServer ablief. In wenigen Minuten hat man so bereits die Grundlagen für den Betrieb von fast beliebig vielen OneWire-Geräten gelegt (max. 100 pro Buslinie). Wer plant viele Geräten anzuschließen, sollte – wie oben kurz angesprochen – jedoch am besten sofort auf eine externe 5V-Stromversorgung zurückgreifen und nicht den vom Adapter bereitgestellten und recht schwachbrüstigen VCC-Anschluss nutzen.

Ich habe über den obrigen Weg jetzt bereits einige Temperatursensoren (u.A. in der Zisterne) in NodeRed integriert und werde das Setup in Kürze durch einen Bodenfeuchtesensor – Truebner SMT50 – erweitern, dessen analoge Sensorwerte (Datenblatt) von einem Arduino Nano (Affiliate-Link) ausgelesen werden, der selbst als virtueller OneWire-Sensor auftritt und die Messwerte dann in den OneWire-Bus übermittelt. Das ist gerade im Außenbereich super praktisch, da man im Grunde beliebig viele Bodenfeuchtesensoren über nur drei Adern anschließen kann. Einfach eine OneWire-Buslinie einmal quer durch den Garten legen und später beliebig viele Sensoren nachrüsten. Wie das alles funktioniert und wie die Messwerte dann schlussendlich von Loxone genutzt werden können, wird Inhalt eines folgenden Blogpost sein. Ein Stück der Vorarbeit ist mit dem OWServer jedenfalls schon mal geleistet.

13 Kommentare
  1. Der Bericht kommt mir sehr gelegen! 🙂 Aber vor allem die Ankündigung für deine Gartenbewässerung da ich, nach langer Überlegung wie ich es anstelle, nun auch Schrittweise damit anfange und es ähnlich wie du geplant habe (OWS, OneWire Netzwerk etc). Bei dir finde ich bestimmt noch die ein oder andere Verbesserung. Besonders die Bodenfeuchtesensor Anbindung mit Arduino und OneWire interessiert mich. Da hatte ich noch keine Idee. Grade die Preise für die Bodenfeuchtesensoren sind teilweise unverschämt. Leider auch die von dir verlinkten. Bisher hatte ich die VH400 im Auge: https://dvs-beregnung.de/Vegetronix-VH400-Bodenfeuchte-Sensor-2m-Kabel_kaufen was hälst du von denen? Die sind noch etwas günstiger.

    Grüße
    Dirk

  2. Hast du mal drüber nachgedacht das außen via WLAN zu machen?
    Also 1-Wire an arduinio und von da dann via WLAN nach z. B fhem?

  3. Kannst du bitte noch etwas näher darauf eingehen wie du die Temperaturen dann auf den Bus bekommst und wie diese in FHEM dargestellt werden? Um die Temperatursensoren an den Bus anzuschließen benötigt man noch ein IO Device. Was verwendest du da?
    Vielen Dank.

  4. Hallo,

    Aufgrund dieses Blogbeitrages habe ich bei mir auch diesen Busmaster (nur 20,-€ über eBay) installiert. Ich war auch sehr angetan davon, wie einfach die 1-Wire Sensoren (bisher nur Temperatur DS18B20 für 11,99€ das 10er-Pack über eBay) anzuschließen und in FHEM einzubinden sind.

    Ich bin allerdings mit den vielen (werden insgesamt mal so um die 60 Stück) installierten Sensoren doch schneller an die Grenzen dieses Busmasters gestoßen als ich gedacht hatte. Deshalb möchte ich meine Erfahrungen hierzu mitteilen.

    Laut Hersteller kann man an diesen Busmaster (nur) 20 Sensoren in einem max. 100m langem 1-Wire Bus anschließen. Nachdem ich munter Einen Sensor nach dem Anderen angeschlossen hatte war auf einmal bei 25 Stück Schluß. Weitere wurden nicht mehr erkannt. Ok, dachte ich: Vielleicht doch besser eine externe Stromversorgung anschließen (bis dahin hingen alle direkt am Busmaster). Und siehe da, ich konnte weitere Sensoren anschließen, aber bei 30 war dann endgültig Schluß. Die 100m waren da natürlich noch längst nicht überschritten (vielleicht 40m in Summe).

    Wer als ebenfalls viele Sensoren anschließen möchte sollte sich also gleich mehrere dieser Busmaster zulegen. Bei 20,-€ für 25-30 Sensoren trotzdem günstig. Im Moment habe ich 2 davon im Einsatz (der 3. ist unterwegs) am RaspberryPI und das funktioniert tadellos.

    Grüße
    Bernd

  5. Auch ich bin gerade auf dem Weg Richtung OneWire,
    mir stellt sich die Frage, ob man als Busmaster nicht auch einen Arduino (Naono oder ähnlich) verwenden kann?
    Hat da jeman vielleicht schon Erfahrungen mit oder sogar so ein Projekt in der Schublade?
    Gruß,
    Rüdiger

    1. Hallo Rüdiger,
      einen Arduino selbst habe ich zwar noch nicht versucht (sollte prinzipiell aber auch funktionieren), aber ich habe inzwischen auch 2 OneWire-Sensoren an einem Sonoff Basic (mit Tasmota) in Betrieb. Funktioniert ebenfalls tadellos. Außerdem habe ich schonmal testweise welche an einen D1 Mini angeschlossen. Auch das ging problemlos.

      Über eine maximale Anzahl von Sensoren kann ich allerdings noch nichts sagen.

      Gruß
      Bernd

  6. Hallo,

    diese Seite hat mir sehr geholfen, den OneWire-Busmaster mit 9 Temperatursensoren auf einem RasPI 3b+ einzurichten. Letztendlich hatte ich mit dem OWServer die Adressen der Sensoren und konnte die in openHAB eintragen um die Temperaturwerte dort anzuzeigen und zu speichern.

    Soweit so gut: irgendwann habe ich dann aber gesehen, das zwar der OWServer noch angezeigt wird aber nicht mehr die Sensoren. An der Hardware kann es nicht liegen, denn die Sensoren werden immer noch in openHAB richtig verarbeitet. Nur die Anzeige im OWServer ist verlustig gegangen.

    Nach mehrtägiger vergeblicher Fehlersuche wende ich mich in meiner Not an einen Fachmann zwecks hilfreichem Tipp.

    Gruß
    Mike

  7. Hallo Mike,

    ich habe inzwischen auch ein paar Probleme mit OW-Server in FHEM. Bei mir kommt es auch hin und wieder vor daß alle Temperaturmessungen sich verabschieden. Die Ursache habe ich auch noch nicht herausgefunden. Ein Reboot des RasPi und anschließender nochmaliger Neustart von FHEM hilft normalerweise. Falls auch das nicht hilft evtl. mal den USB-Adapter abziehen und neu stecken.

    Ich habe aber noch ein ganz anderes Problem mit OW-Server. Bei mir sind inzwischen ca. 70 DS18B20-Sensoren über 3 USB-Adapter an FHEM angebunden. Offensichtlich frißt das massiv Resourcen. Normale Bedienung über das FHEM WEB-IF ist kaum möglich. Auch konfigurieren ist dadurch quälend langsam. Wenn erstmal volle Bedienung genutzt werden soll kann das so nicht bleiben. Ziehe ich die USB-Adapter ab funktioniert alles wieder sehr schnell. AUch hier weiß ich nicht woran das liegt, ob an den USB-Adaptern oder an OW-Server.

    Ich habe hierzu schon einen alten Thread im FHEM-Forum wieder aktiviert, aber bisher noch keine Rückmeldungen.

    Vielleicht hat Jörg ein paar Ideen die was zur Lösung des Problems beitragen können.

    Gruß
    Bernd

    1. Hallo Bernd,

      vielen Dank für die Antwort. Seit 2 Tagen habe ich auch wieder die Anzeige der Sensoren im OW-Server. Eine genaue Erklärung habe ich dafür nicht. Habe den Raspi rebootet auch den OW-Server, hatte beides nichts gebracht. Vor zwei Tagen habe ich den USB-Adapter bzw. die dort angeschlossenen Sensoren abgehängt, da ich einen anderen Bus-Koppler testen wollte. Der ging aber nicht und ich habe die Sensoren wieder an den USB-Adapter angeschlossen. Kurz darauf bemerkte ich, dass die Sensoren wieder im OW-Server sichtbar waren. Ich vermute nun, das diese erneute Anklemm-Aktion den Erfolg brachte.

      Zu Deinem Problem mit der Geschwindigkeit kann ich leider nichts sagen. Habe noch keine 10 1-wire-Sensoren im Einsatz und somit noch kein Ressourcen-Probleme. Kann vielleicht aber noch kommen, da ich noch ca. 20 weitere Kombisensoren (Temperatur/Luftfeuchte) anschließen will.

      Versuche gerade – allerdings noch vergeblich – einen „1-Wire Buskoppler USB Pro“ von der Fa. Esera zu integrieren. Ich will testweise ein „1-Wire Dual S0 Zählermodul PRO“ ausprobieren. Habe im Haus ca. 15 Leistungsmesser mit S0-Schnittstelle, die ich über das Zählmodul auswerten will.

      Viele Grüße
      Mike

  8. Ich verwende einen DS9490R mit diversen DS18B20 und einem Dual S0 Zählermodul zum Auslesen meiner Wasseruhren mit OWServer und FHEM in einer Esxi VM. Das funktioniert so weit recht gut. Allerdings habe ich sehr oft freezes von 1-2s, die mich sehr stören. Habt Ihr so etwas auch erlebt, oder habe ich noch eine falsche Einstellung die FHEM kurzzeitig lahmlegt?

  9. Hallo zusammen,

    wie schon weiter oben beschrieben hatte ich zum Einen ab und zu das Problem das der Busmaster stehengeblieben ist und ich dann keine Daten mehr in FHEM bekam und zum Anderen das FHEM kaum noch bedienbar war. Die Ursache scheint am OW-Server Modul in FHEM zu liegen. Irgendwo im FHEM-Forum gab es einen Hinweis darauf das jedes Mal beim (asynchronen) Lesen der Daten vom Busmaster ein neuer „FHEM Kind-Prozeß“ gestartet wird. Bei 70 Sensoren ist ein RaspberryPi wohl vollkommen überlastet und stellt dann quasi den Betrieb ein, bzw. eine Bedienung ist kaum mehr möglich.

    Da offensichtlich am OW-Server Modul nichts grundlegend geändert wird habe ich mich nun komplett von den USB-Busmastern verabschiedet und alles auf Wemos D1-Mini’s umgestellt. Seitdem klappt es hervorragend und FHEM hat auch keine Performance-Probleme mehr.

    Ein D1-Mini kann zwar nur 8 Onewire Sensoren verarbeiten, aber dafür kostet der auch nur ca. 2,-€ (direkt aus China). Außerdem ist man damit vollkommen unabhängig von irgendwelchen Kabelverbindungen (USB) zum RaspberryPi da der D1-Mini schon ein WIFI-Modul an Bord hat.

    Die D1-Mini’s sind mit Tasmota geflashed und liefern ihre Daten per MQTT (MQTT2-Server) an FHEM was die Ankopplung absolut einfach macht.

    Mein Fazit:
    Der DS9490R-USB-Stick als OneWire-Busmaster funktioniert zwar, ist aber eher nur für wenige Sensoren in FHEM zu gebrauchen. Für größere One-Wire Installationen mit FHEM auf einem RaspberryPi ist er hingegen (zumindest im Moment) unbrauchbar. Deshalb werde ich meine 3 Sticks auch wieder verkaufen.

    Bei mir laufen inzwischen fast 80 DS18B20-Sensoren auf 10 Stück D1-Mini ohne Probleme.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte dir auch gefallen