FHEMduino: Unterschied zwischen den Versionen
(Infobox eingefügt; diverse weitere Korrekturen; Formatierung überarbeitet) |
|||
Zeile 1: | Zeile 1: | ||
{{Infobox Modul | |||
|ModPurpose=Unterstützung für CUL-Klon auf Arduino-Basis | |||
|ModType=contrib | |||
|ModFTopic=17196 | |||
<!--|ModCmdRef=ContribModul --> | |||
|ModForumArea=Bastelecke | |||
|ModTechName=00_FHEMduino.pm | |||
|ModOwner=mdorenka ({{Link2FU|3294|Forum}}/[[Benutzer Diskussion:Mdorenka|Wiki]]) | |||
}} | |||
[[Datei:Fhemduino.png|200px|thumb|right|FHEMduino im EasyBox Gehäuse]] | [[Datei:Fhemduino.png|200px|thumb|right|FHEMduino im EasyBox Gehäuse]] | ||
Der FHEMduino ist ein Low-Cost [[CUL]]-Klon der auf einem [http://arduino.cc/de/Main/ArduinoBoardNano Arduino Nano] basiert. Er wird mittels USB angeschlossen und ist primär dazu konzipiert im 433MHz-Bereich zu arbeiten. | Der FHEMduino ist ein Low-Cost [[CUL]]-Klon der auf einem [http://arduino.cc/de/Main/ArduinoBoardNano Arduino Nano] basiert. Er wird mittels USB angeschlossen und ist primär dazu konzipiert, im 433MHz-Bereich zu arbeiten. | ||
==Hardware== | |||
== Hardware == | |||
[[Datei:Fhemduino_schematic.png|200px|thumb|right|FHEMduino Schaltplan]] | [[Datei:Fhemduino_schematic.png|200px|thumb|right|FHEMduino Schaltplan]] | ||
Der FHEMduino basiert auf dem Arduino Nano. Die Wahl fiel hier auf den Nano da dieser sehr klein ist und in einem DIL30-Sockel gesockelt werden kann. Ein weiterer Vorteil ist, dass wenn das entsprechende Hostsystem (beispielsweise ein [[Raspberry Pi]]) mächtig genug ist, der FHEMduino aus der Ferne programmiert werden kann. Die Stromversorgung erfolgt vollständig via USB. Als weitere Komponenten benötigt man einen Sender und Empfänger im gewünschten Frequenzspektrum. Hierzu kann auch eine bestehende Wetterstation oder Funkfernbedienung ausgeschlachtet werden. | Der FHEMduino basiert auf dem Arduino Nano. Die Wahl fiel hier auf den Nano, da dieser sehr klein ist und in einem DIL30-Sockel gesockelt werden kann. Ein weiterer Vorteil ist, dass wenn das entsprechende Hostsystem (beispielsweise ein [[Raspberry Pi]]) mächtig genug ist, der FHEMduino aus der Ferne programmiert werden kann. Die Stromversorgung erfolgt vollständig via USB. Als weitere Komponenten benötigt man einen Sender und Empfänger im gewünschten Frequenzspektrum. Hierzu kann auch eine bestehende Wetterstation oder Funkfernbedienung ausgeschlachtet werden. | ||
Durch die geringe Anzahl an Bauteilen lässt sich der FHEMduino sehr gut auf einer Lochrasterplatine aufbauen und ist somit auch für Anwender, die mit dem Aufbau von Schaltungen weniger bewandert sind, gut bewältigbar. | Durch die geringe Anzahl an Bauteilen lässt sich der FHEMduino sehr gut auf einer Lochrasterplatine aufbauen und ist somit auch für Anwender, die mit dem Aufbau von Schaltungen weniger bewandert sind, gut bewältigbar. | ||
Anbei eine Auswahl häufig verwendeter Komponenten. Diese sind alle z.B. auf ebay leicht zu finden: | Anbei eine Auswahl häufig verwendeter Komponenten. Diese sind alle (z.B. auf ebay) leicht zu finden: | ||
* Arduino: Nano FT232RL V3.0 ATmega328P 5V 16M USB Micro-controller Board für Arduino ca. 7€ | * Arduino: Nano FT232RL V3.0 ATmega328P 5V 16M USB Micro-controller Board für Arduino ca. 7€ | ||
* Empfänger + Receiver Set: 433 Mhz RF Sender und Empfänger für Arduino Projekte ca. 2€ | * Empfänger + Receiver Set: 433 Mhz RF Sender und Empfänger für Arduino Projekte ca. 2€ | ||
Zeile 12: | Zeile 23: | ||
* Antenne: es wird ein 17 cm langer Draht benötigt (anlöten) | * Antenne: es wird ein 17 cm langer Draht benötigt (anlöten) | ||
==Software== | == Software == | ||
Durch das Arduino-Framework können auch Einsteiger die Software um eigene Protokolle erweitern oder Funktionalitäten wie eine Status-LED oder [[1-Wire]]-Module hinzufügen. | Durch das Arduino-Framework können auch Einsteiger die Software um eigene Protokolle erweitern oder Funktionalitäten wie eine Status-LED oder [[1-Wire]]-Module hinzufügen. | ||
Die Software muss sowohl die serielle Kommunikation als auch den Funkverkehr verarbeiten. Momentan werden lediglich fallende Flanken bei den | Die Software muss sowohl die serielle Kommunikation als auch den Funkverkehr verarbeiten. Momentan werden lediglich fallende Flanken bei den Funksignalen aufgefangen und via Interrupt ausgewertet. Eine Erweiterung auf steigende Flanken ist jedoch geplant, um somit auch andere Protokolle auswerten zu können. Die Programmierung aus der Ferne kann mittels [http://inotool.org/ Inotool] erledigt werden. | ||
Die Programmierung aus der Ferne kann mittels [http://inotool.org/ Inotool] erledigt werden. | |||
===FHEM Modul=== | === FHEM Modul === | ||
Die Verarbeitung innerhalb von FHEM funktioniert analog zum CUL Modul. Die beiden zu FHEMduino entwickelten Module sind prinzipiell Kopien bestehender CUL Module. | Die Verarbeitung innerhalb von FHEM funktioniert analog zum CUL Modul. Die beiden zu FHEMduino entwickelten Module sind prinzipiell Kopien bestehender CUL Module. | ||
Da sich auch die serielle Kommunikation an der des CUL orientiert, ist hier wenig Neuentwicklung nötig gewesen. | Da sich auch die serielle Kommunikation an der des CUL orientiert, ist hier wenig Neuentwicklung nötig gewesen. | ||
==Unterstützte Geräte== | == Unterstützte Geräte == | ||
Für die folgenden Geräte gibt es derzeit eine Unterstützung für den Betrieb mit Fhem: | Für die folgenden Geräte gibt es derzeit eine Unterstützung für den Betrieb mit Fhem: | ||
{|class="wikitable" | {|class="wikitable" | ||
Zeile 56: | Zeile 66: | ||
|EZ6 Meteo | |EZ6 Meteo | ||
|E | |E | ||
|mit eigenem Modul ''momentan nicht integriert'' ([https://docs.google.com/document/d/121ZH3omAZsdhFi3GSB-YdnasMjIQSGIcaS7QW6KsACA/edit Protokolbeschreibung]) | |mit eigenem Modul; ''momentan nicht integriert'' ([https://docs.google.com/document/d/121ZH3omAZsdhFi3GSB-YdnasMjIQSGIcaS7QW6KsACA/edit Protokolbeschreibung]) | ||
| | | | ||
|- | |- | ||
Zeile 89: | Zeile 99: | ||
|14_FHEMduino_DCF77.pm | |14_FHEMduino_DCF77.pm | ||
|- | |- | ||
|Intertek (4x | |Intertek (4x Funksteckdose bei Penny für 7 Euro) | ||
|S/E | |S/E | ||
|verbauter Controller 8029-L2S | |verbauter Controller 8029-L2S | ||
Zeile 95: | Zeile 105: | ||
|} | |} | ||
==Einbinden in FHEM== | == Einbinden in FHEM == | ||
Fhem benötigt zunächst die perl Module aus: | Fhem benötigt zunächst die perl Module aus: | ||
https://github.com/mdorenkamp/fhemduino_modules | https://github.com/mdorenkamp/fhemduino_modules | ||
Diese werden in das FHEM Verzeichnis kopiert in dem auch alle anderen pm Dateien liegen. z.B. /opt/fhem/FHEM | Diese werden in das FHEM Verzeichnis kopiert in dem auch alle anderen pm Dateien liegen. z.B. /opt/fhem/FHEM. Das Gerät wird angelegt mit dem Befehl | ||
define Arduino FHEMduino /dev/serial/ | :<code>define Arduino FHEMduino /dev/serial/ttyUSB0/</code> | ||
besser (um beim Umstecken des USB-Port das Gerät nicht neu definieren oder Attribute ändern zu müssen) mit Angabe des genauen Namens: | |||
:<code>define Arduino FHEMduino /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@9600</code> | |||
Nach dem Einbinden wird der FHEMDuino falls er erkannt wird im Status "Openend" | Nach dem Einbinden wird der FHEMDuino, falls er erkannt wird, im Status "Openend" angezeigt. Erst wenn die richtige Firmware auf dem Arduino ist, wird der Status "Initialized" angezeigt. | ||
==Flashen des Ardunio mit der FHEMDuino Firmware== | == Flashen des Ardunio mit der FHEMDuino Firmware == | ||
# Falls avrdude noch nicht vorhanden ist kann man das z.B. so auf dem Fhem installieren: | # Falls avrdude noch nicht vorhanden ist kann man das z.B. so auf dem Fhem installieren: | ||
::sudo apt-get install avrdude | ::sudo apt-get install avrdude | ||
Zeile 129: | Zeile 137: | ||
:::Open fhemduino.ino in the IDE and just compile it. | :::Open fhemduino.ino in the IDE and just compile it. | ||
:5. Jetzt wurde eine hex Datei erzeugt (liegt im gleichen Ordner wie die Sourcen). | :5. Jetzt wurde eine hex Datei erzeugt (liegt im gleichen Ordner wie die Sourcen). Z.B. fhemduino.cpp.standard.hex | ||
::Diese umbenennen nach fhemduino.hex auf den FHEM kopieren (z.B. per WinSCP nach /opt/fhem/fhemduino/hexfiles) | ::Diese umbenennen nach fhemduino.hex, auf den FHEM-Rechner kopieren (z.B. per WinSCP nach /opt/fhem/fhemduino/hexfiles) | ||
:6. In Fhem ist der Fhemduino ja bereits mit dem Status "Open" vorhanden. Dieses Gerät hat einen Befehl flash der dann | :6. In Fhem ist der Fhemduino ja bereits mit dem Status "Open" vorhanden. Dieses Gerät hat einen Befehl flash der dann | ||
Zeile 138: | Zeile 146: | ||
::Die funktion get fhemduino version sollte jetzt etwas zurückgeben. Zum Beispiel => V 2.3v FHEMduino - compiled at Jun 26 2015 14:45:06 | ::Die funktion get fhemduino version sollte jetzt etwas zurückgeben. Zum Beispiel => V 2.3v FHEMduino - compiled at Jun 26 2015 14:45:06 | ||
==Intertechno Steckdose definieren== | == Intertechno Steckdose definieren == | ||
Befehl, um z.B. eine Intertechno Steckdose zu definieren: | |||
define IT_ST_1 Arduino_PT2262 0F00F0FFFF FF F0 | :<code>define IT_ST_1 Arduino_PT2262 0F00F0FFFF FF F0 </code> | ||
== | == Links == | ||
* [https://github.com/mdorenka/fhemduino/blob/master/src/sketch.ino FHEMduino Quellcode auf github] | * [https://github.com/mdorenka/fhemduino/blob/master/src/sketch.ino FHEMduino Quellcode auf github] | ||
* [https://github.com/mdorenka/fhemduino_modules FHEM Module auf github] | * [https://github.com/mdorenka/fhemduino_modules FHEM Module auf github] | ||
Zeile 149: | Zeile 156: | ||
[[Kategorie:Interfaces]] | [[Kategorie:Interfaces]] | ||
[[Kategorie:Arduino]] | [[Kategorie:Arduino]] |
Version vom 7. November 2015, 18:43 Uhr
FHEMduino | |
---|---|
Zweck / Funktion | |
Unterstützung für CUL-Klon auf Arduino-Basis | |
Allgemein | |
Typ | Contrib |
Details | |
Dokumentation | Thema |
Support (Forum) | Bastelecke |
Modulname | 00_FHEMduino.pm |
Ersteller | mdorenka (Forum /Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Der FHEMduino ist ein Low-Cost CUL-Klon der auf einem Arduino Nano basiert. Er wird mittels USB angeschlossen und ist primär dazu konzipiert, im 433MHz-Bereich zu arbeiten.
Hardware
Der FHEMduino basiert auf dem Arduino Nano. Die Wahl fiel hier auf den Nano, da dieser sehr klein ist und in einem DIL30-Sockel gesockelt werden kann. Ein weiterer Vorteil ist, dass wenn das entsprechende Hostsystem (beispielsweise ein Raspberry Pi) mächtig genug ist, der FHEMduino aus der Ferne programmiert werden kann. Die Stromversorgung erfolgt vollständig via USB. Als weitere Komponenten benötigt man einen Sender und Empfänger im gewünschten Frequenzspektrum. Hierzu kann auch eine bestehende Wetterstation oder Funkfernbedienung ausgeschlachtet werden.
Durch die geringe Anzahl an Bauteilen lässt sich der FHEMduino sehr gut auf einer Lochrasterplatine aufbauen und ist somit auch für Anwender, die mit dem Aufbau von Schaltungen weniger bewandert sind, gut bewältigbar.
Anbei eine Auswahl häufig verwendeter Komponenten. Diese sind alle (z.B. auf ebay) leicht zu finden:
- Arduino: Nano FT232RL V3.0 ATmega328P 5V 16M USB Micro-controller Board für Arduino ca. 7€
- Empfänger + Receiver Set: 433 Mhz RF Sender und Empfänger für Arduino Projekte ca. 2€
- Ein etwas besserer Receiver: Super-heterodyne OOK Wireless Receiver Module Strong Interference 433MHZ-116dBm ca. 3 US$
- Antenne: es wird ein 17 cm langer Draht benötigt (anlöten)
Software
Durch das Arduino-Framework können auch Einsteiger die Software um eigene Protokolle erweitern oder Funktionalitäten wie eine Status-LED oder 1-Wire-Module hinzufügen. Die Software muss sowohl die serielle Kommunikation als auch den Funkverkehr verarbeiten. Momentan werden lediglich fallende Flanken bei den Funksignalen aufgefangen und via Interrupt ausgewertet. Eine Erweiterung auf steigende Flanken ist jedoch geplant, um somit auch andere Protokolle auswerten zu können. Die Programmierung aus der Ferne kann mittels Inotool erledigt werden.
FHEM Modul
Die Verarbeitung innerhalb von FHEM funktioniert analog zum CUL Modul. Die beiden zu FHEMduino entwickelten Module sind prinzipiell Kopien bestehender CUL Module. Da sich auch die serielle Kommunikation an der des CUL orientiert, ist hier wenig Neuentwicklung nötig gewesen.
Unterstützte Geräte
Für die folgenden Geräte gibt es derzeit eine Unterstützung für den Betrieb mit Fhem:
Produkt | (E)mpfangen (S)enden |
Hinweise | Modul |
---|---|---|---|
PEARL NC7159 | E | 14_FHEMduino_NZ_WS.pm | |
LogiLink WS0002 | E | 14_FHEMduino_NZ_WS.pm | |
Conrad KW9010 | E | inkl. Prüfsummencheck | 14_FHEMduino_KW9010.pm |
technoline Wetterstation WS 6750/TX70DTH | E | 14_FHEMduino_KW9010.pm | |
LIFETEC | E | 14_FHEMduino_KW9010.pm | |
EZ6 Meteo | E | mit eigenem Modul; momentan nicht integriert (Protokolbeschreibung) | |
Technoline/Conrad LaCrosse Temperatur / Luftfeuchte Funksensoren TX2/3/4 | E | mittels des bereits integrierten Moduls in FHEM | 14_CUL_TX.pm |
EUROCHRON/Tchibo | E | 14_FHEMduino_EuroChr.pm | |
Flamingo FA20RF / ELRO RM150RF | S/E | 14_FHEMduino_FA20RF.pm | |
PT2262 (IT / ELRO switches) | S/E | 14_FHEMduino_PT2262.pm | |
Brennenstuhl BR 102-F | S/E | 14_FHEMduino_PT2262.pm | |
DCF-77 | E | 14_FHEMduino_DCF77.pm | |
Intertek (4x Funksteckdose bei Penny für 7 Euro) | S/E | verbauter Controller 8029-L2S | 14_FHEMduino_PT2262.pm |
Einbinden in FHEM
Fhem benötigt zunächst die perl Module aus: https://github.com/mdorenkamp/fhemduino_modules
Diese werden in das FHEM Verzeichnis kopiert in dem auch alle anderen pm Dateien liegen. z.B. /opt/fhem/FHEM. Das Gerät wird angelegt mit dem Befehl
define Arduino FHEMduino /dev/serial/ttyUSB0/
besser (um beim Umstecken des USB-Port das Gerät nicht neu definieren oder Attribute ändern zu müssen) mit Angabe des genauen Namens:
define Arduino FHEMduino /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@9600
Nach dem Einbinden wird der FHEMDuino, falls er erkannt wird, im Status "Openend" angezeigt. Erst wenn die richtige Firmware auf dem Arduino ist, wird der Status "Initialized" angezeigt.
Flashen des Ardunio mit der FHEMDuino Firmware
- Falls avrdude noch nicht vorhanden ist kann man das z.B. so auf dem Fhem installieren:
- sudo apt-get install avrdude
- 2. Fhemduino Sourcen laden
- 3. Arduino IDE unter Windows installieren:
- 4. Im Fhemduino GIT sind die nächsten Schritte beschrieben:
- How to compile with Arduino IDE unter Microsoft Windows:
- Sync the repository from github or download the complete archive as a zip archive.
- Extract or copy all files from src and lib the files to a directory called fhemduino
- rename sketch.ino into fhemduino.ino. The name of the sketch must be the same as the directory where it resides.
- Look at the sketch.h file, to enable or disable features of the fhemduino.
- Open fhemduino.ino in the IDE and just compile it.
- 5. Jetzt wurde eine hex Datei erzeugt (liegt im gleichen Ordner wie die Sourcen). Z.B. fhemduino.cpp.standard.hex
- Diese umbenennen nach fhemduino.hex, auf den FHEM-Rechner kopieren (z.B. per WinSCP nach /opt/fhem/fhemduino/hexfiles)
- 6. In Fhem ist der Fhemduino ja bereits mit dem Status "Open" vorhanden. Dieses Gerät hat einen Befehl flash der dann
- etwa so aufgerufen wird: fhemduino flash opt/fhem/fhemduino/hexfiles/fhemduino.hex (je nachdem wo das hex file abgelegt wurde).
- Danach wird ein Log angezeigt. Wenn alles gut geht und man wählt nochmal den Fhemduino aus steht dort nicht mehr open sondern initialized.
- Die funktion get fhemduino version sollte jetzt etwas zurückgeben. Zum Beispiel => V 2.3v FHEMduino - compiled at Jun 26 2015 14:45:06
Intertechno Steckdose definieren
Befehl, um z.B. eine Intertechno Steckdose zu definieren:
define IT_ST_1 Arduino_PT2262 0F00F0FFFF FF F0
Links
- FHEMduino Quellcode auf github
- FHEM Module auf github
- Forenthread, der die Entwicklung dieses Projekts begleitet