FHEM und 1-Wire: Unterschied zwischen den Versionen

Aus FHEMWiki
Zeile 4: Zeile 4:


* direkt von FHEM erreichbare serielle bzw. [[USB-Interface für 1-Wire|USB-Interfaces für 1-Wire]],
* direkt von FHEM erreichbare serielle bzw. [[USB-Interface für 1-Wire|USB-Interfaces für 1-Wire]],
* via Netzwerk erreichbare Interfaces wie [[1W-IF-ETH]] und [[1W-IF-WLAN]],
* via Netzwerk erreichbare Interfaces wie [[1W-IF-ETH]] und [[1W-IF-WIFI]],
* eine COC-Erweiterung des Raspberry Pi,
* eine COC-Erweiterung des Raspberry Pi,
* einen [[CUNO und 1-wire]] oder  
* einen [[CUNO und 1-wire]] oder  

Version vom 29. Mai 2015, 08:07 Uhr

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

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 älteren OWFS-Modul zusammenarbeiten und ersetzt dabei das alte OWTEMP.pm Langfristig sollen alle Gerätemodule mit den verschiedenen Adaptermodulen zusammenarbeiten.

CUNO

Der CUNO ist eine Variante des CUL, die über Netzwerk angesteuert wird. Ihr Zusammenwirken mit 1-Wire wird auf der Seite 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 basiert, wie die 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 1-Wire-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 Libraries (3), die 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 1-Wire-Device abgewickelt werden.

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

Raspberry Pi und 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 der Seite 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.

Raspberry Pi GPIO

1-wire-Komponenten können auch direkt über die GPIO-Schnittstelle des Raspberry Pi angesprochen werden, allerdings bisher nur Temperatursensoren. Siehe hierzu Raspberry Pi und 1-Wire.