<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Berndd</id>
	<title>FHEMWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Berndd"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/Berndd"/>
	<updated>2026-04-11T19:38:58Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Selbstbau_CUL&amp;diff=13871</id>
		<title>Selbstbau CUL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Selbstbau_CUL&amp;diff=13871"/>
		<updated>2016-01-26T09:09:56Z</updated>

		<summary type="html">&lt;p&gt;Berndd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware|&lt;br /&gt;
|Bild=Selbstbau_cul_breadboard.jpg&lt;br /&gt;
|Bildbeschreibung=Selbstbau CUL auf Breadboard&lt;br /&gt;
|HWProtocol=diverse&lt;br /&gt;
|HWType=Transceiver&lt;br /&gt;
|HWCategory=CUL&lt;br /&gt;
|HWComm=Funk 433MHz oder 868MHz &lt;br /&gt;
|HWChannels=N/A&lt;br /&gt;
|HWVoltage=5V&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=USB&lt;br /&gt;
|HWSize=&lt;br /&gt;
|HWDeviceFHEM=CUL&lt;br /&gt;
|HWManufacturer=du selbst&lt;br /&gt;
}}&lt;br /&gt;
Ein [[CUL]] ist ein [[Interface|Transceiver]] zum Empfangen und Senden von Funknachrichten. Er besteht im Wesentlichen aus einem Atmel ATmega Mikrocontroller und einem CC1101 Funkmodul sowie einer USB-Schnittstelle zur Verbindung mit dem Host Computer auf dem z. B. fhem läuft.&lt;br /&gt;
Als Firmware wird die quelloffene [http://culfw.de/culfw.html culfw] verwendet.&lt;br /&gt;
&lt;br /&gt;
Mittlerweile sind diese Baugruppen einfach und kostengünstig einzeln beschaffbar. Daher ist es relativ einfach möglich eine in der Funktionalität zum CUL vergleichbare Hardware selbst zu bauen.  &lt;br /&gt;
&lt;br /&gt;
== Verwendete Hardware ==&lt;br /&gt;
Die [http://arduino.cc Arduinos] sind weit verbreitete Boards mit dem ATmega328p. Für den Selbstbau CUL ist insbesondere der [http://arduino.cc/en/Main/ArduinoBoardNano Arduino nano] gut geeignet.&lt;br /&gt;
Er ist relativ klein, hat eine USB-Schnittstelle und kann eine 3,3V Spannungsversorgung für den CC1101 zur Verfügung stellen.&lt;br /&gt;
&lt;br /&gt;
Module mit dem CC1101 Funkchip gibt es in unterschiedlichen Ausführungen.&lt;br /&gt;
Wichtig ist die Unterscheidung nach der verwendeten Funkfrequenz, für den Einsatz in Europa sind das 433MHz und 868MHz. Zwar kann der Chip grundsätzlich auf beide Frequenzen eingestellt werden. Für eine optimale Sende- und Empfangsleistung muss aber der Antennenkreis auf die verwendete Frequenz abgestimmt werden. &lt;br /&gt;
Damit ist nicht nur die Antenne selbst gemeint, auch die Hardware auf dem Modul ist unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
Zwar kann die culfw temporär auf eine andere Frequenz umschalten, aber das führt oft nur zu unbefriedigenden Ergebnissen. Es sollte daher das Modul verwendet werden, das zu dem Funkprotokoll passt welches hauptsächlich zum Einsatz kommen soll.&lt;br /&gt;
&lt;br /&gt;
== Die unterschiedlichen Ausführungen des Funkmoduls ==&lt;br /&gt;
Die Module gibt es von unterschiedlichen Herstellern die auch unterschiedliche Anschlüsse verwenden. Daher muss die genaue Anschlussbelegung ermittelt werden und kann nicht einfach blind aus einem Beispiel übernommen werden.&lt;br /&gt;
&lt;br /&gt;
Einige Hersteller bestücken die Module statt mit dem [http://www.ti.com/product/CC1101/description CC1101] mit dem [http://www.ti.com/product/CC110L/description CC110L], einer Low Cost Version des CC1101 mit eingeschränktem Funktionsumfang.&lt;br /&gt;
Es ist nicht garantiert, dass alle Funktionen der culfw auch nicht dem CC110L fehlerfrei arbeiten.&lt;br /&gt;
&lt;br /&gt;
Die Module für die unterschiedlichen Frequenzbereiche werden von den Anbietern leider nicht immer genau spezifiziert. Man kann die Auslegung eines Moduls anhand der Bestückung des Antennenfrontends im Vergleich zur Referenzschaltung von TI selber prüfen.&lt;br /&gt;
&lt;br /&gt;
Ausgehend vom CC1101-Chip her fängt die 868Mhz Schaltung mit zwei Induktivitäten Richtung Antenne an. Optisch also zwei gleiche Bauteile. Die 433 MHz Schaltung hat zwei unterschiedliche Bauteile, eine Induktivität und einen Kondensator.&lt;br /&gt;
Die 868 MHz Version hat dagegen zwei Induktivitäten in Reihe und dazwischen einen Kondensator auf Masse. Die 433 MHz Version hat zuerst einen Kondensator und dann eine Induktivität in Reihe sowie dazwischen noch mal einen Kondensator auf Masse.&lt;br /&gt;
&lt;br /&gt;
Kondensatoren sind bräunlich, Induktivitäten weiß bzw. grün.&lt;br /&gt;
&lt;br /&gt;
Auf diesem Bild sieht man 433Mhz Module im Vergleich zur Referenzschaltung:&lt;br /&gt;
[[Datei:Cc1101_433_vs_868.png]]&lt;br /&gt;
&lt;br /&gt;
Diese Bild zeigt dagegen ein echtes 868MHz Modul:&lt;br /&gt;
[[Datei:CC1101_868_mini.png]]&lt;br /&gt;
&lt;br /&gt;
== Bezugsquellen ==&lt;br /&gt;
Die original Arduinos sind relativ teuer. Es gibt aber billige Kopien, entweder bei den bekannten Auktionshäusern und Handelsplattformen oder direkt in China.&lt;br /&gt;
Dort ist ein nano für unter 5€ beschaffbar. Es sollte aber darauf geachtet werden, dass als USB-seriell Wandler auf dem nano ein FTDI FT232RL Chip oder ein anderer Chip mit eindeutiger ID verwendet wird.&lt;br /&gt;
Nur dann sind mehrere CULs gleichzeitig ohne Probleme in Fhem nutzbar.&lt;br /&gt;
&lt;br /&gt;
Auch die CC1101 Module werden dort in unterschiedlichen Ausführungen angeboten. Die 433MHz Versionen sind i.A. leichter erhältlich als die 868MHz Versionen.&lt;br /&gt;
Wenn keine guten Lötkenntnisse vorhanden sind sollte darauf geachtet werden, ein Modul mit als Stiftleiste im 2,54mm Raster herausgeführten Anschlüssen zu verwenden.&lt;br /&gt;
&lt;br /&gt;
In diesem [http://blog.gummibaer-tech.de/cul-stick-868433-im-selbstbau/ Blog] sind konkrete Bezugsquellen genannt.&lt;br /&gt;
&lt;br /&gt;
== Schaltplan ==&lt;br /&gt;
[[Datei:Selbstbau_cul_Schaltplan.png|mini|rechts|400px|Schaltplan des Selbstbau CUL]]&lt;br /&gt;
&lt;br /&gt;
Das Funkmodul ist hier nur über seine acht Anschlüsse dargestellt. &lt;br /&gt;
Hilfreich ist der Anschluss einer LED mit passendem Vorwiderstand. Diese hilft bei der Inbetriebnahme und als grobe Funktionskontrolle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung!&#039;&#039;&#039;&lt;br /&gt;
Der CC1101 darf nur mit maximal 3.6V betrieben werden. Eine passende Versorgungsspannung stellt der Arduino nano bereit. Aber auch die Signalleitungen sind laut Datenblatt nicht 5V tolerant.&lt;br /&gt;
Diese haben beim nano aber 5V Pegel. In der Praxis funktionieren die Module bisher trotzdem. Langzeiterfahrungen gibt es aber nicht und es ist nicht ausgeschlossen, dass die Module dadurch beschädigt werden.&lt;br /&gt;
&lt;br /&gt;
Wer sicher gehen will, verwendet in den Signalleitungen Pegelanpassungen 5V -&amp;gt; 3,3V. Das ist mit fertigen Bausteinen ([http://www.aliexpress.com/wholesale?catId=0&amp;amp;SearchText=i2c+level+converter Levelshifter]) möglich oder im einfachsten Fall mit [http://lowpowerlab.com/wp-content/uploads/2012/12/rfm12B-arduino-moteino-atmega328_5V_connections.png Widerständen] als Spannungsteiler.&lt;br /&gt;
&lt;br /&gt;
Um Empfangsproblemen vorzubeugen, sollte ein Pullup-Widerstand (R2, 10k) am CSN Pin des Moduls verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
== Aufbau ==&lt;br /&gt;
[[Datei:Selbstbau_cul_lochraster.png|mini|rechts|300px||Beispielhafter Aufbau auf einer Lochrasterplatine für ein Modul mit 10-poligem Anschluss.]]&lt;br /&gt;
Am einfachsten ist der Aufbau auf einem Steckbrett (Breadboard). Damit lässt es sich schnell in Betrieb nehmen und mögliche Fehler können einfach korrigiert werden.&lt;br /&gt;
Für einen permanenten Aufbau kann z. B. eine Lochraster oder Streifenrasterplatine verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Wer nicht löten will kann auch ein Breakoutboard mit Schraubklemmen für den Arduino nano verwenden, z. B. ein [http://www.ebay.de/itm/121239860594?_trksid=p2059210.m2749.l2649&amp;amp;ssPageName=STRK%3AMEBIDX%3AIT Angebot bei eBay]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
== Software ==&lt;br /&gt;
{{Randnotiz|RNTyp=Info|RNText=Es gibt mittlerweile mehrere alternative Versionen der culfw. Diese implementieren zusätzliche, noch experimentelle Features, sind dafür aber möglicherweise instabiler als die offizielle culfw. Siehe dazu auch &lt;br /&gt;
* {{Link2Forum|Topic=35064|LinkText=erweiterte Intertechno und Tempsensoren Unterstützung}} und &lt;br /&gt;
* {{Link2Forum|Topic=24436|LinkText=Bessere Unterstützung von Homematic}}&lt;br /&gt;
&lt;br /&gt;
Um die culfw zu kompilieren, müssen ein AVR C-Cross-Compiler sowie dazugehörige Tools installiert sein.&lt;br /&gt;
Bei einem Debian-basierten Linux geht das mit&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install make gcc-avr avrdude avr-libc&amp;lt;/code&amp;gt;&lt;br /&gt;
Anschließend die neueste Version der culfw als [https://sourceforge.net/p/culfw/code/HEAD/tarball ZIP-Datei] herunterladen und auspacken.&lt;br /&gt;
&lt;br /&gt;
Dann in das Verzeichnis &amp;lt;code&amp;gt;culfw/Devices/nanoCUL&amp;lt;/code&amp;gt; wechseln.&lt;br /&gt;
In dieser Auslieferung sind alle von der culfw unterstützten Protokolle mit Ausnahme vom Wireless M-Bus aktiviert. Bei Bedarf können einzelne Protokolle durch Änderungen der entsprechenden defines in der Datei board.h aus- oder eingeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
Wenn ein 868MHz Modul verbaut ist, sollte in der Datei board.h die Zeile&lt;br /&gt;
:&amp;lt;code&amp;gt;#define HAS_CC1100_433&amp;lt;/code&amp;gt;&lt;br /&gt;
auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Wird ein Arduino mit einer Taktfrequenz von nur 8MHz, wie ein [http://arduino.cc/en/Main/ArduinoBoardProMini Pro Mini 3,3V], verwendet, so muss die Zeile &lt;br /&gt;
:&amp;lt;code&amp;gt;#define HAS_16MHZ_CLOCK&amp;lt;/code&amp;gt;&lt;br /&gt;
in der Datei board.h auskommentiert werden.&lt;br /&gt;
&lt;br /&gt;
Mittels&lt;br /&gt;
:&amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
wird dann die Übersetzung gestartet, die ohne Fehler durchlaufen sollte. Dabei wird die Datei nanoCUL.hex erzeugt.&lt;br /&gt;
&lt;br /&gt;
Diese muss dann anschließend noch auf den Arduino geflasht werden.&lt;br /&gt;
&lt;br /&gt;
Wenn der Arduino das einzige per USB angeschlossene Gerät mit serieller Schnittstelle ist, geht das ohne weitere Änderungen mit&lt;br /&gt;
:&amp;lt;code&amp;gt;make program&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Wenn der Arduino bereits in Fhem konfiguriert ist, muss vor einem Flashen erst Fhem beendet werden, damit die Schnittstelle freigegeben wird. Andernfalls wird avrdude einen Fehler melden.&lt;br /&gt;
&lt;br /&gt;
== Inbetriebnahme ==&lt;br /&gt;
Nach dem Flashen sollte die LED einmal pro Sekunde blinken. Blinkt sie schneller oder langsamer, ist die Frequenz des Controllers nicht richtig eingestellt. Ursache können z.B. falsche Fuses sein, so dass der Controller den internen RC-Oszillator statt des externen 16MHz Quarz nutzt.&lt;br /&gt;
Die culfw ist für eine Verarbeitungsgeschwindigkeit von 8MHz ausgelegt, daher wird beim nanoCUL die externe Frequenz von 16MHz direkt beim Start heruntergeteilt.&lt;br /&gt;
&lt;br /&gt;
Bevor der Selbstbau CUL mit Fhem verwendet wird, kann man noch eine Funktionskontrolle mit Hilfe eines Terminalprogramms wie screen, picocom, cutecom oder minicom vornehmen. Dabei müssen die Kommunikationsparameter 38400/8N1 sein.&lt;br /&gt;
{{Randnotiz|RNTyp=Info|RNText=Kommandos an die culfw müssen jeweils mit einem Zeilenumbruch bestätigt werden damit sie verarbeitet werden.}}&lt;br /&gt;
Nach der Eingabe von {{Taste|V}} und Bestätigung mit {{Taste|Return}} sollte die Versionsinformation ausgegeben werden.&lt;br /&gt;
Nach {{Taste|?}} werden die unterstützen Protokolle ausgegeben, siehe die [http://culfw.de/commandref.html Dokumentation der culfw] für Details. &lt;br /&gt;
&lt;br /&gt;
Um zu prüfen, ob der Empfang prinzipiell funktioniert, kann das Kommando [http://culfw.de/commandref.html#X X08] verwendet werden. Wird auf der eingestellten Frequenz irgendwas empfangen, erfolgt eine Ausgabe.&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit Fhem ==&lt;br /&gt;
Der Selbstbau CUL wird fast genauso wie ein &amp;quot;richtiger&amp;quot; CUL verwendet, die entsprechende [http://fhem.de/commandref_DE.html#CUL Dokumentation] gilt also auch hier. Der einzige Unterschied ist der Bootloader. Der bereits bei fabrikneuen Arduinos vorhandene Bootloader ist nicht kompatibel zu dem Bootloader der culfw. Daher funktioniert das Kommando {{Taste|B}} zum rebooten des Selbstbau CULs nicht. Der Selbstbau CUL gerät dann in eine Endlosschleife, die sich nur durch aus- und einstecken beenden lässt. Das Problem tritt aber im normalen Betrieb nicht auf.&lt;br /&gt;
&lt;br /&gt;
USB Geräte werden bei jedem Systemneustart neu &#039;&#039;enumeriert&#039;&#039;. Daher kann es vorkommen, dass ein Gerät, das mal unter /dev/ttyUSB0 erreichbar war nach dem Neustart unter /dev/ttyUSB1 ist. Das führt natürlich zu Problemen, wenn Fhem das Gerät unter /dev/ttyUSB0 erwartet. Um dieses Problem auszuschließen, empfiehlt es sich, den CUL unter seiner eindeutigen ID anzusprechen. Die entsprechende Gerätedatei findet sich unter /dev/serial/by-id.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für eine Definition in Fhem könnte so aussehen:&lt;br /&gt;
:&amp;lt;code&amp;gt;define nanoCUL CUL /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A903N5T5-if00-port0@38400 1234&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig ist es, die Übertragungsrate von 38400 bit/s anzugeben.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
Viele der Arduino nano haben eine sehr grell leuchtende blaue Stromversorgungs-LED. Diese lässt sich nicht per Software ausschalten. Sollte sie stören, kann entweder die Lötverbindung zur LED durchtrennt oder die LED z.B. mit einem schwarzen Lackstift übermalt werden.&lt;br /&gt;
&lt;br /&gt;
Bei den nachgebauten nanos gibt es wohl viele mit einem {{Link2Forum|Topic=24651|Message=218291|LinkText=Fehler}} in der Schaltung (unverbundener Testpin des FT232RL). Das kann dazu führen, dass er nicht richtig am USB Anschluss funktioniert.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* Blog [http://blog.gummibaer-tech.de/cul-stick-868433-im-selbstbau/]&lt;br /&gt;
* {{Link2Forum|Topic=24651|LinkText=Forumsthread}} zu diesem Thema&lt;br /&gt;
* Detaillierte Anleitung für Aufbau auf einer Lochstreifenplatine [http://raspberry.tips/raspberrypi-tutorials/hausautomatisierung-mit-fhem-teil-1-cul-stick-selbstbau-868mhz-cul-am-raspberry-pi/]&lt;br /&gt;
* Weitere Konfiguration entsprechend des CUL-Wikis[http://www.fhemwiki.de/wiki/CUL] &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:CUL]]&lt;br /&gt;
[[Kategorie:Arduino]]&lt;/div&gt;</summary>
		<author><name>Berndd</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FHEMduino&amp;diff=13752</id>
		<title>FHEMduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FHEMduino&amp;diff=13752"/>
		<updated>2016-01-21T22:05:37Z</updated>

		<summary type="html">&lt;p&gt;Berndd: /* Flashen des Ardunio mit der FHEMDuino Firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Unterstützung für CUL-Klon auf Arduino-Basis&lt;br /&gt;
|ModType=contrib&lt;br /&gt;
|ModFTopic=17196&lt;br /&gt;
&amp;lt;!--|ModCmdRef=ContribModul --&amp;gt;&lt;br /&gt;
|ModForumArea=Bastelecke&lt;br /&gt;
|ModTechName=00_FHEMduino.pm&lt;br /&gt;
|ModOwner=mdorenka ({{Link2FU|3294|Forum}}/[[Benutzer Diskussion:Mdorenka|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
[[Datei:Fhemduino.png|200px|thumb|right|FHEMduino im EasyBox Gehäuse]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Mit [[SIGNALduino]] gibt es ein weiteres Modul, das diese Hardware unterstützt.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[Datei:Fhemduino_schematic.png|200px|thumb|right|FHEMduino Schaltplan]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Anbei eine Auswahl häufig verwendeter Komponenten. Diese sind alle (z.B. auf ebay) leicht zu finden:&lt;br /&gt;
* Arduino: Nano FT232RL V3.0 ATmega328P 5V 16M USB Micro-controller Board für Arduino ca. 7€&lt;br /&gt;
* Empfänger + Receiver Set: 433 Mhz RF Sender und Empfänger für Arduino Projekte ca. 2€&lt;br /&gt;
* Ein etwas besserer Receiver: Super-heterodyne OOK Wireless Receiver Module Strong Interference 433MHZ-116dBm ca. 3 US$&lt;br /&gt;
* Antenne: es wird ein 17 cm langer Draht benötigt (anlöten)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== FHEM Modul ===&lt;br /&gt;
Die Verarbeitung innerhalb von FHEM funktioniert analog zum CUL Modul. Die beiden zu FHEMduino entwickelten Module sind prinzipiell Kopien bestehender CUL Module.&lt;br /&gt;
Da sich auch die serielle Kommunikation an der des CUL orientiert, ist hier wenig Neuentwicklung nötig gewesen.&lt;br /&gt;
&lt;br /&gt;
== Unterstützte Geräte ==&lt;br /&gt;
Für die folgenden Geräte gibt es derzeit eine Unterstützung für den Betrieb mit Fhem:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Produkt&lt;br /&gt;
! (E)mpfangen&amp;lt;br /&amp;gt;(S)enden&lt;br /&gt;
! Hinweise&lt;br /&gt;
! Modul&lt;br /&gt;
|-&lt;br /&gt;
|PEARL NC7159&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_NZ_WS.pm&lt;br /&gt;
|-&lt;br /&gt;
|LogiLink WS0002&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_NZ_WS.pm&lt;br /&gt;
|-&lt;br /&gt;
|Conrad KW9010&lt;br /&gt;
|E&lt;br /&gt;
|inkl. Prüfsummencheck&lt;br /&gt;
|14_FHEMduino_KW9010.pm&lt;br /&gt;
|-&lt;br /&gt;
|technoline Wetterstation WS 6750/TX70DTH&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_KW9010.pm&lt;br /&gt;
|-&lt;br /&gt;
|LIFETEC&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_KW9010.pm&lt;br /&gt;
|-&lt;br /&gt;
|EZ6 Meteo&lt;br /&gt;
|E&lt;br /&gt;
|mit eigenem Modul; &#039;&#039;momentan nicht integriert&#039;&#039; ([https://docs.google.com/document/d/121ZH3omAZsdhFi3GSB-YdnasMjIQSGIcaS7QW6KsACA/edit Protokolbeschreibung])&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Technoline/Conrad LaCrosse Temperatur / Luftfeuchte Funksensoren TX2/3/4 &lt;br /&gt;
|E&lt;br /&gt;
|mittels des bereits integrierten Moduls in FHEM&lt;br /&gt;
|14_CUL_TX.pm&lt;br /&gt;
|-&lt;br /&gt;
|EUROCHRON/Tchibo&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_EuroChr.pm&lt;br /&gt;
|-&lt;br /&gt;
|Flamingo FA20RF / ELRO RM150RF&lt;br /&gt;
|S/E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_FA20RF.pm&lt;br /&gt;
|-&lt;br /&gt;
|PT2262 (IT / ELRO switches)&lt;br /&gt;
|S/E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_PT2262.pm&lt;br /&gt;
|-&lt;br /&gt;
|Brennenstuhl BR 102-F &lt;br /&gt;
|S/E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_PT2262.pm&lt;br /&gt;
|-&lt;br /&gt;
|DCF-77&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_DCF77.pm&lt;br /&gt;
|-&lt;br /&gt;
|Intertek (4x Funksteckdose bei Penny für 7 Euro)&lt;br /&gt;
|S/E&lt;br /&gt;
|verbauter Controller 8029-L2S&lt;br /&gt;
|14_FHEMduino_PT2262.pm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Einbinden in FHEM ==&lt;br /&gt;
Fhem benötigt zunächst die perl Module aus: &lt;br /&gt;
https://github.com/mdorenkamp/fhemduino_modules&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define Arduino FHEMduino /dev/serial/ttyUSB0/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
besser (um beim Umstecken des USB-Port das Gerät nicht neu definieren oder Attribute ändern zu müssen) mit Angabe des genauen Namens:&lt;br /&gt;
:&amp;lt;code&amp;gt;define Arduino FHEMduino /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@9600&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nach dem Einbinden wird der FHEMDuino, falls er erkannt wird, im Status &amp;quot;Openend&amp;quot; angezeigt. Erst wenn die richtige Firmware auf dem Arduino ist, wird der Status &amp;quot;Initialized&amp;quot; angezeigt.&lt;br /&gt;
&lt;br /&gt;
== Flashen des Ardunio mit der FHEMDuino Firmware ==&lt;br /&gt;
# Falls avrdude noch nicht vorhanden ist kann man das z.B. so auf dem Fhem installieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install avrdude&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:2. Fhemduino Sourcen laden&lt;br /&gt;
::https://github.com/mdorenkamp/fhemduino&lt;br /&gt;
&lt;br /&gt;
:3. Arduino IDE unter Windows/Linux mit grafischer Oberfläche installieren:&lt;br /&gt;
::https://www.arduino.cc/en/Main/Software&lt;br /&gt;
&lt;br /&gt;
::Falls das kompilieren nicht ordentlich abläuft könnte helfen, eine Arduino IDE Version kleiner 1.6.7 zu benutzen, download hier:&lt;br /&gt;
::https://www.arduino.cc/en/Main/OldSoftwareReleases&lt;br /&gt;
&lt;br /&gt;
::Linux: &lt;br /&gt;
:::In der gewählten Aurduino IDE im Menü Files.Preferences, Tab Settings, “show verbose output - during compilation” anklicken.&lt;br /&gt;
::&amp;lt;i&amp;gt;Es wird im Folgenden davon ausgegangen, dass die Firmware auf dem Linux-Rechner kompiliert wird, auf dem auch FHEM läuft, z.B. einem Raspberry Pi. &amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:4. Im Fhemduino GIT sind die nächsten Schritte beschrieben, die auch für&lt;br /&gt;
::Linux gelten:&lt;br /&gt;
::How to compile with Arduino IDE unter Microsoft Windows:&lt;br /&gt;
:::*Sync the repository from github or download the complete archive as a zip archive.&lt;br /&gt;
:::*Extract or copy all files from src and lib the files to a directory called fhemduino&lt;br /&gt;
:::*rename sketch.ino into fhemduino.ino. The name of the sketch must be the same as the directory where it resides.&lt;br /&gt;
:::*Look at the sketch.h file, to enable or disable features of the fhemduino.&lt;br /&gt;
:::*Open fhemduino.ino in the IDE and just compile it.&lt;br /&gt;
&lt;br /&gt;
:5. Es wurde ein Hexfile erzeugt.&lt;br /&gt;
::Windows:&lt;br /&gt;
:::Es liegt im gleichen Ordner wie die Sourcen, z.B. fhemduino.cpp.standard.hex&lt;br /&gt;
::Linux:&lt;br /&gt;
:::Im Konsolenfenster der Arduino IDE (schwarzes Feld unten im IDE-Fenster) wird bei erfolgreicher Kompilierung in der letzten Zeile der Pfad des Hexfiles angezeigt, in der Form &amp;quot;/tmp/build&amp;lt;sehr lange hex Zahl&amp;gt;/sketch_&amp;lt;datum&amp;gt;.ino.hex&amp;quot;. Dafür hatten wir oben unter 3. den &#039;verbose&#039; Modus aktiviert. &lt;br /&gt;
&lt;br /&gt;
::Dieses Hexfile umbenennen nach fhemduino.hex.&lt;br /&gt;
::Windows:&lt;br /&gt;
:::Das Hexfile auf den FHEM-Rechner kopieren (z.B. per WinSCP nach /opt/fhem/fhemduino/hexfiles)&lt;br /&gt;
::Linux:&lt;br /&gt;
:::Das Hexfile in das gewünschte Verzeichnis, z.B./opt/fhem/fhemduino/hexfiles verschieben.&lt;br /&gt;
&lt;br /&gt;
:6. In Fhem ist der Fhemduino ja bereits mit dem Status &amp;quot;Open&amp;quot; vorhanden.&lt;br /&gt;
::Mit &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;attr &amp;lt;myfhemduino&amp;gt; hexFile  /opt/fhem/fhemduino/hexfiles/fhemduino.hex&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::wird FHEM mitgeteilt, wo das Hexfile liegt. Der Pfad ist entsprechend der eigenen Installation anzupassen. &lt;br /&gt;
::Der Fhemduino hat einen Befehl &#039;flash&#039;. Er wird so aufgerufen :&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;set &amp;lt;myfhemduino&amp;gt; flash&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:7. Danach wird ein Log angezeigt. Wenn alles gut ging und man wählt noch einmal den Fhemduino aus steht dort nicht mehr :&#039;open&#039; sondern &#039;initialized&#039;.&lt;br /&gt;
::Die Funktion:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;get fhemduino version&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt; sollte jetzt etwas zurückgeben. Zum Beispiel =&amp;gt; V 2.3v FHEMduino - compiled at Jun 26 2015 14:45:06&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
Folgenden Readings sind im Moment in FHEMduino eingebunden:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Befehl&lt;br /&gt;
! Ausgabe&lt;br /&gt;
! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; version&lt;br /&gt;
|Ausgabe der Version mit Erstelldatum&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; V 1.0b1 FHEMduino - compiled at Nov 24 2015 15:58:41&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; uptime&lt;br /&gt;
|Ausgabe der Zeit, welcher der FHEMduino aktiv ist&lt;br /&gt;
|&amp;lt;Name&amp;gt; uptime =&amp;gt; 0 00:09:08&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; cmds&lt;br /&gt;
|Ausgabe der Parameter&lt;br /&gt;
|&amp;lt;Name&amp;gt; cmds =&amp;gt; V i f d h t R q&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw V&lt;br /&gt;
|Ausgabe der Version mit Erstelldatum&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; V 1.0b1 FHEMduino - compiled at Nov 24 2015 15:58:41&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw i&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; No answer&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw f&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; No answer&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw d&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; No answer&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw h&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; No answer&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw t&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; 00000001B&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw R&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; R1481&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw q&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; No answer&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Set-Befehle ==&lt;br /&gt;
Mit dem Befehl:&lt;br /&gt;
:&amp;lt;code&amp;gt;set &amp;lt;Name&amp;gt; flash &amp;lt;Verzeichnis&amp;gt;&amp;lt;.hex-Datei&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
kann man den Arduino-Uno &amp;quot;flashen&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;set Arduino flash /opt/fhem/FHEM/fhemduino/fhemduino.hex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Intertechno Steckdose definieren ==&lt;br /&gt;
Befehl, um z.B. eine Intertechno Steckdose zu definieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;define IT_ST_1 Arduino_PT2262 0F00F0FFFF FF F0 &amp;lt;/code&amp;gt;&lt;br /&gt;
Berechnung der IT Codes gibt es hier: [http://www.fhemwiki.de/wiki/Intertechno_Code_Berechnung InterTechno Code Berechnung]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/mdorenka/fhemduino/blob/master/src/sketch.ino FHEMduino Quellcode auf github]&lt;br /&gt;
* [https://github.com/mdorenka/fhemduino_modules FHEM Module auf github]&lt;br /&gt;
* {{Link2Forum|Topic=17196|LinkText=Forenthread}}, der die Entwicklung dieses Projekts begleitet&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Arduino]]&lt;/div&gt;</summary>
		<author><name>Berndd</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FHEMduino&amp;diff=13743</id>
		<title>FHEMduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FHEMduino&amp;diff=13743"/>
		<updated>2016-01-21T19:31:58Z</updated>

		<summary type="html">&lt;p&gt;Berndd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Unterstützung für CUL-Klon auf Arduino-Basis&lt;br /&gt;
|ModType=contrib&lt;br /&gt;
|ModFTopic=17196&lt;br /&gt;
&amp;lt;!--|ModCmdRef=ContribModul --&amp;gt;&lt;br /&gt;
|ModForumArea=Bastelecke&lt;br /&gt;
|ModTechName=00_FHEMduino.pm&lt;br /&gt;
|ModOwner=mdorenka ({{Link2FU|3294|Forum}}/[[Benutzer Diskussion:Mdorenka|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
[[Datei:Fhemduino.png|200px|thumb|right|FHEMduino im EasyBox Gehäuse]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Mit [[SIGNALduino]] gibt es ein weiteres Modul, das diese Hardware unterstützt.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[Datei:Fhemduino_schematic.png|200px|thumb|right|FHEMduino Schaltplan]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Anbei eine Auswahl häufig verwendeter Komponenten. Diese sind alle (z.B. auf ebay) leicht zu finden:&lt;br /&gt;
* Arduino: Nano FT232RL V3.0 ATmega328P 5V 16M USB Micro-controller Board für Arduino ca. 7€&lt;br /&gt;
* Empfänger + Receiver Set: 433 Mhz RF Sender und Empfänger für Arduino Projekte ca. 2€&lt;br /&gt;
* Ein etwas besserer Receiver: Super-heterodyne OOK Wireless Receiver Module Strong Interference 433MHZ-116dBm ca. 3 US$&lt;br /&gt;
* Antenne: es wird ein 17 cm langer Draht benötigt (anlöten)&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== FHEM Modul ===&lt;br /&gt;
Die Verarbeitung innerhalb von FHEM funktioniert analog zum CUL Modul. Die beiden zu FHEMduino entwickelten Module sind prinzipiell Kopien bestehender CUL Module.&lt;br /&gt;
Da sich auch die serielle Kommunikation an der des CUL orientiert, ist hier wenig Neuentwicklung nötig gewesen.&lt;br /&gt;
&lt;br /&gt;
== Unterstützte Geräte ==&lt;br /&gt;
Für die folgenden Geräte gibt es derzeit eine Unterstützung für den Betrieb mit Fhem:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Produkt&lt;br /&gt;
! (E)mpfangen&amp;lt;br /&amp;gt;(S)enden&lt;br /&gt;
! Hinweise&lt;br /&gt;
! Modul&lt;br /&gt;
|-&lt;br /&gt;
|PEARL NC7159&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_NZ_WS.pm&lt;br /&gt;
|-&lt;br /&gt;
|LogiLink WS0002&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_NZ_WS.pm&lt;br /&gt;
|-&lt;br /&gt;
|Conrad KW9010&lt;br /&gt;
|E&lt;br /&gt;
|inkl. Prüfsummencheck&lt;br /&gt;
|14_FHEMduino_KW9010.pm&lt;br /&gt;
|-&lt;br /&gt;
|technoline Wetterstation WS 6750/TX70DTH&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_KW9010.pm&lt;br /&gt;
|-&lt;br /&gt;
|LIFETEC&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_KW9010.pm&lt;br /&gt;
|-&lt;br /&gt;
|EZ6 Meteo&lt;br /&gt;
|E&lt;br /&gt;
|mit eigenem Modul; &#039;&#039;momentan nicht integriert&#039;&#039; ([https://docs.google.com/document/d/121ZH3omAZsdhFi3GSB-YdnasMjIQSGIcaS7QW6KsACA/edit Protokolbeschreibung])&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Technoline/Conrad LaCrosse Temperatur / Luftfeuchte Funksensoren TX2/3/4 &lt;br /&gt;
|E&lt;br /&gt;
|mittels des bereits integrierten Moduls in FHEM&lt;br /&gt;
|14_CUL_TX.pm&lt;br /&gt;
|-&lt;br /&gt;
|EUROCHRON/Tchibo&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_EuroChr.pm&lt;br /&gt;
|-&lt;br /&gt;
|Flamingo FA20RF / ELRO RM150RF&lt;br /&gt;
|S/E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_FA20RF.pm&lt;br /&gt;
|-&lt;br /&gt;
|PT2262 (IT / ELRO switches)&lt;br /&gt;
|S/E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_PT2262.pm&lt;br /&gt;
|-&lt;br /&gt;
|Brennenstuhl BR 102-F &lt;br /&gt;
|S/E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_PT2262.pm&lt;br /&gt;
|-&lt;br /&gt;
|DCF-77&lt;br /&gt;
|E&lt;br /&gt;
|&lt;br /&gt;
|14_FHEMduino_DCF77.pm&lt;br /&gt;
|-&lt;br /&gt;
|Intertek (4x Funksteckdose bei Penny für 7 Euro)&lt;br /&gt;
|S/E&lt;br /&gt;
|verbauter Controller 8029-L2S&lt;br /&gt;
|14_FHEMduino_PT2262.pm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Einbinden in FHEM ==&lt;br /&gt;
Fhem benötigt zunächst die perl Module aus: &lt;br /&gt;
https://github.com/mdorenkamp/fhemduino_modules&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define Arduino FHEMduino /dev/serial/ttyUSB0/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
besser (um beim Umstecken des USB-Port das Gerät nicht neu definieren oder Attribute ändern zu müssen) mit Angabe des genauen Namens:&lt;br /&gt;
:&amp;lt;code&amp;gt;define Arduino FHEMduino /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@9600&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Nach dem Einbinden wird der FHEMDuino, falls er erkannt wird, im Status &amp;quot;Openend&amp;quot; angezeigt. Erst wenn die richtige Firmware auf dem Arduino ist, wird der Status &amp;quot;Initialized&amp;quot; angezeigt.&lt;br /&gt;
&lt;br /&gt;
== Flashen des Ardunio mit der FHEMDuino Firmware ==&lt;br /&gt;
# Falls avrdude noch nicht vorhanden ist kann man das z.B. so auf dem Fhem installieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install avrdude&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:2. Fhemduino Sourcen laden&lt;br /&gt;
::https://github.com/mdorenkamp/fhemduino&lt;br /&gt;
&lt;br /&gt;
:3. Arduino IDE unter Windows/Linux mit grafischer Oberfläche installieren:&lt;br /&gt;
::https://www.arduino.cc/en/Main/Software&lt;br /&gt;
&lt;br /&gt;
::Falls das kompilieren nicht ordentlich abläuft könnte helfen, eine Arduino IDE Version kleiner 1.6.7 zu benutzen, download hier:&lt;br /&gt;
::https://www.arduino.cc/en/Main/OldSoftwareReleases&lt;br /&gt;
&lt;br /&gt;
::Linux: &lt;br /&gt;
:::In der gewählten Aurduino IDE im Menü Files.Preferences, Tab Settings, “show verbose output - during compilation” anklicken.&lt;br /&gt;
::&amp;lt;i&amp;gt;Es wird im Folgenden davon ausgegangen, dass die Firmware auf dem Linux-Rechner kompiliert wird, auf dem auch FHEM läuft, z.B. einem Raspberry Pi. &amp;lt;/i&amp;gt; &lt;br /&gt;
&lt;br /&gt;
:4. Im Fhemduino GIT sind die nächsten Schritte beschrieben:&lt;br /&gt;
::How to compile with Arduino IDE unter Microsoft Windows:&lt;br /&gt;
:::*Sync the repository from github or download the complete archive as a zip archive.&lt;br /&gt;
:::*Extract or copy all files from src and lib the files to a directory called fhemduino&lt;br /&gt;
:::*rename sketch.ino into fhemduino.ino. The name of the sketch must be the same as the directory where it resides.&lt;br /&gt;
:::*Look at the sketch.h file, to enable or disable features of the fhemduino.&lt;br /&gt;
:::*Open fhemduino.ino in the IDE and just compile it.&lt;br /&gt;
&lt;br /&gt;
:5. Es wurde ein Hexfile erzeugt.&lt;br /&gt;
::Windows:&lt;br /&gt;
:::Es liegt im gleichen Ordner wie die Sourcen, z.B. fhemduino.cpp.standard.hex&lt;br /&gt;
::Linux:&lt;br /&gt;
:::Im Konsolenfenster der Arduino IDE (schwarzes Feld unten im IDE-Fenster) wird bei erfolgreicher Kompilierung in der letzten Zeile der Pfad des Hexfiles angezeigt, in der Form &amp;quot;/tmp/build&amp;lt;sehr lange hex Zahl&amp;gt;/sketch_&amp;lt;datum&amp;gt;.ino.hex&amp;quot;. Dafür hatten wir oben unter 3. den &#039;verbose&#039; Modus aktiviert. &lt;br /&gt;
&lt;br /&gt;
::Dieses Hexfile umbenennen nach fhemduino.hex.&lt;br /&gt;
::Windows:&lt;br /&gt;
:::Das Hexfile auf den FHEM-Rechner kopieren (z.B. per WinSCP nach /opt/fhem/fhemduino/hexfiles)&lt;br /&gt;
::Linux:&lt;br /&gt;
:::Das Hexfile in das gewünschte Verzeichnis, z.B./opt/fhem/fhemduino/hexfiles verschieben.&lt;br /&gt;
&lt;br /&gt;
:6. In Fhem ist der Fhemduino ja bereits mit dem Status &amp;quot;Open&amp;quot; vorhanden.&lt;br /&gt;
::Mit &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;attr &amp;lt;myfhemduino&amp;gt; hexFile  /opt/fhem/fhemduino/hexfiles/fhemduino.hex&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::wird FHEM mitgeteilt, wo das Hexfile liegt. Der Pfad ist entsprechend der eigenen Installation anzupassen. &lt;br /&gt;
::Der Fhemduino hat einen Befehl &#039;flash&#039;. Er wird so aufgerufen :&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;set &amp;lt;myfhemduino&amp;gt; flash&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:7. Danach wird ein Log angezeigt. Wenn alles gut ging und man wählt noch einmal den Fhemduino aus steht dort nicht mehr :&#039;open&#039; sondern &#039;initialized&#039;.&lt;br /&gt;
::Die Funktion:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;get fhemduino version&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt; sollte jetzt etwas zurückgeben. Zum Beispiel =&amp;gt; V 2.3v FHEMduino - compiled at Jun 26 2015 14:45:06&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
Folgenden Readings sind im Moment in FHEMduino eingebunden:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot;| Befehl&lt;br /&gt;
! Ausgabe&lt;br /&gt;
! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; version&lt;br /&gt;
|Ausgabe der Version mit Erstelldatum&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; V 1.0b1 FHEMduino - compiled at Nov 24 2015 15:58:41&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; uptime&lt;br /&gt;
|Ausgabe der Zeit, welcher der FHEMduino aktiv ist&lt;br /&gt;
|&amp;lt;Name&amp;gt; uptime =&amp;gt; 0 00:09:08&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; cmds&lt;br /&gt;
|Ausgabe der Parameter&lt;br /&gt;
|&amp;lt;Name&amp;gt; cmds =&amp;gt; V i f d h t R q&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw V&lt;br /&gt;
|Ausgabe der Version mit Erstelldatum&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; V 1.0b1 FHEMduino - compiled at Nov 24 2015 15:58:41&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw i&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; No answer&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw f&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; No answer&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw d&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; No answer&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw h&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; No answer&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw t&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; 00000001B&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw R&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; R1481&lt;br /&gt;
|-&lt;br /&gt;
|get &amp;lt;Name&amp;gt; raw q&lt;br /&gt;
|???&lt;br /&gt;
|&amp;lt;Name&amp;gt; raw =&amp;gt; No answer&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Set-Befehle ==&lt;br /&gt;
Mit dem Befehl:&lt;br /&gt;
:&amp;lt;code&amp;gt;set &amp;lt;Name&amp;gt; flash &amp;lt;Verzeichnis&amp;gt;&amp;lt;.hex-Datei&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
kann man den Arduino-Uno &amp;quot;flashen&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;set Arduino flash /opt/fhem/FHEM/fhemduino/fhemduino.hex&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Intertechno Steckdose definieren ==&lt;br /&gt;
Befehl, um z.B. eine Intertechno Steckdose zu definieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;define IT_ST_1 Arduino_PT2262 0F00F0FFFF FF F0 &amp;lt;/code&amp;gt;&lt;br /&gt;
Berechnung der IT Codes gibt es hier: [http://www.fhemwiki.de/wiki/Intertechno_Code_Berechnung InterTechno Code Berechnung]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/mdorenka/fhemduino/blob/master/src/sketch.ino FHEMduino Quellcode auf github]&lt;br /&gt;
* [https://github.com/mdorenka/fhemduino_modules FHEM Module auf github]&lt;br /&gt;
* {{Link2Forum|Topic=17196|LinkText=Forenthread}}, der die Entwicklung dieses Projekts begleitet&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Arduino]]&lt;/div&gt;</summary>
		<author><name>Berndd</name></author>
	</entry>
</feed>