FHEM und 1-Wire: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Es gibt viele Möglichkeiten, 1-Wire Komponenten mit FHEM zu verbinden
Es gibt viele Möglichkeiten, [[1-Wire]] Komponenten mit FHEM zu verbinden.
 
== OWX ==
== OWX ==
Das Modul 00_OWX.pm aus dem Unterverzeichnis contrib/1-Wire der FHEM-Distribution kann eingesetzt werden, um  
Das Modul [[OWX]] der FHEM-Distribution kann eingesetzt werden, um  


* 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-WIFI]],
* via Netzwerk erreichbare Interfaces wie [[1W-IF-ETH]] und [[1W-IF-WIFI]],
* eine COC-Erweiterung des Raspberry Pi,
* eine COC-Erweiterung des Raspberry Pi,
Zeile 11: Zeile 12:
anzusteuern.
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.
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
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 die folgenden derartigen Module:


* 21_OWTHERM.pm - zur Abfrage von 1-Wire Temperatursensoren der Typen DS1820, DS18S20, DS18B20, DS1822
* 21_OWTHERM.pm - zur Abfrage von 1-Wire Temperatursensoren der Typen DS1820, DS18S20, DS18B20, DS1822
Zeile 21: Zeile 22:
* 21_OWMULTI.pm - zur Abfrage eines Multi-Sensors DS2438
* 21_OWMULTI.pm - zur Abfrage eines Multi-Sensors DS2438
* 21_OWLCD.pm - zur Ansteuerung eines LC-Displays mit bis zu 4x20 Zeichen
* 21_OWLCD.pm - zur Ansteuerung eines LC-Displays mit bis zu 4x20 Zeichen
* 21_OWVAR.pm - zur Ansteuerung des programmierbaren elektronischen Potentiometers DS2890
* 21_OWID.pm - zur Abfrage von 1-Wire ID-Chips (oder unbekannter 1-Wire Devices)
* 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
Diese Frontendmodule können auch mit dem [[OWServer]]-Modul zusammenarbeiten und somit OWFS als Backend benutzen.
Langfristig sollen alle Gerätemodule mit den verschiedenen Adaptermodulen zusammenarbeiten.


== CUNO ==
== 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.
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.
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.
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 zehn 1-Wire-Komponenten vorhanden ist.


== OWFS ==
== OWFS ==
Zeile 37: Zeile 38:
Während OWFS.pm für die Verbindung mit dem 1-Wire-Bus zuständig ist, besorgt das Modul OWTEMP.pm aus dem Hauptverzeichnis von FHEM die Umrechnung in Temperaturen.
Während OWFS.pm für die Verbindung mit dem 1-Wire-Bus zuständig ist, besorgt das Modul OWTEMP.pm aus dem Hauptverzeichnis von FHEM die Umrechnung in Temperaturen.
=== OWServer/OWDevice ===
=== OWServer/OWDevice ===
Eine Vielzahl von 1-Wire Komponenten kann über das Modulpaa  OWServer und OWDevice verwendet werden. Siehe [[OWServer & OWDevice]].
Eine Vielzahl von 1-Wire Komponenten kann über das Modulpaar OWServer und OWDevice verwendet werden. Siehe [[OWServer & OWDevice]].


== ECMD ==
== ECMD ==
Hier erfolgt der Anschluss an ein geeignetes ECMD Gerät, beispielsweise den [[AVR-NET-IO]] oder das Webmodul von [http://old.ethersex.de 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.
Hier erfolgt der Anschluss an ein geeignetes [[ECMD]] Gerät, beispielsweise den [[AVR-NET-IO]] oder das Webmodul von [http://old.ethersex.de 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.
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 ==
[http://www.arduino.cc/ 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.:
[http://www.arduino.cc/ 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-Devices.
 
* DS2450 Quad A/D
* DS2409 1-Wire Switch
* DS28EC20 1-Wire EEPROM
* DS18B20
* DS2423
* DS2433
* DS2438
* DS3231


Die Kommunikation erfolgt über sogenannte Libraries ([http://www.kerrywong.com/2011/09/01/interfacing-ds28ec20-with-arduino/ 3]), die in die Arduino-eigene IDE eingebunden werden.
Die Kommunikation erfolgt über sogenannte Libraries ([http://www.kerrywong.com/2011/09/01/interfacing-ds28ec20-with-arduino/ 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.
Ü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.
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 ==
== 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.
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.
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 ==
== 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]].
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]].




[[Kategorie:1-Wire]]
[[Kategorie:1-Wire]]
[[Kategorie:HOWTOS]]
[[Kategorie:HOWTOS]]

Aktuelle Version vom 30. August 2016, 04:24 Uhr

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

OWX

Das Modul OWX 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 die folgenden derartigen Module:

  • 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_OWVAR.pm - zur Ansteuerung des programmierbaren elektronischen Potentiometers DS2890
  • 21_OWID.pm - zur Abfrage von 1-Wire ID-Chips (oder unbekannter 1-Wire Devices)

Diese Frontendmodule können auch mit dem OWServer-Modul zusammenarbeiten und somit OWFS als Backend benutzen.

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 zehn 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. 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. Zur Ankopplung von OWFS an FHEM gibt es zwei Möglichkeiten

OWFS/OWTEMP (abzuraten, veraltet !)

Während OWFS.pm für die Verbindung mit dem 1-Wire-Bus zuständig ist, besorgt das Modul OWTEMP.pm aus dem Hauptverzeichnis von FHEM die Umrechnung in Temperaturen.

OWServer/OWDevice

Eine Vielzahl von 1-Wire Komponenten kann über das Modulpaar 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-Devices.

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.