1-Wire

Aus FhemWiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

1-Wire

Beschreibung

Die 1-Wire-Komponenten sind drahtgesteuerte Sensoren und Aktoren, ursprünglich entwickelt von Dallas Instruments (inzwischen Maxim). Besonderheit ist, dass jeder Sensor nur über drei Leitungen versorgt wird: Masseleitung (GND), Stromversorgung (VDD, meist 5 V, Datenblatt beachten) und eine Datenleitung (DQ), dabei kann in den meisten Anwendungsfällen ohne weitere Komponenten sogar auf die Stromversorgung verzichtet werden, weil sich die Sensoren aus der Datenleitung über einen eingebauten Kondensator versorgen. Darüber hinaus können bis zu ca. 100 Sensoren/Aktoren auf einer einzigen bis zu 100 m langen Datenleitung (Bus) liegen. Theoretisch ist es also möglich, durch einen einzigen langen Klingeldraht ein ganzes Haus mit Sensoren zu überziehen. In der Praxis hat sich statt Klingeldraht ein 4-adriges Telefonkabel bzw. ein NF-Kabel mit 2 Adern und Abschirmung bewährt.

Komponenten

Beispiele für 1-Wire-Komponenten sind

  • Temperatursensoren der Typen DS18S20, DS18B20 sind der klassische Anwendungsfall. Die nur ca. 0.5 cm großen und nur ca. 5 € teuren Sensoren lassen sich unauffällig platzieren und verfügen über einprogrammierbare Alarmtemperaturen.
  • A/D-Wandler z.B. des Typs DS2450. Sie können sehr leicht dazu eingesetzt werden, analoge Sensoren per 1-Wire Bus abzufragen, z.B. Feuchtigkeitssensoren mit linearem Spannungsausgang.
  • Schaltaktoren z.B. des Typs DS2406. Diese können natürlich nur geringe Leistungen schalten, sind also in der Regel um Lastrelais zu ergänzen.
  • Ladezustandssensoren für Akkumulatoren, incl. Strommessung und Temperaturerfassung.
  • EEPROMS, EPROMS und "Hardware-Seriennummern" mit Speichergrößen bis zu 10 kBit.
  • Kombisensoren, bei denen in der Regel andere Anbieter komplexere Schaltungen realisieren, vgl. z.B. den kombinierten Temperatur-/Feuchtigkeits-/Helligkeitssensor AMS-THS-2IO-A10-211-BRK

Kommunikationsschnittstelle

Die Summe aller 1-Wire Komponenten an einer Datenleitung bezeichnet der Hersteller Maxim als Mini-LAN. Damit jeder Sensor einzeln ansprechbar ist, verfügt er über eine nur einmal vorkommende Hardware-Adresse, bestehend aus 8-Bit Familien-Id (=Sensortyp), 48 Bit Id-Code und 8 Bit Prüfsumme (CRC). Das Interface, welches den 1-Wire-Bus ansteuert, findet zunächst mit einem speziellen Such-Algorithmus heraus, welche Sensoren auf dem Bus vorhanden sind. Dazu werden alle Sensoren aufgefordert, das erste Bit ihrer Id zu senden, nach einer Pause das Komplement des ersten Bit. Das Interface kennt daher das Exklusiv-Oder aller ersten Bits aller Sensoren, tastet sich auf diese Weise bis zum 64. Bit hoch und entfernt auf in jedem Schritt durch Senden eines Bits einen der Sensoren aus der Suche.

Nachdem alle Sensoren gefunden wurden, kann jeder durch das Senden seiner 64-Bit-Adresse angesprochen und mit einem speziellen Befehl versehen werden - etwas zum Auslesen seiner Daten oder zur Programmierung.

Der 1-Wire Bus mit seinen Sensoren und Aktoren ist über ein Interface an einen Computer angeschlossen. Hierzu sind folgende Typen gebräuchlich:

  • DS2480(B) ist ein Bus-Master-IC, der einen kompletten 1-Wire Bus an ein serielles Signal ankoppelt, dabei Teile des Timing sowie des Suchalgorithmus übernimmt. Dieser Schaltkreis ist Bestandteil vieler anderer aktiver Interfaces.
  • DS2490 ist ein Bus-Master-IC, der einen kompletten 1-Wire Bus an einen USB-Port ankoppelt, dabei Teile des Timing sowie des Suchalgorithmus übernimmt.
  • DS9097 ist ein passives Interface, bestehend nur aus ein paar Schottky- und Zenerdioden, einem Widerstand und einem Kondensator, mit dem die 1-Wire Komponenten aus einer seriellen RS-232- Schnittstelle angesteuert werden. Dabei wird eine Spannungsversorgung realisiert, indem die RTS/CTS-Signale der Schnittstelle "gestohlen" und gesammelt werden. Der 1-Wire-Suchalgorithmus muss bei dem DS9097-Interface vollständig im ansteuernden Computer realisiert werden.
  • DS9097U ist ein aktives Interface (basierend auf dem DS2480B), welches die serielle RS-232-Schnittstelle eines Computers an den 1-Wire-Bus ankoppelt.
  • USB9097 ist eine Version des DS9097U für den USB-Port.


