FHEM und 1-Wire

Aus FHEMWiki
Version vom 10. Mai 2013, 21:44 Uhr von Generix (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Es gibt viele Möglichkeiten, 1-Wire Komponenten mit FHEM zu verbinden = OWX = Das Modul 00_OWX.pm aus dem Unterverzeichnis contrib/1-Wire der FHEM-Distributio…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Es gibt viele Möglichkeiten, 1-Wire Komponenten mit FHEM zu verbinden

OWX

Das Modul 00_OWX.pm aus dem Unterverzeichnis contrib/1-Wire der FHEM-Distribution kann eingesetzt werden, um

  • direkt von FHEM erreichbare serielle bzw. USB-Interfaces für 1-Wire,
  • eine COC-Erweiterung des RaspBerry Pi,
  • einen [[CUNO und 1-wire]] oder
  • einen [[Arduino mit OneWireFirmata]]

anzusteuern.

Vorteil der direkten Interfaces ist der geringe Energiebedarf unabhängig von Netzwerken. Vorteil des CUNO ist, dass der 1-Wire-Bus unabhängig vom FHEM-Rechner läuft und beliebig weit von diesem entfernt sein kann.

Das Modul 00_OWX.pm ist ein Backend, das auf dem 1-Wire-Bus verschiedene Low-Level Kommunikationsfunktionen ausführt. Diese werden aufgerufen durch verschiedene weitere Module, die dann für die einzelnen 1-Wire Komponenten zuständig sind. Derzeit existieren 6 solcher Module, ebenfalls im Unterverzeichnis contrib/1-Wire

  • 21_OWTHERM.pm - zur Abfrage von 1-Wire Temperatursensoren der Typen DS1820, DS18S20, DS18B20, DS1822
  • 21_OWAD.pm - zur Abfrage eines 4-Kanal A/D-Konverters DS2450 (z.B. für den Anschluss eines Feuchtigkeitssensors)
  • 21_OWCOUNT.pm - zur Abfrage eines Event-Counters/Speichers DS2423
  • 21_OWSWITCH.pm - zur Abfrage eines programmierbaren Schalters DS2413, DS2406 oder DS2408
  • 21_OWMULTI.pm - zur Abfrage eines Multi-Sensors DS2438
  • 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 OWTHERM.pm kann auch mit dem OWFS-Modul zusammenarbeiten und ersetzt dabei das alte OWTEMP.pm Langfristig sollen alle Gerätemodule mit den verschiedenen Adaptermodulen zusammenarbeiten.

COC

Der COC ist eine Erweiterung des Raspberry Pi, um diesen mit einer 868 MHz-Funkschnittstelle und einer Echtzeituhr auszustatten. Der COC verfügt über einen Anschluss für 1-Wire Komponenten. Die genaue Vorgehensweise zum Einbinden der Sensoren ist auf COC und 1-wire beschrieben. Die Firmware des COC kann 1-Wire Temperatursensoren (und nur diese !) auf das HomeMatic-System abbilden. Für den Betrieb anderer 1-Wire-Komponenten am COC ist das Modul OWX.pm erforderlich.

CUNO

Der CUNO ist eine Variante des CUNO und 1-wire beschrieben. Die Firmware des CUNO kann 1-Wire Temperatursensoren (und nur diese !) auf das HomeMatic-System abbilden. Für den Betrieb anderer 1-Wire-Komponenten am CUNO ist das Modul OWX.pm erforderlich.

Vorteil des CUNO ist, dass der 1-Wire-Bus unabhängig vom FHEM-Rechner läuft und beliebig weit von diesem entfernt sein kann. Nachteil ist, dass in der normalen Firmware eine Einschränkung auf 10 1-Wire-Komponenten vorhanden ist.

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. Derzeit ist aber bei Verwendung von OWFS von FHEM aus nur die Messung von Temperaturen möglich, es wird nur entweder das alte Modul OWTEMP.pm aus dem Hauptverzeichnis von FHEM oder das OWTHERM.pm aus contrib/1-wire unterstützt.

Alternativ können die Module OWServer und OWDevice verwendet werden. Siehe OWServer & OWDevice.

ECMD

Hier erfolgt der Anschluss an ein geeignetes ECMD Gerät, beispielsweise den AVR-NET-IO oder das Webmodul von Ethersex, alte Website die auf der Basis eines AVR Microcontrollers der Fa. Atmel arbeiten. Die Ethersex Firmware übernimmt dabei die Low-Level Kommunikationsfunktionen des 1-Wire-Bus. 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.

Vorteil von ECMD ist, dass der 1-Wire-Bus unabhängig vom FHEM-Rechner läuft und beliebig weit von diesem entfernt sein kann. Nachteil ist, dass die Ethersex-Software nicht alle Kommunikationsfunktionen des 1-Wire Bus zugänglich macht - und selbst nur DS18x20-Temperatursensoren und den A/D-Wandler DS2450 unterstützt. ECMD kann deshalb derzeit nur zur Temperatur- und Analogmessung verwendet werden.

Arduino

">Arduino</a> basiert, wie die <a href="/wiki/ECMD" title="ECMD ECMD, auf AVR-Mikrokontrollern der Firma Atmel. Sie sind modular und über entsprechende Shields (Relais, LCD-Displays, Ethernet, SD-Karten usw.) erweiterbar. Sie verfügen über zahlreiche analoge und digitale Schnittstellen, u.a. eben auch für zahlreiche OneWire-Geräte wie z.B.:

  • DS2450 Quad A/D
  • DS2409 1-Wire Switch
  • DS28EC20 1-Wire EEPROM
  • DS18B20
  • DS2423
  • DS2433
  • DS2438
  • DS3231

Die Kommunikation erfolgt über sogenannte Librarys (3), welche in die Arduino-eigene IDE eingebunden werden.

Über z.B die mögliche Funktionalität als HTTP-Client oder -Server können per HTTP-Get bzw. -put-Befehle aus FHEM heraus die Kommunikationsvorgänge zwischen FHEM und dem OneWire-Device abgewickelt werden.

  • weiterhin ist es möglichen einen [[Arduino mit OneWireFirmata]] zu flashen und diesen als 1-Wire-Busmaster in Verbindung mit o.g. OWX-modul zu nutzen.