<?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=Wzut</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=Wzut"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/Wzut"/>
	<updated>2026-04-25T00:23:11Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=MAX&amp;diff=33373</id>
		<title>MAX</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=MAX&amp;diff=33373"/>
		<updated>2020-06-09T08:23:28Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;MAX!&#039;&#039;&#039; ist eine Heizungssteuerung, die die Raumtemperatur durch funkvernetzte Heizkörperthermostate an den Heizkörpern regelt. MAX! stellt eine Alternative zur [[:Kategorie:FHT Components|FHT]] und [[HomeMatic]] Heizungsteuerung dar.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Bidirektionale Kommuniktion (jeder Befehl wird mit ACK quittiert)&lt;br /&gt;
* Heizkörperthermostate übertragen auch die gemessene Temperatur&lt;br /&gt;
&lt;br /&gt;
== FHEM Module ==&lt;br /&gt;
Die MAX Komponenten können über den MAX!Cube per Modul 00_MAXLAN oder über einen [[CUL]] oder [[CUNO]] per 14_CUL_MAX gesteuert werden. In beiden Fällen werden die einzelnen MAX! Geräte vom Modul 10_MAX&lt;br /&gt;
bereitgestellt. Alternativ kann man nach {{Link2Forum|Topic=38404}} einen MAX!CUBE als CUNO umflashen.&lt;br /&gt;
&lt;br /&gt;
Nachteil vom Cube ist, dass man ein Polling machen muss, um zu sehen ob sich der Status eines Gerätes geändert hat. Z.B. checkt man das alle 30 Sekunden. Dann sieht man aber auch Änderungen möglicherweise erst nach 30 Sekunden. Beim CUL sieht man die Funknachrichten direkt. Es wird aber auch ein Kombimodus unterstützt, in welchem man alles über den MAXLAN steuert, der CUL_MAX aber für zeitnahe Benachrichtigungen sorgt.&lt;br /&gt;
&lt;br /&gt;
== Komponenten ==&lt;br /&gt;
=== Limit ===&lt;br /&gt;
* Auf 8 Thermostate pro Raum beschränkt&lt;br /&gt;
* Limit mit Cube liegt bei ca. 140 Geräten. Durch die [[1% Regel]] dürften es aber in der Praxis weniger sein&lt;br /&gt;
&lt;br /&gt;
=== Heizkörperthermostate ===&lt;br /&gt;
Unterstützt wird das Einstellen von&lt;br /&gt;
&lt;br /&gt;
* desiredTemperature = auto (Wochenprogramm), manuell (4.5 - 30.5), eco, comfort, boost, until&lt;br /&gt;
** (Besonderheit der Werte: 4.5 = Off und 30.5 = On)&lt;br /&gt;
* ecoTemperature, comfortTemperature, measurementOffset, maximumTemperature, minimumTemperature, windowOpenTemperature, windowOpenDuration&lt;br /&gt;
&lt;br /&gt;
und das Auslesen&lt;br /&gt;
&lt;br /&gt;
* der gemessenen Temperatur. (Hinweis: Wird bei Verwendung des MAX CUBE nicht regelmäßig aktualisiert)&lt;br /&gt;
&lt;br /&gt;
=== Fensterkontakte ===&lt;br /&gt;
Der aktuelle Status (offen/geschlossen) wird (praktisch ohne Verzögerung) angezeigt.&lt;br /&gt;
&lt;br /&gt;
Falls wir nicht mit Ack antworten, wird er mehrmals wiederholt.&lt;br /&gt;
&lt;br /&gt;
Die Fensterkontakte können zusätzlich direkt an mehrere Heizkörperthermostate angelernt werden, und versetzen diese dann automatisch in windowOpenTemperature während sie geöffnet sind.&lt;br /&gt;
&lt;br /&gt;
Wenn der Fensterkontakt an mindestens ein Heizkörperthermostat angelernt ist, dann sendet er zusätzlich stündlich seinen aktuellen Zustand.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Autocreate&#039;&#039;&#039;&lt;br /&gt;
 MAXLAN_Parse: Paired new device, type ShutterContact, addr 1a2b3c, serial JEQ0123456&lt;br /&gt;
 autocreate: define MAX_1a2b3c MAX ShutterContact 1a2b3c&lt;br /&gt;
 autocreate: define FileLog_MAX_1a2b3c FileLog /fhem/log/MAX_1a2b3c-%Y.log MAX_1a2b3c&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Definition&#039;&#039;&#039;&lt;br /&gt;
 define MAX_1a2b3c MAX ShutterContact 1a2b3c&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Log&#039;&#039;&#039;&lt;br /&gt;
 ==&amp;gt; MAX_1a2b3c-2013.log &amp;lt;==&lt;br /&gt;
 2013-10-20_18:52:08 MAX_1a2b3c battery: ok&lt;br /&gt;
 2013-10-20_18:52:08 MAX_1a2b3c onoff: 0&lt;br /&gt;
 2013-10-20_18:52:08 MAX_1a2b3c closed&lt;br /&gt;
&lt;br /&gt;
=== Wandthermostate ===&lt;br /&gt;
Unterstützt wird das Einstellen von&lt;br /&gt;
&lt;br /&gt;
* desiredTemperature (siehe Heizkörperthermostate), ecoTemperature, comfortTemperature&lt;br /&gt;
&lt;br /&gt;
und das Auslesen&lt;br /&gt;
&lt;br /&gt;
* der gemessenen Temperatur.&lt;br /&gt;
&lt;br /&gt;
=== Eco-Taster ===&lt;br /&gt;
&#039;&#039;&#039;Achtung&#039;&#039;&#039;: Zumindest über MAXLAN lässt sich der Zustand weder auslesen, noch wird man über Veränderungen informiert.&lt;br /&gt;
&lt;br /&gt;
Per CUL_MAX funktioniert der Eco-Taster problemlos.&lt;br /&gt;
&lt;br /&gt;
==== Beispielhafte Definition ====&lt;br /&gt;
:&amp;lt;code&amp;gt;define BUTTON.EG MAX PushButton 069d33&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Beispielhafte Event-Ausgabe ====&lt;br /&gt;
&lt;br /&gt;
 2013-07-02 21:06:14 MAX BUTTON.EG battery: ok&lt;br /&gt;
 2013-07-02 21:06:14 MAX BUTTON.EG onoff: 0&lt;br /&gt;
 2013-07-02 21:06:14 MAX BUTTON.EG closed&lt;br /&gt;
&lt;br /&gt;
Wobei gilt&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! onoff !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Eco&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Auto&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anlernen per CUL ==&lt;br /&gt;
Das Anlernen funktioniert nur mit zurückgesetzten (Werksreset, also entweder alle 3 Tasten am Heizkörperthermostat betätigen, Batterien einlegen, Anzeige rES; oder in FHEM set factoryReset) Heizkörperthermostaten. Bereits an einen Cube angelernte Heizungsregler können &#039;&#039;&#039;nicht&#039;&#039;&#039; an ein CUL angemeldet werden, hier ist dann nur das &amp;quot;mitlesen&amp;quot; der Funkbotschaften möglich.&lt;br /&gt;
 &lt;br /&gt;
Info: Durch den Reset geht auch ein evtl. per Cube eingestelltes Automatikprogramm verloren.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
Siehe {{Link2CmdRef|Anker=CUL_MAX}}.&lt;br /&gt;
&lt;br /&gt;
Die Module sind so konzipiert, dass man die offizielle Max! Software nicht benutzen muss. Man kann alles aus FHEM heraus machen. Nachdem das MAXLAN oder CUL_MAX Modul konfiguriert wurden (siehe unten), werden bereits gepairte Geräte automatisch erkannt.&lt;br /&gt;
&lt;br /&gt;
=== MAXLAN ===&lt;br /&gt;
Minimale Konfiguration:&lt;br /&gt;
:&amp;lt;code&amp;gt;define ml MAXLAN 192.168.178.2&amp;lt;/code&amp;gt;&lt;br /&gt;
wobei 192.168.178.2 die IP des MAX! Cube ist. Das MAXLAN-Modul findet selbstständig bereits gepairte Geräte und trägt diese in die Konfigurationsdatei fhem.cfg ein. Diese können dann im WEB-Interface mittels „alias“ einen eindeutigen Namen bekommen.&lt;br /&gt;
&lt;br /&gt;
=== CUL_MAX ===&lt;br /&gt;
Minimale Konfiguration:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;define CUL0 CUL /dev/ttyACM0@9600 0000&lt;br /&gt;
 attr CUL0 rfmode MAX&lt;br /&gt;
 define cm CUL_MAX 123456&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Anlernen ===&lt;br /&gt;
Dazu muss der &amp;quot;pairmode&amp;quot; auf MAXLAN mit&lt;br /&gt;
:&amp;lt;code&amp;gt;set ml pairmode&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw. bei CUL_MAX mit&lt;br /&gt;
:&amp;lt;code&amp;gt;set cm pairmode&amp;lt;/code&amp;gt;&lt;br /&gt;
oder über das Web-Interface aktiviert werden. Falls kein Parameter angegeben wird, ist er standardmäßig für 60 Sekunden aktiviert. In dieser Zeit können MAX! Geräte nach deren Anleitung in den Anlernmodus versetzt werden, um sie mit FHEM zu pairen.&lt;br /&gt;
&lt;br /&gt;
=== Geräte untereinander anlernen ===&lt;br /&gt;
Die MAX-Devices können direkt untereinander angelernt werden. Dazu gibt es den &amp;quot;associate&amp;quot;-Befehl in FHEM, mit dem die Geräte untereinander&lt;br /&gt;
angelernt werden. Er muss in jede Richtung einmal verwendet werden, also sowohl z.B. Fensterkontakt an Thermostat wie auch umgekehrt.&lt;br /&gt;
Also&lt;br /&gt;
:&amp;lt;code&amp;gt;set Heizthermostat1 associate Fensterkontakt1&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;set Fensterkontakt1 associate Heizthermostat1&amp;lt;/code&amp;gt;&lt;br /&gt;
Während Wand- und Heizkörperthermostat stets empfangsbereit sind, benötigt der Fensterkontakt zum &amp;quot;Wecken&amp;quot; einen Schaltvorgang&lt;br /&gt;
des Reed-Relais (Fenster öffnen oder schließen). Von einer eventuellen Log-Meldung&lt;br /&gt;
:&amp;lt;code&amp;gt;There is a packet for ShutterContact Fensterkontakt1 in queue. Please push the button on the respective ShutterContact so the packet can be send.&amp;lt;/code&amp;gt;&lt;br /&gt;
bitte nicht verwirren lassen: Den Anlern-Button auf der Rückseite zu drücken, wäre völlig falsch! Sofern das Pairing erfolgreich war, sich im Logfile aber diese&lt;br /&gt;
Meldung trotzdem alle 3 Sekunden wiederholt, hilft ein Restart von FHEM.&lt;br /&gt;
&lt;br /&gt;
Jetzt wechselt Heizthermostat1 immer dann auf die windowOpenTemperature, wenn der Fensterkontakt1 offen ist. Dabei muss die groupId von beiden Geräte nicht gleich sein.&lt;br /&gt;
&lt;br /&gt;
Ebenso können Wand- mit Heizkörperthermostaten gekoppelt werden. Temperaturänderung am Wandthermostaten werden so an den / die Heizkörper gesendet. &lt;br /&gt;
Allerdings leitet das Wandthermostat nur Änderungen weiter, die am Wandgerät selbst (manuell) vorgenommen wurden. Wer also via FHEM die &amp;lt;code&amp;gt;desiredTemperature&amp;lt;/code&amp;gt; an den&lt;br /&gt;
Wandthermostaten sendet, verändert damit weder direkt noch indirekt die Einstellung der assoziierten Heizkörper, sondern muss auch an diese Heizkörper senden.&lt;br /&gt;
&lt;br /&gt;
=== Temperatursturzerkennung ===&lt;br /&gt;
Die Heizkörperthermostate verfügen über eine interne &amp;quot;Fenster-offen Erkennung&amp;quot; (Temperatursturzerkennung). Wird diese ausgelöst, regeln sie für die Zeit die unter &amp;quot;windowOpenDuration&amp;quot; festgelegt wurde auf die als &amp;quot;windowOpenTemperature&amp;quot; festgelegte Temperatur herunter und danach wieder auf die zuvor eingestellte Temperatur zurück.&lt;br /&gt;
&lt;br /&gt;
Nachteil: Die Erkennung benötigt etwas Zeit und reagiert nicht sofort wie es beim Fensterkontakt oben der Fall ist&lt;br /&gt;
&lt;br /&gt;
Vorteil: Es ist kein Fensterkontakt erforderlich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Setzt man die windowOpenTemperature auf &amp;quot;Off&amp;quot; (= 4.5 Grad), dann ist die Fenster-offen-Funktion abgeschaltet. Und auch wenn die desiredTemperature gerade auf &amp;quot;On&amp;quot; (= 30.5 Grad&amp;quot;) steht, geht der Heizkörper nicht in die Fenster-offen-Funktion.&lt;br /&gt;
&lt;br /&gt;
=== Telegram-Benachrichtigung bei dauergeöffnetem Fenster ===&lt;br /&gt;
Einen schönen Einstieg in die Event- und Watchdog-Verarbeitung von FHEM bildet die zeitversetzte Benachrichtigung per Telegram, wenn&lt;br /&gt;
das Fenster länger offen stehen gelassen wurde.&lt;br /&gt;
&lt;br /&gt;
Ist ein Telegram-Bot eingerichtet (siehe [[TelegramBot]]), und der Default-Peer gesetzt, so&lt;br /&gt;
reicht ein&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt; define w1 watchdog Fensterkontakt1:opened 00:12 Fensterkontakt1:closed set Telegram message Das Fenster ist seit 12 min offen!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
um pünktlich nach 12 Minuten eine Erinnerungs-Nachricht zu erhalten: Penetrant und schnell wie SMS, kostenlos wie Mail!&lt;br /&gt;
&lt;br /&gt;
=== Externer Sensor für Fenster-offen-Erkennung ===&lt;br /&gt;
&#039;&#039;&#039;Achtung&#039;&#039;&#039;: Wird nur von CUL_MAX unterstützt!&lt;br /&gt;
&lt;br /&gt;
Ziel dieses Abschnittes ist es, einen externen Sensor (z.B. 1-Wire o.ä.) zu benutzen, um die MAX Heizkörperthermostate in und aus dem Fenster-offen Modus zu holen. Dazu sei bereits ein CUL, ein CUL_MAX und ein MAX Heizkörper definiert:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;define CUL0 CUL /dev/ttyACM0@9600 0000&lt;br /&gt;
 define cm CUL_MAX 123456&lt;br /&gt;
 define Heizung MAX HeatingThermostat abcdef&lt;br /&gt;
 attr Heizung IODev cm&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen einmalig den internen Fake-Fensterkontakt mit dem Heizkörper assozieren&lt;br /&gt;
:&amp;lt;code&amp;gt;set Heizung associate fakeShutterContact&amp;lt;/code&amp;gt;&lt;br /&gt;
damit dieser die Nachrichten vom Fensterkontakt akzeptiert.&lt;br /&gt;
&lt;br /&gt;
Nun können wir per &lt;br /&gt;
:&amp;lt;code&amp;gt;set cm fakeSC Heizung 1&amp;lt;/code&amp;gt;&lt;br /&gt;
die Nachricht &amp;quot;Fenster offen&amp;quot; an die Heizung senden und per&lt;br /&gt;
:&amp;lt;code&amp;gt;set cm fakeSC Heizung 0&amp;lt;/code&amp;gt;&lt;br /&gt;
die Nachricht &amp;quot;Fenster zu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Externer Temperatursensor für Heizkörperregelung ===&lt;br /&gt;
&#039;&#039;&#039;Achtung&#039;&#039;&#039;: Wird nur von CUL_MAX unterstützt!&lt;br /&gt;
&lt;br /&gt;
Ziel dieses Abschnittes ist es, einen externen Sensor (z.B. 1-Wire o.ä.) zu benutzen, um die MAX Heizkörperthermostate zu regeln. Dazu sei bereits ein CUL, ein CUL_MAX und ein MAX Heizkörper definiert:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;define CUL0 CUL /dev/ttyACM0@9600 0000&lt;br /&gt;
 define cm CUL_MAX 123456&lt;br /&gt;
 define Heizung MAX HeatingThermostat abcdef&lt;br /&gt;
 attr Heizung IODev cm&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir müssen einmalig das interne Fake-Wandthermostat mit dem Heizkörper assozieren: &lt;br /&gt;
:&amp;lt;code&amp;gt;set Heizung associate fakeWallThermostat&amp;lt;/code&amp;gt;&lt;br /&gt;
damit dieser die Nachrichten vom Wandthermostat akzeptiert. Achtung: Dies schaltet im&lt;br /&gt;
Heizkörperthermostat die Regelung mit dem internen Temperaturfühler aus. Ohne die gleich kommenden &amp;quot;fakeWT&amp;quot; Nachrichten wird das Heizkörperthermostat nicht mehr regeln.&lt;br /&gt;
&lt;br /&gt;
Nun können wir per &lt;br /&gt;
:&amp;lt;code&amp;gt;set cm fakeWT Heizung 14.5 12.1&amp;lt;/code&amp;gt;&lt;br /&gt;
die desiredTemperature 14.5 und gemessene Temperatur 12.1 an die Heizung senden. Diese wird dann die Ventile öffnen, bis wir ein &amp;quot;fakeWT&amp;quot; absetzten, dessen gemessene Temperatur höher als die desiredTemperature ist.&lt;br /&gt;
&lt;br /&gt;
Falls man zu lange Zeit (ca. 30 Minuten) kein neues &amp;quot;fakeWT&amp;quot; sendet, wird bei der Heizung das Attribut rferror gleich 1. Es ist nicht klar, ob das neben diesem Attribut auch Auswirkung auf die Funktionalität hat. Es wurde beobachtet, dass dann der interne Temperatursensor bis zum nächsten &amp;quot;fakeWT&amp;quot; aktiviert wird.&lt;br /&gt;
&lt;br /&gt;
Beispiel eines automatischen Sendens einer externen Temperatur, der externe Temperatursensor heißt &amp;quot;WS300&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;define SendExtTemp notify WS300:temperature.* {&lt;br /&gt;
 MaxFakeWallThermostat(&amp;quot;Heizung&amp;quot;,&amp;amp;#160;$EVTPART1);&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dazu die Funktion, bitte in [https://wiki.fhem.de/wiki/99_myUtils_anlegen 99_myUtils.pm] eintragen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
sub MaxFakeWallThermostat {&lt;br /&gt;
    my $heizung  = shift;&lt;br /&gt;
    my $aktTemp  = shift;&lt;br /&gt;
    my $CULMAX   = (exists($defs{$heizung}{IODev}-&amp;gt;{NAME})) ? $defs{$heizung}{IODev}-&amp;gt;{NAME} : &#039;&#039;;&lt;br /&gt;
    my $desiredTemp    = ReadingsNum($heizung, &#039;desiredTemperature&#039;, 0);&lt;br /&gt;
    my $windowOpenTemp = ReadingsNum($heizung, &#039;windowOpenTemperature&#039;, 0);&lt;br /&gt;
&lt;br /&gt;
    return if (!$CULMAX || !$desiredTemp &amp;amp;&amp;amp; !$windowOpenTemp);&lt;br /&gt;
&lt;br /&gt;
    my $lastTemp       = ReadingsNum($heizung, &#039;LastExtTemperature&#039;, 0);&lt;br /&gt;
    my $lastSet        = ReadingsAge($heizung, &#039;LastExtTemperature&#039;, 0);&lt;br /&gt;
&lt;br /&gt;
    if ((($desiredTemp != $windowOpenTemp) &amp;amp;&amp;amp; ($lastSet &amp;gt; 599)) || (abs($aktTemp-$lastTemp) &amp;gt; 0.1)) {&lt;br /&gt;
        Log3($CULMAX, 3, &amp;quot;$CULMAX, set fakeWT $heizung $desiredTemp $aktTemp&amp;quot;);&lt;br /&gt;
        readingsSingleUpdate($defs{$heizung}, &#039;LastExtTemperature&#039;, $aktTemp, 0);&lt;br /&gt;
        my $ret = CommandSet(undef, &amp;quot;$CULMAX fakeWT $heizung $desiredTemp $aktTemp&amp;quot;);&lt;br /&gt;
        Log3($CULMAX, 2, &amp;quot;$CULMAX, error : $ret&amp;quot;) if ($ret);&lt;br /&gt;
    }&lt;br /&gt;
    return;&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel heißt das zu steuernde Thermostat &amp;quot;Heizung&amp;quot;. Die vom externen Sensor gemessene Temperatur wird nur unter den folgenden Voraussetzungen gesendet:&lt;br /&gt;
* das Thermostat befindet sich nicht im &amp;quot;Fenster-offen&amp;quot; Modus, und&lt;br /&gt;
* das letzte Senden liegt mindestens 10min zurück&lt;br /&gt;
* oder die gemessene Temperatur weicht um mindestens 0.2°C von der letzten gesendeten Temperatur ab&lt;br /&gt;
&lt;br /&gt;
=== Wochenheizplan für Wandthermostat/Ventilantriebe erstellen ===&lt;br /&gt;
Ein Heizplan, den das Wandthermostat und auch der Ventilantrieb versteht und speichern kann, sieht folgendermaßen aus:&lt;br /&gt;
:&amp;lt;code&amp;gt;set WZ_Wandthermostat weekProfile Mon 17,17:30,20,23:00,17 Tue 17,17:30,20,23:00,17 Wed 17,17:30,20,23:00,17 Thu 17,17:30,20,23:00,17 Fri 17,15:00,20,23:00,17 Sat 17,11:00,20,23:00,17 Sun 17,11:00,20,23:00,17&amp;lt;/code&amp;gt;&lt;br /&gt;
Genauer erläutert wird die Funktionsweise auch in der {{Link2CmdRef|Anker=MAX}}.&lt;br /&gt;
&lt;br /&gt;
Der gesamte Block kann kopiert und als FHEM Befehl abgesetzt werden. Unter Umständen benötigt das Speichern bzw. Übertragen wegen der Größe etwas Zeit, bevor die aktuellen, neu gesetzten Werte wieder ausgelesen werden können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bitte folgendes beachten:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Es gibt im Zusammenhang mit dem Wochenprogramm ein Problem mit dem letzten Schaltpunkt des Tages. &lt;br /&gt;
Der Workaround wurde  {{Link2Forum|Topic=17231|Message=112738|LinkText=hier}}&lt;br /&gt;
beschrieben.&lt;br /&gt;
Man muss dafür sorgen, dass man kurz vor Ende des Tages noch einen Schaltpunkt setzt! Bei mir hat sich ein Schaltpunkt (ohne Änderung der Soll-Temperatur) um 23:55 bewährt:&lt;br /&gt;
:&amp;lt;code&amp;gt;set WZ_Wandthermostat weekProfile Mon 17,17:30,20,22:00,17,23:55,17&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte Plotten ===&lt;br /&gt;
[[File:Plot_MAX_Beispiel.png|thumb|right|Plot eines MAX Heizkörperthermostates]]&lt;br /&gt;
In den Log-Dateien wird regelmäßig der Batteriestatus, die Soll-Temperatur, die Ventilstellung und die Ist-Temperatur (Vorsicht: Wird nicht zuverlässig, möglicherweise nur bei einer Änderung der Ventilstellung, übertragen.)&lt;br /&gt;
&lt;br /&gt;
Inhalt der LOG-Datei eines Heizkörperthermostates:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;2012-12-30_08:55:31 MAX_018d3f battery: ok&lt;br /&gt;
2012-12-30_08:55:31 MAX_018d3f desiredTemperature: 19.5&lt;br /&gt;
2012-12-30_08:55:31 MAX_018d3f valveposition: 83&lt;br /&gt;
2012-12-30_08:55:31 MAX_018d3f temperature: 16.4&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit folgender Plot-Datei (max_temp.gplot) kann der Verlauf der Sensordaten gut angezeigt werden. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;set terminal png transparent size &amp;amp;lt;SIZE&amp;amp;gt; crop&lt;br /&gt;
set output &#039;&amp;amp;lt;OUT&amp;amp;gt;.png&#039;&lt;br /&gt;
set xdata time&lt;br /&gt;
set timefmt &amp;quot;%Y-%m-%d_%H:%M:%S&amp;quot;&lt;br /&gt;
set xlabel &amp;quot; &amp;quot;&lt;br /&gt;
set y2tics&lt;br /&gt;
set title &#039;&amp;amp;lt;L1&amp;amp;gt;&#039;&lt;br /&gt;
set grid xtics y2tics&lt;br /&gt;
set y2label &amp;quot;Temperatur in Grad Celsius&amp;quot;&lt;br /&gt;
set ylabel &amp;quot;Signal in&amp;amp;#160;%&amp;quot;&lt;br /&gt;
#FileLog 4:desiredTemperature:0:&lt;br /&gt;
#FileLog 4:temperature:0:&lt;br /&gt;
#FileLog 4:valveposition:0:&lt;br /&gt;
plot \&lt;br /&gt;
&amp;quot;&amp;amp;lt; egrep &#039;desiredTemperature&#039; &amp;amp;lt;IN&amp;amp;gt;&amp;quot;\&lt;br /&gt;
  using 1:4 axes x1y2 title &#039;Soll-Temperatur (C)&#039; with lines lw 2 \&lt;br /&gt;
&amp;quot;&amp;amp;lt; egrep &#039;temperature&#039; &amp;amp;lt;IN&amp;amp;gt;&amp;quot;\&lt;br /&gt;
  using 1:4 axes x1y2 title &#039;Ist-Temperatur(ungenau)(C)&#039; with lines lw 2 \&lt;br /&gt;
&amp;quot;&amp;amp;lt; egrep &#039;valveposition&#039; &amp;amp;lt;IN&amp;amp;gt;&amp;quot;\&lt;br /&gt;
  using 1:4 axes x1y1 title &#039;Ventil (%)&#039; with lines lw 2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Einbinden eines Plots in der fhem.cfg&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#Werte plotten&lt;br /&gt;
define MAX_017840_weblink weblink fileplot FileLog_MAX_017840:max_temp:CURRENT&lt;br /&gt;
attr MAX_017840_weblink label &amp;quot;Kueche Soll-Temperatur Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;quot;&lt;br /&gt;
attr MAX_017840_weblink room MAX&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nützliche kleine Erweiterungen ===&lt;br /&gt;
&#039;&#039;&#039;Einen Alias-Namen vergeben für eine bessere Lesbarkeit im Webinterface&#039;&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr MAX_018d3f alias Kueche&amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die Anzeigen für die einzelnen File-Logs füllen das Webinterface schnell und machen es unübersichtlich.&#039;&#039;&#039; Die File-Logs können einfach in einen separaten Raum verbannt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;attr FileLog_MAX_018d3f room LOG&amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Einstellmöglichkeit für die Soll-Temperatur direkt in der „Raum-Seite“ schaffen.&#039;&#039;&#039; Die Temperatur wird dauerhaft auf einen bestimmten Wert gestellt. Das Wochenprogramm in dem Thermostat wird deaktiviert.&lt;br /&gt;
:&amp;lt;code&amp;gt;attr MAX_018d3f webCmd desiredTemperature&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soll-Temperatur setzen, ohne das automatische Programm des Thermostates abzuschalten.&#039;&#039;&#039;&lt;br /&gt;
Es besteht die Möglichkeit eine Soll-Temperatur bis zum nächsten Schaltzeitpunkt zu setzen. Zum Beispiel kann das automatische Wochenprogramm in den Thermostaten dazu genutzt werden, nur abends die Soll-Temperatur zu senken. So läuft die Heizung nachts nicht voll durch. Wenn jedoch die Temperatur im Web-Interface von FHEM verändert wird, wird auch der Thermostat auf manuell gesetzt. So greift das Wochenprogramm nicht mehr. Abhilfe schafft der Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;set MAX_04711 desiredTemperature auto 20&amp;lt;/code&amp;gt; &lt;br /&gt;
Damit die Eingabe komfortabel aus FHEM möglich ist, kann ein Dummy-Device erstellt werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#Dummy für die Schnell-Einstellung der Temperatur bis zum nächsten automatischen Schaltzeitpunkt&lt;br /&gt;
 define HeizkoerperBad dummy&lt;br /&gt;
 attr HeizkoerperBad room MAX,Heizungen&lt;br /&gt;
 attr HeizkoerperBad setList state:eco,auto,14.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0&lt;br /&gt;
 attr HeizkoerperBad webCmd state&lt;br /&gt;
 define HeizkoerperBad.ntfy notify HeizkoerperBad.* {\&lt;br /&gt;
  my $valtemp = &amp;quot;$EVENT&amp;quot;;;\&lt;br /&gt;
  my $device = &amp;quot;MAX_04711&amp;quot;;;\&lt;br /&gt;
  my $cmd = &#039;set &#039;.$device.&#039; desiredTemperature auto &#039;.$valtemp;;\&lt;br /&gt;
  fhem($cmd);;\&lt;br /&gt;
 }&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Dieses Dummy-Device kann alternativ oder ergänzend zu &amp;lt;code&amp;gt;attr MAX_018d3f webCmd desiredTemperature&amp;lt;/code&amp;gt; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
== Internals ==&lt;br /&gt;
=== IST-Temperaturwerte ===&lt;br /&gt;
[[File:Plot_MAX_Beispiel.png|thumb|right|Plot eines MAX Heizkörperthermostates]]&lt;br /&gt;
Diese Abbildung zeigt, dass die IST-Temperatur nicht regelmäßig dem MAX CUBE mitgeteilt wird. Im Automatikbetrieb wird bei einer Änderung der Ventilstellung die neue Ventilstellung zusammen mit der aktuellen IST-Temperatur gesendet. Bei der Abbildung war die Therme in der Nacht ausgeschaltet. Daraufhin sank die Temperatur soweit ab, dass das Heizungsthermostat das Ventil in Maximalstellung geöffnet hat. Gegen 08:50 wurde die Therme eingeschaltet und die Soll-Temperatur an diesem Heizungsthermostat erhöht. Während dieser ganzen Zeit erfolgt keine Aktualisierung der Ist-Temperatur. So kommt es auch gegen 10:30 zu einem sprunghaften Temperaturanstieg von 13,5°C auf 19°C (siehe Markierung *A).&lt;br /&gt;
&lt;br /&gt;
Die IST-Temperatur wird anscheinend aktualisiert bei einer Änderung der:&lt;br /&gt;
&lt;br /&gt;
* Ventilstellung&lt;br /&gt;
* Soll-Temperatur&lt;br /&gt;
* des Betriebsmodus (Auto/Manuell)&lt;br /&gt;
&lt;br /&gt;
Wer eine detaillierte Kurve wünscht, sollte sich den [[MAX! Temperatur-Scanner]] ansehen.&lt;br /&gt;
&lt;br /&gt;
=== MAXLAN ===&lt;br /&gt;
=== CUL_MAX ===&lt;br /&gt;
The MAX devices use a CC1100 chip. For parameters see rf_moritz.c in culfw.&lt;br /&gt;
The thermostats use a Wake-On-Radio, thus one has to send packets at the right time.&lt;br /&gt;
&lt;br /&gt;
CC1100 initialization sequence on one of the MAX devices (not Cube) (format: addr value, both in hex):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;00 08&lt;br /&gt;
 02 46&lt;br /&gt;
 04 C6&lt;br /&gt;
 05 26&lt;br /&gt;
 0B 06&lt;br /&gt;
 10 C8 //MDMCFG4 DRATE_E=8&lt;br /&gt;
 11 93 //MDMCFG3 DRATE_M=147, data rate = (256+DRATE_M)*2^DRATE_E/2^28*f_xosc = (9992.599) 1kbit/s (at f_xosc=26 Mhz)&lt;br /&gt;
 12 03&lt;br /&gt;
 15 34&lt;br /&gt;
 17 00&lt;br /&gt;
 18 18&lt;br /&gt;
 19 16&lt;br /&gt;
 1B 43&lt;br /&gt;
 21 56&lt;br /&gt;
 25 00&lt;br /&gt;
 26 11&lt;br /&gt;
 0D 21&lt;br /&gt;
 0E 65&lt;br /&gt;
 0F 6A&lt;br /&gt;
 07 4C //PKTCTRL1: ADR_CHK=0 APPEND_STATUS=1 CRC_AUTOFLUSH=1 PQT=2 (preamble must have 8 toggling bits before sync word detection)&lt;br /&gt;
 16 1C //RXTIME=4&lt;br /&gt;
     RX_TIME_QUAL=1 (when rx timeout expires, keep receiving if either sync word is found or PQI is set (see PQT))&lt;br /&gt;
     RX_TIME_RSSI=1 (terminate RX if there is no carrier sense within the first 8 symbol periods)&lt;br /&gt;
 20 78 //WORCTRL, WOR_RES=00 (1.8-1.9 sec), RC_CAL=1, EVENT1=7 (48 ticks), RC_PD=0&lt;br /&gt;
 1E 87 //WOREVT1&lt;br /&gt;
 1F 6B //WOREVT0, i.e. EVENT0 = 34667&lt;br /&gt;
 29 59&lt;br /&gt;
 2C 81&lt;br /&gt;
 2D 35&lt;br /&gt;
 3E C3&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;Not set, i.e. factory defaults:&lt;br /&gt;
 13 MDMCFG1 NUM_PREAMBLE=2 (4 preamble bytes)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
From the configuration, we see that the&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;RC Oscillator: f_xosc/750 = 34666.66 Hz&lt;br /&gt;
 Event1 = Event1(=48 ticks)/RC Oscillator = 1.385 ms&lt;br /&gt;
 t_Event0 = 750/26Mhz * EVENT0 * 2^(5*WOR_RES) = 1.00 second&lt;br /&gt;
 C(RX_TIME, WOR_RES)= 0.2254&lt;br /&gt;
 rx timeout = EVENT0·C(RX_TIME, WOR_RES) ·26/X(=26) = 34667*0.2254 us = 7.8139 ms&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ShutterContact seems to always sleep (DEVELOPMENT NOTE: from memory I can state that this phenomenon very likely is similar to / &amp;quot;caused by&amp;quot; the very precisely time-delay-slot-based battery-conserving Rx reception window protocol implementation of certain FS20 devices - window contacts?). Thus it is necessary to trigger it manually (by opening/closing the window) to make it receive messages. Pushing the button may work too. It is also awake just after&lt;br /&gt;
pairing, so one may send messages right then. One can use the WakeUp message to keep it from sleeping for some time. (This is also the reason why in the official MAX software, one must trigger the ShutterContact&lt;br /&gt;
after removing it from the house. The &amp;quot;factoryReset&amp;quot; packet is sent directly after the &amp;quot;ShutterContactState&amp;quot; packet has been acked.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Probleme und Lösungen ==&lt;br /&gt;
=== Der Wandthermostat oder Heizthermostat reagieren nicht auf Änderungen über FHEM ===&lt;br /&gt;
Das Autocreate von FHEM erkennt, wenn aktiviert, die Geräte initial und legt auch Einträge an. Es fehlt aber noch das Pairing, da sonst keine Steuerung möglich ist!&lt;br /&gt;
Wenn im Log also Meldungen wie&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;2013.03.20 15:12:30 5: CUL_MAX_SendQueueHandler: 1 items in queue&lt;br /&gt;
 2013.03.20 15:12:30 5: CUL_MAX_SendQueueHandler: 1 items in queue&lt;br /&gt;
 2013.03.20 15:12:30 2: CUL_MAX_SendQueueHandler: Missing ack from 01c9bb for 0b05008212345601c9bb0000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
auftauchen (im Verbose Modus 5), dann wurde vermutlich kein oder ein inkorrektes Pairing durchgeführt.&lt;br /&gt;
Nach dem Pairing sollten diese Meldungen verschwinden und stattdessen etwas wie&lt;br /&gt;
:&amp;lt;code&amp;gt;2013.03.20 15:21:43 5: Got matching ack&amp;lt;/code&amp;gt;&lt;br /&gt;
auftauchen.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Kontaktsensor (magnetisch)]]&lt;br /&gt;
[[Kategorie:MAX]]&lt;br /&gt;
[[Kategorie:Heizungsventile]]&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=30110</id>
		<title>BEOK</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=30110"/>
		<updated>2019-04-07T06:48:24Z</updated>

		<summary type="html">&lt;p&gt;Wzut: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=WiFi Raum-Thermostate für FHEM &lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=BEOK&lt;br /&gt;
|ModForumArea=Heizungssteuerung/Raumklima&lt;br /&gt;
|ModTechName=38_BEOK.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:plin/Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;BEOK&#039;&#039;&#039; implementiert die Steuerung von FHEM zu BEOK / Floureon / Hysen WiFi Raum-Thermostaten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
&lt;br /&gt;
Da das Modul AES-Verschlüsselung benötigt, müssen ggf. noch zusätzliche Perl Module installiert werden.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bsp. für Debian/Raspian :&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-cbc-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo cpan Crypt/OpenSSL/AES.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Bezugsquellen :&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.amazon.de/Fussbodenheizung-Touchscreen-Intelligente-Programmierbare-Raumthermostat/dp/B07B8TKG5Y/  Amazon] Chunyang weiss Tasten 28€&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://de.aliexpress.com/item/16A-AC-220-V-WIFI-Heizung-Thermostat-Wasser-Elektrische-Heizung-System-WIFI-Thermostat-APP-Steuert-f/32889325428.html Ali] KETOTEK weiss Tasten ca 25€&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.amazon.de/FLOUREON-programmierbar-Fussbodenheizung-Heizungsthermostat-Heizungsregelung/dp/B077G6JKCX/ref=sr_1_2?s=diy&amp;amp;ie=UTF8&amp;amp;qid=1547653340&amp;amp;sr=1-2&amp;amp;keywords=floureon+wifi+raumthermostat Amazon] Floureon schwarz Touch 40 €&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://de.aliexpress.com/item/Floureon-Smart-Wi-Fi-Programmable-Thermostat-Digital-Touch-Screen-Room-Temperature-Controller-NTC-Underfloor-Heating-Thermostat/32826733099.html  Ali] Floureon schwarz Touch 31 €&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.amazon.de/BEOK-tds21wifi-ep-Raumthermostat-programmierbar-Fu%C3%9Fbodenheizung/dp/B075WPWGH5/ Amazon]&lt;br /&gt;
BEOK TDS21 weiß Touch ca 40€ – z.Z. bei  Ali nicht lieferbar&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;38_BEOK.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist ein Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; BEOK &amp;lt;ip&amp;gt; [mac]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel &lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100 de:ad:be:ef:01:02&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;&lt;br /&gt;
: Poll Intevall in Sekunden,  0 = kein Polling , default 60&lt;br /&gt;
* &#039;&#039;&#039;timesync&#039;&#039;&#039;&lt;br /&gt;
: Uhrzeit und Wochentag automatisch mit FHEM synchronisieren, default 1 (an)&lt;br /&gt;
* &#039;&#039;&#039;timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout in Sekunden für die Netzwerk Kommunikation, default 5&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;&lt;br /&gt;
: de oder DE f&amp;amp;uuml;r deutsche Bezeichnungen, Raum statt Room , usw.&lt;br /&gt;
* &#039;&#039;&#039;model&#039;&#039;&#039;&lt;br /&gt;
: nur für die FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;desired-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Gewünschte Zieltemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;mode &amp;lt;auto|manual&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Modus auf automatisch oder manuell setzen&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;loop &amp;lt;12345.67 123456.7 1234567&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: 12345.67 Montag - Freitag Werktag, Samstag &amp;amp; Sonntag sind Wochenende&lt;br /&gt;
: 123456.7 Montag - Samstag Werktag, nur Sonntag ist Wochendende&lt;br /&gt;
: 1234567 jeder Tag (inklusive Samstag &amp;amp; Sonntag) ist ein Werktag, kein Wochenende &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;sensor &amp;lt;external|internal|both&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: both = internal control temperature, external limit temperature &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
: synchronisiert Uhrzeit und Wochentag mit FHEM  &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;lock &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;power-on-memory &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;fre &amp;lt;open|close&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Frostschutz Funktion&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;room-temp-adj &amp;lt;-5 - +5&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Korrekturwert (Offset) Raumtemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;osv &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Maximum Temperatur für externen Sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svh &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Maximum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svl &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Minimum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;dif &amp;lt;1 - 9&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: difference of limit temperature value of external sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Temperatur &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Temperatu&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;weekprofile&#039;&#039;&#039;&lt;br /&gt;
: Setzt alle Wochentag Schaltzeiten und Temperaturen mit Werten aus einem Profil des Moduls weekprofile.&lt;br /&gt;
: Syntax : set weekprofile &amp;lt;weekprofile_device:profil_name[:Wochentag]&amp;gt;&lt;br /&gt;
: siehe auch Erklärung im Forum :{{Link2Forum|Topic=80703|Message=901303}}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Erläuterung im Forum: {{Link2Forum|Topic=80703|Message=901303}}&lt;br /&gt;
* FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Heizungssteuerung]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29671</id>
		<title>BEOK</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29671"/>
		<updated>2019-02-27T18:31:40Z</updated>

		<summary type="html">&lt;p&gt;Wzut: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=WiFi Raum-Thermostate für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=BEOK&lt;br /&gt;
|ModForumArea=Heizungssteuerung/Raumklima&lt;br /&gt;
|ModTechName=38_BEOK.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:plin/Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;BEOK&#039;&#039;&#039; implementiert die Steuerung von FHEM zu BEOK / Floureon / Hysen WiFi Raum-Thermostaten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
&lt;br /&gt;
Da das Modul AES-Verschlüsselung benötigt müssen ggf. noch zusätzliche Perl Module installiert werden.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bsp. für Debian/Raspian :&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-cbc-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo cpan Crypt/OpenSSL/AES.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Bezugsquellen :&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.amazon.de/Fussbodenheizung-Touchscreen-Intelligente-Programmierbare-Raumthermostat/dp/B07B8TKG5Y/  Amazon] Chunyang weiss Tasten 28€&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://de.aliexpress.com/item/16A-AC-220-V-WIFI-Heizung-Thermostat-Wasser-Elektrische-Heizung-System-WIFI-Thermostat-APP-Steuert-f/32889325428.html Ali] KETOTEK weiss Tasten ca 25€&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.amazon.de/FLOUREON-programmierbar-Fussbodenheizung-Heizungsthermostat-Heizungsregelung/dp/B077G6JKCX/ref=sr_1_2?s=diy&amp;amp;ie=UTF8&amp;amp;qid=1547653340&amp;amp;sr=1-2&amp;amp;keywords=floureon+wifi+raumthermostat Amazon] Floureon schwarz Touch 40 €&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://de.aliexpress.com/item/Floureon-Smart-Wi-Fi-Programmable-Thermostat-Digital-Touch-Screen-Room-Temperature-Controller-NTC-Underfloor-Heating-Thermostat/32826733099.html  Ali] Floureon schwarz Touch 31 €&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beok tds23 – z.Z. bei Amazon &amp;amp; Ali nicht (oder nie mehr ? ) lieferbar&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;38_BEOK.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist ein Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; BEOK &amp;lt;ip&amp;gt; [mac]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel &lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100 de:ad:be:ef:01:02&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;&lt;br /&gt;
: Poll Intevall in Sekunden,  0 = kein Polling , default 60&lt;br /&gt;
* &#039;&#039;&#039;timesync&#039;&#039;&#039;&lt;br /&gt;
: Uhrzeit und Wochentag automatisch mit FHEM synchronisieren, default 1 (an)&lt;br /&gt;
* &#039;&#039;&#039;timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout in Sekunden für die Netzwerk Kommunikation, default 5&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;&lt;br /&gt;
: de oder DE f&amp;amp;uuml;r deutsche Bezeichnungen, Raum statt Room , usw.&lt;br /&gt;
* &#039;&#039;&#039;model&#039;&#039;&#039;&lt;br /&gt;
: nur für die FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;desired-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Gewünschte Zieltemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;mode &amp;lt;auto|manual&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Modus auf automatisch oder manuell setzen&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;loop &amp;lt;12345.67 123456.7 1234567&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: 12345.67 Montag - Freitag Werktag, Samstag &amp;amp; Sonntag sind Wochenende&lt;br /&gt;
: 123456.7 Montag - Samstag Werktag, nur Sonntag ist Wochendende&lt;br /&gt;
: 1234567 jeder Tag (inklusive Samstag &amp;amp; Sonntag) ist ein Werktag, kein Wochenende &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;sensor &amp;lt;external|internal|both&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: both = internal control temperature, external limit temperature &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
: synchronisiert Uhrzeit und Wochentag mit FHEM  &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;lock &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;power-on-memory &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;fre &amp;lt;open|close&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Frostschutz Funktion&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;room-temp-adj &amp;lt;-5 - +5&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Korrekturwert (Offset) Raumtemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;osv &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Maximum Temperatur für externen Sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svh &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Maximum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svl &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Minimum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;dif &amp;lt;1 - 9&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: difference of limit temperature value of external sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Temperatur &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Temperatu&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;weekprofile&#039;&#039;&#039;&lt;br /&gt;
: Setzt alle Wochentag Schaltzeiten und Temperaturen mit Werten aus einem Profil des Moduls weekprofile.&lt;br /&gt;
: Syntax : set weekprofile &amp;lt;weekprofile_device:profil_name[:Wochentag]&amp;gt;&lt;br /&gt;
: siehe auch Erklärung im Forum :[https://forum.fhem.de/index.php/topic,80703.msg901303.html https://forum.fhem.de/index.php/topic,80703.msg901303.html]&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Erläuterung im Forum [https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303  https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303]&lt;br /&gt;
* FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Devices]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29670</id>
		<title>BEOK</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29670"/>
		<updated>2019-02-27T18:27:36Z</updated>

		<summary type="html">&lt;p&gt;Wzut: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=WiFi Raum-Thermostate für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=BEOK&lt;br /&gt;
|ModForumArea=Heizungssteuerung/Raumklima&lt;br /&gt;
|ModTechName=38_BEOK.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:plin/Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;BEOK&#039;&#039;&#039; implementiert die Steuerung von FHEM zu BEOK / Floureon / Hysen WiFi Raum-Thermostaten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
&lt;br /&gt;
Da das Modul AES-Verschlüsselung benötigt müssen ggf. noch zusätzliche Perl Module installiert werden.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bsp. für Debian/Raspian :&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-cbc-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo cpan Crypt/OpenSSL/AES.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Bezugsquellen :&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.amazon.de/Fussbodenheizung-Touchscreen-Intelligente-Programmierbare-Raumthermostat/dp/B07B8TKG5Y/  Amazon] Chunyang weiss Tasten 28€&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://de.aliexpress.com/item/16A-AC-220-V-WIFI-Heizung-Thermostat-Wasser-Elektrische-Heizung-System-WIFI-Thermostat-APP-Steuert-f/32889325428.html Ali] KETOTEK weiss Tasten ca 25€&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.amazon.de/FLOUREON-programmierbar-Fussbodenheizung-Heizungsthermostat-Heizungsregelung/dp/B077G6JKCX/ref=sr_1_2?s=diy&amp;amp;ie=UTF8&amp;amp;qid=1547653340&amp;amp;sr=1-2&amp;amp;keywords=floureon+wifi+raumthermostat Amazon] Floureon schwarz Touch 40 €&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://de.aliexpress.com/item/Floureon-Smart-Wi-Fi-Programmable-Thermostat-Digital-Touch-Screen-Room-Temperature-Controller-NTC-Underfloor-Heating-Thermostat/32826733099.html  Ali] Floureon schwarz Touch 31 €&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;38_BEOK.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist ein Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; BEOK &amp;lt;ip&amp;gt; [mac]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel &lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100 de:ad:be:ef:01:02&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;&lt;br /&gt;
: Poll Intevall in Sekunden,  0 = kein Polling , default 60&lt;br /&gt;
* &#039;&#039;&#039;timesync&#039;&#039;&#039;&lt;br /&gt;
: Uhrzeit und Wochentag automatisch mit FHEM synchronisieren, default 1 (an)&lt;br /&gt;
* &#039;&#039;&#039;timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout in Sekunden für die Netzwerk Kommunikation, default 5&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;&lt;br /&gt;
: de oder DE f&amp;amp;uuml;r deutsche Bezeichnungen, Raum statt Room , usw.&lt;br /&gt;
* &#039;&#039;&#039;model&#039;&#039;&#039;&lt;br /&gt;
: nur für die FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;desired-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Gewünschte Zieltemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;mode &amp;lt;auto|manual&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Modus auf automatisch oder manuell setzen&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;loop &amp;lt;12345.67 123456.7 1234567&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: 12345.67 Montag - Freitag Werktag, Samstag &amp;amp; Sonntag sind Wochenende&lt;br /&gt;
: 123456.7 Montag - Samstag Werktag, nur Sonntag ist Wochendende&lt;br /&gt;
: 1234567 jeder Tag (inklusive Samstag &amp;amp; Sonntag) ist ein Werktag, kein Wochenende &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;sensor &amp;lt;external|internal|both&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: both = internal control temperature, external limit temperature &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
: synchronisiert Uhrzeit und Wochentag mit FHEM  &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;lock &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;power-on-memory &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;fre &amp;lt;open|close&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Frostschutz Funktion&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;room-temp-adj &amp;lt;-5 - +5&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Korrekturwert (Offset) Raumtemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;osv &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Maximum Temperatur für externen Sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svh &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Maximum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svl &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Minimum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;dif &amp;lt;1 - 9&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: difference of limit temperature value of external sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Temperatur &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Temperatu&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;weekprofile&#039;&#039;&#039;&lt;br /&gt;
: Setzt alle Wochentag Schaltzeiten und Temperaturen mit Werten aus einem Profil des Moduls weekprofile.&lt;br /&gt;
: Syntax : set weekprofile &amp;lt;weekprofile_device:profil_name[:Wochentag]&amp;gt;&lt;br /&gt;
: siehe auch Erklärung im Forum :[https://forum.fhem.de/index.php/topic,80703.msg901303.html https://forum.fhem.de/index.php/topic,80703.msg901303.html]&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Erläuterung im Forum [https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303  https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303]&lt;br /&gt;
* FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Devices]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29669</id>
		<title>BEOK</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29669"/>
		<updated>2019-02-27T18:26:16Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=WiFi Raum-Thermostate für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=BEOK&lt;br /&gt;
|ModForumArea=Heizungssteuerung/Raumklima&lt;br /&gt;
|ModTechName=38_BEOK.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:plin/Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;BEOK&#039;&#039;&#039; implementiert die Steuerung von FHEM zu BEOK / Floureon / Hysen WiFi Raum-Thermostaten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
&lt;br /&gt;
Da das Modul AES-Verschlüsselung benötigt müssen ggf. noch zusätzliche Perl Module installiert werden.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bsp. für Debian/Raspian :&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-cbc-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo cpan Crypt/OpenSSL/AES.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Bezugsquellen :&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.amazon.de/Fussbodenheizung-Touchscreen-Intelligente-Programmierbare-Raumthermostat/dp/B07B8TKG5Y/  Amazon] Chunyang weiss Tasten 28€&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://de.aliexpress.com/item/16A-AC-220-V-WIFI-Heizung-Thermostat-Wasser-Elektrische-Heizung-System-WIFI-Thermostat-APP-Steuert-f/32889325428.html Ali] KETOTEK weiss Tasten ca 25€&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.amazon.de/FLOUREON-programmierbar-Fussbodenheizung-Heizungsthermostat-Heizungsregelung/dp/B077G6JKCX/ref=sr_1_2?s=diy&amp;amp;ie=UTF8&amp;amp;qid=1547653340&amp;amp;sr=1-2&amp;amp;keywords=floureon+wifi+raumthermostat Floureon Amazon] schwarz Touch 40 €&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[https://de.aliexpress.com/item/Floureon-Smart-Wi-Fi-Programmable-Thermostat-Digital-Touch-Screen-Room-Temperature-Controller-NTC-Underfloor-Heating-Thermostat/32826733099.html  Ali] Floureon schwarz Touch 31 €&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;38_BEOK.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist ein Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; BEOK &amp;lt;ip&amp;gt; [mac]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel &lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100 de:ad:be:ef:01:02&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;&lt;br /&gt;
: Poll Intevall in Sekunden,  0 = kein Polling , default 60&lt;br /&gt;
* &#039;&#039;&#039;timesync&#039;&#039;&#039;&lt;br /&gt;
: Uhrzeit und Wochentag automatisch mit FHEM synchronisieren, default 1 (an)&lt;br /&gt;
* &#039;&#039;&#039;timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout in Sekunden für die Netzwerk Kommunikation, default 5&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;&lt;br /&gt;
: de oder DE f&amp;amp;uuml;r deutsche Bezeichnungen, Raum statt Room , usw.&lt;br /&gt;
* &#039;&#039;&#039;model&#039;&#039;&#039;&lt;br /&gt;
: nur für die FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;desired-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Gewünschte Zieltemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;mode &amp;lt;auto|manual&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Modus auf automatisch oder manuell setzen&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;loop &amp;lt;12345.67 123456.7 1234567&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: 12345.67 Montag - Freitag Werktag, Samstag &amp;amp; Sonntag sind Wochenende&lt;br /&gt;
: 123456.7 Montag - Samstag Werktag, nur Sonntag ist Wochendende&lt;br /&gt;
: 1234567 jeder Tag (inklusive Samstag &amp;amp; Sonntag) ist ein Werktag, kein Wochenende &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;sensor &amp;lt;external|internal|both&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: both = internal control temperature, external limit temperature &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
: synchronisiert Uhrzeit und Wochentag mit FHEM  &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;lock &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;power-on-memory &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;fre &amp;lt;open|close&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Frostschutz Funktion&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;room-temp-adj &amp;lt;-5 - +5&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Korrekturwert (Offset) Raumtemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;osv &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Maximum Temperatur für externen Sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svh &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Maximum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svl &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Minimum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;dif &amp;lt;1 - 9&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: difference of limit temperature value of external sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Temperatur &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Temperatu&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;weekprofile&#039;&#039;&#039;&lt;br /&gt;
: Setzt alle Wochentag Schaltzeiten und Temperaturen mit Werten aus einem Profil des Moduls weekprofile.&lt;br /&gt;
: Syntax : set weekprofile &amp;lt;weekprofile_device:profil_name[:Wochentag]&amp;gt;&lt;br /&gt;
: siehe auch Erklärung im Forum :[https://forum.fhem.de/index.php/topic,80703.msg901303.html https://forum.fhem.de/index.php/topic,80703.msg901303.html]&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Erläuterung im Forum [https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303  https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303]&lt;br /&gt;
* FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Devices]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29668</id>
		<title>BEOK</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29668"/>
		<updated>2019-02-27T18:24:43Z</updated>

		<summary type="html">&lt;p&gt;Wzut: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=WiFi Raum-Thermostate für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=BEOK&lt;br /&gt;
|ModForumArea=Heizungssteuerung/Raumklima&lt;br /&gt;
|ModTechName=38_BEOK.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:plin/Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;BEOK&#039;&#039;&#039; implementiert die Steuerung von FHEM zu BEOK / Floureon / Hysen WiFi Raum-Thermostaten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
&lt;br /&gt;
Da das Modul AES-Verschlüsselung benötigt müssen ggf. noch zusätzliche Perl Module installiert werden.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bsp. für Debian/Raspian :&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-cbc-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo cpan Crypt/OpenSSL/AES.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Bezugsquellen :&lt;br /&gt;
[https://www.amazon.de/Fussbodenheizung-Touchscreen-Intelligente-Programmierbare-Raumthermostat/dp/B07B8TKG5Y/  Amazon] Chunyang weiss Tasten 28€&lt;br /&gt;
&lt;br /&gt;
[https://de.aliexpress.com/item/16A-AC-220-V-WIFI-Heizung-Thermostat-Wasser-Elektrische-Heizung-System-WIFI-Thermostat-APP-Steuert-f/32889325428.html Ali] KETOTEK weiss Tasten ca 25€&lt;br /&gt;
[https://www.amazon.de/FLOUREON-programmierbar-Fussbodenheizung-Heizungsthermostat-Heizungsregelung/dp/B077G6JKCX/ref=sr_1_2?s=diy&amp;amp;ie=UTF8&amp;amp;qid=1547653340&amp;amp;sr=1-2&amp;amp;keywords=floureon+wifi+raumthermostat Floureon Amazon] schwarz Touch 40 €&lt;br /&gt;
[https://de.aliexpress.com/item/Floureon-Smart-Wi-Fi-Programmable-Thermostat-Digital-Touch-Screen-Room-Temperature-Controller-NTC-Underfloor-Heating-Thermostat/32826733099.html  Ali] Floureon schwarz Touch 31 €&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;38_BEOK.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist ein Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; BEOK &amp;lt;ip&amp;gt; [mac]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel &lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100 de:ad:be:ef:01:02&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;&lt;br /&gt;
: Poll Intevall in Sekunden,  0 = kein Polling , default 60&lt;br /&gt;
* &#039;&#039;&#039;timesync&#039;&#039;&#039;&lt;br /&gt;
: Uhrzeit und Wochentag automatisch mit FHEM synchronisieren, default 1 (an)&lt;br /&gt;
* &#039;&#039;&#039;timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout in Sekunden für die Netzwerk Kommunikation, default 5&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;&lt;br /&gt;
: de oder DE f&amp;amp;uuml;r deutsche Bezeichnungen, Raum statt Room , usw.&lt;br /&gt;
* &#039;&#039;&#039;model&#039;&#039;&#039;&lt;br /&gt;
: nur für die FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;desired-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Gewünschte Zieltemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;mode &amp;lt;auto|manual&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Modus auf automatisch oder manuell setzen&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;loop &amp;lt;12345.67 123456.7 1234567&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: 12345.67 Montag - Freitag Werktag, Samstag &amp;amp; Sonntag sind Wochenende&lt;br /&gt;
: 123456.7 Montag - Samstag Werktag, nur Sonntag ist Wochendende&lt;br /&gt;
: 1234567 jeder Tag (inklusive Samstag &amp;amp; Sonntag) ist ein Werktag, kein Wochenende &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;sensor &amp;lt;external|internal|both&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: both = internal control temperature, external limit temperature &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
: synchronisiert Uhrzeit und Wochentag mit FHEM  &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;lock &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;power-on-memory &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;fre &amp;lt;open|close&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Frostschutz Funktion&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;room-temp-adj &amp;lt;-5 - +5&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Korrekturwert (Offset) Raumtemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;osv &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Maximum Temperatur für externen Sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svh &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Maximum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svl &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Minimum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;dif &amp;lt;1 - 9&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: difference of limit temperature value of external sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Temperatur &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Temperatu&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;weekprofile&#039;&#039;&#039;&lt;br /&gt;
: Setzt alle Wochentag Schaltzeiten und Temperaturen mit Werten aus einem Profil des Moduls weekprofile.&lt;br /&gt;
: Syntax : set weekprofile &amp;lt;weekprofile_device:profil_name[:Wochentag]&amp;gt;&lt;br /&gt;
: siehe auch Erklärung im Forum :[https://forum.fhem.de/index.php/topic,80703.msg901303.html https://forum.fhem.de/index.php/topic,80703.msg901303.html]&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Erläuterung im Forum [https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303  https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303]&lt;br /&gt;
* FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Devices]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29667</id>
		<title>BEOK</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29667"/>
		<updated>2019-02-27T18:23:09Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=WiFi Raum-Thermostate für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=BEOK&lt;br /&gt;
|ModForumArea=Heizungssteuerung/Raumklima&lt;br /&gt;
|ModTechName=38_BEOK.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:plin/Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;BEOK&#039;&#039;&#039; implementiert die Steuerung von FHEM zu BEOK / Floureon / Hysen WiFi Raum-Thermostaten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
&lt;br /&gt;
Da das Modul AES-Verschlüsselung benötigt müssen ggf. noch zusätzliche Perl Module installiert werden.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bsp. für Debian/Raspian :&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-cbc-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo cpan Crypt/OpenSSL/AES.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Bezugsquellen :&lt;br /&gt;
[https://www.amazon.de/Fussbodenheizung-Touchscreen-Intelligente-Programmierbare-Raumthermostat/dp/B07B8TKG5Y/  Amazon] Chunyang weiss Tasten 28€&lt;br /&gt;
https://de.aliexpress.com/item/16A-AC-220-V-WIFI-Heizung-Thermostat-Wasser-Elektrische-Heizung-System-WIFI-Thermostat-APP-Steuert-f/32889325428.html KETOTEK weiss Tasten ca 25€&lt;br /&gt;
https://www.amazon.de/FLOUREON-programmierbar-Fussbodenheizung-Heizungsthermostat-Heizungsregelung/dp/B077G6JKCX/ref=sr_1_2?s=diy&amp;amp;ie=UTF8&amp;amp;qid=1547653340&amp;amp;sr=1-2&amp;amp;keywords=floureon+wifi+raumthermostat Floureon schwarz Touch 40 €&lt;br /&gt;
https://de.aliexpress.com/item/Floureon-Smart-Wi-Fi-Programmable-Thermostat-Digital-Touch-Screen-Room-Temperature-Controller-NTC-Underfloor-Heating-Thermostat/32826733099.html Floureon schwarz Touch 31 €&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;38_BEOK.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist ein Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; BEOK &amp;lt;ip&amp;gt; [mac]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel &lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100 de:ad:be:ef:01:02&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;&lt;br /&gt;
: Poll Intevall in Sekunden,  0 = kein Polling , default 60&lt;br /&gt;
* &#039;&#039;&#039;timesync&#039;&#039;&#039;&lt;br /&gt;
: Uhrzeit und Wochentag automatisch mit FHEM synchronisieren, default 1 (an)&lt;br /&gt;
* &#039;&#039;&#039;timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout in Sekunden für die Netzwerk Kommunikation, default 5&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;&lt;br /&gt;
: de oder DE f&amp;amp;uuml;r deutsche Bezeichnungen, Raum statt Room , usw.&lt;br /&gt;
* &#039;&#039;&#039;model&#039;&#039;&#039;&lt;br /&gt;
: nur für die FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;desired-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Gewünschte Zieltemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;mode &amp;lt;auto|manual&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Modus auf automatisch oder manuell setzen&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;loop &amp;lt;12345.67 123456.7 1234567&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: 12345.67 Montag - Freitag Werktag, Samstag &amp;amp; Sonntag sind Wochenende&lt;br /&gt;
: 123456.7 Montag - Samstag Werktag, nur Sonntag ist Wochendende&lt;br /&gt;
: 1234567 jeder Tag (inklusive Samstag &amp;amp; Sonntag) ist ein Werktag, kein Wochenende &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;sensor &amp;lt;external|internal|both&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: both = internal control temperature, external limit temperature &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
: synchronisiert Uhrzeit und Wochentag mit FHEM  &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;lock &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;power-on-memory &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;fre &amp;lt;open|close&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Frostschutz Funktion&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;room-temp-adj &amp;lt;-5 - +5&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Korrekturwert (Offset) Raumtemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;osv &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Maximum Temperatur für externen Sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svh &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Maximum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svl &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Minimum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;dif &amp;lt;1 - 9&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: difference of limit temperature value of external sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Temperatur &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Temperatu&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;weekprofile&#039;&#039;&#039;&lt;br /&gt;
: Setzt alle Wochentag Schaltzeiten und Temperaturen mit Werten aus einem Profil des Moduls weekprofile.&lt;br /&gt;
: Syntax : set weekprofile &amp;lt;weekprofile_device:profil_name[:Wochentag]&amp;gt;&lt;br /&gt;
: siehe auch Erklärung im Forum :[https://forum.fhem.de/index.php/topic,80703.msg901303.html https://forum.fhem.de/index.php/topic,80703.msg901303.html]&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Erläuterung im Forum [https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303  https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303]&lt;br /&gt;
* FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Devices]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29666</id>
		<title>BEOK</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29666"/>
		<updated>2019-02-27T18:20:59Z</updated>

		<summary type="html">&lt;p&gt;Wzut: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=WiFi Raum-Thermostate für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=BEOK&lt;br /&gt;
|ModForumArea=Heizungssteuerung/Raumklima&lt;br /&gt;
|ModTechName=38_BEOK.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:plin/Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;BEOK&#039;&#039;&#039; implementiert die Steuerung von FHEM zu BEOK / Floureon / Hysen WiFi Raum-Thermostaten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
&lt;br /&gt;
Da das Modul AES-Verschlüsselung benötigt müssen ggf. noch zusätzliche Perl Module installiert werden.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bsp. für Debian/Raspian :&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-cbc-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo cpan Crypt/OpenSSL/AES.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Bezugsquellen :&lt;br /&gt;
https://www.amazon.de/Fussbodenheizung-Touchscreen-Intelligente-Programmierbare-Raumthermostat/dp/B07B8TKG5Y/  Chunyang weiss Tasten 28€&lt;br /&gt;
https://de.aliexpress.com/item/16A-AC-220-V-WIFI-Heizung-Thermostat-Wasser-Elektrische-Heizung-System-WIFI-Thermostat-APP-Steuert-f/32889325428.html KETOTEK weiss Tasten ca 25€&lt;br /&gt;
https://www.amazon.de/FLOUREON-programmierbar-Fussbodenheizung-Heizungsthermostat-Heizungsregelung/dp/B077G6JKCX/ref=sr_1_2?s=diy&amp;amp;ie=UTF8&amp;amp;qid=1547653340&amp;amp;sr=1-2&amp;amp;keywords=floureon+wifi+raumthermostat Floureon schwarz Touch 40 €&lt;br /&gt;
https://de.aliexpress.com/item/Floureon-Smart-Wi-Fi-Programmable-Thermostat-Digital-Touch-Screen-Room-Temperature-Controller-NTC-Underfloor-Heating-Thermostat/32826733099.html Floureon schwarz Touch 31 €&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;38_BEOK.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist ein Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; BEOK &amp;lt;ip&amp;gt; [mac]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel &lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100 de:ad:be:ef:01:02&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;&lt;br /&gt;
: Poll Intevall in Sekunden,  0 = kein Polling , default 60&lt;br /&gt;
* &#039;&#039;&#039;timesync&#039;&#039;&#039;&lt;br /&gt;
: Uhrzeit und Wochentag automatisch mit FHEM synchronisieren, default 1 (an)&lt;br /&gt;
* &#039;&#039;&#039;timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout in Sekunden für die Netzwerk Kommunikation, default 5&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;&lt;br /&gt;
: de oder DE f&amp;amp;uuml;r deutsche Bezeichnungen, Raum statt Room , usw.&lt;br /&gt;
* &#039;&#039;&#039;model&#039;&#039;&#039;&lt;br /&gt;
: nur für die FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;desired-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Gewünschte Zieltemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;mode &amp;lt;auto|manual&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Modus auf automatisch oder manuell setzen&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;loop &amp;lt;12345.67 123456.7 1234567&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: 12345.67 Montag - Freitag Werktag, Samstag &amp;amp; Sonntag sind Wochenende&lt;br /&gt;
: 123456.7 Montag - Samstag Werktag, nur Sonntag ist Wochendende&lt;br /&gt;
: 1234567 jeder Tag (inklusive Samstag &amp;amp; Sonntag) ist ein Werktag, kein Wochenende &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;sensor &amp;lt;external|internal|both&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: both = internal control temperature, external limit temperature &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
: synchronisiert Uhrzeit und Wochentag mit FHEM  &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;lock &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;power-on-memory &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;fre &amp;lt;open|close&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Frostschutz Funktion&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;room-temp-adj &amp;lt;-5 - +5&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Korrekturwert (Offset) Raumtemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;osv &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Maximum Temperatur für externen Sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svh &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Maximum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svl &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Minimum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;dif &amp;lt;1 - 9&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: difference of limit temperature value of external sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Temperatur &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Temperatu&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;weekprofile&#039;&#039;&#039;&lt;br /&gt;
: Setzt alle Wochentag Schaltzeiten und Temperaturen mit Werten aus einem Profil des Moduls weekprofile.&lt;br /&gt;
: Syntax : set weekprofile &amp;lt;weekprofile_device:profil_name[:Wochentag]&amp;gt;&lt;br /&gt;
: siehe auch Erklärung im Forum :[https://forum.fhem.de/index.php/topic,80703.msg901303.html https://forum.fhem.de/index.php/topic,80703.msg901303.html]&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Erläuterung im Forum [https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303  https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303]&lt;br /&gt;
* FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Devices]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29664</id>
		<title>BEOK</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29664"/>
		<updated>2019-02-27T16:58:30Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=WiFi Raum-Thermostate für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=BEOK&lt;br /&gt;
|ModForumArea=Heizungssteuerung/Raumklima&lt;br /&gt;
|ModTechName=38_BEOK.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:plin/Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;BEOK&#039;&#039;&#039; implementiert die Steuerung von FHEM zu BEOK / Floureon / Hysen WiFi Raum-Thermostaten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
&lt;br /&gt;
Da das Modul AES-Verschlüsselung benötigt müssen ggf. noch zusätzliche Perl Module installiert werden.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bsp. für Debian/Raspian :&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-cbc-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo cpan Crypt/OpenSSL/AES.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Quellen sind: tbd&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;38_BEOK.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist ein Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; BEOK &amp;lt;ip&amp;gt; [mac]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel &lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100 de:ad:be:ef:01:02&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;&lt;br /&gt;
: Poll Intevall in Sekunden,  0 = kein Polling , default 60&lt;br /&gt;
* &#039;&#039;&#039;timesync&#039;&#039;&#039;&lt;br /&gt;
: Uhrzeit und Wochentag automatisch mit FHEM synchronisieren, default 1 (an)&lt;br /&gt;
* &#039;&#039;&#039;timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout in Sekunden für die Netzwerk Kommunikation, default 5&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;&lt;br /&gt;
: de oder DE f&amp;amp;uuml;r deutsche Bezeichnungen, Raum statt Room , usw.&lt;br /&gt;
* &#039;&#039;&#039;model&#039;&#039;&#039;&lt;br /&gt;
: nur für die FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;desired-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Gewünschte Zieltemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;mode &amp;lt;auto|manual&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Modus auf automatisch oder manuell setzen&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;loop &amp;lt;12345.67 123456.7 1234567&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: 12345.67 Montag - Freitag Werktag, Samstag &amp;amp; Sonntag sind Wochenende&lt;br /&gt;
: 123456.7 Montag - Samstag Werktag, nur Sonntag ist Wochendende&lt;br /&gt;
: 1234567 jeder Tag (inklusive Samstag &amp;amp; Sonntag) ist ein Werktag, kein Wochenende &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;sensor &amp;lt;external|internal|both&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: both = internal control temperature, external limit temperature &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
: synchronisiert Uhrzeit und Wochentag mit FHEM  &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;lock &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;power-on-memory &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;fre &amp;lt;open|close&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Frostschutz Funktion&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;room-temp-adj &amp;lt;-5 - +5&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Korrekturwert (Offset) Raumtemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;osv &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Maximum Temperatur für externen Sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svh &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Maximum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svl &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Minimum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;dif &amp;lt;1 - 9&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: difference of limit temperature value of external sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Temperatur &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Temperatu&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;weekprofile&#039;&#039;&#039;&lt;br /&gt;
: Setzt alle Wochentag Schaltzeiten und Temperaturen mit Werten aus einem Profil des Moduls weekprofile.&lt;br /&gt;
: Syntax : set weekprofile &amp;lt;weekprofile_device:profil_name[:Wochentag]&amp;gt;&lt;br /&gt;
: siehe auch Erklärung im Forum :[https://forum.fhem.de/index.php/topic,80703.msg901303.html https://forum.fhem.de/index.php/topic,80703.msg901303.html]&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Erläuterung im Forum [https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303  https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303]&lt;br /&gt;
* FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Devices]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29663</id>
		<title>BEOK</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29663"/>
		<updated>2019-02-27T16:54:05Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=BEOK Support für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=BEOK&lt;br /&gt;
|ModForumArea=Heizungssteuerung/Raumklima&lt;br /&gt;
|ModTechName=38_BEOK.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:plin/Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;BEOK&#039;&#039;&#039; implementiert die Steuerung von FHEM zu BEOK / Floureon / Hysen WiFi Raum-Thermostaten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
&lt;br /&gt;
Da das Modul AES-Verschlüsselung benötigt müssen ggf. noch zusätzliche Perl Module installiert werden.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bsp. für Debian/Raspian :&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-cbc-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo cpan Crypt/OpenSSL/AES.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Quellen sind: tbd&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;38_BEOK.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist ein Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; BEOK &amp;lt;ip&amp;gt; [mac]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel &lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100 de:ad:be:ef:01:02&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;&lt;br /&gt;
: Poll Intevall in Sekunden,  0 = kein Polling , default 60&lt;br /&gt;
* &#039;&#039;&#039;timesync&#039;&#039;&#039;&lt;br /&gt;
: Uhrzeit und Wochentag automatisch mit FHEM synchronisieren, default 1 (an)&lt;br /&gt;
* &#039;&#039;&#039;timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout in Sekunden für die Netzwerk Kommunikation, default 5&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;&lt;br /&gt;
: de oder DE f&amp;amp;uuml;r deutsche Bezeichnungen, Raum statt Room , usw.&lt;br /&gt;
* &#039;&#039;&#039;model&#039;&#039;&#039;&lt;br /&gt;
: nur für die FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;desired-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Gewünschte Zieltemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;mode &amp;lt;auto|manual&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Modus auf automatisch oder manuell setzen&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;loop &amp;lt;12345.67 123456.7 1234567&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: 12345.67 Montag - Freitag Werktag, Samstag &amp;amp; Sonntag sind Wochenende&lt;br /&gt;
: 123456.7 Montag - Samstag Werktag, nur Sonntag ist Wochendende&lt;br /&gt;
: 1234567 jeder Tag (inklusive Samstag &amp;amp; Sonntag) ist ein Werktag, kein Wochenende &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;sensor &amp;lt;external|internal|both&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: both = internal control temperature, external limit temperature &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
: synchronisiert Uhrzeit und Wochentag mit FHEM  &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;lock &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;power-on-memory &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;fre &amp;lt;open|close&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Frostschutz Funktion&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;room-temp-adj &amp;lt;-5 - +5&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Korrekturwert (Offset) Raumtemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;osv &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Maximum Temperatur für externen Sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svh &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Maximum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svl &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Minimum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;dif &amp;lt;1 - 9&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: difference of limit temperature value of external sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Temperatur &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Temperatu&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;weekprofile&#039;&#039;&#039;&lt;br /&gt;
: Setzt alle Wochentag Schaltzeiten und Temperaturen mit Werten aus einem Profil des Moduls weekprofile.&lt;br /&gt;
: Syntax : set weekprofile &amp;lt;weekprofile_device:profil_name[:Wochentag]&amp;gt;&lt;br /&gt;
: siehe auch Erklärung im Forum :[https://forum.fhem.de/index.php/topic,80703.msg901303.html https://forum.fhem.de/index.php/topic,80703.msg901303.html]&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Erläuterung im Forum [https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303  https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303]&lt;br /&gt;
* FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Devices]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29657</id>
		<title>BEOK</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=BEOK&amp;diff=29657"/>
		<updated>2019-02-27T06:31:21Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=BEOK Support für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=BEOK&lt;br /&gt;
|ModForumArea=Sonstiges&lt;br /&gt;
|ModTechName=38_BEOK.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;BEOK&#039;&#039;&#039; implementiert die Steuerung von FHEM zu BEOK / Floureon / Hysen WiFi Raum-Thermostaten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
&lt;br /&gt;
Da das Modul AES-Verschlüsselung benötigt müssen ggf. noch zusätzliche Perl Module installiert werden.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bsp. für Debian/Raspian :&amp;lt;br /&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-cbc-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libcrypt-rijndael-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo apt-get install libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;sudo cpan Crypt/OpenSSL/AES.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Quellen sind: tbd&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;38_BEOK.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist ein Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; BEOK &amp;lt;ip&amp;gt; [mac]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel &lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;define Thermo BEOK 192.168.1.100 de:ad:be:ef:01:02&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;interval&#039;&#039;&#039;&lt;br /&gt;
: Poll Intevall in Sekunden,  0 = kein Polling , default 60&lt;br /&gt;
* &#039;&#039;&#039;timesync&#039;&#039;&#039;&lt;br /&gt;
: Uhrzeit und Wochentag automatisch mit FHEM synchronisieren, default 1 (an)&lt;br /&gt;
* &#039;&#039;&#039;timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout in Sekunden für die Netzwerk Kommunikation, default 5&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;&lt;br /&gt;
: de oder DE f&amp;amp;uuml;r deutsche Bezeichnungen, Raum statt Room , usw.&lt;br /&gt;
* &#039;&#039;&#039;model&#039;&#039;&#039;&lt;br /&gt;
: nur für die FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;desired-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Gewünschte Zieltemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;mode &amp;lt;auto|manual&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Modus auf automatisch oder manuell setzen&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;loop &amp;lt;12345.67 123456.7 1234567&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: 12345.67 Montag - Freitag Werktag, Samstag &amp;amp; Sonntag sind Wochenende&lt;br /&gt;
: 123456.7 Montag - Samstag Werktag, nur Sonntag ist Wochendende&lt;br /&gt;
: 1234567 jeder Tag (inklusive Samstag &amp;amp; Sonntag) ist ein Werktag, kein Wochenende &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;sensor &amp;lt;external|internal|both&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: both = internal control temperature, external limit temperature &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;time&#039;&#039;&#039;&lt;br /&gt;
: synchronisiert Uhrzeit und Wochentag mit FHEM  &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;lock &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;power-on-memory &amp;lt;on off&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: tbd &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;fre &amp;lt;open|close&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Frostschutz Funktion&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;room-temp-adj &amp;lt;-5 - +5&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Korrekturwert (Offset) Raumtemperatur&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;osv &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Maximum Temperatur für externen Sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svh &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Maximum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;svl &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Raumtemperatur Minimum&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;dif &amp;lt;1 - 9&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: difference of limit temperature value of external sensor &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Temperatur &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;day-profil[1-6]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Werktagprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-temp &amp;lt;5 - 99&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Temperatu&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;we-profile[7-8]-time &amp;lt;00:00 - 23:59&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
: Wochenendprofil Zeit &lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;weekprofile&#039;&#039;&#039;&lt;br /&gt;
: Setzt alle Wochentag Schaltzeiten und Temperaturen mit Werten aus einem Profil des Moduls weekprofile.&lt;br /&gt;
: Syntax : set weekprofile &amp;lt;weekprofile_device:profil_name[:Wochentag]&amp;gt;&lt;br /&gt;
: siehe auch Erklärung im Forum :[https://forum.fhem.de/index.php/topic,80703.msg901303.html https://forum.fhem.de/index.php/topic,80703.msg901303.html]&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
&lt;br /&gt;
folgen noch&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Erläuterung im Forum [https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303  https://forum.fhem.de/index.php/topic,80703.msg901303.html#msg901303]&lt;br /&gt;
* FHEM Modul Statistik unter [https://fhem.de/stats/statistics.html https://fhem.de/stats/statistics.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Devices]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=27691</id>
		<title>SIP-Client</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=27691"/>
		<updated>2018-08-15T07:06:18Z</updated>

		<summary type="html">&lt;p&gt;Wzut: eq &amp;quot;ringing.*&amp;quot;  oder besser =~ &amp;quot;ringing&amp;quot; ?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=SIP-Client für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=SIP&lt;br /&gt;
|ModForumArea=Sonstiges&lt;br /&gt;
|ModTechName=96_SIP.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;SIP&#039;&#039;&#039; ermöglicht die Entgegennahme (DTMF-Töne interpretieren, kontrollierte Annahme) sowie die Durchführung (Audiofile abspielen, DTMF-Töne senden, Textansage) von Anrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
Für den Remote-Zugang muss das Modul Net::SIP installiert sein; auf einem Raspberry Pi oder unter Ubuntu z.&amp;amp;nbsp;B. mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cpan install Net::SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder auch&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libnet-sip-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls cpan nicht funktioniert, hilft vielleicht dieser Forumseintrag https://forum.fhem.de/index.php/topic,40219.msg421446.html#msg421446&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Falls Ihr Text2Speech verwenden wollt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vorbereitung&lt;br /&gt;
* SoX installieren &lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install sox &amp;lt;/code&amp;gt;&lt;br /&gt;
* mp3 Unterstützung für SoX installieren&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libsox-fmt-mp3&amp;lt;/code&amp;gt;&lt;br /&gt;
* Text2Speech als Server Device anlegen &lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name z.B myT2S&amp;gt; text2speech none&amp;lt;/code&amp;gt;&lt;br /&gt;
* beim SIP Device dieses Server Device im Attribut T2S_Device eintragen&lt;br /&gt;
&lt;br /&gt;
=== SIP-Server ===&lt;br /&gt;
Der SIP-Client muss sich an einem SIP-Server anmelden (Fritzbox, Asterisk, VoIP-Provider). &lt;br /&gt;
Auf dem SIP-Server, mit dem sich der Client verbinden soll, muss ein User-Account vorhanden sein bzw. angelegt werden. &lt;br /&gt;
In der Fritzbox muss z.B. ein neues Telefoniegerät vom Typ LAN/WLAN angelegt und ein Passwort (mind. 8 Stellen und Stufe &#039;gut&#039;) vergeben werden. Das erzeugt ein neues internes Device im internen Rufnummernbereich **62x, typischerweise die 620. Es sollte kontrolliert werden, ob bei den Anmeldeinformationen der Benutzername der Nebenstelle entspricht (z.B. 620) und ein Passwort eingetragen ist.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Die verwendete Library Net::SIP fordert mehr Ressourcen als RaspberryPi, BananaPi &amp;amp; Co hergeben. Bitte testet, ob Eure Hardware Audofiles sauber abspielen sowie sicher DTMF-Töne empfangen kann und für Euren Einsatzzweck geeignet ist. Erste Tests mit einem Raspi3 lagen im akzeptablen Bereich.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;96_SIP.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist der SIP-Client als Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden. Ebenso ist das Passwort mittels set-Command zu speichern.&lt;br /&gt;
&lt;br /&gt;
Siehe auch {{Link2CmdRef|Lang=de|Anker=SIP}}&lt;br /&gt;
&lt;br /&gt;
=== Mögliche Fehlermeldungen ===&lt;br /&gt;
Sollte schon bei &amp;lt;code&amp;gt;define mySIP SIP&amp;lt;/code&amp;gt; die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte &#039;update all&#039; durchführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Basics &amp;amp; Allgemeines&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;sip_from&#039;&#039;&#039;&lt;br /&gt;
: Meine SIP-Client-Info. Default ist &amp;lt;nowiki&amp;gt;sip:620@fritz.box&amp;lt;/nowiki&amp;gt; für ältere Fritz!OS-Versionen. Ab 6.8 ist das Format &amp;lt;nowiki&amp;gt;sip:Benutzername@fritz.box&amp;lt;/nowiki&amp;gt;, z.B. sip:meinuser@fritz.box.&lt;br /&gt;
* &#039;&#039;&#039;sip_ip&#039;&#039;&#039;&lt;br /&gt;
: Die IP-Addresse meines FHEM-Servers.&lt;br /&gt;
* &#039;&#039;&#039;sip_port&#039;&#039;&#039;&lt;br /&gt;
: Port der für den SIP-Client genutzt wird. Default ist 5060 und wird automatisch um 10 erhöht wenn der Port nicht frei ist.&lt;br /&gt;
* &#039;&#039;&#039;sip_registrar&#039;&#039;&#039;&lt;br /&gt;
: Hostname oder IP-Addresse des SIP-Servers mit dem sich der Client verbindet. Default ist fritz.box.&lt;br /&gt;
* &#039;&#039;&#039;sip_user&#039;&#039;&#039;&lt;br /&gt;
: User Name des SIP-Clients. Default ist 620. Ab 6.8 ist der Benutzername aus sip_from anzugeben, z.B. meinuser.&lt;br /&gt;
: Anmerkung: Passwort wird über &amp;quot;set &amp;lt;device&amp;gt; password &#039;&#039;mypassword&#039;&#039;&amp;quot; gesetzt.&lt;br /&gt;
* &#039;&#039;&#039;sip_listen&#039;&#039;&#039;&lt;br /&gt;
: Das Attribut bietet folgende Optionen&lt;br /&gt;
: - &#039;&#039;&#039;none&#039;&#039;&#039;: keine Aktion (&#039;listen&#039; kann auch nicht manuell gestartet werden)&lt;br /&gt;
: - &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen und wartet auf DTMF-Anrufer (listen_dtmf). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
: - &#039;&#039;&#039;wfp&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen wait-fetch-play (listen_wfp). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
: - &#039;&#039;&#039;echo&#039;&#039;&#039;: Spielt dem Anrufer nur sein eigenes Echo wider. Sonst nix (siehe auch Anwendungsfälle).&lt;br /&gt;
* &#039;&#039;&#039;sip_waittime&#039;&#039;&#039;&lt;br /&gt;
: Maximale Wartezeit bei listen_wfp bis das Gespräch automatisch angenommen wird.&lt;br /&gt;
* &#039;&#039;&#039;sip_ringtime&#039;&#039;&#039;&lt;br /&gt;
: listen: legt fest wie lange das Modul warten soll bis es den Anruf annimmt. Defaultwert ist 2, das entspricht ca. 1x klingeln.&lt;br /&gt;
* &#039;&#039;&#039;sip_force_interval&#039;&#039;&#039;&lt;br /&gt;
: Pause in Sekunden für nicht erfolgreiche &amp;quot;force&amp;quot;-Anrufe, bis der nächste Versuch gestartet wird.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;sip_filter&#039;&#039;&#039;&lt;br /&gt;
: ist eine Komma getrennte Liste von Rufnummern oder Rufnummernteilen die festlegen, ob der Client bei listen überhaupt abheben soll.&lt;br /&gt;
: Bsp.: attr mySIP sip_filter **61,123&lt;br /&gt;
: **61 = alle DECT Telefone der Fritzbox (610 -619 )&lt;br /&gt;
: 123 = alle Rufnummern in denen die Folge 123 enthalten ist.  &lt;br /&gt;
: Wenn das Attribut sip_filter gelöscht ist werden alle Anrufe angenommen. Das Atrribut entspricht einer Whitelist der Rufnummern die akzepziert/angenommen werden. Anrufe von nicht gelisteten Rufnummern werden einfach ignoriert.&lt;br /&gt;
&lt;br /&gt;
* Anmerkung zum &#039;&#039;&#039;Audioformat&#039;&#039;&#039;&lt;br /&gt;
: Für Net::SIP müssen die Audiofiles im alaw- oder ulaw-Format vorliegen und können mit folgendem Command erzeugt werden&lt;br /&gt;
: &#039;&#039;&#039;sox &amp;lt;file&amp;gt;.wav -t raw -r 8000 -c 1 -e a-law &amp;lt;file&amp;gt;.alaw&#039;&#039;&#039;&lt;br /&gt;
: da nur diese raw audio Formate unterstützt werden. &lt;br /&gt;
: Vom SIP-Modul unterstützte/erkannte Endungen sind .mp3, .alaw und .ulaw. mp3-Files werden automatisch in alaw umgewandelt (das setzt aber einen entsprechenden Konverter wie sox oder ffmpeg voraus). Bitte darauf achten, dass das audiofile und der komplette Pfad die passenden Permissions hat, damit der FHEM User das File auch lesen darf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DTMF empfangen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_loop&#039;&#039;&#039;&lt;br /&gt;
: legt für den listen_dtmf-Modus fest wie oft ein DTMF Code eingeben werden soll ( once oder loop, default ist once ). &lt;br /&gt;
: Bei &#039;once&#039; erwartet der SIP-Cleint die Eingabe eines Codes in der angegebenen Länge und beendet den Anruf. &lt;br /&gt;
: Bei &#039;loop&#039; startet eine Endlosschleife aus Ansage-&amp;gt;Code-Erfassung-&amp;gt;Quittung-&amp;gt;Loop bis der Anrufer irgendwann auflegt.&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_size&#039;&#039;&#039;&lt;br /&gt;
: Die Anzahl der erwarteten DTMF-Töne im listen_dtmf-Modus (1 bis 4)&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_dtmf&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_dtmf-Modus vorgespielt wird und ihn auffordert einen Code einzugeben. Ist kein File angegeben hört man ein Geräusch.&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_ok&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_dtmf-Modus als Quittungston vorgespielt wird. &lt;br /&gt;
* &#039;&#039;&#039;sip_blocking&#039;&#039;&#039;&lt;br /&gt;
: Hier kann so etwas wie eine Blacklist von Rufnummern angegeben werden, die explizit weggedrückt werden. Jede Rufnummer die so behandelt werden soll muss zuerst erfolgreich durch den sip_filter durch und kann danach erst aktiv geblockt werden. Die Syntax ist die gleiche wie bei sip_filter, allerdings gibt es hier den Joker &#039;&#039;&#039;.*&#039;&#039;&#039; . Ist dieser gesetzt wird jede ankommende Rufnummer geblockt. Damit lassen sich begrenzt Aktionen auslösen (das Event &#039;ringing_*&#039; wird nach wie vor ausgelöst und die Rufnummer wird als Reading gesetzt) ohne dass Verbindungskosten anfallen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Auf anruf warten und annehmen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_wfp&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das nach dem Command &#039;&#039;&#039;fetch&#039;&#039;&#039; abgespielt wird. &lt;br /&gt;
* &#039;&#039;&#039;sip_elbc&#039;&#039;&#039;&lt;br /&gt;
: erlaubte Werte: no | yes. elbc steht für &#039;End Listen Befor Call&#039;. Bei Option &#039;yes&#039; wird ein laufender Listen Prozess beendet falls parallel ein Call rausgehen soll. Danach wird der listen wieder neu gestartet. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und DTMF senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_send&#039;&#039;&#039;&lt;br /&gt;
: Bestimmt die Übertragungsart der angegebenen DTMF-Töne und bietet folgende Möglichkeiten:&lt;br /&gt;
: &#039;audio&#039;: Es werden Audiotöne übermittelt&lt;br /&gt;
: &#039;rfc2833&#039;: Es erfolgt eine Übertragung nach RFC2833 (für das menschliche Ohr weniger ansprechend)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_call&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem angerufenen bei &#039;&#039;&#039;call&#039;&#039;&#039; vorgespielt wird. &lt;br /&gt;
* &#039;&#039;&#039;sip_call_audio_delay&#039;&#039;&#039;  &lt;br /&gt;
: Damit wird festgelegt wie lange bei einem Call mit dem abspielen des Audiofiles gewartet werden soll nachdem man den Anruf angenommen hat. Gültige Werte sind 0 - 3 in 0.25 (1/4) Sekunden Schritten. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas sagen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;T2S_Device&#039;&#039;&#039;&lt;br /&gt;
: Name Eures in FHEM eingerichteten Text2Speech-Devices &lt;br /&gt;
* &#039;&#039;&#039;T2S_Timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout für die Text2Speech-Konvertierung (könnte ja sein, dass der TTS-Service im Internet überlastet ist)&lt;br /&gt;
* &#039;&#039;&#039;audio_converter&#039;&#039;&#039;&lt;br /&gt;
: Der für die Konvertierung zu verwendende (und vorab installierte) Audiokonverter. Auswahl: sox oder ffmpeg&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ergänzungen ab Version 1.75&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
alle Attribute die mit sip_audiofile_ beginnen dürfen einen Inhalt der folgenden Form haben:&amp;lt;br /&amp;gt;&lt;br /&gt;
a. ein .alw oder .ulaw Filename inklusive Pfad&amp;lt;br /&amp;gt;&lt;br /&gt;
b. ein .mp3 File + Pfad -&amp;gt; wird dann automatisch zu .ulaw gewandelt , Audio Konverter &amp;amp; Schreibrechte im Pfad sind Pflicht&amp;lt;br /&amp;gt;&lt;br /&gt;
c. ein Text beginnend mit ! der von Text2Speach in eine .mp3 Datei gewandelt wird, diese wird danach behandelt wie unter Punkt b.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
wurde Punkt b. oder c. einmal erfolgreich durchlaufen wird beim nächsten Mal direkt die erzeugte .ulaw Datei verwendet.&lt;br /&gt;
&lt;br /&gt;
Siehe auch {{Link2CmdRef|Lang=de|Anker=SIP}}&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;password&#039;&#039;&#039;&lt;br /&gt;
: Passwort für den User sip_user hinterlegen.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;reset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Stoppt laufende listen-Prozess und initalisiert das Device.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;call &amp;lt;nummer&amp;gt; [&amp;lt;maxtime&amp;gt;] [&amp;lt;nachricht&amp;gt;] [*nn] [&amp;amp;][nn]&#039;&#039;&#039;&lt;br /&gt;
: Startet einen Anruf an die angegebene Nummer.&lt;br /&gt;
: Optional kann die maxtime angegeben werden. Wird keine angegeben wird der Defaultwert von 30 verwendet.&lt;br /&gt;
: Optional kann eine Nachricht &lt;br /&gt;
: - in Form eines &#039;&#039;&#039;Audiofiles&#039;&#039;&#039; angegeben werden. Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben. Bitte darauf achten, dass das audiofile und der Pfad dort hin passende Permissions hat, damit FHEM das File auch lesen darf. Die maxtime ist in dem Fall nicht optional sondern zwingend.&lt;br /&gt;
: - als &#039;&#039;&#039;DTMF&#039;&#039;&#039;-Sequenz angegeben werden. Diese mit einem Prefix &#039;-&#039; versehen werden, also z.B. &#039;&#039;&#039;-&#039;&#039;&#039;#47.&lt;br /&gt;
: - als &#039;&#039;&#039;Text&#039;&#039;&#039; angegeben werden. Dieser mit einem Prefix &#039;!&#039; versehen werden, also z.B. &#039;&#039;&#039;!&#039;&#039;&#039;Hier spricht dein FHEM.&lt;br /&gt;
: Bitte hierfür unter &#039;Voraussetzungen&#039; den Hinweis auf TTS beachten.&lt;br /&gt;
: Wir ein Wiederholunsfaktor in der Form &#039;&#039;&#039;*nn&#039;&#039;&#039; angegeben, wird der Anruf ausgeführt, die Nachricht einmal abgespielt und dann nn mal wiederholt. &lt;br /&gt;
: Wird als Wiederholungsfaktor ein negativer Wert angegeben (z.B. &#039;&#039;&#039;*-2&#039;&#039;&#039;), passiert folgendes: Die Nachricht wird zwar genau wie bei *2 dreimal abgespielt, allerdings erlaubt das - vor der 2 das die Nachricht nur einmal vollständig übertragen werden muß. Der call_state nach dem Call hätte dann z.B. den Wert &amp;quot;ok peer hangup&amp;quot;.&lt;br /&gt;
: Wird der Call mit &#039;&#039;&#039;&amp;amp;&#039;&#039;&#039; (force) beendet signalisiert dies, dass er wichtig ist und unbedingt zugestellt werden muss. Der SIP-Client versucht es dann so lange, bis der Anrufer erreicht wird. WICHTIG: wählt die maxtime groß genug damit das Audiofile auch wirklich komplett abgespielt werden kann, bzw. hört&#039;s euch auch bis zum Ende an! Wenn ein priorisierter Anruf vorzeitig endet (quasi NOK) wird er nach 1 Minute wiederholt, und zwar so lange bis er erfolgreich war. Wollt Ihr den Ablauf stoppen bitte das von der Wiederholungsschleife gesetzte &#039;&#039;&#039;at&#039;&#039;&#039; löschen, es befindet sich im gleichen Raum wie euer SIP Device. Dabei gibt es folgende Möglichkeiten:&lt;br /&gt;
: set call **611 30 !Das ist ein Test &amp;amp;   &amp;lt;-- wird im Fehlerfall nach 60 Sekunden wiederholt  oder nach  sip_force_interval wenn vorhanden.&lt;br /&gt;
: set call **611 30 !Das ist ein Test &amp;amp;300  &amp;lt;-- wiederholt im Fehlerfall nach 5 Minuten egal welchen Wert sip_force_interval hat.&lt;br /&gt;
: Werden mehrere Set Call unmittelbar hintereinander abgesetzt, werden diese intern gestackt und nacheinander abgearbeitet.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;listen&#039;&#039;&#039;&lt;br /&gt;
: Manueller Start des listen-Prozesses. Setzt voraus, dass die Variable sip_listen auf dtmf oder wfp gesetzt ist:&lt;br /&gt;
: &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er automatisch Anrufe annimmt. Bei einem Anruf wird im Reading &#039;caller&#039; die Nummer bzw. Id des Anrufers angezeigt. Dem Anrufer wird der eigene Ton als Echo zurückgespielt. Über die Eingabe von &#039;&#039;&#039;#&#039;&#039;&#039; gefolgt von 2 Zahlen und anschließendem Auflegen kann eine Zahl an das Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; übergeben werden. Voraussetzung: Das anrufende Telefon ist auf Tonwahl gestellt (DTMF).&lt;br /&gt;
: &#039;&#039;&#039;wfp&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet (wfp steht für wait-fetch-play). Erfolgt ein Anruf an den Client, wechselt das Reading &#039;caller_state&#039; zu &#039;ringing_*&#039;, im Reading &#039;caller&#039; wird die Nummer bzw. Id des Anrufers angezeigt. Nun kann das Gespräch via set-Command &#039;fetch&#039; angenommen oder der Anruf via &#039;reject&#039; explizit abgelehnt werden. Das als sip_audiofile angegebene File wird abgespielt. Anschließend wechselt der Status wieder zu listen_wfp.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;fetch&#039;&#039;&#039;&lt;br /&gt;
: Anruf im listen_wfp-Modus annehmen.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;reject&#039;&#039;&#039;&lt;br /&gt;
: Anruf im listen_wfp-Modus ablehnen.&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;call&#039;&#039;&#039;: Die Rufnummer des ausgehenden Anrufs. &lt;br /&gt;
* &#039;&#039;&#039;call_state&#039;&#039;&#039;: Status für ausgehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;call_time&#039;&#039;&#039;: Dauer des durchgeführten Anrufs in Sekunden&lt;br /&gt;
* &#039;&#039;&#039;call_success&#039;&#039;&#039;: mögliche Werte 0 oder 1&lt;br /&gt;
: 0 = call_state ist ungleich ok , 1 = call_state ist gleich ok&lt;br /&gt;
: Auf Call mit Repeat übertragen bedeutet das:&lt;br /&gt;
: eine 0 wenn die Wiederholungszahl positiv ist und die tatsächliche Anzahl nicht erreicht wurde, aber &lt;br /&gt;
: eine 1 bei call_state  &amp;quot;ok peer hangup&amp;quot;   &lt;br /&gt;
* &#039;&#039;&#039;caller&#039;&#039;&#039;: Die Rufnummer bzw. Info des aktuellen Anrufers. &lt;br /&gt;
* &#039;&#039;&#039;caller_state&#039;&#039;&#039;: Status für eingehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;caller_time&#039;&#039;&#039;: Dauer des angenommenen Anrufs in Sekunden&lt;br /&gt;
* &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Die via Tonwahl (DTMF) eingegebenen Zahlen.&lt;br /&gt;
* &#039;&#039;&#039;state&#039;&#039;&#039;: Der Status des Devices.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und Sound abspielen ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
  &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; [&amp;lt;dauer&amp;gt;] [&amp;lt;audiofile oder Textnachricht&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;set mySip call 081547111 30 ./tada.alaw&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;set mySip call 081547111 30 !Hier ist dein FHEM Server&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Default-Dauer beträgt 30 Sekunden.&lt;br /&gt;
* Wird kein Audiofile angegeben, wird nur die Verbindung hergestellt und nach der Anrufdauer wieder unterbrochen.&lt;br /&gt;
* Anmerkung: Das Audiofile muss das Format PCM/8000 haben.&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, das Audiofile wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und DTMF-Töne senden ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; &amp;lt;dauer&amp;gt; &amp;lt;-tastenkombination&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Tastenkombination muss mit einem vorangestellten Minus (-) nach der Zielnummer folgen, also z.B. **1 -#23&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, die Tonfolge wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und DTMF-Töne empfangen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;dtmf&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird von einem DTMF-fähigen Telefon aus angerufen.&lt;br /&gt;
* Wenn der SIP-Client das Gespräch angenommen hat, betätigt man &#039;&#039;&#039;#&#039;&#039;&#039;, gefolgt von zwei Ziffern und legt dann wieder auf. Wichtig: Es müssen immer genau 3 Tasten betätigt werden (# und nm), damit das Reading dtmf gefüllt wird. n und m müssen zwei verschiedene Zahlen sein (0-9) oder ein Stern.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; ist diese zweistellige Zahl zu sehen und kann ggf. mit einem notify ausgewertet werden.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und kontrolliert annehmen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;wfp&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird angerufen.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;caller&#039;&#039;&#039; ist die Nummer bzw. die Info des Callers zu sehen, im &#039;&#039;&#039;caller_state&#039;&#039;&#039; erscheint &#039;ringing&#039;.&lt;br /&gt;
* Soll der Anruf angenommen werden setze ich den Status des Devices mittels set auf &#039;&#039;&#039;fetch&#039;&#039;&#039;:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Der SIP-Client legt auf und geht wieder in den Status &#039;&#039;&#039;listen_wfp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und Aktion auslösen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;wfp&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird angerufen.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;caller&#039;&#039;&#039; ist die Nummer bzw. die Info des Callers zu sehen, im &#039;&#039;&#039;caller_state&#039;&#039;&#039; erscheint &#039;ringing&#039;.&lt;br /&gt;
* FHEM kann auf Grund dieser Events eine Aktion durchführen.&lt;br /&gt;
* Der Anruf wird dann von FHEM abgebrochen. Dafür wird der Befehl &#039;&#039;&#039;reject&#039;&#039;&#039; genutzt:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; reject&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der Anrufer weiß auf Grund der Ablehnung, dass FHEM aktiv war.&lt;br /&gt;
* Der SIP-Client legt auf und geht wieder in den Status &#039;&#039;&#039;listen_wfp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Fritzbox + Doorline - Telefonklingeln beenden ===&lt;br /&gt;
Szenario: Als Türklingel ist eine Doorline im Einsatz die auf Direktannahme eingestellt ist. Klingelt jemand an der Tür, erfolgt ein &#039;Anruf&#039; an die in der Rufgruppe definierten Telefone. Man kann den Anruf entgegennehmen, um zu hören wer an der Tür ist, bevor man die Tür öffnet. Geht man direkt zur Tür, klingeln die Telefone insgesamt 30 Sekunden lang bis sie verstummen. Hat man die Haustür mit einem Türkontakt versehen, hilft folgender Ansatz:&lt;br /&gt;
* Der SIP-Client wird in der Fritzbox in die Rufgruppe der Türklingel aufgenommen.&lt;br /&gt;
* Das Attribut &#039;sip_listen&#039; wird auf &#039;wfp&#039; gesetzt.&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus &#039;wait-fetch-play&#039; versetzt (Die sip_waittime sollte größer als die Klingeldauer der Doorline sein).&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klingelt jemand an der Tür, wird unter anderem die Nebenstelle des SIP-Clients angerufen.&lt;br /&gt;
* Über ein DOIF greift man die Kombination SIP-Client caller_state &#039;ringing&#039; und Haustürkontakt closed-&amp;gt;open ab und&lt;br /&gt;
* setzt  den Status des Devices mittels set auf fetch:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Die Telefone verstummen.&lt;br /&gt;
&lt;br /&gt;
In FHEM sieht das dann z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
Es gibt ein Device &#039;&#039;&#039;HaustuerStatus&#039;&#039;&#039; das den Status des Türkontaktes abbildet: &amp;quot;closed&amp;quot; oder &amp;quot;open&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Es wird ein Dummy-Device &#039;&#039;&#039;HaustuerStatusVar&#039;&#039;&#039; für die Status des Automaten angelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define HaustuerStatusVar dummy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und ein DOIF &#039;&#039;&#039;TuerklingelAus&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define TuerklingelAus DOIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([FhemSipClient:caller_state] =~ &amp;quot;ringing&amp;quot;) and ([FhemSipClient:caller] eq &amp;quot;Klingel sip:**12\@fritz.box&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar ringing;; set HM_4A4047_Mp3 playTone 001 1 10) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;open&amp;quot;) and ([HaustuerStatusVar:state] =~ &amp;quot;ringing&amp;quot;)) &lt;br /&gt;
(set FhemSipClient fetch;; set HaustuerStatusVar on) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([HaustuerStatusVar:state] ne &amp;quot;off&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Caller &amp;quot;Klingel sip:**12\@fritz.box&amp;quot; setzt sich aus dem in der Fritzbox vergebenen Namen, der Nebenstelle (**12 ist eine Doorline mit einem Taster, bei zweien gilt es **11 und **12 zu beachten) sowie dem syntaktischen Drumherum sip:&#039;&#039;nebenstelle&#039;&#039;\@fritz.box zusammen. Achtet bitte auf den &amp;quot;\&amp;quot; vor dem &amp;quot;@&amp;quot;, damit regex nicht mosert.&lt;br /&gt;
&lt;br /&gt;
HM_4A4047_Mp3 ist übrigens mein mobiler MP3-Tür-/Funkgong der zur Unterstützung einen Gong abspielt.&lt;br /&gt;
&lt;br /&gt;
=== Nervende Werbeanrufe ===&lt;br /&gt;
Ihr kennt das sicher: Unbekannte Rufnummer, man nimmt das Gespräch an und hat entweder irgendwas gewonnen, einen Werber oder ein &amp;quot;Umfrage&amp;quot; dran. Unterm Strich - man will Dir was verkaufen.&lt;br /&gt;
&lt;br /&gt;
Phase 1: Fritzbox, Rufbehandlung, neue Rufnummernsperre, Nummer eintragen.&lt;br /&gt;
&lt;br /&gt;
Phase 2: Derselbe Werber taucht unter einem ganzen Kontingent von Rufnummern auf. Blocken alleine reicht dir nicht mehr, du willst Rache.&lt;br /&gt;
&lt;br /&gt;
Phase 3: &lt;br /&gt;
: Du definierst in FHEM den SIP-Client und startest ihn im listen-Modus &#039;&#039;&#039;echo&#039;&#039;&#039;. &lt;br /&gt;
: In der Fritzbox leitest du alle eingehenden Anrufe auch an den SIP-Client weiter. &lt;br /&gt;
: Dem SIP-Client gibst du über sip_filter die Werber-Rufnummer als Filterarguiment mit.&lt;br /&gt;
: Der SIP-Cleint ist schneller als die Familienmitglieder und nimmt den Anruf an.  &lt;br /&gt;
&lt;br /&gt;
Phase 4: Jetzt bin ich (der Autor dieses Anwendungsfalles) neugierig. Postet Eure Erfahrung mit diesem Modus gerne im Forums-Thread.&lt;br /&gt;
&lt;br /&gt;
=== FHEM Statusberichte ===&lt;br /&gt;
&lt;br /&gt;
Man sagt zwar &amp;quot;wer lesen kann ist eindeutig im Vorteil&amp;quot;, dennoch gibt es Situationen in denen eine Sprachausgabe praktischer ist. Ein Beispiel findet Ihr im Forum unter [https://forum.fhem.de/index.php/topic,67443.msg742371.html#msg742371]. Das zugehörige Textbeispiel (als Appetithappen):&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Guten Abend Papa, hier ist Dein Speicherknecht mit dem Bericht von 18 Uhr37. Die Alarmanlage ist aus. Im Garten war jemand um 17 Uhr 45 und an der Haustür um 18 Uhr 16. Im Küche und OG1 ist das Licht an. Mama und Papa sind seit 18 Uhr 29 zu Hause. Die Heizung steht auf Normal Betrieb. Die Vorlaftemperatur beträgt 51 Grad. Der Gasverbrauch beträgt 8 Kubik bei einer Laufzeit von 182 Minuten. Das Wetter ist Schauer. Die Temperatur Aussen beträgt 8 Grad Celsius. Dabei war das Minimum 3 und das Maximum 8 und im Haus ist es 19 Grad warm. Papa, ich wünsche Dir noch einen geruhsamen Abend!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
=== Fehler bei der Registrierung an der Fritzbox ===&lt;br /&gt;
&#039;&#039;&#039;Fritzbox&#039;&#039;&#039;&lt;br /&gt;
* Ist das Device für den SIP-Client in der Fritzbox unter Telefonie &amp;gt; Telefoniegräte gelistet? &lt;br /&gt;
* Geräteeinstellungen ändern: Ist für das Device unter &#039;Anmeldedaten&#039; die Durchwahl als Benutzername angegeben?&lt;br /&gt;
* Ist der in dieser Ansicht angegebene &#039;Registrar&#039; mit der im Attribut sip_registrar identisch? Im Zweifelsfalle die IP-Adresse statt &#039;fritz.box&#039; verwenden.&lt;br /&gt;
* FitzOS ab 6.80: Wurde nach Definition des Gerätes an einem anderen bekannten Gerät der Bestätigungscode eingegeben?&lt;br /&gt;
* Wurde in der Fritzbox ein Passwort von mind. 8 Stellen und Sicherheitsstufe &#039;gut&#039; vergeben? Andernfalls kann es zu einem Registrierungsfehler 404 kommen.&lt;br /&gt;
* FritzOS 6.90: Registrierungsfehler 404 konnte erst mit folgenden Angaben gelöst werden&lt;br /&gt;
  sip_from = sip:mymyuser@fritz.box (wobei dies der mymyuser ist der beim Telefoniegrät als Benutzername angegeben wurde, &lt;br /&gt;
             bitte die von der FritzBox geforderte Mindestlänge beachten)&lt;br /&gt;
  sip_user = myuser (statt der Nebenstellennummer)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FHEM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wurde das Passwort mittels set &amp;lt;mydevice&amp;gt; password &amp;lt;meinpasswort&amp;gt; gesetzt?&lt;br /&gt;
&lt;br /&gt;
Attribute des Devices prüfen:&lt;br /&gt;
* Ist unter sip_from &amp;lt;nowiki&amp;gt;&#039;sip:620@fritz.box&#039;&amp;lt;/nowiki&amp;gt; die von der Fritzbox vergebene Durchwahl angegeben? Ab Fritz!OS 6.8 gilt: Ist das Format &amp;lt;nowiki&amp;gt;sip:Benutzername@fritz.box&amp;lt;/nowiki&amp;gt; eingehalten?&lt;br /&gt;
* Ist unter sip_user die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_registrar die IP-Adresse der Fritzbox eingetragen (&#039;fritz.box&#039; wird manchmal nicht korrekt aufgelöst)?&lt;br /&gt;
* Ist unter sip_ip die IP-Adresse des FHEM-Servers eingetragen (z.B. 192.168.178.47 angeben, keine Adresse aus dem 127er-Segment)?&lt;br /&gt;
* Probleme mit dem Standard-Port 5060? Auf 5070 erhöhen.&lt;br /&gt;
&lt;br /&gt;
=== Erzeugung eines passenden Audiofiles ===&lt;br /&gt;
&lt;br /&gt;
Eine Alternative zu sox ist ffmpeg. Damit kann direkt von mp3 ins Zielformat konvertiert werden:&lt;br /&gt;
&lt;br /&gt;
ffmpeg -i meinfile.mp3 -f alaw -ar 8000 meinfile.alaw&lt;br /&gt;
&lt;br /&gt;
=== Keine korrekte DTMF-Erkennung auf einem Pi ===&lt;br /&gt;
&lt;br /&gt;
Raspi, Raspi2 und BanaPi sind nicht leistungsstark genug für die Erkennung von DTMF-Tönen. Ab Raspi3 scheint&#039;s zu funktionieren.&lt;br /&gt;
&lt;br /&gt;
Wer trotzdem auf einem &amp;quot;kleinen&amp;quot; Pi die DTMF-Erkennung gemäß RFC2833 nutzen möchte, kann in der DTMF.pm die Zeile 75&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;###$sub{$type} = _dtmf_xtc_audio(%pargs);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
für die Audio-Erkennung auskommentieren. Zu finden ist DTMF.pm z.B. unter /usr/lib/perl5/site_perl/5.18.2/Net/SIP. Konsequenz: Moderne, RFC2833-unterstützende Geräte können genutzt werden, ältere Telefone mit Tonwahl nicht.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=40219|LinkText=Forenthread}} alter Forum-Thread zu FB_SIP.pm und SIP.pm&lt;br /&gt;
* {{Link2Forum|Topic=67443|LinkText=Forenthread}} Forum-Thread zu diesem Modul SIP&lt;br /&gt;
* [https://de.wikipedia.org/wiki/SIP-Status-Codes SIP-Status Codes]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hilfsmodul]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20800</id>
		<title>SIP-Client</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20800"/>
		<updated>2017-03-19T17:59:17Z</updated>

		<summary type="html">&lt;p&gt;Wzut: ringtime durch maxtime ersetzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=SIP-Client für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=SIP&lt;br /&gt;
|ModForumArea=Sonstiges&lt;br /&gt;
|ModTechName=96_SIP.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;SIP&#039;&#039;&#039; ermöglicht die Entgegennahme (DTMF-Töne interpretieren, kontrollierte Annahme) sowie die Durchführung (Audiofile abspielen, DTMF-Töne senden, Textansage) von Anrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
Für den Remote-Zugang muss das Modul Net::SIP installiert sein; auf einem Raspberry Pi oder unter Ubuntu z.&amp;amp;nbsp;B. mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cpanm install Net::SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder auch&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libnet-sip-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Falls Ihr Text2Speech verwenden wollt ====&lt;br /&gt;
&lt;br /&gt;
Vorbereitung&lt;br /&gt;
* SoX installieren &lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install sox &amp;lt;/code&amp;gt;&lt;br /&gt;
* mp3 Unterstützung für SoX installieren&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libsox-fmt-mp3&amp;lt;/code&amp;gt;&lt;br /&gt;
* Text2Speech als Server Device anlegen &lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name z.B myT2S&amp;gt; text2speech none&amp;lt;/code&amp;gt;&lt;br /&gt;
* beim SIP Device dieses Server Device im Attribut T2S_Device eintragen&lt;br /&gt;
&lt;br /&gt;
=== SIP-Server ===&lt;br /&gt;
Der SIP-Client muss sich an einem SIP-Server anmelden (Fritzbox, Asterisk, VoIP-Provider). &lt;br /&gt;
Auf dem SIP-Server, mit dem sich der Client verbinden soll, muss ein User-Account vorhanden sein bzw. angelegt werden. &lt;br /&gt;
In der Fritzbox muss z.B. ein neues Telefoniegerät vom Typ LAN/WLAN angelegt und ein Passwort vergeben werden. Das erzeugt ein neues internes Device im internen Rufnummernbereich **62x, typischerweise die 620. Es sollte kontrolliert werden, ob bei den Anmeldeinformationen der Benutzername der Nebenstelle entspricht (z.B. 620) und ein Passwort eingetragen ist.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Die verwendete Library Net::SIP fordert mehr Ressourcen als RaspberryPi, BananaPi &amp;amp; Co hergeben. Bitte testet, ob Eure Hardware Audofiles sauber abspielen sowie sicher DTMF-Töne empfangen kann und für Euren Einsatzzweck geeignet ist.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;96_SIP.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist der SIP-Client als Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden. Ebenso ist das Passwort mittels set-Command zu speichern.&lt;br /&gt;
&lt;br /&gt;
=== Mögliche Fehlermeldungen ===&lt;br /&gt;
Sollte schon bei &amp;lt;code&amp;gt;define mySIP SIP&amp;lt;/code&amp;gt; die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte &#039;update all&#039; durchführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Basics &amp;amp; Allgemeines&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;sip_from&#039;&#039;&#039;&lt;br /&gt;
: Meine SIP-Client-Info. Default ist &amp;lt;nowiki&amp;gt;sip:620@fritz.box&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sip_ip&#039;&#039;&#039;&lt;br /&gt;
: Die IP-Addresse meines FHEM-Servers.&lt;br /&gt;
* &#039;&#039;&#039;sip_port&#039;&#039;&#039;&lt;br /&gt;
: Port der für den SIP-Client genutzt wird. Default ist 5060 und wird automatisch um 10 erhöht wenn der Port nicht frei ist.&lt;br /&gt;
* &#039;&#039;&#039;sip_registrar&#039;&#039;&#039;&lt;br /&gt;
: Hostname oder IP-Addresse des SIP-Servers mit dem sich der Client verbindet. Default ist fritz.box.&lt;br /&gt;
* &#039;&#039;&#039;sip_user&#039;&#039;&#039;&lt;br /&gt;
: User Name des SIP-Clients. Default ist 620. Anmerkung: Passwort wird über &amp;quot;set &amp;lt;device&amp;gt; password &#039;&#039;mypassword&#039;&#039;&amp;quot; gesetzt.&lt;br /&gt;
* &#039;&#039;&#039;sip_listen&#039;&#039;&#039;&lt;br /&gt;
: Das Attribut bietet folgende Optionen&lt;br /&gt;
: - &#039;&#039;&#039;none&#039;&#039;&#039;: keine Aktion (&#039;listen&#039; kann auch nicht manuell gestartet werden)&lt;br /&gt;
: - &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen und wartet auf DTMF-Anrufer (listen_dtmf). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
: - &#039;&#039;&#039;wfp&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen wait-fetch-play (listen_wfp). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
* &#039;&#039;&#039;sip_waittime&#039;&#039;&#039;&lt;br /&gt;
: Maximale Wartezeit bei listen_wfp bis das Gespräch automatisch angenommen wird.&lt;br /&gt;
* &#039;&#039;&#039;sip_ringtime&#039;&#039;&#039;&lt;br /&gt;
: listen: legt fest wie lange das Modul warten soll bis es den Anruf annimmt. Defaultwert ist 2, das entspricht ca. 1x klingeln.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;sip_filter&#039;&#039;&#039;&lt;br /&gt;
: ist eine Komma getrennte Liste von Rufnummern oder Rufnummernteilen die festlegen ob der Client bei listen überhaupt abheben soll.&lt;br /&gt;
: Bsp.: attr mySIP sip_filter **61,123&lt;br /&gt;
: **61 = alle DECT Telefone der Fritzbox (610 -619 )&lt;br /&gt;
: 123 = alle Rufnummern in denen die Folge 123 enthalten ist.  &lt;br /&gt;
 &lt;br /&gt;
* Anmerkung zum &#039;&#039;&#039;Audioformat&#039;&#039;&#039;&lt;br /&gt;
: Audiofiles müssen im alaw- oder ulaw-Format vorliegen und können mit folgendem Command erzeugt werden&lt;br /&gt;
: &#039;&#039;&#039;sox &amp;lt;file&amp;gt;.wav -t raw -r 8000 -c 1 -e a-law &amp;lt;file&amp;gt;.alaw&#039;&#039;&#039;&lt;br /&gt;
: da nur diese raw audio format unterstützt wird. Unterstützte/erkannte Endungen sind .alaw und .ulaw. Bitte darauf achten, dass das audiofile und der komplette Pfad die passenden Permissions hat, damit der FHEM User das File auch lesen darf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DTMF empfangen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_loop&#039;&#039;&#039;&lt;br /&gt;
: legt für den listen_dtmf-Modus fest wie oft ein DTMF Code eingeben werden soll ( once oder loop, default ist once ). &lt;br /&gt;
: Bei &#039;once&#039; erwartet der SIP-Cleint die Eingabe eines Codes in der angegebenen Länge und beendet den Anruf. &lt;br /&gt;
: Bei &#039;loop&#039; startet eine Endlosschleife aus Ansage-&amp;gt;Code-Erfassung-&amp;gt;Quittung-&amp;gt;Loop bis der Anrufer irgendwann auflegt.&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_size&#039;&#039;&#039;&lt;br /&gt;
: Die Anzahl der erwarteten DTMF-Töne im listen_dtmf-Modus (1 bis 4)&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_dtmf&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_dtmf-Modus vorgespielt wird und ihn auffordert einen Code einzugeben. Ist kein File angegeben hört man ein Geräusch.&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_ok&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_dtmf-Modus als Quittungston vorgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Auf anruf warten und annehmen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_wfp&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das nach dem Command &#039;&#039;&#039;fetch&#039;&#039;&#039; abgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und DTMF senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_send&#039;&#039;&#039;&lt;br /&gt;
: Bestimmt die Übertragungsart der angegebenen DTMF-Töne und bietet folgende Möglichkeiten:&lt;br /&gt;
: &#039;audio&#039;: Es werden Audiotöne übermittelt&lt;br /&gt;
: &#039;rfc2833&#039;: Es erfolgt eine Übertragung nach RFC2833 (für das menschliche Ohr weniger ansprechend)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_call&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem angerufenen bei &#039;&#039;&#039;call&#039;&#039;&#039; vorgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas sagen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;T2S_Device&#039;&#039;&#039;&lt;br /&gt;
: Name Eures in FHEM eingerichteten Text2Speech-Devices &lt;br /&gt;
* &#039;&#039;&#039;T2S_Timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout für die Text2Speech-Konvertierung (könnte ja sein, dass der TTS-Service im Internet überlastet ist)&lt;br /&gt;
* &#039;&#039;&#039;audio_converter&#039;&#039;&#039;&lt;br /&gt;
: Der für die Konvertierung zu verwendende (und vorab installierte) Audiokonverter. Auswahl: sox oder ffmpeg&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;password&#039;&#039;&#039;&lt;br /&gt;
: Passwort für den User sip_user hinterlegen.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;reset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Stoppt laufende listen-Prozess und initalisiert das Device.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;call &amp;lt;nummer&amp;gt; [&amp;lt;maxtime&amp;gt;] [&amp;lt;nachricht&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
: Startet einen Anruf an die angegebene Nummer.&lt;br /&gt;
: Optional kann die maxtime angegeben werden. Wird keine angegeben wird der Defaultwert von 30 verwendet.&lt;br /&gt;
: Optional kann eine Nachricht &lt;br /&gt;
: * in Form eines Audiofiles angegeben werden. Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben. Bitte darauf achten, dass das audiofile und der Pfad dort hin passende Permissions hat, damit FHEM das File auch lesen darf. Die maxtime ist in dem Fall nicht optional sondern zwingend.&lt;br /&gt;
: * als DTMF-Sequenz angegeben werden. Diese mit einem Prefix &#039;-&#039; versehen werden, also z.B. &#039;&#039;&#039;-&#039;&#039;&#039;#47.&lt;br /&gt;
: * als Text angegeben werden. Dieser mit einem Prefix &#039;!&#039; versehen werden, also z.B. &#039;&#039;&#039;!&#039;&#039;&#039;Hier spricht dein FHEM.&lt;br /&gt;
: Bitte hierfür unter &#039;Voraussetzungen&#039; den Hinweis auf TTS beachten.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;listen&#039;&#039;&#039;&lt;br /&gt;
: Manueller Start des listen-Prozesses. Setzt voraus, dass die Variable sip_listen auf dtmf oder wfp gesetzt ist:&lt;br /&gt;
: &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er automatisch Anrufe annimmt. Bei einem Anruf wird im Reading &#039;caller&#039; die Nummer bzw. Id des Anrufers angezeigt. Dem Anrufer wird der eigene Ton als Echo zurückgespielt. Über die Eingabe von &#039;&#039;&#039;#&#039;&#039;&#039; gefolgt von 2 Zahlen und anschließendem Auflegen kann eine Zahl an das Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; übergeben werden. Voraussetzung: Das anrufende Telefon ist auf Tonwahl gestellt (DTMF).&lt;br /&gt;
: &#039;&#039;&#039;wfp&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet (wfp steht für wait-fetch-play). Erfolgt ein Anruf an den Client, wechselt das Reading &#039;caller_state&#039; zu &#039;ringing&#039;, im Reading &#039;caller&#039; wird die Nummer bzw. Id des Anrufers angezeigt. Nun kann das Gespräch via set-Command &#039;fetch&#039; angenommen werden. Das als sip_audiofile angegebene File wird abgespielt. Anschließend wechselt der Status wieder zu listen_wfp.&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;call&#039;&#039;&#039;: Die Rufnummer des ausgehenden Anrufs. &lt;br /&gt;
* &#039;&#039;&#039;call_state&#039;&#039;&#039;: Status für ausgehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;caller&#039;&#039;&#039;: Die Rufnummer bzw. Info des aktuellen Anrufers. &lt;br /&gt;
* &#039;&#039;&#039;caller_state&#039;&#039;&#039;: Status für eingehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Die via Tonwahl (DTMF) eingegebenen Zahlen.&lt;br /&gt;
* &#039;&#039;&#039;state&#039;&#039;&#039;: Der Status des Devices.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und Sound abspielen ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
  &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; [&amp;lt;dauer&amp;gt;] [&amp;lt;audiofile oder Textnachricht&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;set mySip call 081547111 30 ./tada.alaw&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;set mySip call 081547111 30 !Hier ist dein FHEM Server&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Default-Dauer beträgt 30 Sekunden.&lt;br /&gt;
* Wird kein Audiofile angegeben, wird nur die Verbindung hergestellt und nach der Anrufdauer wieder unterbrochen.&lt;br /&gt;
* Anmerkung: Das Audiofile muss das Format PCM/8000 haben.&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, das Audiofile wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und DTMF-Töne senden ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; &amp;lt;dauer&amp;gt; &amp;lt;-tastenkombination&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Tastenkombination muss mit einem Minus (-) nach der Zielnummer folgen, also z.B. **1 -#23&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, die Tonfolge wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und DTMF-Töne empfangen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;dtmf&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird von einem DTMF-fähigen Telefon aus angerufen.&lt;br /&gt;
* Wenn der SIP-Client das Gespräch angenommen hat, betätigt man &#039;&#039;&#039;#&#039;&#039;&#039;, gefolgt von zwei Ziffern und legt dann wieder auf. Wichtig: Es müssen immer genau 3 Tasten betätigt werden (# und nm), damit das Reading dtmf gefüllt wird. n und m müssen zwei verschiedene Zahlen sein (0-9) oder ein Stern.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; ist diese zweistellige Zahl zu sehen und kann ggf. mit einem notify ausgewertet werden.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und kontrolliert annehmen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;wfp&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird angerufen.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;caller&#039;&#039;&#039; ist die Nummer bzw. die Info des Callers zu sehen, im &#039;&#039;&#039;caller_state&#039;&#039;&#039; erscheint &#039;ringing&#039;.&lt;br /&gt;
* Soll der Anruf angenommen werden setze ich den Status des Devices mittels set auf &#039;&#039;&#039;fetch&#039;&#039;&#039;:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Der SIP-Client legt auf und geht wieder in den Status &#039;&#039;&#039;listen_wfp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Fritzbox + Doorline - Telefonklingeln beenden ===&lt;br /&gt;
Szenario: Als Türklingel ist eine Doorline im Einsatz die auf Direktannahme eingestellt ist. Klingelt jemand an der Tür, erfolgt ein &#039;Anruf&#039; an die in der Rufgruppe definierten Telefone. Man kann den Anruf entgegennehmen, um zu hören wer an der Tür ist, bevor man die Tür öffnet. Geht man direkt zur Tür, klingeln die Telefone insgesamt 30 Sekunden lang bis sie verstummen. Hat man die Haustür mit einem Türkontakt versehen, hilft folgender Ansatz:&lt;br /&gt;
* Der SIP-Client wird in der Fritzbox in die Rufgruppe der Türklingel aufgenommen.&lt;br /&gt;
* Das Attribut &#039;sip_listen&#039; wird auf &#039;wfp&#039; gesetzt.&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus &#039;wait-fetch-play&#039; versetzt (Die sip_waittime sollte größer als die Klingeldauer der Doorline sein).&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klingelt jemand an der Tür, wird unter anderem die Nebenstelle des SIP-Clients angerufen.&lt;br /&gt;
* Über ein DOIF greift man die Kombination SIP-Client caller_state &#039;ringing&#039; und Haustürkontakt closed-&amp;gt;open ab und&lt;br /&gt;
* setzt  den Status des Devices mittels set auf fetch:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Die Telefone verstummen.&lt;br /&gt;
&lt;br /&gt;
In FHEM sieht das dann z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
Es gibt ein Device &#039;&#039;&#039;HaustuerStatus&#039;&#039;&#039; das den Status des Türkontaktes abbildet: &amp;quot;closed&amp;quot; oder &amp;quot;open&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Es wird ein Dummy-Device &#039;&#039;&#039;HaustuerStatusVar&#039;&#039;&#039; für die Status des Automaten angelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define HaustuerStatusVar dummy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und ein DOIF &#039;&#039;&#039;TuerklingelAus&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define TuerklingelAus DOIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([FhemSipClient:caller_state] eq &amp;quot;ringing&amp;quot;) and ([FhemSipClient:caller] eq &amp;quot;Klingel sip:**12\@fritz.box&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar ringing;; set HM_4A4047_Mp3 playTone 001 1 10) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;open&amp;quot;) and ([HaustuerStatusVar:state] eq &amp;quot;ringing&amp;quot;)) &lt;br /&gt;
(set FhemSipClient fetch;; set HaustuerStatusVar on) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([HaustuerStatusVar:state] ne &amp;quot;off&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Caller &amp;quot;Klingel sip:**12\@fritz.box&amp;quot; setzt sich aus dem in der Fritzbox vergebenen Namen, der Nebenstelle (**12 ist eine Doorline mit einem Taster, bei zweien gilt es **11 und **12 zu beachten) sowie dem syntaktischen Drumherum sip:&#039;&#039;nebenstelle&#039;&#039;\@fritz.box zusammen. Achtet bitte auf den &amp;quot;\&amp;quot; vor dem &amp;quot;@&amp;quot;, damit regex nicht mosert.&lt;br /&gt;
&lt;br /&gt;
HM_4A4047_Mp3 ist übrigens mein mobiler MP3-Tür-/Funkgong der zur Unterstützung einen Gong abspielt.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
=== Fehler bei der Registrierung an der Fritzbox ===&lt;br /&gt;
&#039;&#039;&#039;Fritzbox&#039;&#039;&#039;&lt;br /&gt;
* Ist das Device für den SIP-Client in der Fritzbox unter Telefonie &amp;gt; Telefoniegräte gelistet? &lt;br /&gt;
* Geräteeinstellungen ändern: Ist für das Device unter &#039;Anmeldedaten&#039; die Durchwahl als Benutzername angegeben?&lt;br /&gt;
* Ist der in dieser Ansicht angegebene &#039;Registrar&#039; mit der im Attribut sip_registrar identisch? Im Zweifelsfalle die IP-Adresse statt &#039;fritz.box&#039; verwenden.&lt;br /&gt;
* FitzOS ab 6.80: Wurde nach Definition des Gerätes an einem anderen bekannten Gerät der Bestätigungscode eingegeben?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FHEM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wurde das Passwort mittels set &amp;lt;mydevice&amp;gt; password &amp;lt;meinpasswort&amp;gt; gesetzt?&lt;br /&gt;
&lt;br /&gt;
Attribute des Devices prüfen:&lt;br /&gt;
* Ist unter sip_from &amp;lt;nowiki&amp;gt;&#039;sip:620@fritz.box&#039;&amp;lt;/nowiki&amp;gt; die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_user die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_registrar die IP-Adresser der Fritzbox eingetragen?&lt;br /&gt;
* Ist unter sip_ip die IP-Adresse des FHEM-Servers eingetragen (z.B. 192.168.178.47 angeben, keine Adresse aus dem 127er-Segment)?&lt;br /&gt;
&lt;br /&gt;
=== Erzeugung eines passenden Audiofiles ===&lt;br /&gt;
&lt;br /&gt;
Eine Alternative zu sox ist ffmpeg. Damit kann direkt von mp3 ins Zielformat konvertiert werden:&lt;br /&gt;
&lt;br /&gt;
ffmpeg -i meinfile.mp3 -f alaw -ar 8000 meinfile.alaw&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=40219|LinkText=Forenthread}} alter Forum-Thread zu FB_SIP.pm und SIP.pm&lt;br /&gt;
* {{Link2Forum|Topic=67443|LinkText=Forenthread}} Forum-Thread zu diesem Modul SIP&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hilfsmodul]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20743</id>
		<title>SIP-Client</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20743"/>
		<updated>2017-03-15T19:01:49Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=SIP-Client für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=SIP&lt;br /&gt;
|ModForumArea=Sonstiges&lt;br /&gt;
|ModTechName=96_SIP.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;SIP&#039;&#039;&#039; ermöglicht die Entgegennahme (DTMF-Töne interpretieren, kontrollierte Annahme) sowie die Durchführung (Audiofile abspielen, DTMF-Töne senden, Textansage) von Anrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
Für den Remote-Zugang muss das Modul Net::SIP installiert sein; auf einem Raspberry Pi oder unter Ubuntu z.&amp;amp;nbsp;B. mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cpanm install Net::SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder auch&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libnet-sip-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Falls Ihr Text2Speech verwenden wollt ====&lt;br /&gt;
&lt;br /&gt;
Vorbereitung&lt;br /&gt;
* SoX installieren &lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install sox &amp;lt;/code&amp;gt;&lt;br /&gt;
* mp3 Unterstützung für SoX installieren&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libsox-fmt-mp3&amp;lt;/code&amp;gt;&lt;br /&gt;
* Text2Speech als Server Device anlegen &lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name z.B myT2S&amp;gt; text2speech none&amp;lt;/code&amp;gt;&lt;br /&gt;
* beim SIP Device dieses Server Device im Attribut T2S_Device eintragen&lt;br /&gt;
&lt;br /&gt;
=== SIP-Server ===&lt;br /&gt;
Der SIP-Client muss sich an einem SIP-Server anmelden (Fritzbox, Asterisk, VoIP-Provider). &lt;br /&gt;
Auf dem SIP-Server, mit dem sich der Client verbinden soll, muss ein User-Account vorhanden sein bzw. angelegt werden. &lt;br /&gt;
In der Fritzbox muss z.B. ein neues Telefoniegerät vom Typ LAN/WLAN angelegt und ein Passwort vergeben werden. Das erzeugt ein neues internes Device im internen Rufnummernbereich **62x, typischerweise die 620. Es sollte kontrolliert werden, ob bei den Anmeldeinformationen der Benutzername der Nebenstelle entspricht (z.B. 620) und ein Passwort eingetragen ist.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Die verwendete Library Net::SIP fordert mehr Ressourcen als RaspberryPi, BananaPi &amp;amp; Co hergeben. Bitte testet, ob Eure Hardware Audofiles sauber abspielen sowie sicher DTMF-Töne empfangen kann und für Euren Einsatzzweck geeignet ist.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;96_SIP.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist der SIP-Client als Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden. Ebenso ist das Passwort mittels set-Command zu speichern.&lt;br /&gt;
&lt;br /&gt;
=== Mögliche Fehlermeldungen ===&lt;br /&gt;
Sollte schon bei &amp;lt;code&amp;gt;define mySIP SIP&amp;lt;/code&amp;gt; die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte &#039;update all&#039; durchführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Basics &amp;amp; Allgemeines&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;sip_from&#039;&#039;&#039;&lt;br /&gt;
: Meine SIP-Client-Info. Default ist &amp;lt;nowiki&amp;gt;sip:620@fritz.box&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sip_ip&#039;&#039;&#039;&lt;br /&gt;
: Die IP-Addresse meines FHEM-Servers.&lt;br /&gt;
* &#039;&#039;&#039;sip_port&#039;&#039;&#039;&lt;br /&gt;
: Port der für den SIP-Client genutzt wird. Default ist 5060 und wird automatisch um 10 erhöht wenn der Port nicht frei ist.&lt;br /&gt;
* &#039;&#039;&#039;sip_registrar&#039;&#039;&#039;&lt;br /&gt;
: Hostname oder IP-Addresse des SIP-Servers mit dem sich der Client verbindet. Default ist fritz.box.&lt;br /&gt;
* &#039;&#039;&#039;sip_user&#039;&#039;&#039;&lt;br /&gt;
: User Name des SIP-Clients. Default ist 620. Anmerkung: Passwort wird über &amp;quot;set &amp;lt;device&amp;gt; password &#039;&#039;mypassword&#039;&#039;&amp;quot; gesetzt.&lt;br /&gt;
* &#039;&#039;&#039;sip_listen&#039;&#039;&#039;&lt;br /&gt;
: Das Attribut bietet folgende Optionen&lt;br /&gt;
: - &#039;&#039;&#039;none&#039;&#039;&#039;: keine Aktion (&#039;listen&#039; kann auch nicht manuell gestartet werden)&lt;br /&gt;
: - &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen und wartet auf DTMF-Anrufer (listen_for_dtmf). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
: - &#039;&#039;&#039;wfp&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen wait-fetch-play (listen_for_wfp). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
* &#039;&#039;&#039;sip_waittime&#039;&#039;&#039;&lt;br /&gt;
: Maximale Wartezeit bei listen_for_wfp bis das Gespräch automatisch angenommen wird.&lt;br /&gt;
* &#039;&#039;&#039;sip_ringtime&#039;&#039;&#039;&lt;br /&gt;
: listen: legt fest wie lange das Modul warten soll bis es den Anruf annimmt. Defaultwert ist 2, das entspricht ca. 1x klingeln.&lt;br /&gt;
: &lt;br /&gt;
* Anmerkung zum &#039;&#039;&#039;Audioformat&#039;&#039;&#039;&lt;br /&gt;
: Audiofiles müssen im alaw- oder ulaw-Format vorliegen und können mit folgendem Command erzeugt werden&lt;br /&gt;
: &#039;&#039;&#039;sox &amp;lt;file&amp;gt;.wav -t raw -r 8000 -c 1 -e a-law &amp;lt;file&amp;gt;.alaw&#039;&#039;&#039;&lt;br /&gt;
: da nur diese raw audio format unterstützt wird. Unterstützte/erkannte Endungen sind .alaw und .ulaw. Bitte darauf achten, dass das audiofile und der komplette Pfad die passenden Permissions hat, damit der FHEM User das File auch lesen darf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DTMF empfangen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_loop&#039;&#039;&#039;&lt;br /&gt;
: legt für den listen_for_dtmf-Modus fest wie oft ein DTMF Code eingeben werden soll ( once oder loop, default ist once ). &lt;br /&gt;
: Bei &#039;once&#039; erwartet der SIP-Cleint die Eingabe eines Codes in der angegebenen Länge und beendet den Anruf. &lt;br /&gt;
: Bei &#039;loop&#039; startet eine Endlosschleife aus Ansage-&amp;gt;Code-Erfassung-&amp;gt;Quittung-&amp;gt;Loop bis der Anrufer irgendwann auflegt.&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_size&#039;&#039;&#039;&lt;br /&gt;
: Die Anzahl der erwarteten DTMF-Töne im listen_for_dtmf-Modus (1 bis 4)&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_dtmf&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_for_dtmf-Modus vorgespielt wird und ihn auffordert einen Code einzugeben. Ist kein File angegeben hört man ein Geräusch.&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_ok&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_for_dtmf-Modus als Quittungston vorgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Auf anruf warten und annehmen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_wfp&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das nach dem Command &#039;&#039;&#039;fetch&#039;&#039;&#039; abgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und DTMF senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_send&#039;&#039;&#039;&lt;br /&gt;
: Bestimmt die Übertragungsart der angegebenen DTMF-Töne und bietet folgende Möglichkeiten:&lt;br /&gt;
: &#039;audio&#039;: Es werden Audiotöne übermittelt&lt;br /&gt;
: &#039;rfc2833&#039;: Es erfolgt eine Übertragung nach RFC2833 (für das menschliche Ohr weniger ansprechend)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_call&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem angerufenen bei &#039;&#039;&#039;call&#039;&#039;&#039; vorgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas sagen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;T2S_Device&#039;&#039;&#039;&lt;br /&gt;
: Name Eures in FHEM eingerichteten Text2Speech-Devices &lt;br /&gt;
* &#039;&#039;&#039;T2S_Timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout für die Text2Speech-Konvertierung (könnte ja sein, dass der TTS-Service im Internet überlastet ist)&lt;br /&gt;
* &#039;&#039;&#039;audio_converter&#039;&#039;&#039;&lt;br /&gt;
: Der für die Konvertierung zu verwendende (und vorab installierte) Audiokonverter. Auswahl: sox oder ffmpeg&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;password&#039;&#039;&#039;&lt;br /&gt;
: Passwort für den User sip_user hinterlegen.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;reset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Stoppt laufende listen-Prozess und initalisiert das Device.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;call &amp;lt;nummer&amp;gt; [&amp;lt;ringtime&amp;gt;] [&amp;lt;nachricht&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
: Startet einen Anruf an die angegebene Nummer.&lt;br /&gt;
: Optional kann die ringtime angegeben werden. Wird keine angegeben zieht das Attribut sip_ringtime. Default ist 10.&lt;br /&gt;
: Optional kann eine Nachricht &lt;br /&gt;
: * in Form eines Audiofiles angegeben werden. Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben. Bitte darauf achten, dass das audiofile und der Pfad dort hin passende Permissions hat, damit FHEM das File auch lesen darf. Die ringtime ist in dem Fall nicht optional sondern anzugeben.&lt;br /&gt;
: * als DTMF-Sequenz angegeben werden. Diese mit einem Prefix &#039;-&#039; versehen werden, also z.B. &#039;&#039;&#039;-&#039;&#039;&#039;#47.&lt;br /&gt;
: * als Text angegeben werden. Dieser mit einem Prefix &#039;!&#039; versehen werden, also z.B. &#039;&#039;&#039;!&#039;&#039;&#039;Hier spricht dein FHEM.&lt;br /&gt;
: Bitte hierfür unter &#039;Voraussetzungen&#039; den Hinweis auf TTS beachten.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;listen&#039;&#039;&#039;&lt;br /&gt;
: Manueller Start des listen-Prozesses. Setzt voraus, dass die Variable sip_listen auf dtmf oder wfp gesetzt ist:&lt;br /&gt;
: &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er automatisch Anrufe annimmt. Bei einem Anruf wird im Reading &#039;caller&#039; die Nummer bzw. Id des Anrufers angezeigt. Dem Anrufer wird der eigene Ton als Echo zurückgespielt. Über die Eingabe von &#039;&#039;&#039;#&#039;&#039;&#039; gefolgt von 2 Zahlen und anschließendem Auflegen kann eine Zahl an das Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; übergeben werden. Voraussetzung: Das anrufende Telefon ist auf Tonwahl gestellt (DTMF).&lt;br /&gt;
: &#039;&#039;&#039;wfp&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet (wfp steht für wait-fetch-play). Erfolgt ein Anruf an den Client, wechselt das Reading &#039;caller_state&#039; zu &#039;ringing&#039;, im Reading &#039;caller&#039; wird die Nummer bzw. Id des Anrufers angezeigt. Nun kann das Gespräch via set-Command &#039;fetch&#039; angenommen werden. Das als sip_audiofile angegebene File wird abgespielt. Anschließend wechselt der Status wieder zu listen_for_wfp.&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;call&#039;&#039;&#039;: Die Rufnummer des ausgehenden Anrufs. &lt;br /&gt;
* &#039;&#039;&#039;call_state&#039;&#039;&#039;: Status für ausgehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;caller&#039;&#039;&#039;: Die Rufnummer bzw. Info des aktuellen Anrufers. &lt;br /&gt;
* &#039;&#039;&#039;caller_state&#039;&#039;&#039;: Status für eingehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Die via Tonwahl (DTMF) eingegebenen Zahlen.&lt;br /&gt;
* &#039;&#039;&#039;state&#039;&#039;&#039;: Der Status des Devices.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und Sound abspielen ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
  &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; [&amp;lt;dauer&amp;gt;] [&amp;lt;audiofile oder Textnachricht&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;set mySip call 081547111 30 ./tada.alaw&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;set mySip call 081547111 30 !Hier ist dein FHEM Server&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Default-Dauer beträgt 30 Sekunden.&lt;br /&gt;
* Wird kein Audiofile angegeben, wird nur die Verbindung hergestellt und nach der Anrufdauer wieder unterbrochen.&lt;br /&gt;
* Anmerkung: Das Audiofile muss das Format PCM/8000 haben.&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, das Audiofile wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und DTMF-Töne senden ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; &amp;lt;dauer&amp;gt; &amp;lt;-tastenkombination&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Tastenkombination muss mit einem Minus (-) nach der Zielnummer folgen, also z.B. **1 -#23&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, die Tonfolge wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und DTMF-Töne empfangen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;dtmf&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird von einem DTMF-fähigen Telefon aus angerufen.&lt;br /&gt;
* Wenn der SIP-Client das Gespräch angenommen hat, betätigt man &#039;&#039;&#039;#&#039;&#039;&#039;, gefolgt von zwei Ziffern und legt dann wieder auf. Wichtig: Es müssen immer genau 3 Tasten betätigt werden (# und nm), damit das Reading dtmf gefüllt wird. n und m müssen zwei verschiedene Zahlen sein (0-9) oder ein Stern.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; ist diese zweistellige Zahl zu sehen und kann ggf. mit einem notify ausgewertet werden.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und kontrolliert annehmen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;wfp&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird angerufen.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;caller&#039;&#039;&#039; ist die Nummer bzw. die Info des Callers zu sehen, im &#039;&#039;&#039;caller_state&#039;&#039;&#039; erscheint &#039;ringing&#039;.&lt;br /&gt;
* Soll der Anruf angenommen werden setze ich den Status des Devices mittels set auf &#039;&#039;&#039;fetch&#039;&#039;&#039;:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Der SIP-Client legt auf und geht wieder in den Status &#039;&#039;&#039;listen_for_wfp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Fritzbox + Doorline - Telefonklingeln beenden ===&lt;br /&gt;
Szenario: Als Türklingel ist eine Doorline im Einsatz die auf Direktannahme eingestellt ist. Klingelt jemand an der Tür, erfolgt ein &#039;Anruf&#039; an die in der Rufgruppe definierten Telefone. Man kann den Anruf entgegennehmen, um zu hören wer an der Tür ist, bevor man die Tür öffnet. Geht man direkt zur Tür, klingeln die Telefone insgesamt 30 Sekunden lang bis sie verstummen. Hat man die Haustür mit einem Türkontakt versehen, hilft folgender Ansatz:&lt;br /&gt;
* Der SIP-Client wird in der Fritzbox in die Rufgruppe der Türklingel aufgenommen.&lt;br /&gt;
* Das Attribut &#039;sip_listen&#039; wird auf &#039;wfp&#039; gesetzt.&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus &#039;wait-fetch-play&#039; versetzt (Die sip_waittime sollte größer als die Klingeldauer der Doorline sein).&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klingelt jemand an der Tür, wird unter anderem die Nebenstelle des SIP-Clients angerufen.&lt;br /&gt;
* Über ein DOIF greift man die Kombination SIP-Client caller_state &#039;ringing&#039; und Haustürkontakt closed-&amp;gt;open ab und&lt;br /&gt;
* setzt  den Status des Devices mittels set auf fetch:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Die Telefone verstummen.&lt;br /&gt;
&lt;br /&gt;
In FHEM sieht das dann z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
Es gibt ein Device &#039;&#039;&#039;HaustuerStatus&#039;&#039;&#039; das den Status des Türkontaktes abbildet: &amp;quot;closed&amp;quot; oder &amp;quot;open&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Es wird ein Dummy-Device &#039;&#039;&#039;HaustuerStatusVar&#039;&#039;&#039; für die Status des Automaten angelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define HaustuerStatusVar dummy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und ein DOIF &#039;&#039;&#039;TuerklingelAus&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define TuerklingelAus DOIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([FhemSipClient:caller_state] eq &amp;quot;ringing&amp;quot;) and ([FhemSipClient:caller] eq &amp;quot;Klingel sip:**12\@fritz.box&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar ringing;; set HM_4A4047_Mp3 playTone 001 1 10) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;open&amp;quot;) and ([HaustuerStatusVar:state] eq &amp;quot;ringing&amp;quot;)) &lt;br /&gt;
(set FhemSipClient fetch;; set HaustuerStatusVar on) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([HaustuerStatusVar:state] ne &amp;quot;off&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Caller &amp;quot;Klingel sip:**12\@fritz.box&amp;quot; setzt sich aus dem in der Fritzbox vergebenen Namen, der Nebenstelle (**12 ist eine Doorline mit einem Taster, bei zweien gilt es **11 und **12 zu beachten) sowie dem syntaktischen Drumherum sip:&#039;&#039;nebenstelle&#039;&#039;\@fritz.box zusammen. Achtet bitte auf den &amp;quot;\&amp;quot; vor dem &amp;quot;@&amp;quot;, damit regex nicht mosert.&lt;br /&gt;
&lt;br /&gt;
HM_4A4047_Mp3 ist übrigens mein mobiler MP3-Tür-/Funkgong der zur Unterstützung einen Gong abspielt.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
=== Fehler bei der Registrierung an der Fritzbox ===&lt;br /&gt;
&#039;&#039;&#039;Fritzbox&#039;&#039;&#039;&lt;br /&gt;
* Ist das Device für den SIP-Client in der Fritzbox unter Telefonie &amp;gt; Telefoniegräte gelistet? &lt;br /&gt;
* Geräteeinstellungen ändern: Ist für das Device unter &#039;Anmeldedaten&#039; die Durchwahl als Benutzername angegeben?&lt;br /&gt;
* Ist der in dieser Ansicht angegebene &#039;Registrar&#039; mit der im Attribut sip_registrar identisch? Im Zweifelsfalle die IP-Adresse statt &#039;fritz.box&#039; verwenden.&lt;br /&gt;
* FitzOS ab 6.80: Wurde nach Definition des Gerätes an einem anderen bekannten Gerät der Bestätigungscode eingegeben?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FHEM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wurde das Passwort mittels set &amp;lt;mydevice&amp;gt; password &amp;lt;meinpasswort&amp;gt; gesetzt?&lt;br /&gt;
&lt;br /&gt;
Attribute des Devices prüfen:&lt;br /&gt;
* Ist unter sip_from &amp;lt;nowiki&amp;gt;&#039;sip:620@fritz.box&#039;&amp;lt;/nowiki&amp;gt; die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_user die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_registrar die IP-Adresser der Fritzbox eingetragen?&lt;br /&gt;
* Ist unter sip_ip die IP-Adresse des FHEM-Servers eingetragen (z.B. 192.168.178.47 angeben, keine Adresse aus dem 127er-Segment)?&lt;br /&gt;
&lt;br /&gt;
=== Erzeugung eines passenden Audiofiles ===&lt;br /&gt;
&lt;br /&gt;
Eine Alternative zu sox ist ffmpeg. Damit kann direkt von mp3 ins Zielformat konvertiert werden:&lt;br /&gt;
&lt;br /&gt;
ffmpeg -i meinfile.mp3 -f alaw -ar 8000 meinfile.alaw&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=40219|LinkText=Forenthread}} alter Forum-Thread zu FB_SIP.pm und SIP.pm&lt;br /&gt;
* {{Link2Forum|Topic=67443|LinkText=Forenthread}} Forum-Thread zu diesem Modul SIP&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hilfsmodul]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20742</id>
		<title>SIP-Client</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20742"/>
		<updated>2017-03-15T19:00:33Z</updated>

		<summary type="html">&lt;p&gt;Wzut: /* Anruf tätigen und Sound abspielen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=SIP-Client für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=SIP&lt;br /&gt;
|ModForumArea=Sonstiges&lt;br /&gt;
|ModTechName=96_SIP.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;SIP&#039;&#039;&#039; ermöglicht die Entgegennahme (DTMF-Töne interpretieren, kontrollierte Annahme) sowie die Durchführung (Audiofile abspielen, DTMF-Töne senden, Textansage) von Anrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
Für den Remote-Zugang muss das Modul Net::SIP installiert sein; auf einem Raspberry Pi oder unter Ubuntu z.&amp;amp;nbsp;B. mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cpanm install Net::SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder auch&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libnet-sip-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Falls Ihr Text2Speech verwenden wollt ====&lt;br /&gt;
&lt;br /&gt;
Vorbereitung&lt;br /&gt;
* SoX installieren &lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install sox &amp;lt;/code&amp;gt;&lt;br /&gt;
* mp3 Unterstützung für SoX installieren&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libsox-fmt-mp3&amp;lt;/code&amp;gt;&lt;br /&gt;
* Text2Speech als Server Device anlegen &lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name z.B myT2S&amp;gt; text2speech none&amp;lt;/code&amp;gt;&lt;br /&gt;
* beim SIP Device dieses Server Device im Attribut T2S_Device eintragen&lt;br /&gt;
&lt;br /&gt;
=== SIP-Server ===&lt;br /&gt;
Der SIP-Client muss sich an einem SIP-Server anmelden (Fritzbox, Asterisk, VoIP-Provider). &lt;br /&gt;
Auf dem SIP-Server, mit dem sich der Client verbinden soll, muss ein User-Account vorhanden sein bzw. angelegt werden. &lt;br /&gt;
In der Fritzbox muss z.B. ein neues Telefoniegerät vom Typ LAN/WLAN angelegt und ein Passwort vergeben werden. Das erzeugt ein neues internes Device im internen Rufnummernbereich **62x, typischerweise die 620. Es sollte kontrolliert werden, ob bei den Anmeldeinformationen der Benutzername der Nebenstelle entspricht (z.B. 620) und ein Passwort eingetragen ist.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Die verwendete Library Net::SIP fordert mehr Ressourcen als RaspberryPi, BananaPi &amp;amp; Co hergeben. Bitte testet, ob Eure Hardware Audofiles sauber abspielen sowie sicher DTMF-Töne empfangen kann und für Euren Einsatzzweck geeignet ist.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;96_SIP.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist der SIP-Client als Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden. Ebenso ist das Passwort mittels set-Command zu speichern.&lt;br /&gt;
&lt;br /&gt;
=== Mögliche Fehlermeldungen ===&lt;br /&gt;
Sollte schon bei &amp;lt;code&amp;gt;define mySIP SIP&amp;lt;/code&amp;gt; die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte &#039;update all&#039; durchführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Basics &amp;amp; Allgemeines&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;sip_from&#039;&#039;&#039;&lt;br /&gt;
: Meine SIP-Client-Info. Default ist &amp;lt;nowiki&amp;gt;sip:620@fritz.box&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sip_ip&#039;&#039;&#039;&lt;br /&gt;
: Die IP-Addresse meines FHEM-Servers.&lt;br /&gt;
* &#039;&#039;&#039;sip_port&#039;&#039;&#039;&lt;br /&gt;
: Port der für den SIP-Client genutzt wird. Default ist 5060 und wird automatisch um 10 erhöht wenn der Port nicht frei ist.&lt;br /&gt;
* &#039;&#039;&#039;sip_registrar&#039;&#039;&#039;&lt;br /&gt;
: Hostname oder IP-Addresse des SIP-Servers mit dem sich der Client verbindet. Default ist fritz.box.&lt;br /&gt;
* &#039;&#039;&#039;sip_user&#039;&#039;&#039;&lt;br /&gt;
: User Name des SIP-Clients. Default ist 620. Anmerkung: Passwort wird über &amp;quot;set &amp;lt;device&amp;gt; password &#039;&#039;mypassword&#039;&#039;&amp;quot; gesetzt.&lt;br /&gt;
* &#039;&#039;&#039;sip_listen&#039;&#039;&#039;&lt;br /&gt;
: Das Attribut bietet folgende Optionen&lt;br /&gt;
: - &#039;&#039;&#039;none&#039;&#039;&#039;: keine Aktion (&#039;listen&#039; kann auch nicht manuell gestartet werden)&lt;br /&gt;
: - &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen und wartet auf DTMF-Anrufer (listen_for_dtmf). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
: - &#039;&#039;&#039;wfp&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen wait-fetch-play (listen_for_wfp). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
* &#039;&#039;&#039;sip_waittime&#039;&#039;&#039;&lt;br /&gt;
: Maximale Wartezeit bei listen_for_wfp bis das Gespräch automatisch angenommen wird.&lt;br /&gt;
* &#039;&#039;&#039;sip_ringtime&#039;&#039;&#039;&lt;br /&gt;
: listen: legt fest wie lange das Modul warten soll bis es den Anruf annimmt. Defaultwert ist 2, das entspricht ca. 1x klingeln.&lt;br /&gt;
: &lt;br /&gt;
* Anmerkung zum &#039;&#039;&#039;Audioformat&#039;&#039;&#039;&lt;br /&gt;
: Audiofiles müssen im alaw- oder ulaw-Format vorliegen und können mit folgendem Command erzeugt werden&lt;br /&gt;
: &#039;&#039;&#039;sox &amp;lt;file&amp;gt;.wav -t raw -r 8000 -c 1 -e a-law &amp;lt;file&amp;gt;.alaw&#039;&#039;&#039;&lt;br /&gt;
: da nur diese raw audio format unterstützt wird. Unterstützte/erkannte Endungen sind .alaw und .ulaw. Bitte darauf achten, dass das audiofile und der komplette Pfad die passenden Permissions hat, damit der FHEM User das File auch lesen darf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DTMF empfangen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_loop&#039;&#039;&#039;&lt;br /&gt;
: legt für den listen_for_dtmf-Modus fest wie oft ein DTMF Code eingeben werden soll ( once oder loop, default ist once ). &lt;br /&gt;
: Bei &#039;once&#039; erwartet der SIP-Cleint die Eingabe eines Codes in der angegebenen Länge und beendet den Anruf. &lt;br /&gt;
: Bei &#039;loop&#039; startet eine Endlosschleife aus Ansage-&amp;gt;Code-Erfassung-&amp;gt;Quittung-&amp;gt;Loop bis der Anrufer irgendwann auflegt.&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_size&#039;&#039;&#039;&lt;br /&gt;
: Die Anzahl der erwarteten DTMF-Töne im listen_for_dtmf-Modus (1 bis 4)&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_dtmf&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_for_dtmf-Modus vorgespielt wird und ihn auffordert einen Code einzugeben. Ist kein File angegeben hört man ein Geräusch.&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_ok&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_for_dtmf-Modus als Quittungston vorgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Auf anruf warten und annehmen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_wfp&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das nach dem Command &#039;&#039;&#039;fetch&#039;&#039;&#039; abgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und DTMF senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_send&#039;&#039;&#039;&lt;br /&gt;
: Bestimmt die Übertragungsart der angegebenen DTMF-Töne und bietet folgende Möglichkeiten:&lt;br /&gt;
: &#039;audio&#039;: Es werden Audiotöne übermittelt&lt;br /&gt;
: &#039;rfc2833&#039;: Es erfolgt eine Übertragung nach RFC2833 (für das menschliche Ohr weniger ansprechend)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_call&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem angerufenen bei &#039;&#039;&#039;call&#039;&#039;&#039; vorgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas sagen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;T2S_Device&#039;&#039;&#039;&lt;br /&gt;
: Name Eures in FHEM eingerichteten Text2Speech-Devices &lt;br /&gt;
* &#039;&#039;&#039;T2S_Timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout für die Text2Speech-Konvertierung (könnte ja sein, dass der TTS-Service im Internet überlastet ist)&lt;br /&gt;
* &#039;&#039;&#039;audio_converter&#039;&#039;&#039;&lt;br /&gt;
: Der für die Konvertierung zu verwendende (und vorab installierte) Audiokonverter. Auswahl: sox oder ffmpeg&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;password&#039;&#039;&#039;&lt;br /&gt;
: Passwort für den User sip_user hinterlegen.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;reset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Stoppt laufende listen-Prozess und initalisiert das Device.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;call &amp;lt;nummer&amp;gt; [&amp;lt;ringtime&amp;gt;] [&amp;lt;nachricht&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
: Startet einen Anruf an die angegebene Nummer.&lt;br /&gt;
: Optional kann die ringtime angegeben werden. Wird keine angegeben zieht das Attribut sip_ringtime. Default ist 10.&lt;br /&gt;
: Optional kann eine Nachricht &lt;br /&gt;
: * in Form eines Audiofiles angegeben werden. Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben. Bitte darauf achten, dass das audiofile und der Pfad dort hin passende Permissions hat, damit FHEM das File auch lesen darf. Die ringtime ist in dem Fall nicht optional sondern anzugeben.&lt;br /&gt;
: * als DTMF-Sequenz angegeben werden. Diese mit einem Prefix &#039;-&#039; versehen werden, also z.B. &#039;&#039;&#039;-&#039;&#039;&#039;#47.&lt;br /&gt;
: * als Text angegeben werden. Dieser mit einem Prefix &#039;!&#039; versehen werden, also z.B. &#039;&#039;&#039;!&#039;&#039;&#039;Hier spricht dein FHEM.&lt;br /&gt;
: Bitte hierfür unter &#039;Voraussetzungen&#039; den Hinweis auf TTS beachten.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;listen&#039;&#039;&#039;&lt;br /&gt;
: Manueller Start des listen-Prozesses. Setzt voraus, dass die Variable sip_listen auf dtmf oder wfp gesetzt ist:&lt;br /&gt;
: &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er automatisch Anrufe annimmt. Bei einem Anruf wird im Reading &#039;caller&#039; die Nummer bzw. Id des Anrufers angezeigt. Dem Anrufer wird der eigene Ton als Echo zurückgespielt. Über die Eingabe von &#039;&#039;&#039;#&#039;&#039;&#039; gefolgt von 2 Zahlen und anschließendem Auflegen kann eine Zahl an das Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; übergeben werden. Voraussetzung: Das anrufende Telefon ist auf Tonwahl gestellt (DTMF).&lt;br /&gt;
: &#039;&#039;&#039;wfp&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet (wfp steht für wait-fetch-play). Erfolgt ein Anruf an den Client, wechselt das Reading &#039;caller_state&#039; zu &#039;ringing&#039;, im Reading &#039;caller&#039; wird die Nummer bzw. Id des Anrufers angezeigt. Nun kann das Gespräch via set-Command &#039;fetch&#039; angenommen werden. Das als sip_audiofile angegebene File wird abgespielt. Anschließend wechselt der Status wieder zu listen_for_wfp.&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;call&#039;&#039;&#039;: Die Rufnummer des ausgehenden Anrufs. &lt;br /&gt;
* &#039;&#039;&#039;call_state&#039;&#039;&#039;: Status für ausgehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;caller&#039;&#039;&#039;: Die Rufnummer bzw. Info des aktuellen Anrufers. &lt;br /&gt;
* &#039;&#039;&#039;caller_state&#039;&#039;&#039;: Status für eingehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Die via Tonwahl (DTMF) eingegebenen Zahlen.&lt;br /&gt;
* &#039;&#039;&#039;state&#039;&#039;&#039;: Der Status des Devices.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und Sound abspielen ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
  &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; [&amp;lt;dauer&amp;gt;] [&amp;lt;audiofile oder Textnachricht&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;set mySip call 081547111 30 ./tada.alaw&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;set mySip call 081547111 30 !Hier ist dein FHEM Server/code&amp;gt;&lt;br /&gt;
* Die Default-Dauer beträgt 30 Sekunden.&lt;br /&gt;
* Wird kein Audiofile angegeben, wird nur die Verbindung hergestellt und nach der Anrufdauer wieder unterbrochen.&lt;br /&gt;
* Anmerkung: Das Audiofile muss das Format PCM/8000 haben.&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, das Audiofile wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und DTMF-Töne senden ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; &amp;lt;dauer&amp;gt; &amp;lt;-tastenkombination&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Tastenkombination muss mit einem Minus (-) nach der Zielnummer folgen, also z.B. **1 -#23&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, die Tonfolge wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und DTMF-Töne empfangen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;dtmf&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird von einem DTMF-fähigen Telefon aus angerufen.&lt;br /&gt;
* Wenn der SIP-Client das Gespräch angenommen hat, betätigt man &#039;&#039;&#039;#&#039;&#039;&#039;, gefolgt von zwei Ziffern und legt dann wieder auf. Wichtig: Es müssen immer genau 3 Tasten betätigt werden (# und nm), damit das Reading dtmf gefüllt wird. n und m müssen zwei verschiedene Zahlen sein (0-9) oder ein Stern.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; ist diese zweistellige Zahl zu sehen und kann ggf. mit einem notify ausgewertet werden.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und kontrolliert annehmen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;wfp&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird angerufen.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;caller&#039;&#039;&#039; ist die Nummer bzw. die Info des Callers zu sehen, im &#039;&#039;&#039;caller_state&#039;&#039;&#039; erscheint &#039;ringing&#039;.&lt;br /&gt;
* Soll der Anruf angenommen werden setze ich den Status des Devices mittels set auf &#039;&#039;&#039;fetch&#039;&#039;&#039;:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Der SIP-Client legt auf und geht wieder in den Status &#039;&#039;&#039;listen_for_wfp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Fritzbox + Doorline - Telefonklingeln beenden ===&lt;br /&gt;
Szenario: Als Türklingel ist eine Doorline im Einsatz die auf Direktannahme eingestellt ist. Klingelt jemand an der Tür, erfolgt ein &#039;Anruf&#039; an die in der Rufgruppe definierten Telefone. Man kann den Anruf entgegennehmen, um zu hören wer an der Tür ist, bevor man die Tür öffnet. Geht man direkt zur Tür, klingeln die Telefone insgesamt 30 Sekunden lang bis sie verstummen. Hat man die Haustür mit einem Türkontakt versehen, hilft folgender Ansatz:&lt;br /&gt;
* Der SIP-Client wird in der Fritzbox in die Rufgruppe der Türklingel aufgenommen.&lt;br /&gt;
* Das Attribut &#039;sip_listen&#039; wird auf &#039;wfp&#039; gesetzt.&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus &#039;wait-fetch-play&#039; versetzt (Die sip_waittime sollte größer als die Klingeldauer der Doorline sein).&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klingelt jemand an der Tür, wird unter anderem die Nebenstelle des SIP-Clients angerufen.&lt;br /&gt;
* Über ein DOIF greift man die Kombination SIP-Client caller_state &#039;ringing&#039; und Haustürkontakt closed-&amp;gt;open ab und&lt;br /&gt;
* setzt  den Status des Devices mittels set auf fetch:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Die Telefone verstummen.&lt;br /&gt;
&lt;br /&gt;
In FHEM sieht das dann z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
Es gibt ein Device &#039;&#039;&#039;HaustuerStatus&#039;&#039;&#039; das den Status des Türkontaktes abbildet: &amp;quot;closed&amp;quot; oder &amp;quot;open&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Es wird ein Dummy-Device &#039;&#039;&#039;HaustuerStatusVar&#039;&#039;&#039; für die Status des Automaten angelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define HaustuerStatusVar dummy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und ein DOIF &#039;&#039;&#039;TuerklingelAus&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define TuerklingelAus DOIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([FhemSipClient:caller_state] eq &amp;quot;ringing&amp;quot;) and ([FhemSipClient:caller] eq &amp;quot;Klingel sip:**12\@fritz.box&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar ringing;; set HM_4A4047_Mp3 playTone 001 1 10) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;open&amp;quot;) and ([HaustuerStatusVar:state] eq &amp;quot;ringing&amp;quot;)) &lt;br /&gt;
(set FhemSipClient fetch;; set HaustuerStatusVar on) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([HaustuerStatusVar:state] ne &amp;quot;off&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Caller &amp;quot;Klingel sip:**12\@fritz.box&amp;quot; setzt sich aus dem in der Fritzbox vergebenen Namen, der Nebenstelle (**12 ist eine Doorline mit einem Taster, bei zweien gilt es **11 und **12 zu beachten) sowie dem syntaktischen Drumherum sip:&#039;&#039;nebenstelle&#039;&#039;\@fritz.box zusammen. Achtet bitte auf den &amp;quot;\&amp;quot; vor dem &amp;quot;@&amp;quot;, damit regex nicht mosert.&lt;br /&gt;
&lt;br /&gt;
HM_4A4047_Mp3 ist übrigens mein mobiler MP3-Tür-/Funkgong der zur Unterstützung einen Gong abspielt.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
=== Fehler bei der Registrierung an der Fritzbox ===&lt;br /&gt;
&#039;&#039;&#039;Fritzbox&#039;&#039;&#039;&lt;br /&gt;
* Ist das Device für den SIP-Client in der Fritzbox unter Telefonie &amp;gt; Telefoniegräte gelistet? &lt;br /&gt;
* Geräteeinstellungen ändern: Ist für das Device unter &#039;Anmeldedaten&#039; die Durchwahl als Benutzername angegeben?&lt;br /&gt;
* Ist der in dieser Ansicht angegebene &#039;Registrar&#039; mit der im Attribut sip_registrar identisch? Im Zweifelsfalle die IP-Adresse statt &#039;fritz.box&#039; verwenden.&lt;br /&gt;
* FitzOS ab 6.80: Wurde nach Definition des Gerätes an einem anderen bekannten Gerät der Bestätigungscode eingegeben?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FHEM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wurde das Passwort mittels set &amp;lt;mydevice&amp;gt; password &amp;lt;meinpasswort&amp;gt; gesetzt?&lt;br /&gt;
&lt;br /&gt;
Attribute des Devices prüfen:&lt;br /&gt;
* Ist unter sip_from &amp;lt;nowiki&amp;gt;&#039;sip:620@fritz.box&#039;&amp;lt;/nowiki&amp;gt; die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_user die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_registrar die IP-Adresser der Fritzbox eingetragen?&lt;br /&gt;
* Ist unter sip_ip die IP-Adresse des FHEM-Servers eingetragen (z.B. 192.168.178.47 angeben, keine Adresse aus dem 127er-Segment)?&lt;br /&gt;
&lt;br /&gt;
=== Erzeugung eines passenden Audiofiles ===&lt;br /&gt;
&lt;br /&gt;
Eine Alternative zu sox ist ffmpeg. Damit kann direkt von mp3 ins Zielformat konvertiert werden:&lt;br /&gt;
&lt;br /&gt;
ffmpeg -i meinfile.mp3 -f alaw -ar 8000 meinfile.alaw&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=40219|LinkText=Forenthread}} alter Forum-Thread zu FB_SIP.pm und SIP.pm&lt;br /&gt;
* {{Link2Forum|Topic=67443|LinkText=Forenthread}} Forum-Thread zu diesem Modul SIP&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hilfsmodul]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20741</id>
		<title>SIP-Client</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20741"/>
		<updated>2017-03-15T18:53:26Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=SIP-Client für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=SIP&lt;br /&gt;
|ModForumArea=Sonstiges&lt;br /&gt;
|ModTechName=96_SIP.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;SIP&#039;&#039;&#039; ermöglicht die Entgegennahme (DTMF-Töne interpretieren, kontrollierte Annahme) sowie die Durchführung (Audiofile abspielen, DTMF-Töne senden, Textansage) von Anrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
Für den Remote-Zugang muss das Modul Net::SIP installiert sein; auf einem Raspberry Pi oder unter Ubuntu z.&amp;amp;nbsp;B. mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cpanm install Net::SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder auch&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libnet-sip-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Falls Ihr Text2Speech verwenden wollt ====&lt;br /&gt;
&lt;br /&gt;
Vorbereitung&lt;br /&gt;
* SoX installieren &lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install sox &amp;lt;/code&amp;gt;&lt;br /&gt;
* mp3 Unterstützung für SoX installieren&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libsox-fmt-mp3&amp;lt;/code&amp;gt;&lt;br /&gt;
* Text2Speech als Server Device anlegen &lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name z.B myT2S&amp;gt; text2speech none&amp;lt;/code&amp;gt;&lt;br /&gt;
* beim SIP Device dieses Server Device im Attribut T2S_Device eintragen&lt;br /&gt;
&lt;br /&gt;
=== SIP-Server ===&lt;br /&gt;
Der SIP-Client muss sich an einem SIP-Server anmelden (Fritzbox, Asterisk, VoIP-Provider). &lt;br /&gt;
Auf dem SIP-Server, mit dem sich der Client verbinden soll, muss ein User-Account vorhanden sein bzw. angelegt werden. &lt;br /&gt;
In der Fritzbox muss z.B. ein neues Telefoniegerät vom Typ LAN/WLAN angelegt und ein Passwort vergeben werden. Das erzeugt ein neues internes Device im internen Rufnummernbereich **62x, typischerweise die 620. Es sollte kontrolliert werden, ob bei den Anmeldeinformationen der Benutzername der Nebenstelle entspricht (z.B. 620) und ein Passwort eingetragen ist.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Die verwendete Library Net::SIP fordert mehr Ressourcen als RaspberryPi, BananaPi &amp;amp; Co hergeben. Bitte testet, ob Eure Hardware Audofiles sauber abspielen sowie sicher DTMF-Töne empfangen kann und für Euren Einsatzzweck geeignet ist.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;96_SIP.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist der SIP-Client als Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden. Ebenso ist das Passwort mittels set-Command zu speichern.&lt;br /&gt;
&lt;br /&gt;
=== Mögliche Fehlermeldungen ===&lt;br /&gt;
Sollte schon bei &amp;lt;code&amp;gt;define mySIP SIP&amp;lt;/code&amp;gt; die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte &#039;update all&#039; durchführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Basics &amp;amp; Allgemeines&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;sip_from&#039;&#039;&#039;&lt;br /&gt;
: Meine SIP-Client-Info. Default ist &amp;lt;nowiki&amp;gt;sip:620@fritz.box&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sip_ip&#039;&#039;&#039;&lt;br /&gt;
: Die IP-Addresse meines FHEM-Servers.&lt;br /&gt;
* &#039;&#039;&#039;sip_port&#039;&#039;&#039;&lt;br /&gt;
: Port der für den SIP-Client genutzt wird. Default ist 5060 und wird automatisch um 10 erhöht wenn der Port nicht frei ist.&lt;br /&gt;
* &#039;&#039;&#039;sip_registrar&#039;&#039;&#039;&lt;br /&gt;
: Hostname oder IP-Addresse des SIP-Servers mit dem sich der Client verbindet. Default ist fritz.box.&lt;br /&gt;
* &#039;&#039;&#039;sip_user&#039;&#039;&#039;&lt;br /&gt;
: User Name des SIP-Clients. Default ist 620. Anmerkung: Passwort wird über &amp;quot;set &amp;lt;device&amp;gt; password &#039;&#039;mypassword&#039;&#039;&amp;quot; gesetzt.&lt;br /&gt;
* &#039;&#039;&#039;sip_listen&#039;&#039;&#039;&lt;br /&gt;
: Das Attribut bietet folgende Optionen&lt;br /&gt;
: - &#039;&#039;&#039;none&#039;&#039;&#039;: keine Aktion (&#039;listen&#039; kann auch nicht manuell gestartet werden)&lt;br /&gt;
: - &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen und wartet auf DTMF-Anrufer (listen_for_dtmf). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
: - &#039;&#039;&#039;wfp&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen wait-fetch-play (listen_for_wfp). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
* &#039;&#039;&#039;sip_waittime&#039;&#039;&#039;&lt;br /&gt;
: Maximale Wartezeit bei listen_for_wfp bis das Gespräch automatisch angenommen wird.&lt;br /&gt;
* &#039;&#039;&#039;sip_ringtime&#039;&#039;&#039;&lt;br /&gt;
: listen: legt fest wie lange das Modul warten soll bis es den Anruf annimmt. Defaultwert ist 2, das entspricht ca. 1x klingeln.&lt;br /&gt;
: &lt;br /&gt;
* Anmerkung zum &#039;&#039;&#039;Audioformat&#039;&#039;&#039;&lt;br /&gt;
: Audiofiles müssen im alaw- oder ulaw-Format vorliegen und können mit folgendem Command erzeugt werden&lt;br /&gt;
: &#039;&#039;&#039;sox &amp;lt;file&amp;gt;.wav -t raw -r 8000 -c 1 -e a-law &amp;lt;file&amp;gt;.alaw&#039;&#039;&#039;&lt;br /&gt;
: da nur diese raw audio format unterstützt wird. Unterstützte/erkannte Endungen sind .alaw und .ulaw. Bitte darauf achten, dass das audiofile und der komplette Pfad die passenden Permissions hat, damit der FHEM User das File auch lesen darf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DTMF empfangen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_loop&#039;&#039;&#039;&lt;br /&gt;
: legt für den listen_for_dtmf-Modus fest wie oft ein DTMF Code eingeben werden soll ( once oder loop, default ist once ). &lt;br /&gt;
: Bei &#039;once&#039; erwartet der SIP-Cleint die Eingabe eines Codes in der angegebenen Länge und beendet den Anruf. &lt;br /&gt;
: Bei &#039;loop&#039; startet eine Endlosschleife aus Ansage-&amp;gt;Code-Erfassung-&amp;gt;Quittung-&amp;gt;Loop bis der Anrufer irgendwann auflegt.&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_size&#039;&#039;&#039;&lt;br /&gt;
: Die Anzahl der erwarteten DTMF-Töne im listen_for_dtmf-Modus (1 bis 4)&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_dtmf&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_for_dtmf-Modus vorgespielt wird und ihn auffordert einen Code einzugeben. Ist kein File angegeben hört man ein Geräusch.&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_ok&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_for_dtmf-Modus als Quittungston vorgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Auf anruf warten und annehmen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_wfp&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das nach dem Command &#039;&#039;&#039;fetch&#039;&#039;&#039; abgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und DTMF senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_send&#039;&#039;&#039;&lt;br /&gt;
: Bestimmt die Übertragungsart der angegebenen DTMF-Töne und bietet folgende Möglichkeiten:&lt;br /&gt;
: &#039;audio&#039;: Es werden Audiotöne übermittelt&lt;br /&gt;
: &#039;rfc2833&#039;: Es erfolgt eine Übertragung nach RFC2833 (für das menschliche Ohr weniger ansprechend)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_call&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem angerufenen bei &#039;&#039;&#039;call&#039;&#039;&#039; vorgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas sagen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;T2S_Device&#039;&#039;&#039;&lt;br /&gt;
: Name Eures in FHEM eingerichteten Text2Speech-Devices &lt;br /&gt;
* &#039;&#039;&#039;T2S_Timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout für die Text2Speech-Konvertierung (könnte ja sein, dass der TTS-Service im Internet überlastet ist)&lt;br /&gt;
* &#039;&#039;&#039;audio_converter&#039;&#039;&#039;&lt;br /&gt;
: Der für die Konvertierung zu verwendende (und vorab installierte) Audiokonverter. Auswahl: sox oder ffmpeg&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;password&#039;&#039;&#039;&lt;br /&gt;
: Passwort für den User sip_user hinterlegen.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;reset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Stoppt laufende listen-Prozess und initalisiert das Device.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;call &amp;lt;nummer&amp;gt; [&amp;lt;ringtime&amp;gt;] [&amp;lt;nachricht&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
: Startet einen Anruf an die angegebene Nummer.&lt;br /&gt;
: Optional kann die ringtime angegeben werden. Wird keine angegeben zieht das Attribut sip_ringtime. Default ist 10.&lt;br /&gt;
: Optional kann eine Nachricht &lt;br /&gt;
: * in Form eines Audiofiles angegeben werden. Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben. Bitte darauf achten, dass das audiofile und der Pfad dort hin passende Permissions hat, damit FHEM das File auch lesen darf. Die ringtime ist in dem Fall nicht optional sondern anzugeben.&lt;br /&gt;
: * als DTMF-Sequenz angegeben werden. Diese mit einem Prefix &#039;-&#039; versehen werden, also z.B. &#039;&#039;&#039;-&#039;&#039;&#039;#47.&lt;br /&gt;
: * als Text angegeben werden. Dieser mit einem Prefix &#039;!&#039; versehen werden, also z.B. &#039;&#039;&#039;!&#039;&#039;&#039;Hier spricht dein FHEM.&lt;br /&gt;
: Bitte hierfür unter &#039;Voraussetzungen&#039; den Hinweis auf TTS beachten.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;listen&#039;&#039;&#039;&lt;br /&gt;
: Manueller Start des listen-Prozesses. Setzt voraus, dass die Variable sip_listen auf dtmf oder wfp gesetzt ist:&lt;br /&gt;
: &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er automatisch Anrufe annimmt. Bei einem Anruf wird im Reading &#039;caller&#039; die Nummer bzw. Id des Anrufers angezeigt. Dem Anrufer wird der eigene Ton als Echo zurückgespielt. Über die Eingabe von &#039;&#039;&#039;#&#039;&#039;&#039; gefolgt von 2 Zahlen und anschließendem Auflegen kann eine Zahl an das Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; übergeben werden. Voraussetzung: Das anrufende Telefon ist auf Tonwahl gestellt (DTMF).&lt;br /&gt;
: &#039;&#039;&#039;wfp&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet (wfp steht für wait-fetch-play). Erfolgt ein Anruf an den Client, wechselt das Reading &#039;caller_state&#039; zu &#039;ringing&#039;, im Reading &#039;caller&#039; wird die Nummer bzw. Id des Anrufers angezeigt. Nun kann das Gespräch via set-Command &#039;fetch&#039; angenommen werden. Das als sip_audiofile angegebene File wird abgespielt. Anschließend wechselt der Status wieder zu listen_for_wfp.&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;call&#039;&#039;&#039;: Die Rufnummer des ausgehenden Anrufs. &lt;br /&gt;
* &#039;&#039;&#039;call_state&#039;&#039;&#039;: Status für ausgehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;caller&#039;&#039;&#039;: Die Rufnummer bzw. Info des aktuellen Anrufers. &lt;br /&gt;
* &#039;&#039;&#039;caller_state&#039;&#039;&#039;: Status für eingehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Die via Tonwahl (DTMF) eingegebenen Zahlen.&lt;br /&gt;
* &#039;&#039;&#039;state&#039;&#039;&#039;: Der Status des Devices.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und Sound abspielen ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; [&amp;lt;dauer&amp;gt;] [&amp;lt;audiofile&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Default-Dauer beträgt 30 Sekunden.&lt;br /&gt;
* Wird kein Audiofile angegeben, wird nur die Verbindung hergestellt und nach der Anrufdauer wieder unterbrochen.&lt;br /&gt;
* Anmerkung: Das Audiofile muss das Format PCM/8000 haben.&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, das Audiofile wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und DTMF-Töne senden ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; &amp;lt;dauer&amp;gt; &amp;lt;-tastenkombination&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Tastenkombination muss mit einem Minus (-) nach der Zielnummer folgen, also z.B. **1 -#23&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, die Tonfolge wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und DTMF-Töne empfangen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;dtmf&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird von einem DTMF-fähigen Telefon aus angerufen.&lt;br /&gt;
* Wenn der SIP-Client das Gespräch angenommen hat, betätigt man &#039;&#039;&#039;#&#039;&#039;&#039;, gefolgt von zwei Ziffern und legt dann wieder auf. Wichtig: Es müssen immer genau 3 Tasten betätigt werden (# und nm), damit das Reading dtmf gefüllt wird. n und m müssen zwei verschiedene Zahlen sein (0-9) oder ein Stern.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; ist diese zweistellige Zahl zu sehen und kann ggf. mit einem notify ausgewertet werden.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und kontrolliert annehmen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;wfp&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird angerufen.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;caller&#039;&#039;&#039; ist die Nummer bzw. die Info des Callers zu sehen, im &#039;&#039;&#039;caller_state&#039;&#039;&#039; erscheint &#039;ringing&#039;.&lt;br /&gt;
* Soll der Anruf angenommen werden setze ich den Status des Devices mittels set auf &#039;&#039;&#039;fetch&#039;&#039;&#039;:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Der SIP-Client legt auf und geht wieder in den Status &#039;&#039;&#039;listen_for_wfp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Fritzbox + Doorline - Telefonklingeln beenden ===&lt;br /&gt;
Szenario: Als Türklingel ist eine Doorline im Einsatz die auf Direktannahme eingestellt ist. Klingelt jemand an der Tür, erfolgt ein &#039;Anruf&#039; an die in der Rufgruppe definierten Telefone. Man kann den Anruf entgegennehmen, um zu hören wer an der Tür ist, bevor man die Tür öffnet. Geht man direkt zur Tür, klingeln die Telefone insgesamt 30 Sekunden lang bis sie verstummen. Hat man die Haustür mit einem Türkontakt versehen, hilft folgender Ansatz:&lt;br /&gt;
* Der SIP-Client wird in der Fritzbox in die Rufgruppe der Türklingel aufgenommen.&lt;br /&gt;
* Das Attribut &#039;sip_listen&#039; wird auf &#039;wfp&#039; gesetzt.&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus &#039;wait-fetch-play&#039; versetzt (Die sip_waittime sollte größer als die Klingeldauer der Doorline sein).&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klingelt jemand an der Tür, wird unter anderem die Nebenstelle des SIP-Clients angerufen.&lt;br /&gt;
* Über ein DOIF greift man die Kombination SIP-Client caller_state &#039;ringing&#039; und Haustürkontakt closed-&amp;gt;open ab und&lt;br /&gt;
* setzt  den Status des Devices mittels set auf fetch:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Die Telefone verstummen.&lt;br /&gt;
&lt;br /&gt;
In FHEM sieht das dann z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
Es gibt ein Device &#039;&#039;&#039;HaustuerStatus&#039;&#039;&#039; das den Status des Türkontaktes abbildet: &amp;quot;closed&amp;quot; oder &amp;quot;open&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Es wird ein Dummy-Device &#039;&#039;&#039;HaustuerStatusVar&#039;&#039;&#039; für die Status des Automaten angelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define HaustuerStatusVar dummy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und ein DOIF &#039;&#039;&#039;TuerklingelAus&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define TuerklingelAus DOIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([FhemSipClient:caller_state] eq &amp;quot;ringing&amp;quot;) and ([FhemSipClient:caller] eq &amp;quot;Klingel sip:**12\@fritz.box&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar ringing;; set HM_4A4047_Mp3 playTone 001 1 10) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;open&amp;quot;) and ([HaustuerStatusVar:state] eq &amp;quot;ringing&amp;quot;)) &lt;br /&gt;
(set FhemSipClient fetch;; set HaustuerStatusVar on) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([HaustuerStatusVar:state] ne &amp;quot;off&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Caller &amp;quot;Klingel sip:**12\@fritz.box&amp;quot; setzt sich aus dem in der Fritzbox vergebenen Namen, der Nebenstelle (**12 ist eine Doorline mit einem Taster, bei zweien gilt es **11 und **12 zu beachten) sowie dem syntaktischen Drumherum sip:&#039;&#039;nebenstelle&#039;&#039;\@fritz.box zusammen. Achtet bitte auf den &amp;quot;\&amp;quot; vor dem &amp;quot;@&amp;quot;, damit regex nicht mosert.&lt;br /&gt;
&lt;br /&gt;
HM_4A4047_Mp3 ist übrigens mein mobiler MP3-Tür-/Funkgong der zur Unterstützung einen Gong abspielt.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
=== Fehler bei der Registrierung an der Fritzbox ===&lt;br /&gt;
&#039;&#039;&#039;Fritzbox&#039;&#039;&#039;&lt;br /&gt;
* Ist das Device für den SIP-Client in der Fritzbox unter Telefonie &amp;gt; Telefoniegräte gelistet? &lt;br /&gt;
* Geräteeinstellungen ändern: Ist für das Device unter &#039;Anmeldedaten&#039; die Durchwahl als Benutzername angegeben?&lt;br /&gt;
* Ist der in dieser Ansicht angegebene &#039;Registrar&#039; mit der im Attribut sip_registrar identisch? Im Zweifelsfalle die IP-Adresse statt &#039;fritz.box&#039; verwenden.&lt;br /&gt;
* FitzOS ab 6.80: Wurde nach Definition des Gerätes an einem anderen bekannten Gerät der Bestätigungscode eingegeben?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FHEM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wurde das Passwort mittels set &amp;lt;mydevice&amp;gt; password &amp;lt;meinpasswort&amp;gt; gesetzt?&lt;br /&gt;
&lt;br /&gt;
Attribute des Devices prüfen:&lt;br /&gt;
* Ist unter sip_from &amp;lt;nowiki&amp;gt;&#039;sip:620@fritz.box&#039;&amp;lt;/nowiki&amp;gt; die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_user die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_registrar die IP-Adresser der Fritzbox eingetragen?&lt;br /&gt;
* Ist unter sip_ip die IP-Adresse des FHEM-Servers eingetragen (z.B. 192.168.178.47 angeben, keine Adresse aus dem 127er-Segment)?&lt;br /&gt;
&lt;br /&gt;
=== Erzeugung eines passenden Audiofiles ===&lt;br /&gt;
&lt;br /&gt;
Eine Alternative zu sox ist ffmpeg. Damit kann direkt von mp3 ins Zielformat konvertiert werden:&lt;br /&gt;
&lt;br /&gt;
ffmpeg -i meinfile.mp3 -f alaw -ar 8000 meinfile.alaw&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=40219|LinkText=Forenthread}} alter Forum-Thread zu FB_SIP.pm und SIP.pm&lt;br /&gt;
* {{Link2Forum|Topic=67443|LinkText=Forenthread}} Forum-Thread zu diesem Modul SIP&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hilfsmodul]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20740</id>
		<title>SIP-Client</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20740"/>
		<updated>2017-03-15T14:12:51Z</updated>

		<summary type="html">&lt;p&gt;Wzut: Ansagee geändert auf Ansage , defaultwert 10 in 30 geändert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=SIP-Client für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=SIP&lt;br /&gt;
|ModForumArea=Sonstiges&lt;br /&gt;
|ModTechName=96_SIP.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;SIP&#039;&#039;&#039; ermöglicht die Entgegennahme (DTMF-Töne interpretieren, kontrollierte Annahme) sowie die Durchführung (Audiofile abspielen, DTMF-Töne senden, Textansage) von Anrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
Für den Remote-Zugang muss das Modul Net::SIP installiert sein; auf einem Raspberry Pi oder unter Ubuntu z.&amp;amp;nbsp;B. mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cpanm install Net::SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder auch&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libnet-sip-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Falls Ihr Text2Speech verwenden wollt ====&lt;br /&gt;
&lt;br /&gt;
Vorbereitung&lt;br /&gt;
* SoX installieren &lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install sox &amp;lt;/code&amp;gt;&lt;br /&gt;
* mp3 Unterstützung für SoX installieren&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libsox-fmt-mp3&amp;lt;/code&amp;gt;&lt;br /&gt;
* Text2Speech als Server Device anlegen &lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name z.B myT2S&amp;gt; text2speech none&amp;lt;/code&amp;gt;&lt;br /&gt;
* beim SIP Device dieses Server Device im Attribut T2S_Device eintragen&lt;br /&gt;
&lt;br /&gt;
=== SIP-Server ===&lt;br /&gt;
Der SIP-Client muss sich an einem SIP-Server anmelden (Fritzbox, Asterisk, VoIP-Provider). &lt;br /&gt;
Auf dem SIP-Server, mit dem sich der Client verbinden soll, muss ein User-Account vorhanden sein bzw. angelegt werden. &lt;br /&gt;
In der Fritzbox muss z.B. ein neues Telefoniegerät vom Typ LAN/WLAN angelegt und ein Passwort vergeben werden. Das erzeugt ein neues internes Device im internen Rufnummernbereich **62x, typischerweise die 620. Es sollte kontrolliert werden, ob bei den Anmeldeinformationen der Benutzername der Nebenstelle entspricht (z.B. 620) und ein Passwort eingetragen ist.&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Die verwendete Library Net::SIP fordert mehr Ressourcen als RaspberryPi, BananaPi &amp;amp; Co hergeben. Bitte testet, ob Eure Hardware Audofiles sauber abspielen sowie sicher DTMF-Töne empfangen kann und für Euren Einsatzzweck geeignet ist.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;96_SIP.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist der SIP-Client als Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden. Ebenso ist das Passwort mittels set-Command zu speichern.&lt;br /&gt;
&lt;br /&gt;
=== Mögliche Fehlermeldungen ===&lt;br /&gt;
Sollte schon bei &amp;lt;code&amp;gt;define mySIP SIP&amp;lt;/code&amp;gt; die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte &#039;update all&#039; durchführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Basics &amp;amp; Allgemeines&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;sip_from&#039;&#039;&#039;&lt;br /&gt;
: Meine SIP-Client-Info. Default ist &amp;lt;nowiki&amp;gt;sip:620@fritz.box&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sip_ip&#039;&#039;&#039;&lt;br /&gt;
: Die IP-Addresse meines FHEM-Servers.&lt;br /&gt;
* &#039;&#039;&#039;sip_port&#039;&#039;&#039;&lt;br /&gt;
: Port der für den SIP-Client genutzt wird. Default ist 5060 und wird automatisch um 10 erhöht wenn der Port nicht frei ist.&lt;br /&gt;
* &#039;&#039;&#039;sip_registrar&#039;&#039;&#039;&lt;br /&gt;
: Hostname oder IP-Addresse des SIP-Servers mit dem sich der Client verbindet. Default ist fritz.box.&lt;br /&gt;
* &#039;&#039;&#039;sip_user&#039;&#039;&#039;&lt;br /&gt;
: User Name des SIP-Clients. Default ist 620. Anmerkung: Passwort wird über &amp;quot;set &amp;lt;device&amp;gt; password &#039;&#039;mypassword&#039;&#039;&amp;quot; gesetzt.&lt;br /&gt;
* &#039;&#039;&#039;sip_listen&#039;&#039;&#039;&lt;br /&gt;
: Das Attribut bietet folgende Optionen&lt;br /&gt;
: - &#039;&#039;&#039;none&#039;&#039;&#039;: keine Aktion (&#039;listen&#039; kann auch nicht manuell gestartet werden)&lt;br /&gt;
: - &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen und wartet auf DTMF-Anrufer (listen_for_dtmf). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
: - &#039;&#039;&#039;wfp&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen wait-fetch-play (listen_for_wfp). Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
* &#039;&#039;&#039;sip_waittime&#039;&#039;&#039;&lt;br /&gt;
: Maximale Wartezeit bei listen_for_wfp bis das Gespräch automatisch angenommen wird.&lt;br /&gt;
* &#039;&#039;&#039;sip_ringtime&#039;&#039;&#039;&lt;br /&gt;
: listen: legt fest wie lange das Modul warten soll bis es den Anruf annimmt. Defaultwert ist 2, das entspricht ca. 1x Klingeln.&lt;br /&gt;
: call:  sip_ringtime wird nicht mehr verwendet. Wird keine Maximale Zeit angegeben so wird der Default Wert von 30 Sekunden verwendet.&lt;br /&gt;
&lt;br /&gt;
* Anmerkung zum &#039;&#039;&#039;Audioformat&#039;&#039;&#039;&lt;br /&gt;
: Audiofiles müssen im alaw- oder ulaw-Format vorliegen und können mit folgendem Command erzeugt werden&lt;br /&gt;
: &#039;&#039;&#039;sox &amp;lt;file&amp;gt;.wav -t raw -r 8000 -c 1 -e a-law &amp;lt;file&amp;gt;.alaw&#039;&#039;&#039;&lt;br /&gt;
: da nur diese raw audio format unterstützt wird. Unterstützte/erkannte Endungen sind .alaw und .ulaw. Bitte darauf achten, dass das audiofile und der Pfad dort hin passende Permissions hat, damit FHEM das File auch lesen darf.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DTMF empfangen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_loop&#039;&#039;&#039;&lt;br /&gt;
: legt für den listen_for_dtmf-Modus fest wie oft ein DTMF Code eingeben werden soll ( once oder loop, default ist once ). &lt;br /&gt;
: Bei &#039;once&#039; erwartet der SIP-Cleint die Eingabe eines Codes in der angegebenen Länge und beendet den Anruf. &lt;br /&gt;
: Bei &#039;loop&#039; startet eine Endlosschleife aus Ansage-&amp;gt;Code-Erfassung-&amp;gt;Quittung-&amp;gt;Loop bis der Anrufer irgendwann auflegt.&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_size&#039;&#039;&#039;&lt;br /&gt;
: Die Anzahl der erwarteten DTMF-Töne im listen_for_dtmf-Modus (1 bis 4)&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_dtmf&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_for_dtmf-Modus vorgespielt wird und ihn auffordert einen Code einzugeben. Ist kein File angegeben hört man ein Geräusch.&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_ok&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem Anrufer im listen_for_dtmf-Modus als Quittungston vorgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Auf anruf warten und annehmen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_wfp&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das nach dem Command &#039;&#039;&#039;fetch&#039;&#039;&#039; abgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und DTMF senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_dtmf_send&#039;&#039;&#039;&lt;br /&gt;
: Bestimmt die Übertragungsart der angegebenen DTMF-Töne und bietet folgende Möglichkeiten:&lt;br /&gt;
: &#039;audio&#039;: Es werden Audiotöne übermittelt&lt;br /&gt;
: &#039;rfc2833&#039;: Es erfolgt eine Übertragung nach RFC2833 (für das menschliche Ohr weniger ansprechend)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas senden&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile_call&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das dem angerufenen bei &#039;&#039;&#039;call&#039;&#039;&#039; vorgespielt wird. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Anrufen und etwas sagen&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;T2S_Device&#039;&#039;&#039;&lt;br /&gt;
: Name Eures in FHEM eingerichteten Text2Speech-Devices &lt;br /&gt;
* &#039;&#039;&#039;T2S_Timeout&#039;&#039;&#039;&lt;br /&gt;
: Timeout für die Text2Speech-Konvertierung (könnte ja sein, dass der TTS-Service im Internet überlastet ist)&lt;br /&gt;
* &#039;&#039;&#039;audio_converter&#039;&#039;&#039;&lt;br /&gt;
: Der für die Konvertierung zu verwendende (und vorab installierte) Audiokonverter. Auswahl: sox oder ffmpeg&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;password&#039;&#039;&#039;&lt;br /&gt;
: Passwort für den User sip_user hinterlegen.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;reset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Stoppt laufende listen-Prozess und initalisiert das Device.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;call &amp;lt;nummer&amp;gt; [&amp;lt;ringtime&amp;gt;] [&amp;lt;nachricht&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
: Startet einen Anruf an die angegebene Nummer.&lt;br /&gt;
: Optional kann die ringtime angegeben werden. Wird keine angegeben zieht das Attribut sip_ringtime. Default ist 10.&lt;br /&gt;
: Optional kann eine Nachricht &lt;br /&gt;
: * in Form eines Audiofiles angegeben werden. Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben. Bitte darauf achten, dass das audiofile und der Pfad dort hin passende Permissions hat, damit FHEM das File auch lesen darf. Die ringtime ist in dem Fall nicht optional sondern anzugeben.&lt;br /&gt;
: * als DTMF-Sequenz angegeben werden. Diese mit einem Prefix &#039;-&#039; versehen werden, also z.B. &#039;&#039;&#039;-&#039;&#039;&#039;#47.&lt;br /&gt;
: * als Text angegeben werden. Dieser mit einem Prefix &#039;!&#039; versehen werden, also z.B. &#039;&#039;&#039;!&#039;&#039;&#039;Hier spricht dein FHEM.&lt;br /&gt;
: Bitte hierfür unter &#039;Voraussetzungen&#039; den Hinweis auf TTS beachten.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;listen&#039;&#039;&#039;&lt;br /&gt;
: Manueller Start des listen-Prozesses. Setzt voraus, dass die Variable sip_listen auf dtmf oder wfp gesetzt ist:&lt;br /&gt;
: &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er automatisch Anrufe annimmt. Bei einem Anruf wird im Reading &#039;caller&#039; die Nummer bzw. Id des Anrufers angezeigt. Dem Anrufer wird der eigene Ton als Echo zurückgespielt. Über die Eingabe von &#039;&#039;&#039;#&#039;&#039;&#039; gefolgt von 2 Zahlen und anschließendem Auflegen kann eine Zahl an das Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; übergeben werden. Voraussetzung: Das anrufende Telefon ist auf Tonwahl gestellt (DTMF).&lt;br /&gt;
: &#039;&#039;&#039;wfp&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet (wfp steht für wait-fetch-play). Erfolgt ein Anruf an den Client, wechselt das Reading &#039;caller_state&#039; zu &#039;ringing&#039;, im Reading &#039;caller&#039; wird die Nummer bzw. Id des Anrufers angezeigt. Nun kann das Gespräch via set-Command &#039;fetch&#039; angenommen werden. Das als sip_audiofile angegebene File wird abgespielt. Anschließend wechselt der Status wieder zu listen_for_wfp.&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;call&#039;&#039;&#039;: Die Rufnummer des ausgehenden Anrufs. &lt;br /&gt;
* &#039;&#039;&#039;call_state&#039;&#039;&#039;: Status für ausgehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;caller&#039;&#039;&#039;: Die Rufnummer bzw. Info des aktuellen Anrufers. &lt;br /&gt;
* &#039;&#039;&#039;caller_state&#039;&#039;&#039;: Status für eingehende Anrufe. &lt;br /&gt;
* &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Die via Tonwahl (DTMF) eingegebenen Zahlen.&lt;br /&gt;
* &#039;&#039;&#039;state&#039;&#039;&#039;: Der Status des Devices.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und Sound abspielen ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; [&amp;lt;dauer&amp;gt;] [&amp;lt;audiofile&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Default-Dauer beträgt 30 Sekunden.&lt;br /&gt;
* Wird kein Audiofile angegeben, wird nur die Verbindung hergestellt und nach der Anrufdauer wieder unterbrochen.&lt;br /&gt;
* Anmerkung: Das Audiofile muss das Format PCM/8000 haben.&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, das Audiofile wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und DTMF-Töne senden ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; &amp;lt;dauer&amp;gt; &amp;lt;-tastenkombination&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Tastenkombination muss mit einem Minus (-) nach der Zielnummer folgen, also z.B. **1 -#23&lt;br /&gt;
* Der Angerufene nimmt das Gespräch entgegen, die Tonfolge wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und DTMF-Töne empfangen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;dtmf&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird von einem DTMF-fähigen Telefon aus angerufen.&lt;br /&gt;
* Wenn der SIP-Client das Gespräch angenommen hat, betätigt man &#039;&#039;&#039;#&#039;&#039;&#039;, gefolgt von zwei Ziffern und legt dann wieder auf. Wichtig: Es müssen immer genau 3 Tasten betätigt werden (# und nm), damit das Reading dtmf gefüllt wird. n und m müssen zwei verschiedene Zahlen sein (0-9) oder ein Stern.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; ist diese zweistellige Zahl zu sehen und kann ggf. mit einem notify ausgewertet werden.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und kontrolliert annehmen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;wfp&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird angerufen.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;caller&#039;&#039;&#039; ist die Nummer bzw. die Info des Callers zu sehen, im &#039;&#039;&#039;caller_state&#039;&#039;&#039; erscheint &#039;ringing&#039;.&lt;br /&gt;
* Soll der Anruf angenommen werden setze ich den Status des Devices mittels set auf &#039;&#039;&#039;fetch&#039;&#039;&#039;:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Der SIP-Client legt auf und geht wieder in den Status &#039;&#039;&#039;listen_for_wfp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Fritzbox + Doorline - Telefonklingeln beenden ===&lt;br /&gt;
Szenario: Als Türklingel ist eine Doorline im Einsatz die auf Direktannahme eingestellt ist. Klingelt jemand an der Tür, erfolgt ein &#039;Anruf&#039; an die in der Rufgruppe definierten Telefone. Man kann den Anruf entgegennehmen, um zu hören wer an der Tür ist, bevor man die Tür öffnet. Geht man direkt zur Tür, klingeln die Telefone insgesamt 30 Sekunden lang bis sie verstummen. Hat man die Haustür mit einem Türkontakt versehen, hilft folgender Ansatz:&lt;br /&gt;
* Der SIP-Client wird in der Fritzbox in die Rufgruppe der Türklingel aufgenommen.&lt;br /&gt;
* Das Attribut &#039;sip_listen&#039; wird auf &#039;wfp&#039; gesetzt.&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus &#039;wait-fetch-play&#039; versetzt (Die sip_waittime sollte größer als die Klingeldauer der Doorline sein).&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klingelt jemand an der Tür, wird unter anderem die Nebenstelle des SIP-Clients angerufen.&lt;br /&gt;
* Über ein DOIF greift man die Kombination SIP-Client caller_state &#039;ringing&#039; und Haustürkontakt closed-&amp;gt;open ab und&lt;br /&gt;
* setzt  den Status des Devices mittels set auf fetch:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Die Telefone verstummen.&lt;br /&gt;
&lt;br /&gt;
In FHEM sieht das dann z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
Es gibt ein Device &#039;&#039;&#039;HaustuerStatus&#039;&#039;&#039; das den Status des Türkontaktes abbildet: &amp;quot;closed&amp;quot; oder &amp;quot;open&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Es wird ein Dummy-Device &#039;&#039;&#039;HaustuerStatusVar&#039;&#039;&#039; für die Status des Automaten angelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define HaustuerStatusVar dummy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und ein DOIF &#039;&#039;&#039;TuerklingelAus&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define TuerklingelAus DOIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([FhemSipClient:caller_state] eq &amp;quot;ringing&amp;quot;) and ([FhemSipClient:caller] eq &amp;quot;Klingel sip:**12\@fritz.box&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar ringing;; set HM_4A4047_Mp3 playTone 001 1 10) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;open&amp;quot;) and ([HaustuerStatusVar:state] eq &amp;quot;ringing&amp;quot;)) &lt;br /&gt;
(set FhemSipClient fetch;; set HaustuerStatusVar on) &lt;br /&gt;
DOELSEIF &lt;br /&gt;
(([HaustuerStatus:state] eq &amp;quot;closed&amp;quot;) and ([HaustuerStatusVar:state] ne &amp;quot;off&amp;quot;)) &lt;br /&gt;
(set HaustuerStatusVar off)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Caller &amp;quot;Klingel sip:**12\@fritz.box&amp;quot; setzt sich aus dem in der Fritzbox vergebenen Namen, der Nebenstelle (**12 ist eine Doorline mit einem Taster, bei zweien gilt es **11 und **12 zu beachten) sowie dem syntaktischen Drumherum sip:&#039;&#039;nebenstelle&#039;&#039;\@fritz.box zusammen. Achtet bitte auf den &amp;quot;\&amp;quot; vor dem &amp;quot;@&amp;quot;, damit regex nicht mosert.&lt;br /&gt;
&lt;br /&gt;
HM_4A4047_Mp3 ist übrigens mein mobiler MP3-Tür-/Funkgong der zur Unterstützung einen Gong abspielt.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
=== Fehler bei der Registrierung an der Fritzbox ===&lt;br /&gt;
&#039;&#039;&#039;Fritzbox&#039;&#039;&#039;&lt;br /&gt;
* Ist das Device für den SIP-Client in der Fritzbox unter Telefonie &amp;gt; Telefoniegräte gelistet? &lt;br /&gt;
* Geräteeinstellungen ändern: Ist für das Device unter &#039;Anmeldedaten&#039; die Durchwahl als Benutzername angegeben?&lt;br /&gt;
* Ist der in dieser Ansicht angegebene &#039;Registrar&#039; mit der im Attribut sip_registrar identisch? Im Zweifelsfalle die IP-Adresse statt &#039;fritz.box&#039; verwenden.&lt;br /&gt;
* FitzOS ab 6.80: Wurde nach Definition des Gerätes an einem anderen bekannten Gerät der Bestätigungscode eingegeben?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FHEM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wurde das Passwort mittels set &amp;lt;mydevice&amp;gt; password &amp;lt;meinpasswort&amp;gt; gesetzt?&lt;br /&gt;
&lt;br /&gt;
Attribute des Devices prüfen:&lt;br /&gt;
* Ist unter sip_from &amp;lt;nowiki&amp;gt;&#039;sip:620@fritz.box&#039;&amp;lt;/nowiki&amp;gt; die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_user die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_registrar die IP-Adresser der Fritzbox eingetragen?&lt;br /&gt;
* Ist unter sip_ip die IP-Adresse des FHEM-Servers eingetragen (z.B. 192.168.178.47 angeben, keine Adresse aus dem 127er-Segment)?&lt;br /&gt;
&lt;br /&gt;
=== Erzeugung eines passenden Audiofiles ===&lt;br /&gt;
&lt;br /&gt;
Eine Alternative zu sox ist ffmpeg. Damit kann direkt von mp3 ins Zielformat konvertiert werden:&lt;br /&gt;
&lt;br /&gt;
ffmpeg -i meinfile.mp3 -f alaw -ar 8000 meinfile.alaw&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=40219|LinkText=Forenthread}} alter Forum-Thread zu FB_SIP.pm und SIP.pm&lt;br /&gt;
* {{Link2Forum|Topic=67443|LinkText=Forenthread}} Forum-Thread zu diesem Modul SIP&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hilfsmodul]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20140</id>
		<title>SIP-Client</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20140"/>
		<updated>2017-02-21T06:58:15Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=SIP-Client für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=SIP&lt;br /&gt;
|ModForumArea=Sonstiges&lt;br /&gt;
|ModTechName=96_SIP.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;SIP&#039;&#039;&#039; ermöglicht die Entgegennahme (DTMF-Töne interpretieren, kontrollierte Annahme) sowie die Durchführung (Audiofile abspielen, DTMF-Töne senden) von Anrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
Für den Remote-Zugang muss das Modul Net::SIP installiert sein; auf einem Raspberry Pi oder unter Ubuntu z.&amp;amp;nbsp;B. mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cpanm install Net::SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder auch&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libnet-sip-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SIP-Server ===&lt;br /&gt;
Der SIP-Client muss sich an einem SIP-Server anmelden (Fritzbox, Asterisk, VoIP-Provider). &lt;br /&gt;
Auf dem SIP-Server, mit dem sich der Client konnektieren soll, muss ein User-Account vorhanden sein bzw. angelegt werden. &lt;br /&gt;
In der Fritzbox muss z.B. ein neues Telefoniegerät vom Typ LAN/WLAN angelegt und ein Passwort vergeben werden. Das erzeugt ein neues internes Device im Bereich **62x, typischerweise die 620. Es sollte kontrolliert werden, ob bei den Anmeldeinformationen der Benutzername der Nebenstelle entspricht (z.B. 620) und ein Passwort eingetragen ist.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;96_SIP.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist der SIP-Client als Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
=== mögliche Fehlermeldungen ===&lt;br /&gt;
Sollte schon bei &amp;lt;code&amp;gt;define mySIP SIP&amp;lt;/code&amp;gt; die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte &#039;update all&#039; durchführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das nach dem Command &#039;&#039;&#039;fetch&#039;&#039;&#039; abgespielt wird. Das Audiofile muss mit folgendem Command erzeugt werden&lt;br /&gt;
: &#039;&#039;&#039;sox &amp;lt;file&amp;gt;.wav -t raw -r 8000 -c 1 -e a-law &amp;lt;file&amp;gt;.alaw&#039;&#039;&#039;&lt;br /&gt;
: da nur das raw audio format unterstützt wird.&lt;br /&gt;
* &#039;&#039;&#039;sip_listen&#039;&#039;&#039;&lt;br /&gt;
: Das Attribut bietet folgende Optionen&lt;br /&gt;
: - &#039;&#039;&#039;none&#039;&#039;&#039;: keine Aktion (&#039;listen&#039; kann auch nicht manuell gestartet werden)&lt;br /&gt;
: - &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen und wartet auf DTMF-Anrufer. Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
: - &#039;&#039;&#039;wfp&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen wait-fetch-play. Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
* &#039;&#039;&#039;sip_from&#039;&#039;&#039;&lt;br /&gt;
: Meine SIP-Client-Info. Default ist &amp;lt;nowiki&amp;gt;sip:620@fritz.box&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sip_ip&#039;&#039;&#039;&lt;br /&gt;
: Die IP-Addresse meines FHEM-Servers.&lt;br /&gt;
* &#039;&#039;&#039;sip_port&#039;&#039;&#039;&lt;br /&gt;
: Port der für den SIP-Client genutzt wird. Default ist 5060 und wird automatisch um 10 erhöht wenn der Port nicht frei ist.&lt;br /&gt;
* &#039;&#039;&#039;sip_registrar&#039;&#039;&#039;&lt;br /&gt;
: Hostname oder IP-Addresse des SIP-Servers mit dem sich der Client verbindet. Default ist fritz.box.&lt;br /&gt;
* &#039;&#039;&#039;sip_ringtime&#039;&#039;&#039;&lt;br /&gt;
: Klingelzeit für ausgehende Anrufe.&lt;br /&gt;
* &#039;&#039;&#039;sip_user&#039;&#039;&#039;&lt;br /&gt;
: User Name des SIP-Clients. Default ist 620.&lt;br /&gt;
* &#039;&#039;&#039;sip_waits&#039;&#039;&#039;&lt;br /&gt;
: Interne Wartezeit in Sekunden bevor nach nicht erfolgreichem listen ein erneuter Versuch gestartet wird. &lt;br /&gt;
* &#039;&#039;&#039;sip_waittime&#039;&#039;&#039;&lt;br /&gt;
: Maximale Wartezeit des Commands listenwfp bis das Gespräch automatisch angenommen wird.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;reset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Stoppt laufende listen-Prozess und initalisiert das Device.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;call &amp;lt;nummer&amp;gt; [&amp;lt;ringtime&amp;gt;] [&amp;lt;nachricht&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
: Startet einen Anruf an die angegebene Nummer.&lt;br /&gt;
: Optional kann die ringtime angegeben werden. Wird keine angegeben zieht das Attribut sip_ringtime. Default ist 10.&lt;br /&gt;
: Optional kann eine Nachricht in Form eines Audiofiles angegeben werden. Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;listen&#039;&#039;&#039;&lt;br /&gt;
: Manueller Start des listen-Prozesses. Setzt voraus, dass die Variable sip_listen auf dtmf oder wfp gesetzt ist:&lt;br /&gt;
: &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er automatisch Anrufe annimmt oder . Dem Anrufer wird  der Ton wird als Echo zurückgespielt. Über die Eingabe von &#039;&#039;&#039;#&#039;&#039;&#039; gefolgt von 2 Zahlen und anschließendem Auflegen kann eine Zahl in das Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; übergeben werden. Voraussetzung: Das anrufende Telefon ist auf Tonwahl gestellt (DTMF).&lt;br /&gt;
: &#039;&#039;&#039;wfp&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet (wfp steht für wait-fetch-play). Erfolgt an Anruf an den Client, wechselt der Status zu ringing. Nun kann das Gespräch via set-Command fetch angenommen werden. Das als sip_audiofile angegebene File wird abgespielt. Anschließend wechselt der Status wieder zu listenwfp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;caller&#039;&#039;&#039;: Die Rufnummer bzw. Info des aktuellen Anrufers. Default-Wert ist &#039;-&#039;.&lt;br /&gt;
* &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Die via Tonwahl (DTMF) eingegebenen Zahlen.&lt;br /&gt;
* &#039;&#039;&#039;state&#039;&#039;&#039;: Der Status des Devices.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und Sound abspielen ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; [&amp;lt;dauer&amp;gt;] [&amp;lt;audiofile&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Default-Dauer beträgt 10 Sekunden.&lt;br /&gt;
* Wird kein Audiofile angegeben, wird nur die Verbindung hergestellt und nach der Anrufdauer wieder unterbrochen.&lt;br /&gt;
* Anmerkung: Das Audiofile muss das Format PCM/8000 haben.&lt;br /&gt;
* Der angerufene nimmt das Gespräch entgegen, das Audiofile wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und DTMF-Töne senden ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; &amp;lt;dauer&amp;gt; &amp;lt;-tastenkombination&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Tastenkombination muss mit einem Minus(-) nach der Zielnummer folgen, also z.B. **1 -#23&lt;br /&gt;
* Der angerufene nimmt das Gespräch entgegen, die Tonfolge wird abgespielt&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und DTMF-Töne empfangen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;dtmf&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird von einem DTMF-fähigen Telefon aus angerufen.&lt;br /&gt;
* Wenn der SIP-Client das Gespräch angenommen hat betätigt man &#039;&#039;&#039;#&#039;&#039;&#039;, gefolgt von zwei Ziffern und legt dann wieder auf.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; ist die zweistellige Zahl zu sehen.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und kontrolliert annehmen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;wfp&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird angerufen.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;caller&#039;&#039;&#039; ist die Nummer bzw. die Info des Callers zu sehen.&lt;br /&gt;
* Soll der Anruf angenommen werden setze ich den Status des Devices mittels set auf &#039;&#039;&#039;fetch&#039;&#039;&#039;:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Der SIP-Client legt auf und geht wieder in den Status &#039;&#039;&#039;listen_for_wfp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Fritzbox + Doorline - Telefonklingeln beenden ===&lt;br /&gt;
Szenario: Als Türklingel ist eine Doorline im Einsatz die auf Direktannahme eingestellt ist. Klingelt jemand an der Tür, erfolgt ein &#039;Anruf&#039; an die in der Rufgruppe definierten Telefone. Man kann den Anruf entgegennehmen, um zu hören wer an der Tür ist, bevor man die Tür öffnet. Geht man direkt zur Tür, klingeln die Telefone insgesamt 30 Sekunden lang bis sie verstummen. Hat man die Haustür mit einem Türkontakt versehen, hilft folgender Ansatz:&lt;br /&gt;
* Der SIP-Client wird in der Fritzbox in die Rufgruppe der Türklingel aufgenommen.&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus &#039;wait-fetch-play&#039; versetzt (Die sip_waittime sollte größer als die Klingeldauer der Doorline sein).&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listenwfp&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klingelt jemand an der Tür, wird unter anderem die Nebenstelle des SIP-Clients angerufen.&lt;br /&gt;
* Über ein DOIF greift man die Kombination SIP-Client-Status &#039;ringing&#039; und Haustürkontakt closed-&amp;gt;open ab und&lt;br /&gt;
* setzt  den Status des Devices mittels set auf fetch:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Die Telefone verstummen.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
=== Fehler bei der Registrierung an der Fritzbox ===&lt;br /&gt;
&#039;&#039;&#039;Fritzbox&#039;&#039;&#039;&lt;br /&gt;
* Ist das Device für den SIP-Client in der Fritzbox unter Telefonie &amp;gt; Telefoniegräte gelistet? &lt;br /&gt;
* Geräteeinstellungen ändern: Ist für das Device unter &#039;Anmeldedaten&#039; die Durchwahl als Benutzername angegeben?&lt;br /&gt;
* Ist der in dieser Ansicht angegebene &#039;Registrar&#039; mit der im Attribut sip_registrar identisch? Im Zweifelsfalle die IP-Adresse statt &#039;fritz.box&#039; verwenden.&lt;br /&gt;
* FitzOS ab 6.80: Wurde nach Definition des Gerätes an einem anderen bekannten Gerät der Bestätigungscode eingegeben?&lt;br /&gt;
&#039;&#039;&#039;FHEM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Attribute des Devices prüfen:&lt;br /&gt;
* Ist unter sip_from &amp;lt;nowiki&amp;gt;&#039;sip:620@fritz.box&#039;&amp;lt;/nowiki&amp;gt; mit der von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_user die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_password das in der Fritzbox hinterlegte Passwort eingetragen?&lt;br /&gt;
* Ist unter sip_registrar die IP-Adresser der Fritzbox eingetragen?&lt;br /&gt;
* Ist unter sip_ip die IP-Adresse des FHEM-Servers eingetragen (z.B. 192.168.178.47 angeben, keine Adresse aus dem 127er-Segment)?&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=40219|LinkText=Forenthread}} alter Forum-Thread zu FB_SIP.pm und SIP.pm&lt;br /&gt;
* {{Link2Forum|Topic=67443|LinkText=Forenthread}} Forum-Thread zu diesem Modul SIP&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hilfsmodul]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20139</id>
		<title>SIP-Client</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20139"/>
		<updated>2017-02-21T06:56:49Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=SIP-Client für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=SIP&lt;br /&gt;
|ModForumArea=Sonstiges&lt;br /&gt;
|ModTechName=96_SIP.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;SIP&#039;&#039;&#039; ermöglicht die Entgegennahme (DTMF-Töne interpretieren, kontrollierte Annahme) sowie die Durchführung (Audiofile abspielen, DTMF-Töne senden) von Anrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
Für den Remote-Zugang muss das Modul Net::SIP installiert sein; auf einem Raspberry Pi oder unter Ubuntu z.&amp;amp;nbsp;B. mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cpanm install Net::SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder auch&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libnet-sip-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SIP-Server ===&lt;br /&gt;
Der SIP-Client muss sich an einem SIP-Server anmelden (Fritzbox, Asterisk, VoIP-Provider). &lt;br /&gt;
Auf dem SIP-Server, mit dem sich der Client konnektieren soll, muss ein User-Account vorhanden sein bzw. angelegt werden. &lt;br /&gt;
In der Fritzbox muss z.B. ein neues Telefoniegerät vom Typ LAN/WLAN angelegt und ein Passwort vergeben werden. Das erzeugt ein neues internes Device im Bereich **62x, typischerweise die 620. Es sollte kontrolliert werden, ob bei den Anmeldeinformationen der Benutzername der Nebenstelle entspricht (z.B. 620) und ein Passwort eingetragen ist.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;96_SIP.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist der SIP-Client als Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
=== mögliche Fehlermeldungen ===&lt;br /&gt;
Sollte schon bei &amp;lt;code&amp;gt;define mySIP SIP&amp;lt;/code&amp;gt; die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte &#039;update all&#039; durchführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das nach dem Command &#039;&#039;&#039;fetch&#039;&#039;&#039; abgespielt wird. Das Audiofile muss mit folgendem Command erzeugt werden&lt;br /&gt;
: &#039;&#039;&#039;sox &amp;lt;file&amp;gt;.wav -t raw -r 8000 -c 1 -e a-law &amp;lt;file&amp;gt;.alaw&#039;&#039;&#039;&lt;br /&gt;
: da nur das raw audio format unterstützt wird.&lt;br /&gt;
* &#039;&#039;&#039;sip_listen&#039;&#039;&#039;&lt;br /&gt;
: Das Attribut bietet folgende Optionen&lt;br /&gt;
: - &#039;&#039;&#039;none&#039;&#039;&#039;: keine Aktion (&#039;listen&#039; kann auch nicht manuell gestartet werden)&lt;br /&gt;
: - &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen und wartet auf DTMF-Anrufer. Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
: - &#039;&#039;&#039;wfp&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen wait-fetch-play. Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
* &#039;&#039;&#039;sip_from&#039;&#039;&#039;&lt;br /&gt;
: Meine SIP-Client-Info. Default ist &amp;lt;nowiki&amp;gt;sip:620@fritz.box&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sip_ip&#039;&#039;&#039;&lt;br /&gt;
: Die IP-Addresse meines FHEM-Servers.&lt;br /&gt;
* &#039;&#039;&#039;sip_port&#039;&#039;&#039;&lt;br /&gt;
: Port der für den SIP-Client genutzt wird. Default ist 5060 und wird automatisch um 10 erhöht wenn der Port nicht frei ist.&lt;br /&gt;
* &#039;&#039;&#039;sip_registrar&#039;&#039;&#039;&lt;br /&gt;
: Hostname oder IP-Addresse des SIP-Servers mit dem sich der Client verbindet. Default ist fritz.box.&lt;br /&gt;
* &#039;&#039;&#039;sip_ringtime&#039;&#039;&#039;&lt;br /&gt;
: Klingelzeit für ausgehende Anrufe.&lt;br /&gt;
* &#039;&#039;&#039;sip_user&#039;&#039;&#039;&lt;br /&gt;
: User Name des SIP-Clients. Default ist 620.&lt;br /&gt;
* &#039;&#039;&#039;sip_waits&#039;&#039;&#039;&lt;br /&gt;
: Interne Wartezeit in Sekunden bevor nach nicht erfolgreichem listen ein erneuter Versuch gestartet wird. &lt;br /&gt;
* &#039;&#039;&#039;sip_waittime&#039;&#039;&#039;&lt;br /&gt;
: Maximale Wartezeit des Commands listenwfp bis das Gespräch automatisch angenommen wird.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;reset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Stoppt laufende listen-Prozess und initalisiert das Device.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;call &amp;lt;nummer&amp;gt; [&amp;lt;ringtime&amp;gt;] [&amp;lt;nachricht&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
: Startet einen Anruf an die angegebene Nummer.&lt;br /&gt;
: Optional kann die ringtime angegeben werden. Wird keine angegeben zieht das Attribut sip_ringtime. Default ist 10.&lt;br /&gt;
: Optional kann eine Nachricht in Form eines Audiofiles angegeben werden. Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;listen&#039;&#039;&#039;&lt;br /&gt;
: Manueller Start des listen-Prozesses. Setzt voraus, dass die Variable sip_listen auf dtmf oder wfp gesetzt ist:&lt;br /&gt;
: &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er automatisch Anrufe annimmt oder . Dem Anrufer wird  der Ton wird als Echo zurückgespielt. Über die Eingabe von &#039;&#039;&#039;#&#039;&#039;&#039; gefolgt von 2 Zahlen und anschließendem Auflegen kann eine Zahl in das Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; übergeben werden. Voraussetzung: Das anrufende Telefon ist auf Tonwahl gestellt (DTMF).&lt;br /&gt;
: &#039;&#039;&#039;wfp&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet (wfp steht für wait-fetch-play). Erfolgt an Anruf an den Client, wechselt der Status zu ringing. Nun kann das Gespräch via set-Command fetch angenommen werden. Das als sip_audiofile angegebene File wird abgespielt. Anschließend wechselt der Status wieder zu listenwfp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;caller&#039;&#039;&#039;: Die Rufnummer bzw. Info des aktuellen Anrufers. Default-Wert ist &#039;-&#039;.&lt;br /&gt;
* &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Die via Tonwahl (DTMF) eingegebenen Zahlen.&lt;br /&gt;
* &#039;&#039;&#039;state&#039;&#039;&#039;: Der Status des Devices.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und Sound abspielen ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; [&amp;lt;dauer&amp;gt;] [&amp;lt;audiofile&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Default-Dauer beträgt 10 Sekunden.&lt;br /&gt;
* Wird kein Audiofile angegeben, wird nur die Verbindung hergestellt und nach der Anrufdauer wieder unterbrochen.&lt;br /&gt;
* Anmerkung: Das Audiofile muss das Format PCM/8000 haben.&lt;br /&gt;
* Der angerufene nimmt das Gespräch entgegen, das Audiofile wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und DTMF-Töne senden ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; &amp;lt;klingelzeit&amp;gt; &amp;lt;-tastenkombination&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Tastenkombination muss mit einem Minus(-) nach der Zielnummer folgen, also z.B. **1 -#23&lt;br /&gt;
* Der angerufene nimmt das Gespräch entgegen, die Tonfolge wird abgespielt&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und DTMF-Töne empfangen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;dtmf&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird von einem DTMF-fähigen Telefon aus angerufen.&lt;br /&gt;
* Wenn der SIP-Client das Gespräch angenommen hat betätigt man &#039;&#039;&#039;#&#039;&#039;&#039;, gefolgt von zwei Ziffern und legt dann wieder auf.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; ist die zweistellige Zahl zu sehen.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und kontrolliert annehmen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;wfp&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird angerufen.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;caller&#039;&#039;&#039; ist die Nummer bzw. die Info des Callers zu sehen.&lt;br /&gt;
* Soll der Anruf angenommen werden setze ich den Status des Devices mittels set auf &#039;&#039;&#039;fetch&#039;&#039;&#039;:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Der SIP-Client legt auf und geht wieder in den Status &#039;&#039;&#039;listen_for_wfp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Fritzbox + Doorline - Telefonklingeln beenden ===&lt;br /&gt;
Szenario: Als Türklingel ist eine Doorline im Einsatz die auf Direktannahme eingestellt ist. Klingelt jemand an der Tür, erfolgt ein &#039;Anruf&#039; an die in der Rufgruppe definierten Telefone. Man kann den Anruf entgegennehmen, um zu hören wer an der Tür ist, bevor man die Tür öffnet. Geht man direkt zur Tür, klingeln die Telefone insgesamt 30 Sekunden lang bis sie verstummen. Hat man die Haustür mit einem Türkontakt versehen, hilft folgender Ansatz:&lt;br /&gt;
* Der SIP-Client wird in der Fritzbox in die Rufgruppe der Türklingel aufgenommen.&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus &#039;wait-fetch-play&#039; versetzt (Die sip_waittime sollte größer als die Klingeldauer der Doorline sein).&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listenwfp&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klingelt jemand an der Tür, wird unter anderem die Nebenstelle des SIP-Clients angerufen.&lt;br /&gt;
* Über ein DOIF greift man die Kombination SIP-Client-Status &#039;ringing&#039; und Haustürkontakt closed-&amp;gt;open ab und&lt;br /&gt;
* setzt  den Status des Devices mittels set auf fetch:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Die Telefone verstummen.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
=== Fehler bei der Registrierung an der Fritzbox ===&lt;br /&gt;
&#039;&#039;&#039;Fritzbox&#039;&#039;&#039;&lt;br /&gt;
* Ist das Device für den SIP-Client in der Fritzbox unter Telefonie &amp;gt; Telefoniegräte gelistet? &lt;br /&gt;
* Geräteeinstellungen ändern: Ist für das Device unter &#039;Anmeldedaten&#039; die Durchwahl als Benutzername angegeben?&lt;br /&gt;
* Ist der in dieser Ansicht angegebene &#039;Registrar&#039; mit der im Attribut sip_registrar identisch? Im Zweifelsfalle die IP-Adresse statt &#039;fritz.box&#039; verwenden.&lt;br /&gt;
* FitzOS ab 6.80: Wurde nach Definition des Gerätes an einem anderen bekannten Gerät der Bestätigungscode eingegeben?&lt;br /&gt;
&#039;&#039;&#039;FHEM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Attribute des Devices prüfen:&lt;br /&gt;
* Ist unter sip_from &amp;lt;nowiki&amp;gt;&#039;sip:620@fritz.box&#039;&amp;lt;/nowiki&amp;gt; mit der von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_user die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_password das in der Fritzbox hinterlegte Passwort eingetragen?&lt;br /&gt;
* Ist unter sip_registrar die IP-Adresser der Fritzbox eingetragen?&lt;br /&gt;
* Ist unter sip_ip die IP-Adresse des FHEM-Servers eingetragen (z.B. 192.168.178.47 angeben, keine Adresse aus dem 127er-Segment)?&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=40219|LinkText=Forenthread}} alter Forum-Thread zu FB_SIP.pm und SIP.pm&lt;br /&gt;
* {{Link2Forum|Topic=67443|LinkText=Forenthread}} Forum-Thread zu diesem Modul SIP&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hilfsmodul]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20138</id>
		<title>SIP-Client</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20138"/>
		<updated>2017-02-21T06:55:44Z</updated>

		<summary type="html">&lt;p&gt;Wzut: DTMF senden angepasst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=SIP-Client für FHEM &lt;br /&gt;
|ModType=h&lt;br /&gt;
|ModCmdRef=SIP&lt;br /&gt;
|ModForumArea=Sonstiges&lt;br /&gt;
|ModTechName=96_SIP.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;SIP&#039;&#039;&#039; ermöglicht die Entgegennahme (DTMF-Töne interpretieren, kontrollierte Annahme) sowie die Durchführung (Audiofile abspielen, DTMF-Töne senden) von Anrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
Für den Remote-Zugang muss das Modul Net::SIP installiert sein; auf einem Raspberry Pi oder unter Ubuntu z.&amp;amp;nbsp;B. mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cpanm install Net::SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder auch&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libnet-sip-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SIP-Server ===&lt;br /&gt;
Der SIP-Client muss sich an einem SIP-Server anmelden (Fritzbox, Asterisk, VoIP-Provider). &lt;br /&gt;
Auf dem SIP-Server, mit dem sich der Client konnektieren soll, muss ein User-Account vorhanden sein bzw. angelegt werden. &lt;br /&gt;
In der Fritzbox muss z.B. ein neues Telefoniegerät vom Typ LAN/WLAN angelegt und ein Passwort vergeben werden. Das erzeugt ein neues internes Device im Bereich **62x, typischerweise die 620. Es sollte kontrolliert werden, ob bei den Anmeldeinformationen der Benutzername der Nebenstelle entspricht (z.B. 620) und ein Passwort eingetragen ist.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;96_SIP.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Nun ist der SIP-Client als Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
=== mögliche Fehlermeldungen ===&lt;br /&gt;
Sollte schon bei &amp;lt;code&amp;gt;define mySIP SIP&amp;lt;/code&amp;gt; die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte &#039;update all&#039; durchführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das nach dem Command &#039;&#039;&#039;fetch&#039;&#039;&#039; abgespielt wird. Das Audiofile muss mit folgendem Command erzeugt werden&lt;br /&gt;
: &#039;&#039;&#039;sox &amp;lt;file&amp;gt;.wav -t raw -r 8000 -c 1 -e a-law &amp;lt;file&amp;gt;.alaw&#039;&#039;&#039;&lt;br /&gt;
: da nur das raw audio format unterstützt wird.&lt;br /&gt;
* &#039;&#039;&#039;sip_listen&#039;&#039;&#039;&lt;br /&gt;
: Das Attribut bietet folgende Optionen&lt;br /&gt;
: - &#039;&#039;&#039;none&#039;&#039;&#039;: keine Aktion (&#039;listen&#039; kann auch nicht manuell gestartet werden)&lt;br /&gt;
: - &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen und wartet auf DTMF-Anrufer. Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
: - &#039;&#039;&#039;wfp&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen wait-fetch-play. Alternativ kann der Prozess manuell via &#039;listen&#039; gestartet werden.&lt;br /&gt;
* &#039;&#039;&#039;sip_from&#039;&#039;&#039;&lt;br /&gt;
: Meine SIP-Client-Info. Default ist &amp;lt;nowiki&amp;gt;sip:620@fritz.box&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sip_ip&#039;&#039;&#039;&lt;br /&gt;
: Die IP-Addresse meines FHEM-Servers.&lt;br /&gt;
* &#039;&#039;&#039;sip_port&#039;&#039;&#039;&lt;br /&gt;
: Port der für den SIP-Client genutzt wird. Default ist 5060 und wird automatisch um 10 erhöht wenn der Port nicht frei ist.&lt;br /&gt;
* &#039;&#039;&#039;sip_registrar&#039;&#039;&#039;&lt;br /&gt;
: Hostname oder IP-Addresse des SIP-Servers mit dem sich der Client verbindet. Default ist fritz.box.&lt;br /&gt;
* &#039;&#039;&#039;sip_ringtime&#039;&#039;&#039;&lt;br /&gt;
: Klingelzeit für ausgehende Anrufe.&lt;br /&gt;
* &#039;&#039;&#039;sip_user&#039;&#039;&#039;&lt;br /&gt;
: User Name des SIP-Clients. Default ist 620.&lt;br /&gt;
* &#039;&#039;&#039;sip_waits&#039;&#039;&#039;&lt;br /&gt;
: Interne Wartezeit in Sekunden bevor nach nicht erfolgreichem listen ein erneuter Versuch gestartet wird. &lt;br /&gt;
* &#039;&#039;&#039;sip_waittime&#039;&#039;&#039;&lt;br /&gt;
: Maximale Wartezeit des Commands listenwfp bis das Gespräch automatisch angenommen wird.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;reset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Stoppt laufende listen-Prozess und initalisiert das Device.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;call &amp;lt;nummer&amp;gt; [&amp;lt;ringtime&amp;gt;] [&amp;lt;nachricht&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
: Startet einen Anruf an die angegebene Nummer.&lt;br /&gt;
: Optional kann die ringtime angegeben werden. Wird keine angegeben zieht das Attribut sip_ringtime. Default ist 10.&lt;br /&gt;
: Optional kann eine Nachricht in Form eines Audiofiles angegeben werden. Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;listen&#039;&#039;&#039;&lt;br /&gt;
: Manueller Start des listen-Prozesses. Setzt voraus, dass die Variable sip_listen auf dtmf oder wfp gesetzt ist:&lt;br /&gt;
: &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er automatisch Anrufe annimmt oder . Dem Anrufer wird  der Ton wird als Echo zurückgespielt. Über die Eingabe von &#039;&#039;&#039;#&#039;&#039;&#039; gefolgt von 2 Zahlen und anschließendem Auflegen kann eine Zahl in das Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; übergeben werden. Voraussetzung: Das anrufende Telefon ist auf Tonwahl gestellt (DTMF).&lt;br /&gt;
: &#039;&#039;&#039;wfp&#039;&#039;&#039;: Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet (wfp steht für wait-fetch-play). Erfolgt an Anruf an den Client, wechselt der Status zu ringing. Nun kann das Gespräch via set-Command fetch angenommen werden. Das als sip_audiofile angegebene File wird abgespielt. Anschließend wechselt der Status wieder zu listenwfp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;caller&#039;&#039;&#039;: Die Rufnummer bzw. Info des aktuellen Anrufers. Default-Wert ist &#039;-&#039;.&lt;br /&gt;
* &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Die via Tonwahl (DTMF) eingegebenen Zahlen.&lt;br /&gt;
* &#039;&#039;&#039;state&#039;&#039;&#039;: Der Status des Devices.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und Sound abspielen ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; [&amp;lt;dauer&amp;gt;] [&amp;lt;audiofile&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Default-Dauer beträgt 10 Sekunden.&lt;br /&gt;
* Wird kein Audiofile angegeben, wird nur die Verbindung hergestellt und nach der Anrufdauer wieder unterbrochen.&lt;br /&gt;
* Anmerkung: Das Audiofile muss das Format PCM/8000 haben.&lt;br /&gt;
* Der angerufene nimmt das Gespräch entgegen, das Audiofile wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und DTMF-Töne senden ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; &amp;lt;klingelzeit&amp;gt; &amp;lt;-tatstenkombination&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Tastenkombination muss mit einem Minus(-) nach der Zielnummer folgen, also z.B. **1 -#23&lt;br /&gt;
* Der angerufene nimmt das Gespräch entgegen, die Tonfolge wird abgespielt&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und DTMF-Töne empfangen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;dtmf&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird von einem DTMF-fähigen Telefon aus angerufen.&lt;br /&gt;
* Wenn der SIP-Client das Gespräch angenommen hat betätigt man &#039;&#039;&#039;#&#039;&#039;&#039;, gefolgt von zwei Ziffern und legt dann wieder auf.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; ist die zweistellige Zahl zu sehen.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und kontrolliert annehmen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: Das Attribut sip_listen auf &#039;&#039;&#039;wfp&#039;&#039;&#039; setzen und&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listen&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird angerufen.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;caller&#039;&#039;&#039; ist die Nummer bzw. die Info des Callers zu sehen.&lt;br /&gt;
* Soll der Anruf angenommen werden setze ich den Status des Devices mittels set auf &#039;&#039;&#039;fetch&#039;&#039;&#039;:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Der SIP-Client legt auf und geht wieder in den Status &#039;&#039;&#039;listen_for_wfp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Fritzbox + Doorline - Telefonklingeln beenden ===&lt;br /&gt;
Szenario: Als Türklingel ist eine Doorline im Einsatz die auf Direktannahme eingestellt ist. Klingelt jemand an der Tür, erfolgt ein &#039;Anruf&#039; an die in der Rufgruppe definierten Telefone. Man kann den Anruf entgegennehmen, um zu hören wer an der Tür ist, bevor man die Tür öffnet. Geht man direkt zur Tür, klingeln die Telefone insgesamt 30 Sekunden lang bis sie verstummen. Hat man die Haustür mit einem Türkontakt versehen, hilft folgender Ansatz:&lt;br /&gt;
* Der SIP-Client wird in der Fritzbox in die Rufgruppe der Türklingel aufgenommen.&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus &#039;wait-fetch-play&#039; versetzt (Die sip_waittime sollte größer als die Klingeldauer der Doorline sein).&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listenwfp&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klingelt jemand an der Tür, wird unter anderem die Nebenstelle des SIP-Clients angerufen.&lt;br /&gt;
* Über ein DOIF greift man die Kombination SIP-Client-Status &#039;ringing&#039; und Haustürkontakt closed-&amp;gt;open ab und&lt;br /&gt;
* setzt  den Status des Devices mittels set auf fetch:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Die Telefone verstummen.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
=== Fehler bei der Registrierung an der Fritzbox ===&lt;br /&gt;
&#039;&#039;&#039;Fritzbox&#039;&#039;&#039;&lt;br /&gt;
* Ist das Device für den SIP-Client in der Fritzbox unter Telefonie &amp;gt; Telefoniegräte gelistet? &lt;br /&gt;
* Geräteeinstellungen ändern: Ist für das Device unter &#039;Anmeldedaten&#039; die Durchwahl als Benutzername angegeben?&lt;br /&gt;
* Ist der in dieser Ansicht angegebene &#039;Registrar&#039; mit der im Attribut sip_registrar identisch? Im Zweifelsfalle die IP-Adresse statt &#039;fritz.box&#039; verwenden.&lt;br /&gt;
* FitzOS ab 6.80: Wurde nach Definition des Gerätes an einem anderen bekannten Gerät der Bestätigungscode eingegeben?&lt;br /&gt;
&#039;&#039;&#039;FHEM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Attribute des Devices prüfen:&lt;br /&gt;
* Ist unter sip_from &amp;lt;nowiki&amp;gt;&#039;sip:620@fritz.box&#039;&amp;lt;/nowiki&amp;gt; mit der von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_user die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_password das in der Fritzbox hinterlegte Passwort eingetragen?&lt;br /&gt;
* Ist unter sip_registrar die IP-Adresser der Fritzbox eingetragen?&lt;br /&gt;
* Ist unter sip_ip die IP-Adresse des FHEM-Servers eingetragen (z.B. 192.168.178.47 angeben, keine Adresse aus dem 127er-Segment)?&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=40219|LinkText=Forenthread}} alter Forum-Thread zu FB_SIP.pm und SIP.pm&lt;br /&gt;
* {{Link2Forum|Topic=67443|LinkText=Forenthread}} Forum-Thread zu diesem Modul SIP&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hilfsmodul]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20102</id>
		<title>SIP-Client</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIP-Client&amp;diff=20102"/>
		<updated>2017-02-19T18:25:45Z</updated>

		<summary type="html">&lt;p&gt;Wzut: Korrektur DTMF&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=SIP-Client für FHEM &lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=Hilfsmodul&lt;br /&gt;
|ModTechName=96_SIP.pm&lt;br /&gt;
|ModOwner=Wzut ({{Link2FU|1172|Forum}} / [[Benutzer Diskussion:Wzut|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul &#039;&#039;&#039;SIP&#039;&#039;&#039; ermöglicht die Entgegennahme (DTMF-Töne interpretieren, kontrollierte Annahme) sowie die Durchführung (Audiofile abspielen, DTMF-Töne senden) von Anrufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== FHEM-Server ===&lt;br /&gt;
Für den Remote-Zugang muss das Modul Net::SIP installiert sein; auf einem Raspberry Pi oder unter Ubuntu z.&amp;amp;nbsp;B. mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cpanm install Net::SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder auch&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libnet-sip-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SIP-Server ===&lt;br /&gt;
Der SIP-Client muss sich an einem SIP-Server anmelden (Fritzbox, Asterisk, VoIP-Provider). &lt;br /&gt;
Auf dem SIP-Server, mit dem sich der Client konnektieren soll, muss ein User-Account vorhanden sein bzw. angelegt werden. &lt;br /&gt;
In der Fritzbox muss z.B. ein neues Telefoniegerät vom Typ LAN/WLAN angelegt und ein Passwort vergeben werden. Das erzeugt ein neues internes Device im Bereich **62x, typischerweise die 620. Es sollte kontrolliert werden, ob bei den Anmeldeinformationen der Benutzername der Nebenstelle entspricht (z.B. 620) und ein Passwort eingetragen ist.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Spätestens nach einem &#039;update all&#039; sollte das Modul &#039;&#039;&#039;96_SIP.pm&#039;&#039;&#039; verfügbar sein.&lt;br /&gt;
&lt;br /&gt;
Danach wird es im FHEM-Webinterface mittels &lt;br /&gt;
:&amp;lt;code&amp;gt;reload 96_SIP.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
geladen.&lt;br /&gt;
&lt;br /&gt;
Nun ist der SIP-Client als Device in FHEM anzulegen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
=== mögliche Fehlermeldungen ===&lt;br /&gt;
Sollte schon bei &amp;lt;code&amp;gt;define mySIP SIP&amp;lt;/code&amp;gt; die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte &#039;update all&#039; durchführen.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; SIP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sollten alle sip_Attribute geprüft und für die eigene Umgebung gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;sip_audiofile&#039;&#039;&#039;&lt;br /&gt;
: Audiofile das nach dem Command &#039;&#039;&#039;fetch&#039;&#039;&#039; abgespielt wird. Das Audiofile muss mit folgendem Command erzeugt werden&lt;br /&gt;
: &#039;&#039;&#039;sox &amp;lt;file&amp;gt;.wav -t raw -r 8000 -c 1 -e a-law &amp;lt;file&amp;gt;.alaw&#039;&#039;&#039;&lt;br /&gt;
: da nur das raw audio format unterstützt wird.&lt;br /&gt;
* &#039;&#039;&#039;sip_listen&#039;&#039;&#039;&lt;br /&gt;
: Das Attribut bietet folgende Optionen&lt;br /&gt;
: - &#039;&#039;&#039;none&#039;&#039;&#039;: keine Aktion&lt;br /&gt;
: - &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen und wartet auf DTMF-Anrufer.&lt;br /&gt;
: - &#039;&#039;&#039;wfp&#039;&#039;&#039;: Beim FHEM-Start geht das Device automatisch in den Status listen wait-fetch-play.&lt;br /&gt;
* &#039;&#039;&#039;sip_from&#039;&#039;&#039;&lt;br /&gt;
: Meine SIP-Client-Info. Default ist sip:620@fritz.box&lt;br /&gt;
* &#039;&#039;&#039;sip_ip&#039;&#039;&#039;&lt;br /&gt;
: Die IP-Addresse meines FHEM-Servers.&lt;br /&gt;
* &#039;&#039;&#039;sip_port&#039;&#039;&#039;&lt;br /&gt;
: Port der für den SIP-Client genutzt wird. Default ist 5060 und wird automatisch um 10 erhöht wenn der Port nicht frei ist.&lt;br /&gt;
* &#039;&#039;&#039;sip_registrar&#039;&#039;&#039;&lt;br /&gt;
: Hostname oder IP-Addresse des SIP-Servers mit dem sich der Client verbindet. Default ist fritz.box.&lt;br /&gt;
* &#039;&#039;&#039;sip_ringtime&#039;&#039;&#039;&lt;br /&gt;
: Klingelzeit für ausgehende Anrufe.&lt;br /&gt;
* &#039;&#039;&#039;sip_user&#039;&#039;&#039;&lt;br /&gt;
: User Name des SIP-Clients. Defualt ist 620.&lt;br /&gt;
* &#039;&#039;&#039;sip_waits&#039;&#039;&#039;&lt;br /&gt;
: Interne Wartezeit in Sekunden bevor nach nicht erfolgreichem listen ein erneuter Versuch gestartet wird. &lt;br /&gt;
* &#039;&#039;&#039;sip_waittime&#039;&#039;&#039;&lt;br /&gt;
: Maximale Wartezeit des Commands listenwfp bis das Gespräch automatisch angenommen wird.&lt;br /&gt;
&lt;br /&gt;
Siehe auch [http://fhem.de/commandref_DE.html#SIP commandref]&lt;br /&gt;
&lt;br /&gt;
=== Set ===&lt;br /&gt;
&lt;br /&gt;
Das Modul kennt derzeit folgende Commands&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;reset&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
: Stoppt laufende listen-Prozess und initalisiert das Device.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;call &amp;lt;nummer&amp;gt; [&amp;lt;ringtime&amp;gt;] [&amp;lt;nachricht&amp;gt;]&#039;&#039;&#039;&lt;br /&gt;
: Startet einen Anruf an die angegebene Nummer.&lt;br /&gt;
: Optional kann die ringtime angegeben werden. Wird keine angegeben zieht das Attribut sip_ringtime. Default ist 10.&lt;br /&gt;
: Optional kann eine Nachricht in Form eines Audiofiles angegeben werden. Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben.&lt;br /&gt;
&lt;br /&gt;
* set &amp;lt;name&amp;gt; &#039;&#039;&#039;listen&#039;&#039;&#039;&lt;br /&gt;
: Manueller Start des listen-Prozesses:&lt;br /&gt;
: Der SIP-Client wird in einen Status versetzt in dem er automatisch Anrufe annimmt oder . Dem Anrufer wird  der Ton wird als Echo zurückgespielt. Über die Eingabe von &#039;&#039;&#039;#&#039;&#039;&#039; gefolgt von 2 Zahlen und anschließendem Auflegen kann eine Zahl in das Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; übergeben werden. Voraussetzung: Das anrufende Telefon ist auf Tonwahl gestellt (DTMF).&lt;br /&gt;
: Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet (wfp steht für wait-fetch-play). Erfolgt an Anruf an den Client, wechselt der Status zu ringing. Nun kann das Gespräch via set-Command fetch angenommen werden. Das als sip_audiofile angegebene File wird abgespielt. Anschließend wechselt der Status wieder zu listenwfp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;caller&#039;&#039;&#039;: Die Rufnummer bzw. Info des aktuellen Anrufers. Default-Wert ist &#039;-&#039;.&lt;br /&gt;
* &#039;&#039;&#039;dtmf&#039;&#039;&#039;: Die via Tonwahl (DTMF) eingegebenen Zahlen.&lt;br /&gt;
* &#039;&#039;&#039;state&#039;&#039;&#039;: Der Status des Devices.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und Sound abspielen ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; [&amp;lt;dauer&amp;gt;] [&amp;lt;audiofile&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Default-Dauer beträgt 10 Sekunden.&lt;br /&gt;
* Wird kein Audiofile angegeben, wird nur die Verbindung hergestellt und nach der Anrufdauer wieder unterbrochen.&lt;br /&gt;
* Anmerkung: Das Audiofile muss das Format PCM/8000 haben.&lt;br /&gt;
* Der angerufene nimmt das Gespräch entgegen, das Audiofile wird abgespielt.&lt;br /&gt;
&lt;br /&gt;
=== Anruf tätigen und DTMF-Töne senden ===&lt;br /&gt;
* Den Anruf initiieren&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; call &amp;lt;nummer&amp;gt; &amp;lt;tatstenkombination&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Tastenkombination muss mit einem Minus(-) nach der Zielnummer folgen, also z.B. **1 -#23&lt;br /&gt;
* Der angerufene nimmt das Gespräch entgegen, die Tonfolge wird abgespielt&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und DTMF-Töne empfangen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listendtmf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird von einem DTMF-fähigen Telefon aus angerufen.&lt;br /&gt;
* Wenn der SIP-Client das Gespräch angenommen hat betätigt man &#039;&#039;&#039;#&#039;&#039;&#039;, gefolgt von zwei Ziffern und legt dann wieder auf.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;dtmf&#039;&#039;&#039; ist die zweistellige Zahl zu sehen.&lt;br /&gt;
&lt;br /&gt;
=== Auf Anruf warten und kontrolliert annehmen ===&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus versetzt.&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listenwfp&amp;lt;/code&amp;gt;&lt;br /&gt;
* Die Nebenstelle des SIP-Clients wird angerufen.&lt;br /&gt;
* Der Status des Devices wechselt auf &#039;&#039;&#039;ringing&#039;&#039;&#039;.&lt;br /&gt;
* Im Reading &#039;&#039;&#039;caller&#039;&#039;&#039; ist die Nummer bzw. die Info des Callers zu sehen.&lt;br /&gt;
* Soll der Anruf angenommen werden setze ich den Status des Devices mittels set auf &#039;&#039;&#039;fetch&#039;&#039;&#039;:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Der SIP-Client legt auf und geht wieder in den Status &#039;&#039;&#039;listenwfp&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Fritzbox + Doorline - Telefonklingeln beenden ===&lt;br /&gt;
Szenario: Als Türklingel ist eine Doorline im Einsatz die auf Direktannahme eingestellt ist. Klingelt jemand an der Tür, erfolgt ein &#039;Anruf&#039; an die in der Rufgruppe definierten Telefone. Man kann den Anruf entgegennehmen, um zu hören wer an der Tür ist, bevor man die Tür öffnet. Geht man direkt zur Tür, klingeln die Telefone insgesamt 30 Sekunden lang bis sie verstummen. Hat man die Haustür mit einem Türkontakt versehen, hilft folgender Ansatz:&lt;br /&gt;
* Der SIP-Client wird in der Fritzbox in die Rufgruppe der Türklingel aufgenommen.&lt;br /&gt;
* Der SIP-Client wird in den Listen-Modus &#039;wait-fetch-play&#039; versetzt (Die sip_waittime sollte größer als die Klingeldauer der Doorline sein).&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; listenwfp&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klingelt jemand an der Tür, wird unter anderem die Nebenstelle des SIP-Clients angerufen.&lt;br /&gt;
* Der Status des Devices wechselt auf &#039;&#039;&#039;ringing&#039;&#039;&#039;.&lt;br /&gt;
* Über ein DOIF greift man die Kombination SIP-Client-Status &#039;ringing&#039; und Haustürkontakt closed-&amp;gt;open ab und&lt;br /&gt;
* setzt  den Status des Devices mittels set auf fetch:&lt;br /&gt;
: &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; fetch&amp;lt;/code&amp;gt;&lt;br /&gt;
* Der SIP-Client nimmt den Anruf an und spielt das im Attribut sip_audiofile angegebene File ab.&lt;br /&gt;
* Die Telefone verstummen.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
=== Fehler bei der Registrierung an der Fritzbox ===&lt;br /&gt;
&#039;&#039;&#039;Fritzbox&#039;&#039;&#039;&lt;br /&gt;
* Ist das Device für den SIP-Client in der Fritzbox unter Telefonie &amp;gt; Telefoniegräte gelistet? &lt;br /&gt;
* Geräteeinstellungen ändern: Ist für das Device unter &#039;Anmeldedaten&#039; die Durchwahl als Benutzername angegeben?&lt;br /&gt;
* Ist der in dieser Ansicht angegebene &#039;Registrar&#039; mit der im Attribut sip_registrar identisch? Im Zweifelsfalle die IP-Adresse statt &#039;fritz.box&#039; verwenden.&lt;br /&gt;
* FitzOS ab 6.80: Wurde nach Definition des Gerätes an einem anderen bekannten Gerät der Bestätigungscode eingegeben?&lt;br /&gt;
&#039;&#039;&#039;FHEM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Attribute des Devices prüfen:&lt;br /&gt;
* Ist unter sip_from &#039;sip:620@fritz.box&#039; mit der von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_user die von der Fritzbox vergebene Durchwahl angegeben?&lt;br /&gt;
* Ist unter sip_password das in der Fritzbox hinterlegte Passwort eingetragen?&lt;br /&gt;
* Ist unter sip_registrar die IP-Adresser der Fritzbox eingetragen?&lt;br /&gt;
* Ist unter sip_ip die IP-Adresse des FHEM-Servers eingetragen (z.B. 192.168.178.47 angeben, keine Adresse aus dem 127er-Segment)?&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=40219|LinkText=Forenthread}} alter Forum-Thread zu FB_SIP.pm und SIP.pm&lt;br /&gt;
* {{Link2Forum|Topic=29725|LinkText=Forenthread}} Forum-Thread zu diesem Modul SIP&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Hilfsmodul]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Ubiquit_mFi/mPower&amp;diff=18594</id>
		<title>Ubiquit mFi/mPower</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Ubiquit_mFi/mPower&amp;diff=18594"/>
		<updated>2017-01-19T14:45:19Z</updated>

		<summary type="html">&lt;p&gt;Wzut: /* Hinweis zum Betrieb mit FHEM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ubiquiti mFi/mPower ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ubiquiti mFi/mPower IP Steckdosen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über WiFi/LAN schaltbare Steckdosenleiste mit Verbrauchsmessung. (LAN nur mit Pro Version)&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
230V IP-Steckdosenleiste mit unterschiedlicher Portanzahl. Jede Steckdose kann extra per Befehl geschaltet werden. Die angeschlossene Last wird gemessen und stellt folgende Werte pro Port zur Verfügung:&lt;br /&gt;
* Stromaufnahme&lt;br /&gt;
* Stromspannung &lt;br /&gt;
* Wirkleistungsfaktor&lt;br /&gt;
* aktuelle Energieaufnahme&lt;br /&gt;
* verbrauchte Energie - aktuelles Monat (ab Firmware 2.1.x)&lt;br /&gt;
* verbrauchte Energie - Vormonat (ab Firmware 2.1.x)&lt;br /&gt;
&lt;br /&gt;
Protokolle&lt;br /&gt;
* http, https, HTTPS, telnet, ssh, ntp&lt;br /&gt;
&lt;br /&gt;
== Allgemein ==&lt;br /&gt;
Die Leisten lassen sich komplett per Web Browser flashen,bedienen und konfigurieren. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Standard Login-Zugangsdaten zur Ubi-WEB-UI lauten: User:ubnt / Passwort: ubnt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich waren die Geräte in Verbindung mit der Ubiquiti Kontroller Software vorgesehen, können nun aber auch problemlos &amp;quot;standalone&amp;quot; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Alle hier in diesem WIKI zusammengestellten Informationen beziehen sich auf die Verwendung der Leisten &#039;&#039;&#039;ohne&#039;&#039;&#039; Ubiquiti Kontrollersoftware.&lt;br /&gt;
&lt;br /&gt;
Bei Lieferungen im April 2015 war auf allen Leisten die Firmware Version 2.0.8 installiert. Diese Firmware bietet nur rudimentäre Funktionen und auch die Energiemessung funktioniert nur in Verbindung mit der 64-Bit Java-Kontrollersoftware.&lt;br /&gt;
&#039;&#039;&#039;Darum ist ein Firmwareupdate auf mind. 2.1.8 (Stand 2/2015) notwendig.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
&lt;br /&gt;
=== Verhalten nach Stromausfall===&lt;br /&gt;
Nach einem Stromausfall (bzw. direkt nach dem Einstecken in eine Steckdose) werden die Ports nach dem Starten der Firmware immer eingeschaltet.&lt;br /&gt;
Das gilt allerdings nur ohne der Verwendung der Ubiquiti Kontrollersoftware.&lt;br /&gt;
&lt;br /&gt;
=== Auslieferungsfirmware Version 2.0.8 ===&lt;br /&gt;
* In dieser Version funktioniert die Energiemessung im Standalone-Modus nicht. &lt;br /&gt;
* Keine Möglichkeit die Zeitzone sowie die NTP Zeit-Synchronistaion über die WEB-UI einzustellen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Lösung: Firmware auf mind. 2.1.8 upgraden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Zeitsynchronisation ===&lt;br /&gt;
Wenn die NTP Zeitsynchronisation mit der erforderliche Zeitzone nicht eingestellt wird, funktionieren gewisse Dinge wie z. B. das Summieren der Verbrauchswerte nicht.&lt;br /&gt;
&lt;br /&gt;
Darum muss unbedingt der NTP Sync in der WEB-UI der Leiste nach dem Upgrade auf 2.1.8, wie in diesem Wiki beschrieben, eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
=== WiFi Frequenzen / Kanäle ===&lt;br /&gt;
Es wurde beobachtet, dass  sich die Leisten  bei der Verwendung des WiFi Kanals 13 (2472 MHz) nicht verbinden. &lt;br /&gt;
Dieses Verhalten wurde  sogar bei  Kanälen ab 8 (2447 MHz) beobachtet.&lt;br /&gt;
Dabei wurde die Firmware 2.1.8 und 2.1.11  verwendet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Lösung: WiFi Kanal von 1 - 7 (2412 MHz - 2442 MHz) bei den WLAN-Accesspoints einstellen. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== WiFi Reconnects alle 2 Minuten ===&lt;br /&gt;
Wird kein Software-Kontroller verwendet und ist WiFi mit WPA Verschlüsselung eingestellt verliert die Leiste immer die Verbindung zum Accesspoint.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Grund ist ein periodischer Neustart des WPA Dienstes in der Leiste. Auch ein Update auf die Version 2.1.11 hat das Problem nicht beseitigt.&lt;br /&gt;
[http://community.ubnt.com/t5/mFi/mFi-mPower-mini-disassociates-and-reassociates-to-WiFi-AP-every/m-p/1372786 Eintrag im Ubnt Forum]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Lösung: Im Moment stellt  nur die Verwendung der unsicheren WEP Verschlüsselung das Problem ab. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Firmware Versionen ==&lt;br /&gt;
Folgende Versionen wurden von Ubiquiti zum Download freigegeben.&lt;br /&gt;
&lt;br /&gt;
*    2.0.7&lt;br /&gt;
* 2.0.8 (Download nicht auffindbar - Standard-Auslieferungsversion? &lt;br /&gt;
*    2.0.12&lt;br /&gt;
*    2.0.13&lt;br /&gt;
*    2.0.14&lt;br /&gt;
*    2.0.15&lt;br /&gt;
*    2.0.23&lt;br /&gt;
*    2.0.24&lt;br /&gt;
*    2.1.1&lt;br /&gt;
*    2.1.2&lt;br /&gt;
*    2.1.3&lt;br /&gt;
*    2.1.4&lt;br /&gt;
*    2.1.5&lt;br /&gt;
*    2.1.8 - 2015-02-26&lt;br /&gt;
*    2.1.11 - 2015-04-16&lt;br /&gt;
&lt;br /&gt;
== Modelle EU Raum ==&lt;br /&gt;
* 1 Port / P1E / WiFi&lt;br /&gt;
* 3 Port / P3E / WiFi&lt;br /&gt;
* 6 Port / P6E / WiFi &amp;amp; LAN (Pro Version)&lt;br /&gt;
&lt;br /&gt;
=== Spezifikationen mPower Pro (EU)===&lt;br /&gt;
[[Datei:Ubi-mPower6eu.jpg|200px|thumb|right|mPower 6 Port EU]]&lt;br /&gt;
* Größe: 250.37 x 116.7 x 49 mm&lt;br /&gt;
* Gewicht: 754,4g&lt;br /&gt;
* Spannung: 220-250VAC, 50Hz, 16A pro Ausgang, 16A Gesamt&lt;br /&gt;
* Ausgänge: 6&lt;br /&gt;
* Speicher: 16 MB RAM, 8 MB Flash&lt;br /&gt;
* LAN: 1 x 10/100 Ethernet&lt;br /&gt;
* WiFi Standard: 802.11b/g/n&lt;br /&gt;
* LEDs: 1 LED Status&lt;br /&gt;
* Betriebstemperatur: 0 bis 40°C&lt;br /&gt;
* Luftfeuchte: 10 bis 90% Nichtkondensierend&lt;br /&gt;
&lt;br /&gt;
=== Spezifikationen mPower (EU)===&lt;br /&gt;
[[Datei:Ubi-mPower3eu.jpg|200px|thumb|right|mPower 3 Port EU]]&lt;br /&gt;
* Größe: 240 x 82.8 x 41.5 mm&lt;br /&gt;
* Gewicht: 545g&lt;br /&gt;
* Spannung: 220-250VAC, 50Hz, 16A pro Ausgang, 16A Gesamt&lt;br /&gt;
* Ausgänge: 3&lt;br /&gt;
* Speicher: 16 MB RAM, 8 MB Flash&lt;br /&gt;
* WiFi Standard: 802.11b/g/n&lt;br /&gt;
* LEDs: 1 LED Status&lt;br /&gt;
* Betriebstemperatur: -10 bis 45°C&lt;br /&gt;
* Luftfeuchte: 95% max.&lt;br /&gt;
&lt;br /&gt;
=== Spezifikationen mPower mini (EU)===&lt;br /&gt;
[[Datei:Ubi-mPower1eu.jpg|100px|thumb|right|mPower 1 Port EU]]&lt;br /&gt;
* Größe: 110.8 x 71 x 67.7 mm&lt;br /&gt;
* Gewicht: 170g&lt;br /&gt;
* Spannung: 220-250VAC, 50Hz, 10A &lt;br /&gt;
* Ausgänge: 1&lt;br /&gt;
* Speicher: 16 MB RAM, 8 MB Flash&lt;br /&gt;
* WiFi Standard: 802.11b/g/n&lt;br /&gt;
* LEDs: 1 LED Status&lt;br /&gt;
* Betriebstemperatur: 0 bis 40°C&lt;br /&gt;
* Luftfeuchte: 10 bis 90% Nichtkondensierend&lt;br /&gt;
&lt;br /&gt;
== Hinweis zum Betrieb mit FHEM ==&lt;br /&gt;
Die Geräte können mit dem Modul 98_UbiquitiMP gesteuert werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Weitere Infos dazu sind in dieser [http://forum.fhem.de/index.php/topic,35722.0.html Diskussion im Fhem Forum]zu finden.&lt;br /&gt;
&lt;br /&gt;
== Ersteinrichtung ohne Controller == &lt;br /&gt;
&lt;br /&gt;
=== Ersteinrichtung der Leiste ohne Controller / Iphone ===&lt;br /&gt;
&lt;br /&gt;
Smartphone / z.B. mit dem  Iphone unter IOS7 &amp;lt;br /&amp;gt;&lt;br /&gt;
Ubiquiti Auslieferungs-Firmware Version: 2.0.8 (oder alle 2.x Versionen)&lt;br /&gt;
&lt;br /&gt;
#    Reset der Leiste mit &amp;quot;Factory reset&amp;quot; - Drücken der reset Taste auf der Leiste für mindestend 10 Sekunden.  &amp;lt;br /&amp;gt;Die Leiste startet neu hoch und erstellt einen Accesspoint mit einer eigenen SSID mit dem Namen mfi-xxxxx.   &lt;br /&gt;
#    Verbinden mit dem neuen WLAN Netzwerk - nach ein paar Sekunden erscheint die UBI-Web Oberfläche automtatisch. (Captive Portal).  &amp;lt;br /&amp;gt; Einfach warten, bis das Portal erscheint, das kann schon mal 10 bis 20 Sekunden dauern. &lt;br /&gt;
#    Sobald das Portal sichtbar ist, das eigene WLAN auswählen und die Zugangsdaten eingeben.&lt;br /&gt;
#    Danach den mFi Account konfigurieren. Dabei ist der Eintrag Personal auszuwählen und alles andere frei zu lassen. &lt;br /&gt;
#    Apply dücken, die mPower Leiste startet neu und nach ca. 1 Minute sollte sie sich mit dem WiFi verbunden haben und per DHCP eine IP-Adresse  erhalten haben. &lt;br /&gt;
#    Um die IP-Adresse herauszufinden, einfach das [http://www.ubnt.com/downloads/discovery/ubnt-discovery-v2.3.zip IP-Address Ubiquiti Discovery Tool v2.3] runterladen und entpacken.  &amp;lt;br /&amp;gt;Dann die .bat oder die .jar Datei doppelklicken und  das Tool sucht im lokalen Netz nach UBI-Produkten. &lt;br /&gt;
#    Nun die Firmware Version 2.1.8 von http://www.ubnt.com/downloads/mfi/2.1.8/firmware/M2M/firmware.bin   downloaden.  &amp;lt;br /&amp;gt; Ab der 2.1x Version gibt es für alle Leisten (1-Port, 3-Port und 6 Port) die selbe firmware.bin   &lt;br /&gt;
#    Jetzt wird die Leiste mit einem Browser geflasht (am Besten mit Firefox) indem man auf die IP der Leiste geht und direkt zur upgrade.cgi surft. &amp;lt;br /&amp;gt;   &#039;&#039;&#039;&amp;lt;nowiki&amp;gt; http://IP-UBILeiste/upgrade.cgi&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;    -     Username=ubnt / Passwort=ubnt  &amp;lt;br /&amp;gt;Wenn das Upgrade fertig ist bleibt der Updatebalken  bei 100% stehen. &lt;br /&gt;
#   &#039;&#039;&#039;Nach dem Updaten die Ports der Leiste über die WEB Oberfläche aus- und einschalten.&#039;&#039;&#039;  &amp;lt;br /&amp;gt;Ab sofort zählt sie dann auch die verbrauchte Energie wie gewünscht ohne Ubi-Kontroller!&lt;br /&gt;
# Weiter geht es mit der Einrichtung der  [[#Einstellung_der_Timezone_und_NTP_Timesync|Zeitzone/Timesync]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Screenshots Iphone:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ubi-discoverytool.JPG|Ubi Discovery Toolbox&lt;br /&gt;
File:Iphone-captive1.jpg|Captive Portal - select WiFi Network / mFi Account&lt;br /&gt;
File:Iphone-captive2.jpg|Captive Portal - select mFi Account&lt;br /&gt;
File:upgrade-2-0-8.jpg|UBI Web UI - upgrade.cgi&lt;br /&gt;
File:upgrade-2-0-8-final.jpg|UBI Web UI - upgrade.cgi done&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ersteinrichtung der Leiste ohne Controller / Windows7 ===&lt;br /&gt;
Ubiquiti Auslieferungs-Firmware Version: 2.0.8 (oder alle 2.x Versionen)&lt;br /&gt;
&lt;br /&gt;
#    Reset der Leiste mit &amp;quot;Factory reset&amp;quot; - Drücken der reset Taste auf der Leiste für mindestend 10 Sekunden.  &amp;lt;br /&amp;gt;Die Leiste startet neu hoch und erstellt einen Accesspoint mit einer eigenen SSID mit dem Namen mfi-xxxxx.   &lt;br /&gt;
# Verbinden des PC  mit dem neuen WLAN Netzwerk. &lt;br /&gt;
# Warten bis das Fenster zum neuen Netzwerk erscheint - dann Heimnetzwerk wählen. &lt;br /&gt;
# Dann mit dem Firefox auf &amp;lt;nowiki&amp;gt; http://192.168.2.20 &amp;lt;/nowiki&amp;gt; gehen und eine Ausnahme für das Zertifikat hinzufügen. &lt;br /&gt;
# Es erschein  die Konfigurationsseite. Dort Network scannen und die Security Daten des WLAN eingeben. &#039;&#039;&#039;Beim mFi Account ist NICHTS auszuwählen - alles leer lassen! &#039;&#039;&#039;&lt;br /&gt;
# Apply dücken. Die mPower Leiste startet neu und nach ca. 1 Minute sollte sie sich mit dem WiFi verbunden haben und per DHCP eine IP-Adresse  erhalten haben &lt;br /&gt;
#    Um die IP-Adresse herauszufinden, einfach das [http://www.ubnt.com/downloads/discovery/ubnt-discovery-v2.3.zip IP-Address Ubiquiti Discovery Tool v2.3] runterladen und entpacken.  &amp;lt;br /&amp;gt;Dann die .bat oder die .jar Datei doppelklicken und  das Tool sucht im lokalen Netz nach UBI-Produkten. &lt;br /&gt;
#    Nun die Firmware Version 2.1.8 von http://www.ubnt.com/downloads/mfi/2.1.8/firmware/M2M/firmware.bin   downloaden.  &amp;lt;br /&amp;gt; Ab der 2.1x Version gibt es für alle Leisten (1-Port, 3-Port und 6 Port) die selbe firmware.bin.&lt;br /&gt;
#   Vor dem Flashen mit dem Browser normal  auf die Leiste surfen. &amp;lt;nowiki&amp;gt; http://IP-Leiste&amp;lt;/nowiki&amp;gt; &amp;lt;br /&amp;gt; Wechseln zum Reiter Configuration. Wenn nochmal die Konfigurationsseite kommen sollte, einfach den Kontroller neu einstellen - alles leer lassen.  &lt;br /&gt;
#    Jetzt wird die Leiste mit einem Browser geflasht (am Besten mit Firefox) indem man auf die IP der Leiste geht und direkt zur upgrade.cgi surft. &amp;lt;br /&amp;gt;   &#039;&#039;&#039;&amp;lt;nowiki&amp;gt; http://IP-UBILeiste/upgrade.cgi&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;    -     Username=ubnt / Passwort=ubnt  &amp;lt;br /&amp;gt;Wenn das Upgrade fertig ist bleibt der Updatebalken  bei 100% stehen. &lt;br /&gt;
#   &#039;&#039;&#039;Nach dem Updaten die Ports der Leiste über die WEB Oberfläche aus- und einschalten.&#039;&#039;&#039;  &amp;lt;br /&amp;gt;Ab sofort zählt sie dann auch die verbrauchte Energie wie gewünscht ohne Ubi-Kontroller!&lt;br /&gt;
# Weiter geht es mit der Einrichtung der  [[#Einstellung_der_Timezone_und_NTP_Timesync|Zeitzone/Timesync]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Screenshots:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Pc-wlan1.jpg|WiFi verbinden&lt;br /&gt;
File:Pc-wlan2-netzwerk.JPG|Netztwerktyp&lt;br /&gt;
File:Pc-wlan3-firefox.JPG|Firefox Zertifikat 1&lt;br /&gt;
File:Pc-wlan4-firefox.JPG|Firefox Zertifikat 2&lt;br /&gt;
File:Pc-wlan5-firefox.JPG|UBI Config UI&lt;br /&gt;
File:Pc-wlan7-firefox.JPG|UBI Config UI&lt;br /&gt;
File:Iphone-captive2.jpg|UBI FW 2.0.8 UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Update alter 1er Firmware ===&lt;br /&gt;
&lt;br /&gt;
Eine uralte Firmware (vor 2.0) auf die 2.1.8 Version upzudaten ist nur per Telnet/SSH/SCP möglich.&lt;br /&gt;
&lt;br /&gt;
# Windows Benutzer bitte Putty downloaden. Es wird pscp und putty benötigt. Alle Dateien in ein einfach zu ereichendes Verzeichnis wie z.B. c:\temp downloaden.&amp;lt;br /&amp;gt;http://the.earth.li/~sgtatham/putty/latest/x86/pscp.exe&amp;lt;br /&amp;gt;http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe &amp;lt;br /&amp;gt; Linux Benutzer sollten ssh installiert haben.&lt;br /&gt;
# Die Firmware Version 2.1.8 von http://www.ubnt.com/downloads/mfi/2.1.8/firmware/M2M/firmware.bin   downloaden.  &amp;lt;br /&amp;gt; Ab der 2.1x Version gibt es für alle Leisten (1-Port, 3-Port und 6 Port) die selbe firmware.bin. &amp;lt;br /&amp;gt; Linux User Download mit: &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; wget http://www.ubnt.com/downloads/mfi/2.1.8/firmware/M2M/firmware.bin &amp;lt;/nowiki&amp;gt; &amp;lt;/code&amp;gt;&lt;br /&gt;
# Reset der Leiste mit &amp;quot;Factory reset&amp;quot; - Drücken der reset Taste auf der Leiste für mindestend 10 Sekunden.  &amp;lt;br /&amp;gt;Die Leiste startet neu hoch und erstellt einen Accesspoint mit einer eigenen SSID mit dem Namen mfi-xxxxx.   &lt;br /&gt;
# Verbinden mit dem neuen WLAN Netzwerk. Die IP Adresse der Leiste lautet: 192.168.2.20.&lt;br /&gt;
# Windows Nutzer gehen auf die Eingabeaufforderung und wechseln in das Verzeichnis c:\temp. &amp;lt;br /&amp;gt; &amp;lt;code&amp;gt;c: &amp;lt;ENTER&amp;gt; &amp;lt;br /&amp;gt;cd \temp &amp;lt;Enter&amp;gt; &amp;lt;/code&amp;gt;&lt;br /&gt;
# Dann wird die Firmware  übertragen. Benutzername und  Passwort lauten ubnt &amp;lt;br /&amp;gt; Windows:&amp;lt;br /&amp;gt; &amp;lt;code&amp;gt; pscp.exe -scp firmware.bin  ubnt@192.168.2.20:/tmp/fwupdate.bin &amp;lt;/code&amp;gt; &amp;lt;br /&amp;gt; Linux: &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt; scp firmware.bin ubnt@192.168.2.20:/tmp/fwupdate.bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Nun mit SSH  oder Telnet auf die Leiste gehen. Login: ubnt / Passwort: ubnt &amp;lt;br /&amp;gt; Windows:&amp;lt;br /&amp;gt; &amp;lt;code&amp;gt; putty.exe -telnet 192.168.2.20  &amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Linux: &amp;lt;br /&amp;gt; &amp;lt;code&amp;gt; ssh ubnt@192.168.2.20 &amp;lt;/code&amp;gt;&lt;br /&gt;
# Jetzt das Firmware-Flashen anstoßen. Das abschließende &amp;amp; Zeichen nicht vergessen! &amp;lt;br/&amp;gt; Windows und Linux: &amp;lt;br /&amp;gt; &amp;lt;code&amp;gt; /sbin/syswrapper.sh upgrade2 &amp;amp; &amp;lt;/code&amp;gt;&lt;br /&gt;
# Die LED der Leiste blinkt nach kurzer Zeitg abwechselnd orange und blau. Diesen Vorgang nicht unterbrechen!! Nach ein paar Minuten ist der Vorgang beendet. &lt;br /&gt;
# Abschließend noch mal einen Hardware Reset mit der Taste, wie am Anfang, machen. &lt;br /&gt;
# Nun kann die Leiste, wie in der Ersteinrichtung beschrieben, konfiguriert werden. Die Updateprozeduren müssen natürlich nicht nochmal ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung der Timezone und NTP Timesync ===&lt;br /&gt;
Die UBI-Web-UI der Firmware 2.1.8 zeigt 2 neue Reiter System und Machines.&lt;br /&gt;
Im Reiter System  wird die Zeitzone eingestellt. &amp;lt;br /&amp;gt; GMT+1 Central European Time (Daylight Savings) und aktivieren Enable NTP Client mit dem Server pool-ntp.org. &amp;lt;br /&amp;gt;&lt;br /&gt;
Dann den Button &amp;quot;Change&amp;quot;  klicken und &amp;quot;Configuration contains changes. Apply these changes? APPLY&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ab sofort hat die Leiste immer die richtige Zeit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File:ubi-fw-2.1.8-ui.jpg|Web UI 2.1.8&lt;br /&gt;
File:ubi-zeitzone.jpg|Zeitzoneneinstellung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Website von Ubiquiti[http://www.ubnt.com/]&lt;br /&gt;
* PDF Datenblatt mFi/mPower [http://dl.ubnt.com/datasheets/mfi/mFi_DS.pdf]&lt;br /&gt;
* Forum des Herstellers [http://community.ubnt.com/t5/mFi/bd-p/mFi]&lt;br /&gt;
* mFi/mPower Firmware release 2.1.8 (2/2015) [http://community.ubnt.com/t5/mFi/mFi-release-2-1-8/td-p/1188368/jump-to/first-unread-message]&lt;br /&gt;
* mFi/mPower Firmware release 2.1.11 (4/2015) [http://community.ubnt.com/t5/mFi/mFi-release-2-1-11/m-p/1230774]&lt;br /&gt;
* Upgrade Prozedur aus dem Ubiquiti Forum [https://community.ubnt.com/t5/mFi-Frequently-Asked-Questions/mFi-Can-I-upgrade-mFi-device-firmware-manually/ta-p/485311]&lt;br /&gt;
* Varia Store Deutschland (Bezugsquelle) [http://varia-store.com/Hardware/UBIQUITI-Networks:::637_734.html]&lt;br /&gt;
* Forenbeitrag Fhem: {{Link2Forum|Topic=35722}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:IP Components]]&lt;br /&gt;
[[Kategorie:Schalter (Empfänger)]]&lt;br /&gt;
[[Kategorie:Energieverbrauchsmessung]]&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Ubiquit_mFi/mPower&amp;diff=18593</id>
		<title>Ubiquit mFi/mPower</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Ubiquit_mFi/mPower&amp;diff=18593"/>
		<updated>2017-01-19T14:43:40Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ubiquiti mFi/mPower ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ubiquiti mFi/mPower IP Steckdosen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Über WiFi/LAN schaltbare Steckdosenleiste mit Verbrauchsmessung. (LAN nur mit Pro Version)&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
230V IP-Steckdosenleiste mit unterschiedlicher Portanzahl. Jede Steckdose kann extra per Befehl geschaltet werden. Die angeschlossene Last wird gemessen und stellt folgende Werte pro Port zur Verfügung:&lt;br /&gt;
* Stromaufnahme&lt;br /&gt;
* Stromspannung &lt;br /&gt;
* Wirkleistungsfaktor&lt;br /&gt;
* aktuelle Energieaufnahme&lt;br /&gt;
* verbrauchte Energie - aktuelles Monat (ab Firmware 2.1.x)&lt;br /&gt;
* verbrauchte Energie - Vormonat (ab Firmware 2.1.x)&lt;br /&gt;
&lt;br /&gt;
Protokolle&lt;br /&gt;
* http, https, HTTPS, telnet, ssh, ntp&lt;br /&gt;
&lt;br /&gt;
== Allgemein ==&lt;br /&gt;
Die Leisten lassen sich komplett per Web Browser flashen,bedienen und konfigurieren. &amp;lt;br /&amp;gt;&lt;br /&gt;
Die Standard Login-Zugangsdaten zur Ubi-WEB-UI lauten: User:ubnt / Passwort: ubnt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich waren die Geräte in Verbindung mit der Ubiquiti Kontroller Software vorgesehen, können nun aber auch problemlos &amp;quot;standalone&amp;quot; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Alle hier in diesem WIKI zusammengestellten Informationen beziehen sich auf die Verwendung der Leisten &#039;&#039;&#039;ohne&#039;&#039;&#039; Ubiquiti Kontrollersoftware.&lt;br /&gt;
&lt;br /&gt;
Bei Lieferungen im April 2015 war auf allen Leisten die Firmware Version 2.0.8 installiert. Diese Firmware bietet nur rudimentäre Funktionen und auch die Energiemessung funktioniert nur in Verbindung mit der 64-Bit Java-Kontrollersoftware.&lt;br /&gt;
&#039;&#039;&#039;Darum ist ein Firmwareupdate auf mind. 2.1.8 (Stand 2/2015) notwendig.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
&lt;br /&gt;
=== Verhalten nach Stromausfall===&lt;br /&gt;
Nach einem Stromausfall (bzw. direkt nach dem Einstecken in eine Steckdose) werden die Ports nach dem Starten der Firmware immer eingeschaltet.&lt;br /&gt;
Das gilt allerdings nur ohne der Verwendung der Ubiquiti Kontrollersoftware.&lt;br /&gt;
&lt;br /&gt;
=== Auslieferungsfirmware Version 2.0.8 ===&lt;br /&gt;
* In dieser Version funktioniert die Energiemessung im Standalone-Modus nicht. &lt;br /&gt;
* Keine Möglichkeit die Zeitzone sowie die NTP Zeit-Synchronistaion über die WEB-UI einzustellen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Lösung: Firmware auf mind. 2.1.8 upgraden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Zeitsynchronisation ===&lt;br /&gt;
Wenn die NTP Zeitsynchronisation mit der erforderliche Zeitzone nicht eingestellt wird, funktionieren gewisse Dinge wie z. B. das Summieren der Verbrauchswerte nicht.&lt;br /&gt;
&lt;br /&gt;
Darum muss unbedingt der NTP Sync in der WEB-UI der Leiste nach dem Upgrade auf 2.1.8, wie in diesem Wiki beschrieben, eingestellt werden.&lt;br /&gt;
&lt;br /&gt;
=== WiFi Frequenzen / Kanäle ===&lt;br /&gt;
Es wurde beobachtet, dass  sich die Leisten  bei der Verwendung des WiFi Kanals 13 (2472 MHz) nicht verbinden. &lt;br /&gt;
Dieses Verhalten wurde  sogar bei  Kanälen ab 8 (2447 MHz) beobachtet.&lt;br /&gt;
Dabei wurde die Firmware 2.1.8 und 2.1.11  verwendet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Lösung: WiFi Kanal von 1 - 7 (2412 MHz - 2442 MHz) bei den WLAN-Accesspoints einstellen. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== WiFi Reconnects alle 2 Minuten ===&lt;br /&gt;
Wird kein Software-Kontroller verwendet und ist WiFi mit WPA Verschlüsselung eingestellt verliert die Leiste immer die Verbindung zum Accesspoint.&amp;lt;br&amp;gt;&lt;br /&gt;
Der Grund ist ein periodischer Neustart des WPA Dienstes in der Leiste. Auch ein Update auf die Version 2.1.11 hat das Problem nicht beseitigt.&lt;br /&gt;
[http://community.ubnt.com/t5/mFi/mFi-mPower-mini-disassociates-and-reassociates-to-WiFi-AP-every/m-p/1372786 Eintrag im Ubnt Forum]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Lösung: Im Moment stellt  nur die Verwendung der unsicheren WEP Verschlüsselung das Problem ab. &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Firmware Versionen ==&lt;br /&gt;
Folgende Versionen wurden von Ubiquiti zum Download freigegeben.&lt;br /&gt;
&lt;br /&gt;
*    2.0.7&lt;br /&gt;
* 2.0.8 (Download nicht auffindbar - Standard-Auslieferungsversion? &lt;br /&gt;
*    2.0.12&lt;br /&gt;
*    2.0.13&lt;br /&gt;
*    2.0.14&lt;br /&gt;
*    2.0.15&lt;br /&gt;
*    2.0.23&lt;br /&gt;
*    2.0.24&lt;br /&gt;
*    2.1.1&lt;br /&gt;
*    2.1.2&lt;br /&gt;
*    2.1.3&lt;br /&gt;
*    2.1.4&lt;br /&gt;
*    2.1.5&lt;br /&gt;
*    2.1.8 - 2015-02-26&lt;br /&gt;
*    2.1.11 - 2015-04-16&lt;br /&gt;
&lt;br /&gt;
== Modelle EU Raum ==&lt;br /&gt;
* 1 Port / P1E / WiFi&lt;br /&gt;
* 3 Port / P3E / WiFi&lt;br /&gt;
* 6 Port / P6E / WiFi &amp;amp; LAN (Pro Version)&lt;br /&gt;
&lt;br /&gt;
=== Spezifikationen mPower Pro (EU)===&lt;br /&gt;
[[Datei:Ubi-mPower6eu.jpg|200px|thumb|right|mPower 6 Port EU]]&lt;br /&gt;
* Größe: 250.37 x 116.7 x 49 mm&lt;br /&gt;
* Gewicht: 754,4g&lt;br /&gt;
* Spannung: 220-250VAC, 50Hz, 16A pro Ausgang, 16A Gesamt&lt;br /&gt;
* Ausgänge: 6&lt;br /&gt;
* Speicher: 16 MB RAM, 8 MB Flash&lt;br /&gt;
* LAN: 1 x 10/100 Ethernet&lt;br /&gt;
* WiFi Standard: 802.11b/g/n&lt;br /&gt;
* LEDs: 1 LED Status&lt;br /&gt;
* Betriebstemperatur: 0 bis 40°C&lt;br /&gt;
* Luftfeuchte: 10 bis 90% Nichtkondensierend&lt;br /&gt;
&lt;br /&gt;
=== Spezifikationen mPower (EU)===&lt;br /&gt;
[[Datei:Ubi-mPower3eu.jpg|200px|thumb|right|mPower 3 Port EU]]&lt;br /&gt;
* Größe: 240 x 82.8 x 41.5 mm&lt;br /&gt;
* Gewicht: 545g&lt;br /&gt;
* Spannung: 220-250VAC, 50Hz, 16A pro Ausgang, 16A Gesamt&lt;br /&gt;
* Ausgänge: 3&lt;br /&gt;
* Speicher: 16 MB RAM, 8 MB Flash&lt;br /&gt;
* WiFi Standard: 802.11b/g/n&lt;br /&gt;
* LEDs: 1 LED Status&lt;br /&gt;
* Betriebstemperatur: -10 bis 45°C&lt;br /&gt;
* Luftfeuchte: 95% max.&lt;br /&gt;
&lt;br /&gt;
=== Spezifikationen mPower mini (EU)===&lt;br /&gt;
[[Datei:Ubi-mPower1eu.jpg|100px|thumb|right|mPower 1 Port EU]]&lt;br /&gt;
* Größe: 110.8 x 71 x 67.7 mm&lt;br /&gt;
* Gewicht: 170g&lt;br /&gt;
* Spannung: 220-250VAC, 50Hz, 10A &lt;br /&gt;
* Ausgänge: 1&lt;br /&gt;
* Speicher: 16 MB RAM, 8 MB Flash&lt;br /&gt;
* WiFi Standard: 802.11b/g/n&lt;br /&gt;
* LEDs: 1 LED Status&lt;br /&gt;
* Betriebstemperatur: 0 bis 40°C&lt;br /&gt;
* Luftfeuchte: 10 bis 90% Nichtkondensierend&lt;br /&gt;
&lt;br /&gt;
== Hinweis zum Betrieb mit FHEM ==&lt;br /&gt;
Die Geräte können mit dem Modul 98_UbiquitiMP gesteuert werden.&lt;br /&gt;
Weitere Infos dazu sind in dieser [http://forum.fhem.de/index.php/topic,35722.0.html Diskussion im Fhem Forum]zu finden.&lt;br /&gt;
&lt;br /&gt;
== Ersteinrichtung ohne Controller == &lt;br /&gt;
&lt;br /&gt;
=== Ersteinrichtung der Leiste ohne Controller / Iphone ===&lt;br /&gt;
&lt;br /&gt;
Smartphone / z.B. mit dem  Iphone unter IOS7 &amp;lt;br /&amp;gt;&lt;br /&gt;
Ubiquiti Auslieferungs-Firmware Version: 2.0.8 (oder alle 2.x Versionen)&lt;br /&gt;
&lt;br /&gt;
#    Reset der Leiste mit &amp;quot;Factory reset&amp;quot; - Drücken der reset Taste auf der Leiste für mindestend 10 Sekunden.  &amp;lt;br /&amp;gt;Die Leiste startet neu hoch und erstellt einen Accesspoint mit einer eigenen SSID mit dem Namen mfi-xxxxx.   &lt;br /&gt;
#    Verbinden mit dem neuen WLAN Netzwerk - nach ein paar Sekunden erscheint die UBI-Web Oberfläche automtatisch. (Captive Portal).  &amp;lt;br /&amp;gt; Einfach warten, bis das Portal erscheint, das kann schon mal 10 bis 20 Sekunden dauern. &lt;br /&gt;
#    Sobald das Portal sichtbar ist, das eigene WLAN auswählen und die Zugangsdaten eingeben.&lt;br /&gt;
#    Danach den mFi Account konfigurieren. Dabei ist der Eintrag Personal auszuwählen und alles andere frei zu lassen. &lt;br /&gt;
#    Apply dücken, die mPower Leiste startet neu und nach ca. 1 Minute sollte sie sich mit dem WiFi verbunden haben und per DHCP eine IP-Adresse  erhalten haben. &lt;br /&gt;
#    Um die IP-Adresse herauszufinden, einfach das [http://www.ubnt.com/downloads/discovery/ubnt-discovery-v2.3.zip IP-Address Ubiquiti Discovery Tool v2.3] runterladen und entpacken.  &amp;lt;br /&amp;gt;Dann die .bat oder die .jar Datei doppelklicken und  das Tool sucht im lokalen Netz nach UBI-Produkten. &lt;br /&gt;
#    Nun die Firmware Version 2.1.8 von http://www.ubnt.com/downloads/mfi/2.1.8/firmware/M2M/firmware.bin   downloaden.  &amp;lt;br /&amp;gt; Ab der 2.1x Version gibt es für alle Leisten (1-Port, 3-Port und 6 Port) die selbe firmware.bin   &lt;br /&gt;
#    Jetzt wird die Leiste mit einem Browser geflasht (am Besten mit Firefox) indem man auf die IP der Leiste geht und direkt zur upgrade.cgi surft. &amp;lt;br /&amp;gt;   &#039;&#039;&#039;&amp;lt;nowiki&amp;gt; http://IP-UBILeiste/upgrade.cgi&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;    -     Username=ubnt / Passwort=ubnt  &amp;lt;br /&amp;gt;Wenn das Upgrade fertig ist bleibt der Updatebalken  bei 100% stehen. &lt;br /&gt;
#   &#039;&#039;&#039;Nach dem Updaten die Ports der Leiste über die WEB Oberfläche aus- und einschalten.&#039;&#039;&#039;  &amp;lt;br /&amp;gt;Ab sofort zählt sie dann auch die verbrauchte Energie wie gewünscht ohne Ubi-Kontroller!&lt;br /&gt;
# Weiter geht es mit der Einrichtung der  [[#Einstellung_der_Timezone_und_NTP_Timesync|Zeitzone/Timesync]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Screenshots Iphone:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ubi-discoverytool.JPG|Ubi Discovery Toolbox&lt;br /&gt;
File:Iphone-captive1.jpg|Captive Portal - select WiFi Network / mFi Account&lt;br /&gt;
File:Iphone-captive2.jpg|Captive Portal - select mFi Account&lt;br /&gt;
File:upgrade-2-0-8.jpg|UBI Web UI - upgrade.cgi&lt;br /&gt;
File:upgrade-2-0-8-final.jpg|UBI Web UI - upgrade.cgi done&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ersteinrichtung der Leiste ohne Controller / Windows7 ===&lt;br /&gt;
Ubiquiti Auslieferungs-Firmware Version: 2.0.8 (oder alle 2.x Versionen)&lt;br /&gt;
&lt;br /&gt;
#    Reset der Leiste mit &amp;quot;Factory reset&amp;quot; - Drücken der reset Taste auf der Leiste für mindestend 10 Sekunden.  &amp;lt;br /&amp;gt;Die Leiste startet neu hoch und erstellt einen Accesspoint mit einer eigenen SSID mit dem Namen mfi-xxxxx.   &lt;br /&gt;
# Verbinden des PC  mit dem neuen WLAN Netzwerk. &lt;br /&gt;
# Warten bis das Fenster zum neuen Netzwerk erscheint - dann Heimnetzwerk wählen. &lt;br /&gt;
# Dann mit dem Firefox auf &amp;lt;nowiki&amp;gt; http://192.168.2.20 &amp;lt;/nowiki&amp;gt; gehen und eine Ausnahme für das Zertifikat hinzufügen. &lt;br /&gt;
# Es erschein  die Konfigurationsseite. Dort Network scannen und die Security Daten des WLAN eingeben. &#039;&#039;&#039;Beim mFi Account ist NICHTS auszuwählen - alles leer lassen! &#039;&#039;&#039;&lt;br /&gt;
# Apply dücken. Die mPower Leiste startet neu und nach ca. 1 Minute sollte sie sich mit dem WiFi verbunden haben und per DHCP eine IP-Adresse  erhalten haben &lt;br /&gt;
#    Um die IP-Adresse herauszufinden, einfach das [http://www.ubnt.com/downloads/discovery/ubnt-discovery-v2.3.zip IP-Address Ubiquiti Discovery Tool v2.3] runterladen und entpacken.  &amp;lt;br /&amp;gt;Dann die .bat oder die .jar Datei doppelklicken und  das Tool sucht im lokalen Netz nach UBI-Produkten. &lt;br /&gt;
#    Nun die Firmware Version 2.1.8 von http://www.ubnt.com/downloads/mfi/2.1.8/firmware/M2M/firmware.bin   downloaden.  &amp;lt;br /&amp;gt; Ab der 2.1x Version gibt es für alle Leisten (1-Port, 3-Port und 6 Port) die selbe firmware.bin.&lt;br /&gt;
#   Vor dem Flashen mit dem Browser normal  auf die Leiste surfen. &amp;lt;nowiki&amp;gt; http://IP-Leiste&amp;lt;/nowiki&amp;gt; &amp;lt;br /&amp;gt; Wechseln zum Reiter Configuration. Wenn nochmal die Konfigurationsseite kommen sollte, einfach den Kontroller neu einstellen - alles leer lassen.  &lt;br /&gt;
#    Jetzt wird die Leiste mit einem Browser geflasht (am Besten mit Firefox) indem man auf die IP der Leiste geht und direkt zur upgrade.cgi surft. &amp;lt;br /&amp;gt;   &#039;&#039;&#039;&amp;lt;nowiki&amp;gt; http://IP-UBILeiste/upgrade.cgi&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;    -     Username=ubnt / Passwort=ubnt  &amp;lt;br /&amp;gt;Wenn das Upgrade fertig ist bleibt der Updatebalken  bei 100% stehen. &lt;br /&gt;
#   &#039;&#039;&#039;Nach dem Updaten die Ports der Leiste über die WEB Oberfläche aus- und einschalten.&#039;&#039;&#039;  &amp;lt;br /&amp;gt;Ab sofort zählt sie dann auch die verbrauchte Energie wie gewünscht ohne Ubi-Kontroller!&lt;br /&gt;
# Weiter geht es mit der Einrichtung der  [[#Einstellung_der_Timezone_und_NTP_Timesync|Zeitzone/Timesync]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Screenshots:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Pc-wlan1.jpg|WiFi verbinden&lt;br /&gt;
File:Pc-wlan2-netzwerk.JPG|Netztwerktyp&lt;br /&gt;
File:Pc-wlan3-firefox.JPG|Firefox Zertifikat 1&lt;br /&gt;
File:Pc-wlan4-firefox.JPG|Firefox Zertifikat 2&lt;br /&gt;
File:Pc-wlan5-firefox.JPG|UBI Config UI&lt;br /&gt;
File:Pc-wlan7-firefox.JPG|UBI Config UI&lt;br /&gt;
File:Iphone-captive2.jpg|UBI FW 2.0.8 UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Update alter 1er Firmware ===&lt;br /&gt;
&lt;br /&gt;
Eine uralte Firmware (vor 2.0) auf die 2.1.8 Version upzudaten ist nur per Telnet/SSH/SCP möglich.&lt;br /&gt;
&lt;br /&gt;
# Windows Benutzer bitte Putty downloaden. Es wird pscp und putty benötigt. Alle Dateien in ein einfach zu ereichendes Verzeichnis wie z.B. c:\temp downloaden.&amp;lt;br /&amp;gt;http://the.earth.li/~sgtatham/putty/latest/x86/pscp.exe&amp;lt;br /&amp;gt;http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe &amp;lt;br /&amp;gt; Linux Benutzer sollten ssh installiert haben.&lt;br /&gt;
# Die Firmware Version 2.1.8 von http://www.ubnt.com/downloads/mfi/2.1.8/firmware/M2M/firmware.bin   downloaden.  &amp;lt;br /&amp;gt; Ab der 2.1x Version gibt es für alle Leisten (1-Port, 3-Port und 6 Port) die selbe firmware.bin. &amp;lt;br /&amp;gt; Linux User Download mit: &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt; wget http://www.ubnt.com/downloads/mfi/2.1.8/firmware/M2M/firmware.bin &amp;lt;/nowiki&amp;gt; &amp;lt;/code&amp;gt;&lt;br /&gt;
# Reset der Leiste mit &amp;quot;Factory reset&amp;quot; - Drücken der reset Taste auf der Leiste für mindestend 10 Sekunden.  &amp;lt;br /&amp;gt;Die Leiste startet neu hoch und erstellt einen Accesspoint mit einer eigenen SSID mit dem Namen mfi-xxxxx.   &lt;br /&gt;
# Verbinden mit dem neuen WLAN Netzwerk. Die IP Adresse der Leiste lautet: 192.168.2.20.&lt;br /&gt;
# Windows Nutzer gehen auf die Eingabeaufforderung und wechseln in das Verzeichnis c:\temp. &amp;lt;br /&amp;gt; &amp;lt;code&amp;gt;c: &amp;lt;ENTER&amp;gt; &amp;lt;br /&amp;gt;cd \temp &amp;lt;Enter&amp;gt; &amp;lt;/code&amp;gt;&lt;br /&gt;
# Dann wird die Firmware  übertragen. Benutzername und  Passwort lauten ubnt &amp;lt;br /&amp;gt; Windows:&amp;lt;br /&amp;gt; &amp;lt;code&amp;gt; pscp.exe -scp firmware.bin  ubnt@192.168.2.20:/tmp/fwupdate.bin &amp;lt;/code&amp;gt; &amp;lt;br /&amp;gt; Linux: &amp;lt;br /&amp;gt;&amp;lt;code&amp;gt; scp firmware.bin ubnt@192.168.2.20:/tmp/fwupdate.bin &amp;lt;/code&amp;gt;&lt;br /&gt;
# Nun mit SSH  oder Telnet auf die Leiste gehen. Login: ubnt / Passwort: ubnt &amp;lt;br /&amp;gt; Windows:&amp;lt;br /&amp;gt; &amp;lt;code&amp;gt; putty.exe -telnet 192.168.2.20  &amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Linux: &amp;lt;br /&amp;gt; &amp;lt;code&amp;gt; ssh ubnt@192.168.2.20 &amp;lt;/code&amp;gt;&lt;br /&gt;
# Jetzt das Firmware-Flashen anstoßen. Das abschließende &amp;amp; Zeichen nicht vergessen! &amp;lt;br/&amp;gt; Windows und Linux: &amp;lt;br /&amp;gt; &amp;lt;code&amp;gt; /sbin/syswrapper.sh upgrade2 &amp;amp; &amp;lt;/code&amp;gt;&lt;br /&gt;
# Die LED der Leiste blinkt nach kurzer Zeitg abwechselnd orange und blau. Diesen Vorgang nicht unterbrechen!! Nach ein paar Minuten ist der Vorgang beendet. &lt;br /&gt;
# Abschließend noch mal einen Hardware Reset mit der Taste, wie am Anfang, machen. &lt;br /&gt;
# Nun kann die Leiste, wie in der Ersteinrichtung beschrieben, konfiguriert werden. Die Updateprozeduren müssen natürlich nicht nochmal ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
=== Einstellung der Timezone und NTP Timesync ===&lt;br /&gt;
Die UBI-Web-UI der Firmware 2.1.8 zeigt 2 neue Reiter System und Machines.&lt;br /&gt;
Im Reiter System  wird die Zeitzone eingestellt. &amp;lt;br /&amp;gt; GMT+1 Central European Time (Daylight Savings) und aktivieren Enable NTP Client mit dem Server pool-ntp.org. &amp;lt;br /&amp;gt;&lt;br /&gt;
Dann den Button &amp;quot;Change&amp;quot;  klicken und &amp;quot;Configuration contains changes. Apply these changes? APPLY&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ab sofort hat die Leiste immer die richtige Zeit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File:ubi-fw-2.1.8-ui.jpg|Web UI 2.1.8&lt;br /&gt;
File:ubi-zeitzone.jpg|Zeitzoneneinstellung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Website von Ubiquiti[http://www.ubnt.com/]&lt;br /&gt;
* PDF Datenblatt mFi/mPower [http://dl.ubnt.com/datasheets/mfi/mFi_DS.pdf]&lt;br /&gt;
* Forum des Herstellers [http://community.ubnt.com/t5/mFi/bd-p/mFi]&lt;br /&gt;
* mFi/mPower Firmware release 2.1.8 (2/2015) [http://community.ubnt.com/t5/mFi/mFi-release-2-1-8/td-p/1188368/jump-to/first-unread-message]&lt;br /&gt;
* mFi/mPower Firmware release 2.1.11 (4/2015) [http://community.ubnt.com/t5/mFi/mFi-release-2-1-11/m-p/1230774]&lt;br /&gt;
* Upgrade Prozedur aus dem Ubiquiti Forum [https://community.ubnt.com/t5/mFi-Frequently-Asked-Questions/mFi-Can-I-upgrade-mFi-device-firmware-manually/ta-p/485311]&lt;br /&gt;
* Varia Store Deutschland (Bezugsquelle) [http://varia-store.com/Hardware/UBIQUITI-Networks:::637_734.html]&lt;br /&gt;
* Forenbeitrag Fhem: {{Link2Forum|Topic=35722}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:IP Components]]&lt;br /&gt;
[[Kategorie:Schalter (Empfänger)]]&lt;br /&gt;
[[Kategorie:Energieverbrauchsmessung]]&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&amp;diff=15451</id>
		<title>LaCrosseGateway V1.x</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&amp;diff=15451"/>
		<updated>2016-05-31T05:41:03Z</updated>

		<summary type="html">&lt;p&gt;Wzut: Link zur Unterseite korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das WiFi-LaCrosse-Gateway erfüllt den gleichen Zweck wie ein [[JeeLink|JeeLink USB-Stick]] und zwar das Empfangen, Abfragen und Steuern von funkbasierten LaCrosse Sensoren und Aktoren, die im 868 MHz FSK Sendeverfahren arbeiten (OOK-Sendeverfahren (433 Mhz) wird nicht unterstützt). Die Verarbeitung der Daten und Steuerung der Aktoren, erfolgt mithilfe von FHEM, die als zentrale Steuereinheit dient. &lt;br /&gt;
Der signifikante Unterschied zu einem JeeLink USB-Stick ist, der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). &lt;br /&gt;
Das Herzstück des LaCrosse Gateways besteht aus einem ESP8266-12E. Das LaCrosseGateway ist aufgrund des hohen Stromverbrauchs, nicht für den Akkubetrieb geeignet.&lt;br /&gt;
&lt;br /&gt;
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:&lt;br /&gt;
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich&lt;br /&gt;
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30% Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)&lt;br /&gt;
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig &lt;br /&gt;
*Alternativ am USB-Port wie ein JeeLink verwendbar&lt;br /&gt;
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNText=Projektstatus: Release mit einigen Beta-Anteilen.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNTyp=y|RNText=Dokumentationsstand Version 1.19}}&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Bauteile==&lt;br /&gt;
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:&lt;br /&gt;
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].&amp;lt;br /&amp;gt;Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.&amp;lt;br /&amp;gt;Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. &lt;br /&gt;
*[Option 2] [https://raw.githubusercontent.com/nodemcu/nodemcu-devkit-v1.0/master/Documents/NodeMCU_DEVKIT_1.0.jpg NodeMCU DEVKIT 1.0 (oder 2.0)]ist die Inbetriebnahme einfacher, da alles für das Aufbringen der Firmware bereits vorhanden ist und kein Löten nötig ist.&amp;lt;br /&amp;gt;[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:&lt;br /&gt;
** V0.9&lt;br /&gt;
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht &amp;quot;Lolin&amp;quot;!&lt;br /&gt;
** Devkits mit einem CH340 USB converter&lt;br /&gt;
*[Option 3] Alternativ zu einem Devkit 1.0 kann auch ein [http://www.wemos.cc/Products/d1_mini.html &amp;quot;WeMOS D1 mini&amp;quot;] eingesetzt werden. Vorteil bei diesem Kit ist die kleine Bauform bei gleichem Funktionsumfang wie das DEVKIT 1.0.&lt;br /&gt;
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.&lt;br /&gt;
**&#039;&#039;Hinweis:&#039;&#039; Der ESP-07 hat einen 25Q80 1M flash Chip. Dieser ist für den Betrieb mit der LaCrosseGateway Firmware geeignet, für ein OTA-Update ist es jedoch zu wenig. Aus diesem Grund muss/kann dieser auf 4M flash umgebaut werden. Weitere Informationen und Details zum Umbau sind im {{Link2Forum|Topic=45594|Message=448307|LinkText=Forenthread (Gehäuse-Variante)}} beschrieben.&lt;br /&gt;
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren&lt;br /&gt;
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])&lt;br /&gt;
*[Optional] SC16IS750 Zur Bereitstellung der seriellen Schnittstelle, da die GPIOs (GPIO1 / GPIO3) DEVKIT&#039;s V1.0 von FTDI verwendet werden und damit nicht genutzt werden können.&lt;br /&gt;
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)&lt;br /&gt;
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)&lt;br /&gt;
*Steckbrett (inkl. Kabel/Wiederstände) / Lochrasterplatine (Lötkolben, Lötzinn, Wiederstände etc.)) / [[#Platine|PeMue Platine]]&lt;br /&gt;
&lt;br /&gt;
==Schaltung==&lt;br /&gt;
===Variante: Devkit 1.0===&lt;br /&gt;
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Variante: ESP8266-12E===&lt;br /&gt;
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Variante: Platine (PeMue)===&lt;br /&gt;
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Addon Schaltung=== &lt;br /&gt;
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].&lt;br /&gt;
===MCP2308=== &lt;br /&gt;
I2C Adresse 0x27 -&amp;gt; A0,A1,A2 = 3.3V&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;             &lt;br /&gt;
               |-------\/-------|&lt;br /&gt;
    LGW D1     |1 SCL     VDD 18|  LGW 3.3V &lt;br /&gt;
    LGW D2     |2 SDA     GP7 17|  PB7   --/ --- GND  or Output&lt;br /&gt;
    LGW 3.3V   |3 A2      GP6 16|  PB6   --/ --- GND  or Output&lt;br /&gt;
    LGW 3.3V   |4 A1      GP5 15|  PB5   --/ --- GND  or Output&lt;br /&gt;
    LGW 3.3V   |5 A0      GP4 14|  PB4   --/ --- GND  or Output&lt;br /&gt;
    LGW 3.3V   |6 RES     GP3 13|  PB3   --/ --- GND  or Output&lt;br /&gt;
               |7 NC      GP2 12|  PB2   --/ --- GND  or Output&lt;br /&gt;
               |8 INT     GP1 11|  PB1   --/ --- GND  or Output&lt;br /&gt;
    LGW GND    |9 VSS     GP0 10|  PB0   --/ --- GND  or Output&lt;br /&gt;
               |----------------|&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Aufbau auf einem Steckbrett==&lt;br /&gt;
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Platine==&lt;br /&gt;
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).&lt;br /&gt;
&lt;br /&gt;
===Oberseite===&lt;br /&gt;
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Unterseite===&lt;br /&gt;
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Devkit 1.0 bestückt Oberseite===&lt;br /&gt;
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Devkit 1.0 bestückt Unterseite===&lt;br /&gt;
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ESP8266-12E bestückt Oberseite===&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]&lt;br /&gt;
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]&lt;br /&gt;
| [[Datei:lgw_Platine_ESP-12E_oberseite_2_inkl_GE.jpg.jpg|325px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 inkl. Gehäuse]]&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Die Platine (Bild (1)) ist mit einem LM75 Sensor bestück. Diese Bestückung macht zusammen mit einem BME280 keinen Sinn, es handelt sich hierbei, um eine Entwicklungsplatine.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===ESP8266-12E bestückt Unterseite===&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite]]&lt;br /&gt;
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Platine bestücken (Hinweise und Tipps)===&lt;br /&gt;
*Auf der Platine (Version 1.0) ist für das RFM69CW-Modul eine Markierung (zwei Quadrate) aufgedruckt, die den Chip und den Quarz symbolisieren. Wenn man den RFM69CW so drauflötet, wie abgebildet, ist er falsch rum drauf.&amp;lt;br /&amp;gt;Es muss darauf geachtet werden, wo auf dem RFM69CW die &amp;quot;Ant&amp;quot; Beschriftung steht, dieser Lötpunkt muss auf die Platine an den Punkt &amp;quot;1&amp;quot; ausgerichtet werden. Zur Sicherheit bitte den [[#Variante: Platine (PeMue)|Schaltplan]] konsultieren und die genaue Position ermitteln.&lt;br /&gt;
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.&lt;br /&gt;
&lt;br /&gt;
==Erweiterungsmöglichkeiten==&lt;br /&gt;
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.&lt;br /&gt;
&lt;br /&gt;
Folgende Erweiterungen sind möglich:&lt;br /&gt;
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.&lt;br /&gt;
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.&lt;br /&gt;
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.&lt;br /&gt;
*es kann ein aktiver Piezo Summer (Piezo Buzzer) angeschlossen (an GPIO7 des SC16IS750) werden, um von FHEM aus das LaCrosseGateway einen Alarm ausgeben zu lassen. Hinweis: Falls der Strom von 10mA, den die Ausgänge liefern, nicht reicht, ist noch eine Transistor-Schaltstufe vorzusehen.&lt;br /&gt;
&lt;br /&gt;
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (JeeLink, LaCrosse, PCA301, ...) weiterverarbeitet.&lt;br /&gt;
&lt;br /&gt;
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.&lt;br /&gt;
Für die Realisierung der o.g Möglichkeiten wird ein [http://www.aliexpress.com/item/1x-Breakout-Board-for-SC16IS750-I2C-SPI-to-UART-IC/1327351219.html?spm=2114.30010308.3.38.HxdznQ&amp;amp;ws_ab_test=searchweb201556_9,searchweb201602_2_10034_507_10020_10001_10002_10017_10010_10005_10011_10006_10021_10003_10004_10022_10009_10008_10018_10019,searchweb201603_6&amp;amp;btsid=97b30f2b-e937-426b-8202-de585dd7ee97 SC16IS750] verwendet.&lt;br /&gt;
&lt;br /&gt;
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auf dieser Basis sind momentan folgende Erweiterungen möglich:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===SubProzessor===&lt;br /&gt;
Der SubProzessor dient dazu, dass mit einem eigenen Sketch Daten erfasst werden können, ohne sich um die ganze Nummer, die das LGW macht (WiFi, Kommunikation mit FHEM, Frontend, OTA, ...), kümmern zu müssen.&lt;br /&gt;
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.&lt;br /&gt;
&lt;br /&gt;
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)&lt;br /&gt;
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Wichtig:&#039;&#039;&#039; Alle LaCrosseGateway Komponenten laufen ausschließlich mit &#039;&#039;&#039;3.3V&#039;&#039;&#039;, aus diesem Grund dürfen keine &#039;&#039;&#039;5V&#039;&#039;&#039; Komponenten angeschlossen werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.&lt;br /&gt;
&lt;br /&gt;
Dazu wird sie auf das LGW hochgeladen (&amp;lt;nowiki&amp;gt;http://&amp;lt;LGW-IP&amp;gt;/ota/addon.hex&amp;lt;/nowiki&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.&lt;br /&gt;
&lt;br /&gt;
Die Firmware kann z.B. mithilfe von &amp;quot;curl&amp;quot; mit dem nachfolgendem Befehl hochgeladen werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;curl --http1.0 -H &amp;quot;Content_Type:multipart/form-data&amp;quot; -F &amp;quot;file=@/myFolder/LGW-Addon.ino.hex; filename=addon.hex&amp;quot; http://192.168.31.211/ota/addon.hex&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;Start receiving &#039;addon.hex&#039;&lt;br /&gt;
File: /addon.hex Size: 21417&lt;br /&gt;
Starting flash&lt;br /&gt;
Sending sync&lt;br /&gt;
Enter program mode&lt;br /&gt;
Binary size is:7608&lt;br /&gt;
Leave Program Mode&lt;br /&gt;
Flash finished&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KeyValueProtokoll (KVP):&#039;&#039;&#039;&lt;br /&gt;
Format:&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;KV &amp;lt;Type&amp;gt; &amp;lt;Address&amp;gt; &amp;lt;Key&amp;gt;=&amp;lt;Value&amp;gt;,&amp;lt;Key&amp;gt;=&amp;lt;Value&amp;gt;,&amp;lt;Key&amp;gt;=&amp;lt;Value&amp;gt;, ...&amp;lt;/source&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;KV DHT 01 Temperature=21.5,Humidity=62&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LaCrosse:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Format:&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;LC &amp;lt;Address&amp;gt; T=&amp;lt;Temperature&amp;gt;,H=&amp;lt;Humidity&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;LC 9F T=21.5,H=62&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;LC 9F T=21.5&amp;lt;/source&amp;gt;&lt;br /&gt;
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.&lt;br /&gt;
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.&lt;br /&gt;
&lt;br /&gt;
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.&lt;br /&gt;
Es bindet den geliebten DHT22 an und sendet ihn als LaCrosse-Sensor (über das LGW) an FHEM und es misst die Spannung und sendet sie zusammen mit der UpTime des SubProzessors als KVP&lt;br /&gt;
&lt;br /&gt;
Der umrandete Bereich [[#Addon Schaltung |Schaltung - &amp;quot;Example&amp;quot;]] &amp;quot;Example&amp;quot; ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Sensoren und Aktoren==&lt;br /&gt;
Alle Sensoren, die auch vom &amp;quot;LaCrosse Arduino&amp;quot; Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)&lt;br /&gt;
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link&lt;br /&gt;
|-&lt;br /&gt;
| TX21IT     || 17.241 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| TX25-IT    || 17.241 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| TX27-IT    || 17.241 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| TX29-IT    || 17.241 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| TX29DTH-IT || 17.241 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| TX37       || 17.241 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| TX35TH-IT  ||  9.579 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| TX35DTH-IT ||  9.579 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3143.IT || 17.241 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| 30.3147.IT || 17.241 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| 30.3155WD  ||  9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}&lt;br /&gt;
|-&lt;br /&gt;
| 30.3156WD  ||  9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!&lt;br /&gt;
|-&lt;br /&gt;
| 30.3187.IT || 17.241 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| WT440XH || 17.241 kbps ||extern||||&lt;br /&gt;
|-&lt;br /&gt;
| WS 1600 (TX22) ||  8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})&lt;br /&gt;
|-&lt;br /&gt;
| WS 1080   || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})&lt;br /&gt;
|-&lt;br /&gt;
| [[EMT7110]]   ||  9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| LevelSender || 17.241 kbps || extern ||||&lt;br /&gt;
|-&lt;br /&gt;
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| &lt;br /&gt;
|-&lt;br /&gt;
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || &lt;br /&gt;
|-&lt;br /&gt;
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.&lt;br /&gt;
|-&lt;br /&gt;
| BME280 || || on board || Temperatur, Feuchte und Druck || Bei Einsatz von Breakout (GY-68) kein PullUp mit 4,7k Wiederständen nötig. Verifizieren!&lt;br /&gt;
|-&lt;br /&gt;
| BMP180 || || on board || Temperatur und Druck || Bei Einsatz von Breakout (GY-68) kein PullUp mit 4,7k Wiederständen nötig. Verifizieren!&lt;br /&gt;
|-&lt;br /&gt;
| LM75 || || on board|| Temperatur || &lt;br /&gt;
|-&lt;br /&gt;
| DHT22 || ||on board|| Temperatur und Feuchte. ||&lt;br /&gt;
|-&lt;br /&gt;
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || Kann anstatt RFM69 Radio#3 eingesetzt werden.&lt;br /&gt;
|-&lt;br /&gt;
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||&lt;br /&gt;
|-&lt;br /&gt;
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||&lt;br /&gt;
|-&lt;br /&gt;
| Piezo Summer |||| on board ||Piezo Buzzer||&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version&lt;br /&gt;
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.&lt;br /&gt;
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck &amp;quot;PASS 7&amp;quot;. Nur diese Version kann empfangen werden.&lt;br /&gt;
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck &amp;quot;PASS A14C&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Sie werden in folgender Reihenfolge verwendet:&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.&lt;br /&gt;
&lt;br /&gt;
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.&lt;br /&gt;
&lt;br /&gt;
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.&lt;br /&gt;
&lt;br /&gt;
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.&lt;br /&gt;
&lt;br /&gt;
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.&lt;br /&gt;
&lt;br /&gt;
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
==Funktionsumfang==&lt;br /&gt;
*Access Point für die Konfiguration&lt;br /&gt;
*Konfiguration über WEB-Frontend (Erreichbar per &#039;&#039;&amp;lt;nowiki&amp;gt;http://IP-Adresse oder Hostname/setup&amp;lt;/nowiki&amp;gt;&#039;&#039; auf Port 80 )&lt;br /&gt;
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)&lt;br /&gt;
**Statische IP-Adresse anstatt DHCP&lt;br /&gt;
**Hostname&lt;br /&gt;
*Vom JeeLink FHEM-Modul über IP-Adresse:Port ansprechbar. Der Port ist konfigurierbar.&lt;br /&gt;
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) &lt;br /&gt;
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])&lt;br /&gt;
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre&lt;br /&gt;
*FHEM Anbindung&lt;br /&gt;
*Log im Web-Frontend&lt;br /&gt;
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)&lt;br /&gt;
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)&lt;br /&gt;
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))&lt;br /&gt;
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)&lt;br /&gt;
&lt;br /&gt;
==Sourcecode==&lt;br /&gt;
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].&lt;br /&gt;
&lt;br /&gt;
==Firmware Download==&lt;br /&gt;
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum &amp;quot;LaCrosse Gateway&amp;quot;}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.&lt;br /&gt;
&lt;br /&gt;
Nach einem FEHM-Update alternativ auch: &#039;&#039;&amp;lt;FHEM-Installations-Verzeichnis&amp;gt;/FHEM/firmware/JeeLink_LaCrosseGateway.bin&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SDK:&#039;&#039;&#039;&lt;br /&gt;
Arduino 1.6.9 / Espressiv 1.5.3 / Arduino Core Rev. 14405&lt;br /&gt;
&lt;br /&gt;
==Firmware aufspielen==&lt;br /&gt;
Wie bei einem JeeLink muss auch für das LaCrosse Gateway die Firmware aufgespielt werden.&lt;br /&gt;
&lt;br /&gt;
Das [https://raw.githubusercontent.com/nodemcu/nodemcu-devkit-v1.0/master/Documents/NodeMCU_DEVKIT_1.0.jpg NodeMCU DEVKIT 1.0] hat eine CP2102 UART Bridge implementiert, dafür muss ein CP2102 Treiber installiert sein.&lt;br /&gt;
&lt;br /&gt;
Bei einem ESP8266-12E Modul kann die Firmware Mithilfe eines Seriell-USB-Konverters aufgespielt werden.&lt;br /&gt;
&lt;br /&gt;
===Windows/Mac/Linux per &amp;quot;esptool&amp;quot;===&lt;br /&gt;
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):&lt;br /&gt;
&lt;br /&gt;
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.&lt;br /&gt;
&lt;br /&gt;
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;[Port]&#039;&#039;&#039; und &#039;&#039;&#039;[Pfad zur Firmware (bin-File)]&#039;&#039;&#039; müssen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Beispiel (Mac/Linux):&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Das esptool ist nicht sonderlich stabil. Es kommt vor, dass es manchmal den upload nicht startet oder nicht durchbekommt. In diesem Fall hilft es den Vorgang, auch mehrmals, zu wiederholen.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Windows per &amp;quot;nodemcu-flasher&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
1) [http://bbs.espressif.com/download/file.php?id=315&amp;amp;sid=a9040f05a6bf12258fe8b73a52de3a42 Espressif Flashtool] downloaden und entpacken:&lt;br /&gt;
&lt;br /&gt;
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden&lt;br /&gt;
&lt;br /&gt;
3) FlashTool starten und wie folgt einstellen:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]&lt;br /&gt;
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
4) COM-Port auswählen und den Flashvorgang starten (Button: &#039;&#039;&#039;Flash(F)&#039;&#039;&#039;) ...&lt;br /&gt;
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das &amp;quot;Flashen&amp;quot; initiieren]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Funktionsweise==&lt;br /&gt;
Während des Startvorgangs versucht sich das LaCrosse Gateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.&lt;br /&gt;
&lt;br /&gt;
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:&lt;br /&gt;
&lt;br /&gt;
Wenn es sich in keinem WLAN anmelden kann, dann öffnet es einen Access Point mit der SSID &amp;quot;LaCrosseGateway_&#039;&#039;&#039;xxxxxx&#039;&#039;&#039;&amp;quot;, wobei &#039;&#039;&#039;xxxxxx&#039;&#039;&#039; die eindeutige Chip-ID des ESP ist.&lt;br /&gt;
&lt;br /&gt;
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.&lt;br /&gt;
Innerhalb dieser 15 Minuten kann man sich mit dem Access Point verbinden. Der Access Point vergibt (per DHCP) IP-Adressen aus dem Netzwerk 192.168.222.0. Anschließend kann über die LaCrosseGateway Konfigurationsseite [http://192.168.222.1/setup http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.&lt;br /&gt;
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.&lt;br /&gt;
Die Konfigurationsseite ist auch im &amp;quot;Normalbetrieb&amp;quot; (ohne Access Point) über die Adresse http://&#039;&#039;seine aktuelle IP-Adresse&#039;&#039;/setup erreichbar.&lt;br /&gt;
&lt;br /&gt;
Wenn sich das LaCrosse Gateway an dem konfigurierten WLAN anmelden konnte (es wartet max. 30 Sekunden auf einen connect) und von diesem per DHCP eine IP-Adresse erhalten hat, dann stellt es auf dieser Adresse den Port 81 zur Verfügung, über den in FHEM das JeeLink Modul senden und empfangen kann - als wenn es ein JeeLink wäre.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Optische Darstellung der Initialisierung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:&lt;br /&gt;
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat&lt;br /&gt;
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.&lt;br /&gt;
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden&lt;br /&gt;
&lt;br /&gt;
== LaCrosseGateway einrichten ==&lt;br /&gt;
Für die Ersteinrichtung des LaCrosseGateways werden die SSID und das Passwort des WLAN-Routers benötigt. Ferner wird empfohlen auf dem WLAN-Router bzw. dem DHCP-Server eine IP-Adresse für das LaCrosseGateway zu reservieren. Für die Reservierung wird die MAC-Adresse des LaCrosseGateways benötigt, diese kann über die &amp;quot;Home&amp;quot;-Page des LaCrosseGateways ermittelt, alternativ von dem [[#Windows per &amp;quot;nodemcu-flasher&amp;quot; |NODEMCU Firmware Programmer]] (&#039;&#039;Reiter &amp;quot;Operation -&amp;gt; &amp;quot;STA MAC&amp;quot;&#039;&#039;) entnommen werden. &lt;br /&gt;
&lt;br /&gt;
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;&amp;lt;u&amp;gt;Für die Konfiguration sind folgende Schritte nötig:&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*Mit dem LaCrosseGateway Access Point &amp;quot;LaCrosseGateway_xxxxxx&amp;quot; verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])&lt;br /&gt;
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway &amp;quot;Setup&amp;quot;-Page] öffnen&lt;br /&gt;
*SSID und das Password eintragen&lt;br /&gt;
*&#039;&#039;[Empfohlen]&#039;&#039; Das Frontend Passwort festlegen&lt;br /&gt;
*&#039;&#039;[Optional]&#039;&#039; Falls kein DHCP-Server zur Verfügung steht bzw. keine Reservierung erwünscht ist, dann muss die IP-Adresse / Netmask / Gateway eingetragen werden&lt;br /&gt;
*&#039;&#039;[Empfohlen]&#039;&#039; Hostnamen festlegen bzw. anpassen&lt;br /&gt;
*Alle Angaben mit dem Button &amp;quot;save and restart&amp;quot; bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.&lt;br /&gt;
&lt;br /&gt;
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. &lt;br /&gt;
&lt;br /&gt;
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.&lt;br /&gt;
&lt;br /&gt;
==Firmware aktualisieren==&lt;br /&gt;
&lt;br /&gt;
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[Firmware Download |Firmware]] aufgezeigt.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.&lt;br /&gt;
&lt;br /&gt;
=== Per FHEM (OTA-Update)===&lt;br /&gt;
Voraussetzungen:&lt;br /&gt;
&lt;br /&gt;
*Das LGW muss auf der IP-Adresse, die im JeeLink Modul definiert ist, erreichbar sein&lt;br /&gt;
*Es wird kein avrdude benötigt&lt;br /&gt;
*Das Attribut &amp;quot;flashCommand&amp;quot; spielt keine Rolle&lt;br /&gt;
&lt;br /&gt;
Die LaCrosseGateway Firmware kann von JeeLink Device (JeeLink Modul) aus mit &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;set myJeeLik flash&amp;lt;/source&amp;gt; aktualisiert werden.&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;myJeeLik&#039;&#039;&#039; muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Das Update dauert ca. 30 Sekunden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Per CURL ===&lt;br /&gt;
Voraussetzungen:&lt;br /&gt;
*[https://curl.haxx.se/download.html curl-Tool] installiert &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;curl --http1.0 -# -o ~output.txt -H &amp;quot;Content_Type:multipart/form-data&amp;quot; -F &amp;quot;file=@.\JeeLink_LaCrosseGateway.bin; filename=firmware.bin&amp;quot; http://192.168.31.211/ota/firmware.bin&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firmwaredateiname (file=)&#039;&#039;&#039; und die &#039;&#039;&#039;IP-Adresse&#039;&#039;&#039; muss entsprechend angepasst werden.&lt;br /&gt;
&lt;br /&gt;
=== Per WEB OTA-Update (deprecated)===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;deprecated&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==LaCrosseGateway Web-Frontend==&lt;br /&gt;
===Staus-Wert RSSI===&lt;br /&gt;
Die WiFi Signalstärke (dBm). -36 ist besser als -60&lt;br /&gt;
&lt;br /&gt;
===Staus-Wert FramesPerMinute===&lt;br /&gt;
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.&lt;br /&gt;
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.&lt;br /&gt;
&lt;br /&gt;
===Staus-Wert ReceivedFrames===&lt;br /&gt;
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.&lt;br /&gt;
&lt;br /&gt;
===Sensor-ID===&lt;br /&gt;
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. &lt;br /&gt;
Hierbei ist darauf zu achten, dass die LaCrosse-ID nur einmal auf einer FHEM Instanz vorkommen darf. Die ID kann entweder Dezimal (211) oder Hex (0xD3) angegeben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Detailinformationen:&#039;&#039;&#039;&#039;&#039; Wenn ein LGW interne Sensoren hat (BMP280, BMP180, DHT22, ...) dann sendet es die Daten des Sensors so, als ob es eine Wetterstation wäre (WS 1600 Format) an das LGW. Bisher hat es dafür die Sensor-ID 0 verwendet. Wenn man mehrere LGWs an ein FHEM angebunden hat, dann mischen sich deren Sensor-Daten auf dem LaCrosse device mit der ID 0. Um das zu vermeiden, kann man nun konfigurieren, mit welcher Sensor-ID die internen Sensoren gesendet werden sollen und die beiden LGWs unterschiedliche konfigurieren.&lt;br /&gt;
&lt;br /&gt;
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.&lt;br /&gt;
&lt;br /&gt;
===SC16IS750-Clone===&lt;br /&gt;
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und&lt;br /&gt;
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer&lt;br /&gt;
als echte Hardware ist, mitkommt.&lt;br /&gt;
Sollte man ohne zwingenden Grund nicht aktivieren.&lt;br /&gt;
&lt;br /&gt;
===Use MDNS=== &lt;br /&gt;
Legt fest, ob das LGW seine IP-Adresse per MDSN bekannt gibt. Dies ist nötig, wenn man einen Mac hat oder bei Windows einen Bonjour-Service laufen hat.&lt;br /&gt;
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.&lt;br /&gt;
&lt;br /&gt;
===MCP23008=== &lt;br /&gt;
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).&lt;br /&gt;
&lt;br /&gt;
===Serial bridge port und bridge baud===&lt;br /&gt;
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.&lt;br /&gt;
Dazu gibt es die neuen settings &amp;quot;Serial bridge port&amp;quot; und &amp;quot;Serial bridge baud&amp;quot; auf der &amp;quot;config&amp;quot;-Page des LGWs.&lt;br /&gt;
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.&lt;br /&gt;
&lt;br /&gt;
===Statuswerte abrufen===&lt;br /&gt;
Mit http://&amp;lt;IP-des-LGW&amp;gt;/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;LGW&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;UpTimeSeconds&amp;quot; Value=&amp;quot;107086&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;UpTimeText&amp;quot; Value=&amp;quot;1Tg. 5Std. 44Min. 46Sek. &amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;WIFI&amp;quot; Value=&amp;quot;NeverTellThem&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;MacAddress&amp;quot; Value=&amp;quot;18:FE:34:9A:6D:48&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;ChipID&amp;quot; Value=&amp;quot;10120520&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;ReceivedFrames&amp;quot; Value=&amp;quot;93593&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Info Key=&amp;quot;FramesPerMinute&amp;quot; Value=&amp;quot;52&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/LGW&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Funktionsweise Log===&lt;br /&gt;
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Mit &amp;quot;Command&amp;quot; kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit &amp;quot;set myJeeLink raw ...&amp;quot; aus FHEM schicken kann.&lt;br /&gt;
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)&lt;br /&gt;
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.&lt;br /&gt;
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben&lt;br /&gt;
&lt;br /&gt;
Das Log kann per HTTP abgerufen werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;http://&amp;lt;LGW-IP&amp;gt;/getLogData&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;http://192.168.31.211/getLogData&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
das Ergebnis sieht wie folgt aus:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;DATA:OK 22 117 196 0 58 226 102 0 58 191 86 0 0 40 172 0 105 1 101 3 0 [75 C4 E2 66 00 00 BF 56 00 00 00 02 3B FC DC 00 69 01 65 4A A4 C4 F9 F2 4F 11 A4 F6 7C 03 A0 00 00 00 00 03 A0 38 09 21 27]&lt;br /&gt;
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]&lt;br /&gt;
DATA:OK EMT7110 84 81 8 207 0 36 0 1 1 199 1 [25 6A 54 51 40 02 00 24 C3 41 C7 9B]&lt;br /&gt;
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921&lt;br /&gt;
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921&lt;br /&gt;
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]&lt;br /&gt;
DATA:OK 22 126 67 0 65 236 34 0 65 231 116 0 0 32 103 0 48 0 134 1 0 [7E 43 EC 22 00 00 E7 74 00 00 00 01 C7 AC D7 00 30 00 86 00 57 E4 69 1E 46 8E D4 68 C7 04 10 00 00 00 00 04 10 18 0A DC F7]&lt;br /&gt;
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]&lt;br /&gt;
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;DATA:&#039;&#039;&#039;&#039;&#039; für die obere Liste&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;SYS: &#039;&#039;&#039;&#039;&#039; für die untere Liste&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.&lt;br /&gt;
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&#039;&#039; Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
=Hinweise zum Betrieb mit FHEM=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
Perl Modul: &#039;&#039;LWP::UserAgent&#039;&#039; - Dieses wird für das Firmware Update per FHEM JeeLink Modul benötigt.&lt;br /&gt;
Auf einem Raspberry Pi kann die Instllation wie folgt durchgeführt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo apt-get install libwww-perl&amp;lt;/source&amp;gt;&lt;br /&gt;
alternativ auch mit&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo cpan LWP::UserAgent&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FHEM Module&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_KeyValueProtocol.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_JeeLink.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_LaCrosse.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_PCA301.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;36_EC3000.pm&#039;&#039; (wird per FHEM Update verteilt)&lt;br /&gt;
&lt;br /&gt;
==Device Definition==&lt;br /&gt;
===WLAN===&lt;br /&gt;
Die Definition sieht dann wie folgt aus:&lt;br /&gt;
&#039;&#039;define myJeeLink JeeLink &amp;lt;IP-Adresse&amp;gt;:81&#039;&#039;&lt;br /&gt;
Der name &amp;quot;myJeeLink&amp;quot; kann bei Bedarf angepasst werden.&lt;br /&gt;
&amp;lt;IP-Adresse&amp;gt; muss entsprechend angepasst werden.&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;define myJeeLink JeeLink 192.168.22.33:81&amp;lt;/source&amp;gt;&lt;br /&gt;
IP-Adresse ermitteln: Das LaCrosseGateway heist per default Einstellung &amp;quot;&#039;&#039;LaCrosseGateway&#039;&#039;&amp;quot; per ping auf den Hostnamen &#039;&#039;LaCrosseGateway&#039;&#039; kann die IP-Adresse ermittelt werden.&lt;br /&gt;
===USB===&lt;br /&gt;
Für den Betrieb via USB sieht die Definition wie folgt aus:&lt;br /&gt;
&#039;&#039;define myJeeLink JeeLink &amp;lt;USB-Port&amp;gt;@57600&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der name &amp;quot;myJeeLink&amp;quot; kann bei Bedarf angepasst werden.&lt;br /&gt;
&amp;lt;IP-Adresse&amp;gt; muss entsprechend angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;define myJeeLink JeeLink /dev/ttyUSB0@57600&amp;lt;/source&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;/dev/ttyUSB0&#039;&#039;&#039; Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Sind mehrere USB Devices am FHEM Server (z.B. RPI, Cubietruck etc.) in Betrieb, dann ist die Zuordnung über den USB-Port nicht zuverlässig. Die Ports werden u.a. in der Reihenfolge vergeben, in der die Geräte angeschlossen werden. Zuverlässiger und eindeutiger ist die Zuordnung über die Serial-ID.&lt;br /&gt;
&lt;br /&gt;
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;ls -l /dev/serial/by-id&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel für die Ausgabe:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -&amp;gt; ../../ttyUSB1&lt;br /&gt;
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -&amp;gt; ../../ttyUSB2&lt;br /&gt;
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -&amp;gt; ../../ttyUSB0&amp;lt;/source&amp;gt;&lt;br /&gt;
In diesem Fall ist u.a. ein DEVKIT 1.0 mit der Serial-ID &#039;&#039;usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -&amp;gt; ../../ttyUSB2&#039;&#039; angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;define myJeeLink JeeLink /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600&amp;lt;/source&amp;gt;&lt;br /&gt;
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.&lt;br /&gt;
&lt;br /&gt;
==Reconnect==&lt;br /&gt;
Falls das LaCrosse Gateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung unterbrochen etc.), bricht das JeeLink Device die Kommunikation ab. Über das entsprechende &#039;&#039;timeout&#039;&#039; Attribut kann das JeeLink device so konfigurert werden, dass es in regelmässigen Abständen erneut versucht eine Verbindung mit dem LaCrosseGateway herzustellen.&lt;br /&gt;
&lt;br /&gt;
Konfigurationsempfehlung für &#039;&#039;timeout&#039;&#039; = 120 Sekunden und &#039;&#039;checkInterval&#039;&#039; = 30 Sekunden:&lt;br /&gt;
&lt;br /&gt;
Der Wert kann in FHEM wie folgt gesetzt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;attr myJeeLik timeout 120,30&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;myJeeLik&#039;&#039;&#039; muss auf den Gerätenamen in FHEM angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Während das LaCrosseGateway eine WiFi-Verbindungen aufbaut, benötigt das JeeLink-Modul je nach Konfiguration einige Zeit bis es einen neuen Connect auf den Datenport des LaCrosseGateway versucht. Das Finden der optimalen Werte erfordert etwas Geduld, es kann auch schon mal ein, zwei Minuten Dauern, bis die ersten Daten in FHEM übertragen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Erklärung der Timeout Werte:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden (myJeeLink_TIME) und falls dem so ist, macht es einen Reset auf der Schnittstelle, was die Verbindung zum LaCrosseGateway neu aufbaut. Das bedeutet, in so einem Fall ist die Verbindung nach spätestens 150 Sekunden wieder hergestellt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==JeeLink Set/Get-Befehle==&lt;br /&gt;
Mit dem LaCrosseGateway Skatch funktionieren nur die foldenden JeeLink &#039;&#039;&amp;quot;Set&amp;quot;&#039;&#039;-Befehle:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;LaCrossePairForSec, flash, raw und reset&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Die Verwendung von hier nicht aufgeführten Befehlen kann zu inkonsistenten Einstellungen des LaCrosseGateway führen.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bisher existieren keine funktionierenden JeeLink &#039;&#039;&amp;quot;Get&amp;quot;&#039;&#039; Befehle.&lt;br /&gt;
&lt;br /&gt;
==Liste aller initCommands==&lt;br /&gt;
Eine aktuelle Liste der initCommands, die man von FHEM, Terminalprogramm oder Web-Frontend aus senden kann, sind auf dem Web-Frontend &amp;quot;Help&amp;quot;-Page&amp;quot; des LaCrosseGateways (ab V1.17) aufgeführt.&lt;br /&gt;
&lt;br /&gt;
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;n&amp;gt;a       set to 0 if the blue LED bothers&lt;br /&gt;
&amp;lt;n&amp;gt;c       use one of the possible data rates (for transmit on RFM #1)&lt;br /&gt;
&amp;lt;n&amp;gt;d       set to 1 to see debug messages&lt;br /&gt;
&amp;lt;8266&amp;gt;e    Clear EEPROM&lt;br /&gt;
&amp;lt;n&amp;gt;f       initial frequency in kHz (5 kHz steps, 860480 ... 879515)&lt;br /&gt;
&amp;lt;n&amp;gt;h       Altitude&lt;br /&gt;
&amp;lt;n,f,i&amp;gt;i   Init PCA for Radio #&amp;lt;n&amp;gt; to &amp;lt;m&amp;gt;MHz and &amp;lt;i&amp;gt;s Interval&lt;br /&gt;
&amp;lt;n&amp;gt;m       bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)&lt;br /&gt;
&amp;lt;n&amp;gt;M       bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)&lt;br /&gt;
&amp;lt;n&amp;gt;#&amp;lt;x&amp;gt;m   bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)&lt;br /&gt;
&amp;lt;n&amp;gt;o       set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69&lt;br /&gt;
&amp;lt;n&amp;gt;p       payload on the serial port (1: all, 2: only undecoded data)&lt;br /&gt;
&amp;lt;n&amp;gt;r       use one of the possible data rates (for RFM #1)&lt;br /&gt;
&amp;lt;n&amp;gt;R       use one of the possible data rates (for RFM #2)&lt;br /&gt;
&amp;lt;n&amp;gt;#&amp;lt;x&amp;gt;r   use one of the possible data rates (for RFM #x)&lt;br /&gt;
&amp;lt;x,x,...&amp;gt;s Send to PCA301 (must be 10 byte)&lt;br /&gt;
&amp;lt;x,x,...&amp;gt;S Send to CustomSensor&lt;br /&gt;
&amp;lt;n&amp;gt;t       0=no toggle, else interval in seconds (for RFM #1)&lt;br /&gt;
&amp;lt;n&amp;gt;T       0=no toggle, else interval in seconds (for RFM #2)&lt;br /&gt;
&amp;lt;n&amp;gt;#&amp;lt;x&amp;gt;t   0=no toggle, else interval in seconds (for RFM #x)&lt;br /&gt;
v          show version&lt;br /&gt;
&amp;lt;n&amp;gt;w       0=no wifi&lt;br /&gt;
&amp;lt;n&amp;gt;z       set to 1 to display analyzed frame data instead of the normal data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LaCrosseGateway zurücksetzen==&lt;br /&gt;
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.&lt;br /&gt;
Im Terminalprogramm (Baudrate 57600) den Befehl: &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;8266e&amp;lt;/source&amp;gt; senden.&lt;br /&gt;
&lt;br /&gt;
Daraufhin wird wieder der Access Point aktiviert auf der die initiale Konfiguration über die [http://192.168.222.1/setup &amp;quot;Setup&amp;quot;] Seite vorgenommen werden kann.&lt;br /&gt;
&lt;br /&gt;
==Sensoren/Aktoren anlegen==&lt;br /&gt;
&lt;br /&gt;
Voraussetzung: FHEM autocreat ist aktiv.&lt;br /&gt;
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.&lt;br /&gt;
&lt;br /&gt;
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.&lt;br /&gt;
&lt;br /&gt;
Empfangene Sensoren werden nur hinzugefügt werden, wenn man LaCrossePairForSec auf 120 Sekunden gesetzt wird.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;set myJeeLink LaCrossePairForSec 120 ignore_battery&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme von BMP180 / BME280==&lt;br /&gt;
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;set myJeeLink LaCrossePairForSec 120 ignore_battery&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann sollte von [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ein LaCrosse Device mit der [[#Sensor-ID | Sensor-ID]] (Default Wert: 0) angelegt werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann das FHEM Device manuell angelegt werden:&lt;br /&gt;
Die &#039;&#039;&#039;&#039;&#039;ID&#039;&#039;&#039;&#039;&#039;, mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)&lt;br /&gt;
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;define &amp;lt;name&amp;gt; LaCrosse 00&amp;lt;/source&amp;gt;&lt;br /&gt;
Anchließend muss eine Höhenkorrektur (Grund: der Luftdruck wird immer bezogen auf NN angegeben, der Sensor liefert aber den Absolutdruck) mit dem command &#039;&#039;&#039;&#039;&#039;h&#039;&#039;&#039;&#039;&#039; in den initCommands vorgenommen werden, dies erfolgt mit dem FHEM Befehl:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Beispiel:&#039;&#039;&#039; 220h legt 220m über NN fest.&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;attr myJeeLik initCommands 220h&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme Piezo Summer==&lt;br /&gt;
&lt;br /&gt;
Der Piezo Summer wird in FHEM über das JeeLink Modul angesteuert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
set myJeeLink raw 1,60b   -&amp;gt; beep ... beep ... beep                      60 Sekunden lang&lt;br /&gt;
set myJeeLink raw 2,300b  -&amp;gt; beep beep ... beep beep ... beep beep      300 Sekunden lang&lt;br /&gt;
set myJeeLink raw 3,120b  -&amp;gt; beep beep beep ... beep beep beep ...      120 Sekunden lang&lt;br /&gt;
set myJeeLink raw 0b      -&amp;gt; beep stoppen&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme von RFM69CW==&lt;br /&gt;
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;Default Werte&amp;quot; (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
#1 (Erste)  =&amp;gt; 17241&lt;br /&gt;
#2 (Zweite) =&amp;gt; 9579&lt;br /&gt;
#3 (Dritte) =&amp;gt; 8842&lt;br /&gt;
#4 (Vierte) =&amp;gt; 20000&lt;br /&gt;
#5 (Fünfte) =&amp;gt; 17241&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Detailinformationen sind auch auf der LaCrosseGateway &amp;quot;Help&amp;quot;-Page zu finden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;&amp;lt;Datenrate&amp;gt;#&amp;lt;Radio-Nummer&amp;gt;&amp;lt;command&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m t:&amp;lt;/code&amp;gt;    || &#039;&#039;Toggle-Steuerung&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r:&amp;lt;/code&amp;gt;    || &#039;&#039;Datarate&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;f:&amp;lt;/code&amp;gt;    || &#039;&#039;Frequenz&#039;&#039; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
!Definition !! Erläuterungen &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;attr myJeeLink initCommands 0#1r v&amp;lt;/source&amp;gt;&lt;br /&gt;
| DataRate des ersten RFM setzen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;attr myJeeLink initCommands 8842#3r v &amp;lt;/source&amp;gt;&lt;br /&gt;
| DataRate des dritten RFM setzen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;attr myJeeLink initCommands 868300#2f v&amp;lt;/source&amp;gt;&lt;br /&gt;
| Frequenz des zweiten RFM setzten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;attr myJeeLink initCommands 868295#3f v&amp;lt;/source&amp;gt;&lt;br /&gt;
| Frequenz des dritten RFM setzten&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;attr myJeeLink initCommands 17241#1r 8842#2r v&amp;lt;/source&amp;gt;&lt;br /&gt;
| Zwei RFM69CW mit DataRate 17241 und 8842&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;attr myJeeLink initCommands 3#1m 20#1t 8842#2r v&amp;lt;/source&amp;gt;&lt;br /&gt;
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;attr myJeeLink initCommands 220h 868295#1f 868310#2f v&amp;lt;/source&amp;gt;&lt;br /&gt;
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;attr myJeeLink initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v&amp;lt;/source&amp;gt;&lt;br /&gt;
| Drei RFMs Frequenz 868295 / PCA301 / WS1600 sowie Höhe über NN &amp;lt;br&amp;gt;Radio 1 auf 868295 MHz und Toggle 9K/17K mit 20 Sekunden&amp;lt;br&amp;gt;Radio 2 für PCA301 initialisiert (geht nur bei mir, ist noch nicht in der 1.11 enthalten)&amp;lt;br&amp;gt;Radio 3 macht 8842 kbps für die WS 1600&amp;lt;br&amp;gt;Höhe 220m über NN&amp;lt;br&amp;gt;Activity LED aus&amp;lt;br&amp;gt;v am Ende ruft die neu gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM JeeLink Modul aktualisiert werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Es ist wichtig ein &amp;quot;v&amp;quot; an das Ende eines initCommands anzuhängen. Damit wird veranlasst, dass das LaCrosseGateway seine neuen Einstellungen an FHEM zurückmeldet.&lt;br /&gt;
==Inbetriebnahme von PCA301==&lt;br /&gt;
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.&lt;br /&gt;
&lt;br /&gt;
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command &amp;quot;&#039;&#039;&#039;&#039;&#039;i&#039;&#039;&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;RadioNr&amp;gt;,&amp;lt;Frequenz&amp;gt;,&amp;lt;Poll-Intervall&amp;gt;i&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Wichtig:&#039;&#039;&#039;&#039;&#039; Es darf nur &#039;&#039;&#039;&amp;quot;ein&amp;quot;&#039;&#039;&#039; Radio für PCA301 initialisiert sein, nicht mehrere. Das PCA301 initialisierte Radio ist dediziert für PCA301 zuständig, es kann nicht zwischen anderen Protokollen (z.B. LaCrosse) toggeln.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;Poll-Interval&#039;&#039; sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation&lt;br /&gt;
mit den Dosen keine Antworten überhören darf.&lt;br /&gt;
&lt;br /&gt;
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.&lt;br /&gt;
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.&lt;br /&gt;
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
! Definition !! Erläuterungen &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:40%&amp;quot; | &amp;lt;code&amp;gt;attr myJeeLink initCommands 2,868950,120i v&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;attr myJeeLink initCommands 1,868950,120 3#2m 20#2t 220h 0a v&amp;lt;/code&amp;gt;&lt;br /&gt;
| Initialisierung eines LaCrosseGateways mit zwei Radios für TX29, TX35, PCA301 und BMP180/BME280.&amp;lt;br&amp;gt;Das erste Radio macht PCA301 und das zweite toggelt 17241/9579 im 20 Sekunden Takt um TX29 und TX35 zu empfangen&amp;lt;br&amp;gt;der BMP180/BME280 liefert den Druck für 220m Meereshöhe&amp;lt;br&amp;gt;die LED ist deaktiviert&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ablauf:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.&lt;br /&gt;
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;Polling&#039;&#039; funtioniert so, dass für jede Dose geschaut wird, wann sie zuletzt empfangen wurde und wenn das länger als das konfigurierte Interval zurück liegt,&lt;br /&gt;
dann wird sie abgefragt. Wenn sonst etwas (Basisstation, anderes FHEM) die Dose abgefragt hat und das LaCrosseGateway die Antwort gehört hat, dann gilt das auch als&lt;br /&gt;
empfangen und es wird kein eigener Poll für die Dose ausgelöst. &#039;&#039;Das Zusammenspiel mit einer echten Basisstation konnte bisher nur grob simuliert werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;Pairing&#039;&#039; (also die Vergabe eines Kanals) funktioniert wie im PCA301-Sketch, button an der Dose &#039;&#039;&amp;quot;3 Sekunden&amp;quot;&#039;&#039; drücken, dann vergibt das LaCrosseGateway den nächsten freien Kanal.&lt;br /&gt;
Dosen, die bereits einen Kanal haben, können durch ein Schalten vor Ort, an das LaCrosseGateway anlernt werden. Das LaCrosseGateway erkennt sie und nimmt sie in die&lt;br /&gt;
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.&lt;br /&gt;
&lt;br /&gt;
Auf der Setup-Page im Web-Frontend (http://IP-Adresse oder Hostname/setup) des LaCrosseGateway kann die Liste der bekannten Dosen (ID=Kanal) eingesehen werden. Hinweis: Es sollten keine Änderungen in diesem Bereich vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
Wenn ein Kommando (Schalten, Daten abfragen, ...) an eine Dose gesendet wurde und keine Antwort kam, wird bereits im Sketch drei mal versucht, eine Antwort zu bekommen.&lt;br /&gt;
&lt;br /&gt;
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
! Befehl (Beschreibung)!! Erläuterungen &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;a &amp;quot;turn activity LED on or off&amp;lt;/code&amp;gt;&lt;br /&gt;
| wie bisher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;l &amp;quot;list known devices&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| entfallen, kann man nun im Web-Frontend sehen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;q &amp;quot;turn quiet mode on or off&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| wie bisher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r &amp;quot;list recordings&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| entfallen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;s &amp;quot;send to plug&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| wie bisher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;v &amp;quot;report version and configuration parameters&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| wie bisher&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d, e, p &amp;quot;poll / turn a device on / off&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| entfallen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;h, +, -, # &amp;quot;modify and display RF12 Frequency register&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
| entfallen, ersetzt durch das &amp;quot;i&amp;quot; command bzw. das bereits vorhandene &amp;quot;f&amp;quot; command&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme von Energy Count 3000 (EC3000)==&lt;br /&gt;
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.&lt;br /&gt;
Sie kann mit 3r oder 20000r gesetzt werden. Wenn diese data rate gesetzt wird, wird auch automatisch der RFM69 auf den Empfang von EC3000 uminitialisiert.&lt;br /&gt;
&lt;br /&gt;
EC3000 kann auch in einen data rate toggle mit einbezogen werden. Dazu gibt es nun das bit mit dem Wert 8 für 20.000 kbps&lt;br /&gt;
&lt;br /&gt;
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:&lt;br /&gt;
20000#2r&lt;br /&gt;
&lt;br /&gt;
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.&lt;br /&gt;
Wenn man z.B. mit dem zweiten Radio 17k Sensoren  (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;attr myJeeLink initCommands 9#2m 20#2t v&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme von MCP23008==&lt;br /&gt;
Auf der LaCrosseGateway &amp;quot;config&amp;quot;-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Input&#039;&#039;&#039;: Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Output&#039;&#039;&#039;: Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel: &#039;&#039;Input =&amp;gt; Eingang, wird per KVP an FHEM übermittelt&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel: &#039;&#039;Output =&amp;gt; Kann von FHEM aus gesetzt werden.&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;set myJeeLink raw &amp;quot;MCP GP0=1,GP1=0&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme von OLED-Display==&lt;br /&gt;
Wird derzeit (Stand: 05.2016) {{Link2Forum|Topic=52921|LinkText=hier}} diskutiert und entwickelt.&lt;br /&gt;
&lt;br /&gt;
Ab der Version 1.19 ist der nachfolgende Funktionsumfang implementiert:&lt;br /&gt;
&lt;br /&gt;
*OLED ein- und auschalten über FHEM, mithilfe des JeeLink-Moduls&lt;br /&gt;
* Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)&lt;br /&gt;
**WiFI connect erfolgreich&lt;br /&gt;
**Ein FHEM hat sich auf einen DataPort connected&lt;br /&gt;
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected&lt;br /&gt;
**Rechts oben wird die WiFi Signalstärke (dBm) angezeigt. Hinweis: -36 ist besser als -60 &lt;br /&gt;
&lt;br /&gt;
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-left: 0px;&amp;quot;&lt;br /&gt;
! Definition !! Erläuterungen &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:50%&amp;quot; | &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;set myJeeLink raw &amp;quot;OLED On&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
| Schaltet ein angeschlossenes Display ein&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;set myJeeLink raw &amp;quot;OLED Off&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
| Schaltet ein angeschlossenes Display aus&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Serial transparent bridge==&lt;br /&gt;
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.&lt;br /&gt;
Dazu gibt es die neuen settings &#039;&#039;&amp;quot;Serial bridge port&amp;quot;&#039;&#039; und &#039;&#039;&amp;quot;Serial bridge baud&amp;quot;&#039;&#039; auf der &amp;quot;Setup&amp;quot;-Page&amp;quot; (Web-Frontend) des LaCrosseGateways.&lt;br /&gt;
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.&lt;br /&gt;
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Vorgehensweise:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. &lt;br /&gt;
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen&lt;br /&gt;
*Port und baud rate auf der &amp;quot;Setup&amp;quot;-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud&lt;br /&gt;
*CUL in FHEM definieren (Beispiel): &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;define CULXYZ CUL &amp;lt;IP-Adresse&amp;gt;:85 0000&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;&amp;lt;CULXYZ&amp;gt;&#039;&#039;&#039;&#039;&#039; Muss nach eigenen Bedürfnissen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;&amp;lt;IP-Adresse&amp;gt;&#039;&#039;&#039;&#039;&#039; Muss entsprechend angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.&lt;br /&gt;
&lt;br /&gt;
Dieser kann wie folgt aussehen: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;define CULXYZ-Reconnector at +*00:00:30 {\&lt;br /&gt;
my $deviceName = &amp;quot;&amp;lt;CULXYZ&amp;gt;&amp;quot;;;\&lt;br /&gt;
my $version = CommandGet(&amp;quot;&amp;quot;, $deviceName . &amp;quot; version&amp;quot;);;\&lt;br /&gt;
my $gotAnswer = index($version, &#039;No answer&#039;) == -1;;\&lt;br /&gt;
\&lt;br /&gt;
if(!$gotAnswer) {\&lt;br /&gt;
  fhem(&amp;quot;set &amp;quot; . $deviceName . &amp;quot; reopen&amp;quot;);;\&lt;br /&gt;
}\&lt;br /&gt;
\&lt;br /&gt;
}  &amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;&amp;lt;CULXYZ&amp;gt;&#039;&#039;&#039;&#039;&#039; Muss nach eigenen Bedürfnissen angepasst werden.&lt;br /&gt;
&lt;br /&gt;
==Zugriff mit mehreren FHEM Instanzen==&lt;br /&gt;
&lt;br /&gt;
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.&lt;br /&gt;
Auf der &amp;quot;Setup&amp;quot;-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).&lt;br /&gt;
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&#039;&#039; Die Portnummer 8266 wird für OTA Update verwendet, und 80 für die &amp;quot;Config&amp;quot;-page. Aus diesem Grund ist die Verwendung dieser ports nicht erlaubt.&lt;br /&gt;
&lt;br /&gt;
Wenn sich mehrere FHEM Instanzen ein LaCrosseGateway teilen, dann ist darauf zu achten, dass die eine gemeinsame/gleiche initCommand Konfiguration haben. Sollten die FHEM Instanzen unterschiedliche initCommands senden, gewinnt das (zufällig) letzte und legt es für alle anderen fest.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Nano LaCrosse Gateway=&lt;br /&gt;
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.&lt;br /&gt;
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Ent­ste­hungs­grund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).&lt;br /&gt;
&lt;br /&gt;
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.&lt;br /&gt;
&lt;br /&gt;
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.&lt;br /&gt;
&lt;br /&gt;
==Bauteile==&lt;br /&gt;
Folgende bauteile werden benötigt:&lt;br /&gt;
*[http://www.elv.de/output/controller.aspx?cid=74&amp;amp;detail=10&amp;amp;detail2=36507 Gehäuse]&lt;br /&gt;
*ESP-12E&lt;br /&gt;
*Auto-Flash-Reset-Schaltung mit zwei Widerständen&lt;br /&gt;
*[http://www.aliexpress.com/item/6Pin-USB-2-0-to-TTL-UART-Module-Serial-Converter-CP2102-STC-Replace-Ft232/32364013343.html?spm=2114.13010208.99999999.261.mWmpl5 CP2102 FTDI]&lt;br /&gt;
*Breakout board mit einem AMS 1117 3.3V&lt;br /&gt;
*RFM69CW&lt;br /&gt;
*Status-LED&lt;br /&gt;
&lt;br /&gt;
==Schaltung==&lt;br /&gt;
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|LaCrosseGateway Platine Oberseite]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Selbstbau nano LaCrosse Gateway==&lt;br /&gt;
{| class=&amp;quot;galleryTable noFloat&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]&lt;br /&gt;
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]&lt;br /&gt;
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Platine nano LaCrosse Gateway==&lt;br /&gt;
Stand 05.2016 noch nicht fertig gestellt. &lt;br /&gt;
Der aktuelle Entwicklungsstand ist im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:lgw_nano_Platine_Prototyp.jpg|600px|thumb|left|Ein Protoyp der Platine für das nano LaCrosse Gateway]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tipps &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
==Löschen des kompletten Flash des ESP8266 mit dem esptool==&lt;br /&gt;
Aufgrund eines aktuell im espressif SDK vorhandenen Bugs, kann es passieren, dass das LaCrosseGateway nach dem Aufspielen der Firmware, mit einer Exception den Bootvorgang (nach &amp;quot;Start WIFI_STA&amp;quot;) abbricht und nicht mehr ordnungsgemäß starten kann. In diesem fall hilft nur noch das Löschen des kompletten Speichers des ESP8266 und das erneute Aufspielen der Firmware.&lt;br /&gt;
&lt;br /&gt;
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Dabei werden alle Einstellungen unwiderruflich gelöscht&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;&amp;lt;/dev/tty.SLAB_USBtoUART&amp;gt;&#039;&#039;&#039; Muss entsprechend angepasst werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Weiterführende Links=&lt;br /&gt;
Diskussionsthread aus dem Forum:&lt;br /&gt;
&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]&lt;br /&gt;
&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]&lt;br /&gt;
&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]&lt;br /&gt;
&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]&lt;br /&gt;
&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:IP Components]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:Temperatursensoren]]&lt;br /&gt;
[[Kategorie:Feuchtesensoren]]&lt;br /&gt;
[[Kategorie:Wetterstationen]]&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=JeeLink&amp;diff=11954</id>
		<title>JeeLink</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=JeeLink&amp;diff=11954"/>
		<updated>2015-08-12T11:39:36Z</updated>

		<summary type="html">&lt;p&gt;Wzut: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;JeeLink&#039;&#039;&#039; ist ein RF-Gerät im Formfaktor eines USB-Sticks mit externer Antenne.&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=JeeLink.jpg&lt;br /&gt;
|Bildbeschreibung=JeeLink mit Drahtantenne&lt;br /&gt;
|HWProtocol=PCA301, EC3000, RoomNode oder LaCrosse und EMT7110&lt;br /&gt;
|HWType=[[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=433/868/913 MHz&lt;br /&gt;
|HWChannels=?&lt;br /&gt;
|HWVoltage=5 V&lt;br /&gt;
|HWPowerConsumption=ca. 90 mA&lt;br /&gt;
|HWPoweredBy=USB&lt;br /&gt;
|HWSize=23*67*9mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#JeeLink 36_JeeLink.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=JeeLabs&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Vergleichbar mit dem [[CUL]] von Busware, ist der JeeLink ein USB-Stick, mit dem Funk-Hausautomations-Komponenten angebunden werden können. CUL und JeeLink unterscheiden sich im Funkmodul (CUL -&amp;gt; CC1101; JeeLink -&amp;gt; RF12B), die nicht miteinander kompatibel sind. Daher kann man auch keinen CUL als JeeLink-Ersatz nutzen!&lt;br /&gt;
&lt;br /&gt;
Den JeeLink gibt es in einer &lt;br /&gt;
* 433 MHz Version&lt;br /&gt;
* 868 MHz Version (Standard)&lt;br /&gt;
* 915 MHz Version (Betrieb in Europa nicht zugelassen)&lt;br /&gt;
&lt;br /&gt;
== Vorbereitung JeeLink == &lt;br /&gt;
Um mit dem JeeLink die jeweils gewünschten Signale empfangen zu können, ist er zunächst mit der passenden Firmware zu versorgen. Dies kann auf zwei Arten geschehen. Entweder durch das selber kompilieren der Software und das Flashen aus der Arduino IDE oder aus Fhem heraus mit einem aktuellen Firmwareimage das per update mit ausgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
=== Selber Kompilieren ===&lt;br /&gt;
[[Datei:JeeLink_flashen_1.jpg|mini|100px|rechts|Vorbereitung: Arduino einrichten]]&lt;br /&gt;
Um den JeeLink mit Fhem benutzen zu können, muss (mit der Arduino Software / Entwicklungsumgebung (IDE)) eine spezifische &amp;quot;Firmware&amp;quot; (ein Sketch) auf dem JeeLink installiert werden. Die generelle Vorbereitung für diese Aktion ist unabhängig vom benötigten Sketch und besteht aus den folgenden Schritten:&lt;br /&gt;
* Für Windows oder Mac OS X den passenden [http://www.ftdichip.com/Drivers/VCP.htm FTDI Treiber] installieren, unter Linux ist dieser meist schon vorhanden&lt;br /&gt;
* Installation der [http://arduino.cc/de/Guide/HomePage Arduino Software] für die benutzte Plattform (verfügbar sind Windows, Mac OS X und Linux)&lt;br /&gt;
* Je nach Sketch einbinden der [https://github.com/jcw/jeelib/archive/master.zip Jeelabs Library] in die Arduino IDE&lt;br /&gt;
* Herunterladen des benötigten Sketches (aus [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ FHEM/contrib])&lt;br /&gt;
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE&lt;br /&gt;
* Start der Arduino Software und JeeLink flashen&lt;br /&gt;
&lt;br /&gt;
=== JeeLink aus Arduino flashen ===&lt;br /&gt;
[[Datei:JeeLink_flashen_2.jpg|mini|100px|rechts|JeeLink Flashen]]&lt;br /&gt;
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE&lt;br /&gt;
* Start der Arduino Software&lt;br /&gt;
* Seriellen Port des JeeLink auswählen&lt;br /&gt;
* Einstellungen: in den Tools als Board &amp;quot;Arduino Uno&amp;quot; auswählen&lt;br /&gt;
* Sketch mit &amp;quot;Datei öffnen&amp;quot; auswählen&lt;br /&gt;
* Upload klicken&lt;br /&gt;
&lt;br /&gt;
=== JeeLink aus Fhem flashen ===&lt;br /&gt;
* Auf dem Fhem System muss &amp;lt;code&amp;gt;avrdude&amp;lt;/code&amp;gt; installiert sein. Das kann z.B. über die &amp;quot;normale&amp;quot; Linux Paketverwaltung geschehen.&lt;br /&gt;
* mit &amp;lt;code&amp;gt;set &amp;lt;JeeLinkDevice&amp;gt; flash [firmware]&amp;lt;/code&amp;gt; wird das Flashen angestossen&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;firmware&amp;lt;/code&amp;gt; kann LaCrosse, PCA301 oder EC3000 sein. Wenn &amp;lt;code&amp;gt;firmware&amp;lt;/code&amp;gt; nicht angegeben wird versucht FHEM den Namen der zu flashenden Firmware aus der zur Zeit installierten Firmware abzuleiten.&lt;br /&gt;
* im Fhem Log kann der Ausgang des Flashvorgangs kontrolliert werden&lt;br /&gt;
* über das &amp;lt;code&amp;gt;flashCommand&amp;lt;/code&amp;gt; Attribut lässt sich das Kommando zum Flashen an besondere Anforderungen anpassen&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit Fhem == &lt;br /&gt;
Um den JeeLink (erstmalig) mit Fhem benutzen zu können, muss dieser erfolgreich geflasht worden sein.&lt;br /&gt;
* JeeLink an den Fhem-Rechner anschließen&lt;br /&gt;
* Auf Linux Systemen kann es notwendig sein, mit &amp;lt;code&amp;gt;mknod /dev/ttyUSB0 c 188 0&amp;lt;/code&amp;gt; das Device anzulegen (bitte erst überprüfen, ob der Stick nicht automatisch erkannt wird)&lt;br /&gt;
&lt;br /&gt;
=== Definition in fhem.cfg ===&lt;br /&gt;
Erforderliche Definitionen in Fhem:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myJeeLink JeeLink /dev/ttyUSBx@57600&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;USBx&#039;&#039;&#039; ist anzupassen an die aktuell benutzte Schnittstelle, 0 wenn sonst nichts am USB-Port hängt&lt;br /&gt;
*x=0,1,2, usw.&lt;br /&gt;
&lt;br /&gt;
Die [http://fhem.de/commandref.html#autocreate autocreate-Funktion] sollte aktiv sein. Alle erkannten Devices (PCA301, LaCrosse Sensoren incl. IT+ Wetterstation WS1600, EMT7110, EC3000,  und RoomNodes) werden dann automatisch angelegt, sobald die jeweiligen Daten empfangen werden.&lt;br /&gt;
&lt;br /&gt;
Pro Geräte-Art/Protokoll muss ein eigener JeeLink mit dem passenden Sketch zum Empfang dieser Daten vorhanden sein (es kann jeweils nur ein Sketch im JeeLink aktiv sein und es gibt (zumindest derzeit (04/2014)) keinen Sketch, der mehr als eines der Protokolle abdeckt).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anmerkung:&#039;&#039;&#039; Der LaCrosse Sketch deckt sowohl die LaCrosse Temperatursensoren, die IT+ Wetterstation WS1600 als auch den Energieverbrauchssensor EMT7110 ab.&lt;br /&gt;
&lt;br /&gt;
=== PCA301 Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der &#039;&#039;PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung&#039;&#039; (PCA301-pcaSerial.zip) kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Details zur Benutzung finden sich im Artikel zur [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung|PCA301]].&lt;br /&gt;
&lt;br /&gt;
Unter Umständen werden die Signale der PCA301 nicht empfangen. Insbesondere mit selbst erstellten &amp;quot;JeeLinks&amp;quot; durch wahrscheinlich hohe Bauteiltoleranzen der RF12B Sendeeinheiten. Mit dem im Sketch voreingestellten rf12_center_freq = 0xA6FE (868,9500 MHz) bekommt man in diesem Fall keine Steckdose angelernt.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung über modifizierten Sketch ====&lt;br /&gt;
Durch Tests mittels &#039;&#039;set &amp;lt;myJeeLink&amp;gt; raw +&#039;&#039; bzw &#039;&#039;set &amp;lt;myJeeLink&amp;gt; raw -&#039;&#039; kann man dann ermitteln, ob die Funksignale z.B. ab A703 bis A715 empfangen werden. Das entspricht einem Frequenzbereich zwischen 868,9750 MHz und 869,0550 MHz.&lt;br /&gt;
Die Mitte ist die Lösung, die man dann im Sketch ändern muss:&lt;br /&gt;
:&amp;lt;code&amp;gt;static uint16_t rf12_center_freq = 0xA70C;&amp;lt;/code&amp;gt;&lt;br /&gt;
Anschließend auf den JeeLink neu flashen.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung über Attribut initCommands ====&lt;br /&gt;
Über das &amp;lt;code&amp;gt;initCommands&amp;lt;/code&amp;gt; lässt sich die gefundene Frequenz einstellen, ohne dass die Firmware verändert werden muss. &lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;JeeLinkDevice&amp;gt; initCommands &amp;lt;hhhh&amp;gt;h&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LaCrosse Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der LaCrosse Temperatursensoren, der IT+ Wetterstation WS1600  und des Energieverbrauchssensors EMT7110 kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In der neuesten Version unterstützt er auch den SuperJee&#039;&#039;&#039; (siehe auch diesen {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag´}}) mit folgenden Optionen:  &lt;br /&gt;
&lt;br /&gt;
* Option 1 (Dual RFM): &lt;br /&gt;
:Es kann ein zweiter RFM12B oder RFM69CW angeschlossen werden. Somit können zwei data rates (z.B. 17241 für TX29DTH und 8842 für WS 1600) gleichzeitig empfangen werden. Das geht natürlich auch mit dem toggle mode, nur ist es bei der Wetterstation ärgerlich, wenn man 30 Sekunden lang nichts empfängt und dadurch die alles entscheidende Windböe verpasst.&lt;br /&gt;
* Option 2 (BMP180): &lt;br /&gt;
:Da der Luftdruck in den Basisstationen gemessen wird, steht er für FHEM nicht zur Verfügung.&lt;br /&gt;
Deshalb kann nun optional ein BMP180 oder BMP085 angeschlossen werden. Auch hier wird automatisch erkannt, ob er vorhanden ist. &lt;br /&gt;
:Der BMP180 wird mit 3,3V versorgt und SDA mit PC4 und SCL mit PC5 verbunden (siehe die in diesem {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}} angehängte SuperJee-CL.png) &lt;br /&gt;
&lt;br /&gt;
==== Relay-Betrieb ====&lt;br /&gt;
Der LaCrosse Sketch ermöglicht auch den Relay-Betrieb zur Reichweitenverbesserung. Er funktioniert damit ähnlich wie z.&amp;amp;nbsp;B. ein WLAN Range Extender. Wenn der Sketch für den Relay-Betrieb konfiguriert ist, wird jedes empfangene IT+ Datenpaket, das eine gültige Prüfsumme hat, direkt nach dem Empfang wieder gesendet.&lt;br /&gt;
&lt;br /&gt;
Das Prinzip ist generell recht einfach:&lt;br /&gt;
# JeeLink im Sketch als Relais konfigurieren und flashen.&lt;br /&gt;
# Auf &amp;quot;halber Strecke&amp;quot; (d.h. irgendwo zwischen dem primären Sender und dem entfernten Empfänger) auf ein USB-Steckernetzteil stecken. Der JeeLink arbeitet in diesem Modus &amp;quot;autonom&amp;quot;, er benötigt also lediglich einen Spannungsversorgung.&lt;br /&gt;
&lt;br /&gt;
Der JeeLink empfängt und decodiert alle Protokolle, die er auch für FHEM unterstützt. Wenn er ein Paket empfangen hat (egal von welchem Sensor) und CRC OK war, dann sendet er es wieder aus. Der JeeLink am FHEM merkt keinen Unterschied. Falls ein Paket es doch bis zum FHEM direkt geschafft hat, kommt es dort zweimal an. Diese Situation muss in Fhem behandelt werden.&lt;br /&gt;
&lt;br /&gt;
Details zu diesem Betriebsmodus sind in diesen Forenbeiträgen ({{Link2Forum|Topic=14786|Message=165153|LinkText=LaCrosse}} bzw. {{Link2Forum|Topic=26494|Message=196648|LinkText=EMT7110}}) zu finden.&lt;br /&gt;
&lt;br /&gt;
==== Frequenzanpassung ====&lt;br /&gt;
Ab Version LaCrosseITPlusReader.10.1e&lt;br /&gt;
wurde der  Sketch so erweitert, dass man von FHEM aus die Frequenz setzen kann.&lt;br /&gt;
Dazu versteht er das neue Kommando &amp;quot;f&amp;quot;:&lt;br /&gt;
:&amp;lt;code&amp;gt;set myJeeLink raw 868295f&amp;lt;/code&amp;gt;&lt;br /&gt;
setzt die Frequenz auf 868295 kHz&lt;br /&gt;
&lt;br /&gt;
Die Frequenz kann im Bereich von 860480 kHz bis 879515 kHz in 5 kHz -Schritten eingestellt werden.&lt;br /&gt;
Details dazu in diesem {{Link2Forum|Topic=14786|Message=222541}} im Forum.&lt;br /&gt;
&lt;br /&gt;
==== Getestete iT+ Sensoren incl. Wetterstation WS 1600 ====&lt;br /&gt;
Die in der folgenden Liste (Quelle: {{Link2Forum|Topic=14786|Message=164801|LinkText=Fhem Forum}}) aufgeführten Sensoren wurden bisher erfolgreich getestet:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Bezeichnung !! Datenrate !! Link&lt;br /&gt;
|-&lt;br /&gt;
| TX25-IT    || 17.241 kbps&lt;br /&gt;
|-&lt;br /&gt;
| TX27-IT    || 17.241 kbps&lt;br /&gt;
|-&lt;br /&gt;
| TX29-IT    || 17.241 kbps&lt;br /&gt;
|-&lt;br /&gt;
| TX29DTH-IT || 17.241 kbps&lt;br /&gt;
|-&lt;br /&gt;
| TX37       || 17.241 kbps&lt;br /&gt;
|-&lt;br /&gt;
| TX35TH-IT  ||  9.579 kbps&lt;br /&gt;
|-&lt;br /&gt;
| TX35DTH-IT ||  9.579 kbps&lt;br /&gt;
|-&lt;br /&gt;
| 30.3143.IT || 17.241 kbps&lt;br /&gt;
|-&lt;br /&gt;
| 30.3144.IT || 17.241 kbps || ({{Link2Forum|Topic=17662|LinkText=Forenthread}})&lt;br /&gt;
|-&lt;br /&gt;
| 30.3147.IT ||      ? kbps&lt;br /&gt;
|-&lt;br /&gt;
| 30.3155WD  ||  9.579 kbps&lt;br /&gt;
|-&lt;br /&gt;
| 30.3156WD  ||  9.579 kbps&lt;br /&gt;
|-&lt;br /&gt;
|| WS 1600   ||  8.842 kbps || ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== EMT7110 ====&lt;br /&gt;
Der EMT7110 läuft mit einer Datenrate von 9.579 kbps (Details dazu in diesem {{Link2Forum|Topic=26494|LinkText=Forenthread}}).&lt;br /&gt;
&lt;br /&gt;
Werden Sensoren mit unterschiedlichen Datenraten gleichzeitig betrieben, ist der Toggle Modus einzustellen, z.B. mit dem Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;initCommands 30t v &amp;lt;/code&amp;gt;&lt;br /&gt;
wobei &#039;&#039;30t&#039;&#039; für &amp;quot;Toggle Modus, alle 30 Sekunden&amp;quot; steht.&lt;br /&gt;
&lt;br /&gt;
=== Energy Count 3000 Sketch ===&lt;br /&gt;
Der Sketch für die Unterstützung der Energy Count 3000 Zwischenstecker kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
Das Fhem Modul dazu (36_EC3000.pm) ist genau wie die Module für JeeLink (36_JeeLink.pm) und PCA301 (36_PCA301.pm) mittlerweile im aktuellen Fhem enthalten.&lt;br /&gt;
&lt;br /&gt;
=== JeeLabs RoomNode ===&lt;br /&gt;
Eine Beschreibung zum Empfang der JeeLabs RoomNodes ist in {{Link2Forum|Topic=11648|Message=92037 diesem Forenbeitrag] enthalten.&lt;br /&gt;
&lt;br /&gt;
=== JeeLink LED deaktivieren ===&lt;br /&gt;
Ein &amp;quot;dauerhaftes&amp;quot; Deaktivieren der LED des JeeLink ist möglich mit&lt;br /&gt;
:&amp;lt;code&amp;gt;define not.global notify global:INITIALIZED set myJeeLink led off&amp;lt;/code&amp;gt;&lt;br /&gt;
damit wird, sobald Fhem komplett gestartet ist, von Fhem der Befehl zum Ausschalten der LED gesendet. Alternativ kann mit &lt;br /&gt;
:&amp;lt;code&amp;gt;attr myJeeLink initCommands 0a v&amp;lt;/code&amp;gt;&lt;br /&gt;
dem Sketch die Anweisung gegeben werden, bei der Initialisierung die LED zu deaktivieren.&lt;br /&gt;
&#039;&#039;Quelle: dieser {{Link2Forum|Topic=27161|LinkText=Forenthread}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Weitergehende Informationen ===&lt;br /&gt;
Hinweise zum Betrieb eines JeeLink mit Fhem finden sich aktuell in größerer Anzahl in verschiedenen Diskussionen im Forum:&lt;br /&gt;
* {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301}} - Analyse des Funkprotokolls; Anfänge der Entstehung der PCA301 Unterstützung in Fhem.&lt;br /&gt;
* {{Link2Forum|Topic=14786|LinkText=JeeLink / LaCrosse}} - JeeLink Modul zur Einbindung von La Crosse&lt;br /&gt;
* {{Link2Forum|Topic=11648|Message=92019|LinkText=JeeLink / EC3000}} - Anfänge der Entstehung der EC3000 Unterstützung in Fhem.&lt;br /&gt;
* Hinweise zu {{Link2Forum|Topic=11648|Message=92037|LinkText=JeeLabs RoomNode}} und anderen JeeLab Nodes&lt;br /&gt;
* {{Link2Forum|Topic=25399|Message=183910|LinkText=JeeLink mit FHEM2FHEM nutzen}}&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme ==&lt;br /&gt;
* Beim Betrieb an einer [[AVM Fritz!Box|FritzBox]] wird der JeeLink unter Umständen als &#039;&#039;Für die Nutzung mit dem USB-Fernanschluss reserviert&#039;&#039; angezeigt. In diesem Fall muss die Reservierung deaktiviert/aufgehoben werden (Details dazu in diesem {{Link2Forum|Topic=16579|LinkText=Forenthread}}).&lt;br /&gt;
* Die Version &#039;&#039;v3c&#039;&#039; des JeeLink funktioniert (Stand 06/2015) nicht mit dem PCA301 Sketch (siehe Diskussion im Forum, startend {{Link2Forum|Topic=11648|Message=308267|LinkText=hier}}). Der LaCrosse Sketch funktioniert jedoch.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://jeelabs.com/products/jeelink JeeLabs], JeeLink Hersteller&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ PCA301 Sketch] auf sourceforge&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ LaCrosse Sketch] auf sourceforge&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ EC3000 Sketch] auf sourceforge&lt;br /&gt;
* [http://blog.moneybag.de/hausautomation-fhem-mit-funksteckdose-energiemessung-elv-pca-301/ Blog] zum Thema JeeLink zur Anbindung von PCA301 und von LaCrosse Temperatursensoren an Fhem&lt;br /&gt;
* [http://forum.fhem.de/index.php/topic,23217.0.html LevelSender] Tankfüllstand mit JeeLink empfangen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>Wzut</name></author>
	</entry>
</feed>