<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.ethersex.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kpwg</id>
		<title>Ethersex_Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.ethersex.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kpwg"/>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php/Special:Contributions/Kpwg"/>
		<updated>2026-05-25T02:50:54Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Nutzung_in_FHEM_(Deutsch)&amp;diff=1789</id>
		<title>Nutzung in FHEM (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Nutzung_in_FHEM_(Deutsch)&amp;diff=1789"/>
				<updated>2017-01-22T13:26:21Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /*  HD44780 Punktmatrixdisplays */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Nutzung in FHEM}}&lt;br /&gt;
&lt;br /&gt;
[http://www.fhemwiki.de/wiki/Hauptseite FHEM] ist ein Hausautomations-Server von Rudolf Koenig et al. in Perl geschrieben, um diverse per Funk und Kabel angebundene Komponenten aus dem Bereich der Hausautomation zu steuern. Er ist lizensiert unter der GPL v2.&lt;br /&gt;
&lt;br /&gt;
Das [http://www.pollin.de/shop/suchergebnis.html?S_TEXT=810+058 AVR-Net-IO] von [http://www.pollin.de Pollin] mit [[Ethersex]] dient als [http://www.fhemwiki.de/wiki/AVR-NET-IO preisgünstiger Einstieg in die Hausautomatisierung]. Verwendbar ist aber auch jede andere [[Supported_Boards_(Deutsch) | Hardware]], die von Ethersex unterstützt wird (Arduino, eigene Entwicklungen, etc.). Über [[ECMD]] lassen sich dabei theoretisch alle in [[Ethersex]] vorhandenen [[ECMD_Protocols_%28Deutsch%29 | Möglichkeiten]] nutzen, sofern in FHEM entsprechende [http://fhem.de/commandref.html#ECMD ECMD-Devices] definiert und eingebunden werden, die passende Klassendefinition exisitert und die Aktion ausgelöst wird.&lt;br /&gt;
&lt;br /&gt;
== Grundlagen ==&lt;br /&gt;
&lt;br /&gt;
Ausgehend von einem fertigen und per Telnet erreichbaren Ethersex muss in FHEM zuerst das entsprechende Device definiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_WZ ECMD telnet 192.168.3.81:2701&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine serielle Anbindung kann mit ''define &amp;lt;name&amp;gt; ECMD serial &amp;lt;SerialDevice&amp;gt;[&amp;lt;@BaudRate&amp;gt;]'' alternativ erfolgen. &lt;br /&gt;
&lt;br /&gt;
Anschließend werden die erstellten .classdef-Konfigurationsdateien der einzelnen Funktionen dem System bekannt gemacht. In diesen .classdef-Dateien (Name und Endung sind frei wählbar!) wird die Schnittstelle zwischen FHEM und ECMD/Ethersex definiert. Dabei können mit perl übergebene Parameter und empfangene Daten bearbeitet sowie die in FHEM gebräuchlichen Readings erstellt werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr NETIO_WZ classdefs RFM12_2272=/opt/fhem/FHEM/rfm12_2272.classdef:RFM12_IT=/opt/fhem/FHEM/rfm12_it.classdef:LCD=/opt/fhem/FHEM/lcd.classdef:DHT22=/opt/fhem/FHEM/dht22.classdef:1WIRE=/opt/fhem/FHEM/1wire.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Definitionen für IC2272, Intertechno, HD44780-LCD, DHT22 und 1wire sind nun eingebunden. In den folgenden Abschnitten wird auf die einzelnen Devices näher eingegangen. Generell sind Pfade und IP-Adressen sowie übergebene Parameter noch entsprechend der eigenen Konfiguration anzupassen.&lt;br /&gt;
&lt;br /&gt;
== [[Onewire_(Deutsch) | 1-Wire Temperatursensoren]] ==&lt;br /&gt;
&lt;br /&gt;
[[File:DS18B20.jpg|150px|thumb|right|DS18B20-Sensoren]]&lt;br /&gt;
Die 1wire-Temperatursensoren DS18B20 oder DS18S20 werden im [[Onewire_(Deutsch)#Polling_Modus | Polling Modus]] abgefragt. Das macht die zyklische Abfrage aus FHEM heraus wesentlich einfacher. Eine Polling-Zeit von mindestens 30 Sekunden ist absolut ausreichend.Im Vorfeld sollte man sich die [[Onewire_(Deutsch)#Benennung_von_Sensoren | ROM-Codes der Sensoren]] notieren, da diese nachher benötigt werden. &lt;br /&gt;
&lt;br /&gt;
1w-temp.classdef erstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Uebergabeparameter Onewire Rom-Code&lt;br /&gt;
params devID&lt;br /&gt;
# Umsetzung in ECMD Befehle 1w get = Temperatur auslesen&lt;br /&gt;
get 1W cmd {&amp;quot;1w get %devID\n&amp;quot;}&lt;br /&gt;
get 1W expect &amp;quot;\d+.\d+\n&amp;quot;&lt;br /&gt;
get 1W postproc {\&lt;br /&gt;
 s/\n//g;\&lt;br /&gt;
 my $hash  = $defs{%NAME};\&lt;br /&gt;
 my $temperature = $_;\&lt;br /&gt;
 my $state = &amp;quot;T: $temperature&amp;quot;;\&lt;br /&gt;
 \&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;temperature&amp;quot;, $temperature, 1);\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;state&amp;quot;, $state, 1);\&lt;br /&gt;
 \&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die classdef wird eingebunden: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_KU ECMD telnet 192.168.3.82:2701&lt;br /&gt;
attr NETIO_KU classdefs 1W-TEMP=/opt/fhem/FHEM/1w-temp.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Sensoren werden anhand des ROM-Code definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define HZ_WW ECMDDevice 1W-TEMP 284c8820050003d4&lt;br /&gt;
attr HZ_WW IODev NETIO_KU&lt;br /&gt;
define HZ_VL ECMDDevice 1W-TEMP 2890a520050003d7&lt;br /&gt;
attr HZ_VL IODev NETIO_KU&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine zyklische Messung pro Minute lässt sich in dieser Form auslösen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Messung_1w at +*00:01 get HZ_WW 1W;; get HZ_VL 1W&lt;br /&gt;
attr Messung_1w verbose 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[DHT|DHT22 Temperatur-/Feuchtesensoren]] ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHT22.jpg|150px|thumb|right|DHT22-Sensoren]]&lt;br /&gt;
[[Ethersex]] unterstützt die preiswerten Temperatur-/Feuchtesensoren [[DHT|DHT11 und DHT22]], wobei letztere [[DHT#DHT11_vs_DHT22|um einiges genauer sind]].&lt;br /&gt;
&lt;br /&gt;
Die Sensoren benötigen 5V Betriebsspannung und kommunizieren über je einen Pin mit dem Prozessor. Der Preis pro Stück liegt derzeit bei etwa 3.50 Euro (ebay/China). Wer die Trägheit und Ungenauigkeit der S300TH oder TX29DTH kennt, wünscht sich vermutlich Besseres; vor allem bei Berechnung von [http://de.wikipedia.org/wiki/Taupunkt Taupunkt] und [http://de.wikipedia.org/wiki/Luftfeuchtigkeit#Absolute_Luftfeuchtigkeit absoluter Feuchte], welche von der Genauigkeit der gemessenen Eingangsgrößen sehr profitieren. Berechnungen von Hand kann man beim [http://www.wetterochs.de/wetter/feuchte.html Wetterochs] durchführen. Die automatische Berechnung der absoluten Feuchte in FHEM wird im [http://forum.fhem.de/index.php/topic,21458.0.html Forum] erklärt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einbindung in FHEM'''&lt;br /&gt;
&lt;br /&gt;
dht22m.classdef erstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Uebergabeparameter DHT22 ID 0...n&lt;br /&gt;
params devID&lt;br /&gt;
# Umsetzung in ECMD Befehle fuer DHT22&lt;br /&gt;
get DHT cmd {&amp;quot;dht temp %devID\n\000dht humid %devID\n&amp;quot;}&lt;br /&gt;
get DHT expect &amp;quot;-?\d+.\d\n&amp;quot;&lt;br /&gt;
get DHT postproc {\&lt;br /&gt;
 s/(.*)\n(.*)\n/T: $1 H: $2/;\&lt;br /&gt;
 my $hash  = $defs{%NAME};\&lt;br /&gt;
 my $temperature = $1;\&lt;br /&gt;
 my $humidity = $2;\&lt;br /&gt;
 my $state = $_;\&lt;br /&gt;
 \&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;temperature&amp;quot;, $temperature, 1);\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;humidity&amp;quot;, $humidity, 1);\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;state&amp;quot;, $state, 1);\&lt;br /&gt;
 \&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die classdef wird eingebunden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_TEST ECMD telnet 192.168.3.89:2701&lt;br /&gt;
attr NETIO_TEST classdefs DHT22M=/opt/fhem/FHEM/dht22m.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Sensoren werden definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Test0 ECMDDevice DHT22M 0&lt;br /&gt;
attr Test0 IODev NETIO_TEST&lt;br /&gt;
define Test1 ECMDDevice DHT22M 1&lt;br /&gt;
attr Test1 IODev NETIO_TEST&lt;br /&gt;
define Test2 ECMDDevice DHT22M 2&lt;br /&gt;
attr Test2 IODev NETIO_TEST&lt;br /&gt;
define Test3 ECMDDevice DHT22M 3&lt;br /&gt;
attr Test3 IODev NETIO_TEST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine zyklische Messung alle 4 Minuten könnte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
define Messung_DHT at +*00:04 get Test0 DHT;; get Test1 DHT;; get Test2 DHT;; get Test3 DHT&lt;br /&gt;
attr Messung_DHT verbose 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fünfzehn Messwerte pro Stunde genügen den allermeisten Anforderungen.&lt;br /&gt;
&lt;br /&gt;
== [[BMP085 | BMP085/BMP180 Luftdrucksensor]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:BMP180.jpg|150px|thumb|right|BMP180 (unten links)]]&lt;br /&gt;
&lt;br /&gt;
Ethersex unterstützt den BMP085 (bzw. den BMP180; der Code ist identisch) über das [[I2C_(Deutsch) | I2C]]-Interface. Da der Sensor für 3.3V Betriebsspannung ausgelegt ist, muss entweder der I2C-Pegel angepasst oder der ATMega auf 3.3V adaptiert werden. Weiterhin sollte die Höhe über Null bekannt sein. Beispiel: Eine Abfrage per [[ECMD]] mit ''bmp085 pressnn 59000'' bedeutet, das ich 590m (59000cm) über NN wohne. Sollte der Befehl ''bmp085 pressnn'' aus Platzgründen nicht mehr in Image passen, kann man die Umrechnung auf Normal Null alternativ auch in der classdef erledigen.&lt;br /&gt;
&lt;br /&gt;
Die im Sensor verfügbare Temperatur wird parallel ausgelesen.&lt;br /&gt;
&lt;br /&gt;
'''Einbindung in FHEM'''&lt;br /&gt;
&lt;br /&gt;
bmp085.classdef erstellen, falls ''presnn'' unterstützt wird (59000 durch eigene Höhe in cm ersetzen!):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
get BMP cmd {&amp;quot;bmp085 temp\n\000bmp085 pressnn 59000\n&amp;quot;}&lt;br /&gt;
get BMP expect &amp;quot;.*&amp;quot;&lt;br /&gt;
get BMP postproc {\&lt;br /&gt;
 s/(.*)\n(.*)\n/T: $1 P: $2/;\&lt;br /&gt;
 my $hash  = $defs{%NAME};\&lt;br /&gt;
 my $temperature = $1/10;\&lt;br /&gt;
 my $pressure = sprintf(&amp;quot;%.1f&amp;quot;,$2/100);\&lt;br /&gt;
 my $state = &amp;quot;T: $temperature P: $pressure&amp;quot;;\&lt;br /&gt;
 \&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;temperature&amp;quot;, $temperature, 1);\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;pressure&amp;quot;, $pressure, 1);\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;state&amp;quot;, $state, 1);\&lt;br /&gt;
 \&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Temperatur wird in °C mit einer Nachkommastelle gelesen, der Luftdruck in hPa bzw. mbar auf eine Nachkommastelle gerundet. Passende Readings werden erstellt. Das expect .* kann noch angepasst werden, um bei fehlerhaften Messwerten entsprechend zu reagieren.&lt;br /&gt;
