<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ThomasRamm</id>
	<title>FHEMWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ThomasRamm"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/ThomasRamm"/>
	<updated>2026-04-06T18:44:37Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Sonoff&amp;diff=18498</id>
		<title>Sonoff</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Sonoff&amp;diff=18498"/>
		<updated>2017-01-15T23:02:07Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: /* MQTT testen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;sonoff, dieser Artikel beschreibt die Ankopplung der kostengünstigen sonoff Module an FHEM mit ESPEasy oder MQTT.&#039;&#039;&#039;&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Achtung: Arbeiten mit Netzspannung kann lebensgefährlich sein und darf nur von autorisiertem Fachpersonal durchgeführt werden!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seit einiger Zeit werden von der [https://www.itead.cc/sonoff-wifi-wireless-switch.html Fa. Itead] kostengünstige &amp;quot;sonoff&amp;quot; Produkte angeboten die glücklicherweise den [http://dl.itead.cc/IM151116002/0A-ESP8266_Specifications_v4.1.pdf ESP8266 Chip] On Board haben und somit die ideale Grundlage für [http://www.esp8266.nu/index.php/Main_Page ESPEasy] und für [https://forum.fhem.de/index.php/board,46.0.html Fhem] darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nützliche Links zum Hersteller:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://www.itead.cc/blog/user-guide-for-sonoff-slampher User Manual von Itead]&lt;br /&gt;
&lt;br /&gt;
[https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf Sonoff Schaltplan]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
&#039;&#039;&#039;Bitte unbedingt die elektrotechnischen Sicherheitsrichtlinien beachten und einhalten!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_15.jpg|thumb|left|alt=Warnung Netzspannung]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Achtung: An dem Modul liegt Netzspannung an die lebensgefährlich ist. Es dürfen nur entsprechend ausgebildete Personen dieses Modul in Betrieb nehmen. Zum Umbau und zur Softwareaktualisierung darf keine Netzspannung angeschlossen sein&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wie gefährlich das hantieren mit Netzspannung sein kann, wird hier am Beispiel eines [http://mysku.ru/blog/china-stores/45762.html russischen Anwenders] gezeigt, der hat beim Flashen die Netzspannung am Modul gelassen und somit über die Verbindung mit dem Netzteil des Laptop lebensgefährliche Spannung auf die FTDI Schnittstelle gebracht. Das Modul ist dabei abgeraucht!&lt;br /&gt;
&lt;br /&gt;
==Modelle==&lt;br /&gt;
&lt;br /&gt;
===Produktübersichtsliste sonoff===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:right&amp;quot;&lt;br /&gt;
! Produkt Name !! Beschreibung !! Spannungsversorgung !!  Imax !! Pmax !! Frequenz !! Schaltplan !! Link&lt;br /&gt;
|-&lt;br /&gt;
| Sonoff || Wireless control switch || 90~250V AC || 10A || 2200W || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff Plan] || [https://www.itead.cc/smart-home/sonoff-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff RF || 433 RF remote || 90~250V AC || 10A || 2200W || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_RF Plan] || [https://www.itead.cc/smart-home/im151116003.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff SV || Low voltage Input || 5~24V DC || 10A || 240W DC || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_SV Plan] || [https://www.itead.cc/smart-home/sonoff-sv.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff TH10/TH16 || Monitor and set Temp.&amp;amp;Hum. ||  90~250V AC || 10A/16A || 2200W(10A)/3500W(16A)	 || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_TH_10/16 Plan] || [https://www.itead.cc/smart-home/sonoff-th.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Dual || Remote control 2 devices ||  90~250V AC || 16A || 3500W || 2.4Ghz || [https://www.itead.cc/wiki/Sonoff_Dual Plan] || [https://www.itead.cc/sonoff-dual.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Pow || Report power &amp;amp;power usage ||  90~250V AC || 16A || 3500W || 2.4Ghz || [https://www.itead.cc/wiki/Sonoff_Pow Plan] || [https://www.itead.cc/sonoff-pow.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff LED || WiFi Control Dimming LED ||  180~265V AC || 0.3-0.6A || 42W || 2.4Ghz ||  kein || [https://www.itead.cc/sonoff-led.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Touch || WiFi wall touch switch ||  90~250V AC || 2A || 400W || 2.4Ghz || kein || [https://www.itead.cc/sonoff-touch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Slampher || Wireless control light holder ||  90~250V AC || 2A || 200W || 2.4Ghz || [http://wiki.iteadstudio.com/Slampher Plan] || [https://www.itead.cc/smart-home/slampher-wifi-wireless-light-holder.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  S20 Smart Socket || Smart socket || 	90~250V AC || 10A || 2000W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/smart-socket-eu.html EU-Stecker] &lt;br /&gt;
|-&lt;br /&gt;
|  iFan || Smart fan ||  185~264V AC ||﹤1A || 60W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/smart-socket-eu.html EU-Stecker] &lt;br /&gt;
|-&lt;br /&gt;
| Motor/Pump Control Switch || clockwise/anticlockwise running ||  5V/7~32V DC || 10A || 50~320W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/motor-reversing-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| 1 Chnl Inching/self-locking Switch || Access control ||  	5V/12V DC || 10A || 50/120W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/inching-self-locking-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  4 Chnl Inching/self-locking/inter-locking Switch || Access control, rolling door control ||  5V/5~32V DC/90~250V AC || 10A || 50~320W/2500W || 2.4Ghz || kein || [https://www.itead.cc/ifan.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp; || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Eine Übersichtliste der verschiedenen Produkte mit technischen Kurzangaben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Model: IM151116002: Erstes Modell===&lt;br /&gt;
[https://www.itead.cc/sonoff-wifi-wireless-switch.html Sonoff WiFi Wireless Smart Switch for MQTT COAP Smart Home]&lt;br /&gt;
[[Datei:sonoff_sw_0.jpg|thumb|left|alt=sonoff Switch]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Das sonoff Modul ist in einem zweckmäßigen und gefälligem Gehäuse verbaut!&lt;br /&gt;
&lt;br /&gt;
====Platine====&lt;br /&gt;
[[Datei:sonoff_sw_1.jpg|thumb|left|alt=sonoff Switch von vorne]]&lt;br /&gt;
&lt;br /&gt;
Die Platine ist sehr übersichtlich aufgebaut und der Hersteller hat auch alle Vorbereitungen zum Flashen einer alternativen Software vorgesehen (über serielle Schnittstelle via FTDI-Modul). Mit einer alternativen Software wie ESPEasy ist eine direkte Ankopplung des &#039;&#039;&#039;sonoff&#039;&#039;&#039; an FHEM somit ein leicht durchführbarer Vorgang.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_3.jpg|thumb|left|alt=sonoff Switch von hinten]]&lt;br /&gt;
Die stromführenden Leitungen wurden mit Lötzinn vom Hersteller verstärkt um die angegebenen Stromstärken mit geringer Hitzeentwicklung zu transportieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160712005: TH 10A/16A ===&lt;br /&gt;
[https://www.itead.cc/sonoff-th.html Sonoff TH 10A/16A WiFi Smart Switch]&lt;br /&gt;
&lt;br /&gt;
====TH10 / TH16 weitere GPIO zugänglich machen====&lt;br /&gt;
[[Datei:Sonoff_TH_10A-16A_kleiner.jpg|thumb|left|alt=TH10 / TH16 weitere GPIO zugänglich machen]]&lt;br /&gt;
Der Hersteller hat zwar schon Platine für eine weitere Stiftleiste vorbereitet, jedoch muss diese noch bestückt werden. Die nicht beschalteten Stifte können dann genutzt werden um die &amp;quot;verdeckten&amp;quot; GPIO zugänglich zu machen. Die Verdrahtung kann dem Bild entnommen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Achtung: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160811001: Sonoff Dual ===&lt;br /&gt;
[https://www.itead.cc/sonoff-dual.html Sonoff Dual WiFi Wireless Smart Swtich]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160810001: Sonoff Pow ===&lt;br /&gt;
[https://www.itead.cc/sonoff-pow.html Sonoff POW WiFi Switch with Power Consumption Measurement]&lt;br /&gt;
[[Datei:sonoff_sw_30.jpg|thumb|left|alt=SONOFF POW]]Ein sehr interessantes und kostengünstiges Modul zur Messung der aktuellen Leistung. Das Modul kann via MQTT in Fhem angebunden werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel zur Einbindung ist [http://www.fhemwiki.de/wiki/Sonoff#Sonoff_POW_einrichten hier unten] im Wiki beschrieben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Model: weitere Modelle===&lt;br /&gt;
[https://www.itead.cc/search/result/?cat=&amp;amp;q=sonoff Sonoff Weitere Modelle finden sich auf der Homepage des Hersstellers]&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen zum Flashen==&lt;br /&gt;
[[Datei:sonoff_sw_2.jpg|thumb|left|alt=serielle Schnittstelle]]&lt;br /&gt;
&lt;br /&gt;
Hier auf der Platine sind die benötigten Signale für ein FTDI Modul schon vorhanden. Der quadratische Pin gleich über dem Taster ist die Spannungsversorgung zum Flashen vom FDTI von 3.3V Es muss daher unbedingt ein FTDI Modul genommen werden, dass nicht nur einen Jumper für 3.3V besitzt sondern auch die Spannung auf 3.3V herab setzt. Ist dies nicht der Fall, läuft man Gefahr das Modul unbrauchbar zu machen. Es ist daher zu empfehlen einen Spannungsteiler mit 2 Widerständen oder einen Pegelwandler zwischenschalten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Signale der Schnittstelle==&lt;br /&gt;
von oben nach unten auf der Steckerleiste des sonoff U4 (Model: IM151116002).&lt;br /&gt;
&lt;br /&gt;
 Pin5 = vorbereitet für GPIO&lt;br /&gt;
 Pin4 = Masse&lt;br /&gt;
 Pin3 = TxD&lt;br /&gt;
 Pin2 = RxD&lt;br /&gt;
 Pin1 = 3.3V&lt;br /&gt;
&lt;br /&gt;
Siehe dazu auch den [https://forum.fhem.de/index.php/topic,55036.0.html Link aus dem Forum]:&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Platine mit Stiftleiste bestücken==&lt;br /&gt;
[[Datei:sonoff_sw_4.jpg|thumb|left|alt=Platine mit Stiftleiste bestücken]]&lt;br /&gt;
Der Hersteller hat zwar schon die Platine vorbereitet, jedoch muss sie noch mit einer Stiftleiste bestückt werden um das FTDI Modul bequem verbinden zu können. Nachdem einmal ESPEasy geflasht worden ist, kann es in Zukunft via WEB (OTA) geflasht werden und die Stiftleiste ist dann nicht mehr erforderlich. Aufgrund der geringen Kosten fällt dies jedoch nicht ins Gewicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Für die Module TH10/TH16 sind die Lötpunkte für die Stiftleiste schon beschriftet. Die Stiftleiste selber muss allerdings auch nachgerüstet werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Achtung&#039;&#039;&#039;: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
==ESPEasy flashen==&lt;br /&gt;
[[Datei:sonoff_sw_6.jpg|thumb|left|alt=sonoff mit angestecktem FDTI Adapter]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um die Software ESPEasy an den sonoff Modulen! }}&lt;br /&gt;
Die Spannungsversorgung des sonoff Moduls wird hier vom FTDI Konverter mit 3.3V über die Verbindungskabel zum Pfostenstecker durchgeführt. &lt;br /&gt;
&lt;br /&gt;
Der FTDI Adapter wird dann mit der USB Schnittstelle mit dem Computer verbunden.&lt;br /&gt;
&lt;br /&gt;
Zum compilieren wird in der Arduino Umgebung auch die ArduinoJson library 5.6.4+ benötigt. Eine genaue Anleitung kann [https://forum.fhem.de/index.php/topic,55728.msg473220.html#msg473220 hier] nachgelesen werden. Im Gegensatz zu Arends Sketch für die MQTT Umgebung genügt hier die Arduino IDE 1.6.9. Für die Sketches von Arends empfiehlt sich Arduino IDE &amp;gt;=1.6.12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===mit Arduino compilieren===&lt;br /&gt;
[[Datei:sonoff_sw_10.jpg|thumb|left|alt=Einstellung Arduino IDE]]&lt;br /&gt;
Wer selber mit der Arduino IDE compilieren will bitte folgende Einstellungen beachten. Die anschließenden Arbeiten sind dann gleich wie bei Abschnitt &#039;&#039;&#039;fertige Binary&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Unbedingt die neueste [https://github.com/bblanchon/ArduinoJson Arduino Json Library] benutzen (siehe oben)! Es gibt zwar keine Compilerfehler, aber es kommt anschließend zu Fehlfunktionen in der ESP Bridge!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 Generic ESP8266 Module&lt;br /&gt;
 Flash Mode: QIO&lt;br /&gt;
 Flash Frequency: 40 MHz&lt;br /&gt;
 CPU Frequency: 80 MHz&lt;br /&gt;
 Flash Size: 1M (64K SPIFFS)&lt;br /&gt;
 Debug Port: disabled&lt;br /&gt;
 Debug Level: none&lt;br /&gt;
 Reset Mode: ck&lt;br /&gt;
 Upload Speed: 115200&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===fertige Binary flashen===&lt;br /&gt;
[[Datei:sonoff_sw_7.jpg|thumb|left|alt=NodeMCU Firmware Flasher]]&lt;br /&gt;
Es empfiehlt sich eine fertige Binary von ESPEasy aufzuspielen. In diesem Wiki wurde R140 verwendet.&lt;br /&gt;
&lt;br /&gt;
Siehe dazu auch den [http://www.esp8266.nu/index.php/Main_Page Link von ESPEasy] und das [https://learn.adafruit.com/building-and-running-micropython-on-the-esp8266/flash-firmware Handbuch] für den Flasher.&lt;br /&gt;
&lt;br /&gt;
In manchen Versionen von ESPEasy (zB.R120) ist auch ein Flasher beigelegt, welcher zwar keine grafische Oberfläche hat aber hervorragend funktioniert. Wenn andere versagen, geht es mit diesem Flasher immer noch, einfach probieren!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 Netzspannung darf &#039;NICHT&#039; angeschlossen sein!!!&lt;br /&gt;
 Taster am Sonoff gedrückt halten&lt;br /&gt;
 FTDI Adapter verbinden&lt;br /&gt;
 Taster am Sonoff los lassen&lt;br /&gt;
 Sketch übertragen&lt;br /&gt;
 Sonoff vom FTDI trennen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Wenn einmal die Firmware auf das sonoff Modul geflasht worden ist, kann in Zukunft ESPEasy direkt unter Tools via HTTP dies durchführen. Es muss dazu kein FTDI Konverter mehr verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==ESPEasy==&lt;br /&gt;
[[Datei:sonoff_sw_11.jpg|thumb|left|alt=ESPEasy Devices]]&lt;br /&gt;
Wenn das Modul fertig geflasht ist und die Verbindung zum Modul hergestellt ist, können die Einstellungen in ESPEasy durchgeführt werden.&lt;br /&gt;
Dazu am Webinterface anmelden und zunächst die zwei Devices definieren.&lt;br /&gt;
&lt;br /&gt;
Der Hersteller hat für das &#039;&#039;&#039;Relaise GPIO 12&#039;&#039;&#039; und für die &#039;&#039;&#039;grüne Led GPIO 13&#039;&#039;&#039; vorgesehen. Der &#039;&#039;&#039;Taster ist an GPIO 0&#039;&#039;&#039; angeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Schalter===&lt;br /&gt;
[[Datei:sonoff_sw_12.jpg|thumb|left|alt=Device Relais]]&lt;br /&gt;
Bei den Devices sollten die hier dargestellte Einstellungen beachtet werden. Der Switch (PUMP) sollte auf Input gestellt werden, sodass die anschließenden und benötigten Rules aktiviert werden können.&lt;br /&gt;
&lt;br /&gt;
Da beide Devicenamen gleich benannt wurden (PUMP) wird in Fhem nur ein Device angelegt! Die dazugehörenden Valuenames sind unterschiedlich (Relay, Key).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Taster===&lt;br /&gt;
[[Datei:sonoff_sw_13.jpg|thumb|left|alt=Device Key]]&lt;br /&gt;
Der Taste muss natürlich nur konfiguriert werden, wenn auch händisch am Modul geschaltet werden soll. Wird dies nicht benötigt, können auch die Rules geändert bzw. angepasst werden. Doch alleine zu Testzwecken ist es eine nützliche Sache.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rules===&lt;br /&gt;
[[Datei:sonoff_sw_14.jpg|thumb|left|alt=Rules]]&lt;br /&gt;
Da das sonoff Modul auch einen eingebauten Taster hat und somit auch lokal bedient werden kann, sollte man zunächst unter &#039;&#039;&#039;Tools / Advanced das Häckchen Rules&#039;&#039;&#039; aktivieren, erst dann wird der Tab sichtbar und es können Rules erstellt werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 on PUMP#Key do&lt;br /&gt;
  if [PUMP#Relay]=1&lt;br /&gt;
    gpio,12,0&lt;br /&gt;
  else&lt;br /&gt;
    gpio,12,1&lt;br /&gt;
  endif&lt;br /&gt;
 endon&lt;br /&gt;
 on PUMP#Relay do&lt;br /&gt;
  if [PUMP#Relay]=1 &lt;br /&gt;
    gpio,13,0&lt;br /&gt;
  else&lt;br /&gt;
    gpio,13,1&lt;br /&gt;
  endif&lt;br /&gt;
 endon&lt;br /&gt;
Diese Rules ermöglichen, das bei lokaler Bedienung durch den Taster auch die &#039;&#039;&#039;Led&#039;&#039;&#039; richtig geschaltet wird.&lt;br /&gt;
Mit &#039;on PUMP#Key do&#039; wird geprüft ob die Taste gedrückt ist und schaltet dann entsprechend die Led. Mit den Rules können auch Timer oder sonstige Spielereien realisiert werden. Siehe dazu das [http://www.esp8266.nu/index.php/Tutorial_Rules Tutorial] von ESPeasy.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ESPEasy in Fhem einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_9.jpg|thumb|left|alt=Fhem Konfiguration]]&lt;br /&gt;
Dies ist eine einfache Darstellung wie Fhem automatisch den Device erstellt.&lt;br /&gt;
&lt;br /&gt;
Damit Fhem mit ESPEasy und dem sonoff Modul kommunizieren kann, muss in der fhem.cfg vorerst nur die espBridge mit dem hier dargestellten Eintrag aktiviert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 define espBridge ESPEasy bridge 8383&lt;br /&gt;
Dies ist eigentlich die einzige Zeile die in fhem.cfg angelegt werden muss. Die restliche Konfiguration wird von Fhem automatisch generiert. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ##########################################&lt;br /&gt;
 ###             ESPEASY               ####&lt;br /&gt;
 ##########################################&lt;br /&gt;
 &lt;br /&gt;
 define ESPEasy_sonoff_1_PUMP ESPEasy 10.0.0.37 80 espBridge sonoff_1_PUMP&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP IODev espBridge&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP devStateIcon on:rc_GREEN:off off:rc_RED:on absent:rc_BLUE:off gpio:rc_YELLOW:off&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP group ESPEasy Device&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP icon hue_filled_outlet&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP room ESPEasy&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP setState 0&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP stateFormat {ReadingsVal($name,&amp;quot;presence&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;absent&amp;quot; ? &amp;quot;absent&amp;quot; : ReadingsVal($name,&amp;quot;Relay&amp;quot;,&amp;quot;&amp;quot;)}&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP webCmd :&lt;br /&gt;
&lt;br /&gt;
hier ein Beispiel wie es auch manuell leicht modifiziert werden kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_8.jpg|thumb|left|alt=sonoff Readings]]&lt;br /&gt;
&lt;br /&gt;
Die Readings werden durch die Bridge (Modul ESPEasy) automatisch angelegt.&lt;br /&gt;
&lt;br /&gt;
Es besteht hier noch genug Spielraum um zB. auch noch Temperatursensoren an das Modul anzuschließen und ebenfalls in Fhem darzustellen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MQTT Server einrichten==&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um den Sketch von Arends und MQTT an den sonoff Modulen! }}&lt;br /&gt;
Es bleibt jedem Anwender die freie Wahl ob die Kommunikation über die ESPEasy-Bridge oder MQTT erfolgen soll. MQTT ist bei der Einrichtung etwas komplexer, da hier auch auf dem Server der Broker installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Im wesentlichen beschränkt sich die Installation eines MQTT Servers aber auf wenige Arbeitsschritte und ist wie folgt beschrieben durchzuführen. Wer schon einen &#039;&#039;&#039;mosquitto&#039;&#039;&#039; auf dem Server installiert hat, kann diesen Schritt überspringen.&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel ist insofern interessant, da mit dem Sketch von Theo Arends auch die Einbindung der neuen sonoff Pow Module bereits möglich ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # aus dem mosquitto Repo installieren:&lt;br /&gt;
 wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key&lt;br /&gt;
 sudo apt-key add mosquitto-repo.gpg.key&lt;br /&gt;
 cd /etc/apt/sources.list.d/&lt;br /&gt;
 sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list&lt;br /&gt;
 # oder für jessie&lt;br /&gt;
 sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 # mosquitto installieren, sowie client Befehl mosquito_sub (gehört nicht zum Server, wird aber weiter unten benötigt)&lt;br /&gt;
 sudo apt-get install mosquitto mosquitto-clients&lt;br /&gt;
 &lt;br /&gt;
 # MQTT Server Test&lt;br /&gt;
 sudo service mosquitto status&lt;br /&gt;
&lt;br /&gt;
 # Start / Stop des Servers&lt;br /&gt;
 sudo service mosquitto stop&lt;br /&gt;
 sudo service mosquitto start&lt;br /&gt;
 &lt;br /&gt;
 # Perl Version ausgeben&lt;br /&gt;
 perl -v&lt;br /&gt;
 # Perl MQTT Module nachinstallieren (läuft ein paar Minuten)&lt;br /&gt;
 sudo cpan install Net::MQTT:Simple&lt;br /&gt;
 sudo cpan install Net::MQTT:Constants&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Software Arends Sketch===&lt;br /&gt;
[[Datei:sonoff_sw_22.jpg|thumb|left|alt=Arends Menü]]&lt;br /&gt;
&lt;br /&gt;
Ebenso bietet sich die Möglichkeit eine andere alternative Software auf den unterschiedlichen Sonoff Modellen aufzuspielen.&lt;br /&gt;
Speziell für diese Module zugeschnittene Software stammt vom Autor Theo Arends. Alle hier gezeigten Bildschirmfotos und Beispiele beziehen sich auf Basis der Version 2.0.11 (Stand 11.11.2016).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; erst &#039;&#039;&#039;ab Version 2.0.9&#039;&#039;&#039; sind die Berechnungsfehler und die Referenzfrequenzen für die Umrechnung der Leistungsdaten gefixt worden! Es wird daher angeraten immer die aktuellste Version zu verwenden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Links zu Theo Arend Github&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino Download MQTT Sketch]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino Arend GitHub]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki Wiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; sollten Probleme mit dem ersten Login im Webinterface auftreten, hat der Autor vorgesorgt und mit speziellem wiederholten Tastendruck können verschiedene Modi aufgerufen werden: zB: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3 x Taste kurz drücken&#039;&#039;&#039; und eine Smartconfig wird gestartet und die &#039;&#039;&#039;SSID&#039;&#039;&#039; und das &#039;&#039;&#039;Passwort&#039;&#039;&#039; kann über diese [https://play.google.com/store/apps/details?id=com.cmmakerclub.iot.esptouch Android App] eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 x Taste kurz drücken&#039;&#039;&#039; und man bringt den Device in den &#039;&#039;&#039;Access Point Mode&#039;&#039;&#039; mit der IP-Adresse &#039;&#039;&#039;192.168.4.1&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bis zu 7 verschiedene Modi sind möglich, mehr dazu in Arends Wiki.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Button-usage Link zum Wiki Arends, Button]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_bv_01.jpg|thumb|left|alt=Arduino Boardverwalter]]&lt;br /&gt;
In der Arduino IDE unter Datei / Voreinstellungen im Feld &amp;quot;Zusätzliche Boardverwalter-URLs:&amp;quot; den Link: http://arduino.esp8266.com/stable/package_esp8266com_index.json einfügen. &lt;br /&gt;
&lt;br /&gt;
Dann unter &#039;&#039;&#039;Werkzeuge / Board / Boardverwalter&#039;&#039;&#039; ganz am Ende der Liste die Librarys für &amp;quot;esp8266 by ESP8266 Community&amp;quot; die letzte Version 2.3.0 installieren. [https://forum.fhem.de/index.php/topic,46205.msg534707.html#msg534707 Link zum Board].&lt;br /&gt;
&lt;br /&gt;
Das gesamte sonoff Verzeichnis aus [https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/archive/master.zip Arendts Sketch] entpacken (ist wie hier verlinkt ein Zipfile) und dann aus diesem Verzeichnis die sonoff.ino öffnen. Es können dann alle zu dem Sketch zugehörigen Dateien angesehen/editiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Anschließend muss noch die Datei &#039;&#039;&#039;user_config.h&#039;&#039;&#039; (im Unterverzeichnis &amp;quot;sonoff&amp;quot;) editiert werden. Die Abschnitte          &lt;br /&gt;
&lt;br /&gt;
 // Wifi&lt;br /&gt;
 // Syslog&lt;br /&gt;
 // Ota&lt;br /&gt;
 // MQTT&lt;br /&gt;
&lt;br /&gt;
müssen mit der eigenen &amp;quot;&#039;&#039;&#039;Ip-Adresse-Server&#039;&#039;&#039;&amp;quot;, &amp;quot;&#039;&#039;&#039;SSID&#039;&#039;&#039;&amp;quot; und &amp;quot;&#039;&#039;&#039;password&#039;&#039;&#039;&amp;quot; angepasst werden, das erleichtert den ersten Connect mit dem Modul. Seit der Version 2.1.2 können die WIFI Einstellungen 2-fach angegeben werden, somit wechselt das Device automatisch auf den 2. Wifi Hotspot wenn der erste nicht erreicht wird.&lt;br /&gt;
&lt;br /&gt;
 #define STA_SSID               &amp;quot;SSID&amp;quot;      // Wifi SSID&lt;br /&gt;
 #define STA_PASS               &amp;quot;password&amp;quot;  // Wifi password&lt;br /&gt;
 #define WIFI_HOSTNAME          &amp;quot;%s-%04d&amp;quot;         // Expands to &amp;lt;MQTT_TOPIC&amp;gt;-&amp;lt;last 4 decimal chars of MAC address&amp;gt;&lt;br /&gt;
 #define WIFI_CONFIG_TOOL       WIFI_WPSCONFIG    // Default tool if wifi fails to connect (WIFI_SMARTCONFIG, WIFI_MANAGER or WIFI_WPSCONFIG)&lt;br /&gt;
&lt;br /&gt;
 // Syslog&lt;br /&gt;
 #define SYS_LOG_HOST           &amp;quot;Ip-Adresse-Server&amp;quot;&lt;br /&gt;
 #define SYS_LOG_PORT           514&lt;br /&gt;
 #define SYS_LOG_LEVEL          LOG_LEVEL_NONE&lt;br /&gt;
 #define SERIAL_LOG_LEVEL       LOG_LEVEL_INFO&lt;br /&gt;
 #define WEB_LOG_LEVEL          LOG_LEVEL_INFO&lt;br /&gt;
&lt;br /&gt;
 // Ota&lt;br /&gt;
 #if (ARDUINO &amp;gt;= 168)&lt;br /&gt;
  #define OTA_URL              &amp;quot;http://Ip-Adresse-Server:80/api/arduino/&amp;quot; PROJECT &amp;quot;.ino.bin&amp;quot;&lt;br /&gt;
 #else&lt;br /&gt;
  #define OTA_URL              &amp;quot;http://Ip-Adresse-Server:80/api/arduino/&amp;quot; PROJECT &amp;quot;.cpp.bin&amp;quot;&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
 // MQTT&lt;br /&gt;
 #define MQTT_HOST              &amp;quot;Ip-Adresse-Server&amp;quot;&lt;br /&gt;
 #define MQTT_PORT              1883&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Bei Verwendung des &#039;&#039;&#039;sonoff_POW&#039;&#039;&#039; muss dies ebenfalls in der user_config.h eingestellt werden, also das &amp;quot;SONOFF&amp;quot; sperren und das &amp;quot;&#039;&#039;&#039;SONOFF_POW&#039;&#039;&#039;&amp;quot; aktivieren (// setzen/entfernen). Wir dies nicht durchgeführt, werden auch keine Leistungsdaten via MQTT übertragen!!!&lt;br /&gt;
Ebenso muss in (%userprofile%\Documents\Arduino\libraries\pubsubclient\src\PubSubClient.h) die Max Packet Size auf 400 erhöht werden!&lt;br /&gt;
&lt;br /&gt;
  #define MQTT_MAX_PACKET_SIZE 400&lt;br /&gt;
  #define MQTT_KEEPALIVE 120&lt;br /&gt;
Anpassung der max. Packet Size auf 400 und das Keepalive auf 120&lt;br /&gt;
&lt;br /&gt;
 // Enable only one out of three MODULE defines below&lt;br /&gt;
 //#define MODULE                 SONOFF            // Sonoff, Sonoff SV, Sonoff Dual, Sonoff TH 10A/16A, S20 Smart Socket, 4 Channel&lt;br /&gt;
 #define MODULE                 SONOFF_POW        // Sonoff Pow&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Anschluß wird der Sketch mit der Arduino IDE (getestet mit 1.6.12) compiliert und die Binary dann exportiert (Sketch / Kompilierte Binärdatei exportieren). Die erzeugte .bin Datei dann mit dem Tool &amp;quot;ESP8266Flasher.exe&amp;quot; flashen, so wie auch bei ESPEasy. Wer nicht compilieren will, kann auch im Unterverzeichnis ./api/arduino/ die fertige Binary ( sonoff.ino ) benutzen, aber dann ohne Voreinstellung der lokalen IPs.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MQTT testen===&lt;br /&gt;
[[Datei:sonoff_sw_20.jpg|thumb|left|alt=Arends Menü]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach erfolgtem Flash des Modules kann das Webinterface des Moduls zum ersten Mal aufgerufen werden (im Router nach der IP des Moduls suchen).&lt;br /&gt;
&lt;br /&gt;
Es bieten sich hier mehrere Möglichkeiten die die weitere Einrichtung des Moduls unterstützen. Einfach die Menüpunkte durchprobieren, sie erklären sich von selbst. Für erste Tests empfiehlt sich die lokale Konsole um die Ereignisse aus Sicht des Modules mit verfolgen zu können. Alles was hier gesendet wird, sollte ebenfalls am Server mitgeloggt werden können. Wenn bis hierher alles funktioniert, kann dann mir der Konfiguration in Fhem beginnen.&lt;br /&gt;
&lt;br /&gt;
Der Name des Moduls kann unter &amp;quot;Configuration&amp;quot; -&amp;gt; &amp;quot;Configure MQTT&amp;quot; -&amp;gt; &amp;quot;Topic (sonoff)&amp;quot; nachgeschaut und geändert werden. In FHEM wird beim definieren des Moduls dieser Name in den subscribeReadings bzw. publishSets eingegeben um die Verbindung zum Modul herzustellen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Am Server jetzt eine Konsole öffnen und folgende Topic (alle) einstellen.&lt;br /&gt;
&lt;br /&gt;
 mosquitto_sub -d -v -t \# &lt;br /&gt;
Mit dieser Einstellung werden alle Topics geloggt! &lt;br /&gt;
&lt;br /&gt;
 pi@raspberry ~ $ mosquitto_sub -d -v -t \#&lt;br /&gt;
 Received CONNACK&lt;br /&gt;
 Received SUBACK&lt;br /&gt;
 Subscribed (mid: 1): 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/36/temperature&#039;, ... (5 bytes))&lt;br /&gt;
 /sonoff/36/temperature 14.06&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Count&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/35/Count 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Total&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/35/Total 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Time&#039;, ... (1 bytes))&lt;br /&gt;
 /sonoff/35/Time 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/temperature&#039;, ... (5 bytes))&lt;br /&gt;
 /sonoff/temperature 14.00&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Count&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/Count 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Total&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/Total 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Time&#039;, ... (1 bytes))&lt;br /&gt;
 /sonoff/Time 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoff/1/POWER&#039;, ... (2 bytes))&lt;br /&gt;
 stat/sonoff/1/POWER ON&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoff/1/POWER&#039;, ... (3 bytes))&lt;br /&gt;
 stat/sonoff/1/POWER OFF&lt;br /&gt;
&lt;br /&gt;
Interessant sind für uns nun diese Einträge &amp;quot;stat/sonoff/1/POWER ON&amp;quot; , dazu am Taster des sonoff manuell umschalten. Dies entspricht genau der Syntax wie sie im Anschluss in Fhem dann zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen können dann entweder nach Telemetriedaten oder nach Statusmeldungen gefiltert werden. Dies ist jedoch nur notwendig wenn bereits andere MQTT Devices am Broker hängen und es sonst zu unübersichtlich wird.&lt;br /&gt;
 mosquitto_sub -h localhost -t tele/sonoff/#    = Telemetriedaten&lt;br /&gt;
 mosquitto_sub -h localhost -t stat/sonoff/#    = Statusmeldungen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_21.jpg|thumb|left|alt=Arends Log]]&lt;br /&gt;
Sehr nützlich das lokale Log zur Fehlersuche und Inbetriebnahme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Als Besonderheit benutzt der Autor zum Senden und Empfangen unterschiedliche Syntax und unterscheidet dies durch vorangestellte Prefixe vor der eigentlichen Topic.&lt;br /&gt;
#define SUB_PREFIX       &amp;quot;cmnd&amp;quot;       Sonoff devices subscribe to:- cmnd/MQTT_TOPIC and cmnd/MQTT_GRPTOPIC&lt;br /&gt;
#define PUB_PREFIX       &amp;quot;stat&amp;quot;       Sonoff devices publish to:- stat/MQTT_TOPIC&lt;br /&gt;
#define PUB_PREFIX2      &amp;quot;tele&amp;quot;       Sonoff devices publish telemetry data to:- tele/MQTT_TOPIC/UPTIME, POWER/LIGHT and TIME&lt;br /&gt;
Bitte dies unbedingt in der Fhem Konfiguration dann beachten!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MQTT in Fhem einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_24.jpg|thumb|left|alt=Fhem sonoff Schalter]]&lt;br /&gt;
Dieser einfache Schalter kommuniziert bidirektional mit dem sonoff Device.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_25.jpg|thumb|left|alt=Fhem sonoff Schalter]]&lt;br /&gt;
Die Readings in diesem verwendeten Beispiel zeigen sich wie in Fhem gewohnt.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung in Fhem wird von den Modulen 00_MQTT.pm, 10_MQTT_BRIDGE und 10_MQTT_DEVICE.pm unterstützt.&lt;br /&gt;
&lt;br /&gt;
[https://forum.fhem.de/index.php?topic=27532.0 Link zum Forum: MQTT Fhem Einrichtung]&lt;br /&gt;
&lt;br /&gt;
 ### 1. Broker anlegen ###&lt;br /&gt;
 define myBroker MQTT 10.0.0.5:1883&lt;br /&gt;
&lt;br /&gt;
 ### 2. Fhem Device mit MQTT verbinden ###&lt;br /&gt;
 define Sonoff_Switch MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Switch IODev myBroker&lt;br /&gt;
 attr Sonoff_Switch eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Switch icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_Switch publishSet ON OFF cmnd/sonoff/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch room MQTT&lt;br /&gt;
 attr Sonoff_Switch stateFormat Licht&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Licht stat/sonoff/POWER&lt;br /&gt;
 # oder mit tele, je nachdem was in der user_config.h eingestellt wurde!!!&lt;br /&gt;
 #attr Sonoff_Switch subscribeReading_Licht tele/sonoff/POWER &lt;br /&gt;
 attr Sonoff_Switch subscribeReading_state cmnd/sonoff/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch webCmd ON:OFF&lt;br /&gt;
Der hier dargestellte Beispielcode realisiert die Kommunikation zwischen Fhem und dem sonoff Modul via MQTT Broker. Zu beachten ist hier, dass &#039;&#039;&#039;subscribeReading_Licht&#039;&#039;&#039; und &#039;&#039;&#039;subscribeReading_state&#039;&#039;&#039; unterschiedliche Syntax des Topic Strings haben!&lt;br /&gt;
&lt;br /&gt;
==Sonoff POW einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_31.jpg|thumb|left|alt=Sonoff POW]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um das Modul Sonoff POW!}}&lt;br /&gt;
Das Modul kommt in gewohnter Itead Qualität und eine derart kostengünstige Energiemessung wird bei Smart Home Anwendern gerne eingesetzt. Die Originalsoftware habe ich nicht einmal getestet, da damit eine Anbindung an Fhem leider nicht möglich ist.&lt;br /&gt;
&lt;br /&gt;
Ebenso möchte kaum jemand an eine nicht dokumentierte chinesische Cloud die Steuerbefehle seiner Schalter senden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_33.jpg|thumb|left|alt=Sonoff POW]]&lt;br /&gt;
Bitte auf keinen Fall das Modul während der Arbeiten an die Netzspannung anschießen. Zum Flashen genügt (und nur diese) die Versorgungspannung des USB-TTL Konverters. Wie auf dem Foto gut erkennbar, wurde dieses Modul ohne einlöten einer Pfostensteckerleiste geflasht. Die Steckverbindung wird einfach in die Lötaugen gesteckt und mit einem Gummiring fixiert, da ja spätere Flashvorgänge im Webif des Models funktionieren und so die Arbeit eingespart werden kann. Es steht jedoch nichts im Wege die Pfostensteckerleiste einzulöten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Die Anschlüsse am Modul sind wie folgt belegt.&lt;br /&gt;
 o GND&lt;br /&gt;
 o TxD&lt;br /&gt;
 o RxD&lt;br /&gt;
 o VDD&lt;br /&gt;
&lt;br /&gt;
Für den Flashvorgang gelten die selben Regeln wie schon beim sonoff Switch oben erwähnt (3,3V!).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Software===&lt;br /&gt;
[[Datei:sonoff_sw_35.jpg|thumb|left|alt=Sonoff POW FHEM]]&lt;br /&gt;
Als Software steht im Augenblick nur der Sketch von Arends zur Verfügung, liefert aber alles was das Herz begehrt und ist ist einfach zu handhaben. Hier eine eine einfache Darstellung mit der aktuellen Leistung und dem Tagesverbrauch. Zusätzlich besteht auch noch die Möglichkeit den angeschlossenen Verbraucher Ein- oder Auszuschalten. Getestet wurde hier mit der Version 2.06, 2.07 und 2.019a von Arends.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_pow_02.jpg|thumb|left|alt=Sonoff POW Webif]]&lt;br /&gt;
Seit Version 2.0.19a ist auch die Leistungsanzeige im WEBIF wie im Bild links integriert. Auch der Energieverbrauch des Vortages wird mit angezeigt. Alle hier angezeigten Daten werden auch zyklisch im MQTT String an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann im Sketch auch das Feature &amp;quot;&#039;&#039;&#039;Power_Limit&#039;&#039;&#039;&amp;quot; aktiviert werden ( #define FEATURE_POWER_LIMIT in der sonoff.ino). Wenn dies gewünscht ist, dann vor dem compilieren die beiden // entfernen. Mit dem Power_Limit wird eine zusätzliche Nachricht erzeugt, wenn ein bestimmter einstellbarer Grenzwert über- oder unterschritten wird. &lt;br /&gt;
&lt;br /&gt;
Es lassen sich dadurch Meldungen wie &amp;quot;Waschmaschine fertig&amp;quot; oder ähnliches ohne weitere Schwellwert Überwachungen in FHEM ableiten. Die Meldungen kommen in MQTT mit &amp;quot;&#039;&#039;&#039;tele/sonoff/POWER_LOW ON&#039;&#039;&#039;&amp;quot; bzw. &amp;quot;&#039;&#039;&#039;tele/sonoff/POWER_LOW OFF&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Bevor der Sketch compiliert wird, müssen neben den IP-Einstellungen noch in der user_config.h auch andere Einstellungen vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
 #define MODULE                 SONOFF_POW       // Hardware module type (SONOFF, SONOFF_POW or ELECTRO_DRAGON)&lt;br /&gt;
 #define PROJECT                &amp;quot;sonoffpow&amp;quot;     // PROJECT is used as the default topic delimiter and OTA file name                                            // As an IDE restriction it needs to be the same as the main .ino file&lt;br /&gt;
&lt;br /&gt;
Der Typ des Modules muss von &amp;quot;SONOFF&amp;quot; auf &amp;quot;&#039;&#039;&#039;SONOFF_Pow&#039;&#039;&#039;&amp;quot; geändert werden,. damit die Software weiß mit welchem Modul es zu tun hat und kann dann die entsprechenden Berechnungen durchführen. Die Leistungsdaten kommen ja in Form einer Frequenz aus dem Baustein und müssen im Sketch (xsns_hlw8102.ino) umgerechnet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #elif MODULE == SONOFF_POW                  // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff Pow module&amp;quot;&lt;br /&gt;
  #define USE_POWERMONITOR                  // Enable Power Monitoring&lt;br /&gt;
  #define USE_POWERCALIBRATION              // Enable setting Calibration parameters by user commands&lt;br /&gt;
&lt;br /&gt;
Bei Einsatz des POW Modules kann die externe Kalibrierung aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Definition aus der power.ino (2.0.9) für die korrekte Umrechnung der gelieferten Frequenzen für die Leistungsdaten.&lt;br /&gt;
 #define HLW_PREF            10000    // 1000.0W&lt;br /&gt;
 #define HLW_UREF             2200    // 220.0V&lt;br /&gt;
 #define HLW_IREF             4545    // 4.545A&lt;br /&gt;
&lt;br /&gt;
 #define HLW_PREF_PULSE       4975    // 4975us = 201Hz = 1000W&lt;br /&gt;
 #define HLW_UREF_PULSE       1666    // 1666us = 600Hz = 220V&lt;br /&gt;
 #define HLW_IREF_PULSE       1666    // 1666us = 600Hz = 4.545A&lt;br /&gt;
                                            &lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_36.jpg|thumb|left|alt=Sonoff POW Attribute]]&lt;br /&gt;
Dieses Bild zeigt die Attribute die vom Modul via MQTT an FHEM geliefert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
aktuell gelieferte Readings (Mqtt Strings) vom Sketch nach unten dargestellter Definition in Fhem.&lt;br /&gt;
 tele/sonoffpow/TODAY_ENERGY    &lt;br /&gt;
 tele/sonoffpow/PERIOD_ENERGY   &lt;br /&gt;
 tele/sonoffpow/POWER_FACTOR   &lt;br /&gt;
 tele/sonoffpow/CURRENT_POWER  &lt;br /&gt;
 tele/sonoffpow/VOLTAGE         &lt;br /&gt;
 tele/sonoffpow/CURRENT        &lt;br /&gt;
&lt;br /&gt;
Hier ein Mittschnitt des Datenverkehrs zum Broker zwecks Kontrolle der korrekten Funktion der Module und der Software.&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/RSSI&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoff/RSSI 82&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/TEMPERATURE&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoff/TEMPERATURE 1.9&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/HUMIDITY&#039;, ... (4 bytes))&lt;br /&gt;
 tele/sonoff/HUMIDITY 97.9&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/POWER&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoff/POWER OFF&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/TIME&#039;, ... (19 bytes))&lt;br /&gt;
 tele/sonoff/TIME 2016-11-12T10:36:13&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/UPTIME&#039;, ... (1 bytes))&lt;br /&gt;
 tele/sonoffpow/UPTIME 1&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/RSSI&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/RSSI 34&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/TODAY_ENERGY&#039;, ... (5 bytes))&lt;br /&gt;
 tele/sonoffpow/TODAY_ENERGY 0.083&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/PERIOD_ENERGY&#039;, ... (1 bytes))&lt;br /&gt;
 tele/sonoffpow/PERIOD_ENERGY 8&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/CURRENT_POWER&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/CURRENT_POWER 97&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/POWER_FACTOR&#039;, ... (4 bytes))&lt;br /&gt;
 tele/sonoffpow/POWER_FACTOR 1.00&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/VOLTAGE&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoffpow/VOLTAGE 225&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/CURRENT&#039;, ... (5 bytes))&lt;br /&gt;
 tele/sonoffpow/CURRENT 0.426&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/POWER&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/POWER ON&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/TIME&#039;, ... (19 bytes))&lt;br /&gt;
 tele/sonoffpow/TIME 2016-11-12T10:36:28&lt;br /&gt;
 Sending PINGREQ&lt;br /&gt;
 Received PINGRESP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Einstellungen können mit folgender Syntax angefordert werden (zwei Terminalfenster öffnen, eines zum protokollieren und eines zum Seden der Befehle).&lt;br /&gt;
 mosquitto_sub -d -v -t \#  MQTT Datenverkehr protokolieren&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/status/set -m &amp;quot;8&amp;quot;      = SonoffPOW Status jetzt auslesen&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/TelePeriod/set -m &amp;quot;60&amp;quot; = Timer setzen, alle 60 Sekunden Daten senden &lt;br /&gt;
Die Kommandos können direkt am Broker (Terminalfenster Putty etc.) abgesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sonoff POW Kalibrieren ===&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier wird beschrieben, wie der &#039;&#039;Sonoff POW kalibriert&#039;&#039; werden kann. }}&lt;br /&gt;
Ab Version 2.0.11 kann nun auch der POW kalibriert werden.&lt;br /&gt;
Dazu kann man 2 Konsolenfenster öffnen, im ersten aktiviert man das Protokoll für den Datenverkehr&lt;br /&gt;
 mosquitto_sub -d -v -t \#  MQTT Datenverkehr protokollieren&lt;br /&gt;
&lt;br /&gt;
Dann kann mit folgenden Befehlen die HLW Referenz Pulsfrequenz gesetzt werden.&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWUCAL/set -m &amp;quot;2100&amp;quot;     default = 1950&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWICAL/set -m &amp;quot;2450&amp;quot;     default = 3500&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWPCAL/set -m &amp;quot;13500&amp;quot;    default = 12345 &lt;br /&gt;
Entweder man hat eine definierte Last zur Verfügung oder besser man misst mit einem Leistungsmesser nach. Die Spannung kann man mit einem Multimeter nachmessen (sollte 230 V sein) und der Strom wird errechnet (bei 100 Watt I = P / U ) = 100/230 = 0,4347.&lt;br /&gt;
Die Referenzwerte solange geringfügig ändern bis die Ausgabe passt. Für die Ausgabe wird einfach eine Statusabfrage durchgeführt.&lt;br /&gt;
&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/status/set -m &amp;quot;8&amp;quot;&lt;br /&gt;
Befehl für die Statusabfrage&lt;br /&gt;
&lt;br /&gt;
 cmnd/sonoffpow/1/status/set 8&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoffpow/1/STATUS&#039;, ... (103 bytes))&lt;br /&gt;
 stat/sonoffpow/1/STATUS PWR: Voltage 225 V, Current 0.427 A, Current Power 98 W, Total Power Today 0.080 kWh, Power Factor 1.00&lt;br /&gt;
Ergebnis der Statusabfrage mit Spannung, Strom und Leistung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW FHEM Anbindung===&lt;br /&gt;
Ein Beispiel einer einfachen Anbindung via MQTT an Fhem. MQTT ist insofern notwendig, da in der Software ESPEasy und der Bridge noch keine Implementierung der Frequenzumrechnung enthalten ist.&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Pow MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Pow IODev myBroker&lt;br /&gt;
 attr Sonoff_Pow eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Pow icon measure_power&lt;br /&gt;
 attr Sonoff_Pow publishSet ON OFF cmnd/sonoffpow/1/POWER/set&lt;br /&gt;
 attr Sonoff_Pow room MQTT&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_Power tele/sonoffpow/POWER&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_state cmnd/sonoffpow/1/POWER/set&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_TODAY_ENERGY tele/sonoffpow/TODAY_ENERGY&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_PERIOD_ENERGY tele/sonoffpow/PERIOD_ENERGY&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_CURRENT_POWER tele/sonoffpow/CURRENT_POWER&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_VOLTAGE tele/sonoffpow/VOLTAGE &lt;br /&gt;
 attr Sonoff_Pow subscribeReading_CURRENT tele/sonoffpow/CURRENT&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_AKTUELL stat/sonoffpow/1/STATUS&lt;br /&gt;
 attr Sonoff_Pow webCmd ON:OFF&lt;br /&gt;
 attr Sonoff_Pow stateFormat {sprintf(&amp;quot;akutelle Leistung: %.1f W Tagesverbrauch: %.2f Kw/h&amp;quot;, ReadingsVal($name,&amp;quot;CURRENT_POWER&amp;quot;,undef), ReadingsVal($name,&amp;quot;TODAY_ENERGY&amp;quot;,undef))}&lt;br /&gt;
Zusätzlich kann hier noch das Relais mit &amp;quot;on&amp;quot; und &amp;quot;off&amp;quot; ein- ausgeschaltet werden. Ab Version 2.0.15 wurden hier die ReadingsNamen auf TODAY_ENERGY und PERIOD_ENERGY (anstatt _POWER) geändert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Netz-Anschluß===&lt;br /&gt;
[[Datei:sonoff_sw_34.jpg|thumb|left|alt=Sonoff POW Netzanschluß]]&lt;br /&gt;
Erst wenn alle Arbeiten an der Hard- und Software abgeschlossen sind, kann man das Modul an die Netzspannung anschließen. Wer es sich einfach machen will, nimmt eine Industriell gefertigte 230 V Verlängerung  (zwischen 1,5 - 3 Meter) und schneidet sie in der Mitte durch. Nach dem abisolieren der flexiblen Drähte sollte diese &#039;&#039;&#039;verlötet oder mit Aderendhülsen&#039;&#039;&#039; versehen werden (müssen aber exakt passen, da hier kaum Platz in den Klemmen ist). &lt;br /&gt;
Mit einem kleinen Schraubendreher kann man die Feder der Klemmen niederdrücken und das verzinnte Drahtende tief ich die Öffnung stecken. Es dürfen keine Drahtlitzen aus den Öffnungen sichtbar sein, Kurzschlußgefahr! Ebenso sollte eine Zugprobe durchgeführt werden ob die Klemme auch richtig eingerastet ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ACHTUNG:&#039;&#039;&#039; diese Arbeiten müssen von einem ausgebildeten Fachpersonal (Elektriker) durchgeführt werden, Lebensgefahr!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Design===&lt;br /&gt;
&lt;br /&gt;
====ReadingsGroup normal====&lt;br /&gt;
[[Datei:sonoff_sw_46.jpg|thumb|left|alt=Sonoff POW Design]]&lt;br /&gt;
Viele Benutzer wollen schönere und funktionelle Ausgaben am Bildschirm sehen. Die Möglichkeiten nach oben sind hier sehr vielfältig. Anhand von zwei einfachen aber mächtigen Funktionen hier ein kleines Beispiel wie hier im Bild dargestellt.&lt;br /&gt;
&lt;br /&gt;
Was das Design betrifft, sind hier mehrere Möglichkeiten gegeben und nach oben ist für findige Anwender alles offen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit dem Hilfsmodul &amp;quot;&#039;&#039;&#039;average&#039;&#039;&#039;&amp;quot; eine Art Statistik (Durchschnittsberechnung, Min.,Max., etc.) hinzugefügt. Das beschränkt sich auf eine einzige Zeile. Es würde sich auch &#039;&#039;&#039;statistic&#039;&#039;&#039; dazu eignen.&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Pow_CURRENT_POWER average Sonoff_Pow:CURRENT_POWER.*&lt;br /&gt;
Die &amp;quot;average&amp;quot; Funktion wird in das Device &amp;quot;Sonof_Pow&amp;quot; auf das Reading &amp;quot;CURRENT_POWER&amp;quot; hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
Der zweite Schritt wird eine &#039;&#039;&#039;readingsGroup&#039;&#039;&#039; mit den gewünschten und gefilterten Ausgabedaten. Durch die verschiedenen IF Abfragen der unterschiedlichen VALUE wird bei über- oder unterschreiten eines Wertes eine bestimmte Farbe angewandt. Weitere Beispiele dazu siehe im Wiki unter [http://www.fhemwiki.de/wiki/ReadingsGroup readingsGroup]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define SonoffPows readingsGroup &amp;lt;%measure_power&amp;gt;,&amp;lt;aktuell&amp;gt;,&amp;lt;Tag&amp;gt;,&amp;lt;Strom&amp;gt;,&amp;lt;Durchschnitt&amp;gt;,&amp;lt;max.P&amp;gt;,&amp;lt;Schaltzyklen&amp;gt;,&amp;lt; hr &amp;gt; .*(Sonoff_Pow|Sonoff_Pow2):CURRENT_POWER,TODAY_ENERGY,CURRENT,CURRENT_POWER_avg_day,CURRENT_POWER_max_day,PERIOD_ENERGY&lt;br /&gt;
 attr SonoffPows mapping %ALIAS&lt;br /&gt;
 attr SonoffPows nameStyle style=&amp;quot;color:yellow&amp;quot;&lt;br /&gt;
 attr SonoffPows room MQTT&lt;br /&gt;
 attr SonoffPows valueFormat {&#039;CURRENT_POWER&#039; =&amp;gt;&amp;quot;%.0f W&amp;quot;, &#039;TODAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;, &#039;CURRENT&#039; =&amp;gt;&amp;quot;%.2f A&amp;quot;,&#039;CURRENT_POWER_max_day&#039; =&amp;gt; &amp;quot;%.0f W&amp;quot;,&#039;CURRENT_POWER_avg_day&#039; =&amp;gt; &amp;quot;%.2f W&amp;quot;,&#039;PERIOD_ENERGY&#039;=&amp;gt;&amp;quot;%.0f Zyklen&amp;quot;}&lt;br /&gt;
 attr SonoffPows valueStyle { if($READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0 &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 0.45){&#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039;}elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 0.45 &amp;amp;&amp;amp; $VALUE &amp;lt; 0.87 ){&#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0.87){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 10){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 10 &amp;amp;&amp;amp; $VALUE &amp;lt; 15 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 15){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; } }&lt;br /&gt;
&lt;br /&gt;
Die readingsGroup sind etwas komplex zu lesen, aber nach etwas Einarbeitung klappt das schon. Die in diesem Beispiel verwendeten Readingsnamen beziehen sich auf die Beispielkonfigurationen hier im Wiki.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
====ReadingsGroup mit Schaltmöglichkeit====&lt;br /&gt;
[[Datei:sonoff_pow_03.jpg|thumb|left|alt=readingsGroup mit Schalter]]&lt;br /&gt;
Die vorher erwähnte ReadingsGroup kann auch gleich mit einem Schalter versehen werden um den POW Ein- oder Aus schalten zu können. Dazu ist aber eine andere Einstellung im Sketch erforderlich.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der &amp;quot;&#039;&#039;&#039;user_config.h&#039;&#039;&#039;&amp;quot; muss an dieser Stelle auch die &amp;quot;&#039;&#039;&#039;PUB_PREFIX&#039;&#039;&#039;&amp;quot; auf die gleiche Topic wie &amp;quot;PUB_PREFIX2&amp;quot; eingestellt werden. Durch diese Maßnahme wird erreicht, dass sofort nach dem Knopfdruck auch der Status mit der Topic &amp;quot;tele&amp;quot; übertragen wird. Würde der weiterhin mit &amp;quot;stat&amp;quot; übertragen, kann er in der Readingsgroup nur sehr umständlich weiter behandelt werden. Dadurch wird erreicht, dass der Schalter sofort nach dem Schaltvorgang und der Rückmeldung (Status) auch seine Farbe ändert. Wird dieser Eintrag vergessen, ändert der Schalter erst nach Eintreffen der nächsten zyklischen Abfrage seinen Status/Farbe.&lt;br /&gt;
&lt;br /&gt;
 #define SUB_PREFIX             &amp;quot;cmnd&amp;quot;       // Sonoff devices subscribe to:- SUB_PREFIX/MQTT_TOPIC and SUB_PREFIX/MQTT_GRPTOPIC&lt;br /&gt;
 #define PUB_PREFIX             &amp;quot;tele&amp;quot;       // Sonoff devices publish to:- PUB_PREFIX/MQTT_TOPIC&lt;br /&gt;
 #define PUB_PREFIX2            &amp;quot;tele&amp;quot;       // Sonoff devices publish telemetry data to:- PUB_PREFIX2/MQTT_TOPIC/UPTIME, POWER/LIGHT and TIME&lt;br /&gt;
hier die PUB_PREFIX mit der geänderten Topic &amp;quot;tele&amp;quot; anstatt &amp;quot;stat&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define SonoffPows readingsGroup &amp;lt;%measure_power&amp;gt;,&amp;lt;aktuell&amp;gt;,&amp;lt;Tag&amp;gt;,&amp;lt;Gestern&amp;gt;,&amp;lt;Strom&amp;gt;,&amp;lt;Durchschnitt&amp;gt;,&amp;lt;max.P&amp;gt;,&amp;lt;Zyklus&amp;gt;,&amp;lt;Faktor&amp;gt;,&amp;lt;Status&amp;gt;,&amp;lt; hr &amp;gt; .*(Sonoff_Pow|Sonoff_Pow2|Sonoff_Pow3):CURRENT_POWER,TODAY_ENERGY,YESTERDAY_ENERGY,CURRENT,CURRENT_POWER_avg_day,CURRENT_POWER_max_day,PERIOD_ENERGY,POWER_FACTOR,LIGHT&lt;br /&gt;
 attr SonoffPows commands {&#039;LIGHT.ON&#039; =&amp;gt; &#039;set $DEVICE OFF&#039;,&#039;LIGHT.OFF&#039; =&amp;gt; &#039;set $DEVICE ON&#039;}&lt;br /&gt;
 attr SonoffPows mapping %ALIAS&lt;br /&gt;
 attr SonoffPows nameStyle style=&amp;quot;color:yellow&amp;quot;&lt;br /&gt;
 attr SonoffPows room Energie,MQTT&lt;br /&gt;
 attr SonoffPows valueFormat {&#039;CURRENT_POWER&#039; =&amp;gt;&amp;quot;%.0f W&amp;quot;, &#039;TODAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;,&#039;YESTERDAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;, &#039;CURRENT&#039; =&amp;gt;&amp;quot;%.2f A&amp;quot;,&#039;CURRENT_POWER_max_day&#039; =&amp;gt; &amp;quot;%.0f W&amp;quot;,&#039;CURRENT_POWER_avg_day&#039; =&amp;gt; &amp;quot;%.2f W&amp;quot;,&#039;CURRENT_POWER&#039;=&amp;gt;&amp;quot;%.0f W&amp;quot;,&#039;POWER_FACTOR&#039; =&amp;gt; &amp;quot;%.2f &amp;quot;}&lt;br /&gt;
 attr SonoffPows valueIcon {&#039;LIGHT.ON&#039; =&amp;gt; &#039;rc_GREEN@green&#039;, &#039;LIGHT.OFF&#039; =&amp;gt; &#039;rc_RED@red&#039;}&lt;br /&gt;
 attr SonoffPows valueStyle { if($READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0 &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 0.45){&#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039;}elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 0.45 &amp;amp;&amp;amp; $VALUE &amp;lt; 0.87 ){&#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0.87){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 10){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 10 &amp;amp;&amp;amp; $VALUE &amp;lt; 15 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 15){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; } }&lt;br /&gt;
hier die erweiterte ReadingsGroup mit dem Schalter. Bei Bedarf sind hier die Devicenamen anzupassen wenn andere Namen verwendet werden (Sonoff_Pow|Sonoff_Pow2|Sonoff_Pow3).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====POW mit FTUI anzeigen====&lt;br /&gt;
[[Datei:sonoff_pow_energy.JPG|thumb|left|alt=Tablett FTUI]]&lt;br /&gt;
Wer möchte kann die Energieanzeigen auch mit der [https://forum.fhem.de/index.php/topic,34233.0.html Tablett UI] für eine Tablet Ansicht gestalten. Mit dieser stehen viele Möglichkeiten zu einer attraktiven Darstellung zur Verfügung.&lt;br /&gt;
Hier ein Beispiel welches mit den Widget &amp;quot;[http://www.fhemwiki.de/wiki/FHEM_Tablet_UI#Widget_THERMOSTAT thermostat]&amp;quot; dargestellt ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Slampher Flashen==&lt;br /&gt;
[[Datei:sonoff_sl_53.jpg|thumb|left|alt=Sonoff SLAMPHER]]&lt;br /&gt;
Dieses Modul ist eine Besonderheit was das Flashen betrifft, denn mit Hilfe des Tasters kann der ESP8266 NICHT in den Flashmode gebracht werden. Der Taster ist intern anderwärtig verdrahtet und somit für diesen Zweck nicht zu gebrauchen.&lt;br /&gt;
&lt;br /&gt;
Wie hier links im Bild zu sehen ist, muss der rechte Pin des R20 (oben im Bild) während dem Einstecken des USB Steckers auf Masse gelegt werden. Die beste Möglichkeit ist ein Stücken Draht anzulöten und diesen dann beim einstecken auf den Masse Pin des USB-Konverters zu legen.&lt;br /&gt;
&lt;br /&gt;
Pinbelegung des Steckers von oben nach unten:&lt;br /&gt;
 o - GND&lt;br /&gt;
 o - TxD&lt;br /&gt;
 o - RxD&lt;br /&gt;
 &#039;&#039;&#039;o&#039;&#039;&#039; - Vdd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sl_51.jpg|thumb|left|alt=Sonoff SLAMPHER R20]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier ist genau ersichtlich, wo der R20 auf der Platine platziert ist. }}&lt;br /&gt;
Hier nocheinmal schön zu sehen wo der R20 (der ist nicht eingelötet sondern leer) exakt auf der Platine liegt, gemeint ist der rechte Pin. Hier kann auch leicht gelötet werden, da keine empfindlichen Bauteile in der Nähe sind und auch genug Platz vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sl_50.jpg|thumb|left|alt=Sonoff SLAMPHER R20]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier ist genau ersichtlich, wo der Draht am R20 aufgelötet wurde }}&lt;br /&gt;
Hier ist ein kleines Stück Schaltdraht auf den Pin bereist aufgelötet und bereit zum Flashen!&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wurde keine Pfostensteckerleiste auf die Platine aufgelötet, sondern nur durchgesteckt und mit einem Gummiring  zum Relais fixiert, das erspart den Lötvorgang, weil in Zukunft dann ohnehin OTA geflasht werden kann.&lt;br /&gt;
&lt;br /&gt;
Also Pin20 auf Masse legen und USB-Konverter an den PC einstecken, dann den Draht von der Masse entfernen. Der ESP8266 sollte jetzt im Flashmodus bereit stehen und kann wie bereits oben beschrieben geflasht werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff Slampher Software===&lt;br /&gt;
[[Datei:sonoff_sl_54.jpg|thumb|left|alt=Sonoff SLAMPHER FHEM]]&lt;br /&gt;
&lt;br /&gt;
Als Software wird Arends Sketch installiert (Kommunikation über MQTT), da zum derzeitigen Zeitpunkt ESPEasy das Modul noch nicht integriert hat und somit auch nicht ansteuern kann.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_SL MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_SL IODev myBroker&lt;br /&gt;
 attr Sonoff_SL devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON&lt;br /&gt;
 attr Sonoff_SL icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_SL publishSet ON OFF cmnd/sonoffsl/1/POWER/set&lt;br /&gt;
 attr Sonoff_SL room Bewegung,_Sonoff&lt;br /&gt;
 attr Sonoff_SL stateFormat Licht&lt;br /&gt;
 attr Sonoff_SL subscribeReading_Licht tele/sonoffsl/POWER&lt;br /&gt;
 attr Sonoff_SL subscribeReading_state cmnd/sonoffsl/1/POWER/set&lt;br /&gt;
 attr Sonoff_SL webCmd ON:OFF&lt;br /&gt;
&lt;br /&gt;
Hier ein Beispiel wie in FHEM der Slampher eingebunden werden kann. In diesem Beispiel wird davon ausgegangen, das das Modul &amp;quot;sonoffsl&amp;quot; unter Konfiguration am WEBIF (Configure MQTT bei Topic) so unbenannt wurde. Wer einen anderen Namen haben möchte, muss dies dann auch in FHEM entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Th10/16 FHEM==&lt;br /&gt;
[[Datei:sonoff_th_01.jpg|thumb|left|alt=Sonoff TH10]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Temperatur Modul TH10 / 16! }}&lt;br /&gt;
Das Modul kann durch drücken des Tasters während dem Einstecken des USB-Konverters in den Flashmodus gebracht werden.&lt;br /&gt;
Der Th10/16 kann mit zwei unterschiedlichen Typen von Sensoren bestückt werden, hier im Beispiel mit dem externen Temperaturfühler DS18B20.&lt;br /&gt;
&lt;br /&gt;
Wie im Bild klar zu sehen ist, kann das Webif auch zur Darstellung via Mobile verwendet werden. Mit &amp;quot;Toggle&amp;quot; wird Ein- oder Aus geschaltet und  darunter ist die aktuelle Temperatur ersichtlich. Für diese Ansicht muss keine MQTT Verbindung eingerichtet werden, da die Kommunikation hier rein über HTTP erfolgt.&lt;br /&gt;
&lt;br /&gt;
Die unten dargestellten Beispiele für FHEM beziehen sich auf Arends Sketch, also über MQTT. Dieses Modul kann aber genauso leicht über ESPEasy und der ESPEasy-Bridge eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Pinbelegung des Steckers von oben nach unten:&lt;br /&gt;
 o - GND&lt;br /&gt;
 o - TxD&lt;br /&gt;
 o - RxD&lt;br /&gt;
 &#039;&#039;&#039;o&#039;&#039;&#039; - Vdd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #define DSB_PIN              14           // GPIO 14 = DS18x20 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
 #define DSB_RESOLUTION       2            // Maximum number of decimals (0 - 3) showing Temperature&lt;br /&gt;
 // *** Option 1 - Single DS18B20 - Select either Option 1 OR Option 2&lt;br /&gt;
 #define SEND_TELEMETRY_DS18B20            // Enable sending single temperature telemetry&lt;br /&gt;
 // *** Option 2 - Multiple DS18B20 and/or DS18S20 (needs OneWire library!)&lt;br /&gt;
 //  #define SEND_TELEMETRY_DS18x20            // Enable sending multi temperature telemetry &lt;br /&gt;
In der user_config.h (Arends Sketch) muss hier die Option 1 aktiviert werden (entfernen der vorangestellten //) damit die Telemetriedaten auch gesendet werden. Es empfiehlt sich mindestens die Version &amp;gt;= V 2.0.16, weil hier die Sensoren erweitert wurden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #define DHT_PIN              14           // GPIO 14 = AM2301 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
 #define DHT_TYPE             AM2301       // DHT module type (DHT11, DHT21, DHT22, AM2301, AM2302 or AM2321)&lt;br /&gt;
 #define DHT_RESOLUTION       1            // Maximum number of decimals (0 - 3) showing Temperature&lt;br /&gt;
 #define SEND_TELEMETRY_DHT                // Enable sending temperature and humidity telemetry&lt;br /&gt;
Beispiel für den Sensor DHT22, Temperatur und Luftfeuchte. Es dürfen aber nicht beide Sensoren (DS18B20 + DHT22) gleichzeitig aktiviert werden, da ja beide an GPIO14 angehängt werden und es ansonsten zu Fehlfunktionen kommen würde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_th_02.jpg|thumb|left|alt=Sonoff TH10]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Einbindung in Fhem via MQTT! }}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ### Temperatur und Luftfeuchte vom Sonoff Switch ###&lt;br /&gt;
 define Sonoff_Temp MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Temp IODev myBroker&lt;br /&gt;
 attr Sonoff_Temp alias Pool Wasser&lt;br /&gt;
 attr Sonoff_Temp eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Temp icon temperature_humidity&lt;br /&gt;
 attr Sonoff_Temp publishSet ON OFF cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Temp room _Sonoff&lt;br /&gt;
 attr Sonoff_Temp stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad&amp;quot;, ReadingsVal($name,&amp;quot;TEMPERATURE&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_TEMPERATURE tele/sonoffth/DS18B20/TEMPERATURE&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_humidity tele/sonoffth/HUMIDITY&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_state cmnd/sonoffth/1/POWER/set&lt;br /&gt;
Beispiel für FHEM mit Temperaturanzeige mit DS18B20&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Switch MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Switch IODev myBroker&lt;br /&gt;
 attr Sonoff_Switch alias Pool Licht&lt;br /&gt;
 attr Sonoff_Switch devStateIcon on:rc_GREEN:off off:rc_RED:on&lt;br /&gt;
 attr Sonoff_Switch eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Switch icon light_ceiling&lt;br /&gt;
 attr Sonoff_Switch publishSet ON OFF cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch room _Sonoff&lt;br /&gt;
 attr Sonoff_Switch stateFormat Licht&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Licht tele/sonoffth/POWER&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_state cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch webCmd ON:OFF&lt;br /&gt;
Der Schalter nochmals seperat dargestellt, je nach Geschmack.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff CH4 4-Kanal Schaltmodul==&lt;br /&gt;
[[Datei:sonoff_ch4_1.jpg|thumb|left|alt=Sonoff CH4]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Achtung andere Einstellungen der Arduino IDE: Select Board &amp;quot;Generic ESP8285 Module&amp;quot; (=Flash Mode &amp;quot;DOUT&amp;quot;) and Flash Size &amp;quot;1M (64K SPIFFS)&amp;quot;n! }}&lt;br /&gt;
&lt;br /&gt;
Der Sonoff CH4 ist mit seinen 4 Kanälen ein sehr preiswertes Modul im Gehäuse und für Hutschinenmontage. Anstatt des üblichen ESP8266 besitzt dieses Modul schon den moderneren &#039;&#039;&#039;ESP8285&#039;&#039;&#039;. Es müssen daher in der Arduino IDE andere Einstellungen vorgenommen werden. Unter Board wird hier das &amp;quot;&#039;&#039;&#039;Generic 8285 Module&#039;&#039;&#039;&amp;quot; mit &#039;&#039;&#039;1M und 64K Spiffs&#039;&#039;&#039; angewählt. Der Flashmode &amp;quot;&#039;&#039;&#039;DOUT&#039;&#039;&#039;&amp;quot; wird dann automatisch eingestellt, bzw. ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
Das Modul ist etwas größer als die anderen Sonoff Produkte und besitzt mit 14,5 x 9 cm schon beachtliche Einbau Maße.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_2.jpg|thumb|left|alt=Sonoff CH4 FDTI]]&lt;br /&gt;
Als weitere Besonderheit sei hier erwähnt, das die Signale &#039;&#039;&#039;RxD auf RxD und TxD auf TxD&#039;&#039;&#039; des FTDI Konverters zu verbinden sind. Wie bei allen Sonoff Modulen darf man &#039;&#039;&#039;zum flashen keine Netzspannung anschließen&#039;&#039;&#039;, sondern nur über die Versorgungsspannung des FDTI Konverters mit 3,3 V versorgen (Jumper richtig setzen). Die Stiftleiste für den FTDI Anschluß ist hier schon eingelötet.&lt;br /&gt;
&lt;br /&gt;
In den Flashmodus gelangt man durch drücken der &#039;&#039;&#039;Taste FW/IO0&#039;&#039;&#039; während des einstecken des USB Anschlusses.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_3.jpg|thumb|left|alt=Sonoff CH4 Arends]]&lt;br /&gt;
Hier die Ansicht des Webinterface des Arends Sketches!&lt;br /&gt;
Bei der Software sei erwähnt, das die getestete Version 3.1.16 nur bei Kanal 1 den Modus &amp;quot;PulseTime&amp;quot; beherrscht. Wer also gepulste Ausgänge (zB: elektrische Garage/Toröffner) benötigt muss diese per Software nachbilden oder mit dem Kanal 1 auskommen. Eine &amp;quot;Pulsetime 10&amp;quot; ist ein guter Wert dafür (etwa 1 Sekunde). &lt;br /&gt;
&lt;br /&gt;
Als Alternative kann mit dieser HTML Seite des Webservers am Modul des CH4 schon mit jedem Browser fähigem Handy (Android, iPhone, Windows) aufgerufen werden und somit alle Funktionen gesteuert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_4.jpg|thumb|left|alt=Sonoff CH4 Software APP]]&lt;br /&gt;
Hier dargestellt die Original Software die Sonoff zum Modul liefert (EWeLink) und über ihre Cloud verbindet. Leider kann hier keine gepulste Ausgabe erfolgen. Mit einem Countdown kann zwar der Ausgang wieder abgeschaltet werden, die kleinste Zeiteinheit ist aber 1 Minute und somit für einen Impuls leider nicht zu gebrauchen. Ebenso kann mit dieser Software keine Einbindung in Fhem erfolgen, obwohl es eine nette anschauliche Darstellung ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Erweiterungen=&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch mit Temperatur + Luftfeuchte== &lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es um nützliche Hardware Erweiterungen an den Originalmodulen!}}&lt;br /&gt;
Wozu überhaupt den Switch erweitern wenn es auch die Modelle TH10 und TH16 gibt?&lt;br /&gt;
&lt;br /&gt;
Manche Personen können dadurch dem Basteltrieb nachkommen, aber das wesentliche ist der Preis, da die Switches doch fast um die Hälfte billiger sind. Die Sensoren kosten ebenfalls kaum nennenswerte Beträge.&lt;br /&gt;
&lt;br /&gt;
Oder es hat schon jemand Switches im Einsatz und möchte jetzt zusätzlich die Temperatur erfassen!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware erweitern mit DHT22 ===&lt;br /&gt;
[[Datei:sonoff_sw_4.PNG|thumb|left|alt=Sonoff Switch Pinleiste mit Temperatur]]&lt;br /&gt;
Am Sonoff Switch wurde ja schon eine Stiftleiste zum Flashen eingelötet. Diese Stiftleiste bietet schon alle Anschlüsse welche für die Temperatur- und Luftfeuchtemessung benötigt werden. Am 5. Anschluß der Stifftleiste ist das Signal &amp;quot;SCL&amp;quot; (GPIO14) herausgeführt, welches für den DHT22 zur Erfassung der Messdaten benötigt wird. Der Sonsor wird mit einem einem 3-poligen Kabel (zB: ein Steckkabel für ein Breadboard oder direkt anlöten) verbunden. Damit der DHT22 korrekt funktioniert, wird ein Widerstand mit 4,7 K Ohm zwischen Vdd und Data am DHT22 zusätzlich benötigt. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_45.jpg|thumb|left|alt=AM2302 / DHT22]]&lt;br /&gt;
&lt;br /&gt;
Ansicht des DHT22 (AM2302) mit den aufgesteckten Verbindungskabeln. Von links nach rechts sind das&lt;br /&gt;
&lt;br /&gt;
 1 = VCC 3,3 V&lt;br /&gt;
 2 = Data&lt;br /&gt;
 3 = nc (nicht belegt)&lt;br /&gt;
 4 = GND&lt;br /&gt;
&lt;br /&gt;
Pin1 (VCC) des DHT22 muss also auf Pin1 der Stiftleiste, Pin2 (Data) auf Pin5 und Pin4 (GND) auf Pin4. &lt;br /&gt;
Pin2 und Pin1 soll hier noch der Widerstand aufgelötet werden.&lt;br /&gt;
&lt;br /&gt;
 1 ------- 1 (VDD)&lt;br /&gt;
 2 ------- 5 (GPIO14)&lt;br /&gt;
 3&lt;br /&gt;
 4 ------- 4 (GND)&lt;br /&gt;
 DHT22  Stiftleiste&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_44.jpg|thumb|left|alt=umgebautes Modul]]&lt;br /&gt;
Diese Darstellung zeigt das umgebaute und bereits verschlossene Modul. Auf der Seite des Tasters (bitte nur hier, da auf der anderen Seite die 230 V verlaufen und neben der Lebensgefahr auch den Sensor beeinflussen) ist hier einfach mit einer Eisensäge ein Schlitz eingesägt, der dient in diesem Falle als Kabeldurchführung. Ein Schlitz ist besser als ein Loch, da der Oberteil des Gehäuses sich leichter aufsetzen läßt. Wer ein längeres Kabel benötigt, kann natürlich auch ein 3-poliges Telefonkabel (oder Mikrokabel oder sonstiges) verwenden. Der Sensor sollte etwas Abstand zum Gehäuse haben, da dieses auch eine Eigenerwärmung hat. Wer es ganz originalgetreu lösen will, kann auch eine 3-polige Mini Buchse für Klinckenstecker (3,5mm) einbauen so wie sie am TH10/16 vorhanden ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Software anpassen am Beispiel MQTT ===&lt;br /&gt;
[[Datei:sonoff_sw_40.jpg|thumb|left|alt=Sonoff MQTT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer über MQTT kommuniziert und die Software von Theo Arends benutzt, muss folgende Dinge beachten. In der Datei &#039;&#039;&#039;user_config.h&#039;&#039;&#039; müssen im Abschnitt &#039;&#039;&#039;Module = SONOFF&#039;&#039;&#039; die Slashes so wie unten dargestellt entfernt werden, damit erstens die Interrupts abgefragt werden und zweitens die Telemetriedaten gesendet werden. Ebenso ist der verwendete Sensor bei &amp;quot;&#039;&#039;&#039;define DHT_TYPE&#039;&#039;&#039;&amp;quot; eingestellt werden. In dem hier gezeigten Beispiel also &amp;quot;&#039;&#039;&#039;DHT22&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #if MODULE == SONOFF                        // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff module&amp;quot;&lt;br /&gt;
  #define LED_PIN              13           // GPIO 13 = Green/Blue Led (0 = On, 1 = Off) - Sonoff&lt;br /&gt;
  #define LED_INVERTED         1            // 0 = (1 = On, 0 = Off), 1 = (0 = On, 1 = Off)&lt;br /&gt;
  #define REL_PIN              12           // GPIO 12 = Red Led and Relay (0 = Off, 1 = On)&lt;br /&gt;
  #define KEY_PIN              0            // GPIO 00 = Button&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define DSB_PIN              4            // GPIO 14 = DS18B20 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define SEND_TELEMETRY_DS18B20            // Enable sending temperature telemetry&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define DHT_PIN              14           // GPIO 14 = AM2301 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define DHT_TYPE             DHT22        // DHT module type (DHT11, DHT21, DHT22, AM2301, AM2302 or AM2321)&lt;br /&gt;
  #define SEND_TELEMETRY_DHT                // Enable sending temperature and humidity telemetry&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Software Anpassung DHT22 in Fhem ===&lt;br /&gt;
[[Datei:sonoff_sw_41.jpg|thumb|left|alt=umgebautes Modul]]&lt;br /&gt;
&lt;br /&gt;
Links in der Hardcopy sind die Readings die nach der Anpassung von FHEM (Broker) befüllt werden sollten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ### Temperatur und Luftfeuchte vom Sonoff Switch ###&lt;br /&gt;
 define Sonoff_Temp MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Temp IODev myBroker&lt;br /&gt;
 attr Sonoff_Temp icon temperature_humidity&lt;br /&gt;
 attr Sonoff_Temp room MQTT&lt;br /&gt;
 attr Sonoff_Temp stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad Feuchte: %.1f &amp;quot;, ReadingsVal($name,&amp;quot;temperature&amp;quot;,0), ReadingsVal($name,&amp;quot;humidity&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_humidity tele/sonoff/HUMIDITY&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_temperature tele/sonoff/TEMPERATURE&lt;br /&gt;
Als Beispiel die zusätzliche Erweiterung um die Temperatur und die Luftfeuchte in FHEM. Der in der Topic verwendete Name &amp;quot;sonoff&amp;quot; muss natürlich der Einstellung in der Software am Switch entsprechen. Bei Verwendung mehrerer Switches muss natürlich auch der Name bei jedem geändert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Logfile für die Temperatur ===&lt;br /&gt;
 define SVG_FileLog_Sonoff_Temp SVG myDbLog:SVG_FileLog_Sonoff_Temp:HISTORY&lt;br /&gt;
 attr SVG_FileLog_Sonoff_Temp room MQTT&lt;br /&gt;
&lt;br /&gt;
Und schließlich fehlt noch das Logfile, damit der Temperaturverlauf auch in schönen Plots dargestellt werden kann.&lt;br /&gt;
Das hier verwendete Beispiel funktioniert nur mit einer DbLog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch als Thermostat verwenden mit MQTT== &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_55.jpg|thumb|left|alt=Thermostat]]&lt;br /&gt;
Mit diesem einfachen Beispiel wird ein Pelett Ofen mit einem externen Thermostat (sonoff Switch oder TH10/16) gesteuert. Zum besseren Überblick wird die Steuerung in einzelne Module getrennt, es könnte aber auch einiges zu einer einzigen Definition zusammen gefasst werden. Der Thermostat könnte auch als Frostwächter benutzt werden und ein anderes Heizgerät steuern.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 ###################################&lt;br /&gt;
 ### Sonoff Thermostat Regelung ####&lt;br /&gt;
 ###################################&lt;br /&gt;
 define Sonoff_dht MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_dht IODev myBroker&lt;br /&gt;
 attr Sonoff_dht alias Raumtemperatur&lt;br /&gt;
 attr Sonoff_dht group Thermostat&lt;br /&gt;
 attr Sonoff_dht icon temperature_humidity&lt;br /&gt;
 attr Sonoff_dht publishSet ON OFF cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_dht room _Sonoff&lt;br /&gt;
 attr Sonoff_dht stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad Feuchte: %.1f &amp;quot;, ReadingsVal($name,&amp;quot;TEMPERATURE&amp;quot;,0),  ReadingsVal($name,&amp;quot;HUMIDITY&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_dht subscribeReading_HUMIDITY tele/sonoff_dht/DHT/HUMIDITY&lt;br /&gt;
 attr Sonoff_dht subscribeReading_TEMPERATURE tele/sonoff_dht/DHT/TEMPERATURE&lt;br /&gt;
 attr Sonoff_dht subscribeReading_state cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
FHEM Definition zur Erfassung der Temperatur und der Luftfeuchte. Damit dieses Beispiel funktioniert, ist am Sonoff Modul die Topic &amp;quot;&#039;&#039;&#039;sonoff_dht&#039;&#039;&#039;&amp;quot; zu setzen. Dieser Temperaturwert dient dem Thermostat als ISTWert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Sw MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Sw IODev myBroker&lt;br /&gt;
 attr Sonoff_Sw alias Pellets Ofen&lt;br /&gt;
 attr Sonoff_Sw devStateIcon on:rc_GREEN:off off:rc_RED:on&lt;br /&gt;
 attr Sonoff_Sw eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Sw group Thermostat&lt;br /&gt;
 attr Sonoff_Sw icon sani_boiler_temp&lt;br /&gt;
 attr Sonoff_Sw publishSet ON OFF cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_Sw room _Sonoff&lt;br /&gt;
 attr Sonoff_Sw stateFormat Licht&lt;br /&gt;
 attr Sonoff_Sw subscribeReading_Licht tele/sonoff_dht/POWER&lt;br /&gt;
 attr Sonoff_Sw subscribeReading_state cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_Sw webCmd ON:OFF&lt;br /&gt;
FHEM Definition zum Absetzen der Befehle für das Relais (Thermostat) Ein- / Aus. Wenn das zu steuernde Geräte einen potentialfreien Thermostatanschluß benötigt (in den meisten Fällen), muss noch ein Relais dazwischen geschaltet werden um die Trennung der Netzspannung zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
 define ThermostatPellets dummy&lt;br /&gt;
 attr ThermostatPellets alias Pellets Ofen Sollwert&lt;br /&gt;
 attr ThermostatPellets group Thermostat&lt;br /&gt;
 attr ThermostatPellets icon temp_control&lt;br /&gt;
 attr ThermostatPellets room _Sonoff&lt;br /&gt;
 attr ThermostatPellets setList state:0,5,10,12,13,14,15,16,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22,23,24,25,26,27&lt;br /&gt;
 attr ThermostatPellets webCmd state&lt;br /&gt;
Die Sollwertvorgabe für das Thermostat durch einen Dummy, damit können die gewünschten Temperaturen eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
 ### sofort ausführen wenn neuer Sollwert eingestellt wird ###&lt;br /&gt;
 define Thermostat_on_notify notify ThermostatPellets IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;state&amp;quot;,0) eq &amp;quot;OFF&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;lt;= Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw ON)&lt;br /&gt;
 define Thermostat_off_notify notify ThermostatPellets IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;state&amp;quot;,0) eq &amp;quot;ON&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;gt; Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw OFF)&lt;br /&gt;
Mit einem notify wird die manuelle Änderung des Sollwertes überwacht und sofort reagiert.&lt;br /&gt;
&lt;br /&gt;
 ## zyklisch prüfen ob Sollwert erreicht wurde ###&lt;br /&gt;
 define Thermostat_on at +*00:15:00 IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;Licht&amp;quot;,0) eq &amp;quot;OFF&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;lt;= Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw ON)&lt;br /&gt;
 define Thermostat_off at +*00:15:00 IF (Value(&amp;quot;Sonoff_Sw&amp;quot;) eq &amp;quot;ON&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;gt; Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw OFF)&lt;br /&gt;
Hier noch die Soll- Ist Wertvergleiche zur Steuerung. Es wird alle 15 Minuten überprüft ob die Temperatur erreicht ist. Bei einer trägen Heizung sollten 15 Minuten ausreichend sein, wer will kann dies aber auch alle 5 oder 10 Minuten prüfen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch mit Bewegungsmelder HC-SR501== &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_1.jpg|thumb|left|alt=Bewegungsmelder]]&lt;br /&gt;
Basierend auf dem Wall Switch MQTT Sketch von Arends wurde hier ein Sonoff BASIC + PIR HC-SR501 in eine größere Verteilerdose eingebaut, der Sonoff wurde dabei etwas gekürzt. Die Bewegungsmelder sind ab etwa 70 Cent erhältlich.&lt;br /&gt;
&lt;br /&gt;
Der Sketch kann auch den Blink Modus. Damit kann man im Alarmfall z.B. Alle Strahler rings ums Haus blinken lassen.&lt;br /&gt;
&lt;br /&gt;
Mehr dazu kann hier im [https://forum.fhem.de/index.php/topic,63824.0.html Forum]im Diskussionsthread nachgelesen werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_2.jpg|thumb|left|alt=Bewegungsmelder]]&lt;br /&gt;
Ein Beispiel wir der Bewegungsmelder in der Feuchtraumdose montiert werden kann. Wird der Bewegungsmelder abgesetzt vom Switch montiert, ist darauf zu achten das die Kabel nicht zu lange werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
===Spannungsversorgung des HC-SR501===&lt;br /&gt;
[[Datei:sonoff_pir_4.jpg|thumb|left|alt=5V für Bewegungsmelder]]&lt;br /&gt;
Der HC-SR501 wird vom Sonoff versorgt, wobei hier die 3,3 V nicht immer ausreichen. Es ist deshalb am HC-SR501 eine Diode zu überbrücken, dann reichen die 3,3V vom Sonoff. Es können aber auch am Sonoff die 5V angezapft werden. Hier im Bild dargestellt wo die 5V angezapft werden können.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_5.jpg|thumb|left|alt=3,3V für Bewegungsmelder]]&lt;br /&gt;
Hier eine kleine Übersicht der wichtigsten Teile und deren Platzierung am HC-SR501. &lt;br /&gt;
Den PIR kann man auch mit 3,3V betreiben wenn man die Diode am Eingang nach Vcc überbrückt, dann reicht die Spannung für einen reibungslosen Betrieb völlig aus. Dies gilt für den HC-SR501, wird ein anderer PIR verwendet muss man nachschauen ob das auch möglich ist, ansonsten die 5V Variante wählen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Anpassung des Sketches mit Wall Switch===&lt;br /&gt;
Zur Vorbereitung des Sketches sind zunächst einige Einstellungen in der &amp;quot;user_config.h&amp;quot; durchzuführen.&lt;br /&gt;
&lt;br /&gt;
 #if MODULE == SONOFF                        // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff 8266 module&amp;quot;&lt;br /&gt;
  #define MQTT_GRPTOPIC        &amp;quot;sonoffs&amp;quot;    // [GroupTopic] MQTT Group topic&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define LED_PIN              13           // GPIO 13 = Green/Blue Led (0 = On, 1 = Off) - Sonoff&lt;br /&gt;
  #define LED_INVERTED         1            // 0 = (1 = On, 0 = Off), 1 = (0 = On, 1 = Off)&lt;br /&gt;
  #define REL_PIN              12           // GPIO 12 = Red Led and Relay (0 = Off, 1 = On)&lt;br /&gt;
  #define KEY_PIN              0            // GPIO 00 = Button&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*\&lt;br /&gt;
 * Wall switch and HC-SR501&lt;br /&gt;
 \*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define SWITCH_PIN           14           // GPIO 14 = Standard wall switch to Gnd (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define SWITCH_MODE          &#039;&#039;&#039;PUSHBUTTON_INV&#039;&#039;&#039;      // [SwitchMode] TOGGLE, FOLLOW, FOLLOW_INV, PUSHBUTTON or PUSHBUTTON_INV (the wall switch state)&lt;br /&gt;
  &#039;&#039;&#039;#define USE_WALL_SWITCH&#039;&#039;&#039;                   // Enable the use of a standard wall switch to control the relay&lt;br /&gt;
Wichtig ist dabei die vorangestellten Slahes // bei &amp;quot;#define USE_WALL_SWITCH&amp;quot; zu entfernen auf &#039;&#039;&#039;PUSHBUTTON_INV&#039;&#039;&#039; zu stellen. Dann kann der Sonoff Switch compiliert und geflasht werden.&lt;br /&gt;
&lt;br /&gt;
===Einbindung des HC-SR501 in Fhem===&lt;br /&gt;
 # ------------- Sonoff_pir mit Bewegungsmelder ---------------&lt;br /&gt;
 define Sonoff_pir MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_pir IODev myBroker&lt;br /&gt;
 attr Sonoff_pir eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_pir group Sonoff&lt;br /&gt;
 attr Sonoff_pir icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_pir publishSet ON OFF cmnd/sonoff_pir/1/POWER/set&lt;br /&gt;
 attr Sonoff_pir room MQTT&lt;br /&gt;
 attr Sonoff_pir stateFormat Licht&lt;br /&gt;
 attr Sonoff_pir subscribeReading_Licht stat/sonoff_pir/POWER&lt;br /&gt;
 attr Sonoff_pir subscribeReading_state cmnd/sonoff_pir/1/POWER/set&lt;br /&gt;
 attr Sonoff_pir webCmd :&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel wie der Sonoff Switch in Fhem eingebunden wird. Wenn im Sketch der Prefix von stat auf tele geändert wurde, ist dies auch hier durchzuführen ( subscribeReading_Licht tele/sonoff_pir/POWER ), ansonsten bleibt es so wie im Beispiel. Getestet wurde dieses Beispiel mit Version 3.1.6. Die Topic sollte auf den Namen &amp;quot;sonoff_pir&amp;quot; eingestellt werden. Bei anderen Namen ist dies entsprechend in Fhem anzupassen. &lt;br /&gt;
&lt;br /&gt;
Mit dem Command &#039;&#039;&#039;BUTTONTOPIC = Alarm_SO2&#039;&#039;&#039; ( direkt im Webinterface des Sonoff ) wird der Wall Switch GPIO14 vom Sonoff entkoppelt und somit sendet der Bewegungsmelder direkt an FHEM --&amp;gt; Motion_pir MQTT_DEVICE&lt;br /&gt;
&lt;br /&gt;
Es sollte auch unbedingt kontrolliert werden, wie die Ausgabe des Alarmes in der Console erfolgt. Erscheint hier die Meldung &amp;quot;cmnd/Alarm_SO2/POWER = TOGGLE&amp;quot; dann muss mit dem Kommando &amp;quot;&#039;&#039;&#039;switchmode 1&#039;&#039;&#039;&amp;quot; das Ausgabeformat umgeschaltet werden, erst dann kommt das gewünschte Format &amp;quot;On&amp;quot; und &amp;quot;OFF&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 # ------------------ Motion_pir MQTT_DEVICE -----------------&lt;br /&gt;
 define Motion_pir MQTT_DEVICE&lt;br /&gt;
 attr Motion_pir IODev myBroker&lt;br /&gt;
 attr Motion_pir devStateIcon on:on-for-timer off:off&lt;br /&gt;
 attr Motion_pir eventMap ON:on OFF:off&lt;br /&gt;
 attr Motion_pir group Sonoff&lt;br /&gt;
 attr Motion_pir icon people_sensor&lt;br /&gt;
 attr Motion_pir room MQTT&lt;br /&gt;
 attr Motion_pir stateFormat Alarm&lt;br /&gt;
 attr Motion_pir subscribeReading_Alarm cmnd/Alarm_SO2/POWER&lt;br /&gt;
Die Motion_pir dient nun zur eigentlichen Einschaltung des Lichtes und sendet das Kommando &#039;&#039;&#039;cmnd/Alarm_SO2/POWER&#039;&#039;&#039; an den entkopellten GPIO 14 des Switch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # ------------------ DoIf zur Motion Abfrage -----------------&lt;br /&gt;
 define di_Sonoff_pir_Alarm DOIF ([Motion_pir:&amp;quot;on&amp;quot;] and [Tag_Nacht:twilight_weather] &amp;lt; 35) (set Sonoff_pir on) DOELSEIF ([Motion_pir:&amp;quot;off&amp;quot;] and [Tag_Nacht:twilight_weather] &amp;lt; 35) (set Sonoff_pir off)&lt;br /&gt;
 attr di_Sonoff_pir_Alarm comment Abhängig von Helligkeitssensor wird nachts,bei Bewegung das Licht eingeschaltet!&lt;br /&gt;
 attr di_Sonoff_pir_Alarm group Sonoff&lt;br /&gt;
 attr di_Sonoff_pir_Alarm room MQTT&lt;br /&gt;
Zusätzlich kann nun mit einem &#039;&#039;&#039;Doif&#039;&#039;&#039; verknüpft werden um das Ganze mit Tag_Nacht:twilight_weather dann in Abhängigkeit der Helligkeit zu schalten. Selbstverständlich kann jede andere Quelle mit einem Helligkeitswert verwendet werden.&lt;br /&gt;
&lt;br /&gt;
===Alarmausgabe über Grouptopic===&lt;br /&gt;
 # ------------------------ Sonoffs Group ----------------------&lt;br /&gt;
 define Sonoffs MQTT_DEVICE&lt;br /&gt;
 attr Sonoffs IODev myBroker&lt;br /&gt;
 attr Sonoffs eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoffs group Sonoff&lt;br /&gt;
 attr Sonoffs icon hue_filled_br30&lt;br /&gt;
 attr Sonoffs publishSet ON OFF cmnd/sonoffs/1/POWER/set&lt;br /&gt;
 attr Sonoffs room MQTT&lt;br /&gt;
 attr Sonoffs stateFormat state&lt;br /&gt;
 attr Sonoffs subscribeReading_Licht stat/sonoffs/1/POWER&lt;br /&gt;
 attr Sonoffs subscribeReading_state cmnd/sonoffs/1/POWER/set&lt;br /&gt;
Wer möchte kann auch mit der Group Topic mehrere Switches mit Bewegungsmelder zusammenfassen und alle Lampen im Alarmfall gemeinsam in den Blinkmodus schalten. cmnd/sonoffs ist das Kommando für die Group Topic, sofern diese vom User nicht verändert wurde.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:IP Components]]&lt;br /&gt;
--[[Benutzer:Reinhart|Reinhart]] ([[Benutzer Diskussion:Reinhart|Diskussion]]) 20:54, 5. Jan. 2017 (CET)&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Sonoff&amp;diff=18497</id>
		<title>Sonoff</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Sonoff&amp;diff=18497"/>
		<updated>2017-01-15T22:57:40Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: /* MQTT testen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;sonoff, dieser Artikel beschreibt die Ankopplung der kostengünstigen sonoff Module an FHEM mit ESPEasy oder MQTT.&#039;&#039;&#039;&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Achtung: Arbeiten mit Netzspannung kann lebensgefährlich sein und darf nur von autorisiertem Fachpersonal durchgeführt werden!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seit einiger Zeit werden von der [https://www.itead.cc/sonoff-wifi-wireless-switch.html Fa. Itead] kostengünstige &amp;quot;sonoff&amp;quot; Produkte angeboten die glücklicherweise den [http://dl.itead.cc/IM151116002/0A-ESP8266_Specifications_v4.1.pdf ESP8266 Chip] On Board haben und somit die ideale Grundlage für [http://www.esp8266.nu/index.php/Main_Page ESPEasy] und für [https://forum.fhem.de/index.php/board,46.0.html Fhem] darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nützliche Links zum Hersteller:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://www.itead.cc/blog/user-guide-for-sonoff-slampher User Manual von Itead]&lt;br /&gt;
&lt;br /&gt;
[https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf Sonoff Schaltplan]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
&#039;&#039;&#039;Bitte unbedingt die elektrotechnischen Sicherheitsrichtlinien beachten und einhalten!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_15.jpg|thumb|left|alt=Warnung Netzspannung]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Achtung: An dem Modul liegt Netzspannung an die lebensgefährlich ist. Es dürfen nur entsprechend ausgebildete Personen dieses Modul in Betrieb nehmen. Zum Umbau und zur Softwareaktualisierung darf keine Netzspannung angeschlossen sein&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wie gefährlich das hantieren mit Netzspannung sein kann, wird hier am Beispiel eines [http://mysku.ru/blog/china-stores/45762.html russischen Anwenders] gezeigt, der hat beim Flashen die Netzspannung am Modul gelassen und somit über die Verbindung mit dem Netzteil des Laptop lebensgefährliche Spannung auf die FTDI Schnittstelle gebracht. Das Modul ist dabei abgeraucht!&lt;br /&gt;
&lt;br /&gt;
==Modelle==&lt;br /&gt;
&lt;br /&gt;
===Produktübersichtsliste sonoff===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:right&amp;quot;&lt;br /&gt;
! Produkt Name !! Beschreibung !! Spannungsversorgung !!  Imax !! Pmax !! Frequenz !! Schaltplan !! Link&lt;br /&gt;
|-&lt;br /&gt;
| Sonoff || Wireless control switch || 90~250V AC || 10A || 2200W || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff Plan] || [https://www.itead.cc/smart-home/sonoff-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff RF || 433 RF remote || 90~250V AC || 10A || 2200W || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_RF Plan] || [https://www.itead.cc/smart-home/im151116003.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff SV || Low voltage Input || 5~24V DC || 10A || 240W DC || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_SV Plan] || [https://www.itead.cc/smart-home/sonoff-sv.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff TH10/TH16 || Monitor and set Temp.&amp;amp;Hum. ||  90~250V AC || 10A/16A || 2200W(10A)/3500W(16A)	 || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_TH_10/16 Plan] || [https://www.itead.cc/smart-home/sonoff-th.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Dual || Remote control 2 devices ||  90~250V AC || 16A || 3500W || 2.4Ghz || [https://www.itead.cc/wiki/Sonoff_Dual Plan] || [https://www.itead.cc/sonoff-dual.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Pow || Report power &amp;amp;power usage ||  90~250V AC || 16A || 3500W || 2.4Ghz || [https://www.itead.cc/wiki/Sonoff_Pow Plan] || [https://www.itead.cc/sonoff-pow.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff LED || WiFi Control Dimming LED ||  180~265V AC || 0.3-0.6A || 42W || 2.4Ghz ||  kein || [https://www.itead.cc/sonoff-led.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Touch || WiFi wall touch switch ||  90~250V AC || 2A || 400W || 2.4Ghz || kein || [https://www.itead.cc/sonoff-touch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Slampher || Wireless control light holder ||  90~250V AC || 2A || 200W || 2.4Ghz || [http://wiki.iteadstudio.com/Slampher Plan] || [https://www.itead.cc/smart-home/slampher-wifi-wireless-light-holder.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  S20 Smart Socket || Smart socket || 	90~250V AC || 10A || 2000W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/smart-socket-eu.html EU-Stecker] &lt;br /&gt;
|-&lt;br /&gt;
|  iFan || Smart fan ||  185~264V AC ||﹤1A || 60W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/smart-socket-eu.html EU-Stecker] &lt;br /&gt;
|-&lt;br /&gt;
| Motor/Pump Control Switch || clockwise/anticlockwise running ||  5V/7~32V DC || 10A || 50~320W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/motor-reversing-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| 1 Chnl Inching/self-locking Switch || Access control ||  	5V/12V DC || 10A || 50/120W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/inching-self-locking-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  4 Chnl Inching/self-locking/inter-locking Switch || Access control, rolling door control ||  5V/5~32V DC/90~250V AC || 10A || 50~320W/2500W || 2.4Ghz || kein || [https://www.itead.cc/ifan.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp; || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Eine Übersichtliste der verschiedenen Produkte mit technischen Kurzangaben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Model: IM151116002: Erstes Modell===&lt;br /&gt;
[https://www.itead.cc/sonoff-wifi-wireless-switch.html Sonoff WiFi Wireless Smart Switch for MQTT COAP Smart Home]&lt;br /&gt;
[[Datei:sonoff_sw_0.jpg|thumb|left|alt=sonoff Switch]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Das sonoff Modul ist in einem zweckmäßigen und gefälligem Gehäuse verbaut!&lt;br /&gt;
&lt;br /&gt;
====Platine====&lt;br /&gt;
[[Datei:sonoff_sw_1.jpg|thumb|left|alt=sonoff Switch von vorne]]&lt;br /&gt;
&lt;br /&gt;
Die Platine ist sehr übersichtlich aufgebaut und der Hersteller hat auch alle Vorbereitungen zum Flashen einer alternativen Software vorgesehen (über serielle Schnittstelle via FTDI-Modul). Mit einer alternativen Software wie ESPEasy ist eine direkte Ankopplung des &#039;&#039;&#039;sonoff&#039;&#039;&#039; an FHEM somit ein leicht durchführbarer Vorgang.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_3.jpg|thumb|left|alt=sonoff Switch von hinten]]&lt;br /&gt;
Die stromführenden Leitungen wurden mit Lötzinn vom Hersteller verstärkt um die angegebenen Stromstärken mit geringer Hitzeentwicklung zu transportieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160712005: TH 10A/16A ===&lt;br /&gt;
[https://www.itead.cc/sonoff-th.html Sonoff TH 10A/16A WiFi Smart Switch]&lt;br /&gt;
&lt;br /&gt;
====TH10 / TH16 weitere GPIO zugänglich machen====&lt;br /&gt;
[[Datei:Sonoff_TH_10A-16A_kleiner.jpg|thumb|left|alt=TH10 / TH16 weitere GPIO zugänglich machen]]&lt;br /&gt;
Der Hersteller hat zwar schon Platine für eine weitere Stiftleiste vorbereitet, jedoch muss diese noch bestückt werden. Die nicht beschalteten Stifte können dann genutzt werden um die &amp;quot;verdeckten&amp;quot; GPIO zugänglich zu machen. Die Verdrahtung kann dem Bild entnommen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Achtung: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160811001: Sonoff Dual ===&lt;br /&gt;
[https://www.itead.cc/sonoff-dual.html Sonoff Dual WiFi Wireless Smart Swtich]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160810001: Sonoff Pow ===&lt;br /&gt;
[https://www.itead.cc/sonoff-pow.html Sonoff POW WiFi Switch with Power Consumption Measurement]&lt;br /&gt;
[[Datei:sonoff_sw_30.jpg|thumb|left|alt=SONOFF POW]]Ein sehr interessantes und kostengünstiges Modul zur Messung der aktuellen Leistung. Das Modul kann via MQTT in Fhem angebunden werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel zur Einbindung ist [http://www.fhemwiki.de/wiki/Sonoff#Sonoff_POW_einrichten hier unten] im Wiki beschrieben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Model: weitere Modelle===&lt;br /&gt;
[https://www.itead.cc/search/result/?cat=&amp;amp;q=sonoff Sonoff Weitere Modelle finden sich auf der Homepage des Hersstellers]&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen zum Flashen==&lt;br /&gt;
[[Datei:sonoff_sw_2.jpg|thumb|left|alt=serielle Schnittstelle]]&lt;br /&gt;
&lt;br /&gt;
Hier auf der Platine sind die benötigten Signale für ein FTDI Modul schon vorhanden. Der quadratische Pin gleich über dem Taster ist die Spannungsversorgung zum Flashen vom FDTI von 3.3V Es muss daher unbedingt ein FTDI Modul genommen werden, dass nicht nur einen Jumper für 3.3V besitzt sondern auch die Spannung auf 3.3V herab setzt. Ist dies nicht der Fall, läuft man Gefahr das Modul unbrauchbar zu machen. Es ist daher zu empfehlen einen Spannungsteiler mit 2 Widerständen oder einen Pegelwandler zwischenschalten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Signale der Schnittstelle==&lt;br /&gt;
von oben nach unten auf der Steckerleiste des sonoff U4 (Model: IM151116002).&lt;br /&gt;
&lt;br /&gt;
 Pin5 = vorbereitet für GPIO&lt;br /&gt;
 Pin4 = Masse&lt;br /&gt;
 Pin3 = TxD&lt;br /&gt;
 Pin2 = RxD&lt;br /&gt;
 Pin1 = 3.3V&lt;br /&gt;
&lt;br /&gt;
Siehe dazu auch den [https://forum.fhem.de/index.php/topic,55036.0.html Link aus dem Forum]:&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Platine mit Stiftleiste bestücken==&lt;br /&gt;
[[Datei:sonoff_sw_4.jpg|thumb|left|alt=Platine mit Stiftleiste bestücken]]&lt;br /&gt;
Der Hersteller hat zwar schon die Platine vorbereitet, jedoch muss sie noch mit einer Stiftleiste bestückt werden um das FTDI Modul bequem verbinden zu können. Nachdem einmal ESPEasy geflasht worden ist, kann es in Zukunft via WEB (OTA) geflasht werden und die Stiftleiste ist dann nicht mehr erforderlich. Aufgrund der geringen Kosten fällt dies jedoch nicht ins Gewicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Für die Module TH10/TH16 sind die Lötpunkte für die Stiftleiste schon beschriftet. Die Stiftleiste selber muss allerdings auch nachgerüstet werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Achtung&#039;&#039;&#039;: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
==ESPEasy flashen==&lt;br /&gt;
[[Datei:sonoff_sw_6.jpg|thumb|left|alt=sonoff mit angestecktem FDTI Adapter]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um die Software ESPEasy an den sonoff Modulen! }}&lt;br /&gt;
Die Spannungsversorgung des sonoff Moduls wird hier vom FTDI Konverter mit 3.3V über die Verbindungskabel zum Pfostenstecker durchgeführt. &lt;br /&gt;
&lt;br /&gt;
Der FTDI Adapter wird dann mit der USB Schnittstelle mit dem Computer verbunden.&lt;br /&gt;
&lt;br /&gt;
Zum compilieren wird in der Arduino Umgebung auch die ArduinoJson library 5.6.4+ benötigt. Eine genaue Anleitung kann [https://forum.fhem.de/index.php/topic,55728.msg473220.html#msg473220 hier] nachgelesen werden. Im Gegensatz zu Arends Sketch für die MQTT Umgebung genügt hier die Arduino IDE 1.6.9. Für die Sketches von Arends empfiehlt sich Arduino IDE &amp;gt;=1.6.12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===mit Arduino compilieren===&lt;br /&gt;
[[Datei:sonoff_sw_10.jpg|thumb|left|alt=Einstellung Arduino IDE]]&lt;br /&gt;
Wer selber mit der Arduino IDE compilieren will bitte folgende Einstellungen beachten. Die anschließenden Arbeiten sind dann gleich wie bei Abschnitt &#039;&#039;&#039;fertige Binary&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Unbedingt die neueste [https://github.com/bblanchon/ArduinoJson Arduino Json Library] benutzen (siehe oben)! Es gibt zwar keine Compilerfehler, aber es kommt anschließend zu Fehlfunktionen in der ESP Bridge!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 Generic ESP8266 Module&lt;br /&gt;
 Flash Mode: QIO&lt;br /&gt;
 Flash Frequency: 40 MHz&lt;br /&gt;
 CPU Frequency: 80 MHz&lt;br /&gt;
 Flash Size: 1M (64K SPIFFS)&lt;br /&gt;
 Debug Port: disabled&lt;br /&gt;
 Debug Level: none&lt;br /&gt;
 Reset Mode: ck&lt;br /&gt;
 Upload Speed: 115200&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===fertige Binary flashen===&lt;br /&gt;
[[Datei:sonoff_sw_7.jpg|thumb|left|alt=NodeMCU Firmware Flasher]]&lt;br /&gt;
Es empfiehlt sich eine fertige Binary von ESPEasy aufzuspielen. In diesem Wiki wurde R140 verwendet.&lt;br /&gt;
&lt;br /&gt;
Siehe dazu auch den [http://www.esp8266.nu/index.php/Main_Page Link von ESPEasy] und das [https://learn.adafruit.com/building-and-running-micropython-on-the-esp8266/flash-firmware Handbuch] für den Flasher.&lt;br /&gt;
&lt;br /&gt;
In manchen Versionen von ESPEasy (zB.R120) ist auch ein Flasher beigelegt, welcher zwar keine grafische Oberfläche hat aber hervorragend funktioniert. Wenn andere versagen, geht es mit diesem Flasher immer noch, einfach probieren!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 Netzspannung darf &#039;NICHT&#039; angeschlossen sein!!!&lt;br /&gt;
 Taster am Sonoff gedrückt halten&lt;br /&gt;
 FTDI Adapter verbinden&lt;br /&gt;
 Taster am Sonoff los lassen&lt;br /&gt;
 Sketch übertragen&lt;br /&gt;
 Sonoff vom FTDI trennen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Wenn einmal die Firmware auf das sonoff Modul geflasht worden ist, kann in Zukunft ESPEasy direkt unter Tools via HTTP dies durchführen. Es muss dazu kein FTDI Konverter mehr verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==ESPEasy==&lt;br /&gt;
[[Datei:sonoff_sw_11.jpg|thumb|left|alt=ESPEasy Devices]]&lt;br /&gt;
Wenn das Modul fertig geflasht ist und die Verbindung zum Modul hergestellt ist, können die Einstellungen in ESPEasy durchgeführt werden.&lt;br /&gt;
Dazu am Webinterface anmelden und zunächst die zwei Devices definieren.&lt;br /&gt;
&lt;br /&gt;
Der Hersteller hat für das &#039;&#039;&#039;Relaise GPIO 12&#039;&#039;&#039; und für die &#039;&#039;&#039;grüne Led GPIO 13&#039;&#039;&#039; vorgesehen. Der &#039;&#039;&#039;Taster ist an GPIO 0&#039;&#039;&#039; angeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Schalter===&lt;br /&gt;
[[Datei:sonoff_sw_12.jpg|thumb|left|alt=Device Relais]]&lt;br /&gt;
Bei den Devices sollten die hier dargestellte Einstellungen beachtet werden. Der Switch (PUMP) sollte auf Input gestellt werden, sodass die anschließenden und benötigten Rules aktiviert werden können.&lt;br /&gt;
&lt;br /&gt;
Da beide Devicenamen gleich benannt wurden (PUMP) wird in Fhem nur ein Device angelegt! Die dazugehörenden Valuenames sind unterschiedlich (Relay, Key).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Taster===&lt;br /&gt;
[[Datei:sonoff_sw_13.jpg|thumb|left|alt=Device Key]]&lt;br /&gt;
Der Taste muss natürlich nur konfiguriert werden, wenn auch händisch am Modul geschaltet werden soll. Wird dies nicht benötigt, können auch die Rules geändert bzw. angepasst werden. Doch alleine zu Testzwecken ist es eine nützliche Sache.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rules===&lt;br /&gt;
[[Datei:sonoff_sw_14.jpg|thumb|left|alt=Rules]]&lt;br /&gt;
Da das sonoff Modul auch einen eingebauten Taster hat und somit auch lokal bedient werden kann, sollte man zunächst unter &#039;&#039;&#039;Tools / Advanced das Häckchen Rules&#039;&#039;&#039; aktivieren, erst dann wird der Tab sichtbar und es können Rules erstellt werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 on PUMP#Key do&lt;br /&gt;
  if [PUMP#Relay]=1&lt;br /&gt;
    gpio,12,0&lt;br /&gt;
  else&lt;br /&gt;
    gpio,12,1&lt;br /&gt;
  endif&lt;br /&gt;
 endon&lt;br /&gt;
 on PUMP#Relay do&lt;br /&gt;
  if [PUMP#Relay]=1 &lt;br /&gt;
    gpio,13,0&lt;br /&gt;
  else&lt;br /&gt;
    gpio,13,1&lt;br /&gt;
  endif&lt;br /&gt;
 endon&lt;br /&gt;
Diese Rules ermöglichen, das bei lokaler Bedienung durch den Taster auch die &#039;&#039;&#039;Led&#039;&#039;&#039; richtig geschaltet wird.&lt;br /&gt;
Mit &#039;on PUMP#Key do&#039; wird geprüft ob die Taste gedrückt ist und schaltet dann entsprechend die Led. Mit den Rules können auch Timer oder sonstige Spielereien realisiert werden. Siehe dazu das [http://www.esp8266.nu/index.php/Tutorial_Rules Tutorial] von ESPeasy.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ESPEasy in Fhem einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_9.jpg|thumb|left|alt=Fhem Konfiguration]]&lt;br /&gt;
Dies ist eine einfache Darstellung wie Fhem automatisch den Device erstellt.&lt;br /&gt;
&lt;br /&gt;
Damit Fhem mit ESPEasy und dem sonoff Modul kommunizieren kann, muss in der fhem.cfg vorerst nur die espBridge mit dem hier dargestellten Eintrag aktiviert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 define espBridge ESPEasy bridge 8383&lt;br /&gt;
Dies ist eigentlich die einzige Zeile die in fhem.cfg angelegt werden muss. Die restliche Konfiguration wird von Fhem automatisch generiert. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ##########################################&lt;br /&gt;
 ###             ESPEASY               ####&lt;br /&gt;
 ##########################################&lt;br /&gt;
 &lt;br /&gt;
 define ESPEasy_sonoff_1_PUMP ESPEasy 10.0.0.37 80 espBridge sonoff_1_PUMP&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP IODev espBridge&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP devStateIcon on:rc_GREEN:off off:rc_RED:on absent:rc_BLUE:off gpio:rc_YELLOW:off&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP group ESPEasy Device&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP icon hue_filled_outlet&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP room ESPEasy&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP setState 0&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP stateFormat {ReadingsVal($name,&amp;quot;presence&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;absent&amp;quot; ? &amp;quot;absent&amp;quot; : ReadingsVal($name,&amp;quot;Relay&amp;quot;,&amp;quot;&amp;quot;)}&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP webCmd :&lt;br /&gt;
&lt;br /&gt;
hier ein Beispiel wie es auch manuell leicht modifiziert werden kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_8.jpg|thumb|left|alt=sonoff Readings]]&lt;br /&gt;
&lt;br /&gt;
Die Readings werden durch die Bridge (Modul ESPEasy) automatisch angelegt.&lt;br /&gt;
&lt;br /&gt;
Es besteht hier noch genug Spielraum um zB. auch noch Temperatursensoren an das Modul anzuschließen und ebenfalls in Fhem darzustellen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MQTT Server einrichten==&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um den Sketch von Arends und MQTT an den sonoff Modulen! }}&lt;br /&gt;
Es bleibt jedem Anwender die freie Wahl ob die Kommunikation über die ESPEasy-Bridge oder MQTT erfolgen soll. MQTT ist bei der Einrichtung etwas komplexer, da hier auch auf dem Server der Broker installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Im wesentlichen beschränkt sich die Installation eines MQTT Servers aber auf wenige Arbeitsschritte und ist wie folgt beschrieben durchzuführen. Wer schon einen &#039;&#039;&#039;mosquitto&#039;&#039;&#039; auf dem Server installiert hat, kann diesen Schritt überspringen.&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel ist insofern interessant, da mit dem Sketch von Theo Arends auch die Einbindung der neuen sonoff Pow Module bereits möglich ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # aus dem mosquitto Repo installieren:&lt;br /&gt;
 wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key&lt;br /&gt;
 sudo apt-key add mosquitto-repo.gpg.key&lt;br /&gt;
 cd /etc/apt/sources.list.d/&lt;br /&gt;
 sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list&lt;br /&gt;
 # oder für jessie&lt;br /&gt;
 sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 # mosquitto installieren, sowie client Befehl mosquito_sub (gehört nicht zum Server, wird aber weiter unten benötigt)&lt;br /&gt;
 sudo apt-get install mosquitto mosquitto-clients&lt;br /&gt;
 &lt;br /&gt;
 # MQTT Server Test&lt;br /&gt;
 sudo service mosquitto status&lt;br /&gt;
&lt;br /&gt;
 # Start / Stop des Servers&lt;br /&gt;
 sudo service mosquitto stop&lt;br /&gt;
 sudo service mosquitto start&lt;br /&gt;
 &lt;br /&gt;
 # Perl Version ausgeben&lt;br /&gt;
 perl -v&lt;br /&gt;
 # Perl MQTT Module nachinstallieren (läuft ein paar Minuten)&lt;br /&gt;
 sudo cpan install Net::MQTT:Simple&lt;br /&gt;
 sudo cpan install Net::MQTT:Constants&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Software Arends Sketch===&lt;br /&gt;
[[Datei:sonoff_sw_22.jpg|thumb|left|alt=Arends Menü]]&lt;br /&gt;
&lt;br /&gt;
Ebenso bietet sich die Möglichkeit eine andere alternative Software auf den unterschiedlichen Sonoff Modellen aufzuspielen.&lt;br /&gt;
Speziell für diese Module zugeschnittene Software stammt vom Autor Theo Arends. Alle hier gezeigten Bildschirmfotos und Beispiele beziehen sich auf Basis der Version 2.0.11 (Stand 11.11.2016).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; erst &#039;&#039;&#039;ab Version 2.0.9&#039;&#039;&#039; sind die Berechnungsfehler und die Referenzfrequenzen für die Umrechnung der Leistungsdaten gefixt worden! Es wird daher angeraten immer die aktuellste Version zu verwenden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Links zu Theo Arend Github&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino Download MQTT Sketch]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino Arend GitHub]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki Wiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; sollten Probleme mit dem ersten Login im Webinterface auftreten, hat der Autor vorgesorgt und mit speziellem wiederholten Tastendruck können verschiedene Modi aufgerufen werden: zB: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3 x Taste kurz drücken&#039;&#039;&#039; und eine Smartconfig wird gestartet und die &#039;&#039;&#039;SSID&#039;&#039;&#039; und das &#039;&#039;&#039;Passwort&#039;&#039;&#039; kann über diese [https://play.google.com/store/apps/details?id=com.cmmakerclub.iot.esptouch Android App] eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 x Taste kurz drücken&#039;&#039;&#039; und man bringt den Device in den &#039;&#039;&#039;Access Point Mode&#039;&#039;&#039; mit der IP-Adresse &#039;&#039;&#039;192.168.4.1&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bis zu 7 verschiedene Modi sind möglich, mehr dazu in Arends Wiki.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Button-usage Link zum Wiki Arends, Button]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_bv_01.jpg|thumb|left|alt=Arduino Boardverwalter]]&lt;br /&gt;
In der Arduino IDE unter Datei / Voreinstellungen im Feld &amp;quot;Zusätzliche Boardverwalter-URLs:&amp;quot; den Link: http://arduino.esp8266.com/stable/package_esp8266com_index.json einfügen. &lt;br /&gt;
&lt;br /&gt;
Dann unter &#039;&#039;&#039;Werkzeuge / Board / Boardverwalter&#039;&#039;&#039; ganz am Ende der Liste die Librarys für &amp;quot;esp8266 by ESP8266 Community&amp;quot; die letzte Version 2.3.0 installieren. [https://forum.fhem.de/index.php/topic,46205.msg534707.html#msg534707 Link zum Board].&lt;br /&gt;
&lt;br /&gt;
Das gesamte sonoff Verzeichnis aus [https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/archive/master.zip Arendts Sketch] entpacken (ist wie hier verlinkt ein Zipfile) und dann aus diesem Verzeichnis die sonoff.ino öffnen. Es können dann alle zu dem Sketch zugehörigen Dateien angesehen/editiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Anschließend muss noch die Datei &#039;&#039;&#039;user_config.h&#039;&#039;&#039; (im Unterverzeichnis &amp;quot;sonoff&amp;quot;) editiert werden. Die Abschnitte          &lt;br /&gt;
&lt;br /&gt;
 // Wifi&lt;br /&gt;
 // Syslog&lt;br /&gt;
 // Ota&lt;br /&gt;
 // MQTT&lt;br /&gt;
&lt;br /&gt;
müssen mit der eigenen &amp;quot;&#039;&#039;&#039;Ip-Adresse-Server&#039;&#039;&#039;&amp;quot;, &amp;quot;&#039;&#039;&#039;SSID&#039;&#039;&#039;&amp;quot; und &amp;quot;&#039;&#039;&#039;password&#039;&#039;&#039;&amp;quot; angepasst werden, das erleichtert den ersten Connect mit dem Modul. Seit der Version 2.1.2 können die WIFI Einstellungen 2-fach angegeben werden, somit wechselt das Device automatisch auf den 2. Wifi Hotspot wenn der erste nicht erreicht wird.&lt;br /&gt;
&lt;br /&gt;
 #define STA_SSID               &amp;quot;SSID&amp;quot;      // Wifi SSID&lt;br /&gt;
 #define STA_PASS               &amp;quot;password&amp;quot;  // Wifi password&lt;br /&gt;
 #define WIFI_HOSTNAME          &amp;quot;%s-%04d&amp;quot;         // Expands to &amp;lt;MQTT_TOPIC&amp;gt;-&amp;lt;last 4 decimal chars of MAC address&amp;gt;&lt;br /&gt;
 #define WIFI_CONFIG_TOOL       WIFI_WPSCONFIG    // Default tool if wifi fails to connect (WIFI_SMARTCONFIG, WIFI_MANAGER or WIFI_WPSCONFIG)&lt;br /&gt;
&lt;br /&gt;
 // Syslog&lt;br /&gt;
 #define SYS_LOG_HOST           &amp;quot;Ip-Adresse-Server&amp;quot;&lt;br /&gt;
 #define SYS_LOG_PORT           514&lt;br /&gt;
 #define SYS_LOG_LEVEL          LOG_LEVEL_NONE&lt;br /&gt;
 #define SERIAL_LOG_LEVEL       LOG_LEVEL_INFO&lt;br /&gt;
 #define WEB_LOG_LEVEL          LOG_LEVEL_INFO&lt;br /&gt;
&lt;br /&gt;
 // Ota&lt;br /&gt;
 #if (ARDUINO &amp;gt;= 168)&lt;br /&gt;
  #define OTA_URL              &amp;quot;http://Ip-Adresse-Server:80/api/arduino/&amp;quot; PROJECT &amp;quot;.ino.bin&amp;quot;&lt;br /&gt;
 #else&lt;br /&gt;
  #define OTA_URL              &amp;quot;http://Ip-Adresse-Server:80/api/arduino/&amp;quot; PROJECT &amp;quot;.cpp.bin&amp;quot;&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
 // MQTT&lt;br /&gt;
 #define MQTT_HOST              &amp;quot;Ip-Adresse-Server&amp;quot;&lt;br /&gt;
 #define MQTT_PORT              1883&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Bei Verwendung des &#039;&#039;&#039;sonoff_POW&#039;&#039;&#039; muss dies ebenfalls in der user_config.h eingestellt werden, also das &amp;quot;SONOFF&amp;quot; sperren und das &amp;quot;&#039;&#039;&#039;SONOFF_POW&#039;&#039;&#039;&amp;quot; aktivieren (// setzen/entfernen). Wir dies nicht durchgeführt, werden auch keine Leistungsdaten via MQTT übertragen!!!&lt;br /&gt;
Ebenso muss in (%userprofile%\Documents\Arduino\libraries\pubsubclient\src\PubSubClient.h) die Max Packet Size auf 400 erhöht werden!&lt;br /&gt;
&lt;br /&gt;
  #define MQTT_MAX_PACKET_SIZE 400&lt;br /&gt;
  #define MQTT_KEEPALIVE 120&lt;br /&gt;
Anpassung der max. Packet Size auf 400 und das Keepalive auf 120&lt;br /&gt;
&lt;br /&gt;
 // Enable only one out of three MODULE defines below&lt;br /&gt;
 //#define MODULE                 SONOFF            // Sonoff, Sonoff SV, Sonoff Dual, Sonoff TH 10A/16A, S20 Smart Socket, 4 Channel&lt;br /&gt;
 #define MODULE                 SONOFF_POW        // Sonoff Pow&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Anschluß wird der Sketch mit der Arduino IDE (getestet mit 1.6.12) compiliert und die Binary dann exportiert (Sketch / Kompilierte Binärdatei exportieren). Die erzeugte .bin Datei dann mit dem Tool &amp;quot;ESP8266Flasher.exe&amp;quot; flashen, so wie auch bei ESPEasy. Wer nicht compilieren will, kann auch im Unterverzeichnis ./api/arduino/ die fertige Binary ( sonoff.ino ) benutzen, aber dann ohne Voreinstellung der lokalen IPs.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MQTT testen===&lt;br /&gt;
[[Datei:sonoff_sw_20.jpg|thumb|left|alt=Arends Menü]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach erfolgtem Flash des Modules kann das Webinterface des Moduls zum ersten Mal aufgerufen werden (im Router nach der IP des Moduls suchen).&lt;br /&gt;
&lt;br /&gt;
Es bieten sich hier mehrere Möglichkeiten die die weitere Einrichtung des Moduls unterstützen. Einfach die Menüpunkte durchprobieren, sie erklären sich von selbst. Für erste Tests empfiehlt sich die lokale Konsole um die Ereignisse aus Sicht des Modules mit verfolgen zu können. Alles was hier gesendet wird, sollte ebenfalls am Server mitgeloggt werden können. Wenn bis hierher alles funktioniert, kann dann mir der Konfiguration in Fhem beginnen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Am Server jetzt eine Konsole öffnen und folgende Topic (alle) einstellen.&lt;br /&gt;
&lt;br /&gt;
 mosquitto_sub -d -v -t \# &lt;br /&gt;
Mit dieser Einstellung werden alle Topics geloggt! &lt;br /&gt;
&lt;br /&gt;
 pi@raspberry ~ $ mosquitto_sub -d -v -t \#&lt;br /&gt;
 Received CONNACK&lt;br /&gt;
 Received SUBACK&lt;br /&gt;
 Subscribed (mid: 1): 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/36/temperature&#039;, ... (5 bytes))&lt;br /&gt;
 /sonoff/36/temperature 14.06&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Count&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/35/Count 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Total&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/35/Total 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Time&#039;, ... (1 bytes))&lt;br /&gt;
 /sonoff/35/Time 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/temperature&#039;, ... (5 bytes))&lt;br /&gt;
 /sonoff/temperature 14.00&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Count&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/Count 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Total&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/Total 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Time&#039;, ... (1 bytes))&lt;br /&gt;
 /sonoff/Time 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoff/1/POWER&#039;, ... (2 bytes))&lt;br /&gt;
 stat/sonoff/1/POWER ON&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoff/1/POWER&#039;, ... (3 bytes))&lt;br /&gt;
 stat/sonoff/1/POWER OFF&lt;br /&gt;
&lt;br /&gt;
Interessant sind für uns nun diese Einträge &amp;quot;stat/sonoff/1/POWER ON&amp;quot; , dazu am Taster des sonoff manuell umschalten. Dies entspricht genau der Syntax wie sie im Anschluss in Fhem dann zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen können dann entweder nach Telemetriedaten oder nach Statusmeldungen gefiltert werden. Dies ist jedoch nur notwendig wenn bereits andere MQTT Devices am Broker hängen und es sonst zu unübersichtlich wird.&lt;br /&gt;
 mosquitto_sub -h localhost -t tele/sonoff/#    = Telemetriedaten&lt;br /&gt;
 mosquitto_sub -h localhost -t stat/sonoff/#    = Statusmeldungen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_21.jpg|thumb|left|alt=Arends Log]]&lt;br /&gt;
Sehr nützlich das lokale Log zur Fehlersuche und Inbetriebnahme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Als Besonderheit benutzt der Autor zum Senden und Empfangen unterschiedliche Syntax und unterscheidet dies durch vorangestellte Prefixe vor der eigentlichen Topic.&lt;br /&gt;
#define SUB_PREFIX       &amp;quot;cmnd&amp;quot;       Sonoff devices subscribe to:- cmnd/MQTT_TOPIC and cmnd/MQTT_GRPTOPIC&lt;br /&gt;
#define PUB_PREFIX       &amp;quot;stat&amp;quot;       Sonoff devices publish to:- stat/MQTT_TOPIC&lt;br /&gt;
#define PUB_PREFIX2      &amp;quot;tele&amp;quot;       Sonoff devices publish telemetry data to:- tele/MQTT_TOPIC/UPTIME, POWER/LIGHT and TIME&lt;br /&gt;
Bitte dies unbedingt in der Fhem Konfiguration dann beachten!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MQTT in Fhem einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_24.jpg|thumb|left|alt=Fhem sonoff Schalter]]&lt;br /&gt;
Dieser einfache Schalter kommuniziert bidirektional mit dem sonoff Device.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_25.jpg|thumb|left|alt=Fhem sonoff Schalter]]&lt;br /&gt;
Die Readings in diesem verwendeten Beispiel zeigen sich wie in Fhem gewohnt.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung in Fhem wird von den Modulen 00_MQTT.pm, 10_MQTT_BRIDGE und 10_MQTT_DEVICE.pm unterstützt.&lt;br /&gt;
&lt;br /&gt;
[https://forum.fhem.de/index.php?topic=27532.0 Link zum Forum: MQTT Fhem Einrichtung]&lt;br /&gt;
&lt;br /&gt;
 ### 1. Broker anlegen ###&lt;br /&gt;
 define myBroker MQTT 10.0.0.5:1883&lt;br /&gt;
&lt;br /&gt;
 ### 2. Fhem Device mit MQTT verbinden ###&lt;br /&gt;
 define Sonoff_Switch MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Switch IODev myBroker&lt;br /&gt;
 attr Sonoff_Switch eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Switch icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_Switch publishSet ON OFF cmnd/sonoff/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch room MQTT&lt;br /&gt;
 attr Sonoff_Switch stateFormat Licht&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Licht stat/sonoff/POWER&lt;br /&gt;
 # oder mit tele, je nachdem was in der user_config.h eingestellt wurde!!!&lt;br /&gt;
 #attr Sonoff_Switch subscribeReading_Licht tele/sonoff/POWER &lt;br /&gt;
 attr Sonoff_Switch subscribeReading_state cmnd/sonoff/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch webCmd ON:OFF&lt;br /&gt;
Der hier dargestellte Beispielcode realisiert die Kommunikation zwischen Fhem und dem sonoff Modul via MQTT Broker. Zu beachten ist hier, dass &#039;&#039;&#039;subscribeReading_Licht&#039;&#039;&#039; und &#039;&#039;&#039;subscribeReading_state&#039;&#039;&#039; unterschiedliche Syntax des Topic Strings haben!&lt;br /&gt;
&lt;br /&gt;
==Sonoff POW einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_31.jpg|thumb|left|alt=Sonoff POW]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um das Modul Sonoff POW!}}&lt;br /&gt;
Das Modul kommt in gewohnter Itead Qualität und eine derart kostengünstige Energiemessung wird bei Smart Home Anwendern gerne eingesetzt. Die Originalsoftware habe ich nicht einmal getestet, da damit eine Anbindung an Fhem leider nicht möglich ist.&lt;br /&gt;
&lt;br /&gt;
Ebenso möchte kaum jemand an eine nicht dokumentierte chinesische Cloud die Steuerbefehle seiner Schalter senden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_33.jpg|thumb|left|alt=Sonoff POW]]&lt;br /&gt;
Bitte auf keinen Fall das Modul während der Arbeiten an die Netzspannung anschießen. Zum Flashen genügt (und nur diese) die Versorgungspannung des USB-TTL Konverters. Wie auf dem Foto gut erkennbar, wurde dieses Modul ohne einlöten einer Pfostensteckerleiste geflasht. Die Steckverbindung wird einfach in die Lötaugen gesteckt und mit einem Gummiring fixiert, da ja spätere Flashvorgänge im Webif des Models funktionieren und so die Arbeit eingespart werden kann. Es steht jedoch nichts im Wege die Pfostensteckerleiste einzulöten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Die Anschlüsse am Modul sind wie folgt belegt.&lt;br /&gt;
 o GND&lt;br /&gt;
 o TxD&lt;br /&gt;
 o RxD&lt;br /&gt;
 o VDD&lt;br /&gt;
&lt;br /&gt;
Für den Flashvorgang gelten die selben Regeln wie schon beim sonoff Switch oben erwähnt (3,3V!).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Software===&lt;br /&gt;
[[Datei:sonoff_sw_35.jpg|thumb|left|alt=Sonoff POW FHEM]]&lt;br /&gt;
Als Software steht im Augenblick nur der Sketch von Arends zur Verfügung, liefert aber alles was das Herz begehrt und ist ist einfach zu handhaben. Hier eine eine einfache Darstellung mit der aktuellen Leistung und dem Tagesverbrauch. Zusätzlich besteht auch noch die Möglichkeit den angeschlossenen Verbraucher Ein- oder Auszuschalten. Getestet wurde hier mit der Version 2.06, 2.07 und 2.019a von Arends.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_pow_02.jpg|thumb|left|alt=Sonoff POW Webif]]&lt;br /&gt;
Seit Version 2.0.19a ist auch die Leistungsanzeige im WEBIF wie im Bild links integriert. Auch der Energieverbrauch des Vortages wird mit angezeigt. Alle hier angezeigten Daten werden auch zyklisch im MQTT String an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann im Sketch auch das Feature &amp;quot;&#039;&#039;&#039;Power_Limit&#039;&#039;&#039;&amp;quot; aktiviert werden ( #define FEATURE_POWER_LIMIT in der sonoff.ino). Wenn dies gewünscht ist, dann vor dem compilieren die beiden // entfernen. Mit dem Power_Limit wird eine zusätzliche Nachricht erzeugt, wenn ein bestimmter einstellbarer Grenzwert über- oder unterschritten wird. &lt;br /&gt;
&lt;br /&gt;
Es lassen sich dadurch Meldungen wie &amp;quot;Waschmaschine fertig&amp;quot; oder ähnliches ohne weitere Schwellwert Überwachungen in FHEM ableiten. Die Meldungen kommen in MQTT mit &amp;quot;&#039;&#039;&#039;tele/sonoff/POWER_LOW ON&#039;&#039;&#039;&amp;quot; bzw. &amp;quot;&#039;&#039;&#039;tele/sonoff/POWER_LOW OFF&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Bevor der Sketch compiliert wird, müssen neben den IP-Einstellungen noch in der user_config.h auch andere Einstellungen vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
 #define MODULE                 SONOFF_POW       // Hardware module type (SONOFF, SONOFF_POW or ELECTRO_DRAGON)&lt;br /&gt;
 #define PROJECT                &amp;quot;sonoffpow&amp;quot;     // PROJECT is used as the default topic delimiter and OTA file name                                            // As an IDE restriction it needs to be the same as the main .ino file&lt;br /&gt;
&lt;br /&gt;
Der Typ des Modules muss von &amp;quot;SONOFF&amp;quot; auf &amp;quot;&#039;&#039;&#039;SONOFF_Pow&#039;&#039;&#039;&amp;quot; geändert werden,. damit die Software weiß mit welchem Modul es zu tun hat und kann dann die entsprechenden Berechnungen durchführen. Die Leistungsdaten kommen ja in Form einer Frequenz aus dem Baustein und müssen im Sketch (xsns_hlw8102.ino) umgerechnet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #elif MODULE == SONOFF_POW                  // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff Pow module&amp;quot;&lt;br /&gt;
  #define USE_POWERMONITOR                  // Enable Power Monitoring&lt;br /&gt;
  #define USE_POWERCALIBRATION              // Enable setting Calibration parameters by user commands&lt;br /&gt;
&lt;br /&gt;
Bei Einsatz des POW Modules kann die externe Kalibrierung aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Definition aus der power.ino (2.0.9) für die korrekte Umrechnung der gelieferten Frequenzen für die Leistungsdaten.&lt;br /&gt;
 #define HLW_PREF            10000    // 1000.0W&lt;br /&gt;
 #define HLW_UREF             2200    // 220.0V&lt;br /&gt;
 #define HLW_IREF             4545    // 4.545A&lt;br /&gt;
&lt;br /&gt;
 #define HLW_PREF_PULSE       4975    // 4975us = 201Hz = 1000W&lt;br /&gt;
 #define HLW_UREF_PULSE       1666    // 1666us = 600Hz = 220V&lt;br /&gt;
 #define HLW_IREF_PULSE       1666    // 1666us = 600Hz = 4.545A&lt;br /&gt;
                                            &lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_36.jpg|thumb|left|alt=Sonoff POW Attribute]]&lt;br /&gt;
Dieses Bild zeigt die Attribute die vom Modul via MQTT an FHEM geliefert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
aktuell gelieferte Readings (Mqtt Strings) vom Sketch nach unten dargestellter Definition in Fhem.&lt;br /&gt;
 tele/sonoffpow/TODAY_ENERGY    &lt;br /&gt;
 tele/sonoffpow/PERIOD_ENERGY   &lt;br /&gt;
 tele/sonoffpow/POWER_FACTOR   &lt;br /&gt;
 tele/sonoffpow/CURRENT_POWER  &lt;br /&gt;
 tele/sonoffpow/VOLTAGE         &lt;br /&gt;
 tele/sonoffpow/CURRENT        &lt;br /&gt;
&lt;br /&gt;
Hier ein Mittschnitt des Datenverkehrs zum Broker zwecks Kontrolle der korrekten Funktion der Module und der Software.&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/RSSI&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoff/RSSI 82&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/TEMPERATURE&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoff/TEMPERATURE 1.9&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/HUMIDITY&#039;, ... (4 bytes))&lt;br /&gt;
 tele/sonoff/HUMIDITY 97.9&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/POWER&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoff/POWER OFF&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/TIME&#039;, ... (19 bytes))&lt;br /&gt;
 tele/sonoff/TIME 2016-11-12T10:36:13&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/UPTIME&#039;, ... (1 bytes))&lt;br /&gt;
 tele/sonoffpow/UPTIME 1&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/RSSI&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/RSSI 34&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/TODAY_ENERGY&#039;, ... (5 bytes))&lt;br /&gt;
 tele/sonoffpow/TODAY_ENERGY 0.083&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/PERIOD_ENERGY&#039;, ... (1 bytes))&lt;br /&gt;
 tele/sonoffpow/PERIOD_ENERGY 8&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/CURRENT_POWER&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/CURRENT_POWER 97&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/POWER_FACTOR&#039;, ... (4 bytes))&lt;br /&gt;
 tele/sonoffpow/POWER_FACTOR 1.00&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/VOLTAGE&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoffpow/VOLTAGE 225&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/CURRENT&#039;, ... (5 bytes))&lt;br /&gt;
 tele/sonoffpow/CURRENT 0.426&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/POWER&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/POWER ON&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/TIME&#039;, ... (19 bytes))&lt;br /&gt;
 tele/sonoffpow/TIME 2016-11-12T10:36:28&lt;br /&gt;
 Sending PINGREQ&lt;br /&gt;
 Received PINGRESP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Einstellungen können mit folgender Syntax angefordert werden (zwei Terminalfenster öffnen, eines zum protokollieren und eines zum Seden der Befehle).&lt;br /&gt;
 mosquitto_sub -d -v -t \#  MQTT Datenverkehr protokolieren&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/status/set -m &amp;quot;8&amp;quot;      = SonoffPOW Status jetzt auslesen&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/TelePeriod/set -m &amp;quot;60&amp;quot; = Timer setzen, alle 60 Sekunden Daten senden &lt;br /&gt;
Die Kommandos können direkt am Broker (Terminalfenster Putty etc.) abgesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sonoff POW Kalibrieren ===&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier wird beschrieben, wie der &#039;&#039;Sonoff POW kalibriert&#039;&#039; werden kann. }}&lt;br /&gt;
Ab Version 2.0.11 kann nun auch der POW kalibriert werden.&lt;br /&gt;
Dazu kann man 2 Konsolenfenster öffnen, im ersten aktiviert man das Protokoll für den Datenverkehr&lt;br /&gt;
 mosquitto_sub -d -v -t \#  MQTT Datenverkehr protokollieren&lt;br /&gt;
&lt;br /&gt;
Dann kann mit folgenden Befehlen die HLW Referenz Pulsfrequenz gesetzt werden.&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWUCAL/set -m &amp;quot;2100&amp;quot;     default = 1950&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWICAL/set -m &amp;quot;2450&amp;quot;     default = 3500&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWPCAL/set -m &amp;quot;13500&amp;quot;    default = 12345 &lt;br /&gt;
Entweder man hat eine definierte Last zur Verfügung oder besser man misst mit einem Leistungsmesser nach. Die Spannung kann man mit einem Multimeter nachmessen (sollte 230 V sein) und der Strom wird errechnet (bei 100 Watt I = P / U ) = 100/230 = 0,4347.&lt;br /&gt;
Die Referenzwerte solange geringfügig ändern bis die Ausgabe passt. Für die Ausgabe wird einfach eine Statusabfrage durchgeführt.&lt;br /&gt;
&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/status/set -m &amp;quot;8&amp;quot;&lt;br /&gt;
Befehl für die Statusabfrage&lt;br /&gt;
&lt;br /&gt;
 cmnd/sonoffpow/1/status/set 8&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoffpow/1/STATUS&#039;, ... (103 bytes))&lt;br /&gt;
 stat/sonoffpow/1/STATUS PWR: Voltage 225 V, Current 0.427 A, Current Power 98 W, Total Power Today 0.080 kWh, Power Factor 1.00&lt;br /&gt;
Ergebnis der Statusabfrage mit Spannung, Strom und Leistung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW FHEM Anbindung===&lt;br /&gt;
Ein Beispiel einer einfachen Anbindung via MQTT an Fhem. MQTT ist insofern notwendig, da in der Software ESPEasy und der Bridge noch keine Implementierung der Frequenzumrechnung enthalten ist.&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Pow MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Pow IODev myBroker&lt;br /&gt;
 attr Sonoff_Pow eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Pow icon measure_power&lt;br /&gt;
 attr Sonoff_Pow publishSet ON OFF cmnd/sonoffpow/1/POWER/set&lt;br /&gt;
 attr Sonoff_Pow room MQTT&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_Power tele/sonoffpow/POWER&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_state cmnd/sonoffpow/1/POWER/set&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_TODAY_ENERGY tele/sonoffpow/TODAY_ENERGY&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_PERIOD_ENERGY tele/sonoffpow/PERIOD_ENERGY&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_CURRENT_POWER tele/sonoffpow/CURRENT_POWER&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_VOLTAGE tele/sonoffpow/VOLTAGE &lt;br /&gt;
 attr Sonoff_Pow subscribeReading_CURRENT tele/sonoffpow/CURRENT&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_AKTUELL stat/sonoffpow/1/STATUS&lt;br /&gt;
 attr Sonoff_Pow webCmd ON:OFF&lt;br /&gt;
 attr Sonoff_Pow stateFormat {sprintf(&amp;quot;akutelle Leistung: %.1f W Tagesverbrauch: %.2f Kw/h&amp;quot;, ReadingsVal($name,&amp;quot;CURRENT_POWER&amp;quot;,undef), ReadingsVal($name,&amp;quot;TODAY_ENERGY&amp;quot;,undef))}&lt;br /&gt;
Zusätzlich kann hier noch das Relais mit &amp;quot;on&amp;quot; und &amp;quot;off&amp;quot; ein- ausgeschaltet werden. Ab Version 2.0.15 wurden hier die ReadingsNamen auf TODAY_ENERGY und PERIOD_ENERGY (anstatt _POWER) geändert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Netz-Anschluß===&lt;br /&gt;
[[Datei:sonoff_sw_34.jpg|thumb|left|alt=Sonoff POW Netzanschluß]]&lt;br /&gt;
Erst wenn alle Arbeiten an der Hard- und Software abgeschlossen sind, kann man das Modul an die Netzspannung anschließen. Wer es sich einfach machen will, nimmt eine Industriell gefertigte 230 V Verlängerung  (zwischen 1,5 - 3 Meter) und schneidet sie in der Mitte durch. Nach dem abisolieren der flexiblen Drähte sollte diese &#039;&#039;&#039;verlötet oder mit Aderendhülsen&#039;&#039;&#039; versehen werden (müssen aber exakt passen, da hier kaum Platz in den Klemmen ist). &lt;br /&gt;
Mit einem kleinen Schraubendreher kann man die Feder der Klemmen niederdrücken und das verzinnte Drahtende tief ich die Öffnung stecken. Es dürfen keine Drahtlitzen aus den Öffnungen sichtbar sein, Kurzschlußgefahr! Ebenso sollte eine Zugprobe durchgeführt werden ob die Klemme auch richtig eingerastet ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ACHTUNG:&#039;&#039;&#039; diese Arbeiten müssen von einem ausgebildeten Fachpersonal (Elektriker) durchgeführt werden, Lebensgefahr!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Design===&lt;br /&gt;
&lt;br /&gt;
====ReadingsGroup normal====&lt;br /&gt;
[[Datei:sonoff_sw_46.jpg|thumb|left|alt=Sonoff POW Design]]&lt;br /&gt;
Viele Benutzer wollen schönere und funktionelle Ausgaben am Bildschirm sehen. Die Möglichkeiten nach oben sind hier sehr vielfältig. Anhand von zwei einfachen aber mächtigen Funktionen hier ein kleines Beispiel wie hier im Bild dargestellt.&lt;br /&gt;
&lt;br /&gt;
Was das Design betrifft, sind hier mehrere Möglichkeiten gegeben und nach oben ist für findige Anwender alles offen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit dem Hilfsmodul &amp;quot;&#039;&#039;&#039;average&#039;&#039;&#039;&amp;quot; eine Art Statistik (Durchschnittsberechnung, Min.,Max., etc.) hinzugefügt. Das beschränkt sich auf eine einzige Zeile. Es würde sich auch &#039;&#039;&#039;statistic&#039;&#039;&#039; dazu eignen.&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Pow_CURRENT_POWER average Sonoff_Pow:CURRENT_POWER.*&lt;br /&gt;
Die &amp;quot;average&amp;quot; Funktion wird in das Device &amp;quot;Sonof_Pow&amp;quot; auf das Reading &amp;quot;CURRENT_POWER&amp;quot; hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
Der zweite Schritt wird eine &#039;&#039;&#039;readingsGroup&#039;&#039;&#039; mit den gewünschten und gefilterten Ausgabedaten. Durch die verschiedenen IF Abfragen der unterschiedlichen VALUE wird bei über- oder unterschreiten eines Wertes eine bestimmte Farbe angewandt. Weitere Beispiele dazu siehe im Wiki unter [http://www.fhemwiki.de/wiki/ReadingsGroup readingsGroup]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define SonoffPows readingsGroup &amp;lt;%measure_power&amp;gt;,&amp;lt;aktuell&amp;gt;,&amp;lt;Tag&amp;gt;,&amp;lt;Strom&amp;gt;,&amp;lt;Durchschnitt&amp;gt;,&amp;lt;max.P&amp;gt;,&amp;lt;Schaltzyklen&amp;gt;,&amp;lt; hr &amp;gt; .*(Sonoff_Pow|Sonoff_Pow2):CURRENT_POWER,TODAY_ENERGY,CURRENT,CURRENT_POWER_avg_day,CURRENT_POWER_max_day,PERIOD_ENERGY&lt;br /&gt;
 attr SonoffPows mapping %ALIAS&lt;br /&gt;
 attr SonoffPows nameStyle style=&amp;quot;color:yellow&amp;quot;&lt;br /&gt;
 attr SonoffPows room MQTT&lt;br /&gt;
 attr SonoffPows valueFormat {&#039;CURRENT_POWER&#039; =&amp;gt;&amp;quot;%.0f W&amp;quot;, &#039;TODAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;, &#039;CURRENT&#039; =&amp;gt;&amp;quot;%.2f A&amp;quot;,&#039;CURRENT_POWER_max_day&#039; =&amp;gt; &amp;quot;%.0f W&amp;quot;,&#039;CURRENT_POWER_avg_day&#039; =&amp;gt; &amp;quot;%.2f W&amp;quot;,&#039;PERIOD_ENERGY&#039;=&amp;gt;&amp;quot;%.0f Zyklen&amp;quot;}&lt;br /&gt;
 attr SonoffPows valueStyle { if($READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0 &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 0.45){&#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039;}elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 0.45 &amp;amp;&amp;amp; $VALUE &amp;lt; 0.87 ){&#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0.87){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 10){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 10 &amp;amp;&amp;amp; $VALUE &amp;lt; 15 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 15){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; } }&lt;br /&gt;
&lt;br /&gt;
Die readingsGroup sind etwas komplex zu lesen, aber nach etwas Einarbeitung klappt das schon. Die in diesem Beispiel verwendeten Readingsnamen beziehen sich auf die Beispielkonfigurationen hier im Wiki.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
====ReadingsGroup mit Schaltmöglichkeit====&lt;br /&gt;
[[Datei:sonoff_pow_03.jpg|thumb|left|alt=readingsGroup mit Schalter]]&lt;br /&gt;
Die vorher erwähnte ReadingsGroup kann auch gleich mit einem Schalter versehen werden um den POW Ein- oder Aus schalten zu können. Dazu ist aber eine andere Einstellung im Sketch erforderlich.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der &amp;quot;&#039;&#039;&#039;user_config.h&#039;&#039;&#039;&amp;quot; muss an dieser Stelle auch die &amp;quot;&#039;&#039;&#039;PUB_PREFIX&#039;&#039;&#039;&amp;quot; auf die gleiche Topic wie &amp;quot;PUB_PREFIX2&amp;quot; eingestellt werden. Durch diese Maßnahme wird erreicht, dass sofort nach dem Knopfdruck auch der Status mit der Topic &amp;quot;tele&amp;quot; übertragen wird. Würde der weiterhin mit &amp;quot;stat&amp;quot; übertragen, kann er in der Readingsgroup nur sehr umständlich weiter behandelt werden. Dadurch wird erreicht, dass der Schalter sofort nach dem Schaltvorgang und der Rückmeldung (Status) auch seine Farbe ändert. Wird dieser Eintrag vergessen, ändert der Schalter erst nach Eintreffen der nächsten zyklischen Abfrage seinen Status/Farbe.&lt;br /&gt;
&lt;br /&gt;
 #define SUB_PREFIX             &amp;quot;cmnd&amp;quot;       // Sonoff devices subscribe to:- SUB_PREFIX/MQTT_TOPIC and SUB_PREFIX/MQTT_GRPTOPIC&lt;br /&gt;
 #define PUB_PREFIX             &amp;quot;tele&amp;quot;       // Sonoff devices publish to:- PUB_PREFIX/MQTT_TOPIC&lt;br /&gt;
 #define PUB_PREFIX2            &amp;quot;tele&amp;quot;       // Sonoff devices publish telemetry data to:- PUB_PREFIX2/MQTT_TOPIC/UPTIME, POWER/LIGHT and TIME&lt;br /&gt;
hier die PUB_PREFIX mit der geänderten Topic &amp;quot;tele&amp;quot; anstatt &amp;quot;stat&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define SonoffPows readingsGroup &amp;lt;%measure_power&amp;gt;,&amp;lt;aktuell&amp;gt;,&amp;lt;Tag&amp;gt;,&amp;lt;Gestern&amp;gt;,&amp;lt;Strom&amp;gt;,&amp;lt;Durchschnitt&amp;gt;,&amp;lt;max.P&amp;gt;,&amp;lt;Zyklus&amp;gt;,&amp;lt;Faktor&amp;gt;,&amp;lt;Status&amp;gt;,&amp;lt; hr &amp;gt; .*(Sonoff_Pow|Sonoff_Pow2|Sonoff_Pow3):CURRENT_POWER,TODAY_ENERGY,YESTERDAY_ENERGY,CURRENT,CURRENT_POWER_avg_day,CURRENT_POWER_max_day,PERIOD_ENERGY,POWER_FACTOR,LIGHT&lt;br /&gt;
 attr SonoffPows commands {&#039;LIGHT.ON&#039; =&amp;gt; &#039;set $DEVICE OFF&#039;,&#039;LIGHT.OFF&#039; =&amp;gt; &#039;set $DEVICE ON&#039;}&lt;br /&gt;
 attr SonoffPows mapping %ALIAS&lt;br /&gt;
 attr SonoffPows nameStyle style=&amp;quot;color:yellow&amp;quot;&lt;br /&gt;
 attr SonoffPows room Energie,MQTT&lt;br /&gt;
 attr SonoffPows valueFormat {&#039;CURRENT_POWER&#039; =&amp;gt;&amp;quot;%.0f W&amp;quot;, &#039;TODAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;,&#039;YESTERDAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;, &#039;CURRENT&#039; =&amp;gt;&amp;quot;%.2f A&amp;quot;,&#039;CURRENT_POWER_max_day&#039; =&amp;gt; &amp;quot;%.0f W&amp;quot;,&#039;CURRENT_POWER_avg_day&#039; =&amp;gt; &amp;quot;%.2f W&amp;quot;,&#039;CURRENT_POWER&#039;=&amp;gt;&amp;quot;%.0f W&amp;quot;,&#039;POWER_FACTOR&#039; =&amp;gt; &amp;quot;%.2f &amp;quot;}&lt;br /&gt;
 attr SonoffPows valueIcon {&#039;LIGHT.ON&#039; =&amp;gt; &#039;rc_GREEN@green&#039;, &#039;LIGHT.OFF&#039; =&amp;gt; &#039;rc_RED@red&#039;}&lt;br /&gt;
 attr SonoffPows valueStyle { if($READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0 &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 0.45){&#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039;}elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 0.45 &amp;amp;&amp;amp; $VALUE &amp;lt; 0.87 ){&#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0.87){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 10){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 10 &amp;amp;&amp;amp; $VALUE &amp;lt; 15 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 15){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; } }&lt;br /&gt;
hier die erweiterte ReadingsGroup mit dem Schalter. Bei Bedarf sind hier die Devicenamen anzupassen wenn andere Namen verwendet werden (Sonoff_Pow|Sonoff_Pow2|Sonoff_Pow3).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====POW mit FTUI anzeigen====&lt;br /&gt;
[[Datei:sonoff_pow_energy.JPG|thumb|left|alt=Tablett FTUI]]&lt;br /&gt;
Wer möchte kann die Energieanzeigen auch mit der [https://forum.fhem.de/index.php/topic,34233.0.html Tablett UI] für eine Tablet Ansicht gestalten. Mit dieser stehen viele Möglichkeiten zu einer attraktiven Darstellung zur Verfügung.&lt;br /&gt;
Hier ein Beispiel welches mit den Widget &amp;quot;[http://www.fhemwiki.de/wiki/FHEM_Tablet_UI#Widget_THERMOSTAT thermostat]&amp;quot; dargestellt ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Slampher Flashen==&lt;br /&gt;
[[Datei:sonoff_sl_53.jpg|thumb|left|alt=Sonoff SLAMPHER]]&lt;br /&gt;
Dieses Modul ist eine Besonderheit was das Flashen betrifft, denn mit Hilfe des Tasters kann der ESP8266 NICHT in den Flashmode gebracht werden. Der Taster ist intern anderwärtig verdrahtet und somit für diesen Zweck nicht zu gebrauchen.&lt;br /&gt;
&lt;br /&gt;
Wie hier links im Bild zu sehen ist, muss der rechte Pin des R20 (oben im Bild) während dem Einstecken des USB Steckers auf Masse gelegt werden. Die beste Möglichkeit ist ein Stücken Draht anzulöten und diesen dann beim einstecken auf den Masse Pin des USB-Konverters zu legen.&lt;br /&gt;
&lt;br /&gt;
Pinbelegung des Steckers von oben nach unten:&lt;br /&gt;
 o - GND&lt;br /&gt;
 o - TxD&lt;br /&gt;
 o - RxD&lt;br /&gt;
 &#039;&#039;&#039;o&#039;&#039;&#039; - Vdd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sl_51.jpg|thumb|left|alt=Sonoff SLAMPHER R20]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier ist genau ersichtlich, wo der R20 auf der Platine platziert ist. }}&lt;br /&gt;
Hier nocheinmal schön zu sehen wo der R20 (der ist nicht eingelötet sondern leer) exakt auf der Platine liegt, gemeint ist der rechte Pin. Hier kann auch leicht gelötet werden, da keine empfindlichen Bauteile in der Nähe sind und auch genug Platz vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sl_50.jpg|thumb|left|alt=Sonoff SLAMPHER R20]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier ist genau ersichtlich, wo der Draht am R20 aufgelötet wurde }}&lt;br /&gt;
Hier ist ein kleines Stück Schaltdraht auf den Pin bereist aufgelötet und bereit zum Flashen!&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wurde keine Pfostensteckerleiste auf die Platine aufgelötet, sondern nur durchgesteckt und mit einem Gummiring  zum Relais fixiert, das erspart den Lötvorgang, weil in Zukunft dann ohnehin OTA geflasht werden kann.&lt;br /&gt;
&lt;br /&gt;
Also Pin20 auf Masse legen und USB-Konverter an den PC einstecken, dann den Draht von der Masse entfernen. Der ESP8266 sollte jetzt im Flashmodus bereit stehen und kann wie bereits oben beschrieben geflasht werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff Slampher Software===&lt;br /&gt;
[[Datei:sonoff_sl_54.jpg|thumb|left|alt=Sonoff SLAMPHER FHEM]]&lt;br /&gt;
&lt;br /&gt;
Als Software wird Arends Sketch installiert (Kommunikation über MQTT), da zum derzeitigen Zeitpunkt ESPEasy das Modul noch nicht integriert hat und somit auch nicht ansteuern kann.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_SL MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_SL IODev myBroker&lt;br /&gt;
 attr Sonoff_SL devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON&lt;br /&gt;
 attr Sonoff_SL icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_SL publishSet ON OFF cmnd/sonoffsl/1/POWER/set&lt;br /&gt;
 attr Sonoff_SL room Bewegung,_Sonoff&lt;br /&gt;
 attr Sonoff_SL stateFormat Licht&lt;br /&gt;
 attr Sonoff_SL subscribeReading_Licht tele/sonoffsl/POWER&lt;br /&gt;
 attr Sonoff_SL subscribeReading_state cmnd/sonoffsl/1/POWER/set&lt;br /&gt;
 attr Sonoff_SL webCmd ON:OFF&lt;br /&gt;
&lt;br /&gt;
Hier ein Beispiel wie in FHEM der Slampher eingebunden werden kann. In diesem Beispiel wird davon ausgegangen, das das Modul &amp;quot;sonoffsl&amp;quot; unter Konfiguration am WEBIF (Configure MQTT bei Topic) so unbenannt wurde. Wer einen anderen Namen haben möchte, muss dies dann auch in FHEM entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Th10/16 FHEM==&lt;br /&gt;
[[Datei:sonoff_th_01.jpg|thumb|left|alt=Sonoff TH10]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Temperatur Modul TH10 / 16! }}&lt;br /&gt;
Das Modul kann durch drücken des Tasters während dem Einstecken des USB-Konverters in den Flashmodus gebracht werden.&lt;br /&gt;
Der Th10/16 kann mit zwei unterschiedlichen Typen von Sensoren bestückt werden, hier im Beispiel mit dem externen Temperaturfühler DS18B20.&lt;br /&gt;
&lt;br /&gt;
Wie im Bild klar zu sehen ist, kann das Webif auch zur Darstellung via Mobile verwendet werden. Mit &amp;quot;Toggle&amp;quot; wird Ein- oder Aus geschaltet und  darunter ist die aktuelle Temperatur ersichtlich. Für diese Ansicht muss keine MQTT Verbindung eingerichtet werden, da die Kommunikation hier rein über HTTP erfolgt.&lt;br /&gt;
&lt;br /&gt;
Die unten dargestellten Beispiele für FHEM beziehen sich auf Arends Sketch, also über MQTT. Dieses Modul kann aber genauso leicht über ESPEasy und der ESPEasy-Bridge eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Pinbelegung des Steckers von oben nach unten:&lt;br /&gt;
 o - GND&lt;br /&gt;
 o - TxD&lt;br /&gt;
 o - RxD&lt;br /&gt;
 &#039;&#039;&#039;o&#039;&#039;&#039; - Vdd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #define DSB_PIN              14           // GPIO 14 = DS18x20 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
 #define DSB_RESOLUTION       2            // Maximum number of decimals (0 - 3) showing Temperature&lt;br /&gt;
 // *** Option 1 - Single DS18B20 - Select either Option 1 OR Option 2&lt;br /&gt;
 #define SEND_TELEMETRY_DS18B20            // Enable sending single temperature telemetry&lt;br /&gt;
 // *** Option 2 - Multiple DS18B20 and/or DS18S20 (needs OneWire library!)&lt;br /&gt;
 //  #define SEND_TELEMETRY_DS18x20            // Enable sending multi temperature telemetry &lt;br /&gt;
In der user_config.h (Arends Sketch) muss hier die Option 1 aktiviert werden (entfernen der vorangestellten //) damit die Telemetriedaten auch gesendet werden. Es empfiehlt sich mindestens die Version &amp;gt;= V 2.0.16, weil hier die Sensoren erweitert wurden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #define DHT_PIN              14           // GPIO 14 = AM2301 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
 #define DHT_TYPE             AM2301       // DHT module type (DHT11, DHT21, DHT22, AM2301, AM2302 or AM2321)&lt;br /&gt;
 #define DHT_RESOLUTION       1            // Maximum number of decimals (0 - 3) showing Temperature&lt;br /&gt;
 #define SEND_TELEMETRY_DHT                // Enable sending temperature and humidity telemetry&lt;br /&gt;
Beispiel für den Sensor DHT22, Temperatur und Luftfeuchte. Es dürfen aber nicht beide Sensoren (DS18B20 + DHT22) gleichzeitig aktiviert werden, da ja beide an GPIO14 angehängt werden und es ansonsten zu Fehlfunktionen kommen würde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_th_02.jpg|thumb|left|alt=Sonoff TH10]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Einbindung in Fhem via MQTT! }}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ### Temperatur und Luftfeuchte vom Sonoff Switch ###&lt;br /&gt;
 define Sonoff_Temp MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Temp IODev myBroker&lt;br /&gt;
 attr Sonoff_Temp alias Pool Wasser&lt;br /&gt;
 attr Sonoff_Temp eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Temp icon temperature_humidity&lt;br /&gt;
 attr Sonoff_Temp publishSet ON OFF cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Temp room _Sonoff&lt;br /&gt;
 attr Sonoff_Temp stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad&amp;quot;, ReadingsVal($name,&amp;quot;TEMPERATURE&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_TEMPERATURE tele/sonoffth/DS18B20/TEMPERATURE&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_humidity tele/sonoffth/HUMIDITY&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_state cmnd/sonoffth/1/POWER/set&lt;br /&gt;
Beispiel für FHEM mit Temperaturanzeige mit DS18B20&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Switch MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Switch IODev myBroker&lt;br /&gt;
 attr Sonoff_Switch alias Pool Licht&lt;br /&gt;
 attr Sonoff_Switch devStateIcon on:rc_GREEN:off off:rc_RED:on&lt;br /&gt;
 attr Sonoff_Switch eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Switch icon light_ceiling&lt;br /&gt;
 attr Sonoff_Switch publishSet ON OFF cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch room _Sonoff&lt;br /&gt;
 attr Sonoff_Switch stateFormat Licht&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Licht tele/sonoffth/POWER&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_state cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch webCmd ON:OFF&lt;br /&gt;
Der Schalter nochmals seperat dargestellt, je nach Geschmack.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff CH4 4-Kanal Schaltmodul==&lt;br /&gt;
[[Datei:sonoff_ch4_1.jpg|thumb|left|alt=Sonoff CH4]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Achtung andere Einstellungen der Arduino IDE: Select Board &amp;quot;Generic ESP8285 Module&amp;quot; (=Flash Mode &amp;quot;DOUT&amp;quot;) and Flash Size &amp;quot;1M (64K SPIFFS)&amp;quot;n! }}&lt;br /&gt;
&lt;br /&gt;
Der Sonoff CH4 ist mit seinen 4 Kanälen ein sehr preiswertes Modul im Gehäuse und für Hutschinenmontage. Anstatt des üblichen ESP8266 besitzt dieses Modul schon den moderneren &#039;&#039;&#039;ESP8285&#039;&#039;&#039;. Es müssen daher in der Arduino IDE andere Einstellungen vorgenommen werden. Unter Board wird hier das &amp;quot;&#039;&#039;&#039;Generic 8285 Module&#039;&#039;&#039;&amp;quot; mit &#039;&#039;&#039;1M und 64K Spiffs&#039;&#039;&#039; angewählt. Der Flashmode &amp;quot;&#039;&#039;&#039;DOUT&#039;&#039;&#039;&amp;quot; wird dann automatisch eingestellt, bzw. ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
Das Modul ist etwas größer als die anderen Sonoff Produkte und besitzt mit 14,5 x 9 cm schon beachtliche Einbau Maße.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_2.jpg|thumb|left|alt=Sonoff CH4 FDTI]]&lt;br /&gt;
Als weitere Besonderheit sei hier erwähnt, das die Signale &#039;&#039;&#039;RxD auf RxD und TxD auf TxD&#039;&#039;&#039; des FTDI Konverters zu verbinden sind. Wie bei allen Sonoff Modulen darf man &#039;&#039;&#039;zum flashen keine Netzspannung anschließen&#039;&#039;&#039;, sondern nur über die Versorgungsspannung des FDTI Konverters mit 3,3 V versorgen (Jumper richtig setzen). Die Stiftleiste für den FTDI Anschluß ist hier schon eingelötet.&lt;br /&gt;
&lt;br /&gt;
In den Flashmodus gelangt man durch drücken der &#039;&#039;&#039;Taste FW/IO0&#039;&#039;&#039; während des einstecken des USB Anschlusses.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_3.jpg|thumb|left|alt=Sonoff CH4 Arends]]&lt;br /&gt;
Hier die Ansicht des Webinterface des Arends Sketches!&lt;br /&gt;
Bei der Software sei erwähnt, das die getestete Version 3.1.16 nur bei Kanal 1 den Modus &amp;quot;PulseTime&amp;quot; beherrscht. Wer also gepulste Ausgänge (zB: elektrische Garage/Toröffner) benötigt muss diese per Software nachbilden oder mit dem Kanal 1 auskommen. Eine &amp;quot;Pulsetime 10&amp;quot; ist ein guter Wert dafür (etwa 1 Sekunde). &lt;br /&gt;
&lt;br /&gt;
Als Alternative kann mit dieser HTML Seite des Webservers am Modul des CH4 schon mit jedem Browser fähigem Handy (Android, iPhone, Windows) aufgerufen werden und somit alle Funktionen gesteuert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_4.jpg|thumb|left|alt=Sonoff CH4 Software APP]]&lt;br /&gt;
Hier dargestellt die Original Software die Sonoff zum Modul liefert (EWeLink) und über ihre Cloud verbindet. Leider kann hier keine gepulste Ausgabe erfolgen. Mit einem Countdown kann zwar der Ausgang wieder abgeschaltet werden, die kleinste Zeiteinheit ist aber 1 Minute und somit für einen Impuls leider nicht zu gebrauchen. Ebenso kann mit dieser Software keine Einbindung in Fhem erfolgen, obwohl es eine nette anschauliche Darstellung ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Erweiterungen=&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch mit Temperatur + Luftfeuchte== &lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es um nützliche Hardware Erweiterungen an den Originalmodulen!}}&lt;br /&gt;
Wozu überhaupt den Switch erweitern wenn es auch die Modelle TH10 und TH16 gibt?&lt;br /&gt;
&lt;br /&gt;
Manche Personen können dadurch dem Basteltrieb nachkommen, aber das wesentliche ist der Preis, da die Switches doch fast um die Hälfte billiger sind. Die Sensoren kosten ebenfalls kaum nennenswerte Beträge.&lt;br /&gt;
&lt;br /&gt;
Oder es hat schon jemand Switches im Einsatz und möchte jetzt zusätzlich die Temperatur erfassen!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware erweitern mit DHT22 ===&lt;br /&gt;
[[Datei:sonoff_sw_4.PNG|thumb|left|alt=Sonoff Switch Pinleiste mit Temperatur]]&lt;br /&gt;
Am Sonoff Switch wurde ja schon eine Stiftleiste zum Flashen eingelötet. Diese Stiftleiste bietet schon alle Anschlüsse welche für die Temperatur- und Luftfeuchtemessung benötigt werden. Am 5. Anschluß der Stifftleiste ist das Signal &amp;quot;SCL&amp;quot; (GPIO14) herausgeführt, welches für den DHT22 zur Erfassung der Messdaten benötigt wird. Der Sonsor wird mit einem einem 3-poligen Kabel (zB: ein Steckkabel für ein Breadboard oder direkt anlöten) verbunden. Damit der DHT22 korrekt funktioniert, wird ein Widerstand mit 4,7 K Ohm zwischen Vdd und Data am DHT22 zusätzlich benötigt. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_45.jpg|thumb|left|alt=AM2302 / DHT22]]&lt;br /&gt;
&lt;br /&gt;
Ansicht des DHT22 (AM2302) mit den aufgesteckten Verbindungskabeln. Von links nach rechts sind das&lt;br /&gt;
&lt;br /&gt;
 1 = VCC 3,3 V&lt;br /&gt;
 2 = Data&lt;br /&gt;
 3 = nc (nicht belegt)&lt;br /&gt;
 4 = GND&lt;br /&gt;
&lt;br /&gt;
Pin1 (VCC) des DHT22 muss also auf Pin1 der Stiftleiste, Pin2 (Data) auf Pin5 und Pin4 (GND) auf Pin4. &lt;br /&gt;
Pin2 und Pin1 soll hier noch der Widerstand aufgelötet werden.&lt;br /&gt;
&lt;br /&gt;
 1 ------- 1 (VDD)&lt;br /&gt;
 2 ------- 5 (GPIO14)&lt;br /&gt;
 3&lt;br /&gt;
 4 ------- 4 (GND)&lt;br /&gt;
 DHT22  Stiftleiste&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_44.jpg|thumb|left|alt=umgebautes Modul]]&lt;br /&gt;
Diese Darstellung zeigt das umgebaute und bereits verschlossene Modul. Auf der Seite des Tasters (bitte nur hier, da auf der anderen Seite die 230 V verlaufen und neben der Lebensgefahr auch den Sensor beeinflussen) ist hier einfach mit einer Eisensäge ein Schlitz eingesägt, der dient in diesem Falle als Kabeldurchführung. Ein Schlitz ist besser als ein Loch, da der Oberteil des Gehäuses sich leichter aufsetzen läßt. Wer ein längeres Kabel benötigt, kann natürlich auch ein 3-poliges Telefonkabel (oder Mikrokabel oder sonstiges) verwenden. Der Sensor sollte etwas Abstand zum Gehäuse haben, da dieses auch eine Eigenerwärmung hat. Wer es ganz originalgetreu lösen will, kann auch eine 3-polige Mini Buchse für Klinckenstecker (3,5mm) einbauen so wie sie am TH10/16 vorhanden ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Software anpassen am Beispiel MQTT ===&lt;br /&gt;
[[Datei:sonoff_sw_40.jpg|thumb|left|alt=Sonoff MQTT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer über MQTT kommuniziert und die Software von Theo Arends benutzt, muss folgende Dinge beachten. In der Datei &#039;&#039;&#039;user_config.h&#039;&#039;&#039; müssen im Abschnitt &#039;&#039;&#039;Module = SONOFF&#039;&#039;&#039; die Slashes so wie unten dargestellt entfernt werden, damit erstens die Interrupts abgefragt werden und zweitens die Telemetriedaten gesendet werden. Ebenso ist der verwendete Sensor bei &amp;quot;&#039;&#039;&#039;define DHT_TYPE&#039;&#039;&#039;&amp;quot; eingestellt werden. In dem hier gezeigten Beispiel also &amp;quot;&#039;&#039;&#039;DHT22&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #if MODULE == SONOFF                        // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff module&amp;quot;&lt;br /&gt;
  #define LED_PIN              13           // GPIO 13 = Green/Blue Led (0 = On, 1 = Off) - Sonoff&lt;br /&gt;
  #define LED_INVERTED         1            // 0 = (1 = On, 0 = Off), 1 = (0 = On, 1 = Off)&lt;br /&gt;
  #define REL_PIN              12           // GPIO 12 = Red Led and Relay (0 = Off, 1 = On)&lt;br /&gt;
  #define KEY_PIN              0            // GPIO 00 = Button&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define DSB_PIN              4            // GPIO 14 = DS18B20 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define SEND_TELEMETRY_DS18B20            // Enable sending temperature telemetry&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define DHT_PIN              14           // GPIO 14 = AM2301 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define DHT_TYPE             DHT22        // DHT module type (DHT11, DHT21, DHT22, AM2301, AM2302 or AM2321)&lt;br /&gt;
  #define SEND_TELEMETRY_DHT                // Enable sending temperature and humidity telemetry&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Software Anpassung DHT22 in Fhem ===&lt;br /&gt;
[[Datei:sonoff_sw_41.jpg|thumb|left|alt=umgebautes Modul]]&lt;br /&gt;
&lt;br /&gt;
Links in der Hardcopy sind die Readings die nach der Anpassung von FHEM (Broker) befüllt werden sollten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ### Temperatur und Luftfeuchte vom Sonoff Switch ###&lt;br /&gt;
 define Sonoff_Temp MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Temp IODev myBroker&lt;br /&gt;
 attr Sonoff_Temp icon temperature_humidity&lt;br /&gt;
 attr Sonoff_Temp room MQTT&lt;br /&gt;
 attr Sonoff_Temp stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad Feuchte: %.1f &amp;quot;, ReadingsVal($name,&amp;quot;temperature&amp;quot;,0), ReadingsVal($name,&amp;quot;humidity&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_humidity tele/sonoff/HUMIDITY&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_temperature tele/sonoff/TEMPERATURE&lt;br /&gt;
Als Beispiel die zusätzliche Erweiterung um die Temperatur und die Luftfeuchte in FHEM. Der in der Topic verwendete Name &amp;quot;sonoff&amp;quot; muss natürlich der Einstellung in der Software am Switch entsprechen. Bei Verwendung mehrerer Switches muss natürlich auch der Name bei jedem geändert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Logfile für die Temperatur ===&lt;br /&gt;
 define SVG_FileLog_Sonoff_Temp SVG myDbLog:SVG_FileLog_Sonoff_Temp:HISTORY&lt;br /&gt;
 attr SVG_FileLog_Sonoff_Temp room MQTT&lt;br /&gt;
&lt;br /&gt;
Und schließlich fehlt noch das Logfile, damit der Temperaturverlauf auch in schönen Plots dargestellt werden kann.&lt;br /&gt;
Das hier verwendete Beispiel funktioniert nur mit einer DbLog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch als Thermostat verwenden mit MQTT== &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_55.jpg|thumb|left|alt=Thermostat]]&lt;br /&gt;
Mit diesem einfachen Beispiel wird ein Pelett Ofen mit einem externen Thermostat (sonoff Switch oder TH10/16) gesteuert. Zum besseren Überblick wird die Steuerung in einzelne Module getrennt, es könnte aber auch einiges zu einer einzigen Definition zusammen gefasst werden. Der Thermostat könnte auch als Frostwächter benutzt werden und ein anderes Heizgerät steuern.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 ###################################&lt;br /&gt;
 ### Sonoff Thermostat Regelung ####&lt;br /&gt;
 ###################################&lt;br /&gt;
 define Sonoff_dht MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_dht IODev myBroker&lt;br /&gt;
 attr Sonoff_dht alias Raumtemperatur&lt;br /&gt;
 attr Sonoff_dht group Thermostat&lt;br /&gt;
 attr Sonoff_dht icon temperature_humidity&lt;br /&gt;
 attr Sonoff_dht publishSet ON OFF cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_dht room _Sonoff&lt;br /&gt;
 attr Sonoff_dht stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad Feuchte: %.1f &amp;quot;, ReadingsVal($name,&amp;quot;TEMPERATURE&amp;quot;,0),  ReadingsVal($name,&amp;quot;HUMIDITY&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_dht subscribeReading_HUMIDITY tele/sonoff_dht/DHT/HUMIDITY&lt;br /&gt;
 attr Sonoff_dht subscribeReading_TEMPERATURE tele/sonoff_dht/DHT/TEMPERATURE&lt;br /&gt;
 attr Sonoff_dht subscribeReading_state cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
FHEM Definition zur Erfassung der Temperatur und der Luftfeuchte. Damit dieses Beispiel funktioniert, ist am Sonoff Modul die Topic &amp;quot;&#039;&#039;&#039;sonoff_dht&#039;&#039;&#039;&amp;quot; zu setzen. Dieser Temperaturwert dient dem Thermostat als ISTWert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Sw MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Sw IODev myBroker&lt;br /&gt;
 attr Sonoff_Sw alias Pellets Ofen&lt;br /&gt;
 attr Sonoff_Sw devStateIcon on:rc_GREEN:off off:rc_RED:on&lt;br /&gt;
 attr Sonoff_Sw eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Sw group Thermostat&lt;br /&gt;
 attr Sonoff_Sw icon sani_boiler_temp&lt;br /&gt;
 attr Sonoff_Sw publishSet ON OFF cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_Sw room _Sonoff&lt;br /&gt;
 attr Sonoff_Sw stateFormat Licht&lt;br /&gt;
 attr Sonoff_Sw subscribeReading_Licht tele/sonoff_dht/POWER&lt;br /&gt;
 attr Sonoff_Sw subscribeReading_state cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_Sw webCmd ON:OFF&lt;br /&gt;
FHEM Definition zum Absetzen der Befehle für das Relais (Thermostat) Ein- / Aus. Wenn das zu steuernde Geräte einen potentialfreien Thermostatanschluß benötigt (in den meisten Fällen), muss noch ein Relais dazwischen geschaltet werden um die Trennung der Netzspannung zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
 define ThermostatPellets dummy&lt;br /&gt;
 attr ThermostatPellets alias Pellets Ofen Sollwert&lt;br /&gt;
 attr ThermostatPellets group Thermostat&lt;br /&gt;
 attr ThermostatPellets icon temp_control&lt;br /&gt;
 attr ThermostatPellets room _Sonoff&lt;br /&gt;
 attr ThermostatPellets setList state:0,5,10,12,13,14,15,16,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22,23,24,25,26,27&lt;br /&gt;
 attr ThermostatPellets webCmd state&lt;br /&gt;
Die Sollwertvorgabe für das Thermostat durch einen Dummy, damit können die gewünschten Temperaturen eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
 ### sofort ausführen wenn neuer Sollwert eingestellt wird ###&lt;br /&gt;
 define Thermostat_on_notify notify ThermostatPellets IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;state&amp;quot;,0) eq &amp;quot;OFF&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;lt;= Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw ON)&lt;br /&gt;
 define Thermostat_off_notify notify ThermostatPellets IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;state&amp;quot;,0) eq &amp;quot;ON&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;gt; Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw OFF)&lt;br /&gt;
Mit einem notify wird die manuelle Änderung des Sollwertes überwacht und sofort reagiert.&lt;br /&gt;
&lt;br /&gt;
 ## zyklisch prüfen ob Sollwert erreicht wurde ###&lt;br /&gt;
 define Thermostat_on at +*00:15:00 IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;Licht&amp;quot;,0) eq &amp;quot;OFF&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;lt;= Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw ON)&lt;br /&gt;
 define Thermostat_off at +*00:15:00 IF (Value(&amp;quot;Sonoff_Sw&amp;quot;) eq &amp;quot;ON&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;gt; Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw OFF)&lt;br /&gt;
Hier noch die Soll- Ist Wertvergleiche zur Steuerung. Es wird alle 15 Minuten überprüft ob die Temperatur erreicht ist. Bei einer trägen Heizung sollten 15 Minuten ausreichend sein, wer will kann dies aber auch alle 5 oder 10 Minuten prüfen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch mit Bewegungsmelder HC-SR501== &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_1.jpg|thumb|left|alt=Bewegungsmelder]]&lt;br /&gt;
Basierend auf dem Wall Switch MQTT Sketch von Arends wurde hier ein Sonoff BASIC + PIR HC-SR501 in eine größere Verteilerdose eingebaut, der Sonoff wurde dabei etwas gekürzt. Die Bewegungsmelder sind ab etwa 70 Cent erhältlich.&lt;br /&gt;
&lt;br /&gt;
Der Sketch kann auch den Blink Modus. Damit kann man im Alarmfall z.B. Alle Strahler rings ums Haus blinken lassen.&lt;br /&gt;
&lt;br /&gt;
Mehr dazu kann hier im [https://forum.fhem.de/index.php/topic,63824.0.html Forum]im Diskussionsthread nachgelesen werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_2.jpg|thumb|left|alt=Bewegungsmelder]]&lt;br /&gt;
Ein Beispiel wir der Bewegungsmelder in der Feuchtraumdose montiert werden kann. Wird der Bewegungsmelder abgesetzt vom Switch montiert, ist darauf zu achten das die Kabel nicht zu lange werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
===Spannungsversorgung des HC-SR501===&lt;br /&gt;
[[Datei:sonoff_pir_4.jpg|thumb|left|alt=5V für Bewegungsmelder]]&lt;br /&gt;
Der HC-SR501 wird vom Sonoff versorgt, wobei hier die 3,3 V nicht immer ausreichen. Es ist deshalb am HC-SR501 eine Diode zu überbrücken, dann reichen die 3,3V vom Sonoff. Es können aber auch am Sonoff die 5V angezapft werden. Hier im Bild dargestellt wo die 5V angezapft werden können.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_5.jpg|thumb|left|alt=3,3V für Bewegungsmelder]]&lt;br /&gt;
Hier eine kleine Übersicht der wichtigsten Teile und deren Platzierung am HC-SR501. &lt;br /&gt;
Den PIR kann man auch mit 3,3V betreiben wenn man die Diode am Eingang nach Vcc überbrückt, dann reicht die Spannung für einen reibungslosen Betrieb völlig aus. Dies gilt für den HC-SR501, wird ein anderer PIR verwendet muss man nachschauen ob das auch möglich ist, ansonsten die 5V Variante wählen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Anpassung des Sketches mit Wall Switch===&lt;br /&gt;
Zur Vorbereitung des Sketches sind zunächst einige Einstellungen in der &amp;quot;user_config.h&amp;quot; durchzuführen.&lt;br /&gt;
&lt;br /&gt;
 #if MODULE == SONOFF                        // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff 8266 module&amp;quot;&lt;br /&gt;
  #define MQTT_GRPTOPIC        &amp;quot;sonoffs&amp;quot;    // [GroupTopic] MQTT Group topic&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define LED_PIN              13           // GPIO 13 = Green/Blue Led (0 = On, 1 = Off) - Sonoff&lt;br /&gt;
  #define LED_INVERTED         1            // 0 = (1 = On, 0 = Off), 1 = (0 = On, 1 = Off)&lt;br /&gt;
  #define REL_PIN              12           // GPIO 12 = Red Led and Relay (0 = Off, 1 = On)&lt;br /&gt;
  #define KEY_PIN              0            // GPIO 00 = Button&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*\&lt;br /&gt;
 * Wall switch and HC-SR501&lt;br /&gt;
 \*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define SWITCH_PIN           14           // GPIO 14 = Standard wall switch to Gnd (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define SWITCH_MODE          &#039;&#039;&#039;PUSHBUTTON_INV&#039;&#039;&#039;      // [SwitchMode] TOGGLE, FOLLOW, FOLLOW_INV, PUSHBUTTON or PUSHBUTTON_INV (the wall switch state)&lt;br /&gt;
  &#039;&#039;&#039;#define USE_WALL_SWITCH&#039;&#039;&#039;                   // Enable the use of a standard wall switch to control the relay&lt;br /&gt;
Wichtig ist dabei die vorangestellten Slahes // bei &amp;quot;#define USE_WALL_SWITCH&amp;quot; zu entfernen auf &#039;&#039;&#039;PUSHBUTTON_INV&#039;&#039;&#039; zu stellen. Dann kann der Sonoff Switch compiliert und geflasht werden.&lt;br /&gt;
&lt;br /&gt;
===Einbindung des HC-SR501 in Fhem===&lt;br /&gt;
 # ------------- Sonoff_pir mit Bewegungsmelder ---------------&lt;br /&gt;
 define Sonoff_pir MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_pir IODev myBroker&lt;br /&gt;
 attr Sonoff_pir eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_pir group Sonoff&lt;br /&gt;
 attr Sonoff_pir icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_pir publishSet ON OFF cmnd/sonoff_pir/1/POWER/set&lt;br /&gt;
 attr Sonoff_pir room MQTT&lt;br /&gt;
 attr Sonoff_pir stateFormat Licht&lt;br /&gt;
 attr Sonoff_pir subscribeReading_Licht stat/sonoff_pir/POWER&lt;br /&gt;
 attr Sonoff_pir subscribeReading_state cmnd/sonoff_pir/1/POWER/set&lt;br /&gt;
 attr Sonoff_pir webCmd :&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel wie der Sonoff Switch in Fhem eingebunden wird. Wenn im Sketch der Prefix von stat auf tele geändert wurde, ist dies auch hier durchzuführen ( subscribeReading_Licht tele/sonoff_pir/POWER ), ansonsten bleibt es so wie im Beispiel. Getestet wurde dieses Beispiel mit Version 3.1.6. Die Topic sollte auf den Namen &amp;quot;sonoff_pir&amp;quot; eingestellt werden. Bei anderen Namen ist dies entsprechend in Fhem anzupassen. &lt;br /&gt;
&lt;br /&gt;
Mit dem Command &#039;&#039;&#039;BUTTONTOPIC = Alarm_SO2&#039;&#039;&#039; ( direkt im Webinterface des Sonoff ) wird der Wall Switch GPIO14 vom Sonoff entkoppelt und somit sendet der Bewegungsmelder direkt an FHEM --&amp;gt; Motion_pir MQTT_DEVICE&lt;br /&gt;
&lt;br /&gt;
Es sollte auch unbedingt kontrolliert werden, wie die Ausgabe des Alarmes in der Console erfolgt. Erscheint hier die Meldung &amp;quot;cmnd/Alarm_SO2/POWER = TOGGLE&amp;quot; dann muss mit dem Kommando &amp;quot;&#039;&#039;&#039;switchmode 1&#039;&#039;&#039;&amp;quot; das Ausgabeformat umgeschaltet werden, erst dann kommt das gewünschte Format &amp;quot;On&amp;quot; und &amp;quot;OFF&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 # ------------------ Motion_pir MQTT_DEVICE -----------------&lt;br /&gt;
 define Motion_pir MQTT_DEVICE&lt;br /&gt;
 attr Motion_pir IODev myBroker&lt;br /&gt;
 attr Motion_pir devStateIcon on:on-for-timer off:off&lt;br /&gt;
 attr Motion_pir eventMap ON:on OFF:off&lt;br /&gt;
 attr Motion_pir group Sonoff&lt;br /&gt;
 attr Motion_pir icon people_sensor&lt;br /&gt;
 attr Motion_pir room MQTT&lt;br /&gt;
 attr Motion_pir stateFormat Alarm&lt;br /&gt;
 attr Motion_pir subscribeReading_Alarm cmnd/Alarm_SO2/POWER&lt;br /&gt;
Die Motion_pir dient nun zur eigentlichen Einschaltung des Lichtes und sendet das Kommando &#039;&#039;&#039;cmnd/Alarm_SO2/POWER&#039;&#039;&#039; an den entkopellten GPIO 14 des Switch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # ------------------ DoIf zur Motion Abfrage -----------------&lt;br /&gt;
 define di_Sonoff_pir_Alarm DOIF ([Motion_pir:&amp;quot;on&amp;quot;] and [Tag_Nacht:twilight_weather] &amp;lt; 35) (set Sonoff_pir on) DOELSEIF ([Motion_pir:&amp;quot;off&amp;quot;] and [Tag_Nacht:twilight_weather] &amp;lt; 35) (set Sonoff_pir off)&lt;br /&gt;
 attr di_Sonoff_pir_Alarm comment Abhängig von Helligkeitssensor wird nachts,bei Bewegung das Licht eingeschaltet!&lt;br /&gt;
 attr di_Sonoff_pir_Alarm group Sonoff&lt;br /&gt;
 attr di_Sonoff_pir_Alarm room MQTT&lt;br /&gt;
Zusätzlich kann nun mit einem &#039;&#039;&#039;Doif&#039;&#039;&#039; verknüpft werden um das Ganze mit Tag_Nacht:twilight_weather dann in Abhängigkeit der Helligkeit zu schalten. Selbstverständlich kann jede andere Quelle mit einem Helligkeitswert verwendet werden.&lt;br /&gt;
&lt;br /&gt;
===Alarmausgabe über Grouptopic===&lt;br /&gt;
 # ------------------------ Sonoffs Group ----------------------&lt;br /&gt;
 define Sonoffs MQTT_DEVICE&lt;br /&gt;
 attr Sonoffs IODev myBroker&lt;br /&gt;
 attr Sonoffs eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoffs group Sonoff&lt;br /&gt;
 attr Sonoffs icon hue_filled_br30&lt;br /&gt;
 attr Sonoffs publishSet ON OFF cmnd/sonoffs/1/POWER/set&lt;br /&gt;
 attr Sonoffs room MQTT&lt;br /&gt;
 attr Sonoffs stateFormat state&lt;br /&gt;
 attr Sonoffs subscribeReading_Licht stat/sonoffs/1/POWER&lt;br /&gt;
 attr Sonoffs subscribeReading_state cmnd/sonoffs/1/POWER/set&lt;br /&gt;
Wer möchte kann auch mit der Group Topic mehrere Switches mit Bewegungsmelder zusammenfassen und alle Lampen im Alarmfall gemeinsam in den Blinkmodus schalten. cmnd/sonoffs ist das Kommando für die Group Topic, sofern diese vom User nicht verändert wurde.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:IP Components]]&lt;br /&gt;
--[[Benutzer:Reinhart|Reinhart]] ([[Benutzer Diskussion:Reinhart|Diskussion]]) 20:54, 5. Jan. 2017 (CET)&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Sonoff&amp;diff=18496</id>
		<title>Sonoff</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Sonoff&amp;diff=18496"/>
		<updated>2017-01-15T22:56:24Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: /* MQTT Server einrichten, add client package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;sonoff, dieser Artikel beschreibt die Ankopplung der kostengünstigen sonoff Module an FHEM mit ESPEasy oder MQTT.&#039;&#039;&#039;&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Achtung: Arbeiten mit Netzspannung kann lebensgefährlich sein und darf nur von autorisiertem Fachpersonal durchgeführt werden!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seit einiger Zeit werden von der [https://www.itead.cc/sonoff-wifi-wireless-switch.html Fa. Itead] kostengünstige &amp;quot;sonoff&amp;quot; Produkte angeboten die glücklicherweise den [http://dl.itead.cc/IM151116002/0A-ESP8266_Specifications_v4.1.pdf ESP8266 Chip] On Board haben und somit die ideale Grundlage für [http://www.esp8266.nu/index.php/Main_Page ESPEasy] und für [https://forum.fhem.de/index.php/board,46.0.html Fhem] darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nützliche Links zum Hersteller:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://www.itead.cc/blog/user-guide-for-sonoff-slampher User Manual von Itead]&lt;br /&gt;
&lt;br /&gt;
[https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf Sonoff Schaltplan]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
&#039;&#039;&#039;Bitte unbedingt die elektrotechnischen Sicherheitsrichtlinien beachten und einhalten!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_15.jpg|thumb|left|alt=Warnung Netzspannung]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Achtung: An dem Modul liegt Netzspannung an die lebensgefährlich ist. Es dürfen nur entsprechend ausgebildete Personen dieses Modul in Betrieb nehmen. Zum Umbau und zur Softwareaktualisierung darf keine Netzspannung angeschlossen sein&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wie gefährlich das hantieren mit Netzspannung sein kann, wird hier am Beispiel eines [http://mysku.ru/blog/china-stores/45762.html russischen Anwenders] gezeigt, der hat beim Flashen die Netzspannung am Modul gelassen und somit über die Verbindung mit dem Netzteil des Laptop lebensgefährliche Spannung auf die FTDI Schnittstelle gebracht. Das Modul ist dabei abgeraucht!&lt;br /&gt;
&lt;br /&gt;
==Modelle==&lt;br /&gt;
&lt;br /&gt;
===Produktübersichtsliste sonoff===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:right&amp;quot;&lt;br /&gt;
! Produkt Name !! Beschreibung !! Spannungsversorgung !!  Imax !! Pmax !! Frequenz !! Schaltplan !! Link&lt;br /&gt;
|-&lt;br /&gt;
| Sonoff || Wireless control switch || 90~250V AC || 10A || 2200W || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff Plan] || [https://www.itead.cc/smart-home/sonoff-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff RF || 433 RF remote || 90~250V AC || 10A || 2200W || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_RF Plan] || [https://www.itead.cc/smart-home/im151116003.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff SV || Low voltage Input || 5~24V DC || 10A || 240W DC || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_SV Plan] || [https://www.itead.cc/smart-home/sonoff-sv.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff TH10/TH16 || Monitor and set Temp.&amp;amp;Hum. ||  90~250V AC || 10A/16A || 2200W(10A)/3500W(16A)	 || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_TH_10/16 Plan] || [https://www.itead.cc/smart-home/sonoff-th.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Dual || Remote control 2 devices ||  90~250V AC || 16A || 3500W || 2.4Ghz || [https://www.itead.cc/wiki/Sonoff_Dual Plan] || [https://www.itead.cc/sonoff-dual.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Pow || Report power &amp;amp;power usage ||  90~250V AC || 16A || 3500W || 2.4Ghz || [https://www.itead.cc/wiki/Sonoff_Pow Plan] || [https://www.itead.cc/sonoff-pow.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff LED || WiFi Control Dimming LED ||  180~265V AC || 0.3-0.6A || 42W || 2.4Ghz ||  kein || [https://www.itead.cc/sonoff-led.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Touch || WiFi wall touch switch ||  90~250V AC || 2A || 400W || 2.4Ghz || kein || [https://www.itead.cc/sonoff-touch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Slampher || Wireless control light holder ||  90~250V AC || 2A || 200W || 2.4Ghz || [http://wiki.iteadstudio.com/Slampher Plan] || [https://www.itead.cc/smart-home/slampher-wifi-wireless-light-holder.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  S20 Smart Socket || Smart socket || 	90~250V AC || 10A || 2000W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/smart-socket-eu.html EU-Stecker] &lt;br /&gt;
|-&lt;br /&gt;
|  iFan || Smart fan ||  185~264V AC ||﹤1A || 60W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/smart-socket-eu.html EU-Stecker] &lt;br /&gt;
|-&lt;br /&gt;
| Motor/Pump Control Switch || clockwise/anticlockwise running ||  5V/7~32V DC || 10A || 50~320W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/motor-reversing-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| 1 Chnl Inching/self-locking Switch || Access control ||  	5V/12V DC || 10A || 50/120W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/inching-self-locking-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  4 Chnl Inching/self-locking/inter-locking Switch || Access control, rolling door control ||  5V/5~32V DC/90~250V AC || 10A || 50~320W/2500W || 2.4Ghz || kein || [https://www.itead.cc/ifan.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp; || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Eine Übersichtliste der verschiedenen Produkte mit technischen Kurzangaben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Model: IM151116002: Erstes Modell===&lt;br /&gt;
[https://www.itead.cc/sonoff-wifi-wireless-switch.html Sonoff WiFi Wireless Smart Switch for MQTT COAP Smart Home]&lt;br /&gt;
[[Datei:sonoff_sw_0.jpg|thumb|left|alt=sonoff Switch]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Das sonoff Modul ist in einem zweckmäßigen und gefälligem Gehäuse verbaut!&lt;br /&gt;
&lt;br /&gt;
====Platine====&lt;br /&gt;
[[Datei:sonoff_sw_1.jpg|thumb|left|alt=sonoff Switch von vorne]]&lt;br /&gt;
&lt;br /&gt;
Die Platine ist sehr übersichtlich aufgebaut und der Hersteller hat auch alle Vorbereitungen zum Flashen einer alternativen Software vorgesehen (über serielle Schnittstelle via FTDI-Modul). Mit einer alternativen Software wie ESPEasy ist eine direkte Ankopplung des &#039;&#039;&#039;sonoff&#039;&#039;&#039; an FHEM somit ein leicht durchführbarer Vorgang.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_3.jpg|thumb|left|alt=sonoff Switch von hinten]]&lt;br /&gt;
Die stromführenden Leitungen wurden mit Lötzinn vom Hersteller verstärkt um die angegebenen Stromstärken mit geringer Hitzeentwicklung zu transportieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160712005: TH 10A/16A ===&lt;br /&gt;
[https://www.itead.cc/sonoff-th.html Sonoff TH 10A/16A WiFi Smart Switch]&lt;br /&gt;
&lt;br /&gt;
====TH10 / TH16 weitere GPIO zugänglich machen====&lt;br /&gt;
[[Datei:Sonoff_TH_10A-16A_kleiner.jpg|thumb|left|alt=TH10 / TH16 weitere GPIO zugänglich machen]]&lt;br /&gt;
Der Hersteller hat zwar schon Platine für eine weitere Stiftleiste vorbereitet, jedoch muss diese noch bestückt werden. Die nicht beschalteten Stifte können dann genutzt werden um die &amp;quot;verdeckten&amp;quot; GPIO zugänglich zu machen. Die Verdrahtung kann dem Bild entnommen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Achtung: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160811001: Sonoff Dual ===&lt;br /&gt;
[https://www.itead.cc/sonoff-dual.html Sonoff Dual WiFi Wireless Smart Swtich]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160810001: Sonoff Pow ===&lt;br /&gt;
[https://www.itead.cc/sonoff-pow.html Sonoff POW WiFi Switch with Power Consumption Measurement]&lt;br /&gt;
[[Datei:sonoff_sw_30.jpg|thumb|left|alt=SONOFF POW]]Ein sehr interessantes und kostengünstiges Modul zur Messung der aktuellen Leistung. Das Modul kann via MQTT in Fhem angebunden werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel zur Einbindung ist [http://www.fhemwiki.de/wiki/Sonoff#Sonoff_POW_einrichten hier unten] im Wiki beschrieben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Model: weitere Modelle===&lt;br /&gt;
[https://www.itead.cc/search/result/?cat=&amp;amp;q=sonoff Sonoff Weitere Modelle finden sich auf der Homepage des Hersstellers]&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen zum Flashen==&lt;br /&gt;
[[Datei:sonoff_sw_2.jpg|thumb|left|alt=serielle Schnittstelle]]&lt;br /&gt;
&lt;br /&gt;
Hier auf der Platine sind die benötigten Signale für ein FTDI Modul schon vorhanden. Der quadratische Pin gleich über dem Taster ist die Spannungsversorgung zum Flashen vom FDTI von 3.3V Es muss daher unbedingt ein FTDI Modul genommen werden, dass nicht nur einen Jumper für 3.3V besitzt sondern auch die Spannung auf 3.3V herab setzt. Ist dies nicht der Fall, läuft man Gefahr das Modul unbrauchbar zu machen. Es ist daher zu empfehlen einen Spannungsteiler mit 2 Widerständen oder einen Pegelwandler zwischenschalten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Signale der Schnittstelle==&lt;br /&gt;
von oben nach unten auf der Steckerleiste des sonoff U4 (Model: IM151116002).&lt;br /&gt;
&lt;br /&gt;
 Pin5 = vorbereitet für GPIO&lt;br /&gt;
 Pin4 = Masse&lt;br /&gt;
 Pin3 = TxD&lt;br /&gt;
 Pin2 = RxD&lt;br /&gt;
 Pin1 = 3.3V&lt;br /&gt;
&lt;br /&gt;
Siehe dazu auch den [https://forum.fhem.de/index.php/topic,55036.0.html Link aus dem Forum]:&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Platine mit Stiftleiste bestücken==&lt;br /&gt;
[[Datei:sonoff_sw_4.jpg|thumb|left|alt=Platine mit Stiftleiste bestücken]]&lt;br /&gt;
Der Hersteller hat zwar schon die Platine vorbereitet, jedoch muss sie noch mit einer Stiftleiste bestückt werden um das FTDI Modul bequem verbinden zu können. Nachdem einmal ESPEasy geflasht worden ist, kann es in Zukunft via WEB (OTA) geflasht werden und die Stiftleiste ist dann nicht mehr erforderlich. Aufgrund der geringen Kosten fällt dies jedoch nicht ins Gewicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Für die Module TH10/TH16 sind die Lötpunkte für die Stiftleiste schon beschriftet. Die Stiftleiste selber muss allerdings auch nachgerüstet werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Achtung&#039;&#039;&#039;: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
==ESPEasy flashen==&lt;br /&gt;
[[Datei:sonoff_sw_6.jpg|thumb|left|alt=sonoff mit angestecktem FDTI Adapter]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um die Software ESPEasy an den sonoff Modulen! }}&lt;br /&gt;
Die Spannungsversorgung des sonoff Moduls wird hier vom FTDI Konverter mit 3.3V über die Verbindungskabel zum Pfostenstecker durchgeführt. &lt;br /&gt;
&lt;br /&gt;
Der FTDI Adapter wird dann mit der USB Schnittstelle mit dem Computer verbunden.&lt;br /&gt;
&lt;br /&gt;
Zum compilieren wird in der Arduino Umgebung auch die ArduinoJson library 5.6.4+ benötigt. Eine genaue Anleitung kann [https://forum.fhem.de/index.php/topic,55728.msg473220.html#msg473220 hier] nachgelesen werden. Im Gegensatz zu Arends Sketch für die MQTT Umgebung genügt hier die Arduino IDE 1.6.9. Für die Sketches von Arends empfiehlt sich Arduino IDE &amp;gt;=1.6.12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===mit Arduino compilieren===&lt;br /&gt;
[[Datei:sonoff_sw_10.jpg|thumb|left|alt=Einstellung Arduino IDE]]&lt;br /&gt;
Wer selber mit der Arduino IDE compilieren will bitte folgende Einstellungen beachten. Die anschließenden Arbeiten sind dann gleich wie bei Abschnitt &#039;&#039;&#039;fertige Binary&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Unbedingt die neueste [https://github.com/bblanchon/ArduinoJson Arduino Json Library] benutzen (siehe oben)! Es gibt zwar keine Compilerfehler, aber es kommt anschließend zu Fehlfunktionen in der ESP Bridge!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 Generic ESP8266 Module&lt;br /&gt;
 Flash Mode: QIO&lt;br /&gt;
 Flash Frequency: 40 MHz&lt;br /&gt;
 CPU Frequency: 80 MHz&lt;br /&gt;
 Flash Size: 1M (64K SPIFFS)&lt;br /&gt;
 Debug Port: disabled&lt;br /&gt;
 Debug Level: none&lt;br /&gt;
 Reset Mode: ck&lt;br /&gt;
 Upload Speed: 115200&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===fertige Binary flashen===&lt;br /&gt;
[[Datei:sonoff_sw_7.jpg|thumb|left|alt=NodeMCU Firmware Flasher]]&lt;br /&gt;
Es empfiehlt sich eine fertige Binary von ESPEasy aufzuspielen. In diesem Wiki wurde R140 verwendet.&lt;br /&gt;
&lt;br /&gt;
Siehe dazu auch den [http://www.esp8266.nu/index.php/Main_Page Link von ESPEasy] und das [https://learn.adafruit.com/building-and-running-micropython-on-the-esp8266/flash-firmware Handbuch] für den Flasher.&lt;br /&gt;
&lt;br /&gt;
In manchen Versionen von ESPEasy (zB.R120) ist auch ein Flasher beigelegt, welcher zwar keine grafische Oberfläche hat aber hervorragend funktioniert. Wenn andere versagen, geht es mit diesem Flasher immer noch, einfach probieren!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 Netzspannung darf &#039;NICHT&#039; angeschlossen sein!!!&lt;br /&gt;
 Taster am Sonoff gedrückt halten&lt;br /&gt;
 FTDI Adapter verbinden&lt;br /&gt;
 Taster am Sonoff los lassen&lt;br /&gt;
 Sketch übertragen&lt;br /&gt;
 Sonoff vom FTDI trennen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Wenn einmal die Firmware auf das sonoff Modul geflasht worden ist, kann in Zukunft ESPEasy direkt unter Tools via HTTP dies durchführen. Es muss dazu kein FTDI Konverter mehr verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==ESPEasy==&lt;br /&gt;
[[Datei:sonoff_sw_11.jpg|thumb|left|alt=ESPEasy Devices]]&lt;br /&gt;
Wenn das Modul fertig geflasht ist und die Verbindung zum Modul hergestellt ist, können die Einstellungen in ESPEasy durchgeführt werden.&lt;br /&gt;
Dazu am Webinterface anmelden und zunächst die zwei Devices definieren.&lt;br /&gt;
&lt;br /&gt;
Der Hersteller hat für das &#039;&#039;&#039;Relaise GPIO 12&#039;&#039;&#039; und für die &#039;&#039;&#039;grüne Led GPIO 13&#039;&#039;&#039; vorgesehen. Der &#039;&#039;&#039;Taster ist an GPIO 0&#039;&#039;&#039; angeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Schalter===&lt;br /&gt;
[[Datei:sonoff_sw_12.jpg|thumb|left|alt=Device Relais]]&lt;br /&gt;
Bei den Devices sollten die hier dargestellte Einstellungen beachtet werden. Der Switch (PUMP) sollte auf Input gestellt werden, sodass die anschließenden und benötigten Rules aktiviert werden können.&lt;br /&gt;
&lt;br /&gt;
Da beide Devicenamen gleich benannt wurden (PUMP) wird in Fhem nur ein Device angelegt! Die dazugehörenden Valuenames sind unterschiedlich (Relay, Key).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Taster===&lt;br /&gt;
[[Datei:sonoff_sw_13.jpg|thumb|left|alt=Device Key]]&lt;br /&gt;
Der Taste muss natürlich nur konfiguriert werden, wenn auch händisch am Modul geschaltet werden soll. Wird dies nicht benötigt, können auch die Rules geändert bzw. angepasst werden. Doch alleine zu Testzwecken ist es eine nützliche Sache.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rules===&lt;br /&gt;
[[Datei:sonoff_sw_14.jpg|thumb|left|alt=Rules]]&lt;br /&gt;
Da das sonoff Modul auch einen eingebauten Taster hat und somit auch lokal bedient werden kann, sollte man zunächst unter &#039;&#039;&#039;Tools / Advanced das Häckchen Rules&#039;&#039;&#039; aktivieren, erst dann wird der Tab sichtbar und es können Rules erstellt werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 on PUMP#Key do&lt;br /&gt;
  if [PUMP#Relay]=1&lt;br /&gt;
    gpio,12,0&lt;br /&gt;
  else&lt;br /&gt;
    gpio,12,1&lt;br /&gt;
  endif&lt;br /&gt;
 endon&lt;br /&gt;
 on PUMP#Relay do&lt;br /&gt;
  if [PUMP#Relay]=1 &lt;br /&gt;
    gpio,13,0&lt;br /&gt;
  else&lt;br /&gt;
    gpio,13,1&lt;br /&gt;
  endif&lt;br /&gt;
 endon&lt;br /&gt;
Diese Rules ermöglichen, das bei lokaler Bedienung durch den Taster auch die &#039;&#039;&#039;Led&#039;&#039;&#039; richtig geschaltet wird.&lt;br /&gt;
Mit &#039;on PUMP#Key do&#039; wird geprüft ob die Taste gedrückt ist und schaltet dann entsprechend die Led. Mit den Rules können auch Timer oder sonstige Spielereien realisiert werden. Siehe dazu das [http://www.esp8266.nu/index.php/Tutorial_Rules Tutorial] von ESPeasy.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ESPEasy in Fhem einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_9.jpg|thumb|left|alt=Fhem Konfiguration]]&lt;br /&gt;
Dies ist eine einfache Darstellung wie Fhem automatisch den Device erstellt.&lt;br /&gt;
&lt;br /&gt;
Damit Fhem mit ESPEasy und dem sonoff Modul kommunizieren kann, muss in der fhem.cfg vorerst nur die espBridge mit dem hier dargestellten Eintrag aktiviert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 define espBridge ESPEasy bridge 8383&lt;br /&gt;
Dies ist eigentlich die einzige Zeile die in fhem.cfg angelegt werden muss. Die restliche Konfiguration wird von Fhem automatisch generiert. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ##########################################&lt;br /&gt;
 ###             ESPEASY               ####&lt;br /&gt;
 ##########################################&lt;br /&gt;
 &lt;br /&gt;
 define ESPEasy_sonoff_1_PUMP ESPEasy 10.0.0.37 80 espBridge sonoff_1_PUMP&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP IODev espBridge&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP devStateIcon on:rc_GREEN:off off:rc_RED:on absent:rc_BLUE:off gpio:rc_YELLOW:off&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP group ESPEasy Device&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP icon hue_filled_outlet&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP room ESPEasy&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP setState 0&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP stateFormat {ReadingsVal($name,&amp;quot;presence&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;absent&amp;quot; ? &amp;quot;absent&amp;quot; : ReadingsVal($name,&amp;quot;Relay&amp;quot;,&amp;quot;&amp;quot;)}&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP webCmd :&lt;br /&gt;
&lt;br /&gt;
hier ein Beispiel wie es auch manuell leicht modifiziert werden kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_8.jpg|thumb|left|alt=sonoff Readings]]&lt;br /&gt;
&lt;br /&gt;
Die Readings werden durch die Bridge (Modul ESPEasy) automatisch angelegt.&lt;br /&gt;
&lt;br /&gt;
Es besteht hier noch genug Spielraum um zB. auch noch Temperatursensoren an das Modul anzuschließen und ebenfalls in Fhem darzustellen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MQTT Server einrichten==&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um den Sketch von Arends und MQTT an den sonoff Modulen! }}&lt;br /&gt;
Es bleibt jedem Anwender die freie Wahl ob die Kommunikation über die ESPEasy-Bridge oder MQTT erfolgen soll. MQTT ist bei der Einrichtung etwas komplexer, da hier auch auf dem Server der Broker installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Im wesentlichen beschränkt sich die Installation eines MQTT Servers aber auf wenige Arbeitsschritte und ist wie folgt beschrieben durchzuführen. Wer schon einen &#039;&#039;&#039;mosquitto&#039;&#039;&#039; auf dem Server installiert hat, kann diesen Schritt überspringen.&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel ist insofern interessant, da mit dem Sketch von Theo Arends auch die Einbindung der neuen sonoff Pow Module bereits möglich ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # aus dem mosquitto Repo installieren:&lt;br /&gt;
 wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key&lt;br /&gt;
 sudo apt-key add mosquitto-repo.gpg.key&lt;br /&gt;
 cd /etc/apt/sources.list.d/&lt;br /&gt;
 sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list&lt;br /&gt;
 # oder für jessie&lt;br /&gt;
 sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 # mosquitto installieren, sowie client Befehl mosquito_sub (gehört nicht zum Server, wird aber weiter unten benötigt)&lt;br /&gt;
 sudo apt-get install mosquitto mosquitto-clients&lt;br /&gt;
 &lt;br /&gt;
 # MQTT Server Test&lt;br /&gt;
 sudo service mosquitto status&lt;br /&gt;
&lt;br /&gt;
 # Start / Stop des Servers&lt;br /&gt;
 sudo service mosquitto stop&lt;br /&gt;
 sudo service mosquitto start&lt;br /&gt;
 &lt;br /&gt;
 # Perl Version ausgeben&lt;br /&gt;
 perl -v&lt;br /&gt;
 # Perl MQTT Module nachinstallieren (läuft ein paar Minuten)&lt;br /&gt;
 sudo cpan install Net::MQTT:Simple&lt;br /&gt;
 sudo cpan install Net::MQTT:Constants&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Software Arends Sketch===&lt;br /&gt;
[[Datei:sonoff_sw_22.jpg|thumb|left|alt=Arends Menü]]&lt;br /&gt;
&lt;br /&gt;
Ebenso bietet sich die Möglichkeit eine andere alternative Software auf den unterschiedlichen Sonoff Modellen aufzuspielen.&lt;br /&gt;
Speziell für diese Module zugeschnittene Software stammt vom Autor Theo Arends. Alle hier gezeigten Bildschirmfotos und Beispiele beziehen sich auf Basis der Version 2.0.11 (Stand 11.11.2016).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; erst &#039;&#039;&#039;ab Version 2.0.9&#039;&#039;&#039; sind die Berechnungsfehler und die Referenzfrequenzen für die Umrechnung der Leistungsdaten gefixt worden! Es wird daher angeraten immer die aktuellste Version zu verwenden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Links zu Theo Arend Github&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino Download MQTT Sketch]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino Arend GitHub]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki Wiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; sollten Probleme mit dem ersten Login im Webinterface auftreten, hat der Autor vorgesorgt und mit speziellem wiederholten Tastendruck können verschiedene Modi aufgerufen werden: zB: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3 x Taste kurz drücken&#039;&#039;&#039; und eine Smartconfig wird gestartet und die &#039;&#039;&#039;SSID&#039;&#039;&#039; und das &#039;&#039;&#039;Passwort&#039;&#039;&#039; kann über diese [https://play.google.com/store/apps/details?id=com.cmmakerclub.iot.esptouch Android App] eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 x Taste kurz drücken&#039;&#039;&#039; und man bringt den Device in den &#039;&#039;&#039;Access Point Mode&#039;&#039;&#039; mit der IP-Adresse &#039;&#039;&#039;192.168.4.1&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bis zu 7 verschiedene Modi sind möglich, mehr dazu in Arends Wiki.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Button-usage Link zum Wiki Arends, Button]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_bv_01.jpg|thumb|left|alt=Arduino Boardverwalter]]&lt;br /&gt;
In der Arduino IDE unter Datei / Voreinstellungen im Feld &amp;quot;Zusätzliche Boardverwalter-URLs:&amp;quot; den Link: http://arduino.esp8266.com/stable/package_esp8266com_index.json einfügen. &lt;br /&gt;
&lt;br /&gt;
Dann unter &#039;&#039;&#039;Werkzeuge / Board / Boardverwalter&#039;&#039;&#039; ganz am Ende der Liste die Librarys für &amp;quot;esp8266 by ESP8266 Community&amp;quot; die letzte Version 2.3.0 installieren. [https://forum.fhem.de/index.php/topic,46205.msg534707.html#msg534707 Link zum Board].&lt;br /&gt;
&lt;br /&gt;
Das gesamte sonoff Verzeichnis aus [https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/archive/master.zip Arendts Sketch] entpacken (ist wie hier verlinkt ein Zipfile) und dann aus diesem Verzeichnis die sonoff.ino öffnen. Es können dann alle zu dem Sketch zugehörigen Dateien angesehen/editiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Anschließend muss noch die Datei &#039;&#039;&#039;user_config.h&#039;&#039;&#039; (im Unterverzeichnis &amp;quot;sonoff&amp;quot;) editiert werden. Die Abschnitte          &lt;br /&gt;
&lt;br /&gt;
 // Wifi&lt;br /&gt;
 // Syslog&lt;br /&gt;
 // Ota&lt;br /&gt;
 // MQTT&lt;br /&gt;
&lt;br /&gt;
müssen mit der eigenen &amp;quot;&#039;&#039;&#039;Ip-Adresse-Server&#039;&#039;&#039;&amp;quot;, &amp;quot;&#039;&#039;&#039;SSID&#039;&#039;&#039;&amp;quot; und &amp;quot;&#039;&#039;&#039;password&#039;&#039;&#039;&amp;quot; angepasst werden, das erleichtert den ersten Connect mit dem Modul. Seit der Version 2.1.2 können die WIFI Einstellungen 2-fach angegeben werden, somit wechselt das Device automatisch auf den 2. Wifi Hotspot wenn der erste nicht erreicht wird.&lt;br /&gt;
&lt;br /&gt;
 #define STA_SSID               &amp;quot;SSID&amp;quot;      // Wifi SSID&lt;br /&gt;
 #define STA_PASS               &amp;quot;password&amp;quot;  // Wifi password&lt;br /&gt;
 #define WIFI_HOSTNAME          &amp;quot;%s-%04d&amp;quot;         // Expands to &amp;lt;MQTT_TOPIC&amp;gt;-&amp;lt;last 4 decimal chars of MAC address&amp;gt;&lt;br /&gt;
 #define WIFI_CONFIG_TOOL       WIFI_WPSCONFIG    // Default tool if wifi fails to connect (WIFI_SMARTCONFIG, WIFI_MANAGER or WIFI_WPSCONFIG)&lt;br /&gt;
&lt;br /&gt;
 // Syslog&lt;br /&gt;
 #define SYS_LOG_HOST           &amp;quot;Ip-Adresse-Server&amp;quot;&lt;br /&gt;
 #define SYS_LOG_PORT           514&lt;br /&gt;
 #define SYS_LOG_LEVEL          LOG_LEVEL_NONE&lt;br /&gt;
 #define SERIAL_LOG_LEVEL       LOG_LEVEL_INFO&lt;br /&gt;
 #define WEB_LOG_LEVEL          LOG_LEVEL_INFO&lt;br /&gt;
&lt;br /&gt;
 // Ota&lt;br /&gt;
 #if (ARDUINO &amp;gt;= 168)&lt;br /&gt;
  #define OTA_URL              &amp;quot;http://Ip-Adresse-Server:80/api/arduino/&amp;quot; PROJECT &amp;quot;.ino.bin&amp;quot;&lt;br /&gt;
 #else&lt;br /&gt;
  #define OTA_URL              &amp;quot;http://Ip-Adresse-Server:80/api/arduino/&amp;quot; PROJECT &amp;quot;.cpp.bin&amp;quot;&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
 // MQTT&lt;br /&gt;
 #define MQTT_HOST              &amp;quot;Ip-Adresse-Server&amp;quot;&lt;br /&gt;
 #define MQTT_PORT              1883&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Bei Verwendung des &#039;&#039;&#039;sonoff_POW&#039;&#039;&#039; muss dies ebenfalls in der user_config.h eingestellt werden, also das &amp;quot;SONOFF&amp;quot; sperren und das &amp;quot;&#039;&#039;&#039;SONOFF_POW&#039;&#039;&#039;&amp;quot; aktivieren (// setzen/entfernen). Wir dies nicht durchgeführt, werden auch keine Leistungsdaten via MQTT übertragen!!!&lt;br /&gt;
Ebenso muss in (%userprofile%\Documents\Arduino\libraries\pubsubclient\src\PubSubClient.h) die Max Packet Size auf 400 erhöht werden!&lt;br /&gt;
&lt;br /&gt;
  #define MQTT_MAX_PACKET_SIZE 400&lt;br /&gt;
  #define MQTT_KEEPALIVE 120&lt;br /&gt;
Anpassung der max. Packet Size auf 400 und das Keepalive auf 120&lt;br /&gt;
&lt;br /&gt;
 // Enable only one out of three MODULE defines below&lt;br /&gt;
 //#define MODULE                 SONOFF            // Sonoff, Sonoff SV, Sonoff Dual, Sonoff TH 10A/16A, S20 Smart Socket, 4 Channel&lt;br /&gt;
 #define MODULE                 SONOFF_POW        // Sonoff Pow&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Anschluß wird der Sketch mit der Arduino IDE (getestet mit 1.6.12) compiliert und die Binary dann exportiert (Sketch / Kompilierte Binärdatei exportieren). Die erzeugte .bin Datei dann mit dem Tool &amp;quot;ESP8266Flasher.exe&amp;quot; flashen, so wie auch bei ESPEasy. Wer nicht compilieren will, kann auch im Unterverzeichnis ./api/arduino/ die fertige Binary ( sonoff.ino ) benutzen, aber dann ohne Voreinstellung der lokalen IPs.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MQTT testen===&lt;br /&gt;
[[Datei:sonoff_sw_20.jpg|thumb|left|alt=Arends Menü]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach erfolgtem Flash des Modules kann das Webinterface zum ersten Mal aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Es bieten sich hier mehrere Möglichkeiten die die weitere Einrichtung des Moduls unterstützen. Einfach die Menüpunkte durchprobieren, sie erklären sich von selbst. Für erste Tests empfiehlt sich die lokale Konsole um die Ereignisse aus Sicht des Modules mit verfolgen zu können. Alles was hier gesendet wird, sollte ebenfalls am Server mitgeloggt werden können. Wenn bis hierher alles funktioniert, kann dann mir der Konfiguration in Fhem beginnen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Am Server jetzt eine Konsole öffnen und folgende Topic (alle) einstellen.&lt;br /&gt;
&lt;br /&gt;
 mosquitto_sub -d -v -t \# &lt;br /&gt;
Mit dieser Einstellung werden alle Topics geloggt! &lt;br /&gt;
&lt;br /&gt;
 pi@raspberry ~ $ mosquitto_sub -d -v -t \#&lt;br /&gt;
 Received CONNACK&lt;br /&gt;
 Received SUBACK&lt;br /&gt;
 Subscribed (mid: 1): 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/36/temperature&#039;, ... (5 bytes))&lt;br /&gt;
 /sonoff/36/temperature 14.06&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Count&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/35/Count 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Total&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/35/Total 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Time&#039;, ... (1 bytes))&lt;br /&gt;
 /sonoff/35/Time 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/temperature&#039;, ... (5 bytes))&lt;br /&gt;
 /sonoff/temperature 14.00&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Count&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/Count 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Total&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/Total 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Time&#039;, ... (1 bytes))&lt;br /&gt;
 /sonoff/Time 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoff/1/POWER&#039;, ... (2 bytes))&lt;br /&gt;
 stat/sonoff/1/POWER ON&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoff/1/POWER&#039;, ... (3 bytes))&lt;br /&gt;
 stat/sonoff/1/POWER OFF&lt;br /&gt;
&lt;br /&gt;
Interessant sind für uns nun diese Einträge &amp;quot;stat/sonoff/1/POWER ON&amp;quot; , dazu am Taster des sonoff manuell umschalten. Dies entspricht genau der Syntax wie sie im Anschluss in Fhem dann zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen können dann entweder nach Telemetriedaten oder nach Statusmeldungen gefiltert werden. Dies ist jedoch nur notwendig wenn bereits andere MQTT Devices am Broker hängen und es sonst zu unübersichtlich wird.&lt;br /&gt;
 mosquitto_sub -h localhost -t tele/sonoff/#    = Telemetriedaten&lt;br /&gt;
 mosquitto_sub -h localhost -t stat/sonoff/#    = Statusmeldungen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_21.jpg|thumb|left|alt=Arends Log]]&lt;br /&gt;
Sehr nützlich das lokale Log zur Fehlersuche und Inbetriebnahme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Als Besonderheit benutzt der Autor zum Senden und Empfangen unterschiedliche Syntax und unterscheidet dies durch vorangestellte Prefixe vor der eigentlichen Topic.&lt;br /&gt;
#define SUB_PREFIX       &amp;quot;cmnd&amp;quot;       Sonoff devices subscribe to:- cmnd/MQTT_TOPIC and cmnd/MQTT_GRPTOPIC&lt;br /&gt;
#define PUB_PREFIX       &amp;quot;stat&amp;quot;       Sonoff devices publish to:- stat/MQTT_TOPIC&lt;br /&gt;
#define PUB_PREFIX2      &amp;quot;tele&amp;quot;       Sonoff devices publish telemetry data to:- tele/MQTT_TOPIC/UPTIME, POWER/LIGHT and TIME&lt;br /&gt;
Bitte dies unbedingt in der Fhem Konfiguration dann beachten!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MQTT in Fhem einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_24.jpg|thumb|left|alt=Fhem sonoff Schalter]]&lt;br /&gt;
Dieser einfache Schalter kommuniziert bidirektional mit dem sonoff Device.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_25.jpg|thumb|left|alt=Fhem sonoff Schalter]]&lt;br /&gt;
Die Readings in diesem verwendeten Beispiel zeigen sich wie in Fhem gewohnt.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung in Fhem wird von den Modulen 00_MQTT.pm, 10_MQTT_BRIDGE und 10_MQTT_DEVICE.pm unterstützt.&lt;br /&gt;
&lt;br /&gt;
[https://forum.fhem.de/index.php?topic=27532.0 Link zum Forum: MQTT Fhem Einrichtung]&lt;br /&gt;
&lt;br /&gt;
 ### 1. Broker anlegen ###&lt;br /&gt;
 define myBroker MQTT 10.0.0.5:1883&lt;br /&gt;
&lt;br /&gt;
 ### 2. Fhem Device mit MQTT verbinden ###&lt;br /&gt;
 define Sonoff_Switch MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Switch IODev myBroker&lt;br /&gt;
 attr Sonoff_Switch eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Switch icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_Switch publishSet ON OFF cmnd/sonoff/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch room MQTT&lt;br /&gt;
 attr Sonoff_Switch stateFormat Licht&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Licht stat/sonoff/POWER&lt;br /&gt;
 # oder mit tele, je nachdem was in der user_config.h eingestellt wurde!!!&lt;br /&gt;
 #attr Sonoff_Switch subscribeReading_Licht tele/sonoff/POWER &lt;br /&gt;
 attr Sonoff_Switch subscribeReading_state cmnd/sonoff/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch webCmd ON:OFF&lt;br /&gt;
Der hier dargestellte Beispielcode realisiert die Kommunikation zwischen Fhem und dem sonoff Modul via MQTT Broker. Zu beachten ist hier, dass &#039;&#039;&#039;subscribeReading_Licht&#039;&#039;&#039; und &#039;&#039;&#039;subscribeReading_state&#039;&#039;&#039; unterschiedliche Syntax des Topic Strings haben!&lt;br /&gt;
&lt;br /&gt;
==Sonoff POW einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_31.jpg|thumb|left|alt=Sonoff POW]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um das Modul Sonoff POW!}}&lt;br /&gt;
Das Modul kommt in gewohnter Itead Qualität und eine derart kostengünstige Energiemessung wird bei Smart Home Anwendern gerne eingesetzt. Die Originalsoftware habe ich nicht einmal getestet, da damit eine Anbindung an Fhem leider nicht möglich ist.&lt;br /&gt;
&lt;br /&gt;
Ebenso möchte kaum jemand an eine nicht dokumentierte chinesische Cloud die Steuerbefehle seiner Schalter senden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_33.jpg|thumb|left|alt=Sonoff POW]]&lt;br /&gt;
Bitte auf keinen Fall das Modul während der Arbeiten an die Netzspannung anschießen. Zum Flashen genügt (und nur diese) die Versorgungspannung des USB-TTL Konverters. Wie auf dem Foto gut erkennbar, wurde dieses Modul ohne einlöten einer Pfostensteckerleiste geflasht. Die Steckverbindung wird einfach in die Lötaugen gesteckt und mit einem Gummiring fixiert, da ja spätere Flashvorgänge im Webif des Models funktionieren und so die Arbeit eingespart werden kann. Es steht jedoch nichts im Wege die Pfostensteckerleiste einzulöten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Die Anschlüsse am Modul sind wie folgt belegt.&lt;br /&gt;
 o GND&lt;br /&gt;
 o TxD&lt;br /&gt;
 o RxD&lt;br /&gt;
 o VDD&lt;br /&gt;
&lt;br /&gt;
Für den Flashvorgang gelten die selben Regeln wie schon beim sonoff Switch oben erwähnt (3,3V!).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Software===&lt;br /&gt;
[[Datei:sonoff_sw_35.jpg|thumb|left|alt=Sonoff POW FHEM]]&lt;br /&gt;
Als Software steht im Augenblick nur der Sketch von Arends zur Verfügung, liefert aber alles was das Herz begehrt und ist ist einfach zu handhaben. Hier eine eine einfache Darstellung mit der aktuellen Leistung und dem Tagesverbrauch. Zusätzlich besteht auch noch die Möglichkeit den angeschlossenen Verbraucher Ein- oder Auszuschalten. Getestet wurde hier mit der Version 2.06, 2.07 und 2.019a von Arends.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_pow_02.jpg|thumb|left|alt=Sonoff POW Webif]]&lt;br /&gt;
Seit Version 2.0.19a ist auch die Leistungsanzeige im WEBIF wie im Bild links integriert. Auch der Energieverbrauch des Vortages wird mit angezeigt. Alle hier angezeigten Daten werden auch zyklisch im MQTT String an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann im Sketch auch das Feature &amp;quot;&#039;&#039;&#039;Power_Limit&#039;&#039;&#039;&amp;quot; aktiviert werden ( #define FEATURE_POWER_LIMIT in der sonoff.ino). Wenn dies gewünscht ist, dann vor dem compilieren die beiden // entfernen. Mit dem Power_Limit wird eine zusätzliche Nachricht erzeugt, wenn ein bestimmter einstellbarer Grenzwert über- oder unterschritten wird. &lt;br /&gt;
&lt;br /&gt;
Es lassen sich dadurch Meldungen wie &amp;quot;Waschmaschine fertig&amp;quot; oder ähnliches ohne weitere Schwellwert Überwachungen in FHEM ableiten. Die Meldungen kommen in MQTT mit &amp;quot;&#039;&#039;&#039;tele/sonoff/POWER_LOW ON&#039;&#039;&#039;&amp;quot; bzw. &amp;quot;&#039;&#039;&#039;tele/sonoff/POWER_LOW OFF&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Bevor der Sketch compiliert wird, müssen neben den IP-Einstellungen noch in der user_config.h auch andere Einstellungen vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
 #define MODULE                 SONOFF_POW       // Hardware module type (SONOFF, SONOFF_POW or ELECTRO_DRAGON)&lt;br /&gt;
 #define PROJECT                &amp;quot;sonoffpow&amp;quot;     // PROJECT is used as the default topic delimiter and OTA file name                                            // As an IDE restriction it needs to be the same as the main .ino file&lt;br /&gt;
&lt;br /&gt;
Der Typ des Modules muss von &amp;quot;SONOFF&amp;quot; auf &amp;quot;&#039;&#039;&#039;SONOFF_Pow&#039;&#039;&#039;&amp;quot; geändert werden,. damit die Software weiß mit welchem Modul es zu tun hat und kann dann die entsprechenden Berechnungen durchführen. Die Leistungsdaten kommen ja in Form einer Frequenz aus dem Baustein und müssen im Sketch (xsns_hlw8102.ino) umgerechnet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #elif MODULE == SONOFF_POW                  // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff Pow module&amp;quot;&lt;br /&gt;
  #define USE_POWERMONITOR                  // Enable Power Monitoring&lt;br /&gt;
  #define USE_POWERCALIBRATION              // Enable setting Calibration parameters by user commands&lt;br /&gt;
&lt;br /&gt;
Bei Einsatz des POW Modules kann die externe Kalibrierung aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Definition aus der power.ino (2.0.9) für die korrekte Umrechnung der gelieferten Frequenzen für die Leistungsdaten.&lt;br /&gt;
 #define HLW_PREF            10000    // 1000.0W&lt;br /&gt;
 #define HLW_UREF             2200    // 220.0V&lt;br /&gt;
 #define HLW_IREF             4545    // 4.545A&lt;br /&gt;
&lt;br /&gt;
 #define HLW_PREF_PULSE       4975    // 4975us = 201Hz = 1000W&lt;br /&gt;
 #define HLW_UREF_PULSE       1666    // 1666us = 600Hz = 220V&lt;br /&gt;
 #define HLW_IREF_PULSE       1666    // 1666us = 600Hz = 4.545A&lt;br /&gt;
                                            &lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_36.jpg|thumb|left|alt=Sonoff POW Attribute]]&lt;br /&gt;
Dieses Bild zeigt die Attribute die vom Modul via MQTT an FHEM geliefert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
aktuell gelieferte Readings (Mqtt Strings) vom Sketch nach unten dargestellter Definition in Fhem.&lt;br /&gt;
 tele/sonoffpow/TODAY_ENERGY    &lt;br /&gt;
 tele/sonoffpow/PERIOD_ENERGY   &lt;br /&gt;
 tele/sonoffpow/POWER_FACTOR   &lt;br /&gt;
 tele/sonoffpow/CURRENT_POWER  &lt;br /&gt;
 tele/sonoffpow/VOLTAGE         &lt;br /&gt;
 tele/sonoffpow/CURRENT        &lt;br /&gt;
&lt;br /&gt;
Hier ein Mittschnitt des Datenverkehrs zum Broker zwecks Kontrolle der korrekten Funktion der Module und der Software.&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/RSSI&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoff/RSSI 82&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/TEMPERATURE&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoff/TEMPERATURE 1.9&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/HUMIDITY&#039;, ... (4 bytes))&lt;br /&gt;
 tele/sonoff/HUMIDITY 97.9&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/POWER&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoff/POWER OFF&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/TIME&#039;, ... (19 bytes))&lt;br /&gt;
 tele/sonoff/TIME 2016-11-12T10:36:13&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/UPTIME&#039;, ... (1 bytes))&lt;br /&gt;
 tele/sonoffpow/UPTIME 1&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/RSSI&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/RSSI 34&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/TODAY_ENERGY&#039;, ... (5 bytes))&lt;br /&gt;
 tele/sonoffpow/TODAY_ENERGY 0.083&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/PERIOD_ENERGY&#039;, ... (1 bytes))&lt;br /&gt;
 tele/sonoffpow/PERIOD_ENERGY 8&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/CURRENT_POWER&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/CURRENT_POWER 97&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/POWER_FACTOR&#039;, ... (4 bytes))&lt;br /&gt;
 tele/sonoffpow/POWER_FACTOR 1.00&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/VOLTAGE&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoffpow/VOLTAGE 225&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/CURRENT&#039;, ... (5 bytes))&lt;br /&gt;
 tele/sonoffpow/CURRENT 0.426&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/POWER&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/POWER ON&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/TIME&#039;, ... (19 bytes))&lt;br /&gt;
 tele/sonoffpow/TIME 2016-11-12T10:36:28&lt;br /&gt;
 Sending PINGREQ&lt;br /&gt;
 Received PINGRESP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Einstellungen können mit folgender Syntax angefordert werden (zwei Terminalfenster öffnen, eines zum protokollieren und eines zum Seden der Befehle).&lt;br /&gt;
 mosquitto_sub -d -v -t \#  MQTT Datenverkehr protokolieren&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/status/set -m &amp;quot;8&amp;quot;      = SonoffPOW Status jetzt auslesen&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/TelePeriod/set -m &amp;quot;60&amp;quot; = Timer setzen, alle 60 Sekunden Daten senden &lt;br /&gt;
Die Kommandos können direkt am Broker (Terminalfenster Putty etc.) abgesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sonoff POW Kalibrieren ===&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier wird beschrieben, wie der &#039;&#039;Sonoff POW kalibriert&#039;&#039; werden kann. }}&lt;br /&gt;
Ab Version 2.0.11 kann nun auch der POW kalibriert werden.&lt;br /&gt;
Dazu kann man 2 Konsolenfenster öffnen, im ersten aktiviert man das Protokoll für den Datenverkehr&lt;br /&gt;
 mosquitto_sub -d -v -t \#  MQTT Datenverkehr protokollieren&lt;br /&gt;
&lt;br /&gt;
Dann kann mit folgenden Befehlen die HLW Referenz Pulsfrequenz gesetzt werden.&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWUCAL/set -m &amp;quot;2100&amp;quot;     default = 1950&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWICAL/set -m &amp;quot;2450&amp;quot;     default = 3500&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWPCAL/set -m &amp;quot;13500&amp;quot;    default = 12345 &lt;br /&gt;
Entweder man hat eine definierte Last zur Verfügung oder besser man misst mit einem Leistungsmesser nach. Die Spannung kann man mit einem Multimeter nachmessen (sollte 230 V sein) und der Strom wird errechnet (bei 100 Watt I = P / U ) = 100/230 = 0,4347.&lt;br /&gt;
Die Referenzwerte solange geringfügig ändern bis die Ausgabe passt. Für die Ausgabe wird einfach eine Statusabfrage durchgeführt.&lt;br /&gt;
&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/status/set -m &amp;quot;8&amp;quot;&lt;br /&gt;
Befehl für die Statusabfrage&lt;br /&gt;
&lt;br /&gt;
 cmnd/sonoffpow/1/status/set 8&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoffpow/1/STATUS&#039;, ... (103 bytes))&lt;br /&gt;
 stat/sonoffpow/1/STATUS PWR: Voltage 225 V, Current 0.427 A, Current Power 98 W, Total Power Today 0.080 kWh, Power Factor 1.00&lt;br /&gt;
Ergebnis der Statusabfrage mit Spannung, Strom und Leistung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW FHEM Anbindung===&lt;br /&gt;
Ein Beispiel einer einfachen Anbindung via MQTT an Fhem. MQTT ist insofern notwendig, da in der Software ESPEasy und der Bridge noch keine Implementierung der Frequenzumrechnung enthalten ist.&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Pow MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Pow IODev myBroker&lt;br /&gt;
 attr Sonoff_Pow eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Pow icon measure_power&lt;br /&gt;
 attr Sonoff_Pow publishSet ON OFF cmnd/sonoffpow/1/POWER/set&lt;br /&gt;
 attr Sonoff_Pow room MQTT&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_Power tele/sonoffpow/POWER&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_state cmnd/sonoffpow/1/POWER/set&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_TODAY_ENERGY tele/sonoffpow/TODAY_ENERGY&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_PERIOD_ENERGY tele/sonoffpow/PERIOD_ENERGY&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_CURRENT_POWER tele/sonoffpow/CURRENT_POWER&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_VOLTAGE tele/sonoffpow/VOLTAGE &lt;br /&gt;
 attr Sonoff_Pow subscribeReading_CURRENT tele/sonoffpow/CURRENT&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_AKTUELL stat/sonoffpow/1/STATUS&lt;br /&gt;
 attr Sonoff_Pow webCmd ON:OFF&lt;br /&gt;
 attr Sonoff_Pow stateFormat {sprintf(&amp;quot;akutelle Leistung: %.1f W Tagesverbrauch: %.2f Kw/h&amp;quot;, ReadingsVal($name,&amp;quot;CURRENT_POWER&amp;quot;,undef), ReadingsVal($name,&amp;quot;TODAY_ENERGY&amp;quot;,undef))}&lt;br /&gt;
Zusätzlich kann hier noch das Relais mit &amp;quot;on&amp;quot; und &amp;quot;off&amp;quot; ein- ausgeschaltet werden. Ab Version 2.0.15 wurden hier die ReadingsNamen auf TODAY_ENERGY und PERIOD_ENERGY (anstatt _POWER) geändert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Netz-Anschluß===&lt;br /&gt;
[[Datei:sonoff_sw_34.jpg|thumb|left|alt=Sonoff POW Netzanschluß]]&lt;br /&gt;
Erst wenn alle Arbeiten an der Hard- und Software abgeschlossen sind, kann man das Modul an die Netzspannung anschließen. Wer es sich einfach machen will, nimmt eine Industriell gefertigte 230 V Verlängerung  (zwischen 1,5 - 3 Meter) und schneidet sie in der Mitte durch. Nach dem abisolieren der flexiblen Drähte sollte diese &#039;&#039;&#039;verlötet oder mit Aderendhülsen&#039;&#039;&#039; versehen werden (müssen aber exakt passen, da hier kaum Platz in den Klemmen ist). &lt;br /&gt;
Mit einem kleinen Schraubendreher kann man die Feder der Klemmen niederdrücken und das verzinnte Drahtende tief ich die Öffnung stecken. Es dürfen keine Drahtlitzen aus den Öffnungen sichtbar sein, Kurzschlußgefahr! Ebenso sollte eine Zugprobe durchgeführt werden ob die Klemme auch richtig eingerastet ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ACHTUNG:&#039;&#039;&#039; diese Arbeiten müssen von einem ausgebildeten Fachpersonal (Elektriker) durchgeführt werden, Lebensgefahr!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Design===&lt;br /&gt;
&lt;br /&gt;
====ReadingsGroup normal====&lt;br /&gt;
[[Datei:sonoff_sw_46.jpg|thumb|left|alt=Sonoff POW Design]]&lt;br /&gt;
Viele Benutzer wollen schönere und funktionelle Ausgaben am Bildschirm sehen. Die Möglichkeiten nach oben sind hier sehr vielfältig. Anhand von zwei einfachen aber mächtigen Funktionen hier ein kleines Beispiel wie hier im Bild dargestellt.&lt;br /&gt;
&lt;br /&gt;
Was das Design betrifft, sind hier mehrere Möglichkeiten gegeben und nach oben ist für findige Anwender alles offen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit dem Hilfsmodul &amp;quot;&#039;&#039;&#039;average&#039;&#039;&#039;&amp;quot; eine Art Statistik (Durchschnittsberechnung, Min.,Max., etc.) hinzugefügt. Das beschränkt sich auf eine einzige Zeile. Es würde sich auch &#039;&#039;&#039;statistic&#039;&#039;&#039; dazu eignen.&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Pow_CURRENT_POWER average Sonoff_Pow:CURRENT_POWER.*&lt;br /&gt;
Die &amp;quot;average&amp;quot; Funktion wird in das Device &amp;quot;Sonof_Pow&amp;quot; auf das Reading &amp;quot;CURRENT_POWER&amp;quot; hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
Der zweite Schritt wird eine &#039;&#039;&#039;readingsGroup&#039;&#039;&#039; mit den gewünschten und gefilterten Ausgabedaten. Durch die verschiedenen IF Abfragen der unterschiedlichen VALUE wird bei über- oder unterschreiten eines Wertes eine bestimmte Farbe angewandt. Weitere Beispiele dazu siehe im Wiki unter [http://www.fhemwiki.de/wiki/ReadingsGroup readingsGroup]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define SonoffPows readingsGroup &amp;lt;%measure_power&amp;gt;,&amp;lt;aktuell&amp;gt;,&amp;lt;Tag&amp;gt;,&amp;lt;Strom&amp;gt;,&amp;lt;Durchschnitt&amp;gt;,&amp;lt;max.P&amp;gt;,&amp;lt;Schaltzyklen&amp;gt;,&amp;lt; hr &amp;gt; .*(Sonoff_Pow|Sonoff_Pow2):CURRENT_POWER,TODAY_ENERGY,CURRENT,CURRENT_POWER_avg_day,CURRENT_POWER_max_day,PERIOD_ENERGY&lt;br /&gt;
 attr SonoffPows mapping %ALIAS&lt;br /&gt;
 attr SonoffPows nameStyle style=&amp;quot;color:yellow&amp;quot;&lt;br /&gt;
 attr SonoffPows room MQTT&lt;br /&gt;
 attr SonoffPows valueFormat {&#039;CURRENT_POWER&#039; =&amp;gt;&amp;quot;%.0f W&amp;quot;, &#039;TODAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;, &#039;CURRENT&#039; =&amp;gt;&amp;quot;%.2f A&amp;quot;,&#039;CURRENT_POWER_max_day&#039; =&amp;gt; &amp;quot;%.0f W&amp;quot;,&#039;CURRENT_POWER_avg_day&#039; =&amp;gt; &amp;quot;%.2f W&amp;quot;,&#039;PERIOD_ENERGY&#039;=&amp;gt;&amp;quot;%.0f Zyklen&amp;quot;}&lt;br /&gt;
 attr SonoffPows valueStyle { if($READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0 &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 0.45){&#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039;}elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 0.45 &amp;amp;&amp;amp; $VALUE &amp;lt; 0.87 ){&#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0.87){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 10){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 10 &amp;amp;&amp;amp; $VALUE &amp;lt; 15 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 15){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; } }&lt;br /&gt;
&lt;br /&gt;
Die readingsGroup sind etwas komplex zu lesen, aber nach etwas Einarbeitung klappt das schon. Die in diesem Beispiel verwendeten Readingsnamen beziehen sich auf die Beispielkonfigurationen hier im Wiki.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
====ReadingsGroup mit Schaltmöglichkeit====&lt;br /&gt;
[[Datei:sonoff_pow_03.jpg|thumb|left|alt=readingsGroup mit Schalter]]&lt;br /&gt;
Die vorher erwähnte ReadingsGroup kann auch gleich mit einem Schalter versehen werden um den POW Ein- oder Aus schalten zu können. Dazu ist aber eine andere Einstellung im Sketch erforderlich.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der &amp;quot;&#039;&#039;&#039;user_config.h&#039;&#039;&#039;&amp;quot; muss an dieser Stelle auch die &amp;quot;&#039;&#039;&#039;PUB_PREFIX&#039;&#039;&#039;&amp;quot; auf die gleiche Topic wie &amp;quot;PUB_PREFIX2&amp;quot; eingestellt werden. Durch diese Maßnahme wird erreicht, dass sofort nach dem Knopfdruck auch der Status mit der Topic &amp;quot;tele&amp;quot; übertragen wird. Würde der weiterhin mit &amp;quot;stat&amp;quot; übertragen, kann er in der Readingsgroup nur sehr umständlich weiter behandelt werden. Dadurch wird erreicht, dass der Schalter sofort nach dem Schaltvorgang und der Rückmeldung (Status) auch seine Farbe ändert. Wird dieser Eintrag vergessen, ändert der Schalter erst nach Eintreffen der nächsten zyklischen Abfrage seinen Status/Farbe.&lt;br /&gt;
&lt;br /&gt;
 #define SUB_PREFIX             &amp;quot;cmnd&amp;quot;       // Sonoff devices subscribe to:- SUB_PREFIX/MQTT_TOPIC and SUB_PREFIX/MQTT_GRPTOPIC&lt;br /&gt;
 #define PUB_PREFIX             &amp;quot;tele&amp;quot;       // Sonoff devices publish to:- PUB_PREFIX/MQTT_TOPIC&lt;br /&gt;
 #define PUB_PREFIX2            &amp;quot;tele&amp;quot;       // Sonoff devices publish telemetry data to:- PUB_PREFIX2/MQTT_TOPIC/UPTIME, POWER/LIGHT and TIME&lt;br /&gt;
hier die PUB_PREFIX mit der geänderten Topic &amp;quot;tele&amp;quot; anstatt &amp;quot;stat&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define SonoffPows readingsGroup &amp;lt;%measure_power&amp;gt;,&amp;lt;aktuell&amp;gt;,&amp;lt;Tag&amp;gt;,&amp;lt;Gestern&amp;gt;,&amp;lt;Strom&amp;gt;,&amp;lt;Durchschnitt&amp;gt;,&amp;lt;max.P&amp;gt;,&amp;lt;Zyklus&amp;gt;,&amp;lt;Faktor&amp;gt;,&amp;lt;Status&amp;gt;,&amp;lt; hr &amp;gt; .*(Sonoff_Pow|Sonoff_Pow2|Sonoff_Pow3):CURRENT_POWER,TODAY_ENERGY,YESTERDAY_ENERGY,CURRENT,CURRENT_POWER_avg_day,CURRENT_POWER_max_day,PERIOD_ENERGY,POWER_FACTOR,LIGHT&lt;br /&gt;
 attr SonoffPows commands {&#039;LIGHT.ON&#039; =&amp;gt; &#039;set $DEVICE OFF&#039;,&#039;LIGHT.OFF&#039; =&amp;gt; &#039;set $DEVICE ON&#039;}&lt;br /&gt;
 attr SonoffPows mapping %ALIAS&lt;br /&gt;
 attr SonoffPows nameStyle style=&amp;quot;color:yellow&amp;quot;&lt;br /&gt;
 attr SonoffPows room Energie,MQTT&lt;br /&gt;
 attr SonoffPows valueFormat {&#039;CURRENT_POWER&#039; =&amp;gt;&amp;quot;%.0f W&amp;quot;, &#039;TODAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;,&#039;YESTERDAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;, &#039;CURRENT&#039; =&amp;gt;&amp;quot;%.2f A&amp;quot;,&#039;CURRENT_POWER_max_day&#039; =&amp;gt; &amp;quot;%.0f W&amp;quot;,&#039;CURRENT_POWER_avg_day&#039; =&amp;gt; &amp;quot;%.2f W&amp;quot;,&#039;CURRENT_POWER&#039;=&amp;gt;&amp;quot;%.0f W&amp;quot;,&#039;POWER_FACTOR&#039; =&amp;gt; &amp;quot;%.2f &amp;quot;}&lt;br /&gt;
 attr SonoffPows valueIcon {&#039;LIGHT.ON&#039; =&amp;gt; &#039;rc_GREEN@green&#039;, &#039;LIGHT.OFF&#039; =&amp;gt; &#039;rc_RED@red&#039;}&lt;br /&gt;
 attr SonoffPows valueStyle { if($READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0 &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 0.45){&#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039;}elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 0.45 &amp;amp;&amp;amp; $VALUE &amp;lt; 0.87 ){&#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0.87){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 10){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 10 &amp;amp;&amp;amp; $VALUE &amp;lt; 15 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 15){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; } }&lt;br /&gt;
hier die erweiterte ReadingsGroup mit dem Schalter. Bei Bedarf sind hier die Devicenamen anzupassen wenn andere Namen verwendet werden (Sonoff_Pow|Sonoff_Pow2|Sonoff_Pow3).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====POW mit FTUI anzeigen====&lt;br /&gt;
[[Datei:sonoff_pow_energy.JPG|thumb|left|alt=Tablett FTUI]]&lt;br /&gt;
Wer möchte kann die Energieanzeigen auch mit der [https://forum.fhem.de/index.php/topic,34233.0.html Tablett UI] für eine Tablet Ansicht gestalten. Mit dieser stehen viele Möglichkeiten zu einer attraktiven Darstellung zur Verfügung.&lt;br /&gt;
Hier ein Beispiel welches mit den Widget &amp;quot;[http://www.fhemwiki.de/wiki/FHEM_Tablet_UI#Widget_THERMOSTAT thermostat]&amp;quot; dargestellt ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Slampher Flashen==&lt;br /&gt;
[[Datei:sonoff_sl_53.jpg|thumb|left|alt=Sonoff SLAMPHER]]&lt;br /&gt;
Dieses Modul ist eine Besonderheit was das Flashen betrifft, denn mit Hilfe des Tasters kann der ESP8266 NICHT in den Flashmode gebracht werden. Der Taster ist intern anderwärtig verdrahtet und somit für diesen Zweck nicht zu gebrauchen.&lt;br /&gt;
&lt;br /&gt;
Wie hier links im Bild zu sehen ist, muss der rechte Pin des R20 (oben im Bild) während dem Einstecken des USB Steckers auf Masse gelegt werden. Die beste Möglichkeit ist ein Stücken Draht anzulöten und diesen dann beim einstecken auf den Masse Pin des USB-Konverters zu legen.&lt;br /&gt;
&lt;br /&gt;
Pinbelegung des Steckers von oben nach unten:&lt;br /&gt;
 o - GND&lt;br /&gt;
 o - TxD&lt;br /&gt;
 o - RxD&lt;br /&gt;
 &#039;&#039;&#039;o&#039;&#039;&#039; - Vdd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sl_51.jpg|thumb|left|alt=Sonoff SLAMPHER R20]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier ist genau ersichtlich, wo der R20 auf der Platine platziert ist. }}&lt;br /&gt;
Hier nocheinmal schön zu sehen wo der R20 (der ist nicht eingelötet sondern leer) exakt auf der Platine liegt, gemeint ist der rechte Pin. Hier kann auch leicht gelötet werden, da keine empfindlichen Bauteile in der Nähe sind und auch genug Platz vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sl_50.jpg|thumb|left|alt=Sonoff SLAMPHER R20]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier ist genau ersichtlich, wo der Draht am R20 aufgelötet wurde }}&lt;br /&gt;
Hier ist ein kleines Stück Schaltdraht auf den Pin bereist aufgelötet und bereit zum Flashen!&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wurde keine Pfostensteckerleiste auf die Platine aufgelötet, sondern nur durchgesteckt und mit einem Gummiring  zum Relais fixiert, das erspart den Lötvorgang, weil in Zukunft dann ohnehin OTA geflasht werden kann.&lt;br /&gt;
&lt;br /&gt;
Also Pin20 auf Masse legen und USB-Konverter an den PC einstecken, dann den Draht von der Masse entfernen. Der ESP8266 sollte jetzt im Flashmodus bereit stehen und kann wie bereits oben beschrieben geflasht werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff Slampher Software===&lt;br /&gt;
[[Datei:sonoff_sl_54.jpg|thumb|left|alt=Sonoff SLAMPHER FHEM]]&lt;br /&gt;
&lt;br /&gt;
Als Software wird Arends Sketch installiert (Kommunikation über MQTT), da zum derzeitigen Zeitpunkt ESPEasy das Modul noch nicht integriert hat und somit auch nicht ansteuern kann.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_SL MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_SL IODev myBroker&lt;br /&gt;
 attr Sonoff_SL devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON&lt;br /&gt;
 attr Sonoff_SL icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_SL publishSet ON OFF cmnd/sonoffsl/1/POWER/set&lt;br /&gt;
 attr Sonoff_SL room Bewegung,_Sonoff&lt;br /&gt;
 attr Sonoff_SL stateFormat Licht&lt;br /&gt;
 attr Sonoff_SL subscribeReading_Licht tele/sonoffsl/POWER&lt;br /&gt;
 attr Sonoff_SL subscribeReading_state cmnd/sonoffsl/1/POWER/set&lt;br /&gt;
 attr Sonoff_SL webCmd ON:OFF&lt;br /&gt;
&lt;br /&gt;
Hier ein Beispiel wie in FHEM der Slampher eingebunden werden kann. In diesem Beispiel wird davon ausgegangen, das das Modul &amp;quot;sonoffsl&amp;quot; unter Konfiguration am WEBIF (Configure MQTT bei Topic) so unbenannt wurde. Wer einen anderen Namen haben möchte, muss dies dann auch in FHEM entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Th10/16 FHEM==&lt;br /&gt;
[[Datei:sonoff_th_01.jpg|thumb|left|alt=Sonoff TH10]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Temperatur Modul TH10 / 16! }}&lt;br /&gt;
Das Modul kann durch drücken des Tasters während dem Einstecken des USB-Konverters in den Flashmodus gebracht werden.&lt;br /&gt;
Der Th10/16 kann mit zwei unterschiedlichen Typen von Sensoren bestückt werden, hier im Beispiel mit dem externen Temperaturfühler DS18B20.&lt;br /&gt;
&lt;br /&gt;
Wie im Bild klar zu sehen ist, kann das Webif auch zur Darstellung via Mobile verwendet werden. Mit &amp;quot;Toggle&amp;quot; wird Ein- oder Aus geschaltet und  darunter ist die aktuelle Temperatur ersichtlich. Für diese Ansicht muss keine MQTT Verbindung eingerichtet werden, da die Kommunikation hier rein über HTTP erfolgt.&lt;br /&gt;
&lt;br /&gt;
Die unten dargestellten Beispiele für FHEM beziehen sich auf Arends Sketch, also über MQTT. Dieses Modul kann aber genauso leicht über ESPEasy und der ESPEasy-Bridge eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Pinbelegung des Steckers von oben nach unten:&lt;br /&gt;
 o - GND&lt;br /&gt;
 o - TxD&lt;br /&gt;
 o - RxD&lt;br /&gt;
 &#039;&#039;&#039;o&#039;&#039;&#039; - Vdd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #define DSB_PIN              14           // GPIO 14 = DS18x20 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
 #define DSB_RESOLUTION       2            // Maximum number of decimals (0 - 3) showing Temperature&lt;br /&gt;
 // *** Option 1 - Single DS18B20 - Select either Option 1 OR Option 2&lt;br /&gt;
 #define SEND_TELEMETRY_DS18B20            // Enable sending single temperature telemetry&lt;br /&gt;
 // *** Option 2 - Multiple DS18B20 and/or DS18S20 (needs OneWire library!)&lt;br /&gt;
 //  #define SEND_TELEMETRY_DS18x20            // Enable sending multi temperature telemetry &lt;br /&gt;
In der user_config.h (Arends Sketch) muss hier die Option 1 aktiviert werden (entfernen der vorangestellten //) damit die Telemetriedaten auch gesendet werden. Es empfiehlt sich mindestens die Version &amp;gt;= V 2.0.16, weil hier die Sensoren erweitert wurden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #define DHT_PIN              14           // GPIO 14 = AM2301 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
 #define DHT_TYPE             AM2301       // DHT module type (DHT11, DHT21, DHT22, AM2301, AM2302 or AM2321)&lt;br /&gt;
 #define DHT_RESOLUTION       1            // Maximum number of decimals (0 - 3) showing Temperature&lt;br /&gt;
 #define SEND_TELEMETRY_DHT                // Enable sending temperature and humidity telemetry&lt;br /&gt;
Beispiel für den Sensor DHT22, Temperatur und Luftfeuchte. Es dürfen aber nicht beide Sensoren (DS18B20 + DHT22) gleichzeitig aktiviert werden, da ja beide an GPIO14 angehängt werden und es ansonsten zu Fehlfunktionen kommen würde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_th_02.jpg|thumb|left|alt=Sonoff TH10]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Einbindung in Fhem via MQTT! }}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ### Temperatur und Luftfeuchte vom Sonoff Switch ###&lt;br /&gt;
 define Sonoff_Temp MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Temp IODev myBroker&lt;br /&gt;
 attr Sonoff_Temp alias Pool Wasser&lt;br /&gt;
 attr Sonoff_Temp eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Temp icon temperature_humidity&lt;br /&gt;
 attr Sonoff_Temp publishSet ON OFF cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Temp room _Sonoff&lt;br /&gt;
 attr Sonoff_Temp stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad&amp;quot;, ReadingsVal($name,&amp;quot;TEMPERATURE&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_TEMPERATURE tele/sonoffth/DS18B20/TEMPERATURE&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_humidity tele/sonoffth/HUMIDITY&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_state cmnd/sonoffth/1/POWER/set&lt;br /&gt;
Beispiel für FHEM mit Temperaturanzeige mit DS18B20&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Switch MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Switch IODev myBroker&lt;br /&gt;
 attr Sonoff_Switch alias Pool Licht&lt;br /&gt;
 attr Sonoff_Switch devStateIcon on:rc_GREEN:off off:rc_RED:on&lt;br /&gt;
 attr Sonoff_Switch eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Switch icon light_ceiling&lt;br /&gt;
 attr Sonoff_Switch publishSet ON OFF cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch room _Sonoff&lt;br /&gt;
 attr Sonoff_Switch stateFormat Licht&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Licht tele/sonoffth/POWER&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_state cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch webCmd ON:OFF&lt;br /&gt;
Der Schalter nochmals seperat dargestellt, je nach Geschmack.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff CH4 4-Kanal Schaltmodul==&lt;br /&gt;
[[Datei:sonoff_ch4_1.jpg|thumb|left|alt=Sonoff CH4]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Achtung andere Einstellungen der Arduino IDE: Select Board &amp;quot;Generic ESP8285 Module&amp;quot; (=Flash Mode &amp;quot;DOUT&amp;quot;) and Flash Size &amp;quot;1M (64K SPIFFS)&amp;quot;n! }}&lt;br /&gt;
&lt;br /&gt;
Der Sonoff CH4 ist mit seinen 4 Kanälen ein sehr preiswertes Modul im Gehäuse und für Hutschinenmontage. Anstatt des üblichen ESP8266 besitzt dieses Modul schon den moderneren &#039;&#039;&#039;ESP8285&#039;&#039;&#039;. Es müssen daher in der Arduino IDE andere Einstellungen vorgenommen werden. Unter Board wird hier das &amp;quot;&#039;&#039;&#039;Generic 8285 Module&#039;&#039;&#039;&amp;quot; mit &#039;&#039;&#039;1M und 64K Spiffs&#039;&#039;&#039; angewählt. Der Flashmode &amp;quot;&#039;&#039;&#039;DOUT&#039;&#039;&#039;&amp;quot; wird dann automatisch eingestellt, bzw. ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
Das Modul ist etwas größer als die anderen Sonoff Produkte und besitzt mit 14,5 x 9 cm schon beachtliche Einbau Maße.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_2.jpg|thumb|left|alt=Sonoff CH4 FDTI]]&lt;br /&gt;
Als weitere Besonderheit sei hier erwähnt, das die Signale &#039;&#039;&#039;RxD auf RxD und TxD auf TxD&#039;&#039;&#039; des FTDI Konverters zu verbinden sind. Wie bei allen Sonoff Modulen darf man &#039;&#039;&#039;zum flashen keine Netzspannung anschließen&#039;&#039;&#039;, sondern nur über die Versorgungsspannung des FDTI Konverters mit 3,3 V versorgen (Jumper richtig setzen). Die Stiftleiste für den FTDI Anschluß ist hier schon eingelötet.&lt;br /&gt;
&lt;br /&gt;
In den Flashmodus gelangt man durch drücken der &#039;&#039;&#039;Taste FW/IO0&#039;&#039;&#039; während des einstecken des USB Anschlusses.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_3.jpg|thumb|left|alt=Sonoff CH4 Arends]]&lt;br /&gt;
Hier die Ansicht des Webinterface des Arends Sketches!&lt;br /&gt;
Bei der Software sei erwähnt, das die getestete Version 3.1.16 nur bei Kanal 1 den Modus &amp;quot;PulseTime&amp;quot; beherrscht. Wer also gepulste Ausgänge (zB: elektrische Garage/Toröffner) benötigt muss diese per Software nachbilden oder mit dem Kanal 1 auskommen. Eine &amp;quot;Pulsetime 10&amp;quot; ist ein guter Wert dafür (etwa 1 Sekunde). &lt;br /&gt;
&lt;br /&gt;
Als Alternative kann mit dieser HTML Seite des Webservers am Modul des CH4 schon mit jedem Browser fähigem Handy (Android, iPhone, Windows) aufgerufen werden und somit alle Funktionen gesteuert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_4.jpg|thumb|left|alt=Sonoff CH4 Software APP]]&lt;br /&gt;
Hier dargestellt die Original Software die Sonoff zum Modul liefert (EWeLink) und über ihre Cloud verbindet. Leider kann hier keine gepulste Ausgabe erfolgen. Mit einem Countdown kann zwar der Ausgang wieder abgeschaltet werden, die kleinste Zeiteinheit ist aber 1 Minute und somit für einen Impuls leider nicht zu gebrauchen. Ebenso kann mit dieser Software keine Einbindung in Fhem erfolgen, obwohl es eine nette anschauliche Darstellung ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Erweiterungen=&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch mit Temperatur + Luftfeuchte== &lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es um nützliche Hardware Erweiterungen an den Originalmodulen!}}&lt;br /&gt;
Wozu überhaupt den Switch erweitern wenn es auch die Modelle TH10 und TH16 gibt?&lt;br /&gt;
&lt;br /&gt;
Manche Personen können dadurch dem Basteltrieb nachkommen, aber das wesentliche ist der Preis, da die Switches doch fast um die Hälfte billiger sind. Die Sensoren kosten ebenfalls kaum nennenswerte Beträge.&lt;br /&gt;
&lt;br /&gt;
Oder es hat schon jemand Switches im Einsatz und möchte jetzt zusätzlich die Temperatur erfassen!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware erweitern mit DHT22 ===&lt;br /&gt;
[[Datei:sonoff_sw_4.PNG|thumb|left|alt=Sonoff Switch Pinleiste mit Temperatur]]&lt;br /&gt;
Am Sonoff Switch wurde ja schon eine Stiftleiste zum Flashen eingelötet. Diese Stiftleiste bietet schon alle Anschlüsse welche für die Temperatur- und Luftfeuchtemessung benötigt werden. Am 5. Anschluß der Stifftleiste ist das Signal &amp;quot;SCL&amp;quot; (GPIO14) herausgeführt, welches für den DHT22 zur Erfassung der Messdaten benötigt wird. Der Sonsor wird mit einem einem 3-poligen Kabel (zB: ein Steckkabel für ein Breadboard oder direkt anlöten) verbunden. Damit der DHT22 korrekt funktioniert, wird ein Widerstand mit 4,7 K Ohm zwischen Vdd und Data am DHT22 zusätzlich benötigt. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_45.jpg|thumb|left|alt=AM2302 / DHT22]]&lt;br /&gt;
&lt;br /&gt;
Ansicht des DHT22 (AM2302) mit den aufgesteckten Verbindungskabeln. Von links nach rechts sind das&lt;br /&gt;
&lt;br /&gt;
 1 = VCC 3,3 V&lt;br /&gt;
 2 = Data&lt;br /&gt;
 3 = nc (nicht belegt)&lt;br /&gt;
 4 = GND&lt;br /&gt;
&lt;br /&gt;
Pin1 (VCC) des DHT22 muss also auf Pin1 der Stiftleiste, Pin2 (Data) auf Pin5 und Pin4 (GND) auf Pin4. &lt;br /&gt;
Pin2 und Pin1 soll hier noch der Widerstand aufgelötet werden.&lt;br /&gt;
&lt;br /&gt;
 1 ------- 1 (VDD)&lt;br /&gt;
 2 ------- 5 (GPIO14)&lt;br /&gt;
 3&lt;br /&gt;
 4 ------- 4 (GND)&lt;br /&gt;
 DHT22  Stiftleiste&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_44.jpg|thumb|left|alt=umgebautes Modul]]&lt;br /&gt;
Diese Darstellung zeigt das umgebaute und bereits verschlossene Modul. Auf der Seite des Tasters (bitte nur hier, da auf der anderen Seite die 230 V verlaufen und neben der Lebensgefahr auch den Sensor beeinflussen) ist hier einfach mit einer Eisensäge ein Schlitz eingesägt, der dient in diesem Falle als Kabeldurchführung. Ein Schlitz ist besser als ein Loch, da der Oberteil des Gehäuses sich leichter aufsetzen läßt. Wer ein längeres Kabel benötigt, kann natürlich auch ein 3-poliges Telefonkabel (oder Mikrokabel oder sonstiges) verwenden. Der Sensor sollte etwas Abstand zum Gehäuse haben, da dieses auch eine Eigenerwärmung hat. Wer es ganz originalgetreu lösen will, kann auch eine 3-polige Mini Buchse für Klinckenstecker (3,5mm) einbauen so wie sie am TH10/16 vorhanden ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Software anpassen am Beispiel MQTT ===&lt;br /&gt;
[[Datei:sonoff_sw_40.jpg|thumb|left|alt=Sonoff MQTT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer über MQTT kommuniziert und die Software von Theo Arends benutzt, muss folgende Dinge beachten. In der Datei &#039;&#039;&#039;user_config.h&#039;&#039;&#039; müssen im Abschnitt &#039;&#039;&#039;Module = SONOFF&#039;&#039;&#039; die Slashes so wie unten dargestellt entfernt werden, damit erstens die Interrupts abgefragt werden und zweitens die Telemetriedaten gesendet werden. Ebenso ist der verwendete Sensor bei &amp;quot;&#039;&#039;&#039;define DHT_TYPE&#039;&#039;&#039;&amp;quot; eingestellt werden. In dem hier gezeigten Beispiel also &amp;quot;&#039;&#039;&#039;DHT22&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #if MODULE == SONOFF                        // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff module&amp;quot;&lt;br /&gt;
  #define LED_PIN              13           // GPIO 13 = Green/Blue Led (0 = On, 1 = Off) - Sonoff&lt;br /&gt;
  #define LED_INVERTED         1            // 0 = (1 = On, 0 = Off), 1 = (0 = On, 1 = Off)&lt;br /&gt;
  #define REL_PIN              12           // GPIO 12 = Red Led and Relay (0 = Off, 1 = On)&lt;br /&gt;
  #define KEY_PIN              0            // GPIO 00 = Button&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define DSB_PIN              4            // GPIO 14 = DS18B20 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define SEND_TELEMETRY_DS18B20            // Enable sending temperature telemetry&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define DHT_PIN              14           // GPIO 14 = AM2301 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define DHT_TYPE             DHT22        // DHT module type (DHT11, DHT21, DHT22, AM2301, AM2302 or AM2321)&lt;br /&gt;
  #define SEND_TELEMETRY_DHT                // Enable sending temperature and humidity telemetry&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Software Anpassung DHT22 in Fhem ===&lt;br /&gt;
[[Datei:sonoff_sw_41.jpg|thumb|left|alt=umgebautes Modul]]&lt;br /&gt;
&lt;br /&gt;
Links in der Hardcopy sind die Readings die nach der Anpassung von FHEM (Broker) befüllt werden sollten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ### Temperatur und Luftfeuchte vom Sonoff Switch ###&lt;br /&gt;
 define Sonoff_Temp MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Temp IODev myBroker&lt;br /&gt;
 attr Sonoff_Temp icon temperature_humidity&lt;br /&gt;
 attr Sonoff_Temp room MQTT&lt;br /&gt;
 attr Sonoff_Temp stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad Feuchte: %.1f &amp;quot;, ReadingsVal($name,&amp;quot;temperature&amp;quot;,0), ReadingsVal($name,&amp;quot;humidity&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_humidity tele/sonoff/HUMIDITY&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_temperature tele/sonoff/TEMPERATURE&lt;br /&gt;
Als Beispiel die zusätzliche Erweiterung um die Temperatur und die Luftfeuchte in FHEM. Der in der Topic verwendete Name &amp;quot;sonoff&amp;quot; muss natürlich der Einstellung in der Software am Switch entsprechen. Bei Verwendung mehrerer Switches muss natürlich auch der Name bei jedem geändert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Logfile für die Temperatur ===&lt;br /&gt;
 define SVG_FileLog_Sonoff_Temp SVG myDbLog:SVG_FileLog_Sonoff_Temp:HISTORY&lt;br /&gt;
 attr SVG_FileLog_Sonoff_Temp room MQTT&lt;br /&gt;
&lt;br /&gt;
Und schließlich fehlt noch das Logfile, damit der Temperaturverlauf auch in schönen Plots dargestellt werden kann.&lt;br /&gt;
Das hier verwendete Beispiel funktioniert nur mit einer DbLog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch als Thermostat verwenden mit MQTT== &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_55.jpg|thumb|left|alt=Thermostat]]&lt;br /&gt;
Mit diesem einfachen Beispiel wird ein Pelett Ofen mit einem externen Thermostat (sonoff Switch oder TH10/16) gesteuert. Zum besseren Überblick wird die Steuerung in einzelne Module getrennt, es könnte aber auch einiges zu einer einzigen Definition zusammen gefasst werden. Der Thermostat könnte auch als Frostwächter benutzt werden und ein anderes Heizgerät steuern.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 ###################################&lt;br /&gt;
 ### Sonoff Thermostat Regelung ####&lt;br /&gt;
 ###################################&lt;br /&gt;
 define Sonoff_dht MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_dht IODev myBroker&lt;br /&gt;
 attr Sonoff_dht alias Raumtemperatur&lt;br /&gt;
 attr Sonoff_dht group Thermostat&lt;br /&gt;
 attr Sonoff_dht icon temperature_humidity&lt;br /&gt;
 attr Sonoff_dht publishSet ON OFF cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_dht room _Sonoff&lt;br /&gt;
 attr Sonoff_dht stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad Feuchte: %.1f &amp;quot;, ReadingsVal($name,&amp;quot;TEMPERATURE&amp;quot;,0),  ReadingsVal($name,&amp;quot;HUMIDITY&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_dht subscribeReading_HUMIDITY tele/sonoff_dht/DHT/HUMIDITY&lt;br /&gt;
 attr Sonoff_dht subscribeReading_TEMPERATURE tele/sonoff_dht/DHT/TEMPERATURE&lt;br /&gt;
 attr Sonoff_dht subscribeReading_state cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
FHEM Definition zur Erfassung der Temperatur und der Luftfeuchte. Damit dieses Beispiel funktioniert, ist am Sonoff Modul die Topic &amp;quot;&#039;&#039;&#039;sonoff_dht&#039;&#039;&#039;&amp;quot; zu setzen. Dieser Temperaturwert dient dem Thermostat als ISTWert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Sw MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Sw IODev myBroker&lt;br /&gt;
 attr Sonoff_Sw alias Pellets Ofen&lt;br /&gt;
 attr Sonoff_Sw devStateIcon on:rc_GREEN:off off:rc_RED:on&lt;br /&gt;
 attr Sonoff_Sw eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Sw group Thermostat&lt;br /&gt;
 attr Sonoff_Sw icon sani_boiler_temp&lt;br /&gt;
 attr Sonoff_Sw publishSet ON OFF cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_Sw room _Sonoff&lt;br /&gt;
 attr Sonoff_Sw stateFormat Licht&lt;br /&gt;
 attr Sonoff_Sw subscribeReading_Licht tele/sonoff_dht/POWER&lt;br /&gt;
 attr Sonoff_Sw subscribeReading_state cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_Sw webCmd ON:OFF&lt;br /&gt;
FHEM Definition zum Absetzen der Befehle für das Relais (Thermostat) Ein- / Aus. Wenn das zu steuernde Geräte einen potentialfreien Thermostatanschluß benötigt (in den meisten Fällen), muss noch ein Relais dazwischen geschaltet werden um die Trennung der Netzspannung zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
 define ThermostatPellets dummy&lt;br /&gt;
 attr ThermostatPellets alias Pellets Ofen Sollwert&lt;br /&gt;
 attr ThermostatPellets group Thermostat&lt;br /&gt;
 attr ThermostatPellets icon temp_control&lt;br /&gt;
 attr ThermostatPellets room _Sonoff&lt;br /&gt;
 attr ThermostatPellets setList state:0,5,10,12,13,14,15,16,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22,23,24,25,26,27&lt;br /&gt;
 attr ThermostatPellets webCmd state&lt;br /&gt;
Die Sollwertvorgabe für das Thermostat durch einen Dummy, damit können die gewünschten Temperaturen eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
 ### sofort ausführen wenn neuer Sollwert eingestellt wird ###&lt;br /&gt;
 define Thermostat_on_notify notify ThermostatPellets IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;state&amp;quot;,0) eq &amp;quot;OFF&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;lt;= Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw ON)&lt;br /&gt;
 define Thermostat_off_notify notify ThermostatPellets IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;state&amp;quot;,0) eq &amp;quot;ON&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;gt; Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw OFF)&lt;br /&gt;
Mit einem notify wird die manuelle Änderung des Sollwertes überwacht und sofort reagiert.&lt;br /&gt;
&lt;br /&gt;
 ## zyklisch prüfen ob Sollwert erreicht wurde ###&lt;br /&gt;
 define Thermostat_on at +*00:15:00 IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;Licht&amp;quot;,0) eq &amp;quot;OFF&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;lt;= Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw ON)&lt;br /&gt;
 define Thermostat_off at +*00:15:00 IF (Value(&amp;quot;Sonoff_Sw&amp;quot;) eq &amp;quot;ON&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;gt; Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw OFF)&lt;br /&gt;
Hier noch die Soll- Ist Wertvergleiche zur Steuerung. Es wird alle 15 Minuten überprüft ob die Temperatur erreicht ist. Bei einer trägen Heizung sollten 15 Minuten ausreichend sein, wer will kann dies aber auch alle 5 oder 10 Minuten prüfen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch mit Bewegungsmelder HC-SR501== &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_1.jpg|thumb|left|alt=Bewegungsmelder]]&lt;br /&gt;
Basierend auf dem Wall Switch MQTT Sketch von Arends wurde hier ein Sonoff BASIC + PIR HC-SR501 in eine größere Verteilerdose eingebaut, der Sonoff wurde dabei etwas gekürzt. Die Bewegungsmelder sind ab etwa 70 Cent erhältlich.&lt;br /&gt;
&lt;br /&gt;
Der Sketch kann auch den Blink Modus. Damit kann man im Alarmfall z.B. Alle Strahler rings ums Haus blinken lassen.&lt;br /&gt;
&lt;br /&gt;
Mehr dazu kann hier im [https://forum.fhem.de/index.php/topic,63824.0.html Forum]im Diskussionsthread nachgelesen werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_2.jpg|thumb|left|alt=Bewegungsmelder]]&lt;br /&gt;
Ein Beispiel wir der Bewegungsmelder in der Feuchtraumdose montiert werden kann. Wird der Bewegungsmelder abgesetzt vom Switch montiert, ist darauf zu achten das die Kabel nicht zu lange werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
===Spannungsversorgung des HC-SR501===&lt;br /&gt;
[[Datei:sonoff_pir_4.jpg|thumb|left|alt=5V für Bewegungsmelder]]&lt;br /&gt;
Der HC-SR501 wird vom Sonoff versorgt, wobei hier die 3,3 V nicht immer ausreichen. Es ist deshalb am HC-SR501 eine Diode zu überbrücken, dann reichen die 3,3V vom Sonoff. Es können aber auch am Sonoff die 5V angezapft werden. Hier im Bild dargestellt wo die 5V angezapft werden können.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_5.jpg|thumb|left|alt=3,3V für Bewegungsmelder]]&lt;br /&gt;
Hier eine kleine Übersicht der wichtigsten Teile und deren Platzierung am HC-SR501. &lt;br /&gt;
Den PIR kann man auch mit 3,3V betreiben wenn man die Diode am Eingang nach Vcc überbrückt, dann reicht die Spannung für einen reibungslosen Betrieb völlig aus. Dies gilt für den HC-SR501, wird ein anderer PIR verwendet muss man nachschauen ob das auch möglich ist, ansonsten die 5V Variante wählen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Anpassung des Sketches mit Wall Switch===&lt;br /&gt;
Zur Vorbereitung des Sketches sind zunächst einige Einstellungen in der &amp;quot;user_config.h&amp;quot; durchzuführen.&lt;br /&gt;
&lt;br /&gt;
 #if MODULE == SONOFF                        // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff 8266 module&amp;quot;&lt;br /&gt;
  #define MQTT_GRPTOPIC        &amp;quot;sonoffs&amp;quot;    // [GroupTopic] MQTT Group topic&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define LED_PIN              13           // GPIO 13 = Green/Blue Led (0 = On, 1 = Off) - Sonoff&lt;br /&gt;
  #define LED_INVERTED         1            // 0 = (1 = On, 0 = Off), 1 = (0 = On, 1 = Off)&lt;br /&gt;
  #define REL_PIN              12           // GPIO 12 = Red Led and Relay (0 = Off, 1 = On)&lt;br /&gt;
  #define KEY_PIN              0            // GPIO 00 = Button&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*\&lt;br /&gt;
 * Wall switch and HC-SR501&lt;br /&gt;
 \*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define SWITCH_PIN           14           // GPIO 14 = Standard wall switch to Gnd (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define SWITCH_MODE          &#039;&#039;&#039;PUSHBUTTON_INV&#039;&#039;&#039;      // [SwitchMode] TOGGLE, FOLLOW, FOLLOW_INV, PUSHBUTTON or PUSHBUTTON_INV (the wall switch state)&lt;br /&gt;
  &#039;&#039;&#039;#define USE_WALL_SWITCH&#039;&#039;&#039;                   // Enable the use of a standard wall switch to control the relay&lt;br /&gt;
Wichtig ist dabei die vorangestellten Slahes // bei &amp;quot;#define USE_WALL_SWITCH&amp;quot; zu entfernen auf &#039;&#039;&#039;PUSHBUTTON_INV&#039;&#039;&#039; zu stellen. Dann kann der Sonoff Switch compiliert und geflasht werden.&lt;br /&gt;
&lt;br /&gt;
===Einbindung des HC-SR501 in Fhem===&lt;br /&gt;
 # ------------- Sonoff_pir mit Bewegungsmelder ---------------&lt;br /&gt;
 define Sonoff_pir MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_pir IODev myBroker&lt;br /&gt;
 attr Sonoff_pir eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_pir group Sonoff&lt;br /&gt;
 attr Sonoff_pir icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_pir publishSet ON OFF cmnd/sonoff_pir/1/POWER/set&lt;br /&gt;
 attr Sonoff_pir room MQTT&lt;br /&gt;
 attr Sonoff_pir stateFormat Licht&lt;br /&gt;
 attr Sonoff_pir subscribeReading_Licht stat/sonoff_pir/POWER&lt;br /&gt;
 attr Sonoff_pir subscribeReading_state cmnd/sonoff_pir/1/POWER/set&lt;br /&gt;
 attr Sonoff_pir webCmd :&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel wie der Sonoff Switch in Fhem eingebunden wird. Wenn im Sketch der Prefix von stat auf tele geändert wurde, ist dies auch hier durchzuführen ( subscribeReading_Licht tele/sonoff_pir/POWER ), ansonsten bleibt es so wie im Beispiel. Getestet wurde dieses Beispiel mit Version 3.1.6. Die Topic sollte auf den Namen &amp;quot;sonoff_pir&amp;quot; eingestellt werden. Bei anderen Namen ist dies entsprechend in Fhem anzupassen. &lt;br /&gt;
&lt;br /&gt;
Mit dem Command &#039;&#039;&#039;BUTTONTOPIC = Alarm_SO2&#039;&#039;&#039; ( direkt im Webinterface des Sonoff ) wird der Wall Switch GPIO14 vom Sonoff entkoppelt und somit sendet der Bewegungsmelder direkt an FHEM --&amp;gt; Motion_pir MQTT_DEVICE&lt;br /&gt;
&lt;br /&gt;
Es sollte auch unbedingt kontrolliert werden, wie die Ausgabe des Alarmes in der Console erfolgt. Erscheint hier die Meldung &amp;quot;cmnd/Alarm_SO2/POWER = TOGGLE&amp;quot; dann muss mit dem Kommando &amp;quot;&#039;&#039;&#039;switchmode 1&#039;&#039;&#039;&amp;quot; das Ausgabeformat umgeschaltet werden, erst dann kommt das gewünschte Format &amp;quot;On&amp;quot; und &amp;quot;OFF&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 # ------------------ Motion_pir MQTT_DEVICE -----------------&lt;br /&gt;
 define Motion_pir MQTT_DEVICE&lt;br /&gt;
 attr Motion_pir IODev myBroker&lt;br /&gt;
 attr Motion_pir devStateIcon on:on-for-timer off:off&lt;br /&gt;
 attr Motion_pir eventMap ON:on OFF:off&lt;br /&gt;
 attr Motion_pir group Sonoff&lt;br /&gt;
 attr Motion_pir icon people_sensor&lt;br /&gt;
 attr Motion_pir room MQTT&lt;br /&gt;
 attr Motion_pir stateFormat Alarm&lt;br /&gt;
 attr Motion_pir subscribeReading_Alarm cmnd/Alarm_SO2/POWER&lt;br /&gt;
Die Motion_pir dient nun zur eigentlichen Einschaltung des Lichtes und sendet das Kommando &#039;&#039;&#039;cmnd/Alarm_SO2/POWER&#039;&#039;&#039; an den entkopellten GPIO 14 des Switch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # ------------------ DoIf zur Motion Abfrage -----------------&lt;br /&gt;
 define di_Sonoff_pir_Alarm DOIF ([Motion_pir:&amp;quot;on&amp;quot;] and [Tag_Nacht:twilight_weather] &amp;lt; 35) (set Sonoff_pir on) DOELSEIF ([Motion_pir:&amp;quot;off&amp;quot;] and [Tag_Nacht:twilight_weather] &amp;lt; 35) (set Sonoff_pir off)&lt;br /&gt;
 attr di_Sonoff_pir_Alarm comment Abhängig von Helligkeitssensor wird nachts,bei Bewegung das Licht eingeschaltet!&lt;br /&gt;
 attr di_Sonoff_pir_Alarm group Sonoff&lt;br /&gt;
 attr di_Sonoff_pir_Alarm room MQTT&lt;br /&gt;
Zusätzlich kann nun mit einem &#039;&#039;&#039;Doif&#039;&#039;&#039; verknüpft werden um das Ganze mit Tag_Nacht:twilight_weather dann in Abhängigkeit der Helligkeit zu schalten. Selbstverständlich kann jede andere Quelle mit einem Helligkeitswert verwendet werden.&lt;br /&gt;
&lt;br /&gt;
===Alarmausgabe über Grouptopic===&lt;br /&gt;
 # ------------------------ Sonoffs Group ----------------------&lt;br /&gt;
 define Sonoffs MQTT_DEVICE&lt;br /&gt;
 attr Sonoffs IODev myBroker&lt;br /&gt;
 attr Sonoffs eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoffs group Sonoff&lt;br /&gt;
 attr Sonoffs icon hue_filled_br30&lt;br /&gt;
 attr Sonoffs publishSet ON OFF cmnd/sonoffs/1/POWER/set&lt;br /&gt;
 attr Sonoffs room MQTT&lt;br /&gt;
 attr Sonoffs stateFormat state&lt;br /&gt;
 attr Sonoffs subscribeReading_Licht stat/sonoffs/1/POWER&lt;br /&gt;
 attr Sonoffs subscribeReading_state cmnd/sonoffs/1/POWER/set&lt;br /&gt;
Wer möchte kann auch mit der Group Topic mehrere Switches mit Bewegungsmelder zusammenfassen und alle Lampen im Alarmfall gemeinsam in den Blinkmodus schalten. cmnd/sonoffs ist das Kommando für die Group Topic, sofern diese vom User nicht verändert wurde.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:IP Components]]&lt;br /&gt;
--[[Benutzer:Reinhart|Reinhart]] ([[Benutzer Diskussion:Reinhart|Diskussion]]) 20:54, 5. Jan. 2017 (CET)&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Sonoff&amp;diff=18486</id>
		<title>Sonoff</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Sonoff&amp;diff=18486"/>
		<updated>2017-01-15T12:13:06Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: /* kleine Ergänzung, hier hat mich das Tutorial abgehängt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;sonoff, dieser Artikel beschreibt die Ankopplung der kostengünstigen sonoff Module an FHEM mit ESPEasy oder MQTT.&#039;&#039;&#039;&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Achtung: Arbeiten mit Netzspannung kann lebensgefährlich sein und darf nur von autorisiertem Fachpersonal durchgeführt werden!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seit einiger Zeit werden von der [https://www.itead.cc/sonoff-wifi-wireless-switch.html Fa. Itead] kostengünstige &amp;quot;sonoff&amp;quot; Produkte angeboten die glücklicherweise den [http://dl.itead.cc/IM151116002/0A-ESP8266_Specifications_v4.1.pdf ESP8266 Chip] On Board haben und somit die ideale Grundlage für [http://www.esp8266.nu/index.php/Main_Page ESPEasy] und für [https://forum.fhem.de/index.php/board,46.0.html Fhem] darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nützliche Links zum Hersteller:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://www.itead.cc/blog/user-guide-for-sonoff-slampher User Manual von Itead]&lt;br /&gt;
&lt;br /&gt;
[https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf Sonoff Schaltplan]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
&#039;&#039;&#039;Bitte unbedingt die elektrotechnischen Sicherheitsrichtlinien beachten und einhalten!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_15.jpg|thumb|left|alt=Warnung Netzspannung]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Achtung: An dem Modul liegt Netzspannung an die lebensgefährlich ist. Es dürfen nur entsprechend ausgebildete Personen dieses Modul in Betrieb nehmen. Zum Umbau und zur Softwareaktualisierung darf keine Netzspannung angeschlossen sein&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wie gefährlich das hantieren mit Netzspannung sein kann, wird hier am Beispiel eines [http://mysku.ru/blog/china-stores/45762.html russischen Anwenders] gezeigt, der hat beim Flashen die Netzspannung am Modul gelassen und somit über die Verbindung mit dem Netzteil des Laptop lebensgefährliche Spannung auf die FTDI Schnittstelle gebracht. Das Modul ist dabei abgeraucht!&lt;br /&gt;
&lt;br /&gt;
==Modelle==&lt;br /&gt;
&lt;br /&gt;
===Produktübersichtsliste sonoff===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:right&amp;quot;&lt;br /&gt;
! Produkt Name !! Beschreibung !! Spannungsversorgung !!  Imax !! Pmax !! Frequenz !! Schaltplan !! Link&lt;br /&gt;
|-&lt;br /&gt;
| Sonoff || Wireless control switch || 90~250V AC || 10A || 2200W || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff Plan] || [https://www.itead.cc/smart-home/sonoff-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff RF || 433 RF remote || 90~250V AC || 10A || 2200W || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_RF Plan] || [https://www.itead.cc/smart-home/im151116003.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff SV || Low voltage Input || 5~24V DC || 10A || 240W DC || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_SV Plan] || [https://www.itead.cc/smart-home/sonoff-sv.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| Sonoff TH10/TH16 || Monitor and set Temp.&amp;amp;Hum. ||  90~250V AC || 10A/16A || 2200W(10A)/3500W(16A)	 || 2.4Ghz || [http://wiki.iteadstudio.com/Sonoff_TH_10/16 Plan] || [https://www.itead.cc/smart-home/sonoff-th.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Dual || Remote control 2 devices ||  90~250V AC || 16A || 3500W || 2.4Ghz || [https://www.itead.cc/wiki/Sonoff_Dual Plan] || [https://www.itead.cc/sonoff-dual.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Pow || Report power &amp;amp;power usage ||  90~250V AC || 16A || 3500W || 2.4Ghz || [https://www.itead.cc/wiki/Sonoff_Pow Plan] || [https://www.itead.cc/sonoff-pow.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff LED || WiFi Control Dimming LED ||  180~265V AC || 0.3-0.6A || 42W || 2.4Ghz ||  kein || [https://www.itead.cc/sonoff-led.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Sonoff Touch || WiFi wall touch switch ||  90~250V AC || 2A || 400W || 2.4Ghz || kein || [https://www.itead.cc/sonoff-touch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  Slampher || Wireless control light holder ||  90~250V AC || 2A || 200W || 2.4Ghz || [http://wiki.iteadstudio.com/Slampher Plan] || [https://www.itead.cc/smart-home/slampher-wifi-wireless-light-holder.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  S20 Smart Socket || Smart socket || 	90~250V AC || 10A || 2000W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/smart-socket-eu.html EU-Stecker] &lt;br /&gt;
|-&lt;br /&gt;
|  iFan || Smart fan ||  185~264V AC ||﹤1A || 60W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/smart-socket-eu.html EU-Stecker] &lt;br /&gt;
|-&lt;br /&gt;
| Motor/Pump Control Switch || clockwise/anticlockwise running ||  5V/7~32V DC || 10A || 50~320W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/motor-reversing-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| 1 Chnl Inching/self-locking Switch || Access control ||  	5V/12V DC || 10A || 50/120W || 2.4Ghz || kein || [https://www.itead.cc/smart-home/inching-self-locking-wifi-wireless-switch.html Link] &lt;br /&gt;
|-&lt;br /&gt;
|  4 Chnl Inching/self-locking/inter-locking Switch || Access control, rolling door control ||  5V/5~32V DC/90~250V AC || 10A || 50~320W/2500W || 2.4Ghz || kein || [https://www.itead.cc/ifan.html Link] &lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;nbsp; || || || || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Eine Übersichtliste der verschiedenen Produkte mit technischen Kurzangaben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Model: IM151116002: Erstes Modell===&lt;br /&gt;
[https://www.itead.cc/sonoff-wifi-wireless-switch.html Sonoff WiFi Wireless Smart Switch for MQTT COAP Smart Home]&lt;br /&gt;
[[Datei:sonoff_sw_0.jpg|thumb|left|alt=sonoff Switch]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Das sonoff Modul ist in einem zweckmäßigen und gefälligem Gehäuse verbaut!&lt;br /&gt;
&lt;br /&gt;
====Platine====&lt;br /&gt;
[[Datei:sonoff_sw_1.jpg|thumb|left|alt=sonoff Switch von vorne]]&lt;br /&gt;
&lt;br /&gt;
Die Platine ist sehr übersichtlich aufgebaut und der Hersteller hat auch alle Vorbereitungen zum Flashen einer alternativen Software vorgesehen (über serielle Schnittstelle via FTDI-Modul). Mit einer alternativen Software wie ESPEasy ist eine direkte Ankopplung des &#039;&#039;&#039;sonoff&#039;&#039;&#039; an FHEM somit ein leicht durchführbarer Vorgang.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_3.jpg|thumb|left|alt=sonoff Switch von hinten]]&lt;br /&gt;
Die stromführenden Leitungen wurden mit Lötzinn vom Hersteller verstärkt um die angegebenen Stromstärken mit geringer Hitzeentwicklung zu transportieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160712005: TH 10A/16A ===&lt;br /&gt;
[https://www.itead.cc/sonoff-th.html Sonoff TH 10A/16A WiFi Smart Switch]&lt;br /&gt;
&lt;br /&gt;
====TH10 / TH16 weitere GPIO zugänglich machen====&lt;br /&gt;
[[Datei:Sonoff_TH_10A-16A_kleiner.jpg|thumb|left|alt=TH10 / TH16 weitere GPIO zugänglich machen]]&lt;br /&gt;
Der Hersteller hat zwar schon Platine für eine weitere Stiftleiste vorbereitet, jedoch muss diese noch bestückt werden. Die nicht beschalteten Stifte können dann genutzt werden um die &amp;quot;verdeckten&amp;quot; GPIO zugänglich zu machen. Die Verdrahtung kann dem Bild entnommen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Achtung: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160811001: Sonoff Dual ===&lt;br /&gt;
[https://www.itead.cc/sonoff-dual.html Sonoff Dual WiFi Wireless Smart Swtich]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Model: IM160810001: Sonoff Pow ===&lt;br /&gt;
[https://www.itead.cc/sonoff-pow.html Sonoff POW WiFi Switch with Power Consumption Measurement]&lt;br /&gt;
[[Datei:sonoff_sw_30.jpg|thumb|left|alt=SONOFF POW]]Ein sehr interessantes und kostengünstiges Modul zur Messung der aktuellen Leistung. Das Modul kann via MQTT in Fhem angebunden werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel zur Einbindung ist [http://www.fhemwiki.de/wiki/Sonoff#Sonoff_POW_einrichten hier unten] im Wiki beschrieben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Model: weitere Modelle===&lt;br /&gt;
[https://www.itead.cc/search/result/?cat=&amp;amp;q=sonoff Sonoff Weitere Modelle finden sich auf der Homepage des Hersstellers]&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen zum Flashen==&lt;br /&gt;
[[Datei:sonoff_sw_2.jpg|thumb|left|alt=serielle Schnittstelle]]&lt;br /&gt;
&lt;br /&gt;
Hier auf der Platine sind die benötigten Signale für ein FTDI Modul schon vorhanden. Der quadratische Pin gleich über dem Taster ist die Spannungsversorgung zum Flashen vom FDTI von 3.3V Es muss daher unbedingt ein FTDI Modul genommen werden, dass nicht nur einen Jumper für 3.3V besitzt sondern auch die Spannung auf 3.3V herab setzt. Ist dies nicht der Fall, läuft man Gefahr das Modul unbrauchbar zu machen. Es ist daher zu empfehlen einen Spannungsteiler mit 2 Widerständen oder einen Pegelwandler zwischenschalten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Signale der Schnittstelle==&lt;br /&gt;
von oben nach unten auf der Steckerleiste des sonoff U4 (Model: IM151116002).&lt;br /&gt;
&lt;br /&gt;
 Pin5 = vorbereitet für GPIO&lt;br /&gt;
 Pin4 = Masse&lt;br /&gt;
 Pin3 = TxD&lt;br /&gt;
 Pin2 = RxD&lt;br /&gt;
 Pin1 = 3.3V&lt;br /&gt;
&lt;br /&gt;
Siehe dazu auch den [https://forum.fhem.de/index.php/topic,55036.0.html Link aus dem Forum]:&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Platine mit Stiftleiste bestücken==&lt;br /&gt;
[[Datei:sonoff_sw_4.jpg|thumb|left|alt=Platine mit Stiftleiste bestücken]]&lt;br /&gt;
Der Hersteller hat zwar schon die Platine vorbereitet, jedoch muss sie noch mit einer Stiftleiste bestückt werden um das FTDI Modul bequem verbinden zu können. Nachdem einmal ESPEasy geflasht worden ist, kann es in Zukunft via WEB (OTA) geflasht werden und die Stiftleiste ist dann nicht mehr erforderlich. Aufgrund der geringen Kosten fällt dies jedoch nicht ins Gewicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Für die Module TH10/TH16 sind die Lötpunkte für die Stiftleiste schon beschriftet. Die Stiftleiste selber muss allerdings auch nachgerüstet werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Achtung&#039;&#039;&#039;: Bitte vor den Arbeiten kontrollieren, das an der Platine keine Netzspannung angeschlossen ist, LEBENSGEFAHR!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
==ESPEasy flashen==&lt;br /&gt;
[[Datei:sonoff_sw_6.jpg|thumb|left|alt=sonoff mit angestecktem FDTI Adapter]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um die Software ESPEasy an den sonoff Modulen! }}&lt;br /&gt;
Die Spannungsversorgung des sonoff Moduls wird hier vom FTDI Konverter mit 3.3V über die Verbindungskabel zum Pfostenstecker durchgeführt. &lt;br /&gt;
&lt;br /&gt;
Der FTDI Adapter wird dann mit der USB Schnittstelle mit dem Computer verbunden.&lt;br /&gt;
&lt;br /&gt;
Zum compilieren wird in der Arduino Umgebung auch die ArduinoJson library 5.6.4+ benötigt. Eine genaue Anleitung kann [https://forum.fhem.de/index.php/topic,55728.msg473220.html#msg473220 hier] nachgelesen werden. Im Gegensatz zu Arends Sketch für die MQTT Umgebung genügt hier die Arduino IDE 1.6.9. Für die Sketches von Arends empfiehlt sich Arduino IDE &amp;gt;=1.6.12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===mit Arduino compilieren===&lt;br /&gt;
[[Datei:sonoff_sw_10.jpg|thumb|left|alt=Einstellung Arduino IDE]]&lt;br /&gt;
Wer selber mit der Arduino IDE compilieren will bitte folgende Einstellungen beachten. Die anschließenden Arbeiten sind dann gleich wie bei Abschnitt &#039;&#039;&#039;fertige Binary&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Unbedingt die neueste [https://github.com/bblanchon/ArduinoJson Arduino Json Library] benutzen (siehe oben)! Es gibt zwar keine Compilerfehler, aber es kommt anschließend zu Fehlfunktionen in der ESP Bridge!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 Generic ESP8266 Module&lt;br /&gt;
 Flash Mode: QIO&lt;br /&gt;
 Flash Frequency: 40 MHz&lt;br /&gt;
 CPU Frequency: 80 MHz&lt;br /&gt;
 Flash Size: 1M (64K SPIFFS)&lt;br /&gt;
 Debug Port: disabled&lt;br /&gt;
 Debug Level: none&lt;br /&gt;
 Reset Mode: ck&lt;br /&gt;
 Upload Speed: 115200&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===fertige Binary flashen===&lt;br /&gt;
[[Datei:sonoff_sw_7.jpg|thumb|left|alt=NodeMCU Firmware Flasher]]&lt;br /&gt;
Es empfiehlt sich eine fertige Binary von ESPEasy aufzuspielen. In diesem Wiki wurde R140 verwendet.&lt;br /&gt;
&lt;br /&gt;
Siehe dazu auch den [http://www.esp8266.nu/index.php/Main_Page Link von ESPEasy] und das [https://learn.adafruit.com/building-and-running-micropython-on-the-esp8266/flash-firmware Handbuch] für den Flasher.&lt;br /&gt;
&lt;br /&gt;
In manchen Versionen von ESPEasy (zB.R120) ist auch ein Flasher beigelegt, welcher zwar keine grafische Oberfläche hat aber hervorragend funktioniert. Wenn andere versagen, geht es mit diesem Flasher immer noch, einfach probieren!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 Netzspannung darf &#039;NICHT&#039; angeschlossen sein!!!&lt;br /&gt;
 Taster am Sonoff gedrückt halten&lt;br /&gt;
 FTDI Adapter verbinden&lt;br /&gt;
 Taster am Sonoff los lassen&lt;br /&gt;
 Sketch übertragen&lt;br /&gt;
 Sonoff vom FTDI trennen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Wenn einmal die Firmware auf das sonoff Modul geflasht worden ist, kann in Zukunft ESPEasy direkt unter Tools via HTTP dies durchführen. Es muss dazu kein FTDI Konverter mehr verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==ESPEasy==&lt;br /&gt;
[[Datei:sonoff_sw_11.jpg|thumb|left|alt=ESPEasy Devices]]&lt;br /&gt;
Wenn das Modul fertig geflasht ist und die Verbindung zum Modul hergestellt ist, können die Einstellungen in ESPEasy durchgeführt werden.&lt;br /&gt;
Dazu am Webinterface anmelden und zunächst die zwei Devices definieren.&lt;br /&gt;
&lt;br /&gt;
Der Hersteller hat für das &#039;&#039;&#039;Relaise GPIO 12&#039;&#039;&#039; und für die &#039;&#039;&#039;grüne Led GPIO 13&#039;&#039;&#039; vorgesehen. Der &#039;&#039;&#039;Taster ist an GPIO 0&#039;&#039;&#039; angeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Schalter===&lt;br /&gt;
[[Datei:sonoff_sw_12.jpg|thumb|left|alt=Device Relais]]&lt;br /&gt;
Bei den Devices sollten die hier dargestellte Einstellungen beachtet werden. Der Switch (PUMP) sollte auf Input gestellt werden, sodass die anschließenden und benötigten Rules aktiviert werden können.&lt;br /&gt;
&lt;br /&gt;
Da beide Devicenamen gleich benannt wurden (PUMP) wird in Fhem nur ein Device angelegt! Die dazugehörenden Valuenames sind unterschiedlich (Relay, Key).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Taster===&lt;br /&gt;
[[Datei:sonoff_sw_13.jpg|thumb|left|alt=Device Key]]&lt;br /&gt;
Der Taste muss natürlich nur konfiguriert werden, wenn auch händisch am Modul geschaltet werden soll. Wird dies nicht benötigt, können auch die Rules geändert bzw. angepasst werden. Doch alleine zu Testzwecken ist es eine nützliche Sache.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rules===&lt;br /&gt;
[[Datei:sonoff_sw_14.jpg|thumb|left|alt=Rules]]&lt;br /&gt;
Da das sonoff Modul auch einen eingebauten Taster hat und somit auch lokal bedient werden kann, sollte man zunächst unter &#039;&#039;&#039;Tools / Advanced das Häckchen Rules&#039;&#039;&#039; aktivieren, erst dann wird der Tab sichtbar und es können Rules erstellt werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 on PUMP#Key do&lt;br /&gt;
  if [PUMP#Relay]=1&lt;br /&gt;
    gpio,12,0&lt;br /&gt;
  else&lt;br /&gt;
    gpio,12,1&lt;br /&gt;
  endif&lt;br /&gt;
 endon&lt;br /&gt;
 on PUMP#Relay do&lt;br /&gt;
  if [PUMP#Relay]=1 &lt;br /&gt;
    gpio,13,0&lt;br /&gt;
  else&lt;br /&gt;
    gpio,13,1&lt;br /&gt;
  endif&lt;br /&gt;
 endon&lt;br /&gt;
Diese Rules ermöglichen, das bei lokaler Bedienung durch den Taster auch die &#039;&#039;&#039;Led&#039;&#039;&#039; richtig geschaltet wird.&lt;br /&gt;
Mit &#039;on PUMP#Key do&#039; wird geprüft ob die Taste gedrückt ist und schaltet dann entsprechend die Led. Mit den Rules können auch Timer oder sonstige Spielereien realisiert werden. Siehe dazu das [http://www.esp8266.nu/index.php/Tutorial_Rules Tutorial] von ESPeasy.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ESPEasy in Fhem einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_9.jpg|thumb|left|alt=Fhem Konfiguration]]&lt;br /&gt;
Dies ist eine einfache Darstellung wie Fhem automatisch den Device erstellt.&lt;br /&gt;
&lt;br /&gt;
Damit Fhem mit ESPEasy und dem sonoff Modul kommunizieren kann, muss in der fhem.cfg vorerst nur die espBridge mit dem hier dargestellten Eintrag aktiviert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 define espBridge ESPEasy bridge 8383&lt;br /&gt;
Dies ist eigentlich die einzige Zeile die in fhem.cfg angelegt werden muss. Die restliche Konfiguration wird von Fhem automatisch generiert. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ##########################################&lt;br /&gt;
 ###             ESPEASY               ####&lt;br /&gt;
 ##########################################&lt;br /&gt;
 &lt;br /&gt;
 define ESPEasy_sonoff_1_PUMP ESPEasy 10.0.0.37 80 espBridge sonoff_1_PUMP&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP IODev espBridge&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP devStateIcon on:rc_GREEN:off off:rc_RED:on absent:rc_BLUE:off gpio:rc_YELLOW:off&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP group ESPEasy Device&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP icon hue_filled_outlet&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP room ESPEasy&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP setState 0&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP stateFormat {ReadingsVal($name,&amp;quot;presence&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;absent&amp;quot; ? &amp;quot;absent&amp;quot; : ReadingsVal($name,&amp;quot;Relay&amp;quot;,&amp;quot;&amp;quot;)}&lt;br /&gt;
 attr ESPEasy_sonoff_1_PUMP webCmd :&lt;br /&gt;
&lt;br /&gt;
hier ein Beispiel wie es auch manuell leicht modifiziert werden kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_8.jpg|thumb|left|alt=sonoff Readings]]&lt;br /&gt;
&lt;br /&gt;
Die Readings werden durch die Bridge (Modul ESPEasy) automatisch angelegt.&lt;br /&gt;
&lt;br /&gt;
Es besteht hier noch genug Spielraum um zB. auch noch Temperatursensoren an das Modul anzuschließen und ebenfalls in Fhem darzustellen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MQTT Server einrichten==&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um den Sketch von Arends und MQTT an den sonoff Modulen! }}&lt;br /&gt;
Es bleibt jedem Anwender die freie Wahl ob die Kommunikation über die ESPEasy-Bridge oder MQTT erfolgen soll. MQTT ist bei der Einrichtung etwas komplexer, da hier auch auf dem Server der Broker installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Im wesentlichen beschränkt sich die Installation eines MQTT Servers aber auf wenige Arbeitsschritte und ist wie folgt beschrieben durchzuführen. Wer schon einen &#039;&#039;&#039;mosquitto&#039;&#039;&#039; auf dem Server installiert hat, kann diesen Schritt überspringen.&lt;br /&gt;
&lt;br /&gt;
Dieses Kapitel ist insofern interessant, da mit dem Sketch von Theo Arends auch die Einbindung der neuen sonoff Pow Module bereits möglich ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # aus dem mosquitto Repo installieren:&lt;br /&gt;
 wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key&lt;br /&gt;
 sudo apt-key add mosquitto-repo.gpg.key&lt;br /&gt;
 cd /etc/apt/sources.list.d/&lt;br /&gt;
 sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list&lt;br /&gt;
 # oder für jessie&lt;br /&gt;
 sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 # mosquitto installieren&lt;br /&gt;
 sudo apt-get install mosquitto&lt;br /&gt;
 &lt;br /&gt;
 # MQTT Server Test&lt;br /&gt;
 sudo service mosquitto status&lt;br /&gt;
&lt;br /&gt;
 # Start / Stop des Servers&lt;br /&gt;
 sudo service mosquitto stop&lt;br /&gt;
 sudo service mosquitto start&lt;br /&gt;
 &lt;br /&gt;
 # Perl Version ausgeben&lt;br /&gt;
 perl -v&lt;br /&gt;
 # Perl MQTT Module nachinstallieren (läuft ein paar Minuten)&lt;br /&gt;
 sudo cpan install Net::MQTT:Simple&lt;br /&gt;
 sudo cpan install Net::MQTT:Constants&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Software Arends Sketch===&lt;br /&gt;
[[Datei:sonoff_sw_22.jpg|thumb|left|alt=Arends Menü]]&lt;br /&gt;
&lt;br /&gt;
Ebenso bietet sich die Möglichkeit eine andere alternative Software auf den unterschiedlichen Sonoff Modellen aufzuspielen.&lt;br /&gt;
Speziell für diese Module zugeschnittene Software stammt vom Autor Theo Arends. Alle hier gezeigten Bildschirmfotos und Beispiele beziehen sich auf Basis der Version 2.0.11 (Stand 11.11.2016).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; erst &#039;&#039;&#039;ab Version 2.0.9&#039;&#039;&#039; sind die Berechnungsfehler und die Referenzfrequenzen für die Umrechnung der Leistungsdaten gefixt worden! Es wird daher angeraten immer die aktuellste Version zu verwenden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Links zu Theo Arend Github&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino Download MQTT Sketch]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino Arend GitHub]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki Wiki]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; sollten Probleme mit dem ersten Login im Webinterface auftreten, hat der Autor vorgesorgt und mit speziellem wiederholten Tastendruck können verschiedene Modi aufgerufen werden: zB: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3 x Taste kurz drücken&#039;&#039;&#039; und eine Smartconfig wird gestartet und die &#039;&#039;&#039;SSID&#039;&#039;&#039; und das &#039;&#039;&#039;Passwort&#039;&#039;&#039; kann über diese [https://play.google.com/store/apps/details?id=com.cmmakerclub.iot.esptouch Android App] eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 x Taste kurz drücken&#039;&#039;&#039; und man bringt den Device in den &#039;&#039;&#039;Access Point Mode&#039;&#039;&#039; mit der IP-Adresse &#039;&#039;&#039;192.168.4.1&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bis zu 7 verschiedene Modi sind möglich, mehr dazu in Arends Wiki.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Button-usage Link zum Wiki Arends, Button]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_bv_01.jpg|thumb|left|alt=Arduino Boardverwalter]]&lt;br /&gt;
In der Arduino IDE unter Datei / Voreinstellungen im Feld &amp;quot;Zusätzliche Boardverwalter-URLs:&amp;quot; den Link: http://arduino.esp8266.com/stable/package_esp8266com_index.json einfügen. &lt;br /&gt;
&lt;br /&gt;
Dann unter &#039;&#039;&#039;Werkzeuge / Board / Boardverwalter&#039;&#039;&#039; ganz am Ende der Liste die Librarys für &amp;quot;esp8266 by ESP8266 Community&amp;quot; die letzte Version 2.3.0 installieren. [https://forum.fhem.de/index.php/topic,46205.msg534707.html#msg534707 Link zum Board].&lt;br /&gt;
&lt;br /&gt;
Das gesamte sonoff Verzeichnis aus [https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/archive/master.zip Arendts Sketch] entpacken (ist wie hier verlinkt ein Zipfile) und dann aus diesem Verzeichnis die sonoff.ino öffnen. Es können dann alle zu dem Sketch zugehörigen Dateien angesehen/editiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Anschließend muss noch die Datei &#039;&#039;&#039;user_config.h&#039;&#039;&#039; (im Unterverzeichnis &amp;quot;sonoff&amp;quot;) editiert werden. Die Abschnitte          &lt;br /&gt;
&lt;br /&gt;
 // Wifi&lt;br /&gt;
 // Syslog&lt;br /&gt;
 // Ota&lt;br /&gt;
 // MQTT&lt;br /&gt;
&lt;br /&gt;
müssen mit der eigenen &amp;quot;&#039;&#039;&#039;Ip-Adresse-Server&#039;&#039;&#039;&amp;quot;, &amp;quot;&#039;&#039;&#039;SSID&#039;&#039;&#039;&amp;quot; und &amp;quot;&#039;&#039;&#039;password&#039;&#039;&#039;&amp;quot; angepasst werden, das erleichtert den ersten Connect mit dem Modul. Seit der Version 2.1.2 können die WIFI Einstellungen 2-fach angegeben werden, somit wechselt das Device automatisch auf den 2. Wifi Hotspot wenn der erste nicht erreicht wird.&lt;br /&gt;
&lt;br /&gt;
 #define STA_SSID               &amp;quot;SSID&amp;quot;      // Wifi SSID&lt;br /&gt;
 #define STA_PASS               &amp;quot;password&amp;quot;  // Wifi password&lt;br /&gt;
 #define WIFI_HOSTNAME          &amp;quot;%s-%04d&amp;quot;         // Expands to &amp;lt;MQTT_TOPIC&amp;gt;-&amp;lt;last 4 decimal chars of MAC address&amp;gt;&lt;br /&gt;
 #define WIFI_CONFIG_TOOL       WIFI_WPSCONFIG    // Default tool if wifi fails to connect (WIFI_SMARTCONFIG, WIFI_MANAGER or WIFI_WPSCONFIG)&lt;br /&gt;
&lt;br /&gt;
 // Syslog&lt;br /&gt;
 #define SYS_LOG_HOST           &amp;quot;Ip-Adresse-Server&amp;quot;&lt;br /&gt;
 #define SYS_LOG_PORT           514&lt;br /&gt;
 #define SYS_LOG_LEVEL          LOG_LEVEL_NONE&lt;br /&gt;
 #define SERIAL_LOG_LEVEL       LOG_LEVEL_INFO&lt;br /&gt;
 #define WEB_LOG_LEVEL          LOG_LEVEL_INFO&lt;br /&gt;
&lt;br /&gt;
 // Ota&lt;br /&gt;
 #if (ARDUINO &amp;gt;= 168)&lt;br /&gt;
  #define OTA_URL              &amp;quot;http://Ip-Adresse-Server:80/api/arduino/&amp;quot; PROJECT &amp;quot;.ino.bin&amp;quot;&lt;br /&gt;
 #else&lt;br /&gt;
  #define OTA_URL              &amp;quot;http://Ip-Adresse-Server:80/api/arduino/&amp;quot; PROJECT &amp;quot;.cpp.bin&amp;quot;&lt;br /&gt;
 #endif&lt;br /&gt;
&lt;br /&gt;
 // MQTT&lt;br /&gt;
 #define MQTT_HOST              &amp;quot;Ip-Adresse-Server&amp;quot;&lt;br /&gt;
 #define MQTT_PORT              1883&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Bei Verwendung des &#039;&#039;&#039;sonoff_POW&#039;&#039;&#039; muss dies ebenfalls in der user_config.h eingestellt werden, also das &amp;quot;SONOFF&amp;quot; sperren und das &amp;quot;&#039;&#039;&#039;SONOFF_POW&#039;&#039;&#039;&amp;quot; aktivieren (// setzen/entfernen). Wir dies nicht durchgeführt, werden auch keine Leistungsdaten via MQTT übertragen!!!&lt;br /&gt;
Ebenso muss in (%userprofile%\Documents\Arduino\libraries\pubsubclient\src\PubSubClient.h) die Max Packet Size auf 400 erhöht werden!&lt;br /&gt;
&lt;br /&gt;
  #define MQTT_MAX_PACKET_SIZE 400&lt;br /&gt;
  #define MQTT_KEEPALIVE 120&lt;br /&gt;
Anpassung der max. Packet Size auf 400 und das Keepalive auf 120&lt;br /&gt;
&lt;br /&gt;
 // Enable only one out of three MODULE defines below&lt;br /&gt;
 //#define MODULE                 SONOFF            // Sonoff, Sonoff SV, Sonoff Dual, Sonoff TH 10A/16A, S20 Smart Socket, 4 Channel&lt;br /&gt;
 #define MODULE                 SONOFF_POW        // Sonoff Pow&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Anschluß wird der Sketch mit der Arduino IDE (getestet mit 1.6.12) compiliert und die Binary dann exportiert (Sketch / Kompilierte Binärdatei exportieren). Die erzeugte .bin Datei dann mit dem Tool &amp;quot;ESP8266Flasher.exe&amp;quot; flashen, so wie auch bei ESPEasy. Wer nicht compilieren will, kann auch im Unterverzeichnis ./api/arduino/ die fertige Binary ( sonoff.ino ) benutzen, aber dann ohne Voreinstellung der lokalen IPs.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MQTT testen===&lt;br /&gt;
[[Datei:sonoff_sw_20.jpg|thumb|left|alt=Arends Menü]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach erfolgtem Flash des Modules kann das Webinterface zum ersten Mal aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Es bieten sich hier mehrere Möglichkeiten die die weitere Einrichtung des Moduls unterstützen. Einfach die Menüpunkte durchprobieren, sie erklären sich von selbst. Für erste Tests empfiehlt sich die lokale Konsole um die Ereignisse aus Sicht des Modules mit verfolgen zu können. Alles was hier gesendet wird, sollte ebenfalls am Server mitgeloggt werden können. Wenn bis hierher alles funktioniert, kann dann mir der Konfiguration in Fhem beginnen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Am Server jetzt eine Konsole öffnen und folgende Topic (alle) einstellen.&lt;br /&gt;
&lt;br /&gt;
 mosquitto_sub -d -v -t \# &lt;br /&gt;
Mit dieser Einstellung werden alle Topics geloggt! &lt;br /&gt;
&lt;br /&gt;
 pi@raspberry ~ $ mosquitto_sub -d -v -t \#&lt;br /&gt;
 Received CONNACK&lt;br /&gt;
 Received SUBACK&lt;br /&gt;
 Subscribed (mid: 1): 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/36/temperature&#039;, ... (5 bytes))&lt;br /&gt;
 /sonoff/36/temperature 14.06&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Count&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/35/Count 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Total&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/35/Total 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/35/Time&#039;, ... (1 bytes))&lt;br /&gt;
 /sonoff/35/Time 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/temperature&#039;, ... (5 bytes))&lt;br /&gt;
 /sonoff/temperature 14.00&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Count&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/Count 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Total&#039;, ... (3 bytes))&lt;br /&gt;
 /sonoff/Total 0.0&lt;br /&gt;
 Received PUBLISH (d0, q0, r1, m0, &#039;/sonoff/Time&#039;, ... (1 bytes))&lt;br /&gt;
 /sonoff/Time 0&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoff/1/POWER&#039;, ... (2 bytes))&lt;br /&gt;
 stat/sonoff/1/POWER ON&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoff/1/POWER&#039;, ... (3 bytes))&lt;br /&gt;
 stat/sonoff/1/POWER OFF&lt;br /&gt;
&lt;br /&gt;
Interessant sind für uns nun diese Einträge &amp;quot;stat/sonoff/1/POWER ON&amp;quot; , dazu am Taster des sonoff manuell umschalten. Dies entspricht genau der Syntax wie sie im Anschluss in Fhem dann zu verwenden ist.&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen können dann entweder nach Telemetriedaten oder nach Statusmeldungen gefiltert werden. Dies ist jedoch nur notwendig wenn bereits andere MQTT Devices am Broker hängen und es sonst zu unübersichtlich wird.&lt;br /&gt;
 mosquitto_sub -h localhost -t tele/sonoff/#    = Telemetriedaten&lt;br /&gt;
 mosquitto_sub -h localhost -t stat/sonoff/#    = Statusmeldungen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_21.jpg|thumb|left|alt=Arends Log]]&lt;br /&gt;
Sehr nützlich das lokale Log zur Fehlersuche und Inbetriebnahme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Als Besonderheit benutzt der Autor zum Senden und Empfangen unterschiedliche Syntax und unterscheidet dies durch vorangestellte Prefixe vor der eigentlichen Topic.&lt;br /&gt;
#define SUB_PREFIX       &amp;quot;cmnd&amp;quot;       Sonoff devices subscribe to:- cmnd/MQTT_TOPIC and cmnd/MQTT_GRPTOPIC&lt;br /&gt;
#define PUB_PREFIX       &amp;quot;stat&amp;quot;       Sonoff devices publish to:- stat/MQTT_TOPIC&lt;br /&gt;
#define PUB_PREFIX2      &amp;quot;tele&amp;quot;       Sonoff devices publish telemetry data to:- tele/MQTT_TOPIC/UPTIME, POWER/LIGHT and TIME&lt;br /&gt;
Bitte dies unbedingt in der Fhem Konfiguration dann beachten!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MQTT in Fhem einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_24.jpg|thumb|left|alt=Fhem sonoff Schalter]]&lt;br /&gt;
Dieser einfache Schalter kommuniziert bidirektional mit dem sonoff Device.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_25.jpg|thumb|left|alt=Fhem sonoff Schalter]]&lt;br /&gt;
Die Readings in diesem verwendeten Beispiel zeigen sich wie in Fhem gewohnt.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einrichtung in Fhem wird von den Modulen 00_MQTT.pm, 10_MQTT_BRIDGE und 10_MQTT_DEVICE.pm unterstützt.&lt;br /&gt;
&lt;br /&gt;
[https://forum.fhem.de/index.php?topic=27532.0 Link zum Forum: MQTT Fhem Einrichtung]&lt;br /&gt;
&lt;br /&gt;
 ### 1. Broker anlegen ###&lt;br /&gt;
 define myBroker MQTT 10.0.0.5:1883&lt;br /&gt;
&lt;br /&gt;
 ### 2. Fhem Device mit MQTT verbinden ###&lt;br /&gt;
 define Sonoff_Switch MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Switch IODev myBroker&lt;br /&gt;
 attr Sonoff_Switch eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Switch icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_Switch publishSet ON OFF cmnd/sonoff/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch room MQTT&lt;br /&gt;
 attr Sonoff_Switch stateFormat Licht&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Licht stat/sonoff/POWER&lt;br /&gt;
 # oder mit tele, je nachdem was in der user_config.h eingestellt wurde!!!&lt;br /&gt;
 #attr Sonoff_Switch subscribeReading_Licht tele/sonoff/POWER &lt;br /&gt;
 attr Sonoff_Switch subscribeReading_state cmnd/sonoff/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch webCmd ON:OFF&lt;br /&gt;
Der hier dargestellte Beispielcode realisiert die Kommunikation zwischen Fhem und dem sonoff Modul via MQTT Broker. Zu beachten ist hier, dass &#039;&#039;&#039;subscribeReading_Licht&#039;&#039;&#039; und &#039;&#039;&#039;subscribeReading_state&#039;&#039;&#039; unterschiedliche Syntax des Topic Strings haben!&lt;br /&gt;
&lt;br /&gt;
==Sonoff POW einrichten==&lt;br /&gt;
[[Datei:sonoff_sw_31.jpg|thumb|left|alt=Sonoff POW]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es ausschließlich um das Modul Sonoff POW!}}&lt;br /&gt;
Das Modul kommt in gewohnter Itead Qualität und eine derart kostengünstige Energiemessung wird bei Smart Home Anwendern gerne eingesetzt. Die Originalsoftware habe ich nicht einmal getestet, da damit eine Anbindung an Fhem leider nicht möglich ist.&lt;br /&gt;
&lt;br /&gt;
Ebenso möchte kaum jemand an eine nicht dokumentierte chinesische Cloud die Steuerbefehle seiner Schalter senden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_33.jpg|thumb|left|alt=Sonoff POW]]&lt;br /&gt;
Bitte auf keinen Fall das Modul während der Arbeiten an die Netzspannung anschießen. Zum Flashen genügt (und nur diese) die Versorgungspannung des USB-TTL Konverters. Wie auf dem Foto gut erkennbar, wurde dieses Modul ohne einlöten einer Pfostensteckerleiste geflasht. Die Steckverbindung wird einfach in die Lötaugen gesteckt und mit einem Gummiring fixiert, da ja spätere Flashvorgänge im Webif des Models funktionieren und so die Arbeit eingespart werden kann. Es steht jedoch nichts im Wege die Pfostensteckerleiste einzulöten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Die Anschlüsse am Modul sind wie folgt belegt.&lt;br /&gt;
 o GND&lt;br /&gt;
 o TxD&lt;br /&gt;
 o RxD&lt;br /&gt;
 o VDD&lt;br /&gt;
&lt;br /&gt;
Für den Flashvorgang gelten die selben Regeln wie schon beim sonoff Switch oben erwähnt (3,3V!).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Software===&lt;br /&gt;
[[Datei:sonoff_sw_35.jpg|thumb|left|alt=Sonoff POW FHEM]]&lt;br /&gt;
Als Software steht im Augenblick nur der Sketch von Arends zur Verfügung, liefert aber alles was das Herz begehrt und ist ist einfach zu handhaben. Hier eine eine einfache Darstellung mit der aktuellen Leistung und dem Tagesverbrauch. Zusätzlich besteht auch noch die Möglichkeit den angeschlossenen Verbraucher Ein- oder Auszuschalten. Getestet wurde hier mit der Version 2.06, 2.07 und 2.019a von Arends.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_pow_02.jpg|thumb|left|alt=Sonoff POW Webif]]&lt;br /&gt;
Seit Version 2.0.19a ist auch die Leistungsanzeige im WEBIF wie im Bild links integriert. Auch der Energieverbrauch des Vortages wird mit angezeigt. Alle hier angezeigten Daten werden auch zyklisch im MQTT String an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann im Sketch auch das Feature &amp;quot;&#039;&#039;&#039;Power_Limit&#039;&#039;&#039;&amp;quot; aktiviert werden ( #define FEATURE_POWER_LIMIT in der sonoff.ino). Wenn dies gewünscht ist, dann vor dem compilieren die beiden // entfernen. Mit dem Power_Limit wird eine zusätzliche Nachricht erzeugt, wenn ein bestimmter einstellbarer Grenzwert über- oder unterschritten wird. &lt;br /&gt;
&lt;br /&gt;
Es lassen sich dadurch Meldungen wie &amp;quot;Waschmaschine fertig&amp;quot; oder ähnliches ohne weitere Schwellwert Überwachungen in FHEM ableiten. Die Meldungen kommen in MQTT mit &amp;quot;&#039;&#039;&#039;tele/sonoff/POWER_LOW ON&#039;&#039;&#039;&amp;quot; bzw. &amp;quot;&#039;&#039;&#039;tele/sonoff/POWER_LOW OFF&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Bevor der Sketch compiliert wird, müssen neben den IP-Einstellungen noch in der user_config.h auch andere Einstellungen vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
 #define MODULE                 SONOFF_POW       // Hardware module type (SONOFF, SONOFF_POW or ELECTRO_DRAGON)&lt;br /&gt;
 #define PROJECT                &amp;quot;sonoffpow&amp;quot;     // PROJECT is used as the default topic delimiter and OTA file name                                            // As an IDE restriction it needs to be the same as the main .ino file&lt;br /&gt;
&lt;br /&gt;
Der Typ des Modules muss von &amp;quot;SONOFF&amp;quot; auf &amp;quot;&#039;&#039;&#039;SONOFF_Pow&#039;&#039;&#039;&amp;quot; geändert werden,. damit die Software weiß mit welchem Modul es zu tun hat und kann dann die entsprechenden Berechnungen durchführen. Die Leistungsdaten kommen ja in Form einer Frequenz aus dem Baustein und müssen im Sketch (xsns_hlw8102.ino) umgerechnet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #elif MODULE == SONOFF_POW                  // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff Pow module&amp;quot;&lt;br /&gt;
  #define USE_POWERMONITOR                  // Enable Power Monitoring&lt;br /&gt;
  #define USE_POWERCALIBRATION              // Enable setting Calibration parameters by user commands&lt;br /&gt;
&lt;br /&gt;
Bei Einsatz des POW Modules kann die externe Kalibrierung aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Definition aus der power.ino (2.0.9) für die korrekte Umrechnung der gelieferten Frequenzen für die Leistungsdaten.&lt;br /&gt;
 #define HLW_PREF            10000    // 1000.0W&lt;br /&gt;
 #define HLW_UREF             2200    // 220.0V&lt;br /&gt;
 #define HLW_IREF             4545    // 4.545A&lt;br /&gt;
&lt;br /&gt;
 #define HLW_PREF_PULSE       4975    // 4975us = 201Hz = 1000W&lt;br /&gt;
 #define HLW_UREF_PULSE       1666    // 1666us = 600Hz = 220V&lt;br /&gt;
 #define HLW_IREF_PULSE       1666    // 1666us = 600Hz = 4.545A&lt;br /&gt;
                                            &lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sw_36.jpg|thumb|left|alt=Sonoff POW Attribute]]&lt;br /&gt;
Dieses Bild zeigt die Attribute die vom Modul via MQTT an FHEM geliefert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
aktuell gelieferte Readings (Mqtt Strings) vom Sketch nach unten dargestellter Definition in Fhem.&lt;br /&gt;
 tele/sonoffpow/TODAY_ENERGY    &lt;br /&gt;
 tele/sonoffpow/PERIOD_ENERGY   &lt;br /&gt;
 tele/sonoffpow/POWER_FACTOR   &lt;br /&gt;
 tele/sonoffpow/CURRENT_POWER  &lt;br /&gt;
 tele/sonoffpow/VOLTAGE         &lt;br /&gt;
 tele/sonoffpow/CURRENT        &lt;br /&gt;
&lt;br /&gt;
Hier ein Mittschnitt des Datenverkehrs zum Broker zwecks Kontrolle der korrekten Funktion der Module und der Software.&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/RSSI&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoff/RSSI 82&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/TEMPERATURE&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoff/TEMPERATURE 1.9&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/HUMIDITY&#039;, ... (4 bytes))&lt;br /&gt;
 tele/sonoff/HUMIDITY 97.9&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/POWER&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoff/POWER OFF&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoff/TIME&#039;, ... (19 bytes))&lt;br /&gt;
 tele/sonoff/TIME 2016-11-12T10:36:13&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/UPTIME&#039;, ... (1 bytes))&lt;br /&gt;
 tele/sonoffpow/UPTIME 1&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/RSSI&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/RSSI 34&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/TODAY_ENERGY&#039;, ... (5 bytes))&lt;br /&gt;
 tele/sonoffpow/TODAY_ENERGY 0.083&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/PERIOD_ENERGY&#039;, ... (1 bytes))&lt;br /&gt;
 tele/sonoffpow/PERIOD_ENERGY 8&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/CURRENT_POWER&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/CURRENT_POWER 97&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/POWER_FACTOR&#039;, ... (4 bytes))&lt;br /&gt;
 tele/sonoffpow/POWER_FACTOR 1.00&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/VOLTAGE&#039;, ... (3 bytes))&lt;br /&gt;
 tele/sonoffpow/VOLTAGE 225&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/CURRENT&#039;, ... (5 bytes))&lt;br /&gt;
 tele/sonoffpow/CURRENT 0.426&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/POWER&#039;, ... (2 bytes))&lt;br /&gt;
 tele/sonoffpow/POWER ON&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;tele/sonoffpow/TIME&#039;, ... (19 bytes))&lt;br /&gt;
 tele/sonoffpow/TIME 2016-11-12T10:36:28&lt;br /&gt;
 Sending PINGREQ&lt;br /&gt;
 Received PINGRESP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Einstellungen können mit folgender Syntax angefordert werden (zwei Terminalfenster öffnen, eines zum protokollieren und eines zum Seden der Befehle).&lt;br /&gt;
 mosquitto_sub -d -v -t \#  MQTT Datenverkehr protokolieren&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/status/set -m &amp;quot;8&amp;quot;      = SonoffPOW Status jetzt auslesen&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/TelePeriod/set -m &amp;quot;60&amp;quot; = Timer setzen, alle 60 Sekunden Daten senden &lt;br /&gt;
Die Kommandos können direkt am Broker (Terminalfenster Putty etc.) abgesetzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sonoff POW Kalibrieren ===&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier wird beschrieben, wie der &#039;&#039;Sonoff POW kalibriert&#039;&#039; werden kann. }}&lt;br /&gt;
Ab Version 2.0.11 kann nun auch der POW kalibriert werden.&lt;br /&gt;
Dazu kann man 2 Konsolenfenster öffnen, im ersten aktiviert man das Protokoll für den Datenverkehr&lt;br /&gt;
 mosquitto_sub -d -v -t \#  MQTT Datenverkehr protokollieren&lt;br /&gt;
&lt;br /&gt;
Dann kann mit folgenden Befehlen die HLW Referenz Pulsfrequenz gesetzt werden.&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWUCAL/set -m &amp;quot;2100&amp;quot;     default = 1950&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWICAL/set -m &amp;quot;2450&amp;quot;     default = 3500&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/HLWPCAL/set -m &amp;quot;13500&amp;quot;    default = 12345 &lt;br /&gt;
Entweder man hat eine definierte Last zur Verfügung oder besser man misst mit einem Leistungsmesser nach. Die Spannung kann man mit einem Multimeter nachmessen (sollte 230 V sein) und der Strom wird errechnet (bei 100 Watt I = P / U ) = 100/230 = 0,4347.&lt;br /&gt;
Die Referenzwerte solange geringfügig ändern bis die Ausgabe passt. Für die Ausgabe wird einfach eine Statusabfrage durchgeführt.&lt;br /&gt;
&lt;br /&gt;
 mosquitto_pub -q 2 -t cmnd/sonoffpow/1/status/set -m &amp;quot;8&amp;quot;&lt;br /&gt;
Befehl für die Statusabfrage&lt;br /&gt;
&lt;br /&gt;
 cmnd/sonoffpow/1/status/set 8&lt;br /&gt;
 Received PUBLISH (d0, q0, r0, m0, &#039;stat/sonoffpow/1/STATUS&#039;, ... (103 bytes))&lt;br /&gt;
 stat/sonoffpow/1/STATUS PWR: Voltage 225 V, Current 0.427 A, Current Power 98 W, Total Power Today 0.080 kWh, Power Factor 1.00&lt;br /&gt;
Ergebnis der Statusabfrage mit Spannung, Strom und Leistung.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW FHEM Anbindung===&lt;br /&gt;
Ein Beispiel einer einfachen Anbindung via MQTT an Fhem. MQTT ist insofern notwendig, da in der Software ESPEasy und der Bridge noch keine Implementierung der Frequenzumrechnung enthalten ist.&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Pow MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Pow IODev myBroker&lt;br /&gt;
 attr Sonoff_Pow eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Pow icon measure_power&lt;br /&gt;
 attr Sonoff_Pow publishSet ON OFF cmnd/sonoffpow/1/POWER/set&lt;br /&gt;
 attr Sonoff_Pow room MQTT&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_Power tele/sonoffpow/POWER&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_state cmnd/sonoffpow/1/POWER/set&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_TODAY_ENERGY tele/sonoffpow/TODAY_ENERGY&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_PERIOD_ENERGY tele/sonoffpow/PERIOD_ENERGY&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_CURRENT_POWER tele/sonoffpow/CURRENT_POWER&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_VOLTAGE tele/sonoffpow/VOLTAGE &lt;br /&gt;
 attr Sonoff_Pow subscribeReading_CURRENT tele/sonoffpow/CURRENT&lt;br /&gt;
 attr Sonoff_Pow subscribeReading_AKTUELL stat/sonoffpow/1/STATUS&lt;br /&gt;
 attr Sonoff_Pow webCmd ON:OFF&lt;br /&gt;
 attr Sonoff_Pow stateFormat {sprintf(&amp;quot;akutelle Leistung: %.1f W Tagesverbrauch: %.2f Kw/h&amp;quot;, ReadingsVal($name,&amp;quot;CURRENT_POWER&amp;quot;,undef), ReadingsVal($name,&amp;quot;TODAY_ENERGY&amp;quot;,undef))}&lt;br /&gt;
Zusätzlich kann hier noch das Relais mit &amp;quot;on&amp;quot; und &amp;quot;off&amp;quot; ein- ausgeschaltet werden. Ab Version 2.0.15 wurden hier die ReadingsNamen auf TODAY_ENERGY und PERIOD_ENERGY (anstatt _POWER) geändert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Netz-Anschluß===&lt;br /&gt;
[[Datei:sonoff_sw_34.jpg|thumb|left|alt=Sonoff POW Netzanschluß]]&lt;br /&gt;
Erst wenn alle Arbeiten an der Hard- und Software abgeschlossen sind, kann man das Modul an die Netzspannung anschließen. Wer es sich einfach machen will, nimmt eine Industriell gefertigte 230 V Verlängerung  (zwischen 1,5 - 3 Meter) und schneidet sie in der Mitte durch. Nach dem abisolieren der flexiblen Drähte sollte diese &#039;&#039;&#039;verlötet oder mit Aderendhülsen&#039;&#039;&#039; versehen werden (müssen aber exakt passen, da hier kaum Platz in den Klemmen ist). &lt;br /&gt;
Mit einem kleinen Schraubendreher kann man die Feder der Klemmen niederdrücken und das verzinnte Drahtende tief ich die Öffnung stecken. Es dürfen keine Drahtlitzen aus den Öffnungen sichtbar sein, Kurzschlußgefahr! Ebenso sollte eine Zugprobe durchgeführt werden ob die Klemme auch richtig eingerastet ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ACHTUNG:&#039;&#039;&#039; diese Arbeiten müssen von einem ausgebildeten Fachpersonal (Elektriker) durchgeführt werden, Lebensgefahr!&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff POW Design===&lt;br /&gt;
&lt;br /&gt;
====ReadingsGroup normal====&lt;br /&gt;
[[Datei:sonoff_sw_46.jpg|thumb|left|alt=Sonoff POW Design]]&lt;br /&gt;
Viele Benutzer wollen schönere und funktionelle Ausgaben am Bildschirm sehen. Die Möglichkeiten nach oben sind hier sehr vielfältig. Anhand von zwei einfachen aber mächtigen Funktionen hier ein kleines Beispiel wie hier im Bild dargestellt.&lt;br /&gt;
&lt;br /&gt;
Was das Design betrifft, sind hier mehrere Möglichkeiten gegeben und nach oben ist für findige Anwender alles offen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zunächst wird mit dem Hilfsmodul &amp;quot;&#039;&#039;&#039;average&#039;&#039;&#039;&amp;quot; eine Art Statistik (Durchschnittsberechnung, Min.,Max., etc.) hinzugefügt. Das beschränkt sich auf eine einzige Zeile. Es würde sich auch &#039;&#039;&#039;statistic&#039;&#039;&#039; dazu eignen.&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Pow_CURRENT_POWER average Sonoff_Pow:CURRENT_POWER.*&lt;br /&gt;
Die &amp;quot;average&amp;quot; Funktion wird in das Device &amp;quot;Sonof_Pow&amp;quot; auf das Reading &amp;quot;CURRENT_POWER&amp;quot; hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
Der zweite Schritt wird eine &#039;&#039;&#039;readingsGroup&#039;&#039;&#039; mit den gewünschten und gefilterten Ausgabedaten. Durch die verschiedenen IF Abfragen der unterschiedlichen VALUE wird bei über- oder unterschreiten eines Wertes eine bestimmte Farbe angewandt. Weitere Beispiele dazu siehe im Wiki unter [http://www.fhemwiki.de/wiki/ReadingsGroup readingsGroup]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define SonoffPows readingsGroup &amp;lt;%measure_power&amp;gt;,&amp;lt;aktuell&amp;gt;,&amp;lt;Tag&amp;gt;,&amp;lt;Strom&amp;gt;,&amp;lt;Durchschnitt&amp;gt;,&amp;lt;max.P&amp;gt;,&amp;lt;Schaltzyklen&amp;gt;,&amp;lt; hr &amp;gt; .*(Sonoff_Pow|Sonoff_Pow2):CURRENT_POWER,TODAY_ENERGY,CURRENT,CURRENT_POWER_avg_day,CURRENT_POWER_max_day,PERIOD_ENERGY&lt;br /&gt;
 attr SonoffPows mapping %ALIAS&lt;br /&gt;
 attr SonoffPows nameStyle style=&amp;quot;color:yellow&amp;quot;&lt;br /&gt;
 attr SonoffPows room MQTT&lt;br /&gt;
 attr SonoffPows valueFormat {&#039;CURRENT_POWER&#039; =&amp;gt;&amp;quot;%.0f W&amp;quot;, &#039;TODAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;, &#039;CURRENT&#039; =&amp;gt;&amp;quot;%.2f A&amp;quot;,&#039;CURRENT_POWER_max_day&#039; =&amp;gt; &amp;quot;%.0f W&amp;quot;,&#039;CURRENT_POWER_avg_day&#039; =&amp;gt; &amp;quot;%.2f W&amp;quot;,&#039;PERIOD_ENERGY&#039;=&amp;gt;&amp;quot;%.0f Zyklen&amp;quot;}&lt;br /&gt;
 attr SonoffPows valueStyle { if($READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0 &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 0.45){&#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039;}elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 0.45 &amp;amp;&amp;amp; $VALUE &amp;lt; 0.87 ){&#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0.87){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 10){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 10 &amp;amp;&amp;amp; $VALUE &amp;lt; 15 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 15){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; } }&lt;br /&gt;
&lt;br /&gt;
Die readingsGroup sind etwas komplex zu lesen, aber nach etwas Einarbeitung klappt das schon. Die in diesem Beispiel verwendeten Readingsnamen beziehen sich auf die Beispielkonfigurationen hier im Wiki.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
====ReadingsGroup mit Schaltmöglichkeit====&lt;br /&gt;
[[Datei:sonoff_pow_03.jpg|thumb|left|alt=readingsGroup mit Schalter]]&lt;br /&gt;
Die vorher erwähnte ReadingsGroup kann auch gleich mit einem Schalter versehen werden um den POW Ein- oder Aus schalten zu können. Dazu ist aber eine andere Einstellung im Sketch erforderlich.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der &amp;quot;&#039;&#039;&#039;user_config.h&#039;&#039;&#039;&amp;quot; muss an dieser Stelle auch die &amp;quot;&#039;&#039;&#039;PUB_PREFIX&#039;&#039;&#039;&amp;quot; auf die gleiche Topic wie &amp;quot;PUB_PREFIX2&amp;quot; eingestellt werden. Durch diese Maßnahme wird erreicht, dass sofort nach dem Knopfdruck auch der Status mit der Topic &amp;quot;tele&amp;quot; übertragen wird. Würde der weiterhin mit &amp;quot;stat&amp;quot; übertragen, kann er in der Readingsgroup nur sehr umständlich weiter behandelt werden. Dadurch wird erreicht, dass der Schalter sofort nach dem Schaltvorgang und der Rückmeldung (Status) auch seine Farbe ändert. Wird dieser Eintrag vergessen, ändert der Schalter erst nach Eintreffen der nächsten zyklischen Abfrage seinen Status/Farbe.&lt;br /&gt;
&lt;br /&gt;
 #define SUB_PREFIX             &amp;quot;cmnd&amp;quot;       // Sonoff devices subscribe to:- SUB_PREFIX/MQTT_TOPIC and SUB_PREFIX/MQTT_GRPTOPIC&lt;br /&gt;
 #define PUB_PREFIX             &amp;quot;tele&amp;quot;       // Sonoff devices publish to:- PUB_PREFIX/MQTT_TOPIC&lt;br /&gt;
 #define PUB_PREFIX2            &amp;quot;tele&amp;quot;       // Sonoff devices publish telemetry data to:- PUB_PREFIX2/MQTT_TOPIC/UPTIME, POWER/LIGHT and TIME&lt;br /&gt;
hier die PUB_PREFIX mit der geänderten Topic &amp;quot;tele&amp;quot; anstatt &amp;quot;stat&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define SonoffPows readingsGroup &amp;lt;%measure_power&amp;gt;,&amp;lt;aktuell&amp;gt;,&amp;lt;Tag&amp;gt;,&amp;lt;Gestern&amp;gt;,&amp;lt;Strom&amp;gt;,&amp;lt;Durchschnitt&amp;gt;,&amp;lt;max.P&amp;gt;,&amp;lt;Zyklus&amp;gt;,&amp;lt;Faktor&amp;gt;,&amp;lt;Status&amp;gt;,&amp;lt; hr &amp;gt; .*(Sonoff_Pow|Sonoff_Pow2|Sonoff_Pow3):CURRENT_POWER,TODAY_ENERGY,YESTERDAY_ENERGY,CURRENT,CURRENT_POWER_avg_day,CURRENT_POWER_max_day,PERIOD_ENERGY,POWER_FACTOR,LIGHT&lt;br /&gt;
 attr SonoffPows commands {&#039;LIGHT.ON&#039; =&amp;gt; &#039;set $DEVICE OFF&#039;,&#039;LIGHT.OFF&#039; =&amp;gt; &#039;set $DEVICE ON&#039;}&lt;br /&gt;
 attr SonoffPows mapping %ALIAS&lt;br /&gt;
 attr SonoffPows nameStyle style=&amp;quot;color:yellow&amp;quot;&lt;br /&gt;
 attr SonoffPows room Energie,MQTT&lt;br /&gt;
 attr SonoffPows valueFormat {&#039;CURRENT_POWER&#039; =&amp;gt;&amp;quot;%.0f W&amp;quot;, &#039;TODAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;,&#039;YESTERDAY_ENERGY&#039; =&amp;gt;&amp;quot;%.2f Kw&amp;quot;, &#039;CURRENT&#039; =&amp;gt;&amp;quot;%.2f A&amp;quot;,&#039;CURRENT_POWER_max_day&#039; =&amp;gt; &amp;quot;%.0f W&amp;quot;,&#039;CURRENT_POWER_avg_day&#039; =&amp;gt; &amp;quot;%.2f W&amp;quot;,&#039;CURRENT_POWER&#039;=&amp;gt;&amp;quot;%.0f W&amp;quot;,&#039;POWER_FACTOR&#039; =&amp;gt; &amp;quot;%.2f &amp;quot;}&lt;br /&gt;
 attr SonoffPows valueIcon {&#039;LIGHT.ON&#039; =&amp;gt; &#039;rc_GREEN@green&#039;, &#039;LIGHT.OFF&#039; =&amp;gt; &#039;rc_RED@red&#039;}&lt;br /&gt;
 attr SonoffPows valueStyle { if($READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0 &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;TODAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 2.5){ &#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 2.5 &amp;amp;&amp;amp; $VALUE &amp;lt; 4.8 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;YESTERDAY_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 4.8){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 0.45){&#039;style=&amp;quot;color:green;;text-align:right&amp;quot;&#039;}elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 0.45 &amp;amp;&amp;amp; $VALUE &amp;lt; 0.87 ){&#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 0.87){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_avg_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 10){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 10 &amp;amp;&amp;amp; $VALUE &amp;lt; 15 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;PERIOD_ENERGY&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 15){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;lt;= 100){ &#039;style=&amp;quot;color:lightgreen;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt; 100 &amp;amp;&amp;amp; $VALUE &amp;lt; 200 ){ &#039;style=&amp;quot;color:orange;;text-align:right&amp;quot;&#039; }elsif( $READING eq &amp;quot;CURRENT_POWER_max_day&amp;quot; &amp;amp;&amp;amp; $VALUE &amp;gt;= 200){ &#039;style=&amp;quot;color:red;;text-align:right&amp;quot;&#039; } }&lt;br /&gt;
hier die erweiterte ReadingsGroup mit dem Schalter. Bei Bedarf sind hier die Devicenamen anzupassen wenn andere Namen verwendet werden (Sonoff_Pow|Sonoff_Pow2|Sonoff_Pow3).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====POW mit FTUI anzeigen====&lt;br /&gt;
[[Datei:sonoff_pow_energy.JPG|thumb|left|alt=Tablett FTUI]]&lt;br /&gt;
Wer möchte kann die Energieanzeigen auch mit der [https://forum.fhem.de/index.php/topic,34233.0.html Tablett UI] für eine Tablet Ansicht gestalten. Mit dieser stehen viele Möglichkeiten zu einer attraktiven Darstellung zur Verfügung.&lt;br /&gt;
Hier ein Beispiel welches mit den Widget &amp;quot;[http://www.fhemwiki.de/wiki/FHEM_Tablet_UI#Widget_THERMOSTAT thermostat]&amp;quot; dargestellt ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Slampher Flashen==&lt;br /&gt;
[[Datei:sonoff_sl_53.jpg|thumb|left|alt=Sonoff SLAMPHER]]&lt;br /&gt;
Dieses Modul ist eine Besonderheit was das Flashen betrifft, denn mit Hilfe des Tasters kann der ESP8266 NICHT in den Flashmode gebracht werden. Der Taster ist intern anderwärtig verdrahtet und somit für diesen Zweck nicht zu gebrauchen.&lt;br /&gt;
&lt;br /&gt;
Wie hier links im Bild zu sehen ist, muss der rechte Pin des R20 (oben im Bild) während dem Einstecken des USB Steckers auf Masse gelegt werden. Die beste Möglichkeit ist ein Stücken Draht anzulöten und diesen dann beim einstecken auf den Masse Pin des USB-Konverters zu legen.&lt;br /&gt;
&lt;br /&gt;
Pinbelegung des Steckers von oben nach unten:&lt;br /&gt;
 o - GND&lt;br /&gt;
 o - TxD&lt;br /&gt;
 o - RxD&lt;br /&gt;
 &#039;&#039;&#039;o&#039;&#039;&#039; - Vdd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sl_51.jpg|thumb|left|alt=Sonoff SLAMPHER R20]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier ist genau ersichtlich, wo der R20 auf der Platine platziert ist. }}&lt;br /&gt;
Hier nocheinmal schön zu sehen wo der R20 (der ist nicht eingelötet sondern leer) exakt auf der Platine liegt, gemeint ist der rechte Pin. Hier kann auch leicht gelötet werden, da keine empfindlichen Bauteile in der Nähe sind und auch genug Platz vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_sl_50.jpg|thumb|left|alt=Sonoff SLAMPHER R20]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier ist genau ersichtlich, wo der Draht am R20 aufgelötet wurde }}&lt;br /&gt;
Hier ist ein kleines Stück Schaltdraht auf den Pin bereist aufgelötet und bereit zum Flashen!&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wurde keine Pfostensteckerleiste auf die Platine aufgelötet, sondern nur durchgesteckt und mit einem Gummiring  zum Relais fixiert, das erspart den Lötvorgang, weil in Zukunft dann ohnehin OTA geflasht werden kann.&lt;br /&gt;
&lt;br /&gt;
Also Pin20 auf Masse legen und USB-Konverter an den PC einstecken, dann den Draht von der Masse entfernen. Der ESP8266 sollte jetzt im Flashmodus bereit stehen und kann wie bereits oben beschrieben geflasht werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sonoff Slampher Software===&lt;br /&gt;
[[Datei:sonoff_sl_54.jpg|thumb|left|alt=Sonoff SLAMPHER FHEM]]&lt;br /&gt;
&lt;br /&gt;
Als Software wird Arends Sketch installiert (Kommunikation über MQTT), da zum derzeitigen Zeitpunkt ESPEasy das Modul noch nicht integriert hat und somit auch nicht ansteuern kann.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_SL MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_SL IODev myBroker&lt;br /&gt;
 attr Sonoff_SL devStateIcon ON:rc_GREEN:OFF OFF:rc_RED:ON&lt;br /&gt;
 attr Sonoff_SL icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_SL publishSet ON OFF cmnd/sonoffsl/1/POWER/set&lt;br /&gt;
 attr Sonoff_SL room Bewegung,_Sonoff&lt;br /&gt;
 attr Sonoff_SL stateFormat Licht&lt;br /&gt;
 attr Sonoff_SL subscribeReading_Licht tele/sonoffsl/POWER&lt;br /&gt;
 attr Sonoff_SL subscribeReading_state cmnd/sonoffsl/1/POWER/set&lt;br /&gt;
 attr Sonoff_SL webCmd ON:OFF&lt;br /&gt;
&lt;br /&gt;
Hier ein Beispiel wie in FHEM der Slampher eingebunden werden kann. In diesem Beispiel wird davon ausgegangen, das das Modul &amp;quot;sonoffsl&amp;quot; unter Konfiguration am WEBIF (Configure MQTT bei Topic) so unbenannt wurde. Wer einen anderen Namen haben möchte, muss dies dann auch in FHEM entsprechend anpassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Th10/16 FHEM==&lt;br /&gt;
[[Datei:sonoff_th_01.jpg|thumb|left|alt=Sonoff TH10]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Temperatur Modul TH10 / 16! }}&lt;br /&gt;
Das Modul kann durch drücken des Tasters während dem Einstecken des USB-Konverters in den Flashmodus gebracht werden.&lt;br /&gt;
Der Th10/16 kann mit zwei unterschiedlichen Typen von Sensoren bestückt werden, hier im Beispiel mit dem externen Temperaturfühler DS18B20.&lt;br /&gt;
&lt;br /&gt;
Wie im Bild klar zu sehen ist, kann das Webif auch zur Darstellung via Mobile verwendet werden. Mit &amp;quot;Toggle&amp;quot; wird Ein- oder Aus geschaltet und  darunter ist die aktuelle Temperatur ersichtlich. Für diese Ansicht muss keine MQTT Verbindung eingerichtet werden, da die Kommunikation hier rein über HTTP erfolgt.&lt;br /&gt;
&lt;br /&gt;
Die unten dargestellten Beispiele für FHEM beziehen sich auf Arends Sketch, also über MQTT. Dieses Modul kann aber genauso leicht über ESPEasy und der ESPEasy-Bridge eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Pinbelegung des Steckers von oben nach unten:&lt;br /&gt;
 o - GND&lt;br /&gt;
 o - TxD&lt;br /&gt;
 o - RxD&lt;br /&gt;
 &#039;&#039;&#039;o&#039;&#039;&#039; - Vdd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #define DSB_PIN              14           // GPIO 14 = DS18x20 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
 #define DSB_RESOLUTION       2            // Maximum number of decimals (0 - 3) showing Temperature&lt;br /&gt;
 // *** Option 1 - Single DS18B20 - Select either Option 1 OR Option 2&lt;br /&gt;
 #define SEND_TELEMETRY_DS18B20            // Enable sending single temperature telemetry&lt;br /&gt;
 // *** Option 2 - Multiple DS18B20 and/or DS18S20 (needs OneWire library!)&lt;br /&gt;
 //  #define SEND_TELEMETRY_DS18x20            // Enable sending multi temperature telemetry &lt;br /&gt;
In der user_config.h (Arends Sketch) muss hier die Option 1 aktiviert werden (entfernen der vorangestellten //) damit die Telemetriedaten auch gesendet werden. Es empfiehlt sich mindestens die Version &amp;gt;= V 2.0.16, weil hier die Sensoren erweitert wurden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #define DHT_PIN              14           // GPIO 14 = AM2301 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
 #define DHT_TYPE             AM2301       // DHT module type (DHT11, DHT21, DHT22, AM2301, AM2302 or AM2321)&lt;br /&gt;
 #define DHT_RESOLUTION       1            // Maximum number of decimals (0 - 3) showing Temperature&lt;br /&gt;
 #define SEND_TELEMETRY_DHT                // Enable sending temperature and humidity telemetry&lt;br /&gt;
Beispiel für den Sensor DHT22, Temperatur und Luftfeuchte. Es dürfen aber nicht beide Sensoren (DS18B20 + DHT22) gleichzeitig aktiviert werden, da ja beide an GPIO14 angehängt werden und es ansonsten zu Fehlfunktionen kommen würde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_th_02.jpg|thumb|left|alt=Sonoff TH10]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Einbindung in Fhem via MQTT! }}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ### Temperatur und Luftfeuchte vom Sonoff Switch ###&lt;br /&gt;
 define Sonoff_Temp MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Temp IODev myBroker&lt;br /&gt;
 attr Sonoff_Temp alias Pool Wasser&lt;br /&gt;
 attr Sonoff_Temp eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Temp icon temperature_humidity&lt;br /&gt;
 attr Sonoff_Temp publishSet ON OFF cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Temp room _Sonoff&lt;br /&gt;
 attr Sonoff_Temp stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad&amp;quot;, ReadingsVal($name,&amp;quot;TEMPERATURE&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_TEMPERATURE tele/sonoffth/DS18B20/TEMPERATURE&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_humidity tele/sonoffth/HUMIDITY&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_state cmnd/sonoffth/1/POWER/set&lt;br /&gt;
Beispiel für FHEM mit Temperaturanzeige mit DS18B20&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Switch MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Switch IODev myBroker&lt;br /&gt;
 attr Sonoff_Switch alias Pool Licht&lt;br /&gt;
 attr Sonoff_Switch devStateIcon on:rc_GREEN:off off:rc_RED:on&lt;br /&gt;
 attr Sonoff_Switch eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Switch icon light_ceiling&lt;br /&gt;
 attr Sonoff_Switch publishSet ON OFF cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch room _Sonoff&lt;br /&gt;
 attr Sonoff_Switch stateFormat Licht&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_Licht tele/sonoffth/POWER&lt;br /&gt;
 attr Sonoff_Switch subscribeReading_state cmnd/sonoffth/1/POWER/set&lt;br /&gt;
 attr Sonoff_Switch webCmd ON:OFF&lt;br /&gt;
Der Schalter nochmals seperat dargestellt, je nach Geschmack.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff CH4 4-Kanal Schaltmodul==&lt;br /&gt;
[[Datei:sonoff_ch4_1.jpg|thumb|left|alt=Sonoff CH4]]&lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Achtung andere Einstellungen der Arduino IDE: Select Board &amp;quot;Generic ESP8285 Module&amp;quot; (=Flash Mode &amp;quot;DOUT&amp;quot;) and Flash Size &amp;quot;1M (64K SPIFFS)&amp;quot;n! }}&lt;br /&gt;
&lt;br /&gt;
Der Sonoff CH4 ist mit seinen 4 Kanälen ein sehr preiswertes Modul im Gehäuse und für Hutschinenmontage. Anstatt des üblichen ESP8266 besitzt dieses Modul schon den moderneren &#039;&#039;&#039;ESP8285&#039;&#039;&#039;. Es müssen daher in der Arduino IDE andere Einstellungen vorgenommen werden. Unter Board wird hier das &amp;quot;&#039;&#039;&#039;Generic 8285 Module&#039;&#039;&#039;&amp;quot; mit &#039;&#039;&#039;1M und 64K Spiffs&#039;&#039;&#039; angewählt. Der Flashmode &amp;quot;&#039;&#039;&#039;DOUT&#039;&#039;&#039;&amp;quot; wird dann automatisch eingestellt, bzw. ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
Das Modul ist etwas größer als die anderen Sonoff Produkte und besitzt mit 14,5 x 9 cm schon beachtliche Einbau Maße.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_2.jpg|thumb|left|alt=Sonoff CH4 FDTI]]&lt;br /&gt;
Als weitere Besonderheit sei hier erwähnt, das die Signale &#039;&#039;&#039;RxD auf RxD und TxD auf TxD&#039;&#039;&#039; des FTDI Konverters zu verbinden sind. Wie bei allen Sonoff Modulen darf man &#039;&#039;&#039;zum flashen keine Netzspannung anschließen&#039;&#039;&#039;, sondern nur über die Versorgungsspannung des FDTI Konverters mit 3,3 V versorgen (Jumper richtig setzen). Die Stiftleiste für den FTDI Anschluß ist hier schon eingelötet.&lt;br /&gt;
&lt;br /&gt;
In den Flashmodus gelangt man durch drücken der &#039;&#039;&#039;Taste FW/IO0&#039;&#039;&#039; während des einstecken des USB Anschlusses.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_3.jpg|thumb|left|alt=Sonoff CH4 Arends]]&lt;br /&gt;
Hier die Ansicht des Webinterface des Arends Sketches!&lt;br /&gt;
Bei der Software sei erwähnt, das die getestete Version 3.1.16 nur bei Kanal 1 den Modus &amp;quot;PulseTime&amp;quot; beherrscht. Wer also gepulste Ausgänge (zB: elektrische Garage/Toröffner) benötigt muss diese per Software nachbilden oder mit dem Kanal 1 auskommen. Eine &amp;quot;Pulsetime 10&amp;quot; ist ein guter Wert dafür (etwa 1 Sekunde). &lt;br /&gt;
&lt;br /&gt;
Als Alternative kann mit dieser HTML Seite des Webservers am Modul des CH4 schon mit jedem Browser fähigem Handy (Android, iPhone, Windows) aufgerufen werden und somit alle Funktionen gesteuert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Datei:sonoff_ch4_4.jpg|thumb|left|alt=Sonoff CH4 Software APP]]&lt;br /&gt;
Hier dargestellt die Original Software die Sonoff zum Modul liefert (EWeLink) und über ihre Cloud verbindet. Leider kann hier keine gepulste Ausgabe erfolgen. Mit einem Countdown kann zwar der Ausgang wieder abgeschaltet werden, die kleinste Zeiteinheit ist aber 1 Minute und somit für einen Impuls leider nicht zu gebrauchen. Ebenso kann mit dieser Software keine Einbindung in Fhem erfolgen, obwohl es eine nette anschauliche Darstellung ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Erweiterungen=&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch mit Temperatur + Luftfeuchte== &lt;br /&gt;
{{Randnotiz|RNTyp=[g|Info]|RNText=Hier geht es um nützliche Hardware Erweiterungen an den Originalmodulen!}}&lt;br /&gt;
Wozu überhaupt den Switch erweitern wenn es auch die Modelle TH10 und TH16 gibt?&lt;br /&gt;
&lt;br /&gt;
Manche Personen können dadurch dem Basteltrieb nachkommen, aber das wesentliche ist der Preis, da die Switches doch fast um die Hälfte billiger sind. Die Sensoren kosten ebenfalls kaum nennenswerte Beträge.&lt;br /&gt;
&lt;br /&gt;
Oder es hat schon jemand Switches im Einsatz und möchte jetzt zusätzlich die Temperatur erfassen!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware erweitern mit DHT22 ===&lt;br /&gt;
[[Datei:sonoff_sw_4.PNG|thumb|left|alt=Sonoff Switch Pinleiste mit Temperatur]]&lt;br /&gt;
Am Sonoff Switch wurde ja schon eine Stiftleiste zum Flashen eingelötet. Diese Stiftleiste bietet schon alle Anschlüsse welche für die Temperatur- und Luftfeuchtemessung benötigt werden. Am 5. Anschluß der Stifftleiste ist das Signal &amp;quot;SCL&amp;quot; (GPIO14) herausgeführt, welches für den DHT22 zur Erfassung der Messdaten benötigt wird. Der Sonsor wird mit einem einem 3-poligen Kabel (zB: ein Steckkabel für ein Breadboard oder direkt anlöten) verbunden. Damit der DHT22 korrekt funktioniert, wird ein Widerstand mit 4,7 K Ohm zwischen Vdd und Data am DHT22 zusätzlich benötigt. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_45.jpg|thumb|left|alt=AM2302 / DHT22]]&lt;br /&gt;
&lt;br /&gt;
Ansicht des DHT22 (AM2302) mit den aufgesteckten Verbindungskabeln. Von links nach rechts sind das&lt;br /&gt;
&lt;br /&gt;
 1 = VCC 3,3 V&lt;br /&gt;
 2 = Data&lt;br /&gt;
 3 = nc (nicht belegt)&lt;br /&gt;
 4 = GND&lt;br /&gt;
&lt;br /&gt;
Pin1 (VCC) des DHT22 muss also auf Pin1 der Stiftleiste, Pin2 (Data) auf Pin5 und Pin4 (GND) auf Pin4. &lt;br /&gt;
Pin2 und Pin1 soll hier noch der Widerstand aufgelötet werden.&lt;br /&gt;
&lt;br /&gt;
 1 ------- 1 (VDD)&lt;br /&gt;
 2 ------- 5 (GPIO14)&lt;br /&gt;
 3&lt;br /&gt;
 4 ------- 4 (GND)&lt;br /&gt;
 DHT22  Stiftleiste&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_44.jpg|thumb|left|alt=umgebautes Modul]]&lt;br /&gt;
Diese Darstellung zeigt das umgebaute und bereits verschlossene Modul. Auf der Seite des Tasters (bitte nur hier, da auf der anderen Seite die 230 V verlaufen und neben der Lebensgefahr auch den Sensor beeinflussen) ist hier einfach mit einer Eisensäge ein Schlitz eingesägt, der dient in diesem Falle als Kabeldurchführung. Ein Schlitz ist besser als ein Loch, da der Oberteil des Gehäuses sich leichter aufsetzen läßt. Wer ein längeres Kabel benötigt, kann natürlich auch ein 3-poliges Telefonkabel (oder Mikrokabel oder sonstiges) verwenden. Der Sensor sollte etwas Abstand zum Gehäuse haben, da dieses auch eine Eigenerwärmung hat. Wer es ganz originalgetreu lösen will, kann auch eine 3-polige Mini Buchse für Klinckenstecker (3,5mm) einbauen so wie sie am TH10/16 vorhanden ist.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Software anpassen am Beispiel MQTT ===&lt;br /&gt;
[[Datei:sonoff_sw_40.jpg|thumb|left|alt=Sonoff MQTT]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer über MQTT kommuniziert und die Software von Theo Arends benutzt, muss folgende Dinge beachten. In der Datei &#039;&#039;&#039;user_config.h&#039;&#039;&#039; müssen im Abschnitt &#039;&#039;&#039;Module = SONOFF&#039;&#039;&#039; die Slashes so wie unten dargestellt entfernt werden, damit erstens die Interrupts abgefragt werden und zweitens die Telemetriedaten gesendet werden. Ebenso ist der verwendete Sensor bei &amp;quot;&#039;&#039;&#039;define DHT_TYPE&#039;&#039;&#039;&amp;quot; eingestellt werden. In dem hier gezeigten Beispiel also &amp;quot;&#039;&#039;&#039;DHT22&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #if MODULE == SONOFF                        // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff module&amp;quot;&lt;br /&gt;
  #define LED_PIN              13           // GPIO 13 = Green/Blue Led (0 = On, 1 = Off) - Sonoff&lt;br /&gt;
  #define LED_INVERTED         1            // 0 = (1 = On, 0 = Off), 1 = (0 = On, 1 = Off)&lt;br /&gt;
  #define REL_PIN              12           // GPIO 12 = Red Led and Relay (0 = Off, 1 = On)&lt;br /&gt;
  #define KEY_PIN              0            // GPIO 00 = Button&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define DSB_PIN              4            // GPIO 14 = DS18B20 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define SEND_TELEMETRY_DS18B20            // Enable sending temperature telemetry&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define DHT_PIN              14           // GPIO 14 = AM2301 (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define DHT_TYPE             DHT22        // DHT module type (DHT11, DHT21, DHT22, AM2301, AM2302 or AM2321)&lt;br /&gt;
  #define SEND_TELEMETRY_DHT                // Enable sending temperature and humidity telemetry&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Software Anpassung DHT22 in Fhem ===&lt;br /&gt;
[[Datei:sonoff_sw_41.jpg|thumb|left|alt=umgebautes Modul]]&lt;br /&gt;
&lt;br /&gt;
Links in der Hardcopy sind die Readings die nach der Anpassung von FHEM (Broker) befüllt werden sollten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ### Temperatur und Luftfeuchte vom Sonoff Switch ###&lt;br /&gt;
 define Sonoff_Temp MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Temp IODev myBroker&lt;br /&gt;
 attr Sonoff_Temp icon temperature_humidity&lt;br /&gt;
 attr Sonoff_Temp room MQTT&lt;br /&gt;
 attr Sonoff_Temp stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad Feuchte: %.1f &amp;quot;, ReadingsVal($name,&amp;quot;temperature&amp;quot;,0), ReadingsVal($name,&amp;quot;humidity&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_humidity tele/sonoff/HUMIDITY&lt;br /&gt;
 attr Sonoff_Temp subscribeReading_temperature tele/sonoff/TEMPERATURE&lt;br /&gt;
Als Beispiel die zusätzliche Erweiterung um die Temperatur und die Luftfeuchte in FHEM. Der in der Topic verwendete Name &amp;quot;sonoff&amp;quot; muss natürlich der Einstellung in der Software am Switch entsprechen. Bei Verwendung mehrerer Switches muss natürlich auch der Name bei jedem geändert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Logfile für die Temperatur ===&lt;br /&gt;
 define SVG_FileLog_Sonoff_Temp SVG myDbLog:SVG_FileLog_Sonoff_Temp:HISTORY&lt;br /&gt;
 attr SVG_FileLog_Sonoff_Temp room MQTT&lt;br /&gt;
&lt;br /&gt;
Und schließlich fehlt noch das Logfile, damit der Temperaturverlauf auch in schönen Plots dargestellt werden kann.&lt;br /&gt;
Das hier verwendete Beispiel funktioniert nur mit einer DbLog.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch als Thermostat verwenden mit MQTT== &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_sw_55.jpg|thumb|left|alt=Thermostat]]&lt;br /&gt;
Mit diesem einfachen Beispiel wird ein Pelett Ofen mit einem externen Thermostat (sonoff Switch oder TH10/16) gesteuert. Zum besseren Überblick wird die Steuerung in einzelne Module getrennt, es könnte aber auch einiges zu einer einzigen Definition zusammen gefasst werden. Der Thermostat könnte auch als Frostwächter benutzt werden und ein anderes Heizgerät steuern.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 ###################################&lt;br /&gt;
 ### Sonoff Thermostat Regelung ####&lt;br /&gt;
 ###################################&lt;br /&gt;
 define Sonoff_dht MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_dht IODev myBroker&lt;br /&gt;
 attr Sonoff_dht alias Raumtemperatur&lt;br /&gt;
 attr Sonoff_dht group Thermostat&lt;br /&gt;
 attr Sonoff_dht icon temperature_humidity&lt;br /&gt;
 attr Sonoff_dht publishSet ON OFF cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_dht room _Sonoff&lt;br /&gt;
 attr Sonoff_dht stateFormat {sprintf(&amp;quot;Temperatur: %.1f Grad Feuchte: %.1f &amp;quot;, ReadingsVal($name,&amp;quot;TEMPERATURE&amp;quot;,0),  ReadingsVal($name,&amp;quot;HUMIDITY&amp;quot;,0))}&lt;br /&gt;
 attr Sonoff_dht subscribeReading_HUMIDITY tele/sonoff_dht/DHT/HUMIDITY&lt;br /&gt;
 attr Sonoff_dht subscribeReading_TEMPERATURE tele/sonoff_dht/DHT/TEMPERATURE&lt;br /&gt;
 attr Sonoff_dht subscribeReading_state cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
FHEM Definition zur Erfassung der Temperatur und der Luftfeuchte. Damit dieses Beispiel funktioniert, ist am Sonoff Modul die Topic &amp;quot;&#039;&#039;&#039;sonoff_dht&#039;&#039;&#039;&amp;quot; zu setzen. Dieser Temperaturwert dient dem Thermostat als ISTWert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 define Sonoff_Sw MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_Sw IODev myBroker&lt;br /&gt;
 attr Sonoff_Sw alias Pellets Ofen&lt;br /&gt;
 attr Sonoff_Sw devStateIcon on:rc_GREEN:off off:rc_RED:on&lt;br /&gt;
 attr Sonoff_Sw eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_Sw group Thermostat&lt;br /&gt;
 attr Sonoff_Sw icon sani_boiler_temp&lt;br /&gt;
 attr Sonoff_Sw publishSet ON OFF cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_Sw room _Sonoff&lt;br /&gt;
 attr Sonoff_Sw stateFormat Licht&lt;br /&gt;
 attr Sonoff_Sw subscribeReading_Licht tele/sonoff_dht/POWER&lt;br /&gt;
 attr Sonoff_Sw subscribeReading_state cmnd/sonoff_dht/1/POWER/set&lt;br /&gt;
 attr Sonoff_Sw webCmd ON:OFF&lt;br /&gt;
FHEM Definition zum Absetzen der Befehle für das Relais (Thermostat) Ein- / Aus. Wenn das zu steuernde Geräte einen potentialfreien Thermostatanschluß benötigt (in den meisten Fällen), muss noch ein Relais dazwischen geschaltet werden um die Trennung der Netzspannung zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
 define ThermostatPellets dummy&lt;br /&gt;
 attr ThermostatPellets alias Pellets Ofen Sollwert&lt;br /&gt;
 attr ThermostatPellets group Thermostat&lt;br /&gt;
 attr ThermostatPellets icon temp_control&lt;br /&gt;
 attr ThermostatPellets room _Sonoff&lt;br /&gt;
 attr ThermostatPellets setList state:0,5,10,12,13,14,15,16,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22,23,24,25,26,27&lt;br /&gt;
 attr ThermostatPellets webCmd state&lt;br /&gt;
Die Sollwertvorgabe für das Thermostat durch einen Dummy, damit können die gewünschten Temperaturen eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
 ### sofort ausführen wenn neuer Sollwert eingestellt wird ###&lt;br /&gt;
 define Thermostat_on_notify notify ThermostatPellets IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;state&amp;quot;,0) eq &amp;quot;OFF&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;lt;= Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw ON)&lt;br /&gt;
 define Thermostat_off_notify notify ThermostatPellets IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;state&amp;quot;,0) eq &amp;quot;ON&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;gt; Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw OFF)&lt;br /&gt;
Mit einem notify wird die manuelle Änderung des Sollwertes überwacht und sofort reagiert.&lt;br /&gt;
&lt;br /&gt;
 ## zyklisch prüfen ob Sollwert erreicht wurde ###&lt;br /&gt;
 define Thermostat_on at +*00:15:00 IF (ReadingsVal(&amp;quot;Sonoff_Sw&amp;quot;,&amp;quot;Licht&amp;quot;,0) eq &amp;quot;OFF&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;lt;= Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw ON)&lt;br /&gt;
 define Thermostat_off at +*00:15:00 IF (Value(&amp;quot;Sonoff_Sw&amp;quot;) eq &amp;quot;ON&amp;quot; &amp;amp;&amp;amp; (ReadingsVal(&amp;quot;Sonoff_dht&amp;quot;,&amp;quot;TEMPERATURE&amp;quot;,0) &amp;gt; Value(&amp;quot;ThermostatPellets&amp;quot;))) (set Sonoff_Sw OFF)&lt;br /&gt;
Hier noch die Soll- Ist Wertvergleiche zur Steuerung. Es wird alle 15 Minuten überprüft ob die Temperatur erreicht ist. Bei einer trägen Heizung sollten 15 Minuten ausreichend sein, wer will kann dies aber auch alle 5 oder 10 Minuten prüfen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sonoff Switch mit Bewegungsmelder HC-SR501== &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_1.jpg|thumb|left|alt=Bewegungsmelder]]&lt;br /&gt;
Basierend auf dem Wall Switch MQTT Sketch von Arends wurde hier ein Sonoff BASIC + PIR HC-SR501 in eine größere Verteilerdose eingebaut, der Sonoff wurde dabei etwas gekürzt. Die Bewegungsmelder sind ab etwa 70 Cent erhältlich.&lt;br /&gt;
&lt;br /&gt;
Der Sketch kann auch den Blink Modus. Damit kann man im Alarmfall z.B. Alle Strahler rings ums Haus blinken lassen.&lt;br /&gt;
&lt;br /&gt;
Mehr dazu kann hier im [https://forum.fhem.de/index.php/topic,63824.0.html Forum]im Diskussionsthread nachgelesen werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_2.jpg|thumb|left|alt=Bewegungsmelder]]&lt;br /&gt;
Ein Beispiel wir der Bewegungsmelder in der Feuchtraumdose montiert werden kann. Wird der Bewegungsmelder abgesetzt vom Switch montiert, ist darauf zu achten das die Kabel nicht zu lange werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
===Spannungsversorgung des HC-SR501===&lt;br /&gt;
[[Datei:sonoff_pir_4.jpg|thumb|left|alt=5V für Bewegungsmelder]]&lt;br /&gt;
Der HC-SR501 wird vom Sonoff versorgt, wobei hier die 3,3 V nicht immer ausreichen. Es ist deshalb am HC-SR501 eine Diode zu überbrücken, dann reichen die 3,3V vom Sonoff. Es können aber auch am Sonoff die 5V angezapft werden. Hier im Bild dargestellt wo die 5V angezapft werden können.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Datei:sonoff_pir_5.jpg|thumb|left|alt=3,3V für Bewegungsmelder]]&lt;br /&gt;
Hier eine kleine Übersicht der wichtigsten Teile und deren Platzierung am HC-SR501. &lt;br /&gt;
Den PIR kann man auch mit 3,3V betreiben wenn man die Diode am Eingang nach Vcc überbrückt, dann reicht die Spannung für einen reibungslosen Betrieb völlig aus. Dies gilt für den HC-SR501, wird ein anderer PIR verwendet muss man nachschauen ob das auch möglich ist, ansonsten die 5V Variante wählen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Anpassung des Sketches mit Wall Switch===&lt;br /&gt;
Zur Vorbereitung des Sketches sind zunächst einige Einstellungen in der &amp;quot;user_config.h&amp;quot; durchzuführen.&lt;br /&gt;
&lt;br /&gt;
 #if MODULE == SONOFF                        // programming header 1:3.3V 2:rx 3:tx 4:gnd&lt;br /&gt;
  #define APP_NAME             &amp;quot;Sonoff 8266 module&amp;quot;&lt;br /&gt;
  #define MQTT_GRPTOPIC        &amp;quot;sonoffs&amp;quot;    // [GroupTopic] MQTT Group topic&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define LED_PIN              13           // GPIO 13 = Green/Blue Led (0 = On, 1 = Off) - Sonoff&lt;br /&gt;
  #define LED_INVERTED         1            // 0 = (1 = On, 0 = Off), 1 = (0 = On, 1 = Off)&lt;br /&gt;
  #define REL_PIN              12           // GPIO 12 = Red Led and Relay (0 = Off, 1 = On)&lt;br /&gt;
  #define KEY_PIN              0            // GPIO 00 = Button&lt;br /&gt;
 /*-------------------------------------------------------------------------------------------*\&lt;br /&gt;
 * Wall switch and HC-SR501&lt;br /&gt;
 \*-------------------------------------------------------------------------------------------*/&lt;br /&gt;
  #define SWITCH_PIN           14           // GPIO 14 = Standard wall switch to Gnd (Sonoff_TH10A(16A), Sonoff SV)&lt;br /&gt;
  #define SWITCH_MODE          &#039;&#039;&#039;PUSHBUTTON_INV&#039;&#039;&#039;      // [SwitchMode] TOGGLE, FOLLOW, FOLLOW_INV, PUSHBUTTON or PUSHBUTTON_INV (the wall switch state)&lt;br /&gt;
  &#039;&#039;&#039;#define USE_WALL_SWITCH&#039;&#039;&#039;                   // Enable the use of a standard wall switch to control the relay&lt;br /&gt;
Wichtig ist dabei die vorangestellten Slahes // bei &amp;quot;#define USE_WALL_SWITCH&amp;quot; zu entfernen auf &#039;&#039;&#039;PUSHBUTTON_INV&#039;&#039;&#039; zu stellen. Dann kann der Sonoff Switch compiliert und geflasht werden.&lt;br /&gt;
&lt;br /&gt;
===Einbindung des HC-SR501 in Fhem===&lt;br /&gt;
 # ------------- Sonoff_pir mit Bewegungsmelder ---------------&lt;br /&gt;
 define Sonoff_pir MQTT_DEVICE&lt;br /&gt;
 attr Sonoff_pir IODev myBroker&lt;br /&gt;
 attr Sonoff_pir eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoff_pir group Sonoff&lt;br /&gt;
 attr Sonoff_pir icon hue_filled_br30&lt;br /&gt;
 attr Sonoff_pir publishSet ON OFF cmnd/sonoff_pir/1/POWER/set&lt;br /&gt;
 attr Sonoff_pir room MQTT&lt;br /&gt;
 attr Sonoff_pir stateFormat Licht&lt;br /&gt;
 attr Sonoff_pir subscribeReading_Licht stat/sonoff_pir/POWER&lt;br /&gt;
 attr Sonoff_pir subscribeReading_state cmnd/sonoff_pir/1/POWER/set&lt;br /&gt;
 attr Sonoff_pir webCmd :&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel wie der Sonoff Switch in Fhem eingebunden wird. Wenn im Sketch der Prefix von stat auf tele geändert wurde, ist dies auch hier durchzuführen ( subscribeReading_Licht tele/sonoff_pir/POWER ), ansonsten bleibt es so wie im Beispiel. Getestet wurde dieses Beispiel mit Version 3.1.6. Die Topic sollte auf den Namen &amp;quot;sonoff_pir&amp;quot; eingestellt werden. Bei anderen Namen ist dies entsprechend in Fhem anzupassen. &lt;br /&gt;
&lt;br /&gt;
Mit dem Command &#039;&#039;&#039;BUTTONTOPIC = Alarm_SO2&#039;&#039;&#039; ( direkt im Webinterface des Sonoff ) wird der Wall Switch GPIO14 vom Sonoff entkoppelt und somit sendet der Bewegungsmelder direkt an FHEM --&amp;gt; Motion_pir MQTT_DEVICE&lt;br /&gt;
&lt;br /&gt;
Es sollte auch unbedingt kontrolliert werden, wie die Ausgabe des Alarmes in der Console erfolgt. Erscheint hier die Meldung &amp;quot;cmnd/Alarm_SO2/POWER = TOGGLE&amp;quot; dann muss mit dem Kommando &amp;quot;&#039;&#039;&#039;switchmode 1&#039;&#039;&#039;&amp;quot; das Ausgabeformat umgeschaltet werden, erst dann kommt das gewünschte Format &amp;quot;On&amp;quot; und &amp;quot;OFF&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 # ------------------ Motion_pir MQTT_DEVICE -----------------&lt;br /&gt;
 define Motion_pir MQTT_DEVICE&lt;br /&gt;
 attr Motion_pir IODev myBroker&lt;br /&gt;
 attr Motion_pir devStateIcon on:on-for-timer off:off&lt;br /&gt;
 attr Motion_pir eventMap ON:on OFF:off&lt;br /&gt;
 attr Motion_pir group Sonoff&lt;br /&gt;
 attr Motion_pir icon people_sensor&lt;br /&gt;
 attr Motion_pir room MQTT&lt;br /&gt;
 attr Motion_pir stateFormat Alarm&lt;br /&gt;
 attr Motion_pir subscribeReading_Alarm cmnd/Alarm_SO2/POWER&lt;br /&gt;
Die Motion_pir dient nun zur eigentlichen Einschaltung des Lichtes und sendet das Kommando &#039;&#039;&#039;cmnd/Alarm_SO2/POWER&#039;&#039;&#039; an den entkopellten GPIO 14 des Switch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # ------------------ DoIf zur Motion Abfrage -----------------&lt;br /&gt;
 define di_Sonoff_pir_Alarm DOIF ([Motion_pir:&amp;quot;on&amp;quot;] and [Tag_Nacht:twilight_weather] &amp;lt; 35) (set Sonoff_pir on) DOELSEIF ([Motion_pir:&amp;quot;off&amp;quot;] and [Tag_Nacht:twilight_weather] &amp;lt; 35) (set Sonoff_pir off)&lt;br /&gt;
 attr di_Sonoff_pir_Alarm comment Abhängig von Helligkeitssensor wird nachts,bei Bewegung das Licht eingeschaltet!&lt;br /&gt;
 attr di_Sonoff_pir_Alarm group Sonoff&lt;br /&gt;
 attr di_Sonoff_pir_Alarm room MQTT&lt;br /&gt;
Zusätzlich kann nun mit einem &#039;&#039;&#039;Doif&#039;&#039;&#039; verknüpft werden um das Ganze mit Tag_Nacht:twilight_weather dann in Abhängigkeit der Helligkeit zu schalten. Selbstverständlich kann jede andere Quelle mit einem Helligkeitswert verwendet werden.&lt;br /&gt;
&lt;br /&gt;
===Alarmausgabe über Grouptopic===&lt;br /&gt;
 # ------------------------ Sonoffs Group ----------------------&lt;br /&gt;
 define Sonoffs MQTT_DEVICE&lt;br /&gt;
 attr Sonoffs IODev myBroker&lt;br /&gt;
 attr Sonoffs eventMap ON:on OFF:off&lt;br /&gt;
 attr Sonoffs group Sonoff&lt;br /&gt;
 attr Sonoffs icon hue_filled_br30&lt;br /&gt;
 attr Sonoffs publishSet ON OFF cmnd/sonoffs/1/POWER/set&lt;br /&gt;
 attr Sonoffs room MQTT&lt;br /&gt;
 attr Sonoffs stateFormat state&lt;br /&gt;
 attr Sonoffs subscribeReading_Licht stat/sonoffs/1/POWER&lt;br /&gt;
 attr Sonoffs subscribeReading_state cmnd/sonoffs/1/POWER/set&lt;br /&gt;
Wer möchte kann auch mit der Group Topic mehrere Switches mit Bewegungsmelder zusammenfassen und alle Lampen im Alarmfall gemeinsam in den Blinkmodus schalten. cmnd/sonoffs ist das Kommando für die Group Topic, sofern diese vom User nicht verändert wurde.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:IP Components]]&lt;br /&gt;
--[[Benutzer:Reinhart|Reinhart]] ([[Benutzer Diskussion:Reinhart|Diskussion]]) 20:54, 5. Jan. 2017 (CET)&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=18312</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=18312"/>
		<updated>2017-01-06T10:39:44Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: /* Attribute default-werte nachgetragen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=47202&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=ThomasRamm}}&lt;br /&gt;
Das Modul [[ROLLO]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
__TOC__&lt;br /&gt;
Das Modul unterstützt beliebige Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. &lt;br /&gt;
&lt;br /&gt;
[[Datei:Rolladen Eintrag.PNG|right|thumb|400px|Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen]]&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert, Icons und Farben können für jeden Status individuell formatiert werden, die Standard Kommandos auf der Oberfläche (hier: offen, geschlossen, schlitz, Position) können ebenfalls per Attribut angepasst werden. Das Status-Icon ist anklickbar.&lt;br /&gt;
Beim Anlegen des Moduls werden die Attribute zur Darstellung in fhem mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Das eigentliche ansteuern des Rollo muss mit FHEM Befehlen ausführbar sein, diese Modul ist &amp;quot;nur&amp;quot; eine Oberfläche/Bedienmodul, kein Hardwaremodul.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|type|| normal,HomeKit || normal ||Typunterscheidung zur unterstützung verschiedener Hardware. Abhängig vom gewählten Typ wird die Richtung von der die Position gerechnet wird festgelegt:&amp;lt;BR/&amp;gt;&lt;br /&gt;
normal = Position 0 ist offen, Position 100 ist geschlossen&amp;lt;BR/&amp;gt;&lt;br /&gt;
HomeKit = Position 100 ist offen, Position 0 ist geschlossen&lt;br /&gt;
|-&lt;br /&gt;
|secondsDown|| Ganzzahl || 30 || Sekunden die das Rollo benötigt um einmal komplett hoch zu fahren&lt;br /&gt;
|-&lt;br /&gt;
|secondsUp|| Ganzzahl || 30 || Sekunden die das Rollo benötigt um einmal komplett runter zu fahren&lt;br /&gt;
|-&lt;br /&gt;
|excessTop|| Ganzzahl || 4 || Zeit die dein Rollo nach dem Hochfahren noch weiter fahren muss ohne das sich die Rollo-Position ändert (bei mir fährt der Rollo noch in die Wand, ohne das man es am Fenster sieht, die Position ist also schon bei 0%)&lt;br /&gt;
|-&lt;br /&gt;
|excessBottom|| Ganzzahl || 2 || Zeit die dein Rollo nach dem Runterfahren noch weiter fahren muss ohne das sich die Rollo-Position ändert (Nachlaufzeit)&lt;br /&gt;
|-&lt;br /&gt;
|switchTime|| Ganzzahl || 1 || Zeit die zwischen 2 gegensätzlichen Laufbefehlen pausiert werden soll, also wenn der Rollo z.B. gerade runter fährt und ich den Befehl gebe hoch zu fahren, dann soll 1 sekunde gewartet werden bis der Motor wirklich zum stillstand kommt, bevor es wieder in die andere Richtung weiter geht. Diese Zeitangabe hat nichts mit der eigentlichen Laufzeit des Motors zu tun.&lt;br /&gt;
|-&lt;br /&gt;
|resetTime|| Ganzzahl || 0 ||Zeit die beim Anfahren von Endpositionen (offen,geschlossen) der Motor zusätzlich an bleiben soll um sicherzustellen das die Endposition wirklich angefahren wurde. Dadurch können Differenzen in der Positionsberechnung korrigiert werden.&lt;br /&gt;
|-&lt;br /&gt;
|reactionTime|| Ganzzahl || ||Zeit für den Motor zum reagieren. bei jedem Fahrbefehl wird diese Zeit zusätzlich eingeplannt ohne das die Position geändert wird, für &amp;quot;träge&amp;quot; Motoren.&lt;br /&gt;
|-&lt;br /&gt;
|autoStop|| 0,1 || 0 || Bei autoStop=1 wird kein Stop-Befehl gesendet&lt;br /&gt;
|-&lt;br /&gt;
|commandUp|| Text ||  || fhem Befehl der ausgeführt werden muss um das Rollo hoch zu fahren.&lt;br /&gt;
|-&lt;br /&gt;
|commandUp2|| Text ||  || Platz für einen zweiten fhem Befehl&lt;br /&gt;
|-&lt;br /&gt;
|commandUp3|| Text ||  || Platz für einen dritten fhem Befehl&lt;br /&gt;
|-&lt;br /&gt;
|commandDown|| Text ||  || fhem Befehl der ausgeführt werden muss um das Rollo runter zu fahren.&lt;br /&gt;
|-&lt;br /&gt;
|commandDown2|| Text ||  || Platz für einen zweiten fhem Befehl&lt;br /&gt;
|-&lt;br /&gt;
|commandDown3|| Text ||  || Platz für einen dritten fhem Befehl&lt;br /&gt;
|-&lt;br /&gt;
|commandStopUp|| Text ||  || Befehl der zum Stoppen ausgeführt wird,wenn der Rollo gerade hochfährt. Wenn nicht definiert wird commandStop ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|commandStopDown|| Text ||  || Befehl der zum stoppen ausgeführt wird, wenn der Rollo gerade herunterfährt. Wenn nicht definiert wird commandStop ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|commandStop|| Text ||  || Befehl der zum Stoppen ausgeführt wird, sofern nicht commandStopDown bzw. commandStopUp definiert sind&lt;br /&gt;
|-&lt;br /&gt;
|blockMode||blocked,force-open,force-closed,only-up,only-down,half-up,half-down,none|| none || durch dieses Attribut können andere Befehle in FHEM festlegen was mein Rollo machen darf (z.B. bei gekipptem Fenster darf es nicht heruntergefahren wreden):&amp;lt;BR/&amp;gt;&lt;br /&gt;
blocked = Rollo lässt sich nicht mehr bewegen&amp;lt;BR/&amp;gt;&lt;br /&gt;
force-open = bei einem beliebigen Fahrbefehl wird Rollo hochgefahren&amp;lt;BR/&amp;gt;&lt;br /&gt;
force-closed = bei einem beliebigen Fahrbefehl wird Rollo runtergefahren&amp;lt;BR/&amp;gt;&lt;br /&gt;
only-up = Befehle zum runterfahren werden ignoriert&amp;lt;BR/&amp;gt;&lt;br /&gt;
only-down = Befehle zum hochfahren werden ignoriert&amp;lt;BR/&amp;gt;&lt;br /&gt;
half-up = es werden nur die Positionen 50-100 angefahren, bei Position &amp;lt;50 wird Position 50% angefahren,&amp;lt;BR/&amp;gt;&lt;br /&gt;
half-down = es werden nur die Positionen 0-50 angefahren, bei Position &amp;gt;50 wird Position 50 angefahren&amp;lt;BR/&amp;gt;&lt;br /&gt;
none = block-Modus ist deaktiviert&amp;lt;BR/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled&lt;br /&gt;
| on,off&lt;br /&gt;
| on&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann die automatische Szenariensteuerung für diesen Rolladen deaktiviert werden.&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay&lt;br /&gt;
|0,5,10,15,&amp;lt;BR/&amp;gt;20,30,45,60&lt;br /&gt;
|0&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann eine Zeitverzögerung für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen Minuten später heruntergefahren.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; closed&amp;lt;/code&amp;gt; Fährt das Rollo komplett herunter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; open&amp;lt;/code&amp;gt; Fährt das Rollo komplett nach oben&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; half&amp;lt;/code&amp;gt; Fährt das Rollo auf Position 50&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo auf die angegebene Position&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; stop&amp;lt;/code&amp;gt;  Stoppt ein fahrendes Rollo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;toggle&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition.&lt;br /&gt;
Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; extern [open|closed|stop]&amp;lt;/code&amp;gt; Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten. siehe auch [[#Zusammenspiel mit externem Taster]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; reset [open|closed] &amp;lt;/code&amp;gt; Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; blocked&amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Aktiviert die Blockiert-Sperre abhänging vom Attribut blockMode kann das Rollo danach nur noch eingeschränkt gefahren werden&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; unblocked&amp;lt;/code&amp;gt;  Deaktiviert die Blockiert-Sperre wieder, das Rollo kann wieder komplett in alle Positionen gefahren werden.&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Name !!Wert !!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|command||open,stop,closed||&lt;br /&gt;
|-&lt;br /&gt;
|desired_position||0-100||Zielposition die angefahren werden soll (nur sinnvoll während das Rollo fährt)&lt;br /&gt;
|-&lt;br /&gt;
|drive-type||modul,extern||bei dem Befehl &amp;quot;set rollo extern ..&amp;quot; wird dieses attribut auf &amp;quot;extern&amp;quot; gestellt, sonst immer &amp;quot;modul&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|last_drive||drive-up,drive-down||die zuletzt benutzte Fahrtrichtung&lt;br /&gt;
|-&lt;br /&gt;
|position||0-100||exakte Position des Rollo&lt;br /&gt;
|-&lt;br /&gt;
|state||open,closed,position-[0-100]||die Position gerundet auf ganze 10% Schritte, identisch mit dem Internal STATE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
===Set===&lt;br /&gt;
 set RolladenWohnzimmer position 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
Das Rollo-Modul wird angewiesen den status auf &amp;quot;nicht fahren&amp;quot; zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer reset closed&lt;br /&gt;
In der Oberfläche von fhem wird für das Rollo die Position &amp;quot;geschlossen&amp;quot; gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird evtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.&lt;br /&gt;
&lt;br /&gt;
===Zusammenspiel mit externem Taster===&lt;br /&gt;
In einem Anwendungszenario hat ein Nutzer zusätzliche Taster an seinem Rollo-Motor über die er ihn ebenfalls steuern kann. &lt;br /&gt;
Die Taster selber senden keine Events an fhem, nur der Rollo-Motor.&lt;br /&gt;
Hier ein Beispiel wie das ganze für aussehen könnte und diese Taster in das ROLLO-Modul integriert werden:&lt;br /&gt;
&lt;br /&gt;
 define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern open) DOELSEIF ([meinRollo_Kanal1] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
 define rollo_manuell_ab  DOIF ([meinRollo_Kanal2] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern closed) DOELSEIF ([meinRollo_Kanal2] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
&lt;br /&gt;
meinRollo_Kanal1 und meinRollo_Kanal2 sind die Hardwarekanäle die in dem Rollo-Modul zum hochfahren/runterfahren benutzt werden. &lt;br /&gt;
Das erste DOIF prüft ob das Rollo hoch fährt, ohne das das Rollo-Modul davon etwas weis. Ist dem so wird dem Rollo Modul mithilfe des set &amp;lt;extern&amp;gt; mitgeteilt das das Rollo bereits gestartet wurde. Das Modul fängt an die Zeit zu zählen und aktualisiert den Status der Oberfläche auf &amp;quot;fahre hoch&amp;quot;.&lt;br /&gt;
IM DOELSEIF wird abgefragt ob das Rollo steht, obwohl das Modul denkt das Rollo würde noch fahren. Ist dem so wird wieder mithilfe des set &amp;lt;extern&amp;gt; dem Modul mitgeteilt das das Rollo gestoppt wurde. Das Modul berechnet nun aufgrund der gefahrenen Zeit die aktuelle Position und aktualisiert den Status der Oberfläche auf die Position.&lt;br /&gt;
&lt;br /&gt;
Das gleiche wird dann im zweiten DOIF nochmal für das herunterfahren gemacht.&lt;br /&gt;
&lt;br /&gt;
Man kann nun das Rollo sowohl über die Oberfläche als auch per Taster bedienen und fhem und der reale Ist-Status sind synchron. Ach eine gleichzeitige Bedienung ist möglich, Das Rollo startet z.B. aufgrund einer Automatisierung morgens zum hochfahren und man klickt schnell auf den Taster neben dem Bett und stoppt das ganze wieder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=18311</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=18311"/>
		<updated>2017-01-06T10:37:28Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: /*Beschreibungen auf aktuelle Version angepasst */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=47202&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=ThomasRamm}}&lt;br /&gt;
Das Modul [[ROLLO]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
__TOC__&lt;br /&gt;
Das Modul unterstützt beliebige Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. &lt;br /&gt;
&lt;br /&gt;
[[Datei:Rolladen Eintrag.PNG|right|thumb|400px|Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen]]&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert, Icons und Farben können für jeden Status individuell formatiert werden, die Standard Kommandos auf der Oberfläche (hier: offen, geschlossen, schlitz, Position) können ebenfalls per Attribut angepasst werden. Das Status-Icon ist anklickbar.&lt;br /&gt;
Beim Anlegen des Moduls werden die Attribute zur Darstellung in fhem mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Das eigentliche ansteuern des Rollo muss mit FHEM Befehlen ausführbar sein, diese Modul ist &amp;quot;nur&amp;quot; eine Oberfläche/Bedienmodul, kein Hardwaremodul.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|type|| normal,HomeKit || ||Typunterscheidung zur unterstützung verschiedener Hardware. Abhängig vom gewählten Typ wird die Richtung von der die Position gerechnet wird festgelegt:&amp;lt;BR/&amp;gt;&lt;br /&gt;
normal = Position 0 ist offen, Position 100 ist geschlossen&amp;lt;BR/&amp;gt;&lt;br /&gt;
HomeKit = Position 100 ist offen, Position 0 ist geschlossen&lt;br /&gt;
|-&lt;br /&gt;
|secondsDown|| Ganzzahl || || Sekunden die das Rollo benötigt um einmal komplett hoch zu fahren&lt;br /&gt;
|-&lt;br /&gt;
|secondsUp|| Ganzzahl || || Sekunden die das Rollo benötigt um einmal komplett runter zu fahren&lt;br /&gt;
|-&lt;br /&gt;
|excessTop|| Ganzzahl || || Zeit die dein Rollo nach dem Hochfahren noch weiter fahren muss ohne das sich die Rollo-Position ändert (bei mir fährt der Rollo noch in die Wand, ohne das man es am Fenster sieht, die Position ist also schon bei 0%)&lt;br /&gt;
|-&lt;br /&gt;
|excessBottom|| Ganzzahl || || Zeit die dein Rollo nach dem Runterfahren noch weiter fahren muss ohne das sich die Rollo-Position ändert (Nachlaufzeit)&lt;br /&gt;
|-&lt;br /&gt;
|switchTime|| Ganzzahl || || Zeit die zwischen 2 gegensätzlichen Laufbefehlen pausiert werden soll, also wenn der Rollo z.B. gerade runter fährt und ich den Befehl gebe hoch zu fahren, dann soll 1 sekunde gewartet werden bis der Motor wirklich zum stillstand kommt, bevor es wieder in die andere Richtung weiter geht. Diese Zeitangabe hat nichts mit der eigentlichen Laufzeit des Motors zu tun.&lt;br /&gt;
|-&lt;br /&gt;
|resetTime|| Ganzzahl || ||Zeit die beim Anfahren von Endpositionen (offen,geschlossen) der Motor zusätzlich an bleiben soll um sicherzustellen das die Endposition wirklich angefahren wurde. Dadurch können Differenzen in der Positionsberechnung korrigiert werden.&lt;br /&gt;
|-&lt;br /&gt;
|reactionTime|| Ganzzahl || ||Zeit für den Motor zum reagieren. bei jedem Fahrbefehl wird diese Zeit zusätzlich eingeplannt ohne das die Position geändert wird, für &amp;quot;träge&amp;quot; Motoren.&lt;br /&gt;
|-&lt;br /&gt;
|autoStop|| 0,1 ||  || Bei autoStop=1 wird kein Stop-Befehl gesendet&lt;br /&gt;
|-&lt;br /&gt;
|commandUp|| Text ||  || fhem Befehl der ausgeführt werden muss um das Rollo hoch zu fahren.&lt;br /&gt;
|-&lt;br /&gt;
|commandUp2|| Text ||  || Platz für einen zweiten fhem Befehl&lt;br /&gt;
|-&lt;br /&gt;
|commandUp3|| Text ||  || Platz für einen dritten fhem Befehl&lt;br /&gt;
|-&lt;br /&gt;
|commandDown|| Text ||  || fhem Befehl der ausgeführt werden muss um das Rollo runter zu fahren.&lt;br /&gt;
|-&lt;br /&gt;
|commandDown2|| Text ||  || Platz für einen zweiten fhem Befehl&lt;br /&gt;
|-&lt;br /&gt;
|commandDown3|| Text ||  || Platz für einen dritten fhem Befehl&lt;br /&gt;
|-&lt;br /&gt;
|commandStopUp|| Text ||  || Befehl der zum Stoppen ausgeführt wird,wenn der Rollo gerade hochfährt. Wenn nicht definiert wird commandStop ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|commandStopDown|| Text ||  || Befehl der zum stoppen ausgeführt wird, wenn der Rollo gerade herunterfährt. Wenn nicht definiert wird commandStop ausgeführt&lt;br /&gt;
|-&lt;br /&gt;
|commandStop|| Text ||  || Befehl der zum Stoppen ausgeführt wird, sofern nicht commandStopDown bzw. commandStopUp definiert sind&lt;br /&gt;
|-&lt;br /&gt;
|blockMode||blocked,force-open,force-closed,only-up,only-down,half-up,half-down,none|| none || durch dieses Attribut können andere Befehle in FHEM festlegen was mein Rollo machen darf (z.B. bei gekipptem Fenster darf es nicht heruntergefahren wreden):&amp;lt;BR/&amp;gt;&lt;br /&gt;
blocked = Rollo lässt sich nicht mehr bewegen&amp;lt;BR/&amp;gt;&lt;br /&gt;
force-open = bei einem beliebigen Fahrbefehl wird Rollo hochgefahren&amp;lt;BR/&amp;gt;&lt;br /&gt;
force-closed = bei einem beliebigen Fahrbefehl wird Rollo runtergefahren&amp;lt;BR/&amp;gt;&lt;br /&gt;
only-up = Befehle zum runterfahren werden ignoriert&amp;lt;BR/&amp;gt;&lt;br /&gt;
only-down = Befehle zum hochfahren werden ignoriert&amp;lt;BR/&amp;gt;&lt;br /&gt;
half-up = es werden nur die Positionen 50-100 angefahren, bei Position &amp;lt;50 wird Position 50% angefahren,&amp;lt;BR/&amp;gt;&lt;br /&gt;
half-down = es werden nur die Positionen 0-50 angefahren, bei Position &amp;gt;50 wird Position 50 angefahren&amp;lt;BR/&amp;gt;&lt;br /&gt;
none = block-Modus ist deaktiviert&amp;lt;BR/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled&lt;br /&gt;
| on,off&lt;br /&gt;
| on&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann die automatische Szenariensteuerung für diesen Rolladen deaktiviert werden.&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay&lt;br /&gt;
|0,5,10,15,&amp;lt;BR/&amp;gt;20,30,45,60&lt;br /&gt;
|0&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann eine Zeitverzögerung für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen Minuten später heruntergefahren.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; closed&amp;lt;/code&amp;gt; Fährt das Rollo komplett herunter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; open&amp;lt;/code&amp;gt; Fährt das Rollo komplett nach oben&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; half&amp;lt;/code&amp;gt; Fährt das Rollo auf Position 50&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; position &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo auf die angegebene Position&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; stop&amp;lt;/code&amp;gt;  Stoppt ein fahrendes Rollo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;toggle&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition.&lt;br /&gt;
Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; extern [open|closed|stop]&amp;lt;/code&amp;gt; Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten. siehe auch [[#Zusammenspiel mit externem Taster]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; reset [open|closed] &amp;lt;/code&amp;gt; Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; blocked&amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Aktiviert die Blockiert-Sperre abhänging vom Attribut blockMode kann das Rollo danach nur noch eingeschränkt gefahren werden&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; unblocked&amp;lt;/code&amp;gt;  Deaktiviert die Blockiert-Sperre wieder, das Rollo kann wieder komplett in alle Positionen gefahren werden.&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Name !!Wert !!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|command||open,stop,closed||&lt;br /&gt;
|-&lt;br /&gt;
|desired_position||0-100||Zielposition die angefahren werden soll (nur sinnvoll während das Rollo fährt)&lt;br /&gt;
|-&lt;br /&gt;
|drive-type||modul,extern||bei dem Befehl &amp;quot;set rollo extern ..&amp;quot; wird dieses attribut auf &amp;quot;extern&amp;quot; gestellt, sonst immer &amp;quot;modul&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|last_drive||drive-up,drive-down||die zuletzt benutzte Fahrtrichtung&lt;br /&gt;
|-&lt;br /&gt;
|position||0-100||exakte Position des Rollo&lt;br /&gt;
|-&lt;br /&gt;
|state||open,closed,position-[0-100]||die Position gerundet auf ganze 10% Schritte, identisch mit dem Internal STATE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
===Set===&lt;br /&gt;
 set RolladenWohnzimmer position 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
Das Rollo-Modul wird angewiesen den status auf &amp;quot;nicht fahren&amp;quot; zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer reset closed&lt;br /&gt;
In der Oberfläche von fhem wird für das Rollo die Position &amp;quot;geschlossen&amp;quot; gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird evtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.&lt;br /&gt;
&lt;br /&gt;
===Zusammenspiel mit externem Taster===&lt;br /&gt;
In einem Anwendungszenario hat ein Nutzer zusätzliche Taster an seinem Rollo-Motor über die er ihn ebenfalls steuern kann. &lt;br /&gt;
Die Taster selber senden keine Events an fhem, nur der Rollo-Motor.&lt;br /&gt;
Hier ein Beispiel wie das ganze für aussehen könnte und diese Taster in das ROLLO-Modul integriert werden:&lt;br /&gt;
&lt;br /&gt;
 define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern open) DOELSEIF ([meinRollo_Kanal1] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
 define rollo_manuell_ab  DOIF ([meinRollo_Kanal2] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern closed) DOELSEIF ([meinRollo_Kanal2] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
&lt;br /&gt;
meinRollo_Kanal1 und meinRollo_Kanal2 sind die Hardwarekanäle die in dem Rollo-Modul zum hochfahren/runterfahren benutzt werden. &lt;br /&gt;
Das erste DOIF prüft ob das Rollo hoch fährt, ohne das das Rollo-Modul davon etwas weis. Ist dem so wird dem Rollo Modul mithilfe des set &amp;lt;extern&amp;gt; mitgeteilt das das Rollo bereits gestartet wurde. Das Modul fängt an die Zeit zu zählen und aktualisiert den Status der Oberfläche auf &amp;quot;fahre hoch&amp;quot;.&lt;br /&gt;
IM DOELSEIF wird abgefragt ob das Rollo steht, obwohl das Modul denkt das Rollo würde noch fahren. Ist dem so wird wieder mithilfe des set &amp;lt;extern&amp;gt; dem Modul mitgeteilt das das Rollo gestoppt wurde. Das Modul berechnet nun aufgrund der gefahrenen Zeit die aktuelle Position und aktualisiert den Status der Oberfläche auf die Position.&lt;br /&gt;
&lt;br /&gt;
Das gleiche wird dann im zweiten DOIF nochmal für das herunterfahren gemacht.&lt;br /&gt;
&lt;br /&gt;
Man kann nun das Rollo sowohl über die Oberfläche als auch per Taster bedienen und fhem und der reale Ist-Status sind synchron. Ach eine gleichzeitige Bedienung ist möglich, Das Rollo startet z.B. aufgrund einer Automatisierung morgens zum hochfahren und man klickt schnell auf den Taster neben dem Bett und stoppt das ganze wieder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Kategorie:Siemens_PLC&amp;diff=16282</id>
		<title>Kategorie:Siemens PLC</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Kategorie:Siemens_PLC&amp;diff=16282"/>
		<updated>2016-08-29T16:43:08Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: Beschreibung/Definition Siemens PLC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Siemens PLC&#039;&#039;&#039; ist der Oberbegriff für Speicherprogrammierbare Steuerungen (SPS) der Firma Siemens. Hierbei handelt es sich um komplette Steuerungssysteme die mit einer speziellen Sprache (z.B. Step 7) programmiert werden können. Man kann diese Systeme autark arbeiten lassen und FHEM z.B. für die Visualisierung oder als Verbindungsmodul zu andern Systemen benutzen, oder aber die Logik komplett von FHEM übernehmen lassen und die PLC nur noch als Ein- Ausgangsmodule nutzen. &lt;br /&gt;
&lt;br /&gt;
Hier werden Module aufgelistet die eine Verbindung von FHEM mit einer Siemens PLC Steuerung ermöglichen.&amp;lt;BR/&amp;gt;&lt;br /&gt;
Die Module [[Siemens S5]] und [[LOGO - Das Logikmodul|Logo]] werden nicht mehr weiterentwickelt.&amp;lt;BR/&amp;gt;&lt;br /&gt;
Das Modul [[S7]] unterstützt aber auch die Siemens S5 sowie die Siemens Logo.&lt;br /&gt;
[[Kategorie:Hardware]]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Kategorie:Siemens_PLC&amp;diff=16281</id>
		<title>Kategorie:Siemens PLC</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Kategorie:Siemens_PLC&amp;diff=16281"/>
		<updated>2016-08-29T16:35:26Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier werden Module aufgelistet die eine Verbindung von FHEM mit einer Siemens PLC Steuerung ermöglichen.&lt;br /&gt;
Die Module [[Siemens S5]] und [[Logo]] werden nicht mehr weiterentwickelt.&lt;br /&gt;
Das Modul [[S7]] unterstützt aber inzwischen auch die Siemens S5 sowie die Siemens Logo.&lt;br /&gt;
[[Kategorie:Hardware]]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:Krueuw&amp;diff=16132</id>
		<title>Benutzer Diskussion:Krueuw</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:Krueuw&amp;diff=16132"/>
		<updated>2016-08-09T20:27:47Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: Neuer Abschnitt /* */ Seitenkategorien */ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Willkommen! ==&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;6&amp;quot; style=&amp;quot;line-height: 20px; background: #E0E0E0; border: 2px solid #1874CD;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#1874CD;&amp;quot; |&amp;lt;big&amp;gt;&amp;lt;span style=&amp;quot;color: #FAFAFA&amp;quot;&amp;gt;&#039;&#039;&#039;Hallo Krueuw,&#039;&#039;&#039; willkommen im FHEM Wiki!&amp;lt;/span&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | Danke für dein Interesse an unserem Projekt, ich freue mich schon auf deine weiteren Beiträge. Die folgenden Seiten sollten dir die ersten Schritte erleichtern, bitte nimm dir daher etwas Zeit, sie zu lesen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;FHEM-spezifische Informationen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| width=&amp;quot;38%&amp;quot; | &#039;&#039;&#039;[[Systemübersicht]]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;FHEM Systemübersicht&#039;&#039;&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| width=&amp;quot;38%&amp;quot; | &#039;&#039;&#039;[[FHEMWiki:Über FHEMWiki]]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;Informationen über dieses Wiki&#039;&#039;&lt;br /&gt;
&amp;lt;!-- Abschnitt auf Kommentar gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
{{Todo|FHEM-spezifische Anleitungen und Regeln.}}&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
 Ende von &#039;Abschnitt auf Kommentar gesetzt&#039; --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | &lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Generelle Informationen über (Media)Wikis&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; | [[Datei:Crystal Clear app kedit.svg|rechts|30px|link=Hilfe:Bearbeiten]]&lt;br /&gt;
| width=&amp;quot;38%&amp;quot; | &#039;&#039;&#039;[[Hilfe:Bearbeiten]]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;Zugang zu allen wichtigen Informationen.&#039;&#039;&lt;br /&gt;
| width=&amp;quot;8%&amp;quot; | [[Datei:X-office-presentation.svg|rechts|30px|link=Wikipedia:Tutorial]]&lt;br /&gt;
| width=&amp;quot;38%&amp;quot; | &amp;lt;!-- &#039;&#039;&#039;[[Wikipedia:Tutorial]]&#039;&#039;&#039;--&amp;gt;&#039;&#039;&#039;[http://de.wikipedia.org/wiki/Wikipedia:Tutorial Wikipedia:Tutorial]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;Schritt-für-Schritt-Anleitung für Einsteiger.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:Applications-system.svg|rechts|30px|link=Wikipedia:Grundprinzipien]]&lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;!--[[Wikipedia:Grundprinzipien]]--&amp;gt;[http://de.wikipedia.org/wiki/Wikipedia:Grundprinzipien Wikipedia:Grundprinzipien]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;Die grundlegende Philosophie unseres Projekts.&#039;&#039;&lt;br /&gt;
| [[Datei:MentorenProgrammLogo-7.svg|rechts|60px|link=Wikipedia:Mentorenprogramm]]&lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;!--[[Wikipedia:Mentorenprogramm]]--&amp;gt;[http://de.wikipedia.org/wiki/Wikipedia:Mentorenprogramm Wikipedia:Mentorenprogramm]&#039;&#039;&#039;&amp;lt;br /&amp;gt;&#039;&#039;Persönliche Einführung in die Beteiligung bei Wikipedia.&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |&lt;br /&gt;
----&lt;br /&gt;
Bitte beachte, &amp;lt;!--[[Wikipedia:Was Wikipedia nicht ist|was Wikipedia nicht ist]]--&amp;gt;[http://de.wikipedia.org/wiki/Wikipedia:Was_Wikipedia_nicht_ist was Wikipedia nicht ist], und &amp;quot;unterschreibe&amp;quot; deine Diskussionsbeiträge durch Eingabe von &amp;lt;code&amp;gt;--&amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; oder durch Drücken der Schaltfläche [[Datei:button_sig.png|Signaturknopf|20px|link=Hilfe:Signatur]] über dem Bearbeitungsfeld. Artikel werden jedoch nicht unterschrieben, und wofür die Zusammenfassungszeile da ist, erfährst du unter &amp;lt;!--[[wikipedia:Hilfe:Zusammenfassung und Quellen|Hilfe:Zusammenfassung und Quellen]]--&amp;gt;[http://de.wikipedia.org/wiki/Hilfe:Zusammenfassung_und_Quellen Zusammenfassung und Quellen]. &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Datei:Nuvola apps ksirc.png|25px|link=Benutzer Diskussion:Ph1959de]] &amp;amp;nbsp;&amp;amp;nbsp; &#039;&#039;&#039;Hast du Fragen an mich?&#039;&#039;&#039; Schreib mir auf [[Benutzer Diskussion:Ph1959de|&amp;lt;u&amp;gt;meiner&amp;lt;/u&amp;gt; Diskussionsseite]]! Viele Grüße, [[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 16:01, 19. Feb. 2016 (CET)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Aufnahme Deiner Artikel in Kategorien ==&lt;br /&gt;
&lt;br /&gt;
Hallo Krueuw,&amp;lt;BR&amp;gt;&lt;br /&gt;
zunaechst vielen Dank für Deine aktive Mitarbeit am Wiki.&lt;br /&gt;
Könntest Du Dir bitte einmal Gedanken zur Kategorisierung Deiner Artikel machen. Bisher sind alle Deine Artikel keiner Kategorie zugeordnet [[Spezial:Nicht_kategorisierte_Seiten]] und auch die Namensgebung der Artikel gibt mir keinen Hinweis, wie die Strukturierung im Wiki erfolgen soll. Ansonsten haette ich schon Kategorien hinzugefügt. Ohne Einbindung in die Wiki-Strukturen werden Deine Artikel schlecht gefunden.&lt;br /&gt;
Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 20:27, 4. Aug. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Hallo Christian,&lt;br /&gt;
&lt;br /&gt;
das Problem ist folgendes: Ich habe bisher versucht am S5-Modul von ThomasRamm mitzuarbeiten. Der scheint aber das Interesse als Maintainer verloren zu haben. Auf meine Anregeung hin hat charlie71 die Simatic S5 Unterstützung in sein offizielles S7-Modul integriert. Das Teil funktioniert bei mir, jetzt sollen sich andere Leute beteiligen können. Er hat vorgeschlagen, das im S5-Forum abzuwickeln und ich soll mich um die neuen Funktionen kümmern.&lt;br /&gt;
&lt;br /&gt;
Die S5-Seiten von ThomasRamm und mir sind ja nun mittelfristig obsolet, zumindest wenn es planmäßig weiter geht. Genauso ist klar ist, dass die jetzt für das neue S7-Modul geschriebenen Seiten mittelfristig ins S7-Wiki gehören. Da sollte aber der Maintainer erst zustimmen. Ich vermute das dauert bis zur endgültigen Fertigstellung. &lt;br /&gt;
&lt;br /&gt;
Schreib, was du in dieser Situation von mir erwartest und wie ich das dann machen muss. &lt;br /&gt;
&lt;br /&gt;
Gruß Uwe&lt;br /&gt;
&amp;lt;HR&amp;gt;&lt;br /&gt;
:Hallo Uwe!&lt;br /&gt;
&lt;br /&gt;
:Entscheiden darfst/musst Du; es ist schließlich Deine Arbeit und Du hast dort den Durchblick. Ich nicht. Habe keine Ahnung von S5 :-)&lt;br /&gt;
&lt;br /&gt;
:Liest sich so, als würdest Du Deine S5-Seiten zum S5-Modul mittelfristig als Löschkandidaten sehen. Dabei sehen die nach viel Arbeit aus, aber wenn es überflüssig ist, brauchen wir uns evtl. keine Gedanken über Kategorien machen!? S5-Modulseite von ThomasRamm würde ich erst mal so lassen. Modul existiert und evtl. kommt spaeter ein neuer Maintainer.&lt;br /&gt;
&lt;br /&gt;
:Ob Du direkt im S7-Wiki schreiben sollst/darfst, was ich persönlich bevorzugen würde (aber ich bin nicht ausschlaggebend), solltest Du bei Bedenken direkt mit charlie71 abklaeren. Mich persönlich stört es nicht, wenn in von mir begonnen Artikeln andere mitarbeiten, sondern es freut mich eher.&lt;br /&gt;
&lt;br /&gt;
:Also Du darfst machen, was Du magst. Ich erwarte nichts und müssen musst Du nichts ;-) . Wir können die S5-Artikel von Dir angesichts der für mich jetzt verstaendlichen Sonderumstaende gerne erst einmal ohne Kategorie lassen, wenn keine gegenteiligen Meinungen von anderen kommen.&lt;br /&gt;
&lt;br /&gt;
:Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 21:22, 4. Aug. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
ok, die Richtung ist klar, kann dann nur noch etwas dauern ;-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HR&amp;gt;&lt;br /&gt;
::Hallo Uwe!&amp;lt;BR&amp;gt;&lt;br /&gt;
::Habe (frecherweise) in die &amp;quot;alten&amp;quot; S5-Seiten Hinweise zum &amp;quot;Wartezustand&amp;quot; eingefügt. Bitte kontrolliere, ob das in Deinem Sinne ist und ich nicht etwas falsch verstanden habe. Kannst Du ggfs. gerne selbst ::berichtigen bzw. rückgängig machen.&amp;lt;BR&amp;gt;&lt;br /&gt;
::Danke und Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 10:09, 5. Aug. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
danke, sehr gut! Uwe&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HR&amp;gt;&lt;br /&gt;
Hallo Christian,&lt;br /&gt;
&lt;br /&gt;
ich möchte gerne Teile der alten S5-wiki-Seite (die ich geschrieben habe) recyclen und habe vor die entsprechenden Teile per Kopieren/einfügen in den neuen Zusammenhang S7-S5 zu bringen. Ein Verschieben ist m.E. unmöglich, da ja das Meiste von ThomasRamm stammt. Für die separaten Seiten habe ich z.Z. keine Verwendung. Wäre das ok?&lt;br /&gt;
&lt;br /&gt;
Uwe&lt;br /&gt;
&lt;br /&gt;
:Hallo Uwe!&lt;br /&gt;
:Wenn Du nur Teile der eigenen Artikel brauchst, würde ich den copy/paste Weg nehmen. Bitte markiere die alten Seiten mit der Vorlage &amp;lt;nowiki&amp;gt;{{Löschkandidat|Grund}}&amp;lt;/nowiki&amp;gt;, wenn Du alles Wichtige überführt hast, damit die anschließend weg kommen und nicht verwirren.&lt;br /&gt;
:Eigene Seiten, würde ich Verschieben, wenn das Meiste wiederverwendet wird. &lt;br /&gt;
:Die Modulseite von ThomasRamm bitte nicht verschieben. Das Modul wird ja (derzeit) nur nicht weiterentwickelt.&lt;br /&gt;
:Mir fehlt noch ein wenig der Überblick, wie Du hinterher strukturieren möchtest. Darum bin ich etwas unsicher mit weiteren Vorschlaegen. Sollen alle neuen S5 Artikel in eine (neue) Kategorie? Evtl. waere auch ein gleiches Suffix bei den Artikelnamen zur Strukturierung überlegenswert. Momentan ergibt sich aus den Artikelnamen nicht immer, um welches System es geht.&lt;br /&gt;
:Gruß, Christian (der hier auch nichts zu bestimmen hat ;-) )&lt;br /&gt;
&lt;br /&gt;
Hallo Christian,&lt;br /&gt;
&lt;br /&gt;
das mit der Struktur ist mir noch nicht ganz klar. Ich dachte an eine Seitenhierachie mit Hauptartikel zum S5-Teil des S7-Moduls und dann untergeordnete Seiten zu den unterschiedlichen Themen. Wenn ich das richtig verstehe, soll auch jede Seite für sich stehen können? und der Zusammenhang durch Teile des Seitennamens erzeugt werden (Präfix)? Wie und wo werden Kategorien festgelegt, welche gibt es und wozu werden sie verwendet? Was müsste ich da lesen?&lt;br /&gt;
&lt;br /&gt;
Gruß Uwe&lt;br /&gt;
&lt;br /&gt;
:Hallo Uwe!&lt;br /&gt;
:Die derzeitige Kategorienstruktur von FHEMwiki mit ein wenig Erlaeuterung findest Du unter [[FHEMWiki:%C3%9Cber_FHEMWiki#Kategoriestruktur_.2F_-konzept]]. Jeder Artikel sollte einer bzw. mehreren vorhanden Kategorien zugeordnet werden. Das ist quasi ein Strukturierungsmittel im Wiki. Wenn es -wie bei Dir- um Hardwaresystem geht, gibt es für jedes System mit mehreren Artikeln eine Kategorie in die die Artikel aufgenommen werden. Beispielsweise unter [[:Kategorie:EnOcean_Components]] sind alle Artikel zu EnOcean zusammengefasst. Es gibt einen &amp;quot;übergeordneten&amp;quot; Artikel &amp;quot;EnOcean Starter Guide&amp;quot;, der in der Kategorienübersicht als Einstiegsartikel deklariert ist. Die anderen sind untergeordnet, was man aber nicht in der Kategorienzuordnung erkennt. Ein Hardwaresystem mit nur einem Artikel landet in der Kategorie &amp;quot;Other Components&amp;quot;. &lt;br /&gt;
:Kategorie NAME wird bspw. durch Aufnahme des Tags in einen Artikel angelegt &amp;lt;nowiki&amp;gt;[[Kategorie:NAME]]&amp;lt;/nowiki&amp;gt; und alle anderen Artikel durch Aufnahme des Tags der Kategorie zugeordnet. Kategorien-Neuanlage bitte vorher kurz abstimmen.&lt;br /&gt;
:Bei Deinem bisherigen Seiten bin ich mir nicht im Klaren, ob es im Fazit nicht nur 1 Einstiegsartikel ist, der in mehrere Seiten untergliedert wurde. Wenn das zutrifft, wird es meiner Meinung nach durch die Aufteilung in mehrere Seiten unübersichtlich. Aber das ist nur meine persönliche Meinung. Letztlich sollte mMn jede Seite irgendwie schon für sich stehen. Wobei ich auch Deinen Weg nachvollziehen kann.&lt;br /&gt;
:Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 15:20, 7. Aug. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Hallo Christian,&lt;br /&gt;
&lt;br /&gt;
ok werde ich mir durchlesen. Inzwischen habe ich offenbar ThomasRamm mit einer PN geweckt und er hat als Abschiedsvorstellung die Formatierungen und Strukturen in seinem und wahrscheinlich im Sinne von FHEM geändert. Auf jeden Fall stimmt er zu, die alten Seiten von ihm mit dem Erscheinen der offiziellen Variante des neuen Treibers zu löschen.&lt;br /&gt;
&lt;br /&gt;
Gruß uwe&lt;br /&gt;
&lt;br /&gt;
:Hallo Uwe!&lt;br /&gt;
:Ja, ich war/bin ein wenig verwundert über die vielen strukturellen Veraenderungen. Zudem passt das nicht zu dem, was ich bisher von Deinen Ausführungen verstanden hatte: Jetzt sind doch alte mit neuen Inhalten ohne Überarbeitung einfach nur zusammengeführt!? Ob es im Sinne von FHEM ist, kann ich nicht beurteilen. Letztlich bist Du derjenige, der die Seiten erstellt hat und pflegt. Füge am Besten auf Seiten, die Du gerade bearbeitest, die Vorlage &amp;lt;nowiki&amp;gt;{{Baustelle}}&amp;lt;/nowiki&amp;gt; ein. Dann sollte jeder sofort erkennen, dass Du gerade daran arbeitest und so etwas wird verhindert. Mir fehlt nach den Aenderungen und Verschiebungen leider endgueltig der Überblick. Mir ist nur klar, dass ich die S5, S7 - Seiten, wenn Du mehrere behalten möchtest, derzeit am liebesten in eine Kategorie unter Hardware packen würde; nur der Name ist mir noch unklar.&lt;br /&gt;
:Gruß, Christian&lt;br /&gt;
War auch nicht mit mir abgesprochen - ich hab ihm danach geschrieben, einen Zuordnungsfehler zu beseitigen und Kategorien in Absprache mit dir einzusetzen. Ich lass das jetzt auf jeden Fall so, sonst wird man ja irre ;-)&lt;br /&gt;
&lt;br /&gt;
:Hallo Uwe!&lt;br /&gt;
:Braucht er nicht mit mir abzustimmen, sondern eher mit Dir ;-). Du bist doch derjenige, der (hoffentlich) an den Artikeln weiterarbeitet.&lt;br /&gt;
:Mein Vorschlag für alle S5, S7 und Logo-Artikel ist die Einrichtung einer Unterkategorie zu Hardware mit dem Titel Simatic_Components, wenn die Aufteilung auf mehrere separate Artikel auch zukünftig erhalten bleiben soll. Contra ist aber auch willkommen.&lt;br /&gt;
:Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 13:14, 8. Aug. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
== */ Seitenkategorien */ ==&lt;br /&gt;
&lt;br /&gt;
Hallo, will zu dem Thema auch nochmal kurz meine Sichtweise schreiben.&lt;br /&gt;
Bisher waren die einzelnen Seiten sehr verwirrend, man konnte nicht immer erkennen worauf sich einzelne Seiten beziehen und was am schlimmsten war: man hat sie teilweise nicht gefunden.&lt;br /&gt;
Deshalb habe ich als ersten Schritt die Seiten untereinander besser verlinkt und die Seitennamen angepasst so das immer hervorgeht um welches Modul es sich handelt. Die Seiten sind jetzt schon mal viel übersichtlicher.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es jetzt nur noch folgende Seiten:&lt;br /&gt;
*Siemens S5 (Original Modul-Seite)&lt;br /&gt;
*Siemens S5 Beispielkonfiguration einer S5-95U (Beispiele zu meinem Modul, verfasst von Uwe)&lt;br /&gt;
*Siemens S5 Vorbemerkungen für Einsteiger&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*S7 (Original Modul-Seite)&lt;br /&gt;
*S7 Beispielkonfiguration (Beispiel zum Modul, verfasst von Uwe)&lt;br /&gt;
*S7 S5-Support (Beschreibt die Erweiterung des S7 Moduls, verfasst von Uwe)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*LOGO - Das Logikmodul (weiteres Modul für Siemens PLC von John)&lt;br /&gt;
&lt;br /&gt;
Wenn das S7 Modul zukünftig auch für die S5 (Vorgänger der S7) nutzbar ist, gibt es zwei Module die das gleiche können, dadurch wird mein Modul obsolet und die Seiten Siemens S5... können gelöscht werden, bzw wenigstens die Seite Siemens S5 sollte besser umgeschrieben werden (auf Benutzung des S7 Moduls).&lt;br /&gt;
&lt;br /&gt;
Inhalte habe ich keine gelöscht, nur eben besser zusammengefasst.&lt;br /&gt;
&lt;br /&gt;
Offen ist noch die Kategorisierung der Seiten. Deinen Vorschlag finde ich schon ganz gut aber noch nicht komplett passend.&lt;br /&gt;
Wir haben hier eigentlich aktuell 3 Module die teilweise das gleiche tun, aber doch eigenständige Entwicklungen sind die nichts miteinander zu tun haben.&lt;br /&gt;
z.B. bei EnOcean_Components gehören alle Seiten zusammen da sie alle mehr oder weniger das gleiche Modul bzw. Komponenten zu diesem Modul beschreiben.&lt;br /&gt;
Hier haben wir 3 komplett voneinander getrennte Systeme. Da alle vom gleichen Hersteller sind würde ich sie am ehesten als &amp;quot;Siemens Simatic Systems&amp;quot; beschreiben (sind ja keine Komponenten die man zu einem großen System zusammensteckt sondern jeweils komplette Systeme). &lt;br /&gt;
&lt;br /&gt;
Mit dem Modul S7 lässt sich aber auch eine Logo steuern, und (neu) auch eine S5 deshalb gehören sie dann doch wieder zusammen. &lt;br /&gt;
Aktuell ist das Modul S7 und das Modul LOGO in der Kategorie &amp;quot;Other Components&amp;quot; zu finden.&lt;br /&gt;
&lt;br /&gt;
Mein Vorschag: Alle oben aufgeführten Seiten in folgende Kategorien einordnen:&lt;br /&gt;
* Siemens Simatic Systems oder Siemens Plc&lt;br /&gt;
* Gerätemodul (hier jeweils nur die Modul Hauptseite? ohne Beispielkonfigurationen etc.)&lt;br /&gt;
&lt;br /&gt;
PS: Der oben in der Diskussion immer wieder vorkommende Gedanke &amp;quot;Die Seite gehört dir, die hast du geschrieben, das musst du entscheiden...&amp;quot; kann ich nicht ganz so teilen, bin beruflich selber Admin eines Firmenwiki und predige allen die Philosophie das jeder alles ändern soll wenn er meint das etwas verbessert werden kann. Wurde etwas nicht bedacht lässt es sich einfach wieder Rückgängig machen. Das ist wesentlich effektiver als bei dem ursprünglichen Autor nachzufragen. Die Fälle in denen etwas verschlimmbessert wurde und ich aktiv eingegriffen habe lassen sich an beiden Händen abzählen und das bei ca. 200 aktiven Benutzern pro Tag. Meine Empfehlung: [https://de.wikipedia.org/wiki/Wikipedia:Sei_mutig Sei mutig (Wikipedia Bearbeitungsregeln)]&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:ThomasRamm|ThomasRamm]] ([[Benutzer Diskussion:ThomasRamm|Diskussion]]) 22:27, 9. Aug. 2016 (CEST)&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Siemens_S5_Beispielkonfiguration&amp;diff=16130</id>
		<title>Siemens S5 Beispielkonfiguration</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Siemens_S5_Beispielkonfiguration&amp;diff=16130"/>
		<updated>2016-08-09T19:35:09Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: ThomasRamm verschob die Seite Siemens S5 Beispielkonfiguration nach S7 Beispielkonfiguration: versehentlich falsches Prefix vergeben&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[S7 Beispielkonfiguration]]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=S7_Beispielkonfiguration&amp;diff=16129</id>
		<title>S7 Beispielkonfiguration</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=S7_Beispielkonfiguration&amp;diff=16129"/>
		<updated>2016-08-09T19:35:09Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: ThomasRamm verschob die Seite Siemens S5 Beispielkonfiguration nach S7 Beispielkonfiguration: versehentlich falsches Prefix vergeben&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Artikel beschreibt eine Beispielkonfiguration für die Hardware [[S7 S5-Support|Siemens S5]].&lt;br /&gt;
Ausgangspunkt ist eine in 20 Jahren gewachsene S5 95U-Haussteuerung. Inzwischen wurde begonnen diese an unkritischen Stellen um eine FHEM-Anbindung zu ergänzen. Ich demonstriere die vorhandenen Möglichkeiten, indem ich meinen Arbeitsfortschritt hier dokumentiere.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Status von S5-Ausgängen in FHEM anzeigen==&lt;br /&gt;
Bei mir wird die biologische Nachklärung des Abwassers mit einem Launhardt-Reaktor erledigt. Drei Pumpen werden durch die S5 zeitgesteuert geschaltet (A13.0 .. A13.2). In FHEM soll der Status der Ausgänge angezeigt werden. Dazu müssen nur die betreffenden Ausgänge in FHEM bekannt gemacht werden. Änderungen am S5-Programm sind nicht notwendig.&lt;br /&gt;
&lt;br /&gt;
 define s5test S7 S5 /dev/ttyAMA0&lt;br /&gt;
&lt;br /&gt;
 define Abpumpen S7_DRead outputs 0 13.0&lt;br /&gt;
 attr Abpumpen IODev s5test&lt;br /&gt;
 attr Abpumpen icon icoBaum&lt;br /&gt;
 attr Abpumpen room Abwasser&lt;br /&gt;
 attr Abpumpen sortby 03&lt;br /&gt;
&lt;br /&gt;
 define Umpumpen S7_DRead outputs 0 13.1&lt;br /&gt;
 attr Umpumpen IODev s5test&lt;br /&gt;
 attr Umpumpen icon audio_repeat&lt;br /&gt;
 attr Umpumpen room Abwasser&lt;br /&gt;
 attr Umpumpen sortby 02&lt;br /&gt;
&lt;br /&gt;
 define Zupumpen S7_DRead outputs 0 13.2&lt;br /&gt;
 attr Zupumpen IODev s5test&lt;br /&gt;
 attr Zupumpen icon scene_toilet_alternat&lt;br /&gt;
 attr Zupumpen room Abwasser&lt;br /&gt;
 attr Zupumpen sortby 01&lt;br /&gt;
&lt;br /&gt;
[[File:Launhardt-web.png]]&lt;br /&gt;
&lt;br /&gt;
==vorhandene S5-Lampensteuerung um FHEM ergänzen==&lt;br /&gt;
Das S5-Programm für das Schalten der Beleuchtung mittels Taster soll auch bei ausgefallenem FHEM funktionieren wie bisher. Dazu schaltet FHEM spezielle Merker, die dann per ODER mit den anderen Eingängen verknüpft werden, hier Merker M 65.0 (vier ergänzte Zeilen):&lt;br /&gt;
&lt;br /&gt;
 NETZWERK   12           Arbeitszimmer&lt;br /&gt;
 00AC      :U(                                      &lt;br /&gt;
 00AD      :U(                              &lt;br /&gt;
 00AE      :O   E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00AF      :O   M  65.0                              Merker für FHEM&lt;br /&gt;
 00B0      :)                               &lt;br /&gt;
 00B1      :UN  M  61.4                              Flankenmerker&lt;br /&gt;
 00B2      :S   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00B3      :U(                               &lt;br /&gt;
 00B4      :O   E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00B5      :O   M  65.0                              Merker für FHEM&lt;br /&gt;
 00B6      :)                               &lt;br /&gt;
 00B7      :U   M  61.4                              Flankenmerker&lt;br /&gt;
 00B8      :R   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00B9      :U   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00BA      :)&lt;br /&gt;
 00BB      :UN  E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00BC      :UN  M  65.0                              Merker für FHEM&lt;br /&gt;
 00BD      :S   M  61.4                              Flankenmerker&lt;br /&gt;
 00BE      :UN  E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00BF      :UN  M  65.0                              Merker für FHEM&lt;br /&gt;
 00C0      :UN  A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00C1      :R   M  61.4                              Flankenmerker&lt;br /&gt;
 00C2      :NOP 0 &lt;br /&gt;
           :***&lt;br /&gt;
&#039;&#039;&#039;zugehörige FHEM-Konfiguration:&#039;&#039;&#039;&lt;br /&gt;
 define s5test S7 S5 /dev/ttyAMA0                    #FHEM Hardwarezugriff konfigurieren&lt;br /&gt;
&lt;br /&gt;
 define M65.0 S7_DWrite flags 0 65.0                 #S5-Merker M65.0 für FHEM-Schreibzugriff&lt;br /&gt;
 attr M65.0 IODev s5test                             #M65.0 an /dev/ttyAMA0 ist gemeint&lt;br /&gt;
 attr M65.0 eventMap /on-for-timer 1 /trigger:tasten #1-s-Impuls außerdem Web: trigger -&amp;gt; tasten &lt;br /&gt;
 attr M65.0 icon light_pendant_light                 #Standard-Icon ersetzen&lt;br /&gt;
 attr M65.0 room Arbeitszimmer                       #Raumzuordnung zur optischen Gruppierung&lt;br /&gt;
 attr M65.0 webCmd tasten                            #Button auf Weboberfläche gelabelt als &amp;quot;tasten&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Das Merkerbyte 65 muss für den FHEM-Schreibzugriff reserviert sein. Die Lampe kann nun zusätzlich über das Webinterface oder die Smartphone-App geschaltet werden.&lt;br /&gt;
&lt;br /&gt;
==Namenskonvention für S5-FHEM-Projekt==&lt;br /&gt;
Um ein gewachsenes Projekt mit erträglichem Aufwand in die neue Zeit zu retten, ist es erforderlich nur systematische Änderungen vorzunehmen. Erst Änderungen exemplarisch testen und dann für alle gleichartigen Fälle übernehmen. Um dabei die Übersicht nicht zu verlieren, habe ich mich entschlossen in Anlehnung an [https://www.fischer-net.de/hausautomation/fhem/22-fhem-devicenamen.html FISCHER-NET.DE] ein Namensschema einzuführen. Die langen FHEM-Namen passen nur als Symbolik-Kommentar in die S5.&lt;br /&gt;
&lt;br /&gt;
==FHEM-S5-Lampensteuerung tastbar um ein/aus ergänzen==&lt;br /&gt;
&lt;br /&gt;
Bei einem Wandtaster kann entschieden werden, welchen Zustand die Lampe hat, weil man sie sieht. Anders beim Webinterface, hier wäre ein gezieltes ein- bzw. ausschalten besser, weil man eventuell entfernt handelt. Damit läßt sich auch eine zentrales Licht-AUS bzw. eine Alarmbeleuchtung mit ALLES-AN realisieren. Je ein 16-Bit-Word wird für das Tasten, das Einschalten bzw. das Ausschalten vorgesehen. Das reicht für maximal 16 Lampen. Hier also das MW164 für Tasten, MW166 für Ein und MW168 für AUS. M164.7 für das Tasten, M166.7 für EIN und M168.7 für AUS der Giebellampe. Die notwendigen Konfigurationen für weitere Lampen können so kopiert und brauchen nur minimal angepasst werden. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;S5-Programm nochmals ergänzt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NETZWERK   12           Arbeitszimmer&lt;br /&gt;
 00AC      :O(&lt;br /&gt;
 00AD      :U(                                       &lt;br /&gt;
 00AE      :U(&lt;br /&gt;
 00AF      :O   -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00B0      :O   -M 164.7                    M164.7   OG.Az.M1647.LaGiTast FHEM&lt;br /&gt;
 00B1      :)&lt;br /&gt;
 00B2      :UN  -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00B3      :)&lt;br /&gt;
 00B4      :O   -M 166.7                    M166.7   OG.Az.M1667.LaGiEin FHEM&lt;br /&gt;
 00B5      :S   -AzLaG                      A65.7    Lampe Arbeiten Giebel&lt;br /&gt;
 00B6      :O(&lt;br /&gt;
 00B7      :U(&lt;br /&gt;
 00B8      :O   -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00B9      :O   -M 164.7                    M164.7   OG.Az.M1647.LaGiTast FHEM&lt;br /&gt;
 00BA      :)&lt;br /&gt;
 00BB      :U   -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00BC      :)&lt;br /&gt;
 00BD      :O   -M 168.7                    M168.7   OG.Az.M1667.LaGiAus FHEM&lt;br /&gt;
 00BE      :R   -AzLaG                      A65.7    Lampe Arbeiten Giebel&lt;br /&gt;
 00BF      :U   -AzLaG                      A65.7    Lampe Arbeiten Giebel&lt;br /&gt;
 00C0      :)&lt;br /&gt;
 00C1      :UN  -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00C2      :UN  -M 164.7                    M164.7   OG.Az.M1647.LaGiTast FHEM&lt;br /&gt;
 00C3      :S   -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00C4      :UN  -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00C5      :UN  -M 164.7                    M164.7   OG.Az.M1647.LaGiTast FHEM&lt;br /&gt;
 00C6      :UN  -AzLaG                      A65.7    Lampe Arbeiten Giebel&lt;br /&gt;
 00C7      :R   -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00C8      :NOP 0&lt;br /&gt;
[[File:FUP-Giebellampe.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;zugehöriger Abschnitt aus der fhem.cfg&#039;&#039;&#039;&lt;br /&gt;
 define s5test S7 S5 /dev/ttyAMA0&lt;br /&gt;
&lt;br /&gt;
 define OG.az.M1647.LichtGtast S7_DWrite flags 0 164.7&lt;br /&gt;
 attr OG.az.M1647.LichtGtast IODev s5test&lt;br /&gt;
 attr OG.az.M1647.LichtGtast alias Giebellampe&lt;br /&gt;
 attr OG.az.M1647.LichtGtast eventMap /on-for-timer 1 /trigger:tasten&lt;br /&gt;
 attr OG.az.M1647.LichtGtast icon light_pendant_light&lt;br /&gt;
 attr OG.az.M1647.LichtGtast room Arbeitszimmer&lt;br /&gt;
 attr OG.az.M1647.LichtGtast webCmd tasten&lt;br /&gt;
&lt;br /&gt;
 define OG.az.M1667.LichtGaus S7_DWrite flags 0 166.7&lt;br /&gt;
 attr OG.az.M1667.LichtGaus IODev s5test&lt;br /&gt;
 attr OG.az.M1667.LichtGaus alias Giebellampe.aus&lt;br /&gt;
 attr OG.az.M1667.LichtGaus eventMap /on-for-timer 1 /trigger:tasten&lt;br /&gt;
 attr OG.az.M1667.LichtGaus icon light_light&lt;br /&gt;
 attr OG.az.M1667.LichtGaus room Arbeitszimmer&lt;br /&gt;
 attr OG.az.M1667.LichtGaus webCmd tasten&lt;br /&gt;
&lt;br /&gt;
 define OG.az.M1687.LichtGein S7_DWrite flags 0 168.7&lt;br /&gt;
 attr OG.az.M1687.LichtGein IODev s5test&lt;br /&gt;
 attr OG.az.M1687.LichtGein alias Giebellampe.an&lt;br /&gt;
 attr OG.az.M1687.LichtGein eventMap /on-for-timer 1 /trigger:tasten&lt;br /&gt;
 attr OG.az.M1687.LichtGein icon light_light_dim_100&lt;br /&gt;
 attr OG.az.M1687.LichtGein room Arbeitszimmer&lt;br /&gt;
 attr OG.az.M1687.LichtGein webCmd tasten&lt;br /&gt;
&lt;br /&gt;
Das FHEM-Gerät trägt nun einen strukturierten Namen, um es leicht zuordnen zu können. Auf der grafischen Oberfläche ist dies durch die Raumzuordung überflüssig. Hier wird der Alias Giebellampe verwendet. Außerdem kann man es gezielt aus- bzw. eintasten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
[[File:Giebellampe2.png]]&lt;br /&gt;
&lt;br /&gt;
==FHEM-S5-Rolladensteuerung ergänzen==&lt;br /&gt;
&lt;br /&gt;
In meiner S5 existiert bisher ein Programm welches nur einen Taster mit hoch - stop - runter - stop verwendet. Bei der Rolladensteuerung über das Webinterface ist es sinnvoller je einen Button für das Hochfahren, einen für das Runterfahren und einen für STOP zu konfigurieren.  Wie bei der Lampenschaltung soll sich auch hier ein zentrales HOCH bzw. RUNTER für alle vorhandenen Rolläden realisieren lassen. Dazu werden in der S5 das Merkerbyte MB176 bzw. M176.3 für HOCH und MB178 bzw. M178.3 für RUNTER und MB177 bzw. M177.3 für STOP für den FHEM-Zugriff konfiguriert. Damit sind maximal acht Rollläden .0 bis .7 möglich.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;S5-Programm&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 NETZWERK   2            RL Schlafen hoch&lt;br /&gt;
 0012      :O(&lt;br /&gt;
 0013      :O   -XRUPS                      M19.2    Tasterauswertung RL Schlafen hoc&lt;br /&gt;
 0014      :O   -M 176.3                    M176.3   OG.Sz.M1763.RlHo FHEM&lt;br /&gt;
 0015      :)&lt;br /&gt;
 0016      :UN  -RDNS                       A10.5    Ausgang RLaden runter Schlafen&lt;br /&gt;
 0017      :L   KT 030.2&lt;br /&gt;
 0019      :SA  T  5                                 Timer Schlafen hoch&lt;br /&gt;
 001A      :O   -RDNS                       A10.5    Ausgang RLaden runter Schlafen&lt;br /&gt;
 001B      :O   -XRDNS                      M19.3    Tasterauswertung RL Schlafen run&lt;br /&gt;
 001C      :O   -RStopS                     M19.4    RL Stop&lt;br /&gt;
 001D      :O   -M 177.3                    M177.3   OG.Sz.M1763.RlStop FHEM&lt;br /&gt;
 001E      :O   -M 178.3                    M178.3   OG.Sz.M1763.RlRu FHEM&lt;br /&gt;
 001F      :R   T  5                                 Timer Schlafen hoch&lt;br /&gt;
 0020      :NOP 0&lt;br /&gt;
 0021      :NOP 0&lt;br /&gt;
 0022      :U   T  5                                 Timer Schlafen hoch&lt;br /&gt;
 0023      :=   -RUPS                       A10.4    Ausgang RLaden hoch Schlafem&lt;br /&gt;
 0024      :***&lt;br /&gt;
        &lt;br /&gt;
 NETZWERK   3            RL Schlafen runter&lt;br /&gt;
 0025      :O(&lt;br /&gt;
 0026      :O   -XRDNS                      M19.3    Tasterauswertung RL Schlafen run&lt;br /&gt;
 0027      :O   -M 178.3                    M178.3   OG.Sz.M1763.RlRu FHEM&lt;br /&gt;
 0028      :)&lt;br /&gt;
 0029      :UN  -RUPS                       A10.4    Ausgang RLaden hoch Schlafen&lt;br /&gt;
 002A      :L   KT 030.2&lt;br /&gt;
 002C      :SA  T  6                                 Timer Schlafen runter&lt;br /&gt;
 002D      :O   -RUPS                       A10.4    Ausgang RLaden hoch Schlafen&lt;br /&gt;
 002E      :O   -XRUPS                      M19.2    Tasterauswertung RL Schlafen hoc&lt;br /&gt;
 002F      :O   -RStopS                     M19.4    RL Stop&lt;br /&gt;
 0030      :O   -M 177.3                    M177.3   OG.Sz.M1763.RlStop FHEM&lt;br /&gt;
 0031      :O   -M 176.3                    M176.3   OG.Sz.M1763.RlHo FHEM&lt;br /&gt;
 0032      :R   T  6                                 Timer Schlafen runter&lt;br /&gt;
 0033      :NOP 0&lt;br /&gt;
 0034      :NOP 0&lt;br /&gt;
 0035      :U   T  6                                 Timer Schlafen runter&lt;br /&gt;
 0036      :=   -RDNS                       A10.5    Ausgang RLaden runter Schlafen&lt;br /&gt;
 0037      :***&lt;br /&gt;
       &lt;br /&gt;
[[File:FUP-RL.png]]&lt;br /&gt;
&lt;br /&gt;
Der Motorschutz-Timer sorgt dafür, dass die Stromversorgung nach der maximalen Laufzeit abgeschaltet wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;zugehöriger Abschnitt aus der fhem.cfg&#039;&#039;&#039;&lt;br /&gt;
 define OG.sz.M1763.RlHo S7_DWrite flags 0 176.3&lt;br /&gt;
 attr OG.sz.M1763.RlHo IODev s5test&lt;br /&gt;
 attr OG.sz.M1763.RlHo alias Rollladen.hoch&lt;br /&gt;
 attr OG.sz.M1763.RlHo eventMap /on-for-timer 1 /trigger:tasten&lt;br /&gt;
 attr OG.sz.M1763.RlHo icon rc_UP&lt;br /&gt;
 attr OG.sz.M1763.RlHo room Schlafen&lt;br /&gt;
 attr OG.sz.M1763.RlHo sortby 01&lt;br /&gt;
 attr OG.sz.M1763.RlHo webCmd tasten&lt;br /&gt;
 &lt;br /&gt;
 define OG.sz.M1773.RlStop S7_DWrite flags 0 177.3&lt;br /&gt;
 attr OG.sz.M1773.RlStop IODev s5test&lt;br /&gt;
 attr OG.sz.M1773.RlStop alias Rollladen.stop&lt;br /&gt;
 attr OG.sz.M1773.RlStop eventMap /on-for-timer 1 /trigger:tasten&lt;br /&gt;
 attr OG.sz.M1773.RlStop icon rc_REC&lt;br /&gt;
 attr OG.sz.M1773.RlStop room Schlafen&lt;br /&gt;
 attr OG.sz.M1773.RlStop sortby 02&lt;br /&gt;
 attr OG.sz.M1773.RlStop webCmd tasten&lt;br /&gt;
 &lt;br /&gt;
 define OG.sz.M1783.RlRu S7_DWrite flags 0 178.3&lt;br /&gt;
 attr OG.sz.M1783.RlRu IODev s5test&lt;br /&gt;
 attr OG.sz.M1783.RlRu alias Rollladen.runter&lt;br /&gt;
 attr OG.sz.M1783.RlRu eventMap /on-for-timer 1 /trigger:tasten&lt;br /&gt;
 attr OG.sz.M1783.RlRu icon rc_DOWN&lt;br /&gt;
 attr OG.sz.M1783.RlRu room Schlafen&lt;br /&gt;
 attr OG.sz.M1783.RlRu sortby 03&lt;br /&gt;
 attr OG.sz.M1783.RlRu webCmd tasten&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:rl-web.png]]&lt;br /&gt;
&lt;br /&gt;
Der Rolladen kann nun über das Webinterface auf beliebigen Geräten gezielt geschlossen bzw. geöffnet werden.&lt;br /&gt;
&lt;br /&gt;
==FHEM-S5-Bewässerungssteuerung ergänzen==&lt;br /&gt;
&lt;br /&gt;
Bisher können vier Gartenschläuche mit Perlschläuchen über Magnetventile per Taster bzw. Zeitschaltung betrieben werden. Zusätzlich soll warmes Wasser zugemischt werden können, um eine Überhitzung der Dachkollektoren zu verhindern. Die Zeitschaltung ist nur äußerst unkomfortabel über einen Datenbaustein zu konfigurieren und wurde daher kaum benutzt. Im Ergebnis lief das Wasser im Garten oft unkontrolliert über viele Stunden. Ziel mit FHEM ist eine deutliche Verbesserung. Zunächst wird die Einschaltzeit per FHEM auf 90 min begrenzt.&lt;br /&gt;
[[File:Qe-bewaesserung.png|mini|ohne|Schaltplan der Bewässerung]]&lt;br /&gt;
wird fortgesetzt ..&lt;br /&gt;
zurück zum [[S7 S5-Support#Erfahrungen|Ausgangs-Artikel]]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=S7_Beispielkonfiguration&amp;diff=16052</id>
		<title>S7 Beispielkonfiguration</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=S7_Beispielkonfiguration&amp;diff=16052"/>
		<updated>2016-08-07T14:34:38Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: Zusammenfassung von stubs zu einem Artikel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Artikel beschreibt eine Beispielkonfiguration für die Hardware [[S7 S5-Support|Siemens S5]].&lt;br /&gt;
Ausgangspunkt ist eine in 20 Jahren gewachsene S5 95U-Haussteuerung. Inzwischen wurde begonnen diese an unkritischen Stellen um eine FHEM-Anbindung zu ergänzen. Ich demonstriere die vorhandenen Möglichkeiten, indem ich meinen Arbeitsfortschritt hier dokumentiere.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==vorhandene S5-Lampensteuerung um FHEM ergänzen==&lt;br /&gt;
Das S5-Programm für das Schalten der Beleuchtung mittels Taster und zusätzlich über FHEM:&lt;br /&gt;
&lt;br /&gt;
 NETZWERK   12           Arbeitszimmer&lt;br /&gt;
 00AC      :U(                                      &lt;br /&gt;
 00AD      :U(                              &lt;br /&gt;
 00AE      :O   E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00AF      :O   M  65.0                              Merker für FHEM&lt;br /&gt;
 00B0      :)                               &lt;br /&gt;
 00B1      :UN  M  61.4                              Flankenmerker&lt;br /&gt;
 00B2      :S   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00B3      :U(                               &lt;br /&gt;
 00B4      :O   E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00B5      :O   M  65.0                              Merker für FHEM&lt;br /&gt;
 00B6      :)                               &lt;br /&gt;
 00B7      :U   M  61.4                              Flankenmerker&lt;br /&gt;
 00B8      :R   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00B9      :U   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00BA      :)&lt;br /&gt;
 00BB      :UN  E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00BC      :UN  M  65.0                              Merker für FHEM&lt;br /&gt;
 00BD      :S   M  61.4                              Flankenmerker&lt;br /&gt;
 00BE      :UN  E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00BF      :UN  M  65.0                              Merker für FHEM&lt;br /&gt;
 00C0      :UN  A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00C1      :R   M  61.4                              Flankenmerker&lt;br /&gt;
 00C2      :NOP 0 &lt;br /&gt;
           :***&lt;br /&gt;
zugehörige FHEM-Konfiguration:&lt;br /&gt;
 define s5test S7 S5 /dev/ttyAMA0                    #FHEM Hardwarezugriff konfigurieren&lt;br /&gt;
 define M65.0 S7_DWrite flags 0 65.0                 #S5-Merker M65.0 für FHEM-Schreibzugriff&lt;br /&gt;
 attr M65.0 IODev s5test                             #M65.0 an /dev/ttyAMA0 ist gemeint&lt;br /&gt;
 attr M65.0 eventMap /on-for-timer 1 /trigger:tasten #1-s-Impuls außerdem Web: trigger -&amp;gt; tasten &lt;br /&gt;
 attr M65.0 icon light_pendant_light                 #Standard-Icon ersetzen&lt;br /&gt;
 attr M65.0 room Arbeitszimmer                       #Raumzuordnung zur optischen Gruppierung&lt;br /&gt;
 attr M65.0 webCmd tasten                            #Button auf Weboberfläche gelabelt als &amp;quot;tasten&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Das Merkerbyte 65 muss für den FHEM-Schreibzugriff reserviert sein. Die Lampe kann nun zusätzlich über das Webinterface oder die Smartphone-App geschaltet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bisher funktionieren von jedem Merkerbyte nur die ersten 4 Bit, hier also M 65.0 bis M 65.3. Die restlichen können bisher nicht benutzt werden.&lt;br /&gt;
&lt;br /&gt;
==Namenskonvention für S5-FHEM-Projekt==&lt;br /&gt;
Um ein gewachsenes Projekt mit erträglichem Aufwand in die neue Zeit zu retten, ist es erforderlich nur systematische Änderungen vorzunehmen. Erst Änderungen exemplarisch testen und dann für alle gleichartigen Fälle übernehmen. Um dabei die Übersicht nicht zu verlieren, habe ich mich entschlossen in Anlehnung an [https://www.fischer-net.de/hausautomation/fhem/22-fhem-devicenamen.html FISCHER-NET.DE] ein Namensschema einzuführen. Allerdings unterstützt die S5 nur sieben Zeichen lange Namen. Diese werden durch sinnvolle Kürzung aus dem FHEM-Namen abgeleitet und zusätzlich im Kommentar gespeichert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;S5-Programm&#039;&#039;&#039;&lt;br /&gt;
 NETZWERK   12           Arbeitszimmer&lt;br /&gt;
 00AC      :U(                                       &lt;br /&gt;
 00AD      :U(&lt;br /&gt;
 00AE      :O   -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00AF      :O   -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00B0      :)&lt;br /&gt;
 00B1      :UN  -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00B2      :S   -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00B3      :U(&lt;br /&gt;
 00B4      :O   -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00B5      :O   -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00B6      :)&lt;br /&gt;
 00B7      :U   -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00B8      :R   -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00B9      :U   -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00BA      :)&lt;br /&gt;
 00BB      :UN  -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00BC      :UN  -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00BD      :S   -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00BE      :UN  -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00BF      :UN  -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00C0      :UN  -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00C1      :R   -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00C2      :NOP 0&lt;br /&gt;
          :***&lt;br /&gt;
&#039;&#039;&#039;zugehöriger Abschnitt aus der fhem.cfg&#039;&#039;&#039;&lt;br /&gt;
 define s5test S7 S5 /dev/ttyAMA0&lt;br /&gt;
 define OG.az.M653.LichtG S7_DWrite flags 0 165.3&lt;br /&gt;
 attr OG.az.M653.LichtG IODev s5test&lt;br /&gt;
 attr OG.az.M653.LichtG eventMap /on-for-timer 1 /trigger:tasten&lt;br /&gt;
 attr OG.az.M653.LichtG icon light_pendant_light&lt;br /&gt;
 attr OG.az.M653.LichtG room Arbeitszimmer&lt;br /&gt;
 attr alisa Giebellampe&lt;br /&gt;
 attr OG.az.M653.LichtG webCmd tasten&lt;br /&gt;
&lt;br /&gt;
Das FHEM-Gerät trägt nun einen strukturierten Namen, um es leicht zuordnen zu können. Auf der grafischen Oberfläche ist dies durch die Raumzuordung überflüssig. Hier wird der Alias Giebellampe verwendet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Giebellampe.png]]&lt;br /&gt;
&lt;br /&gt;
==FHEM-S5-Lampensteuerung tastbar um ein/aus ergänzen==&lt;br /&gt;
ToDo...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zurück zum [[S7 S5-Support#Erfahrungen|Ausgangs-Artikel]]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=S7_Beispielkonfiguration&amp;diff=16050</id>
		<title>S7 Beispielkonfiguration</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=S7_Beispielkonfiguration&amp;diff=16050"/>
		<updated>2016-08-07T14:32:07Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: Zusammenfassung von stubs zu einem Artikel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Artikel beschreibt eine Beispielkonfiguration für die Hardware [[S7 S5-Support|Siemens S5]].&lt;br /&gt;
Beschrieben werden hier die einzelnen Schritte die zur Integration von fhem in die vorhandene S5 Programmierung unternommen wurden.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==vorhandene S5-Lampensteuerung um FHEM ergänzen==&lt;br /&gt;
Das S5-Programm für das Schalten der Beleuchtung mittels Taster und zusätzlich über FHEM:&lt;br /&gt;
&lt;br /&gt;
 NETZWERK   12           Arbeitszimmer&lt;br /&gt;
 00AC      :U(                                      &lt;br /&gt;
 00AD      :U(                              &lt;br /&gt;
 00AE      :O   E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00AF      :O   M  65.0                              Merker für FHEM&lt;br /&gt;
 00B0      :)                               &lt;br /&gt;
 00B1      :UN  M  61.4                              Flankenmerker&lt;br /&gt;
 00B2      :S   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00B3      :U(                               &lt;br /&gt;
 00B4      :O   E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00B5      :O   M  65.0                              Merker für FHEM&lt;br /&gt;
 00B6      :)                               &lt;br /&gt;
 00B7      :U   M  61.4                              Flankenmerker&lt;br /&gt;
 00B8      :R   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00B9      :U   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00BA      :)&lt;br /&gt;
 00BB      :UN  E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00BC      :UN  M  65.0                              Merker für FHEM&lt;br /&gt;
 00BD      :S   M  61.4                              Flankenmerker&lt;br /&gt;
 00BE      :UN  E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00BF      :UN  M  65.0                              Merker für FHEM&lt;br /&gt;
 00C0      :UN  A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00C1      :R   M  61.4                              Flankenmerker&lt;br /&gt;
 00C2      :NOP 0 &lt;br /&gt;
           :***&lt;br /&gt;
zugehörige FHEM-Konfiguration:&lt;br /&gt;
 define s5test S7 S5 /dev/ttyAMA0                    #FHEM Hardwarezugriff konfigurieren&lt;br /&gt;
 define M65.0 S7_DWrite flags 0 65.0                 #S5-Merker M65.0 für FHEM-Schreibzugriff&lt;br /&gt;
 attr M65.0 IODev s5test                             #M65.0 an /dev/ttyAMA0 ist gemeint&lt;br /&gt;
 attr M65.0 eventMap /on-for-timer 1 /trigger:tasten #1-s-Impuls außerdem Web: trigger -&amp;gt; tasten &lt;br /&gt;
 attr M65.0 icon light_pendant_light                 #Standard-Icon ersetzen&lt;br /&gt;
 attr M65.0 room Arbeitszimmer                       #Raumzuordnung zur optischen Gruppierung&lt;br /&gt;
 attr M65.0 webCmd tasten                            #Button auf Weboberfläche gelabelt als &amp;quot;tasten&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Das Merkerbyte 65 muss für den FHEM-Schreibzugriff reserviert sein. Die Lampe kann nun zusätzlich über das Webinterface oder die Smartphone-App geschaltet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bisher funktionieren von jedem Merkerbyte nur die ersten 4 Bit, hier also M 65.0 bis M 65.3. Die restlichen können bisher nicht benutzt werden.&lt;br /&gt;
&lt;br /&gt;
==Namenskonvention für S5-FHEM-Projekt==&lt;br /&gt;
Um ein gewachsenes Projekt mit erträglichem Aufwand in die neue Zeit zu retten, ist es erforderlich nur systematische Änderungen vorzunehmen. Erst Änderungen exemplarisch testen und dann für alle gleichartigen Fälle übernehmen. Um dabei die Übersicht nicht zu verlieren, habe ich mich entschlossen in Anlehnung an [https://www.fischer-net.de/hausautomation/fhem/22-fhem-devicenamen.html FISCHER-NET.DE] ein Namensschema einzuführen. Allerdings unterstützt die S5 nur sieben Zeichen lange Namen. Diese werden durch sinnvolle Kürzung aus dem FHEM-Namen abgeleitet und zusätzlich im Kommentar gespeichert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;S5-Programm&#039;&#039;&#039;&lt;br /&gt;
 NETZWERK   12           Arbeitszimmer&lt;br /&gt;
 00AC      :U(                                       &lt;br /&gt;
 00AD      :U(&lt;br /&gt;
 00AE      :O   -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00AF      :O   -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00B0      :)&lt;br /&gt;
 00B1      :UN  -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00B2      :S   -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00B3      :U(&lt;br /&gt;
 00B4      :O   -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00B5      :O   -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00B6      :)&lt;br /&gt;
 00B7      :U   -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00B8      :R   -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00B9      :U   -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00BA      :)&lt;br /&gt;
 00BB      :UN  -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00BC      :UN  -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00BD      :S   -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00BE      :UN  -AzLiGt                     E64.7    Lichttaster&lt;br /&gt;
 00BF      :UN  -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00C0      :UN  -AzLaG                      M165.3   OG.Az.M653.LampeG FHEM-Merker&lt;br /&gt;
 00C1      :R   -AzLaGf                     M61.4    Flankenmerker&lt;br /&gt;
 00C2      :NOP 0&lt;br /&gt;
          :***&lt;br /&gt;
&#039;&#039;&#039;zugehöriger Abschnitt aus der fhem.cfg&#039;&#039;&#039;&lt;br /&gt;
 define s5test S7 S5 /dev/ttyAMA0&lt;br /&gt;
 define OG.az.M653.LichtG S7_DWrite flags 0 165.3&lt;br /&gt;
 attr OG.az.M653.LichtG IODev s5test&lt;br /&gt;
 attr OG.az.M653.LichtG eventMap /on-for-timer 1 /trigger:tasten&lt;br /&gt;
 attr OG.az.M653.LichtG icon light_pendant_light&lt;br /&gt;
 attr OG.az.M653.LichtG room Arbeitszimmer&lt;br /&gt;
 attr alisa Giebellampe&lt;br /&gt;
 attr OG.az.M653.LichtG webCmd tasten&lt;br /&gt;
&lt;br /&gt;
Das FHEM-Gerät trägt nun einen strukturierten Namen, um es leicht zuordnen zu können. Auf der grafischen Oberfläche ist dies durch die Raumzuordung überflüssig. Hier wird der Alias Giebellampe verwendet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Giebellampe.png]]&lt;br /&gt;
&lt;br /&gt;
==FHEM-S5-Lampensteuerung tastbar um ein/aus ergänzen==&lt;br /&gt;
ToDo...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zurück zum [[S7 S5-Support#Erfahrungen|Ausgangs-Artikel]]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Projektvorschlag:_S5_als_Ein-_bzw._Ausgangsklemmen_f%C3%BCr_FHEM_einsetzen&amp;diff=16049</id>
		<title>Projektvorschlag: S5 als Ein- bzw. Ausgangsklemmen für FHEM einsetzen</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Projektvorschlag:_S5_als_Ein-_bzw._Ausgangsklemmen_f%C3%BCr_FHEM_einsetzen&amp;diff=16049"/>
		<updated>2016-08-07T14:26:32Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: Zusammenfassung von stubs zu einem Artikel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Siemens_S5_Vorbemerkungen_für_Einsteiger#Projektvorschlag: S5 als Ein- bzw. Ausgangsklemmen für FHEM einsetzen]]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Siemens_S5_Vorbemerkungen_f%C3%BCr_Einsteiger&amp;diff=16048</id>
		<title>Siemens S5 Vorbemerkungen für Einsteiger</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Siemens_S5_Vorbemerkungen_f%C3%BCr_Einsteiger&amp;diff=16048"/>
		<updated>2016-08-07T14:25:31Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: Zusammenfassung von stubs zu einem Artikel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Simatic S5 - die preiswerte Alternative==&lt;br /&gt;
Für weniger als den Preis einer LOGO mit acht Ein- bzw. Ausgängen kann man bei der von Siemens bis 2014 mit Ersatzteilen versorgten SPS z.b. bei ebay Angebote wie [http://www.ebay.de/itm/Siemens-Simatic-S5-95U-/201621853238?hash=item2ef1995436:g:o00AAOSwAPlXhMZB dieses]mit 64 digitalen Ein- bzw. Ausgängen, acht analogen Eingängen und einem analogen Ausgang finden. Für alle Komponenten in Industriequalität gibt es ausgefeilte deutschsprachige [http://www.es.fh-mannheim.de/sp/simatic/s5.htm kostenlose Dokumentation im PDF-Format] von Siemens. &lt;br /&gt;
&lt;br /&gt;
Das Problem ist eher die notwendige Programmiersoftware:&lt;br /&gt;
#es gibt ein preiswertes Handprogrammiergerät PG 605 mit einzeiliger Eingabe für Puristen,&lt;br /&gt;
#das originale DOS Programm Step5 läuft in der DOS-Box von 32-Bit-Windows oder in einer virtuellen Maschine mit DOS oder Windows für alte Hasen,&lt;br /&gt;
#[https://www.mhj-online.de/de-WinSPS-S5-V2-x-Profiversion WinSPS S5] von MHJ läuft unter Windows und kostet immer noch über 400 €,&lt;br /&gt;
#[https://www.ibhsoftec.com/epages/63444704.sf/de_DE/?ObjectPath=/Shops/63444704/Products/10018 S5 für Windows] von IBHsoftec ist die modernste Version, die unter aktuellen Windows-Versionen läuft und über 800 € kostet.&lt;br /&gt;
Insbesondere gibt es keine Möglichkeit freie Software oder ein Linux-Programm einzusetzen. Eventuell kann man sich einen Programmier-PC (mit Programmierer ;-) borgen und dann ein sehr minimales universelles Programm schreiben und spätere Modifikationen auf FHEM-Basis abwickeln.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
Die komplette Raspi- und S5-Konfiguration kann so benutzt werden wie im [http://www.fhemwiki.de/wiki/Siemens_S5 (veralteten) S5-Wiki] beschrieben. Punkt 5 Libnodave ist nicht mehr erforderlich und muss ausgelassen werden. Vor dem Abschnitt &amp;quot;Siemens S5&amp;quot; muss dann im S7-Wiki weitergelesen werden.&lt;br /&gt;
&lt;br /&gt;
==Projektvorschlag: S5 als Ein- bzw. Ausgangsklemmen für FHEM einsetzen==&lt;br /&gt;
&lt;br /&gt;
Die meisten FHEM-Installationen setzen wegen der Flexibilität eine Funklösung wie FS20 oder HomeMatic beim Schalten von Aktoren bzw. Einlesen von Sensoren ein. Eine deutlich höhere Zuverlässigkeit erreicht man mit leitungsgebundenen Geräten in Industriequalität. Die Simatic S5 könnte die Rolle einer kostengünstigen schaltbaren Klemme für FHEM ohne spezielles S5-Programm übernehmen, indem man einfach direkt mit FHEM auf den Ausgang schreibt. Hier A 4.0 als exemplarisches Beispiel:&lt;br /&gt;
&lt;br /&gt;
 define s5test S7 S5 /dev/ttyAMA0 &lt;br /&gt;
 define S5A4.0 S7_DWrite outputs 0 4.0&lt;br /&gt;
 attr S5A4.0 IODev s5test&lt;br /&gt;
 attr S5A4.0 room Arbeitszimmer&lt;br /&gt;
&lt;br /&gt;
Damit kann man direkt mit:&lt;br /&gt;
&lt;br /&gt;
 set S5A4.0 ON bzw. set S5A4.0 OFF&lt;br /&gt;
&lt;br /&gt;
den Ausgang schalten, ohne den Ausgang innerhalb der SPS dafür zu konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Das gleiche Verfahren ist prinzipiell für das Lesen der Eingänge möglich. Hier E 3.0 als exemplarisches Beispiel:&lt;br /&gt;
 &lt;br /&gt;
 define S5E3.0 S7_DRead inputs 0 3.0&lt;br /&gt;
 attr S5E3.0 IODev s5test&lt;br /&gt;
 attr SE34.0 room Arbeitszimmer&lt;br /&gt;
&lt;br /&gt;
Der Haken an dieser Art der Nutzung ist das beschränkte Zeitverhalten.  Impulse von weniger als ca. 1 s Länge können nicht direkt verwendet werden, da die Verbindung zwischen FHEM und S5 im 1-s-Takt gepollt wird. Dann ist eine einfache Programmierung notwendig. Ausgangsimpulse müssen so mit Timern auf der S5 auf das gewünschte Maß gekürzt und Eingangsimpule zur sicheren Erkennung entsprechend verlängert werden. Dies gilt insbesondere für Handtaster.&lt;br /&gt;
&lt;br /&gt;
Da FHEM auch mehrere SPS unterstützt, könnten diese im Haus verteilt werden und im Falle der 95U z.B. je 16 Ein- und Ausgänge zur Verfügung stellen und sind modular erweiterbar. Der Einbau ist auf Hutschiene möglich. Die Leistungsaufnahme von ein paar Watt kann durch die Verwendung von 19 Volt Laptop-Netzteilen reduziert werden.&lt;br /&gt;
&lt;br /&gt;
[[File:s595u.png]]&lt;br /&gt;
&lt;br /&gt;
zurück zum [[S7 S5-Support#Erfahrungen|Ausgangs-Artikel]]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=S7_Beispielkonfiguration&amp;diff=16045</id>
		<title>S7 Beispielkonfiguration</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=S7_Beispielkonfiguration&amp;diff=16045"/>
		<updated>2016-08-07T14:17:56Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: ThomasRamm verschob die Seite Vorhandene Lampensteuerung ergänzen nach Siemens S5 Beispielkonfiguration: nicht eindeutiger Seitentitel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==vorhandene S5-Lampensteuerung um FHEM ergänzen==&lt;br /&gt;
Das S5-Programm für das Schalten der Beleuchtung mittels Taster und zusätzlich über FHEM:&lt;br /&gt;
&lt;br /&gt;
 NETZWERK   12           Arbeitszimmer&lt;br /&gt;
 00AC      :U(                                      &lt;br /&gt;
 00AD      :U(                              &lt;br /&gt;
 00AE      :O   E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00AF      :O   M  65.0                              Merker für FHEM&lt;br /&gt;
 00B0      :)                               &lt;br /&gt;
 00B1      :UN  M  61.4                              Flankenmerker&lt;br /&gt;
 00B2      :S   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00B3      :U(                               &lt;br /&gt;
 00B4      :O   E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00B5      :O   M  65.0                              Merker für FHEM&lt;br /&gt;
 00B6      :)                               &lt;br /&gt;
 00B7      :U   M  61.4                              Flankenmerker&lt;br /&gt;
 00B8      :R   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00B9      :U   A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00BA      :)&lt;br /&gt;
 00BB      :UN  E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00BC      :UN  M  65.0                              Merker für FHEM&lt;br /&gt;
 00BD      :S   M  61.4                              Flankenmerker&lt;br /&gt;
 00BE      :UN  E  64.7                              Taster im Arbeitszimmer&lt;br /&gt;
 00BF      :UN  M  65.0                              Merker für FHEM&lt;br /&gt;
 00C0      :UN  A  65.7                              Lampe Arbeiten Giebel&lt;br /&gt;
 00C1      :R   M  61.4                              Flankenmerker&lt;br /&gt;
 00C2      :NOP 0 &lt;br /&gt;
           :***&lt;br /&gt;
zugehörige FHEM-Konfiguration:&lt;br /&gt;
 define s5test S7 S5 /dev/ttyAMA0                    #FHEM Hardwarezugriff konfigurieren&lt;br /&gt;
 define M65.0 S7_DWrite flags 0 65.0                 #S5-Merker M65.0 für FHEM-Schreibzugriff&lt;br /&gt;
 attr M65.0 IODev s5test                             #M65.0 an /dev/ttyAMA0 ist gemeint&lt;br /&gt;
 attr M65.0 eventMap /on-for-timer 1 /trigger:tasten #1-s-Impuls außerdem Web: trigger -&amp;gt; tasten &lt;br /&gt;
 attr M65.0 icon light_pendant_light                 #Standard-Icon ersetzen&lt;br /&gt;
 attr M65.0 room Arbeitszimmer                       #Raumzuordnung zur optischen Gruppierung&lt;br /&gt;
 attr M65.0 webCmd tasten                            #Button auf Weboberfläche gelabelt als &amp;quot;tasten&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Das Merkerbyte 65 muss für den FHEM-Schreibzugriff reserviert sein. Die Lampe kann nun zusätzlich über das Webinterface oder die Smartphone-App geschaltet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Bisher funktionieren von jedem Merkerbyte nur die ersten 4 Bit, hier also M 65.0 bis M 65.3. Die restlichen können bisher nicht benutzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zurück zum [http://www.fhemwiki.de/wiki/Alternative:_Aktuelle_Entwicklerversion_der_offiziellen_FHEM-S7-Module_mit_S5-Support#Erfahrungen Ausgangs-Artikel]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Vorbemerkungen_f%C3%BCr_Einsteiger&amp;diff=16044</id>
		<title>Vorbemerkungen für Einsteiger</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Vorbemerkungen_f%C3%BCr_Einsteiger&amp;diff=16044"/>
		<updated>2016-08-07T14:10:45Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: ThomasRamm verschob die Seite Vorbemerkungen für Einsteiger nach Siemens S5 Vorbemerkungen für Einsteiger: Titel irreführend&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[Siemens S5 Vorbemerkungen für Einsteiger]]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Siemens_S5_Vorbemerkungen_f%C3%BCr_Einsteiger&amp;diff=16043</id>
		<title>Siemens S5 Vorbemerkungen für Einsteiger</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Siemens_S5_Vorbemerkungen_f%C3%BCr_Einsteiger&amp;diff=16043"/>
		<updated>2016-08-07T14:10:45Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: ThomasRamm verschob die Seite Vorbemerkungen für Einsteiger nach Siemens S5 Vorbemerkungen für Einsteiger: Titel irreführend&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Simatic S5 - die preiswerte Alternative==&lt;br /&gt;
Für weniger als den Preis einer LOGO mit acht Ein- bzw. Ausgängen kann man bei der von Siemens bis 2014 mit Ersatzteilen versorgten SPS z.b. bei ebay Angebote wie [http://www.ebay.de/itm/Siemens-Simatic-S5-95U-/201621853238?hash=item2ef1995436:g:o00AAOSwAPlXhMZB dieses]mit 64 digitalen Ein- bzw. Ausgängen, acht analogen Eingängen und einem analogen Ausgang finden. Für alle Komponenten in Industriequalität gibt es ausgefeilte deutschsprachige [http://www.es.fh-mannheim.de/sp/simatic/s5.htm kostenlose Dokumentation im PDF-Format] von Siemens. &lt;br /&gt;
&lt;br /&gt;
Das Problem ist eher die notwendige Programmiersoftware:&lt;br /&gt;
#es gibt ein preiswertes Handprogrammiergerät PG 605 mit einzeiliger Eingabe für Puristen,&lt;br /&gt;
#das originale DOS Programm Step5 läuft in der DOS-Box von 32-Bit-Windows oder in einer virtuellen Maschine mit DOS oder Windows für alte Hasen,&lt;br /&gt;
#[https://www.mhj-online.de/de-WinSPS-S5-V2-x-Profiversion WinSPS S5] von MHJ läuft unter Windows und kostet immer noch über 400 €,&lt;br /&gt;
#[https://www.ibhsoftec.com/epages/63444704.sf/de_DE/?ObjectPath=/Shops/63444704/Products/10018 S5 für Windows] von IBHsoftec ist die modernste Version, die unter aktuellen Windows-Versionen läuft und über 800 € kostet.&lt;br /&gt;
Insbesondere gibt es keine Möglichkeit freie Software oder ein Linux-Programm einzusetzen. Eventuell kann man sich einen Programmier-PC (mit Programmierer ;-) borgen und dann ein sehr minimales universelles Programm schreiben und spätere Modifikationen auf FHEM-Basis abwickeln.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
Die komplette Raspi- und S5-Konfiguration kann so benutzt werden wie im [http://www.fhemwiki.de/wiki/Siemens_S5 (veralteten) S5-Wiki] beschrieben. Punkt 5 Libnodave ist nicht mehr erforderlich und muss ausgelassen werden. Vor dem Abschnitt &amp;quot;Siemens S5&amp;quot; muss dann im S7-Wiki weitergelesen werden.&lt;br /&gt;
&lt;br /&gt;
zurück zum [[Alternative:_Aktuelle_Entwicklerversion_der_offiziellen_FHEM-S7-Module_mit_S5-Support#Erfahrungen|Ausgangs-Artikel]]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Siemens_S5_Vorbemerkungen_f%C3%BCr_Einsteiger&amp;diff=16042</id>
		<title>Siemens S5 Vorbemerkungen für Einsteiger</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Siemens_S5_Vorbemerkungen_f%C3%BCr_Einsteiger&amp;diff=16042"/>
		<updated>2016-08-07T14:07:41Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: link korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Simatic S5 - die preiswerte Alternative==&lt;br /&gt;
Für weniger als den Preis einer LOGO mit acht Ein- bzw. Ausgängen kann man bei der von Siemens bis 2014 mit Ersatzteilen versorgten SPS z.b. bei ebay Angebote wie [http://www.ebay.de/itm/Siemens-Simatic-S5-95U-/201621853238?hash=item2ef1995436:g:o00AAOSwAPlXhMZB dieses]mit 64 digitalen Ein- bzw. Ausgängen, acht analogen Eingängen und einem analogen Ausgang finden. Für alle Komponenten in Industriequalität gibt es ausgefeilte deutschsprachige [http://www.es.fh-mannheim.de/sp/simatic/s5.htm kostenlose Dokumentation im PDF-Format] von Siemens. &lt;br /&gt;
&lt;br /&gt;
Das Problem ist eher die notwendige Programmiersoftware:&lt;br /&gt;
#es gibt ein preiswertes Handprogrammiergerät PG 605 mit einzeiliger Eingabe für Puristen,&lt;br /&gt;
#das originale DOS Programm Step5 läuft in der DOS-Box von 32-Bit-Windows oder in einer virtuellen Maschine mit DOS oder Windows für alte Hasen,&lt;br /&gt;
#[https://www.mhj-online.de/de-WinSPS-S5-V2-x-Profiversion WinSPS S5] von MHJ läuft unter Windows und kostet immer noch über 400 €,&lt;br /&gt;
#[https://www.ibhsoftec.com/epages/63444704.sf/de_DE/?ObjectPath=/Shops/63444704/Products/10018 S5 für Windows] von IBHsoftec ist die modernste Version, die unter aktuellen Windows-Versionen läuft und über 800 € kostet.&lt;br /&gt;
Insbesondere gibt es keine Möglichkeit freie Software oder ein Linux-Programm einzusetzen. Eventuell kann man sich einen Programmier-PC (mit Programmierer ;-) borgen und dann ein sehr minimales universelles Programm schreiben und spätere Modifikationen auf FHEM-Basis abwickeln.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration==&lt;br /&gt;
Die komplette Raspi- und S5-Konfiguration kann so benutzt werden wie im [http://www.fhemwiki.de/wiki/Siemens_S5 (veralteten) S5-Wiki] beschrieben. Punkt 5 Libnodave ist nicht mehr erforderlich und muss ausgelassen werden. Vor dem Abschnitt &amp;quot;Siemens S5&amp;quot; muss dann im S7-Wiki weitergelesen werden.&lt;br /&gt;
&lt;br /&gt;
zurück zum [[Alternative:_Aktuelle_Entwicklerversion_der_offiziellen_FHEM-S7-Module_mit_S5-Support#Erfahrungen|Ausgangs-Artikel]]&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=14302</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=14302"/>
		<updated>2016-02-20T14:24:01Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: /* Define entfernt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=47202&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=ThomasRamm}}&lt;br /&gt;
Das Modul [[ROLLO]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
__TOC__&lt;br /&gt;
Das Modul unterstützt verschiedenste Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
Weitere Konfigurationen können im Forum angefragt werden.&lt;br /&gt;
&lt;br /&gt;
Besonderheiten:&lt;br /&gt;
* Wird in einer Konfiguration ein Kanal für die Richtung, der zweite für das Aktivieren des Rollos genutzt (z.B. Typ1), wird immer vor einem Rollo-Start die Richtung gesetzt. Bei einem Richtungswechsel während der Fahrt wird der Rollo für 1 sekunde gestoppt und dann in der Gegenrichtung gestartet um den Motor zu schonen.&lt;br /&gt;
&lt;br /&gt;
* Fährt das Rollo zur Position offen oder geschlossen, wird der Motor noch 5 sec. länger auf on gelassen, um Positionsverschiebungen aufgrund ungenauer Parameter auszugleichen. Bei jedem vollständigen schließen/öffnen ist die Position damit wieder korrekt.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. Die Ungenauigkeiten die dadurch zwischen echter Position und gespeicherter Position entstehen, werden durch oben angeführte Korrektur ausgeglichen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rolladen Eintrag.PNG|right|thumb|400px|Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen]]&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert, Icons und Farben können für jeden Status individuell formatiert werden, die Standard Kommandos auf der Oberfläche (hier: offen, geschlossen, schlitz, Position) können ebenfalls per Attribut angepasst werden. Das Status-Icon ist anklickbar.&lt;br /&gt;
Beim Anlegen des Moduls werden die Attribute zur Darstellung in fhem mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es müssen in fhem 2 Kanäle konfiguriert sein die mit on/off gesteuert werden können. Diese Kanäle können als Readings eines device oder als eigenständige definitionen in fhem existieren.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|kanal1|| Text || ||Name des fhem Geräts von Steuerungskanal1&lt;br /&gt;
|-&lt;br /&gt;
|kanal2|| Text (optional)|| ||Name des zweiten fhem Geräts für Kanal 2, sofern für die eigene Konfiguration notwendig&lt;br /&gt;
|-&lt;br /&gt;
|kanal3|| Text (optional)|| ||Name des dritten Kanals, sofern für die eigene Konfiguration notwendig&lt;br /&gt;
|-&lt;br /&gt;
|funktionsweise||Typ1,Typ2,Typ3,Typ4,Typ5,FS20ru|| Typ1 ||Art der Kanalsteuerung. Eine Auflistung der Funktionsweise enthält der nächste Bereich.&lt;br /&gt;
|-&lt;br /&gt;
|device||Text|| ||wird dieses Attribut angelegt, werden die Kanäle 1-3 als Reading dieses angegebenen devices interpretiert, nicht als eigenständige devices.&lt;br /&gt;
|-&lt;br /&gt;
|drive-down-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden die das Rollo vom offenen zum geschlossenen Zustand benötigt.&lt;br /&gt;
|-&lt;br /&gt;
|drive-up-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden, die das Rollo vom geschlossenen zum offenen Zustand benötigt (meist geringfügig höher als drive-down-time-to-100).&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled&lt;br /&gt;
| on,off&lt;br /&gt;
| on&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann die automatische Szenariensteuerung für den Rolladen deaktiviert werden.&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay&lt;br /&gt;
|0,5,10,15,&amp;lt;BR/&amp;gt;20,30,45,60&lt;br /&gt;
|0&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann einge Zeitverzögerund für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen minuten später heruntergefahren.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
folgende Hardwarekonstellationen werden z.Zt. von dem Modul unterstützt, weitere können bei Nachfrage hinzugefügt werden.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ1&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ2&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
| -||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off|| - ||stop hoch&lt;br /&gt;
|-&lt;br /&gt;
| - ||Off||stop runter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ3&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|Off||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||-||runter&lt;br /&gt;
|-&lt;br /&gt;
| -||On||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|FS20rsu&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||runter&lt;br /&gt;
|-&lt;br /&gt;
|On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=4|Typ4&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Kanal 3!!Status&lt;br /&gt;
|-&lt;br /&gt;
|on-for-timer 1|| - || - ||hoch&lt;br /&gt;
|-&lt;br /&gt;
| - ||on-for-timer 1|| - ||runter&lt;br /&gt;
|-&lt;br /&gt;
| - || - ||on-for-timer 1||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ5&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|on|| off ||hoch&lt;br /&gt;
|-&lt;br /&gt;
| off ||on ||runter&lt;br /&gt;
|-&lt;br /&gt;
| off || - ||stop hoch&lt;br /&gt;
|-&lt;br /&gt;
| - || off ||stop runter&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Es gibt mehrere Settings die das Rollo in eine bestimmte Position fahren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;geschlossen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett herunter (Position 100)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;offen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett nach oben (Position 0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;schlitz&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo soweit herunter das nur die Rolloschlitze offen sind (Position 90)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;position&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo auf eine beliebige Position zwischen 0 (offen) - 100 (geschlossen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Fahrbefehle für das Rollo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;stop&amp;gt;&amp;lt;/code&amp;gt;  Stopt ein fahrendes Rollo unabhängig davon ob die vorher angegebene Zielposition erreicht wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;toggle&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition.&lt;br /&gt;
Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonstige Set-Befehle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; extern &amp;lt;position:offen,geschlossen,schlitz,stop&amp;gt;&amp;lt;/code&amp;gt; Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten. siehe auch [[#Zusammenspiel mit externem Taster]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; reset &amp;lt;position:offen,geschlossen&amp;gt; &amp;lt;/code&amp;gt; Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Name !!Wert !!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|extern ||extern,no||Dieser Wert steht per default auf &amp;quot;no&amp;quot;, nur bei [code]set extern ...[/code] wird er für die dauer der Befehlsausführung auf &amp;quot;extern&amp;quot; gesetzt.&lt;br /&gt;
|-&lt;br /&gt;
|letzte_fahrt ||drive-up,drive-down||Zeigt die zuletzt gefahrene Richtung an, wird für den Befehl &amp;quot;toggle&amp;quot; benutzt.&lt;br /&gt;
|-&lt;br /&gt;
|position ||0-100 ||Die aktuelle Rollo-Position als %-Wert, 0=offen, 100=zu&lt;br /&gt;
|-&lt;br /&gt;
|state||offen,geschlossen,schlitz,drive-up,drive-down,position-[nn]||aktueller Rollo Status. Beim fahren: drive-[richtung], im stillstand die Position als klartext (offen,geschlossen,schlitz) oder als Position (position-[nn])&lt;br /&gt;
|-&lt;br /&gt;
|stop||Zeitwert||interner Zeitwert wann das Rollo beim fahren seine Zielposition erreicht hat. im stillstand ohne Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|ziel_state||offen,geschlossen,schlitz,position-[nn]||Bei fahrendem Rollo die anzufahrende Zielposition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
===Set===&lt;br /&gt;
 set RolladenWohnzimmer position 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
Das Rollo-Modul wird angewiesen den status auf &amp;quot;nicht fahren&amp;quot; zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer reset geschlossen&lt;br /&gt;
In der Oberfläche von fhem wird für das Rollo die Position &amp;quot;geschlossen&amp;quot; gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird eevtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.&lt;br /&gt;
&lt;br /&gt;
===Zusammenspiel mit externem Taster===&lt;br /&gt;
In einem Anwendungszenario hat ein Nutzer zusätzliche Taster an seinem Rollo-Motor über die er ihn ebenfalls steuern kann. &lt;br /&gt;
Die Taster selber senden keine Events an fhem, nur der Rollo-Motor.&lt;br /&gt;
Hier ein Beispiel wie das ganze für Typ2-Rollos aussehen könnte und diese Taster in das ROLLO-Modul integriert werden:&lt;br /&gt;
&lt;br /&gt;
 define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern offen) DOELSEIF ([meinRollo_Kanal1] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
 define rollo_manuell_ab  DOIF ([meinRollo_Kanal2] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern geschlossen) DOELSEIF ([meinRollo_Kanal2] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
&lt;br /&gt;
meinRollo_Kanal1 und meinRollo_Kanal2 sind die Hardwarekanäle die in dem Rollo-Modul zum hochfahren/runterfahren benutzt werden. In diesem Beispiel ist das Rollo als Typ2 (ein Kanal hoch, zweiter Kanal runter) definiert.&lt;br /&gt;
Das erste DOIF prüft ob das Rollo hoch fährt, ohne das das Rollo-Modul davon etwas weis. Ist dem so wird dem Rollo Modul mithilfe des set &amp;lt;extern&amp;gt; mitgeteilt das das Rollo bereits gestartet wurde. Das Modul fängt an die Zeit zu zählen und aktualisiert den Status der Oberfläche auf &amp;quot;fahre hoch&amp;quot;.&lt;br /&gt;
IM DOELSEIF wird abgefragt ob das Rollo steht, obwohl das Modul denkt das Rollo würde noch fahren. Ist dem so wird wieder mithilfe des set &amp;lt;extern&amp;gt; dem Modul mitgeteilt das das Rollo gestoppt wurde. Das Modul berechnet nun aufgrund der gefahrenen Zeit die aktuelle Position und aktualisiert den Status der Oberfläche auf die Position.&lt;br /&gt;
&lt;br /&gt;
Das gleiche wird dann im zweiten DOIF nochmal für das herunterfahren gemacht.&lt;br /&gt;
&lt;br /&gt;
Man kann nun das Rollo sowohl über die Oberfläche als auch per Taster bedienen und fhem und der reale Ist-Status sind synchron. Ach eine gleichzeitige Bedienung ist möglich, Das Rollo startet z.B. aufgrund einer Automatisierung morgens zum hochfahren und man klickt schnell auf den Taster neben dem Bett und stoppt das ganze wieder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=14298</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=14298"/>
		<updated>2016-02-20T13:33:04Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: /* neuer Typ 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=47202&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=ThomasRamm}}&lt;br /&gt;
Das Modul [[ROLLO]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
__TOC__&lt;br /&gt;
Das Modul unterstützt verschiedenste Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
Weitere Konfigurationen können im Forum angefragt werden.&lt;br /&gt;
&lt;br /&gt;
Besonderheiten:&lt;br /&gt;
* Wird in einer Konfiguration ein Kanal für die Richtung, der zweite für das Aktivieren des Rollos genutzt (z.B. Typ1), wird immer vor einem Rollo-Start die Richtung gesetzt. Bei einem Richtungswechsel während der Fahrt wird der Rollo für 1 sekunde gestoppt und dann in der Gegenrichtung gestartet um den Motor zu schonen.&lt;br /&gt;
&lt;br /&gt;
* Fährt das Rollo zur Position offen oder geschlossen, wird der Motor noch 5 sec. länger auf on gelassen, um Positionsverschiebungen aufgrund ungenauer Parameter auszugleichen. Bei jedem vollständigen schließen/öffnen ist die Position damit wieder korrekt.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. Die Ungenauigkeiten die dadurch zwischen echter Position und gespeicherter Position entstehen, werden durch oben angeführte Korrektur ausgeglichen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rolladen Eintrag.PNG|right|thumb|400px|Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen]]&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert, Icons und Farben können für jeden Status individuell formatiert werden, die Standard Kommandos auf der Oberfläche (hier: offen, geschlossen, schlitz, Position) können ebenfalls per Attribut angepasst werden. Das Status-Icon ist anklickbar.&lt;br /&gt;
Beim Anlegen des Moduls werden die Attribute zur Darstellung in fhem mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es müssen in fhem 2 Kanäle konfiguriert sein die mit on/off gesteuert werden können. Diese Kanäle können als Readings eines device oder als eigenständige definitionen in fhem existieren.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|kanal1|| Text || ||Name des fhem Geräts von Steuerungskanal1&lt;br /&gt;
|-&lt;br /&gt;
|kanal2|| Text (optional)|| ||Name des zweiten fhem Geräts für Kanal 2, sofern für die eigene Konfiguration notwendig&lt;br /&gt;
|-&lt;br /&gt;
|kanal3|| Text (optional)|| ||Name des dritten Kanals, sofern für die eigene Konfiguration notwendig&lt;br /&gt;
|-&lt;br /&gt;
|funktionsweise||Typ1,Typ2,Typ3,Typ4,Typ5,FS20ru|| Typ1 ||Art der Kanalsteuerung. Eine Auflistung der Funktionsweise enthält der nächste Bereich.&lt;br /&gt;
|-&lt;br /&gt;
|device||Text|| ||wird dieses Attribut angelegt, werden die Kanäle 1-3 als Reading dieses angegebenen devices interpretiert, nicht als eigenständige devices.&lt;br /&gt;
|-&lt;br /&gt;
|drive-down-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden die das Rollo vom offenen zum geschlossenen Zustand benötigt.&lt;br /&gt;
|-&lt;br /&gt;
|drive-up-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden, die das Rollo vom geschlossenen zum offenen Zustand benötigt (meist geringfügig höher als drive-down-time-to-100).&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled&lt;br /&gt;
| on,off&lt;br /&gt;
| on&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann die automatische Szenariensteuerung für den Rolladen deaktiviert werden.&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay&lt;br /&gt;
|0,5,10,15,&amp;lt;BR/&amp;gt;20,30,45,60&lt;br /&gt;
|0&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann einge Zeitverzögerund für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen minuten später heruntergefahren.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
folgende Hardwarekonstellationen werden z.Zt. von dem Modul unterstützt, weitere können bei Nachfrage hinzugefügt werden.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ1&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ2&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
| -||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off|| - ||stop hoch&lt;br /&gt;
|-&lt;br /&gt;
| - ||Off||stop runter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ3&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|Off||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||-||runter&lt;br /&gt;
|-&lt;br /&gt;
| -||On||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|FS20rsu&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||runter&lt;br /&gt;
|-&lt;br /&gt;
|On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=4|Typ4&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Kanal 3!!Status&lt;br /&gt;
|-&lt;br /&gt;
|on-for-timer 1|| - || - ||hoch&lt;br /&gt;
|-&lt;br /&gt;
| - ||on-for-timer 1|| - ||runter&lt;br /&gt;
|-&lt;br /&gt;
| - || - ||on-for-timer 1||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ5&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|on|| off ||hoch&lt;br /&gt;
|-&lt;br /&gt;
| off ||on ||runter&lt;br /&gt;
|-&lt;br /&gt;
| off || - ||stop hoch&lt;br /&gt;
|-&lt;br /&gt;
| - || off ||stop runter&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Es gibt mehrere Settings die das Rollo in eine bestimmte Position fahren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;geschlossen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett herunter (Position 100)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;offen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett nach oben (Position 0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;schlitz&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo soweit herunter das nur die Rolloschlitze offen sind (Position 90)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;position&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo auf eine beliebige Position zwischen 0 (offen) - 100 (geschlossen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Fahrbefehle für das Rollo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;stop&amp;gt;&amp;lt;/code&amp;gt;  Stopt ein fahrendes Rollo unabhängig davon ob die vorher angegebene Zielposition erreicht wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;toggle&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition.&lt;br /&gt;
Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonstige Set-Befehle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; extern &amp;lt;position:offen,geschlossen,schlitz,stop&amp;gt;&amp;lt;/code&amp;gt; Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten. siehe auch [[#Zusammenspiel mit externem Taster]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; reset &amp;lt;position:offen,geschlossen&amp;gt; &amp;lt;/code&amp;gt; Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Name !!Wert !!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|extern ||extern,no||Dieser Wert steht per default auf &amp;quot;no&amp;quot;, nur bei [code]set extern ...[/code] wird er für die dauer der Befehlsausführung auf &amp;quot;extern&amp;quot; gesetzt.&lt;br /&gt;
|-&lt;br /&gt;
|letzte_fahrt ||drive-up,drive-down||Zeigt die zuletzt gefahrene Richtung an, wird für den Befehl &amp;quot;toggle&amp;quot; benutzt.&lt;br /&gt;
|-&lt;br /&gt;
|position ||0-100 ||Die aktuelle Rollo-Position als %-Wert, 0=offen, 100=zu&lt;br /&gt;
|-&lt;br /&gt;
|state||offen,geschlossen,schlitz,drive-up,drive-down,position-[nn]||aktueller Rollo Status. Beim fahren: drive-[richtung], im stillstand die Position als klartext (offen,geschlossen,schlitz) oder als Position (position-[nn])&lt;br /&gt;
|-&lt;br /&gt;
|stop||Zeitwert||interner Zeitwert wann das Rollo beim fahren seine Zielposition erreicht hat. im stillstand ohne Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|ziel_state||offen,geschlossen,schlitz,position-[nn]||Bei fahrendem Rollo die anzufahrende Zielposition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
===Define===&lt;br /&gt;
 define meinRollo ROLLO myMcp23017 PortA0 PortA1 Typ1&lt;br /&gt;
Die Rollo-Kanäle sind Readings des Mcp23017-Device&lt;br /&gt;
&lt;br /&gt;
 define meinRollo ROLLO - Rollo_KanalA Rollo_KanalB&lt;br /&gt;
Die Rollo-Kanäle sind in fhem Eigenständige Devices, der Parameter &amp;lt;device&amp;gt; wurde deshalb mit einem &amp;quot;-&amp;quot; deaktiviert&lt;br /&gt;
&lt;br /&gt;
===Set===&lt;br /&gt;
 set RolladenWohnzimmer position 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
Das Rollo-Modul wird angewiesen den status auf &amp;quot;nicht fahren&amp;quot; zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer reset geschlossen&lt;br /&gt;
In der Oberfläche von fhem wird für das Rollo die Position &amp;quot;geschlossen&amp;quot; gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird eevtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.&lt;br /&gt;
&lt;br /&gt;
===Zusammenspiel mit externem Taster===&lt;br /&gt;
In einem Anwendungszenario hat ein Nutzer zusätzliche Taster an seinem Rollo-Motor über die er ihn ebenfalls steuern kann. &lt;br /&gt;
Die Taster selber senden keine Events an fhem, nur der Rollo-Motor.&lt;br /&gt;
Hier ein Beispiel wie das ganze für Typ2-Rollos aussehen könnte und diese Taster in das ROLLO-Modul integriert werden:&lt;br /&gt;
&lt;br /&gt;
 define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern offen) DOELSEIF ([meinRollo_Kanal1] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
 define rollo_manuell_ab  DOIF ([meinRollo_Kanal2] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern geschlossen) DOELSEIF ([meinRollo_Kanal2] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
&lt;br /&gt;
meinRollo_Kanal1 und meinRollo_Kanal2 sind die Hardwarekanäle die in dem Rollo-Modul zum hochfahren/runterfahren benutzt werden. In diesem Beispiel ist das Rollo als Typ2 (ein Kanal hoch, zweiter Kanal runter) definiert.&lt;br /&gt;
Das erste DOIF prüft ob das Rollo hoch fährt, ohne das das Rollo-Modul davon etwas weis. Ist dem so wird dem Rollo Modul mithilfe des set &amp;lt;extern&amp;gt; mitgeteilt das das Rollo bereits gestartet wurde. Das Modul fängt an die Zeit zu zählen und aktualisiert den Status der Oberfläche auf &amp;quot;fahre hoch&amp;quot;.&lt;br /&gt;
IM DOELSEIF wird abgefragt ob das Rollo steht, obwohl das Modul denkt das Rollo würde noch fahren. Ist dem so wird wieder mithilfe des set &amp;lt;extern&amp;gt; dem Modul mitgeteilt das das Rollo gestoppt wurde. Das Modul berechnet nun aufgrund der gefahrenen Zeit die aktuelle Position und aktualisiert den Status der Oberfläche auf die Position.&lt;br /&gt;
&lt;br /&gt;
Das gleiche wird dann im zweiten DOIF nochmal für das herunterfahren gemacht.&lt;br /&gt;
&lt;br /&gt;
Man kann nun das Rollo sowohl über die Oberfläche als auch per Taster bedienen und fhem und der reale Ist-Status sind synchron. Ach eine gleichzeitige Bedienung ist möglich, Das Rollo startet z.B. aufgrund einer Automatisierung morgens zum hochfahren und man klickt schnell auf den Taster neben dem Bett und stoppt das ganze wieder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13594</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13594"/>
		<updated>2016-01-16T13:16:31Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: Neue und geänderte Modulfunktionen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=47202&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=ThomasRamm}}&lt;br /&gt;
Das Modul [[ROLLO]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
__TOC__&lt;br /&gt;
Das Modul unterstützt verschiedenste Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
Weitere Konfigurationen können im Forum angefragt werden.&lt;br /&gt;
&lt;br /&gt;
Besonderheiten:&lt;br /&gt;
* Wird in einer Konfiguration ein Kanal für die Richtung, der zweite für das Aktivieren des Rollos genutzt (z.B. Typ1), wird immer vor einem Rollo-Start die Richtung gesetzt. Bei einem Richtungswechsel während der Fahrt wird der Rollo für 1 sekunde gestoppt und dann in der Gegenrichtung gestartet um den Motor zu schonen.&lt;br /&gt;
&lt;br /&gt;
* Fährt das Rollo zur Position offen oder geschlossen, wird der Motor noch 5 sec. länger auf on gelassen, um Positionsverschiebungen aufgrund ungenauer Parameter auszugleichen. Bei jedem vollständigen schließen/öffnen ist die Position damit wieder korrekt.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. Die Ungenauigkeiten die dadurch zwischen echter Position und gespeicherter Position entstehen, werden durch oben angeführte Korrektur ausgeglichen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rolladen Eintrag.PNG|right|thumb|400px|Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen]]&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert, Icons und Farben können für jeden Status individuell formatiert werden, die Standard Kommandos auf der Oberfläche (hier: offen, geschlossen, schlitz, Position) können ebenfalls per Attribut angepasst werden. Das Status-Icon ist anklickbar.&lt;br /&gt;
Beim Anlegen des Moduls werden die Attribute zur Darstellung in fhem mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es müssen in fhem 2 Kanäle konfiguriert sein die mit on/off gesteuert werden können. Diese Kanäle können als Readings eines device oder als eigenständige definitionen in fhem existieren.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|kanal1|| Text || ||Name des fhem Geräts von Steuerungskanal1&lt;br /&gt;
|-&lt;br /&gt;
|kanal2|| Text (optional)|| ||Name des zweiten fhem Geräts für Kanal 2, sofern für die eigene Konfiguration notwendig&lt;br /&gt;
|-&lt;br /&gt;
|kanal3|| Text (optional)|| ||Name des dritten Kanals, sofern für die eigene Konfiguration notwendig&lt;br /&gt;
|-&lt;br /&gt;
|funktionsweise||Typ1,Typ2,Typ3,Typ4,FS20ru|| Typ1 ||Art der Kanalsteuerung. Eine Auflistung der Funktionsweise enthält der nächste Bereich.&lt;br /&gt;
|-&lt;br /&gt;
|device||Text|| ||wird dieses Attribut angelegt, werden die Kanäle 1-3 als Reading dieses angegebenen devices interpretiert, nicht als eigenständige devices.&lt;br /&gt;
|-&lt;br /&gt;
|drive-down-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden die das Rollo vom offenen zum geschlossenen Zustand benötigt.&lt;br /&gt;
|-&lt;br /&gt;
|drive-up-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden, die das Rollo vom geschlossenen zum offenen Zustand benötigt (meist geringfügig höher als drive-down-time-to-100).&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled&lt;br /&gt;
| on,off&lt;br /&gt;
| on&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann die automatische Szenariensteuerung für den Rolladen deaktiviert werden.&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay&lt;br /&gt;
|0,5,10,15,&amp;lt;BR/&amp;gt;20,30,45,60&lt;br /&gt;
|0&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann einge Zeitverzögerund für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen minuten später heruntergefahren.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
folgende Hardwarekonstellationen werden z.Zt. von dem Modul unterstützt, weitere können bei Nachfrage hinzugefügt werden.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ1&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ2&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
| -||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ3&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|Off||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||-||runter&lt;br /&gt;
|-&lt;br /&gt;
| -||On||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|FS20rsu&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||runter&lt;br /&gt;
|-&lt;br /&gt;
|On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=4|Typ4&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Kanal 3!!Status&lt;br /&gt;
|-&lt;br /&gt;
|on-for-timer 1|| - || - ||hoch&lt;br /&gt;
|-&lt;br /&gt;
| - ||on-for-timer 1|| - ||runter&lt;br /&gt;
|-&lt;br /&gt;
| - || - ||on-for-timer 1||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Es gibt mehrere Settings die das Rollo in eine bestimmte Position fahren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;geschlossen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett herunter (Position 100)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;offen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett nach oben (Position 0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;schlitz&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo soweit herunter das nur die Rolloschlitze offen sind (Position 90)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;position&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo auf eine beliebige Position zwischen 0 (offen) - 100 (geschlossen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Fahrbefehle für das Rollo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;stop&amp;gt;&amp;lt;/code&amp;gt;  Stopt ein fahrendes Rollo unabhängig davon ob die vorher angegebene Zielposition erreicht wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;toggle&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition.&lt;br /&gt;
Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonstige Set-Befehle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; extern &amp;lt;position:offen,geschlossen,schlitz,stop&amp;gt;&amp;lt;/code&amp;gt; Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten. siehe auch [[#Zusammenspiel mit externem Taster]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; reset &amp;lt;position:offen,geschlossen&amp;gt; &amp;lt;/code&amp;gt; Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Name !!Wert !!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|extern ||extern,no||Dieser Wert steht per default auf &amp;quot;no&amp;quot;, nur bei [code]set extern ...[/code] wird er für die dauer der Befehlsausführung auf &amp;quot;extern&amp;quot; gesetzt.&lt;br /&gt;
|-&lt;br /&gt;
|letzte_fahrt ||drive-up,drive-down||Zeigt die zuletzt gefahrene Richtung an, wird für den Befehl &amp;quot;toggle&amp;quot; benutzt.&lt;br /&gt;
|-&lt;br /&gt;
|position ||0-100 ||Die aktuelle Rollo-Position als %-Wert, 0=offen, 100=zu&lt;br /&gt;
|-&lt;br /&gt;
|state||offen,geschlossen,schlitz,drive-up,drive-down,position-[nn]||aktueller Rollo Status. Beim fahren: drive-[richtung], im stillstand die Position als klartext (offen,geschlossen,schlitz) oder als Position (position-[nn])&lt;br /&gt;
|-&lt;br /&gt;
|stop||Zeitwert||interner Zeitwert wann das Rollo beim fahren seine Zielposition erreicht hat. im stillstand ohne Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
|ziel_state||offen,geschlossen,schlitz,position-[nn]||Bei fahrendem Rollo die anzufahrende Zielposition&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
===Define===&lt;br /&gt;
 define meinRollo ROLLO myMcp23017 PortA0 PortA1 Typ1&lt;br /&gt;
Die Rollo-Kanäle sind Readings des Mcp23017-Device&lt;br /&gt;
&lt;br /&gt;
 define meinRollo ROLLO - Rollo_KanalA Rollo_KanalB&lt;br /&gt;
Die Rollo-Kanäle sind in fhem Eigenständige Devices, der Parameter &amp;lt;device&amp;gt; wurde deshalb mit einem &amp;quot;-&amp;quot; deaktiviert&lt;br /&gt;
&lt;br /&gt;
===Set===&lt;br /&gt;
 set RolladenWohnzimmer position 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
Das Rollo-Modul wird angewiesen den status auf &amp;quot;nicht fahren&amp;quot; zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer reset geschlossen&lt;br /&gt;
In der Oberfläche von fhem wird für das Rollo die Position &amp;quot;geschlossen&amp;quot; gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird eevtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.&lt;br /&gt;
&lt;br /&gt;
===Zusammenspiel mit externem Taster===&lt;br /&gt;
In einem Anwendungszenario hat ein Nutzer zusätzliche Taster an seinem Rollo-Motor über die er ihn ebenfalls steuern kann. &lt;br /&gt;
Die Taster selber senden keine Events an fhem, nur der Rollo-Motor.&lt;br /&gt;
Hier ein Beispiel wie das ganze für Typ2-Rollos aussehen könnte und diese Taster in das ROLLO-Modul integriert werden:&lt;br /&gt;
&lt;br /&gt;
 define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern offen) DOELSEIF ([meinRollo_Kanal1] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
 define rollo_manuell_ab  DOIF ([meinRollo_Kanal2] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern geschlossen) DOELSEIF ([meinRollo_Kanal2] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
&lt;br /&gt;
meinRollo_Kanal1 und meinRollo_Kanal2 sind die Hardwarekanäle die in dem Rollo-Modul zum hochfahren/runterfahren benutzt werden. In diesem Beispiel ist das Rollo als Typ2 (ein Kanal hoch, zweiter Kanal runter) definiert.&lt;br /&gt;
Das erste DOIF prüft ob das Rollo hoch fährt, ohne das das Rollo-Modul davon etwas weis. Ist dem so wird dem Rollo Modul mithilfe des set &amp;lt;extern&amp;gt; mitgeteilt das das Rollo bereits gestartet wurde. Das Modul fängt an die Zeit zu zählen und aktualisiert den Status der Oberfläche auf &amp;quot;fahre hoch&amp;quot;.&lt;br /&gt;
IM DOELSEIF wird abgefragt ob das Rollo steht, obwohl das Modul denkt das Rollo würde noch fahren. Ist dem so wird wieder mithilfe des set &amp;lt;extern&amp;gt; dem Modul mitgeteilt das das Rollo gestoppt wurde. Das Modul berechnet nun aufgrund der gefahrenen Zeit die aktuelle Position und aktualisiert den Status der Oberfläche auf die Position.&lt;br /&gt;
&lt;br /&gt;
Das gleiche wird dann im zweiten DOIF nochmal für das herunterfahren gemacht.&lt;br /&gt;
&lt;br /&gt;
Man kann nun das Rollo sowohl über die Oberfläche als auch per Taster bedienen und fhem und der reale Ist-Status sind synchron. Ach eine gleichzeitige Bedienung ist möglich, Das Rollo startet z.B. aufgrund einer Automatisierung morgens zum hochfahren und man klickt schnell auf den Taster neben dem Bett und stoppt das ganze wieder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13592</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13592"/>
		<updated>2016-01-16T10:57:45Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: /* Define */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=47202&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=ThomasRamm}}&lt;br /&gt;
Das Modul [[ROLLO]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
__TOC__&lt;br /&gt;
Das Modul unterstützt verschiedenste Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
Weitere Konfigurationen können im Forum angefragt werden.&lt;br /&gt;
&lt;br /&gt;
Besonderheiten:&lt;br /&gt;
* Wird in einer Konfiguration ein Kanal für die Richtung, der zweite für das Aktivieren des Rollos genutzt (z.B. Typ1), wird immer vor einem Rollo-Start die Richtung gesetzt. Bei einem Richtungswechsel während der Fahrt wird der Rollo für 1 sekunde gestoppt und dann in der Gegenrichtung gestartet.&lt;br /&gt;
&lt;br /&gt;
* Fährt das Rollo zur Position offen oder geschlossen, wird der Motor noch 5 sec. länger auf on gelassen, um Positionsverschiebungen aufgrund ungenauer Parameter auszugleichen. Bei jedem vollständigen schließen/öffnen ist die Position damit wieder korrekt.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. Die Ungenauigkeiten die dadurch zwischen echter Position und gespeicherter Position entstehen, werden durch oben angeführte Korrektur ausgeglichen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rolladen Eintrag.PNG|right|thumb|400px|Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen]]&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert, Icons und Farben können für jeden Status individuell formatiert werden, die Standard Kommandos auf der Oberfläche (hier: offen, geschlossen, schlitz, Position) können ebenfalls per Attribut angepasst werden.&lt;br /&gt;
Beim Anlegen des Moduls werden die Attribute zur Darstellung in fhem mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es müssen in fhem 2 Kanäle konfiguriert sein die mit on/off gesteuert werden können. Diese Kanäle können als Readings eines device oder als eigenständige definitionen in fhem existieren.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO &amp;lt;device&amp;gt; &amp;lt;ausgang1&amp;gt; &amp;lt;ausgang2&amp;gt; &amp;lt;Typ&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter:&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter !! class=&amp;quot;unsortable&amp;quot;|Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;||Name des Modul&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;device&amp;gt;||Name des Hardwaremoduls dessen Readings die Kanäle sind. Sollten die Kanäle eigene definitionen in fhem sein, dann hier ein &amp;quot;-&amp;quot; eingeben.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang1&amp;gt;||Name des Device-Reading oder des fhem Geräts von Kanal 1&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang2&amp;gt;||Name des zweiten Device-Reading bzw. fhem Geräts für Kanal 2&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;typ&amp;gt;||Art der Kanalsteuerung. Mögliche Werte sind:&amp;lt;BR/&amp;gt;&lt;br /&gt;
Typ1,Typ2,Typ3,FS20ru. Eine Auflistung der Funktionsweise enthält der nächste Bereich.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typen&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ1&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ2&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
| -||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ3&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|Off||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||-||runter&lt;br /&gt;
|-&lt;br /&gt;
| -||On||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|FS20rsu&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||runter&lt;br /&gt;
|-&lt;br /&gt;
|On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=4|Typ4&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Kanal 3!!Status&lt;br /&gt;
|-&lt;br /&gt;
|on-for-timer 1|| - || - ||hoch&lt;br /&gt;
|-&lt;br /&gt;
| - ||on-for-timer 1|| - ||runter&lt;br /&gt;
|-&lt;br /&gt;
| - || - ||on-for-timer 1||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|drive-down-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden die das Rollo vom offenen zum geschlossenen Zustand benötigt.&lt;br /&gt;
|-&lt;br /&gt;
|drive-up-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden, die das Rollo vom geschlossenen zum offenen Zustand benötigt (meist geringfügig höher als drive-down-time-to-100).&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled&lt;br /&gt;
| on,off&lt;br /&gt;
| on&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann die automatische Szenariensteuerung für den Rolladen deaktiviert werden.&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay&lt;br /&gt;
|0,5,10,15,&amp;lt;BR/&amp;gt;20,30,45,60&lt;br /&gt;
|0&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann einge Zeitverzögerund für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen minuten später heruntergefahren.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Es gibt mehrere Settings die das Rollo in eine bestimmte Position fahren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;geschlossen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett herunter (Position 100)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;offen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett nach oben (Position 0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;schlitz&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo soweit herunter das nur die Rolloschlitze offen sind (Position 90)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;position&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo auf eine beliebige Position zwischen 0 (offen) - 100 (geschlossen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Fahrbefehle für das Rollo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;stop&amp;gt;&amp;lt;/code&amp;gt;  Stopt ein fahrendes Rollo unabhängig davon ob die vorher angegebene Zielposition erreicht wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;toggle&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition.&lt;br /&gt;
Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonstige Set-Befehle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; extern &amp;lt;position:offen,geschlossen,schlitz,stop&amp;gt;&amp;lt;/code&amp;gt; Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten. siehe auch [[#Zusammenspiel mit externem Taster]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; reset &amp;lt;position:offen,geschlossen&amp;gt; &amp;lt;/code&amp;gt; Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
===Define===&lt;br /&gt;
 define meinRollo ROLLO myMcp23017 PortA0 PortA1 Typ1&lt;br /&gt;
Die Rollo-Kanäle sind Readings des Mcp23017-Device&lt;br /&gt;
&lt;br /&gt;
 define meinRollo ROLLO - Rollo_KanalA Rollo_KanalB&lt;br /&gt;
Die Rollo-Kanäle sind in fhem Eigenständige Devices, der Parameter &amp;lt;device&amp;gt; wurde deshalb mit einem &amp;quot;-&amp;quot; deaktiviert&lt;br /&gt;
&lt;br /&gt;
===Set===&lt;br /&gt;
 set RolladenWohnzimmer position 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
Das Rollo-Modul wird angewiesen den status auf &amp;quot;nicht fahren&amp;quot; zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer reset geschlossen&lt;br /&gt;
In der Oberfläche von fhem wird für das Rollo die Position &amp;quot;geschlossen&amp;quot; gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird eevtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.&lt;br /&gt;
&lt;br /&gt;
===Zusammenspiel mit externem Taster===&lt;br /&gt;
In einem Anwendungszenario hat ein Nutzer zusätzliche Taster an seinem Rollo-Motor über die er ihn ebenfalls steuern kann. &lt;br /&gt;
Die Taster selber senden keine Events an fhem, nur der Rollo-Motor.&lt;br /&gt;
Hier ein Beispiel wie das ganze für Typ2-Rollos aussehen könnte und diese Taster in das ROLLO-Modul integriert werden:&lt;br /&gt;
&lt;br /&gt;
 define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern offen) DOELSEIF ([meinRollo_Kanal1] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
 define rollo_manuell_ab  DOIF ([meinRollo_Kanal2] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern geschlossen) DOELSEIF ([meinRollo_Kanal2] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
&lt;br /&gt;
meinRollo_Kanal1 und meinRollo_Kanal2 sind die Hardwarekanäle die in dem Rollo-Modul zum hochfahren/runterfahren benutzt werden. In diesem Beispiel ist das Rollo als Typ2 (ein Kanal hoch, zweiter Kanal runter) definiert.&lt;br /&gt;
Das erste DOIF prüft ob das Rollo hoch fährt, ohne das das Rollo-Modul davon etwas weis. Ist dem so wird dem Rollo Modul mithilfe des set &amp;lt;extern&amp;gt; mitgeteilt das das Rollo bereits gestartet wurde. Das Modul fängt an die Zeit zu zählen und aktualisiert den Status der Oberfläche auf &amp;quot;fahre hoch&amp;quot;.&lt;br /&gt;
IM DOELSEIF wird abgefragt ob das Rollo steht, obwohl das Modul denkt das Rollo würde noch fahren. Ist dem so wird wieder mithilfe des set &amp;lt;extern&amp;gt; dem Modul mitgeteilt das das Rollo gestoppt wurde. Das Modul berechnet nun aufgrund der gefahrenen Zeit die aktuelle Position und aktualisiert den Status der Oberfläche auf die Position.&lt;br /&gt;
&lt;br /&gt;
Das gleiche wird dann im zweiten DOIF nochmal für das herunterfahren gemacht.&lt;br /&gt;
&lt;br /&gt;
Man kann nun das Rollo sowohl über die Oberfläche als auch per Taster bedienen und fhem und der reale Ist-Status sind synchron. Ach eine gleichzeitige Bedienung ist möglich, Das Rollo startet z.B. aufgrund einer Automatisierung morgens zum hochfahren und man klickt schnell auf den Taster neben dem Bett und stoppt das ganze wieder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13589</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13589"/>
		<updated>2016-01-15T12:49:54Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=47202&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=ThomasRamm}}&lt;br /&gt;
Das Modul [[ROLLO]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
__TOC__&lt;br /&gt;
Das Modul unterstützt verschiedenste Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
Weitere Konfigurationen können im Forum angefragt werden.&lt;br /&gt;
&lt;br /&gt;
Besonderheiten:&lt;br /&gt;
* Wird in einer Konfiguration ein Kanal für die Richtung, der zweite für das Aktivieren des Rollos genutzt (z.B. Typ1), wird immer vor einem Rollo-Start die Richtung gesetzt. Bei einem Richtungswechsel während der Fahrt wird der Rollo für 1 sekunde gestoppt und dann in der Gegenrichtung gestartet.&lt;br /&gt;
&lt;br /&gt;
* Fährt das Rollo zur Position offen oder geschlossen, wird der Motor noch 5 sec. länger auf on gelassen, um Positionsverschiebungen aufgrund ungenauer Parameter auszugleichen. Bei jedem vollständigen schließen/öffnen ist die Position damit wieder korrekt.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. Die Ungenauigkeiten die dadurch zwischen echter Position und gespeicherter Position entstehen, werden durch oben angeführte Korrektur ausgeglichen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rolladen Eintrag.PNG|right|thumb|400px|Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen]]&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert, Icons und Farben können für jeden Status individuell formatiert werden, die Standard Kommandos auf der Oberfläche (hier: offen, geschlossen, schlitz, Position) können ebenfalls per Attribut angepasst werden.&lt;br /&gt;
Beim Anlegen des Moduls werden die Attribute zur Darstellung in fhem mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es müssen in fhem 2 Kanäle konfiguriert sein die mit on/off gesteuert werden können. Diese Kanäle können als Readings eines device oder als eigenständige definitionen in fhem existieren.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO &amp;lt;device&amp;gt; &amp;lt;ausgang1&amp;gt; &amp;lt;ausgang2&amp;gt; &amp;lt;Typ&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter:&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter !! class=&amp;quot;unsortable&amp;quot;|Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;||Name des Modul&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;device&amp;gt;||Name des Hardwaremoduls dessen Readings die Kanäle sind. Sollten die Kanäle eigene definitionen in fhem sein, dann hier ein &amp;quot;-&amp;quot; eingeben.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang1&amp;gt;||Name des Device-Reading oder des fhem Geräts von Kanal 1&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang2&amp;gt;||Name des zweiten Device-Reading bzw. fhem Geräts für Kanal 2&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;typ&amp;gt;||Art der Kanalsteuerung. Mögliche Werte sind:&amp;lt;BR/&amp;gt;&lt;br /&gt;
Typ1,Typ2,Typ3,FS20ru. Eine Auflistung der Funktionsweise enthält der nächste Bereich.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typen&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ1&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ2&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ3&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|Off||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||-||runter&lt;br /&gt;
|-&lt;br /&gt;
| -||On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
| -||Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|FS20rsu&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||runter&lt;br /&gt;
|-&lt;br /&gt;
|On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|drive-down-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden die das Rollo vom offenen zum geschlossenen Zustand benötigt.&lt;br /&gt;
|-&lt;br /&gt;
|drive-up-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden, die das Rollo vom geschlossenen zum offenen Zustand benötigt (meist geringfügig höher als drive-down-time-to-100).&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled&lt;br /&gt;
| on,off&lt;br /&gt;
| on&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann die automatische Szenariensteuerung für den Rolladen deaktiviert werden.&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay&lt;br /&gt;
|0,5,10,15,&amp;lt;BR/&amp;gt;20,30,45,60&lt;br /&gt;
|0&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann einge Zeitverzögerund für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen minuten später heruntergefahren.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Es gibt mehrere Settings die das Rollo in eine bestimmte Position fahren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;geschlossen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett herunter (Position 100)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;offen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett nach oben (Position 0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;schlitz&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo soweit herunter das nur die Rolloschlitze offen sind (Position 90)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;position&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo auf eine beliebige Position zwischen 0 (offen) - 100 (geschlossen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Fahrbefehle für das Rollo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;stop&amp;gt;&amp;lt;/code&amp;gt;  Stopt ein fahrendes Rollo unabhängig davon ob die vorher angegebene Zielposition erreicht wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;toggle&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition.&lt;br /&gt;
Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonstige Set-Befehle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; extern &amp;lt;position:offen,geschlossen,schlitz,stop&amp;gt;&amp;lt;/code&amp;gt; Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten. siehe auch [[#Zusammenspiel mit externem Taster]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; reset &amp;lt;position:offen,geschlossen&amp;gt; &amp;lt;/code&amp;gt; Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
===Define===&lt;br /&gt;
 define meinRollo ROLLO myMcp23017 PortA0 PortA1 Typ1&lt;br /&gt;
Die Rollo-Kanäle sind Readings des Mcp23017-Device&lt;br /&gt;
&lt;br /&gt;
 define meinRollo ROLLO - Rollo_KanalA Rollo_KanalB&lt;br /&gt;
Die Rollo-Kanäle sind in fhem Eigenständige Devices, der Parameter &amp;lt;device&amp;gt; wurde deshalb mit einem &amp;quot;-&amp;quot; deaktiviert&lt;br /&gt;
&lt;br /&gt;
===Set===&lt;br /&gt;
 set RolladenWohnzimmer position 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
Das Rollo-Modul wird angewiesen den status auf &amp;quot;nicht fahren&amp;quot; zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer reset geschlossen&lt;br /&gt;
In der Oberfläche von fhem wird für das Rollo die Position &amp;quot;geschlossen&amp;quot; gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird eevtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.&lt;br /&gt;
&lt;br /&gt;
===Zusammenspiel mit externem Taster===&lt;br /&gt;
In einem Anwendungszenario hat ein Nutzer zusätzliche Taster an seinem Rollo-Motor über die er ihn ebenfalls steuern kann. &lt;br /&gt;
Die Taster selber senden keine Events an fhem, nur der Rollo-Motor.&lt;br /&gt;
Hier ein Beispiel wie das ganze für Typ2-Rollos aussehen könnte und diese Taster in das ROLLO-Modul integriert werden:&lt;br /&gt;
&lt;br /&gt;
 define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern offen) DOELSEIF ([meinRollo_Kanal1] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
 define rollo_manuell_ab  DOIF ([meinRollo_Kanal2] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern geschlossen) DOELSEIF ([meinRollo_Kanal2] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
&lt;br /&gt;
meinRollo_Kanal1 und meinRollo_Kanal2 sind die Hardwarekanäle die in dem Rollo-Modul zum hochfahren/runterfahren benutzt werden. In diesem Beispiel ist das Rollo als Typ2 (ein Kanal hoch, zweiter Kanal runter) definiert.&lt;br /&gt;
Das erste DOIF prüft ob das Rollo hoch fährt, ohne das das Rollo-Modul davon etwas weis. Ist dem so wird dem Rollo Modul mithilfe des set &amp;lt;extern&amp;gt; mitgeteilt das das Rollo bereits gestartet wurde. Das Modul fängt an die Zeit zu zählen und aktualisiert den Status der Oberfläche auf &amp;quot;fahre hoch&amp;quot;.&lt;br /&gt;
IM DOELSEIF wird abgefragt ob das Rollo steht, obwohl das Modul denkt das Rollo würde noch fahren. Ist dem so wird wieder mithilfe des set &amp;lt;extern&amp;gt; dem Modul mitgeteilt das das Rollo gestoppt wurde. Das Modul berechnet nun aufgrund der gefahrenen Zeit die aktuelle Position und aktualisiert den Status der Oberfläche auf die Position.&lt;br /&gt;
&lt;br /&gt;
Das gleiche wird dann im zweiten DOIF nochmal für das herunterfahren gemacht.&lt;br /&gt;
&lt;br /&gt;
Man kann nun das Rollo sowohl über die Oberfläche als auch per Taster bedienen und fhem und der reale Ist-Status sind synchron. Ach eine gleichzeitige Bedienung ist möglich, Das Rollo startet z.B. aufgrund einer Automatisierung morgens zum hochfahren und man klickt schnell auf den Taster neben dem Bett und stoppt das ganze wieder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13580</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13580"/>
		<updated>2016-01-14T08:56:56Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: /* Zusammenspiel mit externem Taster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=47202&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=ThomasRamm}}&lt;br /&gt;
Das Modul [[ROLLO]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
__TOC__&lt;br /&gt;
Das Modul unterstützt verschiedenste Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
Weitere Konfigurationen können im Forum angefragt werden.&lt;br /&gt;
&lt;br /&gt;
Besonderheiten:&lt;br /&gt;
* Wird in einer Konfiguration ein Kanal für die Richtung, der zweite für das Aktivieren des Rollos genutzt (z.B. Typ1), wird immer vor einem Rollo-Start die Richtung gesetzt. Bei einem Richtungswechsel während der Fahrt wird der Rollo für 1 sekunde gestoppt und dann in der Gegenrichtung gestartet.&lt;br /&gt;
&lt;br /&gt;
* Fährt das Rollo zur Position offen oder geschlossen, wird der Motor noch 5 sec. länger auf on gelassen, um Positionsverschiebungen aufgrund ungenauer Parameter auszugleichen. Bei jedem vollständigen schließen/öffnen ist die Position damit wieder korrekt.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. Die Ungenauigkeiten die dadurch zwischen echter Position und gespeicherter Position entstehen, werden durch oben angeführte Korrektur ausgeglichen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rolladen Eintrag.PNG|right|thumb|400px|Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen]]&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert, Icons und Farben können für jeden Status individuell formatiert werden, die Standard Kommandos auf der Oberfläche (hier: offen, geschlossen, schlitz, Position) können ebenfalls per Attribut angepasst werden.&lt;br /&gt;
Beim Anlegen des Moduls werden die Attribute zur Darstellung in fhem mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es müssen in fhem 2 Kanäle konfiguriert sein die mit on/off gesteuert werden können. Diese Kanäle können als Readings eines device oder als eigenständige definitionen in fhem existieren.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO &amp;lt;device&amp;gt; &amp;lt;ausgang1&amp;gt; &amp;lt;ausgang2&amp;gt; &amp;lt;Typ&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter:&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter !! class=&amp;quot;unsortable&amp;quot;|Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;||Name des Modul&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;device&amp;gt;||Name des Hardwaremoduls dessen Readings die Kanäle sind. Sollten die Kanäle eigene definitionen in fhem sein, dann hier ein &amp;quot;-&amp;quot; eingeben.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang1&amp;gt;||Name des Device-Reading oder des fhem Geräts von Kanal 1&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang2&amp;gt;||Name des zweiten Device-Reading bzw. fhem Geräts für Kanal 2&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;typ&amp;gt;||Art der Kanalsteuerung. Mögliche Werte sind:&amp;lt;BR/&amp;gt;&lt;br /&gt;
Typ1,Typ2,Typ3,FS20ru. Eine Auflistung der Funktionsweise enthält der nächste Bereich.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typen&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ1&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ2&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ3&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|Off||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||-||runter&lt;br /&gt;
|-&lt;br /&gt;
| -||On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
| -||Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|FS20rsu&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||runter&lt;br /&gt;
|-&lt;br /&gt;
|On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|drive-down-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden die das Rollo vom offenen zum geschlossenen Zustand benötigt.&lt;br /&gt;
|-&lt;br /&gt;
|drive-up-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden, die das Rollo vom geschlossenen zum offenen Zustand benötigt (meist geringfügig höher als drive-down-time-to-100).&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled&lt;br /&gt;
| on,off&lt;br /&gt;
| on&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann die automatische Szenariensteuerung für den Rolladen deaktiviert werden.&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay&lt;br /&gt;
|0,5,10,15,&amp;lt;BR/&amp;gt;20,30,45,60&lt;br /&gt;
|0&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann einge Zeitverzögerund für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen minuten später heruntergefahren.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Es gibt mehrere Settings die das Rollo in eine bestimmte Position fahren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;geschlossen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett herunter (Position 100)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;offen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett nach oben (Position 0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;schlitz&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo soweit herunter das nur die Rolloschlitze offen sind (Position 90)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;position&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo auf eine beliebige Position zwischen 0 (offen) - 100 (geschlossen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Fahrbefehle für das Rollo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;stop&amp;gt;&amp;lt;/code&amp;gt;  Stopt ein fahrendes Rollo unabhängig davon ob die vorher angegebene Zielposition erreicht wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;toggle&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition.&lt;br /&gt;
Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonstige Set-Befehle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; extern &amp;lt;position:offen,geschlossen,schlitz,stop&amp;gt;&amp;lt;/code&amp;gt; Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten. siehe auch [[#Zusammenspiel mit externem Taster]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; reset &amp;lt;position:offen,geschlossen&amp;gt; &amp;lt;/code&amp;gt; Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
===Define===&lt;br /&gt;
 define meinRollo ROLLO myMcp23017 PortA0 PortA1 Typ1&lt;br /&gt;
Die Rollo-Kanäle sind Readings des Mcp23017-Device&lt;br /&gt;
&lt;br /&gt;
 define meinRollo ROLLO - Rollo_KanalA Rollo_KanalB&lt;br /&gt;
Die Rollo-Kanäle sind in fhem Eigenständige Devices, der Parameter &amp;lt;device&amp;gt; wurde deshalb mit einem &amp;quot;-&amp;quot; deaktiviert&lt;br /&gt;
&lt;br /&gt;
===Set===&lt;br /&gt;
 set RolladenWohnzimmer position 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
Das Rollo-Modul wird angewiesen den status auf &amp;quot;nicht fahren&amp;quot; zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer reset geschlossen&lt;br /&gt;
In der Oberfläche von fhem wird für das Rollo die Position &amp;quot;geschlossen&amp;quot; gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird eevtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.&lt;br /&gt;
&lt;br /&gt;
===Zusammenspiel mit externem Taster===&lt;br /&gt;
In einem Anwendungszenario hat ein Nutzer zusätzliche Taster an seinem Rollo-Motor über die er ihn ebenfalls steuern kann. Die Taster selber senden keine Events an fhem, nur der Rollo-Motor.&lt;br /&gt;
Mit folgender Definition können diese Taster in das ROLLO-Modul integriert werden:&lt;br /&gt;
&lt;br /&gt;
 define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern offen) DOELSEIF ([meinRollo_Kanal1] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-up&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
 define rollo_manuell_ab  DOIF ([meinRollo_Kanal2] eq &amp;quot;on&amp;quot; and [meinRolloModul] ne &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern geschlossen) DOELSEIF ([meinRollo_Kanal2] eq &amp;quot;off&amp;quot; and [meinRolloModul] eq &amp;quot;drive-down&amp;quot;) (set meinRolloModul extern stop)&lt;br /&gt;
&lt;br /&gt;
meinRollo_Kanal1 und meinRollo_Kanal2 sind die Hardwarekanäle die in dem Rollo-Modul zum hochfahren/runterfahren benutzt werden. In diesem Beispiel ist das Rollo als Typ2 (ein Kanal hoch, zweiter Kanal runter) definiert.&lt;br /&gt;
Das erste DOIF prüft ob das Rollo hoch fährt, ohne das das Rollo-Modul davon etwas weis. Ist dem so wird dem Rollo Modul mithilfe des set &amp;lt;extern&amp;gt; mitgeteilt das das Rollo bereits gestartet wurde. Das Modul fängt an die Zeit zu zählen und aktualisiert den Status der Oberfläche auf &amp;quot;fahre hoch&amp;quot;.&lt;br /&gt;
IM DOELSEIF wird abgefragt ob das Rollo steht, obwohl das Modul denkt das Rollo würde noch fahren. Ist dem so wird wieder mithilfe des set &amp;lt;extern&amp;gt; dem Modul mitgeteilt das das Rollo gestoppt wurde. Das Modul berechnet nun aufgrund der gefahrenen Zeit die aktuelle Position und aktualisiert den Status der Oberfläche auf die Position.&lt;br /&gt;
&lt;br /&gt;
Das gleiche wird dann im zweiten DOIF nochmal für das herunterfahren gemacht.&lt;br /&gt;
&lt;br /&gt;
Man kann nun das Rollo sowohl über die Oberfläche als auch per Taster bedienen und fhem und der reale Ist-Status sind synchron. Ach eine gleichzeitige Bedienung ist möglich, Das Rollo startet z.B. aufgrund einer Automatisierung morgens zum hochfahren und man klickt schnell auf den Taster neben dem Bett und stoppt das ganze wieder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13577</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13577"/>
		<updated>2016-01-14T08:36:45Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: Erweiterungsbeispiel:Zusammenspiel mit externem Taster&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=47202&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=ThomasRamm}}&lt;br /&gt;
Das Modul [[ROLLO]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
__TOC__&lt;br /&gt;
Das Modul unterstützt verschiedenste Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
Weitere Konfigurationen können im Forum angefragt werden.&lt;br /&gt;
&lt;br /&gt;
Besonderheiten:&lt;br /&gt;
* Wird in einer Konfiguration ein Kanal für die Richtung, der zweite für das Aktivieren des Rollos genutzt (z.B. Typ1), wird immer vor einem Rollo-Start die Richtung gesetzt. Bei einem Richtungswechsel während der Fahrt wird der Rollo für 1 sekunde gestoppt und dann in der Gegenrichtung gestartet.&lt;br /&gt;
&lt;br /&gt;
* Fährt das Rollo zur Position offen oder geschlossen, wird der Motor noch 5 sec. länger auf on gelassen, um Positionsverschiebungen aufgrund ungenauer Parameter auszugleichen. Bei jedem vollständigen schließen/öffnen ist die Position damit wieder korrekt.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. Die Ungenauigkeiten die dadurch zwischen echter Position und gespeicherter Position entstehen, werden durch oben angeführte Korrektur ausgeglichen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rolladen Eintrag.PNG|right|thumb|400px|Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen]]&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert, Icons und Farben können für jeden Status individuell formatiert werden, die Standard Kommandos auf der Oberfläche (hier: offen, geschlossen, schlitz, Position) können ebenfalls per Attribut angepasst werden.&lt;br /&gt;
Beim Anlegen des Moduls werden die Attribute zur Darstellung in fhem mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es müssen in fhem 2 Kanäle konfiguriert sein die mit on/off gesteuert werden können. Diese Kanäle können als Readings eines device oder als eigenständige definitionen in fhem existieren.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO &amp;lt;device&amp;gt; &amp;lt;ausgang1&amp;gt; &amp;lt;ausgang2&amp;gt; &amp;lt;Typ&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter:&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter !! class=&amp;quot;unsortable&amp;quot;|Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;||Name des Modul&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;device&amp;gt;||Name des Hardwaremoduls dessen Readings die Kanäle sind. Sollten die Kanäle eigene definitionen in fhem sein, dann hier ein &amp;quot;-&amp;quot; eingeben.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang1&amp;gt;||Name des Device-Reading oder des fhem Geräts von Kanal 1&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang2&amp;gt;||Name des zweiten Device-Reading bzw. fhem Geräts für Kanal 2&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;typ&amp;gt;||Art der Kanalsteuerung. Mögliche Werte sind:&amp;lt;BR/&amp;gt;&lt;br /&gt;
Typ1,Typ2,Typ3,FS20ru. Eine Auflistung der Funktionsweise enthält der nächste Bereich.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typen&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ1&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ2&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ3&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|Off||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||-||runter&lt;br /&gt;
|-&lt;br /&gt;
| -||On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
| -||Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|FS20rsu&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||runter&lt;br /&gt;
|-&lt;br /&gt;
|On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|drive-down-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden die das Rollo vom offenen zum geschlossenen Zustand benötigt.&lt;br /&gt;
|-&lt;br /&gt;
|drive-up-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden, die das Rollo vom geschlossenen zum offenen Zustand benötigt (meist geringfügig höher als drive-down-time-to-100).&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled&lt;br /&gt;
| on,off&lt;br /&gt;
| on&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann die automatische Szenariensteuerung für den Rolladen deaktiviert werden.&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay&lt;br /&gt;
|0,5,10,15,&amp;lt;BR/&amp;gt;20,30,45,60&lt;br /&gt;
|0&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann einge Zeitverzögerund für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen minuten später heruntergefahren.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Es gibt mehrere Settings die das Rollo in eine bestimmte Position fahren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;geschlossen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett herunter (Position 100)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;offen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett nach oben (Position 0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;schlitz&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo soweit herunter das nur die Rolloschlitze offen sind (Position 90)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;position&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo auf eine beliebige Position zwischen 0 (offen) - 100 (geschlossen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Fahrbefehle für das Rollo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;stop&amp;gt;&amp;lt;/code&amp;gt;  Stopt ein fahrendes Rollo unabhängig davon ob die vorher angegebene Zielposition erreicht wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;toggle&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition.&lt;br /&gt;
Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonstige Set-Befehle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; extern &amp;lt;position:offen,geschlossen,schlitz,stop&amp;gt;&amp;lt;/code&amp;gt; Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten. siehe auch [[#Zusammenspiel mit externem Taster]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; reset &amp;lt;position:offen,geschlossen&amp;gt; &amp;lt;/code&amp;gt; Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
===Define===&lt;br /&gt;
 define meinRollo ROLLO myMcp23017 PortA0 PortA1 Typ1&lt;br /&gt;
Die Rollo-Kanäle sind Readings des Mcp23017-Device&lt;br /&gt;
&lt;br /&gt;
 define meinRollo ROLLO - Rollo_KanalA Rollo_KanalB&lt;br /&gt;
Die Rollo-Kanäle sind in fhem Eigenständige Devices, der Parameter &amp;lt;device&amp;gt; wurde deshalb mit einem &amp;quot;-&amp;quot; deaktiviert&lt;br /&gt;
&lt;br /&gt;
===Set===&lt;br /&gt;
 set RolladenWohnzimmer position 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
Das Rollo-Modul wird angewiesen den status auf &amp;quot;nicht fahren&amp;quot; zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer reset geschlossen&lt;br /&gt;
In der Oberfläche von fhem wird für das Rollo die Position &amp;quot;geschlossen&amp;quot; gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird eevtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.&lt;br /&gt;
&lt;br /&gt;
===Zusammenspiel mit externem Taster===&lt;br /&gt;
In einem Anwendungszenario hat ein Nutzer zusätzliche Taster an seinem Rollo-Motor über die er ihn ebenfalls steuern kann. Die Taster selber senden keine Events an fhem, nur der Rollo-Motor.&lt;br /&gt;
Mit folgender Definition können diese Taster in das ROLLO-Modul integriert werden:&lt;br /&gt;
&lt;br /&gt;
 define rollo_manuell_auf DOIF ([EG_wc_RO_mi_SW_01] eq &amp;quot;on&amp;quot; and [Test_Rollo] ne &amp;quot;drive-up&amp;quot;) (set Test_Rollo extern offen) DOELSEIF ([EG_wc_RO_mi_SW_01] eq &amp;quot;off&amp;quot; and [Test_Rollo] eq &amp;quot;drive-up&amp;quot;) (set Test_Rollo extern stop)&lt;br /&gt;
 define rollo_manuell_ab  DOIF ([EG_wc_RO_mi_SW_02] eq &amp;quot;on&amp;quot; and [Test_Rollo] ne &amp;quot;drive-down&amp;quot;) (set Test_Rollo extern geschlossen) DOELSEIF ([EG_wc_RO_mi_SW_02] eq &amp;quot;off&amp;quot; and [Test_Rollo] eq &amp;quot;drive-down&amp;quot;) (set Test_Rollo extern stop)&lt;br /&gt;
&lt;br /&gt;
Das erste DOIF prüft ob das Rollo hoch fährt, ohne das das Rollo-Modul davon etwas weis. Ist dem so wird dem Rollo Modul mithilfe des set &amp;lt;extern&amp;gt; mitgeteilt das das Rollo bereits gestartet wurde. Das Modul fängt an die Zeit zu zählen und aktualisiert den Status der Oberfläche auf &amp;quot;fahre hoch&amp;quot;.&lt;br /&gt;
IM DOELSEIF wird abgefragt ob das Rollo steht, obwohl das Modul denkt das Rollo würde noch fahren. Ist dem so wird wieder mithilfe des set &amp;lt;extern&amp;gt; dem Modul mitgeteilt das das Rollo gestoppt wurde. Das Modul berechnet nun aufgrund der gefahrenen Zeit die aktuelle Position und aktualisiert den Status der Oberfläche auf die Position.&lt;br /&gt;
&lt;br /&gt;
Das gleiche wird dann im zweiten DOIF nochmal für das herunterfahren gemacht.&lt;br /&gt;
&lt;br /&gt;
Man kann nun das Rollo sowohl über die Oberfläche als auch per Taster bedienen und fhem und der reale Ist-Status sind synchron. Ach eine gleichzeitige Bedienung ist möglich, Das Rollo startet z.B. aufgrund einer Automatisierung morgens zum hochfahren und man klickt schnell auf den Taster neben dem Bett und stoppt das ganze wieder.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13576</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13576"/>
		<updated>2016-01-13T23:31:48Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=47202&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=ThomasRamm}}&lt;br /&gt;
Das Modul [[ROLLO]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
__TOC__&lt;br /&gt;
Das Modul unterstützt verschiedenste Konfigurationen welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
Weitere Konfigurationen können im Forum angefragt werden.&lt;br /&gt;
&lt;br /&gt;
Besonderheiten:&lt;br /&gt;
* Wird in einer Konfiguration ein Kanal für die Richtung, der zweite für das Aktivieren des Rollos genutzt (z.B. Typ1), wird immer vor einem Rollo-Start die Richtung gesetzt. Bei einem Richtungswechsel während der Fahrt wird der Rollo für 1 sekunde gestoppt und dann in der Gegenrichtung gestartet.&lt;br /&gt;
&lt;br /&gt;
* Fährt das Rollo zur Position offen oder geschlossen, wird der Motor noch 5 sec. länger auf on gelassen, um Positionsverschiebungen aufgrund ungenauer Parameter auszugleichen. Bei jedem vollständigen schließen/öffnen ist die Position damit wieder korrekt.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. Die Ungenauigkeiten die dadurch zwischen echter Position und gespeicherter Position entstehen, werden durch oben angeführte Korrektur ausgeglichen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rolladen Eintrag.PNG|right|thumb|400px|Verschiedene Ansichten des Rollo:offen, fährt gerade herunter, position 50, fährt gerade hoch, geschlossen]]&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert, Icons und Farben können für jeden Status individuell formatiert werden, die Standard Kommandos auf der Oberfläche (hier: offen, geschlossen, schlitz, Position) können ebenfalls per Attribut angepasst werden.&lt;br /&gt;
Beim Anlegen des Moduls werden die Attribute zur Darstellung in fhem mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es müssen in fhem 2 Kanäle konfiguriert sein die mit on/off gesteuert werden können. Diese Kanäle können als Readings eines device oder als eigenständige definitionen in fhem existieren.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO &amp;lt;device&amp;gt; &amp;lt;ausgang1&amp;gt; &amp;lt;ausgang2&amp;gt; &amp;lt;Typ&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter:&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter !! class=&amp;quot;unsortable&amp;quot;|Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;||Name des Modul&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;device&amp;gt;||Name des Hardwaremoduls dessen Readings die Kanäle sind. Sollten die Kanäle eigene definitionen in fhem sein, dann hier ein &amp;quot;-&amp;quot; eingeben.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang1&amp;gt;||Name des Device-Reading oder des fhem Geräts von Kanal 1&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang2&amp;gt;||Name des zweiten Device-Reading bzw. fhem Geräts für Kanal 2&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;typ&amp;gt;||Art der Kanalsteuerung. Mögliche Werte sind:&amp;lt;BR/&amp;gt;&lt;br /&gt;
Typ1,Typ2,Typ3,FS20ru. Eine Auflistung der Funktionsweise enthält der nächste Bereich.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typen&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ1&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ2&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ3&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|Off||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||-||runter&lt;br /&gt;
|-&lt;br /&gt;
| -||On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
| -||Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|FS20rsu&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||runter&lt;br /&gt;
|-&lt;br /&gt;
|On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|drive-down-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden die das Rollo vom offenen zum geschlossenen Zustand benötigt.&lt;br /&gt;
|-&lt;br /&gt;
|drive-up-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden, die das Rollo vom geschlossenen zum offenen Zustand benötigt (meist geringfügig höher als drive-down-time-to-100).&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled&lt;br /&gt;
| on,off&lt;br /&gt;
| on&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann die automatische Szenariensteuerung für den Rolladen deaktiviert werden.&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay&lt;br /&gt;
|0,5,10,15,&amp;lt;BR/&amp;gt;20,30,45,60&lt;br /&gt;
|0&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann einge Zeitverzögerund für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen minuten später heruntergefahren.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Es gibt mehrere Settings die das Rollo in eine bestimmte Position fahren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;geschlossen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett herunter (Position 100)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;offen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett nach oben (Position 0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;schlitz&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo soweit herunter das nur die Rolloschlitze offen sind (Position 90)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;position&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo auf eine beliebige Position zwischen 0 (offen) - 100 (geschlossen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Fahrbefehle für das Rollo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;stop&amp;gt;&amp;lt;/code&amp;gt;  Stopt ein fahrendes Rollo unabhängig davon ob die vorher angegebene Zielposition erreicht wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;toggle&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition.&lt;br /&gt;
Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonstige Set-Befehle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; extern &amp;lt;position:offen,geschlossen,schlitz,stop&amp;gt;&amp;lt;/code&amp;gt; Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; reset &amp;lt;position:offen,geschlossen&amp;gt; &amp;lt;/code&amp;gt; Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
===Define===&lt;br /&gt;
 define meinRollo ROLLO myMcp23017 PortA0 PortA1 Typ1&lt;br /&gt;
Die Rollo-Kanäle sind Readings des Mcp23017-Device&lt;br /&gt;
&lt;br /&gt;
 define meinRollo ROLLO - Rollo_KanalA Rollo_KanalB&lt;br /&gt;
Die Rollo-Kanäle sind in fhem Eigenständige Devices, der Parameter &amp;lt;device&amp;gt; wurde deshalb mit einem &amp;quot;-&amp;quot; deaktiviert&lt;br /&gt;
&lt;br /&gt;
===Set===&lt;br /&gt;
 set RolladenWohnzimmer position 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
Drei Beispiele das Rollo-Modul anzuweisen verschiedene Positionen anzufahren.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
Das Rollo-Modul wird angewiesen den status auf &amp;quot;nicht fahren&amp;quot; zu setzen, die aktuelle Rollo-Position zu berechnen und als neue Position abzuspeichern. Der eigentliche Rollo-Stop-Befehl wird dabei aber nicht gesendet.&lt;br /&gt;
&lt;br /&gt;
 set RolladenWohnzimmer reset geschlossen&lt;br /&gt;
In der Oberfläche von fhem wird für das Rollo die Position &amp;quot;geschlossen&amp;quot; gespeichert, ohne Berechnungen durchzuführen oder Hardware zu steuern. Wird eevtl. benötigt wenn der Ist-Status von den Soll-Werten aus fhem abweicht.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:Rolladen_Eintrag.PNG&amp;diff=13575</id>
		<title>Datei:Rolladen Eintrag.PNG</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:Rolladen_Eintrag.PNG&amp;diff=13575"/>
		<updated>2016-01-13T23:09:43Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13574</id>
		<title>ROLLO</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ROLLO&amp;diff=13574"/>
		<updated>2016-01-13T23:03:32Z</updated>

		<summary type="html">&lt;p&gt;ThomasRamm: Neue Seite für Modul 44_ROLLO.pm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ROLLO}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Rollo-Steuerung zur einfachen Anzeige/Programmierung&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=47202&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef= ---- noch nicht Teil von FHEM ----&amp;gt;&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=44_ROLLO.pm&lt;br /&gt;
|ModOwner=ThomasRamm}}&lt;br /&gt;
Das Modul [[Rolladen]] bietet eine einfache Möglichkeit, mit ein bis zwei Relais den Hoch-/Runterlauf eines Rolladen zu steuern und punktgenau anzuhalten. Außerdem wird die aktuelle Position in fhem abgebildet.&lt;br /&gt;
Über welche Hardware/Module die Ausgänge angesprochen werden ist dabei egal.&lt;br /&gt;
&lt;br /&gt;
Das Modul unterstützt dabei verschiedenste Konfigurationen dazu welche Befehle ausgeführt werden müssen um die Hardware des Rollos zu steuern.&lt;br /&gt;
&lt;br /&gt;
Besonderheiten:&lt;br /&gt;
* Wird in einer Konfiguration ein Kanal für die Richtung, der zweite für das Aktivieren des Rollos genutzt, wird immer vor einem Rollo-Start die Richtung gesetzt. Bei einem Richtungswechsel während der Fahrt wird der Rollo für 1 sekunde gestoppt und dann in der Gegenrichtung gestartet.&lt;br /&gt;
&lt;br /&gt;
* Fährt das Rollo zur Position offen oder geschlossen, wird der Motor noch 5 sec. länger an gelassen, um Positionsverschiebungen aufgrund ungenauer Parameter auszugleichen. Bei jedem vollständigen schliessen/öffnen ist die Position damit wieder korrekt.&lt;br /&gt;
&lt;br /&gt;
* Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. Die Ungenauigkeiten die dadurch zwischen echter Position und gespeicherter Position entstehen, werden durch oben angeführte Korrektur ausgeglichen.&lt;br /&gt;
&lt;br /&gt;
Vorteil dieses Moduls:&lt;br /&gt;
Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.&lt;br /&gt;
Die Oberflächenicons werden per devStateIcon gesteuert. &lt;br /&gt;
Beim Anlegen des Moduls wird dieses Attribut mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es müssen in fhem 2 Kanäle konfiguriert sein die mit on/off gesteuert werden können. Diese Kanäle können als Readings eines device oder als eigenständige definitionen in fhem existieren.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
 define &amp;lt;name&amp;gt; ROLLO &amp;lt;device&amp;gt; &amp;lt;ausgang1&amp;gt; &amp;lt;ausgang2&amp;gt; &amp;lt;Typ&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameter:&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter !! class=&amp;quot;unsortable&amp;quot;|Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;name&amp;gt;||Name des Modul&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;device&amp;gt;||Name des Hardwaremoduls dessen Readings die Kanäle sind. Sollten die Kanäle eigene definitionen in fhem sein, dann hier ein &amp;quot;-&amp;quot; eingeben.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang1&amp;gt;||Name des Device-Reading oder des fhem Geräts von Kanal 1&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;ausgang2&amp;gt;||Name des zweiten Device-Reading bzw. fhem Geräts für Kanal 2&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;typ&amp;gt;||Art der Kanalsteuerung. Mögliche Werte sind:&amp;lt;BR/&amp;gt;&lt;br /&gt;
Typ1,Typ2,Typ3,FS20ru. Eine Auflistung der Funktionsweise enthält der nächste Bereich.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Typen&#039;&#039;&#039;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ1&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ2&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||Off||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||On||runter&lt;br /&gt;
|-&lt;br /&gt;
|Off||Off||stop&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|Typ3&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Kanal 2!!Status&lt;br /&gt;
|-&lt;br /&gt;
|Off||-||hoch&lt;br /&gt;
|-&lt;br /&gt;
|On||-||runter&lt;br /&gt;
|-&lt;br /&gt;
| -||On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
| -||Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:left; margin-right:1em&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!colspan=3|FS20rsu&lt;br /&gt;
|-&lt;br /&gt;
!Kanal 1!!Status&lt;br /&gt;
|-&lt;br /&gt;
|On||hoch&lt;br /&gt;
|-&lt;br /&gt;
|Off||runter&lt;br /&gt;
|-&lt;br /&gt;
|On||stoppt das hochfahren&lt;br /&gt;
|-&lt;br /&gt;
|Off||stoppt das herunterfahren&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Datentyp/&amp;lt;BR/&amp;gt;Wertebereich !! Default-Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|drive-down-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden die das Rollo vom offenen zum geschlossenen Zustand benötigt.&lt;br /&gt;
|-&lt;br /&gt;
|drive-up-time-to-100&lt;br /&gt;
|Ganzzahl&lt;br /&gt;
|20&lt;br /&gt;
|Zeit in Sekunden, die das Rollo vom geschlossenen zum offenen Zustand benötigt (meist geringfügig höher als drive-down-time-to-100).&lt;br /&gt;
|-&lt;br /&gt;
|automatic-enabled&lt;br /&gt;
| on,off&lt;br /&gt;
| on&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung 44_ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann die automatische Szenariensteuerung für den Rolladen deaktiviert werden.&lt;br /&gt;
|-&lt;br /&gt;
|automatic-delay&lt;br /&gt;
|0,5,10,15,&amp;lt;BR/&amp;gt;20,30,45,60&lt;br /&gt;
|0&lt;br /&gt;
|Dieses Attribut wird nur für die Modulerweiterung ROLLADEN_Automatic benötigt.&lt;br /&gt;
Hiermit kann einge Zeitverzögerund für den Rolladen eingestellt werden, werden die Rolladen per Automatic heruntergefahren, so wird dieser um die angegebenen minuten später heruntergefahren.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
Es gibt mehrere Settings die das Rollo in eine bestimmte Position fahren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;geschlossen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett herunter (Position 100)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;offen&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo komplett nach oben (Position 0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;schlitz&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo soweit herunter das nur die Rolloschlitze offen sind (Position 90)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;position&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo auf eine beliebige Position zwischen 0 (offen) - 100 (geschlossen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Fahrbefehle für das Rollo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;stop&amp;gt;&amp;lt;/code&amp;gt;  Stopt ein fahrendes Rollo unabhängig davon ob die vorher angegebene Zielposition erreicht wurde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;toggle&amp;gt;&amp;lt;/code&amp;gt; Fährt das Rollo in die entgegengesetzte Richtung wie beim letzten mal bis zur jeweiligen Endposition.&lt;br /&gt;
Fährt das Rollo gerade, wird es zuerst gestoppt und danach ebenfalls in die entgegengesetzte Richtung gefahren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sonstige Set-Befehle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; extern &amp;lt;position:offen,geschlossen,schlitz,stop&amp;gt;&amp;lt;/code&amp;gt; Startet alle Berechnungen und internen Timer im Modul, aktiviert aber nicht die konfigurierte Hardware (nützlich wenn diese bereits aktiviert wurde, um den Status der Oberfläche mit dem Ist-Zustand synchron zu halten.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; reset &amp;lt;position:offen,geschlossen&amp;gt; &amp;lt;/code&amp;gt; Setzt den internen Status des Rollo auf offen bzw. geschlossen ohne irgendwelche weiteren Aktionen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
 set RolladenWohnzimmer position 50&lt;br /&gt;
 set RolladenWohnzimmer geschlossen&lt;br /&gt;
 set RolladenWohnzimmer offen &lt;br /&gt;
 set RolladenWohnzimmer extern stop&lt;br /&gt;
 set RolladenWohnzimmer reset geschlossen&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
Thread im {{Link2Forum|Topic=47202|LinkText=Forum}} mit der jeweils aktuellen Version des Moduls als Anhang im ersten Beitrag.&lt;/div&gt;</summary>
		<author><name>ThomasRamm</name></author>
	</entry>
</feed>