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

Loxone 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.

Loxone im Einsatz? Dann schau dir unseren LoxKurs an und profitiere von unserem Wissen!

Verpasse keine Inhalte mehr! Trage dich in den Newsletter ein und folge uns auf Facebook.

Was ist ein Affiliate-Link? Wenn du auf einen Affiliate-Link klickst und ├╝ber diesen Link einkaufst, bekomme ich vom betreffenden Online-Shop oder Anbieter eine Provision, was mich u.A. bei den laufenden Kosten den Blogs unterst├╝tzt. F├╝r dich ver├Ąndert sich der Preis nicht.

J├Ârg

hat meintechblog.de ins Leben gerufen, um seine Technikbegeisterung und Erkenntnisse zu teilen. Er ver├Âffentlicht regelm├Ą├čig Howtos in den Bereichen Smart Home und Home Entertainment. Mehr Infos

13 Gedanken zu „DS9490R-USB-Stick als OneWire-Busmaster auf dem Raspberry Pi einrichten mit OWFS/OWServer“

  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. 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.

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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?

  8. 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