&lt;br /&gt;
Die classdef wird in FHEM eingebunden (mehrere .classdef mit Doppelpunkt trennen: siehe [[Nutzung_in_FHEM_(Deutsch)#Grundlagen | Grundlagen]]):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_STK ECMD telnet 192.168.3.89:2701&lt;br /&gt;
attr NETIO_STK classdefs BMP=/opt/fhem/FHEM/bmp085.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Sensor wird definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define BMP180 ECMDDevice BMP&lt;br /&gt;
attr BMP180 IODev NETIO_STK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das STATE ''kann'' mit Maßeinheiten versehen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr BMP180 stateFormat { sprintf(&amp;quot;%s°C %shPa&amp;quot;, ReadingsVal(&amp;quot;BMP180&amp;quot;,&amp;quot;temperature&amp;quot;,0), ReadingsVal(&amp;quot;BMP180&amp;quot;,&amp;quot;pressure&amp;quot;,0)) ;; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine zyklische Messung alle 4 Minuten erfolgt wieder mit ''at'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Messung_BMP at +*00:04 get BMP180 BMP&lt;br /&gt;
attr Messung_BMP verbose 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei unterdrückt verbose 0 einen zusätzlichen (doppelten) Logeintrag des Messvorganges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternative bmp085.classdef, die die Umrechnung auf Normal Null in Perl macht (590 durch eigene Höhe in m ersetzen):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
get pressure cmd {&amp;quot;bmp085 apress\n&amp;quot;}&lt;br /&gt;
get pressure expect &amp;quot;\d+\n&amp;quot;&lt;br /&gt;
get pressure postproc { s/(..)\n/.$1/; $_/=(1-(590/44330.7692))**5.255; $_ }&lt;br /&gt;
get temp cmd {&amp;quot;bmp085 temp\n&amp;quot;}&lt;br /&gt;
get temp expect &amp;quot;\d+\n&amp;quot;&lt;br /&gt;
get temp postproc { s/(.)\n/.$1/; $_ }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei diesem Beispiel können Temperatur und Druck separat ausgelesen werden, hier ein Beispiel für das zyklische Auslesen beider Werte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Messung_BMP at +*00:04 get BMP180 pressure ;; get BMP180 temp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== analoge Eingänge abfragen ==&lt;br /&gt;
&lt;br /&gt;
Die analogen Eingänge des ATMega sind recht simpel abzufragen. Dabei werden die hexadezimalen Werte gleich dezimal gewandelt, um die Weiterverarbeitung zu erleichtern.&lt;br /&gt;
&lt;br /&gt;
'''Einbindung in FHEM'''&lt;br /&gt;
&lt;br /&gt;
adc.classdef erstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
get value cmd {&amp;quot;adc get %PortID\n&amp;quot;}&lt;br /&gt;
params PortID&lt;br /&gt;
get value expect &amp;quot;.*&amp;quot;&lt;br /&gt;
get value postproc {\&lt;br /&gt;
 my $hexval = hex(trim(&amp;quot;$_&amp;quot;));\&lt;br /&gt;
 my $hash  = $defs{%NAME};\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;state&amp;quot;, $hexval, 1);\&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die classdef wird eingebunden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_KU ECMD telnet 192.168.3.89:2701&lt;br /&gt;
attr NETIO_KU classdefs ADC=/opt/fhem/FHEM/adc.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Sensoren an den ersten beiden Ports werden definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define MP_0 ECMDDevice ADC 0&lt;br /&gt;
attr MP_0 IODev NETIO_KU&lt;br /&gt;
define MP_1 ECMDDevice ADC 1&lt;br /&gt;
attr MP_1 IODev NETIO_KU&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine zyklische Messung alle 60 Sekunden funktioniert damit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Messung_adc at +*00:01 get MP_0 value;; get MP_1 value&lt;br /&gt;
attr Messung_adc verbose 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== digitale Eingänge abfragen ==&lt;br /&gt;
&lt;br /&gt;
todo&lt;br /&gt;
&lt;br /&gt;
== digitale Eingänge - proaktiv ==&lt;br /&gt;
&lt;br /&gt;
Kontakte, die bei Zustandsänderung sofort in FHEM eine Meldung erzeugen sollen, kann man nicht zeitnah mit Polling abfragen. Diese Ereignisse, welche auch aus einem Control6-Script heraus generiert sein können, sollen selbst Meldung machen. Hierbei wird die ESEND-Funktion benutzt, mit welcher auch mehrere Ethersex'e untereinander kommunizieren können. Dabei ist es nicht relevant, ob das Device in FHEM per ECMDDevice bereits eingebunden wurde. Zuerst muss FHEM auf Port 2701 für Telnet-Verbindungen empfänglich werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define telnetECMD telnet 2701 global&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mit ''Watch io changes and react'' lässt sich per menuconfig bereits auf einfache Weise eine Abfrage von Portpins mit Generierung eines ESEND-Befehles bewerkstelligen. Das Beispiel soll zeigen, wie bei entsprechender Zustandsänderung an Pin PA0 an 192.168.178.10 ein FHEM-Befehl gesendet wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ECMDTCP(PA0, RISING, 192.168.178.10, set Lampe on\n\n)&lt;br /&gt;
ECMDTCP(PA0, FALLING, 192.168.178.10, set Lampe off\n\n)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jede Sequenz muss mit \n\n abgeschlossen werden, damit FHEM für weitere Befehle empfangsbereit bleibt. Falls man in FHEM flexibler bei der Weiterverarbeitung sein möchte, bietet sich eine dummy-notify-Kombination an.&lt;br /&gt;
&lt;br /&gt;
== [[Porterweiterungen_%28Deutsch%29#D.2FA-Wandler_mit_LTC1257 | LTC1257 D/A-Wandler]] ==&lt;br /&gt;
&lt;br /&gt;
[[File:LTC1257.jpg|150px|thumb|right|LTC1257 Digital-Analog-Wandler innerhalb einer Schaltung]]&lt;br /&gt;
Die 12bit Digital-Analog-Wandler von LINEAR TECHNOLOGY werden mit drei Pins bedient. Er wandelt (bei interner Referenzspannung) einen digital übermittelten Wert in eine Spannung von 0-2,048V um. Ein nachgeschalteter OPV als nichtinvertierender Verstärker kann diesen Bereich entsprechend skalieren. &lt;br /&gt;
&lt;br /&gt;
ltc1257.classdef erstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Umsetzung in ECMD Befehle&lt;br /&gt;
# Ein Uebergabeparameter -&amp;gt; Sollwert&lt;br /&gt;
set setDAC params dacValue&lt;br /&gt;
set setDAC cmd {&amp;quot;ltc1257_set %dacValue\n&amp;quot;}&lt;br /&gt;
set setDAC expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
# Keine Uebergabeparameter&lt;br /&gt;
set init cmd {&amp;quot;ltc1257_init\n&amp;quot;}&lt;br /&gt;
set init expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die classdef wird eingebunden: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_KU ECMD telnet 192.168.3.82:2701&lt;br /&gt;
attr NETIO_KU classdefs LTC1257=/opt/fhem/FHEM/ltc1257.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der LTC wird entsprechend definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define HZ_DAC ECMDDevice LTC1257&lt;br /&gt;
attr HZ_DAC IODev NETIO_KU&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun lässt sich mit einem '''set HZ_DAC init''' der LTC initialisieren (die gemessene Ausgangsspannung sollte 0V sein) und mit '''set HZ_DAC setDAC [0...4095]''' der gewünschte Wert setzen. Hier muss vorab experimentell entsprechend der nachfolgenden Beschaltung die tatsächliche Spannung ermittelt werden.&lt;br /&gt;
&lt;br /&gt;
== [[HD44780 | HD44780 LCD Punktmatrixdisplays]] ==&lt;br /&gt;
&lt;br /&gt;
[[File:HD44780.jpg|150px|thumb|right|verschiedene HD44780 Displays (16x1 bis 40x4)]]&lt;br /&gt;
Die beliebten Punktmatrix-Displays auf Basis [http://de.wikipedia.org/wiki/HD44780 HD44780] können vollumfänglich in FHEM beschrieben werden.&lt;br /&gt;
&lt;br /&gt;
'''Einbindung in FHEM'''&lt;br /&gt;
&lt;br /&gt;
lcd.classdef erstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Umsetzung der ECMD Befehle&lt;br /&gt;
set write params line col text  &lt;br /&gt;
set write cmd {&amp;quot;lcd goto %line %col\n\000lcd write %text\n&amp;quot;}&lt;br /&gt;
set write expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
set write postproc {s/([OK\n|;]*)/success/; &amp;quot;$_&amp;quot; eq &amp;quot;success&amp;quot; ? &amp;quot;ok&amp;quot; : &amp;quot;error&amp;quot;;}&lt;br /&gt;
set clear params col&lt;br /&gt;
set clear cmd {&amp;quot;lcd clear %col\n&amp;quot;}&lt;br /&gt;
set clear expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
set clear postproc {s/([OK\n|;]*)/success/; &amp;quot;$_&amp;quot; eq &amp;quot;success&amp;quot; ? &amp;quot;ok&amp;quot; : &amp;quot;error&amp;quot;;}&lt;br /&gt;
set clear_all cmd {&amp;quot;lcd clear\n&amp;quot;} &lt;br /&gt;
set clear_all expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
set clear_all postproc {s/([OK\n|;]*)/success/; &amp;quot;$_&amp;quot; eq &amp;quot;success&amp;quot; ? &amp;quot;ok&amp;quot; : &amp;quot;error&amp;quot;;}&lt;br /&gt;
set lcd_bl params state&lt;br /&gt;
set lcd_bl cmd {&amp;quot;lcd backlight %state\n&amp;quot;}&lt;br /&gt;
set lcd_bl expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
set lcd_bl postproc {s/([OK\n|;]*)/success/; &amp;quot;$_&amp;quot; eq &amp;quot;success&amp;quot; ? &amp;quot;ok&amp;quot; : &amp;quot;error&amp;quot;;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die classdef wird eingebunden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_TEST ECMD telnet 192.168.3.89:2701&lt;br /&gt;
attr NETIO_TEST classdefs LCD=/opt/fhem/FHEM/lcd.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Display wird definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define WZ_LCD ECMDDevice LCD&lt;br /&gt;
attr WZ_LCD IODev NETIO_TEST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es stehen in FHEM folgende Befehle für das LCD bereit:&lt;br /&gt;
{| border='1'&lt;br /&gt;
| ''Befehl''&lt;br /&gt;
| ''Funktion''&lt;br /&gt;
|-&lt;br /&gt;
| set WZ_LCD clear [ZEILE]&lt;br /&gt;
|  löscht den Inhalt einer ZEILE (0...3)&lt;br /&gt;
|-&lt;br /&gt;
| set WZ_LCD clear_all &lt;br /&gt;
|  löscht den Inhalt aller Zeilen&lt;br /&gt;
|-&lt;br /&gt;
| set WZ_LCD lcd_bl STATE &lt;br /&gt;
|  schaltet die Hintergrundbeleuchtung ein oder aus (STATE on oder off)&lt;br /&gt;
|-&lt;br /&gt;
| set WZ_LCD write [ZEILE] [SPALTE] [TEXT] &lt;br /&gt;
|  schreibt einen TEXT auf Position ZEILE SPALTE (0...n)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Da ein im TEXT übergebenes Leerzeichen als weiterer Befehl interpretiert wird und zu einer Fehlermeldung führt, ist eine Übergabe nur mit \x20 im Text möglich. &lt;br /&gt;
Das gilt auch für Umlaute. Anhand der [http://de.wikipedia.org/wiki/HD44780#Schrift_und_Zeichensatz Zeichensatztabelle] lassen sich ä durch \xE1, ü durch \xF5 und ö durch \xEF darstellen. Das ß wird mit \xE2 erreicht. Die Tabelle kann für manche Displays abweichend sein.&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel: ''set WZ_LCD write 0 0 Fenster\x20schlie\xE2en'' schreibt ein '''Fenster schließen''' auf's LCD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Komfortable Nutzung in FHEM mit DLCD'''&lt;br /&gt;
&lt;br /&gt;
Mit dem DLCD-Modul ([http://www.fhemwiki.de/wiki/DLCD Wiki-Beitrag] / [http://forum.fhem.de/index.php/topic,24519.0.html Foren-Beitrag]) für FHEM lässt sich jedes Display auf einfache Weise beschreiben. Dabei lassen sich bequem Readings von allen Devices nutzen, aufbereiten (formatieren, umrechnen, etc.) und entsprechend darstellen. Eine genaue Beschreibung hält der Wiki-Beitrag bereit; hier soll ein Beispiel gezeigt werden. Ziel war es, auf einem 16x1 LCD wechselweise ''Datum/Zeit =&amp;gt; Klimadaten Keller =&amp;gt; Datum/Zeit =&amp;gt; Klimadaten Garten'' darzustellen. Die Anzeige rotiert im 15-Sekunden-Takt, so das zu 50% Datum/Zeit und je 25% die Werte aus dem Garten und dem Keller angezeigt werden. Es wird bereits im Modul jedes Leerzeichen mit \x20 übersetzt. Der Außensensor ist ein [http://www.elv.de/elv-funk-kombi-wettersensor-ks-300-2-br-inkl-hochwertigem-2-m-edelstahlmast-br-und-qualitaetsbatterien.html KS300] (bzw. KS200) von ELV. Mit etwas Formatierung und ein paar Leerzeichen lässt sich eine stets gleiche Positionierung der Daten erreichen, da die Zeile nicht explizit gelöscht wird.&lt;br /&gt;
&lt;br /&gt;
Auszug aus der fhem.cfg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define DLCD_WZ DLCD&lt;br /&gt;
attr DLCD_WZ dlcdBlankspaceReplace \x20&lt;br /&gt;
attr DLCD_WZ dlcdCols 16&lt;br /&gt;
attr DLCD_WZ dlcdLine1 %date_WD_ger% %date_D%.%date_M_ger%  %time_h%:%time_m%&lt;br /&gt;
attr DLCD_WZ dlcdLine2 Keller:%1%/%2%&lt;br /&gt;
attr DLCD_WZ dlcdLine3 %date_WD_ger% %date_D%.%date_M_ger%  %time_h%:%time_m%&lt;br /&gt;
attr DLCD_WZ dlcdLine4 Garten: %3%/%4%&lt;br /&gt;
attr DLCD_WZ dlcdPhysicalRows 1&lt;br /&gt;
attr DLCD_WZ dlcdPollInterval 15&lt;br /&gt;
attr DLCD_WZ dlcdRows 4&lt;br /&gt;
attr DLCD_WZ dlcdScrolling 1&lt;br /&gt;
attr DLCD_WZ dlcdTriggerCmd set WZ_LCD write %L% 0 %T%&lt;br /&gt;
attr DLCD_WZ dlcdVal1 Keller:temperature&lt;br /&gt;
attr DLCD_WZ dlcdVal1formatnum 3+1&lt;br /&gt;
attr DLCD_WZ dlcdVal2 Keller:humidity&lt;br /&gt;
attr DLCD_WZ dlcdVal2formatnum 3+1&lt;br /&gt;
attr DLCD_WZ dlcdVal3 KS300:temperature&lt;br /&gt;
attr DLCD_WZ dlcdVal3formatnum 3+1+-&lt;br /&gt;
attr DLCD_WZ dlcdVal4 KS300:humidity&lt;br /&gt;
attr DLCD_WZ dlcdVal4formatnum 2+0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Ergebnis kann so aussehen:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
DLCD_1.jpg|Zustand 1.-15. Sekunde&lt;br /&gt;
DLCD_2.jpg|Zustand 16.-30. Sekunde&lt;br /&gt;
DLCD_3.jpg|Zustand 31.-45. Sekunde&lt;br /&gt;
DLCD_4.jpg|Zustand 46.-60. Sekunde&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die Formatierung bewirkt eine immer identische Platzierung der Daten. Der Außensensor hat keine Zehntelwerte bei der Feuchte, muss dafür aber negative Temperaturen darstellen. Der Innensensor zeigt Zehntelwerte, womit sich Tendenzen eher erkennen lassen.&lt;br /&gt;
&lt;br /&gt;
== [[RFM12_ASK_(Deutsch) | Intertechno schalten mit RFM12]] ==&lt;br /&gt;
&lt;br /&gt;
todo&lt;br /&gt;
&lt;br /&gt;
== [[RFM12_ASK_(Deutsch) | IC2272 schalten mit RFM12]] ==&lt;br /&gt;
&lt;br /&gt;
todo&lt;br /&gt;
&lt;br /&gt;
[[Category:Application|Application]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Nutzung_in_FHEM_(Deutsch)&amp;diff=1722</id>
		<title>Nutzung in FHEM (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Nutzung_in_FHEM_(Deutsch)&amp;diff=1722"/>
				<updated>2016-07-10T10:14:06Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* DHT22 Temperatur-/Feuchtesensoren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Nutzung in FHEM}}&lt;br /&gt;
&lt;br /&gt;
[http://www.fhemwiki.de/wiki/Hauptseite FHEM] ist ein Hausautomations-Server von Rudolf Koenig et al. in Perl geschrieben, um diverse per Funk und Kabel angebundene Komponenten aus dem Bereich der Hausautomation zu steuern. Er ist lizensiert unter der GPL v2.&lt;br /&gt;
&lt;br /&gt;
Das [http://www.pollin.de/shop/suchergebnis.html?S_TEXT=810+058 AVR-Net-IO] von [http://www.pollin.de Pollin] mit [[Ethersex]] dient als [http://www.fhemwiki.de/wiki/AVR-NET-IO preisgünstiger Einstieg in die Hausautomatisierung]. Verwendbar ist aber auch jede andere [[Supported_Boards_(Deutsch) | Hardware]], die von Ethersex unterstützt wird (Arduino, eigene Entwicklungen, etc.). Über [[ECMD]] lassen sich dabei theoretisch alle in [[Ethersex]] vorhandenen [[ECMD_Protocols_%28Deutsch%29 | Möglichkeiten]] nutzen, sofern in FHEM entsprechende [http://fhem.de/commandref.html#ECMD ECMD-Devices] definiert und eingebunden werden, die passende Klassendefinition exisitert und die Aktion ausgelöst wird.&lt;br /&gt;
&lt;br /&gt;
== Grundlagen ==&lt;br /&gt;
&lt;br /&gt;
Ausgehend von einem fertigen und per Telnet erreichbaren Ethersex muss in FHEM zuerst das entsprechende Device definiert werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_WZ ECMD telnet 192.168.3.81:2701&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine serielle Anbindung kann mit ''define &amp;lt;name&amp;gt; ECMD serial &amp;lt;SerialDevice&amp;gt;[&amp;lt;@BaudRate&amp;gt;]'' alternativ erfolgen. &lt;br /&gt;
&lt;br /&gt;
Anschließend werden die erstellten .classdef-Konfigurationsdateien der einzelnen Funktionen dem System bekannt gemacht. In diesen .classdef-Dateien (Name und Endung sind frei wählbar!) wird die Schnittstelle zwischen FHEM und ECMD/Ethersex definiert. Dabei können mit perl übergebene Parameter und empfangene Daten bearbeitet sowie die in FHEM gebräuchlichen Readings erstellt werden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr NETIO_WZ classdefs RFM12_2272=/opt/fhem/FHEM/rfm12_2272.classdef:RFM12_IT=/opt/fhem/FHEM/rfm12_it.classdef:LCD=/opt/fhem/FHEM/lcd.classdef:DHT22=/opt/fhem/FHEM/dht22.classdef:1WIRE=/opt/fhem/FHEM/1wire.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Definitionen für IC2272, Intertechno, HD44780-LCD, DHT22 und 1wire sind nun eingebunden. In den folgenden Abschnitten wird auf die einzelnen Devices näher eingegangen. Generell sind Pfade und IP-Adressen sowie übergebene Parameter noch entsprechend der eigenen Konfiguration anzupassen.&lt;br /&gt;
&lt;br /&gt;
== [[Onewire_(Deutsch) | 1-Wire Temperatursensoren]] ==&lt;br /&gt;
&lt;br /&gt;
[[File:DS18B20.jpg|150px|thumb|right|DS18B20-Sensoren]]&lt;br /&gt;
Die 1wire-Temperatursensoren DS18B20 oder DS18S20 werden im [[Onewire_(Deutsch)#Polling_Modus | Polling Modus]] abgefragt. Das macht die zyklische Abfrage aus FHEM heraus wesentlich einfacher. Eine Polling-Zeit von mindestens 30 Sekunden ist absolut ausreichend.Im Vorfeld sollte man sich die [[Onewire_(Deutsch)#Benennung_von_Sensoren | ROM-Codes der Sensoren]] notieren, da diese nachher benötigt werden. &lt;br /&gt;
&lt;br /&gt;
1w-temp.classdef erstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Uebergabeparameter Onewire Rom-Code&lt;br /&gt;
params devID&lt;br /&gt;
# Umsetzung in ECMD Befehle 1w get = Temperatur auslesen&lt;br /&gt;
get 1W cmd {&amp;quot;1w get %devID\n&amp;quot;}&lt;br /&gt;
get 1W expect &amp;quot;\d+.\d+\n&amp;quot;&lt;br /&gt;
get 1W postproc {\&lt;br /&gt;
 s/\n//g;\&lt;br /&gt;
 my $hash  = $defs{%NAME};\&lt;br /&gt;
 my $temperature = $_;\&lt;br /&gt;
 my $state = &amp;quot;T: $temperature&amp;quot;;\&lt;br /&gt;
 \&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;temperature&amp;quot;, $temperature, 1);\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;state&amp;quot;, $state, 1);\&lt;br /&gt;
 \&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die classdef wird eingebunden: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_KU ECMD telnet 192.168.3.82:2701&lt;br /&gt;
attr NETIO_KU classdefs 1W-TEMP=/opt/fhem/FHEM/1w-temp.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Sensoren werden anhand des ROM-Code definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define HZ_WW ECMDDevice 1W-TEMP 284c8820050003d4&lt;br /&gt;
attr HZ_WW IODev NETIO_KU&lt;br /&gt;
define HZ_VL ECMDDevice 1W-TEMP 2890a520050003d7&lt;br /&gt;
attr HZ_VL IODev NETIO_KU&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine zyklische Messung pro Minute lässt sich in dieser Form auslösen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Messung_1w at +*00:01 get HZ_WW 1W;; get HZ_VL 1W&lt;br /&gt;
attr Messung_1w verbose 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[DHT|DHT22 Temperatur-/Feuchtesensoren]] ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHT22.jpg|150px|thumb|right|DHT22-Sensoren]]&lt;br /&gt;
[[Ethersex]] unterstützt die preiswerten Temperatur-/Feuchtesensoren [[DHT|DHT11 und DHT22]], wobei letztere [[DHT#DHT11_vs_DHT22|um einiges genauer sind]].&lt;br /&gt;
&lt;br /&gt;
Die Sensoren benötigen 5V Betriebsspannung und kommunizieren über je einen Pin mit dem Prozessor. Der Preis pro Stück liegt derzeit bei etwa 3.50 Euro (ebay/China). Wer die Trägheit und Ungenauigkeit der S300TH oder TX29DTH kennt, wünscht sich vermutlich Besseres; vor allem bei Berechnung von [http://de.wikipedia.org/wiki/Taupunkt Taupunkt] und [http://de.wikipedia.org/wiki/Luftfeuchtigkeit#Absolute_Luftfeuchtigkeit absoluter Feuchte], welche von der Genauigkeit der gemessenen Eingangsgrößen sehr profitieren. Berechnungen von Hand kann man beim [http://www.wetterochs.de/wetter/feuchte.html Wetterochs] durchführen. Die automatische Berechnung der absoluten Feuchte in FHEM wird im [http://forum.fhem.de/index.php/topic,21458.0.html Forum] erklärt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einbindung in FHEM'''&lt;br /&gt;
&lt;br /&gt;
dht22m.classdef erstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Uebergabeparameter DHT22 ID 0...n&lt;br /&gt;
params devID&lt;br /&gt;
# Umsetzung in ECMD Befehle fuer DHT22&lt;br /&gt;
get DHT cmd {&amp;quot;dht temp %devID\n\000dht humid %devID\n&amp;quot;}&lt;br /&gt;
get DHT expect &amp;quot;-?\d+.\d\n&amp;quot;&lt;br /&gt;
get DHT postproc {\&lt;br /&gt;
 s/(.*)\n(.*)\n/T: $1 H: $2/;\&lt;br /&gt;
 my $hash  = $defs{%NAME};\&lt;br /&gt;
 my $temperature = $1;\&lt;br /&gt;
 my $humidity = $2;\&lt;br /&gt;
 my $state = $_;\&lt;br /&gt;
 \&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;temperature&amp;quot;, $temperature, 1);\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;humidity&amp;quot;, $humidity, 1);\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;state&amp;quot;, $state, 1);\&lt;br /&gt;
 \&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die classdef wird eingebunden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_TEST ECMD telnet 192.168.3.89:2701&lt;br /&gt;
attr NETIO_TEST classdefs DHT22M=/opt/fhem/FHEM/dht22m.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Sensoren werden definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Test0 ECMDDevice DHT22M 0&lt;br /&gt;
attr Test0 IODev NETIO_TEST&lt;br /&gt;
define Test1 ECMDDevice DHT22M 1&lt;br /&gt;
attr Test1 IODev NETIO_TEST&lt;br /&gt;
define Test2 ECMDDevice DHT22M 2&lt;br /&gt;
attr Test2 IODev NETIO_TEST&lt;br /&gt;
define Test3 ECMDDevice DHT22M 3&lt;br /&gt;
attr Test3 IODev NETIO_TEST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine zyklische Messung alle 4 Minuten könnte so aussehen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
define Messung_DHT at +*00:04 get Test0 DHT;; get Test1 DHT;; get Test2 DHT;; get Test3 DHT&lt;br /&gt;
attr Messung_DHT verbose 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fünfzehn Messwerte pro Stunde genügen den allermeisten Anforderungen.&lt;br /&gt;
&lt;br /&gt;
== [[BMP085 | BMP085/BMP180 Luftdrucksensor]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:BMP180.jpg|150px|thumb|right|BMP180 (unten links)]]&lt;br /&gt;
&lt;br /&gt;
Ethersex unterstützt den BMP085 (bzw. den BMP180; der Code ist identisch) über das [[I2C_(Deutsch) | I2C]]-Interface. Da der Sensor für 3.3V Betriebsspannung ausgelegt ist, muss entweder der I2C-Pegel angepasst oder der ATMega auf 3.3V adaptiert werden. Weiterhin sollte die Höhe über Null bekannt sein. Beispiel: Eine Abfrage per [[ECMD]] mit ''bmp085 pressnn 59000'' bedeutet, das ich 590m (59000cm) über NN wohne. Sollte der Befehl ''bmp085 pressnn'' aus Platzgründen nicht mehr in Image passen, kann man die Umrechnung auf Normal Null alternativ auch in der classdef erledigen.&lt;br /&gt;
&lt;br /&gt;
Die im Sensor verfügbare Temperatur wird parallel ausgelesen.&lt;br /&gt;
&lt;br /&gt;
'''Einbindung in FHEM'''&lt;br /&gt;
&lt;br /&gt;
bmp085.classdef erstellen, falls ''presnn'' unterstützt wird (59000 durch eigene Höhe in cm ersetzen!):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
get BMP cmd {&amp;quot;bmp085 temp\n\000bmp085 pressnn 59000\n&amp;quot;}&lt;br /&gt;
get BMP expect &amp;quot;.*&amp;quot;&lt;br /&gt;
get BMP postproc {\&lt;br /&gt;
 s/(.*)\n(.*)\n/T: $1 P: $2/;\&lt;br /&gt;
 my $hash  = $defs{%NAME};\&lt;br /&gt;
 my $temperature = $1/10;\&lt;br /&gt;
 my $pressure = sprintf(&amp;quot;%.1f&amp;quot;,$2/100);\&lt;br /&gt;
 my $state = &amp;quot;T: $temperature P: $pressure&amp;quot;;\&lt;br /&gt;
 \&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;temperature&amp;quot;, $temperature, 1);\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;pressure&amp;quot;, $pressure, 1);\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;state&amp;quot;, $state, 1);\&lt;br /&gt;
 \&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Temperatur wird in °C mit einer Nachkommastelle gelesen, der Luftdruck in hPa bzw. mbar auf eine Nachkommastelle gerundet. Passende Readings werden erstellt. Das expect .* kann noch angepasst werden, um bei fehlerhaften Messwerten entsprechend zu reagieren.&lt;br /&gt;
&lt;br /&gt;
Die classdef wird in FHEM eingebunden (mehrere .classdef mit Doppelpunkt trennen: siehe [[Nutzung_in_FHEM_(Deutsch)#Grundlagen | Grundlagen]]):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_STK ECMD telnet 192.168.3.89:2701&lt;br /&gt;
attr NETIO_STK classdefs BMP=/opt/fhem/FHEM/bmp085.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Sensor wird definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define BMP180 ECMDDevice BMP&lt;br /&gt;
attr BMP180 IODev NETIO_STK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das STATE ''kann'' mit Maßeinheiten versehen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr BMP180 stateFormat { sprintf(&amp;quot;%s°C %shPa&amp;quot;, ReadingsVal(&amp;quot;BMP180&amp;quot;,&amp;quot;temperature&amp;quot;,0), ReadingsVal(&amp;quot;BMP180&amp;quot;,&amp;quot;pressure&amp;quot;,0)) ;; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine zyklische Messung alle 4 Minuten erfolgt wieder mit ''at'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Messung_BMP at +*00:04 get BMP180 BMP&lt;br /&gt;
attr Messung_BMP verbose 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei unterdrückt verbose 0 einen zusätzlichen (doppelten) Logeintrag des Messvorganges.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternative bmp085.classdef, die die Umrechnung auf Normal Null in Perl macht (590 durch eigene Höhe in m ersetzen):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
get pressure cmd {&amp;quot;bmp085 apress\n&amp;quot;}&lt;br /&gt;
get pressure expect &amp;quot;\d+\n&amp;quot;&lt;br /&gt;
get pressure postproc { s/(..)\n/.$1/; $_/=(1-(590/44330.7692))**5.255; $_ }&lt;br /&gt;
get temp cmd {&amp;quot;bmp085 temp\n&amp;quot;}&lt;br /&gt;
get temp expect &amp;quot;\d+\n&amp;quot;&lt;br /&gt;
get temp postproc { s/(.)\n/.$1/; $_ }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei diesem Beispiel können Temperatur und Druck separat ausgelesen werden, hier ein Beispiel für das zyklische Auslesen beider Werte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Messung_BMP at +*00:04 get BMP180 pressure ;; get BMP180 temp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== analoge Eingänge abfragen ==&lt;br /&gt;
&lt;br /&gt;
Die analogen Eingänge des ATMega sind recht simpel abzufragen. Dabei werden die hexadezimalen Werte gleich dezimal gewandelt, um die Weiterverarbeitung zu erleichtern.&lt;br /&gt;
&lt;br /&gt;
'''Einbindung in FHEM'''&lt;br /&gt;
&lt;br /&gt;
adc.classdef erstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
get value cmd {&amp;quot;adc get %PortID\n&amp;quot;}&lt;br /&gt;
params PortID&lt;br /&gt;
get value expect &amp;quot;.*&amp;quot;&lt;br /&gt;
get value postproc {\&lt;br /&gt;
 my $hexval = hex(trim(&amp;quot;$_&amp;quot;));\&lt;br /&gt;
 my $hash  = $defs{%NAME};\&lt;br /&gt;
 readingsSingleUpdate($hash, &amp;quot;state&amp;quot;, $hexval, 1);\&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die classdef wird eingebunden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_KU ECMD telnet 192.168.3.89:2701&lt;br /&gt;
attr NETIO_KU classdefs ADC=/opt/fhem/FHEM/adc.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Sensoren an den ersten beiden Ports werden definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define MP_0 ECMDDevice ADC 0&lt;br /&gt;
attr MP_0 IODev NETIO_KU&lt;br /&gt;
define MP_1 ECMDDevice ADC 1&lt;br /&gt;
attr MP_1 IODev NETIO_KU&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine zyklische Messung alle 60 Sekunden funktioniert damit:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Messung_adc at +*00:01 get MP_0 value;; get MP_1 value&lt;br /&gt;
attr Messung_adc verbose 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== digitale Eingänge abfragen ==&lt;br /&gt;
&lt;br /&gt;
todo&lt;br /&gt;
&lt;br /&gt;
== digitale Eingänge - proaktiv ==&lt;br /&gt;
&lt;br /&gt;
Kontakte, die bei Zustandsänderung sofort in FHEM eine Meldung erzeugen sollen, kann man nicht zeitnah mit Polling abfragen. Diese Ereignisse, welche auch aus einem Control6-Script heraus generiert sein können, sollen selbst Meldung machen. Hierbei wird die ESEND-Funktion benutzt, mit welcher auch mehrere Ethersex'e untereinander kommunizieren können. Dabei ist es nicht relevant, ob das Device in FHEM per ECMDDevice bereits eingebunden wurde. Zuerst muss FHEM auf Port 2701 für Telnet-Verbindungen empfänglich werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define telnetECMD telnet 2701 global&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Mit ''Watch io changes and react'' lässt sich per menuconfig bereits auf einfache Weise eine Abfrage von Portpins mit Generierung eines ESEND-Befehles bewerkstelligen. Das Beispiel soll zeigen, wie bei entsprechender Zustandsänderung an Pin PA0 an 192.168.178.10 ein FHEM-Befehl gesendet wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ECMDTCP(PA0, RISING, 192.168.178.10, set Lampe on\n\n)&lt;br /&gt;
ECMDTCP(PA0, FALLING, 192.168.178.10, set Lampe off\n\n)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jede Sequenz muss mit \n\n abgeschlossen werden, damit FHEM für weitere Befehle empfangsbereit bleibt. Falls man in FHEM flexibler bei der Weiterverarbeitung sein möchte, bietet sich eine dummy-notify-Kombination an.&lt;br /&gt;
&lt;br /&gt;
== [[Porterweiterungen_%28Deutsch%29#D.2FA-Wandler_mit_LTC1257 | LTC1257 D/A-Wandler]] ==&lt;br /&gt;
&lt;br /&gt;
[[File:LTC1257.jpg|150px|thumb|right|LTC1257 Digital-Analog-Wandler innerhalb einer Schaltung]]&lt;br /&gt;
Die 12bit Digital-Analog-Wandler von LINEAR TECHNOLOGY werden mit drei Pins bedient. Er wandelt (bei interner Referenzspannung) einen digital übermittelten Wert in eine Spannung von 0-2,048V um. Ein nachgeschalteter OPV als nichtinvertierender Verstärker kann diesen Bereich entsprechend skalieren. &lt;br /&gt;
&lt;br /&gt;
ltc1257.classdef erstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Umsetzung in ECMD Befehle&lt;br /&gt;
# Ein Uebergabeparameter -&amp;gt; Sollwert&lt;br /&gt;
set setDAC params dacValue&lt;br /&gt;
set setDAC cmd {&amp;quot;ltc1257_set %dacValue\n&amp;quot;}&lt;br /&gt;
set setDAC expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
# Keine Uebergabeparameter&lt;br /&gt;
set init cmd {&amp;quot;ltc1257_init\n&amp;quot;}&lt;br /&gt;
set init expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die classdef wird eingebunden: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_KU ECMD telnet 192.168.3.82:2701&lt;br /&gt;
attr NETIO_KU classdefs LTC1257=/opt/fhem/FHEM/ltc1257.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der LTC wird entsprechend definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define HZ_DAC ECMDDevice LTC1257&lt;br /&gt;
attr HZ_DAC IODev NETIO_KU&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun lässt sich mit einem '''set HZ_DAC init''' der LTC initialisieren (die gemessene Ausgangsspannung sollte 0V sein) und mit '''set HZ_DAC setDAC [0...4095]''' der gewünschte Wert setzen. Hier muss vorab experimentell entsprechend der nachfolgenden Beschaltung die tatsächliche Spannung ermittelt werden.&lt;br /&gt;
&lt;br /&gt;
== [[LCD_(Deutsch) | HD44780 Punktmatrixdisplays]] ==&lt;br /&gt;
&lt;br /&gt;
[[File:HD44780.jpg|150px|thumb|right|verschiedene HD44780 Displays (16x1 bis 40x4)]]&lt;br /&gt;
Die beliebten Punktmatrix-Displays auf Basis [http://de.wikipedia.org/wiki/HD44780 HD44780] können vollumfänglich in FHEM beschrieben werden. Dabei wird vorrausgesetzt, das in [https://github.com/ethersex/ethersex/blob/master/hardware/lcd/hd44780.h /hardware/lcd/hd44780.h] beim entsprechenden Modell die passende Adressierung der Zeilen und die genutzte Zeilen-/Spaltenzahl vor dem Compilieren angepasst wurde.&lt;br /&gt;
&lt;br /&gt;
'''Einbindung in FHEM'''&lt;br /&gt;
&lt;br /&gt;
lcd.classdef erstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Umsetzung der ECMD Befehle&lt;br /&gt;
set write params line col text  &lt;br /&gt;
set write cmd {&amp;quot;lcd goto %line %col\n\000lcd write %text\n&amp;quot;}&lt;br /&gt;
set write expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
set write postproc {s/([OK\n|;]*)/success/; &amp;quot;$_&amp;quot; eq &amp;quot;success&amp;quot; ? &amp;quot;ok&amp;quot; : &amp;quot;error&amp;quot;;}&lt;br /&gt;
set clear params col&lt;br /&gt;
set clear cmd {&amp;quot;lcd clear %col\n&amp;quot;}&lt;br /&gt;
set clear expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
set clear postproc {s/([OK\n|;]*)/success/; &amp;quot;$_&amp;quot; eq &amp;quot;success&amp;quot; ? &amp;quot;ok&amp;quot; : &amp;quot;error&amp;quot;;}&lt;br /&gt;
set clear_all cmd {&amp;quot;lcd clear\n&amp;quot;} &lt;br /&gt;
set clear_all expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
set clear_all postproc {s/([OK\n|;]*)/success/; &amp;quot;$_&amp;quot; eq &amp;quot;success&amp;quot; ? &amp;quot;ok&amp;quot; : &amp;quot;error&amp;quot;;}&lt;br /&gt;
set lcd_bl params state&lt;br /&gt;
set lcd_bl cmd {&amp;quot;lcd backlight %state\n&amp;quot;}&lt;br /&gt;
set lcd_bl expect &amp;quot;OK\n&amp;quot;&lt;br /&gt;
set lcd_bl postproc {s/([OK\n|;]*)/success/; &amp;quot;$_&amp;quot; eq &amp;quot;success&amp;quot; ? &amp;quot;ok&amp;quot; : &amp;quot;error&amp;quot;;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die classdef wird eingebunden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define NETIO_TEST ECMD telnet 192.168.3.89:2701&lt;br /&gt;
attr NETIO_TEST classdefs LCD=/opt/fhem/FHEM/lcd.classdef&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Display wird definiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define WZ_LCD ECMDDevice LCD&lt;br /&gt;
attr WZ_LCD IODev NETIO_TEST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es stehen in FHEM folgende Befehle für das LCD bereit:&lt;br /&gt;
{| border='1'&lt;br /&gt;
| ''Befehl''&lt;br /&gt;
| ''Funktion''&lt;br /&gt;
|-&lt;br /&gt;
| set WZ_LCD clear [ZEILE]&lt;br /&gt;
|  löscht den Inhalt einer ZEILE (0...3)&lt;br /&gt;
|-&lt;br /&gt;
| set WZ_LCD clear_all &lt;br /&gt;
|  löscht den Inhalt aller Zeilen&lt;br /&gt;
|-&lt;br /&gt;
| set WZ_LCD lcd_bl STATE &lt;br /&gt;
|  schaltet die Hintergrundbeleuchtung ein oder aus (STATE on oder off)&lt;br /&gt;
|-&lt;br /&gt;
| set WZ_LCD write [ZEILE] [SPALTE] [TEXT] &lt;br /&gt;
|  schreibt einen TEXT auf Position ZEILE SPALTE (0...n)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Da ein im TEXT übergebenes Leerzeichen als weiterer Befehl interpretiert wird und zu einer Fehlermeldung führt, ist eine Übergabe nur mit \x20 im Text möglich. &lt;br /&gt;
Das gilt auch für Umlaute. Anhand der [http://de.wikipedia.org/wiki/HD44780#Schrift_und_Zeichensatz Zeichensatztabelle] lassen sich ä durch \xE1, ü durch \xF5 und ö durch \xEF darstellen. Das ß wird mit \xE2 erreicht. Die Tabelle kann für manche Displays abweichend sein.&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel: ''set WZ_LCD write 0 0 Fenster\x20schlie\xE2en'' schreibt ein '''Fenster schließen''' auf's LCD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Komfortable Nutzung in FHEM mit DLCD'''&lt;br /&gt;
&lt;br /&gt;
Mit dem DLCD-Modul ([http://www.fhemwiki.de/wiki/DLCD Wiki-Beitrag] / [http://forum.fhem.de/index.php/topic,24519.0.html Foren-Beitrag]) für FHEM lässt sich jedes Display auf einfache Weise beschreiben. Dabei lassen sich bequem Readings von allen Devices nutzen, aufbereiten (formatieren, umrechnen, etc.) und entsprechend darstellen. Eine genaue Beschreibung hält der Wiki-Beitrag bereit; hier soll ein Beispiel gezeigt werden. Ziel war es, auf einem 16x1 LCD wechselweise ''Datum/Zeit =&amp;gt; Klimadaten Keller =&amp;gt; Datum/Zeit =&amp;gt; Klimadaten Garten'' darzustellen. Die Anzeige rotiert im 15-Sekunden-Takt, so das zu 50% Datum/Zeit und je 25% die Werte aus dem Garten und dem Keller angezeigt werden. Es wird bereits im Modul jedes Leerzeichen mit \x20 übersetzt. Der Außensensor ist ein [http://www.elv.de/elv-funk-kombi-wettersensor-ks-300-2-br-inkl-hochwertigem-2-m-edelstahlmast-br-und-qualitaetsbatterien.html KS300] (bzw. KS200) von ELV. Mit etwas Formatierung und ein paar Leerzeichen lässt sich eine stets gleiche Positionierung der Daten erreichen, da die Zeile nicht explizit gelöscht wird.&lt;br /&gt;
&lt;br /&gt;
Auszug aus der fhem.cfg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define DLCD_WZ DLCD&lt;br /&gt;
attr DLCD_WZ dlcdBlankspaceReplace \x20&lt;br /&gt;
attr DLCD_WZ dlcdCols 16&lt;br /&gt;
attr DLCD_WZ dlcdLine1 %date_WD_ger% %date_D%.%date_M_ger%  %time_h%:%time_m%&lt;br /&gt;
attr DLCD_WZ dlcdLine2 Keller:%1%/%2%&lt;br /&gt;
attr DLCD_WZ dlcdLine3 %date_WD_ger% %date_D%.%date_M_ger%  %time_h%:%time_m%&lt;br /&gt;
attr DLCD_WZ dlcdLine4 Garten: %3%/%4%&lt;br /&gt;
attr DLCD_WZ dlcdPhysicalRows 1&lt;br /&gt;
attr DLCD_WZ dlcdPollInterval 15&lt;br /&gt;
attr DLCD_WZ dlcdRows 4&lt;br /&gt;
attr DLCD_WZ dlcdScrolling 1&lt;br /&gt;
attr DLCD_WZ dlcdTriggerCmd set WZ_LCD write %L% 0 %T%&lt;br /&gt;
attr DLCD_WZ dlcdVal1 Keller:temperature&lt;br /&gt;
attr DLCD_WZ dlcdVal1formatnum 3+1&lt;br /&gt;
attr DLCD_WZ dlcdVal2 Keller:humidity&lt;br /&gt;
attr DLCD_WZ dlcdVal2formatnum 3+1&lt;br /&gt;
attr DLCD_WZ dlcdVal3 KS300:temperature&lt;br /&gt;
attr DLCD_WZ dlcdVal3formatnum 3+1+-&lt;br /&gt;
attr DLCD_WZ dlcdVal4 KS300:humidity&lt;br /&gt;
attr DLCD_WZ dlcdVal4formatnum 2+0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das Ergebnis kann so aussehen:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
DLCD_1.jpg|Zustand 1.-15. Sekunde&lt;br /&gt;
DLCD_2.jpg|Zustand 16.-30. Sekunde&lt;br /&gt;
DLCD_3.jpg|Zustand 31.-45. Sekunde&lt;br /&gt;
DLCD_4.jpg|Zustand 46.-60. Sekunde&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Die Formatierung bewirkt eine immer identische Platzierung der Daten. Der Außensensor hat keine Zehntelwerte bei der Feuchte, muss dafür aber negative Temperaturen darstellen. Der Innensensor zeigt Zehntelwerte, womit sich Tendenzen eher erkennen lassen.&lt;br /&gt;
&lt;br /&gt;
== [[RFM12_ASK_(Deutsch) | Intertechno schalten mit RFM12]] ==&lt;br /&gt;
&lt;br /&gt;
todo&lt;br /&gt;
&lt;br /&gt;
== [[RFM12_ASK_(Deutsch) | IC2272 schalten mit RFM12]] ==&lt;br /&gt;
&lt;br /&gt;
todo&lt;br /&gt;
&lt;br /&gt;
[[Category:Application|Application]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Quick_Start_Guide_(Deutsch)&amp;diff=1687</id>
		<title>Quick Start Guide (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Quick_Start_Guide_(Deutsch)&amp;diff=1687"/>
				<updated>2016-02-01T07:08:33Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Quick Start Guide}}&lt;br /&gt;
Mit drei Schritten läuft Ethersex auf Ihrem Microcontroller!&lt;br /&gt;
&lt;br /&gt;
[[Quick_Start_Guide/Preparation_(Deutsch) | Step 1: Vorbereitung]]&lt;br /&gt;
&lt;br /&gt;
[[Quick_Start_Guide/Configuration_(Deutsch) | Step 2: Konfiguration]]&lt;br /&gt;
&lt;br /&gt;
[[Quick_Start_Guide/Flashing_(Deutsch) | Step 3: Flashen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Ethersex]]&lt;br /&gt;
[[Category:Quick Start Guide]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Flashing_(Deutsch)&amp;diff=1686</id>
		<title>Flashing (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Flashing_(Deutsch)&amp;diff=1686"/>
				<updated>2016-02-01T06:47:16Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Flashing}}&lt;br /&gt;
&lt;br /&gt;
= AVR Net-IO mit dem ATMEL Evaluations-Board von Pollin flashen=&lt;br /&gt;
&lt;br /&gt;
Als Einsteiger hat man es immer wieder schwer alle Information zu finden.&lt;br /&gt;
Ich habe lange gesucht bis ich das mit dem Flashen kapiert habe.&lt;br /&gt;
&lt;br /&gt;
== Benötigt wird: ==&lt;br /&gt;
* AVR Net-IO&lt;br /&gt;
* ATMEL Evaluations-Board&lt;br /&gt;
* ein 1:1 Kabel für den [[ISP]]-Port (10-poliger Pfostenstecker). &lt;br /&gt;
&lt;br /&gt;
=== Andere ISP-Programmer ===&lt;br /&gt;
Wer über einen ISP-Programmer mit 6-poligem Ausgang verfügt, kann sich ein Adapterkabel bauen. Zu den Pinbelegungen siehe Figure 4-1 auf Seite 5 von [http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf AVR042: AVR Hardware Design Considerations].&lt;br /&gt;
&lt;br /&gt;
Achtung, Pin 4 des 10-poligen Steckers ist auf dem AVR Net-IO nicht belegt! GND muss daher an einen der anderen Pins (6, 8 oder 10) angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
== Flashen unter Linux ==&lt;br /&gt;
Das 10-polige Kabel in die ISP-Buchse stecken.&lt;br /&gt;
Nun das AVR Net-IO Board mit Strom versorgen.&lt;br /&gt;
Wenn das ISP-Kabel richtig gesteckt ist, leuchtet auf dem Evalutions-Board die (gelbe) LED&lt;br /&gt;
&lt;br /&gt;
Nach dem Erzeugen der [[:Kategorie:StepByStep#Firmware_kompilieren|ethersex.hex]] kann man mit avrdude das Ganze flashen. Das nachfolgende Kommando ist bei einigen Parametern vom ISP-Programmer abhängig. Das nachfolgende Beispiel gilt für einen ISP-Programmer der über die serielle Schnittstelle arbeitet:&lt;br /&gt;
&lt;br /&gt;
  avrdude -v -p m32 -c ponyser -P /dev/ttyS0 -U flash:w:ethersex.hex &lt;br /&gt;
&lt;br /&gt;
Für eine USB-ISP-Programmer wäre statt dessen der folgende Befehl zu verwenden:&lt;br /&gt;
&lt;br /&gt;
  avrdude -v -p m32 -c stk500v2 -P /dev/ttyACM0 -U flash:w:ethersex.hex&lt;br /&gt;
&lt;br /&gt;
Für ein paralleles ISP-Kabel:&lt;br /&gt;
&lt;br /&gt;
  avrdude -p m32 -e -c stk200 -U flash:w:ethersex.hex&lt;br /&gt;
&lt;br /&gt;
Nach dem Flashen das ISP-Kabel entfernen und kurz die Stromversorgung unterbrechen um das Board zu rebooten.&lt;br /&gt;
&lt;br /&gt;
  * -p m32 steht für den ATMega32; -p m644 wäre der ATMega644&lt;br /&gt;
  * -v erweiterte Ausgaben&lt;br /&gt;
  * -c ponyser ist das Verfahren wie das Evalutions-Board die Daten flasht&lt;br /&gt;
  * -P ist die Serielle Schnittstelle an dem das Evalutions-Board angeschlossen ist (bei USB /dev/ttyUSB0)&lt;br /&gt;
  * -U was man machen möchte. In unserem Fall wollen wir das File ethersex.hex flashen (-U flash:w:ethersex.hex)&lt;br /&gt;
&lt;br /&gt;
Es kann sein das man für den ATMega32 die FUSE Bits setzen muss.&lt;br /&gt;
&lt;br /&gt;
  avrdude -p m32 -c ponyser -P /dev/ttyS0 -U lfuse:w:0xCF:m -U hfuse:w:0xDC:m&lt;br /&gt;
&lt;br /&gt;
Um die korrekte Fuse-Einstellung rauszufinden, ist es sinnvoll http://www.engbedded.com/fusecalc/ zu benutzen.&lt;br /&gt;
&lt;br /&gt;
Die Parameter für MyAVR mySmartusb light (Insbesondere das -e war nötig):&lt;br /&gt;
  avrdude -p m32 -e -c stk500v2  -P /dev/ttyUSB0 -U flash:w:ethersex.hex&lt;br /&gt;
&lt;br /&gt;
== Umbau von einem ATMega32 auf den ATMega644 / ATMega644p ==&lt;br /&gt;
&lt;br /&gt;
Der Vorteil von ATMega644 und ATMega644p ist vor allem der doppelt so große Speicher gegenüber dem serienmäßigen ATMega32.&lt;br /&gt;
&lt;br /&gt;
=== Mikrocontroller tauschen ===&lt;br /&gt;
* Stromversorgung abschalten und ISP-Stecker abziehen.&lt;br /&gt;
* Den ATMega32 aus seinem Sockel auf dem AVR Net-IO ziehen.&lt;br /&gt;
* Den ATMega644 oder ATMega644p einbauen. (ACHTUNG: Kerbe im Sockel muss mit Kerbe in der CPU übereinstimmen)&lt;br /&gt;
&lt;br /&gt;
=== Fuse-Bits setzen ===&lt;br /&gt;
* ISP wieder einstecken und Stromversorgung einschalten.&lt;br /&gt;
* Fuse-Bits setzen&lt;br /&gt;
* '''Wichtig:''' im Auslieferungszustand ist der ATMega644 programmiert auf 8MHz interner RC-Oszillator '''und''' der Takt wird durch 8 geteilt; also 1MHz Takt. Wenn ein externer Quarz verwendet wir, muss das Bit CKDIV8 (Takt geteilt durch 8) auf null gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
* (Übernommen von dinus) Der ATMega wird dabei mit 1Mhz getaktet, kein JTAG.&lt;br /&gt;
  avrdude -p m644 -c ponyser -P /dev/ttyS0 -U lfuse:w:0xE7:m -U hfuse:w:0xDC:m -U efuse:w:0xFF:m&lt;br /&gt;
* bzw.&lt;br /&gt;
  avrdude -p m644p -c ponyser -P /dev/ttyS0 -U lfuse:w:0xE7:m -U hfuse:w:0xDC:m -U efuse:w:0xFF:m&lt;br /&gt;
&lt;br /&gt;
Fuse-Bits wie sie &amp;quot;DiDi&amp;quot; einsetzt. Der JTAG ist eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
  * -U lfuse:w:0xf7:m -U hfuse:w:0x99:m -U efuse:w:0xfc:m&lt;br /&gt;
&lt;br /&gt;
Fuse-Bits wie &amp;quot;loddel&amp;quot; sie einsetzt. Der JTAG ist ausgeschaltet.&lt;br /&gt;
&lt;br /&gt;
  * -U lfuse:w:0xf7:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m&lt;br /&gt;
  * -U lfuse:w:0xe7:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m&lt;br /&gt;
&lt;br /&gt;
Fuse-Bits wie &amp;quot;gregor&amp;quot; sie einsetzt. &amp;quot;Damit läuft der 644 auf 16MHz Quarz und der Takt wird nicht durch 8 geteilt.&amp;quot; Der JTAG ist eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
  * -U lfuse:w:0xef:m -U hfuse:w:0x99:m -U efuse:w:0xff:m&lt;br /&gt;
&lt;br /&gt;
=== Ethersex reinflashen===&lt;br /&gt;
* in der Config von Ethersex (make menuconfig) von ATmega32 auf ATMega644 umstellen&lt;br /&gt;
* Flashen mit&lt;br /&gt;
 avrdude -p m644 -c ponyser -P /dev/ttyS0 -U flash:w:ethersex.hex -v&lt;br /&gt;
* bzw.&lt;br /&gt;
 avrdude -p m644p -c ponyser -P /dev/ttyS0 -U flash:w:ethersex.hex -v&lt;br /&gt;
&lt;br /&gt;
=== Unterschiede zwischen ATMega32, ATMega644, ATMega644p und ATMega1284p===&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellspacing=0 padding=4 class=wikitable &amp;quot;&lt;br /&gt;
!          !! ATMega32 !! ATMega644 !! ATMega644p !! ATMega1284p&lt;br /&gt;
|-&lt;br /&gt;
| Gehäuse  || DIL-40   || DIL-40    || DIL-40     || DIL-40&lt;br /&gt;
|-&lt;br /&gt;
| MHz 	   || max. 16  || max. 20   || max. 20    || max. 20&lt;br /&gt;
|-&lt;br /&gt;
| Flash    || 32 KB    || 64 KB     || 64 KB      || 128 KB&lt;br /&gt;
|-&lt;br /&gt;
| EEProm   || 1 KB     || 2 KB      || 2 KB       || 4 KB&lt;br /&gt;
|-&lt;br /&gt;
| RAM      || 2 KB     || 4 KB      || 4 KB       || 16 KB&lt;br /&gt;
|-&lt;br /&gt;
| I/O      || 32       || 32        || 32         || 32&lt;br /&gt;
|-&lt;br /&gt;
| PWM      || 4        || 6         || 6          || 6&lt;br /&gt;
|-&lt;br /&gt;
| ext. INT || 3        || 32        || 32         || 32&lt;br /&gt;
|-&lt;br /&gt;
| Ser-Port || 1        || 1         || 2          || 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Datenblätter====&lt;br /&gt;
* [http://www.atmel.com/Images/doc2503.pdf AtMega32]&lt;br /&gt;
* [http://www.atmel.com/Images/doc2593.pdf ATMega644]&lt;br /&gt;
* [http://www.atmel.com/images/doc8011.pdf ATMega644p]&lt;br /&gt;
* [http://www.atmel.com/dyn/resources/prod_documents/8059S.pdf ATMega1284p]&lt;br /&gt;
&lt;br /&gt;
== Flashen unter Windows ==&lt;br /&gt;
Es gibt mindestens zwei Möglichkeiten:&lt;br /&gt;
#Flashen mit avrdude&lt;br /&gt;
#Flashen mit AVR Studio&lt;br /&gt;
&lt;br /&gt;
Wer keines der beiden Programme auf seine Festplatte legen möchte, weil er sein Windows-System nicht ändern möchte, kann auch die [[Live CD]] verwenden.&lt;br /&gt;
&lt;br /&gt;
===Flashen mit avrdude===&lt;br /&gt;
Das Flashen mit avrdude erfolgt prinzipiell genauso wie unter Linux (siehe oben).&lt;br /&gt;
&lt;br /&gt;
Ein Windows-Binary von avrdude erhält man am einfachsten als Bestandteil von [http://sourceforge.net/projects/winavr/ WinAVR]. (Ansonsten findet man ein Windows-Binary von avrdude auch auf [http://yuki-lab.jp/hw/avrdude-GUI/index.html dieser japanischen Seite], wo man auch eine GUI für avrdude bekommen kann. Google-Translate hilft den japanischen Text zu verstehen.) &lt;br /&gt;
&lt;br /&gt;
In der Kommandozeile muss natürlich die Bezeichnung des seriellen Ports angepasst werden, also &amp;quot;COMx&amp;quot; anstelle von &amp;quot;/dev/ttyS0&amp;quot;, z.B.&lt;br /&gt;
 avrdude -v -p m32 -c ponyser -P com3 -U flash:w:ethersex.hex &lt;br /&gt;
&lt;br /&gt;
Sofern der Programmer per USB angeschlossen ist, benötigt man &lt;br /&gt;
* bei echten USB-Programmern die libusb0.dll (bei WinAVR enthalten),&lt;br /&gt;
* bei Verwendung eines USB-nach-seriell-Adapters mit FTDI-Chip (dieser kann auch manchmal bereits in den Programmer mit USB-Anschluss eingebaut sein!) einen passenden Treiber, siehe http://www.ftdichip.com/Drivers/VCP.htm. &lt;br /&gt;
&lt;br /&gt;
===Flashen mit AVR Studio===&lt;br /&gt;
Das [[AVR Studio]] von Atmel bietet eine grafische Oberfläche zur Bedienung von ISPs.&lt;br /&gt;
&lt;br /&gt;
Beim AVR Studio werden USB-Treiber für USB-Programmer mitgeliefert, die optional zusammen mit dem AVR Studio installiert werden können.&lt;br /&gt;
&lt;br /&gt;
Für USB-nach-seriell-Adapter mit FTDI-Chip benötigt man einen passenden Treiber, siehe  http://www.ftdichip.com/Drivers/VCP.htm.&lt;br /&gt;
&lt;br /&gt;
=== Links zu Erfahrungsberichten ===&lt;br /&gt;
*http://www.saschakimmel.de/2010/02/ethersex-auf-avr-net-io-installieren-mittels-pollin-atmel-evaluationsboard-2-0-und-windows/ , jedoch nicht mit ISP-Kabel sondern mit Umstecken des Controllers.&lt;br /&gt;
&lt;br /&gt;
== Live-CD ==&lt;br /&gt;
Diese hat den Vorteil, dass man sein vorhandenes System nicht ändern muss.&lt;br /&gt;
&lt;br /&gt;
*  http://www.ethersex.de/index.php?title=Live_CD&lt;br /&gt;
* apt-get install libncurses5-dev&lt;br /&gt;
* update und installier software fuer ethersex wie beschrieben http://www.ethersex.de/index.php/Download&lt;br /&gt;
* wenn help in menuconfig nicht geht: apt-get install dialog &lt;br /&gt;
* weiter wie in &amp;quot;Flashen unter Linux&amp;quot; beschrieben.&lt;br /&gt;
&lt;br /&gt;
[[Category:StepByStep]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=ZBus_Serial_Host_(Deutsch)&amp;diff=1685</id>
		<title>ZBus Serial Host (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=ZBus_Serial_Host_(Deutsch)&amp;diff=1685"/>
				<updated>2016-02-01T06:44:18Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: Created page with &amp;quot;{{i18n|ZBus Serial Host}}  TTL-ZBus-Adapter mit MAX485, Terminierung und Bias-R's Da der  ZBus auf dem USART Feature basi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|ZBus Serial Host}}&lt;br /&gt;
&lt;br /&gt;
[[File:Zbus_ttl.jpg|thumb|right|TTL-ZBus-Adapter mit MAX485, Terminierung und Bias-R's]]&lt;br /&gt;
Da der [[ZBus_(Deutsch) | ZBus]] auf dem USART Feature basiert, welches alle ATmegas haben, können wir einfach eine ZBus Netzwerkschnittstelle an unserem Computer anschließen.&lt;br /&gt;
Die serielle Schnittstelle (auch bekannt als COM-Port oder RS232) ist nur eine normale USART mit Pegelwandler (-3V - +15V). Um eine RS485-Schnittstelle daraus zu machen, welche für den ZBus benötigt wird, nimmt man einen MAX232 (oder funktional ähnlich), um das RS232-Signal wieder in ein USART TTL-Signal zu wandeln. Ein RS485-Interface-Chip (z.B. ein MAX485, siehe Bild) konvertiert daraus das Differenzsignal.&lt;br /&gt;
&lt;br /&gt;
Einige Embedded-Gerät haben USARTs an Bord, die keinen Signalwandler besitzen- sie bieten das USART TTL-Signal direkt an. Man muss dann nur noch den RS485-Chip verbinden und den Treiber für die Architektur kompilieren. Der populäre Linksys WRT54G (WLAN-Router mit OpenWRT) ist so ein Embedded-Gerät mit einer TTL-USART an Bord.&lt;br /&gt;
&lt;br /&gt;
Auf der Software-Seite habe ich beschlossen, einen userland driver mit tun device anstatt eines Kernel-Moduls zu schreiben, weil es viel einfacher zu codieren und zu debuggen ist. Das Programm stellt eine übliche Netzwerkschnittstelle wie die Ethernet-Karte bereit und kann auch wie Diese verwendet werden (zum Beispiel Routing, verschiedene IP-Adressen und so weiter). Das ist sehr flexibel. Man kann den Treiber-Daemon bei [https://github.com/ethersex/ethersex/tree/master/contrib/zbus-serial-host contrib/zbus-serial-host] finden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zbus0     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  &lt;br /&gt;
          inet addr:192.168.9.1  P-t-P:192.168.9.1  Mask:255.255.255.0&lt;br /&gt;
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:174  Metric:1&lt;br /&gt;
          RX packets:16418 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:16423 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:500 &lt;br /&gt;
          RX bytes:1381934 (1.3 MiB)  TX bytes:1379532 (1.3 MiB)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZBus]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Control6_(Deutsch)&amp;diff=1682</id>
		<title>Control6 (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Control6_(Deutsch)&amp;diff=1682"/>
				<updated>2016-01-30T20:10:48Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Control6}}&lt;br /&gt;
{{Module&lt;br /&gt;
|NAME=Control6&lt;br /&gt;
|MENUCONFIG=General Setup-&amp;gt;Control6 script&lt;br /&gt;
|STATUS={{stable}}&lt;br /&gt;
|PINNING=no&lt;br /&gt;
|ECMD={{has_ecmd}}&lt;br /&gt;
|CONTROL6={{has_control6}}&lt;br /&gt;
|DEPENDS=-&lt;br /&gt;
|REQUIRES=-&lt;br /&gt;
|TIMER=-&lt;br /&gt;
|CODE=[https://github.com/ethersex/ethersex/tree/master/control6 https://github.com/ethersex/ethersex/tree/master/control6]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Control6''' ist eine auf [http://de.wikipedia.org/wiki/Protothread Protothreads] fußende Art von Skriptsprache, die ein wenig von ''Basic'' inspiriert ist.&lt;br /&gt;
Control6 soll insbesondere dazu dienen, dass man die einzelnen Komponenten von Ethersex schnell zusammenfügen kann.&lt;br /&gt;
Beispielsweise können in einer Endlosschleife die Temperaturen von KTY-Sensoren ausgelesen werden und in Abhängigkeit der Werte dann Pins geschaltet, [[SYSLOG_(Deutsch)|SYSLOG]]-Nachrichten abgesetzt oder [[ECMD_(Deutsch)|ECMD]]-Befehle versendet werden.&lt;br /&gt;
&lt;br /&gt;
Die Skripte werden während des Kompiliervorgangs in C-Code übersetzt und letztlich mit in die Firmware einkompiliert.&lt;br /&gt;
Sie sind somit ''statisch'' und nur durch Neuprogrammierung änderbar. &lt;br /&gt;
&lt;br /&gt;
==  So fängt man an ==&lt;br /&gt;
Standardmäßig werden, wenn in Menuconfig die Funktion ''Control6'' aktiviert wurde, die Instruktionen aus der Datei '''control6/control6.src''' in die Firmware eingebunden.  Für Eigenentwicklungen, die nicht in die &amp;quot;Distribution&amp;quot; aufgenommen werden sollen, empfiehlt es sich separate Dateien in der Ethersex Ordnerstruktur anzulegen, sodass es zu keinen (oder zumindest seltener) zu Konflikten beim Update auf eine neuere offizielle Firmwareversion kommt.&lt;br /&gt;
&lt;br /&gt;
Dazu einfach eine beliebige Datei im Stile der o.g. ''control6.src'' anlegen, zum Beispiel eine ''control6/erste-schritte.src'' und diese dem Makesystem bekannt machen.  Letzteres durch folgenden Eintrag in der Datei [[config.mk_(Deutsch)|config.mk]] im Hauptverzeichnis (wenn diese noch nicht existiert, einfach eine neue Datei anlegen und nur diese Zeile eintragen):&lt;br /&gt;
 C6_SOURCE = $(TOPDIR)/control6/erste-schritte.src&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Control6_Examples | Control6 Beispielcode]]&lt;br /&gt;
* [[PIN_Commands_(Deutsch) | Wie schreibe ich ein Control6 Skript]]&lt;br /&gt;
&lt;br /&gt;
== Konzepte ==&lt;br /&gt;
* Ein Control6-Skript wird immer von den Tags '''CONTROL_START''' und '''CONTROL_END''' umschlossen.&lt;br /&gt;
* Mit '''THREAD''' resp. '''THREAD_END''' können leicht quasi nebenläufige Programmabschnitte erstellt werden.  Dies ermöglicht mehrere Aufgaben, die miteinander nichts zu tun haben, auch getrennt voneinander im Control6-Code abzubilden.&lt;br /&gt;
&lt;br /&gt;
== Befehlssatz ==&lt;br /&gt;
Control6 ist momentan schon relativ mächtig und stellt durchaus eine Alternative zum Verfassen von C-Code dar.  Es werden aber nachwievor nicht alle Aspekte von Ethersex auch in Control6 abgebildet und noch weniger werden hier im Wiki bislang thematisiert.&lt;br /&gt;
&lt;br /&gt;
* übergreifende Funktionen&lt;br /&gt;
** [[Global_Variables_(Deutsch)|Globale Variablen]]&lt;br /&gt;
** [[PIN_Commands_(Deutsch)|Pin-Befehle]], Threading, Timer und Events&lt;br /&gt;
** [[Conditions_(Deutsch)|Bedingungen]]&lt;br /&gt;
* Einzelaspekte, siehe&lt;br /&gt;
** [[ADC_(Deutsch) | ADC-Werte abfragen]]&lt;br /&gt;
** [[Zugriff auf die Systemuhr]]&lt;br /&gt;
** [[Debug-Meldungen und SYSLOG]]&lt;br /&gt;
** [[ECMD-Befehle absetzen]]&lt;br /&gt;
** [[Jabber_(Deutsch) | Jabber]]&lt;br /&gt;
** [[eMail versenden]]&lt;br /&gt;
** [[Onewire_(Deutsch) | Dallas 1-wire Bus]]&lt;br /&gt;
** [[KTY81]]&lt;br /&gt;
** [[Einfaches Menüsystem|TTY und Menü-System]]&lt;br /&gt;
** [[IRMP_(Deutsch)|IR-Empfänger abfragen]]&lt;br /&gt;
** [[TCP-Client als FRITZ!Box Call Monitor]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Control6_(Deutsch)&amp;diff=1680</id>
		<title>Control6 (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Control6_(Deutsch)&amp;diff=1680"/>
				<updated>2016-01-30T20:07:15Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Control6}}&lt;br /&gt;
{{Module&lt;br /&gt;
|NAME=Control6&lt;br /&gt;
|MENUCONFIG=General Setup-&amp;gt;Control6 script&lt;br /&gt;
|STATUS={{stable}}&lt;br /&gt;
|PINNING=no&lt;br /&gt;
|ECMD={{has_ecmd}}&lt;br /&gt;
|CONTROL6={{has_control6}}&lt;br /&gt;
|DEPENDS=-&lt;br /&gt;
|REQUIRES=-&lt;br /&gt;
|TIMER=-&lt;br /&gt;
|CODE=[https://github.com/ethersex/ethersex/tree/master/control6 https://github.com/ethersex/ethersex/tree/master/control6]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Control6''' ist eine auf [http://de.wikipedia.org/wiki/Protothread Protothreads] fußende Art von Skriptsprache, die ein wenig von ''Basic'' inspiriert ist.&lt;br /&gt;
Control6 soll insbesondere dazu dienen, dass man die einzelnen Komponenten von Ethersex schnell zusammenfügen kann.&lt;br /&gt;
Beispielsweise können in einer Endlosschleife die Temperaturen von KTY-Sensoren ausgelesen werden und in Abhängigkeit der Werte dann Pins geschaltet, [[SYSLOG_(Deutsch)|SYSLOG]]-Nachrichten abgesetzt oder [[ECMD_(Deutsch)|ECMD]]-Befehle versendet werden.&lt;br /&gt;
&lt;br /&gt;
Die Skripte werden während des Kompiliervorgangs in C-Code übersetzt und letztlich mit in die Firmware einkompiliert.&lt;br /&gt;
Sie sind somit ''statisch'' und nur durch Neuprogrammierung änderbar. &lt;br /&gt;
&lt;br /&gt;
==  So fängt man an ==&lt;br /&gt;
Standardmäßig werden, wenn in Menuconfig die Funktion ''Control6'' aktiviert wurde, die Instruktionen aus der Datei '''control6/control6.src''' in die Firmware eingebunden.  Für Eigenentwicklungen, die nicht in die &amp;quot;Distribution&amp;quot; aufgenommen werden sollen, empfiehlt es sich separate Dateien in der Ethersex Ordnerstruktur anzulegen, sodass es zu keinen (oder zumindest seltener) zu Konflikten beim Update auf eine neuere offizielle Firmwareversion kommt.&lt;br /&gt;
&lt;br /&gt;
Dazu einfach eine beliebige Datei im Stile der o.g. ''control6.src'' anlegen, zum Beispiel eine ''control6/erste-schritte.src'' und diese dem Makesystem bekannt machen.  Letzteres durch folgenden Eintrag in der Datei [[config.mk_(Deutsch)|config.mk]] im Hauptverzeichnis (wenn diese noch nicht existiert, einfach eine neue Datei anlegen und nur diese Zeile eintragen):&lt;br /&gt;
 C6_SOURCE = $(TOPDIR)/control6/erste-schritte.src&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Control6_Examples_(Deutsch) | Control6 Beispielcode]]&lt;br /&gt;
* [[PIN_Commands_(Deutsch) | Wie schreibe ich ein Control6 Skript]]&lt;br /&gt;
&lt;br /&gt;
== Konzepte ==&lt;br /&gt;
* Ein Control6-Skript wird immer von den Tags '''CONTROL_START''' und '''CONTROL_END''' umschlossen.&lt;br /&gt;
* Mit '''THREAD''' resp. '''THREAD_END''' können leicht quasi nebenläufige Programmabschnitte erstellt werden.  Dies ermöglicht mehrere Aufgaben, die miteinander nichts zu tun haben, auch getrennt voneinander im Control6-Code abzubilden.&lt;br /&gt;
&lt;br /&gt;
== Befehlssatz ==&lt;br /&gt;
Control6 ist momentan schon relativ mächtig und stellt durchaus eine Alternative zum Verfassen von C-Code dar.  Es werden aber nachwievor nicht alle Aspekte von Ethersex auch in Control6 abgebildet und noch weniger werden hier im Wiki bislang thematisiert.&lt;br /&gt;
&lt;br /&gt;
* übergreifende Funktionen&lt;br /&gt;
** [[Global_Variables_(Deutsch)|Globale Variablen]]&lt;br /&gt;
** [[PIN_Commands_(Deutsch)|Pin-Befehle]], Threading, Timer und Events&lt;br /&gt;
** [[Conditions_(Deutsch)|Bedingungen]]&lt;br /&gt;
* Einzelaspekte, siehe&lt;br /&gt;
** [[ADC_(Deutsch) | ADC-Werte abfragen]]&lt;br /&gt;
** [[Zugriff auf die Systemuhr]]&lt;br /&gt;
** [[Debug-Meldungen und SYSLOG]]&lt;br /&gt;
** [[ECMD-Befehle absetzen]]&lt;br /&gt;
** [[Jabber_(Deutsch) | Jabber]]&lt;br /&gt;
** [[eMail versenden]]&lt;br /&gt;
** [[Onewire_(Deutsch) | Dallas 1-wire Bus]]&lt;br /&gt;
** [[KTY81]]&lt;br /&gt;
** [[Einfaches Menüsystem|TTY und Menü-System]]&lt;br /&gt;
** [[IRMP_(Deutsch)|IR-Empfänger abfragen]]&lt;br /&gt;
** [[TCP-Client als FRITZ!Box Call Monitor]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Control6_(Deutsch)&amp;diff=1677</id>
		<title>Control6 (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Control6_(Deutsch)&amp;diff=1677"/>
				<updated>2016-01-30T20:01:29Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Control6}}&lt;br /&gt;
{{Module&lt;br /&gt;
|NAME=Control6&lt;br /&gt;
|MENUCONFIG=General Setup-&amp;gt;Control6 script&lt;br /&gt;
|STATUS={{stable}}&lt;br /&gt;
|PINNING=no&lt;br /&gt;
|ECMD={{has_ecmd}}&lt;br /&gt;
|CONTROL6={{has_control6}}&lt;br /&gt;
|DEPENDS=-&lt;br /&gt;
|REQUIRES=-&lt;br /&gt;
|TIMER=-&lt;br /&gt;
|CODE=[https://github.com/ethersex/ethersex/tree/master/control6 https://github.com/ethersex/ethersex/tree/master/control6]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Control6''' ist eine auf [http://de.wikipedia.org/wiki/Protothread Protothreads] fußende Art von Skriptsprache, die ein wenig von ''Basic'' inspiriert ist.&lt;br /&gt;
Control6 soll insbesondere dazu dienen, dass man die einzelnen Komponenten von Ethersex schnell zusammenfügen kann.&lt;br /&gt;
Beispielsweise können in einer Endlosschleife die Temperaturen von KTY-Sensoren ausgelesen werden und in Abhängigkeit der Werte dann Pins geschaltet, [[SYSLOG_(Deutsch)|SYSLOG]]-Nachrichten abgesetzt oder [[ECMD_(Deutsch)|ECMD]]-Befehle versendet werden.&lt;br /&gt;
&lt;br /&gt;
Die Skripte werden während des Kompiliervorgangs in C-Code übersetzt und letztlich mit in die Firmware einkompiliert.&lt;br /&gt;
Sie sind somit ''statisch'' und nur durch Neuprogrammierung änderbar. &lt;br /&gt;
&lt;br /&gt;
==  So fängt man an ==&lt;br /&gt;
Standardmäßig werden, wenn in Menuconfig die Funktion ''Control6'' aktiviert wurde, die Instruktionen aus der Datei '''control6/control6.src''' in die Firmware eingebunden.  Für Eigenentwicklungen, die nicht in die &amp;quot;Distribution&amp;quot; aufgenommen werden sollen, empfiehlt es sich separate Dateien in der Ethersex Ordnerstruktur anzulegen, sodass es zu keinen (oder zumindest seltener) zu Konflikten beim Update auf eine neuere offizielle Firmwareversion kommt.&lt;br /&gt;
&lt;br /&gt;
Dazu einfach eine beliebige Datei im Stile der o.g. ''control6.src'' anlegen, zum Beispiel eine ''control6/erste-schritte.src'' und diese dem Makesystem bekannt machen.  Letzteres durch folgenden Eintrag in der Datei [[config.mk_(Deutsch)|config.mk]] im Hauptverzeichnis (wenn diese noch nicht existiert, einfach eine neue Datei anlegen und nur diese Zeile eintragen):&lt;br /&gt;
 C6_SOURCE = $(TOPDIR)/control6/erste-schritte.src&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Control6 Examples|Control6 Beispielcode]]&lt;br /&gt;
* [[PIN_Commands|Wie schreibe ich ein Control6 Skript]]&lt;br /&gt;
&lt;br /&gt;
== Konzepte ==&lt;br /&gt;
* Ein Control6-Skript wird immer von den Tags '''CONTROL_START''' und '''CONTROL_END''' umschlossen.&lt;br /&gt;
* Mit '''THREAD''' resp. '''THREAD_END''' können leicht quasi nebenläufige Programmabschnitte erstellt werden.  Dies ermöglicht mehrere Aufgaben, die miteinander nichts zu tun haben, auch getrennt voneinander im Control6-Code abzubilden.&lt;br /&gt;
&lt;br /&gt;
== Befehlssatz ==&lt;br /&gt;
Control6 ist momentan schon relativ mächtig und stellt durchaus eine Alternative zum Verfassen von C-Code dar.  Es werden aber nachwievor nicht alle Aspekte von Ethersex auch in Control6 abgebildet und noch weniger werden hier im Wiki bislang thematisiert.&lt;br /&gt;
&lt;br /&gt;
* übergreifende Funktionen&lt;br /&gt;
** [[Global_Variables_(Deutsch)|Globale Variablen]]&lt;br /&gt;
** [[PIN_Commands_(Deutsch)|Pin-Befehle]], Threading, Timer und Events&lt;br /&gt;
** [[Conditions_(Deutsch)|Bedingungen]]&lt;br /&gt;
* Einzelaspekte, siehe&lt;br /&gt;
** [[ADC_(Deutsch) | ADC-Werte abfragen]]&lt;br /&gt;
** [[Zugriff auf die Systemuhr]]&lt;br /&gt;
** [[Debug-Meldungen und SYSLOG]]&lt;br /&gt;
** [[ECMD-Befehle absetzen]]&lt;br /&gt;
** [[Jabber_(Deutsch) | Jabber]]&lt;br /&gt;
** [[eMail versenden]]&lt;br /&gt;
** [[Onewire_(Deutsch) | Dallas 1-wire Bus]]&lt;br /&gt;
** [[KTY81]]&lt;br /&gt;
** [[Einfaches Menüsystem|TTY und Menü-System]]&lt;br /&gt;
** [[IRMP_(Deutsch)|IR-Empfänger abfragen]]&lt;br /&gt;
** [[TCP-Client als FRITZ!Box Call Monitor]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Ethersex]]&lt;br /&gt;
[[Kategorie:Control6]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Config.mk_(Deutsch)&amp;diff=1673</id>
		<title>Config.mk (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Config.mk_(Deutsch)&amp;diff=1673"/>
				<updated>2016-01-30T19:56:48Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Config.mk}}&lt;br /&gt;
&lt;br /&gt;
Die Datei '''config.mk''' im Hauptverzeichnis der Ethersex-Ordnerstruktur ist quasi der Schlüssel zur Entwicklung eigener Ethersex-Komponenten, '''die nicht in Ethersex aufgenommen werden sollen''', weil sie schlicht zu speziell sind.&lt;br /&gt;
&lt;br /&gt;
Als Grundregel sollte in etwa gelten:  Wenn du etwas an Ethersex ergänzen möchtest, das nicht groß veröffentlicht werden soll, solltest du zusehen, dass du die bestehenden Dateien, die in Ethersex enthalten sind, nicht modifizierst.  Die Datei ''config.mk'' sowie Mechanismen wie die Meta-Bereiche ermöglichen dies weitestgehend.  Dieses Vorgehen hat für dich den Vorteil, dass es beim Aktualisieren auf eine neue Ethersex-Version nicht zu Konflikten zwischen deinen und unseren Modifikationen kommen kann.&lt;br /&gt;
&lt;br /&gt;
Wenn du ab und an Patches erstellen möchtest, machst du dir das Leben so ebenfalls einfacher, da du nicht mehr aufpassen musst, versehentlich etwas zu committen, das eigentlich gar nicht eingecheckt werden sollte.&lt;br /&gt;
&lt;br /&gt;
Also: Alles, was du am liebsten in die Datei ''Makefile'' im Hauptverzeichnis eintragen möchtest, trägst du einfach in die Datei ''config.mk'' ein.  Wenn es diese noch nicht gibt, leg' sie einfach an.&lt;br /&gt;
&lt;br /&gt;
== Weitere Ergänzungsdateien ==&lt;br /&gt;
=== protocols/ecmd/ecmd_defs.m4 ===&lt;br /&gt;
Statt die ''ecmd_defs.m4'' zu bearbeiten, kannst du auch irgendwo eine neue Datei anlegen und die gleiche Syntax wie in ''ecmd_defs.m4'' verwenden.  Dass das Make-System die Datei berücksichtigt, musst du sie noch registrieren.  Dazu dient wieder die ''config.mk'':&lt;br /&gt;
&lt;br /&gt;
 ECMD_DEFS_EXTRA += mycruft/private_ecmds.m4&lt;br /&gt;
&lt;br /&gt;
... und schon werden auch die Einträge in der Datei mycruft/private_ecmds.m4 entsprechend berücksichtigt.&lt;br /&gt;
&lt;br /&gt;
=== named_pin Konfiguration ===&lt;br /&gt;
Zunächst kopierst du dir am besten die Datei ''core/portio/config'' irgendwo hin und verwendest sie als Vorlage.  Um diese zu registrieren, verwenden wir die folgende Zeile in ''config.mk'':&lt;br /&gt;
&lt;br /&gt;
 NP_CONFIG = mycruft/named_pin.conf&lt;br /&gt;
&lt;br /&gt;
=== [[Control6_(Deutsch) | Control6]] Skript ===&lt;br /&gt;
Ein eigenes [[Control6_(Deutsch) | Control6]] Skript in einer von control6/control6.src abweichenden Datei kann du mit folgendem Statement registrieren:&lt;br /&gt;
&lt;br /&gt;
 C6_SOURCE = mycruft/wecky.src&lt;br /&gt;
 or&lt;br /&gt;
 C6_SOURCE = $(TOPDIR)/control6/you_programm.src&lt;br /&gt;
&lt;br /&gt;
== mögliche weitere Einträge ==&lt;br /&gt;
=== avrdude mit 'make dude644' aufrufen ===&lt;br /&gt;
 dude644: ethersex.hex&lt;br /&gt;
         avrdude -p m644 -c usbasp -V -Uflash:w:$&amp;lt;&lt;br /&gt;
&lt;br /&gt;
=== AVR mit 'make reset' via ISP resetten ===&lt;br /&gt;
 reset:&lt;br /&gt;
         avrdude -p m644 -c usbasp&lt;br /&gt;
&lt;br /&gt;
[[Category:development]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Control6_(Deutsch)&amp;diff=1661</id>
		<title>Control6 (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Control6_(Deutsch)&amp;diff=1661"/>
				<updated>2016-01-30T19:44:02Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Control6}}&lt;br /&gt;
{{Module&lt;br /&gt;
|NAME=Control6&lt;br /&gt;
|MENUCONFIG=General Setup-&amp;gt;Control6 script&lt;br /&gt;
|STATUS={{stable}}&lt;br /&gt;
|PINNING=no&lt;br /&gt;
|ECMD={{has_ecmd}}&lt;br /&gt;
|CONTROL6={{has_control6}}&lt;br /&gt;
|DEPENDS=-&lt;br /&gt;
|REQUIRES=-&lt;br /&gt;
|TIMER=-&lt;br /&gt;
|CODE=[https://github.com/ethersex/ethersex/tree/master/control6 https://github.com/ethersex/ethersex/tree/master/control6]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Control6''' ist eine auf [http://de.wikipedia.org/wiki/Protothread Protothreads] fußende Art von Skriptsprache, die ein wenig von ''Basic'' inspiriert ist.&lt;br /&gt;
Control6 soll insbesondere dazu dienen, dass man die einzelnen Komponenten von Ethersex schnell zusammenfügen kann.&lt;br /&gt;
Beispielsweise können in einer Endlosschleife die Temperaturen von KTY-Sensoren ausgelesen werden und in Abhängigkeit der Werte dann Pins geschaltet, [[SYSLOG_(Deutsch)|SYSLOG]]-Nachrichten abgesetzt oder [[ECMD_(Deutsch)|ECMD]]-Befehle versendet werden.&lt;br /&gt;
&lt;br /&gt;
Die Skripte werden während des Kompiliervorgangs in C-Code übersetzt und letztlich mit in die Firmware einkompiliert.&lt;br /&gt;
Sie sind somit ''statisch'' und nur durch Neuprogrammierung änderbar. &lt;br /&gt;
&lt;br /&gt;
==  So fängt man an ==&lt;br /&gt;
Standardmäßig werden, wenn in Menuconfig die Funktion ''Control6'' aktiviert wurde, die Instruktionen aus der Datei '''control6/control6.src''' in die Firmware eingebunden.  Für Eigenentwicklungen, die nicht in die &amp;quot;Distribution&amp;quot; aufgenommen werden sollen, empfiehlt es sich separate Dateien in der Ethersex Ordnerstruktur anzulegen, sodass es zu keinen (oder zumindest seltener) zu Konflikten beim Update auf eine neuere offizielle Firmwareversion kommt.&lt;br /&gt;
&lt;br /&gt;
Dazu einfach eine beliebige Datei im Stile der o.g. ''control6.src'' anlegen, zum Beispiel eine ''control6/erste-schritte.src'' und diese dem Makesystem bekannt machen.  Letzteres durch folgenden Eintrag in der Datei [[config.mk_(Deutsch)|config.mk]] im Hauptverzeichnis (wenn diese noch nicht existiert, einfach eine neue Datei anlegen und nur diese Zeile eintragen):&lt;br /&gt;
 C6_SOURCE = $(TOPDIR)/control6/erste-schritte.src&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Control6 Examples|Control6 Beispielcode]]&lt;br /&gt;
* [[PIN_Commands|Wie schreibe ich ein Control6 Skript]]&lt;br /&gt;
&lt;br /&gt;
== Konzepte ==&lt;br /&gt;
* Ein Control6-Skript wird immer von den Tags '''CONTROL_START''' und '''CONTROL_END''' umschlossen.&lt;br /&gt;
* Mit '''THREAD''' resp. '''THREAD_END''' können leicht quasi nebenläufige Programmabschnitte erstellt werden.  Dies ermöglicht mehrere Aufgaben, die miteinander nichts zu tun haben, auch getrennt voneinander im Control6-Code abzubilden.&lt;br /&gt;
&lt;br /&gt;
== Befehlssatz ==&lt;br /&gt;
Control6 ist momentan schon relativ mächtig und stellt durchaus eine Alternative zum Verfassen von C-Code dar.  Es werden aber nachwievor nicht alle Aspekte von Ethersex auch in Control6 abgebildet und noch weniger werden hier im Wiki bislang thematisiert.&lt;br /&gt;
&lt;br /&gt;
* übergreifende Funktionen&lt;br /&gt;
** [[Global_Variables_(Deutsch)|Globale Variablen]]&lt;br /&gt;
** [[PIN_Commands_(Deutsch)|Pin-Befehle]], Threading, Timer und Events&lt;br /&gt;
** [[Conditions_(Deutsch)|Bedingungen]]&lt;br /&gt;
* Einzelaspekte, siehe&lt;br /&gt;
** [[ADC_(Deutsch) | ADC-Werte abfragen]]&lt;br /&gt;
** [[Zugriff auf die Systemuhr]]&lt;br /&gt;
** [[Debug-Meldungen und SYSLOG]]&lt;br /&gt;
** [[ECMD-Befehle absetzen]]&lt;br /&gt;
** [[Jabber_(Deutsch) | Jabber]]&lt;br /&gt;
** [[eMail versenden]]&lt;br /&gt;
** [[Dallas 1-wire Bus]]&lt;br /&gt;
** [[KTY81]]&lt;br /&gt;
** [[Einfaches Menüsystem|TTY und Menü-System]]&lt;br /&gt;
** [[IRMP_(Deutsch)|IR-Empfänger abfragen]]&lt;br /&gt;
** [[TCP-Client als FRITZ!Box Call Monitor]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Ethersex]]&lt;br /&gt;
[[Kategorie:Control6]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Conditions_(Deutsch)&amp;diff=1659</id>
		<title>Conditions (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Conditions_(Deutsch)&amp;diff=1659"/>
				<updated>2016-01-30T19:34:05Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: Created page with &amp;quot;{{i18n|Conditions}} == Bedingungen in Control6 ==  === Grundsätzlicher Aufbau ===  ON [ONCE] ''Bedingung'' DO    ''Befehle''  END  Das Schlüsselwort '''ONCE''' sorgt dafür,...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Conditions}}&lt;br /&gt;
== Bedingungen in Control6 ==&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzlicher Aufbau ===&lt;br /&gt;
 ON [ONCE] ''Bedingung'' DO&lt;br /&gt;
   ''Befehle''&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
Das Schlüsselwort '''ONCE''' sorgt dafür, dass die Bedingung nur '''einmal pro Minute''' überprüft wird.  Dies ist nützlich, wenn zum Beispiel ein Codeblock nur einmal um 6 Uhr morgens ausgeführt werden soll.  Die Bedingung könnte dann '''ON ONCE CLOCK_MIN == 0 &amp;amp;&amp;amp; CLOCK_HOUR == 6''' lauten.  Ohne das Schlüsselwort ''ONCE'' würde der Codeblock von 6:00 bis 6:01 ständig im Rahmen der Hauptschleife von Ethersex ausgeführt, was häufig nicht gewünscht ist :-)&lt;br /&gt;
&lt;br /&gt;
Es kann jedoch nicht nur die Uhr abgefragt werden, sondern es steht auch alle übrigen Funktionen, die Rückgabewerte liefern, zur Auswahl.  Beispielsweise können KTY-Temperatursensoren abgefragt werden.  Um einmal pro Minute zu prüfen, ob die von Sensor 5 gemessene Temperatur unter 3,0 Grad liegt, kann Folgendes geschrieben werden:&lt;br /&gt;
&lt;br /&gt;
 ON ONCE KTY_GET(AussenNord) &amp;lt; 30&lt;br /&gt;
   SYSLOG(&amp;quot;Draußen ist es sehr kalt!&amp;quot;)&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
[[Category:Control6]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Global_Variables_(Deutsch)&amp;diff=1658</id>
		<title>Global Variables (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Global_Variables_(Deutsch)&amp;diff=1658"/>
				<updated>2016-01-30T19:31:59Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: Created page with &amp;quot;{{i18n|Global Variables}} '''Globale Variablen''' werden in  Control6 folgendermaßen deklariert:   ECMD_GLOBAL(&amp;lt;name&amp;gt;, &amp;lt;initialwert&amp;gt;, [datentyp]);  Di...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Global Variables}}&lt;br /&gt;
'''Globale Variablen''' werden in [[Control6_(Deutsch) | Control6]] folgendermaßen deklariert:&lt;br /&gt;
&lt;br /&gt;
 ECMD_GLOBAL(&amp;lt;name&amp;gt;, &amp;lt;initialwert&amp;gt;, [datentyp]);&lt;br /&gt;
&lt;br /&gt;
Die Angabe des Datentyps ist optional. Wenn kein Datentyp angegeben ist, wird uint8_t verwendet.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 ECMD_GLOBAL(zaehler, 0, uint16_t);&lt;br /&gt;
&lt;br /&gt;
Auf diese Weise deklarierte globale Variablen können per [[ECMD_(Deutsch) | ECMD]] abgefragt werden:&lt;br /&gt;
&lt;br /&gt;
 c6 get zaehler&lt;br /&gt;
&lt;br /&gt;
oder gesetzt werden: &lt;br /&gt;
&lt;br /&gt;
 c6 set zaehler 0&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
*siehe [[Counter_(Deutsch) | Counter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Control6]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Usb-schematic.png&amp;diff=1657</id>
		<title>File:Usb-schematic.png</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Usb-schematic.png&amp;diff=1657"/>
				<updated>2016-01-30T19:11:39Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1656</id>
		<title>Features (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1656"/>
				<updated>2016-01-30T19:07:42Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* Hardware Treiber */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Features}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Unterstützte Netzwerk Hardware ==&lt;br /&gt;
&lt;br /&gt;
* Ethernet Microchip's [[ENC28J60_(Deutsch) | ENC28J60]] mit IEEE 802.1q VLAN tagging&lt;br /&gt;
* [[USB_(Deutsch) | IP über USB serial host]]&lt;br /&gt;
* [[RFM12_(Deutsch) | IP über RFM12]]&lt;br /&gt;
* [[ZBus_(Deutsch) | ZBus: IP über RS485]]&lt;br /&gt;
&lt;br /&gt;
== Netzwerk Protokolle ==&lt;br /&gt;
&lt;br /&gt;
* IPv4, IPv4&lt;br /&gt;
* TCP/IP, UDP/IP and ICMP&lt;br /&gt;
* DNS&lt;br /&gt;
* mDNS (Avahi)&lt;br /&gt;
* [[BOOTP_(Deutsch)]]&lt;br /&gt;
* [[DHCP]]&lt;br /&gt;
* TFTP (can be used in combination with the [[Ethernet Loader]])&lt;br /&gt;
* SYSLOG&lt;br /&gt;
* [[SNMP]]&lt;br /&gt;
* SMTP&lt;br /&gt;
* [[NTP]] (Client and Server)&lt;br /&gt;
* DynDNS&lt;br /&gt;
* MySQL (Client)&lt;br /&gt;
* IRC (Client)&lt;br /&gt;
* [[XMPP | XMPP / Jabber Client]]&lt;br /&gt;
* MPD (Music Player Daemon)&lt;br /&gt;
* [[SOAP_(Deutsch)]] / XMLRPC&lt;br /&gt;
* [[UPnP]]&lt;br /&gt;
* [[Artnet]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Treiber ==&lt;br /&gt;
&lt;br /&gt;
* [[Onewire_(Deutsch) | Onewire / 1Wire]]&lt;br /&gt;
* [[I2C_(Deutsch) | I2C Master / Slave]] &lt;br /&gt;
* [[ADC_(Deutsch) | ADC input]]&lt;br /&gt;
* [[PWM Generator]]&lt;br /&gt;
* [[RFM12_FS20_(Deutsch) | FS20 mit RFM12]]&lt;br /&gt;
* [[RFM12_ASK_(Deutsch) | ASK mit RFM12]]&lt;br /&gt;
* [[Generic ASK Modules | ASK mit generischen Modulen]]&lt;br /&gt;
* [[Bluetooth|Bluetooth SPP]]&lt;br /&gt;
* [[USB_(Deutsch) | USB]]&lt;br /&gt;
* [[PS/2 Keyboard]]&lt;br /&gt;
* [[Button Input]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC595_als_Ausgangserweiterung | 74HC595 Ausgangserweiterung]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC164_als_Ausgangserweiterung | 74HC164 Ausgangserweiterung]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC165_als_Eingangserweiterung | 74HC165 Eingangserweiterung]]&lt;br /&gt;
* [[IRMP_(Deutsch) | IRMP Infrarot Empfänger]]&lt;br /&gt;
* [[SRAM]]&lt;br /&gt;
&lt;br /&gt;
== Software Module ==&lt;br /&gt;
&lt;br /&gt;
* [[Ethersex Lighting Architecture]]&lt;br /&gt;
** [[Starburst]]&lt;br /&gt;
** [[StellaLight]]&lt;br /&gt;
** [[DMX Storage]]&lt;br /&gt;
** [[DMX FXSlot]]&lt;br /&gt;
*  [[Cron_(Deutsch) | Cron Daemon_(Deutsch)]]&lt;br /&gt;
* [[System Clock | Clock ]]&lt;br /&gt;
* [[VNC Server]]&lt;br /&gt;
* [[lome6]]&lt;br /&gt;
* [[Frequency Counter]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Funk-AVR-Evaluationsboard_(Deutsch)&amp;diff=1655</id>
		<title>Funk-AVR-Evaluationsboard (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Funk-AVR-Evaluationsboard_(Deutsch)&amp;diff=1655"/>
				<updated>2016-01-30T18:38:58Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Funk-AVR-Evaluationsboard}}&lt;br /&gt;
&lt;br /&gt;
[[File:Funk-avr-eval.jpg|150px|thumb|right|Funk-AVR-Evaluationsboard]]&lt;br /&gt;
Das Funk-AVR-Evaluationsboard von [http://www.pollin.de Pollin] ist ein relativ einfach gehaltenes und daher auch sehr günstiges Board. Es war als Bausatz oder auch als Fertigmodul erhältlich. Der gelieferte ATmega32 kann einfach durch einen leistungsfähigeren ATmega644 oder ATmega1284p (Hinweise zu 128K beachten!) ausgetauscht werden. Gegenüber dem AVR-Net-IO besitzt es zwar keine Netztwerkschnittstelle, jedoch zwei Plätze für RFM-Funkmodule, JTAG-Port, volltändig zugängliche IO-Ports und den ISP zusätzlich an einer Sub-D 9pol Buchse.&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
* 40-poliger Sockel für Atmel ATmega 32/644/1284 Mikrocontroller&lt;br /&gt;
* 28-poliger Sockel für Atmel ATmega 8/168/328 Mikrocontroller&lt;br /&gt;
* zwei Plätze für RFM-Funkmodule&lt;br /&gt;
* RS232-Schnittstelle&lt;br /&gt;
* 10-polige ISP-Schnittstelle&lt;br /&gt;
* 10-polige JTAG-Schnittstelle&lt;br /&gt;
* vollständig zugängliche I/O-Pins an einer 2x20-poligen Pfostenleiste&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=ENC28J60_(Deutsch)&amp;diff=1639</id>
		<title>ENC28J60 (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=ENC28J60_(Deutsch)&amp;diff=1639"/>
				<updated>2016-01-30T16:36:38Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: Created page with &amp;quot;{{i18n|ENC28J60}}  Der Halbleiterbaustein ENC28J60 von Microchip ist ein &amp;quot;Stand-Alone Ethernet Controller with SPI Interface&amp;quot;, also eine vollständige Ethernet-Schnittstelle f...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|ENC28J60}}&lt;br /&gt;
&lt;br /&gt;
Der Halbleiterbaustein ENC28J60 von Microchip ist ein &amp;quot;Stand-Alone Ethernet Controller with SPI Interface&amp;quot;, also eine vollständige Ethernet-Schnittstelle für 10BASE-T  mit seriellem Anschluss (Serial Peripheral Interface) in einem 28-poligen SPDIP, SSOP, SOIC bzw. QFN-Gehäuse. &lt;br /&gt;
&lt;br /&gt;
Weitere Infos und Daten gibt es beim Hersteller: &lt;br /&gt;
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en022889&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1638</id>
		<title>Features (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1638"/>
				<updated>2016-01-30T16:34:57Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* Unterstützte Netzwerk Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Features}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Unterstützte Netzwerk Hardware ==&lt;br /&gt;
&lt;br /&gt;
* Ethernet Microchip's [[ENC28J60_(Deutsch) | ENC28J60]] mit IEEE 802.1q VLAN tagging&lt;br /&gt;
* [[USB_(Deutsch) | IP über USB serial host]]&lt;br /&gt;
* [[RFM12_(Deutsch) | IP über RFM12]]&lt;br /&gt;
* [[ZBus_(Deutsch) | ZBus: IP über RS485]]&lt;br /&gt;
&lt;br /&gt;
== Netzwerk Protokolle ==&lt;br /&gt;
&lt;br /&gt;
* IPv4, IPv4&lt;br /&gt;
* TCP/IP, UDP/IP and ICMP&lt;br /&gt;
* DNS&lt;br /&gt;
* mDNS (Avahi)&lt;br /&gt;
* [[BOOTP_(Deutsch)]]&lt;br /&gt;
* [[DHCP]]&lt;br /&gt;
* TFTP (can be used in combination with the [[Ethernet Loader]])&lt;br /&gt;
* SYSLOG&lt;br /&gt;
* [[SNMP]]&lt;br /&gt;
* SMTP&lt;br /&gt;
* [[NTP]] (Client and Server)&lt;br /&gt;
* DynDNS&lt;br /&gt;
* MySQL (Client)&lt;br /&gt;
* IRC (Client)&lt;br /&gt;
* [[XMPP | XMPP / Jabber Client]]&lt;br /&gt;
* MPD (Music Player Daemon)&lt;br /&gt;
* [[SOAP_(Deutsch)]] / XMLRPC&lt;br /&gt;
* [[UPnP]]&lt;br /&gt;
* [[Artnet]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Treiber ==&lt;br /&gt;
&lt;br /&gt;
* [[Onewire_(Deutsch) | Onewire / 1Wire]]&lt;br /&gt;
* [[I2C_(Deutsch) | I2C Master / Slave]] &lt;br /&gt;
* [[ADC_(Deutsch) | ADC input]]&lt;br /&gt;
* [[PWM Generator]]&lt;br /&gt;
* [[RFM12_FS20_(Deutsch) | FS20 mit RFM12]]&lt;br /&gt;
* [[RFM12_ASK_(Deutsch) | ASK mit RFM12]]&lt;br /&gt;
* [[Generic ASK Modules | ASK mit generischen Modulen]]&lt;br /&gt;
* [[Bluetooth|Bluetooth SPP]]&lt;br /&gt;
* [[USB]]&lt;br /&gt;
* [[PS/2 Keyboard]]&lt;br /&gt;
* [[Button Input]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC595_als_Ausgangserweiterung | 74HC595 Ausgangserweiterung]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC164_als_Ausgangserweiterung | 74HC164 Ausgangserweiterung]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC165_als_Eingangserweiterung | 74HC165 Eingangserweiterung]]&lt;br /&gt;
* [[IRMP_(Deutsch) | IRMP Infrarot Empfänger]]&lt;br /&gt;
* [[SRAM]]&lt;br /&gt;
&lt;br /&gt;
== Software Module ==&lt;br /&gt;
&lt;br /&gt;
* [[Ethersex Lighting Architecture]]&lt;br /&gt;
** [[Starburst]]&lt;br /&gt;
** [[StellaLight]]&lt;br /&gt;
** [[DMX Storage]]&lt;br /&gt;
** [[DMX FXSlot]]&lt;br /&gt;
*  [[Cron_(Deutsch) | Cron Daemon_(Deutsch)]]&lt;br /&gt;
* [[System Clock | Clock ]]&lt;br /&gt;
* [[VNC Server]]&lt;br /&gt;
* [[lome6]]&lt;br /&gt;
* [[Frequency Counter]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1636</id>
		<title>Features (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1636"/>
				<updated>2016-01-30T16:21:37Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* Software Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Features}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Unterstützte Netzwerk Hardware ==&lt;br /&gt;
&lt;br /&gt;
* Ethernet [[ENC28J60 | Microchip's ENC28J60]] with IEEE 802.1q VLAN tagging&lt;br /&gt;
* [[USB_(Deutsch)]]&lt;br /&gt;
* [[RFM12_(Deutsch)]]&lt;br /&gt;
* [[ZBus_(Deutsch)]]&lt;br /&gt;
&lt;br /&gt;
== Netzwerk Protokolle ==&lt;br /&gt;
&lt;br /&gt;
* IPv4, IPv4&lt;br /&gt;
* TCP/IP, UDP/IP and ICMP&lt;br /&gt;
* DNS&lt;br /&gt;
* mDNS (Avahi)&lt;br /&gt;
* [[BOOTP_(Deutsch)]]&lt;br /&gt;
* [[DHCP]]&lt;br /&gt;
* TFTP (can be used in combination with the [[Ethernet Loader]])&lt;br /&gt;
* SYSLOG&lt;br /&gt;
* [[SNMP]]&lt;br /&gt;
* SMTP&lt;br /&gt;
* [[NTP]] (Client and Server)&lt;br /&gt;
* DynDNS&lt;br /&gt;
* MySQL (Client)&lt;br /&gt;
* IRC (Client)&lt;br /&gt;
* [[XMPP | XMPP / Jabber Client]]&lt;br /&gt;
* MPD (Music Player Daemon)&lt;br /&gt;
* [[SOAP_(Deutsch)]] / XMLRPC&lt;br /&gt;
* [[UPnP]]&lt;br /&gt;
* [[Artnet]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Treiber ==&lt;br /&gt;
&lt;br /&gt;
* [[Onewire_(Deutsch) | Onewire / 1Wire]]&lt;br /&gt;
* [[I2C_(Deutsch) | I2C Master / Slave]] &lt;br /&gt;
* [[ADC_(Deutsch) | ADC input]]&lt;br /&gt;
* [[PWM Generator]]&lt;br /&gt;
* [[RFM12_FS20_(Deutsch) | FS20 mit RFM12]]&lt;br /&gt;
* [[RFM12_ASK_(Deutsch) | ASK mit RFM12]]&lt;br /&gt;
* [[Generic ASK Modules | ASK mit generischen Modulen]]&lt;br /&gt;
* [[Bluetooth|Bluetooth SPP]]&lt;br /&gt;
* [[USB]]&lt;br /&gt;
* [[PS/2 Keyboard]]&lt;br /&gt;
* [[Button Input]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC595_als_Ausgangserweiterung | 74HC595 Ausgangserweiterung]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC164_als_Ausgangserweiterung | 74HC164 Ausgangserweiterung]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC165_als_Eingangserweiterung | 74HC165 Eingangserweiterung]]&lt;br /&gt;
* [[IRMP_(Deutsch) | IRMP Infrarot Empfänger]]&lt;br /&gt;
* [[SRAM]]&lt;br /&gt;
&lt;br /&gt;
== Software Module ==&lt;br /&gt;
&lt;br /&gt;
* [[Ethersex Lighting Architecture]]&lt;br /&gt;
** [[Starburst]]&lt;br /&gt;
** [[StellaLight]]&lt;br /&gt;
** [[DMX Storage]]&lt;br /&gt;
** [[DMX FXSlot]]&lt;br /&gt;
*  [[Cron_(Deutsch) | Cron Daemon_(Deutsch)]]&lt;br /&gt;
* [[System Clock | Clock ]]&lt;br /&gt;
* [[VNC Server]]&lt;br /&gt;
* [[lome6]]&lt;br /&gt;
* [[Frequency Counter]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1635</id>
		<title>Features (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1635"/>
				<updated>2016-01-30T16:19:25Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* Hardware Drivers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Features}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Unterstützte Netzwerk Hardware ==&lt;br /&gt;
&lt;br /&gt;
* Ethernet [[ENC28J60 | Microchip's ENC28J60]] with IEEE 802.1q VLAN tagging&lt;br /&gt;
* [[USB_(Deutsch)]]&lt;br /&gt;
* [[RFM12_(Deutsch)]]&lt;br /&gt;
* [[ZBus_(Deutsch)]]&lt;br /&gt;
&lt;br /&gt;
== Netzwerk Protokolle ==&lt;br /&gt;
&lt;br /&gt;
* IPv4, IPv4&lt;br /&gt;
* TCP/IP, UDP/IP and ICMP&lt;br /&gt;
* DNS&lt;br /&gt;
* mDNS (Avahi)&lt;br /&gt;
* [[BOOTP_(Deutsch)]]&lt;br /&gt;
* [[DHCP]]&lt;br /&gt;
* TFTP (can be used in combination with the [[Ethernet Loader]])&lt;br /&gt;
* SYSLOG&lt;br /&gt;
* [[SNMP]]&lt;br /&gt;
* SMTP&lt;br /&gt;
* [[NTP]] (Client and Server)&lt;br /&gt;
* DynDNS&lt;br /&gt;
* MySQL (Client)&lt;br /&gt;
* IRC (Client)&lt;br /&gt;
* [[XMPP | XMPP / Jabber Client]]&lt;br /&gt;
* MPD (Music Player Daemon)&lt;br /&gt;
* [[SOAP_(Deutsch)]] / XMLRPC&lt;br /&gt;
* [[UPnP]]&lt;br /&gt;
* [[Artnet]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Treiber ==&lt;br /&gt;
&lt;br /&gt;
* [[Onewire_(Deutsch) | Onewire / 1Wire]]&lt;br /&gt;
* [[I2C_(Deutsch) | I2C Master / Slave]] &lt;br /&gt;
* [[ADC_(Deutsch) | ADC input]]&lt;br /&gt;
* [[PWM Generator]]&lt;br /&gt;
* [[RFM12_FS20_(Deutsch) | FS20 mit RFM12]]&lt;br /&gt;
* [[RFM12_ASK_(Deutsch) | ASK mit RFM12]]&lt;br /&gt;
* [[Generic ASK Modules | ASK mit generischen Modulen]]&lt;br /&gt;
* [[Bluetooth|Bluetooth SPP]]&lt;br /&gt;
* [[USB]]&lt;br /&gt;
* [[PS/2 Keyboard]]&lt;br /&gt;
* [[Button Input]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC595_als_Ausgangserweiterung | 74HC595 Ausgangserweiterung]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC164_als_Ausgangserweiterung | 74HC164 Ausgangserweiterung]]&lt;br /&gt;
* [[Porterweiterungen_(Deutsch)#74HC165_als_Eingangserweiterung | 74HC165 Eingangserweiterung]]&lt;br /&gt;
* [[IRMP_(Deutsch) | IRMP Infrarot Empfänger]]&lt;br /&gt;
* [[SRAM]]&lt;br /&gt;
&lt;br /&gt;
== Software Modules ==&lt;br /&gt;
&lt;br /&gt;
* [[Ethersex Lighting Architecture]]&lt;br /&gt;
** [[Starburst]]&lt;br /&gt;
** [[StellaLight]]&lt;br /&gt;
** [[DMX Storage]]&lt;br /&gt;
** [[DMX FXSlot]]&lt;br /&gt;
*  [[Cron_(Deutsch) | Cron Daemon_(Deutsch)]]&lt;br /&gt;
* [[System Clock | Clock ]]&lt;br /&gt;
* [[VNC Server]]&lt;br /&gt;
* [[lome6]]&lt;br /&gt;
* [[Frequency Counter]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1634</id>
		<title>Features (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1634"/>
				<updated>2016-01-30T16:05:42Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* Network Protocols */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Features}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Unterstützte Netzwerk Hardware ==&lt;br /&gt;
&lt;br /&gt;
* Ethernet [[ENC28J60 | Microchip's ENC28J60]] with IEEE 802.1q VLAN tagging&lt;br /&gt;
* [[USB_(Deutsch)]]&lt;br /&gt;
* [[RFM12_(Deutsch)]]&lt;br /&gt;
* [[ZBus_(Deutsch)]]&lt;br /&gt;
&lt;br /&gt;
== Netzwerk Protokolle ==&lt;br /&gt;
&lt;br /&gt;
* IPv4, IPv4&lt;br /&gt;
* TCP/IP, UDP/IP and ICMP&lt;br /&gt;
* DNS&lt;br /&gt;
* mDNS (Avahi)&lt;br /&gt;
* [[BOOTP_(Deutsch)]]&lt;br /&gt;
* [[DHCP]]&lt;br /&gt;
* TFTP (can be used in combination with the [[Ethernet Loader]])&lt;br /&gt;
* SYSLOG&lt;br /&gt;
* [[SNMP]]&lt;br /&gt;
* SMTP&lt;br /&gt;
* [[NTP]] (Client and Server)&lt;br /&gt;
* DynDNS&lt;br /&gt;
* MySQL (Client)&lt;br /&gt;
* IRC (Client)&lt;br /&gt;
* [[XMPP | XMPP / Jabber Client]]&lt;br /&gt;
* MPD (Music Player Daemon)&lt;br /&gt;
* [[SOAP_(Deutsch)]] / XMLRPC&lt;br /&gt;
* [[UPnP]]&lt;br /&gt;
* [[Artnet]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Drivers ==&lt;br /&gt;
&lt;br /&gt;
* [[Onewire_(Deutsch)]]&lt;br /&gt;
* [[I2C_(Deutsch) | I2C_(Deutsch) Master / Slave]] &lt;br /&gt;
* [[ADC input]]&lt;br /&gt;
* [[PWM Generator]]&lt;br /&gt;
* [[RFM12_FS20_(Deutsch)]]&lt;br /&gt;
* [[RFM12_ASK_(Deutsch)]]&lt;br /&gt;
* [[Generic ASK Modules]]&lt;br /&gt;
* [[Bluetooth|Bluetooth SPP]]&lt;br /&gt;
* [[USB]]&lt;br /&gt;
* [[PS/2 Keyboard]]&lt;br /&gt;
* [[Button Input]]&lt;br /&gt;
* [[HC595]]&lt;br /&gt;
* [[HC165]]&lt;br /&gt;
* [[IRMP_(Deutsch) | IR Receivers_(Deutsch)]]&lt;br /&gt;
* [[SRAM]]&lt;br /&gt;
&lt;br /&gt;
== Software Modules ==&lt;br /&gt;
&lt;br /&gt;
* [[Ethersex Lighting Architecture]]&lt;br /&gt;
** [[Starburst]]&lt;br /&gt;
** [[StellaLight]]&lt;br /&gt;
** [[DMX Storage]]&lt;br /&gt;
** [[DMX FXSlot]]&lt;br /&gt;
*  [[Cron_(Deutsch) | Cron Daemon_(Deutsch)]]&lt;br /&gt;
* [[System Clock | Clock ]]&lt;br /&gt;
* [[VNC Server]]&lt;br /&gt;
* [[lome6]]&lt;br /&gt;
* [[Frequency Counter]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1633</id>
		<title>Features (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Features_(Deutsch)&amp;diff=1633"/>
				<updated>2016-01-30T16:04:30Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* Supported Network Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Features}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Unterstützte Netzwerk Hardware ==&lt;br /&gt;
&lt;br /&gt;
* Ethernet [[ENC28J60 | Microchip's ENC28J60]] with IEEE 802.1q VLAN tagging&lt;br /&gt;
* [[USB_(Deutsch)]]&lt;br /&gt;
* [[RFM12_(Deutsch)]]&lt;br /&gt;
* [[ZBus_(Deutsch)]]&lt;br /&gt;
&lt;br /&gt;
== Network Protocols ==&lt;br /&gt;
&lt;br /&gt;
* IPv4, IPv4&lt;br /&gt;
* TCP/IP, UDP/IP and ICMP&lt;br /&gt;
* DNS&lt;br /&gt;
* mDNS (Avahi)&lt;br /&gt;
* [[BOOTP_(Deutsch)]]&lt;br /&gt;
* [[DHCP]]&lt;br /&gt;
* TFTP (can be used in combination with the [[Ethernet Loader]])&lt;br /&gt;
* SYSLOG&lt;br /&gt;
* [[SNMP]]&lt;br /&gt;
* SMTP&lt;br /&gt;
* [[NTP]] (Client and Server)&lt;br /&gt;
* DynDNS&lt;br /&gt;
* MySQL (Client)&lt;br /&gt;
* IRC (Client)&lt;br /&gt;
* [[XMPP | XMPP / Jabber Client]]&lt;br /&gt;
* MPD (Music Player Daemon)&lt;br /&gt;
* [[SOAP_(Deutsch)]] / XMLRPC&lt;br /&gt;
* [[UPnP]]&lt;br /&gt;
* [[Artnet]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Drivers ==&lt;br /&gt;
&lt;br /&gt;
* [[Onewire_(Deutsch)]]&lt;br /&gt;
* [[I2C_(Deutsch) | I2C_(Deutsch) Master / Slave]] &lt;br /&gt;
* [[ADC input]]&lt;br /&gt;
* [[PWM Generator]]&lt;br /&gt;
* [[RFM12_FS20_(Deutsch)]]&lt;br /&gt;
* [[RFM12_ASK_(Deutsch)]]&lt;br /&gt;
* [[Generic ASK Modules]]&lt;br /&gt;
* [[Bluetooth|Bluetooth SPP]]&lt;br /&gt;
* [[USB]]&lt;br /&gt;
* [[PS/2 Keyboard]]&lt;br /&gt;
* [[Button Input]]&lt;br /&gt;
* [[HC595]]&lt;br /&gt;
* [[HC165]]&lt;br /&gt;
* [[IRMP_(Deutsch) | IR Receivers_(Deutsch)]]&lt;br /&gt;
* [[SRAM]]&lt;br /&gt;
&lt;br /&gt;
== Software Modules ==&lt;br /&gt;
&lt;br /&gt;
* [[Ethersex Lighting Architecture]]&lt;br /&gt;
** [[Starburst]]&lt;br /&gt;
** [[StellaLight]]&lt;br /&gt;
** [[DMX Storage]]&lt;br /&gt;
** [[DMX FXSlot]]&lt;br /&gt;
*  [[Cron_(Deutsch) | Cron Daemon_(Deutsch)]]&lt;br /&gt;
* [[System Clock | Clock ]]&lt;br /&gt;
* [[VNC Server]]&lt;br /&gt;
* [[lome6]]&lt;br /&gt;
* [[Frequency Counter]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=FHEM_Keller_(Deutsch)&amp;diff=1632</id>
		<title>FHEM Keller (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=FHEM_Keller_(Deutsch)&amp;diff=1632"/>
				<updated>2016-01-30T15:44:44Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|FHEM Keller}}&lt;br /&gt;
In einem durch nachlässiges Lüften sehr feuchten Keller sollen Temperatur/Feuchte an mehreren Punkten sowie außen am Gebäude gemessen werden. Daraus errechnet [[Nutzung_in_FHEM_(Deutsch)|FHEM]] Lüftungsempfehlungen. Diese wird zusätzlich auf dem Display durch '''(auf)''' und '''(zu)''' angzeigt.&lt;br /&gt;
Da es keine Möglichkeit gibt, per LAN in den Raum zu gelangen, musste eine Wireless-Bridge her. Damit steht zugleich LAN an der Werkbank bereit. Ein Anschluss für [[ZBus_(Deutsch) | ZBus]] lässt Platz für weitere Spielereien.&lt;br /&gt;
&lt;br /&gt;
'''Ziele'''&lt;br /&gt;
* genaue Messung Temperatur/Feuchte in den Räumen und an der Außenwand&lt;br /&gt;
* Anzeige diverser Klimadaten und Uhrzeit&lt;br /&gt;
* pespektivisch weitere Möglichkeiten zur Steuerung/Regelung&lt;br /&gt;
* Feuchtraum-Gehäuse&lt;br /&gt;
&lt;br /&gt;
'''Ausstattung'''&lt;br /&gt;
* WLAN-Router als Wireless-Bridge&lt;br /&gt;
* mehrere [[DHT|DHT22]] mit bis zu 6m Kabel (Cat.5-Reste)&lt;br /&gt;
* [[LCD_(Deutsch) | LCD]] 20x4 HD44780 zur Anzeige von Datum, Uhrzeit, Klimadaten, Lüftungsempfehlung&lt;br /&gt;
* [[ZBus_(Deutsch) | ZBus]] Interface mit MAX485 für [[ZBus_Testboard_(Deutsch) | ZBus-Tests]] oder weitere Zbus-Roomnodes&lt;br /&gt;
* Industrienetzteil mit Reserven für dem ZBus und Versorgung des Routers&lt;br /&gt;
* ATMega32&lt;br /&gt;
&lt;br /&gt;
'''Bilder'''&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Fhem_ke_01.jpg|Aussenansicht (Klarsichtdeckel abgenommen)&lt;br /&gt;
Fhem_ke_02.jpg|Display in Aktion (Hi=hinten; Vo=vorn; Ga=Garten; TP=Taupunkt)&lt;br /&gt;
Fhem_ke_03.jpg|DHT22 als Raumsensor, auf einem alten Bopla-Gehäuse&lt;br /&gt;
Fhem_ke_04.jpg|Prozessorboard von oben; LAN-modul aufgesetzt&lt;br /&gt;
Fhem_ke_05.jpg|Prozessorboard von unten&lt;br /&gt;
Fhem_ke_06.jpg|Stromversorgungs-/ZBus-Board von oben&lt;br /&gt;
Fhem_ke_07.jpg|Stromversorgungs-/ZBus-Board von unten&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:ZBus]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=FHEM_Wohnzimmer_(Deutsch)&amp;diff=1631</id>
		<title>FHEM Wohnzimmer (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=FHEM_Wohnzimmer_(Deutsch)&amp;diff=1631"/>
				<updated>2016-01-30T15:43:14Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* FHEM Roomnode Wohnzimmer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|FHEM Wohnzimmer}}&lt;br /&gt;
== [[Nutzung_in_FHEM_(Deutsch)|FHEM]] Roomnode Wohnzimmer ==&lt;br /&gt;
Für diverse Mess- und Schaltaufgaben im Wohnzimmer musste ein individuelles und vorzeigbares Gerät entstehen, das diese Aufgaben übernimmt. Dabei sollen Daten über LAN an FHEM geliefert bzw. Display und Schaltaktoren mit FHEM gesteuert werden. Die wichtigsten Grundfunktionen sollen auch ohne FHEM direkt bedienbar sein.&lt;br /&gt;
&lt;br /&gt;
'''Ziele'''&lt;br /&gt;
* Messung Temperatur/Feuchte im Raum&lt;br /&gt;
* Anzeige diverser Klimadaten und Uhrzeit&lt;br /&gt;
* Schalten eines [[RFM12_ASK_(Deutsch)#Intertechno_.28ITS-150.29|Intertechno]] Schaltaktors&lt;br /&gt;
* Schalten einiger [[RFM12_ASK_(Deutsch)#2272|IC2272]]-Funksteckdosen (Weihnachtsbeleuchtung, etc.)&lt;br /&gt;
* Steuerung Schrankwandbeleuchtung&lt;br /&gt;
* Schalten eines [http://www.raspberrypi.org/ RasPi] für [http://xbmc.org/ XBMC]&lt;br /&gt;
* Autonome Grundfunktionen ohne FHEM&lt;br /&gt;
* vorzeigbares fertiges Gehäuse&lt;br /&gt;
&lt;br /&gt;
'''Ausstattung'''&lt;br /&gt;
* [[DHT|DHT22]] mit ca. 3m Kabel&lt;br /&gt;
* LCD 16x1 HD44780 mit extra großen Zeichen&lt;br /&gt;
* [[RFM12_(Deutsch)|RFM12]] 433MHz mit externer Antenne&lt;br /&gt;
* Taster mit LEDs&lt;br /&gt;
* Schaltausgänge 12V mit PowerFET (IRLZ34)&lt;br /&gt;
* USB-Buchse, die per Kabel den RasPi mit 5V versorgt&lt;br /&gt;
* ATMega32 (98% Nutzung des Flash)&lt;br /&gt;
&lt;br /&gt;
'''Bilder'''&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Fhem_wz_01.jpg|Aussenansicht (noch ohne Frontplatte)&lt;br /&gt;
Fhem_wz_02.jpg|Platine von oben&lt;br /&gt;
Fhem_wz_03.jpg|Stromversorgung und LAN-Modul&lt;br /&gt;
Fhem_wz_04.jpg|Stecker Schrankwandbeleuchtung und DHT22&lt;br /&gt;
Fhem_wz_05.jpg|RFM12, Reed-Relais für geschaltene 5V&lt;br /&gt;
Fhem_wz_06.jpg|zweckentfremdetes WLAN-Pigtail und 433MHz-Antenne&lt;br /&gt;
Fhem_wz_07.jpg|Platine ohne Gehäuse für letzte Anpassungen&lt;br /&gt;
Fhem_wz_08.jpg|Platine von unten &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Update ZBus'''&lt;br /&gt;
* Ersatz des Mega32 durch einen Mega644p&lt;br /&gt;
* Einbau eines MAX485 mit Abschluss- und Bias-Widerständen sowie einer RJ10-Buchse für den ZBus-Anschluss&lt;br /&gt;
* Fertigung eines Y-Kabels zur Übertragung des ZBus auf den ungenutzten LAN-Paaren&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Fhem_wz_09.jpg|Platine mit Mega644 und MAX485&lt;br /&gt;
Fhem_wz_10.jpg|Rückseite mit RJ10 Buchse&lt;br /&gt;
Fhem_wz_11.jpg|LAN-ZBus-Y-Kabel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Besonderheiten/Hinweise'''&lt;br /&gt;
* das Gehäuse stammt von einem nutzlos gewordenen ELSA Lancom 800&lt;br /&gt;
* mit [[Control6_(Deutsch)|Control6]] und NamedPin sind die Grundfunktionen autonom bedienbar&lt;br /&gt;
* die Stecker für die Schrankwandbeleuchtung entsprechen dem Original (Gewährleistung...)&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:ZBus]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=ZBus_Testboard_(Deutsch)&amp;diff=1630</id>
		<title>ZBus Testboard (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=ZBus_Testboard_(Deutsch)&amp;diff=1630"/>
				<updated>2016-01-30T15:42:16Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|ZBus Testboard}}&lt;br /&gt;
'''Wofür?'''&lt;br /&gt;
* Hiermit lassen sich Versuche mit [http://de.wikipedia.org/wiki/EIA-485 RS485] und [[ZBus_(Deutsch) | ZBus]] durchführen, um die Machbarkeit diverser Vorhaben abzuschätzen&lt;br /&gt;
&lt;br /&gt;
'''Ausstattung'''&lt;br /&gt;
* Arduino ProMini Clone (hier das [http://arduino.cc/en/pmwiki.php?n=Main/ArduinoBoardProMini Original])&lt;br /&gt;
* MAX485 als Pegelwandler&lt;br /&gt;
* per Jumper aktivierbare Terminierung&lt;br /&gt;
* Verpolschutzdiode, separater Spannungsregler für MAX485 und Test-Peripherie&lt;br /&gt;
* Status-LEDs für ZBus TX/RX&lt;br /&gt;
* ein DS18B20 Temperatursensor, damit es auch was zu messen gibt&lt;br /&gt;
* 6pol. ISP-Stecker&lt;br /&gt;
&lt;br /&gt;
'''praktische Eigenschaften'''&lt;br /&gt;
* sehr einfacher, schneller und preiswerter Aufbau (&amp;lt;6 Euro; Recycling aus der Bastelkiste)&lt;br /&gt;
* hohe Flexibilität bei Peripherie und Platzierung innerhalb des Busses&lt;br /&gt;
* weiter Betriebsspannungsbereich&lt;br /&gt;
* bester Datendurchsatz mit 38,4 kbit/s bei ECMD (buffers=384)&lt;br /&gt;
* 20-25mA Stromaufnahme an 12V&lt;br /&gt;
&lt;br /&gt;
'''Bilder'''&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Zbus_testboard.jpg|Gesamtansicht&lt;br /&gt;
Zbus_testboard2.jpg|Ansicht von oben&lt;br /&gt;
Zbus_testboard3.jpg|Ansicht von unten&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:ZBus]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=ZBus_Board_1_0_(Deutsch)&amp;diff=1629</id>
		<title>ZBus Board 1 0 (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=ZBus_Board_1_0_(Deutsch)&amp;diff=1629"/>
				<updated>2016-01-30T15:41:56Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|ZBus_Board_1_0}}&lt;br /&gt;
[[File:ZBus-Board_06.jpg|thumb|right|Schaltbild]]&lt;br /&gt;
'''Motivation'''&lt;br /&gt;
* Test eines kommerziellen Platinenherstellers mit einem preiswerten, aber sinnvollen Projekt&lt;br /&gt;
* einseitige Platine, um auch selbst ätzen zu können; leicht verfügbare Bauteile&lt;br /&gt;
* günstiger [[ZBus_(Deutsch) | ZBus]]-Client für kleine Aufgaben und geringsten Platzbedarf&lt;br /&gt;
* direkte Verbindung zu einem LCD (rückseitig auflötbar)&lt;br /&gt;
* direkte Anschaltung eines DHT22 oder I2C&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ZBus-Board_05.jpg|thumb|right|Platine]]&lt;br /&gt;
&lt;br /&gt;
'''Ausstattung'''&lt;br /&gt;
* ATMega 328p mit 16MHz Quarz&lt;br /&gt;
* MAX485 als Pegelwandler&lt;br /&gt;
* Terminierung optional bestückbar&lt;br /&gt;
* Verpolschutzdiode, kleiner Spannungsregler&lt;br /&gt;
* Status-LEDs für ZBus TX/RX oder andere Aufgaben&lt;br /&gt;
* 16pol. Pinreihe für direkten Anschluß eines HD44780-LCD inkl. Kontrastregler und schaltbarer Hintergrundbeleuchtung&lt;br /&gt;
* 4pol. Pinreihe für DHT22, I2C oder Onewire&lt;br /&gt;
* 6pol. ISP-Stecker&lt;br /&gt;
* alle Pinreihen sind zueinander im 2.54mm-Raster, um eine Lochrasterplatine für weitere Aufgaben anlöten zu können&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einsatzbeispiele'''&lt;br /&gt;
* Roomnode mit LCD und abgesetztem DHT22 im schlanken Gehäuse&lt;br /&gt;
* mit optionalem Sensorboard (Lochraster) zum Messen und Schalten&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Bilder'''&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
ZBus-Board_01.jpg|bestückte Platine&lt;br /&gt;
ZBus-Board_02.jpg|Rückseite&lt;br /&gt;
ZBus-Board_03.jpg|aufgesteckt auf HD44780-LCD&lt;br /&gt;
ZBus-Board_04.jpg|Schnittstelle für DHT22 oder I2C&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:ZBus]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Category:ZBus&amp;diff=1628</id>
		<title>Category:ZBus</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Category:ZBus&amp;diff=1628"/>
				<updated>2016-01-30T15:40:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: Created page with &amp;quot;This category lists all articles about ZBus.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category lists all articles about ZBus.&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=ZBus_(Deutsch)&amp;diff=1627</id>
		<title>ZBus (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=ZBus_(Deutsch)&amp;diff=1627"/>
				<updated>2016-01-30T15:37:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* Hinweise / Praktische Erfahrungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|ZBus}}&lt;br /&gt;
{{Module&lt;br /&gt;
|NAME=ZBUS&lt;br /&gt;
|MENUCONFIG=Network-&amp;gt;ZBUS Support&lt;br /&gt;
|STATUS={{stable}}&lt;br /&gt;
|PINNING= -&lt;br /&gt;
|ECMD={{has_ecmd}}&lt;br /&gt;
|CONTROL6= -&lt;br /&gt;
|DEPENDS=[[ECMD]]&lt;br /&gt;
|REQUIRES= USART&lt;br /&gt;
|TIMER= -&lt;br /&gt;
|CODE=[https://github.com/ethersex/ethersex/tree/master/protocols/zbus https://github.com/ethersex/ethersex/tree/master/protocols/zbus]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Was ist ZBus? ==&lt;br /&gt;
&lt;br /&gt;
ZBus ist ein auf [[wikipedia:RS485|RS485]] basierendes Zweidraht-Bussystem, auf welchem Pakete variabler Länge übermittelt werden können.  &lt;br /&gt;
Es wurde primär für die Datenübertragung zwischen Mikrocontrollern konzipiert, zum Beispiel zur Kommunikation von ATmega8 und ATmega644.  Ethersex verwendet ZBus zur Übermittlung von IP-Paketen von einem Controller, der als Bridge fungiert, hin zu einzelnen kleineren ZBus-Geräten, die beispielsweise auf ATmega8 basieren.  Der Einsatz von ZBus ermöglicht den großflächigen Einsatz von kleineren ATmega-Mikrocontrolleren, an die man in der Regel keinen ENC28J60 anschließen möchte. Zudem lässt sich zum Beispiel ein bestehendes Telefonkabelnetz verwenden, welches für LAN ungeeignet wäre.&lt;br /&gt;
&lt;br /&gt;
Ebendiese kleineren Controller können über eine Bridge hinweg via IP-Protokoll erreicht werden, zumindest über UDP und ICMP.  Eine TCP/IP-Übertragung scheitert an den begrenzten Resourcen eines ATmega8, mit größeren Controllern ist jedoch auch TCP möglich. Als Bridge kann wahlweise ein entsprechend konfiguriertes Ethersex oder ein normaler Rechner mit serieller Schnittstelle, auf dem [[ZBus Serial Host_(Deutsch) | ZBus Serial Host]] läuft, eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
== Anschluss ==&lt;br /&gt;
&lt;br /&gt;
[[File:ZBUS_bias_term.JPG|thumb|right|ATMega8 mit ZBUS]]&lt;br /&gt;
[[File:Zbus_ttl.jpg|thumb|right|TTL-ZBus-Adapter mit MAX485, Terminierung und Bias-R's]]&lt;br /&gt;
==== prozessorseitige Beschaltung ====&lt;br /&gt;
Zur Anschaltung des ZBus wird ein Pegelwandler benötigt. Dabei wird an dieser Stelle ein preiswerter und moderner MAX485 verwendet, welcher sich durch minimale Außenbeschaltung und geringen Eigenstromverbrauch (etwa 1mA) auszeichnet. Damit ist zwar nur Halbduplexbetrieb möglich, was jedoch in den allermeisten Fällen genügt. Es werden drei Prozessorpins benötigt: TX, RX sowie die TX/RX-Umschaltung.&lt;br /&gt;
&lt;br /&gt;
==== busseitige Beschaltung ====&lt;br /&gt;
Der Bus muss an beiden Enden mit 120 Ohm terminiert werden (R1) und sollte an einer Stelle mit Bias-Widerständen (R2 und R3) bestückt sein, damit definierte Pegel herrschen, wenn kein Sender aktiv ist. Diese beiden identischen Widerstände sind unkritisch; Werte zwischen 390 und 820 Ohm funktionieren problemlos. Es kann daher Busteilnehmer mit einem, zwei oder drei Widerständen geben; der flexibelste Busteilnehmer hat alle Widerstände mit Jumper aktivierbar.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
todo&lt;br /&gt;
&lt;br /&gt;
== Statusmonitor ==&lt;br /&gt;
 &lt;br /&gt;
Der ECMD-Befehl &amp;quot;zbus stats&amp;quot; ermöglicht die schnelle Beurteilung der Übertragungsqualität. Aktiviert wird er über das Debug-flag &amp;quot;ZBUS ecmd&amp;quot; im Menuconfig.  &lt;br /&gt;
&lt;br /&gt;
Die beispielhafte Ausgabe bedeutet im Einzelnen: '''fe=2, ov=0, pe=0, bf=0, #=57736, tx #=45264'''&lt;br /&gt;
&lt;br /&gt;
{| border='1'&lt;br /&gt;
| ''Wert''&lt;br /&gt;
| ''Beschreibung''&lt;br /&gt;
|-&lt;br /&gt;
| rx fe&lt;br /&gt;
|  frame error&lt;br /&gt;
|-&lt;br /&gt;
| rx ov&lt;br /&gt;
|  overflow&lt;br /&gt;
|-&lt;br /&gt;
| rx pe&lt;br /&gt;
|  parity error&lt;br /&gt;
|-&lt;br /&gt;
| rx bf&lt;br /&gt;
|  buffer full&lt;br /&gt;
|-&lt;br /&gt;
| #&lt;br /&gt;
|  Summe empfangene Bytes&lt;br /&gt;
|-&lt;br /&gt;
| tx #&lt;br /&gt;
|  Summe gesendete Bytes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hinweise / Praktische Erfahrungen ==&lt;br /&gt;
[[File:ZBus_Test.jpg|thumb|right|ZBus Testumgebung mit Gateway und Client]]&lt;br /&gt;
&lt;br /&gt;
* unterschiedliche Kabelarten sind zu vermeiden, da sich durch Stoßstellen die Signalqualität verschlechtert (Reflexionen); &amp;quot;fe&amp;quot; steigt&lt;br /&gt;
* die Beschaltung der Terminierung und der Bias-R's muss experimentell ermittelt werden- hier sind deutliche Qualitätssteigerungen möglich&lt;br /&gt;
* &amp;quot;Network Buffer Size&amp;quot; sollte maximiert werden; vor allem beim ZBus-LAN-Gateway hilft viel Speicher bzw. ein größerer Controller (m328p=384, m32=500, m644p=1500)&lt;br /&gt;
* eine Datenrate von 38,4 kbit/s erzielte hier die besten Ergebnisse; eine geringere Geschwindigkeit bringt bei schlechterer Signalqualität praktisch keine Verbesserung&lt;br /&gt;
* bei zu hoher Geschwindigkeit (hier 76,8 kbit/s auf Mega32@16MHz am ZBus-Gateway) kommt es zum Pufferüberlauf; &amp;quot;bf&amp;quot; steigt deutlich bei hohem Datenaufkommen&lt;br /&gt;
* ein Mega644p@16MHz mit buffers=1500 läuft problemlos mit 115,2 kbit/s, sofern die anderen Busteilnehmer mitspielen&lt;br /&gt;
* die Masseverbindung sollte mitgeführt werden; eine Versorgungsspannung wird als abgesicherte Rohspannung (12V) ebenfalls am Bus zur Versorgung der Devices bereitgestellt&lt;br /&gt;
* ein [[ZBus_Testboard_(Deutsch) | ZBus-Testboard]] stellt zum Beispiel eine Minimalvariante dar; basierend auf ATMega328 (Arduino Pro Mini) mit Keramikresonator, Längsregler 7805 und MAX485&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:ZBus]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=JeeLink_(Deutsch)&amp;diff=1626</id>
		<title>JeeLink (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=JeeLink_(Deutsch)&amp;diff=1626"/>
				<updated>2016-01-30T15:36:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* Adressierung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|JeeLink}}&lt;br /&gt;
[[File:Jeelinkv2.jpg|thumb]]&lt;br /&gt;
Das [http://jeelabs.org/jl2 JeeLink v2] ist ein kleines Atmega-Modul mit [[RFM12_(Deutsch) | RFM12]] in Form eines USB-Sticks. Es war von [http://jeelabs.org JeeLabs] aus Holland erhältlich für 29,50 EUR inkl. Versand. Mittlerweile gibt es zahlreiche Nachbauten auf Basis von [[https://www.arduino.cc/en/Main/ArduinoBoardNano | Arduino Nano]] und RFM12 bzw. RFM12b.&lt;br /&gt;
&lt;br /&gt;
Aktuelle JeeLink [http://www.digitalsmarties.net/products/jeelink (v3c)] werden aufgrund des verwendeten [[RFM69_(Deutsch) | RFM69]] Funkmoduls noch nicht von Ethersex unterstützt!&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
* Atmega 328p&lt;br /&gt;
* RFM12B mit 868MHz&lt;br /&gt;
* USB-Anbindung über FTDI FT232R&lt;br /&gt;
* Atmel Dataflash AT26DF081A (1 MByte, derzeit in Ethersex nicht unterstützt)&lt;br /&gt;
&lt;br /&gt;
==Flashen==&lt;br /&gt;
* Das JeeLink-Modul wird fertig mit einem [http://www.arduino.cc/ Arduino]-kompatiblen seriellen Bootloader ausgeliefert&lt;br /&gt;
* Der Bootloader wartet nach einem Reset ca. 1 Sek. auf entsprechende Kommandos, danach startet die normale Ethersex-Firmware&lt;br /&gt;
* Über ein kleines Programm im contrib-Ordner kann ein Reset per Software ausgelöst werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./contrib/arduino-bootloader/reset /dev/ttyUSB0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Dann mit avrdude flashen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
avrdude -v -v -p m328p -c arduino -P /dev/ttyUSB0 -b 57600 -U flash:w:ethersex.hex&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;ACHTUNG!&amp;lt;/font&amp;gt; Bei der v3 funktioniert das flashen mit&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
avrdude -v -v -p m328p -c arduino -P /dev/ttyUSB0 -b 115200 -U flash:w:ethersex.hex&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Anbindung in Ethersex==&lt;br /&gt;
* In Ethersex ist eine fertige Konfiguration für das JeeLink enthalten&lt;br /&gt;
* Dabei wird über den FT232R das [[ZBus_(Deutsch) | ZBUS]]-Protokoll gesprochen, Anbindung über [[ZBus_Serial_Host_(Deutsch) | ZBus Serial Host]]&lt;br /&gt;
* Nach Verbinden des JeeLinks folgendes aufrufen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./contrib/zbus-serial-host/zbus-serial-host -r 57600 -d /dev/ttyUSB0 -a 192.168.23.1/24&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Das JeeLink-Modul selbst ist jetzt unter 192.168.23.244 erreichbar&lt;br /&gt;
* Das Funknetz liegt auf 192.168.5.0/24, wir müssen daher ein Routing definieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ip route add 192.168.5.0/24 via 192.168.23.244&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Danach sind andere Ethersexe im Netz 192.168.5.0/24 über Funk erreichbar&lt;br /&gt;
&lt;br /&gt;
==Adressierung==&lt;br /&gt;
* In obigen Beispielen wurde angenommen, daß das JeeLink auf /dev/ttyUSB0 liegt&lt;br /&gt;
* Je nach Reihenfolge des Einsteckens und anderen seriellen Geräten am USB kann es aber auch auf einem anderen Namen landen. Das ist für Dinge wie Initskripte aber natürlich unpraktisch.&lt;br /&gt;
* [https://wiki.ubuntuusers.de/udev/ Hier ist beschrieben], wie man dem JeeLink von udev immer einen festen Namen zuweisen lässt&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:ZBus]]&lt;br /&gt;
[[Category:USB]]&lt;br /&gt;
[[Category:RFM12]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=JeeLink_(Deutsch)&amp;diff=1625</id>
		<title>JeeLink (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=JeeLink_(Deutsch)&amp;diff=1625"/>
				<updated>2016-01-30T15:32:13Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|JeeLink}}&lt;br /&gt;
[[File:Jeelinkv2.jpg|thumb]]&lt;br /&gt;
Das [http://jeelabs.org/jl2 JeeLink v2] ist ein kleines Atmega-Modul mit [[RFM12_(Deutsch) | RFM12]] in Form eines USB-Sticks. Es war von [http://jeelabs.org JeeLabs] aus Holland erhältlich für 29,50 EUR inkl. Versand. Mittlerweile gibt es zahlreiche Nachbauten auf Basis von [[https://www.arduino.cc/en/Main/ArduinoBoardNano | Arduino Nano]] und RFM12 bzw. RFM12b.&lt;br /&gt;
&lt;br /&gt;
Aktuelle JeeLink [http://www.digitalsmarties.net/products/jeelink (v3c)] werden aufgrund des verwendeten [[RFM69_(Deutsch) | RFM69]] Funkmoduls noch nicht von Ethersex unterstützt!&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
* Atmega 328p&lt;br /&gt;
* RFM12B mit 868MHz&lt;br /&gt;
* USB-Anbindung über FTDI FT232R&lt;br /&gt;
* Atmel Dataflash AT26DF081A (1 MByte, derzeit in Ethersex nicht unterstützt)&lt;br /&gt;
&lt;br /&gt;
==Flashen==&lt;br /&gt;
* Das JeeLink-Modul wird fertig mit einem [http://www.arduino.cc/ Arduino]-kompatiblen seriellen Bootloader ausgeliefert&lt;br /&gt;
* Der Bootloader wartet nach einem Reset ca. 1 Sek. auf entsprechende Kommandos, danach startet die normale Ethersex-Firmware&lt;br /&gt;
* Über ein kleines Programm im contrib-Ordner kann ein Reset per Software ausgelöst werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./contrib/arduino-bootloader/reset /dev/ttyUSB0&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Dann mit avrdude flashen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
avrdude -v -v -p m328p -c arduino -P /dev/ttyUSB0 -b 57600 -U flash:w:ethersex.hex&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;ACHTUNG!&amp;lt;/font&amp;gt; Bei der v3 funktioniert das flashen mit&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
avrdude -v -v -p m328p -c arduino -P /dev/ttyUSB0 -b 115200 -U flash:w:ethersex.hex&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Anbindung in Ethersex==&lt;br /&gt;
* In Ethersex ist eine fertige Konfiguration für das JeeLink enthalten&lt;br /&gt;
* Dabei wird über den FT232R das [[ZBus_(Deutsch) | ZBUS]]-Protokoll gesprochen, Anbindung über [[ZBus_Serial_Host_(Deutsch) | ZBus Serial Host]]&lt;br /&gt;
* Nach Verbinden des JeeLinks folgendes aufrufen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./contrib/zbus-serial-host/zbus-serial-host -r 57600 -d /dev/ttyUSB0 -a 192.168.23.1/24&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Das JeeLink-Modul selbst ist jetzt unter 192.168.23.244 erreichbar&lt;br /&gt;
* Das Funknetz liegt auf 192.168.5.0/24, wir müssen daher ein Routing definieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ip route add 192.168.5.0/24 via 192.168.23.244&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Danach sind andere Ethersexe im Netz 192.168.5.0/24 über Funk erreichbar&lt;br /&gt;
&lt;br /&gt;
==Adressierung==&lt;br /&gt;
* In obigen Beispielen wurde angenommen, daß das JeeLink auf /dev/ttyUSB0 liegt&lt;br /&gt;
* Je nach Reihenfolge des Einsteckens und anderen seriellen Geräten am USB kann es aber auch auf einem anderen Namen landen. Das ist für Dinge wie Initskripte aber natürlich unpraktisch.&lt;br /&gt;
* [[https://wiki.ubuntuusers.de/udev/ | Hier ist beschrieben]], wie man dem JeeLink von udev immer einen festen Namen zuweisen lässt&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:ZBus]]&lt;br /&gt;
[[Category:USB]]&lt;br /&gt;
[[Category:RFM12]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Fimser_(Deutsch)&amp;diff=1624</id>
		<title>Fimser (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Fimser_(Deutsch)&amp;diff=1624"/>
				<updated>2016-01-30T15:16:43Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* Fimser */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Fimser}}&lt;br /&gt;
== Fimser ==&lt;br /&gt;
[[File:Fimser.jpg|thumb]]&lt;br /&gt;
aka (Fifi) Field Day Instant Messenger&lt;br /&gt;
&lt;br /&gt;
Der Fifi SMSer auch Fimser genannt ist ein Amateurfunk Device das Kurzmitteilungen über Funk versenden kann.&lt;br /&gt;
Entstanden ist der Fimser als Bastelprojekt für die Fielddays des OV Lennestadt und kann von dem Verein auch erworben werden.&lt;br /&gt;
&lt;br /&gt;
Ursprüngliche Einstellungen:&lt;br /&gt;
* Trac: http://o28.sischa.net/fimser/trac&lt;br /&gt;
* Fuse: fuse: D9h, lfuse: 62h, efuse: 07h&lt;br /&gt;
&lt;br /&gt;
== Ethersex ==&lt;br /&gt;
&lt;br /&gt;
Folgendes funktioniert bisher:&lt;br /&gt;
* Speaker&lt;br /&gt;
* LEDs&lt;br /&gt;
* 20ms Periodic Call (interner Timer)&lt;br /&gt;
* RFM12 (rfm12 status: 02xx)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Conrad_Probot_(Deutsch)&amp;diff=1623</id>
		<title>Conrad Probot (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Conrad_Probot_(Deutsch)&amp;diff=1623"/>
				<updated>2016-01-30T15:12:06Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Conrad Probot}}&lt;br /&gt;
&lt;br /&gt;
Der Support für den [https://www.conrad.de/de/beratung/markenshops/c-control/c-robotics.html Probot von Conrad] ist noch experimentell!&lt;br /&gt;
&lt;br /&gt;
[[File:Conrad-probot.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
== make menuconfig ==&lt;br /&gt;
&lt;br /&gt;
In menuconfig sollte man folgendes einstellen:&lt;br /&gt;
* Target MCU: atmega128&lt;br /&gt;
* MCU Frequency: 14745000&lt;br /&gt;
* Hardware/Periphery Class: Conrad:Probot&lt;br /&gt;
* Named and logic state I/O&lt;br /&gt;
* I2C Master Support (mit I2C Detection Support und I2C EEPROM (24cxx) Support)&lt;br /&gt;
* ADC Referenzspannung ist AVCC&lt;br /&gt;
&lt;br /&gt;
== Named Pin Konfiguration ==&lt;br /&gt;
Hier die passende core/portio/config für [[Named PIN_(Deutsch) | Named PIN]]&lt;br /&gt;
* Named Pin muss aktiviert sein!&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 #   Named Pin Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # You can assign names to your microcontroller's pins here.&lt;br /&gt;
 # Keep in mind that this names must consist of alphanumeric &lt;br /&gt;
 # characters only!&lt;br /&gt;
 #&lt;br /&gt;
 # Every line starting with a hash sign (#) is a comment.&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # PIN | IN/OUT | When active? | Name&lt;br /&gt;
 #-----+--------+--------------+----------------&lt;br /&gt;
 PB0 OUTPUT   LOW        encoder_ir      # led for encoder_right AND encoder_left&lt;br /&gt;
 PB4 OUTPUT   HIGH       beep&lt;br /&gt;
 PB5 OUTPUT   HIGH       motor_right&lt;br /&gt;
 PB6 OUTPUT   HIGH       motor_left&lt;br /&gt;
 PB7 OUTPUT   HIGH       motor_enable&lt;br /&gt;
 PC0 OUTPUT   LOW        led_back_right&lt;br /&gt;
 PC1 OUTPUT   LOW        led_back_left&lt;br /&gt;
 PC2 OUTPUT   LOW        led_front_right&lt;br /&gt;
 PC3 OUTPUT   LOW        led_front_left&lt;br /&gt;
 PC4 OUTPUT   LOW        led_line_sensor&lt;br /&gt;
 PD2 INPUT    HIGH       tsop&lt;br /&gt;
 PD3 OUTPUT   LOW        ir_left         # together with pwm_ir&lt;br /&gt;
 PD4 OUTPUT   LOW        ir_right        # together with pwm_ir&lt;br /&gt;
 PE3 OUTPUT   HIGH       pwm_ir          # pwm for ir_left AND ir_right&lt;br /&gt;
 PE4 INPUT    HIGH       boot #test invert action&lt;br /&gt;
 PE6 INPUT    LOW        encoder_right       # ?&lt;br /&gt;
 PE7 INPUT    LOW        encoder_left        # ?&lt;br /&gt;
 PF5 INPUT    LOW        ldr_right       # active?&lt;br /&gt;
 PF4 INPUT    LOW        ldr_left        # active?&lt;br /&gt;
 PF3 INPUT    HIGH       mic&lt;br /&gt;
 PF2 INPUT    HIGH       line_sensor_right&lt;br /&gt;
 PF1 INPUT    HIGH       line_sensor_left&lt;br /&gt;
 PF0 INPUT    HIGH       ub_measurement&lt;br /&gt;
&lt;br /&gt;
== Control6 Scripte ==&lt;br /&gt;
&lt;br /&gt;
Einen Einstieg in [[Control6_(Deutsch) | Control6]] gibt es auch auf der Seite für [[PIN_Commands_(Deutsch) | PIN_Commands]]&lt;br /&gt;
&lt;br /&gt;
=== Beispiel für ein [[Control6_(Deutsch) | Control6]] mit Named Pin===&lt;br /&gt;
* Script unter control6/control6.src&lt;br /&gt;
* control6 muss aktiviert sein!&lt;br /&gt;
* [[Named PIN_(Deutsch) | Named PIN]] muss aktiviert sein!&lt;br /&gt;
&lt;br /&gt;
Die 4 LEDs der Hauptplatine blinken alle der Reihe nach&lt;br /&gt;
 THREAD(blinkrun)&lt;br /&gt;
  PIN_SET(led_front_left);&lt;br /&gt;
  PIN_CLEAR(led_back_left);&lt;br /&gt;
  WAIT(1);&lt;br /&gt;
  PIN_SET(led_back_left);&lt;br /&gt;
  PIN_CLEAR(led_back_right);&lt;br /&gt;
  WAIT(1);&lt;br /&gt;
  PIN_SET(led_back_right);&lt;br /&gt;
  PIN_CLEAR(led_front_right);&lt;br /&gt;
  WAIT(1);&lt;br /&gt;
  PIN_SET(led_front_right);&lt;br /&gt;
  PIN_CLEAR(led_front_left);&lt;br /&gt;
  WAIT(1);&lt;br /&gt;
 THREAD_END(blinkrun)&lt;br /&gt;
 THREAD_START(blinkrun)&lt;br /&gt;
&lt;br /&gt;
== Funktionstüchtig ==&lt;br /&gt;
Wichtig ist das man AVCC als Referenzspannung für die ADC Eingänge einstellt, sonst geben die Sensoren nichts sinnvolles zurück. &lt;br /&gt;
&lt;br /&gt;
=== Main Unit ===&lt;br /&gt;
* [[I2C_(Deutsch) | I2C]] Bus&lt;br /&gt;
* Serielle Schnittstelle für [[ECMD_(Deutsch) | ECMD]] (TTL Logik, daher Pegelwandler benutzen)&lt;br /&gt;
* 4 Rote LEDs auf der Main Unit&lt;br /&gt;
* Helligkeitssensoren mit [[ADC_(Deutsch) | ADC]]&lt;br /&gt;
* Buzzer (Piezo Lautsprecher - sehr leise) getestet mit Melodyausgabe aus dem [[Sound_(Deutsch) | Sound]]-Modul&lt;br /&gt;
&lt;br /&gt;
=== Drive Unit ===&lt;br /&gt;
* Motoren via H-Bridge angesteuert (Vor, Zurück, Rechts, Links)&lt;br /&gt;
* Line Sensor mit [[ADC_(Deutsch) | ADC]]&lt;br /&gt;
&lt;br /&gt;
== Bilder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Conrad-probot.jpg&lt;br /&gt;
Habo_probot_drive_unit_top.jpg&lt;br /&gt;
Habo_probot_drive_unit_top_bottom.jpg&lt;br /&gt;
Habo_probot_front_view2.jpg&lt;br /&gt;
Habo_probot_front_view3.jpg&lt;br /&gt;
Habo_probot_main%2Bdrive_unit.jpg&lt;br /&gt;
Habo_probot_main_unitbottom_mit_programmieradapter.jpg&lt;br /&gt;
Habo_probot_main_unit_CPU_modul_ohne_Deckel.jpg&lt;br /&gt;
Habo_probot_main_unit_top_mit_programmieradapter.jpg&lt;br /&gt;
Habo_probot_mit_RFM12_modul.jpg&lt;br /&gt;
Habo_probot_selfmade_breadboard.jpg&lt;br /&gt;
Habo_rfm12_probot_modul1.jpg&lt;br /&gt;
Habo_rfm12_probot_modul2.jpg&lt;br /&gt;
Habo_probot_stackable.jpg&lt;br /&gt;
Habo_probot_advanced.jpg&lt;br /&gt;
Habo_probot_lights_on.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Conrad_Probot_(Deutsch)&amp;diff=1622</id>
		<title>Conrad Probot (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Conrad_Probot_(Deutsch)&amp;diff=1622"/>
				<updated>2016-01-30T15:11:35Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* Conrad Probot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Conrad Probot}}&lt;br /&gt;
{{i18n|Conrad Probot}}&lt;br /&gt;
&lt;br /&gt;
Der Support für den [https://www.conrad.de/de/beratung/markenshops/c-control/c-robotics.html Probot von Conrad] ist noch experimentell!&lt;br /&gt;
&lt;br /&gt;
[[File:Conrad-probot.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
== make menuconfig ==&lt;br /&gt;
&lt;br /&gt;
In menuconfig sollte man folgendes einstellen:&lt;br /&gt;
* Target MCU: atmega128&lt;br /&gt;
* MCU Frequency: 14745000&lt;br /&gt;
* Hardware/Periphery Class: Conrad:Probot&lt;br /&gt;
* Named and logic state I/O&lt;br /&gt;
* I2C Master Support (mit I2C Detection Support und I2C EEPROM (24cxx) Support)&lt;br /&gt;
* ADC Referenzspannung ist AVCC&lt;br /&gt;
&lt;br /&gt;
== Named Pin Konfiguration ==&lt;br /&gt;
Hier die passende core/portio/config für [[Named PIN_(Deutsch) | Named PIN]]&lt;br /&gt;
* Named Pin muss aktiviert sein!&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 #   Named Pin Configuration File&lt;br /&gt;
 #&lt;br /&gt;
 # You can assign names to your microcontroller's pins here.&lt;br /&gt;
 # Keep in mind that this names must consist of alphanumeric &lt;br /&gt;
 # characters only!&lt;br /&gt;
 #&lt;br /&gt;
 # Every line starting with a hash sign (#) is a comment.&lt;br /&gt;
 #&lt;br /&gt;
 #&lt;br /&gt;
 # PIN | IN/OUT | When active? | Name&lt;br /&gt;
 #-----+--------+--------------+----------------&lt;br /&gt;
 PB0 OUTPUT   LOW        encoder_ir      # led for encoder_right AND encoder_left&lt;br /&gt;
 PB4 OUTPUT   HIGH       beep&lt;br /&gt;
 PB5 OUTPUT   HIGH       motor_right&lt;br /&gt;
 PB6 OUTPUT   HIGH       motor_left&lt;br /&gt;
 PB7 OUTPUT   HIGH       motor_enable&lt;br /&gt;
 PC0 OUTPUT   LOW        led_back_right&lt;br /&gt;
 PC1 OUTPUT   LOW        led_back_left&lt;br /&gt;
 PC2 OUTPUT   LOW        led_front_right&lt;br /&gt;
 PC3 OUTPUT   LOW        led_front_left&lt;br /&gt;
 PC4 OUTPUT   LOW        led_line_sensor&lt;br /&gt;
 PD2 INPUT    HIGH       tsop&lt;br /&gt;
 PD3 OUTPUT   LOW        ir_left         # together with pwm_ir&lt;br /&gt;
 PD4 OUTPUT   LOW        ir_right        # together with pwm_ir&lt;br /&gt;
 PE3 OUTPUT   HIGH       pwm_ir          # pwm for ir_left AND ir_right&lt;br /&gt;
 PE4 INPUT    HIGH       boot #test invert action&lt;br /&gt;
 PE6 INPUT    LOW        encoder_right       # ?&lt;br /&gt;
 PE7 INPUT    LOW        encoder_left        # ?&lt;br /&gt;
 PF5 INPUT    LOW        ldr_right       # active?&lt;br /&gt;
 PF4 INPUT    LOW        ldr_left        # active?&lt;br /&gt;
 PF3 INPUT    HIGH       mic&lt;br /&gt;
 PF2 INPUT    HIGH       line_sensor_right&lt;br /&gt;
 PF1 INPUT    HIGH       line_sensor_left&lt;br /&gt;
 PF0 INPUT    HIGH       ub_measurement&lt;br /&gt;
&lt;br /&gt;
== Control6 Scripte ==&lt;br /&gt;
&lt;br /&gt;
Einen Einstieg in [[Control6_(Deutsch) | Control6]] gibt es auch auf der Seite für [[PIN_Commands_(Deutsch) | PIN_Commands]]&lt;br /&gt;
&lt;br /&gt;
=== Beispiel für ein [[Control6_(Deutsch) | Control6]] mit Named Pin===&lt;br /&gt;
* Script unter control6/control6.src&lt;br /&gt;
* control6 muss aktiviert sein!&lt;br /&gt;
* [[Named PIN_(Deutsch) | Named PIN]] muss aktiviert sein!&lt;br /&gt;
&lt;br /&gt;
Die 4 LEDs der Hauptplatine blinken alle der Reihe nach&lt;br /&gt;
 THREAD(blinkrun)&lt;br /&gt;
  PIN_SET(led_front_left);&lt;br /&gt;
  PIN_CLEAR(led_back_left);&lt;br /&gt;
  WAIT(1);&lt;br /&gt;
  PIN_SET(led_back_left);&lt;br /&gt;
  PIN_CLEAR(led_back_right);&lt;br /&gt;
  WAIT(1);&lt;br /&gt;
  PIN_SET(led_back_right);&lt;br /&gt;
  PIN_CLEAR(led_front_right);&lt;br /&gt;
  WAIT(1);&lt;br /&gt;
  PIN_SET(led_front_right);&lt;br /&gt;
  PIN_CLEAR(led_front_left);&lt;br /&gt;
  WAIT(1);&lt;br /&gt;
 THREAD_END(blinkrun)&lt;br /&gt;
 THREAD_START(blinkrun)&lt;br /&gt;
&lt;br /&gt;
== Funktionstüchtig ==&lt;br /&gt;
Wichtig ist das man AVCC als Referenzspannung für die ADC Eingänge einstellt, sonst geben die Sensoren nichts sinnvolles zurück. &lt;br /&gt;
&lt;br /&gt;
=== Main Unit ===&lt;br /&gt;
* [[I2C_(Deutsch) | I2C]] Bus&lt;br /&gt;
* Serielle Schnittstelle für [[ECMD_(Deutsch) | ECMD]] (TTL Logik, daher Pegelwandler benutzen)&lt;br /&gt;
* 4 Rote LEDs auf der Main Unit&lt;br /&gt;
* Helligkeitssensoren mit [[ADC_(Deutsch) | ADC]]&lt;br /&gt;
* Buzzer (Piezo Lautsprecher - sehr leise) getestet mit Melodyausgabe aus dem [[Sound_(Deutsch) | Sound]]-Modul&lt;br /&gt;
&lt;br /&gt;
=== Drive Unit ===&lt;br /&gt;
* Motoren via H-Bridge angesteuert (Vor, Zurück, Rechts, Links)&lt;br /&gt;
* Line Sensor mit [[ADC_(Deutsch) | ADC]]&lt;br /&gt;
&lt;br /&gt;
== Bilder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Conrad-probot.jpg&lt;br /&gt;
Habo_probot_drive_unit_top.jpg&lt;br /&gt;
Habo_probot_drive_unit_top_bottom.jpg&lt;br /&gt;
Habo_probot_front_view2.jpg&lt;br /&gt;
Habo_probot_front_view3.jpg&lt;br /&gt;
Habo_probot_main%2Bdrive_unit.jpg&lt;br /&gt;
Habo_probot_main_unitbottom_mit_programmieradapter.jpg&lt;br /&gt;
Habo_probot_main_unit_CPU_modul_ohne_Deckel.jpg&lt;br /&gt;
Habo_probot_main_unit_top_mit_programmieradapter.jpg&lt;br /&gt;
Habo_probot_mit_RFM12_modul.jpg&lt;br /&gt;
Habo_probot_selfmade_breadboard.jpg&lt;br /&gt;
Habo_rfm12_probot_modul1.jpg&lt;br /&gt;
Habo_rfm12_probot_modul2.jpg&lt;br /&gt;
Habo_probot_stackable.jpg&lt;br /&gt;
Habo_probot_advanced.jpg&lt;br /&gt;
Habo_probot_lights_on.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_rfm12_probot_modul2.jpg&amp;diff=1621</id>
		<title>File:Habo rfm12 probot modul2.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_rfm12_probot_modul2.jpg&amp;diff=1621"/>
				<updated>2016-01-30T14:40:35Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_rfm12_probot_modul1.jpg&amp;diff=1620</id>
		<title>File:Habo rfm12 probot modul1.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_rfm12_probot_modul1.jpg&amp;diff=1620"/>
				<updated>2016-01-30T14:40:16Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_stackable.jpg&amp;diff=1619</id>
		<title>File:Habo probot stackable.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_stackable.jpg&amp;diff=1619"/>
				<updated>2016-01-30T14:39:53Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_selfmade_breadboard.jpg&amp;diff=1618</id>
		<title>File:Habo probot selfmade breadboard.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_selfmade_breadboard.jpg&amp;diff=1618"/>
				<updated>2016-01-30T14:39:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_mit_RFM12_modul.jpg&amp;diff=1617</id>
		<title>File:Habo probot mit RFM12 modul.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_mit_RFM12_modul.jpg&amp;diff=1617"/>
				<updated>2016-01-30T14:39:04Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_main%2Bdrive_unit.jpg&amp;diff=1616</id>
		<title>File:Habo probot main+drive unit.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_main%2Bdrive_unit.jpg&amp;diff=1616"/>
				<updated>2016-01-30T14:38:27Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_main_unitbottom_mit_programmieradapter.jpg&amp;diff=1615</id>
		<title>File:Habo probot main unitbottom mit programmieradapter.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_main_unitbottom_mit_programmieradapter.jpg&amp;diff=1615"/>
				<updated>2016-01-30T14:37:58Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_main_unit_top_mit_programmieradapter.jpg&amp;diff=1614</id>
		<title>File:Habo probot main unit top mit programmieradapter.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_main_unit_top_mit_programmieradapter.jpg&amp;diff=1614"/>
				<updated>2016-01-30T14:37:33Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_main_unit_CPU_modul_ohne_Deckel.jpg&amp;diff=1613</id>
		<title>File:Habo probot main unit CPU modul ohne Deckel.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_main_unit_CPU_modul_ohne_Deckel.jpg&amp;diff=1613"/>
				<updated>2016-01-30T14:37:09Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_lights_on.jpg&amp;diff=1612</id>
		<title>File:Habo probot lights on.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_lights_on.jpg&amp;diff=1612"/>
				<updated>2016-01-30T14:36:14Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_front_view3.jpg&amp;diff=1611</id>
		<title>File:Habo probot front view3.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_front_view3.jpg&amp;diff=1611"/>
				<updated>2016-01-30T14:35:37Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_front_view2.jpg&amp;diff=1610</id>
		<title>File:Habo probot front view2.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_front_view2.jpg&amp;diff=1610"/>
				<updated>2016-01-30T14:35:15Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_drive_unit_top_bottom.jpg&amp;diff=1609</id>
		<title>File:Habo probot drive unit top bottom.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_drive_unit_top_bottom.jpg&amp;diff=1609"/>
				<updated>2016-01-30T14:32:56Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_drive_unit_top.jpg&amp;diff=1608</id>
		<title>File:Habo probot drive unit top.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_drive_unit_top.jpg&amp;diff=1608"/>
				<updated>2016-01-30T14:32:15Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=File:Habo_probot_advanced.jpg&amp;diff=1607</id>
		<title>File:Habo probot advanced.jpg</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=File:Habo_probot_advanced.jpg&amp;diff=1607"/>
				<updated>2016-01-30T14:31:40Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: taken from old wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;taken from old wiki&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=ZBus_Board_1_0_(Deutsch)&amp;diff=1514</id>
		<title>ZBus Board 1 0 (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=ZBus_Board_1_0_(Deutsch)&amp;diff=1514"/>
				<updated>2015-04-02T18:20:25Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|ZBus_Board_1_0}}&lt;br /&gt;
[[File:ZBus-Board_06.jpg|thumb|right|Schaltbild]]&lt;br /&gt;
'''Motivation'''&lt;br /&gt;
* Test eines kommerziellen Platinenherstellers mit einem preiswerten, aber sinnvollen Projekt&lt;br /&gt;
* einseitige Platine, um auch selbst ätzen zu können; leicht verfügbare Bauteile&lt;br /&gt;
* günstiger [[ZBus_(Deutsch) | ZBus]]-Client für kleine Aufgaben und geringsten Platzbedarf&lt;br /&gt;
* direkte Verbindung zu einem LCD (rückseitig auflötbar)&lt;br /&gt;
* direkte Anschaltung eines DHT22 oder I2C&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ZBus-Board_05.jpg|thumb|right|Platine]]&lt;br /&gt;
&lt;br /&gt;
'''Ausstattung'''&lt;br /&gt;
* ATMega 328p mit 16MHz Quarz&lt;br /&gt;
* MAX485 als Pegelwandler&lt;br /&gt;
* Terminierung optional bestückbar&lt;br /&gt;
* Verpolschutzdiode, kleiner Spannungsregler&lt;br /&gt;
* Status-LEDs für ZBus TX/RX oder andere Aufgaben&lt;br /&gt;
* 16pol. Pinreihe für direkten Anschluß eines HD44780-LCD inkl. Kontrastregler und schaltbarer Hintergrundbeleuchtung&lt;br /&gt;
* 4pol. Pinreihe für DHT22, I2C oder Onewire&lt;br /&gt;
* 6pol. ISP-Stecker&lt;br /&gt;
* alle Pinreihen sind zueinander im 2.54mm-Raster, um eine Lochrasterplatine für weitere Aufgaben anlöten zu können&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einsatzbeispiele'''&lt;br /&gt;
* Roomnode mit LCD und abgesetztem DHT22 im schlanken Gehäuse&lt;br /&gt;
* mit optionalem Sensorboard (Lochraster) zum Messen und Schalten&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Bilder'''&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
ZBus-Board_01.jpg|bestückte Platine&lt;br /&gt;
ZBus-Board_02.jpg|Rückseite&lt;br /&gt;
ZBus-Board_03.jpg|aufgesteckt auf HD44780-LCD&lt;br /&gt;
ZBus-Board_04.jpg|Schnittstelle für DHT22 oder I2C&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=ZBus_Board_1_0_(Deutsch)&amp;diff=1513</id>
		<title>ZBus Board 1 0 (Deutsch)</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=ZBus_Board_1_0_(Deutsch)&amp;diff=1513"/>
				<updated>2015-04-02T18:09:38Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: Created page with &amp;quot;{{i18n|ZBus Board 1.0}} Schaltbild '''Motivation''' * Test eines kommerziellen Platinenherstellers mit einem preiswerten, aber sinnvolle...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|ZBus Board 1.0}}&lt;br /&gt;
[[File:ZBus-Board_06.jpg|thumb|right|Schaltbild]]&lt;br /&gt;
'''Motivation'''&lt;br /&gt;
* Test eines kommerziellen Platinenherstellers mit einem preiswerten, aber sinnvollen Projekt&lt;br /&gt;
* einseitige Platine, um auch selbst ätzen zu können; leicht verfügbare Bauteile&lt;br /&gt;
* günstiger [[ZBus_(Deutsch) | ZBus]]-Client für kleine Aufgaben und geringsten Platzbedarf&lt;br /&gt;
* direkte Verbindung zu einem LCD (rückseitig auflötbar)&lt;br /&gt;
* direkte Anschaltung eines DHT22 oder I2C&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ZBus-Board_05.jpg|thumb|right|Platine]]&lt;br /&gt;
&lt;br /&gt;
'''Ausstattung'''&lt;br /&gt;
* ATMega 328p mit 16MHz Quarz&lt;br /&gt;
* MAX485 als Pegelwandler&lt;br /&gt;
* Terminierung optional bestückbar&lt;br /&gt;
* Verpolschutzdiode, kleiner Spannungsregler&lt;br /&gt;
* Status-LEDs für ZBus TX/RX oder andere Aufgaben&lt;br /&gt;
* 16pol. Pinreihe für direkten Anschluß eines HD44780-LCD inkl. Kontrastregler und schaltbarer Hintergrundbeleuchtung&lt;br /&gt;
* 4pol. Pinreihe für DHT22, I2C oder Onewire&lt;br /&gt;
* 6pol. ISP-Stecker&lt;br /&gt;
* alle Pinreihen sind zueinander im 2.54mm-Raster, um eine Lochrasterplatine für weitere Aufgaben anlöten zu können&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einsatzbeispiele'''&lt;br /&gt;
* Roomnode mit LCD und abgesetztem DHT22 im schlanken Gehäuse&lt;br /&gt;
* mit optionalem Sensorboard (Lochraster) zum Messen und Schalten&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Bilder'''&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
ZBus-Board_01.jpg|bestückte Platine&lt;br /&gt;
ZBus-Board_02.jpg|Rückseite&lt;br /&gt;
ZBus-Board_03.jpg|aufgesteckt auf HD44780-LCD&lt;br /&gt;
ZBus-Board_04.jpg|Schnittstelle für DHT22 oder I2C&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	<entry>
		<id>http://www.ethersex.de/index.php?title=Supported_Boards&amp;diff=1512</id>
		<title>Supported Boards</title>
		<link rel="alternate" type="text/html" href="http://www.ethersex.de/index.php?title=Supported_Boards&amp;diff=1512"/>
				<updated>2015-04-02T17:29:48Z</updated>
		
		<summary type="html">&lt;p&gt;Kpwg: /* DIY Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{i18n|Supported Boards}}&lt;br /&gt;
== Commercial Products ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Etherrape.jpg | [[Etherrape | Etherrape]] by lochraster.org&lt;br /&gt;
Jackalope.jpg | [[Jackalope | Jackalope]] by lochraster.org&lt;br /&gt;
Radig.jpg | [[AVR Webmodul | AVR Webmodul]] by lrich Radig&lt;br /&gt;
Avr-net-io.jpg | [[AVR-NET-IO | AVR-NET-IO]] by Pollin&lt;br /&gt;
Funk-avr-eval.jpg | [[Funk-AVR-Evaluationsboard | Funk-AVR-Evaluationsboard]] by Pollin &lt;br /&gt;
Conrad-probot.jpg | [[Conrad Probot | Conrad Probot]] by Conrad&lt;br /&gt;
Fimser.jpg | [[Fimser | Fimser]] by OV Lennestadt&lt;br /&gt;
Jeelinkv2.jpg | [[JeeLink | JeeLink]] by JeeLabs&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DIY Hardware ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Fhem_wz_01.jpg | [[Nutzung_in_FHEM | FHEM]] [[FHEM_Wohnzimmer | Roomnode #1]]&lt;br /&gt;
Fhem_ku_01.jpg | [[Nutzung_in_FHEM | FHEM]] [[FHEM_Kueche | Roomnode #2]]&lt;br /&gt;
Fhem_ke_01.jpg | [[Nutzung_in_FHEM | FHEM]] [[FHEM_Keller | Roomnode #3]]&lt;br /&gt;
Zbus_testboard.jpg | [[ZBus|ZBus]][[ZBus_Testboard | Testboard]]&lt;br /&gt;
ZBus-Board 01.jpg | [[ZBus|ZBus]][[ZBus_Board_1_0 | Board 1.0]]&lt;br /&gt;
Bw_final.jpg | bed guard&lt;br /&gt;
Atmega162-usb.jpg | ATmega162 with USB&lt;br /&gt;
Usb2zbus-i2c.jpg | USB to [[ZBus | ZBus]] Dongle&lt;br /&gt;
Pumpensteuerung.jpg | Jochen's pump control&lt;br /&gt;
Ethmega.jpg | ths' ATmega64+ (SMD)&lt;br /&gt;
Usbonly_atmega32+i2c_pcf8574_auf_steckbrett.jpg | USB-Ethersex with [[I2C| I2C]] and port extension&lt;br /&gt;
Chaotischer-aufbau.jpg | Pollin AVR-NET-IO with add ons&lt;br /&gt;
Ethersex-Avrnet-GPA.jpg | Pollin AVR-NET-IO based outlet control center&lt;br /&gt;
Resetbox_proto_01.jpg | [[Resetbox | Resetbox]]&lt;br /&gt;
Habo_bulbdial_clock.jpg | [[Bulbdial Clock | Bulbdial Clock]]&lt;br /&gt;
Ftdi-lochraster.jpg | Atmega168p with USB connector via FT232R&lt;br /&gt;
Ehaserl-badge-eh2010.jpg | [[ehaserl|ehaserl]] Badge des easter(h)egg 2010&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Ethersex]]&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Kpwg</name></author>	</entry>

	</feed>