Hinweise zum Betrieb mit FHEM

Es gibt vier Möglichkeiten, 1-Wire Sensoren mit FHEM zu verbinden

CUNO

Der CUNO, siehe CUN, d.h. die Netzwerk-Version des Funk-Transceivers, verfügt über einen Anschluss für 1-Wire Temperatursensoren. Die genaue Vorgehensweise zum Einbinden der Sensoren ist auf CUNO und 1-wire beschrieben. Die Firmware des CUNO bildet den 1-Wire-Bus auf das Homematic-System ab.

OWFS

Das 1-Wire Filesystem [OWFS] besteht aus Client- und Server-Software, die den 1-Wire-Bus ähnlich wie ein netzwerktransparentes Dateisystem anderen Computern zur Verfügung stellt. Suchalgorithmus und regelmäßige Abfrage werden vom OWFS durchgeführt und zwischengespeichert, so dass FHEM lediglich mit dem Modul OWFS.pm auf diese zwischengespeicherten Werte zugreifen muss. OWFS verlangt allerdings die Installation von binären Programmen auf dem Rechner, den FHEM benutzt - diese Programme stehen nicht immer für die gesuchte Plattform zur Verfügung.

Während OWFS.pm für die Verbindung mit dem 1-Wire-Bus zuständig ist, sind andere Module für die Umrechnung und Darstellung der gelesenen Werte zuständig, z.B. OWTEMP.pm für Temperaturen.

OWX

An Computer mit serieller Schnittstelle bzw. an einen USB-Port kann auch eines der oben beschriebenen Interfaces direkt angeschlossen werden. Hierzu ist in der FHEM-Distribution (Unterverzeichnis contrib/1-Wire) das Modul 00_OWX.pm für die direkte Ansprache des 1-Wire-Bus enthalten. Dafür gibt es derzeit bereits 5 Module:

  • 21_OWTEMP.pm - zur Abfrage von 1-Wire Temperatursensoren
  • 21_OWAD.pm - zur Abfrage eines 4-Kanal A/D-Konverters (z.B. für den Anschluss eines Feuchtigkeitssensors)
  • 21_OWCOUNT.pm - zur Abfrage eines DS2423 Event-Counters/Speichers
  • 21_OWLCD.pm - zur Ansteuerung eines LC-Displays mit bis zu 4x20 Zeichen
  • 21_OWID.pm - zur Abfrage von 1-Wire ID-Chips (oder unbekannter 1-Wire Devices)

Das in diesem Unterverzeichnis stehende OWTEMP.pm kann auch mit dem OWFS-Modul zusammenarbeiten.

Langfristig sollen alle Gerätemodule mit den verschiedenen Adaptermodulen zusammenarbeiten.

ECMD Device

Anschluss an ein geeignetes ECMD Gerät, beispielsweise den AVR-NET-IO oder das Webmodul von Ulrich Radig mit der Software Ethersex bzw. Ethersex, alte Website die alle auf der Basis eines AVR Microcontrollers der Fa. Atmel arbeiten. Die Ethersex Firmware übernimmt dabei das 1-Wire-Protokoll, sodass man auf OWFS usw. verzichten kann. Außerdem kann der Anschluss des 1-Wire-Busses unabhängig vom Rechner erfolgen, auf dem Fhem läuft, da das mit Ethersex bestückte Gerätchen über Ethernet oder (bei Zwischenschalten eines WLAN-Accesspoints, der den 'Client-Modus' unterstützt) auch über WLAN angesprochen werden kann. Bei beiden Geräten sind für 1-Wire nutzbare Ports (Webmodule ggf. mit Modifikation der Widerstandswerte eines AD-Ports) bereits mit Schraubklemmen ausgestattet, außerdem gibt es 5V und GND beim AVR-NET-IO ebenfalls als Schraubklemmen.

iButton

Dabei handelt es sich um eine Familie von Sensoren in flachen Metallgehäusen, ähnlich einer Knopfzelle, die mittels 1-Wire Bus oder via RFID adressiert werden können.

Links

  • Hersteller Maxim[1]
  • Wikipedia 1-Wire [2]
  • 1-Wire Filesystem [3]
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge