FHEM und 1-Wire: Unterschied zwischen den Versionen
Zeile 45: | Zeile 45: | ||
== 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- | [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. | ||
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. |
Version vom 30. August 2016, 04:22 Uhr
Es gibt viele Möglichkeiten, 1-Wire Komponenten mit FHEM zu verbinden.
OWX
Das Modul OWX der FHEM-Distribution kann eingesetzt werden, um
- direkt von FHEM erreichbare serielle bzw. USB-Interfaces für 1-Wire,
- via Netzwerk erreichbare Interfaces wie 1W-IF-ETH und 1W-IF-WIFI,
- 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 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_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.