<?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=Tobias.faust</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=Tobias.faust"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/Tobias.faust"/>
	<updated>2026-05-02T13:22:36Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=1-Wire_LED-Statusmonitor&amp;diff=40808</id>
		<title>1-Wire LED-Statusmonitor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=1-Wire_LED-Statusmonitor&amp;diff=40808"/>
		<updated>2026-02-20T15:58:29Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung==&lt;br /&gt;
Mit der folgenden Beschreibung lässt sich ein &#039;&#039;&#039;LED-Statusmonitor&#039;&#039;&#039; aufbauen. Es werden ein Schaltplan und ein Platinenlayout vorgestellt, um 3 LEDs anzuschließen. Die Platine (je nach VersionsNr, siehe Abschnitt) ist so gestaltet, dass sie exakt in das unter &amp;quot;Links&amp;quot; aufgeführte Mini-Gehäuse passt. Der Statusmonitor kann verwendet werden, um beispielsweise die Schaltzustände einer Alarmanlage in der folgenden Art darzustellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:1wire_Alarmsignalanlage_platine.jpg|mini|ohne|x130px|Signalanlage offen]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:1wire_Alarmsignalanlage_offen.jpg|mini|ohne|x130px|Signalanlage im offenen Gehäuse]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:1wire_Alarmsignalanlage_zu.jpg|mini|ohne|x130px|Signalanlage geschlossen]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* LED1 (grün) Erdgeschoss Fenster geschlossen&lt;br /&gt;
* LED2 (gelb) Erdgeschoss Fenster gekippt&lt;br /&gt;
* LED3 (rot)  Erdgeschoss Fenster geöffnet&lt;br /&gt;
* usw&lt;br /&gt;
&lt;br /&gt;
Sollen nur 2 Zustände (zb. offen/geschlossen) dargestellt werden, so empfiehlt sich der DualLED Hardwaremod ([[FS20_Statusanzeige_mit_Dual-LED]]). Jedoch nicht mit einer BiColorLED sonden mit jeweils 2 LowCurrentLEDś da der DS2408 in Summe nur 20mA belastbar ist.&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Platine Version 2.4 ==&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Schaltplan.jpg|300px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Platine.jpg|300px|thumb|right|Platinenlayout]]&lt;br /&gt;
Bei dieser Version müsen als LEDs LowCurrent LEDs verwendet werden. Dadurch ist der maximale Strom von 20mA (8x2mA) sichergestellt.&lt;br /&gt;
Diese Version kann auch als Reedkontakt-Eingang verwendet werden indem die beiden (Vor-)wiederstandsnetzwerke (R2,R3) durch jeweils 8 Drahtbrücken ersetzt werden. Eine Kombination aus 4 LEDs und 4 Reedkontakteingängen ist auch möglich.&lt;br /&gt;
Diese Version ist kleiner als das verlinkte Gehäuse und passt nicht in die zugehörige Gehäuseaufnahme. Es muss deshalb zb. mit doppelseitigen Klebeband fixiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Abbildungen zeigen den Schaltplan und das Platinenlayout.&lt;br /&gt;
&lt;br /&gt;
=== Bauteilliste ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2&lt;br /&gt;
|  Diode &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BAT85&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Elko 47uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  RAD 47/16&lt;br /&gt;
|- &lt;br /&gt;
|  C3, C4&lt;br /&gt;
|  Keramikkondensator 100N, 10%&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-5 100N&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Anreihklemme 4Pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 055-04&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Stiftleiste K2X04&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-008&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste K1X03&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-003&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Stiftleiste 2x8pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  R1&lt;br /&gt;
|  Widerstandsnetzwerk 10k 9+1&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 10-9 10K&lt;br /&gt;
|- &lt;br /&gt;
|  R2, R3&lt;br /&gt;
|  Widerstands-Netzwerk, 4Wid./8Pins, 1,5 K-Ohm&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 8-4 1,5K&lt;br /&gt;
|- &lt;br /&gt;
|  IC1&lt;br /&gt;
|  1wire 8fach Digital I/O &lt;br /&gt;
|  http://www.fuchs-shop.com/de/&lt;br /&gt;
|  DS2408&lt;br /&gt;
|- &lt;br /&gt;
|  LED1/..../LED8&lt;br /&gt;
|  LowCurrent LED 3mm , 2mA&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Platine Version 2.5 ==&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Schaltplan_v2.5.jpg|300px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Platine_v2.5.jpg|300px|thumb|right|Platinenlayout]]&lt;br /&gt;
Bei dieser Version können konventionelle oder Hochleistungs-LEDs (ultrahell) verwendet werden. Sollen andere Verbraucher geschaltet werden, so sind die jeweiligen Vorwiderstände mit Lötbrücken zu versehen. Jeder Port kann bis zu 130mA belastet werden. Die Lötanschlösse der SMD-Bauteile sind etwas größer als normal layoutet damit konventionell mit einem Feinlötkolben vom geübten Laien gelötet werden kann.&lt;br /&gt;
&lt;br /&gt;
Als weiteres Beispiel sei hier eine Bewässerungssteuerung genannt. Als Verbraucher können hier zb. 12VDC (Finder-)Relais angeschlossen werden die 24V Gardena oder Hunter Magnetventile ansteuern.&lt;br /&gt;
&lt;br /&gt;
Diese Version kann u.U. auch als Reedkontakt-Eingang verwendet werden indem jeweils der Vorwiderstand (R9), die Zehnerdiode (D1) und T2 jeweils durch Drahtbrücken ersetzt werden. R10 darf nicht verbunden werden. Eine Kombination aus LEDs/Verbrauchern und Reedkontakteingängen ist auch möglich.&lt;br /&gt;
Diese Version passt exakt in das verlinkte Gehäuse und sowie in die zugehörige Gehäuseaufnahme. Es muss deshalb nicht weiter fixiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Abbildungen zeigen den Schaltplan und das Platinenlayout. Der Jumper J1 muss auf Minus gestellt werden. Dieser ist in Version 2.5.1 entfallen da überflüssig.&lt;br /&gt;
&lt;br /&gt;
=== Bauteilliste ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  D4&lt;br /&gt;
|  SMD Diode &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BAT54S&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Elko 47uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  RAD 47/16&lt;br /&gt;
|- &lt;br /&gt;
|  C3, C4&lt;br /&gt;
|  Keramikkondensator 100N, 10%&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-5 100N&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Anreihklemme 4Pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 055-04&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Stiftleiste K2X04&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-008&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste K1X03&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-003&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Stiftleiste 2x8pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  R1&lt;br /&gt;
|  Widerstandsnetzwerk 10k 9+1&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 10-9 10K&lt;br /&gt;
|- &lt;br /&gt;
|  R3, R5, R7, R9, R11, R13, R15, R17&lt;br /&gt;
|  SMD Widerstand (LED-Vorwiderstand) &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  Rot: SMD-0805 330 &lt;br /&gt;
Gelb: SMD-0805 330&lt;br /&gt;
&lt;br /&gt;
Grün: SMD-0805 270&lt;br /&gt;
|- &lt;br /&gt;
|  R2, R4, R6, R8, R10, R12, R14, R16&lt;br /&gt;
|  SMD Widerstand, 10k &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  D1, D2, D3, D5, D6, D7, D8, D9&lt;br /&gt;
|  SMD Zehnerdiode; BZV C8V2 &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD ZF 8,2&lt;br /&gt;
|- &lt;br /&gt;
|  T1 - T8&lt;br /&gt;
|  Transistor SMD P-FET SOT-23 -60V -0,17A &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BSS 84P SMD&lt;br /&gt;
|- &lt;br /&gt;
|  IC1&lt;br /&gt;
|  1wire 8fach Digital I/O &lt;br /&gt;
|  http://www.fuchs-shop.com/de/&lt;br /&gt;
|  DS2408&lt;br /&gt;
|- &lt;br /&gt;
|  LED1/..../LED8&lt;br /&gt;
|  LED 3mm , 30mA&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3-3500 RT&lt;br /&gt;
LED 3-12000 GN&lt;br /&gt;
&lt;br /&gt;
LED 3-1300 GE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das Platinenlayout (erstellt mit Target3001) ist im unten aufgeführten Forenthread angehängt.&lt;br /&gt;
&lt;br /&gt;
== Weitere Hinweise zum Betrieb mit DS2408 ==&lt;br /&gt;
Damit der Zustand des DS2408 determiniert ist, ist RSTZ per Pullup auf HIGH gezogen. &lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Platine Version 2.6 - Betrieb mittels ESP32-C3 Super Mini ==&lt;br /&gt;
[[Datei:LEDStatusTableau_Schaltplan_v2.6.jpg|300px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:LEDStatusTableau_Platine_v2.6.jpg|300px|thumb|right|Platinenlayout]]&lt;br /&gt;
&lt;br /&gt;
Die Version 2.6 wechselt vom 1wire Betrieb auf den Betrieb mit einen ESP32-C3 Super Mini. Dieser kann mit einer Firmware eigener Wahl geflashed werden. Es müssen nur die Pins D1/D6/D10 angesteuert werden. &lt;br /&gt;
Im aktuellen Beispiel wird die Anzeige mit der [https://tobiasfaust.github.io/ESP32_PumpControl ESP32_PumpControl] Firmware mit Webinstaller eingesetzt. Damit lässt sich die Anzeige via MQTT ansteuern.&lt;br /&gt;
[[Datei:LEDStatusTableau_config_v2.6.jpg|300px|thumb|right|WebConfig]]&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM ==&lt;br /&gt;
Einsetzbar.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/tobiasfaust/1wire_LED_Statusmonitor/ Alle Dateien im GitHub]&lt;br /&gt;
* passendes Gehäuse [http://www.fuchs-shop.com/de/shop/14/1/13372409/]&lt;br /&gt;
* [http://forum.fhem.de/index.php/topic,16211.0.html Thread im FHEM-Forum]&lt;br /&gt;
* Details zum Layoutprogram [http://de.wikipedia.org/wiki/Target_3001 Target 3001]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hardware_Mods]]&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=1-Wire_LED-Statusmonitor&amp;diff=40807</id>
		<title>1-Wire LED-Statusmonitor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=1-Wire_LED-Statusmonitor&amp;diff=40807"/>
		<updated>2026-02-20T15:56:12Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Schaltplan und Platine Version 2.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung==&lt;br /&gt;
Mit der folgenden Beschreibung lässt sich ein &#039;&#039;&#039;1-Wire LED-Statusmonitor&#039;&#039;&#039; aufbauen. Es werden ein Schaltplan und ein Platinenlayout vorgestellt, um an einem DS2408 acht (Low-Current) LEDs anzuschließen. Die Platine (je nach VersionsNr, siehe Abschnitt) ist so gestaltet, dass sie exakt in das unter &amp;quot;Links&amp;quot; aufgeführte Mini-Gehäuse passt. Der Statusmonitor kann verwendet werden, um beispielsweise die Schaltzustände einer Alarmanlage in der folgenden Art darzustellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:1wire_Alarmsignalanlage_platine.jpg|mini|ohne|x130px|Signalanlage offen]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:1wire_Alarmsignalanlage_offen.jpg|mini|ohne|x130px|Signalanlage im offenen Gehäuse]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:1wire_Alarmsignalanlage_zu.jpg|mini|ohne|x130px|Signalanlage geschlossen]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* LED1 (grün) Erdgeschoss Fenster geschlossen&lt;br /&gt;
* LED2 (gelb) Erdgeschoss Fenster gekippt&lt;br /&gt;
* LED3 (rot)  Erdgeschoss Fenster geöffnet&lt;br /&gt;
* usw&lt;br /&gt;
&lt;br /&gt;
Sollen nur 2 Zustände (zb. offen/geschlossen) dargestellt werden, so empfiehlt sich der DualLED Hardwaremod ([[FS20_Statusanzeige_mit_Dual-LED]]). Jedoch nicht mit einer BiColorLED sonden mit jeweils 2 LowCurrentLEDś da der DS2408 in Summe nur 20mA belastbar ist.&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Platine Version 2.4 ==&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Schaltplan.jpg|300px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Platine.jpg|300px|thumb|right|Platinenlayout]]&lt;br /&gt;
Bei dieser Version müsen als LEDs LowCurrent LEDs verwendet werden. Dadurch ist der maximale Strom von 20mA (8x2mA) sichergestellt.&lt;br /&gt;
Diese Version kann auch als Reedkontakt-Eingang verwendet werden indem die beiden (Vor-)wiederstandsnetzwerke (R2,R3) durch jeweils 8 Drahtbrücken ersetzt werden. Eine Kombination aus 4 LEDs und 4 Reedkontakteingängen ist auch möglich.&lt;br /&gt;
Diese Version ist kleiner als das verlinkte Gehäuse und passt nicht in die zugehörige Gehäuseaufnahme. Es muss deshalb zb. mit doppelseitigen Klebeband fixiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Abbildungen zeigen den Schaltplan und das Platinenlayout.&lt;br /&gt;
&lt;br /&gt;
=== Bauteilliste ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2&lt;br /&gt;
|  Diode &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BAT85&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Elko 47uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  RAD 47/16&lt;br /&gt;
|- &lt;br /&gt;
|  C3, C4&lt;br /&gt;
|  Keramikkondensator 100N, 10%&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-5 100N&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Anreihklemme 4Pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 055-04&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Stiftleiste K2X04&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-008&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste K1X03&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-003&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Stiftleiste 2x8pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  R1&lt;br /&gt;
|  Widerstandsnetzwerk 10k 9+1&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 10-9 10K&lt;br /&gt;
|- &lt;br /&gt;
|  R2, R3&lt;br /&gt;
|  Widerstands-Netzwerk, 4Wid./8Pins, 1,5 K-Ohm&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 8-4 1,5K&lt;br /&gt;
|- &lt;br /&gt;
|  IC1&lt;br /&gt;
|  1wire 8fach Digital I/O &lt;br /&gt;
|  http://www.fuchs-shop.com/de/&lt;br /&gt;
|  DS2408&lt;br /&gt;
|- &lt;br /&gt;
|  LED1/..../LED8&lt;br /&gt;
|  LowCurrent LED 3mm , 2mA&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Platine Version 2.5 ==&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Schaltplan_v2.5.jpg|300px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Platine_v2.5.jpg|300px|thumb|right|Platinenlayout]]&lt;br /&gt;
Bei dieser Version können konventionelle oder Hochleistungs-LEDs (ultrahell) verwendet werden. Sollen andere Verbraucher geschaltet werden, so sind die jeweiligen Vorwiderstände mit Lötbrücken zu versehen. Jeder Port kann bis zu 130mA belastet werden. Die Lötanschlösse der SMD-Bauteile sind etwas größer als normal layoutet damit konventionell mit einem Feinlötkolben vom geübten Laien gelötet werden kann.&lt;br /&gt;
&lt;br /&gt;
Als weiteres Beispiel sei hier eine Bewässerungssteuerung genannt. Als Verbraucher können hier zb. 12VDC (Finder-)Relais angeschlossen werden die 24V Gardena oder Hunter Magnetventile ansteuern.&lt;br /&gt;
&lt;br /&gt;
Diese Version kann u.U. auch als Reedkontakt-Eingang verwendet werden indem jeweils der Vorwiderstand (R9), die Zehnerdiode (D1) und T2 jeweils durch Drahtbrücken ersetzt werden. R10 darf nicht verbunden werden. Eine Kombination aus LEDs/Verbrauchern und Reedkontakteingängen ist auch möglich.&lt;br /&gt;
Diese Version passt exakt in das verlinkte Gehäuse und sowie in die zugehörige Gehäuseaufnahme. Es muss deshalb nicht weiter fixiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Abbildungen zeigen den Schaltplan und das Platinenlayout. Der Jumper J1 muss auf Minus gestellt werden. Dieser ist in Version 2.5.1 entfallen da überflüssig.&lt;br /&gt;
&lt;br /&gt;
=== Bauteilliste ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  D4&lt;br /&gt;
|  SMD Diode &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BAT54S&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Elko 47uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  RAD 47/16&lt;br /&gt;
|- &lt;br /&gt;
|  C3, C4&lt;br /&gt;
|  Keramikkondensator 100N, 10%&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-5 100N&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Anreihklemme 4Pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 055-04&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Stiftleiste K2X04&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-008&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste K1X03&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-003&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Stiftleiste 2x8pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  R1&lt;br /&gt;
|  Widerstandsnetzwerk 10k 9+1&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 10-9 10K&lt;br /&gt;
|- &lt;br /&gt;
|  R3, R5, R7, R9, R11, R13, R15, R17&lt;br /&gt;
|  SMD Widerstand (LED-Vorwiderstand) &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  Rot: SMD-0805 330 &lt;br /&gt;
Gelb: SMD-0805 330&lt;br /&gt;
&lt;br /&gt;
Grün: SMD-0805 270&lt;br /&gt;
|- &lt;br /&gt;
|  R2, R4, R6, R8, R10, R12, R14, R16&lt;br /&gt;
|  SMD Widerstand, 10k &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  D1, D2, D3, D5, D6, D7, D8, D9&lt;br /&gt;
|  SMD Zehnerdiode; BZV C8V2 &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD ZF 8,2&lt;br /&gt;
|- &lt;br /&gt;
|  T1 - T8&lt;br /&gt;
|  Transistor SMD P-FET SOT-23 -60V -0,17A &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BSS 84P SMD&lt;br /&gt;
|- &lt;br /&gt;
|  IC1&lt;br /&gt;
|  1wire 8fach Digital I/O &lt;br /&gt;
|  http://www.fuchs-shop.com/de/&lt;br /&gt;
|  DS2408&lt;br /&gt;
|- &lt;br /&gt;
|  LED1/..../LED8&lt;br /&gt;
|  LED 3mm , 30mA&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3-3500 RT&lt;br /&gt;
LED 3-12000 GN&lt;br /&gt;
&lt;br /&gt;
LED 3-1300 GE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das Platinenlayout (erstellt mit Target3001) ist im unten aufgeführten Forenthread angehängt.&lt;br /&gt;
&lt;br /&gt;
== Weitere Hinweise zum Betrieb mit DS2408 ==&lt;br /&gt;
Damit der Zustand des DS2408 determiniert ist, ist RSTZ per Pullup auf HIGH gezogen. &lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Platine Version 2.6 - Betrieb mittels ESP32-C3 Super Mini ==&lt;br /&gt;
[[Datei:LEDStatusTableau_Schaltplan_v2.6.jpg|300px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:LEDStatusTableau_Platine_v2.6.jpg|300px|thumb|right|Platinenlayout]]&lt;br /&gt;
&lt;br /&gt;
Die Version 2.6 wechselt vom 1wire Betrieb auf den Betrieb mit einen ESP32-C3 Super Mini. Dieser kann mit einer Firmware eigener Wahl geflashed werden. Es müssen nur die Pins D1/D6/D10 angesteuert werden. &lt;br /&gt;
Im aktuellen Beispiel wird die Anzeige mit der [https://tobiasfaust.github.io/ESP32_PumpControl ESP32_PumpControl] Firmware mit Webinstaller eingesetzt. Damit lässt sich die Anzeige via MQTT ansteuern.&lt;br /&gt;
[[Datei:LEDStatusTableau_config_v2.6.jpg|300px|thumb|right|WebConfig]]&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM ==&lt;br /&gt;
Einsetzbar.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/tobiasfaust/1wire_LED_Statusmonitor/ Alle Dateien im GitHub]&lt;br /&gt;
* passendes Gehäuse [http://www.fuchs-shop.com/de/shop/14/1/13372409/]&lt;br /&gt;
* [http://forum.fhem.de/index.php/topic,16211.0.html Thread im FHEM-Forum]&lt;br /&gt;
* Details zum Layoutprogram [http://de.wikipedia.org/wiki/Target_3001 Target 3001]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hardware_Mods]]&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:LEDStatusTableau_config_v2.6.jpg&amp;diff=40806</id>
		<title>Datei:LEDStatusTableau config v2.6.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:LEDStatusTableau_config_v2.6.jpg&amp;diff=40806"/>
		<updated>2026-02-20T15:55:26Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:LEDStatusTableau_Platine_v2.6.jpg&amp;diff=40805</id>
		<title>Datei:LEDStatusTableau Platine v2.6.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:LEDStatusTableau_Platine_v2.6.jpg&amp;diff=40805"/>
		<updated>2026-02-20T15:43:56Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:LEDStatusTableau_Schaltplan_v2.6.jpg&amp;diff=40804</id>
		<title>Datei:LEDStatusTableau Schaltplan v2.6.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:LEDStatusTableau_Schaltplan_v2.6.jpg&amp;diff=40804"/>
		<updated>2026-02-20T15:43:16Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=1-Wire_LED-Statusmonitor&amp;diff=40803</id>
		<title>1-Wire LED-Statusmonitor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=1-Wire_LED-Statusmonitor&amp;diff=40803"/>
		<updated>2026-02-20T15:40:15Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Link zum Github aktualisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung==&lt;br /&gt;
Mit der folgenden Beschreibung lässt sich ein &#039;&#039;&#039;1-Wire LED-Statusmonitor&#039;&#039;&#039; aufbauen. Es werden ein Schaltplan und ein Platinenlayout vorgestellt, um an einem DS2408 acht (Low-Current) LEDs anzuschließen. Die Platine (je nach VersionsNr, siehe Abschnitt) ist so gestaltet, dass sie exakt in das unter &amp;quot;Links&amp;quot; aufgeführte Mini-Gehäuse passt. Der Statusmonitor kann verwendet werden, um beispielsweise die Schaltzustände einer Alarmanlage in der folgenden Art darzustellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:1wire_Alarmsignalanlage_platine.jpg|mini|ohne|x130px|Signalanlage offen]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:1wire_Alarmsignalanlage_offen.jpg|mini|ohne|x130px|Signalanlage im offenen Gehäuse]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:1wire_Alarmsignalanlage_zu.jpg|mini|ohne|x130px|Signalanlage geschlossen]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* LED1 (grün) Erdgeschoss Fenster geschlossen&lt;br /&gt;
* LED2 (gelb) Erdgeschoss Fenster gekippt&lt;br /&gt;
* LED3 (rot)  Erdgeschoss Fenster geöffnet&lt;br /&gt;
* usw&lt;br /&gt;
&lt;br /&gt;
Sollen nur 2 Zustände (zb. offen/geschlossen) dargestellt werden, so empfiehlt sich der DualLED Hardwaremod ([[FS20_Statusanzeige_mit_Dual-LED]]). Jedoch nicht mit einer BiColorLED sonden mit jeweils 2 LowCurrentLEDś da der DS2408 in Summe nur 20mA belastbar ist.&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Platine Version 2.4 ==&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Schaltplan.jpg|300px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Platine.jpg|300px|thumb|right|Platinenlayout]]&lt;br /&gt;
Bei dieser Version müsen als LEDs LowCurrent LEDs verwendet werden. Dadurch ist der maximale Strom von 20mA (8x2mA) sichergestellt.&lt;br /&gt;
Diese Version kann auch als Reedkontakt-Eingang verwendet werden indem die beiden (Vor-)wiederstandsnetzwerke (R2,R3) durch jeweils 8 Drahtbrücken ersetzt werden. Eine Kombination aus 4 LEDs und 4 Reedkontakteingängen ist auch möglich.&lt;br /&gt;
Diese Version ist kleiner als das verlinkte Gehäuse und passt nicht in die zugehörige Gehäuseaufnahme. Es muss deshalb zb. mit doppelseitigen Klebeband fixiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Abbildungen zeigen den Schaltplan und das Platinenlayout.&lt;br /&gt;
&lt;br /&gt;
=== Bauteilliste ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2&lt;br /&gt;
|  Diode &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BAT85&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Elko 47uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  RAD 47/16&lt;br /&gt;
|- &lt;br /&gt;
|  C3, C4&lt;br /&gt;
|  Keramikkondensator 100N, 10%&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-5 100N&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Anreihklemme 4Pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 055-04&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Stiftleiste K2X04&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-008&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste K1X03&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-003&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Stiftleiste 2x8pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  R1&lt;br /&gt;
|  Widerstandsnetzwerk 10k 9+1&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 10-9 10K&lt;br /&gt;
|- &lt;br /&gt;
|  R2, R3&lt;br /&gt;
|  Widerstands-Netzwerk, 4Wid./8Pins, 1,5 K-Ohm&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 8-4 1,5K&lt;br /&gt;
|- &lt;br /&gt;
|  IC1&lt;br /&gt;
|  1wire 8fach Digital I/O &lt;br /&gt;
|  http://www.fuchs-shop.com/de/&lt;br /&gt;
|  DS2408&lt;br /&gt;
|- &lt;br /&gt;
|  LED1/..../LED8&lt;br /&gt;
|  LowCurrent LED 3mm , 2mA&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Platine Version 2.5 ==&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Schaltplan_v2.5.jpg|300px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:1wire_LEDStatusTableau_Platine_v2.5.jpg|300px|thumb|right|Platinenlayout]]&lt;br /&gt;
Bei dieser Version können konventionelle oder Hochleistungs-LEDs (ultrahell) verwendet werden. Sollen andere Verbraucher geschaltet werden, so sind die jeweiligen Vorwiderstände mit Lötbrücken zu versehen. Jeder Port kann bis zu 130mA belastet werden. Die Lötanschlösse der SMD-Bauteile sind etwas größer als normal layoutet damit konventionell mit einem Feinlötkolben vom geübten Laien gelötet werden kann.&lt;br /&gt;
&lt;br /&gt;
Als weiteres Beispiel sei hier eine Bewässerungssteuerung genannt. Als Verbraucher können hier zb. 12VDC (Finder-)Relais angeschlossen werden die 24V Gardena oder Hunter Magnetventile ansteuern.&lt;br /&gt;
&lt;br /&gt;
Diese Version kann u.U. auch als Reedkontakt-Eingang verwendet werden indem jeweils der Vorwiderstand (R9), die Zehnerdiode (D1) und T2 jeweils durch Drahtbrücken ersetzt werden. R10 darf nicht verbunden werden. Eine Kombination aus LEDs/Verbrauchern und Reedkontakteingängen ist auch möglich.&lt;br /&gt;
Diese Version passt exakt in das verlinkte Gehäuse und sowie in die zugehörige Gehäuseaufnahme. Es muss deshalb nicht weiter fixiert werden.&lt;br /&gt;
&lt;br /&gt;
Die Abbildungen zeigen den Schaltplan und das Platinenlayout. Der Jumper J1 muss auf Minus gestellt werden. Dieser ist in Version 2.5.1 entfallen da überflüssig.&lt;br /&gt;
&lt;br /&gt;
=== Bauteilliste ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  D4&lt;br /&gt;
|  SMD Diode &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BAT54S&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Elko 47uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  RAD 47/16&lt;br /&gt;
|- &lt;br /&gt;
|  C3, C4&lt;br /&gt;
|  Keramikkondensator 100N, 10%&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-5 100N&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Anreihklemme 4Pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 055-04&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Stiftleiste K2X04&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-008&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste K1X03&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-003&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Stiftleiste 2x8pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  R1&lt;br /&gt;
|  Widerstandsnetzwerk 10k 9+1&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 10-9 10K&lt;br /&gt;
|- &lt;br /&gt;
|  R3, R5, R7, R9, R11, R13, R15, R17&lt;br /&gt;
|  SMD Widerstand (LED-Vorwiderstand) &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  Rot: SMD-0805 330 &lt;br /&gt;
Gelb: SMD-0805 330&lt;br /&gt;
&lt;br /&gt;
Grün: SMD-0805 270&lt;br /&gt;
|- &lt;br /&gt;
|  R2, R4, R6, R8, R10, R12, R14, R16&lt;br /&gt;
|  SMD Widerstand, 10k &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  D1, D2, D3, D5, D6, D7, D8, D9&lt;br /&gt;
|  SMD Zehnerdiode; BZV C8V2 &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD ZF 8,2&lt;br /&gt;
|- &lt;br /&gt;
|  T1 - T8&lt;br /&gt;
|  Transistor SMD P-FET SOT-23 -60V -0,17A &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BSS 84P SMD&lt;br /&gt;
|- &lt;br /&gt;
|  IC1&lt;br /&gt;
|  1wire 8fach Digital I/O &lt;br /&gt;
|  http://www.fuchs-shop.com/de/&lt;br /&gt;
|  DS2408&lt;br /&gt;
|- &lt;br /&gt;
|  LED1/..../LED8&lt;br /&gt;
|  LED 3mm , 30mA&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3-3500 RT&lt;br /&gt;
LED 3-12000 GN&lt;br /&gt;
&lt;br /&gt;
LED 3-1300 GE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das Platinenlayout (erstellt mit Target3001) ist im unten aufgeführten Forenthread angehängt.&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM ==&lt;br /&gt;
Einsetzbar.&lt;br /&gt;
&lt;br /&gt;
== Weitere Hinweise ==&lt;br /&gt;
Damit der Zustand des DS2408 determiniert ist, ist RSTZ per pullup auf HIGH gezogen. &lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/tobiasfaust/1wire_LED_Statusmonitor/ Alle Dateien im GitHub]&lt;br /&gt;
* passendes Gehäuse [http://www.fuchs-shop.com/de/shop/14/1/13372409/]&lt;br /&gt;
* [http://forum.fhem.de/index.php/topic,16211.0.html Thread im FHEM-Forum]&lt;br /&gt;
* Details zum Layoutprogram [http://de.wikipedia.org/wiki/Target_3001 Target 3001]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hardware_Mods]]&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_FensterkontaktSensor&amp;diff=40777</id>
		<title>PanStamp FensterkontaktSensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_FensterkontaktSensor&amp;diff=40777"/>
		<updated>2026-01-30T08:13:56Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Hinweis auf neue Homematic variante&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp FensterkontaktSensor}}&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=1&lt;br /&gt;
|HWVoltage=4-36V &lt;br /&gt;
|HWPowerConsumption= max. 120mW&lt;br /&gt;
|HWPoweredBy=permanent, line-powered&lt;br /&gt;
|HWSize=50 x 50 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNText=Da neue Panstamps nicht mehr erhältlich sind gibt es eine neue Variante mit Arduino328p und der Asksin Library als HomeMatic Modul. Die Anleitung dazu ist [https://github.com/tobiasfaust/WindowStatusSensor hier dokumentiert]}}&lt;br /&gt;
&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Umweltsensors&lt;br /&gt;
&lt;br /&gt;
Dieser Wiki Artikel bezieht auf den panstamp NRG 2&lt;br /&gt;
Weiterführende Information zu panStamps und den grundlegenden Modulen um sie mit FHEM zu integrieren finden sich im zugehörigen [[panStamp|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Sensor ist mit seiner Firmware spezialisert auf die Zustandserfassung von Fenster- und Türkontakten. Es können Gruppen gebildet werden mit Hilfe dessen 3 Zustände erfasst und an FHEM übermittelt werden können:&lt;br /&gt;
* Offen (open)&lt;br /&gt;
* Angeklappt (tilted)&lt;br /&gt;
* Geschlossen (closed)&lt;br /&gt;
&lt;br /&gt;
Der auf dem panStamp NRG2 basierende Fensterkontaktsensor hat die folgenden Eigenschaften:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hardware:&#039;&#039;&#039;&lt;br /&gt;
* 8x ReedkontaktEingänge&lt;br /&gt;
* 3 LowCurrent LEDs zur Zustandsanzeige (Rot/Gelb/Grün)&lt;br /&gt;
* Eingangsspannung von 4-36V, empfohlen wird eine Eingangsspannung von 5V aufgrund der Verlustleistung des Linearreglers&lt;br /&gt;
* passt alles in eine 68mm Unterputzdose&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software:&#039;&#039;&#039;&lt;br /&gt;
* Konfiguration des Sendeintervalls&lt;br /&gt;
* Konfiguration der Gruppen&lt;br /&gt;
* Konfiguration der Blink- und Leuchtintervalls der LEDs&lt;br /&gt;
* Übermittlung von allen 8 Eingängen&lt;br /&gt;
* Übermittlung des Gruppenstatus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===LED Verhalten===&lt;br /&gt;
Die LEDs zeigen folgende Zustände an, es kann immer nur eine LED gleichzeitig leuchten:&lt;br /&gt;
* Rot = mindestens eine definierte Gruppe haben den Status &#039;&#039;&#039;Offen&#039;&#039;&#039;&lt;br /&gt;
* Gelb = mindestens eine definierte Gruppe hat den Status &#039;&#039;&#039;Angeklappt&#039;&#039;&#039;, keine Gruppe ist Offen&lt;br /&gt;
* Green = alle definierten Gruppen haben den Status &#039;&#039;&#039;Geschlossen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im Detail: Die Priorität ist die folgende:&lt;br /&gt;
Offen -&amp;gt; Angeklappt -&amp;gt; Geschlossen&lt;br /&gt;
Rot -&amp;gt; Gelb -&amp;gt; Grün&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über die Konfiguration kann folgendes eingestellt werden:&lt;br /&gt;
* Anzahl in Millisekunden, wie lange eine LED nach einem Event dauerhaft leuchten soll&lt;br /&gt;
* Anzahl in Millisekunden, wie lange nach 1) die LED ausgeschaltet ist&lt;br /&gt;
* Anzahl in Millisekunden, wie lange nach 1) und 2) die LED eingeschaltet ist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zb: 30000 , 15000, 50 &amp;lt;br&amp;gt;&lt;br /&gt;
Nach einem Event (Fenster wurde betätigt) leuchtet die passende LED 30sekunden dauerhaft, danach mit einem 50ms Blinken alle 15sek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle benötigten Dateien sind unter [[#Links]] zu finden:&lt;br /&gt;
* Sketch&lt;br /&gt;
* EnvironmentSensor.xml&lt;br /&gt;
* Target3001 Dateien&lt;br /&gt;
&lt;br /&gt;
Unbestückte Platinen können beim [http://forum.fhem.de/index.php?action=profile;u=118 Ersteller], falls vorrätig, angefragt und erworben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WICHTIG!&#039;&#039;&#039; Schaltplan und Platinen sind für den Panstamp NRG 2.&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|- &lt;br /&gt;
|  X1, X2&lt;br /&gt;
|  Keramikkondensator Typ:X7R 2,2uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 2,2/25&lt;br /&gt;
|- &lt;br /&gt;
|  IC2&lt;br /&gt;
|  Linearregler LP2985&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LP 2985 IM5-3,3&lt;br /&gt;
|- &lt;br /&gt;
|  K1-K9 (9x)&lt;br /&gt;
|  Anreihklemme 3,5mm 2Pol &lt;br /&gt;
|  IT-WNS&lt;br /&gt;
|  AK-3.5-2-GY&lt;br /&gt;
|- &lt;br /&gt;
|  R2, R3, R4&lt;br /&gt;
|  SMD Widerstand 1k &lt;br /&gt;
|  Reichelt&lt;br /&gt;
IT-WNS&lt;br /&gt;
|  SMD-0805 1K&lt;br /&gt;
R-1K-0805-1&lt;br /&gt;
|- &lt;br /&gt;
|  X3-X10 (8x)&lt;br /&gt;
|  Keramikkondensator Typ:X7R/X5R 4,7uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
IT-WNS&lt;br /&gt;
|  X7R-G0805 4,7/25&lt;br /&gt;
C-4U7-0805&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x20 pol. gewinkelt, 2,54mm  &lt;br /&gt;
|  IT-WNS&lt;br /&gt;
|  SL-1x20-254-G&lt;br /&gt;
|-&lt;br /&gt;
|  S1&lt;br /&gt;
|  SMD Mikrotaster, Drucktaster, Print Miniatur 5x5x1,5mm&lt;br /&gt;
|  Ebay&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|  IC1&lt;br /&gt;
|  panStamp NRG2&lt;br /&gt;
|  panstamp.com&lt;br /&gt;
|  panStamp NRG2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Aufbau==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM ==&lt;br /&gt;
===Configuration===&lt;br /&gt;
Nach upload des Sketches auf den Panstamp ist zuerst die korrekte Kennung über das Register 09 sowie der gewünschte Sendezyklus über das Register 0A zu setzen (siehe  [[panStamp#Neue_panStamps_in_Betrieb_nehmen|Inbetriebname im Wiki Artikel]] zum den panStamps).&lt;br /&gt;
Anschließend ist die Konfiguration mittels Register 0B zu setzen:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Länge&lt;br /&gt;
!  Position&lt;br /&gt;
!  Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin10&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  0&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D10, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin11&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  1&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D11, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin12&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  2&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D12, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin13&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  3&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D13, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin14&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  4&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D14, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin15&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  5&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D15, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin16&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  6&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D16, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin17&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  7&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D17, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOnEvtTime&lt;br /&gt;
|  2 Byte &lt;br /&gt;
|  8-9&lt;br /&gt;
|  Dauer in ms, wie lange die LED nach einem Event dauerleuchten soll&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOnIdleTime&lt;br /&gt;
|  2 Byte &lt;br /&gt;
|  10-11&lt;br /&gt;
|  Dauer in ms, wie lange die LED im Idle-Modus dauerleuchten soll&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOffTime&lt;br /&gt;
|  2 Byte &lt;br /&gt;
|  12-13&lt;br /&gt;
|  Dauer in ms, wie lange die LED im Idle-Modus aus sein soll&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Setzen der Konfiguration===&lt;br /&gt;
Ein Register ist als Hex-Wert zu setzen. Folgende Tabelle zeigt eine exemplarische Konfiguration:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  SubRegister&lt;br /&gt;
!  Wert&lt;br /&gt;
!  Binär Wert&lt;br /&gt;
!  Hex Wert&lt;br /&gt;
!  Comments&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin10&lt;br /&gt;
|  1&lt;br /&gt;
|  1&lt;br /&gt;
|  01&lt;br /&gt;
|  Zuordnung D10 zur Gruppe 1&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin11&lt;br /&gt;
|  1&lt;br /&gt;
|  1&lt;br /&gt;
|  01&lt;br /&gt;
|  Zuordnung D11 zur Gruppe 1&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin12&lt;br /&gt;
|  2&lt;br /&gt;
|  2&lt;br /&gt;
|  02&lt;br /&gt;
|  Zuordnung D12 zur Gruppe 2&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin13&lt;br /&gt;
|  2&lt;br /&gt;
|  2&lt;br /&gt;
|  02&lt;br /&gt;
|  Zuordnung D13 zur Gruppe 2&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin14&lt;br /&gt;
|  3&lt;br /&gt;
|  3&lt;br /&gt;
|  03&lt;br /&gt;
|  Zuordnung D14 zur Gruppe 3&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin15&lt;br /&gt;
|  0&lt;br /&gt;
|  0&lt;br /&gt;
|  00&lt;br /&gt;
|  Deaktivierung D15&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin16&lt;br /&gt;
|  0&lt;br /&gt;
|  0&lt;br /&gt;
|  00&lt;br /&gt;
|  Deaktivierung D16&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin17&lt;br /&gt;
|  0&lt;br /&gt;
|  0&lt;br /&gt;
|  00&lt;br /&gt;
|  Deaktivierung D17&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOnEvtTime&lt;br /&gt;
|  5000&lt;br /&gt;
|  1001110001000&lt;br /&gt;
|  1388&lt;br /&gt;
|  Bei einem Event leuchtet die LED 5sek dauerhaft&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOnIdleTime&lt;br /&gt;
|  50&lt;br /&gt;
|  110010&lt;br /&gt;
|  0032&lt;br /&gt;
|  Im Idle Mode leuchtet die LED 50ms&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOffTime&lt;br /&gt;
|  10000&lt;br /&gt;
|  10011100010000&lt;br /&gt;
|  2710&lt;br /&gt;
|  Im  Idle Mode leuchtet die LED nur alle 10sek&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In obigem Fall ist das Konfigurationsregister wie folgt aufgebaut: &#039;&#039;2710 0032 1388 00 00 00 03 02 02 01 01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Aufgrunddessen wird die Konfiguration folgendermaßen gesetzt:&lt;br /&gt;
 set &amp;lt;MySwapDevice&amp;gt; regSet 0B 2710003213880000000302020101&lt;br /&gt;
&lt;br /&gt;
Es ist auch möglich die einzelnen Endpoints unabhängig voneinander zu setzen. z.B.:&lt;br /&gt;
  set &amp;lt;MySwapDevice&amp;gt; regSet 0B.2 02&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration bedeutet folgendes:&lt;br /&gt;
* D10 und D11 gehören zur Gruppe 01&lt;br /&gt;
* D12 und D13 gehören zur Gruppe 02&lt;br /&gt;
* D14 gehört alleine zur Gruppe 03&lt;br /&gt;
* D15,D16,D17 gehören zur 0-Gruppe ist sind damit deaktiviert. Die Binarstati werden zwar regelmäßig mit übertragen, in der Gruppenauswertung spielen diese Pins aber keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Der Gruppenstatus würde dann wie folgt gesetzt:&lt;br /&gt;
* Wenn D10 und D11 offen ist hat die Gruppe ebenfalls den Status &#039;&#039;&#039;Offen&#039;&#039;&#039;&lt;br /&gt;
* Wenn D10 und D11 geschlossen ist hat die Gruppe den Status ebenfalls &#039;&#039;&#039;Geschlossen&#039;&#039;&#039;&lt;br /&gt;
* Wenn D10 und D11 unterschiedlichen Status haben ist ist die Gruppe &#039;&#039;&#039;Angeklappt&#039;&#039;&#039;&lt;br /&gt;
* Analog dazu D12/D13 mit der Gruppe 02&lt;br /&gt;
* Wenn D14 offen ist, hat die Gruppe 03 den Status &#039;&#039;&#039;Offen&#039;&#039;&#039;&lt;br /&gt;
* Wenn D14 geschlossen ist, hat die Gruppe 03 den Status &#039;&#039;&#039;Geschlossen&#039;&#039;&#039;&lt;br /&gt;
* Die Gruppe 03 kann NICHT den Status &#039;&#039;&#039;Angeklappt&#039;&#039;&#039; annehmen, da nur ein Pin dieser Gruppe zugeordnet ist&lt;br /&gt;
&lt;br /&gt;
Die LEDs würden sich dann wie folgt verhalten:&lt;br /&gt;
* Nach einem Event leuchtet die entsprechende LED 5sek dauerhaft, danach blinkt sie für 50ms alle 10sek&lt;br /&gt;
&lt;br /&gt;
== bereitgestellte Readings ==&lt;br /&gt;
Folgende Readings werden zusätzlich zu den Konfigurations-Readings in FHEM bereitgestellt:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Name des Reading&lt;br /&gt;
!  Datentyp &lt;br /&gt;
!  Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|  0C.0-Binary_0 -&amp;gt; 0C.7-Binary_7&lt;br /&gt;
|  [0-1]&lt;br /&gt;
|  aktueller Status des ReedEingangs D10-D17&lt;br /&gt;
0 -&amp;gt; Reedkontakt geschlossen&amp;lt;br&amp;gt;&lt;br /&gt;
1 -&amp;gt; Reedkontakt offen&lt;br /&gt;
|-&lt;br /&gt;
|  0D.0-Gruppe_1 -&amp;gt; 0D.7-Gruppe_8&lt;br /&gt;
|  [0-2]&lt;br /&gt;
|  aktueller Status der Gruppe 1-7&lt;br /&gt;
0 -&amp;gt; Geschlossen&amp;lt;br&amp;gt;&lt;br /&gt;
1 -&amp;gt; Angeklappt&amp;lt;br&amp;gt; &lt;br /&gt;
2 -&amp;gt; Offen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beschreibung des Gruppenverhaltens ==&lt;br /&gt;
Mehrere Eingänge können zu einer Gruppe zugeordnet werden.&lt;br /&gt;
Der Status einer Gruppe wird nach folgendem Verhalten festgelegt:&lt;br /&gt;
* Sind alle Reed-Kontakte der zugeordneten Pins einer Gruppe geschlossen, so ist der Status der Gruppe: &#039;&#039;&#039;Geschlossen&#039;&#039;&#039;&lt;br /&gt;
* Sind alle Reed-Kontakte der zugeordneten Pins einer Gruppe offen, so ist der Status der Gruppe: &#039;&#039;&#039;Offen&#039;&#039;&#039;&lt;br /&gt;
* Sind die einzelnen Stati der Reed-Kontakte der zugeordneten Pins einer Gruppe sowohl geschlossen als auch offen, so ist der Status der Gruppe: &#039;&#039;&#039;Angeklappt&#039;&#039;&#039;&lt;br /&gt;
* Wurde nur ein Pin einer Gruppe zugeordnet, so nimmt die Gruppe nur den Status &#039;&#039;&#039;Offen&#039;&#039;&#039;/&#039;&#039;&#039;Geschlossen&#039;&#039;&#039; an&lt;br /&gt;
&lt;br /&gt;
== Beschreibung des Sendeverhaltens ==&lt;br /&gt;
Der aktuelle Status der Pins als auch der Status der Gruppen werden bei folgenden Events volständig übertragen:&lt;br /&gt;
* gemäß TX-Intervall eingestelltes Sendeintervall&lt;br /&gt;
* sofort bei Auftreten eines Events (Änderung eines Status an einem Pin)&lt;br /&gt;
&lt;br /&gt;
==Einbindung TabletUI mit lesbarem Status==&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_ftui_Fenster.jpg|200px|thumb||Tablet-UI Fenster]]&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_ftui_FensterRolladen.jpg|200px|thumb||Tablet-UI Fenster&amp;amp;Rolladen]]&lt;br /&gt;
&lt;br /&gt;
In der 99_myUtils.pm ist folgender Eintrag einzubinden&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
##############################################&lt;br /&gt;
# Übersetzt den Status der &lt;br /&gt;
# SWAP Fensterkontakte in Klarnamen&lt;br /&gt;
# und Farbwerte für TabletUI&lt;br /&gt;
##############################################&lt;br /&gt;
&lt;br /&gt;
sub&lt;br /&gt;
SWAP_WindowStateSensor($$$) {&lt;br /&gt;
  my ($device, $reading, $value) = @_;&lt;br /&gt;
  my $state = &amp;quot;??&amp;quot;;&lt;br /&gt;
  my $color = &amp;quot;&amp;quot;;&lt;br /&gt;
  my $group = 0;&lt;br /&gt;
&lt;br /&gt;
  $group = $reading;  &lt;br /&gt;
  $group =~ s/.*-Gruppe_(\d)*.*/$1/;&lt;br /&gt;
&lt;br /&gt;
  if ($value eq &amp;quot;00&amp;quot;) {&lt;br /&gt;
    $state = &amp;quot;closed&amp;quot;;&lt;br /&gt;
    $color = &amp;quot;#23a013&amp;quot;;&lt;br /&gt;
  } elsif ($value eq &amp;quot;01&amp;quot;) {&lt;br /&gt;
    $state = &amp;quot;tilted&amp;quot;;&lt;br /&gt;
    $color = &amp;quot;#f4d742&amp;quot;;&lt;br /&gt;
  } elsif ($value eq &amp;quot;02&amp;quot;) {&lt;br /&gt;
    $state = &amp;quot;open&amp;quot;;&lt;br /&gt;
    $color = &amp;quot;#F70A0A&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  readingsBeginUpdate($defs{$device});&lt;br /&gt;
  readingsBulkUpdate($defs{$device}, &amp;quot;Gruppe&amp;quot;.$group, $state);&lt;br /&gt;
  readingsBulkUpdate($defs{$device}, &amp;quot;Farbwert_Gruppe&amp;quot;.$group, $color);&lt;br /&gt;
  readingsEndUpdate($defs{$device}, 1);&lt;br /&gt;
&lt;br /&gt;
  return undef;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend folgenes Notify erstellt:&lt;br /&gt;
&lt;br /&gt;
 define NTFY_SWAP_Fensterstatus notify SWAP_.*:0D.*-Gruppe.* {SWAP_WindowStateSensor($NAME, $EVTPART0, $EVTPART1)}&lt;br /&gt;
 attr NTFY_SWAP_Fensterstatus DbLogExclude .*&lt;br /&gt;
 attr NTFY_SWAP_Fensterstatus room SWAP&lt;br /&gt;
&lt;br /&gt;
Damit wird sowohl ein lesbarer Status als auch der in TabletUI anzuzeigende Farbwert gesetzt.&lt;br /&gt;
&lt;br /&gt;
In TabletUI könnte dann zb. zusammen mit dem Rolladenstatus auch der Fensterstatus angeziegt werden. Im Platzhalter &amp;quot;par_SC_dev:par_SC_Reading&amp;quot; wird das Device als auch das Reading des Farbwertes gesetzt &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div data-type=&amp;quot;circlemenu&amp;quot; data-direction=&amp;quot;bottom-half&amp;quot; data-circle-radius=&amp;quot;120&amp;quot; data-item-diameter=&amp;quot;67&amp;quot;&lt;br /&gt;
               style=&amp;quot;font-size:130%;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;ul&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt;&lt;br /&gt;
                   &amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-device=&amp;quot;par_RL_dev&amp;quot; data-get=&amp;quot;level&amp;quot;&lt;br /&gt;
                       data-icons=&#039;[&amp;quot;oa-fts_shutter_90&amp;quot;,&amp;quot;oa-fts_shutter_80&amp;quot;,&amp;quot;oa-fts_shutter_70&amp;quot;,&amp;quot;oa-fts_shutter_60&amp;quot;,&amp;quot;oa-fts_shutter_50&amp;quot;,&lt;br /&gt;
                                    &amp;quot;oa-fts_shutter_50&amp;quot;,&amp;quot;oa-fts_shutter_40&amp;quot;,&amp;quot;oa-fts_shutter_30&amp;quot;,&amp;quot;oa-fts_shutter_20&amp;quot;,&lt;br /&gt;
                                     &amp;quot;oa-fts_shutter_10&amp;quot;,&amp;quot;oa-fts_window_2w&amp;quot;]&#039;&lt;br /&gt;
                       data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;20&amp;quot;,&amp;quot;30&amp;quot;,&amp;quot;40&amp;quot;,&amp;quot;50&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;,&amp;quot;80&amp;quot;,&amp;quot;90&amp;quot;,&amp;quot;100&amp;quot;]&#039;&lt;br /&gt;
                       data-on-color=&amp;quot;#2A2A2A&amp;quot;&lt;br /&gt;
                       data-on-background-color=&amp;quot;par_SC_dev:par_SC_Reading&amp;quot;&lt;br /&gt;
                       data-off-background-color=&amp;quot;par_SC_dev:par_SC_Reading&amp;quot;&lt;br /&gt;
                       data-background-icon=&amp;quot;fa-circle&amp;quot;&amp;gt;&lt;br /&gt;
                   &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_dev&amp;quot; data-icon=&amp;quot;oa-fts_shutter_up&amp;quot; data-set-on=&amp;quot;on&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_dev&amp;quot; data-icon=&amp;quot;oa-fts_window_1w_tilt&amp;quot;  data-set-on=&amp;quot;Lueftung&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_auto&amp;quot; data-icon=&amp;quot;oa-fts_shutter_automatic&amp;quot;  data-set-on=&amp;quot;automatic&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_auto&amp;quot; data-icon=&amp;quot;oa-fts_shutter_manual&amp;quot;  data-set-on=&amp;quot;manual&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_dev&amp;quot; data-icon=&amp;quot;oa-fts_sunblind&amp;quot; data-set-on=&amp;quot;Beschatten&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_dev&amp;quot; data-icon=&amp;quot;oa-fts_shutter_down&amp;quot; data-set-on=&amp;quot;off&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
              &amp;lt;/ul&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weitere Hinweise ==&lt;br /&gt;
Keine.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/tobiasfaust/WindowStatusSensor Alle Dateien liegen im Github des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=1-Wire_Umweltsensor&amp;diff=40776</id>
		<title>1-Wire Umweltsensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=1-Wire_Umweltsensor&amp;diff=40776"/>
		<updated>2026-01-30T08:08:27Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;1-Wire Umweltsensor&#039;&#039;&#039; als Eigenbau.&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
[[File:1wire_Umweltsensor1.jpg|mini|hochkant=2.5|Plot eines sonnigen Tages]]&lt;br /&gt;
[[File:1wire_Umweltsensor2.jpg|mini|hochkant=2.5|Messwerte]]&lt;br /&gt;
[[File:1wire_Umweltsensor3.jpg|mini|hochkant=2.5|Sonniger Tag mit einzelnen Wolken]]&lt;br /&gt;
&lt;br /&gt;
Der auf dem DS2450 basierende 1-Wire Umweltsensor hat die folgenden Eigenschaften:&lt;br /&gt;
* Helligkeitserfassung per TSL250&lt;br /&gt;
* Erfassung der solaren Einstrahlung per TSL260&lt;br /&gt;
* Luftdruckmessung per MPXA4100A6U&lt;br /&gt;
* Messung der Referenzspannung&lt;br /&gt;
* 1-Wire Baustein: DS2450&lt;br /&gt;
* Temperaturmessung per DS18B20&lt;br /&gt;
* Luftfeuchtigkeitsmessung per HIH-5030 onboard oder per Huckepackplatine&lt;br /&gt;
* passt alles in ein ELV IP65 (Nr: G250C) Gehäuse und ist damit geeignet für den Außeneinsatz&lt;br /&gt;
&lt;br /&gt;
Falls die Luftfeuchte benötigt wird, muss ein anderer (beliebiger) Messwert abgeschaltet und stattdesen per Jumpereinstellung die Referenzspannung gemessen werden. Dazu beim zugehörigen PinHeader des nicht benötigten Messwertes (A,B,C oder D) den Jumper auf D/+ setzen. Falls einzelne Messwerte nicht benötigt werden und die Sensoren nicht bestückt sind, kann ebenfalls per Jumpereinstellung der Messport des DS2450 auf Masse gezogen werden (Jumper auf D/-), um einen definierten Nullwert zu erhalten.&lt;br /&gt;
&lt;br /&gt;
Falls wirklich alle Messwerte benötigt werden, kann der Feuchtesensor anstatt auf dieser Platine über die Buchsenleiste per [http://www.tm3d.de/index.php/1wire-feuchtesensor Huckepackplatine (von TM3D.de)] aufgesteckt werden.&lt;br /&gt;
&lt;br /&gt;
Die Schaltung war ursprünglich geplant für eine Rolladensteuerung. In Verbindung mit dem Sonneneinfallswinkel können die Rolladen exakt auf einen Prozentwert heruntergefahren werden, so dass die Sonne gerade nicht hereinscheint, aber maximalen Lichteinfall zulässt.&lt;br /&gt;
&lt;br /&gt;
Auf den abgebildeten Plots ist genau ersichtlich, welcher von einem sonnigen Tag stammt und welcher an einem relativ bewölkten Tag entstanden ist. Auch die Anzahl der Wolken an einem guten, sonnigen Tag lässt sich ablesen.&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:1wire_Umweltsensor_Schaltplan.jpg|300px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:1wire_Umweltsensor_Platine.jpg|300px|thumb|right|Platine]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2&lt;br /&gt;
|  Diode &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BAT85&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Elko 47uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  RAD 47/16&lt;br /&gt;
|- &lt;br /&gt;
|  C2&lt;br /&gt;
|  KeramikKondensator 470pF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  KERKO 470P&lt;br /&gt;
|- &lt;br /&gt;
|  C3&lt;br /&gt;
|  Keramikkondensator 100N, 10%&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-5 100N&lt;br /&gt;
|- &lt;br /&gt;
|  K5&lt;br /&gt;
|  Anreihklemme 3Pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 055-03&lt;br /&gt;
|- &lt;br /&gt;
|  K1,K2,K3,K4&lt;br /&gt;
|  Stiftleiste 1x3Pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-003&lt;br /&gt;
|- &lt;br /&gt;
|  K6&lt;br /&gt;
|  Buchsenleiste 1x3Pol&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 094-1-003&lt;br /&gt;
|- &lt;br /&gt;
|  R1&lt;br /&gt;
|  Widerstand 68K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  METALL 68K &lt;br /&gt;
|- &lt;br /&gt;
|  R2,R3&lt;br /&gt;
|  Widerstand 10K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  METALL 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  JUMPER 2,54 SW&lt;br /&gt;
|- &lt;br /&gt;
|  IC1&lt;br /&gt;
|  1wire A/D Wandler&lt;br /&gt;
|  http://www.fuchs-shop.com/de/&lt;br /&gt;
|  DS2450&lt;br /&gt;
|- &lt;br /&gt;
|  IC2&lt;br /&gt;
|  Lichtsensor&lt;br /&gt;
|  http://www.voelkner.de&lt;br /&gt;
|  TSL250&lt;br /&gt;
|- &lt;br /&gt;
|  IC3&lt;br /&gt;
|  Sensor Solare Einstrahlung&lt;br /&gt;
|  http://www.voelkner.de&lt;br /&gt;
|  TSL260  &lt;br /&gt;
|- &lt;br /&gt;
|  IC4&lt;br /&gt;
|  Luftdrucksensor&lt;br /&gt;
|  http://www.voelkner.de&lt;br /&gt;
|  MPXA4-100  &lt;br /&gt;
|- &lt;br /&gt;
|  IC5&lt;br /&gt;
|  Luftfeuchtesensor&lt;br /&gt;
|  http://www.mouser.com&lt;br /&gt;
|  HIH-5030&lt;br /&gt;
|- &lt;br /&gt;
|  IC6&lt;br /&gt;
|  Temperatursensor&lt;br /&gt;
|  http://www.fuchs-shop.com/de/&lt;br /&gt;
|  DS18B20  &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das Platinenlayout (erstellt mit Target3001) ist im unten aufgeführten Forenthread angehängt.&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM ==&lt;br /&gt;
Die TSL Bausteine müssen zum korrekten Betrieb mit Sonnenschutzfolie geschützt werden. Ansonsten verursacht schon ein wenig Sonne eine Sättigung.&lt;br /&gt;
Empfohlen wird eine gängige Sonnenschutzfolie mit 93% UV-Absorption. &lt;br /&gt;
Wird die Platine gemäß den vorgesehenen Abmessungen in das dafür konfektionierte Gehäuse [http://www.elv.de/industrie-aufputz-gehaeuse-ip65-modell-g250c.html G250C] eingebaut, so sind zwischen Gehäuse und Klarsichtdeckel 3 Lagen der Sonnenschutzfolie zu legen.&lt;br /&gt;
Damit kann man nun in FHEM die Readings A,B,C,D (beim Betrieb mit dem FHEM-Modul OWAD) mittels UserReadings wie folgt umrechnen:&lt;br /&gt;
&lt;br /&gt;
 SolarEnergie {sprintf(&amp;quot;%d&amp;quot;, ReadingsVal(&amp;quot;$name&amp;quot;, &amp;quot;A&amp;quot;,0)/0.0038073)}&lt;br /&gt;
 Sonne {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal(&amp;quot;$name&amp;quot;, &amp;quot;A&amp;quot;,0))}&lt;br /&gt;
 Helligkeit {sprintf(&amp;quot;%0.2f&amp;quot;, ReadingsVal(&amp;quot;$name&amp;quot;, &amp;quot;B&amp;quot;,0))}&lt;br /&gt;
 Luftdruck {sprintf(&amp;quot;%d&amp;quot;, (ReadingsVal(&amp;quot;$name&amp;quot;, &amp;quot;C&amp;quot;,0)/ReadingsVal(&amp;quot;$name&amp;quot;, &amp;quot;D&amp;quot;,0)+0.1518)/0.001059)}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rechenbeispiel:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der TSL260 liefert einen Wert von 111 mV (uW/cm2) bei 940nm. Ein Mikrowatt pro Quadratźentimeter ist dasselbe wie 0,01 W/m². Die maximale Ausgangsspannung am TL260 beträgt 3,8 V, das wäre schon bei etwa 0,34 W/m² erreicht. Nehmen wir also 3 Lagen Sonnenschutzfolie mit bekannter Abschwächung, sagen wir 90%. 0,1*0,1*0,1 = 1/1000.  Damit ergibt sich die solare Einstrahlung in W/m² (maximal ca. 1000 W/m² !) auf den Sensor als gemessene Spannung in V/0,0137.&lt;br /&gt;
&lt;br /&gt;
Sättigung wird erreicht bei 340 W/qm, das hat man z.B. dann schon an einem bewölkten Tag, oder morgens/abends bei freiem Himmel.&lt;br /&gt;
In diese Näherung gehen natürlich die Charakteristika der Folie ein, die muss man kennen.&lt;br /&gt;
&lt;br /&gt;
Wird eine andere Sonnenschutzfolie verwendet so gelten näherungsweise folgende Formeln:&lt;br /&gt;
 Abschwächung von 95% : V/0,0013875 -&amp;gt; Sättigung erreicht bei 2738 W/m²&lt;br /&gt;
 Abschwächung von 94% : V/0,0023976 -&amp;gt; Sättigung erreicht bei 1584 W/m²&lt;br /&gt;
 Abschwächung von 93% : V/0,0038073 -&amp;gt; Sättigung erreicht bei 998 W/m²&lt;br /&gt;
&lt;br /&gt;
== Weitere Hinweise ==&lt;br /&gt;
Eine funkbasierte Variante ist der [[PanStamp Umweltsensor]].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/tobiasfaust/1Wire_Umweltsensor Alle Dateien liegen im Github]&lt;br /&gt;
* [http://forum.fhem.de/index.php/topic,16896.0.html Thread im FHEM-Forum] (Platinenlayout-Datei im ersten Beitrag) &lt;br /&gt;
* [http://forum.fhem.de/index.php/topic,10217.msg85238.html#msg85238 Diskussion im FHEM Forum zur Berechnung der solaren Einstrahlung]&lt;br /&gt;
* Details zum Layoutprogram [http://de.wikipedia.org/wiki/Target_3001 Target 3001]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;br /&gt;
[[Kategorie:Temperatursensoren]]&lt;br /&gt;
[[Kategorie:Feuchtesensoren]]&lt;br /&gt;
[[Kategorie:Lichtsensoren]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Apache_Authentication_Proxy&amp;diff=40775</id>
		<title>Apache Authentication Proxy</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Apache_Authentication_Proxy&amp;diff=40775"/>
		<updated>2026-01-30T08:06:03Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Randnotiz gesetzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Randnotiz|RNText=Anstatt die unten angegeben einfache BasicAuth zu nutzen kann folgende Erweiterung für eine browserbasierte passwortlose Authentifizierung per QR-Code (Magic-Link) oder Login mit persistentem Cookie verwendet werden. Falls ein gültiges Authentifizierungs-cookie vorliegt wird man transparent zur Applikation weitergeleitet. Andernfalls muss man sich einmal anmelden um das Cookie zu setzen. Anschließend wird man zur Applikation weitergeleitet.&lt;br /&gt;
Voraussetzungen ist der Betrieb und Konfiguration eines eigenen Apache2 Webservers in dieser Anleitung. Das AddOn funktioniert u.a. in iOs und dem Passwortmanager und ist [https://github.com/tobiasfaust/SimpleWebAuth hier dokumentiert]}}&lt;br /&gt;
{{Randnotiz|RNText=Eine sicherere Variante eines Apache Authentication Proxy zusätzlich mit Zertifikaten ist [https://gist.github.com/gbirke/8608543 hier dokumentiert]}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Um den Zugriff auf [[FHEMWEB]] etwas sicherer zu machen, kann man den Webzugriff über einen [https://httpd.apache.org/ Apache Webserver] laufen lassen. Dies ist ein kurzes Rezept, um Zugriffe auf FHEMWEB über einen Apachen authentifizieren zu lassen. Erstellt wurde es auf [https://www.debian.org Debian Squeeze]], sollte aber auch mit [https://www.ubuntu.com/ Ubuntu] funktionieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-get install apache2 libapache2-mod-proxy-html&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 1) FHEMWEB sollte nur noch auf Anfragen vom selben Rechner lauschen, also kein &#039;global&#039; Attribut in der Definition in fhem.cfg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
define WEBS FHEMWEB 8084&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 2) die folgenden Apache2 Module müssen aktiviert sein: [https://httpd.apache.org/docs/current/mod/mod_proxy.html mod_proxy] + [http://httpd.apache.org/docs/2.4/mod/mod_proxy_http.html mod_proxy_http]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
a2enmod proxy&lt;br /&gt;
a2enmod proxy_http&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 3) neue Datei &#039;&#039;&#039;&#039;&#039;/etc/apache2/conf.d/fhem&#039;&#039;&#039;&#039;&#039; anlegen:&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass alle Anfragen unter /fhem weiter nach &#039;&#039;&#039;http://localhost/fhem&#039;&#039;&#039; geleitet werden. Zusätzlich wird eine Basic-Authentifizierung eingeschaltet. Die Benutzerdatenbank ist dann in /etc/fhem-htpasswd zu finden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Location /fhem&amp;gt;&lt;br /&gt;
  # ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um&lt;br /&gt;
  ProxyPass http://localhost:8084/fhem&lt;br /&gt;
  ProxyPassReverse http://localhost:8084/fhem&lt;br /&gt;
  ProxyHTMLEnable On&lt;br /&gt;
  # ProxyHTMLURLMap passt Links im HTML/JavaScript Source an&lt;br /&gt;
  ProxyHTMLURLMap /        /fhem/&lt;br /&gt;
  ProxyHTMLURLMap /fhem/     /fhem/&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;amp;quot;Password Required&amp;amp;quot;&lt;br /&gt;
  AuthUserFile /etc/fhem-htpasswd&lt;br /&gt;
  Require valid-user&lt;br /&gt;
  Order deny,allow&lt;br /&gt;
  Allow from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 4) Benutzer-Datenbank in &#039;&#039;&#039;&#039;&#039;/etc/fhem-htpasswd&#039;&#039;&#039;&#039;&#039; anlegen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# -c -&amp;gt; create file&lt;br /&gt;
# -s SHA encryption&lt;br /&gt;
htpasswd -c -s /etc/fhem-htpasswd &amp;lt;username&amp;gt;&lt;br /&gt;
# add more users with&lt;br /&gt;
htpasswd -s /etc/fhem-htpasswd &amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 5) Apache neu starten&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;invoke-rc.d apache2 reload&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;service apache2 reload&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fertig. FHEM ist jetzt über &#039;&#039;&#039;&#039;&#039;http://server/fhem&#039;&#039;&#039;&#039;&#039; erreichbar. Alle Zugriffe müssen aber erst mit Benutzername + Passwort freigeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
=== SSL-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Um nicht die Passwörter unverschlüsselt übers Netz zu schicken, ist die Konfiguration eines SSL-Reverse-Proxys noch empfehlenswerter. Die untenstehende Konfiguration zeigt die Verwendung mittels Zertifikaten, die von [https://letsencrypt.org Let&#039;s Encrypt] ausgestellt wurden. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  	   ServerName           $host&lt;br /&gt;
  	   RedirectPermanent    / https://$host/&lt;br /&gt;
	&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
	    ServerName          $host&lt;br /&gt;
&lt;br /&gt;
	    SSLEngine           on&lt;br /&gt;
	    SSLProtocol         all -SSLv2 -SSLv3&lt;br /&gt;
	    SSLCipherSuite      ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA&lt;br /&gt;
	    SSLHonorCipherOrder on&lt;br /&gt;
	    SSLCompression      off&lt;br /&gt;
	    SSLOptions          +StrictRequire&lt;br /&gt;
	&lt;br /&gt;
	    SSLCertificateFile  /etc/letsencrypt/live/$host/fullchain.pem&lt;br /&gt;
	    SSLCertificateKeyFile /etc/letsencrypt/live/$host/privkey.pem&lt;br /&gt;
&lt;br /&gt;
	    Use RootDir $dir  # hier sollte ein Verzeichnis unter /var/www stehen (kann leer sein, muss aber existieren)&lt;br /&gt;
	&lt;br /&gt;
            ProxyPass /.well-known !&lt;br /&gt;
            Alias /.well-known &amp;quot;/var/www/proxy/.well-known&amp;quot;&lt;br /&gt;
            &amp;lt;Directory &amp;quot;$dir/.well-known&amp;quot;&amp;gt;&lt;br /&gt;
               order allow,deny&lt;br /&gt;
               allow from all&lt;br /&gt;
               AllowOverride All&lt;br /&gt;
               AddDefaultCharset Off&lt;br /&gt;
            &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	    ProxyRequests       Off&lt;br /&gt;
	    ProxyVia 		Off&lt;br /&gt;
	    ProxyPreserveHost   On&lt;br /&gt;
	    ProxyPass 		/fhem http://$fhemhost:$port/fhem&lt;br /&gt;
	    ProxyPassReverse 	/fhem http://$fhemhost:$port/fhem&lt;br /&gt;
&lt;br /&gt;
   	    Header always set Strict-Transport-Security &amp;quot;max-age=31536000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	    &amp;lt;Proxy *&amp;gt;&lt;br /&gt;
		Order deny,allow&lt;br /&gt;
		Allow from all&lt;br /&gt;
                AuthType Basic&lt;br /&gt;
                AuthName &amp;amp;quot;Password Required&amp;amp;quot;&lt;br /&gt;
                AuthUserFile /etc/fhem-htpasswd&lt;br /&gt;
                Require valid-user&lt;br /&gt;
	    &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
	&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Proxy-Konfiguration ist so gewählt, dass auch automatische Zertifikats-Aktualisierung per webroot klappt (&amp;lt;code&amp;gt;letsencrypt certonly --renew-by-default --webroot -w $dir -d $host&amp;lt;/code&amp;gt;). Initial muss man natürlich ohne Zertifikat einen normalen non-SSL-VHost aufmachen.&lt;br /&gt;
&lt;br /&gt;
== Websockets-Unterstützung ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
			RewriteEngine On&lt;br /&gt;
			RewriteCond %{HTTP:Upgrade} =websocket [NC]&lt;br /&gt;
			RewriteRule /fhem(.*)           ws://$url$1 [P,L]&lt;br /&gt;
			RewriteCond %{HTTP:Upgrade} !=websocket [NC]&lt;br /&gt;
			RewriteRule /fhem(.*)           http://$url$1 [P,L]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hinweis zu Apache 2.4 ==&lt;br /&gt;
Es muss zusätzlich das Modul &#039;&#039;&#039;proxy_html&#039;&#039;&#039; aktiviert werden (&amp;lt;code&amp;gt;a2enmod proxy_html&amp;lt;/code&amp;gt;).&lt;br /&gt;
Und die zu erstellende Config-Datei muss jetzt nach &#039;&#039;/etc/apache2/conf-available/fhem.conf&#039;&#039; (statt /etc/apache2/conf.d/fhem).&lt;br /&gt;
&lt;br /&gt;
== Mögliche Probleme ==&lt;br /&gt;
&lt;br /&gt;
=== Invalid command &#039;ProxyHTMLURLMap&#039; ===&lt;br /&gt;
Falls nach dem Neustart des Apache folgende Fehlermeldung kommt:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Invalid command &#039;ProxyHTMLURLMap&#039;, perhaps misspelled or defined by a module not included in the server configuration&lt;br /&gt;
Action &#039;configtest&#039; failed.&lt;br /&gt;
The Apache error log may have more information.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fehlt das Paket libapache2-mod-proxy-html. Einfach mit &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;apt-get install libapache2-mod-proxy-html&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== ProxyHTMLURLMap funktioniert nicht ===&lt;br /&gt;
&lt;br /&gt;
Nicht bei allen Distributionen scheint die Konfigurationsdatei proxy_html.conf mitgeliefert zu werden. Allerdings ist seit einigen Versionen aus mod_proxy_ssl alle Information über zu ersetzende Links etc. entfernt worden. proxy_html.conf wird daher zwingend benötigt. Sie sollte in /etc/apache2/mods-available liegen und bei der Aktivierung des mods nach /etc/apache2/mods-enabled verlinkt werden. Wenn das nicht der Fall ist, kann man das nachholen.&lt;br /&gt;
&lt;br /&gt;
Eine Beispielkonfiguration gibt es [http://apache.webthing.com/svn/apache/filters/proxy_html/proxy_html.conf hier beim ursprünglichen Autor des mods]. Abspeichern unter /etc/apache2/mods-available/proxy_html.conf und dann verlinken:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ln -s /etc/apache2/mods-available/proxy_html.conf /etc/apache2/mods-enabled/proxy_html.conf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann Apache neu starten/laden.&lt;br /&gt;
&lt;br /&gt;
=== Content Encoding Fehler ===&lt;br /&gt;
&lt;br /&gt;
Wenn Firefox und Chromium sich nach der Konfigurationsänderung über Content Encoding Fehler beschweren, könnte Folgendes helfen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;SetOutputFilter INFLATE;proxy-html;DEFLATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Evtl. kann auch folgender Eintrag noch notwendig sein:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
        # Enables outgoing compression for specific file types&lt;br /&gt;
        &amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
                &amp;lt;FilesMatch &amp;quot;.*\.(html|htm|shtml|php|css|js|xml|log|txt|bmp|ttf|otf|eot|svg)$&amp;quot;&amp;gt;&lt;br /&gt;
                   SetOutputFilter DEFLATE&lt;br /&gt;
                &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
            AddOutputFilterByType DEFLATE text/html text/plain text/css application/json&lt;br /&gt;
            AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
            AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml text/x-com$&lt;br /&gt;
            AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-java$&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
*[[HTTPS-Absicherung &amp;amp; Authentifizierung via nginx Webserver]]&lt;br /&gt;
*[https://github.com/tobiasfaust/SimpleWebAuth A simple apache/php web authenticator with longlife JWT tokens for a permanently signin]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Apache_Authentication_Proxy&amp;diff=40774</id>
		<title>Apache Authentication Proxy</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Apache_Authentication_Proxy&amp;diff=40774"/>
		<updated>2026-01-30T07:51:23Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Randnotiz|RNText=Eine sicherere Variante eines Apache Authentication Proxy zusätzlich mit Zertifikaten ist [https://gist.github.com/gbirke/8608543 hier dokumentiert]}}&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Um den Zugriff auf [[FHEMWEB]] etwas sicherer zu machen, kann man den Webzugriff über einen [https://httpd.apache.org/ Apache Webserver] laufen lassen. Dies ist ein kurzes Rezept, um Zugriffe auf FHEMWEB über einen Apachen authentifizieren zu lassen. Erstellt wurde es auf [https://www.debian.org Debian Squeeze]], sollte aber auch mit [https://www.ubuntu.com/ Ubuntu] funktionieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt-get install apache2 libapache2-mod-proxy-html&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 1) FHEMWEB sollte nur noch auf Anfragen vom selben Rechner lauschen, also kein &#039;global&#039; Attribut in der Definition in fhem.cfg&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
define WEBS FHEMWEB 8084&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 2) die folgenden Apache2 Module müssen aktiviert sein: [https://httpd.apache.org/docs/current/mod/mod_proxy.html mod_proxy] + [http://httpd.apache.org/docs/2.4/mod/mod_proxy_http.html mod_proxy_http]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
a2enmod proxy&lt;br /&gt;
a2enmod proxy_http&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 3) neue Datei &#039;&#039;&#039;&#039;&#039;/etc/apache2/conf.d/fhem&#039;&#039;&#039;&#039;&#039; anlegen:&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration sorgt dafür, dass alle Anfragen unter /fhem weiter nach &#039;&#039;&#039;http://localhost/fhem&#039;&#039;&#039; geleitet werden. Zusätzlich wird eine Basic-Authentifizierung eingeschaltet. Die Benutzerdatenbank ist dann in /etc/fhem-htpasswd zu finden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Location /fhem&amp;gt;&lt;br /&gt;
  # ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um&lt;br /&gt;
  ProxyPass http://localhost:8084/fhem&lt;br /&gt;
  ProxyPassReverse http://localhost:8084/fhem&lt;br /&gt;
  ProxyHTMLEnable On&lt;br /&gt;
  # ProxyHTMLURLMap passt Links im HTML/JavaScript Source an&lt;br /&gt;
  ProxyHTMLURLMap /        /fhem/&lt;br /&gt;
  ProxyHTMLURLMap /fhem/     /fhem/&lt;br /&gt;
  AuthType Basic&lt;br /&gt;
  AuthName &amp;amp;quot;Password Required&amp;amp;quot;&lt;br /&gt;
  AuthUserFile /etc/fhem-htpasswd&lt;br /&gt;
  Require valid-user&lt;br /&gt;
  Order deny,allow&lt;br /&gt;
  Allow from all&lt;br /&gt;
&amp;lt;/Location&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 4) Benutzer-Datenbank in &#039;&#039;&#039;&#039;&#039;/etc/fhem-htpasswd&#039;&#039;&#039;&#039;&#039; anlegen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# -c -&amp;gt; create file&lt;br /&gt;
# -s SHA encryption&lt;br /&gt;
htpasswd -c -s /etc/fhem-htpasswd &amp;lt;username&amp;gt;&lt;br /&gt;
# add more users with&lt;br /&gt;
htpasswd -s /etc/fhem-htpasswd &amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 5) Apache neu starten&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;invoke-rc.d apache2 reload&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;service apache2 reload&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fertig. FHEM ist jetzt über &#039;&#039;&#039;&#039;&#039;http://server/fhem&#039;&#039;&#039;&#039;&#039; erreichbar. Alle Zugriffe müssen aber erst mit Benutzername + Passwort freigeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
=== SSL-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Um nicht die Passwörter unverschlüsselt übers Netz zu schicken, ist die Konfiguration eines SSL-Reverse-Proxys noch empfehlenswerter. Die untenstehende Konfiguration zeigt die Verwendung mittels Zertifikaten, die von [https://letsencrypt.org Let&#039;s Encrypt] ausgestellt wurden. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  	   ServerName           $host&lt;br /&gt;
  	   RedirectPermanent    / https://$host/&lt;br /&gt;
	&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
	    ServerName          $host&lt;br /&gt;
&lt;br /&gt;
	    SSLEngine           on&lt;br /&gt;
	    SSLProtocol         all -SSLv2 -SSLv3&lt;br /&gt;
	    SSLCipherSuite      ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA&lt;br /&gt;
	    SSLHonorCipherOrder on&lt;br /&gt;
	    SSLCompression      off&lt;br /&gt;
	    SSLOptions          +StrictRequire&lt;br /&gt;
	&lt;br /&gt;
	    SSLCertificateFile  /etc/letsencrypt/live/$host/fullchain.pem&lt;br /&gt;
	    SSLCertificateKeyFile /etc/letsencrypt/live/$host/privkey.pem&lt;br /&gt;
&lt;br /&gt;
	    Use RootDir $dir  # hier sollte ein Verzeichnis unter /var/www stehen (kann leer sein, muss aber existieren)&lt;br /&gt;
	&lt;br /&gt;
            ProxyPass /.well-known !&lt;br /&gt;
            Alias /.well-known &amp;quot;/var/www/proxy/.well-known&amp;quot;&lt;br /&gt;
            &amp;lt;Directory &amp;quot;$dir/.well-known&amp;quot;&amp;gt;&lt;br /&gt;
               order allow,deny&lt;br /&gt;
               allow from all&lt;br /&gt;
               AllowOverride All&lt;br /&gt;
               AddDefaultCharset Off&lt;br /&gt;
            &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	    ProxyRequests       Off&lt;br /&gt;
	    ProxyVia 		Off&lt;br /&gt;
	    ProxyPreserveHost   On&lt;br /&gt;
	    ProxyPass 		/fhem http://$fhemhost:$port/fhem&lt;br /&gt;
	    ProxyPassReverse 	/fhem http://$fhemhost:$port/fhem&lt;br /&gt;
&lt;br /&gt;
   	    Header always set Strict-Transport-Security &amp;quot;max-age=31536000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	    &amp;lt;Proxy *&amp;gt;&lt;br /&gt;
		Order deny,allow&lt;br /&gt;
		Allow from all&lt;br /&gt;
                AuthType Basic&lt;br /&gt;
                AuthName &amp;amp;quot;Password Required&amp;amp;quot;&lt;br /&gt;
                AuthUserFile /etc/fhem-htpasswd&lt;br /&gt;
                Require valid-user&lt;br /&gt;
	    &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
	&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Proxy-Konfiguration ist so gewählt, dass auch automatische Zertifikats-Aktualisierung per webroot klappt (&amp;lt;code&amp;gt;letsencrypt certonly --renew-by-default --webroot -w $dir -d $host&amp;lt;/code&amp;gt;). Initial muss man natürlich ohne Zertifikat einen normalen non-SSL-VHost aufmachen.&lt;br /&gt;
&lt;br /&gt;
== Websockets-Unterstützung ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
			RewriteEngine On&lt;br /&gt;
			RewriteCond %{HTTP:Upgrade} =websocket [NC]&lt;br /&gt;
			RewriteRule /fhem(.*)           ws://$url$1 [P,L]&lt;br /&gt;
			RewriteCond %{HTTP:Upgrade} !=websocket [NC]&lt;br /&gt;
			RewriteRule /fhem(.*)           http://$url$1 [P,L]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hinweis zu Apache 2.4 ==&lt;br /&gt;
Es muss zusätzlich das Modul &#039;&#039;&#039;proxy_html&#039;&#039;&#039; aktiviert werden (&amp;lt;code&amp;gt;a2enmod proxy_html&amp;lt;/code&amp;gt;).&lt;br /&gt;
Und die zu erstellende Config-Datei muss jetzt nach &#039;&#039;/etc/apache2/conf-available/fhem.conf&#039;&#039; (statt /etc/apache2/conf.d/fhem).&lt;br /&gt;
&lt;br /&gt;
== Mögliche Probleme ==&lt;br /&gt;
&lt;br /&gt;
=== Invalid command &#039;ProxyHTMLURLMap&#039; ===&lt;br /&gt;
Falls nach dem Neustart des Apache folgende Fehlermeldung kommt:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Invalid command &#039;ProxyHTMLURLMap&#039;, perhaps misspelled or defined by a module not included in the server configuration&lt;br /&gt;
Action &#039;configtest&#039; failed.&lt;br /&gt;
The Apache error log may have more information.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fehlt das Paket libapache2-mod-proxy-html. Einfach mit &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;apt-get install libapache2-mod-proxy-html&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
&lt;br /&gt;
nachinstallieren.&lt;br /&gt;
&lt;br /&gt;
=== ProxyHTMLURLMap funktioniert nicht ===&lt;br /&gt;
&lt;br /&gt;
Nicht bei allen Distributionen scheint die Konfigurationsdatei proxy_html.conf mitgeliefert zu werden. Allerdings ist seit einigen Versionen aus mod_proxy_ssl alle Information über zu ersetzende Links etc. entfernt worden. proxy_html.conf wird daher zwingend benötigt. Sie sollte in /etc/apache2/mods-available liegen und bei der Aktivierung des mods nach /etc/apache2/mods-enabled verlinkt werden. Wenn das nicht der Fall ist, kann man das nachholen.&lt;br /&gt;
&lt;br /&gt;
Eine Beispielkonfiguration gibt es [http://apache.webthing.com/svn/apache/filters/proxy_html/proxy_html.conf hier beim ursprünglichen Autor des mods]. Abspeichern unter /etc/apache2/mods-available/proxy_html.conf und dann verlinken:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ln -s /etc/apache2/mods-available/proxy_html.conf /etc/apache2/mods-enabled/proxy_html.conf&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann Apache neu starten/laden.&lt;br /&gt;
&lt;br /&gt;
=== Content Encoding Fehler ===&lt;br /&gt;
&lt;br /&gt;
Wenn Firefox und Chromium sich nach der Konfigurationsänderung über Content Encoding Fehler beschweren, könnte Folgendes helfen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;SetOutputFilter INFLATE;proxy-html;DEFLATE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Evtl. kann auch folgender Eintrag noch notwendig sein:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;&lt;br /&gt;
        # Enables outgoing compression for specific file types&lt;br /&gt;
        &amp;lt;IfModule mod_deflate.c&amp;gt;&lt;br /&gt;
                &amp;lt;FilesMatch &amp;quot;.*\.(html|htm|shtml|php|css|js|xml|log|txt|bmp|ttf|otf|eot|svg)$&amp;quot;&amp;gt;&lt;br /&gt;
                   SetOutputFilter DEFLATE&lt;br /&gt;
                &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
            AddOutputFilterByType DEFLATE text/html text/plain text/css application/json&lt;br /&gt;
            AddOutputFilterByType DEFLATE application/rss+xml&lt;br /&gt;
            AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml text/x-com$&lt;br /&gt;
            AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-java$&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
*[[HTTPS-Absicherung &amp;amp; Authentifizierung via nginx Webserver]]&lt;br /&gt;
*[https://github.com/tobiasfaust/SimpleWebAuth A simple apache/php web authenticator with longlife JWT tokens for a permanently signin]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI3_Pipelines&amp;diff=40511</id>
		<title>FTUI3 Pipelines</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI3_Pipelines&amp;diff=40511"/>
		<updated>2025-12-04T12:23:52Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Verfügbare Transformationsfunktionen (Pipes) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Verwendung von FTUI3 Pipes==&lt;br /&gt;
Das ftui.binding.js-Modul bietet eine leistungsfähige und flexible Möglichkeit, Daten direkt aus FHEM (einem Heimautomatisierungssystem) zu binden und im FTUI-Frontend anzuzeigen. Die Bindings ermöglichen eine Verbindung zwischen HTML-Attributen und FHEM-Daten sowie die Transformation der Daten mithilfe von &amp;quot;Pipes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Jedes Binding folgt einem standardisierten Syntaxmuster:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-element [attribut]=&amp;quot;DeviceName:reading | transformation&amp;quot;&amp;gt;&amp;lt;/ftui-element&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====DeviceName:====&lt;br /&gt;
Der Name des FHEM-Geräts&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Der spezifische Status oder Wert des Geräts, der ausgelesen werden soll&lt;br /&gt;
&lt;br /&gt;
====transformation====&lt;br /&gt;
Optional können mehrere Transformationen (sog. &amp;quot;Pipes&amp;quot;) verwendet werden, um den Wert zu formatieren oder anzupassen.&lt;br /&gt;
&lt;br /&gt;
===Einfaches Input-Pipe Beispiel===&lt;br /&gt;
Dieses Beispiel zeigt die Verwendung eines Bindings, das eine direkte Umwandlung des Wertes mittels der `toInt()` Pipe ausfüh&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | toInt()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Beispiel für Pipe-Kombinationen===&lt;br /&gt;
Es ist möglich, mehrere Pipes zu kombinieren, um komplexe Transformationen durchzuführen. In diesem Beispiel wird der Wert aus dem Reading `state` extrahiert und durch mehrere Pipes transformiert:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;AgroWeather:state | part(4) | toInt() | multiply(2) | round(1)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Dieses Beispiel zeigt, dass der Wert zuerst in einen bestimmten Teil (`part(4)`) aufgeteilt, dann in eine Ganzzahl (`toInt()`) umgewandelt, verdoppelt (`multiply(2)`) und schließlich auf eine Dezimalstelle gerundet wird (`round(1)`). &lt;br /&gt;
&lt;br /&gt;
===Beispiel für Ausgabe-Bindings===&lt;br /&gt;
Bindings können auch dazu verwendet werden, Werte zurück in FHEM zu schreiben. Hier wird der HEX-Wert eines Farbpickers bearbeitet und als RGB-Wert an ein Gerät gesendet.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-colorpicker (hex)=&amp;quot;replace(&#039;#&#039;,) | HUEDevice6:rgb&amp;quot;&amp;gt;&amp;lt;/ftui-colorpicker&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Verfügbare Transformationsfunktionen (Pipes)==&lt;br /&gt;
===Übersicht===&lt;br /&gt;
* part: Teilwert aus zusammengesetztem String, z.B. part(&#039;:2&#039;).&lt;br /&gt;
* toDate: String → Datum parsen mit Format, z.B. toDate(&#039;YYYY-MM-DD hh:mm:ss&#039;).&lt;br /&gt;
* toBool: Zahl/String → boolean.&lt;br /&gt;
* toInt: Zahl/String → Integer.&lt;br /&gt;
* toNumber: Zahl/String → Float.&lt;br /&gt;
* format: Datum formatieren, z.B. format(&#039;DD.MM.YYYY HH:mm&#039;).&lt;br /&gt;
* humanized: Dauer menschenlesbar, z.B. „vor 2 Std.“.&lt;br /&gt;
* round: Runden auf Schritt, z.B. round(0.5).&lt;br /&gt;
* fix: Festkomma mit Stellen, z.B. fix(2) → „1.23“.&lt;br /&gt;
* roundMoney: Währungsformatierung.&lt;br /&gt;
* slice: String-Slice, z.B. slice(0,3).&lt;br /&gt;
* encode: encodeURI(...).&lt;br /&gt;
* add: Addieren, z.B. add(5).&lt;br /&gt;
* multiply: Multiplizieren, z.B. multiply(10).&lt;br /&gt;
* divide: Dividieren, z.B. divide(2).&lt;br /&gt;
* replace: Ersetzen, z.B. replace(&#039;on&#039;,&#039;1&#039;) oder Regex.&lt;br /&gt;
* map: Werte-Mapping über HOCON, z.B. map(&#039;{ on:1, off:0 }&#039;).&lt;br /&gt;
* filter: Durchlassen/Nicht durchlassen per Liste, z.B. filter(&#039;on,off,auto&#039;).&lt;br /&gt;
* step: Stufenwert aus HOCON, z.B. step(&#039;{ 0..20:low, 21..50:mid, 51..:high }&#039;).&lt;br /&gt;
* scale: Wertebereich skalieren, z.B. scale(0,100,0,1).&lt;br /&gt;
* ago: Zeitstempel → „vor …“.&lt;br /&gt;
* till: Zeitstempel → „bis …“.&lt;br /&gt;
* timeFormat: Zeit formatieren, z.B. timeFormat(&#039;mm:ss&#039;,&#039;ms&#039;,&#039;lower&#039;).&lt;br /&gt;
* minusBlue: Wenn Wert &amp;lt; Schwellwert → „blue“, z.B. minusBlue(0).&lt;br /&gt;
* contains: Substring enthalten, z.B. contains(&#039;err&#039;).&lt;br /&gt;
* not: Negation für booleans.&lt;br /&gt;
* is: Gleichheit, z.B. is(&#039;on&#039;).&lt;br /&gt;
* isNot: Ungleichheit, z.B. isNot(&#039;off&#039;).&lt;br /&gt;
* pad: Links auffüllen, z.B. pad(3,&#039;0&#039;) → „007“.&lt;br /&gt;
* append: Anhängen, z.B. append(&#039; °C&#039;).&lt;br /&gt;
* prepend: Voranstellen, z.B. prepend(&#039;#&#039;).&lt;br /&gt;
* sendCommand: FHEM-Befehl senden, z.B. sendCommand(&#039;set Lamp on&#039;).&lt;br /&gt;
* getHTML: FHEM get &amp;lt;device&amp;gt; html abrufen, z.B. getHTML(&#039;MyDev&#039;).&lt;br /&gt;
* capitalize: Erstes Zeichen groß.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel&#039;&#039;&#039;: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[value]=&amp;quot;device:STATE:value | map(&#039;{ on:1, off:0 }&#039;) | scale(0,1,0,100) | fix(0)&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===1. toInt()===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Wandelt den Wert in eine Ganzzahl um.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | toInt()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===2. toFloat()===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung ====&lt;br /&gt;
Wandelt den Wert in eine Fließkommazahl um.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | toFloat()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===3. round(digits)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Rundet den Wert auf die angegebene Anzahl von Nachkommastellen.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`digits` - Anzahl der Nachkommastellen.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | round(2)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===4. multiply(factor)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Multipliziert den Wert mit einem bestimmten Faktor.&lt;br /&gt;
&lt;br /&gt;
====Parameter ====&lt;br /&gt;
`factor` - Multiplikationsfaktor.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | multiply(1.8)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===5. divide(divisor)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Teilt den Wert durch den angegebenen Divisor.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`divisor` - Teiler.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | divide(10)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===6. add(addend)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Addiert einen bestimmten Wert zum aktuellen Wert.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`addend` - Der Wert, der addiert wird.&lt;br /&gt;
&lt;br /&gt;
====Beispiel ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | add(10)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===7. subtract(subtrahend)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Subtrahiert einen bestimmten Wert vom aktuellen Wert.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`subtrahend` - Der Wert, der subtrahiert wird.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | subtract(5)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===8. replace(search, replacement)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Ersetzt alle Vorkommen eines bestimmten Substrings durch einen neuen String.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`search` - Der zu ersetzende String; `replacement` - Der neue String.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;&#039;#FF5733&#039; | replace(&#039;#&#039;, &#039;&#039;)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===9. part(index)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Extrahiert ein bestimmtes Segment aus einem strukturierten Wert (z.B. durch Leerzeichen getrennte Werte).&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`index` - Der Index des zu extrahierenden Teils.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;SensorData:state | part(2)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===10. uppercase()===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Wandelt den String in Großbuchstaben um.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;Status:state | uppercase()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===11. lowercase()===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Wandelt den String in Kleinbuchstaben um.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;Status:state | lowercase()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===12. format(formatString)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Formatiert den Wert entsprechend einem angegebenen Format-String.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`formatString` - Das Format, z.B. `&amp;quot;%.2f&amp;quot;` für zwei Dezimalstellen.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | format(&#039;%.1f&#039;)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===13. timestamp()===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Wandelt das Datum in einen Zeitstempel um.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;DateSensor:state | timestamp()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===14. unit(unitString)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Fügt eine Einheit an den Wert an.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`unitString` - Die Einheit, die angehängt wird.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | unit(&#039;°C&#039;)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===15. map(mappingString)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Mappt einen Wert auf eine vorgegebene Zeichenkette basierend auf einer Mapping-Tabelle.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`mappingString` - Eine Mapping-Zeichenkette, die Ein- und Ausgangswerte verbindet, z.B. `&amp;quot;0=Aus,1=Ein&amp;quot;`.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;Status:state | map(&#039;0=Off,1=On&#039;)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI V3]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI3_Pipelines&amp;diff=40510</id>
		<title>FTUI3 Pipelines</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI3_Pipelines&amp;diff=40510"/>
		<updated>2025-12-04T12:22:43Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Übersicht aktualisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Verwendung von FTUI3 Pipes==&lt;br /&gt;
Das ftui.binding.js-Modul bietet eine leistungsfähige und flexible Möglichkeit, Daten direkt aus FHEM (einem Heimautomatisierungssystem) zu binden und im FTUI-Frontend anzuzeigen. Die Bindings ermöglichen eine Verbindung zwischen HTML-Attributen und FHEM-Daten sowie die Transformation der Daten mithilfe von &amp;quot;Pipes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Jedes Binding folgt einem standardisierten Syntaxmuster:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-element [attribut]=&amp;quot;DeviceName:reading | transformation&amp;quot;&amp;gt;&amp;lt;/ftui-element&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====DeviceName:====&lt;br /&gt;
Der Name des FHEM-Geräts&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Der spezifische Status oder Wert des Geräts, der ausgelesen werden soll&lt;br /&gt;
&lt;br /&gt;
====transformation====&lt;br /&gt;
Optional können mehrere Transformationen (sog. &amp;quot;Pipes&amp;quot;) verwendet werden, um den Wert zu formatieren oder anzupassen.&lt;br /&gt;
&lt;br /&gt;
===Einfaches Input-Pipe Beispiel===&lt;br /&gt;
Dieses Beispiel zeigt die Verwendung eines Bindings, das eine direkte Umwandlung des Wertes mittels der `toInt()` Pipe ausfüh&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | toInt()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Beispiel für Pipe-Kombinationen===&lt;br /&gt;
Es ist möglich, mehrere Pipes zu kombinieren, um komplexe Transformationen durchzuführen. In diesem Beispiel wird der Wert aus dem Reading `state` extrahiert und durch mehrere Pipes transformiert:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;AgroWeather:state | part(4) | toInt() | multiply(2) | round(1)&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Dieses Beispiel zeigt, dass der Wert zuerst in einen bestimmten Teil (`part(4)`) aufgeteilt, dann in eine Ganzzahl (`toInt()`) umgewandelt, verdoppelt (`multiply(2)`) und schließlich auf eine Dezimalstelle gerundet wird (`round(1)`). &lt;br /&gt;
&lt;br /&gt;
===Beispiel für Ausgabe-Bindings===&lt;br /&gt;
Bindings können auch dazu verwendet werden, Werte zurück in FHEM zu schreiben. Hier wird der HEX-Wert eines Farbpickers bearbeitet und als RGB-Wert an ein Gerät gesendet.&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-colorpicker (hex)=&amp;quot;replace(&#039;#&#039;,) | HUEDevice6:rgb&amp;quot;&amp;gt;&amp;lt;/ftui-colorpicker&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Verfügbare Transformationsfunktionen (Pipes)==&lt;br /&gt;
===Übersicht===&lt;br /&gt;
* part: Teilwert aus zusammengesetztem String, z.B. part(&#039;:2&#039;).&lt;br /&gt;
* toDate: String → Datum parsen mit Format, z.B. toDate(&#039;YYYY-MM-DD hh:mm:ss&#039;).&lt;br /&gt;
* toBool: Zahl/String → boolean.&lt;br /&gt;
* toInt: Zahl/String → Integer.&lt;br /&gt;
* toNumber: Zahl/String → Float.&lt;br /&gt;
* format: Datum formatieren, z.B. format(&#039;DD.MM.YYYY HH:mm&#039;).&lt;br /&gt;
* humanized: Dauer menschenlesbar, z.B. „vor 2 Std.“.&lt;br /&gt;
* round: Runden auf Schritt, z.B. round(0.5).&lt;br /&gt;
* fix: Festkomma mit Stellen, z.B. fix(2) → „1.23“.&lt;br /&gt;
* roundMoney: Währungsformatierung.&lt;br /&gt;
* slice: String-Slice, z.B. slice(0,3).&lt;br /&gt;
* encode: encodeURI(...).&lt;br /&gt;
* add: Addieren, z.B. add(5).&lt;br /&gt;
* multiply: Multiplizieren, z.B. multiply(10).&lt;br /&gt;
* divide: Dividieren, z.B. divide(2).&lt;br /&gt;
* replace: Ersetzen, z.B. replace(&#039;on&#039;,&#039;1&#039;) oder Regex.&lt;br /&gt;
* map: Werte-Mapping über HOCON, z.B. map(&#039;{ on:1, off:0 }&#039;).&lt;br /&gt;
* filter: Durchlassen/Nicht durchlassen per Liste, z.B. filter(&#039;on,off,auto&#039;).&lt;br /&gt;
* step: Stufenwert aus HOCON, z.B. step(&#039;{ 0..20:low, 21..50:mid, 51..:high }&#039;).&lt;br /&gt;
* scale: Wertebereich skalieren, z.B. scale(0,100,0,1).&lt;br /&gt;
* ago: Zeitstempel → „vor …“.&lt;br /&gt;
* till: Zeitstempel → „bis …“.&lt;br /&gt;
* timeFormat: Zeit formatieren, z.B. timeFormat(&#039;mm:ss&#039;,&#039;ms&#039;,&#039;lower&#039;).&lt;br /&gt;
* minusBlue: Wenn Wert &amp;lt; Schwellwert → „blue“, z.B. minusBlue(0).&lt;br /&gt;
* contains: Substring enthalten, z.B. contains(&#039;err&#039;).&lt;br /&gt;
* not: Negation für booleans.&lt;br /&gt;
* is: Gleichheit, z.B. is(&#039;on&#039;).&lt;br /&gt;
* isNot: Ungleichheit, z.B. isNot(&#039;off&#039;).&lt;br /&gt;
* pad: Links auffüllen, z.B. pad(3,&#039;0&#039;) → „007“.&lt;br /&gt;
* append: Anhängen, z.B. append(&#039; °C&#039;).&lt;br /&gt;
* prepend: Voranstellen, z.B. prepend(&#039;#&#039;).&lt;br /&gt;
* sendCommand: FHEM-Befehl senden, z.B. sendCommand(&#039;set Lamp on&#039;).&lt;br /&gt;
* getHTML: FHEM get &amp;lt;device&amp;gt; html abrufen, z.B. getHTML(&#039;MyDev&#039;).&lt;br /&gt;
* capitalize: Erstes Zeichen groß.&lt;br /&gt;
* Beispiel: [value]=&amp;quot;device:STATE:value | map(&#039;{ on:1, off:0 }&#039;) | scale(0,1,0,100) | fix(0)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===1. toInt()===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Wandelt den Wert in eine Ganzzahl um.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | toInt()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===2. toFloat()===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung ====&lt;br /&gt;
Wandelt den Wert in eine Fließkommazahl um.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | toFloat()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===3. round(digits)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Rundet den Wert auf die angegebene Anzahl von Nachkommastellen.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`digits` - Anzahl der Nachkommastellen.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | round(2)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===4. multiply(factor)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Multipliziert den Wert mit einem bestimmten Faktor.&lt;br /&gt;
&lt;br /&gt;
====Parameter ====&lt;br /&gt;
`factor` - Multiplikationsfaktor.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | multiply(1.8)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===5. divide(divisor)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Teilt den Wert durch den angegebenen Divisor.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`divisor` - Teiler.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | divide(10)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===6. add(addend)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Addiert einen bestimmten Wert zum aktuellen Wert.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`addend` - Der Wert, der addiert wird.&lt;br /&gt;
&lt;br /&gt;
====Beispiel ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | add(10)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===7. subtract(subtrahend)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Subtrahiert einen bestimmten Wert vom aktuellen Wert.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`subtrahend` - Der Wert, der subtrahiert wird.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | subtract(5)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===8. replace(search, replacement)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Ersetzt alle Vorkommen eines bestimmten Substrings durch einen neuen String.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`search` - Der zu ersetzende String; `replacement` - Der neue String.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;&#039;#FF5733&#039; | replace(&#039;#&#039;, &#039;&#039;)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===9. part(index)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Extrahiert ein bestimmtes Segment aus einem strukturierten Wert (z.B. durch Leerzeichen getrennte Werte).&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`index` - Der Index des zu extrahierenden Teils.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;SensorData:state | part(2)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===10. uppercase()===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Wandelt den String in Großbuchstaben um.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;Status:state | uppercase()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===11. lowercase()===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Wandelt den String in Kleinbuchstaben um.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;Status:state | lowercase()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===12. format(formatString)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Formatiert den Wert entsprechend einem angegebenen Format-String.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`formatString` - Das Format, z.B. `&amp;quot;%.2f&amp;quot;` für zwei Dezimalstellen.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | format(&#039;%.1f&#039;)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===13. timestamp()===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Wandelt das Datum in einen Zeitstempel um.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;DateSensor:state | timestamp()&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===14. unit(unitString)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Fügt eine Einheit an den Wert an.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`unitString` - Die Einheit, die angehängt wird.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;TemperaturSensor:state | unit(&#039;°C&#039;)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===15. map(mappingString)===&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Mappt einen Wert auf eine vorgegebene Zeichenkette basierend auf einer Mapping-Tabelle.&lt;br /&gt;
&lt;br /&gt;
====Parameter====&lt;br /&gt;
`mappingString` - Eine Mapping-Zeichenkette, die Ein- und Ausgangswerte verbindet, z.B. `&amp;quot;0=Aus,1=Ein&amp;quot;`.&lt;br /&gt;
&lt;br /&gt;
====Beispiel====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ftui-label [text]=&amp;quot;Status:state | map(&#039;0=Off,1=On&#039;)&amp;quot;&amp;gt;&amp;lt;/ftui-label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI V3]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_FensterkontaktSensor&amp;diff=37795</id>
		<title>PanStamp FensterkontaktSensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_FensterkontaktSensor&amp;diff=37795"/>
		<updated>2022-12-08T09:10:41Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp FensterkontaktSensor}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=1&lt;br /&gt;
|HWVoltage=4-36V &lt;br /&gt;
|HWPowerConsumption= max. 120mW&lt;br /&gt;
|HWPoweredBy=permanent, line-powered&lt;br /&gt;
|HWSize=50 x 50 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Umweltsensors&lt;br /&gt;
&lt;br /&gt;
Dieser Wiki Artikel bezieht auf den panstamp NRG 2&lt;br /&gt;
Weiterführende Information zu panStamps und den grundlegenden Modulen um sie mit FHEM zu integrieren finden sich im zugehörigen [[panStamp|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Sensor ist mit seiner Firmware spezialisert auf die Zustandserfassung von Fenster- und Türkontakten. Es können Gruppen gebildet werden mit Hilfe dessen 3 Zustände erfasst und an FHEM übermittelt werden können:&lt;br /&gt;
* Offen (open)&lt;br /&gt;
* Angeklappt (tilted)&lt;br /&gt;
* Geschlossen (closed)&lt;br /&gt;
&lt;br /&gt;
Der auf dem panStamp NRG2 basierende Fensterkontaktsensor hat die folgenden Eigenschaften:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hardware:&#039;&#039;&#039;&lt;br /&gt;
* 8x ReedkontaktEingänge&lt;br /&gt;
* 3 LowCurrent LEDs zur Zustandsanzeige (Rot/Gelb/Grün)&lt;br /&gt;
* Eingangsspannung von 4-36V, empfohlen wird eine Eingangsspannung von 5V aufgrund der Verlustleistung des Linearreglers&lt;br /&gt;
* passt alles in eine 68mm Unterputzdose&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software:&#039;&#039;&#039;&lt;br /&gt;
* Konfiguration des Sendeintervalls&lt;br /&gt;
* Konfiguration der Gruppen&lt;br /&gt;
* Konfiguration der Blink- und Leuchtintervalls der LEDs&lt;br /&gt;
* Übermittlung von allen 8 Eingängen&lt;br /&gt;
* Übermittlung des Gruppenstatus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===LED Verhalten===&lt;br /&gt;
Die LEDs zeigen folgende Zustände an, es kann immer nur eine LED gleichzeitig leuchten:&lt;br /&gt;
* Rot = mindestens eine definierte Gruppe haben den Status &#039;&#039;&#039;Offen&#039;&#039;&#039;&lt;br /&gt;
* Gelb = mindestens eine definierte Gruppe hat den Status &#039;&#039;&#039;Angeklappt&#039;&#039;&#039;, keine Gruppe ist Offen&lt;br /&gt;
* Green = alle definierten Gruppen haben den Status &#039;&#039;&#039;Geschlossen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im Detail: Die Priorität ist die folgende:&lt;br /&gt;
Offen -&amp;gt; Angeklappt -&amp;gt; Geschlossen&lt;br /&gt;
Rot -&amp;gt; Gelb -&amp;gt; Grün&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Über die Konfiguration kann folgendes eingestellt werden:&lt;br /&gt;
* Anzahl in Millisekunden, wie lange eine LED nach einem Event dauerhaft leuchten soll&lt;br /&gt;
* Anzahl in Millisekunden, wie lange nach 1) die LED ausgeschaltet ist&lt;br /&gt;
* Anzahl in Millisekunden, wie lange nach 1) und 2) die LED eingeschaltet ist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zb: 30000 , 15000, 50 &amp;lt;br&amp;gt;&lt;br /&gt;
Nach einem Event (Fenster wurde betätigt) leuchtet die passende LED 30sekunden dauerhaft, danach mit einem 50ms Blinken alle 15sek&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle benötigten Dateien sind unter [[#Links]] zu finden:&lt;br /&gt;
* Sketch&lt;br /&gt;
* EnvironmentSensor.xml&lt;br /&gt;
* Target3001 Dateien&lt;br /&gt;
&lt;br /&gt;
Unbestückte Platinen können beim [http://forum.fhem.de/index.php?action=profile;u=118 Ersteller], falls vorrätig, angefragt und erworben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WICHTIG!&#039;&#039;&#039; Schaltplan und Platinen sind für den Panstamp NRG 2.&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|- &lt;br /&gt;
|  X1, X2&lt;br /&gt;
|  Keramikkondensator Typ:X7R 2,2uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 2,2/25&lt;br /&gt;
|- &lt;br /&gt;
|  IC2&lt;br /&gt;
|  Linearregler LP2985&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LP 2985 IM5-3,3&lt;br /&gt;
|- &lt;br /&gt;
|  K1-K9 (9x)&lt;br /&gt;
|  Anreihklemme 3,5mm 2Pol &lt;br /&gt;
|  IT-WNS&lt;br /&gt;
|  AK-3.5-2-GY&lt;br /&gt;
|- &lt;br /&gt;
|  R2, R3, R4&lt;br /&gt;
|  SMD Widerstand 1k &lt;br /&gt;
|  Reichelt&lt;br /&gt;
IT-WNS&lt;br /&gt;
|  SMD-0805 1K&lt;br /&gt;
R-1K-0805-1&lt;br /&gt;
|- &lt;br /&gt;
|  X3-X10 (8x)&lt;br /&gt;
|  Keramikkondensator Typ:X7R/X5R 4,7uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
IT-WNS&lt;br /&gt;
|  X7R-G0805 4,7/25&lt;br /&gt;
C-4U7-0805&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x20 pol. gewinkelt, 2,54mm  &lt;br /&gt;
|  IT-WNS&lt;br /&gt;
|  SL-1x20-254-G&lt;br /&gt;
|-&lt;br /&gt;
|  S1&lt;br /&gt;
|  SMD Mikrotaster, Drucktaster, Print Miniatur 5x5x1,5mm&lt;br /&gt;
|  Ebay&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|  IC1&lt;br /&gt;
|  panStamp NRG2&lt;br /&gt;
|  panstamp.com&lt;br /&gt;
|  panStamp NRG2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Aufbau==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM ==&lt;br /&gt;
===Configuration===&lt;br /&gt;
Nach upload des Sketches auf den Panstamp ist zuerst die korrekte Kennung über das Register 09 sowie der gewünschte Sendezyklus über das Register 0A zu setzen (siehe  [[panStamp#Neue_panStamps_in_Betrieb_nehmen|Inbetriebname im Wiki Artikel]] zum den panStamps).&lt;br /&gt;
Anschließend ist die Konfiguration mittels Register 0B zu setzen:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Länge&lt;br /&gt;
!  Position&lt;br /&gt;
!  Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin10&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  0&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D10, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin11&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  1&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D11, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin12&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  2&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D12, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin13&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  3&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D13, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin14&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  4&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D14, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin15&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  5&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D15, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin16&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  6&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D16, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin17&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  7&lt;br /&gt;
|  Nummer der Gruppe für den ReedEingang D17, Erlaubt: 1-7, 0 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOnEvtTime&lt;br /&gt;
|  2 Byte &lt;br /&gt;
|  8-9&lt;br /&gt;
|  Dauer in ms, wie lange die LED nach einem Event dauerleuchten soll&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOnIdleTime&lt;br /&gt;
|  2 Byte &lt;br /&gt;
|  10-11&lt;br /&gt;
|  Dauer in ms, wie lange die LED im Idle-Modus dauerleuchten soll&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOffTime&lt;br /&gt;
|  2 Byte &lt;br /&gt;
|  12-13&lt;br /&gt;
|  Dauer in ms, wie lange die LED im Idle-Modus aus sein soll&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Setzen der Konfiguration===&lt;br /&gt;
Ein Register ist als Hex-Wert zu setzen. Folgende Tabelle zeigt eine exemplarische Konfiguration:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  SubRegister&lt;br /&gt;
!  Wert&lt;br /&gt;
!  Binär Wert&lt;br /&gt;
!  Hex Wert&lt;br /&gt;
!  Comments&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin10&lt;br /&gt;
|  1&lt;br /&gt;
|  1&lt;br /&gt;
|  01&lt;br /&gt;
|  Zuordnung D10 zur Gruppe 1&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin11&lt;br /&gt;
|  1&lt;br /&gt;
|  1&lt;br /&gt;
|  01&lt;br /&gt;
|  Zuordnung D11 zur Gruppe 1&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin12&lt;br /&gt;
|  2&lt;br /&gt;
|  2&lt;br /&gt;
|  02&lt;br /&gt;
|  Zuordnung D12 zur Gruppe 2&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin13&lt;br /&gt;
|  2&lt;br /&gt;
|  2&lt;br /&gt;
|  02&lt;br /&gt;
|  Zuordnung D13 zur Gruppe 2&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin14&lt;br /&gt;
|  3&lt;br /&gt;
|  3&lt;br /&gt;
|  03&lt;br /&gt;
|  Zuordnung D14 zur Gruppe 3&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin15&lt;br /&gt;
|  0&lt;br /&gt;
|  0&lt;br /&gt;
|  00&lt;br /&gt;
|  Deaktivierung D15&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin16&lt;br /&gt;
|  0&lt;br /&gt;
|  0&lt;br /&gt;
|  00&lt;br /&gt;
|  Deaktivierung D16&lt;br /&gt;
|-&lt;br /&gt;
|  Gruppe_Pin17&lt;br /&gt;
|  0&lt;br /&gt;
|  0&lt;br /&gt;
|  00&lt;br /&gt;
|  Deaktivierung D17&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOnEvtTime&lt;br /&gt;
|  5000&lt;br /&gt;
|  1001110001000&lt;br /&gt;
|  1388&lt;br /&gt;
|  Bei einem Event leuchtet die LED 5sek dauerhaft&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOnIdleTime&lt;br /&gt;
|  50&lt;br /&gt;
|  110010&lt;br /&gt;
|  0032&lt;br /&gt;
|  Im Idle Mode leuchtet die LED 50ms&lt;br /&gt;
|-&lt;br /&gt;
|  BlinkOffTime&lt;br /&gt;
|  10000&lt;br /&gt;
|  10011100010000&lt;br /&gt;
|  2710&lt;br /&gt;
|  Im  Idle Mode leuchtet die LED nur alle 10sek&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In obigem Fall ist das Konfigurationsregister wie folgt aufgebaut: &#039;&#039;2710 0032 1388 00 00 00 03 02 02 01 01&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Aufgrunddessen wird die Konfiguration folgendermaßen gesetzt:&lt;br /&gt;
 set &amp;lt;MySwapDevice&amp;gt; regSet 0B 2710003213880000000302020101&lt;br /&gt;
&lt;br /&gt;
Es ist auch möglich die einzelnen Endpoints unabhängig voneinander zu setzen. z.B.:&lt;br /&gt;
  set &amp;lt;MySwapDevice&amp;gt; regSet 0B.2 02&lt;br /&gt;
&lt;br /&gt;
Diese Konfiguration bedeutet folgendes:&lt;br /&gt;
* D10 und D11 gehören zur Gruppe 01&lt;br /&gt;
* D12 und D13 gehören zur Gruppe 02&lt;br /&gt;
* D14 gehört alleine zur Gruppe 03&lt;br /&gt;
* D15,D16,D17 gehören zur 0-Gruppe ist sind damit deaktiviert. Die Binarstati werden zwar regelmäßig mit übertragen, in der Gruppenauswertung spielen diese Pins aber keine Rolle.&lt;br /&gt;
&lt;br /&gt;
Der Gruppenstatus würde dann wie folgt gesetzt:&lt;br /&gt;
* Wenn D10 und D11 offen ist hat die Gruppe ebenfalls den Status &#039;&#039;&#039;Offen&#039;&#039;&#039;&lt;br /&gt;
* Wenn D10 und D11 geschlossen ist hat die Gruppe den Status ebenfalls &#039;&#039;&#039;Geschlossen&#039;&#039;&#039;&lt;br /&gt;
* Wenn D10 und D11 unterschiedlichen Status haben ist ist die Gruppe &#039;&#039;&#039;Angeklappt&#039;&#039;&#039;&lt;br /&gt;
* Analog dazu D12/D13 mit der Gruppe 02&lt;br /&gt;
* Wenn D14 offen ist, hat die Gruppe 03 den Status &#039;&#039;&#039;Offen&#039;&#039;&#039;&lt;br /&gt;
* Wenn D14 geschlossen ist, hat die Gruppe 03 den Status &#039;&#039;&#039;Geschlossen&#039;&#039;&#039;&lt;br /&gt;
* Die Gruppe 03 kann NICHT den Status &#039;&#039;&#039;Angeklappt&#039;&#039;&#039; annehmen, da nur ein Pin dieser Gruppe zugeordnet ist&lt;br /&gt;
&lt;br /&gt;
Die LEDs würden sich dann wie folgt verhalten:&lt;br /&gt;
* Nach einem Event leuchtet die entsprechende LED 5sek dauerhaft, danach blinkt sie für 50ms alle 10sek&lt;br /&gt;
&lt;br /&gt;
== bereitgestellte Readings ==&lt;br /&gt;
Folgende Readings werden zusätzlich zu den Konfigurations-Readings in FHEM bereitgestellt:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Name des Reading&lt;br /&gt;
!  Datentyp &lt;br /&gt;
!  Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|  0C.0-Binary_0 -&amp;gt; 0C.7-Binary_7&lt;br /&gt;
|  [0-1]&lt;br /&gt;
|  aktueller Status des ReedEingangs D10-D17&lt;br /&gt;
0 -&amp;gt; Reedkontakt geschlossen&amp;lt;br&amp;gt;&lt;br /&gt;
1 -&amp;gt; Reedkontakt offen&lt;br /&gt;
|-&lt;br /&gt;
|  0D.0-Gruppe_1 -&amp;gt; 0D.7-Gruppe_8&lt;br /&gt;
|  [0-2]&lt;br /&gt;
|  aktueller Status der Gruppe 1-7&lt;br /&gt;
0 -&amp;gt; Geschlossen&amp;lt;br&amp;gt;&lt;br /&gt;
1 -&amp;gt; Angeklappt&amp;lt;br&amp;gt; &lt;br /&gt;
2 -&amp;gt; Offen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beschreibung des Gruppenverhaltens ==&lt;br /&gt;
Mehrere Eingänge können zu einer Gruppe zugeordnet werden.&lt;br /&gt;
Der Status einer Gruppe wird nach folgendem Verhalten festgelegt:&lt;br /&gt;
* Sind alle Reed-Kontakte der zugeordneten Pins einer Gruppe geschlossen, so ist der Status der Gruppe: &#039;&#039;&#039;Geschlossen&#039;&#039;&#039;&lt;br /&gt;
* Sind alle Reed-Kontakte der zugeordneten Pins einer Gruppe offen, so ist der Status der Gruppe: &#039;&#039;&#039;Offen&#039;&#039;&#039;&lt;br /&gt;
* Sind die einzelnen Stati der Reed-Kontakte der zugeordneten Pins einer Gruppe sowohl geschlossen als auch offen, so ist der Status der Gruppe: &#039;&#039;&#039;Angeklappt&#039;&#039;&#039;&lt;br /&gt;
* Wurde nur ein Pin einer Gruppe zugeordnet, so nimmt die Gruppe nur den Status &#039;&#039;&#039;Offen&#039;&#039;&#039;/&#039;&#039;&#039;Geschlossen&#039;&#039;&#039; an&lt;br /&gt;
&lt;br /&gt;
== Beschreibung des Sendeverhaltens ==&lt;br /&gt;
Der aktuelle Status der Pins als auch der Status der Gruppen werden bei folgenden Events volständig übertragen:&lt;br /&gt;
* gemäß TX-Intervall eingestelltes Sendeintervall&lt;br /&gt;
* sofort bei Auftreten eines Events (Änderung eines Status an einem Pin)&lt;br /&gt;
&lt;br /&gt;
==Einbindung TabletUI mit lesbarem Status==&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_ftui_Fenster.jpg|200px|thumb||Tablet-UI Fenster]]&lt;br /&gt;
[[Datei:Panstamp_Fensterkontaktsensor_v1.0_ftui_FensterRolladen.jpg|200px|thumb||Tablet-UI Fenster&amp;amp;Rolladen]]&lt;br /&gt;
&lt;br /&gt;
In der 99_myUtils.pm ist folgender Eintrag einzubinden&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
##############################################&lt;br /&gt;
# Übersetzt den Status der &lt;br /&gt;
# SWAP Fensterkontakte in Klarnamen&lt;br /&gt;
# und Farbwerte für TabletUI&lt;br /&gt;
##############################################&lt;br /&gt;
&lt;br /&gt;
sub&lt;br /&gt;
SWAP_WindowStateSensor($$$) {&lt;br /&gt;
  my ($device, $reading, $value) = @_;&lt;br /&gt;
  my $state = &amp;quot;??&amp;quot;;&lt;br /&gt;
  my $color = &amp;quot;&amp;quot;;&lt;br /&gt;
  my $group = 0;&lt;br /&gt;
&lt;br /&gt;
  $group = $reading;  &lt;br /&gt;
  $group =~ s/.*-Gruppe_(\d)*.*/$1/;&lt;br /&gt;
&lt;br /&gt;
  if ($value eq &amp;quot;00&amp;quot;) {&lt;br /&gt;
    $state = &amp;quot;closed&amp;quot;;&lt;br /&gt;
    $color = &amp;quot;#23a013&amp;quot;;&lt;br /&gt;
  } elsif ($value eq &amp;quot;01&amp;quot;) {&lt;br /&gt;
    $state = &amp;quot;tilted&amp;quot;;&lt;br /&gt;
    $color = &amp;quot;#f4d742&amp;quot;;&lt;br /&gt;
  } elsif ($value eq &amp;quot;02&amp;quot;) {&lt;br /&gt;
    $state = &amp;quot;open&amp;quot;;&lt;br /&gt;
    $color = &amp;quot;#F70A0A&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  readingsBeginUpdate($defs{$device});&lt;br /&gt;
  readingsBulkUpdate($defs{$device}, &amp;quot;Gruppe&amp;quot;.$group, $state);&lt;br /&gt;
  readingsBulkUpdate($defs{$device}, &amp;quot;Farbwert_Gruppe&amp;quot;.$group, $color);&lt;br /&gt;
  readingsEndUpdate($defs{$device}, 1);&lt;br /&gt;
&lt;br /&gt;
  return undef;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend folgenes Notify erstellt:&lt;br /&gt;
&lt;br /&gt;
 define NTFY_SWAP_Fensterstatus notify SWAP_.*:0D.*-Gruppe.* {SWAP_WindowStateSensor($NAME, $EVTPART0, $EVTPART1)}&lt;br /&gt;
 attr NTFY_SWAP_Fensterstatus DbLogExclude .*&lt;br /&gt;
 attr NTFY_SWAP_Fensterstatus room SWAP&lt;br /&gt;
&lt;br /&gt;
Damit wird sowohl ein lesbarer Status als auch der in TabletUI anzuzeigende Farbwert gesetzt.&lt;br /&gt;
&lt;br /&gt;
In TabletUI könnte dann zb. zusammen mit dem Rolladenstatus auch der Fensterstatus angeziegt werden. Im Platzhalter &amp;quot;par_SC_dev:par_SC_Reading&amp;quot; wird das Device als auch das Reading des Farbwertes gesetzt &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;div data-type=&amp;quot;circlemenu&amp;quot; data-direction=&amp;quot;bottom-half&amp;quot; data-circle-radius=&amp;quot;120&amp;quot; data-item-diameter=&amp;quot;67&amp;quot;&lt;br /&gt;
               style=&amp;quot;font-size:130%;&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;ul&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt;&lt;br /&gt;
                   &amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-device=&amp;quot;par_RL_dev&amp;quot; data-get=&amp;quot;level&amp;quot;&lt;br /&gt;
                       data-icons=&#039;[&amp;quot;oa-fts_shutter_90&amp;quot;,&amp;quot;oa-fts_shutter_80&amp;quot;,&amp;quot;oa-fts_shutter_70&amp;quot;,&amp;quot;oa-fts_shutter_60&amp;quot;,&amp;quot;oa-fts_shutter_50&amp;quot;,&lt;br /&gt;
                                    &amp;quot;oa-fts_shutter_50&amp;quot;,&amp;quot;oa-fts_shutter_40&amp;quot;,&amp;quot;oa-fts_shutter_30&amp;quot;,&amp;quot;oa-fts_shutter_20&amp;quot;,&lt;br /&gt;
                                     &amp;quot;oa-fts_shutter_10&amp;quot;,&amp;quot;oa-fts_window_2w&amp;quot;]&#039;&lt;br /&gt;
                       data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;10&amp;quot;,&amp;quot;20&amp;quot;,&amp;quot;30&amp;quot;,&amp;quot;40&amp;quot;,&amp;quot;50&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;,&amp;quot;80&amp;quot;,&amp;quot;90&amp;quot;,&amp;quot;100&amp;quot;]&#039;&lt;br /&gt;
                       data-on-color=&amp;quot;#2A2A2A&amp;quot;&lt;br /&gt;
                       data-on-background-color=&amp;quot;par_SC_dev:par_SC_Reading&amp;quot;&lt;br /&gt;
                       data-off-background-color=&amp;quot;par_SC_dev:par_SC_Reading&amp;quot;&lt;br /&gt;
                       data-background-icon=&amp;quot;fa-circle&amp;quot;&amp;gt;&lt;br /&gt;
                   &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_dev&amp;quot; data-icon=&amp;quot;oa-fts_shutter_up&amp;quot; data-set-on=&amp;quot;on&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_dev&amp;quot; data-icon=&amp;quot;oa-fts_window_1w_tilt&amp;quot;  data-set-on=&amp;quot;Lueftung&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_auto&amp;quot; data-icon=&amp;quot;oa-fts_shutter_automatic&amp;quot;  data-set-on=&amp;quot;automatic&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_auto&amp;quot; data-icon=&amp;quot;oa-fts_shutter_manual&amp;quot;  data-set-on=&amp;quot;manual&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_dev&amp;quot; data-icon=&amp;quot;oa-fts_sunblind&amp;quot; data-set-on=&amp;quot;Beschatten&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;li&amp;gt; &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;par_RL_dev&amp;quot; data-icon=&amp;quot;oa-fts_shutter_down&amp;quot; data-set-on=&amp;quot;off&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
              &amp;lt;/ul&amp;gt;&lt;br /&gt;
            &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weitere Hinweise ==&lt;br /&gt;
Keine.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/tobiasfaust/WindowStatusSensor Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=35805</id>
		<title>Text2Speech</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=35805"/>
		<updated>2021-06-10T07:17:03Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* zusätzliche Abhängigkeiten von Amazon Polly */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Sprachausgabe über FHEM&lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=98_Text2Speech.pm&lt;br /&gt;
|ModOwner=tobiasfaust ({{Link2FU|118|Forum}} / [[Benutzer_Diskussion:Tobias.faust|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[Text2Speech]] ermöglicht es, eine Sprachausgabe über FHEM zu realisieren. Das Modul ist Client-Server-fähig. Einzelne Sprachbausteine werden zwischengespeichert damit diese bei erneutem Gebrauch nicht noch einmal nachgeladen werden müssen um somit einen flüssigen Spachfluss zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Text2Speech Sprachengines==&lt;br /&gt;
Die Default Sprachengine ist Google mit deutscher, weiblicher Stimme.&lt;br /&gt;
&lt;br /&gt;
Die Sprachengines Amazon Polly, Google und VoiceRSS sind OnlineSysteme die eine Internetverbindung voraussetzen. Die Sprachengines ESpeak und SVOX-Pico sind lokal installierte Sprachengines die keine Internetverbindung benötigen.&lt;br /&gt;
&lt;br /&gt;
Als Empfehlung kann kann folgende Liste mit absteigender Sprachqualität eine Hilfestellung bieten:&lt;br /&gt;
* Amazon Polly&lt;br /&gt;
* Google&lt;br /&gt;
* VoiceRSS/ESpeak/SVOX-Pico&lt;br /&gt;
&lt;br /&gt;
Die Sprachengine &amp;quot;Amazon Polly&amp;quot; ist kostenpflichtig. In den ersten 12 Monaten sind 5Mio Zeichen kostenlos, danach kosten 1Mio Zeichen 4US$ (Stand Februar 2021): [https://aws.amazon.com/de/polly/pricing/ Amazon Polly Pricing]&lt;br /&gt;
&lt;br /&gt;
==Definition Lokale Architektur==&lt;br /&gt;
===Abhängigkeiten Installationspakete===&lt;br /&gt;
Egal welche Sprachengine verwendet werden soll müssen folgende Pakete installiert sein:&lt;br /&gt;
* IO::File&lt;br /&gt;
* Digest::MD5&lt;br /&gt;
* URI::Escape&lt;br /&gt;
* Text::Iconv&lt;br /&gt;
* Encode::Guess&lt;br /&gt;
* MP3::Info&lt;br /&gt;
* mp3wrap (Empfohlen, aber optional, wird über das Attribut TTS_UseMp3Wrap aktiviert)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libdigest-perl-md5-perl libany-uri-escape-perl libtext-iconv-perl libencode-perl libmp3-info-perl mp3wrap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von Espeak===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install lame espeak&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von SVOX-pico===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install lame libttspico-utils&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für ARM/Raspbian sind die &amp;lt;code&amp;gt;libttspico-utils&amp;lt;/code&amp;gt; leider nicht verfügbar, deswegen müsste man diese selbst kompilieren oder das vorkompilierte Paket aus [http://www.robotnet.de/2014/03/20/sprich-freund-und-tritt-ein-sprachausgabe-fur-den-rasberry-pi/ dieser Anleitung] verwenden, folgend in aller Kürze:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libpopt-dev&lt;br /&gt;
cd /tmp&lt;br /&gt;
wget http://www.dr-bischoff.de/raspi/pico2wave.deb&lt;br /&gt;
sudo dpkg --install pico2wave.deb&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von Amazon Polly===&lt;br /&gt;
* Paws::Polly&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo cpan Paws&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Zugangsdaten zum eigenen AWS Konto müssen unter ~/.aws/credentials liegen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
aws_access_key_id = xxxxxxxxxxxxxxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Zugangsdaten erhält man in dem man im AWS Konto eine IAM Gruppe mit einem PollyRead Profile erstellt und diese Gruppe eine neuen User zuweist.&lt;br /&gt;
Nach Anlegen des Users erhält man einmalig(!) das Schlüsselpaar.&lt;br /&gt;
&lt;br /&gt;
==allgemeine Konfiguration==&lt;br /&gt;
Relevant für die korrekte SprachEngine sind die folgenden Attribute:&lt;br /&gt;
* TTS_Ressource&lt;br /&gt;
* TTS_Language &#039;&#039;&#039;oder&#039;&#039;&#039; TTS_Language_Custom&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;aplay -l&amp;lt;/code&amp;gt; kann man eine Liste der möglichen Audio Ausgabedevices erhalten. Von dem gewünschten Ausgabedevice ermittelt man nun die Kartennummer und das Subdevice. &lt;br /&gt;
&lt;br /&gt;
Neben dem Audio Equipment gibt es zwei Voraussetzungen im System: &lt;br /&gt;
* Der User fhem muss Berechtigung haben Sound auszugeben und &lt;br /&gt;
* es muss ein Player installiert sein. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo usermod -aG audio fhem&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Nach dieser Änderung muss sich der Benutzer neu anmelden! Ein Neustart von FHEM oder dem System ist notwendig!&lt;br /&gt;
&lt;br /&gt;
Test2Speech wurde ursprünglich für mplayer entwickelt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mplayer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Damit mplayer ohne sudo aufgerufen wird muss das Attribute &amp;lt;code&amp;gt;TTS_MplayerCall &amp;lt;/code&amp;gt; gesetzt werden. Wird das weggelassen muss [[FHEM_mit_sudo|fhem sudo Berechtigung]] bekommen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;define MyTTS Text2Speech hw=0.0&lt;br /&gt;
attr MyTTS TTS_MplayerCall /usr/bin/mplayer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das Programm mplayer hat auf einigen Systemen sehr große Verzögerungen beim Start, als &#039;&#039;&#039;Alternative&#039;&#039;&#039; ist z.B. play verwendbar&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install sox libsox-fmt-all&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Definition muss in der Bezeichnung das Audiogerätes und im Attribute &amp;lt;code&amp;gt;TTS_MplayerCall &amp;lt;/code&amp;gt; so aussehen (Mindestens Version 19378 2019-05-12 erforderlich).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;define MyTTS Text2Speech hw:0,0&lt;br /&gt;
attr MyTTS TTS_MplayerCall AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei wiederholten Sprachbausteinen wird durch die Verwendung von MP3Wrap eine deutlich flüssigere Sprachausgabe erreicht. Für die Verwendung von Kombinationen aus fertigen mp3 Files und Texten in der Art &amp;quot;Text:bing.mp3:Text&amp;quot; ist dies zwingend notwendig. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mp3wrap&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als Ergänzung die Definition ein Attribute &amp;lt;code&amp;gt;TTS_UseMP3Wrap&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;attr MyTTS TTS_UseMP3Wrap 1&lt;br /&gt;
attr MyTTS verbose 4&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein erster Test kann wie folgt durchgeführt werden (als Einzeiler, ohne Zeilenumbruch einzugeben):&lt;br /&gt;
:&amp;lt;code&amp;gt; set MyTTS tts Das ist ein Test. Jetzt prüfen wir, ob wir etwas aus dem angeschlossenen Lautsprecher hören. Beim ersten Mal haben wir allerdings noch Sprechpausen. Spätestens beim zweiten Durchlauf ist der Textfluss flüssiger.&amp;lt;/code&amp;gt;&lt;br /&gt;
Hört man etwas aus dem Lautsprecher, so führen wir das Kommando ein zweites Mal aus. Jetzt sollte es sich besser anhören. Bleiben die Lautsprecher stumm, so ist das FHEM-Log zu kontrollieren. Gegebenenfalls ist das [[verbose]]-Level auf 5 zu stellen.&lt;br /&gt;
&lt;br /&gt;
War der Test erfolgreich, kann das verbose-Attribut wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
==Definition Client-Server Architektur==&lt;br /&gt;
Es gibt Installationen, bei denen der FHEM-Server z.B. im Keller steht, die Sprachausgabe soll aber räumlich entfernt stattfinden, z.B. im Wohnzimmer. Hierzu ist am Zielort eine FHEM-Instanz anzulegen, z.B. über einen [[Raspberry Pi]], IP: 192.168.178.10. &lt;br /&gt;
Auf dem FHEM-Server ist Text2Speech als Remote zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech 192.168.178.10:7072 &amp;lt;Passwort&amp;gt;;&lt;br /&gt;
 attr Text2Speech room Text2Speech;&lt;br /&gt;
&lt;br /&gt;
Am Zielort ist Text2Speech auf dem Raspi wie folgt zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
Der Passwort Zugang ist entsprechend der {{Link2CmdRef|Anker=allowed}} zu definieren. &lt;br /&gt;
Bitte die Installation von Mplayer und Mp3Wrap nicht vergessen!&lt;br /&gt;
Danach der Test wie oben angegeben.&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher unter Raspbian Jessie==&lt;br /&gt;
Für die Sprachausgabe über Bluetooth bieten sich verschiedene Lautsprecher an. Wichtig ist jedoch, dass diese entweder gar nicht in einen Standby Modus wechseln oder aber über Bluetooth aus dem Standby aufgeweckt werden können. Folgende Lautsprecher sollen laut Internetrecherche funktionieren:&lt;br /&gt;
&lt;br /&gt;
* Creative D80/D100/D200&lt;br /&gt;
* Sony Soundbar HT-XT3&lt;br /&gt;
* Panasonic SC-ALL6EG-W / SC-NE1&lt;br /&gt;
* Bose Soundtouch 10&lt;br /&gt;
* Bose Soundlink Mini II&lt;br /&gt;
* B&amp;amp;O Beoplay S3&lt;br /&gt;
* JBL Charge 2+/3&lt;br /&gt;
* LG Art 51&lt;br /&gt;
* UE Roll&lt;br /&gt;
* Energy PowerBar Elite&lt;br /&gt;
* Teufel Cinebar 11&lt;br /&gt;
&lt;br /&gt;
Die folgenden Schritte müssen nacheinander durchgeführt werden, um auf einem aktuellen Jessie System Audio Inhalte über Bluetooth zu streamen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
und per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; System aktualisieren und notwendige Pakete installieren&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get install alsa-utils bluez bluez-tools pulseaudio-module-bluetooth python-gobject python-gobject-2&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Benutzer pi zur PulseAudio Gruppe hinzufügen&lt;br /&gt;
 sudo usermod -a -G lp pi&lt;br /&gt;
 sudo usermod -a -G pulse-access,audio root&lt;br /&gt;
 sudo adduser pi pulse-access&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Datei daemon.conf von PulseAudio anpassen&lt;br /&gt;
 sudo nano /etc/pulse/daemon.conf&lt;br /&gt;
Nach folgender Zeile suchen&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
und wie folgt erweitern&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
 resample-method = trivial&lt;br /&gt;
und&lt;br /&gt;
 ; system-instance = no&lt;br /&gt;
 system-instance = yes&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; In PulseAudio müssen jetzt zusätzliche Module geladen werden&lt;br /&gt;
 sudo nano /etc/pulse/system.pa&lt;br /&gt;
am Ende der Datei folgendes hinzufügen&lt;br /&gt;
 .ifexists module-bluetooth-policy.so&lt;br /&gt;
 load-module module-bluetooth-policy&lt;br /&gt;
 .endif&lt;br /&gt;
 .ifexists module-bluetooth-discover.so&lt;br /&gt;
 load-module module-bluetooth-discover&lt;br /&gt;
 .endif&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Jetzt müssen wir dafür sorgen, dass PulseAudio automatisch geladen wird&lt;br /&gt;
 sudo nano /etc/systemd/system/pulseaudio.service&lt;br /&gt;
und folgenden Inhalt einfügen&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PulseAudio Sound System&lt;br /&gt;
 Before=sound.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 BusName=org.pulseaudio.Server&lt;br /&gt;
 ExecStart=/usr/bin/pulseaudio&lt;br /&gt;
 Restart=always&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Danach müssen wir PulseAudio neu starten&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
 sudo systemctl enable pulseaudio.service&lt;br /&gt;
 sudo systemctl start pulseaudio.service&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Prüfen ob PulseAudio läuft&lt;br /&gt;
 systemctl status pulseaudio&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Jetzt den Audio Output einstellen: X entweder mit 0 (auto), 1 (3,5mm Klinke) oder 2 (HDMI) ersetzen.&lt;br /&gt;
 sudo amixer cset numid=3 X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Die Lautstärke kann auf 100% gesetzt werden mit&lt;br /&gt;
 sudo amixer set Master 100%&lt;br /&gt;
 sudo pacmd set-sink-volume 0 65535&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Soundausgabe z.B. über Kopfhörer prüfen&lt;br /&gt;
 paplay /usr/share/sounds/alsa/Front_Left.wav&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12.&#039;&#039;&#039; Jetzt können wir mit der Einrichtung von Bluetooth beginnen&lt;br /&gt;
 sudo nano /etc/bluetooth/audio.conf&lt;br /&gt;
und folgendes einfügen&lt;br /&gt;
 [General]&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Media,Socket&lt;br /&gt;
 HFP=true&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/bluetooth/main.conf&lt;br /&gt;
unter [General] folgendes einfügen&lt;br /&gt;
 Name = RaspStream&lt;br /&gt;
 Class = 0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo hciconfig -a&lt;br /&gt;
eingeben und die MAC Adresse des Bluetooth Dongles aufschreiben&lt;br /&gt;
&lt;br /&gt;
Jetzt müssen die Bluetooth Settings angepasst werden (XX:XX:XX:XX:XX:XX steht für die MAC Adresse des Bluetooth Dongles)&lt;br /&gt;
 sudo nano /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/settings&lt;br /&gt;
einngeben und folgendes einfügen &lt;br /&gt;
 [General]&lt;br /&gt;
 Discoverable=true&lt;br /&gt;
 Alias=RaspStream&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
Jetzt muss der Raspberry wieder neu gestartet werden&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;13.&#039;&#039;&#039; Jetzt können Bluetooth Dongle und Bluetooth Lautsprecher gepaired werden&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
und folgende Befehle nacheinander eingeben&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 discoverable on&lt;br /&gt;
 scan on&lt;br /&gt;
&lt;br /&gt;
der Bluetooth Lautsprecher sollte jetzt irgendwann aufgelistet werden und kann dann gepaired werden mit&lt;br /&gt;
 pair XX:XX:XX:XX:XX:XX&lt;br /&gt;
 trust XX:XX:XX:XX:XX:XX&lt;br /&gt;
Bluetooth console verlassen mit&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Damit sollte die Einrichtung abgeschlossen sein und wir können überprüfen, ob wir etwas über Bluetooth ausgeben können&lt;br /&gt;
 mplayer -ao pulse http://stream01.iloveradio.de/iloveradio1.mp3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14.&#039;&#039;&#039; Das Modul Text2Speech sollte dann mit &#039;default&#039; angelegt werden&lt;br /&gt;
 define TTS Text2Speech default&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher==&lt;br /&gt;
{{Randnotiz|RNTyp=Info|RNText=Dieser Abschnitt repräsentiert nicht den aktuellen Stand. Bezüglich Verbindung, Neustart alsa und dem Testbeispiel am Ende muss er überarbeitet werden}}&lt;br /&gt;
Es ist ebenfalls möglich die Sprachausgabe nicht über einen direkt per Kabel angeschlossenen Lautsprecher auszugeben, sondern per Bluetooth an einen oder mehrere Bluetooth-Lautsprecher. Der Test2Speech-Author verwendet einen CreativeD80.&lt;br /&gt;
Dabei ist auf dem Client mit der lokal eingerichteten Text2Speech-Instanz folgendes vorzunehmen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Bluetooth Bibliotheken installieren&lt;br /&gt;
 sudo apt-get install bluez bluez-alsa mplayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Bluetooth für eine AudioVerbindung konfigurieren&lt;br /&gt;
Dazu in &#039;&#039;/etc/bluetooth/audio.conf&#039;&#039; in der &#039;&#039;General section&#039;&#039; folgendes einfügen:&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Socket,Media&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; den Rechner neu starten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Den Bluetooth-Lautsprecher lokalisieren&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Erst Dadurch wird er im Scanning sichtbar&lt;br /&gt;
 hcitool scan&lt;br /&gt;
Folgendes Ergebnis sollte kommen:&lt;br /&gt;
 Scanning ...&lt;br /&gt;
    11:22:33:44:55:66   device 1&lt;br /&gt;
    12:34:56:78:90:12   device 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; eine RFComm Connection vorbereiten&lt;br /&gt;
Dazu &#039;&#039;/etc/bluetooth/rfcomm.conf&#039;&#039; editieren und folgendes eintragen (Mac-Adresse anpassen!)&lt;br /&gt;
 rfcomm0 {&lt;br /&gt;
   # Automatically bind the device at startup&lt;br /&gt;
   bind no;&lt;br /&gt;
   # Bluetooth address of the device&lt;br /&gt;
   device 11:22:33:44:55:66;&lt;br /&gt;
   # RFCOMM channel for the connection&lt;br /&gt;
   channel 3;&lt;br /&gt;
   # Description of the connection&lt;br /&gt;
   comment &amp;quot;This is Device 1&#039;s serial port.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; rebooten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Pairing-Key vergeben&lt;br /&gt;
Die meisten Bluetoothgeräte verlangen einen Schlüssel während des Pairings. Der Creative-D80 erwartet den Schlüssel 0000&lt;br /&gt;
 bluetooth-agent 0000 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Das eigentliche Pairing&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Danach:&lt;br /&gt;
 sudo rfcomm connect rfcomm0&lt;br /&gt;
Jetzt sollte keine Fehlermeldung mehr kommen....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Alsa konfigurieren&lt;br /&gt;
Der Bluetooth-Lautsprecher muss nun noch als Alsa-Audiodevice bekannt gemacht werden. Dazu muss &#039;&#039;/etc/asound.conf&#039;&#039; erstellt werden. MAC anpassen!&lt;br /&gt;
 pcm.bluetooth {&lt;br /&gt;
   type bluetooth&lt;br /&gt;
   device 11:22:33:44:55:66&lt;br /&gt;
   profile &amp;quot;auto&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Danach Alsa restarten:&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Aktuell bei wheezy /etc/init.d/alsa-utils restart}}&lt;br /&gt;
 /etc/init.d/alsasound restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Testen der Verbindung&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Dieses Beispiel geht allein wegen der ständigen Änderung bei Google nicht. Auch stimmt das Ausgabe Gerät nicht. Man könnte so testen :&amp;lt;code&amp;gt;mplayer -ao alsa:device=bluetooth http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi&amp;lt;/code&amp;gt;}}&lt;br /&gt;
:&amp;lt;code&amp;gt;mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -http-header-fields &amp;quot;User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m&amp;quot; &amp;quot;http://translate.google.com/translate_tts?tl=de&amp;amp;q=Das ist ein Test.&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problembehandlung ==&lt;br /&gt;
&lt;br /&gt;
=== Beim abspielen via Bluetooth &amp;quot;stottert&amp;quot; die Wiedergabe ===&lt;br /&gt;
Das Problem tritt im Zusammenhang mit der verwendeten Abspielsoftware ab. Aus nicht nachvollziehbaren Gründen harmoniert die Kombination Bluetooth und Mplayer nicht immer perfekt. Lösung hierfür ist, anstelle mit Mplayer mit VLC zu arbeiten.&lt;br /&gt;
&lt;br /&gt;
Hierfür legt man ein Skript z.B. mit dem Namen /opt/bin/vlc-wrapper.sh an mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cvlc -A alsa --alsa-audio-device bluealsa --quiet --no-interact --play-and-exit $1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Teil &amp;lt;pre&amp;gt;-A alsa --alsa-audio-device bluealsa&amp;lt;/pre&amp;gt; kann ggf. weggelassen werden, wenn die Ausgabe nicht gezielt auf einem bestimmten Audiogerät erfolgen soll.&lt;br /&gt;
Anschließend muss die Ausgabe von Text2Speech noch auf das Skript umgeleitet werden mit folgendem Befehl in FHEM:&amp;lt;pre&amp;gt;attr myTTS TTS_MplayerCall /opt/bin/vlc-wrapper.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MickyMaus-artiger Sound ===&lt;br /&gt;
Das Problem tritt auf, wenn man per mp3wrap mehrere mp3 Files zusammenzieht die eine unterschiedliche Auflösung haben.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Vorstellung und Diskussion des Moduls im {{Link2Forum|Topic=18481|LinkText=FHEM Forum}}&lt;br /&gt;
* [[Wetter_vorlesen_lassen|Code Snippets: Wetter vorlesen lassen]]&lt;br /&gt;
* [https://aubreykloppers.wordpress.com/2015/06/25/bluetooth-speaker-raspberry-pi-the-ultimate-guide/ weitere Guideline für Bluetooth per Rasperry Pi]&lt;br /&gt;
* [https://www.alefo.de/bluetooth-lautsprecher-und-adapter-f63/liste-kompatibler-bt-lautsprecher-fuer-amazon-dot-t907.html Liste von Bluetooth Lautsprechern]&lt;br /&gt;
* [http://www.forum-raspberrypi.de/Thread-tutorial-bluetooth-audio-streaming-mit-a2dp-raspbian-jessie Bluetooth einrichten mit Raspbian Jessie]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Akustische Ausgabe]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_Umweltsensor&amp;diff=33282</id>
		<title>PanStamp Umweltsensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_Umweltsensor&amp;diff=33282"/>
		<updated>2020-05-26T12:42:46Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp Umweltsensor}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=Arduino_Umweltsensor_v1.0_Fertig.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp Umweltsensor, fertig aufgebaut&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery AA&lt;br /&gt;
|HWSize=48.5 x 100 mm&lt;br /&gt;
|HWDeviceFHEM={{Link2CmdRef|Anker=panStamp|Label=panStamp}}, {{Link2CmdRef|Anker=SWAP|Label=SWAP}} &lt;br /&gt;
|ModOwner=für diesen Sketch: {{Link2FU||118|}}&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Umweltsensors&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zu panStamps und den grundlegenden Modulen um sie mit FHEM zu integrieren finden sich auf der [[panStamp]] Seite in diesem Wiki.&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Der auf dem panStamp (Arduino328p) basierende Umweltsensor hat die folgenden Eigenschaften:&lt;br /&gt;
* 4x Analogeingänge&lt;br /&gt;
* Helligkeitserfassung per TSL2561&lt;br /&gt;
* Temperatur- und Luftfeuchtemessung mit DHT22&lt;br /&gt;
* Luftdruck- und Temperaturmessung per BMP180&lt;br /&gt;
* Anschluss von 1..n 1wire Temperatursensoren DS18B20&lt;br /&gt;
* Messung der Batteriespannung&lt;br /&gt;
* Messung der Solarspannung&lt;br /&gt;
* Anpassbare Messfrequenz für Tag und Nacht&lt;br /&gt;
* passt alles in ein ELV IP65 (Nr: G203/G203C) Gehäuse und ist damit geeignet für den Außeneinsatz&lt;br /&gt;
&lt;br /&gt;
Alle benötigten Dateien sind [https://tulpemd.traffic-eye.de/owncloud/public.php?service=files&amp;amp;t=b0bf5979833bc2ca01c8a7bc9cd11335 hier] zu finden:&lt;br /&gt;
* Sketch&lt;br /&gt;
* EnvironmentSensor.xml&lt;br /&gt;
* Target3001 Dateien&lt;br /&gt;
&lt;br /&gt;
Unbestückte Platinen können beim {{Link2FU|118|Ersteller}} angefragt und, falls vorrätig, erworben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WICHTIG!&#039;&#039;&#039; Schaltplan und Platinen sind für den Panstamp AVR 1.&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:Arduino_Umweltsensor_v1.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:Arduino_Umweltsensor_v1.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:Arduino_Umweltsensor_v1.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:Arduino_Umweltsensor_v1.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
[[Datei:Arduino_Umweltsensor_v1.0_Plot1.jpg|200px|thumb|right|Plot Nr 1]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  L1&lt;br /&gt;
|  LQH4C Speicherdrossel &lt;br /&gt;
|  Mouser.com&lt;br /&gt;
Reichelt &lt;br /&gt;
      &lt;br /&gt;
Reichelt&lt;br /&gt;
|  81-LQH43CN100K03L&lt;br /&gt;
L-1212FPS 10µ&lt;br /&gt;
&lt;br /&gt;
L-1616FPS 10µ&lt;br /&gt;
|- &lt;br /&gt;
|  C1, C2&lt;br /&gt;
|  Keramikkondensator Typ:X7R 10uf&lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser.com&lt;br /&gt;
|  X5R-G0805 10/16&lt;br /&gt;
810-CGJ4J1X7R0J106AC&lt;br /&gt;
|- &lt;br /&gt;
|  C3&lt;br /&gt;
|  Keramikkondensator Typ:X7R 1uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser.com&lt;br /&gt;
|  X7R-G0805 1,0/16&lt;br /&gt;
810-C2012X5R1C105K-2&lt;br /&gt;
|- &lt;br /&gt;
|  C4, C7&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser.com&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
581-0805YD104KAT2A&lt;br /&gt;
|- &lt;br /&gt;
|  IC1&lt;br /&gt;
|  MAX1724 Schaltregler 1.5uA IQ Step-Up DC/DC Converter&lt;br /&gt;
|  Mouser.com&lt;br /&gt;
tme.eu&lt;br /&gt;
&lt;br /&gt;
Ebay: G&amp;amp;C Supermarket&lt;br /&gt;
|  MAX1724EZK33T&lt;br /&gt;
MAX1724EZK33+T&lt;br /&gt;
&lt;br /&gt;
MAX1724&lt;br /&gt;
|- &lt;br /&gt;
|  K1,K2,K3,K4,K5&lt;br /&gt;
|  Anreihklemme 3,5mm 3Pol &lt;br /&gt;
|  IT-WNS&lt;br /&gt;
|  AK-3.5-3-GY&lt;br /&gt;
|- &lt;br /&gt;
|  R1&lt;br /&gt;
|  Widerstandsnetzwerk 100K &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 5-4 100K&lt;br /&gt;
|- &lt;br /&gt;
|  R2&lt;br /&gt;
|  SMD Widerstand 1k &lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser.com&lt;br /&gt;
|  SMD-0805 1K&lt;br /&gt;
71-CRCW0805-1.0K-E3&lt;br /&gt;
|- &lt;br /&gt;
|  R3&lt;br /&gt;
|  SMD Widerstand 10k &lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser.com&lt;br /&gt;
|  SMD-0805 10K&lt;br /&gt;
71-CRCW0805-10K-E3&lt;br /&gt;
|- &lt;br /&gt;
|  R4&lt;br /&gt;
|  SMD Widerstand 4k7 &lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser.com&lt;br /&gt;
|  SMD-0805 4,70K&lt;br /&gt;
71-CRCW0805-4.7K-E3&lt;br /&gt;
|-  &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x5Pol &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-005&lt;br /&gt;
|- &lt;br /&gt;
|  D1&lt;br /&gt;
|  LED 3mm LowCurrent 2mA&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GN&lt;br /&gt;
|-&lt;br /&gt;
|  TASTER&lt;br /&gt;
|  Reset TASTER 9314 &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  TASTER 9314&lt;br /&gt;
|- &lt;br /&gt;
|  Batteriehalter&lt;br /&gt;
|  Batteriehalter 1x AA Mignon(Akku)&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  HALTER 1XAAP&lt;br /&gt;
|-&lt;br /&gt;
|  K7&lt;br /&gt;
|  Anschluss Solarpanel (VERT PCB 2Pin TIN FRICTION LOCK)&lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser&lt;br /&gt;
|  zb. MPE 087-1-002&lt;br /&gt;
538-22-23-2021 &lt;br /&gt;
|-&lt;br /&gt;
|  D2&lt;br /&gt;
|  BAV70 Schaltdiode SMD, SOT-23, 250V, 1A&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BAV 70 SMD&lt;br /&gt;
|-&lt;br /&gt;
|  T1&lt;br /&gt;
|  BCW 61 Transistor SMD PNP SOT-23 32V 0,1A 0,25W&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BCW 61C SMD&lt;br /&gt;
|-&lt;br /&gt;
|  T2&lt;br /&gt;
|  BC847 Transistor SMD NPN SOT-23 45V 0,1A 0,25W&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BC 847B SMD&lt;br /&gt;
|-&lt;br /&gt;
|  T3&lt;br /&gt;
|  BSS138 Transistor SMD N-FET SOT-23 50V 0,22A&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BSS 138 SMD&lt;br /&gt;
|-&lt;br /&gt;
|  IC&lt;br /&gt;
|  panStamp AVR&lt;br /&gt;
|  panstamp.com&lt;br /&gt;
|  panStamp AVR&lt;br /&gt;
|-&lt;br /&gt;
|  --&lt;br /&gt;
|  Female Header 2,54 mm, 1X16, straight&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 094-1-016&lt;br /&gt;
|-&lt;br /&gt;
|  --&lt;br /&gt;
|  DHT22&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|  --&lt;br /&gt;
|  BMP180&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|  --&lt;br /&gt;
|  TSL2561&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|  --&lt;br /&gt;
|  Dallas DS18B20&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Aufbau==&lt;br /&gt;
Soll kein 1Wire genutzt werden, so wird empfohlen, den R4 (4k7) nicht zu bestücken, da dieser Pullup bei jedem Messvorgang, bei denen 1wire/DHT22/BMP180 oder TSL2561 involviert sind, zusätzlich die Batterie belasten würde.&lt;br /&gt;
&lt;br /&gt;
Soll kein DHT22 genutzt werden, so wird empfohlen R3 und C7 (4k7) nicht zu bestücken, da beide bei jedem Messvorgang, bei denen 1wire/DHT22/BMP180 oder TSL2561 involviert sind, zusätzlich die Batterie belasten.&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM ==&lt;br /&gt;
===Configuration===&lt;br /&gt;
Nach upload des Sketches auf den Panstamp ist zuerst die korrekte Kennung über das Register 09 sowie der gewünschte Sendezyklus über das Register 0A zu setzen (siehe [[panStamp#Neue panStamps in Betrieb nehmen|Inbetriebname im Wiki Artikel]] zu den panStamps).&lt;br /&gt;
Anschließend ist die Konfiguration mittels Register 0B zu setzen:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Länge&lt;br /&gt;
!  Position&lt;br /&gt;
!  Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|  Sync Intervall&lt;br /&gt;
|  2 Byte&lt;br /&gt;
|  0+1&lt;br /&gt;
|  Intervall in Sekunden zur Synronisation mit der Zentrale. 0000 ist deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|  SendDelay&lt;br /&gt;
|  2 Byte&lt;br /&gt;
|  2+3&lt;br /&gt;
|  Sendeverzögerung in ms zwischen dem Senden von mehreren Registern. Soll Sendeüberlagerung bei Nutzung von Repeatern minimieren&lt;br /&gt;
|-&lt;br /&gt;
|  Altitude&lt;br /&gt;
|  2 Byte&lt;br /&gt;
|  4+5&lt;br /&gt;
|  Angabe des Standortes des Sensors in Höhenmetern ünN. Notwendig zur Berechnung von SeaLevelPressure&lt;br /&gt;
|-&lt;br /&gt;
|  Day/NichtShift Type&lt;br /&gt;
|  1 Byte&lt;br /&gt;
|  6&lt;br /&gt;
|  Type:1 -&amp;gt; Nutzung des Solarwertes; Type:2 -&amp;gt; Nutzung der Helligkeit vom TSL2561&lt;br /&gt;
|-&lt;br /&gt;
|  Day/NigthShift Threshold&lt;br /&gt;
|  3 Byte&lt;br /&gt;
|  7+8+9&lt;br /&gt;
|  Schwellwert bei dem Day/Night umgeschaltet werden soll, Type 1: in mV; Type 2: in Lum&lt;br /&gt;
|-&lt;br /&gt;
|  Day/NightShift TX Intervall&lt;br /&gt;
|  2 Byte&lt;br /&gt;
|  10+11&lt;br /&gt;
|  Intervall in Sekunden im Tagesrhythmus, das &amp;quot;normale&amp;quot; TX_INTERVAL (Register 0A) ist dann NachtRhythmus&lt;br /&gt;
|-&lt;br /&gt;
|  HAS_Analog4&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  12.0&lt;br /&gt;
|  Die analoge Spannung am A3 wird gemessen. VCC liegt an D3 an.&lt;br /&gt;
|-&lt;br /&gt;
|  HAS_Analog3&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  12.1&lt;br /&gt;
|  Die analoge Spannung am A2 wird gemessen. VCC liegt an D3 an.&lt;br /&gt;
|-&lt;br /&gt;
|  HAS_Analog2&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  12.2&lt;br /&gt;
|  Die analoge Spannung am A1 wird gemessen. VCC liegt an D6 an.&lt;br /&gt;
|-&lt;br /&gt;
|  HAS_Analog1&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  12.3&lt;br /&gt;
|  Die analoge Spannung am A0 wird gemessen. VCC liegt an D7 an.&lt;br /&gt;
|-&lt;br /&gt;
|  HAS_DS18B20&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  13.0&lt;br /&gt;
|  Ein oder mehrere DS18B20 sind angeschlossen und sollen ausgelesen werden&lt;br /&gt;
|-&lt;br /&gt;
|  HAS_DHT22&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  13.1&lt;br /&gt;
|  Ein DHT22 ist angeschlossen und soll ausgelesen werden&lt;br /&gt;
|-&lt;br /&gt;
|  HAS_TSL2561&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  13.2&lt;br /&gt;
|  Ein Helligkeitssensor TSL2561 ist angeschlossen und soll ausgelesen werden.&lt;br /&gt;
|-&lt;br /&gt;
|  HAS_BMP180&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  13.3&lt;br /&gt;
|  Ein Luftdrucksensor BMP180 ist angeschlossen und soll ausgelesen werden.&lt;br /&gt;
|-&lt;br /&gt;
|  Transmit BatVol&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  14.0&lt;br /&gt;
|  Die aktuelle Batteriespannung soll übermittelt werden.&lt;br /&gt;
|-&lt;br /&gt;
|  Transmit SolarVol&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  14.1&lt;br /&gt;
|  Die aktuelle Spannung von der Solarzelle soll übermittelt werden. &lt;br /&gt;
|-&lt;br /&gt;
|  Enable Debug LED&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  14.2&lt;br /&gt;
|  Aktivierung der LED als Debug Ausgabe zur Initialisierung und zu jedem Sendezeitpunkt&lt;br /&gt;
|-&lt;br /&gt;
|  Enable Day/NightShift&lt;br /&gt;
|  1Bit&lt;br /&gt;
|  14.3&lt;br /&gt;
|  Die Sendeintervalle für Tag und Nachtrhythmus sollen aktiviert werden&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Nutzung von unterschiedlichen Sendeintervallen bei Tag/Nacht===&lt;br /&gt;
Soll das Sendeintervall tagsüber anders sein als in der Nacht, so ist dies über die Day/NightShift Funktionen einzustellen. Beispielsweise soll der Umweltsensor für eine Rolladensteuerung benutzt werden. Dann ist es besser, die Messung minütlich durchzuführen. In der Nacht wäre dann 10-minütlich ausreichend.&lt;br /&gt;
Über den ConfigParameter &amp;quot;Day/NightShift Type&amp;quot; kann angegeben werden, auf welcher Grundlage die Tag/Nachterkennung stattfinden soll. Entweder über eine Solarspannung, die normalerweise nur am Tage vorliegt, oder über eine Helligkeitsmessung des TSL2561, falls einer bestückt ist. In beiden Fällen wird über &amp;quot;Day/NightShift Threshold&amp;quot; der Schwellwert angegeben an welchem Punkt die Tag/Nacht Grenze gesetzt werden soll. Bei Nutzung von Solarspannung ist hier der Schwellwert in mV anzugeben (zb. 500 für 0.5V) oder in Lumen als gemessener Lumenwert des TSL2561. Hier sollte man vorher die Messerte der jeweiligen Sensoren über einige Tage genau beobachten, um einen geeigneten Wert zu finden.&lt;br /&gt;
Durch die Angabe des Intervalls mit &amp;quot;Day/NightShift TX Intervall&amp;quot; wird das Sendeintervall für den Tagrhythmus angegeben. Das Standardsendeintervall aus dem Register 0A ist für den Nachtrhythmus verantwortlich.&lt;br /&gt;
&lt;br /&gt;
===Setzen der Konfiguration===&lt;br /&gt;
Ein Register ist als Hex-Wert zu setzen. Folgende Tabelle zeigt eine exemplarische Konfiguration:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Wert&lt;br /&gt;
!  Binär Wert&lt;br /&gt;
!  Hex Wert&lt;br /&gt;
|-&lt;br /&gt;
|  Sync Intervall&lt;br /&gt;
|  12h -&amp;gt; 43200s&lt;br /&gt;
|  &lt;br /&gt;
|  A8C0&lt;br /&gt;
|-&lt;br /&gt;
|  SendDelay&lt;br /&gt;
|  100ms&lt;br /&gt;
|  &lt;br /&gt;
|  0064&lt;br /&gt;
|-&lt;br /&gt;
|  Altitude&lt;br /&gt;
|  53m&lt;br /&gt;
|  &lt;br /&gt;
|  0035&lt;br /&gt;
|-&lt;br /&gt;
|  Day/NightShift Type&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|  01&lt;br /&gt;
|-&lt;br /&gt;
|  Day/NightShift Threshold&lt;br /&gt;
|  1000mV&lt;br /&gt;
|  &lt;br /&gt;
|  0003E8&lt;br /&gt;
|-&lt;br /&gt;
|  Day/NightShift TX Intervall&lt;br /&gt;
|  60s&lt;br /&gt;
|  &lt;br /&gt;
|  003C&lt;br /&gt;
|-&lt;br /&gt;
|  HAS_Analog4&lt;br /&gt;
|  nein&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  HAS_Analog3&lt;br /&gt;
|  nein&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  HAS_Analog2&lt;br /&gt;
|  ja&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  HAS_Analog1&lt;br /&gt;
|  ja&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  00001100&lt;br /&gt;
|  0C&lt;br /&gt;
|-&lt;br /&gt;
|  HAS_DS18B20&lt;br /&gt;
|  ja&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  HAS_DHT22&lt;br /&gt;
|  nein&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  HAS_TSL2561&lt;br /&gt;
|  nein&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  HAS_BMP180&lt;br /&gt;
|  nein&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  00001001&lt;br /&gt;
|  09&lt;br /&gt;
|-&lt;br /&gt;
|  Transmit BatVol&lt;br /&gt;
|  ja&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  Transmit SolarVol&lt;br /&gt;
|  ja&lt;br /&gt;
|  1&lt;br /&gt;
|   &lt;br /&gt;
|-&lt;br /&gt;
|  Enable Debug LED&lt;br /&gt;
|  nein&lt;br /&gt;
|  0&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  Enable Day/NightShift&lt;br /&gt;
|  ja&lt;br /&gt;
|  1&lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
|&lt;br /&gt;
|  00001011&lt;br /&gt;
|  0B&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In obigem Fall ist das Konfigurationsregister wie folgt aufgebaut: &#039;&#039;A8C0 0064 0035 01 0003E8 003C 0C 09 0B&#039;&#039;&lt;br /&gt;
Aufgrunddessen wird die Konfiguration folgendermaßen gesetzt:&lt;br /&gt;
:&amp;lt;code&amp;gt;set &amp;lt;MySwapDevice&amp;gt; regSet 0B A8C000640035010003E8003C0C090B&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist auch möglich die einzelnen Endpoints unabhängig voneinander zu setzen, z.B.:&lt;br /&gt;
:&amp;lt;code&amp;gt;set &amp;lt;MySwapDevice&amp;gt; regSet 0B.17 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Synchronisation mit der Zentrale===&lt;br /&gt;
Jede Synchronisation kostet zusätzlichen Strom und belastet damit die Batterie. Allerdings benötigt man eine Synchronisation, um Befehle von der Zentrale entgegenzunehmen, z.B. für eine neue Konfiguration. Im Normalfall benötigt man keine automatisierte Synchronisation, da mit Druck auf den Reset-Button ebenfalls eine Synchronisation erfolgt.&lt;br /&gt;
&lt;br /&gt;
Hat man aber ein Szenario vorliegen, bei dem FHEM automatisiert die Konfiguration ändern soll, so ist ein SyncIntervall notwendig. Um die automatisierte Synchronisation abzuschalten, ist als Wert 0000 zu setzen.&lt;br /&gt;
&lt;br /&gt;
===Nutzung von mehreren DS18B20===&lt;br /&gt;
Die Messwerte für die 1wire Temperatursensoren werden in einem einzelnen Register 0E  übertragen. Das bedeutet, falls mehrere DS18B20 am Bus angeschlossen sind, überschreiben diese sich gegenseitig. Dieses Verhalten ist aber vom Autor so gewollt, um eine gewissen Generik zu gewährleisten.&lt;br /&gt;
Um nun auf die einzelnen Messerte in FHEM Zugriff zu bekommen, schafft folgendes [[userReadings|userReading]] Abhilfe:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;MySwapDevice&amp;gt; userReadings Temperature_Sun:0E.1-1wire_Address:.*28D6CF710400009C {SWAP_1wire($name)}&amp;lt;/code&amp;gt;&lt;br /&gt;
Die im Beispiel verwendete 1Wire ID ist natürlich an die eigenen Gegebenheiten anzupassen. Pro angeschlossenem DS18B20 ist ein weiteres userReading anzulegen.&lt;br /&gt;
&lt;br /&gt;
Anschließend ist folgende Prozedur in [[99 myUtils anlegen|myUtils]] zu ergänzen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
 sub SWAP_1wire($) {&lt;br /&gt;
   my ($SwapDevice) = @_;&lt;br /&gt;
   return (hex(ReadingsVal($SwapDevice, &amp;quot;0E.0-1wire_Temperature&amp;quot;, &amp;quot;&amp;quot;))*0.01) - 50;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Nun wird pro eindeutiger 1Wire-ID ein neues Reading erzeugt, welches den Messwert enthält.&lt;br /&gt;
&lt;br /&gt;
== Weitere Hinweise ==&lt;br /&gt;
Keine.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/tobiasfaust/Panstamp_AVR_EnvironmentSensor Alle Dateien im GitHub]&lt;br /&gt;
* [https://www.tindie.com/products/miceuz/i2c-soil-moisture-sensor/ Bodenfeuchtesensor auf I2C-Basis]&lt;br /&gt;
* [http://vegetronix.com/Products/VH400/ Vegetronix Bodenfeuchtesensor]&lt;br /&gt;
* [http://www.amazon.com/Arduino-compatible-Sensitivity-Moisture-Sensor/dp/B00AFCNR3U LowCost Arduino compatible High Sensitivity Moisture Sensor]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
[[Kategorie:Temperatursensoren]]&lt;br /&gt;
[[Kategorie:Feuchtesensoren]]&lt;br /&gt;
[[Kategorie:Lichtsensoren]]&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=31008</id>
		<title>Text2Speech</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=31008"/>
		<updated>2019-07-18T06:17:50Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Abhängigkeiten Installationspakete */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Sprachausgabe über FHEM&lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=98_Text2Speech.pm&lt;br /&gt;
|ModOwner=tobiasfaust ({{Link2FU|118|Forum}} / [[Benutzer_Diskussion:Tobias.faust|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[Text2Speech]] ermöglicht es, eine Sprachausgabe über FHEM zu realisieren. Das Modul ist Client-Server-fähig. Einzelne Sprachbausteine werden zwischengespeichert damit diese bei erneutem Gebrauch nicht noch einmal nachgeladen werden müssen um somit einen flüssigen Spachfluss zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Text2Speech Sprachengines==&lt;br /&gt;
Die Default Sprachengine ist Google mit deutscher, weiblicher Stimme.&lt;br /&gt;
&lt;br /&gt;
Die Sprachengines Amazon Polly, Google und VoiceRSS sind OnlineSysteme die eine Internetverbindung voraussetzen. Die Sprachengines ESpeak und SVOX-Pico sind lokal installierte Sprachengines die keine Internetverbindung benötigen.&lt;br /&gt;
&lt;br /&gt;
Als Empfehlung kann kann folgende Liste mit absteigender Sprachqualität eine Hilfestellung bieten:&lt;br /&gt;
* Amazon Polly&lt;br /&gt;
* Google&lt;br /&gt;
* VoiceRSS/ESpeak/SVOX-Pico&lt;br /&gt;
&lt;br /&gt;
Die Sprachengine &amp;quot;Amazon Polly&amp;quot; ist kostenpflichtig. In den ersten 12 Monaten sind 5Mio Zeichen kostenlos, danach kosten 1Mio Zeichen 4US$ (Stand Juli 2019): [https://aws.amazon.com/de/polly/pricing/ Amazon Polly Pricing]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definition Lokale Architektur==&lt;br /&gt;
===Abhängigkeiten Installationspakete===&lt;br /&gt;
Egal welche Sprachengine verwendet werden soll müssen folgende Pakete installiert sein:&lt;br /&gt;
* IO::File&lt;br /&gt;
* Digest::MD5&lt;br /&gt;
* URI::Escape&lt;br /&gt;
* Text::Iconv&lt;br /&gt;
* Encode::Guess&lt;br /&gt;
* MP3::Info&lt;br /&gt;
* mp3wrap (Empfohlen, aber optional, wird über das Attribut TTS_UseMp3Wrap aktiviert)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libdigest-perl-md5-perl libany-uri-escape-perl libtext-iconv-perl libencode-perl libmp3-info-perl mp3wrap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von Espeak===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install lame espeak&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von SVOX-pico===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install lame libttspico-utils&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für ARM/Raspbian sind die &amp;lt;code&amp;gt;libttspico-utils&amp;lt;/code&amp;gt; leider nicht verfügbar, deswegen müsste man diese selbst kompilieren oder das vorkompilierte Paket aus [http://www.robotnet.de/2014/03/20/sprich-freund-und-tritt-ein-sprachausgabe-fur-den-rasberry-pi/ dieser Anleitung] verwenden, folgend in aller Kürze:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libpopt-dev&lt;br /&gt;
cd /tmp&lt;br /&gt;
wget http://www.dr-bischoff.de/raspi/pico2wave.deb&lt;br /&gt;
sudo dpkg --install pico2wave.deb&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von Amazon Polly===&lt;br /&gt;
* Paws::Polly&lt;br /&gt;
* File::HomeDir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libfile-homedir-perl&lt;br /&gt;
sudo cpan Paws&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Zugangsdaten zum eigenen AWS Konto müssen unter ~/.aws/credentials liegen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
aws_access_key_id = xxxxxxxxxxxxxxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Zugangsdaten erhält man in dem man im AWS Konto eine IAM Gruppe mit einem PollyRead Profile erstellt und diese Gruppe eine neuen User zuweist.&lt;br /&gt;
Nach Anlegen des Users erhält man einmalig(!) das Schlüsselpaar.&lt;br /&gt;
&lt;br /&gt;
==allgemeine Konfiguration==&lt;br /&gt;
Relevant für die korrekte SprachEngine sind die folgenden Attribute:&lt;br /&gt;
* TTS_Ressource&lt;br /&gt;
* TTS_Language &#039;&#039;&#039;oder&#039;&#039;&#039; TTS_Language_Custom&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;aplay -l&amp;lt;/code&amp;gt; kann man eine Liste der möglichen Audio Ausgabedevices erhalten. Von dem gewünschten Ausgabedevice ermittelt man nun die Kartennummer und das Subdevice. &lt;br /&gt;
&lt;br /&gt;
Neben dem Audio Equipment gibt es zwei Voraussetzungen im System: &lt;br /&gt;
* Der User fhem muss Berechtigung haben Sound auszugeben und &lt;br /&gt;
* es muss ein Player installiert sein. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo usermod -aG audio fhem&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Nach dieser Änderung muss sich der Benutzer neu anmelden! Ein Neustart von FHEM oder dem System ist notwendig!&lt;br /&gt;
&lt;br /&gt;
Test2Speech wurde ursprünglich für mplayer entwickelt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mplayer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Damit mplayer ohne sudo aufgerufen wird muss das Attribute &amp;lt;code&amp;gt;TTS_MplayerCall &amp;lt;/code&amp;gt; gesetzt werden. Wird das weggelassen muss [[FHEM_mit_sudo|fhem sudo Berechtigung]] bekommen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;define MyTTS Text2Speech hw=0.0&lt;br /&gt;
attr MyTTS TTS_MplayerCall /usr/bin/mplayer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das Programm mplayer hat auf einigen Systemen sehr große Verzögerungen beim Start, als &#039;&#039;&#039;Alternative&#039;&#039;&#039; ist z.B. play verwendbar&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install sox libsox-fmt-all&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Definition muss in der Bezeichnung das Audiogerätes und im Attribute &amp;lt;code&amp;gt;TTS_MplayerCall &amp;lt;/code&amp;gt; so aussehen (Mindestens Version 19378 2019-05-12 erforderlich).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;define MyTTS Text2Speech hw:0,0&lt;br /&gt;
attr MyTTS TTS_MplayerCall AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei wiederholten Sprachbausteinen wird durch die Verwendung von MP3Wrap eine deutlich flüssigere Sprachausgabe erreicht. Für die Verwendung von Kombinationen aus fertigen mp3 Files und Texten in der Art &amp;quot;Text:bing.mp3:Text&amp;quot; ist dies zwingend notwendig. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mp3wrap&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als Ergänzung die Definition ein Attribute &amp;lt;code&amp;gt;TTS_UseMP3Wrap&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;attr MyTTS TTS_UseMP3Wrap 1&lt;br /&gt;
attr MyTTS verbose 4&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein erster Test kann wie folgt durchgeführt werden (als Einzeiler, ohne Zeilenumbruch einzugeben):&lt;br /&gt;
:&amp;lt;code&amp;gt; set MyTTS tts Das ist ein Test. Jetzt prüfen wir, ob wir etwas aus dem angeschlossenen Lautsprecher hören. Beim ersten Mal haben wir allerdings noch Sprechpausen. Spätestens beim zweiten Durchlauf ist der Textfluss flüssiger.&amp;lt;/code&amp;gt;&lt;br /&gt;
Hört man etwas aus dem Lautsprecher, so führen wir das Kommando ein zweites Mal aus. Jetzt sollte es sich besser anhören. Bleiben die Lautsprecher stumm, so ist das FHEM-Log zu kontrollieren. Gegebenenfalls ist das [[verbose]]-Level auf 5 zu stellen.&lt;br /&gt;
&lt;br /&gt;
War der Test erfolgreich, kann das verbose-Attribut wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
==Definition Client-Server Architektur==&lt;br /&gt;
Es gibt Installationen, bei denen der FHEM-Server z.B. im Keller steht, die Sprachausgabe soll aber räumlich entfernt stattfinden, z.B. im Wohnzimmer. Hierzu ist am Zielort eine FHEM-Instanz anzulegen, z.B. über einen [[Raspberry Pi]], IP: 192.168.178.10. &lt;br /&gt;
Auf dem FHEM-Server ist Text2Speech als Remote zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech 192.168.178.10:7072 &amp;lt;Passwort&amp;gt;;&lt;br /&gt;
 attr Text2Speech room Text2Speech;&lt;br /&gt;
&lt;br /&gt;
Am Zielort ist Text2Speech auf dem Raspi wie folgt zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
Der Passwort Zugang ist entsprechend der {{Link2CmdRef|Anker=allowed}} zu definieren. &lt;br /&gt;
Bitte die Installation von Mplayer und Mp3Wrap nicht vergessen!&lt;br /&gt;
Danach der Test wie oben angegeben.&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher unter Raspbian Jessie==&lt;br /&gt;
Für die Sprachausgabe über Bluetooth bieten sich verschiedene Lautsprecher an. Wichtig ist jedoch, dass diese entweder gar nicht in einen Standby Modus wechseln oder aber über Bluetooth aus dem Standby aufgeweckt werden können. Folgende Lautsprecher sollen laut Internetrecherche funktionieren:&lt;br /&gt;
&lt;br /&gt;
* Creative D80/D100/D200&lt;br /&gt;
* Sony Soundbar HT-XT3&lt;br /&gt;
* Panasonic SC-ALL6EG-W / SC-NE1&lt;br /&gt;
* Bose Soundtouch 10&lt;br /&gt;
* Bose Soundlink Mini II&lt;br /&gt;
* B&amp;amp;O Beoplay S3&lt;br /&gt;
* JBL Charge 2+/3&lt;br /&gt;
* LG Art 51&lt;br /&gt;
* UE Roll&lt;br /&gt;
* Energy PowerBar Elite&lt;br /&gt;
* Teufel Cinebar 11&lt;br /&gt;
&lt;br /&gt;
Die folgenden Schritte müssen nacheinander durchgeführt werden, um auf einem aktuellen Jessie System Audio Inhalte über Bluetooth zu streamen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
und per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; System aktualisieren und notwendige Pakete installieren&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get install alsa-utils bluez bluez-tools pulseaudio-module-bluetooth python-gobject python-gobject-2&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Benutzer pi zur PulseAudio Gruppe hinzufügen&lt;br /&gt;
 sudo usermod -a -G lp pi&lt;br /&gt;
 sudo usermod -a -G pulse-access,audio root&lt;br /&gt;
 sudo adduser pi pulse-access&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Datei daemon.conf von PulseAudio anpassen&lt;br /&gt;
 sudo nano /etc/pulse/daemon.conf&lt;br /&gt;
Nach folgender Zeile suchen&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
und wie folgt erweitern&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
 resample-method = trivial&lt;br /&gt;
und&lt;br /&gt;
 ; system-instance = no&lt;br /&gt;
 system-instance = yes&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; In PulseAudio müssen jetzt zusätzliche Module geladen werden&lt;br /&gt;
 sudo nano /etc/pulse/system.pa&lt;br /&gt;
am Ende der Datei folgendes hinzufügen&lt;br /&gt;
 .ifexists module-bluetooth-policy.so&lt;br /&gt;
 load-module module-bluetooth-policy&lt;br /&gt;
 .endif&lt;br /&gt;
 .ifexists module-bluetooth-discover.so&lt;br /&gt;
 load-module module-bluetooth-discover&lt;br /&gt;
 .endif&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Jetzt müssen wir dafür sorgen, dass PulseAudio automatisch geladen wird&lt;br /&gt;
 sudo nano /etc/systemd/system/pulseaudio.service&lt;br /&gt;
und folgenden Inhalt einfügen&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PulseAudio Sound System&lt;br /&gt;
 Before=sound.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 BusName=org.pulseaudio.Server&lt;br /&gt;
 ExecStart=/usr/bin/pulseaudio&lt;br /&gt;
 Restart=always&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Danach müssen wir PulseAudio neu starten&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
 sudo systemctl enable pulseaudio.service&lt;br /&gt;
 sudo systemctl start pulseaudio.service&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Prüfen ob PulseAudio läuft&lt;br /&gt;
 systemctl status pulseaudio&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Jetzt den Audio Output einstellen: X entweder mit 0 (auto), 1 (3,5mm Klinke) oder 2 (HDMI) ersetzen.&lt;br /&gt;
 sudo amixer cset numid=3 X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Die Lautstärke kann auf 100% gesetzt werden mit&lt;br /&gt;
 sudo amixer set Master 100%&lt;br /&gt;
 sudo pacmd set-sink-volume 0 65535&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Soundausgabe z.B. über Kopfhörer prüfen&lt;br /&gt;
 paplay /usr/share/sounds/alsa/Front_Left.wav&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12.&#039;&#039;&#039; Jetzt können wir mit der Einrichtung von Bluetooth beginnen&lt;br /&gt;
 sudo nano /etc/bluetooth/audio.conf&lt;br /&gt;
und folgendes einfügen&lt;br /&gt;
 [General]&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Media,Socket&lt;br /&gt;
 HFP=true&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/bluetooth/main.conf&lt;br /&gt;
unter [General] folgendes einfügen&lt;br /&gt;
 Name = RaspStream&lt;br /&gt;
 Class = 0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo hciconfig -a&lt;br /&gt;
eingeben und die MAC Adresse des Bluetooth Dongles aufschreiben&lt;br /&gt;
&lt;br /&gt;
Jetzt müssen die Bluetooth Settings angepasst werden (XX:XX:XX:XX:XX:XX steht für die MAC Adresse des Bluetooth Dongles)&lt;br /&gt;
 sudo nano /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/settings&lt;br /&gt;
einngeben und folgendes einfügen &lt;br /&gt;
 [General]&lt;br /&gt;
 Discoverable=true&lt;br /&gt;
 Alias=RaspStream&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
Jetzt muss der Raspberry wieder neu gestartet werden&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;13.&#039;&#039;&#039; Jetzt können Bluetooth Dongle und Bluetooth Lautsprecher gepaired werden&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
und folgende Befehle nacheinander eingeben&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 discoverable on&lt;br /&gt;
 scan on&lt;br /&gt;
&lt;br /&gt;
der Bluetooth Lautsprecher sollte jetzt irgendwann aufgelistet werden und kann dann gepaired werden mit&lt;br /&gt;
 pair XX:XX:XX:XX:XX:XX&lt;br /&gt;
 trust XX:XX:XX:XX:XX:XX&lt;br /&gt;
Bluetooth console verlassen mit&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Damit sollte die Einrichtung abgeschlossen sein und wir können überprüfen, ob wir etwas über Bluetooth ausgeben können&lt;br /&gt;
 mplayer -ao pulse http://stream01.iloveradio.de/iloveradio1.mp3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14.&#039;&#039;&#039; Das Modul Text2Speech sollte dann mit &#039;default&#039; angelegt werden&lt;br /&gt;
 define TTS Text2Speech default&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher==&lt;br /&gt;
{{Randnotiz|RNTyp=Info|RNText=Dieser Abschnitt repräsentiert nicht den aktuellen Stand. Bezüglich Verbindung, Neustart alsa und dem Testbeispiel am Ende muss er überarbeitet werden}}&lt;br /&gt;
Es ist ebenfalls möglich die Sprachausgabe nicht über einen direkt per Kabel angeschlossenen Lautsprecher auszugeben, sondern per Bluetooth an einen oder mehrere Bluetooth-Lautsprecher. Der Test2Speech-Author verwendet einen CreativeD80.&lt;br /&gt;
Dabei ist auf dem Client mit der lokal eingerichteten Text2Speech-Instanz folgendes vorzunehmen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Bluetooth Bibliotheken installieren&lt;br /&gt;
 sudo apt-get install bluez bluez-alsa mplayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Bluetooth für eine AudioVerbindung konfigurieren&lt;br /&gt;
Dazu in &#039;&#039;/etc/bluetooth/audio.conf&#039;&#039; in der &#039;&#039;General section&#039;&#039; folgendes einfügen:&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Socket,Media&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; den Rechner neu starten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Den Bluetooth-Lautsprecher lokalisieren&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Erst Dadurch wird er im Scanning sichtbar&lt;br /&gt;
 hcitool scan&lt;br /&gt;
Folgendes Ergebnis sollte kommen:&lt;br /&gt;
 Scanning ...&lt;br /&gt;
    11:22:33:44:55:66   device 1&lt;br /&gt;
    12:34:56:78:90:12   device 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; eine RFComm Connection vorbereiten&lt;br /&gt;
Dazu &#039;&#039;/etc/bluetooth/rfcomm.conf&#039;&#039; editieren und folgendes eintragen (Mac-Adresse anpassen!)&lt;br /&gt;
 rfcomm0 {&lt;br /&gt;
   # Automatically bind the device at startup&lt;br /&gt;
   bind no;&lt;br /&gt;
   # Bluetooth address of the device&lt;br /&gt;
   device 11:22:33:44:55:66;&lt;br /&gt;
   # RFCOMM channel for the connection&lt;br /&gt;
   channel 3;&lt;br /&gt;
   # Description of the connection&lt;br /&gt;
   comment &amp;quot;This is Device 1&#039;s serial port.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; rebooten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Pairing-Key vergeben&lt;br /&gt;
Die meisten Bluetoothgeräte verlangen einen Schlüssel während des Pairings. Der Creative-D80 erwartet den Schlüssel 0000&lt;br /&gt;
 bluetooth-agent 0000 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Das eigentliche Pairing&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Danach:&lt;br /&gt;
 sudo rfcomm connect rfcomm0&lt;br /&gt;
Jetzt sollte keine Fehlermeldung mehr kommen....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Alsa konfigurieren&lt;br /&gt;
Der Bluetooth-Lautsprecher muss nun noch als Alsa-Audiodevice bekannt gemacht werden. Dazu muss &#039;&#039;/etc/asound.conf&#039;&#039; erstellt werden. MAC anpassen!&lt;br /&gt;
 pcm.bluetooth {&lt;br /&gt;
   type bluetooth&lt;br /&gt;
   device 11:22:33:44:55:66&lt;br /&gt;
   profile &amp;quot;auto&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Danach Alsa restarten:&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Aktuell bei wheezy /etc/init.d/alsa-utils restart}}&lt;br /&gt;
 /etc/init.d/alsasound restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Testen der Verbindung&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Dieses Beispiel geht allein wegen der ständigen Änderung bei Google nicht. Auch stimmt das Ausgabe Gerät nicht. Man könnte so testen :&amp;lt;code&amp;gt;mplayer -ao alsa:device=bluetooth http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi&amp;lt;/code&amp;gt;}}&lt;br /&gt;
:&amp;lt;code&amp;gt;mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -http-header-fields &amp;quot;User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m&amp;quot; &amp;quot;http://translate.google.com/translate_tts?tl=de&amp;amp;q=Das ist ein Test.&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problembehandlung ==&lt;br /&gt;
&lt;br /&gt;
=== Beim abspielen via Bluetooth &amp;quot;stottert&amp;quot; die Wiedergabe ===&lt;br /&gt;
Das Problem tritt im Zusammenhang mit der verwendeten Abspielsoftware ab. Aus nicht nachvollziehbaren Gründen harmoniert die Kombination Bluetooth und Mplayer nicht immer perfekt. Lösung hierfür ist, anstelle mit Mplayer mit VLC zu arbeiten.&lt;br /&gt;
&lt;br /&gt;
Hierfür legt man ein Skript z.B. mit dem Namen /opt/bin/vlc-wrapper.sh an mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cvlc -A alsa --alsa-audio-device bluealsa --quiet --no-interact --play-and-exit $1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Teil &amp;lt;pre&amp;gt;-A alsa --alsa-audio-device bluealsa&amp;lt;/pre&amp;gt; kann ggf. weggelassen werden, wenn die Ausgabe nicht gezielt auf einem bestimmten Audiogerät erfolgen soll.&lt;br /&gt;
Anschließend muss die Ausgabe von Text2Speech noch auf das Skript umgeleitet werden mit folgendem Befehl in FHEM:&amp;lt;pre&amp;gt;attr myTTS TTS_MplayerCall /opt/bin/vlc-wrapper.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MickyMaus-artiger Sound ===&lt;br /&gt;
Das Problem tritt auf, wenn man per mp3wrap mehrere mp3 Files zusammenzieht die eine unterschiedliche Auflösung haben.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Vorstellung und Diskussion des Moduls im {{Link2Forum|Topic=18481|LinkText=FHEM Forum}}&lt;br /&gt;
* [[Wetter_vorlesen_lassen|Code Snippets: Wetter vorlesen lassen]]&lt;br /&gt;
* [https://aubreykloppers.wordpress.com/2015/06/25/bluetooth-speaker-raspberry-pi-the-ultimate-guide/ weitere Guideline für Bluetooth per Rasperry Pi]&lt;br /&gt;
* [https://www.alefo.de/bluetooth-lautsprecher-und-adapter-f63/liste-kompatibler-bt-lautsprecher-fuer-amazon-dot-t907.html Liste von Bluetooth Lautsprechern]&lt;br /&gt;
* [http://www.forum-raspberrypi.de/Thread-tutorial-bluetooth-audio-streaming-mit-a2dp-raspbian-jessie Bluetooth einrichten mit Raspbian Jessie]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Akustische Ausgabe]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=31007</id>
		<title>Text2Speech</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=31007"/>
		<updated>2019-07-18T06:11:15Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Definition Lokale Architektur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Sprachausgabe über FHEM&lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=98_Text2Speech.pm&lt;br /&gt;
|ModOwner=tobiasfaust ({{Link2FU|118|Forum}} / [[Benutzer_Diskussion:Tobias.faust|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[Text2Speech]] ermöglicht es, eine Sprachausgabe über FHEM zu realisieren. Das Modul ist Client-Server-fähig. Einzelne Sprachbausteine werden zwischengespeichert damit diese bei erneutem Gebrauch nicht noch einmal nachgeladen werden müssen um somit einen flüssigen Spachfluss zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Text2Speech Sprachengines==&lt;br /&gt;
Die Default Sprachengine ist Google mit deutscher, weiblicher Stimme.&lt;br /&gt;
&lt;br /&gt;
Die Sprachengines Amazon Polly, Google und VoiceRSS sind OnlineSysteme die eine Internetverbindung voraussetzen. Die Sprachengines ESpeak und SVOX-Pico sind lokal installierte Sprachengines die keine Internetverbindung benötigen.&lt;br /&gt;
&lt;br /&gt;
Als Empfehlung kann kann folgende Liste mit absteigender Sprachqualität eine Hilfestellung bieten:&lt;br /&gt;
* Amazon Polly&lt;br /&gt;
* Google&lt;br /&gt;
* VoiceRSS/ESpeak/SVOX-Pico&lt;br /&gt;
&lt;br /&gt;
Die Sprachengine &amp;quot;Amazon Polly&amp;quot; ist kostenpflichtig. In den ersten 12 Monaten sind 5Mio Zeichen kostenlos, danach kosten 1Mio Zeichen 4US$ (Stand Juli 2019): [https://aws.amazon.com/de/polly/pricing/ Amazon Polly Pricing]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definition Lokale Architektur==&lt;br /&gt;
===Abhängigkeiten Installationspakete===&lt;br /&gt;
Egal welche Sprachengine verwendet werden soll müssen folgende Pakete installiert sein:&lt;br /&gt;
* IO::File&lt;br /&gt;
* Digest::MD5&lt;br /&gt;
* URI::Escape&lt;br /&gt;
* Text::Iconv&lt;br /&gt;
* Encode::Guess&lt;br /&gt;
* MP3::Info&lt;br /&gt;
* mp3wrap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libdigest-perl-md5-perl libany-uri-escape-perl libtext-iconv-perl libencode-perl libmp3-info-perl mp3wrap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von Espeak===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install lame espeak&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von SVOX-pico===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install lame libttspico-utils&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für ARM/Raspbian sind die &amp;lt;code&amp;gt;libttspico-utils&amp;lt;/code&amp;gt; leider nicht verfügbar, deswegen müsste man diese selbst kompilieren oder das vorkompilierte Paket aus [http://www.robotnet.de/2014/03/20/sprich-freund-und-tritt-ein-sprachausgabe-fur-den-rasberry-pi/ dieser Anleitung] verwenden, folgend in aller Kürze:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libpopt-dev&lt;br /&gt;
cd /tmp&lt;br /&gt;
wget http://www.dr-bischoff.de/raspi/pico2wave.deb&lt;br /&gt;
sudo dpkg --install pico2wave.deb&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von Amazon Polly===&lt;br /&gt;
* Paws::Polly&lt;br /&gt;
* File::HomeDir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libfile-homedir-perl&lt;br /&gt;
sudo cpan Paws&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Zugangsdaten zum eigenen AWS Konto müssen unter ~/.aws/credentials liegen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
aws_access_key_id = xxxxxxxxxxxxxxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Zugangsdaten erhält man in dem man im AWS Konto eine IAM Gruppe mit einem PollyRead Profile erstellt und diese Gruppe eine neuen User zuweist.&lt;br /&gt;
Nach Anlegen des Users erhält man einmalig(!) das Schlüsselpaar.&lt;br /&gt;
&lt;br /&gt;
==allgemeine Konfiguration==&lt;br /&gt;
Relevant für die korrekte SprachEngine sind die folgenden Attribute:&lt;br /&gt;
* TTS_Ressource&lt;br /&gt;
* TTS_Language &#039;&#039;&#039;oder&#039;&#039;&#039; TTS_Language_Custom&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;aplay -l&amp;lt;/code&amp;gt; kann man eine Liste der möglichen Audio Ausgabedevices erhalten. Von dem gewünschten Ausgabedevice ermittelt man nun die Kartennummer und das Subdevice. &lt;br /&gt;
&lt;br /&gt;
Neben dem Audio Equipment gibt es zwei Voraussetzungen im System: &lt;br /&gt;
* Der User fhem muss Berechtigung haben Sound auszugeben und &lt;br /&gt;
* es muss ein Player installiert sein. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo usermod -aG audio fhem&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Nach dieser Änderung muss sich der Benutzer neu anmelden! Ein Neustart von FHEM oder dem System ist notwendig!&lt;br /&gt;
&lt;br /&gt;
Test2Speech wurde ursprünglich für mplayer entwickelt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mplayer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Damit mplayer ohne sudo aufgerufen wird muss das Attribute &amp;lt;code&amp;gt;TTS_MplayerCall &amp;lt;/code&amp;gt; gesetzt werden. Wird das weggelassen muss [[FHEM_mit_sudo|fhem sudo Berechtigung]] bekommen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;define MyTTS Text2Speech hw=0.0&lt;br /&gt;
attr MyTTS TTS_MplayerCall /usr/bin/mplayer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das Programm mplayer hat auf einigen Systemen sehr große Verzögerungen beim Start, als &#039;&#039;&#039;Alternative&#039;&#039;&#039; ist z.B. play verwendbar&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install sox libsox-fmt-all&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Definition muss in der Bezeichnung das Audiogerätes und im Attribute &amp;lt;code&amp;gt;TTS_MplayerCall &amp;lt;/code&amp;gt; so aussehen (Mindestens Version 19378 2019-05-12 erforderlich).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;define MyTTS Text2Speech hw:0,0&lt;br /&gt;
attr MyTTS TTS_MplayerCall AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei wiederholten Sprachbausteinen wird durch die Verwendung von MP3Wrap eine deutlich flüssigere Sprachausgabe erreicht. Für die Verwendung von Kombinationen aus fertigen mp3 Files und Texten in der Art &amp;quot;Text:bing.mp3:Text&amp;quot; ist dies zwingend notwendig. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mp3wrap&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als Ergänzung die Definition ein Attribute &amp;lt;code&amp;gt;TTS_UseMP3Wrap&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;attr MyTTS TTS_UseMP3Wrap 1&lt;br /&gt;
attr MyTTS verbose 4&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein erster Test kann wie folgt durchgeführt werden (als Einzeiler, ohne Zeilenumbruch einzugeben):&lt;br /&gt;
:&amp;lt;code&amp;gt; set MyTTS tts Das ist ein Test. Jetzt prüfen wir, ob wir etwas aus dem angeschlossenen Lautsprecher hören. Beim ersten Mal haben wir allerdings noch Sprechpausen. Spätestens beim zweiten Durchlauf ist der Textfluss flüssiger.&amp;lt;/code&amp;gt;&lt;br /&gt;
Hört man etwas aus dem Lautsprecher, so führen wir das Kommando ein zweites Mal aus. Jetzt sollte es sich besser anhören. Bleiben die Lautsprecher stumm, so ist das FHEM-Log zu kontrollieren. Gegebenenfalls ist das [[verbose]]-Level auf 5 zu stellen.&lt;br /&gt;
&lt;br /&gt;
War der Test erfolgreich, kann das verbose-Attribut wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
==Definition Client-Server Architektur==&lt;br /&gt;
Es gibt Installationen, bei denen der FHEM-Server z.B. im Keller steht, die Sprachausgabe soll aber räumlich entfernt stattfinden, z.B. im Wohnzimmer. Hierzu ist am Zielort eine FHEM-Instanz anzulegen, z.B. über einen [[Raspberry Pi]], IP: 192.168.178.10. &lt;br /&gt;
Auf dem FHEM-Server ist Text2Speech als Remote zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech 192.168.178.10:7072 &amp;lt;Passwort&amp;gt;;&lt;br /&gt;
 attr Text2Speech room Text2Speech;&lt;br /&gt;
&lt;br /&gt;
Am Zielort ist Text2Speech auf dem Raspi wie folgt zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
Der Passwort Zugang ist entsprechend der {{Link2CmdRef|Anker=allowed}} zu definieren. &lt;br /&gt;
Bitte die Installation von Mplayer und Mp3Wrap nicht vergessen!&lt;br /&gt;
Danach der Test wie oben angegeben.&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher unter Raspbian Jessie==&lt;br /&gt;
Für die Sprachausgabe über Bluetooth bieten sich verschiedene Lautsprecher an. Wichtig ist jedoch, dass diese entweder gar nicht in einen Standby Modus wechseln oder aber über Bluetooth aus dem Standby aufgeweckt werden können. Folgende Lautsprecher sollen laut Internetrecherche funktionieren:&lt;br /&gt;
&lt;br /&gt;
* Creative D80/D100/D200&lt;br /&gt;
* Sony Soundbar HT-XT3&lt;br /&gt;
* Panasonic SC-ALL6EG-W / SC-NE1&lt;br /&gt;
* Bose Soundtouch 10&lt;br /&gt;
* Bose Soundlink Mini II&lt;br /&gt;
* B&amp;amp;O Beoplay S3&lt;br /&gt;
* JBL Charge 2+/3&lt;br /&gt;
* LG Art 51&lt;br /&gt;
* UE Roll&lt;br /&gt;
* Energy PowerBar Elite&lt;br /&gt;
* Teufel Cinebar 11&lt;br /&gt;
&lt;br /&gt;
Die folgenden Schritte müssen nacheinander durchgeführt werden, um auf einem aktuellen Jessie System Audio Inhalte über Bluetooth zu streamen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
und per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; System aktualisieren und notwendige Pakete installieren&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get install alsa-utils bluez bluez-tools pulseaudio-module-bluetooth python-gobject python-gobject-2&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Benutzer pi zur PulseAudio Gruppe hinzufügen&lt;br /&gt;
 sudo usermod -a -G lp pi&lt;br /&gt;
 sudo usermod -a -G pulse-access,audio root&lt;br /&gt;
 sudo adduser pi pulse-access&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Datei daemon.conf von PulseAudio anpassen&lt;br /&gt;
 sudo nano /etc/pulse/daemon.conf&lt;br /&gt;
Nach folgender Zeile suchen&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
und wie folgt erweitern&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
 resample-method = trivial&lt;br /&gt;
und&lt;br /&gt;
 ; system-instance = no&lt;br /&gt;
 system-instance = yes&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; In PulseAudio müssen jetzt zusätzliche Module geladen werden&lt;br /&gt;
 sudo nano /etc/pulse/system.pa&lt;br /&gt;
am Ende der Datei folgendes hinzufügen&lt;br /&gt;
 .ifexists module-bluetooth-policy.so&lt;br /&gt;
 load-module module-bluetooth-policy&lt;br /&gt;
 .endif&lt;br /&gt;
 .ifexists module-bluetooth-discover.so&lt;br /&gt;
 load-module module-bluetooth-discover&lt;br /&gt;
 .endif&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Jetzt müssen wir dafür sorgen, dass PulseAudio automatisch geladen wird&lt;br /&gt;
 sudo nano /etc/systemd/system/pulseaudio.service&lt;br /&gt;
und folgenden Inhalt einfügen&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PulseAudio Sound System&lt;br /&gt;
 Before=sound.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 BusName=org.pulseaudio.Server&lt;br /&gt;
 ExecStart=/usr/bin/pulseaudio&lt;br /&gt;
 Restart=always&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Danach müssen wir PulseAudio neu starten&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
 sudo systemctl enable pulseaudio.service&lt;br /&gt;
 sudo systemctl start pulseaudio.service&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Prüfen ob PulseAudio läuft&lt;br /&gt;
 systemctl status pulseaudio&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Jetzt den Audio Output einstellen: X entweder mit 0 (auto), 1 (3,5mm Klinke) oder 2 (HDMI) ersetzen.&lt;br /&gt;
 sudo amixer cset numid=3 X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Die Lautstärke kann auf 100% gesetzt werden mit&lt;br /&gt;
 sudo amixer set Master 100%&lt;br /&gt;
 sudo pacmd set-sink-volume 0 65535&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Soundausgabe z.B. über Kopfhörer prüfen&lt;br /&gt;
 paplay /usr/share/sounds/alsa/Front_Left.wav&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12.&#039;&#039;&#039; Jetzt können wir mit der Einrichtung von Bluetooth beginnen&lt;br /&gt;
 sudo nano /etc/bluetooth/audio.conf&lt;br /&gt;
und folgendes einfügen&lt;br /&gt;
 [General]&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Media,Socket&lt;br /&gt;
 HFP=true&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/bluetooth/main.conf&lt;br /&gt;
unter [General] folgendes einfügen&lt;br /&gt;
 Name = RaspStream&lt;br /&gt;
 Class = 0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo hciconfig -a&lt;br /&gt;
eingeben und die MAC Adresse des Bluetooth Dongles aufschreiben&lt;br /&gt;
&lt;br /&gt;
Jetzt müssen die Bluetooth Settings angepasst werden (XX:XX:XX:XX:XX:XX steht für die MAC Adresse des Bluetooth Dongles)&lt;br /&gt;
 sudo nano /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/settings&lt;br /&gt;
einngeben und folgendes einfügen &lt;br /&gt;
 [General]&lt;br /&gt;
 Discoverable=true&lt;br /&gt;
 Alias=RaspStream&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
Jetzt muss der Raspberry wieder neu gestartet werden&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;13.&#039;&#039;&#039; Jetzt können Bluetooth Dongle und Bluetooth Lautsprecher gepaired werden&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
und folgende Befehle nacheinander eingeben&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 discoverable on&lt;br /&gt;
 scan on&lt;br /&gt;
&lt;br /&gt;
der Bluetooth Lautsprecher sollte jetzt irgendwann aufgelistet werden und kann dann gepaired werden mit&lt;br /&gt;
 pair XX:XX:XX:XX:XX:XX&lt;br /&gt;
 trust XX:XX:XX:XX:XX:XX&lt;br /&gt;
Bluetooth console verlassen mit&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Damit sollte die Einrichtung abgeschlossen sein und wir können überprüfen, ob wir etwas über Bluetooth ausgeben können&lt;br /&gt;
 mplayer -ao pulse http://stream01.iloveradio.de/iloveradio1.mp3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14.&#039;&#039;&#039; Das Modul Text2Speech sollte dann mit &#039;default&#039; angelegt werden&lt;br /&gt;
 define TTS Text2Speech default&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher==&lt;br /&gt;
{{Randnotiz|RNTyp=Info|RNText=Dieser Abschnitt repräsentiert nicht den aktuellen Stand. Bezüglich Verbindung, Neustart alsa und dem Testbeispiel am Ende muss er überarbeitet werden}}&lt;br /&gt;
Es ist ebenfalls möglich die Sprachausgabe nicht über einen direkt per Kabel angeschlossenen Lautsprecher auszugeben, sondern per Bluetooth an einen oder mehrere Bluetooth-Lautsprecher. Der Test2Speech-Author verwendet einen CreativeD80.&lt;br /&gt;
Dabei ist auf dem Client mit der lokal eingerichteten Text2Speech-Instanz folgendes vorzunehmen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Bluetooth Bibliotheken installieren&lt;br /&gt;
 sudo apt-get install bluez bluez-alsa mplayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Bluetooth für eine AudioVerbindung konfigurieren&lt;br /&gt;
Dazu in &#039;&#039;/etc/bluetooth/audio.conf&#039;&#039; in der &#039;&#039;General section&#039;&#039; folgendes einfügen:&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Socket,Media&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; den Rechner neu starten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Den Bluetooth-Lautsprecher lokalisieren&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Erst Dadurch wird er im Scanning sichtbar&lt;br /&gt;
 hcitool scan&lt;br /&gt;
Folgendes Ergebnis sollte kommen:&lt;br /&gt;
 Scanning ...&lt;br /&gt;
    11:22:33:44:55:66   device 1&lt;br /&gt;
    12:34:56:78:90:12   device 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; eine RFComm Connection vorbereiten&lt;br /&gt;
Dazu &#039;&#039;/etc/bluetooth/rfcomm.conf&#039;&#039; editieren und folgendes eintragen (Mac-Adresse anpassen!)&lt;br /&gt;
 rfcomm0 {&lt;br /&gt;
   # Automatically bind the device at startup&lt;br /&gt;
   bind no;&lt;br /&gt;
   # Bluetooth address of the device&lt;br /&gt;
   device 11:22:33:44:55:66;&lt;br /&gt;
   # RFCOMM channel for the connection&lt;br /&gt;
   channel 3;&lt;br /&gt;
   # Description of the connection&lt;br /&gt;
   comment &amp;quot;This is Device 1&#039;s serial port.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; rebooten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Pairing-Key vergeben&lt;br /&gt;
Die meisten Bluetoothgeräte verlangen einen Schlüssel während des Pairings. Der Creative-D80 erwartet den Schlüssel 0000&lt;br /&gt;
 bluetooth-agent 0000 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Das eigentliche Pairing&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Danach:&lt;br /&gt;
 sudo rfcomm connect rfcomm0&lt;br /&gt;
Jetzt sollte keine Fehlermeldung mehr kommen....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Alsa konfigurieren&lt;br /&gt;
Der Bluetooth-Lautsprecher muss nun noch als Alsa-Audiodevice bekannt gemacht werden. Dazu muss &#039;&#039;/etc/asound.conf&#039;&#039; erstellt werden. MAC anpassen!&lt;br /&gt;
 pcm.bluetooth {&lt;br /&gt;
   type bluetooth&lt;br /&gt;
   device 11:22:33:44:55:66&lt;br /&gt;
   profile &amp;quot;auto&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Danach Alsa restarten:&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Aktuell bei wheezy /etc/init.d/alsa-utils restart}}&lt;br /&gt;
 /etc/init.d/alsasound restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Testen der Verbindung&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Dieses Beispiel geht allein wegen der ständigen Änderung bei Google nicht. Auch stimmt das Ausgabe Gerät nicht. Man könnte so testen :&amp;lt;code&amp;gt;mplayer -ao alsa:device=bluetooth http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi&amp;lt;/code&amp;gt;}}&lt;br /&gt;
:&amp;lt;code&amp;gt;mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -http-header-fields &amp;quot;User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m&amp;quot; &amp;quot;http://translate.google.com/translate_tts?tl=de&amp;amp;q=Das ist ein Test.&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problembehandlung ==&lt;br /&gt;
&lt;br /&gt;
=== Beim abspielen via Bluetooth &amp;quot;stottert&amp;quot; die Wiedergabe ===&lt;br /&gt;
Das Problem tritt im Zusammenhang mit der verwendeten Abspielsoftware ab. Aus nicht nachvollziehbaren Gründen harmoniert die Kombination Bluetooth und Mplayer nicht immer perfekt. Lösung hierfür ist, anstelle mit Mplayer mit VLC zu arbeiten.&lt;br /&gt;
&lt;br /&gt;
Hierfür legt man ein Skript z.B. mit dem Namen /opt/bin/vlc-wrapper.sh an mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cvlc -A alsa --alsa-audio-device bluealsa --quiet --no-interact --play-and-exit $1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Teil &amp;lt;pre&amp;gt;-A alsa --alsa-audio-device bluealsa&amp;lt;/pre&amp;gt; kann ggf. weggelassen werden, wenn die Ausgabe nicht gezielt auf einem bestimmten Audiogerät erfolgen soll.&lt;br /&gt;
Anschließend muss die Ausgabe von Text2Speech noch auf das Skript umgeleitet werden mit folgendem Befehl in FHEM:&amp;lt;pre&amp;gt;attr myTTS TTS_MplayerCall /opt/bin/vlc-wrapper.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MickyMaus-artiger Sound ===&lt;br /&gt;
Das Problem tritt auf, wenn man per mp3wrap mehrere mp3 Files zusammenzieht die eine unterschiedliche Auflösung haben.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Vorstellung und Diskussion des Moduls im {{Link2Forum|Topic=18481|LinkText=FHEM Forum}}&lt;br /&gt;
* [[Wetter_vorlesen_lassen|Code Snippets: Wetter vorlesen lassen]]&lt;br /&gt;
* [https://aubreykloppers.wordpress.com/2015/06/25/bluetooth-speaker-raspberry-pi-the-ultimate-guide/ weitere Guideline für Bluetooth per Rasperry Pi]&lt;br /&gt;
* [https://www.alefo.de/bluetooth-lautsprecher-und-adapter-f63/liste-kompatibler-bt-lautsprecher-fuer-amazon-dot-t907.html Liste von Bluetooth Lautsprechern]&lt;br /&gt;
* [http://www.forum-raspberrypi.de/Thread-tutorial-bluetooth-audio-streaming-mit-a2dp-raspbian-jessie Bluetooth einrichten mit Raspbian Jessie]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Akustische Ausgabe]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=31001</id>
		<title>Text2Speech</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=31001"/>
		<updated>2019-07-16T05:58:07Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Sprachausgabe über FHEM&lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=98_Text2Speech.pm&lt;br /&gt;
|ModOwner=tobiasfaust ({{Link2FU|118|Forum}} / [[Benutzer_Diskussion:Tobias.faust|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[Text2Speech]] ermöglicht es, eine Sprachausgabe über FHEM zu realisieren. Das Modul ist Client-Server-fähig. Einzelne Sprachbausteine werden zwischengespeichert damit diese bei erneutem Gebrauch nicht noch einmal nachgeladen werden müssen um somit einen flüssigen Spachfluss zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Text2Speech Sprachengines==&lt;br /&gt;
Die Default Sprachengine ist Google mit deutscher, weiblicher Stimme.&lt;br /&gt;
&lt;br /&gt;
Die Sprachengines Amazon Polly, Google und VoiceRSS sind OnlineSysteme die eine Internetverbindung voraussetzen. Die Sprachengines ESpeak und SVOX-Pico sind lokal installierte Sprachengines die keine Internetverbindung benötigen.&lt;br /&gt;
&lt;br /&gt;
Als Empfehlung kann kann folgende Liste mit absteigender Sprachqualität eine Hilfestellung bieten:&lt;br /&gt;
* Amazon Polly&lt;br /&gt;
* Google&lt;br /&gt;
* VoiceRSS/ESpeak/SVOX-Pico&lt;br /&gt;
&lt;br /&gt;
Die Sprachengine &amp;quot;Amazon Polly&amp;quot; ist kostenpflichtig. In den ersten 12 Monaten sind 5Mio Zeichen kostenlos, danach kosten 1Mio Zeichen 4US$ (Stand Juli 2019): [https://aws.amazon.com/de/polly/pricing/ Amazon Polly Pricing]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definition Lokale Architektur==&lt;br /&gt;
===Abhängigkeiten Installationspakete===&lt;br /&gt;
Egal welche Sprachengine verwendet werden soll müssen folgende Pakete installiert sein:&lt;br /&gt;
* IO::File&lt;br /&gt;
* Digest::MD5&lt;br /&gt;
* URI::Escape&lt;br /&gt;
* Text::Iconv&lt;br /&gt;
* Encode::Guess&lt;br /&gt;
* MP3::Info&lt;br /&gt;
* mp3wrap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libfile-homedir-perl libdigest-perl-md5-perl libany-uri-escape-perl libtext-iconv-perl libencode-perl libmp3-info-perl mp3wrap&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von Espeak===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install lame espeak&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von SVOX-pico===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install lame libttspico-utils&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für ARM/Raspbian sind die &amp;lt;code&amp;gt;libttspico-utils&amp;lt;/code&amp;gt; leider nicht verfügbar, deswegen müsste man diese selbst kompilieren oder das vorkompilierte Paket aus [http://www.robotnet.de/2014/03/20/sprich-freund-und-tritt-ein-sprachausgabe-fur-den-rasberry-pi/ dieser Anleitung] verwenden, folgend in aller Kürze:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libpopt-dev&lt;br /&gt;
cd /tmp&lt;br /&gt;
wget http://www.dr-bischoff.de/raspi/pico2wave.deb&lt;br /&gt;
sudo dpkg --install pico2wave.deb&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===zusätzliche Abhängigkeiten von Amazon Polly===&lt;br /&gt;
* Paws::Polly&lt;br /&gt;
* File::HomeDir&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libfile-homedir-perl&lt;br /&gt;
sudo cpan Paws&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Zugangsdaten zum eigenen AWS Konto müssen unter ~/.aws/credentials liegen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[default]&lt;br /&gt;
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
aws_access_key_id = xxxxxxxxxxxxxxx&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Zugangsdaten erhält man in dem man im AWS Konto eine IAM Gruppe mit einem PollyRead Profile erstellt und diese Gruppe eine neuen User zuweist.&lt;br /&gt;
Nach Anlegen des Users erhält man einmalig(!) das Schlüsselpaar.&lt;br /&gt;
&lt;br /&gt;
==allgemeine Konfiguration==&lt;br /&gt;
Relevant für die korrekte SprachEngine sind die folgenden Attribute:&lt;br /&gt;
* TTS_Ressource&lt;br /&gt;
* TTS_Language &#039;&#039;&#039;oder&#039;&#039;&#039; TTS_Language_Custom&lt;br /&gt;
&lt;br /&gt;
Mit &amp;lt;code&amp;gt;aplay -l&amp;lt;/code&amp;gt; kann man eine Liste der möglichen Audio Ausgabedevices erhalten. Von dem gewünschten Ausgabedevice ermittelt man nun die Kartennummer und das Subdevice. &lt;br /&gt;
&lt;br /&gt;
Neben dem Audio Equipment gibt es zwei Voraussetzungen im System: &lt;br /&gt;
* Der User fhem muss Berechtigung haben Sound auszugeben und &lt;br /&gt;
* es muss ein Player installiert sein. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo usermod -aG audio fhem&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Nach dieser Änderung muss sich der Benutzer neu anmelden! Ein Neustart von FHEM oder dem System ist notwendig!&lt;br /&gt;
&lt;br /&gt;
Test2Speech wurde ursprünglich für mplayer entwickelt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mplayer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Damit mplayer ohne sudo aufgerufen wird muss das Attribute &amp;lt;code&amp;gt;TTS_MplayerCall &amp;lt;/code&amp;gt; gesetzt werden. Wird das weggelassen muss [[FHEM_mit_sudo|fhem sudo Berechtigung]] bekommen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;define MyTTS Text2Speech hw=0.0&lt;br /&gt;
attr MyTTS TTS_MplayerCall /usr/bin/mplayer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das Programm mplayer hat auf einigen Systemen sehr große Verzögerungen beim Start, als &#039;&#039;&#039;Alternative&#039;&#039;&#039; ist z.B. play verwendbar&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install sox libsox-fmt-all&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Definition muss in der Bezeichnung das Audiogerätes und im Attribute &amp;lt;code&amp;gt;TTS_MplayerCall &amp;lt;/code&amp;gt; so aussehen (Mindestens Version 19378 2019-05-12 erforderlich).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;define MyTTS Text2Speech hw:0,0&lt;br /&gt;
attr MyTTS TTS_MplayerCall AUDIODEV={device} /usr/bin/play -q -v $(({volume}*{volumeadjust}/10000)).$(({volume}*{volumeadjust}%10000)) {file}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei wiederholten Sprachbausteinen wird durch die Verwendung von MP3Wrap eine deutlich flüssigere Sprachausgabe erreicht. Für die Verwendung von Kombinationen aus fertigen mp3 Files und Texten in der Art &amp;quot;Text:bing.mp3:Text&amp;quot; ist dies zwingend notwendig. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mp3wrap&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als Ergänzung die Definition ein Attribute &amp;lt;code&amp;gt;TTS_UseMP3Wrap&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;attr MyTTS TTS_UseMP3Wrap 1&lt;br /&gt;
attr MyTTS verbose 4&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein erster Test kann wie folgt durchgeführt werden (als Einzeiler, ohne Zeilenumbruch einzugeben):&lt;br /&gt;
:&amp;lt;code&amp;gt; set MyTTS tts Das ist ein Test. Jetzt prüfen wir, ob wir etwas aus dem angeschlossenen Lautsprecher hören. Beim ersten Mal haben wir allerdings noch Sprechpausen. Spätestens beim zweiten Durchlauf ist der Textfluss flüssiger.&amp;lt;/code&amp;gt;&lt;br /&gt;
Hört man etwas aus dem Lautsprecher, so führen wir das Kommando ein zweites Mal aus. Jetzt sollte es sich besser anhören. Bleiben die Lautsprecher stumm, so ist das FHEM-Log zu kontrollieren. Gegebenenfalls ist das [[verbose]]-Level auf 5 zu stellen.&lt;br /&gt;
&lt;br /&gt;
War der Test erfolgreich, kann das verbose-Attribut wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
==Definition Client-Server Architektur==&lt;br /&gt;
Es gibt Installationen, bei denen der FHEM-Server z.B. im Keller steht, die Sprachausgabe soll aber räumlich entfernt stattfinden, z.B. im Wohnzimmer. Hierzu ist am Zielort eine FHEM-Instanz anzulegen, z.B. über einen [[Raspberry Pi]], IP: 192.168.178.10. &lt;br /&gt;
Auf dem FHEM-Server ist Text2Speech als Remote zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech 192.168.178.10:7072 &amp;lt;Passwort&amp;gt;;&lt;br /&gt;
 attr Text2Speech room Text2Speech;&lt;br /&gt;
&lt;br /&gt;
Am Zielort ist Text2Speech auf dem Raspi wie folgt zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
Der Passwort Zugang ist entsprechend der {{Link2CmdRef|Anker=allowed}} zu definieren. &lt;br /&gt;
Bitte die Installation von Mplayer und Mp3Wrap nicht vergessen!&lt;br /&gt;
Danach der Test wie oben angegeben.&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher unter Raspbian Jessie==&lt;br /&gt;
Für die Sprachausgabe über Bluetooth bieten sich verschiedene Lautsprecher an. Wichtig ist jedoch, dass diese entweder gar nicht in einen Standby Modus wechseln oder aber über Bluetooth aus dem Standby aufgeweckt werden können. Folgende Lautsprecher sollen laut Internetrecherche funktionieren:&lt;br /&gt;
&lt;br /&gt;
* Creative D80/D100/D200&lt;br /&gt;
* Sony Soundbar HT-XT3&lt;br /&gt;
* Panasonic SC-ALL6EG-W / SC-NE1&lt;br /&gt;
* Bose Soundtouch 10&lt;br /&gt;
* Bose Soundlink Mini II&lt;br /&gt;
* B&amp;amp;O Beoplay S3&lt;br /&gt;
* JBL Charge 2+/3&lt;br /&gt;
* LG Art 51&lt;br /&gt;
* UE Roll&lt;br /&gt;
* Energy PowerBar Elite&lt;br /&gt;
* Teufel Cinebar 11&lt;br /&gt;
&lt;br /&gt;
Die folgenden Schritte müssen nacheinander durchgeführt werden, um auf einem aktuellen Jessie System Audio Inhalte über Bluetooth zu streamen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
und per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; System aktualisieren und notwendige Pakete installieren&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get install alsa-utils bluez bluez-tools pulseaudio-module-bluetooth python-gobject python-gobject-2&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Benutzer pi zur PulseAudio Gruppe hinzufügen&lt;br /&gt;
 sudo usermod -a -G lp pi&lt;br /&gt;
 sudo usermod -a -G pulse-access,audio root&lt;br /&gt;
 sudo adduser pi pulse-access&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Datei daemon.conf von PulseAudio anpassen&lt;br /&gt;
 sudo nano /etc/pulse/daemon.conf&lt;br /&gt;
Nach folgender Zeile suchen&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
und wie folgt erweitern&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
 resample-method = trivial&lt;br /&gt;
und&lt;br /&gt;
 ; system-instance = no&lt;br /&gt;
 system-instance = yes&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; In PulseAudio müssen jetzt zusätzliche Module geladen werden&lt;br /&gt;
 sudo nano /etc/pulse/system.pa&lt;br /&gt;
am Ende der Datei folgendes hinzufügen&lt;br /&gt;
 .ifexists module-bluetooth-policy.so&lt;br /&gt;
 load-module module-bluetooth-policy&lt;br /&gt;
 .endif&lt;br /&gt;
 .ifexists module-bluetooth-discover.so&lt;br /&gt;
 load-module module-bluetooth-discover&lt;br /&gt;
 .endif&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Jetzt müssen wir dafür sorgen, dass PulseAudio automatisch geladen wird&lt;br /&gt;
 sudo nano /etc/systemd/system/pulseaudio.service&lt;br /&gt;
und folgenden Inhalt einfügen&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PulseAudio Sound System&lt;br /&gt;
 Before=sound.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 BusName=org.pulseaudio.Server&lt;br /&gt;
 ExecStart=/usr/bin/pulseaudio&lt;br /&gt;
 Restart=always&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Danach müssen wir PulseAudio neu starten&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
 sudo systemctl enable pulseaudio.service&lt;br /&gt;
 sudo systemctl start pulseaudio.service&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Prüfen ob PulseAudio läuft&lt;br /&gt;
 systemctl status pulseaudio&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Jetzt den Audio Output einstellen: X entweder mit 0 (auto), 1 (3,5mm Klinke) oder 2 (HDMI) ersetzen.&lt;br /&gt;
 sudo amixer cset numid=3 X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Die Lautstärke kann auf 100% gesetzt werden mit&lt;br /&gt;
 sudo amixer set Master 100%&lt;br /&gt;
 sudo pacmd set-sink-volume 0 65535&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Soundausgabe z.B. über Kopfhörer prüfen&lt;br /&gt;
 paplay /usr/share/sounds/alsa/Front_Left.wav&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12.&#039;&#039;&#039; Jetzt können wir mit der Einrichtung von Bluetooth beginnen&lt;br /&gt;
 sudo nano /etc/bluetooth/audio.conf&lt;br /&gt;
und folgendes einfügen&lt;br /&gt;
 [General]&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Media,Socket&lt;br /&gt;
 HFP=true&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/bluetooth/main.conf&lt;br /&gt;
unter [General] folgendes einfügen&lt;br /&gt;
 Name = RaspStream&lt;br /&gt;
 Class = 0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo hciconfig -a&lt;br /&gt;
eingeben und die MAC Adresse des Bluetooth Dongles aufschreiben&lt;br /&gt;
&lt;br /&gt;
Jetzt müssen die Bluetooth Settings angepasst werden (XX:XX:XX:XX:XX:XX steht für die MAC Adresse des Bluetooth Dongles)&lt;br /&gt;
 sudo nano /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/settings&lt;br /&gt;
einngeben und folgendes einfügen &lt;br /&gt;
 [General]&lt;br /&gt;
 Discoverable=true&lt;br /&gt;
 Alias=RaspStream&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
Jetzt muss der Raspberry wieder neu gestartet werden&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;13.&#039;&#039;&#039; Jetzt können Bluetooth Dongle und Bluetooth Lautsprecher gepaired werden&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
und folgende Befehle nacheinander eingeben&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 discoverable on&lt;br /&gt;
 scan on&lt;br /&gt;
&lt;br /&gt;
der Bluetooth Lautsprecher sollte jetzt irgendwann aufgelistet werden und kann dann gepaired werden mit&lt;br /&gt;
 pair XX:XX:XX:XX:XX:XX&lt;br /&gt;
 trust XX:XX:XX:XX:XX:XX&lt;br /&gt;
Bluetooth console verlassen mit&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Damit sollte die Einrichtung abgeschlossen sein und wir können überprüfen, ob wir etwas über Bluetooth ausgeben können&lt;br /&gt;
 mplayer -ao pulse http://stream01.iloveradio.de/iloveradio1.mp3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14.&#039;&#039;&#039; Das Modul Text2Speech sollte dann mit &#039;default&#039; angelegt werden&lt;br /&gt;
 define TTS Text2Speech default&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher==&lt;br /&gt;
{{Randnotiz|RNTyp=Info|RNText=Dieser Abschnitt repräsentiert nicht den aktuellen Stand. Bezüglich Verbindung, Neustart alsa und dem Testbeispiel am Ende muss er überarbeitet werden}}&lt;br /&gt;
Es ist ebenfalls möglich die Sprachausgabe nicht über einen direkt per Kabel angeschlossenen Lautsprecher auszugeben, sondern per Bluetooth an einen oder mehrere Bluetooth-Lautsprecher. Der Test2Speech-Author verwendet einen CreativeD80.&lt;br /&gt;
Dabei ist auf dem Client mit der lokal eingerichteten Text2Speech-Instanz folgendes vorzunehmen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Bluetooth Bibliotheken installieren&lt;br /&gt;
 sudo apt-get install bluez bluez-alsa mplayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Bluetooth für eine AudioVerbindung konfigurieren&lt;br /&gt;
Dazu in &#039;&#039;/etc/bluetooth/audio.conf&#039;&#039; in der &#039;&#039;General section&#039;&#039; folgendes einfügen:&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Socket,Media&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; den Rechner neu starten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Den Bluetooth-Lautsprecher lokalisieren&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Erst Dadurch wird er im Scanning sichtbar&lt;br /&gt;
 hcitool scan&lt;br /&gt;
Folgendes Ergebnis sollte kommen:&lt;br /&gt;
 Scanning ...&lt;br /&gt;
    11:22:33:44:55:66   device 1&lt;br /&gt;
    12:34:56:78:90:12   device 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; eine RFComm Connection vorbereiten&lt;br /&gt;
Dazu &#039;&#039;/etc/bluetooth/rfcomm.conf&#039;&#039; editieren und folgendes eintragen (Mac-Adresse anpassen!)&lt;br /&gt;
 rfcomm0 {&lt;br /&gt;
   # Automatically bind the device at startup&lt;br /&gt;
   bind no;&lt;br /&gt;
   # Bluetooth address of the device&lt;br /&gt;
   device 11:22:33:44:55:66;&lt;br /&gt;
   # RFCOMM channel for the connection&lt;br /&gt;
   channel 3;&lt;br /&gt;
   # Description of the connection&lt;br /&gt;
   comment &amp;quot;This is Device 1&#039;s serial port.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; rebooten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Pairing-Key vergeben&lt;br /&gt;
Die meisten Bluetoothgeräte verlangen einen Schlüssel während des Pairings. Der Creative-D80 erwartet den Schlüssel 0000&lt;br /&gt;
 bluetooth-agent 0000 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Das eigentliche Pairing&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Danach:&lt;br /&gt;
 sudo rfcomm connect rfcomm0&lt;br /&gt;
Jetzt sollte keine Fehlermeldung mehr kommen....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Alsa konfigurieren&lt;br /&gt;
Der Bluetooth-Lautsprecher muss nun noch als Alsa-Audiodevice bekannt gemacht werden. Dazu muss &#039;&#039;/etc/asound.conf&#039;&#039; erstellt werden. MAC anpassen!&lt;br /&gt;
 pcm.bluetooth {&lt;br /&gt;
   type bluetooth&lt;br /&gt;
   device 11:22:33:44:55:66&lt;br /&gt;
   profile &amp;quot;auto&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Danach Alsa restarten:&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Aktuell bei wheezy /etc/init.d/alsa-utils restart}}&lt;br /&gt;
 /etc/init.d/alsasound restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Testen der Verbindung&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Dieses Beispiel geht allein wegen der ständigen Änderung bei Google nicht. Auch stimmt das Ausgabe Gerät nicht. Man könnte so testen :&amp;lt;code&amp;gt;mplayer -ao alsa:device=bluetooth http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi&amp;lt;/code&amp;gt;}}&lt;br /&gt;
:&amp;lt;code&amp;gt;mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -http-header-fields &amp;quot;User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m&amp;quot; &amp;quot;http://translate.google.com/translate_tts?tl=de&amp;amp;q=Das ist ein Test.&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problembehandlung ==&lt;br /&gt;
&lt;br /&gt;
=== Beim abspielen via Bluetooth &amp;quot;stottert&amp;quot; die Wiedergabe ===&lt;br /&gt;
Das Problem tritt im Zusammenhang mit der verwendeten Abspielsoftware ab. Aus nicht nachvollziehbaren Gründen harmoniert die Kombination Bluetooth und Mplayer nicht immer perfekt. Lösung hierfür ist, anstelle mit Mplayer mit VLC zu arbeiten.&lt;br /&gt;
&lt;br /&gt;
Hierfür legt man ein Skript z.B. mit dem Namen /opt/bin/vlc-wrapper.sh an mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cvlc -A alsa --alsa-audio-device bluealsa --quiet --no-interact --play-and-exit $1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Teil &amp;lt;pre&amp;gt;-A alsa --alsa-audio-device bluealsa&amp;lt;/pre&amp;gt; kann ggf. weggelassen werden, wenn die Ausgabe nicht gezielt auf einem bestimmten Audiogerät erfolgen soll.&lt;br /&gt;
Anschließend muss die Ausgabe von Text2Speech noch auf das Skript umgeleitet werden mit folgendem Befehl in FHEM:&amp;lt;pre&amp;gt;attr myTTS TTS_MplayerCall /opt/bin/vlc-wrapper.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MickyMaus-artiger Sound ===&lt;br /&gt;
Das Problem tritt auf, wenn man per mp3wrap mehrere mp3 Files zusammenzieht die eine unterschiedliche Auflösung haben.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Vorstellung und Diskussion des Moduls im {{Link2Forum|Topic=18481|LinkText=FHEM Forum}}&lt;br /&gt;
* [[Wetter_vorlesen_lassen|Code Snippets: Wetter vorlesen lassen]]&lt;br /&gt;
* [https://aubreykloppers.wordpress.com/2015/06/25/bluetooth-speaker-raspberry-pi-the-ultimate-guide/ weitere Guideline für Bluetooth per Rasperry Pi]&lt;br /&gt;
* [https://www.alefo.de/bluetooth-lautsprecher-und-adapter-f63/liste-kompatibler-bt-lautsprecher-fuer-amazon-dot-t907.html Liste von Bluetooth Lautsprechern]&lt;br /&gt;
* [http://www.forum-raspberrypi.de/Thread-tutorial-bluetooth-audio-streaming-mit-a2dp-raspbian-jessie Bluetooth einrichten mit Raspbian Jessie]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Akustische Ausgabe]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MQTT2_CLIENT&amp;diff=30984</id>
		<title>MQTT2 CLIENT</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MQTT2_CLIENT&amp;diff=30984"/>
		<updated>2019-07-15T05:56:53Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Stellt als Gateway die Verbindung zu einem MQTT-Broker her&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=MQTT2_CLIENT&lt;br /&gt;
|ModForumArea=MQTT&lt;br /&gt;
|ModTechName=10_MQTT2_CLIENT.pm&lt;br /&gt;
|ModOwner=rudolfkoenig ({{Link2FU|8|Forum}} / [[Benutzer Diskussion:Rudolfkoenig|Wiki]])}}&lt;br /&gt;
Das Modul {{Link2CmdRef|Anker=MQTT2_CLIENT|Lang=en|Label=MQTT2_CLIENT}} ermöglicht es, Geräte einzubinden, die über eine MQTT-Schnittstelle verfügen.&lt;br /&gt;
&lt;br /&gt;
Das Modul {{Link2CmdRef|Anker=MQTT2_CLIENT|Lang=en|Label=MQTT2_CLIENT}} fungiert als [[Interface|Verbindung]] zwischen FHEM und einem externen MQTT Server (z.B. &#039;&#039;mosquitto&#039;&#039;) und repräsentiert ein  &#039;&#039;&#039;&#039;&#039;MQTT Gateway&#039;&#039;&#039;&#039;&#039;. Die durch die Module [[MQTT2_DEVICE]] oder {{Link2CmdRef|Anker=MQTT_GENERIC_BRIDGE|Lang=en|Label=MQTT_GENERIC_BRIDGE}} repräsentierten Client-Geräte sind gesondert anzulegen.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss für jedes MQTT-Gateway ein MQTT-Server eingerichtet und erreichbar sein.&lt;br /&gt;
Eine Anleitung zur Einrichtung eines Mosquitto-Brokers finden Sie z.B. im Artikel [[MQTT Einführung]].&lt;br /&gt;
{{Hinweis|FHEM selbst kann ebenfalls mit {{Link2CmdRef|Anker=MQTT2_SERVER|Lang=en|Label=MQTT2_SERVER}} als MQTT-Server eingesetzt werden. In diesem Fall ist innerhalb dieser FHEM-Instanz kein MQTT2_CLIENT-Gerät erforderlich. Befindet sich ein MQTT2_SERVER in einer anderen FHEM-Instanz, kann dieser von dort aus mit MQTT2_CLIENT verbunden werden.}}&lt;br /&gt;
&lt;br /&gt;
== Kurzübersicht ==&lt;br /&gt;
{{Hinweis|Eine Übersicht über die verschiedenen Möglichkeiten, MQTT in FHEM zu nutzen, ist in [[MQTT#FHEM und MQTT]] zu finden.}}&lt;br /&gt;
&lt;br /&gt;
== Define ==&lt;br /&gt;
Das MQTT Gateway wird angelegt mit&lt;br /&gt;
&amp;lt;code&amp;gt;define &#039;&#039;&#039;meinMQTT2Client&#039;&#039; MQTT2_CLIENT &amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Sofern der MQTT-Server mit FEHM über localhost kommunizieren kann, sollte als IP 127.0.0.1 verwendet werden.}}&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
Danach können entsprechende Client-Devices angelegt werden, &lt;br /&gt;
[[MQTT2 DEVICE|MQTT2_DEVICE]] wird verwendet, wenn das physikalische Device (Sensor oder Aktor) über mqtt kommuniziert, wie dieses z.B. bei vielen ESP8266-basierten Geräten der Fall ist. &lt;br /&gt;
{{Randnotiz|RNTyp=g|RNText=Für weitere bridge-Geräte wird bei Verwendung des MQTT2_CLIENT empfohlen, die betreffenden templates jeweils auf eine Kopie des &amp;quot;Sammeldevices&amp;quot; anzuwenden und dabei vorab die CID auf einen anderen Wert festzulegen als die ClientID des MQTT2_CLIENT-Geräts&amp;lt;ref&amp;gt;Um eine Kopie des A_00_MQTT2_CLIENT_general_bridge-Geräts zu erstellen, empfielt sich der [[Import von Code Snippets|RAW-Editor]], beachten Sie hierzu aber die Hinweise zur Änderung der CID!&amp;lt;/ref&amp;gt;! Hat man neue Geräte mit bridgeRegexp-Einträgen erstellt oder die bridgeRegexp-Einträge verändert, kann in der Regel gefahrlos zunächst die readingList am &amp;quot;Sammeldevice&amp;quot; gelöscht werden, so dass dann eingehende Nachrichten auch tatsächlich gegen die bridgeRegexp geprüft werden müssen.}}Möchte man &#039;&#039;autocreate&#039;&#039; verwenden, um automatisiert MQTT2_DEVICE-Geräte anlegen zu lassen, empfiehlt es sich, auf das erste automatisch angelegte Gerät das [[MQTT2-Module - Praxisbeispiele#attrTemplate_2|template]] &#039;&#039;A_00_MQTT2_CLIENT_general_bridge&#039;&#039; anzuwenden. Dadurch werden bestimmte eingehenden MQTT-Messages für eine Anzahl häufig anzutreffender Gerätetypen in separate, automatisch angelegte MQTT2_DEVICE-Geräte umgeleitet&amp;lt;ref&amp;gt;Näheres zur Entstehung der derzeitigen bridgeRegexp des templates &#039;&#039;A_00_MQTT2_CLIENT_general_bridge&#039;&#039; sind diesem {{Link2Forum|Topic=98126|LinkText=Forenthread}} zu entnehmen.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
{{Hinweis|Da hierzu die typischen Topicstrukturen und Benennungen genutzt werden, sollten die MQTT-Einstellungen hinsichtlich des topictrees auf den Geräten auf den jeweiligen defaults belassen werden.}}&lt;br /&gt;
&lt;br /&gt;
Das attrTemplate &#039;&#039;A_00_MQTT2_CLIENT_general_bridge&#039;&#039; löscht die readingList des Geräts, auf das es angewendet wird und erstellt ein neues Device, das dann die beschriebene &#039;&#039;bridgeRegexp&#039;&#039; enthält. Dies muß nur einmalig erfolgen, für alle weiteren - mittels bridgeRegexp erstellten - Geräte gilt dann - mit o.g. Einschränkungen bei der Erstellung von weiteren &#039;&#039;bridge&#039;&#039;-Geräten - das allgemeine Vorgehen für MQTT2_DEVICE, z.B. auch die Festlegung weiterer Geräten mit &#039;&#039;bridgeRegexp&#039;&#039;-Attributen wie in den [[MQTT2-Module - Praxisbeispiele|Praxisbeispielen]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Will man Geräte unterscheiden, die sich nur z.B im ersten Teil der Topic-Struktur unterscheiden, kann man dies durch Anpassung der bridgeRegexp erreichen oder dadurch, dass man die betreffenden Geräte manuell anlegt. Dabei sollte man jedoch tendenziell sehr restriktive bridgeRegexp-Ausdrücke verwenden&amp;lt;ref&amp;gt;Zum Hintergrund siehe diese {{Link2Forum|Topic=98206|LinkText=Forendiskussion}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Anmerkungen ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:IP Components|IP Komponenten]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:MQTT]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=30255</id>
		<title>Text2Speech</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=30255"/>
		<updated>2019-04-24T15:23:01Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Amazon Polly */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Sprachausgabe über FHEM&lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=98_Text2Speech.pm&lt;br /&gt;
|ModOwner=tobiasfaust ({{Link2FU|118|Forum}} / [[Benutzer_Diskussion:Tobias.faust|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[Text2Speech]] ermöglicht es, eine Sprachausgabe über FHEM zu realisieren. Das Modul ist Client-Server-fähig.&lt;br /&gt;
&lt;br /&gt;
==Definition Lokale Architektur==&lt;br /&gt;
Voraussetzung ist ein installierter Mplayer:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Variante a und b sind Alternativen! Es ist nicht sinnvoll beides zu verwenden}}&lt;br /&gt;
Danach den Mplayer für alle aufrufbar machen&lt;br /&gt;
====a) per GruppenRechte====&lt;br /&gt;
:&amp;lt;code&amp;gt; sudo usermod -aG audio fhem &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hat man Mplayer per Gruppenrechte verfügbar gemacht, &#039;&#039;&#039;muss&#039;&#039;&#039; später folgendes Attribut gesetzt sein. Damit wird verhindert, dass Mplayer mit dem defaultmäßig eingestellten &amp;quot;sudo&amp;quot; aufgerufen wird, welches für b) per sudoers gebraucht wird.&lt;br /&gt;
:&amp;lt;code&amp;gt; attr MyTTS TTS_MplayerCall /usr/bin/mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
====b) per SUDOERS====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 EDITOR=nano&lt;br /&gt;
 visudo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dort an letzter Stelle eintragen:&lt;br /&gt;
:&amp;lt;code&amp;gt; ALL     ALL = NOPASSWD: /usr/bin/mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
==== Allgemein====&lt;br /&gt;
Empfohlen wird die Nutzung von MP3Wrap. Dadurch wird bei wiederholten Sprachbausteinen eine deutlich flüssigere Sprachausgabe erreicht. Für die Verwendung von Kombinationen aus fertigen mp3 Files und Texten in der Art &amp;quot;Text:bing.mp3:Text&amp;quot; ist dies zwingend notwendig. &lt;br /&gt;
:&amp;lt;code&amp;gt; sudo apt-get install mp3wrap &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per &#039;&#039;aplay -l&#039;&#039; erhält man eine Liste der möglichen Audio Ausgabedevices. Von dem gewünschten Ausgabedevice ermittelt man nun die Kartennummer und das Subdevice. Mit diesen Daten kann man nun das Modul Text2Speech definieren:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein erster Test kann wie folgt durchgeführt werden (als Einzeiler, ohne Zeilenumbruch einzugeben):&lt;br /&gt;
:&amp;lt;code&amp;gt; set MyTTS tts Das ist ein Test. Jetzt prüfen wir, ob wir etwas aus dem angeschlossenen Lautsprecher hören. Beim ersten Mal haben wir allerdings noch Sprechpausen. Spätestens beim zweiten Durchlauf ist der Textfluss flüssiger.&amp;lt;/code&amp;gt;&lt;br /&gt;
Hört man etwas aus dem Lautsprecher, so führen wir das Kommando ein zweites Mal aus. Jetzt sollte es sich besser anhören. Bleiben die Lautsprecher stumm, so ist das FHEM-Log zu kontrollieren. Gegebenenfalls ist das [[verbose]]-Level auf 5 zu stellen.&lt;br /&gt;
&lt;br /&gt;
War der Test erfolgreich, kann das verbose-Attribut wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
=== Abhängigkeiten der lokalen Sprachengines ===&lt;br /&gt;
Für beide lokale Engines ist &amp;lt;code&amp;gt;lame&amp;lt;/code&amp;gt; für die Umwandlung von .wav in .mp3 notwendig:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install lame&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======Espeak======&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install espeak&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======SVOX-pico======&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libttspico-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
Für ARM/Raspbian sind die &amp;lt;code&amp;gt;libttspico-utils&amp;lt;/code&amp;gt; leider nicht verfügbar, deswegen müsste man diese selbst kompilieren oder das vorkompilierte Paket aus [http://www.robotnet.de/2014/03/20/sprich-freund-und-tritt-ein-sprachausgabe-fur-den-rasberry-pi/ dieser Anleitung] verwenden, folgend in aller Kürze:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 sudo apt-get install libpopt-dev&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://www.dr-bischoff.de/raspi/pico2wave.deb&lt;br /&gt;
 sudo dpkg --install pico2wave.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======Amazon Polly======&lt;br /&gt;
es muss das Paws Perl Package per cpan installiert werden&lt;br /&gt;
 cpan paws&lt;br /&gt;
Die Zugangsdaten zum eigenen AWS Konto müssen unter ~/.aws/credentials liegen.&lt;br /&gt;
 [default]&lt;br /&gt;
 aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxx&lt;br /&gt;
 aws_access_key_id = xxxxxxxxxxxxxxx&lt;br /&gt;
Die Zugangsdaten erhält man in dem man im AWS Konto eine IAM Gruppe mit einem PollyRead Profile erstellt und diese Gruppe eine neuen User zuweist.&lt;br /&gt;
Nach Anlegen des Users erhält man einmalig(!) das Schlüsselpaar.&lt;br /&gt;
&lt;br /&gt;
Relevant sind die folgenden Attribute:&lt;br /&gt;
* TTS_Ressource&lt;br /&gt;
* TTS_Language&lt;br /&gt;
* TTS_Language_Custom&lt;br /&gt;
&lt;br /&gt;
==Definition Client-Server Architektur==&lt;br /&gt;
Es gibt Installationen, bei denen der FHEM-Server z.B. im Keller steht, die Sprachausgabe soll aber räumlich entfernt stattfinden, z.B. im Wohnzimmer. Hierzu ist am Zielort eine FHEM-Instanz anzulegen, z.B. über einen [[Raspberry Pi]], IP: 192.168.178.10. &lt;br /&gt;
Auf dem FHEM-Server ist Text2Speech als Remote zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech 192.168.178.10:7072 &amp;lt;Passwort&amp;gt;;&lt;br /&gt;
 attr Text2Speech room Text2Speech;&lt;br /&gt;
&lt;br /&gt;
Am Zielort ist Text2Speech auf dem Raspi wie folgt zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
Der Passwort Zugang ist entsprechend der {{Link2CmdRef|Anker=allowed}} zu definieren. &lt;br /&gt;
Bitte die Installation von Mplayer und Mp3Wrap nicht vergessen!&lt;br /&gt;
Danach der Test wie oben angegeben.&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher unter Raspbian Jessie==&lt;br /&gt;
Für die Sprachausgabe über Bluetooth bieten sich verschiedene Lautsprecher an. Wichtig ist jedoch, dass diese entweder gar nicht in einen Standby Modus wechseln oder aber über Bluetooth aus dem Standby aufgeweckt werden können. Folgende Lautsprecher sollen laut Internetrecherche funktionieren:&lt;br /&gt;
&lt;br /&gt;
* Creative D80/D100/D200&lt;br /&gt;
* Sony Soundbar HT-XT3&lt;br /&gt;
* Panasonic SC-ALL6EG-W / SC-NE1&lt;br /&gt;
* Bose Soundtouch 10&lt;br /&gt;
* Bose Soundlink Mini II&lt;br /&gt;
* B&amp;amp;O Beoplay S3&lt;br /&gt;
* JBL Charge 2+/3&lt;br /&gt;
* LG Art 51&lt;br /&gt;
* UE Roll&lt;br /&gt;
* Energy PowerBar Elite&lt;br /&gt;
* Teufel Cinebar 11&lt;br /&gt;
&lt;br /&gt;
Die folgenden Schritte müssen nacheinander durchgeführt werden, um auf einem aktuellen Jessie System Audio Inhalte über Bluetooth zu streamen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
und per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; System aktualisieren und notwendige Pakete installieren&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get install alsa-utils bluez bluez-tools pulseaudio-module-bluetooth python-gobject python-gobject-2&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Benutzer pi zur PulseAudio Gruppe hinzufügen&lt;br /&gt;
 sudo usermod -a -G lp pi&lt;br /&gt;
 sudo usermod -a -G pulse-access,audio root&lt;br /&gt;
 sudo adduser pi pulse-access&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Datei daemon.conf von PulseAudio anpassen&lt;br /&gt;
 sudo nano /etc/pulse/daemon.conf&lt;br /&gt;
Nach folgender Zeile suchen&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
und wie folgt erweitern&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
 resample-method = trivial&lt;br /&gt;
und&lt;br /&gt;
 ; system-instance = no&lt;br /&gt;
 system-instance = yes&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; In PulseAudio müssen jetzt zusätzliche Module geladen werden&lt;br /&gt;
 sudo nano /etc/pulse/system.pa&lt;br /&gt;
am Ende der Datei folgendes hinzufügen&lt;br /&gt;
 .ifexists module-bluetooth-policy.so&lt;br /&gt;
 load-module module-bluetooth-policy&lt;br /&gt;
 .endif&lt;br /&gt;
 .ifexists module-bluetooth-discover.so&lt;br /&gt;
 load-module module-bluetooth-discover&lt;br /&gt;
 .endif&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Jetzt müssen wir dafür sorgen, dass PulseAudio automatisch geladen wird&lt;br /&gt;
 sudo nano /etc/systemd/system/pulseaudio.service&lt;br /&gt;
und folgenden Inhalt einfügen&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PulseAudio Sound System&lt;br /&gt;
 Before=sound.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 BusName=org.pulseaudio.Server&lt;br /&gt;
 ExecStart=/usr/bin/pulseaudio&lt;br /&gt;
 Restart=always&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Danach müssen wir PulseAudio neu starten&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
 sudo systemctl enable pulseaudio.service&lt;br /&gt;
 sudo systemctl start pulseaudio.service&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Prüfen ob PulseAudio läuft&lt;br /&gt;
 systemctl status pulseaudio&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Jetzt den Audio Output einstellen: X entweder mit 0 (auto), 1 (3,5mm Klinke) oder 2 (HDMI) ersetzen.&lt;br /&gt;
 sudo amixer cset numid=3 X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Die Lautstärke kann auf 100% gesetzt werden mit&lt;br /&gt;
 sudo amixer set Master 100%&lt;br /&gt;
 sudo pacmd set-sink-volume 0 65535&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Soundausgabe z.B. über Kopfhörer prüfen&lt;br /&gt;
 paplay /usr/share/sounds/alsa/Front_Left.wav&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12.&#039;&#039;&#039; Jetzt können wir mit der Einrichtung von Bluetooth beginnen&lt;br /&gt;
 sudo nano /etc/bluetooth/audio.conf&lt;br /&gt;
und folgendes einfügen&lt;br /&gt;
 [General]&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Media,Socket&lt;br /&gt;
 HFP=true&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/bluetooth/main.conf&lt;br /&gt;
unter [General] folgendes einfügen&lt;br /&gt;
 Name = RaspStream&lt;br /&gt;
 Class = 0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo hciconfig -a&lt;br /&gt;
eingeben und die MAC Adresse des Bluetooth Dongles aufschreiben&lt;br /&gt;
&lt;br /&gt;
Jetzt müssen die Bluetooth Settings angepasst werden (XX:XX:XX:XX:XX:XX steht für die MAC Adresse des Bluetooth Dongles)&lt;br /&gt;
 sudo nano /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/settings&lt;br /&gt;
einngeben und folgendes einfügen &lt;br /&gt;
 [General]&lt;br /&gt;
 Discoverable=true&lt;br /&gt;
 Alias=RaspStream&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
Jetzt muss der Raspberry wieder neu gestartet werden&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;13.&#039;&#039;&#039; Jetzt können Bluetooth Dongle und Bluetooth Lautsprecher gepaired werden&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
und folgende Befehle nacheinander eingeben&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 discoverable on&lt;br /&gt;
 scan on&lt;br /&gt;
&lt;br /&gt;
der Bluetooth Lautsprecher sollte jetzt irgendwann aufgelistet werden und kann dann gepaired werden mit&lt;br /&gt;
 pair XX:XX:XX:XX:XX:XX&lt;br /&gt;
 trust XX:XX:XX:XX:XX:XX&lt;br /&gt;
Bluetooth console verlassen mit&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Damit sollte die Einrichtung abgeschlossen sein und wir können überprüfen, ob wir etwas über Bluetooth ausgeben können&lt;br /&gt;
 mplayer -ao pulse http://stream01.iloveradio.de/iloveradio1.mp3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14.&#039;&#039;&#039; Das Modul Text2Speech sollte dann mit &#039;default&#039; angelegt werden&lt;br /&gt;
 define TTS Text2Speech default&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher==&lt;br /&gt;
{{Randnotiz|RNTyp=Info|RNText=Dieser Abschnitt repräsentiert nicht den aktuellen Stand. Bezüglich Verbindung, Neustart alsa und dem Testbeispiel am Ende muss er überarbeitet werden}}&lt;br /&gt;
Es ist ebenfalls möglich die Sprachausgabe nicht über einen direkt per Kabel angeschlossenen Lautsprecher auszugeben, sondern per Bluetooth an einen oder mehrere Bluetooth-Lautsprecher. Der Test2Speech-Author verwendet einen CreativeD80.&lt;br /&gt;
Dabei ist auf dem Client mit der lokal eingerichteten Text2Speech-Instanz folgendes vorzunehmen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Bluetooth Bibliotheken installieren&lt;br /&gt;
 sudo apt-get install bluez bluez-alsa mplayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Bluetooth für eine AudioVerbindung konfigurieren&lt;br /&gt;
Dazu in &#039;&#039;/etc/bluetooth/audio.conf&#039;&#039; in der &#039;&#039;General section&#039;&#039; folgendes einfügen:&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Socket,Media&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; den Rechner neu starten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Den Bluetooth-Lautsprecher lokalisieren&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Erst Dadurch wird er im Scanning sichtbar&lt;br /&gt;
 hcitool scan&lt;br /&gt;
Folgendes Ergebnis sollte kommen:&lt;br /&gt;
 Scanning ...&lt;br /&gt;
    11:22:33:44:55:66   device 1&lt;br /&gt;
    12:34:56:78:90:12   device 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; eine RFComm Connection vorbereiten&lt;br /&gt;
Dazu &#039;&#039;/etc/bluetooth/rfcomm.conf&#039;&#039; editieren und folgendes eintragen (Mac-Adresse anpassen!)&lt;br /&gt;
 rfcomm0 {&lt;br /&gt;
   # Automatically bind the device at startup&lt;br /&gt;
   bind no;&lt;br /&gt;
   # Bluetooth address of the device&lt;br /&gt;
   device 11:22:33:44:55:66;&lt;br /&gt;
   # RFCOMM channel for the connection&lt;br /&gt;
   channel 3;&lt;br /&gt;
   # Description of the connection&lt;br /&gt;
   comment &amp;quot;This is Device 1&#039;s serial port.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; rebooten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Pairing-Key vergeben&lt;br /&gt;
Die meisten Bluetoothgeräte verlangen einen Schlüssel während des Pairings. Der Creative-D80 erwartet den Schlüssel 0000&lt;br /&gt;
 bluetooth-agent 0000 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Das eigentliche Pairing&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Danach:&lt;br /&gt;
 sudo rfcomm connect rfcomm0&lt;br /&gt;
Jetzt sollte keine Fehlermeldung mehr kommen....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Alsa konfigurieren&lt;br /&gt;
Der Bluetooth-Lautsprecher muss nun noch als Alsa-Audiodevice bekannt gemacht werden. Dazu muss &#039;&#039;/etc/asound.conf&#039;&#039; erstellt werden. MAC anpassen!&lt;br /&gt;
 pcm.bluetooth {&lt;br /&gt;
   type bluetooth&lt;br /&gt;
   device 11:22:33:44:55:66&lt;br /&gt;
   profile &amp;quot;auto&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Danach Alsa restarten:&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Aktuell bei wheezy /etc/init.d/alsa-utils restart}}&lt;br /&gt;
 /etc/init.d/alsasound restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Testen der Verbindung&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Dieses Beispiel geht allein wegen der ständigen Änderung bei Google nicht. Auch stimmt das Ausgabe Gerät nicht. Man könnte so testen :&amp;lt;code&amp;gt;mplayer -ao alsa:device=bluetooth http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi&amp;lt;/code&amp;gt;}}&lt;br /&gt;
:&amp;lt;code&amp;gt;mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -http-header-fields &amp;quot;User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m&amp;quot; &amp;quot;http://translate.google.com/translate_tts?tl=de&amp;amp;q=Das ist ein Test.&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problembehandlung ==&lt;br /&gt;
&lt;br /&gt;
=== Beim abspielen via Bluetooth &amp;quot;stottert&amp;quot; die Wiedergabe ===&lt;br /&gt;
Das Problem tritt im Zusammenhang mit der verwendeten Abspielsoftware ab. Aus nicht nachvollziehbaren Gründen harmoniert die Kombination Bluetooth und Mplayer nicht immer perfekt. Lösung hierfür ist, anstelle mit Mplayer mit VLC zu arbeiten.&lt;br /&gt;
&lt;br /&gt;
Hierfür legt man ein Skript z.B. mit dem Namen /opt/bin/vlc-wrapper.sh an mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cvlc -A alsa --alsa-audio-device bluealsa --quiet --no-interact --play-and-exit $1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Teil &amp;lt;pre&amp;gt;-A alsa --alsa-audio-device bluealsa&amp;lt;/pre&amp;gt; kann ggf. weggelassen werden, wenn die Ausgabe nicht gezielt auf einem bestimmten Audiogerät erfolgen soll.&lt;br /&gt;
Anschließend muss die Ausgabe von Text2Speech noch auf das Skript umgeleitet werden mit folgendem Befehl in FHEM:&amp;lt;pre&amp;gt;attr myTTS TTS_MplayerCall /opt/bin/vlc-wrapper.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MickyMaus-artiger Sound ===&lt;br /&gt;
Das Problem tritt auf, wenn man per mp3wrap mehrere mp3 Files zusammenzieht die eine unterschiedliche Auflösung haben.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Vorstellung und Diskussion des Moduls im {{Link2Forum|Topic=18481|LinkText=FHEM Forum}}&lt;br /&gt;
* [[Wetter_vorlesen_lassen|Code Snippets: Wetter vorlesen lassen]]&lt;br /&gt;
* [https://aubreykloppers.wordpress.com/2015/06/25/bluetooth-speaker-raspberry-pi-the-ultimate-guide/ weitere Guideline für Bluetooth per Rasperry Pi]&lt;br /&gt;
* [https://www.alefo.de/bluetooth-lautsprecher-und-adapter-f63/liste-kompatibler-bt-lautsprecher-fuer-amazon-dot-t907.html Liste von Bluetooth Lautsprechern]&lt;br /&gt;
* [http://www.forum-raspberrypi.de/Thread-tutorial-bluetooth-audio-streaming-mit-a2dp-raspbian-jessie Bluetooth einrichten mit Raspbian Jessie]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Akustische Ausgabe]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=30235</id>
		<title>Text2Speech</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=30235"/>
		<updated>2019-04-23T11:51:20Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Amazon Polly */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Sprachausgabe über FHEM&lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=98_Text2Speech.pm&lt;br /&gt;
|ModOwner=tobiasfaust ({{Link2FU|118|Forum}} / [[Benutzer_Diskussion:Tobias.faust|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[Text2Speech]] ermöglicht es, eine Sprachausgabe über FHEM zu realisieren. Das Modul ist Client-Server-fähig.&lt;br /&gt;
&lt;br /&gt;
==Definition Lokale Architektur==&lt;br /&gt;
Voraussetzung ist ein installierter Mplayer:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Variante a und b sind Alternativen! Es ist nicht sinnvoll beides zu verwenden}}&lt;br /&gt;
Danach den Mplayer für alle aufrufbar machen&lt;br /&gt;
====a) per GruppenRechte====&lt;br /&gt;
:&amp;lt;code&amp;gt; sudo usermod -aG audio fhem &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hat man Mplayer per Gruppenrechte verfügbar gemacht, &#039;&#039;&#039;muss&#039;&#039;&#039; später folgendes Attribut gesetzt sein. Damit wird verhindert, dass Mplayer mit dem defaultmäßig eingestellten &amp;quot;sudo&amp;quot; aufgerufen wird, welches für b) per sudoers gebraucht wird.&lt;br /&gt;
:&amp;lt;code&amp;gt; attr MyTTS TTS_MplayerCall /usr/bin/mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
====b) per SUDOERS====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 EDITOR=nano&lt;br /&gt;
 visudo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dort an letzter Stelle eintragen:&lt;br /&gt;
:&amp;lt;code&amp;gt; ALL     ALL = NOPASSWD: /usr/bin/mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
==== Allgemein====&lt;br /&gt;
Empfohlen wird die Nutzung von MP3Wrap. Dadurch wird bei wiederholten Sprachbausteinen eine deutlich flüssigere Sprachausgabe erreicht. Für die Verwendung von Kombinationen aus fertigen mp3 Files und Texten in der Art &amp;quot;Text:bing.mp3:Text&amp;quot; ist dies zwingend notwendig. &lt;br /&gt;
:&amp;lt;code&amp;gt; sudo apt-get install mp3wrap &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per &#039;&#039;aplay -l&#039;&#039; erhält man eine Liste der möglichen Audio Ausgabedevices. Von dem gewünschten Ausgabedevice ermittelt man nun die Kartennummer und das Subdevice. Mit diesen Daten kann man nun das Modul Text2Speech definieren:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein erster Test kann wie folgt durchgeführt werden (als Einzeiler, ohne Zeilenumbruch einzugeben):&lt;br /&gt;
:&amp;lt;code&amp;gt; set MyTTS tts Das ist ein Test. Jetzt prüfen wir, ob wir etwas aus dem angeschlossenen Lautsprecher hören. Beim ersten Mal haben wir allerdings noch Sprechpausen. Spätestens beim zweiten Durchlauf ist der Textfluss flüssiger.&amp;lt;/code&amp;gt;&lt;br /&gt;
Hört man etwas aus dem Lautsprecher, so führen wir das Kommando ein zweites Mal aus. Jetzt sollte es sich besser anhören. Bleiben die Lautsprecher stumm, so ist das FHEM-Log zu kontrollieren. Gegebenenfalls ist das [[verbose]]-Level auf 5 zu stellen.&lt;br /&gt;
&lt;br /&gt;
War der Test erfolgreich, kann das verbose-Attribut wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
=== Abhängigkeiten der lokalen Sprachengines ===&lt;br /&gt;
Für beide lokale Engines ist &amp;lt;code&amp;gt;lame&amp;lt;/code&amp;gt; für die Umwandlung von .wav in .mp3 notwendig:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install lame&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======Espeak======&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install espeak&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======SVOX-pico======&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libttspico-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
Für ARM/Raspbian sind die &amp;lt;code&amp;gt;libttspico-utils&amp;lt;/code&amp;gt; leider nicht verfügbar, deswegen müsste man diese selbst kompilieren oder das vorkompilierte Paket aus [http://www.robotnet.de/2014/03/20/sprich-freund-und-tritt-ein-sprachausgabe-fur-den-rasberry-pi/ dieser Anleitung] verwenden, folgend in aller Kürze:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 sudo apt-get install libpopt-dev&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://www.dr-bischoff.de/raspi/pico2wave.deb&lt;br /&gt;
 sudo dpkg --install pico2wave.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======Amazon Polly======&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:800px;&amp;quot;&amp;gt;&lt;br /&gt;
 curl &amp;quot;https://s3.amazonaws.com/aws-cli/awscli-bundle.zip&amp;quot; -o &amp;quot;awscli-bundle.zip&amp;quot;&lt;br /&gt;
 unzip awscli-bundle.zip&lt;br /&gt;
 sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws&lt;br /&gt;
 sudo -u fhem /usr/local/bin/aws configure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
awscli Konfigurationsparameter:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Schlüssel !! Wert&lt;br /&gt;
|-&lt;br /&gt;
| AWS Access Key ID || &amp;lt;ID&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AWS Secret Access Key|| &amp;lt;SecKey&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Default region name|| eu-central-1&lt;br /&gt;
|-&lt;br /&gt;
| Default output format|| json&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testen kann man das Ganze jetzt, indem man sich auf der Konsole als Benutzer &amp;quot;fhem&amp;quot; anmeldet und dann ins fhem Verzeichnis wechselt:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:800px;&amp;quot;&amp;gt;&lt;br /&gt;
 cd /opt/fhem/&lt;br /&gt;
 aws polly synthesize-speech --output-format mp3 --voice-id Marlene --text &#039;Mein erster Test&#039; cache/abc.mp3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt sollte im &amp;quot;cache/&amp;quot; Unterverzeichnis die Datei &amp;quot;abc.mp3&amp;quot; liegen.&lt;br /&gt;
&lt;br /&gt;
==Definition Client-Server Architektur==&lt;br /&gt;
Es gibt Installationen, bei denen der FHEM-Server z.B. im Keller steht, die Sprachausgabe soll aber räumlich entfernt stattfinden, z.B. im Wohnzimmer. Hierzu ist am Zielort eine FHEM-Instanz anzulegen, z.B. über einen [[Raspberry Pi]], IP: 192.168.178.10. &lt;br /&gt;
Auf dem FHEM-Server ist Text2Speech als Remote zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech 192.168.178.10:7072 &amp;lt;Passwort&amp;gt;;&lt;br /&gt;
 attr Text2Speech room Text2Speech;&lt;br /&gt;
&lt;br /&gt;
Am Zielort ist Text2Speech auf dem Raspi wie folgt zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
Der Passwort Zugang ist entsprechend der {{Link2CmdRef|Anker=allowed}} zu definieren. &lt;br /&gt;
Bitte die Installation von Mplayer und Mp3Wrap nicht vergessen!&lt;br /&gt;
Danach der Test wie oben angegeben.&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher unter Raspbian Jessie==&lt;br /&gt;
Für die Sprachausgabe über Bluetooth bieten sich verschiedene Lautsprecher an. Wichtig ist jedoch, dass diese entweder gar nicht in einen Standby Modus wechseln oder aber über Bluetooth aus dem Standby aufgeweckt werden können. Folgende Lautsprecher sollen laut Internetrecherche funktionieren:&lt;br /&gt;
&lt;br /&gt;
* Creative D80/D100/D200&lt;br /&gt;
* Sony Soundbar HT-XT3&lt;br /&gt;
* Panasonic SC-ALL6EG-W / SC-NE1&lt;br /&gt;
* Bose Soundtouch 10&lt;br /&gt;
* Bose Soundlink Mini II&lt;br /&gt;
* B&amp;amp;O Beoplay S3&lt;br /&gt;
* JBL Charge 2+/3&lt;br /&gt;
* LG Art 51&lt;br /&gt;
* UE Roll&lt;br /&gt;
* Energy PowerBar Elite&lt;br /&gt;
* Teufel Cinebar 11&lt;br /&gt;
&lt;br /&gt;
Die folgenden Schritte müssen nacheinander durchgeführt werden, um auf einem aktuellen Jessie System Audio Inhalte über Bluetooth zu streamen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
und per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; System aktualisieren und notwendige Pakete installieren&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get install alsa-utils bluez bluez-tools pulseaudio-module-bluetooth python-gobject python-gobject-2&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Benutzer pi zur PulseAudio Gruppe hinzufügen&lt;br /&gt;
 sudo usermod -a -G lp pi&lt;br /&gt;
 sudo usermod -a -G pulse-access,audio root&lt;br /&gt;
 sudo adduser pi pulse-access&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Datei daemon.conf von PulseAudio anpassen&lt;br /&gt;
 sudo nano /etc/pulse/daemon.conf&lt;br /&gt;
Nach folgender Zeile suchen&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
und wie folgt erweitern&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
 resample-method = trivial&lt;br /&gt;
und&lt;br /&gt;
 ; system-instance = no&lt;br /&gt;
 system-instance = yes&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; In PulseAudio müssen jetzt zusätzliche Module geladen werden&lt;br /&gt;
 sudo nano /etc/pulse/system.pa&lt;br /&gt;
am Ende der Datei folgendes hinzufügen&lt;br /&gt;
 .ifexists module-bluetooth-policy.so&lt;br /&gt;
 load-module module-bluetooth-policy&lt;br /&gt;
 .endif&lt;br /&gt;
 .ifexists module-bluetooth-discover.so&lt;br /&gt;
 load-module module-bluetooth-discover&lt;br /&gt;
 .endif&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Jetzt müssen wir dafür sorgen, dass PulseAudio automatisch geladen wird&lt;br /&gt;
 sudo nano /etc/systemd/system/pulseaudio.service&lt;br /&gt;
und folgenden Inhalt einfügen&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PulseAudio Sound System&lt;br /&gt;
 Before=sound.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 BusName=org.pulseaudio.Server&lt;br /&gt;
 ExecStart=/usr/bin/pulseaudio&lt;br /&gt;
 Restart=always&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Danach müssen wir PulseAudio neu starten&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
 sudo systemctl enable pulseaudio.service&lt;br /&gt;
 sudo systemctl start pulseaudio.service&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Prüfen ob PulseAudio läuft&lt;br /&gt;
 systemctl status pulseaudio&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Jetzt den Audio Output einstellen: X entweder mit 0 (auto), 1 (3,5mm Klinke) oder 2 (HDMI) ersetzen.&lt;br /&gt;
 sudo amixer cset numid=3 X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Die Lautstärke kann auf 100% gesetzt werden mit&lt;br /&gt;
 sudo amixer set Master 100%&lt;br /&gt;
 sudo pacmd set-sink-volume 0 65535&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Soundausgabe z.B. über Kopfhörer prüfen&lt;br /&gt;
 paplay /usr/share/sounds/alsa/Front_Left.wav&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12.&#039;&#039;&#039; Jetzt können wir mit der Einrichtung von Bluetooth beginnen&lt;br /&gt;
 sudo nano /etc/bluetooth/audio.conf&lt;br /&gt;
und folgendes einfügen&lt;br /&gt;
 [General]&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Media,Socket&lt;br /&gt;
 HFP=true&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/bluetooth/main.conf&lt;br /&gt;
unter [General] folgendes einfügen&lt;br /&gt;
 Name = RaspStream&lt;br /&gt;
 Class = 0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo hciconfig -a&lt;br /&gt;
eingeben und die MAC Adresse des Bluetooth Dongles aufschreiben&lt;br /&gt;
&lt;br /&gt;
Jetzt müssen die Bluetooth Settings angepasst werden (XX:XX:XX:XX:XX:XX steht für die MAC Adresse des Bluetooth Dongles)&lt;br /&gt;
 sudo nano /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/settings&lt;br /&gt;
einngeben und folgendes einfügen &lt;br /&gt;
 [General]&lt;br /&gt;
 Discoverable=true&lt;br /&gt;
 Alias=RaspStream&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
Jetzt muss der Raspberry wieder neu gestartet werden&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;13.&#039;&#039;&#039; Jetzt können Bluetooth Dongle und Bluetooth Lautsprecher gepaired werden&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
und folgende Befehle nacheinander eingeben&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 discoverable on&lt;br /&gt;
 scan on&lt;br /&gt;
&lt;br /&gt;
der Bluetooth Lautsprecher sollte jetzt irgendwann aufgelistet werden und kann dann gepaired werden mit&lt;br /&gt;
 pair XX:XX:XX:XX:XX:XX&lt;br /&gt;
 trust XX:XX:XX:XX:XX:XX&lt;br /&gt;
Bluetooth console verlassen mit&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Damit sollte die Einrichtung abgeschlossen sein und wir können überprüfen, ob wir etwas über Bluetooth ausgeben können&lt;br /&gt;
 mplayer -ao pulse http://stream01.iloveradio.de/iloveradio1.mp3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14.&#039;&#039;&#039; Das Modul Text2Speech sollte dann mit &#039;default&#039; angelegt werden&lt;br /&gt;
 define TTS Text2Speech default&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher==&lt;br /&gt;
{{Randnotiz|RNTyp=Info|RNText=Dieser Abschnitt repräsentiert nicht den aktuellen Stand. Bezüglich Verbindung, Neustart alsa und dem Testbeispiel am Ende muss er überarbeitet werden}}&lt;br /&gt;
Es ist ebenfalls möglich die Sprachausgabe nicht über einen direkt per Kabel angeschlossenen Lautsprecher auszugeben, sondern per Bluetooth an einen oder mehrere Bluetooth-Lautsprecher. Der Test2Speech-Author verwendet einen CreativeD80.&lt;br /&gt;
Dabei ist auf dem Client mit der lokal eingerichteten Text2Speech-Instanz folgendes vorzunehmen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Bluetooth Bibliotheken installieren&lt;br /&gt;
 sudo apt-get install bluez bluez-alsa mplayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Bluetooth für eine AudioVerbindung konfigurieren&lt;br /&gt;
Dazu in &#039;&#039;/etc/bluetooth/audio.conf&#039;&#039; in der &#039;&#039;General section&#039;&#039; folgendes einfügen:&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Socket,Media&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; den Rechner neu starten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Den Bluetooth-Lautsprecher lokalisieren&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Erst Dadurch wird er im Scanning sichtbar&lt;br /&gt;
 hcitool scan&lt;br /&gt;
Folgendes Ergebnis sollte kommen:&lt;br /&gt;
 Scanning ...&lt;br /&gt;
    11:22:33:44:55:66   device 1&lt;br /&gt;
    12:34:56:78:90:12   device 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; eine RFComm Connection vorbereiten&lt;br /&gt;
Dazu &#039;&#039;/etc/bluetooth/rfcomm.conf&#039;&#039; editieren und folgendes eintragen (Mac-Adresse anpassen!)&lt;br /&gt;
 rfcomm0 {&lt;br /&gt;
   # Automatically bind the device at startup&lt;br /&gt;
   bind no;&lt;br /&gt;
   # Bluetooth address of the device&lt;br /&gt;
   device 11:22:33:44:55:66;&lt;br /&gt;
   # RFCOMM channel for the connection&lt;br /&gt;
   channel 3;&lt;br /&gt;
   # Description of the connection&lt;br /&gt;
   comment &amp;quot;This is Device 1&#039;s serial port.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; rebooten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Pairing-Key vergeben&lt;br /&gt;
Die meisten Bluetoothgeräte verlangen einen Schlüssel während des Pairings. Der Creative-D80 erwartet den Schlüssel 0000&lt;br /&gt;
 bluetooth-agent 0000 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Das eigentliche Pairing&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Danach:&lt;br /&gt;
 sudo rfcomm connect rfcomm0&lt;br /&gt;
Jetzt sollte keine Fehlermeldung mehr kommen....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Alsa konfigurieren&lt;br /&gt;
Der Bluetooth-Lautsprecher muss nun noch als Alsa-Audiodevice bekannt gemacht werden. Dazu muss &#039;&#039;/etc/asound.conf&#039;&#039; erstellt werden. MAC anpassen!&lt;br /&gt;
 pcm.bluetooth {&lt;br /&gt;
   type bluetooth&lt;br /&gt;
   device 11:22:33:44:55:66&lt;br /&gt;
   profile &amp;quot;auto&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Danach Alsa restarten:&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Aktuell bei wheezy /etc/init.d/alsa-utils restart}}&lt;br /&gt;
 /etc/init.d/alsasound restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Testen der Verbindung&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Dieses Beispiel geht allein wegen der ständigen Änderung bei Google nicht. Auch stimmt das Ausgabe Gerät nicht. Man könnte so testen :&amp;lt;code&amp;gt;mplayer -ao alsa:device=bluetooth http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi&amp;lt;/code&amp;gt;}}&lt;br /&gt;
:&amp;lt;code&amp;gt;mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -http-header-fields &amp;quot;User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m&amp;quot; &amp;quot;http://translate.google.com/translate_tts?tl=de&amp;amp;q=Das ist ein Test.&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problembehandlung ==&lt;br /&gt;
&lt;br /&gt;
=== Beim abspielen via Bluetooth &amp;quot;stottert&amp;quot; die Wiedergabe ===&lt;br /&gt;
Das Problem tritt im Zusammenhang mit der verwendeten Abspielsoftware ab. Aus nicht nachvollziehbaren Gründen harmoniert die Kombination Bluetooth und Mplayer nicht immer perfekt. Lösung hierfür ist, anstelle mit Mplayer mit VLC zu arbeiten.&lt;br /&gt;
&lt;br /&gt;
Hierfür legt man ein Skript z.B. mit dem Namen /opt/bin/vlc-wrapper.sh an mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cvlc -A alsa --alsa-audio-device bluealsa --quiet --no-interact --play-and-exit $1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Teil &amp;lt;pre&amp;gt;-A alsa --alsa-audio-device bluealsa&amp;lt;/pre&amp;gt; kann ggf. weggelassen werden, wenn die Ausgabe nicht gezielt auf einem bestimmten Audiogerät erfolgen soll.&lt;br /&gt;
Anschließend muss die Ausgabe von Text2Speech noch auf das Skript umgeleitet werden mit folgendem Befehl in FHEM:&amp;lt;pre&amp;gt;attr myTTS TTS_MplayerCall /opt/bin/vlc-wrapper.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MickyMaus-artiger Sound ===&lt;br /&gt;
Das Problem tritt auf, wenn man per mp3wrap mehrere mp3 Files zusammenzieht die eine unterschiedliche Auflösung haben.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Vorstellung und Diskussion des Moduls im {{Link2Forum|Topic=18481|LinkText=FHEM Forum}}&lt;br /&gt;
* [[Wetter_vorlesen_lassen|Code Snippets: Wetter vorlesen lassen]]&lt;br /&gt;
* [https://aubreykloppers.wordpress.com/2015/06/25/bluetooth-speaker-raspberry-pi-the-ultimate-guide/ weitere Guideline für Bluetooth per Rasperry Pi]&lt;br /&gt;
* [https://www.alefo.de/bluetooth-lautsprecher-und-adapter-f63/liste-kompatibler-bt-lautsprecher-fuer-amazon-dot-t907.html Liste von Bluetooth Lautsprechern]&lt;br /&gt;
* [http://www.forum-raspberrypi.de/Thread-tutorial-bluetooth-audio-streaming-mit-a2dp-raspbian-jessie Bluetooth einrichten mit Raspbian Jessie]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Akustische Ausgabe]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=30234</id>
		<title>Text2Speech</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=30234"/>
		<updated>2019-04-23T11:25:42Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: fh&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Sprachausgabe über FHEM&lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=98_Text2Speech.pm&lt;br /&gt;
|ModOwner=tobiasfaust ({{Link2FU|118|Forum}} / [[Benutzer_Diskussion:Tobias.faust|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[Text2Speech]] ermöglicht es, eine Sprachausgabe über FHEM zu realisieren. Das Modul ist Client-Server-fähig.&lt;br /&gt;
&lt;br /&gt;
==Definition Lokale Architektur==&lt;br /&gt;
Voraussetzung ist ein installierter Mplayer:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Variante a und b sind Alternativen! Es ist nicht sinnvoll beides zu verwenden}}&lt;br /&gt;
Danach den Mplayer für alle aufrufbar machen&lt;br /&gt;
====a) per GruppenRechte====&lt;br /&gt;
:&amp;lt;code&amp;gt; sudo usermod -aG audio fhem &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hat man Mplayer per Gruppenrechte verfügbar gemacht, &#039;&#039;&#039;muss&#039;&#039;&#039; später folgendes Attribut gesetzt sein. Damit wird verhindert, dass Mplayer mit dem defaultmäßig eingestellten &amp;quot;sudo&amp;quot; aufgerufen wird, welches für b) per sudoers gebraucht wird.&lt;br /&gt;
:&amp;lt;code&amp;gt; attr MyTTS TTS_MplayerCall /usr/bin/mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
====b) per SUDOERS====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 EDITOR=nano&lt;br /&gt;
 visudo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dort an letzter Stelle eintragen:&lt;br /&gt;
:&amp;lt;code&amp;gt; ALL     ALL = NOPASSWD: /usr/bin/mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
==== Allgemein====&lt;br /&gt;
Empfohlen wird die Nutzung von MP3Wrap. Dadurch wird bei wiederholten Sprachbausteinen eine deutlich flüssigere Sprachausgabe erreicht. Für die Verwendung von Kombinationen aus fertigen mp3 Files und Texten in der Art &amp;quot;Text:bing.mp3:Text&amp;quot; ist dies zwingend notwendig. &lt;br /&gt;
:&amp;lt;code&amp;gt; sudo apt-get install mp3wrap &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per &#039;&#039;aplay -l&#039;&#039; erhält man eine Liste der möglichen Audio Ausgabedevices. Von dem gewünschten Ausgabedevice ermittelt man nun die Kartennummer und das Subdevice. Mit diesen Daten kann man nun das Modul Text2Speech definieren:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein erster Test kann wie folgt durchgeführt werden (als Einzeiler, ohne Zeilenumbruch einzugeben):&lt;br /&gt;
:&amp;lt;code&amp;gt; set MyTTS tts Das ist ein Test. Jetzt prüfen wir, ob wir etwas aus dem angeschlossenen Lautsprecher hören. Beim ersten Mal haben wir allerdings noch Sprechpausen. Spätestens beim zweiten Durchlauf ist der Textfluss flüssiger.&amp;lt;/code&amp;gt;&lt;br /&gt;
Hört man etwas aus dem Lautsprecher, so führen wir das Kommando ein zweites Mal aus. Jetzt sollte es sich besser anhören. Bleiben die Lautsprecher stumm, so ist das FHEM-Log zu kontrollieren. Gegebenenfalls ist das [[verbose]]-Level auf 5 zu stellen.&lt;br /&gt;
&lt;br /&gt;
War der Test erfolgreich, kann das verbose-Attribut wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
=== Abhängigkeiten der lokalen Sprachengines ===&lt;br /&gt;
Für beide lokale Engines ist &amp;lt;code&amp;gt;lame&amp;lt;/code&amp;gt; für die Umwandlung von .wav in .mp3 notwendig:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install lame&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======Espeak======&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install espeak&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======SVOX-pico======&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libttspico-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
Für ARM/Raspbian sind die &amp;lt;code&amp;gt;libttspico-utils&amp;lt;/code&amp;gt; leider nicht verfügbar, deswegen müsste man diese selbst kompilieren oder das vorkompilierte Paket aus [http://www.robotnet.de/2014/03/20/sprich-freund-und-tritt-ein-sprachausgabe-fur-den-rasberry-pi/ dieser Anleitung] verwenden, folgend in aller Kürze:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 sudo apt-get install libpopt-dev&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://www.dr-bischoff.de/raspi/pico2wave.deb&lt;br /&gt;
 sudo dpkg --install pico2wave.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======Amazon Polly======&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 curl &amp;quot;https://s3.amazonaws.com/aws-cli/awscli-bundle.zip&amp;quot; -o &amp;quot;awscli-bundle.zip&amp;quot;&lt;br /&gt;
 unzip awscli-bundle.zip&lt;br /&gt;
 sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws&lt;br /&gt;
 sudo -u fhem /usr/local/bin/aws configure&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
awscli Konfigurationsparameter:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Schlüssel !! Wert&lt;br /&gt;
|-&lt;br /&gt;
| AWS Access Key ID || &amp;lt;ID&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| AWS Secret Access Key|| &amp;lt;SecKey&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Default region name|| eu-central-1&lt;br /&gt;
|-&lt;br /&gt;
| Default output format|| json&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Testen kann man das Ganze jetzt, indem man sich auf der Konsole als Benutzer &amp;quot;fhem&amp;quot; anmeldet und dann ins fhem Verzeichnis wechselt:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 cd /opt/fhem/&lt;br /&gt;
 aws polly synthesize-speech --output-format mp3 --voice-id Marlene --text &#039;Mein erster Test&#039; cache/abc.mp3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Jetzt sollte im &amp;quot;cache/&amp;quot; Unterverzeichnis die Datei &amp;quot;abc.mp3&amp;quot; liegen.&lt;br /&gt;
&lt;br /&gt;
==Definition Client-Server Architektur==&lt;br /&gt;
Es gibt Installationen, bei denen der FHEM-Server z.B. im Keller steht, die Sprachausgabe soll aber räumlich entfernt stattfinden, z.B. im Wohnzimmer. Hierzu ist am Zielort eine FHEM-Instanz anzulegen, z.B. über einen [[Raspberry Pi]], IP: 192.168.178.10. &lt;br /&gt;
Auf dem FHEM-Server ist Text2Speech als Remote zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech 192.168.178.10:7072 &amp;lt;Passwort&amp;gt;;&lt;br /&gt;
 attr Text2Speech room Text2Speech;&lt;br /&gt;
&lt;br /&gt;
Am Zielort ist Text2Speech auf dem Raspi wie folgt zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
Der Passwort Zugang ist entsprechend der {{Link2CmdRef|Anker=allowed}} zu definieren. &lt;br /&gt;
Bitte die Installation von Mplayer und Mp3Wrap nicht vergessen!&lt;br /&gt;
Danach der Test wie oben angegeben.&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher unter Raspbian Jessie==&lt;br /&gt;
Für die Sprachausgabe über Bluetooth bieten sich verschiedene Lautsprecher an. Wichtig ist jedoch, dass diese entweder gar nicht in einen Standby Modus wechseln oder aber über Bluetooth aus dem Standby aufgeweckt werden können. Folgende Lautsprecher sollen laut Internetrecherche funktionieren:&lt;br /&gt;
&lt;br /&gt;
* Creative D80/D100/D200&lt;br /&gt;
* Sony Soundbar HT-XT3&lt;br /&gt;
* Panasonic SC-ALL6EG-W / SC-NE1&lt;br /&gt;
* Bose Soundtouch 10&lt;br /&gt;
* Bose Soundlink Mini II&lt;br /&gt;
* B&amp;amp;O Beoplay S3&lt;br /&gt;
* JBL Charge 2+/3&lt;br /&gt;
* LG Art 51&lt;br /&gt;
* UE Roll&lt;br /&gt;
* Energy PowerBar Elite&lt;br /&gt;
* Teufel Cinebar 11&lt;br /&gt;
&lt;br /&gt;
Die folgenden Schritte müssen nacheinander durchgeführt werden, um auf einem aktuellen Jessie System Audio Inhalte über Bluetooth zu streamen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
und per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; System aktualisieren und notwendige Pakete installieren&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get install alsa-utils bluez bluez-tools pulseaudio-module-bluetooth python-gobject python-gobject-2&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Benutzer pi zur PulseAudio Gruppe hinzufügen&lt;br /&gt;
 sudo usermod -a -G lp pi&lt;br /&gt;
 sudo usermod -a -G pulse-access,audio root&lt;br /&gt;
 sudo adduser pi pulse-access&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Datei daemon.conf von PulseAudio anpassen&lt;br /&gt;
 sudo nano /etc/pulse/daemon.conf&lt;br /&gt;
Nach folgender Zeile suchen&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
und wie folgt erweitern&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
 resample-method = trivial&lt;br /&gt;
und&lt;br /&gt;
 ; system-instance = no&lt;br /&gt;
 system-instance = yes&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; In PulseAudio müssen jetzt zusätzliche Module geladen werden&lt;br /&gt;
 sudo nano /etc/pulse/system.pa&lt;br /&gt;
am Ende der Datei folgendes hinzufügen&lt;br /&gt;
 .ifexists module-bluetooth-policy.so&lt;br /&gt;
 load-module module-bluetooth-policy&lt;br /&gt;
 .endif&lt;br /&gt;
 .ifexists module-bluetooth-discover.so&lt;br /&gt;
 load-module module-bluetooth-discover&lt;br /&gt;
 .endif&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Jetzt müssen wir dafür sorgen, dass PulseAudio automatisch geladen wird&lt;br /&gt;
 sudo nano /etc/systemd/system/pulseaudio.service&lt;br /&gt;
und folgenden Inhalt einfügen&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PulseAudio Sound System&lt;br /&gt;
 Before=sound.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 BusName=org.pulseaudio.Server&lt;br /&gt;
 ExecStart=/usr/bin/pulseaudio&lt;br /&gt;
 Restart=always&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Danach müssen wir PulseAudio neu starten&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
 sudo systemctl enable pulseaudio.service&lt;br /&gt;
 sudo systemctl start pulseaudio.service&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Prüfen ob PulseAudio läuft&lt;br /&gt;
 systemctl status pulseaudio&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Jetzt den Audio Output einstellen: X entweder mit 0 (auto), 1 (3,5mm Klinke) oder 2 (HDMI) ersetzen.&lt;br /&gt;
 sudo amixer cset numid=3 X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Die Lautstärke kann auf 100% gesetzt werden mit&lt;br /&gt;
 sudo amixer set Master 100%&lt;br /&gt;
 sudo pacmd set-sink-volume 0 65535&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Soundausgabe z.B. über Kopfhörer prüfen&lt;br /&gt;
 paplay /usr/share/sounds/alsa/Front_Left.wav&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12.&#039;&#039;&#039; Jetzt können wir mit der Einrichtung von Bluetooth beginnen&lt;br /&gt;
 sudo nano /etc/bluetooth/audio.conf&lt;br /&gt;
und folgendes einfügen&lt;br /&gt;
 [General]&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Media,Socket&lt;br /&gt;
 HFP=true&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/bluetooth/main.conf&lt;br /&gt;
unter [General] folgendes einfügen&lt;br /&gt;
 Name = RaspStream&lt;br /&gt;
 Class = 0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo hciconfig -a&lt;br /&gt;
eingeben und die MAC Adresse des Bluetooth Dongles aufschreiben&lt;br /&gt;
&lt;br /&gt;
Jetzt müssen die Bluetooth Settings angepasst werden (XX:XX:XX:XX:XX:XX steht für die MAC Adresse des Bluetooth Dongles)&lt;br /&gt;
 sudo nano /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/settings&lt;br /&gt;
einngeben und folgendes einfügen &lt;br /&gt;
 [General]&lt;br /&gt;
 Discoverable=true&lt;br /&gt;
 Alias=RaspStream&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
Jetzt muss der Raspberry wieder neu gestartet werden&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;13.&#039;&#039;&#039; Jetzt können Bluetooth Dongle und Bluetooth Lautsprecher gepaired werden&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
und folgende Befehle nacheinander eingeben&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 discoverable on&lt;br /&gt;
 scan on&lt;br /&gt;
&lt;br /&gt;
der Bluetooth Lautsprecher sollte jetzt irgendwann aufgelistet werden und kann dann gepaired werden mit&lt;br /&gt;
 pair XX:XX:XX:XX:XX:XX&lt;br /&gt;
 trust XX:XX:XX:XX:XX:XX&lt;br /&gt;
Bluetooth console verlassen mit&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Damit sollte die Einrichtung abgeschlossen sein und wir können überprüfen, ob wir etwas über Bluetooth ausgeben können&lt;br /&gt;
 mplayer -ao pulse http://stream01.iloveradio.de/iloveradio1.mp3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14.&#039;&#039;&#039; Das Modul Text2Speech sollte dann mit &#039;default&#039; angelegt werden&lt;br /&gt;
 define TTS Text2Speech default&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher==&lt;br /&gt;
{{Randnotiz|RNTyp=Info|RNText=Dieser Abschnitt repräsentiert nicht den aktuellen Stand. Bezüglich Verbindung, Neustart alsa und dem Testbeispiel am Ende muss er überarbeitet werden}}&lt;br /&gt;
Es ist ebenfalls möglich die Sprachausgabe nicht über einen direkt per Kabel angeschlossenen Lautsprecher auszugeben, sondern per Bluetooth an einen oder mehrere Bluetooth-Lautsprecher. Der Test2Speech-Author verwendet einen CreativeD80.&lt;br /&gt;
Dabei ist auf dem Client mit der lokal eingerichteten Text2Speech-Instanz folgendes vorzunehmen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Bluetooth Bibliotheken installieren&lt;br /&gt;
 sudo apt-get install bluez bluez-alsa mplayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Bluetooth für eine AudioVerbindung konfigurieren&lt;br /&gt;
Dazu in &#039;&#039;/etc/bluetooth/audio.conf&#039;&#039; in der &#039;&#039;General section&#039;&#039; folgendes einfügen:&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Socket,Media&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; den Rechner neu starten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Den Bluetooth-Lautsprecher lokalisieren&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Erst Dadurch wird er im Scanning sichtbar&lt;br /&gt;
 hcitool scan&lt;br /&gt;
Folgendes Ergebnis sollte kommen:&lt;br /&gt;
 Scanning ...&lt;br /&gt;
    11:22:33:44:55:66   device 1&lt;br /&gt;
    12:34:56:78:90:12   device 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; eine RFComm Connection vorbereiten&lt;br /&gt;
Dazu &#039;&#039;/etc/bluetooth/rfcomm.conf&#039;&#039; editieren und folgendes eintragen (Mac-Adresse anpassen!)&lt;br /&gt;
 rfcomm0 {&lt;br /&gt;
   # Automatically bind the device at startup&lt;br /&gt;
   bind no;&lt;br /&gt;
   # Bluetooth address of the device&lt;br /&gt;
   device 11:22:33:44:55:66;&lt;br /&gt;
   # RFCOMM channel for the connection&lt;br /&gt;
   channel 3;&lt;br /&gt;
   # Description of the connection&lt;br /&gt;
   comment &amp;quot;This is Device 1&#039;s serial port.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; rebooten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Pairing-Key vergeben&lt;br /&gt;
Die meisten Bluetoothgeräte verlangen einen Schlüssel während des Pairings. Der Creative-D80 erwartet den Schlüssel 0000&lt;br /&gt;
 bluetooth-agent 0000 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Das eigentliche Pairing&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Danach:&lt;br /&gt;
 sudo rfcomm connect rfcomm0&lt;br /&gt;
Jetzt sollte keine Fehlermeldung mehr kommen....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Alsa konfigurieren&lt;br /&gt;
Der Bluetooth-Lautsprecher muss nun noch als Alsa-Audiodevice bekannt gemacht werden. Dazu muss &#039;&#039;/etc/asound.conf&#039;&#039; erstellt werden. MAC anpassen!&lt;br /&gt;
 pcm.bluetooth {&lt;br /&gt;
   type bluetooth&lt;br /&gt;
   device 11:22:33:44:55:66&lt;br /&gt;
   profile &amp;quot;auto&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Danach Alsa restarten:&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Aktuell bei wheezy /etc/init.d/alsa-utils restart}}&lt;br /&gt;
 /etc/init.d/alsasound restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Testen der Verbindung&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Dieses Beispiel geht allein wegen der ständigen Änderung bei Google nicht. Auch stimmt das Ausgabe Gerät nicht. Man könnte so testen :&amp;lt;code&amp;gt;mplayer -ao alsa:device=bluetooth http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi&amp;lt;/code&amp;gt;}}&lt;br /&gt;
:&amp;lt;code&amp;gt;mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -http-header-fields &amp;quot;User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m&amp;quot; &amp;quot;http://translate.google.com/translate_tts?tl=de&amp;amp;q=Das ist ein Test.&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problembehandlung ==&lt;br /&gt;
&lt;br /&gt;
=== Beim abspielen via Bluetooth &amp;quot;stottert&amp;quot; die Wiedergabe ===&lt;br /&gt;
Das Problem tritt im Zusammenhang mit der verwendeten Abspielsoftware ab. Aus nicht nachvollziehbaren Gründen harmoniert die Kombination Bluetooth und Mplayer nicht immer perfekt. Lösung hierfür ist, anstelle mit Mplayer mit VLC zu arbeiten.&lt;br /&gt;
&lt;br /&gt;
Hierfür legt man ein Skript z.B. mit dem Namen /opt/bin/vlc-wrapper.sh an mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cvlc -A alsa --alsa-audio-device bluealsa --quiet --no-interact --play-and-exit $1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Teil &amp;lt;pre&amp;gt;-A alsa --alsa-audio-device bluealsa&amp;lt;/pre&amp;gt; kann ggf. weggelassen werden, wenn die Ausgabe nicht gezielt auf einem bestimmten Audiogerät erfolgen soll.&lt;br /&gt;
Anschließend muss die Ausgabe von Text2Speech noch auf das Skript umgeleitet werden mit folgendem Befehl in FHEM:&amp;lt;pre&amp;gt;attr myTTS TTS_MplayerCall /opt/bin/vlc-wrapper.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MickyMaus-artiger Sound ===&lt;br /&gt;
Das Problem tritt auf, wenn man per mp3wrap mehrere mp3 Files zusammenzieht die eine unterschiedliche Auflösung haben.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Vorstellung und Diskussion des Moduls im {{Link2Forum|Topic=18481|LinkText=FHEM Forum}}&lt;br /&gt;
* [[Wetter_vorlesen_lassen|Code Snippets: Wetter vorlesen lassen]]&lt;br /&gt;
* [https://aubreykloppers.wordpress.com/2015/06/25/bluetooth-speaker-raspberry-pi-the-ultimate-guide/ weitere Guideline für Bluetooth per Rasperry Pi]&lt;br /&gt;
* [https://www.alefo.de/bluetooth-lautsprecher-und-adapter-f63/liste-kompatibler-bt-lautsprecher-fuer-amazon-dot-t907.html Liste von Bluetooth Lautsprechern]&lt;br /&gt;
* [http://www.forum-raspberrypi.de/Thread-tutorial-bluetooth-audio-streaming-mit-a2dp-raspbian-jessie Bluetooth einrichten mit Raspbian Jessie]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Akustische Ausgabe]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=29909</id>
		<title>Text2Speech</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Text2Speech&amp;diff=29909"/>
		<updated>2019-03-15T10:18:28Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Problembehandlung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Sprachausgabe über FHEM&lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=98_Text2Speech.pm&lt;br /&gt;
|ModOwner=tobiasfaust ({{Link2FU|118|Forum}} / [[Benutzer_Diskussion:Tobias.faust|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[Text2Speech]] ermöglicht es, eine Sprachausgabe über FHEM zu realisieren. Das Modul ist Client-Server-fähig.&lt;br /&gt;
&lt;br /&gt;
==Definition Lokale Architektur==&lt;br /&gt;
Voraussetzung ist ein installierter Mplayer:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Variante a und b sind Alternativen! Es ist nicht sinnvoll beides zu verwenden}}&lt;br /&gt;
Danach den Mplayer für alle aufrufbar machen&lt;br /&gt;
====a) per GruppenRechte====&lt;br /&gt;
:&amp;lt;code&amp;gt; sudo usermod -aG audio fhem &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hat man Mplayer per Gruppenrechte verfügbar gemacht, &#039;&#039;&#039;muss&#039;&#039;&#039; später folgendes Attribut gesetzt sein. Damit wird verhindert, dass Mplayer mit dem defaultmäßig eingestellten &amp;quot;sudo&amp;quot; aufgerufen wird, welches für b) per sudoers gebraucht wird.&lt;br /&gt;
:&amp;lt;code&amp;gt; attr MyTTS TTS_MplayerCall /usr/bin/mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
====b) per SUDOERS====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 EDITOR=nano&lt;br /&gt;
 visudo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dort an letzter Stelle eintragen:&lt;br /&gt;
:&amp;lt;code&amp;gt; ALL     ALL = NOPASSWD: /usr/bin/mplayer&amp;lt;/code&amp;gt;&lt;br /&gt;
==== Allgemein====&lt;br /&gt;
Empfohlen wird die Nutzung von MP3Wrap. Dadurch wird bei wiederholten Sprachbausteinen eine deutlich flüssigere Sprachausgabe erreicht. Für die Verwendung von Kombinationen aus fertigen mp3 Files und Texten in der Art &amp;quot;Text:bing.mp3:Text&amp;quot; ist dies zwingend notwendig. &lt;br /&gt;
:&amp;lt;code&amp;gt; sudo apt-get install mp3wrap &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
per &#039;&#039;aplay -l&#039;&#039; erhält man eine Liste der möglichen Audio Ausgabedevices. Von dem gewünschten Ausgabedevice ermittelt man nun die Kartennummer und das Subdevice. Mit diesen Daten kann man nun das Modul Text2Speech definieren:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein erster Test kann wie folgt durchgeführt werden (als Einzeiler, ohne Zeilenumbruch einzugeben):&lt;br /&gt;
:&amp;lt;code&amp;gt; set MyTTS tts Das ist ein Test. Jetzt prüfen wir, ob wir etwas aus dem angeschlossenen Lautsprecher hören. Beim ersten Mal haben wir allerdings noch Sprechpausen. Spätestens beim zweiten Durchlauf ist der Textfluss flüssiger.&amp;lt;/code&amp;gt;&lt;br /&gt;
Hört man etwas aus dem Lautsprecher, so führen wir das Kommando ein zweites Mal aus. Jetzt sollte es sich besser anhören. Bleiben die Lautsprecher stumm, so ist das FHEM-Log zu kontrollieren. Gegebenenfalls ist das [[verbose]]-Level auf 5 zu stellen.&lt;br /&gt;
&lt;br /&gt;
War der Test erfolgreich, kann das verbose-Attribut wieder gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
=== Abhängigkeiten der lokalen Sprachengines ===&lt;br /&gt;
Für beide lokale Engines ist &amp;lt;code&amp;gt;lame&amp;lt;/code&amp;gt; für die Umwandlung von .wav in .mp3 notwendig:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install lame&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======Espeak======&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install espeak&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
======SVOX-pico======&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libttspico-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
Für ARM/Raspbian sind die &amp;lt;code&amp;gt;libttspico-utils&amp;lt;/code&amp;gt; leider nicht verfügbar, deswegen müsste man diese selbst kompilieren oder das vorkompilierte Paket aus [http://www.robotnet.de/2014/03/20/sprich-freund-und-tritt-ein-sprachausgabe-fur-den-rasberry-pi/ dieser Anleitung] verwenden, folgend in aller Kürze:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:400px;&amp;quot;&amp;gt;&lt;br /&gt;
 sudo apt-get install libpopt-dev&lt;br /&gt;
 cd /tmp&lt;br /&gt;
 wget http://www.dr-bischoff.de/raspi/pico2wave.deb&lt;br /&gt;
 sudo dpkg --install pico2wave.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Definition Client-Server Architektur==&lt;br /&gt;
Es gibt Installationen, bei denen der FHEM-Server z.B. im Keller steht, die Sprachausgabe soll aber räumlich entfernt stattfinden, z.B. im Wohnzimmer. Hierzu ist am Zielort eine FHEM-Instanz anzulegen, z.B. über einen [[Raspberry Pi]], IP: 192.168.178.10. &lt;br /&gt;
Auf dem FHEM-Server ist Text2Speech als Remote zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech 192.168.178.10:7072 &amp;lt;Passwort&amp;gt;;&lt;br /&gt;
 attr Text2Speech room Text2Speech;&lt;br /&gt;
&lt;br /&gt;
Am Zielort ist Text2Speech auf dem Raspi wie folgt zu definieren:&lt;br /&gt;
 define MyTTS Text2Speech hw=0.0;&lt;br /&gt;
 attr MyTTS room Text2Speech;&lt;br /&gt;
 attr MyTTS TTS_UseMP3Wrap 1;&lt;br /&gt;
 attr MyTTS verbose 4;&lt;br /&gt;
Der Passwort Zugang ist entsprechend der {{Link2CmdRef|Anker=allowed}} zu definieren. &lt;br /&gt;
Bitte die Installation von Mplayer und Mp3Wrap nicht vergessen!&lt;br /&gt;
Danach der Test wie oben angegeben.&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher unter Raspbian Jessie==&lt;br /&gt;
Für die Sprachausgabe über Bluetooth bieten sich verschiedene Lautsprecher an. Wichtig ist jedoch, dass diese entweder gar nicht in einen Standby Modus wechseln oder aber über Bluetooth aus dem Standby aufgeweckt werden können. Folgende Lautsprecher sollen laut Internetrecherche funktionieren:&lt;br /&gt;
&lt;br /&gt;
* Creative D80/D100/D200&lt;br /&gt;
* Sony Soundbar HT-XT3&lt;br /&gt;
* Panasonic SC-ALL6EG-W / SC-NE1&lt;br /&gt;
* Bose Soundtouch 10&lt;br /&gt;
* Bose Soundlink Mini II&lt;br /&gt;
* B&amp;amp;O Beoplay S3&lt;br /&gt;
* JBL Charge 2+/3&lt;br /&gt;
* LG Art 51&lt;br /&gt;
* UE Roll&lt;br /&gt;
* Energy PowerBar Elite&lt;br /&gt;
* Teufel Cinebar 11&lt;br /&gt;
&lt;br /&gt;
Die folgenden Schritte müssen nacheinander durchgeführt werden, um auf einem aktuellen Jessie System Audio Inhalte über Bluetooth zu streamen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
und per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; System aktualisieren und notwendige Pakete installieren&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
 sudo apt-get install alsa-utils bluez bluez-tools pulseaudio-module-bluetooth python-gobject python-gobject-2&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Benutzer pi zur PulseAudio Gruppe hinzufügen&lt;br /&gt;
 sudo usermod -a -G lp pi&lt;br /&gt;
 sudo usermod -a -G pulse-access,audio root&lt;br /&gt;
 sudo adduser pi pulse-access&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Datei daemon.conf von PulseAudio anpassen&lt;br /&gt;
 sudo nano /etc/pulse/daemon.conf&lt;br /&gt;
Nach folgender Zeile suchen&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
und wie folgt erweitern&lt;br /&gt;
 ; resample-method = speex-float-1&lt;br /&gt;
 resample-method = trivial&lt;br /&gt;
und&lt;br /&gt;
 ; system-instance = no&lt;br /&gt;
 system-instance = yes&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; In PulseAudio müssen jetzt zusätzliche Module geladen werden&lt;br /&gt;
 sudo nano /etc/pulse/system.pa&lt;br /&gt;
am Ende der Datei folgendes hinzufügen&lt;br /&gt;
 .ifexists module-bluetooth-policy.so&lt;br /&gt;
 load-module module-bluetooth-policy&lt;br /&gt;
 .endif&lt;br /&gt;
 .ifexists module-bluetooth-discover.so&lt;br /&gt;
 load-module module-bluetooth-discover&lt;br /&gt;
 .endif&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; Jetzt müssen wir dafür sorgen, dass PulseAudio automatisch geladen wird&lt;br /&gt;
 sudo nano /etc/systemd/system/pulseaudio.service&lt;br /&gt;
und folgenden Inhalt einfügen&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=PulseAudio Sound System&lt;br /&gt;
 Before=sound.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 BusName=org.pulseaudio.Server&lt;br /&gt;
 ExecStart=/usr/bin/pulseaudio&lt;br /&gt;
 Restart=always&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; Danach müssen wir PulseAudio neu starten&lt;br /&gt;
 sudo systemctl daemon-reload&lt;br /&gt;
 sudo systemctl enable pulseaudio.service&lt;br /&gt;
 sudo systemctl start pulseaudio.service&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Prüfen ob PulseAudio läuft&lt;br /&gt;
 systemctl status pulseaudio&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Jetzt den Audio Output einstellen: X entweder mit 0 (auto), 1 (3,5mm Klinke) oder 2 (HDMI) ersetzen.&lt;br /&gt;
 sudo amixer cset numid=3 X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Die Lautstärke kann auf 100% gesetzt werden mit&lt;br /&gt;
 sudo amixer set Master 100%&lt;br /&gt;
 sudo pacmd set-sink-volume 0 65535&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Soundausgabe z.B. über Kopfhörer prüfen&lt;br /&gt;
 paplay /usr/share/sounds/alsa/Front_Left.wav&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12.&#039;&#039;&#039; Jetzt können wir mit der Einrichtung von Bluetooth beginnen&lt;br /&gt;
 sudo nano /etc/bluetooth/audio.conf&lt;br /&gt;
und folgendes einfügen&lt;br /&gt;
 [General]&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Media,Socket&lt;br /&gt;
 HFP=true&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/bluetooth/main.conf&lt;br /&gt;
unter [General] folgendes einfügen&lt;br /&gt;
 Name = RaspStream&lt;br /&gt;
 Class = 0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
 sudo hciconfig -a&lt;br /&gt;
eingeben und die MAC Adresse des Bluetooth Dongles aufschreiben&lt;br /&gt;
&lt;br /&gt;
Jetzt müssen die Bluetooth Settings angepasst werden (XX:XX:XX:XX:XX:XX steht für die MAC Adresse des Bluetooth Dongles)&lt;br /&gt;
 sudo nano /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/settings&lt;br /&gt;
einngeben und folgendes einfügen &lt;br /&gt;
 [General]&lt;br /&gt;
 Discoverable=true&lt;br /&gt;
 Alias=RaspStream&lt;br /&gt;
 Class=0x20041C&lt;br /&gt;
speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
Jetzt muss der Raspberry wieder neu gestartet werden&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;13.&#039;&#039;&#039; Jetzt können Bluetooth Dongle und Bluetooth Lautsprecher gepaired werden&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
und folgende Befehle nacheinander eingeben&lt;br /&gt;
 agent on&lt;br /&gt;
 default-agent&lt;br /&gt;
 discoverable on&lt;br /&gt;
 scan on&lt;br /&gt;
&lt;br /&gt;
der Bluetooth Lautsprecher sollte jetzt irgendwann aufgelistet werden und kann dann gepaired werden mit&lt;br /&gt;
 pair XX:XX:XX:XX:XX:XX&lt;br /&gt;
 trust XX:XX:XX:XX:XX:XX&lt;br /&gt;
Bluetooth console verlassen mit&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Damit sollte die Einrichtung abgeschlossen sein und wir können überprüfen, ob wir etwas über Bluetooth ausgeben können&lt;br /&gt;
 mplayer -ao pulse http://stream01.iloveradio.de/iloveradio1.mp3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14.&#039;&#039;&#039; Das Modul Text2Speech sollte dann mit &#039;default&#039; angelegt werden&lt;br /&gt;
 define TTS Text2Speech default&lt;br /&gt;
&lt;br /&gt;
==Sprachausgabe per Bluetooth-Lautsprecher==&lt;br /&gt;
{{Randnotiz|RNTyp=Info|RNText=Dieser Abschnitt repräsentiert nicht den aktuellen Stand. Bezüglich Verbindung, Neustart alsa und dem Testbeispiel am Ende muss er überarbeitet werden}}&lt;br /&gt;
Es ist ebenfalls möglich die Sprachausgabe nicht über einen direkt per Kabel angeschlossenen Lautsprecher auszugeben, sondern per Bluetooth an einen oder mehrere Bluetooth-Lautsprecher. Der Test2Speech-Author verwendet einen CreativeD80.&lt;br /&gt;
Dabei ist auf dem Client mit der lokal eingerichteten Text2Speech-Instanz folgendes vorzunehmen:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; USB-Bluetooth-Stick verbinden&lt;br /&gt;
per &#039;&#039;lsusb&#039;&#039; prüfen, ob der Stick erkannt wurde.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Bluetooth Bibliotheken installieren&lt;br /&gt;
 sudo apt-get install bluez bluez-alsa mplayer&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Bluetooth für eine AudioVerbindung konfigurieren&lt;br /&gt;
Dazu in &#039;&#039;/etc/bluetooth/audio.conf&#039;&#039; in der &#039;&#039;General section&#039;&#039; folgendes einfügen:&lt;br /&gt;
 Enable=Source,Sink,Headset,Gateway,Control,Socket,Media&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; den Rechner neu starten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Den Bluetooth-Lautsprecher lokalisieren&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Erst Dadurch wird er im Scanning sichtbar&lt;br /&gt;
 hcitool scan&lt;br /&gt;
Folgendes Ergebnis sollte kommen:&lt;br /&gt;
 Scanning ...&lt;br /&gt;
    11:22:33:44:55:66   device 1&lt;br /&gt;
    12:34:56:78:90:12   device 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6.&#039;&#039;&#039; eine RFComm Connection vorbereiten&lt;br /&gt;
Dazu &#039;&#039;/etc/bluetooth/rfcomm.conf&#039;&#039; editieren und folgendes eintragen (Mac-Adresse anpassen!)&lt;br /&gt;
 rfcomm0 {&lt;br /&gt;
   # Automatically bind the device at startup&lt;br /&gt;
   bind no;&lt;br /&gt;
   # Bluetooth address of the device&lt;br /&gt;
   device 11:22:33:44:55:66;&lt;br /&gt;
   # RFCOMM channel for the connection&lt;br /&gt;
   channel 3;&lt;br /&gt;
   # Description of the connection&lt;br /&gt;
   comment &amp;quot;This is Device 1&#039;s serial port.&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7.&#039;&#039;&#039; rebooten&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8.&#039;&#039;&#039; Pairing-Key vergeben&lt;br /&gt;
Die meisten Bluetoothgeräte verlangen einen Schlüssel während des Pairings. Der Creative-D80 erwartet den Schlüssel 0000&lt;br /&gt;
 bluetooth-agent 0000 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9.&#039;&#039;&#039; Das eigentliche Pairing&lt;br /&gt;
Den Lautsprecher in den Pairing-Modus versetzen. Danach:&lt;br /&gt;
 sudo rfcomm connect rfcomm0&lt;br /&gt;
Jetzt sollte keine Fehlermeldung mehr kommen....&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10.&#039;&#039;&#039; Alsa konfigurieren&lt;br /&gt;
Der Bluetooth-Lautsprecher muss nun noch als Alsa-Audiodevice bekannt gemacht werden. Dazu muss &#039;&#039;/etc/asound.conf&#039;&#039; erstellt werden. MAC anpassen!&lt;br /&gt;
 pcm.bluetooth {&lt;br /&gt;
   type bluetooth&lt;br /&gt;
   device 11:22:33:44:55:66&lt;br /&gt;
   profile &amp;quot;auto&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Danach Alsa restarten:&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Aktuell bei wheezy /etc/init.d/alsa-utils restart}}&lt;br /&gt;
 /etc/init.d/alsasound restart&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11.&#039;&#039;&#039; Testen der Verbindung&lt;br /&gt;
{{Randnotiz|RNTyp=Fehl|RNText=Dieses Beispiel geht allein wegen der ständigen Änderung bei Google nicht. Auch stimmt das Ausgabe Gerät nicht. Man könnte so testen :&amp;lt;code&amp;gt;mplayer -ao alsa:device=bluetooth http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi&amp;lt;/code&amp;gt;}}&lt;br /&gt;
:&amp;lt;code&amp;gt;mplayer -ao alsa:device=hw=0.0 -nolirc -noconsolecontrols -http-header-fields &amp;quot;User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22m&amp;quot; &amp;quot;http://translate.google.com/translate_tts?tl=de&amp;amp;q=Das ist ein Test.&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problembehandlung ==&lt;br /&gt;
&lt;br /&gt;
=== Beim abspielen via Bluetooth &amp;quot;stottert&amp;quot; die Wiedergabe ===&lt;br /&gt;
Das Problem tritt im Zusammenhang mit der verwendeten Abspielsoftware ab. Aus nicht nachvollziehbaren Gründen harmoniert die Kombination Bluetooth und Mplayer nicht immer perfekt. Lösung hierfür ist, anstelle mit Mplayer mit VLC zu arbeiten.&lt;br /&gt;
&lt;br /&gt;
Hierfür legt man ein Skript z.B. mit dem Namen /opt/bin/vlc-wrapper.sh an mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
cvlc -A alsa --alsa-audio-device bluealsa --quiet --no-interact --play-and-exit $1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Teil &amp;lt;pre&amp;gt;-A alsa --alsa-audio-device bluealsa&amp;lt;/pre&amp;gt; kann ggf. weggelassen werden, wenn die Ausgabe nicht gezielt auf einem bestimmten Audiogerät erfolgen soll.&lt;br /&gt;
Anschließend muss die Ausgabe von Text2Speech noch auf das Skript umgeleitet werden mit folgendem Befehl in FHEM:&amp;lt;pre&amp;gt;attr myTTS TTS_MplayerCall /opt/bin/vlc-wrapper.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MickyMaus-artiger Sound ===&lt;br /&gt;
Das Problem tritt auf, wenn man per mp3wrap mehrere mp3 Files zusammenzieht die eine unterschiedliche Auflösung haben.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Vorstellung und Diskussion des Moduls im {{Link2Forum|Topic=18481|LinkText=FHEM Forum}}&lt;br /&gt;
* [[Wetter_vorlesen_lassen|Code Snippets: Wetter vorlesen lassen]]&lt;br /&gt;
* [https://aubreykloppers.wordpress.com/2015/06/25/bluetooth-speaker-raspberry-pi-the-ultimate-guide/ weitere Guideline für Bluetooth per Rasperry Pi]&lt;br /&gt;
* [https://www.alefo.de/bluetooth-lautsprecher-und-adapter-f63/liste-kompatibler-bt-lautsprecher-fuer-amazon-dot-t907.html Liste von Bluetooth Lautsprechern]&lt;br /&gt;
* [http://www.forum-raspberrypi.de/Thread-tutorial-bluetooth-audio-streaming-mit-a2dp-raspbian-jessie Bluetooth einrichten mit Raspbian Jessie]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Akustische Ausgabe]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=27746</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=27746"/>
		<updated>2018-08-24T12:28:40Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=ESP32S_NodeMCU_top.jpg&lt;br /&gt;
|Bildbeschreibung=ESP32S Development Board&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=1A-1.5A&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=Expressif&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Der [https://de.wikipedia.org/wiki/ESP32 ESP32] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif und die Weriterentwicklung des ESP8266. Der 32-Bit-Prozessorkern vom Typ 240 MHz dual core Tensilica LX6 microcontroller mit 600 DMIPS arbeitet mit einem Systemtakt von 80–160 MHz, hat 520 KB SRAM als Befehlspeicher, in dem 16 Megabyte Flash-Speicher eingeblendet werden können, 34x GPIO´s, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) sowie integriertes WLAN IEEE 802.11 b/g/n und Bluetooth LE. Der ESP32 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der DS18B20 auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die PinHeader werden die anderen Komponenten verbunden. Das betrifft den BME280 (Luftdruck-, Temp- und Luftfeuchtesensor), Den TSL Lichtsensor und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden per Schraubklemme. Wird kein VOC-Sensor und kein Nextio Display verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation zwischen dem Modul und FHEM erfolgt bidirektional per MQTT über WLAN. Ein MQTT Server &amp;gt;= MQTT-Version 3.1.1 ist erforderlich&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP32S Development Board NodeMCU&lt;br /&gt;
* Anschluss für ein Nextion Display&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* TSL2580 Helligkeitssensor&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP32_Innenraumsensor_v3.1.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP32_Innenraumsensor_v3.1.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP32_Innenraumsensor_v3.1.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP32_Innenraumsensor_v3.1.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
!  ca. Preis € &amp;lt;br /&amp;gt;(ohne Lieferkosten)&lt;br /&gt;
|- &lt;br /&gt;
|  C1,C3,C4,C5,C10&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  Low Current Leuchtdiode 3mm 2mA, Rot&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA RT&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  Low Current Leuchtdiode 3mm 2mA, Gelb&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  Low Current Leuchtdiode 3mm 2mA, Grün&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GN&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x02 RM2,54&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-002&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  J1a&lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  JUMPER 2,54 SW&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Anreihklemme 2-polig, RM5,08&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 073-02&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  K5&lt;br /&gt;
|  Header TFT,PIR, Stiftleisten 2,54 mm, 2X08, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  R1,R9,R13&lt;br /&gt;
|  Widerstand SMD-0805 1K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 1,0K&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  R2,R4,R5,R7,R8,R19,R28,R29&lt;br /&gt;
|  Widerstand SMD-0805 10K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  R3&lt;br /&gt;
|  Widerstand SMD-0805 68K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 68,0K&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  R6&lt;br /&gt;
|  Widerstand SMD-0805 100K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 100K&lt;br /&gt;
|  Centteil&lt;br /&gt;
|- &lt;br /&gt;
|  X1&lt;br /&gt;
|  ESP32S NodeMCU mit CP2102&lt;br /&gt;
|  &lt;br /&gt;
| [[Datei:ESP32S_NodeMCU_top.jpg|50px|thumb]]&lt;br /&gt;
[[Datei:ESP32S_NodeMCU_bottom.jpg|50px|thumb]]&lt;br /&gt;
|  12-15&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  BME280 BreakoutBoard (4Pin: SDA,SCL,GND,3V3)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/3In1-BME280-GY-BME280-Digital-Sensor-SPI-I2C-Humidity-Temperature-and-Barometric-Pressure-Sensor-Module-1/32659765502.html Link]&lt;br /&gt;
|  3&lt;br /&gt;
|- &lt;br /&gt;
|  IC4&lt;br /&gt;
|  FIGARO Air Quality Gas Sensor(TGS2600)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|  3-4&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Seeed Studio PIR Motion Sensor&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/seeed-studio-pir-motion-sensor-large-lens-version EXP-R02-351]&lt;br /&gt;
|  5-6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://github.com/tobiasfaust/ Alle Dateien im Git des Autors]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Quellen:&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:ESP32_Innenraumsensor_v3.1.0_Fertig.jpg&amp;diff=27742</id>
		<title>Datei:ESP32 Innenraumsensor v3.1.0 Fertig.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:ESP32_Innenraumsensor_v3.1.0_Fertig.jpg&amp;diff=27742"/>
		<updated>2018-08-22T14:42:39Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=27726</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=27726"/>
		<updated>2018-08-18T09:25:12Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Hardware&lt;br /&gt;
|Bild=ESP32S_NodeMCU_top.jpg&lt;br /&gt;
|Bildbeschreibung=ESP32S Development Board&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=1A-1.5A&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=Expressif&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Der [https://de.wikipedia.org/wiki/ESP32 ESP32] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif und die Weriterentwicklung des ESP8266. Der 32-Bit-Prozessorkern vom Typ 240 MHz dual core Tensilica LX6 microcontroller mit 600 DMIPS arbeitet mit einem Systemtakt von 80–160 MHz, hat 520 KB SRAM als Befehlspeicher, in dem 16 Megabyte Flash-Speicher eingeblendet werden können, 34x GPIO´s, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) sowie integriertes WLAN IEEE 802.11 b/g/n und Bluetooth LE. Der ESP32 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der DS18B20 auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die PinHeader werden die anderen Komponenten verbunden. Das betrifft den BME280 (Luftdruck-, Temp- und Luftfeuchtesensor), Den TSL Lichtsensor und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden per Schraubklemme. Wird kein VOC-Sensor und kein Nextio Display verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation zwischen dem Modul und FHEM erfolgt bidirektional per MQTT über WLAN. Ein MQTT Server &amp;gt;= MQTT-Version 3.1.1 ist erforderlich&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP32S Development Board NodeMCU&lt;br /&gt;
* Anschluss für ein Nextion Display&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* TSL2580 Helligkeitssensor&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP32_Innenraumsensor_v3.1.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP32_Innenraumsensor_v3.1.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP32_Innenraumsensor_v3.1.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP32_Innenraumsensor_v3.1.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1,C3,C4,C5,C10&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Rot&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA RT&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Gelb&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Grün&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GN&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x02 RM2,54&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-002&lt;br /&gt;
|- &lt;br /&gt;
|  J1a&lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  JUMPER 2,54 SW&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Anreihklemme 2-polig, RM5,08&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 073-02&lt;br /&gt;
|- &lt;br /&gt;
|  K5&lt;br /&gt;
|  Header TFT,PIR, Stiftleisten 2,54 mm, 2X08, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  R1,R9,R13&lt;br /&gt;
|  Widerstand SMD-0805 1K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 1,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R2,R4,R5,R7,R8,R19,R28,R29&lt;br /&gt;
|  Widerstand SMD-0805 10K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R3&lt;br /&gt;
|  Widerstand SMD-0805 68K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 68,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R6&lt;br /&gt;
|  Widerstand SMD-0805 100K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 100K&lt;br /&gt;
|- &lt;br /&gt;
|  X1&lt;br /&gt;
|  ESP32S NodeMCU mit CP2102&lt;br /&gt;
|  &lt;br /&gt;
| [[Datei:ESP32S_NodeMCU_top.jpg|50px|thumb]]&lt;br /&gt;
[[Datei:ESP32S_NodeMCU_bottom.jpg|50px|thumb]]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  BME280 BreakoutBoard (4Pin: SDA,SCL,GND,3V3)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/3In1-BME280-GY-BME280-Digital-Sensor-SPI-I2C-Humidity-Temperature-and-Barometric-Pressure-Sensor-Module-1/32659765502.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  IC4&lt;br /&gt;
|  FIGARO Air Quality Gas Sensor(TGS2600)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Seeed Studio PIR Motion Sensor&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/seeed-studio-pir-motion-sensor-large-lens-version EXP-R02-351]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Quellen:&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=VELUX_Rolladen_steuern&amp;diff=27091</id>
		<title>VELUX Rolladen steuern</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=VELUX_Rolladen_steuern&amp;diff=27091"/>
		<updated>2018-06-14T05:13:42Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Homematic HM-LC-Bl1PBU-FM In Verbindung mit Relais */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Vorwort==&lt;br /&gt;
Wird ein VELUX Rolladen neu eingebaut und man hat die Absicht diesen mit FHEM zu steuern so sollte zwingend darauf geachtet werden KEINE Steuerbox (zb. KLF-100) anzu schließen. Auch nicht mal zu testen. Hat der Rollen einmal solche Steuerbox erkannt, schaltet er intern auf diesen SteuerboxModus um und ist nicht mehr per Polumschaltung steuerbar! &lt;br /&gt;
&lt;br /&gt;
Ist der Rolladen noch per Polumschaltung steuerbar, so kann hier weitergelesen werden&lt;br /&gt;
&lt;br /&gt;
Es gibt mehrere Möglichkeiten einen VELUX Rolladen mit einem Hoomatic Rolladenaktor zu schalten um diesen damit in FHEM zu integrieren &lt;br /&gt;
==Homematic HM-LC-Bl1PBU-FM auf 24VDC umbauen==&lt;br /&gt;
Diese Modifikation ist [https://forum.fhem.de/index.php/topic,35802 hier] sehr gut erklärt.&lt;br /&gt;
&lt;br /&gt;
==Homematic HM-LC-Bl1PBU-FM In Verbindung mit Relais==&lt;br /&gt;
Möchte mal keine Lötaktionen am Rolladenaktor vornehmen so ist ev. diese Variante interessant. Allerdings benötigt man zusätzlichen Platz für einen Unterputz Schaltschrank.&lt;br /&gt;
Es wird ein 24VDC Hutschienennetzteil mit entsprechender Leistung benötigt. Es muss mindestens 1A pro Rolladen bereitstellen. Zb. bei 3 Rolläden eigent sich das 4,2A 24DVC Modul sehr gut. Es belegt 6TE im Schaltschrank. Pro Rolladen benötigt man zwei 230V 4fach Wechsler Koppelrelais. Von diesen 4 Wechslern je Relais werden 3 benötigt: 2 Stück für +/- Pol, 1 Stück für die Steuerung des 24VDC Netzteils&lt;br /&gt;
&lt;br /&gt;
Beim Einbau in eine Unterputzverteilung bietet sich folgendes Relais aufgrund geringer Tiefe an:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;Phoenix Contact 2903304 RIF Monostabiles Relais für DIN-Schienen, 230Vac Spule, 4-poliger Wechsler 5 A / 250Vdc&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 2 Phasen des Rolladenaktors steuern nun je ein Relais an. &lt;br /&gt;
Die Wechsler Ausgänge Relais werden nun wie folgt verdrahtet:&lt;br /&gt;
&lt;br /&gt;
Relais für Hochfahrt&lt;br /&gt;
* Wechseler 1: IN: + Pol Netzteil, OUT: Pol 1 des Rolladens&lt;br /&gt;
* Wechseler 2: IN: - Pol Netzteil, OUT: Pol 2 des Rolladens&lt;br /&gt;
* Wechseler 3: IN: 230V Phase, OUT: 230V Stromzufuhr des Netzteils&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Relais für Runterfahrt&lt;br /&gt;
* Wechseler 1: IN: + Pol Netzteil, OUT: Pol 2 des Rolladens&lt;br /&gt;
* Wechseler 2: IN: - Pol Netzteil, OUT: Pol 1 des Rolladens&lt;br /&gt;
* Wechseler 3: IN: 230V Phase, OUT: 230V Stromzufuhr des Netzteils&lt;br /&gt;
&lt;br /&gt;
Man sieht, es sind lediglich die Ausgänge des Rolladenen vertauscht.&lt;br /&gt;
Wichtig ist, das beide Relais NICHT gleichzeitig angezogen sind. Das verursacht einen 24V Kurzschluss.&lt;br /&gt;
Der HM Rolladenaktor stellt dies aber sicher. Er wird NIE eine Hoch- und Runterfahrt initiieren.&lt;br /&gt;
&lt;br /&gt;
Hat man mehrere Rolläden, so ist pro Rolladen identisch zu verfahren.&lt;br /&gt;
&lt;br /&gt;
==Lernfahrt initiieren==&lt;br /&gt;
Fährt der Rolladen nicht komplett herunter oder hoch, so hilft ev. eine erneute Lernfahrt. Diese kann wie folgt initiiert werden:&lt;br /&gt;
* Rolladen komplett herunter fahren&lt;br /&gt;
* 3x kurzen Runterfahr-Impuls geben&lt;br /&gt;
* Jetzt Dauerstrom zum Herunterfahren geben&lt;br /&gt;
&lt;br /&gt;
Nun sollte der Rolladen erst hoch, dann wieder herunterfahren, jetzt aber bis zum Anschlag - der eigentlichen und korrekten Endposition.&lt;br /&gt;
&lt;br /&gt;
==mögliche Probleme bei Nutzung von mehreren Rolläden an einem Netzteil==&lt;br /&gt;
Es besteht der Verdacht, das die Rolläden untereinander kommunizieren. Wurden weitere Rolläden erkannt, so kann es zu Störungen kommen bis dahin, das die Rolläden die Fahrt verweigern.&lt;br /&gt;
Dazu ist lediglich jeweils dicht am Rolladen ein zb. 220uF Elko an beiden Polen parallel anzuschließen.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,60451.15/ FHEM Thread zur Initiierung einer Lernfahrt]&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,35802 FHEM Thread zur Modifikation eines HM-LC-Bl1PBU-FM für 24VDC]&lt;br /&gt;
* [http://www.chrysophylax.de/prj/W010/W010.htm Eine Bauanleitung &amp;quot;from Scratch&amp;quot; mit ein paar nützlichen Erklärungen]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MPD&amp;diff=26970</id>
		<title>MPD</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MPD&amp;diff=26970"/>
		<updated>2018-06-07T12:40:56Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=FHEM Modul zur Steuerung des Music Player Daemons&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=Multimedia&lt;br /&gt;
|ModFTopic=18517&lt;br /&gt;
|ModTechName=73_MPD.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|5110|Forum}}/[[Benutzer Diskussion:Wzut|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
FHEM Modul zur Steuerung des &#039;&#039;&#039;MPD&#039;&#039;&#039; (oder Mopidy) ähnlich dem MPC (MPC = [http://en.wikipedia.org/wiki/Music_Player_Daemon Music Player Command], das Kommandozeilen-Interface für den Music Player Daemon ). &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
Um das Modul [[MPD]] benutzen zu können, sind folgende Voraussetzungen zu erfüllen:&lt;br /&gt;
* Das Modul benötigt zwingend JSON, installation z.B. mit &lt;br /&gt;
: &amp;lt;code&amp;gt;sudo apt-get install libjson-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
* Installiertes Perl-Modul &#039;&#039;&#039;XML:Simple&#039;&#039;&#039;&lt;br /&gt;
: Die Installation erfolgt mittels&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo apt-get install libxml-simple-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
: oder&lt;br /&gt;
: &amp;lt;code&amp;gt;cpan install XML:Simple&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MPD ===&lt;br /&gt;
Um den MPD auf einem Raspberry Pi zu installieren finden sich im Internet zahlreiche gute Dokumentaionen z.B. [http://www.forum-raspberrypi.de/Thread-tutorial-music-player-daemon-mpd-und-mpc-auf-dem-raspberry-pi hier] sowie im [http://forum.fhem.de/index.php/topic,18517.0.html Thread im FHEM Forum : Modul für MPD]&lt;br /&gt;
&lt;br /&gt;
Falls jemand eine höhere Version benötigt als diejenige, die in der Paketverwaltung angeboten wird, findet sich [https://www.doc-network.de/Linux/MPDLastFM hier] eine gute Anleitung zum Selbst-Kompilieren.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
[[Datei:Mpd01.PNG|200px|thumb|right|[[MPD]]-Device in FHEM]]&lt;br /&gt;
&lt;br /&gt;
Syntax&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; MPD &amp;lt;IP MPD Server | default localhost&amp;gt; &amp;lt;Port MPD Server | default 6600&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define myMPD MPD 192.168.0.99 7000&amp;lt;/code&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
Wenn FHEM und der MPD auf dem gleichen Server laufen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define myMPD MPD&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
&lt;br /&gt;
=== Attribute === &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;password&#039;&#039;&#039; &lt;br /&gt;
: Password falls in der mpd.conf definiert&lt;br /&gt;
* &#039;&#039;&#039;loadMusic&#039;&#039;&#039; 1|0 &lt;br /&gt;
: lade die MPD Titel beim FHEM Start : mpd.conf - music_directory&lt;br /&gt;
* &#039;&#039;&#039;loadPlaylists&#039;&#039;&#039; 1|0 &lt;br /&gt;
: lade die MPD Playlisten beim FHEM Start : mpd.conf - playlist_directory&lt;br /&gt;
* &#039;&#039;&#039;volumeStep&#039;&#039;&#039; x &lt;br /&gt;
: Schrittweite für Volume +/-&lt;br /&gt;
* &#039;&#039;&#039;titleSplit&#039;&#039;&#039; 1|0 &lt;br /&gt;
: zerlegt die aktuelle Titelangabe am ersten Vorkommen von - (BlankMinusBlank) in die zwei Felder Artist und Titel, wenn im abgespielten Titel die Interpreten Information nicht verfügbar ist (sehr oft bei Radio-Streams default 1). Liegen keine Titelangaben vor wird die Ausgabe durch den Namen der Radiostation ersetzt&lt;br /&gt;
* &#039;&#039;&#039;timeout&#039;&#039;&#039; (default 1) &lt;br /&gt;
: Timeoutwert in Sekunden für die Verbindung fhem-mpd waits (default 60) &lt;br /&gt;
: Überwachungszeit in Sekunden für den Idle Prozess. In Verbindung mit refresh_song der Aktualisierungs Intervall für die aktuellen Songparamter, (z.B. um den Fortschrittsbalken bei TabletUI aktuell zu halten)&lt;br /&gt;
* &#039;&#039;&#039;stateMusic&#039;&#039;&#039; 1|0 &lt;br /&gt;
: zeige Musikliste als DropDown im Webfrontend&lt;br /&gt;
* &#039;&#039;&#039;statePlaylists&#039;&#039;&#039; 1|0 &lt;br /&gt;
: zeige Playlisten als DropDown im Webfrontend&lt;br /&gt;
* &#039;&#039;&#039;player&#039;&#039;&#039; mpd|mopidy|forked-daapd (default mpd) &lt;br /&gt;
: welcher Player wird gesteuert ACHTUNG : Mopidy unterstützt nicht alle Kommandos des echten MPD ! (siehe Mopidy Dokumentation)  Cover Art Funktionen von last.fm :&lt;br /&gt;
* &#039;&#039;&#039;image_size&#039;&#039;&#039; -1|0|1|2|3 (default -1 = keine Interpretenbilder und Infos von last.fm verwenden)&lt;br /&gt;
: last.fm stellt verschiedene Bildgroessen zur Verfügung :&lt;br /&gt;
: 0 = 32x32 , 1 = 64x64 , 2 = 174x174 , 3 = 300x300&lt;br /&gt;
* &#039;&#039;&#039;artist_content&#039;&#039;&#039; 0|1 &lt;br /&gt;
: stellt Interpreteninformation im Reading artist_content zur Verfügung&lt;br /&gt;
* &#039;&#039;&#039;artist_summary&#039;&#039;&#039; 0|1 &lt;br /&gt;
: stellt weitere Interpreteninformation im Reading artist_summary zur Verfügung&lt;br /&gt;
: Beispiel Anzeige mittels readingsGroup :&lt;br /&gt;
: define rg_artist readingsGroup &amp;lt;MPD name&amp;gt;:artist,artist_image_html,artist_summary&lt;br /&gt;
: attr rg_artist room MPD&lt;br /&gt;
* &#039;&#039;&#039;cache&#039;&#039;&#039; &lt;br /&gt;
: (default lfm /fhem/www/lfm) Zwischenspeicher für die JSON und PNG Dateien&lt;br /&gt;
: Wichtig : Der User unter dem der fhem Prozess ausgeführt wird (default fhem) muss Lese und Schreibrechte in diesem Verzeichniss haben! Das Verzeichnis sollte auch unterhalb von www liegen, damit der fhem Webserver direkten Zugriff auf die Bilder hat. &lt;br /&gt;
* &#039;&#039;&#039;unknown_artist_image&#039;&#039;&#039; &lt;br /&gt;
: Ersatzimage wenn kein anderes Image zur Verfügung steht (default : /fhem/icons/1px-spacer)&lt;br /&gt;
* &#039;&#039;&#039;bookmarkDir&#039;&#039;&#039; &lt;br /&gt;
: ein vom FHEM User les- und beschreibbares Verzeichnis. Wennn dieses definiert wird, ist das Speichern und Wiederherstellen von Playlistzuständen mit Hilfe von set/get bookmark möglich&lt;br /&gt;
* &#039;&#039;&#039;autoBookmark&#039;&#039;&#039; &lt;br /&gt;
: wenn dies auf 1 gesetzt wird, dann werden automatisch Playlistenzustände geladen und gespeichert, immer wenn die Playliste mit diesem Modul gewechselt wird&lt;br /&gt;
* seekStep &lt;br /&gt;
: wenn definiert, wird dadurch die Sprungweite von forward und rewind gesetzt. Der Wert gilt als Prozentwert. default: 7&lt;br /&gt;
* &#039;&#039;&#039;seekStepSmall&#039;&#039;&#039; &lt;br /&gt;
: Wenn diesem Attribut kann für den Anfang eines Tracks innerhalb der ersten per seekStepSmall definierten Prozent eine kleinere Sprungweite definiert werden, um so z.B. die Intromusik von Hörspielen oder Hörbüchern überspringen zu können. default: 1&lt;br /&gt;
* &#039;&#039;&#039;seekStepSmallThreshold&#039;&#039;&#039; &lt;br /&gt;
: unterhalb dieses Wertes wird seekStepSmall benutzt, oberhalb seekStep default: 0 (ohne Funktion)&lt;br /&gt;
* &#039;&#039;&#039;no_playlistcollection&#039;&#039;&#039; (default 0) &lt;br /&gt;
: wenn auf 1 gesetzt wird das Reading playlistcollection nicht erzeugt&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;name&amp;gt; &amp;lt;was&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
z.Z. unterstützte Kommandos&lt;br /&gt;
     &lt;br /&gt;
* &#039;&#039;&#039;play&#039;&#039;&#039; &lt;br /&gt;
: spielt den aktuellen Titel der MPD internen Playliste&lt;br /&gt;
* &#039;&#039;&#039;clear&#039;&#039;&#039; &lt;br /&gt;
: löscht die MPD interne Playliste&lt;br /&gt;
* &#039;&#039;&#039;stop&#039;&#039;&#039; &lt;br /&gt;
: stoppt die Wiedergabe&lt;br /&gt;
* &#039;&#039;&#039;pause&#039;&#039;&#039; &lt;br /&gt;
: Pause an/aus&lt;br /&gt;
* &#039;&#039;&#039;previous&#039;&#039;&#039;&lt;br /&gt;
: spielt den vorherigen Titel in der Playliste&lt;br /&gt;
* &#039;&#039;&#039;next&#039;&#039;&#039;&lt;br /&gt;
: spielt den nächsten Titel in der Playliste&lt;br /&gt;
* &#039;&#039;&#039;random&#039;&#039;&#039;&lt;br /&gt;
: zufällige Wiedergabe an/aus&lt;br /&gt;
* &#039;&#039;&#039;repeat&#039;&#039;&#039; &lt;br /&gt;
: Wiederholung an/aus&lt;br /&gt;
* &#039;&#039;&#039;toggle&#039;&#039;&#039; &lt;br /&gt;
: wechselt von play nach stop bzw. stop/pause nach play&lt;br /&gt;
* &#039;&#039;&#039;volume (%)&#039;&#039;&#039; &lt;br /&gt;
: ändert die Lautstärke von 0 - 100%&lt;br /&gt;
* &#039;&#039;&#039;volumeUp&#039;&#039;&#039; &lt;br /&gt;
: Lautstärke schrittweise erhöhen , Schrittweite = ( attr volumeStep size )&lt;br /&gt;
* &#039;&#039;&#039;volumeDown&#039;&#039;&#039; &lt;br /&gt;
: Lautstärke schrittweise erniedrigen , Schrittweite = ( attr volumeStep size )&lt;br /&gt;
* &#039;&#039;&#039;playlist&#039;&#039;&#039; (name|SongNr|Position) &lt;br /&gt;
: lade Playliste aus der MPD Datenbank und starte die Wiedergabe. Werden SongNr und/oder Position nicht mit übergeben, startet die Wiedergabe mit dem ersten Titel (Song=0) am Anfang (Position=0)&lt;br /&gt;
* &#039;&#039;&#039;playfile&#039;&#039;&#039; (file)&lt;br /&gt;
: erzeugt eine MPD interne Playliste mit file als Inhalt und spielt dieses ab&lt;br /&gt;
* &#039;&#039;&#039;updateDb&#039;&#039;&#039; &lt;br /&gt;
: wie MPC update, Update der MPD Datenbank&lt;br /&gt;
* &#039;&#039;&#039;reset&#039;&#039;&#039; &lt;br /&gt;
: reset des FHEM MPD Moduls&lt;br /&gt;
* &#039;&#039;&#039;mpdCMD&#039;&#039;&#039; (cmd) &lt;br /&gt;
: sende cmd direkt zum MPD Server ( siehe auch MPD Comm Ref )&lt;br /&gt;
* &#039;&#039;&#039;IdleNow&#039;&#039;&#039; &lt;br /&gt;
: sendet das Kommando idle zum MPD und wartet auf Ereignisse&lt;br /&gt;
* &#039;&#039;&#039;clear_readings&#039;&#039;&#039; &lt;br /&gt;
: löscht sehr viele Readings&lt;br /&gt;
* &#039;&#039;&#039;mute&#039;&#039;&#039; &lt;br /&gt;
: on,off,toggle&lt;br /&gt;
* &#039;&#039;&#039;seekcur&#039;&#039;&#039; (zeit) &lt;br /&gt;
: Format: [[hh:]mm:]ss. nicht vor MPD Version 0.20&lt;br /&gt;
* &#039;&#039;&#039;forward&#039;&#039;&#039; &lt;br /&gt;
: Springt im laufenden Track um einen optional per seekStep oder seekStepSmall definierten Wert nach vorne bzw. defaultmäßig um 7%.&lt;br /&gt;
* &#039;&#039;&#039;rewind&#039;&#039;&#039; &lt;br /&gt;
: Springt so wie bei forward beschrieben entsprechend zurück.&lt;br /&gt;
* &#039;&#039;&#039;channel&#039;&#039;&#039; &lt;br /&gt;
: Wechsele zur Playliste mit der angegebenen Nummer&lt;br /&gt;
* &#039;&#039;&#039;channelUp&#039;&#039;&#039; &lt;br /&gt;
: wechselt zur nächsten Playliste&lt;br /&gt;
* &#039;&#039;&#039;channelDown&#039;&#039;&#039; &lt;br /&gt;
: wechselt zur vorherigen Playliste&lt;br /&gt;
* &#039;&#039;&#039;save_bookmark&#039;&#039;&#039;&lt;br /&gt;
: speichert den aktuellen Zustand (Tracknummer und Position innerhalb des Tracks für die gerade geladene Playliste. Dies funktioniert nur, wenn die Playliste mit dem Modul geladen wurde und wenn das Attribut bookmarkDir gesetzt ist.&lt;br /&gt;
* &#039;&#039;&#039;load_bookmark&#039;&#039;&#039;&lt;br /&gt;
: stellt den zuletzt gespeicherten Zustand (set bookmark) der geladenen Playliste wieder her und springt zum gespeicherten Track und Position wird zusätzlich mit übergeben wird zuvor die entsprechend Playliste geladen&lt;br /&gt;
&lt;br /&gt;
=== Get ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;get &amp;lt;name&amp;gt; &amp;lt;was&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
z.Z. unterstützte Kommandos&lt;br /&gt;
* &#039;&#039;&#039;music&#039;&#039;&#039;&lt;br /&gt;
: zeigt alle Dateien der MPD Datenbank&lt;br /&gt;
* &#039;&#039;&#039;playlists&#039;&#039;&#039; &lt;br /&gt;
: zeigt alle Playlisten der MPD Datenbank&lt;br /&gt;
* &#039;&#039;&#039;playlistsinfo&#039;&#039;&#039; &lt;br /&gt;
: zeigt Informationen der aktuellen Playliste&lt;br /&gt;
* &#039;&#039;&#039;webrc&#039;&#039;&#039; &lt;br /&gt;
: HTML Ausgabe einer einfachen Web Fernbedienung Bsp :.&lt;br /&gt;
&lt;br /&gt;
: define &amp;lt;name&amp;gt; weblink htmlCode {fhem(&amp;quot;get &amp;lt;name&amp;gt; webrc&amp;quot;, 1)}&lt;br /&gt;
:attr &amp;lt;name&amp;gt; room MPD&lt;br /&gt;
        &lt;br /&gt;
* &#039;&#039;&#039;statusRequest&#039;&#039;&#039; &lt;br /&gt;
: hole aktuellen MPD Status&lt;br /&gt;
* &#039;&#039;&#039;currentsong&#039;&#039;&#039; &lt;br /&gt;
: zeigt Informationen zum aktuellen Titel der MPD internen Playliste&lt;br /&gt;
* &#039;&#039;&#039;outputs&#039;&#039;&#039; &lt;br /&gt;
: zeigt Informationen der definierten MPD Ausgabe Kanäle ( aus /etc/mpd.conf )&lt;br /&gt;
* &#039;&#039;&#039;bookmarks&#039;&#039;&#039; &lt;br /&gt;
: zeigt eine Liste aller bisher gespeicherten Bookmarks&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
&lt;br /&gt;
alle MPD internen Werte sowie vom Modul direkt erzeugte Readings:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;playlistinfo&#039;&#039;&#039;: (TabletUI Medialist)&lt;br /&gt;
* &#039;&#039;&#039;playlistcollection&#039;&#039;&#039;: (TabletUI)&lt;br /&gt;
* &#039;&#039;&#039;playlistname&#039;&#039;&#039;: (TabletUI)&lt;br /&gt;
* &#039;&#039;&#039;artist_image&#039;&#039;&#039;: (bei Nutzung von Last.fm)&lt;br /&gt;
* &#039;&#039;&#039;artist_image_html&#039;&#039;&#039;: (bei Nutzung von Last.fm)&lt;br /&gt;
* &#039;&#039;&#039;album_image&#039;&#039;&#039;: (bei Nutzung von Last.fm)&lt;br /&gt;
* &#039;&#039;&#039;album_image_html&#039;&#039;&#039;: (bei Nutzung von Last.fm)&lt;br /&gt;
* &#039;&#039;&#039;artist_content&#039;&#039;&#039;: (bei Nutzung von Last.fm)&lt;br /&gt;
* &#039;&#039;&#039;artist_summary&#039;&#039;&#039;: (bei Nutzung von Last.fm)&lt;br /&gt;
* &#039;&#039;&#039;playlistinfo&#039;&#039;&#039;: (z.B. für die TabletUI Medialist)&lt;br /&gt;
* &#039;&#039;&#039;playlistcollection&#039;&#039;&#039;: (TabletUI) Liste der Playlisten&lt;br /&gt;
* &#039;&#039;&#039;playlistname&#039;&#039;&#039;: (TabletUI) Name der aktuellen Playliste aus playlistcollection&lt;br /&gt;
* &#039;&#039;&#039;playlist_num&#039;&#039;&#039;: Playlisten Nr. (0 .. n) der aktuellen Playliste aus playlistcollection playlist_json : (notwendig fü das Medialist Modul)&lt;br /&gt;
* &#039;&#039;&#039;Cover&#039;&#039;&#039;: Cover Bild zum aktuellen Song aus playlist_json&lt;br /&gt;
* &#039;&#039;&#039;currentTrackProvider&#039;&#039;&#039;: Radio / Bibliothek - Unterscheidung Radio Stream oder lokale Datei&lt;br /&gt;
* &#039;&#039;&#039;rawTitle&#039;&#039;&#039;: Title Information ohne Veränderungen durch das Modul&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Den eigenen Radiosender steuern ===&lt;br /&gt;
&lt;br /&gt;
Früher schleppte man das Notebook ins Wohnzimmer, schloss es an die Stereoanlage an und spielte mittels Programm auf dem Notebook die Musik von der heimischen Festplatte ab.&lt;br /&gt;
&lt;br /&gt;
Hat man die Musik auf einem Server oder NAS liegen, bietet sich ein Internetradio im Wohnzimmer mit einem eigenen Internet-Radiosender als Alternative an. Fehlt nur noch die passende Fernbedienung. Die Music Player Daemon-Software wird auf dem Server oder einem Raspi installiert und durchsucht nach passender Konfiguration die Festplatte nach Musik. Einmal in einer Datenbank inventarisiert, können mittels MPD-Client Playlisten zusammengestellt und abgelegt werden.&lt;br /&gt;
&lt;br /&gt;
Mit dem MPD-Modul kann FHEM die Kontrolle übernehmen. Dies betrifft den Wechsel der Playlisten, als auch das Überspringen von Titeln sowie die Lautstärkeregelung.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[https://www.musicpd.org/ MPD Webseite]&lt;br /&gt;
*[http://www.forum-raspberrypi.de/Thread-tutorial-music-player-daemon-mpd-und-mpc-auf-dem-raspberry-pi Installation von MPD auf einem Raspberry Pi]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22558</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22558"/>
		<updated>2017-09-13T14:04:16Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und -Steuerung}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=ESP32S_NodeMCU_top.jpg&lt;br /&gt;
|Bildbeschreibung=ESP32S Development Board&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=Expressif&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Der [https://de.wikipedia.org/wiki/ESP32 ESP32] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif und die Weriterentwicklung des ESP8266. Der 32-Bit-Prozessorkern vom Typ 240 MHz dual core Tensilica LX6 microcontroller mit 600 DMIPS arbeitet mit einem Systemtakt von 80–160 MHz, hat 520 KB SRAM als Befehlspeicher, in dem 16 Megabyte Flash-Speicher eingeblendet werden können, 34x GPIO´s, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) sowie integriertes WLAN IEEE 802.11 b/g/n und Bluetooth LE. Der ESP32 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation zwischen dem Modul und FHEM erfolgt bidirektional per MQTT über WLAN. Ein MQTT Server &amp;gt;= MQTT-Version 3.1.1 ist erforderlich&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP32S Development Board NodeMCU&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1,C3,C4,C5,C10&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Rot&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA RT&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Gelb&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Grün&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GN&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x02 RM2,54&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-002&lt;br /&gt;
|- &lt;br /&gt;
|  J1a&lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  JUMPER 2,54 SW&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Anreihklemme 2-polig, RM5,08&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 073-02&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Header RotEncRGB, Stiftleisten 2,54 mm, 2X06, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-012&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Header RotEncRGB, präz. Buchsenleiste 2x04 5mm Höhe&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BL 2X13G 2,54&lt;br /&gt;
|- &lt;br /&gt;
|  K5&lt;br /&gt;
|  Header TFT,PIR, Stiftleisten 2,54 mm, 2X08, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  K6&lt;br /&gt;
|  Header TFT, PIR, präz. Buchsenleiste 2x06, 5mm Höhe&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BL 2X13G 2,54 &lt;br /&gt;
|- &lt;br /&gt;
|  R1,R9,R13&lt;br /&gt;
|  Widerstand SMD-0805 1K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 1,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R2,R4,R5,R7,R8,R19,R28,R29&lt;br /&gt;
|  Widerstand SMD-0805 10K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R3&lt;br /&gt;
|  Widerstand SMD-0805 68K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 68,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R6&lt;br /&gt;
|  Widerstand SMD-0805 100K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 100K&lt;br /&gt;
|- &lt;br /&gt;
|  R10&lt;br /&gt;
|  Widerstand SMD-0805 56&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 56,0&lt;br /&gt;
|- &lt;br /&gt;
|  R11,R12&lt;br /&gt;
|  Widerstand SMD-0805 15&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 15,0&lt;br /&gt;
|- &lt;br /&gt;
|  S1,S3&lt;br /&gt;
|  Kurzhubtaster 6x6mm, Höhe: 13mm&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  TASTER 3301D&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  X1&lt;br /&gt;
|  ESP32S NodeMCU mit CP2102&lt;br /&gt;
|  &lt;br /&gt;
| [[Datei:ESP32S_NodeMCU_top.jpg|50px|thumb]]&lt;br /&gt;
[[Datei:ESP32S_NodeMCU_bottom.jpg|50px|thumb]]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  BME280 BreakoutBoard (4Pin: SDA,SCL,GND,3V3)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/3In1-BME280-GY-BME280-Digital-Sensor-SPI-I2C-Humidity-Temperature-and-Barometric-Pressure-Sensor-Module-1/32659765502.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  IC4&lt;br /&gt;
|  FIGARO Air Quality Gas Sensor(TGS2600)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit 1.8&amp;quot; 18-bit Farb TFT LCD Display &lt;br /&gt;
mit microSD card breakout - ST7735R (10pin)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/adafruit-1-8-18-bit-color-tft-lcd-display-with-microsd-card-breakout-st7735r EXP-R15-111]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Seeed Studio PIR Motion Sensor&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/seeed-studio-pir-motion-sensor-large-lens-version EXP-R02-351]&lt;br /&gt;
|- &lt;br /&gt;
|  S2&lt;br /&gt;
|  Rotary Encoder - Illuminated (RGB)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://http://www.exp-tech.de/rotary-encoder-illuminated-rgb EXP-R05-031]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Quellen:&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:ESP32S_NodeMCU_bottom.jpg&amp;diff=22557</id>
		<title>Datei:ESP32S NodeMCU bottom.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:ESP32S_NodeMCU_bottom.jpg&amp;diff=22557"/>
		<updated>2017-09-13T14:02:27Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:ESP32S_NodeMCU_top.jpg&amp;diff=22556</id>
		<title>Datei:ESP32S NodeMCU top.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:ESP32S_NodeMCU_top.jpg&amp;diff=22556"/>
		<updated>2017-09-13T14:02:04Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Diskussion:ESP8266_Innenraumsensor_und_-Steuerung&amp;diff=22555</id>
		<title>Diskussion:ESP8266 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Diskussion:ESP8266_Innenraumsensor_und_-Steuerung&amp;diff=22555"/>
		<updated>2017-09-13T13:50:31Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Tobias.faust verschob die Seite Diskussion:ESP8266 Innenraumsensor und -Steuerung nach Diskussion:ESP32 Innenraumsensor und -Steuerung: Änderung der NodeMCU von ESP8266 auf ESP32&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[Diskussion:ESP32 Innenraumsensor und -Steuerung]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Diskussion:ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22554</id>
		<title>Diskussion:ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Diskussion:ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22554"/>
		<updated>2017-09-13T13:50:31Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Tobias.faust verschob die Seite Diskussion:ESP8266 Innenraumsensor und -Steuerung nach Diskussion:ESP32 Innenraumsensor und -Steuerung: Änderung der NodeMCU von ESP8266 auf ESP32&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi, es ist nur eine Kleinigkeit: Spricht was dagegen den Artikel zu verschieben auf den Artikel &amp;quot;PanStamp Innenraumsensor&amp;quot;? Dann wären alle Artikel gleich von der Schreibweise (PanStamp anstatt Panstamp). --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 22:18, 17. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Bin einverstanden (und falls die korrekte Schreibweise panStamp ist/sein sollte (Mediawiki macht halt den ersten Buchstaben des Seitentitels immer zum Großbuchstaben), kannst Du das mit  &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{{SEITENTITEL:naMeInRichtigerSchreibweise}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; am Anfang der Seite auch noch &amp;quot;erzwingen&amp;quot;). --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 23:13, 17. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Das mit &amp;lt;nowiki&amp;gt;{{SEITENTITEL:naMeInRichtigerSchreibweise}}&amp;lt;/nowiki&amp;gt; ist ein guter Hinweis, danke!. Ich kenn mich so mit den Spielregeln nicht aus, sollte sich noch der Author (tobias.faust) von dem Artikel dazu melden? --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:49, 18. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:::Persönlich würde ich sofort verschieben, da das jetzt keine so entscheidende Umstellung ist und damit Du bei Deinen recht umfangreichen Arbeiten (Danke übrigens!) weiterkommst. Ansonsten (=100%-Lösung) tobias.faust direkt ansprechen, da er Deine Frage vermutlich nicht gesehen hat.--[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 09:36, 20. Jul. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP8266_Innenraumsensor_und_-Steuerung&amp;diff=22553</id>
		<title>ESP8266 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP8266_Innenraumsensor_und_-Steuerung&amp;diff=22553"/>
		<updated>2017-09-13T13:50:31Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Tobias.faust verschob die Seite ESP8266 Innenraumsensor und -Steuerung nach ESP32 Innenraumsensor und -Steuerung: Änderung der NodeMCU von ESP8266 auf ESP32&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[ESP32 Innenraumsensor und -Steuerung]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22552</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22552"/>
		<updated>2017-09-13T13:50:30Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Tobias.faust verschob die Seite ESP8266 Innenraumsensor und -Steuerung nach ESP32 Innenraumsensor und -Steuerung: Änderung der NodeMCU von ESP8266 auf ESP32&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und -Steuerung}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=esp8266_amica.png&lt;br /&gt;
|Bildbeschreibung=ESP8266 V3 Amica&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=esp8366&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Der [https://de.wikipedia.org/wiki/ESP8266 ESP8266] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80–160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge.&#039;&#039; &amp;lt;ref&amp;gt;Seite „ESP8266“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 25. Juli 2017, 11:43 UTC. URL: https://de.wikipedia.org/w/index.php?title=ESP8266&amp;amp;oldid=167572970 (Abgerufen: &lt;br /&gt;
24. August 2017, 10:03 UTC&lt;br /&gt;
) &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation zwischen dem Modul und FHEM erfolgt bidirektional per MQTT über WLAN. Ein MQTT Server &amp;gt;= MQTT-Version 3.1.1 ist erforderlich&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP8266 V3 Amica&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1,C3,C4,C5,C10&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Rot&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA RT&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Gelb&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Grün&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GN&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x02 RM2,54&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-002&lt;br /&gt;
|- &lt;br /&gt;
|  J1a&lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  JUMPER 2,54 SW&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Anreihklemme 2-polig, RM5,08&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 073-02&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Header RotEncRGB, Stiftleisten 2,54 mm, 2X06, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-012&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Header RotEncRGB, präz. Buchsenleiste 2x04 5mm Höhe&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BL 2X13G 2,54&lt;br /&gt;
|- &lt;br /&gt;
|  K5&lt;br /&gt;
|  Header TFT,PIR, Stiftleisten 2,54 mm, 2X08, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  K6&lt;br /&gt;
|  Header TFT, PIR, präz. Buchsenleiste 2x06, 5mm Höhe&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BL 2X13G 2,54 &lt;br /&gt;
|- &lt;br /&gt;
|  R1,R9,R13&lt;br /&gt;
|  Widerstand SMD-0805 1K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 1,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R2,R4,R5,R7,R8,R19,R28,R29&lt;br /&gt;
|  Widerstand SMD-0805 10K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R3&lt;br /&gt;
|  Widerstand SMD-0805 68K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 68,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R6&lt;br /&gt;
|  Widerstand SMD-0805 100K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 100K&lt;br /&gt;
|- &lt;br /&gt;
|  R10&lt;br /&gt;
|  Widerstand SMD-0805 56&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 56,0&lt;br /&gt;
|- &lt;br /&gt;
|  R11,R12&lt;br /&gt;
|  Widerstand SMD-0805 15&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 15,0&lt;br /&gt;
|- &lt;br /&gt;
|  X3&lt;br /&gt;
|  MCP23017 16-Portexpander I2C&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MCP 23016-I/SO&lt;br /&gt;
|- &lt;br /&gt;
|  S1,S3&lt;br /&gt;
|  Kurzhubtaster 6x6mm, Höhe: 13mm&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  TASTER 3301D&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  X1&lt;br /&gt;
|  ESP8266 NodeMCU V3 AMICA mit CP2102&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/V3-Wireless-module-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266-esp/32647542733.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  BME280 BreakoutBoard (4Pin: SDA,SCL,GND,3V3)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/3In1-BME280-GY-BME280-Digital-Sensor-SPI-I2C-Humidity-Temperature-and-Barometric-Pressure-Sensor-Module-1/32659765502.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  IC4&lt;br /&gt;
|  FIGARO Air Quality Gas Sensor(TGS2600)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit 1.8&amp;quot; 18-bit Farb TFT LCD Display &lt;br /&gt;
mit microSD card breakout - ST7735R (10pin)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/adafruit-1-8-18-bit-color-tft-lcd-display-with-microsd-card-breakout-st7735r EXP-R15-111]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Seeed Studio PIR Motion Sensor&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/seeed-studio-pir-motion-sensor-large-lens-version EXP-R02-351]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit ADS1115 16-Bit ADC - 4 Channel Breakout Board&lt;br /&gt;
|  Aliexpress/Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/adafruit-ads1115-16-bit-adc-4-channel-with-progrmmable-gain-amplifier EXP-R15-037]&lt;br /&gt;
|- &lt;br /&gt;
|  S2&lt;br /&gt;
|  Rotary Encoder - Illuminated (RGB)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://http://www.exp-tech.de/rotary-encoder-illuminated-rgb EXP-R05-031]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Quellen:&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22346</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22346"/>
		<updated>2017-08-24T08:58:30Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Schaltplan und Bauteilliste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und -Steuerung}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=esp8266_amica.png&lt;br /&gt;
|Bildbeschreibung=ESP8266 V3 Amica&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=esp8366&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Der [url=https://de.wikipedia.org/wiki/ESP8266 | ESP8266] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80–160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge. [Quelle: Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation zwischen dem Modul und FHEM erfolgt bidirektional per MQTT über WLAN. Ein MQTT Server &amp;gt;= MQTT-Version 3.1.1 ist erforderlich&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP8266 V3 Amica&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1,C3,C4,C5,C10&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Rot&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA RT&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Gelb&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Grün&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GN&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x02 RM2,54&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-002&lt;br /&gt;
|- &lt;br /&gt;
|  J1a&lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  JUMPER 2,54 SW&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Anreihklemme 2-polig, RM5,08&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 073-02&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Header RotEncRGB, Stiftleisten 2,54 mm, 2X06, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-012&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Header RotEncRGB, präz. Buchsenleiste 2x04 5mm Höhe&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BL 2X13G 2,54&lt;br /&gt;
|- &lt;br /&gt;
|  K5&lt;br /&gt;
|  Header TFT,PIR, Stiftleisten 2,54 mm, 2X08, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  K6&lt;br /&gt;
|  Header TFT, PIR, präz. Buchsenleiste 2x06, 5mm Höhe&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BL 2X13G 2,54 &lt;br /&gt;
|- &lt;br /&gt;
|  R1,R9,R13&lt;br /&gt;
|  Widerstand SMD-0805 1K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 1,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R2,R4,R5,R7,R8,R19,R28,R29&lt;br /&gt;
|  Widerstand SMD-0805 10K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R3&lt;br /&gt;
|  Widerstand SMD-0805 68K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 68,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R6&lt;br /&gt;
|  Widerstand SMD-0805 100K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 100K&lt;br /&gt;
|- &lt;br /&gt;
|  R10&lt;br /&gt;
|  Widerstand SMD-0805 56&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 56,0&lt;br /&gt;
|- &lt;br /&gt;
|  R11,R12&lt;br /&gt;
|  Widerstand SMD-0805 15&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 15,0&lt;br /&gt;
|- &lt;br /&gt;
|  X3&lt;br /&gt;
|  MCP23017 16-Portexpander I2C&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MCP 23016-I/SO&lt;br /&gt;
|- &lt;br /&gt;
|  S1,S3&lt;br /&gt;
|  Kurzhubtaster 6x6mm, Höhe: 13mm&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  TASTER 3301D&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  X1&lt;br /&gt;
|  ESP8266 NodeMCU V3 AMICA mit CP2102&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/V3-Wireless-module-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266-esp/32647542733.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  BME280 BreakoutBoard (4Pin: SDA,SCL,GND,3V3)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/3In1-BME280-GY-BME280-Digital-Sensor-SPI-I2C-Humidity-Temperature-and-Barometric-Pressure-Sensor-Module-1/32659765502.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  IC4&lt;br /&gt;
|  FIGARO Air Quality Gas Sensor(TGS2600)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit 1.8&amp;quot; 18-bit Farb TFT LCD Display &lt;br /&gt;
mit microSD card breakout - ST7735R (10pin)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/adafruit-1-8-18-bit-color-tft-lcd-display-with-microsd-card-breakout-st7735r EXP-R15-111]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Seeed Studio PIR Motion Sensor&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/seeed-studio-pir-motion-sensor-large-lens-version EXP-R02-351]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit ADS1115 16-Bit ADC - 4 Channel Breakout Board&lt;br /&gt;
|  Aliexpress/Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/adafruit-ads1115-16-bit-adc-4-channel-with-progrmmable-gain-amplifier EXP-R15-037]&lt;br /&gt;
|- &lt;br /&gt;
|  S2&lt;br /&gt;
|  Rotary Encoder - Illuminated (RGB)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://http://www.exp-tech.de/rotary-encoder-illuminated-rgb EXP-R05-031]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22345</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22345"/>
		<updated>2017-08-24T08:19:40Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Schaltplan und Bauteilliste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und -Steuerung}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=esp8266_amica.png&lt;br /&gt;
|Bildbeschreibung=ESP8266 V3 Amica&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=esp8366&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Der [url=https://de.wikipedia.org/wiki/ESP8266 | ESP8266] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80–160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge. [Quelle: Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation zwischen dem Modul und FHEM erfolgt bidirektional per MQTT über WLAN. Ein MQTT Server &amp;gt;= MQTT-Version 3.1.1 ist erforderlich&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP8266 V3 Amica&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1,C3,C4,C5,C10&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Rot&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA RT&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Gelb&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Grün&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GN&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x02 RM2,54&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-002&lt;br /&gt;
|- &lt;br /&gt;
|  J1a&lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  JUMPER 2,54 SW&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Anreihklemme 2-polig, RM5,08&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 073-02&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Header RotEncRGB, Stiftleisten 2,54 mm, 2X06, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-012&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Header RotEncRGB, präz. Buchsenleiste 2x04 5mm Höhe&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BL 2X13G 2,54&lt;br /&gt;
|- &lt;br /&gt;
|  K5&lt;br /&gt;
|  Header TFT,PIR, Stiftleisten 2,54 mm, 2X08, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  K6&lt;br /&gt;
|  Header TFT, PIR, präz. Buchsenleiste 2x06, 5mm Höhe&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BL 2X13G 2,54 &lt;br /&gt;
|- &lt;br /&gt;
|  R1,R9,R13&lt;br /&gt;
|  Widerstand SMD-0805 1K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 1,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R2,R4,R5,R7,R8,R19,R28,R29&lt;br /&gt;
|  Widerstand SMD-0805 10K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R3&lt;br /&gt;
|  Widerstand SMD-0805 68K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 68,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R6&lt;br /&gt;
|  Widerstand SMD-0805 100K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 100K&lt;br /&gt;
|- &lt;br /&gt;
|  R10&lt;br /&gt;
|  Widerstand SMD-0805 56&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 56,0&lt;br /&gt;
|- &lt;br /&gt;
|  R11,R12&lt;br /&gt;
|  Widerstand SMD-0805 15&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 15,0&lt;br /&gt;
|- &lt;br /&gt;
|  X3&lt;br /&gt;
|  MCP23017 16-Portexpander I2C&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MCP 23016-I/SO&lt;br /&gt;
|- &lt;br /&gt;
|  S1,S3&lt;br /&gt;
|  Kurzhubtaster 6x6mm, Höhe: 9,5mm&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  TASTER 3301B&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  X1&lt;br /&gt;
|  ESP8266 NodeMCU V3 AMICA mit CP2102&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/V3-Wireless-module-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266-esp/32647542733.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  BME280 BreakoutBoard (4Pin: SDA,SCL,GND,3V3)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/3In1-BME280-GY-BME280-Digital-Sensor-SPI-I2C-Humidity-Temperature-and-Barometric-Pressure-Sensor-Module-1/32659765502.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  IC4&lt;br /&gt;
|  FIGARO Air Quality Gas Sensor(TGS2600)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit 1.8&amp;quot; 18-bit Farb TFT LCD Display &lt;br /&gt;
mit microSD card breakout - ST7735R (10pin)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/adafruit-1-8-18-bit-color-tft-lcd-display-with-microsd-card-breakout-st7735r EXP-R15-111]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Seeed Studio PIR Motion Sensor&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/seeed-studio-pir-motion-sensor-large-lens-version EXP-R02-351]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit ADS1115 16-Bit ADC - 4 Channel Breakout Board&lt;br /&gt;
|  Aliexpress/Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/adafruit-ads1115-16-bit-adc-4-channel-with-progrmmable-gain-amplifier EXP-R15-037]&lt;br /&gt;
|- &lt;br /&gt;
|  S2&lt;br /&gt;
|  Rotary Encoder - Illuminated (RGB)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://http://www.exp-tech.de/rotary-encoder-illuminated-rgb EXP-R05-031]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22344</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22344"/>
		<updated>2017-08-24T07:47:29Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und -Steuerung}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=esp8266_amica.png&lt;br /&gt;
|Bildbeschreibung=ESP8266 V3 Amica&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=esp8366&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Der [url=https://de.wikipedia.org/wiki/ESP8266 | ESP8266] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80–160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge. [Quelle: Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation zwischen dem Modul und FHEM erfolgt bidirektional per MQTT über WLAN. Ein MQTT Server &amp;gt;= MQTT-Version 3.1.1 ist erforderlich&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP8266 V3 Amica&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1,C3,C4,C5,C10&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Rot&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA RT&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Gelb&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Grün&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GN&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x02 RM2,54&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-002&lt;br /&gt;
|- &lt;br /&gt;
|  J1a&lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  JUMPER 2,54 SW&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Anreihklemme 2-polig, RM5,08&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 073-02&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Header RotEncRGB, Stiftleisten 2,54 mm, 2X06, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-012&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Header RotEncRGB, präz. Buchsenleiste 2x06 3mm Höhe&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  K5&lt;br /&gt;
|  Header TFT,PIR, Stiftleisten 2,54 mm, 2X08, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  K6&lt;br /&gt;
|  Header TFT, PIR, präz. Buchsenleiste 2x08, 3mm Höhe&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  R1,R9,R13&lt;br /&gt;
|  Widerstand SMD-0805 1K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 1,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R2,R4,R5,R7,R8,R19,R28,R29&lt;br /&gt;
|  Widerstand SMD-0805 10K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R3&lt;br /&gt;
|  Widerstand SMD-0805 68K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 68,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R6&lt;br /&gt;
|  Widerstand SMD-0805 100K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 100K&lt;br /&gt;
|- &lt;br /&gt;
|  R10&lt;br /&gt;
|  Widerstand SMD-0805 56&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 56,0&lt;br /&gt;
|- &lt;br /&gt;
|  R11,R12&lt;br /&gt;
|  Widerstand SMD-0805 15&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 15,0&lt;br /&gt;
|- &lt;br /&gt;
|  X3&lt;br /&gt;
|  MCP23017 16-Portexpander I2C&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MCP 23016-I/SO&lt;br /&gt;
|- &lt;br /&gt;
|  S1,S3&lt;br /&gt;
|  Kurzhubtaster 6x6mm, Höhe: 9,5mm&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  TASTER 3301B&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  X1&lt;br /&gt;
|  ESP8266 NodeMCU V3 AMICA mit CP2102&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/V3-Wireless-module-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266-esp/32647542733.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  BME280 BreakoutBoard (4Pin: SDA,SCL,GND,3V3)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/3In1-BME280-GY-BME280-Digital-Sensor-SPI-I2C-Humidity-Temperature-and-Barometric-Pressure-Sensor-Module-1/32659765502.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  IC4&lt;br /&gt;
|  FIGARO Air Quality Gas Sensor(TGS2600)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit 1.8&amp;quot; 18-bit Farb TFT LCD Display &lt;br /&gt;
mit microSD card breakout - ST7735R (10pin)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/adafruit-1-8-18-bit-color-tft-lcd-display-with-microsd-card-breakout-st7735r EXP-R15-111]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Seeed Studio PIR Motion Sensor&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/seeed-studio-pir-motion-sensor-large-lens-version EXP-R02-351]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit ADS1115 16-Bit ADC - 4 Channel Breakout Board&lt;br /&gt;
|  Aliexpress/Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/adafruit-ads1115-16-bit-adc-4-channel-with-progrmmable-gain-amplifier EXP-R15-037]&lt;br /&gt;
|- &lt;br /&gt;
|  S2&lt;br /&gt;
|  Rotary Encoder - Illuminated (RGB)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://http://www.exp-tech.de/rotary-encoder-illuminated-rgb EXP-R05-031]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22271</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22271"/>
		<updated>2017-08-21T09:46:40Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Schaltplan und Bauteilliste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und -Steuerung}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=esp8266_amica.png&lt;br /&gt;
|Bildbeschreibung=ESP8266 V3 Amica&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=esp8366&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Der [url=https://de.wikipedia.org/wiki/ESP8266 | ESP8266] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80–160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge. [Quelle: Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation zwischen dem Modul und FHEM erfolgt bidirektional per MQTT über WLAN. Ein MQTT Server &amp;gt;= MQTT-Version 3.1.1 ist erforderlich&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP8266 V3 Amica&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* TSL2561 (Licht-/Helligkeitssensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1,C3,C4,C5,C10&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Rot&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA RT&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Gelb&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Grün&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GN&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x02 RM2,54&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-002&lt;br /&gt;
|- &lt;br /&gt;
|  J1a&lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  JUMPER 2,54 SW&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Anreihklemme 2-polig, RM5,08&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 073-02&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Header RotEncRGB, Stiftleisten 2,54 mm, 2X06, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-012&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Header RotEncRGB, präz. Buchsenleiste 2x06 3mm Höhe&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  K5&lt;br /&gt;
|  Header TFT,PIR, Stiftleisten 2,54 mm, 2X08, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  K6&lt;br /&gt;
|  Header TFT, PIR, präz. Buchsenleiste 2x08, 3mm Höhe&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  R1,R9,R13&lt;br /&gt;
|  Widerstand SMD-0805 1K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 1,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R2,R4,R5,R7,R8,R19,R28,R29&lt;br /&gt;
|  Widerstand SMD-0805 10K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R3&lt;br /&gt;
|  Widerstand SMD-0805 68K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 68,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R6&lt;br /&gt;
|  Widerstand SMD-0805 100K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 100K&lt;br /&gt;
|- &lt;br /&gt;
|  R10&lt;br /&gt;
|  Widerstand SMD-0805 56&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 56,0&lt;br /&gt;
|- &lt;br /&gt;
|  R11,R12&lt;br /&gt;
|  Widerstand SMD-0805 15&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 15,0&lt;br /&gt;
|- &lt;br /&gt;
|  X3&lt;br /&gt;
|  MCP23017 16-Portexpander I2C&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MCP 23016-I/SO&lt;br /&gt;
|- &lt;br /&gt;
|  S1,S3&lt;br /&gt;
|  Kurzhubtaster 6x6mm, Höhe: 9,5mm&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  TASTER 3301B&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  X1&lt;br /&gt;
|  ESP8266 NodeMCU V3 AMICA mit CP2102&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/V3-Wireless-module-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266-esp/32647542733.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  BME280 BreakoutBoard (4Pin: SDA,SCL,GND,3V3)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  [https://www.aliexpress.com/item/3In1-BME280-GY-BME280-Digital-Sensor-SPI-I2C-Humidity-Temperature-and-Barometric-Pressure-Sensor-Module-1/32659765502.html Link]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  TSL2561 Luminosity Sensor Breakout Light Sensor&lt;br /&gt;
(5Pin: INT,SDA,SCL,GND,3V3)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  IC4&lt;br /&gt;
|  FIGARO Air Quality Gas Sensor(TGS2600)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit 1.8&amp;quot; 18-bit Farb TFT LCD Display &lt;br /&gt;
mit microSD card breakout - ST7735R (10pin)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/adafruit-1-8-18-bit-color-tft-lcd-display-with-microsd-card-breakout-st7735r EXP-R15-111]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Seeed Studio PIR Motion Sensor&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/seeed-studio-pir-motion-sensor-large-lens-version EXP-R02-351]&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit ADS1115 16-Bit ADC - 4 Channel Breakout Board&lt;br /&gt;
|  Aliexpress/Exp-Tech&lt;br /&gt;
|  [http://www.exp-tech.de/adafruit-ads1115-16-bit-adc-4-channel-with-progrmmable-gain-amplifier EXP-R15-037]&lt;br /&gt;
|- &lt;br /&gt;
|  S2&lt;br /&gt;
|  Rotary Encoder - Illuminated (RGB)&lt;br /&gt;
|  Exp-Tech&lt;br /&gt;
|  [http://http://www.exp-tech.de/rotary-encoder-illuminated-rgb EXP-R05-031]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22270</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22270"/>
		<updated>2017-08-21T09:23:38Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Schaltplan und Bauteilliste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und -Steuerung}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=esp8266_amica.png&lt;br /&gt;
|Bildbeschreibung=ESP8266 V3 Amica&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=esp8366&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Der [url=https://de.wikipedia.org/wiki/ESP8266 | ESP8266] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80–160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge. [Quelle: Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation zwischen dem Modul und FHEM erfolgt bidirektional per MQTT über WLAN. Ein MQTT Server &amp;gt;= MQTT-Version 3.1.1 ist erforderlich&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP8266 V3 Amica&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* TSL2561 (Licht-/Helligkeitssensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1,C3,C4,C5,C10&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Rot&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA RT&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Gelb&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GE&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2,D3&lt;br /&gt;
|  LowCurrent Leuchtdiode 3mm 2mA, Grün&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GN&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x02 RM2,54&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-002&lt;br /&gt;
|- &lt;br /&gt;
|  J1a&lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  JUMPER 2,54 SW&lt;br /&gt;
|- &lt;br /&gt;
|  K1&lt;br /&gt;
|  Anreihklemme 2-polig, RM5,08&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 073-02&lt;br /&gt;
|- &lt;br /&gt;
|  K2&lt;br /&gt;
|  Header RotEncRGB, Stiftleisten 2,54 mm, 2X06, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-012&lt;br /&gt;
|- &lt;br /&gt;
|  K3&lt;br /&gt;
|  Header RotEncRGB, präz. Buchsenleiste 2x06 3mm Höhe&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  K5&lt;br /&gt;
|  Header TFT,PIR, Stiftleisten 2,54 mm, 2X08, gerade&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-2-016&lt;br /&gt;
|- &lt;br /&gt;
|  K6&lt;br /&gt;
|  Header TFT, PIR, präz. Buchsenleiste 2x08, 3mm Höhe&lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  R1,R9,R13&lt;br /&gt;
|  Widerstand SMD-0805 1K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 1,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R2,R4,R5,R7,R8,R19,R28,R29&lt;br /&gt;
|  Widerstand SMD-0805 10K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 10,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R3&lt;br /&gt;
|  Widerstand SMD-0805 68K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 68,0K&lt;br /&gt;
|- &lt;br /&gt;
|  R6&lt;br /&gt;
|  Widerstand SMD-0805 100K&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 100K&lt;br /&gt;
|- &lt;br /&gt;
|  R10&lt;br /&gt;
|  Widerstand SMD-0805 56&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 56,0&lt;br /&gt;
|- &lt;br /&gt;
|  R11,R12&lt;br /&gt;
|  Widerstand SMD-0805 15&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SMD-0805 15,0&lt;br /&gt;
|- &lt;br /&gt;
|  X3&lt;br /&gt;
|  MCP23017 16-Portexpander I2C&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MCP 23016-I/SO&lt;br /&gt;
|- &lt;br /&gt;
|  S1,S3&lt;br /&gt;
|  Kurzhubtaster 6x6mm, Höhe: 9,5mm&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  TASTER 3301B&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  X1&lt;br /&gt;
|  ESP8266 NodeMCU V3 AMICA mit CP2102&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  BME280 BreakoutBoard (4Pin: SDA,SCL,GND,3V3)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
| &lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  TSL2561 BreakoutBoard (5Pin: INT,SDA,SCL,GND,3V3)&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  IC4&lt;br /&gt;
|  TGS2600&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  Adafruit 1.8&amp;quot; 18-bit Farb TFT LCD Display &lt;br /&gt;
mit microSD card breakout - ST7735R (10pin)&lt;br /&gt;
|  Exp-Tech ([http://www.exp-tech.de/adafruit-1-8-18-bit-color-tft-lcd-display-with-microsd-card-breakout-st7735r Link])&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  PIR Sensor&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  &lt;br /&gt;
|  ADS1115 Breakout Board&lt;br /&gt;
|  Aliexpress&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
|  S2&lt;br /&gt;
|  Rotary Encoder - Illuminated (RGB)&lt;br /&gt;
|  Exp-Tech ([http://http://www.exp-tech.de/rotary-encoder-illuminated-rgb Link])&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22052</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22052"/>
		<updated>2017-08-03T11:23:53Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Beschreibung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und -Steuerung}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=esp8266_amica.png&lt;br /&gt;
|Bildbeschreibung=ESP8266 V3 Amica&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=esp8366&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Der [url=https://de.wikipedia.org/wiki/ESP8266 | ESP8266] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80–160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge. [Quelle: Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Die Kommunikation zwischen dem Modul und FHEM erfolgt bidirektional per MQTT über WLAN. Ein MQTT Server &amp;gt;= MQTT-Version 3.1.1 ist erforderlich&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP8266 V3 Amica&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* TSL2561 (Licht-/Helligkeitssensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:Ph1959de&amp;diff=22051</id>
		<title>Benutzer Diskussion:Ph1959de</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:Ph1959de&amp;diff=22051"/>
		<updated>2017-08-03T10:53:24Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Änderung von Seitentiteln */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Kategoriestruktur ==&lt;br /&gt;
&lt;br /&gt;
Ich habe eine Bestandsaufnahme der Kategoriestruktur mittels Freeplane Mindmap Programm erstellt. Die Quelldatei kann ich derzeit hier nicht ablegen, da nur Bilddateien erlaubt sind. Bei Bedarf bitte nach der .mm Datei fragen, ich sende sie gern an Interessenten (die willens sind, an der Umstrukturierung mitzuarbeiten). --[[Benutzer:Ph1959de|Greetz, Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 13:13, 8. Jul. 2013 (CEST)&lt;br /&gt;
&lt;br /&gt;
::Darfst du die Datei im Forum hochladen? Dann könntest einfach von hier dorthin verlinken? Grüße, [[Benutzer:Rince|Rince]] ([[Benutzer Diskussion:Rince|Diskussion]]) 08:43, 10. Jul. 2013 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Löschkandidaten ==&lt;br /&gt;
Die ganzen unverlinkten Bilde in Löschkandidaten packen hättest du nicht machen brauchen. Ich lösch unverlinkte Bilder die aus dem Import kommen auch so... wenn ich zwischendurch immer mal Zeit [[Benutzer:Soulman|Soulman]] ([[Benutzer Diskussion:Soulman|Diskussion]]) 17:00, 9. Jul. 2013 (CEST)&lt;br /&gt;
&lt;br /&gt;
: :-) ... War ich ja gar nicht - das war Markusbloch ... von mir war der Hinweis auf die unverlinkten Dateien. --[[Benutzer:Ph1959de|Greetz, Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 23:03, 9. Jul. 2013 (CEST)&lt;br /&gt;
&lt;br /&gt;
::: Manchmal hab ich eben so ne Phase irgendwie. Ist genauso wie bei der manuellen Korrektur aller Artikel direkt nach dem Import ;-) --[[Benutzer:Markusbloch|Markusbloch]] ([[Benutzer Diskussion:Markusbloch|Diskussion]]) 18:33, 10. Jul. 2013 (CEST)&lt;br /&gt;
&lt;br /&gt;
::::Oh ja, hab irgendwie nicht aufgepasst. Also gegen die Phasen hab ich nix :-)    [[Benutzer:Soulman|Soulman]] ([[Benutzer Diskussion:Soulman|Diskussion]]) 20:24, 10. Jul. 2013 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Abbildung von Bauteilen als Foto  ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
&lt;br /&gt;
ich habe eine grundsätzliche Frage zur Darstellung von eigenen Fotos unter FHEMWiki. Ist es urheberrechtilich zulässig, eigene Fotos von Bauteilen darzustellen ?&lt;br /&gt;
&lt;br /&gt;
Gruß&lt;br /&gt;
Lothar&lt;br /&gt;
&lt;br /&gt;
:Hallo Lothar, ich bin da zwar kein Experte, denke aber, dass genau diese Art von Bildern erlaubt ist. Was nicht geht, ist das Übernehmen von Bildern von z.B. einer Herstellerseite, oder das direkte einbinden von Bildern aus fremdem Webspace. Ich denke, diese Aussage ist auch durch die Beschreibung bei Wikipedia abgedeckt: http://de.wikipedia.org/wiki/Hilfe:Bildertutorial/2_Bildrechte.&lt;br /&gt;
:&amp;lt;hr&amp;gt;&lt;br /&gt;
:--[[Benutzer:Ph1959de|Greetz, Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 13:30, 27. Aug. 2013 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Urheberschaft der alten Einträge ==&lt;br /&gt;
Hallo,&lt;br /&gt;
&lt;br /&gt;
ich habe festgestellt, dass ihr beim Neuaufsetzen des Wiki alle Urheberinformationen gelöscht habt. War das Absicht, oder ein Unfall ?&lt;br /&gt;
&lt;br /&gt;
KG&lt;br /&gt;
&lt;br /&gt;
pah&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Hallo pah, muss man wohl eher als Unfall bezeichnen. Das Wiki war komplett weg (und das Backup war nicht wirklich als solches zu bezeichnen, sondern komplett unbrauchbar) und wurde aus dem Google-Cache wieder hergestellt. Dabei ist natürlich die ganze Änderungshistorie (und damit auch das was Du vermutlich als Urheberinformation bezeichnest?) verloren gegangen. &lt;br /&gt;
:Aber das erinnert mich daran, dass ich bei einem der Administratoren dringend mal nachfragen wollte, wie es jetzt um die Sicherstellung der Backups steht.&lt;br /&gt;
:Und noch ein Nachsatz: &#039;&#039;...dass ihr beim Neuaufsetzen des Wiki...&#039;&#039;: daran war ich nicht wirklich aktiv beteiligt. Bin auch nur &amp;quot;ganz normaler&amp;quot; Wiki Benutzer ohne besondere Rechte.  --[[Benutzer:Ph1959de|Greetz, Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 14:43, 10. Nov. 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
== Links auf der Willkommensseite == &lt;br /&gt;
Hallo Peter, &lt;br /&gt;
&lt;br /&gt;
ich bin - als Neuling - nicht ganz sicher, ob die Kommunikation mit Dir so gedacht ist, aber zumindest stand das so auf der Begrüßungsseite ;-)&lt;br /&gt;
&lt;br /&gt;
Ich habe festgestellt, dass in der Begrüßungsseite die Links auf die englische Version von wikipedia verweisen. Ich denke gerade für Neulinge wäre da die deutsche Version besser. (Z.B. http://de.wikipedia.org/wiki/Wikipedia:Tutorial)&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Funfactor|Funfactor]] ([[Benutzer Diskussion:Funfactor|Diskussion]]) 12:31, 28. Nov. 2013 (CET)&lt;br /&gt;
: ... ja, ist mir bekannt (trotzdem danke für die Rückmeldung). Kann ich aber leider nicht ändern, aber wenn ich mich recht erinnere, habe ich da beim &amp;quot;Betreiber&amp;quot; unseres Wiki schon mal nachgefragt aber bisher keine Antwort bekommen. Ich werde noch mal nachhaken. --[[Benutzer:Ph1959de|Greetz, Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 13:40, 28. Nov. 2013 (CET)&lt;br /&gt;
:: Ok, ich habe mir das noch mal angeschaut. Ist für neue Benutzer wirklich ziemlich verwirrend, deshalb habe ich vorerst mal &amp;quot;hartcodiert&amp;quot; auf die Links auf die deutschen Wikipedia:-Hilfeseiten umgestellt. --[[Benutzer:Ph1959de|Greetz, Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 18:42, 28. Nov. 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
== Verwendung der Sandbox == &lt;br /&gt;
Hallo Peter,&lt;br /&gt;
&lt;br /&gt;
den Wiki &amp;quot;sauber&amp;quot; zu halten ist ja eine wichtige Sache und ich denke dafür ist die [[FhemWiki:Sandbox]] gedacht. &lt;br /&gt;
Leider ist mir völlig unklar, wie ich diese in diesem Sinne verwenden soll. Gibt es hierzu eine Anleitung oder ein paar Hinweise?&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Funfactor|Funfactor]] ([[Benutzer Diskussion:Funfactor|Diskussion]]) 17:01, 29. Nov. 2013 (CET)&lt;br /&gt;
:Die Geschichte mit der Sandbox sollte man vielleicht nicht überbewerten. Was vermieden werden sollte ist &lt;br /&gt;
:* das wilde Anlegen von neuen Artikeln mit zusätzlichem experimentieren mit den Seitennamen (das gibt dann immer gleich eine Weiterleitung und zusätzlichen Aufräumaufwand)&lt;br /&gt;
:* jede noch so kleine Änderung separat abzuspeichern (Vorschau, Vorschau, Vorschau!); es gibt einige Leute, die neue Änderungen querlesen - denen macht man die Arbeit sonst unnötig schwer&lt;br /&gt;
:* was mir sonst noch so eingefallen ist, habe ich schon auf die [[FHEMWiki:Über FHEMWiki]]-Seite geschrieben (darf natürlich ergänzt werden)&lt;br /&gt;
:Experimentieren kann man zur Not auch im eigenen Namensraum (also in Deinem Fall &amp;lt;nowiki&amp;gt;[[Funfactor/Experiment...]]&amp;lt;/nowiki&amp;gt;. Aber weitere Ideen sind jederzeit willkommen (bitte beachten: ich bin auch nur &amp;quot;ganz normaler User&amp;quot; hier). --[[Benutzer:Ph1959de|Greetz, Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 18:35, 29. Nov. 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
== On-for-timer zurücksetzen ==&lt;br /&gt;
Hi, es gibt da einen Artikel, den ich erstmals gerne mit einem Template Löschkandidat oder Qualtitästsicherung versehen würde: &#039;&#039;&#039;On-for-timer zurücksetzen&#039;&#039;&#039;&lt;br /&gt;
Erbitte Zweitmeinung. Und ich weiss  nicht, ob wir ggf passende Templates haben muss ich zugeben.&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Soulman|Soulman]] ([[Benutzer Diskussion:Soulman|Diskussion]]) 16:38, 27. Dez. 2013 (CET)&lt;br /&gt;
:&amp;lt;hr&amp;gt;&lt;br /&gt;
:--[[Benutzer:Stephan|Stephan]] ([[Benutzer Diskussion:Stephan|Diskussion]]) 16:45, 27. Dez. 2013 (CET) &#039;&#039;(Stefans Beitrag auf die Diskussionsseite des Artikels ([[Diskussion:On-for-timer_zurücksetzen]]) verschoben [ph1959de])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;hr&amp;gt;&lt;br /&gt;
:Ich (traue mich fast nicht :-), aber ich ...) verweise einfach mal auf die [[:Kategorie:Löschkandidaten]] und dortselbst auf den einleitenden Text.&lt;br /&gt;
:--[[Benutzer:Ph1959de|Greetz, Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 17:54, 27. Dez. 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
== autocreate ==&lt;br /&gt;
du hast recht. in der default konfiguration von autocreate ist autosave an. aber es gibt devices wie z.b. OWServer/HUE und ich glaube sogar HM die gehen nicht über autocreate und da ist es auf jeden fall nötig von hand save zu sagen. [[Benutzer:Justme|Justme]] 19:56, 8. Jan. 2014 (CET)&lt;br /&gt;
&lt;br /&gt;
== 1-Wire - Kategorie vs. Artikel ==&lt;br /&gt;
Ich finde es nicht richtig, die Übersichtsbeschreibung - z.B. was das 1-Wire System ist - aus der Kategorieseite herauszunehmen. Diese Trennung schafft Redundanz und verhindert sie nicht.&lt;br /&gt;
&lt;br /&gt;
Die Beschreibung ist eine unmittelbare semantische Eigenschaft der Kategorie, und kein untergeordneter Begriff.&lt;br /&gt;
--[[Benutzer:Pahenning|Pahenning]] ([[Benutzer Diskussion:Pahenning|Diskussion]]) 19:05, 22. Feb. 2014 (UTC)&lt;br /&gt;
:&#039;&#039;Ich habe mir mal erlaubt, die Diskussion zu einem eigenen Abschnitt zu machen.&#039;&#039;&lt;br /&gt;
:Nachdem Du meine Änderung mittlerweile rückgängig gemacht hast, erübrigt sich ja eine weitere Diskussion. Konsequenterweise müsstest Du aber dann auch den Artikel [[1-Wire]] mitpflegen - Artikel und Kategorietext sind derzeit nur deshalb gleich, weil ich die Inhalte mit meiner Änderung auch konsolidiert hatte.&lt;br /&gt;
:Damit die Diskussion über dieses Thema leichter auffindbar ist, kopiere ich sie noch in die [[Kategorie_Diskussion:1-Wire]], wo sie dann ggf. auch weitergeführt werden kann/sollte.&lt;br /&gt;
&lt;br /&gt;
::Werde ich machen&lt;br /&gt;
::--[[Benutzer:Pahenning|Pahenning]] ([[Benutzer Diskussion:Pahenning|Diskussion]]) 15:38, 24. Mär. 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
Es erscheinen immer mehr Schaltpläne hier im Wiki. Vorschlag: Einen allgemeinen Disclaimer des Inhaltes:&lt;br /&gt;
&lt;br /&gt;
- Nachbau aller Schaltpläne auf eigene Gefahr&lt;br /&gt;
- Weder Betreiber noch Autoren übernehmen irgendeine Haftung für Inhalte und unmittelbare oder mittelbare Folgen&lt;br /&gt;
- Hinweis auf die gesetzlichen Regelungen beim Anschluss an 230 V-Netze&lt;br /&gt;
&lt;br /&gt;
und diesen dann ausdrücklich unten neben &amp;quot;Datenschutz etc.&amp;quot; referenzieren.&lt;br /&gt;
&lt;br /&gt;
LG&lt;br /&gt;
&lt;br /&gt;
pah&lt;br /&gt;
--[[Benutzer:Pahenning|Pahenning]] ([[Benutzer Diskussion:Pahenning|Diskussion]]) 15:42, 24. Mär. 2014 (UTC)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Wenn Du damit ein Template/eine Vorlage meinst, die auf relevanten Seiten gezielt eingebunden werden kann/muss, kann ich das gern mal in Angriff nehmen. Ich würde mich dann an dem Text orientieren, den Du auf [[1W-WPump]] eingefügt hast. Im Augenblick ließe sich dafür auch die Vorlage &amp;lt;nowiki&amp;gt;{{Randnotiz|...}}&amp;lt;/nowiki&amp;gt; (siehe [[FHEMWiki:Über_FHEMWiki#Vorlagen]]) verwenden.&lt;br /&gt;
:Für einen generellen Wiki-weiten Disclaimer würde ich Dich eher bitten, das selbst zu machen oder den Wiki-Admin [[Benutzer Diskussion:akw|Arno]] anzusprechen.&lt;br /&gt;
:--[[Benutzer:Ph1959de|Greetz, Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 10:45, 25. Mär. 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Erweiterung der Vorlage &amp;quot;Infobox Hardware&amp;quot; ==&lt;br /&gt;
hallo peter, &lt;br /&gt;
ich habe deine nachricht eben erst gesehen. &lt;br /&gt;
&lt;br /&gt;
die idee war die infoboxen für modul und hardware ähnlicher zu machen. es ging mir nicht um den link zum modul sondern tatsächlich zum maintainer und da die möglichkeit aufs forums profil zu verlinken. so wie du es bei der neuen FLOORPLAN seite gemacht hast. zumindest bei &#039;meinen&#039; modulen ist es zur zeit so das die info für die hardware und das fhem modul auf einer seite stehen. siehe: pca301 oder panstamp/swap. da gibt es entweder nur eine der beiden boxen oder die gleiche info taucht in beiden boxen auf. beides gefällt mir nicht wirklich.&lt;br /&gt;
&lt;br /&gt;
eigentlich wollte ich die komplette ersteller zeile optional haben. das habe ich aber mit der tabellen formatierung noch nicht hin bekommen. jetzt ist erst mal nur der inhalt optional.&lt;br /&gt;
&lt;br /&gt;
inzwischen habe ich noch &amp;quot;FHEMDevice&amp;quot; in &amp;quot;Modulname&amp;quot; geändert so wie es in der modul infobox auch ist. und die reihenfolge unter sonstiges geändert.&lt;br /&gt;
&lt;br /&gt;
ich kann das aber auch wieder zurück bauen.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Justme|Justme]] ([[Benutzer Diskussion:Justme|Diskussion]]) 13:51, 16. Mai 2014 (UTC)&lt;br /&gt;
:Auf der [[Vorlage_Diskussion:Infobox_Hardware]]-Seite geht&#039;s weiter.&lt;br /&gt;
&lt;br /&gt;
== neue seiten ==&lt;br /&gt;
wo wir gerade dabei sind :). ich glaube es wäre schon den auskommentierten abschnitt &#039;neue seiten&#039; auf der einstiegsseite zu aktivieren. --[[Benutzer:Justme|Justme]] ([[Benutzer Diskussion:Justme|Diskussion]]) 14:01, 16. Mai 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== neue Seiten ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
&lt;br /&gt;
Ich bin auch ein Neuling, und will meine Erfahrungen gerne anbieten an andere Benutzer. Zum Beispiel habe ich gerade der Modul Openweathermap in Betrieb genommen, und habe dabei einige Probleme gelöst. Ich hätte gern mehr Beispiele gehabt, und will die darum in eine Seite verwenden. Ist das erwünscht? Wenn ja, wie sollen neue Seiten über Devices eingeordnet werden, z.B. Openweathermap? (Deutsch ist nicht meine Muttersprache, so hoffentlich mache ich nicht zuviel Fehler).&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:TrudiB|TrudiB]] ([[Benutzer Diskussion:TrudiB|Diskussion]]) 11:37, 23. Mai 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Hallo Trudi, es ist auf jeden Fall erwünscht, dass (funktionierende) Beispiele (möglichst komplett) vorgestellt werden.&lt;br /&gt;
:Um eine neue Modulbeschreibung anzulegen, würde ich empfehlen, mal [[Vorlage:Infobox_Modul]] anzuschauen. Auf der [[FHEMWiki:Über_FHEMWiki]]-Seite findest Du auch in der Spalte &amp;quot;Ref&amp;quot; eine Liste der Seiten, die nach dem Schema angelegt oder überarbeitet wurden.&lt;br /&gt;
:Im Zweifel einfach noch mal nachfragen. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 13:11, 23. Mai 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Admin ==&lt;br /&gt;
Ph1959de erhält mit sofortiger Wirkung Administrator-Status im FHEMWiki. --[[Benutzer:Akw|Akw]] ([[Benutzer Diskussion:Akw|Diskussion]]) 10:56, 31. Mai 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
==ZHK Seiten Einzelmodule ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
Ich würde den Meinungsaustausch zum Thema wiki Pages valves/stellmotor gerne zu einem gemeinsamen Abschluss bringen. Ein (Erneutes) Feedback von dir wäre dabei hilfreich. Ich möchte dich daher herzlich einladen meine&lt;br /&gt;
Disk.Seite erneut zu besuchen und um Dein Feedback zu bereichern.&lt;br /&gt;
LG florian&lt;br /&gt;
&lt;br /&gt;
==Kategorien für EnOcean ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
für EnOcean gibt es 2 Kategorien: EnOcean und EnOcean_Components (anlog Homematic u.a.). In EnOcean ist der &amp;quot;EnOcean starter guide&amp;quot; und die Kategorie ist sinnvoll ins Wiki eingebunden. In der nichteingebundenen Kategorie &amp;quot;EnOcean_Components&amp;quot; befindet sich nur ein Sensor. Ist das so beabsichtigt? oder sollte das nicht angepasste werden.&lt;br /&gt;
Danke, Christian&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Hallo Christian, nachdem die &amp;quot;EnOcean Components&amp;quot; Kategorie gerade erst &amp;quot;angelegt&amp;quot; wurde, würde ich erst mal abwarten. Eigentlich passt die Kategorie eher ins Konzept als das reine &amp;quot;EnOcean&amp;quot;. Ich tendiere also eher dazu, alles auf &amp;quot;EnOcean Components&amp;quot; zu konsolidieren. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 17:45, 13. Jul. 2014 (UTC)&lt;br /&gt;
::Hallo Peter, bin dabei, den EnOcean starter guide schrittweise zu überarbeiten. Ich würde dabei einige Aktoren- und Sensorenerläuterungen aus dem Starter guide entnehmen und als separate Artikel in &amp;quot;EnOcean components&amp;quot; aufnehmen; jedoch hätte ich gerne auch eine vernünftige Erreichbarkeit. Am einfachsten wäre es doch auch den starter guide zu verschieben. Dazu habe ich aber zuwenig Ahnung und würde das lieber einem Admin überlassen. --[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 18:09, 13. Jul. 2014 (UTC)&lt;br /&gt;
::&amp;lt;hr&amp;gt;&lt;br /&gt;
:::Christian, wenn Du mit &amp;quot;Starter Guide verschieben&amp;quot; das Umhängen in Kategorie &amp;quot;EnOcean Components&amp;quot; meinst: das habe ich gerade gemacht (die Änderung besteht einfach nur aus dem Einsetzen des neuen Kategorienames im Artikel).  Außerdem habe ich Kategorie &amp;quot;EnOcean&amp;quot; nach [[:Kategorie:EnOcean Components]] verschoben. Jetzt ist es einheitlich zu FS20, HomeMatic, etc.&lt;br /&gt;
:::... und jetzt kannst Du loslegen mit den weiteren Änderungen - nur eine Bitte noch: Namensschema gut überlegen und neue Artikel möglichst erst speichern, wenn Du wirklich komplett damit zufrieden bist (Vorschaufunktion &amp;quot;großzügig verwenden&amp;quot;). Das macht es den (wenigen) Leuten, die alle Änderungen hier im Wiki &amp;quot;sichten&amp;quot; einfacher. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 05:15, 14. Jul. 2014 (UTC)&lt;br /&gt;
:::: Vielen Dank für Deine schnelle Reaktion; werde versuchen Deine Bitten umzusetzen. Einen Wunsch habe ich natürlich noch ;-). Könnten wir EnOcean nicht auch auf der Hauptseite verlinken? Gruß, Christian--[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 09:27, 14. Jul. 2014 (UTC)&lt;br /&gt;
::::&amp;lt;hr&amp;gt;&lt;br /&gt;
:::::Ich habe ohnehin noch einige Änderungen für die Hauptseite auf meiner Liste. Da werde ich dann EnOcean auch mit aufnehmen ... bis dahin gibts ja dann vielleicht auch noch mehr Artikel in der Kategorie. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 09:44, 14. Jul. 2014 (UTC)&lt;br /&gt;
::::::zum Namensschema: Habe in der Kategorie den Hinweis zum Namensschema analog der anderen Hardwaresystme eingefügt. Mich stört eigentlich das Vorsetzen von EnOcean- ,würde es gerne weglassen, aber es scheint übliche Konvention hier zu sein. In der der Übersicht erscheint so aber alles unter &amp;quot;E&amp;quot;. Hast Du dazu eine Meinung? Sorry, wenn ich so viel frage, aber bevor ich alles durcheinanderbringe...&lt;br /&gt;
::::::&amp;lt;hr&amp;gt;&lt;br /&gt;
:::::::Kein Problem (zu fragen) - ist wirklich einfacher, als nachher alles wieder &amp;quot;geradebiegen&amp;quot; zu müssen.&lt;br /&gt;
:::::::Nun, das Namensschema kannst ja Du im Augenblick noch festlegen. Bei den (z.B.) [[:Kategorie:FS20 Components|FS20 Komponenten]] ist es, wie Du schon bemerkt hast, so, dass alles unter einem Buchstaben im Index erscheint. Wie man das ändern kann, habe ich exemplarisch mal im [[FS20 WS1 Wechselschalter]] gezeigt.&lt;br /&gt;
:::::::Hat alles so seine Vor- und Nachteile. Auch wenn Du nicht immer &amp;quot;EnOcean&amp;quot; davor schreibst, werden doch trotzdem viele Geräte mit den gleichen Buchstaben beginnen. Dann kann es ja auch gleich das EnOcean sein. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 11:27, 14. Jul. 2014 (UTC)&lt;br /&gt;
:::: Hallo Peter! Danke für das kurzfristige Aufnehmen von EnOcean auf der Hauptseite. --[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 15:14, 17. Jul. 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Subtype Tabelle für EnOcean ... Wiki-Tipps? ==&lt;br /&gt;
Hallo Peter, bräuchte noch einmal Wiki-Nachhilfe, da ich keine einfache Lösung gefunden habe. Vielleicht hast Du eine Idee:&lt;br /&gt;
Ich würde gerne auf der Kategorie-Seite EnOcean Components die vorhandenen EnOcean-Wiki-Artikel noch einmal separat anhand des EnOcean-Attributs &amp;quot;subType&amp;quot; zuordnen und sichtbar machen.&lt;br /&gt;
Quasi eine (lange) Tabelle der Art &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! subType                                       !! Wiki-Seite Geräte                    &lt;br /&gt;
|-&lt;br /&gt;
| switch                      || [[EnOcean-PTM-210-Taster]]          &lt;br /&gt;
|-&lt;br /&gt;
| lightSensor.01              || [[EnOcean-FAH60-Au%C3%9Fen-Helligkeitssensor]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Manuell könnte ich das auf die Kategorienseite einpflegen -&amp;gt; fehleranfällig&lt;br /&gt;
&lt;br /&gt;
Unterkategorien -&amp;gt; nicht erwünscht und klickintensiv, aber weniger wartungsintensiv&lt;br /&gt;
&lt;br /&gt;
Unterseite zu EnOcean Components -&amp;gt; fehleranfällig und nicht auffällig&lt;br /&gt;
&lt;br /&gt;
Hast Du dazu eine Idee/Meinung? Danke --[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 22:41, 5. Aug. 2014 (UTC)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Ich würde (zumindest für&#039;s Erste) mal was Ähnliches machen wie die &amp;quot;News&amp;quot; Sektion auf der Hauptseite. Da wird Vorlage [[Vorlage:FHEMWiki_News]] eingebunden. In dieser Vorlage wird (manuell, aber wie ich finde recht übersichtlich) eine Tabelle unter zuhilfenahme der Vorlage [[Vorlage:News]] aufgebaut.&lt;br /&gt;
:Wenn ich das richtig sehe, könntest Du sogar in (D)einer neuen Vorlage (nennen wir sie mal &amp;lt;nowiki&amp;gt;{{EnOceanSubTypeTable}}&amp;lt;/nowiki&amp;gt;) einfach die News Vorlage so &amp;lt;nowiki&amp;gt;{{News|subType|Wiki-Seite}}&amp;lt;/nowiki&amp;gt; &amp;quot;missbrauchen&amp;quot;. Und die EnOceanSubTypeTable ließe sich dann nicht nur auf der Kategorie-Seite, sondern auch auf anderen Seiten bei Bedarf einfach so einbinden. Ansonsten halte ich mal die Augen offen und schaue, ob ich noch eine andere Lösung / einen besseren Ansatz finde.&lt;br /&gt;
:P.S.: Ich finde, Du machst einen Superjob in der &amp;quot;EnOcean-Abteilung&amp;quot; hier im Wiki. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 06:16, 6. Aug. 2014 (UTC)&lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
:: Ich probiere einmal Deinen Vorschlag umzusetzen. Hoffe es gelingt; löschen kann man immer noch....&lt;br /&gt;
:: Nach Lösungen hatte ich auch gesucht, aber mit meinem Wiki-Halbwissen nichts einfaches entdecken können.&lt;br /&gt;
::P.S.: Danke, zurück an Dich (auch wegen Nachhilfe). Bei EnOcean hilft 50watt auch mit. --[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 12:04, 6. Aug. 2014 (UTC)&lt;br /&gt;
:: Hm, hatte es befürchtet, Vorlage und Text waren schnell erstellt, aber dann: &amp;lt;s&amp;gt;Deine &amp;quot;nowiki&amp;quot; Geschichte habe ich anscheinend falsch verstanden.&amp;lt;/s&amp;gt; (Man/Ich sollte erst denken und dann schreiben) Als Box -wie die News auf der Hauptseite- einbinden habe ich auf die Schnelle nicht hinbekommen. Da sind soviele Codetags mit denen ich mich noch beschäftigen muss. Hoffe ich habe hier kein Chaos verursacht; ansonsten bitte löschen. --[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 13:31, 6. Aug. 2014 (UTC)&lt;br /&gt;
::&amp;lt;hr /&amp;gt;&lt;br /&gt;
:::Sieht doch schon ganz gut aus. Für eine direkte Einbindung auf der Kategorieseite ist die Tabelle meiner Ansicht nach eh zu groß, daher finde ich den von Dir gewählen Ansatz mit der eigenen Seite ganz gut.&lt;br /&gt;
:::In der Vorlage müsstest Du noch die Erläuterung zum &amp;quot;xx&amp;quot; überarbeiten (die führende Leerstelle macht das automatisch zu einem &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;. Wenn Du die Hervorhebung willst, müsstest Du den Satz in &amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt; setzen.&lt;br /&gt;
:::Das Layout der Tabelle kann man ja auch jederzeit noch ändern.&lt;br /&gt;
:::Wenn Du noch Hilfe / Unterstützung brauchst, lass es mich wissen. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 14:36, 6. Aug. 2014 (UTC)&lt;br /&gt;
:::&amp;lt;hr /&amp;gt;&lt;br /&gt;
::::Mit dem Ergebnis bin ich nicht wirklich zufrieden. Aber bevor ich daran weiterarbeite, muss ich mehr zur Wiki-Bearbeitung lernen. &lt;br /&gt;
::::Danke für Deine bisherige Unterstützung und auch das Hilfsangebot. Werde sicherlich darauf zurückkommen. --[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 14:53, 6. Aug. 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Vorlage Link2Forum ==&lt;br /&gt;
Hallo Peter, soll ich die Vorlage Link2Forum schon nutzen? Wenn ich es zeitlich morgen schaffe, wollte ich sowieso noch einige EnOcean Wiki-Seiten anfassen. Würde es dann schon mitändern. Oder kannst Du das automatisiert? Gruß, Christian --[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 19:32, 11. Aug. 2014 (UTC)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Hallo Christian, ich würde die Vorlage bisher nur für den sparsamen Einsatz (kannst sie gern in ein oder zwei Artikeln ausprobieren) empfehlen. Insbesondere innerhalb der &amp;quot;Infobox Modul&amp;quot; bin ich noch nicht ganz soweit - da tendiere ich eher noch dazu, das Link2Forum direkt aus der Infobox heraus einzusetzen. Das wäre dann nur eine Änderung, die hoffentlich alle bisherigen Einsatzstellen der Infobox erwischen würde (wobei, der Forenlink ist meines Wissens noch lange nicht überall drin; das habe ich ja erst kürzlich in die Infobox aufgenommen).&lt;br /&gt;
:Automatisieren kann ich leider nichts; mir ist (zumindest noch) nicht bewusst, dass wir hier die Möglichkeit haben, irgendwelche Bots einzusetzen. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 21:32, 11. Aug. 2014 (UTC)&lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Nutze bei EnOcean nur &amp;quot;Infobox Hardware&amp;quot; intensiv, dort brauche ich die Links nicht. Innerhalb der Wiki-Seiten verlinke ich häufiger auf einen bestimmeten Beitrag im Forum. Dort könnte ich schon umstellen auf &amp;lt;nowiki&amp;gt;{{Link2Forum|Topic=12345|Message=54321}}&amp;lt;/nowiki&amp;gt;. Über die Vorlage &amp;quot;Infobox Modul&amp;quot; habe ich mir bei EnOcean noch keine Gedanken gemacht (Momentan grübel ich eher noch Einsatzbeispiele analog zur Vorlage EnOceanSubTypetable zusammenzufassen).  --[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 22:04, 11. Aug. 2014 (UTC)&lt;br /&gt;
::&amp;lt;hr /&amp;gt;&lt;br /&gt;
:::Wie gesagt, bitte noch &amp;quot;defensiv&amp;quot; benutzen, da ich noch keine umfangreicheren Tests gemacht habe. Daher bin ich aber natürlich auch an Rückmeldungen (die bitte dann auf der entsprechenden Diskussionsseite) zu der Vorlage interessiert (gibts Probleme, Änderungs-, Erweiterungswünsche und/oder -bedarf...?). &lt;br /&gt;
:::Ansonsten: Infobox Modul - dafür gäbe es bei EnOcean wohl nur genau eine Einsatzmöglichkeit, wenn ich das richtig sehe. Das könntest Du anlegen, wenn Du die Vorlage mal einsetzen möchtests. Oder gibt es weitere Module, die EnOcean implementieren? --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 05:06, 12. Aug. 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Inhalt Hauptseite ==&lt;br /&gt;
Hallo Peter, folgende Idee/Vorschläge zur Wiki-Hauptseite:&lt;br /&gt;
Developers Corner: die dort direkt verlinkten Seiten sind -vorsichtig formuliert- nicht gerade die Aktuellsten; könnte man dort nicht besser gut gepflegte Seiten wie [[DevelopmentModuleIntro]] oder [[DevelopmentGuidelinesAV]] direkt verlinken? Außerdem ist das &amp;quot;Guter Startpunkt, sehr empfohlen!&amp;quot; unter &amp;quot;Wie fange ich an&amp;quot; meiner Meinung nach zu schwach. Ich denke das ist DIE Grundvoraussetzung für den ersten Überblick; hast Du auch unter [[Planung]] geschrieben. &amp;quot;Tipp der Woche&amp;quot; unter Ideen und Lösungen ist (war?) &amp;quot;nur&amp;quot; der &amp;quot;Tipp des Monats&amp;quot; und sollte dann auch so genannt werden. Wird anscheinend nur von soulman gepflegt. Wenn da nichts Aktuelles drin steht, wirkt das Wiki ziemlich tot. Andererseits habe ich persönlich auch keinen großen Antrieb dort etwas zu verfassen. Wer sucht dort wirklich?&lt;br /&gt;
Ich weis, kaum aktiv und schon Rumnörgeln... (Nicht wundern: Ich habe mich heute aber schon wieder darüber geärgert, dass immer mehr Blogs Fhem-Artikel mit typischen Wiki-Inhalt veröffentlichen statt dies hier zu tuen, wo ein zentraler Anlaufpunkt sein sollte. Wenn diese Blog-Artikel auch noch umständlich oder fehlerbehaftet sind, hat man keine Einfluß auf Korrekturen und der Kram ist im Umlauf. Dagegen sollten wir arbeiten.)--[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 15:22, 14. Aug. 2014 (UTC)&lt;br /&gt;
Auch &amp;lt;nowiki&amp;gt;[[Links|wichtige Fhem Links]]&amp;lt;/nowiki&amp;gt; sind nicht gerade top-aktuell. Für wichtig halte ich die schon gar nicht. So, Frust weg ;-). Aber dennoch halte ich meine Anmerkungen für diskussionswürdig. Ich möchte auf der Hauptseite nicht eigenständig ändern, da mir nicht bekannt ist, ob das für Normal-Anwender erlaubt ist. --[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 18:31, 14. Aug. 2014 (UTC)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Christian, auch die Hauptseite kann von jedem bearbeitet werden - aber vorherige Diskussion ist da vielleicht nicht falsch. Ich habe daher Deine Anregungen mal auf die [[Diskussion:Hauptseite#Vorschläge zur Überarbeitung der Hauptseite|Diskussionsseite]] übertragen. Lass uns die Sache da weiterführen ... vielleicht beteiligt sich ja noch jemand... --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 05:41, 15. Aug. 2014 (UTC)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Ok, werde auch versuchen meine Anmerkungen passender zu platzieren. Hoffe nur, dass das dann nicht komplett untergeht. Habe aber teilweise keine Ahnung, wo das hin soll - bin noch zu Wiki-unerfahren. Aktuell bspw. [[Spezial:Gewünschte_Seiten]] enthält nach meiner Meinung eine Vielzahl von &amp;quot;Leichen&amp;quot;, die weg können (FR und alles was damit zusammenhängt; Links durch STELLMOTOR). Ich habe da keine Ahnung, wo ich anfangen soll/darf. Ich würde beispielsweise bei [[STELLMOTOR]] die  &amp;quot;toten&amp;quot; Lemmas/Seiten herausnehmen. Der Ersteller von STELLMOTOR könnte sie wieder reinnehmen, wenn er tatsächlich daran arbeiten will; traue mich aber nicht.&lt;br /&gt;
::&#039;&#039; ... vielleicht beteiligt sich ja noch jemand...&#039;&#039; Hoffnung stirbt zuletzt.... ;-) --[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 08:15, 15. Aug. 2014 (UTC)&lt;br /&gt;
::&amp;lt;hr /&amp;gt;&lt;br /&gt;
:::* Ist schon ok, das hier zu plazieren ... aber außer mir findet das hier keiner, daher der &amp;quot;Umzug&amp;quot;&lt;br /&gt;
:::* &amp;quot;Gewünschte Seiten&amp;quot; ... enthält alle &amp;lt;nowiki&amp;gt;[[Lemma...]]&amp;lt;/nowiki&amp;gt; Stellen, die auf nicht existierende Seiten verweisen. Wenn&#039;s so extrem vorkommt wie in Deinem genannten Beispiel, einfach den entsprechenden Benutzer anschreiben. Wirklich stören tut&#039;s aber auch nicht - du glaubst gar nicht, wie &#039;&#039;&#039;wenige&#039;&#039;&#039; Benutzer die &amp;quot;Gewünschte Seiten&amp;quot; Seite jemals gesehen haben, geschweige denn regelmäßig benutzen.&lt;br /&gt;
:::* Anfangen darfst Du sicherlich da, wo ein Eintrag in die &amp;quot;Gewünschten Seiten&amp;quot; offensichtlich versehentlich entstanden ist, z.B. weil jemand sich schlicht vertippt hat; wenn jemand schon mal eine Liste erstellt hat, welche Seiten noch gemacht werden müssen (wie ich z.B. auf meiner Benutzerseite :-) ), würde ich das erst mal ganz gelassen so stehen lassen.&lt;br /&gt;
:::* Und immer im Hinterkopf behalten, dass viele Benutzer hier im Wiki nur ganz gelegentlich unterwegs sind um vielleicht den einen oder anderen Tippfehler zu korrigieren - und das war&#039;s dann auch schon. Die meisten Benutzer bekommen nicht mal die Begrüßungshinweise mit ... und/oder lesen sie nicht, halten sich nicht dran, verstehen sie nicht... &lt;br /&gt;
:::Bottom line: nicht zu viel erwarten, Dich selbst nicht &amp;quot;aufreiben&amp;quot;, aber fleißig weitermachen. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 08:35, 15. Aug. 2014 (UTC)&lt;br /&gt;
:::&amp;lt;hr /&amp;gt;&lt;br /&gt;
::::Bottom line: keine Sorge, reibe mich schon nicht auf. &#039;&#039;weiter&#039;&#039;&#039;machen&#039;&#039;&#039;&#039;&#039;: ich würde es grds. einfach machen, will aber niemanden vergraulen und den Admins unnötig Arbeit machen; hätte in STELLMOTOR die &amp;quot;toten&amp;quot; Lemmas in normale Aufzählung verwandelt, FR gelöscht (Leiche des Absturzes), kleinere Änderungen an Hauptseite vorgenommen oder... Rückgängig kann man (Admin/Ersteller) es immer noch machen; eigentlich ist es mir zu viel Diskussion, die mMn keinen weiterbringt, (wie lange soll man auf Entgegnungen warten?).....  &lt;br /&gt;
::::Meine Bottom line: Keine Sorge Umstrukturierungen (Kategorien) o.ä. würde ich nicht undiskutiert vornehmen&lt;br /&gt;
:::::Nur teilweise Offtoic: Peter, wenn Du meine Verlinkung in der Homematic-Kategorie nicht OK findest, mach es einfach rückgängig: Für mich ist das in Ordnung, habe damit grds. kein Problem; gilt immer. Gruß, Christian (Habe da eh noch einen Tippfehler eingebaut!)&lt;br /&gt;
&lt;br /&gt;
== WikiArtikel Pflege ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
die &amp;quot;Verschieben&amp;quot; Option von Artikeln kannte ich in der Tat noch nicht. Danke für den Hinweis..&lt;br /&gt;
:Kein Problem &amp;amp; gern geschehen. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 06:45, 29. Aug. 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
Du kannst meine Wiki-Artikel gerne korrigieren und vereinheitlichen. Wenn du mir zusätzlich noch verrätst worauf du achtest, kann ich versuchen diese Dinge gleich selbst zu beachten.&lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Lässt sich so generell nicht beantworten; manchmal nur Kleinigkeiten. Beispiele:&lt;br /&gt;
:* Artikel in Ich-Form schreibe ich normalerweise auf neutrale Ausdrucksweise um (später weiß ohnehin niemand mehr, wer der &amp;quot;Ich&amp;quot; war); das ist verbindlicher und mMn für technische Beschreibungen angemessener.&lt;br /&gt;
:* Querverweise (Links auf andere Artikel) einfügen - auch IN anderen Artikeln wo sinnvoll Verweise auf Deinen neuen Artikel setzen (sonst entstehen &amp;quot;Waisen&amp;quot; und &amp;quot;Sackgassen&amp;quot;); ob es schon Links auf Deine Seite gibt, kannst Du über das &amp;quot;Links auf diese Seite&amp;quot; (links in der Navigationsleiste) herausfinden.&lt;br /&gt;
:* Rechtschreibung / Grammatik / Formulierung... ist eigentlich immer dabei&lt;br /&gt;
:* usw.&lt;br /&gt;
:-- [[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 06:45, 29. Aug. 2014 (UTC) &amp;lt;hr /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nochetwas: ich vermisse eine Kategorie für selbst gebaute Schaltungen. Ich bin mir immer unsicher wo ich meine Artikel einstellen soll. ZurZeit sind 1wire-Schaltungen bei 1wire. Aber für Panstamps und Arduino basierte Schaltungen habe ich nichts gefunden. Kannst du helfen?&lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Es bei Hardware die Unterkategorie &amp;quot;Other Components&amp;quot;, da passt sowas derzeit immer rein. Sofern mal eine &amp;quot;kritische Masse&amp;quot; erreicht ist (also mehr als nur ein oder zwei Artikel), kann man ja überlegen, mal eine Unterkategorie &amp;quot;Eigenentwicklungen&amp;quot; (oder ähnlich) bei Hardware einzufügen.&lt;br /&gt;
:Für Arduino gibt es schon eine Kategorie (Unterkategorie von Hardware), für Panstamp könnte man sowas auch einrichten - wenn es vom Konzept her passt (dazu verstehe ich von der Arduino/Panstamp...-Welt zu wenig). Es sollten halt immer ähnliche Dinge in einer Kategorie/Unterkategorie... zusammengefasst sein.&lt;br /&gt;
:-- [[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 06:45, 29. Aug. 2014 (UTC) &amp;lt;hr /&amp;gt;&lt;br /&gt;
::Misch mich mal ein: Fände Kategorie Eigenentwicklungen o.ä. nicht schlecht, da bestimmte Zielgruppe angesprochen wird. Ich lasse bspw. meine Finger davon. Würde den Artikel trotzdem zusätzlich noch in Other Components aufnehmen oder wenn es 1-wire ist auf jeden Fall in 1-Wire. Bei Homematic haben wir doch Unterkategorie HomeBrew, analog auch bei anderen anlegen!? Wir sollten etwas angehen....--[[Benutzer:Krikan|Krikan]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 08:18, 29. Aug. 2014 (UTC) &amp;lt;hr /&amp;gt;&lt;br /&gt;
:::Ok, dann machen wir doch einfach einen Auftrag an Tobias daraus: mal sammeln, welche Artikel schon vorliegen (oder er in Planung hat) für eine solche Kategorie, dann schauen wir kurz drüber und beschließen, welche neuen Unterkategorien und wie einsortiert...&lt;br /&gt;
:::@Tobias: ich stell das mal so auf Deine Diskussionsseite --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 08:48, 29. Aug. 2014 (UTC) &amp;lt;hr /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GRuss&lt;br /&gt;
Tobias&lt;br /&gt;
&lt;br /&gt;
== Verschieben von Wiki-Seiten ohne Weiterleitung ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
könntest Du bitte &lt;br /&gt;
* [[Z-Wave-EVR_ST814-Temperatur-_und_Feuchtesensor]] auf Z-Wave-EVR_ST81&#039;&#039;&#039;4&#039;&#039;&#039;-Temperatur-_und_Feuchtesensor ohne Weiterleitung verschieben. Der Ersteller [[Benutzer_Diskussion:Morgennebel]] ist anscheinend nicht mehr aktiv; reagiert auch nicht auf PM.&lt;br /&gt;
: -&amp;gt; Erledigt --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 12:31, 27. Dez. 2014 (UTC)&lt;br /&gt;
* hier [[Diskussion:WS3600]] mal reinschauen. Dort hätte ich auch gerne eine Wiki Seite verschoben. Keine Ahnung, ob Dir das aufgefallen ist.&lt;br /&gt;
: -&amp;gt; Ja, hatte ich gesehen ... und jetzt auch erledigt --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 12:31, 27. Dez. 2014 (UTC)&lt;br /&gt;
* WebIO_Digital auf WEBIO_12DIGITAL verschieben --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 17:36, 7. Dez. 2015 (CET)&lt;br /&gt;
: -&amp;gt; Erledigt --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 17:52, 7. Dez. 2015 (CET)&lt;br /&gt;
&lt;br /&gt;
== Nutzung von &amp;lt;nowiki&amp;gt;&amp;lt;pre style=&amp;quot;width:500px;&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt; statt  &amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
Hallo Peter,&amp;lt;BR&amp;gt;&lt;br /&gt;
Du ersetzt teilweise in den Wikiseiten die Formatierung &amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt; durch &amp;lt;nowiki&amp;gt;&amp;lt;pre style=&amp;quot;width:500px;&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;. Hat das einen bestimmten Grund? Das führt nämlich dazu, dass der Text in einigen Fällen über den Boxrand geht. Mir ist nicht klar, wie ich das umsetzen/anwenden soll. Danke. --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 07:28, 5. Feb. 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Hallo Christian, das mache ich (dachte ich) eigentlich nur, wenn die Zeilen in dem pre-Bereich durchweg relativ kurz sind. Was ich eigentlich häufiger mache, ist, pre durch code Tags zu ersetzen, gerade weil bei code ein automatischer Zeilenumbruch stattfindet. Insbesondere Einzeiler, die per nowiki, pre oder Leerzeichen in Spalte1 dann als Box formatiert werden ersetze ich gern duch &amp;lt;nowiki&amp;gt;:&amp;lt;code&amp;gt;define, attr, ...&amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt;, weil&#039;s meiner Ansicht nach einfach flüssiger lesbar ist Gesamtkontext.&lt;br /&gt;
:Verhalte ich mich am Ende anders, als ich es in [[FHEMWiki:Über_FHEMWiki#Gewünschtes Verhalten / &amp;quot;Do and Don&#039;t&amp;quot;|diesem Abschnitt]] beschrieben habe? --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 07:45, 5. Feb. 2015 (UTC)&lt;br /&gt;
::Werde es beobachten. Vielleicht bin ich auch nur übermüdet/unkonzentriert: Habe nämlich gerade gesehen, dass ich [[HM-OU-CFM-Pl_MP3_Funk-Gong_mit_Signalleuchte|hier]] -was letztliche Anstoß zum Schreiben war- falsch geschaut habe. Die anderen Beispiele, die ich in Erinnerung habe, müsste ich mir noch einmal raussuchen. Vielleicht habe ich da auch schief geschaut. Also bitte erst einmal vergessen. Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 08:18, 5. Feb. 2015 (UTC) PS: Schaust Du bitte mit auf die diversen Unterkategorien zu &amp;quot;Hardware Typen&amp;quot; die ich angelegt habe und greifst bitte ggfs. korrigiernd ein.&lt;br /&gt;
:::Die neuen Unterkategorien habe ich schon zur Kenntnis genommen. Nachdem Du die letzten Änderungen an der Kategoriestruktur gemacht hast, kennst Du Dich da mittlerweile ja mindestens so gut aus wie ich. Das Einzige, was mir aufgefallen ist: auf den Kategorieseiten könnten noch ein paar kurze Worte zur Beschreibung der Kategorie eingefügt werden... aber das eilt nicht. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 08:26, 5. Feb. 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== PGM3 - Entwicklungsstand ==&lt;br /&gt;
Hallo Peter!&lt;br /&gt;
Habe heute bei PGM3 und PGM5 recht selbstsicher einen Hinweis &amp;quot;seit längerem nicht aktiv weiterentwickelt&amp;quot; hinzugefügt. Im Forum habe ich nichts gefunden und auch zu Google-Groups-Zeiten kann ich mich nicht wirklich erinnern. Bei der Nachkontrolle habe ich dann mit Erschrecken festgestellt, dass Du PGM3 auf der ToDo-Liste stehen hast und das plötzlich Martin Hass&#039; PGM3 Screenshot-Seiten nach einer gefühlten Ewigkeit wieder erreichbar sind. Irre ich mich und PGM3 ist doch noch ein (aktuelles) Thema? Gruß, [[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 21:09, 18. Feb. 2015 (CET)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Christian, PGM3 auf meiner Todo-Liste ... eine Jugendsünde :-) ... fliegt gleich runter, weil bestimmt zwei Jahre alt und nie was gemacht. Die Updates auf Martin&#039;s Seiten solltest Du natürlich beobachten, aber auf mich musst Du keine Rücksicht nehmen. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 06:55, 19. Feb. 2015 (CET)&lt;br /&gt;
&lt;br /&gt;
== Begrüßungsseite Link: Was Wikipedia nicht ist ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
ich hoffe, dass ich das hier jetzt richtig mache :-). Beim aufmerksamen Lesen der Begrüßungseite bin ich gleich auf einen Link: Was_Wikipedia_nicht_ist getappst. &lt;br /&gt;
&lt;br /&gt;
Den kennt Wikipedia nicht...&lt;br /&gt;
Gruß Otto&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Hallo Otto, danke für&#039;s aufmerksame Lesen :-)&lt;br /&gt;
:habe den (und einen weiteren) fehlerhaften Link korrigiert. Da die Vorlage mit &amp;quot;subst:&amp;quot; eingebunden wird, profitieren leider nur die Neuankömmlinge ab jetzt davon.&lt;br /&gt;
:Grund für das Problem ist wohl die Art, wie das Fhem-Wiki aufgesetzt wurde (bin mir aber jetzt nicht sicher, ob sich da in dieser Hinsicht nochmal was geändert hat, oder ob ich die beiden Links schlicht vergessen habe ... andere Links, wie z.B. den auf das Tutorial, habe ich vor längerer Zeit schon mal umgestellt). --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 06:57, 2. Apr. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Pflege von [[Spezial:Gewünschte_Seiten]] ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
bin gerade im Aufräumfieber und über die gewünschten Seiten gestolpert. Einige Dinge habe ich eigenständig geklärt, aber nun benötige ich Deine Hilfe. Insbesondere das zum Aussterben verurteilte FS20 taucht dort sehr umfangreich auf. Die abnehmende Bedeutung spricht aus meiner Sicht dafür, diese &amp;quot;gewünschten Seiten&amp;quot; dort herauszunehmen. Denke es gibt wichtigere Baustellen und dringendere notwendige Seiten. Zudem sind das teilweise Karteileichen, die seit Urzeiten dort geführt werden. Aus meiner Sicht schreckt das, neben den Wiki-Softwareproblemen, Interessenten von der Mitarbeit ab. Darum bitte ich Dich um Deine Meinung als FS20-User, bevor ich das weiter anleiere. Andere Punkte, die ich nicht &#039;&#039;&#039;&#039;&#039;&amp;lt;- meinst Du wirklich *nicht*?&#039;&#039;&#039;&#039;&#039; &#039;&#039;&amp;lt;-ergänze: allein/eigenständig!&#039;&#039; klären wollte, betreffen bspw. die gewünschte Seite &amp;quot;Hilfe:Seite bearbeiten&amp;quot;, &amp;quot;FHEMWiki:Stubs entfernen&amp;quot;. Schöne Feiertage, [[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]])&lt;br /&gt;
:Hallo Christian, nur als schnelle Antwort (zu viele Baustellen gerade):&lt;br /&gt;
:* Gewünschte Seiten, speziell FS20: das was Mediawiki in die &amp;quot;gewünschten Seiten&amp;quot; einsortiert, sind die intra-Wiki Links, die nicht existieren also &amp;lt;nowiki&amp;gt;[[Existiert nicht]]&amp;lt;/nowiki&amp;gt; würde da z.B. auftauchen - gewünschte Seiten im eigentlichen Sinn sind das nur dann, wenn der Verlinkung absichtlich gemacht wurde ... wie z.B. bei den vielen FS20 Seiten. Die sind nämlich häufig bei mir (hast Du doch bestimmt gesehen ;-) ), weil ich noch zu diversen FS20 Geräten was schreiben möchte und sollte. Leider (die vielen Baustellen, siehe oben) komme ich derzeit und schon lange nicht dazu. Ansonsten habe ich da immer mal wieder reingeschaut, um falsch geschriebene Links aufzuspüren und zu bereinigen. Aber vielleicht sollten wir den Link darauf einfach von der Hauptseite entfernen und z.B. auf die/eine Interna Seite holen. Vielleicht als Ersatz / Nachfolger der Randnotiz von der Über FHEMWiki Seite, auf der ich die offenen Baustellen mal aufgelistet hatte (und schon länger nicht mehr gepflegt).&lt;br /&gt;
::* Natürlich habe ich gesehen, dass FS20 (auch) von Dir kommt; darum habe ich mich auch mit Wiki-Eingriffen zurückgehalten, sonst.. ;-). Dein Alternativvorschlag ist gut. Die offenen Baustellen auf der Über FHEMWiki Seite: Zu den Kategorien wollte ich -auch seit langem- eine bessere &amp;quot;Anweisung&amp;quot; an die anderen  Wikibearbeiter schreiben und dann abschließen. Und mich dann wieder verstärkt &amp;quot;meinen&amp;quot; eigentlichen Themen ZWave/EnO widmen.&lt;br /&gt;
:* Die Stubs-Seite / Kategorie / Vorlage kommt von Arno (akw), ist aber schon lange nicht mehr gepflegt worden und wird wohl auch nicht mehr aktiv genutzt&lt;br /&gt;
:* &#039;&#039;&#039;Hilfe:Seite bearbeiten&#039;&#039;&#039; fällt wohl in die Kategorie &amp;quot;Wiki-Softwareprobleme&amp;quot; (Du meinst den Link &amp;quot;Bearbeitungshilfe&amp;quot; neben den {{Taste|Speichern}} {{Taste|Vorschau zeigen}} Buttons?) und würde ich erst wieder aktiv in Angriff nehmen, wenn Arno die offenen Probleme komplett abgearbeitet hat :-(&lt;br /&gt;
::* Ja, werde mal Arno bitten.... [[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]])&lt;br /&gt;
:Ebenfalls schöne Feiertage, --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 15:21, 3. Apr. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Vorlagen: Link2Forum,.. ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
ist die Notwendigkeit der Vorlagen &amp;quot;Link2Forum&amp;quot;,.. nur darin begründet, dass man dann einfacher Anpassungen bei Änderungen der zugrundeliegenden Links vornehmen kann? Ich stelle nämlich immer wieder fest, dass außer uns beiden, die sowieso von (fast) keinem Wiki-Bearbeiter genutzt werden. Der Umstellungsaufwand im Änderungsfalle wird so vermutlich nicht sehr reduziert. Kann man dieses Problem der Linkänderungen nicht einfacher mit einem Bot lösen, der das Wiki mit Suchen/Ersetzen durchgeht? Dann hättest Du auch nicht den Pflegeaufwand für die Vorlagen. Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 11:16, 13. Aug. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Hallo Christian, leider habe ich keine große Hoffnung, dass wir hier einmal die Chance haben werden, &#039;&#039;&#039;bot&#039;&#039;&#039;s einzusetzen und kenne mich damit auch (zumindest noch) nicht aus (Ausreden? Vielleicht). &lt;br /&gt;
:Interessant: ich habe gerade die DocLink Vorlage mal soweit fertig, dass man zumindest die ELV Links überarbeiten / generalisieren kann. &lt;br /&gt;
:Unterm Strich: ich werde die Vorlagen weiter pflegen und benutzen, wer sie benutzen mag soll&#039;s tun, zwingen werd ich niemanden. Wir haben halt immer noch sehr wenige Wiki-erfahrene Benutzer hier, was man auch an anderen Stellen merkt. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 11:50, 13. Aug. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:: Hallo Peter, will Dich auch nicht abhalten ;-) , sondern entlasten. Weil ich die DocLink-Vorlage gesehen habe, kam ich auf das Thema. Ich werde das bot-Thema mal auf meinen &amp;quot;Wunschzettel&amp;quot; aufnehmen und aktiv verfolgen. Schauen wir einmal, was sich ergibt. Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 12:04, 13. Aug. 2015 (CEST)&lt;br /&gt;
::&amp;lt;hr&amp;gt;&lt;br /&gt;
:::Kein Problem - ich denke es gibt bei beiden Vorgehensweisen Vor- und Nachteile. Meine Skepsis beruht darauf, dass die Bots ja wohl auf dem Wiki-Server laufen und ich kaum Hoffnung habe, da mehr Zugriff zu bekommen. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 12:16, 13. Aug. 2015 (CEST)&lt;br /&gt;
== Codierung  ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
&lt;br /&gt;
Du schreibst auf meiner Benutzerseite&lt;br /&gt;
 HTML-Tags bitte nur verwenden, wenn es nicht anders geht&lt;br /&gt;
im Artikel &lt;br /&gt;
[[EnOcean-D-452-FU-EP-JR-Aktor-Beschattungselemente-Rollladen]]&lt;br /&gt;
hast Du die Codierung mittels Leerzeichen durch &amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/Code&amp;gt;&amp;lt;/nowiki&amp;gt; ersetzt. Die Leerzeichen waren aber in [[http://www.fhemwiki.de/wiki/FHEMWiki:%C3%9Cber_FHEMWiki#Gewünschtes Verhalten / &amp;quot;Do and Don&#039;t&amp;quot;]] explizit erlaubt.&lt;br /&gt;
Einen anderen Artikel von mir hast Du nicht korrigert.&lt;br /&gt;
Wo liegt mein Fehler? Ich wollte der Gemeinschaft gerne etwas zurück geben - vor allem für die Arbeit die Christian mit mir gehabt hat.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:BenMarloe|BenMarloe]] ([[Benutzer Diskussion:BenMarloe|Diskussion]]) 00:25, 21. Aug. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Hallo Ben(Marloe), das ist schnell erklärt:&lt;br /&gt;
:HTML-Tags nur verwenden - bezieht sich, wenn ich das jemandem schreibe, meist auf exzessive &amp;lt;nowiki&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/nowiki&amp;gt;-Tags. Da kann (sollte) im Wiki meistens einfach eine Leerzeile oder ein Zeilenumbruch verwendet werden (einfach die &amp;quot;Vorschau-funktion&amp;quot; verwenden, um zu kontrollieren, ob&#039;s &amp;quot;richtig&amp;quot; aussieht). Außerdem sieht der Wiki-Quelltext damit schon dem formatierten Ergebnis ähnlicher und ist einfacher lesbar. Nur bei manchen Vorlagen oder z.B. in Aufzählungen ist ein Zeilenumbruch &amp;quot;kontraproduktiv&amp;quot; und dann ist ein br nötig.&lt;br /&gt;
:Leerzeichen vs. code ... am besten veranschaulicht:&lt;br /&gt;
 Leerzeichen in Position 1&lt;br /&gt;
:... und der weitere Text. Im Vergleich dazu:&lt;br /&gt;
::&amp;lt;code&amp;gt;ein (eingerückter) Einzeiler, der als Code formatiert werden soll&amp;lt;/code&amp;gt;&lt;br /&gt;
:oder noch mal anders:&lt;br /&gt;
 Leerzeichen und ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel Text&lt;br /&gt;
::&amp;lt;code&amp;gt;ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel, ganz viel Text, der als Code formatiert werden soll&amp;lt;/code&amp;gt;&lt;br /&gt;
:Ich hoffe, der Unterschied wird damit klar: der Text wird meiner Ansicht nach kompakter, die Hervorhebung ist aber trotzdem da. Und: bei Mehrzeilern sieht das schon wieder ganz anders aus. Da ist aber meistens dann die Verwendung von &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt; die bessere Wahl, weil damit (im Wiki Source Text) besser verdeutlicht wird, dass die Formatierung absichtlich so gewählt ist.&lt;br /&gt;
:Zum Thema &#039;&#039;Einen anderen Artikel von mir hast Du nicht korrigert&#039;&#039; ... ich kann nicht überall sein :-) ... nein, ohne Scherz, ich mache das hier auch &amp;quot;nur nebenbei&amp;quot;, manches ist Geschmackssache, manches übersehe ich, manches ist &amp;quot;zu unwichtig&amp;quot;, etc.&lt;br /&gt;
:Und &#039;&#039;Wo liegt mein Fehler?&#039;&#039; - nirgends; einfach fleissig weiter mitmachen.&lt;br /&gt;
:--[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 07:14, 21. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Neue Seite oder Ergänzung [erledigt]==&lt;br /&gt;
Mit Eurer Hilfe geht jetzt der EnOcean-FUD61NPN-Funk-Universal-Dimmaktor unidirektional bei mir.&lt;br /&gt;
Ich würde eine Anleitung erstellen, bin mir aber nicht sicher, ob ich das lieber als &lt;br /&gt;
# Ergänzung auf die existente Seite oder &lt;br /&gt;
# Kommentare auf die existente Seite mache oder&lt;br /&gt;
# eine neue Seite aufmache und wie die dann heißen soll.&lt;br /&gt;
Ich bitte um Vorschläge/Richtlinien&amp;lt;br&amp;gt;&lt;br /&gt;
--[[Benutzer:BenMarloe|BenMarloe]] ([[Benutzer Diskussion:BenMarloe|Diskussion]]) 16:48, 11. Sep. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Ich denke, das kommt auf Art und Umfang der Änderungen/Ergänzungen an. Wenn das ein einzelner Abschnitt mit den Unterschieden ist, passt das sicherlich gut in [[EnOcean-FUD61NPN-Funk-Universal-Dimmaktor]], wären es Kommentare, überall auf der Seite verstreut, würde ich eine eigene Seite bevorzugen (dann bitte an den Seitennamen &amp;quot; (unidirektional)&amp;quot; anhängen). Die Kommentarseite ist für sowas eher nicht geeignet. &lt;br /&gt;
:Wenn&#039;s eine neue Seite wird, dann bitte auf der Seite des bidirektionalen Aktors verlinken. In jedem Fall die Bemerkung über *direktional... anpassen. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 16:10, 12. Sep. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
::so wird&#039;s gemacht. --[[Benutzer:BenMarloe|BenMarloe]] ([[Benutzer Diskussion:BenMarloe|Diskussion]]) 22:02, 18. Sep. 2015 (CEST)&lt;br /&gt;
==Extension SyntaxHighlight_GeSHi==&lt;br /&gt;
Ich hätte die [https://www.mediawiki.org/wiki/Extension:SyntaxHighlight_GeSHi Extension] gerne, um Code besser lesbar darzustellen. Sollte eigentlich ab MediaWiki Version 1.21 dabei sein, aber eventuell ist sie nicht aktiviert? Wen muss ich dazu anbetteln? ;)&lt;br /&gt;
--[[Benutzer:Drhirn|Drhirn]] ([[Benutzer Diskussion:Drhirn|Diskussion]]) 15:58, 1. Okt. 2015 (CEST)&lt;br /&gt;
:[[Benutzer Diskussion:Akw#Wiki-Erweiterung Syntaxhighlight|Hier]] mal nachhaken? --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 18:57, 1. Okt. 2015 (CEST)&lt;br /&gt;
::Hat, wie ich gerade sehe, schon jemand anderer übernommen :) --[[Benutzer:Drhirn|Drhirn]] ([[Benutzer Diskussion:Drhirn|Diskussion]]) 10:26, 5. Okt. 2015 (CEST)&lt;br /&gt;
::&amp;lt;hr /&amp;gt;&lt;br /&gt;
:::Nicht verzagen ... jede Stimme zählt :-) --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 16:36, 5. Okt. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Vorlage &amp;quot;Hinweis&amp;quot; ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
hast Du Dir die neue Vorlage &amp;quot;Hinweis&amp;quot; einmal angeschaut? Gibt es Vorbehalte von Deiner Seite oder kann ich die problemlos nutzen. Habe die Vorlage testweise mal in 2 Seiten eingebaut und finde sie in gewissen Situationen grds. nicht schlecht.&lt;br /&gt;
Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 22:45, 6. Okt. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Hallo Christian, ja, die Vorlage habe ich gesehen und mal kurz reingeschaut. Gibts von meiner Seite keine Einwände (den Kommentar &amp;quot;Randnotiz ... leider nur Teil der Bildschirmbreite...&amp;quot; finde ich etwas befremdlich, da der Name der Vorlage ja genau das verspricht, aber das tut ja der eigentlichen Sache keinen Abbruch) - ich denke, es gibt für die Vorlage sinnvolle Einsatzgebiete, ganz nach gewünschtem Effekt / Erscheinungsbild. Es unterbricht halt den Lesefluss deutlich stärker als die Randnotiz, aber wenn das gewünscht ist, dann passts ja. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 10:14, 7. Okt. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Sollten wir die Vorlage dann nicht auch [[FHEMWiki:%C3%9Cber_FHEMWiki#Vorlagen|hier]] aufnehmen? Falls ja, Du oder ich? Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 10:30, 7. Okt. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
::Naja, &amp;quot;befremdlich&amp;quot; ;). Ich wollte nur erklären, warum ich extra eine neue Vorlage gemacht habe. Ich hätte natürlich auch die Vorlage &amp;quot;Randnotiz&amp;quot; um eine Option für die Breitenauswahl erweitern können. Grundsätzlich hätte die Randnotiz nämlich eh getan, was ich wollte. Aber das wäre etwas viel Arbeit geworden. --[[Benutzer:Drhirn|Drhirn]] ([[Benutzer Diskussion:Drhirn|Diskussion]]) 11:25, 23. Okt. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Änderung von Gliederungspunkten in Artikeln und wiki-interne Links ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
hier [[Konfiguration]] wurde gestern ein Gliederungspunkt umbenannt. Gibt es/ Kennst Du eine einfache Möglichkeit herauszufinden, welche wiki-internen Link jetzt nicht mehr funktionieren? Bei den Spezial-Seiten finde ich dazu nichts und Google hilft mir auch nicht. Die Wiki-interne Suche ist dabei auch nicht optimal. Bisher vermeide ich aus diesem Grund auch eine Umbenennung von Gliederungspunkt. Danke und Gruß --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 09:48, 26. Okt. 2015 (CET)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Hallo Christian,&lt;br /&gt;
:ich hatte die Änderung zwar kurz angeschaut, aber gar nicht an diese (möglichen) Auswirkungen gedacht. Habe (auf die Schnelle) auch nur wenig zu diesem Thema gefunden (ausser vielleicht diese Seite in [https://en.wikipedia.org/wiki/Wikipedia:Database_reports/Broken_section_anchors/Configuration Wikipedia]).&lt;br /&gt;
:Vermutlich (hoffentlich?) werden wir aber nicht allzu häufig von dieser Problematik betroffen sein, für diesen aktuellen Fall sehe ich folgende mögliche Vorgehensweisen:&lt;br /&gt;
:* Änderung der Überschrift zurücknehmen, dafür diesen Abschnitt eine Gliederungsebene tiefer (passt dann ohnehin besser in die Seitenstruktur)&lt;br /&gt;
:* Verwendung von &amp;lt;nowiki&amp;gt;{{Anker|Ankertext}}&amp;lt;/nowiki&amp;gt; mit der alten Überschrift, um das als zusätzlichen Anker einzufügen&lt;br /&gt;
:--[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 11:25, 26. Okt. 2015 (CET)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Hallo Peter, &lt;br /&gt;
::habe es mit 1. Ansatz umgesetzt, da mir der 2. Weg zu umständlich und (später) fehleranfällig erscheint. Obwohl ich irgendwann mal gelernt habe, dass es niemals nur einen Gliederungs-Unterpunkt gibt (halte ich hier aber auch nicht immer ein ;-) )&lt;br /&gt;
::Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 13:33, 26. Okt. 2015 (CET)&lt;br /&gt;
&lt;br /&gt;
== Neuen Artikel verschieben/umbenenen ==&lt;br /&gt;
Hallo Peter, &lt;br /&gt;
&lt;br /&gt;
ich habe meinen ersten Artikel erstellt und würde gerne den nächsten Schritt machen. Wohin muß ich verschieben und wie gehts dann weiter. (Wiki Anfänger)&lt;br /&gt;
&lt;br /&gt;
Gruß [[Benutzer:Eisix|Eisix]] ([[Benutzer Diskussion:Eisix|Diskussion]]) 16:14, 25. Jan. 2016 (CET)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Hallo Eisix,&lt;br /&gt;
:# es wäre nicht nötig gewesen, den Artikel erst auf Deiner Benutzerseite zu erstellen; so viel ist hier nicht los, dass bei einem neuen Artikel gleich Konflikte entstehen; ich glaube, nur &amp;quot;verschieben&amp;quot; geht in diesem Fall nicht so gut, daher würde ich vorschlagen:&lt;br /&gt;
:# Du gehst auf deiner Benutzerseite auf &amp;quot;Bearbeiten&amp;quot; und&lt;br /&gt;
:# fügst &amp;lt;nowiki&amp;gt;[[EnOcean MwC-32...]]&amp;lt;/nowiki&amp;gt; (die Details für die Namensfindung stehen auf der Kategorieseite [[:Kategorie:EnOcean Components]] oben rechts (ich glaube, &amp;quot;Deinen&amp;quot; Namen musst Du da noch etwas nachbearbeiten; im Zweifel [[Benutzer Diskussion:Krikan|Krikan]] fragen)) ein&lt;br /&gt;
:# Klickst auf {{Taste|Vorschau zeigen}}; daraufhin bekommst Du Deinen gewählten Seitentitel in rot in der Vorschau angezeigt; jetzt&lt;br /&gt;
:# öffnest Du diese &amp;quot;rote Seite&amp;quot; in einem neuen Browser-Tab&lt;br /&gt;
:# kopierst bzw. verschiebst den Quelltext Deiner Seite (ohne die gerade eingefügte Zeile) in das leere Editierfenster des zweiten Browser-Tabs&lt;br /&gt;
:# Dann noch ein paar Korrekturen (z.B. die korrekte Kategorie &amp;quot;EnOcean Components&amp;quot; verwenden); und schau Dir existierende (EnOcean-)Seiten (Gliederung!) an und übernimm das bitte entsprechend &lt;br /&gt;
:# Vorschau der neuen Seite anzeigen und überprüfen&lt;br /&gt;
:# wenn alles soweit stimmt, &amp;quot;Seite speichern&amp;quot;&lt;br /&gt;
:# Auf Deiner Benutzerseite kannst Du jetzt (z.B.) die Seite in (D)eine Liste der von Dir erstellten Seiten aufnehmen ... und evtl. noch ein paar Worte über Dich schreiben&lt;br /&gt;
:--[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 18:18, 25. Jan. 2016 (CET)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
: Hallo Eisix, Hallo Peter!&lt;br /&gt;
: Mische mich hier mal ein: Sind die Bildrechte für BSC-MwC-32.jpeg geklärt? Falls nein, bitte Bild nicht einbinden/löschen und gegebenenfalls eigenes Foto hochladen.&lt;br /&gt;
: Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 19:06, 25. Jan. 2016 (CET)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
: Hallo,&lt;br /&gt;
: @Peter ich wollte nicht wie ein Elefant im Porzellanladen durch die Wiki stapfen, dafür kenne ich mich damit zu wenig aus ;-)&lt;br /&gt;
: @Krikan guter Einwand das Bild ist von www.enocean-alliance.org wo auch die verlinkte Anleitung her ist. Eigenes Bild ist leider nicht mehr möglich da das ganze hinter einem Aquarium verbaut ist und nur mit größerem Aufwand wieder rauszuholen ist. Also nehme ich das Bild am besten wieder raus !?&lt;br /&gt;
:Gruß  --[[Benutzer:Eisix|Eisix]] ([[Benutzer Diskussion:Eisix|Diskussion]]) 10:19, 26. Jan. 2016 (CET)&lt;br /&gt;
&lt;br /&gt;
== Unterscheidung Code für DEF und .cfg ==&lt;br /&gt;
Hallo Peter!&amp;lt;BR&amp;gt;&lt;br /&gt;
habe gelesen, dass Du auf [[Ölverbrauchsanzeige_/_Betriebsstundenzähler]] den Code als .cfg-Code per Hinweis markiert hast. Bisher haben wir bei der Unterscheidung DEF,Einzeiler, aus optischen Gründen umgebrochenen Einzeiler  und .cfg Code im Wiki kein wirkliches System. Es bedarf jeweils der Interpretation. Vieles ist derzeit cfg.-Code. Eigentlich wünsche ich mir, dass wir überall einen Hinweis in den Codeboxen DEF bzw. cfg einpflegen. Das dürfte aber praktisch nicht umsetzbar sein und auch hohes Fehlerpotenzial haben. Hatte auch schon einmal einen Versuch in die Richtung unternommen, aber aufgegeben.&amp;lt;BR&amp;gt;&lt;br /&gt;
Momentan tendiere ich dazu, auf  [[Konfiguration]] einen Erläuterung einzufügen, woran man die verschiedenen Code-Varianten erkennt und die Seite -wie Du es mal geplant hattest, von allen anderen Seiten zu verlinken. Das ist mMn einfacher. Hast Du dazu eine Meinung/Idee?&amp;lt;BR&amp;gt;&lt;br /&gt;
Würde das auf ggfs. auf meine Todo-Liste setzen.&amp;lt;BR&amp;gt;&lt;br /&gt;
Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 10:10, 16. Feb. 2016 (CET)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Hallo Christian, ja, so eine grundlegende Vorgehensweise fehlt uns da noch. War mir auch bewusst, ich wollte aber in diesem konkreten Fall gleich was eintragen, weil das fehlende Wissen zu diesem Thema der Auslöser für den Forenthread war. Ich behalte das Thema auch im Hinterkopf - die zündende Idee, wie man das am besten umsetzen kann fehlt mir aber leider noch. Wer immer von uns früher dazu kommt, hat gewonnen :-) --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 12:28, 16. Feb. 2016 (CET)&lt;br /&gt;
&lt;br /&gt;
==Nochmal Begrüßungsseite==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
&lt;br /&gt;
Mein Benutzerkonto wurde gerade freigeschaltet und ich habe mich gewundert, warum die Begrüßungsseite so &amp;quot;wikipedistisch&amp;quot; ist. Sollten wir da nicht mal rangehen und eine Benutzerbegrüßung schreiben, die an das fhemwiki angepasst ist?&lt;br /&gt;
&lt;br /&gt;
Ein paar Grundlagen wie Bearbeitungshilfe würde ich auch aus Wikipedia einbinden, aber die Infoseite &amp;quot;was Wikipedia nicht ist&amp;quot; scheint mir irgendwie hier deplatziert...&lt;br /&gt;
&lt;br /&gt;
Ich würde mich dransetzen, aber brauche dann wahrscheinlich Hinweise, wo hier im fhemwiki die &amp;quot;Richtlinien&amp;quot; und andere Infos stecken, die man in der Willkommensnachricht verlinken könnte/sollte.&lt;br /&gt;
&lt;br /&gt;
Gruß, Markus --[[Benutzer:Krokofant|Krokofant]] ([[Benutzer Diskussion:Krokofant|Diskussion]]) 11:31, 5. Mär. 2016 (CET)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Hallo Markus, die Begrüßungs-Vorlage ist einfach aus der Situation heraus mal entstanden. Es gab viele Neuanmeldungen von Leuten, die noch keinerlei Berührung mit Wiki(media) hatten und entsprechend gedankenlos ans Werk gegangen sind. War dann nachher mehr Aufräumarbeit nötig als dass die Mitarbeit Hilfe gewesen wäre. Dazu sind ein paar Hinweise auf Fhem-Wiki-Spezifika eingeflossen ... aber &#039;&#039;gelesen&#039;&#039; wird das Ganze leider ohnehin höchst selten, wenn man manche Beiräge hier so sieht.&lt;br /&gt;
:Aber lass Dich nicht entmutigen, Vorschläge und aktive Mitarbeit sind natürlich herzlich willkommen. &lt;br /&gt;
:Fhem-spezifische Informationen sind eigentlich komplett in Über FHEMWiki gesammelt bzw. über diese Seite zu erreichen. Wenn Du Dir die Änderungshistorie der Seite anschaust, wirst Du auch feststellen, dass das eine One-(oder Two, Krikan hilft auch mit)-Man-Show ist - von einigen &amp;quot;kurzen Strohfeuern&amp;quot; mal abgesehen. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 12:02, 5. Mär. 2016 (CET)&lt;br /&gt;
&lt;br /&gt;
== Vorlage:News und Interwiki-Links ==&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
&lt;br /&gt;
danke für die Einrichtung meines Logons.&lt;br /&gt;
# ich habe mir mal erlaubt die [[Vorlage:News]] zu Dokumentieren und dabei die Orientierung der ersten Spalte zu ändern. Ich finde es etwas irritierend beim Lesen wenn das Datum nicht auf der ersten Zeile des folgenden Eintrags steht. Ich hoffe das ist so für euch in Ordnung, ansonsten lässt sich das jederzeit wieder ändern.&amp;lt;br /&amp;gt; &amp;gt;&amp;gt; &#039;&#039;Klar; sieht jetzt besser aus und Dokumentation ist immer gut; ich sehe auch sonst keine Nachteile&#039;&#039; --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 14:45, 21. Apr. 2016 (CEST)&lt;br /&gt;
# Die Seite [[Spezial:Meiste_Interwikilinks]] ist hier leer und die [https://www.mediawiki.org/wiki/Extension:Interwiki Extension:Interwiki] scheint auch nicht installiert bzw. aktiviert zu sein. Sie gehört seit V1.21 zum Installationsbündel und müsste bei der hiesigen V1.24 also schon dabei sein. Man bräuchte sie also nur in Betrieb nehmen. Links auf die Wikipedia werden im FHEMWiki offenbar explizit als ausgeschriebene URL ausgeführt. Das ist meiner Erfahrung nach ungünstig. Auch Beiträge aus dem FHEM-Forum könnte man mit Interwikilinks konsistenter handhaben. Auch die [[Vorlage:DocLink]] lässt sich vermutlich damit einfacher gestalten.&amp;lt;br /&amp;gt; &amp;gt;&amp;gt; &#039;&#039;Wiki-seitig dürften sich da in nächster Zeit einige Änderungen ergeben, die das mit adressieren lassen. Als ich begonnen habe, die derzeitigen Links zu setzten, ging es leider nicht anders (wurde Server-seitig nicht angeboten). Da würde ich Dich einfach noch um etwas Geduld bitten - und später gern bei Dir nachhaken, nachdem Du Dich allein mit der Frage schon als Experte geoutet/qualifiziert hast :-) &#039;&#039; --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 14:45, 21. Apr. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Viele Grüße --[[Benutzer:MGu|MGu]] ([[Benutzer Diskussion:MGu|Diskussion]]) 13:06, 16. Apr. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Infobox Modul: Neue untergeordnete Boards Wettermodule und Kalendermodule ==&lt;br /&gt;
Hallo Peter!&lt;br /&gt;
&lt;br /&gt;
Könntest Du bei Gelegenheit bitte die Verbindung für die Infobox zu den neuen Unterboards einpflegen. Das scheint derzeit noch nicht zu funktionieren bzw. ich habe keine Ahnung wie...&amp;lt;BR&amp;gt;&lt;br /&gt;
Danke und Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 21:56, 27. Mai 2016 (CEST)&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
:Hallo Christian...&lt;br /&gt;
:gut versteckt (hab selbst erst wieder &amp;quot;suchen&amp;quot; müssen) befindet sich die Liste der Forenboards in der Vorlage [[:Vorlage:Link2Forum|Link2Forum]]. Muss ich gelegentlich mal in der Doku zur Vorlage [[:Vorlage:Infobox Modul|Infobox Modul]] erwähnen. &lt;br /&gt;
:Habe gerade die neuen Unterboards eingefügt. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 09:38, 28. Mai 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Bitte um Kontrolle/Meinung ==&lt;br /&gt;
Hallo Peter!&amp;lt;BR&amp;gt;&lt;br /&gt;
Könntest Du bitte einmal hier [[Benutzer_Diskussion:Krueuw]] hineinschauen -falls noch nicht gesehen- und ggf. eingreifen, falls ich falsch liege und/oder etwas vergessen habe.&amp;lt;BR&amp;gt;&lt;br /&gt;
Danke und Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 15:24, 7. Aug. 2016 (CEST)&lt;br /&gt;
:Vermutlich ist unsere Diskussion dort überholt. [[Benutzer:ThomasRamm]] hat die Artikel eben verschoben/geaendert/zusammengefasst und mir fehlt momentan darüber der Überblick. Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 16:50, 7. Aug. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Artikel betr.: Arduino MySensors MYSENSORS ==&lt;br /&gt;
&lt;br /&gt;
Hallo Peter,&lt;br /&gt;
&lt;br /&gt;
habe eben mal etwas in den Kategorienseiten rumgestöbert um zu sehen, wo - nach meinem Geschmack und begrenztem Verständnis - eigentlich was hinsollte und bin über ein paar Dinge gestolpert, die ich gerne zur Diskussion stellen wollte. Im Detail:&lt;br /&gt;
&lt;br /&gt;
1. Unter &amp;quot;Arduino&amp;quot; finde ich nicht etwa den Hinweis, dass einige Projekte, die für FHEM eine größere Rolle spielen, Arduino-basiert sind, sondern die Beschreibung einer der Lösungen (ein FHEMduino?, der dazu noch recht alt ist und bei dem sich die verlinkten Sourcen evtl. mit heutiger SW-Umgebung gar nicht mehr compilieren lassen).&lt;br /&gt;
&lt;br /&gt;
Fragen: &lt;br /&gt;
&lt;br /&gt;
a) Sollte man die Seite nicht umbenennen (in FHEMduino?)?&lt;br /&gt;
&lt;br /&gt;
b) Eine neue Seite mit diesem Namen wäre für den interessierten Laien hilfreich, in der (mindestens) die einzelnen verfügbaren Projekte kurz aufgelistet sind (auf die Schnelle: SIGNALduino, firmata, FHEMduino, nanoCUL, MySensors, Arducounter, panstamp?...) sowie der Hinweis, dass die uC&#039;s (und auch andere uC&#039;s wie der ESP8266) mit der gleichnamigen IDE recht einfach selber programmiert werden können.&lt;br /&gt;
&lt;br /&gt;
2. Zu MySensors existieren derzeit drei Artikel: MySensors, MYSENSORS und MYSENSORS_DEVICE. &lt;br /&gt;
&lt;br /&gt;
a) Die letzteren beiden Artikel sind inhaltlich völlig ok, ich würde aber vorschlagen, die im Titel ggf. bereits als (Modul) zu kennzeichnen?&lt;br /&gt;
&lt;br /&gt;
b) Der MySensors-Artikel wäre an sich auch ok, wenn - jedenfalls aus Sicht des interessierten aber noch uniformierten Erstlesers - nicht der Eindruck entstehen würde, &lt;br /&gt;
* man bräuchte einen ESP und &lt;br /&gt;
* es handelte sich zwingend um eine IP-basierte Lösung - was es ja bei Verwendung der einfachsten Variante (Arduino als serielles GW) nicht ist!&lt;br /&gt;
Hier würde ich vorschlagen (bzw. das ggf. selbst tun), als erstes Beispiel noch ein schlichtes serielles GW zu nehmen.&lt;br /&gt;
Dann fehlt in dem Artikel m.E. nur der Verweis auf&#039;s Howto (s.u.) &lt;br /&gt;
&lt;br /&gt;
c) Unter [[:Kategorie:Other_Components]] tauchen beide mysensors-Links auf, das ist m.E. einer zu viel (der auf&#039;s Modul).&lt;br /&gt;
&lt;br /&gt;
3. M.E. fehlt dann eigentlich &amp;quot;nur noch&amp;quot; ein Howto mit den gesammelten Erkenntnissen (mein eigentlicher Job...). Wohin damit? nach [Kategorie:HOWTOS] oder nach [Kategorie:Examples]&lt;br /&gt;
&lt;br /&gt;
Bitte um Rückmeldung dazu und auch die Info, was ich ggf. davon selber machen soll/kann/darf. Ich will ja auch niemandem zu nahe treten...&lt;br /&gt;
&lt;br /&gt;
Gruß,&lt;br /&gt;
&lt;br /&gt;
Jörg&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Hallo Jörg,&lt;br /&gt;
:ich habe die Diskussion zur Kenntnis genommen, aber gerade nicht die Zeit, ausführlich darauf einzugehen und mich in die Artikelstruktur einzulesen. Hole ich in den nächsten Tagen nach. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 07:21, 11. Nov. 2016 (CET)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Hallo Peter,&lt;br /&gt;
::Danke für die Zwischeninfo. Nach meinen ersten Versuchen noch folgende Anmerkungen:&lt;br /&gt;
::*ad 1. Den Arduino-Artikel habe ich als Vorschlag umgebaut (s. Diskussion dazu), mich allerdings nicht getraut, das ohne Rücksprache &amp;quot;scharf&amp;quot; zu schalten&lt;br /&gt;
::*ad 2. Dass das Wiki erst mal davon ausgeht, dass aufgerufene Seiten auch existieren, hat mich genauso irritiert wie der Umstand, dass die URL&#039;s case-sensitive sind. So was ist mir vorher nirgends im Web aufgefallen. Ist das so beabsichtigt?&lt;br /&gt;
::*ad 3. Das Howto wird wohl kein hotwo im engeren Sinne (Anleitung), sondern eher eine Sammlung der bisherigen Erkenntnisse. Wie benennt man das am Besten? &amp;quot;Starter Guide&amp;quot; analog EnOcean?&lt;br /&gt;
&lt;br /&gt;
== verwaiste Bilder löschen? ==&lt;br /&gt;
Hallo Peter!&amp;lt;BR&amp;gt;&lt;br /&gt;
ich habe heute Bilder hochgeladen und eines davon nicht benötigt. Du hast mich auch diesbezüglich angeschrieben, aber ich finde keine Möglichkeit dies irgendwie zu löschen oder zum Löschen markieren. Ich dachte nicht verlinkte Bilder werden automatisch gelöscht!&lt;br /&gt;
Kannst du mir einen Tipp geben wie das gehen soll. Im MediaWiki habe ich gelesen ich muss hier einen Löschantrag erstellen, ist das wirklich so gemeint und wenn ja wie geht das hier?&lt;br /&gt;
--[[Benutzer:Reinhart|Reinhart]] ([[Benutzer Diskussion:Reinhart|Diskussion]]) 21:03, 5. Jan. 2017 (CET)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Habe Dir auf Deiner Diskussionsseite geantwortet. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 10:00, 6. Jan. 2017 (CET)&lt;br /&gt;
&lt;br /&gt;
== Zitierhilfe: Erweiterung Cite ==&lt;br /&gt;
Hallo,&lt;br /&gt;
&lt;br /&gt;
ich schlage vor, die ab MW Version 1.21 mitgelieferte [https://www.mediawiki.org/wiki/Extension:Cite/de Erweiterung &#039;&#039;Cite&#039;&#039;] zu aktivieren bzw. sie nachzuladen. &lt;br /&gt;
&lt;br /&gt;
Die Informationen in den Artikeln, die nicht originär vom jeweiligen Autor/Bearbeiter selbst stammen, sollten ja immer als Zitate gekennzeichnet bzw. deren Quellen vermerkt werden. &#039;&#039;Cite&#039;&#039; macht das wesentlich einfacher und unaufwändiger. &lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Baumbuwe|Uwe ]] ([[Benutzer Diskussion:Baumbuwe|Diskussion]]) 16:53, 9. Jun. 2017 (CEST)&lt;br /&gt;
&lt;br /&gt;
: Hallo Peter, gibt es schon eine Meinung zu dem Vorschlag? [[Benutzer:Baumbuwe|Uwe ]] ([[Benutzer Diskussion:Baumbuwe|Diskussion]]) &lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Hallo Uwe, Markus hat die Extension gerade aktiviert ... kannst ja mal ausprobieren, ob es nach Deinen Vorstellungen funktioniert. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 19:26, 26. Jul. 2017 (CEST)&lt;br /&gt;
::&amp;lt;hr /&amp;gt;&lt;br /&gt;
::: Alles prima, danke! Wenn es (wie es aussieht) die mitgelieferte Erweiterung ist, kann es nur richtig sein ;-). Vgl.: [[Telnet]].&lt;br /&gt;
:::[[Benutzer:Baumbuwe|Uwe ]] ([[Benutzer Diskussion:Baumbuwe|Diskussion]])&lt;br /&gt;
&lt;br /&gt;
== Änderung von Seitentiteln ==&lt;br /&gt;
Hi Peter,&lt;br /&gt;
weißt du wie ich einen Seitentitel ändern kann?&lt;br /&gt;
&lt;br /&gt;
panStamp Innenraumsensor  --&amp;gt; ESP8266 Innenraumsensor und -Steuerung&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Das &amp;quot;magic word&amp;quot; ist &amp;quot;verschieben&amp;quot; (siehe auch weiter oben auf dieser Seite). --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 10:03, 3. Aug. 2017 (CEST)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
:: Danke, das wars&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Kategorie:ESP8266&amp;diff=22050</id>
		<title>Kategorie:ESP8266</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Kategorie:ESP8266&amp;diff=22050"/>
		<updated>2017-08-03T10:46:55Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Leere Seite erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22049</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22049"/>
		<updated>2017-08-03T10:45:48Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und -Steuerung}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=esp8266_amica.png&lt;br /&gt;
|Bildbeschreibung=ESP8266 V3 Amica&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=esp8366&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Der [url=https://de.wikipedia.org/wiki/ESP8266 | ESP8266] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80–160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge. [Quelle: Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP8266 V3 Amica&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* TSL2561 (Licht-/Helligkeitssensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22048</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22048"/>
		<updated>2017-08-03T10:45:23Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und -Steuerung}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=esp8266_amica.png&lt;br /&gt;
|Bildbeschreibung=ESP8266 V3 Amica&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=esp8366&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Der [url=https://de.wikipedia.org/wiki/ESP8266 | ESP8266] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80–160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge. [Quelle: Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP8266 V3 Amica&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* TSL2561 (Licht-/Helligkeitssensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Diskussion:PanStamp_Innenraumsensor&amp;diff=22047</id>
		<title>Diskussion:PanStamp Innenraumsensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Diskussion:PanStamp_Innenraumsensor&amp;diff=22047"/>
		<updated>2017-08-03T10:44:23Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Tobias.faust verschob die Seite Diskussion:PanStamp Innenraumsensor nach Diskussion:ESP8266 Innenraumsensor und -Steuerung: Änderung der Technik&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[Diskussion:ESP8266 Innenraumsensor und -Steuerung]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Diskussion:ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22046</id>
		<title>Diskussion:ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Diskussion:ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22046"/>
		<updated>2017-08-03T10:44:23Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Tobias.faust verschob die Seite Diskussion:PanStamp Innenraumsensor nach Diskussion:ESP8266 Innenraumsensor und -Steuerung: Änderung der Technik&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi, es ist nur eine Kleinigkeit: Spricht was dagegen den Artikel zu verschieben auf den Artikel &amp;quot;PanStamp Innenraumsensor&amp;quot;? Dann wären alle Artikel gleich von der Schreibweise (PanStamp anstatt Panstamp). --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 22:18, 17. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Bin einverstanden (und falls die korrekte Schreibweise panStamp ist/sein sollte (Mediawiki macht halt den ersten Buchstaben des Seitentitels immer zum Großbuchstaben), kannst Du das mit  &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{{SEITENTITEL:naMeInRichtigerSchreibweise}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; am Anfang der Seite auch noch &amp;quot;erzwingen&amp;quot;). --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 23:13, 17. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Das mit &amp;lt;nowiki&amp;gt;{{SEITENTITEL:naMeInRichtigerSchreibweise}}&amp;lt;/nowiki&amp;gt; ist ein guter Hinweis, danke!. Ich kenn mich so mit den Spielregeln nicht aus, sollte sich noch der Author (tobias.faust) von dem Artikel dazu melden? --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:49, 18. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:::Persönlich würde ich sofort verschieben, da das jetzt keine so entscheidende Umstellung ist und damit Du bei Deinen recht umfangreichen Arbeiten (Danke übrigens!) weiterkommst. Ansonsten (=100%-Lösung) tobias.faust direkt ansprechen, da er Deine Frage vermutlich nicht gesehen hat.--[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 09:36, 20. Jul. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_Innenraumsensor&amp;diff=22045</id>
		<title>PanStamp Innenraumsensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_Innenraumsensor&amp;diff=22045"/>
		<updated>2017-08-03T10:44:23Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Tobias.faust verschob die Seite PanStamp Innenraumsensor nach ESP8266 Innenraumsensor und -Steuerung: Änderung der Technik&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[ESP8266 Innenraumsensor und -Steuerung]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22044</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22044"/>
		<updated>2017-08-03T10:44:23Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: Tobias.faust verschob die Seite PanStamp Innenraumsensor nach ESP8266 Innenraumsensor und -Steuerung: Änderung der Technik&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und ControlBoard}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=esp8266_amica.png&lt;br /&gt;
|Bildbeschreibung=ESP8266 V3 Amica&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=esp8366&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Der [url=https://de.wikipedia.org/wiki/ESP8266 | ESP8266] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80–160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge. [Quelle: Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP8266 V3 Amica&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* TSL2561 (Licht-/Helligkeitssensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22042</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=22042"/>
		<updated>2017-08-03T07:36:47Z</updated>

		<summary type="html">&lt;p&gt;Tobias.faust: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:ESP8266 Innenraumsensor und ControlBoard}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=esp8266_amica.png&lt;br /&gt;
|Bildbeschreibung=ESP8266 V3 Amica&lt;br /&gt;
|HWProtocol=WLAN&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=2,4GHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=500mA&lt;br /&gt;
|HWPoweredBy=wired 5VDC&lt;br /&gt;
|HWSize=640 x 640 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#MQTT 00_MQTT.pm] [http://fhem.de/commandref.html#MQTT_DEVICE 10_MQTT_DEVICE.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=esp8366&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
Der [url=https://de.wikipedia.org/wiki/ESP8266 | ESP8266] ist ein Ultra-low-Power-32-Bit-Mikrocontroller der chinesischen Firma espressif. Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80–160 MHz, hat 64 kB RAM als Befehlspeicher, in den mehrere Megabyte Flash-Speicher eingeblendet werden können, sowie 96 kB RAM als Datenspeicher, eine SPI-Schnittstelle für Flash-Speichererweiterungen (bis zu 128 MBit) und integriertes WLAN IEEE 802.11 b/g/n. Der ESP8266 ermöglicht den Aufbau von stromsparenden WLAN-Sensoren für Anwendungen im Bereich Internet der Dinge. [Quelle: Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Mit ihm lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Sensors.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zum ESP8266 finden sich im zugehörigen [[ESP8266|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Dieser Innenraumsensor ist, wie der Name schon sagt, ein universeller Sensor - aber auch Aktor - für den Innenraum. &lt;br /&gt;
Der Sensor ist komplett modular aufgebaut. Je nach Bedürfnissen und Anwendungsfall können die Komponenten bestückt und aufgesteckt werden.&lt;br /&gt;
In der Grundkonfiguration ohne Huckepackplatinen ist neben der NodeMCU nur der Luftgütesensor und der Luftdruck-, Temp- und Luftfeuchtesensor auf dem Mainboard. Auch diese beiden Sensoren sind optional und müssen nicht zwingend bestückt werden.&lt;br /&gt;
&lt;br /&gt;
Über die Aufsteckplatine werden alle Komponenten zum Gehäusedeckel verbunden. Das betrifft das TFT Display, den RGB Rotary-Encoder, die 2 Pushbuttons und den PIR-Sensor.&lt;br /&gt;
&lt;br /&gt;
Der Sensor muss mit stabilen +5VDC versorgt werden. Entweder per USB-Buchse oder per Schraubklemme. Wird kein VOC-Sensor verbaut, kann jede Spannung für die die NodeMCU spezifiziert ist angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Folgende Funktionen sind/werden dort implementiert&lt;br /&gt;
* Innenraumüberwachung für Alarmanlagen bzgl: Bewegung, starke Lichtschwankungen&lt;br /&gt;
* Überwachung des Luftdrucks, Temperatur, Luftfeuchte&lt;br /&gt;
* Überwachung der Helligkeit&lt;br /&gt;
* Überwachung der allgemeinen Luftgüte der Raumluft&lt;br /&gt;
* Anzeige aller Messwerte im Display &lt;br /&gt;
* Steuerung einer Audio Raumbeschallung (zb. Deckenlautsprecher, Sonos, etc) in Kombination mit dem Fhem Modul 98_MediaList.pm&lt;br /&gt;
* Menü und Anzeige für Heizkörperthermostat&lt;br /&gt;
* Fenster-offen Meldungen&lt;br /&gt;
* allgemeine Warnmeldungen, push von FHEM&lt;br /&gt;
&lt;br /&gt;
===technische Merkmale  ===&lt;br /&gt;
* NodeMCU ESP8266 V3 Amica&lt;br /&gt;
* TFT Display 1,8&amp;quot; (ST7735R Adafruit 358)&lt;br /&gt;
* BME280 (Luftdruck-, Temp-, Luftfeuchtesensor)&lt;br /&gt;
* PIR Modul (Bewegungsmelder)&lt;br /&gt;
* VOC Sensor (TGS2600) (Luftgütesensor)&lt;br /&gt;
* TSL2561 (Licht-/Helligkeitssensor)&lt;br /&gt;
* RGB Rotary Encoder (Drehregler für Menünavigation im Display)&lt;br /&gt;
* 2x Pushbuttons für Menüsteuerunng&lt;br /&gt;
&lt;br /&gt;
== Schaltplan und Bauteilliste ==&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:ESP8266_Innenraumsensor_v2.0.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
* [https://www.diefaeuste.de/owncloud/index.php/s/OkS8nfXkAtkgQEM Alle Dateien in der Cloud des Autors]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:ESP8266]]&lt;/div&gt;</summary>
		<author><name>Tobias.faust</name></author>
	</entry>
</feed>