<?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=Hillbicks</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=Hillbicks"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/Hillbicks"/>
	<updated>2026-04-22T19:39:05Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AMAD&amp;diff=15279</id>
		<title>AMAD</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AMAD&amp;diff=15279"/>
		<updated>2016-05-03T18:24:07Z</updated>

		<summary type="html">&lt;p&gt;Hillbicks: online und offline aus state section in eine eigene section, devicestate, überführt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuern von Adroidgeräten und Anzeige von bestimmten Informationen dieser Geräte&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=74_AMAD.pm&lt;br /&gt;
|ModOwner=CoolTux &amp;lt;br /&amp;gt;([http://forum.fhem.de/index.php?action=profile;u=13684 Forum] / [[Benutzer:CoolTux|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Vorwort==&lt;br /&gt;
===Warum AMAD2===&lt;br /&gt;
Bei der Entwicklung von AMAD musste ich auf Grund meines damaligen Wissenstandes ein einfaches Konzept zum erhalt von Daten wählen. Hierfür wählte ich das Prinzip des pullens. Die Daten wurden alle 3 min vom Gerät angefordert.&lt;br /&gt;
Mit AMAD2, also der 2. Version von AMAD werden die Daten nun vom Androidgerät selbst nach FHEM gepusht. So kommen Statusänderungen quasi in Echtzeit als Reading ins Device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorstellung==&lt;br /&gt;
Dieses Modul liefert, &#039;&#039;&#039;in Verbindung mit der Android APP Automagic&#039;&#039;&#039;, diverse Informationen von Android Geräten.&lt;br /&gt;
Die AndroidAPP Automagic (welche nicht von mir stammt und 2.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Features / Funktionen ==&lt;br /&gt;
Im Auslieferiungszustand werden folgende Zustände dargestellt:&lt;br /&gt;
* installierte Android Version&lt;br /&gt;
* Zustand von Automagic auf dem Gerät&lt;br /&gt;
* Spracheingabe&lt;br /&gt;
* Bluetooth An/Aus&lt;br /&gt;
* Zustand einer definierten App (läuft aktiv im Vordergrund oder nicht?)&lt;br /&gt;
* verbundene Bluetoothgeräte, inklusive deren MAC Adresse&lt;br /&gt;
* aktuell abgespieltes Musikalbum des verwendeten Mediaplayers&lt;br /&gt;
* aktuell abgespielter Musikinterpret des verwendeten Mediaplayers&lt;br /&gt;
* aktuell abgespielter Musiktitel des verwendeten Mediaplayers&lt;br /&gt;
* Status des Androidgerätes - Online/Offline&lt;br /&gt;
* nächster Alarmtag&lt;br /&gt;
* nächste Alarmzeit&lt;br /&gt;
* Batteriestatus in %&lt;br /&gt;
* Ladestatus - Netztei angeschlossen / nicht angeschlossen&lt;br /&gt;
* Bildschirmstatus An/Aus&lt;br /&gt;
* Bildschirmhelligkeit&lt;br /&gt;
* Vollbildmodus An/Aus&lt;br /&gt;
* Bildschirmausrichtung Auto/Landscape/Portrait&lt;br /&gt;
* Standardlautstärke&lt;br /&gt;
* Media Lautstärke&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Mit etwas Einarbeitung können jegliche Informationen welche Automagic bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich eines eigenen Flows welcher seine Daten an die AMADCommBridge sendet. Das Modul gibt auch die Möglichkeit Androidgeräte zu steuern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul gibt Dir auch die Möglichkeit Deine Androidgeräte zu steuern. So können folgende Aktionen durchgeführt werden:&lt;br /&gt;
* Bluetooth Ein/Aus schalten&lt;br /&gt;
* zu einem bestimmten Bluetoothgerät wechseln/verbinden&lt;br /&gt;
* Status des Gerätes (Online,Offline)&lt;br /&gt;
* Mediaplayer steuern (Play, Stop, nächster Titel, vorheriger Titel)&lt;br /&gt;
* nächste Alarmzeit setzen&lt;br /&gt;
* ein Benachrichtigungston abspielen (Notificationsound)&lt;br /&gt;
* eine App auf dem Gerät öffnen&lt;br /&gt;
* eine URL im Browser öffnen&lt;br /&gt;
* Bildschirm An/Aus machen&lt;br /&gt;
* Bildschirmhelligkeit einstellen&lt;br /&gt;
* Vollbildmodus einschalten&lt;br /&gt;
* eine Nachricht senden welche am Bildschirm angezeigt wird&lt;br /&gt;
* Bildschirmausrichtung einstellen (Auto,Landscape,Portrait)&lt;br /&gt;
* neuen Statusreport des Gerätes anfordern&lt;br /&gt;
* Systembefehle setzen (Reboot)&lt;br /&gt;
* eine Nachricht senden welche angesagt wird (TTS)&lt;br /&gt;
* Medienlautstärke regeln&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit Fhem ==&lt;br /&gt;
Für all diese Aktionen und Informationen wird auf dem Androidgerät Automagic und ein so genannter Flow benötigt.&lt;br /&gt;
Die App Automagic Premium könnt Ihr Euch aus dem App Store installieren oder Ihr holt Euch die Testversion von [https://automagic4android.com/de/testversion hier], die Flows bekommt Ihr aus dem Flowset 74_AMADautomagicFlowset$VERSION.xml unter $FHEMINSTALL/FHEM/lib/&lt;br /&gt;
&lt;br /&gt;
AutomagicApp Anweisung&lt;br /&gt;
* installiert die App&lt;br /&gt;
* installiert das Flowset 74_AMADautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf Eurem Androidgerät. &#039;&#039;&#039;NOCH NICHT&#039;&#039;&#039; die Flows aktivieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AMAD &amp;lt;IP-ADRESSE&amp;gt; &amp;lt;WLANAP-SSID(&#039;s)&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;!!! Wichtig - Es dürfen ausschließlich nur IP Adressen verwendet werden, keine FQDN !!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define WandTabletWohnzimmer AMAD 192.168.0.23 TuxNetAP,Opa@@Zu@@Hause&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Anweisung erstellt zwei neues AMAD-Device im Raum AMAD.Der Parameter &amp;lt;IP-ADRESSE&amp;gt; legt die IP Adresse des Android Gerätes fest und der Parameter WLANAP-SSID die SSID Deines WLAN&#039;s. Es können mehrere SSID&#039;s mit angegeben werden, welche dann durch Komma getrennt sein müssen. Haben die SSID&#039;s Leerzeichen im Namen werde die Leerzeichen durch 2 @ aufgefüllt. Gibt es Androidgeräte welche nicht über WLAN sondern USB-Ethernet angeschlossen sind, ist die WLANAP-SSID mit &amp;quot;usb-ethernet&amp;quot; zu benennen&lt;br /&gt;
Das zweite Device ist die AMADCommBridge welche als Kommunikationsbrücke vom Androidgerät zu FHEM diehnt. !!!Comming Soon!!! Wer den Port ändern möchte, kann dies über das Attribut &amp;quot;port&amp;quot; tun. Ihr solltet aber wissen was Ihr tut, da dieser Port im HTTP Request Trigger der beiden Flows eingestellt ist. Demzufolge muß der Port dort auch geändert werden. Der Port für die Bridge kann ohne Probleme im Bridge Device mittels dem Attribut &amp;quot;port&amp;quot; verändert werden. &lt;br /&gt;
Der Port für die Bridge kann ohne Probleme im Bridge Device mittels dem Attribut &amp;quot;port&amp;quot; verändert werden.&lt;br /&gt;
&lt;br /&gt;
===AMAD Communication Bridge===&lt;br /&gt;
Beim ersten anlegen einer AMAD Deviceinstanz wird automatisch ein Gerät Namens AMADCommBridge im Raum AMAD angelegt. Dieses Gerät diehnt zur Kommunikation vom Androidgerät zu FHEM ohne das zuvor eine Anfrage von FHEM aus ging. Damit das Androidgerät die IP von FHEM kennt, muss diese sofort nach dem anlegen der Bridge über den set Befehl in ein entsprechendes Reading in die Bridge geschrieben werden. DAS IST SUPER WICHTIG UND FÜR DIE FUNKTION DER BRIDGE NOTWENDIG.&lt;br /&gt;
Bitte führt hierzu folgenden Befehl aus. set AMADCommBridge fhemServerIP &amp;lt;FHEM-IP&amp;gt;.&lt;br /&gt;
Als zweites Reading könnt Ihr expertMode setzen. Mit diesem Reading wird eine unmittelbare Komminikation mit FHEM erreicht ohne die Einschränkung über ein Notify gehen zu müssen und nur reine set Befehle ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JETZT bitte die Flows AKTIVIEREN!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fertig! Nach anlegen der Geräteinstanz und dem eintragen der fhemServerIP in der CommBridge sollten nach spätestens 15 Sekunden bereits die ersten Readings reinkommen. Nun wird alle 15 Sekunden probiert einen Status Request erfolgreich ab zu schließen. Wenn der Status sich über einen längeren Zeitraum nicht auf &amp;quot;activ&amp;quot; ändert, sollte man im Log nach eventuellen Fehlern suchen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt die Möglichkeit einer Abfragen vom Status jeglicher Geräte in FHEM über das Androidgerät und Auswertung auf dem Androidgerät.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Erstelle einen Flow mit einer HTTP Request Aktion mit folgendem Inhalt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
URL&lt;br /&gt;
http://{global_fhemip}:8090&lt;br /&gt;
&lt;br /&gt;
REQUEST METHODE&lt;br /&gt;
POST&lt;br /&gt;
&lt;br /&gt;
CONTENT TYP&lt;br /&gt;
Genereller Text&lt;br /&gt;
text/plain&lt;br /&gt;
&lt;br /&gt;
DATEN&lt;br /&gt;
(hier kommen die drei Werte für ein ReadingsVal Aufruf rein, getrennt durch Leerzeichen)&lt;br /&gt;
TempFeuchtSensorSchlafzimmer temperature 300&lt;br /&gt;
&lt;br /&gt;
(haken)Setze eigenen Header&lt;br /&gt;
FHEMDEVICE: {global_fhemdevice}&lt;br /&gt;
FHEMCMD: readingsval&lt;br /&gt;
&lt;br /&gt;
SPEICHERE ANTWORT ...&lt;br /&gt;
Variable&lt;br /&gt;
&lt;br /&gt;
VARIABLE&lt;br /&gt;
response&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Du erhälst dann den Rückgabewert in der Response Variablen. Diesen kannst Du dann innerhalb Deines Flows weiter verarbeiten. Z.B. Ansagetext.&lt;br /&gt;
&lt;br /&gt;
==Readings==&lt;br /&gt;
* airplanemode - Status des Flugmodus&lt;br /&gt;
* androidVersion - aktuell installierte Androidversion&lt;br /&gt;
* automagicState - Statusmeldungen von der AutomagicApp &#039;&#039;&#039;(Voraussetzung Android &amp;gt;4.3). Wer ein Android &amp;gt;4.3 hat und im Reading steht &amp;quot;wird nicht unterstützt&amp;quot;, muß in den Androideinstellungen unter Ton und Benachrichtigungen -&amp;gt; Benachrichtigungszugriff ein Haken setzen für Automagic&#039;&#039;&#039;&lt;br /&gt;
* bluetooth on/off - ist auf dem Gerät Bluetooth an oder aus&lt;br /&gt;
* checkActiveTask - Zustand einer zuvor definierten APP. 0=nicht aktiv oder nicht aktiv im Vordergrund, 1=aktiv im Vordergrund, &#039;&#039;&#039;siehe Hinweis unten&#039;&#039;&#039;&lt;br /&gt;
* connectedBTdevices - eine Liste der verbundenen Gerät&lt;br /&gt;
* connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Geräte&lt;br /&gt;
* currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers&lt;br /&gt;
* currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers&lt;br /&gt;
* currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers&lt;br /&gt;
* daydream - on/off Daydream gestartet oder nicht&lt;br /&gt;
* deviceState - Status des Androidgerätes. !!!Gibt nicht den tatsächlichen Status des Gerätes wieder!!! deviceState muss von Hand selbst gesetzt werden. (set DEVICE deviceState) z.B. über die Anwesenheitskontrolle. Ist Offline gesetzt, können keine set Befehle abgesetzt werden.&lt;br /&gt;
* dockingState - undocked/docked Status ob das Gerät in einer Dockinstation ist oder nicht.&lt;br /&gt;
* flow_SetCommands - active/inactive, gibt den Status des SetCommands Flow wieder&lt;br /&gt;
* flow_informations - active/inactive, gibt den Status des Informations Flow wieder&lt;br /&gt;
* flowsetVersionAtDevice - aktuell installiertes Flowset auf dem Device&lt;br /&gt;
* intentRadioName - zu letzt eingestellter Intent Radio Name&lt;br /&gt;
* intentRadioState - Status des IntentRadio Players&lt;br /&gt;
* keyguardSet - 0/1 Displaysperre gesetzt 0=nein 1=ja, bedeutet nicht das sie gerade aktiv ist&lt;br /&gt;
* lastSetCommandError - letzte Fehlermeldung vom set Befehl&lt;br /&gt;
* lastSetCommandState - letzter Status vom set Befehl, Befehl erfolgreich/nicht erfolgreich gesendet&lt;br /&gt;
* lastStatusRequestError - letzte Fehlermeldung vom statusRequest Befehl&lt;br /&gt;
* lastStatusRequestState - letzter Status vom statusRequest Befehl, Befehl erfolgreich/nicht erfolgreich gesendet&lt;br /&gt;
* nextAlarmDay - aktiver Alarmtag&lt;br /&gt;
* nextAlarmState - aktueller Status des Androidinternen Weckers&lt;br /&gt;
* nextAlarmTime - aktive Alarmzeit&lt;br /&gt;
* powerLevel - Status der Batterie in %&lt;br /&gt;
* powerPlugged - Netzteil angeschlossen? 0=NEIN, 1|2=JA&lt;br /&gt;
* screen - on locked/unlocked, off locked/unlocked zeigt an ob der Bildschirm an oder aus ist und gleichzeitig gesperrt oder nicht gesperrt&lt;br /&gt;
* screenBrightness - Bildschirmhelligkeit von 0-255&lt;br /&gt;
* screenFullscreen - Vollbildmodus (On,Off)&lt;br /&gt;
* screenOrientation - (Landscape,Portrait) Bildschirmausrichtung&lt;br /&gt;
* screenOrientationMode - (auto, manual) Modus für die Ausrichtung&lt;br /&gt;
* state - aktueller Status des Devices&lt;br /&gt;
* volume - Media Lautstärkewert&lt;br /&gt;
* volumeNotification - Benachrichtigungs Lautstärke&lt;br /&gt;
&lt;br /&gt;
Beim Reading checkActivTask muß zuvor der Packagename der zu prüfenden App als Attribut checkActiveTask angegeben werden. Beispiel: attr Nexus10Wohnzimmer checkActiveTask com.android.chrome für den Chrome Browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Befehle==&lt;br /&gt;
&lt;br /&gt;
===Set===&lt;br /&gt;
* activateVoiceInput - schaltet die Spracheingabe ein&lt;br /&gt;
* bluetooth - Schaltet Bluetooth on/off&lt;br /&gt;
* clearNotificationBar - (All,Automagic) löscht alle Meldungen oder nur die Automagic Meldungen in der Statusleiste&lt;br /&gt;
* currentFlowsetUpdate - fürt ein Flowset Update auf dem Device aus&lt;br /&gt;
* deviceState - setzt den Device Status Online/Offline. Siehe Readings&lt;br /&gt;
* installFlowSource - installiert einen Flow auf dem Device, das XML File muss unter /tmp/ liegen und die Endung xml haben. &#039;&#039;&#039;Bsp:&#039;&#039;&#039; set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml&lt;br /&gt;
* mediaPlayer - steuert den Standard Mediaplayer. play, stop, Titel zürück, Titel vor.&lt;br /&gt;
* nextAlarmTime - setzt die Alarmzeit. Geht aber nur innerhalb der nächsten 24Std.&lt;br /&gt;
* notifySndFile - spielt die angegebende Mediadatei auf dem Androidgerät ab. &#039;&#039;&#039;Die aufzurufende Mediadatei muß sich im Ordner /storage/emulated/0/Notifications/ befinden.&#039;&#039;&#039;&lt;br /&gt;
* screenBrightness - setzt die Bildschirmhelligkeit, von 0-255.&lt;br /&gt;
* screenMsg - versendet eine Bildschirmnachricht&lt;br /&gt;
* sendintent - sendet einen Intentstring Bsp: set $AMADDEVICE sendIntent org.smblott.intentradio.PLAY url http://stream.klassikradio.de/live/mp3-192/stream.klassikradio.de/play.m3u name Klassikradio, der erste Befehl ist die Aktion un der zweite das Extra. Es können immer zwei Extras mitgegeben werden.&lt;br /&gt;
* statusRequest - Fordert einen neuen Statusreport beim Device an. Es können nicht von allen Readings per statusRequest die Daten geholt werden. Einige wenige geben nur bei Statusänderung ihren Status wieder.&lt;br /&gt;
* timer - setzt einen Timer innerhalb der als Standard definierten ClockAPP auf dem Device. Es können nur Sekunden angegeben werden.&lt;br /&gt;
* ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird&lt;br /&gt;
* vibrate - lässt das Androidgerät vibrieren&lt;br /&gt;
* volume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossenen Lautsprecher&lt;br /&gt;
* volumeNotification - setzt die Benachrichtigungslautstärke.&lt;br /&gt;
&lt;br /&gt;
===Set abhängig von gesetzten Attributen===&lt;br /&gt;
* changetoBtDevice - wechselt zu einem anderen Bluetooth Gerät. &#039;&#039;&#039;Attribut setBluetoothDevice muß gesetzt sein. Siehe Hinweis unten!&#039;&#039;&#039;&lt;br /&gt;
* openApp - öffnet eine ausgewählte App. &#039;&#039;&#039;Attribut setOpenApp&#039;&#039;&#039;&lt;br /&gt;
* openURL - öffnet eine URL im Standardbrowser, sofern kein anderer Browser über das Attribut setOpenUrlBrowser ausgewählt wurde. &#039;&#039;&#039;Bsp:&#039;&#039;&#039; &#039;&#039;attr Tablet setOpenUrlBrowser de.ozerov.fully|de.ozerov.fully.MainActivity&#039;&#039;, das erste ist der Package Name und das zweite der Class Name&lt;br /&gt;
* screen - on/off/lock/unlock schaltet den Bildschirm ein/aus oder sperrt/entsperrt ihn, in den Automagic Einstellungen muss &amp;quot;Admin Funktion&amp;quot; gesetzt werden sonst funktioniert &amp;quot;Screen off&amp;quot; nicht. &#039;&#039;&#039;Attribut setScreenOnForTimer&#039;&#039;&#039; ändert die Zeit wie lange das Display an bleiben soll!&lt;br /&gt;
* screenFullscreen - Schaltet den Vollbildmodus on/off. &#039;&#039;&#039;Attribut setFullscreen&#039;&#039;&#039;&lt;br /&gt;
* screenLock - Sperrt den Bildschirm mit Pinabfrage. &#039;&#039;&#039;Attribut setScreenlockPIN&#039;&#039;&#039; - hier die Pin dafür eingeben. Erlaubt sind nur Zahlen. Es müßen mindestens 4 bis max 16 Zeichen sein.&lt;br /&gt;
* screenOrientation - Schaltet die Bildschirmausrichtung Auto/Landscape/Portait. &#039;&#039;&#039;Attribut setScreenOrientation&#039;&#039;&#039;&lt;br /&gt;
* system - setzt Systembefehle ab (nur bei gerootetet Geräen). reboot,shutdown,airplanemodeON (kann nur aktiviert werden) &#039;&#039;&#039;Attribut root&#039;&#039;&#039;, in den Automagic Einstellungen muss &amp;quot;Root Funktion&amp;quot; gesetzt werden&lt;br /&gt;
* setNotifySndFilePath - setzt den korrekten Systempfad zur Notifydatei &#039;&#039;&#039;(default ist /storage/emulated/0/Notifications/&#039;&#039;&#039;&lt;br /&gt;
* setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe &#039;&#039;&#039;(Werte zwischen 0.5 bis 4.0 in 0.5er Schritten) default ist 1.0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um openApp verwenden zu können, muss als Attribut der Package Name der App angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Um zwischen Bluetoothgeräten wechseln zu können, muß das Attribut setBluetoothDevice mit folgender Syntax gesetzt werden. &#039;&#039;attr &amp;lt;DEVICE&amp;gt; BTdeviceName1|MAC,BTDeviceName2|MAC&#039;&#039; Es muss zwingend darauf geachtet werden das beim BTdeviceName kein Leerzeichen vorhanden ist. Am besten zusammen oder mit Unterstrich. Achtet bei der MAC darauf das Ihr wirklich nach jeder zweiten Zahl auch einen : drin habt &#039;&#039;&#039;Beispiel:&#039;&#039;&#039; &#039;&#039;attr Nexus10Wohnzimmer setBluetoothDevice Logitech_BT_Adapter|AB:12:CD:34:EF:32,Anker_A3565|GH:56:IJ:78:KL:76&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==STATE==&lt;br /&gt;
* initialized - Ist der Status kurz nach einem define..&lt;br /&gt;
* active - die Geräteinstanz ist im aktiven Status.&lt;br /&gt;
* disabled - die Geräteinstanz wurde über das Attribut disable deaktiviert&lt;br /&gt;
&lt;br /&gt;
==deviceState==&lt;br /&gt;
* online - Das Gerät ist online und kann set Befehle entgegennehmen.&lt;br /&gt;
* offline - Ein Gerät wird in den folgenden 3 Szenarien in den Status offline gesetzt:&lt;br /&gt;
** Das Gerät wird mittels shutdown über FHEM runtergefahren. &lt;br /&gt;
** Der Airplainmod (Flugmodus) wird über FHEM aktiviert. &lt;br /&gt;
** Es wurde mehr als 5 mal ein statusRequest erfolglos und mehr als 3 mal ein set Command erfolglos abgeschickt.&lt;br /&gt;
Es bleibt also dem User überlassen das Gerät nach erneuter Verfügbarkeit wieder in den Status online zu setzen. Das kann z.B. über das Presence Modul erzeugt werden (set DEVICE deviceState online)&lt;br /&gt;
&lt;br /&gt;
==Anwendungsbeispiele==&lt;br /&gt;
=== Lademanagement ===&lt;br /&gt;
Ich habe die Ladegeräte für meine Androidgeräte an Funkschaltsteckdosen. ein DOIF schaltet bei unter 30% die Steckdose ein und bei über 90% wieder aus.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein einfaches DOIF Beispiel für ein Lademanagment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
... DOIF ([Nexus5Handy:powerLevel] &amp;lt; 30) (set LadenetzteilNexus5Handy:FILTER=STATE=off on) DOELSEIF ([Nexus5Handy:powerLevel] &amp;gt; 90) (set LadenetzteilNexus5Handy:FILTER=STATE=on off) DOELSE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wecker ===&lt;br /&gt;
Morgens lasse ich mich über mein Tablet im Schlafzimmer mit Musik wecken. Verwendet wird hierzu der wakeuptimer des RESIDENTS Modules. Das abspielen stoppe ich dann von Hand. Danach erfolgt noch eine Ansage wie das Wetter gerade ist und wird.&lt;br /&gt;
&lt;br /&gt;
=== Mediacenter ===&lt;br /&gt;
Mein 10&amp;quot; Tablet im Wohnzimmer ist Mediaplayer für das Wohnzimmer mit Bluetoothlautsprechern. Die Lautstärke wird automatisch runter gesetzt wenn die Fritzbox einen Anruf auf das Wohnzimmer Handgerät signalisiert.&lt;br /&gt;
&lt;br /&gt;
=== Sprachbefehl - Abfragen von Zuständen diverser Sensoren ===&lt;br /&gt;
Wenn ich die Spracheingabe aktiviere und nach der Temperatur im Wohnzimmer frage, bekomme ich diese angesagt.&lt;br /&gt;
&lt;br /&gt;
Der Teil im Feld Daten ist ein klassisches RadingsVal, halt nur ohne Komma und ohne Anführungszeichen&lt;br /&gt;
&lt;br /&gt;
[[Datei:Screenshot 2016-01-13-17-11-19.png|200px]]&lt;br /&gt;
&lt;br /&gt;
=== Schaltbefehle vom Androidgerät an FHEM senden ===&lt;br /&gt;
Hierfür richte bitte einen eigen Flow ein. Wie das genau geht, verrät Dir die Hilfe.&lt;br /&gt;
Du kannst einen ersten Eindruck bekommen wenn Du Dir den Flow VoiceControl an schaust, speziell die HTTP Request Aktion.&lt;br /&gt;
Als Aktion für Deinen eigenen Flow wählst Du HTTP Request mit folgendem Inhalt&lt;br /&gt;
&lt;br /&gt;
[[Datei:Screenshot 2016-01-13-17-22-16.png|200px]]&lt;br /&gt;
&lt;br /&gt;
Nun sollte Lampe1 angeschalten werden wenn der Flow ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
PS: Screenshots werden folgen&lt;br /&gt;
&lt;br /&gt;
== Bekannte Meldungen/Hinweise/Probleme ==&lt;br /&gt;
&amp;lt;code&amp;gt;PERL WARNING: Use of uninitialized value in hash element at /opt/fhem/FHEM/74_AMAD.pm line 145&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Meldung/Hinweis ist bekannt und es wird daran gearbeitet!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ich sage Danke==&lt;br /&gt;
&#039;&#039;Der größte Dank geht an meinen Mentor Andre (justme1968), er hat mir mit hilfreichen Tips geholfen Perlcode zu verstehen und Spaß am programmieren zu haben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Auch möchte ich mich bei Jens bedanken (jensb) welcher mir ebenfalls mit hilfreichen Tips bei meinen aller ersten Gehversuchen beim Perlcode schreiben unterstützt hat.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;So und nun noch ein besonderer Dank an pah (Prof. Dr. Peter Henning ), ohne seine Aussage &amp;quot;Keine Ahnung hatten wir alle mal, das ist keine Ausrede&amp;quot; hätte ich bestimmt nicht angefangen Interesse an Modulentwicklung zu zeigen :-)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Danke an Jürgen(ujaudio) und Andreas(scooty) die sich um die Übersetzung der Commandref ins Englische gekümmert haben&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Danke auch an Ronny(RoBra81) für seine tollte Idee und Umsetzung von eigenen AMAD Readings aus externen Flows.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Hillbicks</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=AMAD&amp;diff=15276</id>
		<title>AMAD</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=AMAD&amp;diff=15276"/>
		<updated>2016-05-03T17:51:13Z</updated>

		<summary type="html">&lt;p&gt;Hillbicks: /* STATE */ Erklärung für online und offline hinzugefuegt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuern von Adroidgeräten und Anzeige von bestimmten Informationen dieser Geräte&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=74_AMAD.pm&lt;br /&gt;
|ModOwner=CoolTux &amp;lt;br /&amp;gt;([http://forum.fhem.de/index.php?action=profile;u=13684 Forum] / [[Benutzer:CoolTux|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Vorwort==&lt;br /&gt;
===Warum AMAD2===&lt;br /&gt;
Bei der Entwicklung von AMAD musste ich auf Grund meines damaligen Wissenstandes ein einfaches Konzept zum erhalt von Daten wählen. Hierfür wählte ich das Prinzip des pullens. Die Daten wurden alle 3 min vom Gerät angefordert.&lt;br /&gt;
Mit AMAD2, also der 2. Version von AMAD werden die Daten nun vom Androidgerät selbst nach FHEM gepusht. So kommen Statusänderungen quasi in Echtzeit als Reading ins Device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorstellung==&lt;br /&gt;
Dieses Modul liefert, &#039;&#039;&#039;in Verbindung mit der Android APP Automagic&#039;&#039;&#039;, diverse Informationen von Android Geräten.&lt;br /&gt;
Die AndroidAPP Automagic (welche nicht von mir stammt und 2.90 Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Features / Funktionen ==&lt;br /&gt;
Im Auslieferiungszustand werden folgende Zustände dargestellt:&lt;br /&gt;
* installierte Android Version&lt;br /&gt;
* Zustand von Automagic auf dem Gerät&lt;br /&gt;
* Spracheingabe&lt;br /&gt;
* Bluetooth An/Aus&lt;br /&gt;
* Zustand einer definierten App (läuft aktiv im Vordergrund oder nicht?)&lt;br /&gt;
* verbundene Bluetoothgeräte, inklusive deren MAC Adresse&lt;br /&gt;
* aktuell abgespieltes Musikalbum des verwendeten Mediaplayers&lt;br /&gt;
* aktuell abgespielter Musikinterpret des verwendeten Mediaplayers&lt;br /&gt;
* aktuell abgespielter Musiktitel des verwendeten Mediaplayers&lt;br /&gt;
* Status des Androidgerätes - Online/Offline&lt;br /&gt;
* nächster Alarmtag&lt;br /&gt;
* nächste Alarmzeit&lt;br /&gt;
* Batteriestatus in %&lt;br /&gt;
* Ladestatus - Netztei angeschlossen / nicht angeschlossen&lt;br /&gt;
* Bildschirmstatus An/Aus&lt;br /&gt;
* Bildschirmhelligkeit&lt;br /&gt;
* Vollbildmodus An/Aus&lt;br /&gt;
* Bildschirmausrichtung Auto/Landscape/Portrait&lt;br /&gt;
* Standardlautstärke&lt;br /&gt;
* Media Lautstärke&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Mit etwas Einarbeitung können jegliche Informationen welche Automagic bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich eines eigenen Flows welcher seine Daten an die AMADCommBridge sendet. Das Modul gibt auch die Möglichkeit Androidgeräte zu steuern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Modul gibt Dir auch die Möglichkeit Deine Androidgeräte zu steuern. So können folgende Aktionen durchgeführt werden:&lt;br /&gt;
* Bluetooth Ein/Aus schalten&lt;br /&gt;
* zu einem bestimmten Bluetoothgerät wechseln/verbinden&lt;br /&gt;
* Status des Gerätes (Online,Offline)&lt;br /&gt;
* Mediaplayer steuern (Play, Stop, nächster Titel, vorheriger Titel)&lt;br /&gt;
* nächste Alarmzeit setzen&lt;br /&gt;
* ein Benachrichtigungston abspielen (Notificationsound)&lt;br /&gt;
* eine App auf dem Gerät öffnen&lt;br /&gt;
* eine URL im Browser öffnen&lt;br /&gt;
* Bildschirm An/Aus machen&lt;br /&gt;
* Bildschirmhelligkeit einstellen&lt;br /&gt;
* Vollbildmodus einschalten&lt;br /&gt;
* eine Nachricht senden welche am Bildschirm angezeigt wird&lt;br /&gt;
* Bildschirmausrichtung einstellen (Auto,Landscape,Portrait)&lt;br /&gt;
* neuen Statusreport des Gerätes anfordern&lt;br /&gt;
* Systembefehle setzen (Reboot)&lt;br /&gt;
* eine Nachricht senden welche angesagt wird (TTS)&lt;br /&gt;
* Medienlautstärke regeln&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit Fhem ==&lt;br /&gt;
Für all diese Aktionen und Informationen wird auf dem Androidgerät Automagic und ein so genannter Flow benötigt.&lt;br /&gt;
Die App Automagic Premium könnt Ihr Euch aus dem App Store installieren oder Ihr holt Euch die Testversion von [https://automagic4android.com/de/testversion hier], die Flows bekommt Ihr aus dem Flowset 74_AMADautomagicFlowset$VERSION.xml unter $FHEMINSTALL/FHEM/lib/&lt;br /&gt;
&lt;br /&gt;
AutomagicApp Anweisung&lt;br /&gt;
* installiert die App&lt;br /&gt;
* installiert das Flowset 74_AMADautomagicFlowset$VERSION.xml aus dem Ordner $INSTALLFHEM/FHEM/lib/ auf Eurem Androidgerät. &#039;&#039;&#039;NOCH NICHT&#039;&#039;&#039; die Flows aktivieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; AMAD &amp;lt;IP-ADRESSE&amp;gt; &amp;lt;WLANAP-SSID(&#039;s)&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;!!! Wichtig - Es dürfen ausschließlich nur IP Adressen verwendet werden, keine FQDN !!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define WandTabletWohnzimmer AMAD 192.168.0.23 TuxNetAP,Opa@@Zu@@Hause&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Anweisung erstellt zwei neues AMAD-Device im Raum AMAD.Der Parameter &amp;lt;IP-ADRESSE&amp;gt; legt die IP Adresse des Android Gerätes fest und der Parameter WLANAP-SSID die SSID Deines WLAN&#039;s. Es können mehrere SSID&#039;s mit angegeben werden, welche dann durch Komma getrennt sein müssen. Haben die SSID&#039;s Leerzeichen im Namen werde die Leerzeichen durch 2 @ aufgefüllt. Gibt es Androidgeräte welche nicht über WLAN sondern USB-Ethernet angeschlossen sind, ist die WLANAP-SSID mit &amp;quot;usb-ethernet&amp;quot; zu benennen&lt;br /&gt;
Das zweite Device ist die AMADCommBridge welche als Kommunikationsbrücke vom Androidgerät zu FHEM diehnt. !!!Comming Soon!!! Wer den Port ändern möchte, kann dies über das Attribut &amp;quot;port&amp;quot; tun. Ihr solltet aber wissen was Ihr tut, da dieser Port im HTTP Request Trigger der beiden Flows eingestellt ist. Demzufolge muß der Port dort auch geändert werden. Der Port für die Bridge kann ohne Probleme im Bridge Device mittels dem Attribut &amp;quot;port&amp;quot; verändert werden. &lt;br /&gt;
Der Port für die Bridge kann ohne Probleme im Bridge Device mittels dem Attribut &amp;quot;port&amp;quot; verändert werden.&lt;br /&gt;
&lt;br /&gt;
===AMAD Communication Bridge===&lt;br /&gt;
Beim ersten anlegen einer AMAD Deviceinstanz wird automatisch ein Gerät Namens AMADCommBridge im Raum AMAD angelegt. Dieses Gerät diehnt zur Kommunikation vom Androidgerät zu FHEM ohne das zuvor eine Anfrage von FHEM aus ging. Damit das Androidgerät die IP von FHEM kennt, muss diese sofort nach dem anlegen der Bridge über den set Befehl in ein entsprechendes Reading in die Bridge geschrieben werden. DAS IST SUPER WICHTIG UND FÜR DIE FUNKTION DER BRIDGE NOTWENDIG.&lt;br /&gt;
Bitte führt hierzu folgenden Befehl aus. set AMADCommBridge fhemServerIP &amp;lt;FHEM-IP&amp;gt;.&lt;br /&gt;
Als zweites Reading könnt Ihr expertMode setzen. Mit diesem Reading wird eine unmittelbare Komminikation mit FHEM erreicht ohne die Einschränkung über ein Notify gehen zu müssen und nur reine set Befehle ausführen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JETZT bitte die Flows AKTIVIEREN!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fertig! Nach anlegen der Geräteinstanz und dem eintragen der fhemServerIP in der CommBridge sollten nach spätestens 15 Sekunden bereits die ersten Readings reinkommen. Nun wird alle 15 Sekunden probiert einen Status Request erfolgreich ab zu schließen. Wenn der Status sich über einen längeren Zeitraum nicht auf &amp;quot;activ&amp;quot; ändert, sollte man im Log nach eventuellen Fehlern suchen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt die Möglichkeit einer Abfragen vom Status jeglicher Geräte in FHEM über das Androidgerät und Auswertung auf dem Androidgerät.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel:&#039;&#039;&#039;&lt;br /&gt;
Erstelle einen Flow mit einer HTTP Request Aktion mit folgendem Inhalt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
URL&lt;br /&gt;
http://{global_fhemip}:8090&lt;br /&gt;
&lt;br /&gt;
REQUEST METHODE&lt;br /&gt;
POST&lt;br /&gt;
&lt;br /&gt;
CONTENT TYP&lt;br /&gt;
Genereller Text&lt;br /&gt;
text/plain&lt;br /&gt;
&lt;br /&gt;
DATEN&lt;br /&gt;
(hier kommen die drei Werte für ein ReadingsVal Aufruf rein, getrennt durch Leerzeichen)&lt;br /&gt;
TempFeuchtSensorSchlafzimmer temperature 300&lt;br /&gt;
&lt;br /&gt;
(haken)Setze eigenen Header&lt;br /&gt;
FHEMDEVICE: {global_fhemdevice}&lt;br /&gt;
FHEMCMD: readingsval&lt;br /&gt;
&lt;br /&gt;
SPEICHERE ANTWORT ...&lt;br /&gt;
Variable&lt;br /&gt;
&lt;br /&gt;
VARIABLE&lt;br /&gt;
response&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Du erhälst dann den Rückgabewert in der Response Variablen. Diesen kannst Du dann innerhalb Deines Flows weiter verarbeiten. Z.B. Ansagetext.&lt;br /&gt;
&lt;br /&gt;
==Readings==&lt;br /&gt;
* airplanemode - Status des Flugmodus&lt;br /&gt;
* androidVersion - aktuell installierte Androidversion&lt;br /&gt;
* automagicState - Statusmeldungen von der AutomagicApp &#039;&#039;&#039;(Voraussetzung Android &amp;gt;4.3). Wer ein Android &amp;gt;4.3 hat und im Reading steht &amp;quot;wird nicht unterstützt&amp;quot;, muß in den Androideinstellungen unter Ton und Benachrichtigungen -&amp;gt; Benachrichtigungszugriff ein Haken setzen für Automagic&#039;&#039;&#039;&lt;br /&gt;
* bluetooth on/off - ist auf dem Gerät Bluetooth an oder aus&lt;br /&gt;
* checkActiveTask - Zustand einer zuvor definierten APP. 0=nicht aktiv oder nicht aktiv im Vordergrund, 1=aktiv im Vordergrund, &#039;&#039;&#039;siehe Hinweis unten&#039;&#039;&#039;&lt;br /&gt;
* connectedBTdevices - eine Liste der verbundenen Gerät&lt;br /&gt;
* connectedBTdevicesMAC - eine Liste der MAC Adressen aller verbundender BT Geräte&lt;br /&gt;
* currentMusicAlbum - aktuell abgespieltes Musikalbum des verwendeten Mediaplayers&lt;br /&gt;
* currentMusicArtist - aktuell abgespielter Musikinterpret des verwendeten Mediaplayers&lt;br /&gt;
* currentMusicTrack - aktuell abgespielter Musiktitel des verwendeten Mediaplayers&lt;br /&gt;
* daydream - on/off Daydream gestartet oder nicht&lt;br /&gt;
* deviceState - Status des Androidgerätes. !!!Gibt nicht den tatsächlichen Status des Gerätes wieder!!! deviceState muss von Hand selbst gesetzt werden. (set DEVICE deviceState) z.B. über die Anwesenheitskontrolle. Ist Offline gesetzt, können keine set Befehle abgesetzt werden.&lt;br /&gt;
* dockingState - undocked/docked Status ob das Gerät in einer Dockinstation ist oder nicht.&lt;br /&gt;
* flow_SetCommands - active/inactive, gibt den Status des SetCommands Flow wieder&lt;br /&gt;
* flow_informations - active/inactive, gibt den Status des Informations Flow wieder&lt;br /&gt;
* flowsetVersionAtDevice - aktuell installiertes Flowset auf dem Device&lt;br /&gt;
* intentRadioName - zu letzt eingestellter Intent Radio Name&lt;br /&gt;
* intentRadioState - Status des IntentRadio Players&lt;br /&gt;
* keyguardSet - 0/1 Displaysperre gesetzt 0=nein 1=ja, bedeutet nicht das sie gerade aktiv ist&lt;br /&gt;
* lastSetCommandError - letzte Fehlermeldung vom set Befehl&lt;br /&gt;
* lastSetCommandState - letzter Status vom set Befehl, Befehl erfolgreich/nicht erfolgreich gesendet&lt;br /&gt;
* lastStatusRequestError - letzte Fehlermeldung vom statusRequest Befehl&lt;br /&gt;
* lastStatusRequestState - letzter Status vom statusRequest Befehl, Befehl erfolgreich/nicht erfolgreich gesendet&lt;br /&gt;
* nextAlarmDay - aktiver Alarmtag&lt;br /&gt;
* nextAlarmState - aktueller Status des Androidinternen Weckers&lt;br /&gt;
* nextAlarmTime - aktive Alarmzeit&lt;br /&gt;
* powerLevel - Status der Batterie in %&lt;br /&gt;
* powerPlugged - Netzteil angeschlossen? 0=NEIN, 1|2=JA&lt;br /&gt;
* screen - on locked/unlocked, off locked/unlocked zeigt an ob der Bildschirm an oder aus ist und gleichzeitig gesperrt oder nicht gesperrt&lt;br /&gt;
* screenBrightness - Bildschirmhelligkeit von 0-255&lt;br /&gt;
* screenFullscreen - Vollbildmodus (On,Off)&lt;br /&gt;
* screenOrientation - (Landscape,Portrait) Bildschirmausrichtung&lt;br /&gt;
* screenOrientationMode - (auto, manual) Modus für die Ausrichtung&lt;br /&gt;
* state - aktueller Status des Devices&lt;br /&gt;
* volume - Media Lautstärkewert&lt;br /&gt;
* volumeNotification - Benachrichtigungs Lautstärke&lt;br /&gt;
&lt;br /&gt;
Beim Reading checkActivTask muß zuvor der Packagename der zu prüfenden App als Attribut checkActiveTask angegeben werden. Beispiel: attr Nexus10Wohnzimmer checkActiveTask com.android.chrome für den Chrome Browser. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Befehle==&lt;br /&gt;
&lt;br /&gt;
===Set===&lt;br /&gt;
* activateVoiceInput - schaltet die Spracheingabe ein&lt;br /&gt;
* bluetooth - Schaltet Bluetooth on/off&lt;br /&gt;
* clearNotificationBar - (All,Automagic) löscht alle Meldungen oder nur die Automagic Meldungen in der Statusleiste&lt;br /&gt;
* currentFlowsetUpdate - fürt ein Flowset Update auf dem Device aus&lt;br /&gt;
* deviceState - setzt den Device Status Online/Offline. Siehe Readings&lt;br /&gt;
* installFlowSource - installiert einen Flow auf dem Device, das XML File muss unter /tmp/ liegen und die Endung xml haben. &#039;&#039;&#039;Bsp:&#039;&#039;&#039; set TabletWohnzimmer installFlowSource WlanUebwerwachen.xml&lt;br /&gt;
* mediaPlayer - steuert den Standard Mediaplayer. play, stop, Titel zürück, Titel vor.&lt;br /&gt;
* nextAlarmTime - setzt die Alarmzeit. Geht aber nur innerhalb der nächsten 24Std.&lt;br /&gt;
* notifySndFile - spielt die angegebende Mediadatei auf dem Androidgerät ab. &#039;&#039;&#039;Die aufzurufende Mediadatei muß sich im Ordner /storage/emulated/0/Notifications/ befinden.&#039;&#039;&#039;&lt;br /&gt;
* screenBrightness - setzt die Bildschirmhelligkeit, von 0-255.&lt;br /&gt;
* screenMsg - versendet eine Bildschirmnachricht&lt;br /&gt;
* sendintent - sendet einen Intentstring Bsp: set $AMADDEVICE sendIntent org.smblott.intentradio.PLAY url http://stream.klassikradio.de/live/mp3-192/stream.klassikradio.de/play.m3u name Klassikradio, der erste Befehl ist die Aktion un der zweite das Extra. Es können immer zwei Extras mitgegeben werden.&lt;br /&gt;
* statusRequest - Fordert einen neuen Statusreport beim Device an. Es können nicht von allen Readings per statusRequest die Daten geholt werden. Einige wenige geben nur bei Statusänderung ihren Status wieder.&lt;br /&gt;
* timer - setzt einen Timer innerhalb der als Standard definierten ClockAPP auf dem Device. Es können nur Sekunden angegeben werden.&lt;br /&gt;
* ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird&lt;br /&gt;
* vibrate - lässt das Androidgerät vibrieren&lt;br /&gt;
* volume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher und per Klinkenstecker angeschlossenen Lautsprecher&lt;br /&gt;
* volumeNotification - setzt die Benachrichtigungslautstärke.&lt;br /&gt;
&lt;br /&gt;
===Set abhängig von gesetzten Attributen===&lt;br /&gt;
* changetoBtDevice - wechselt zu einem anderen Bluetooth Gerät. &#039;&#039;&#039;Attribut setBluetoothDevice muß gesetzt sein. Siehe Hinweis unten!&#039;&#039;&#039;&lt;br /&gt;
* openApp - öffnet eine ausgewählte App. &#039;&#039;&#039;Attribut setOpenApp&#039;&#039;&#039;&lt;br /&gt;
* openURL - öffnet eine URL im Standardbrowser, sofern kein anderer Browser über das Attribut setOpenUrlBrowser ausgewählt wurde. &#039;&#039;&#039;Bsp:&#039;&#039;&#039; &#039;&#039;attr Tablet setOpenUrlBrowser de.ozerov.fully|de.ozerov.fully.MainActivity&#039;&#039;, das erste ist der Package Name und das zweite der Class Name&lt;br /&gt;
* screen - on/off/lock/unlock schaltet den Bildschirm ein/aus oder sperrt/entsperrt ihn, in den Automagic Einstellungen muss &amp;quot;Admin Funktion&amp;quot; gesetzt werden sonst funktioniert &amp;quot;Screen off&amp;quot; nicht. &#039;&#039;&#039;Attribut setScreenOnForTimer&#039;&#039;&#039; ändert die Zeit wie lange das Display an bleiben soll!&lt;br /&gt;
* screenFullscreen - Schaltet den Vollbildmodus on/off. &#039;&#039;&#039;Attribut setFullscreen&#039;&#039;&#039;&lt;br /&gt;
* screenLock - Sperrt den Bildschirm mit Pinabfrage. &#039;&#039;&#039;Attribut setScreenlockPIN&#039;&#039;&#039; - hier die Pin dafür eingeben. Erlaubt sind nur Zahlen. Es müßen mindestens 4 bis max 16 Zeichen sein.&lt;br /&gt;
* screenOrientation - Schaltet die Bildschirmausrichtung Auto/Landscape/Portait. &#039;&#039;&#039;Attribut setScreenOrientation&#039;&#039;&#039;&lt;br /&gt;
* system - setzt Systembefehle ab (nur bei gerootetet Geräen). reboot,shutdown,airplanemodeON (kann nur aktiviert werden) &#039;&#039;&#039;Attribut root&#039;&#039;&#039;, in den Automagic Einstellungen muss &amp;quot;Root Funktion&amp;quot; gesetzt werden&lt;br /&gt;
* setNotifySndFilePath - setzt den korrekten Systempfad zur Notifydatei &#039;&#039;&#039;(default ist /storage/emulated/0/Notifications/&#039;&#039;&#039;&lt;br /&gt;
* setTtsMsgSpeed - setzt die Sprachgeschwindigkeit bei der Sprachausgabe &#039;&#039;&#039;(Werte zwischen 0.5 bis 4.0 in 0.5er Schritten) default ist 1.0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um openApp verwenden zu können, muss als Attribut der Package Name der App angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Um zwischen Bluetoothgeräten wechseln zu können, muß das Attribut setBluetoothDevice mit folgender Syntax gesetzt werden. &#039;&#039;attr &amp;lt;DEVICE&amp;gt; BTdeviceName1|MAC,BTDeviceName2|MAC&#039;&#039; Es muss zwingend darauf geachtet werden das beim BTdeviceName kein Leerzeichen vorhanden ist. Am besten zusammen oder mit Unterstrich. Achtet bei der MAC darauf das Ihr wirklich nach jeder zweiten Zahl auch einen : drin habt &#039;&#039;&#039;Beispiel:&#039;&#039;&#039; &#039;&#039;attr Nexus10Wohnzimmer setBluetoothDevice Logitech_BT_Adapter|AB:12:CD:34:EF:32,Anker_A3565|GH:56:IJ:78:KL:76&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==STATE==&lt;br /&gt;
* initialized - Ist der Status kurz nach einem define..&lt;br /&gt;
* active - die Geräteinstanz ist im aktiven Status.&lt;br /&gt;
* disabled - die Geräteinstanz wurde über das Attribut disable deaktiviert&lt;br /&gt;
* online - Das Gerät ist online und kann set Befehle entgegennehmen.&lt;br /&gt;
* offline - Ein Gerät wird in den folgenden 3 Szenarien in den Status offline gesetzt:&lt;br /&gt;
** Das Gerät wird mittels shutdown über FHEM runtergefahren. &lt;br /&gt;
** Der Airplainmod (Flugmodus) wird über FHEM aktiviert. &lt;br /&gt;
** Es wurde mehr als 5 mal ein statusRequest erfolglos und mehr als 3 mal ein set Command erfolglos abgeschickt.&lt;br /&gt;
Es bleibt also dem User überlassen das Gerät nach erneuter Verfügbarkeit wieder in den Status online zu setzen. Das kann z.B. über das Presence Modul erzeugt werden (set DEVICE deviceState online)&lt;br /&gt;
&lt;br /&gt;
==Anwendungsbeispiele==&lt;br /&gt;
=== Lademanagement ===&lt;br /&gt;
Ich habe die Ladegeräte für meine Androidgeräte an Funkschaltsteckdosen. ein DOIF schaltet bei unter 30% die Steckdose ein und bei über 90% wieder aus.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein einfaches DOIF Beispiel für ein Lademanagment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
... DOIF ([Nexus5Handy:powerLevel] &amp;lt; 30) (set LadenetzteilNexus5Handy:FILTER=STATE=off on) DOELSEIF ([Nexus5Handy:powerLevel] &amp;gt; 90) (set LadenetzteilNexus5Handy:FILTER=STATE=on off) DOELSE&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wecker ===&lt;br /&gt;
Morgens lasse ich mich über mein Tablet im Schlafzimmer mit Musik wecken. Verwendet wird hierzu der wakeuptimer des RESIDENTS Modules. Das abspielen stoppe ich dann von Hand. Danach erfolgt noch eine Ansage wie das Wetter gerade ist und wird.&lt;br /&gt;
&lt;br /&gt;
=== Mediacenter ===&lt;br /&gt;
Mein 10&amp;quot; Tablet im Wohnzimmer ist Mediaplayer für das Wohnzimmer mit Bluetoothlautsprechern. Die Lautstärke wird automatisch runter gesetzt wenn die Fritzbox einen Anruf auf das Wohnzimmer Handgerät signalisiert.&lt;br /&gt;
&lt;br /&gt;
=== Sprachbefehl - Abfragen von Zuständen diverser Sensoren ===&lt;br /&gt;
Wenn ich die Spracheingabe aktiviere und nach der Temperatur im Wohnzimmer frage, bekomme ich diese angesagt.&lt;br /&gt;
&lt;br /&gt;
Der Teil im Feld Daten ist ein klassisches RadingsVal, halt nur ohne Komma und ohne Anführungszeichen&lt;br /&gt;
&lt;br /&gt;
[[Datei:Screenshot 2016-01-13-17-11-19.png|200px]]&lt;br /&gt;
&lt;br /&gt;
=== Schaltbefehle vom Androidgerät an FHEM senden ===&lt;br /&gt;
Hierfür richte bitte einen eigen Flow ein. Wie das genau geht, verrät Dir die Hilfe.&lt;br /&gt;
Du kannst einen ersten Eindruck bekommen wenn Du Dir den Flow VoiceControl an schaust, speziell die HTTP Request Aktion.&lt;br /&gt;
Als Aktion für Deinen eigenen Flow wählst Du HTTP Request mit folgendem Inhalt&lt;br /&gt;
&lt;br /&gt;
[[Datei:Screenshot 2016-01-13-17-22-16.png|200px]]&lt;br /&gt;
&lt;br /&gt;
Nun sollte Lampe1 angeschalten werden wenn der Flow ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
PS: Screenshots werden folgen&lt;br /&gt;
&lt;br /&gt;
== Bekannte Meldungen/Hinweise/Probleme ==&lt;br /&gt;
&amp;lt;code&amp;gt;PERL WARNING: Use of uninitialized value in hash element at /opt/fhem/FHEM/74_AMAD.pm line 145&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Meldung/Hinweis ist bekannt und es wird daran gearbeitet!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ich sage Danke==&lt;br /&gt;
&#039;&#039;Der größte Dank geht an meinen Mentor Andre (justme1968), er hat mir mit hilfreichen Tips geholfen Perlcode zu verstehen und Spaß am programmieren zu haben.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Auch möchte ich mich bei Jens bedanken (jensb) welcher mir ebenfalls mit hilfreichen Tips bei meinen aller ersten Gehversuchen beim Perlcode schreiben unterstützt hat.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;So und nun noch ein besonderer Dank an pah (Prof. Dr. Peter Henning ), ohne seine Aussage &amp;quot;Keine Ahnung hatten wir alle mal, das ist keine Ausrede&amp;quot; hätte ich bestimmt nicht angefangen Interesse an Modulentwicklung zu zeigen :-)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Danke an Jürgen(ujaudio) und Andreas(scooty) die sich um die Übersetzung der Commandref ins Englische gekümmert haben&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Danke auch an Ronny(RoBra81) für seine tollte Idee und Umsetzung von eigenen AMAD Readings aus externen Flows.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Hillbicks</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=XBMC&amp;diff=13247</id>
		<title>XBMC</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=XBMC&amp;diff=13247"/>
		<updated>2015-12-14T19:56:54Z</updated>

		<summary type="html">&lt;p&gt;Hillbicks: Anleitung fuer thumbnails im http frontend hinzugefuegt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Abspielen von Medien (Musik, Video, Bilder)&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=Multimedia&lt;br /&gt;
|ModTechName=70_XBMC.pm&lt;br /&gt;
|ModOwner={{Link2FU|6776|vbs}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KODI&#039;&#039;&#039; (früher XBox Media Center (XBMC) genannt) ist eine unter den Bestimmungen der GPL erhältliche freie Media-Center Software. Sie dient dem Abspielen von Videos, Bildern und Musik von DVD, Festplatte und Server sowie der Wiedergabe von Audio- und Video-Datenströmen aus dem Internet. (Quelle: [http://kodi.tv/ kodi.tv])&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Media-Center System, das mit diesem Modul zusammenarbeitet, ist das aus einem XBMC Fork entstandene [https://plex.tv PLEX Media-Server] System.&lt;br /&gt;
&lt;br /&gt;
Aktuelle Versionen von Plex Home Theater haben nur noch eine sehr eingeschränkte Kompatibilität zum XBMC/KODI API und zeigen z.B. keine Informationen mehr über die aktuell gespielten Medien an. Die Beta-Version eines plex-spezifischen Moduls wird in diesem {{Link2Forum|Topic=43052|Message=353477|LinkText=Post im Forum}} vorgestellt. &lt;br /&gt;
&lt;br /&gt;
== Zielsetzung ==&lt;br /&gt;
Dieses Modul ermöglicht das Steuern und Empfangen von Events von KODI und PLEX. Unter anderen sind damit vielfältige Verknüpfungen von Aktoren und &lt;br /&gt;
XBMC/Plex möglich.&lt;br /&gt;
&lt;br /&gt;
Aktuelle Plex Home Theater (PHT) Versionen (ab etwa mitte November)  liefern keine Informationen mehr zum abgespielten Titel (currentTitle,currentAlbum,...) sondern nur noch zum TransportState. Der Grund dafür ist noch nicht klar.&lt;br /&gt;
&lt;br /&gt;
== Einbindung in Fhem ==&lt;br /&gt;
&lt;br /&gt;
Für diese Modul wird das Perl JSON Modul benötigt. Auf einem Debian-basierten System (z.B RaspberryPI o.ä.) kann man das mit &lt;br /&gt;
dem folgenden Befehl installieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libjson-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispieldefinition&#039;&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;define wz_XBMC XBMC &amp;lt;IP-Adresse&amp;gt; tcp &amp;lt;USERNAME&amp;gt; &amp;lt;PASSWORT&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr wz_XBMC devStateIcon opened:rc_GREEN:on disconnected:rc_RED:off Initialized:message_socket_disabled&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erfolgreich getestet unter den Versionen&lt;br /&gt;
&#039;&#039;KODI 14 und fhem 5.6&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Lichtsteuerung durch KODI oder PLEX ===&lt;br /&gt;
Im folgenden Beispiel werden beim Starten eines Films die Lichter ausgeschaltet. Sobald die Pause-Taste gedrückt wird, wird das Licht wieder eingeschaltet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define notify_KODI_status notify wz_KODI:playStatus.* { if (ReadingsVal(&amp;quot;wz_KODI&amp;quot;, &amp;quot;type&amp;quot;, &amp;quot;&amp;quot;) eq &amp;quot;movie&amp;quot;){&lt;br /&gt;
   if (ReadingsVal(&amp;quot;wz_KODI&amp;quot;, &amp;quot;playStatus&amp;quot;, &amp;quot;&amp;quot;) eq &amp;quot;playing&amp;quot;){&lt;br /&gt;
       fhem(&amp;quot;set FS20_Licht off&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    if (ReadingsVal(&amp;quot;wz_KODI&amp;quot;, &amp;quot;playStatus&amp;quot;, &amp;quot;&amp;quot;) eq &amp;quot;paused&amp;quot;){&lt;br /&gt;
       fhem(&amp;quot;set FS20_Licht on&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des Moduls [[LightScene]] kann man den voherigen Status der einzelnen Lampen auch speichern und nach dem Filmende wiederherstellen.&lt;br /&gt;
Anbei ein Code Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wz_KODI:playStatus.* {&lt;br /&gt;
  my $media = ReadingsVal(&amp;quot;wz_KODI&amp;quot;,&amp;quot;currentMedia&amp;quot;,&amp;quot;none&amp;quot;);&lt;br /&gt;
  my $isPlaying = ReadingsVal(&amp;quot;wz_KODI&amp;quot;,&amp;quot;playStatus&amp;quot;,&amp;quot;n/a&amp;quot;) eq &amp;quot;playing&amp;quot;;&lt;br /&gt;
  my $is3d = ReadingsVal(&amp;quot;wz_KODI&amp;quot;,&amp;quot;3dfile&amp;quot;,&amp;quot;n/a&amp;quot;) eq &amp;quot;on&amp;quot;;&lt;br /&gt;
  my $currentLightScene = Value(&amp;quot;kino_licht&amp;quot;);&lt;br /&gt;
  Log 3, &amp;quot;Wiedergegebene Datei: &amp;quot; . $media . &amp;quot; isPlaying: &amp;quot; . $isPlaying. &amp;quot; is3d: &amp;quot; . $is3d . &amp;quot; currentLightScene: &amp;quot; . $currentLightScene;&lt;br /&gt;
  if ($is3d &amp;amp;&amp;amp; $isPlaying) {&lt;br /&gt;
     if ($currentLightScene ne &amp;quot;3d_movie&amp;quot;) {        &lt;br /&gt;
        Log 3, &amp;quot;Speichere aktuellen Zustand als temporäre Szene und ändere kino_licht scene auf 3d_movie...&amp;quot;;&lt;br /&gt;
        fhem(&amp;quot;set kino_licht save tmp_pre_movie_state;&amp;quot;);&lt;br /&gt;
        fhem(&amp;quot;set kino_licht scene 3d_movie;&amp;quot;);        &lt;br /&gt;
     }&lt;br /&gt;
  } elsif ($is3d &amp;amp;&amp;amp; $currentLightScene eq &amp;quot;3d_movie&amp;quot;) {&lt;br /&gt;
     Log 3, &amp;quot;Der Film ist pausiert oder zu Ende, ändere LightScene zurück auf tmp_pre_movie_state...&amp;quot;;&lt;br /&gt;
     fhem(&amp;quot;set kino_licht scene tmp_pre_movie_state;&amp;quot;);&lt;br /&gt;
     fhem(&amp;quot;set kino_licht remove tmp_pre_movie_state;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel mit dem Modul DOIF:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#########################################################################&lt;br /&gt;
# Kodi: Lichtsteuerung&lt;br /&gt;
#########################################################################&lt;br /&gt;
define di_kodi_lichtsteuerung DOIF ([wz_KODI:type] eq &amp;quot;movie&amp;quot; and [wz_KODI:playStatus] eq &amp;quot;playing&amp;quot;) \&lt;br /&gt;
 (set ls_Erdgeschoss scene Filmstart) \&lt;br /&gt;
DOELSEIF ([KODI:type] eq &amp;quot;movie&amp;quot; and [KODI:playStatus] eq &amp;quot;paused&amp;quot;) \&lt;br /&gt;
 (set ls_Erdgeschoss scene Filmstart) \&lt;br /&gt;
 DOELSEIF ([KODI:type] eq &amp;quot;movie&amp;quot; and [KODI:playStatus] eq &amp;quot;stopped&amp;quot;) \&lt;br /&gt;
 (set ls_Erdgeschoss scene indirekt)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen dazu unter im Forenthread {{Link2Forum|Topic=32775|LinkText=Fragen zu LightScene}}&lt;br /&gt;
&lt;br /&gt;
=== Nachrichten von Fhem an KODI und PLEX schicken ===&lt;br /&gt;
Der folgende Befehl schickt eine 5 Sekunden lange Info Nachricht an KODI.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;fhem(&amp;quot;set wz_KODI msg &#039;fhem&#039; &#039;Licht wurde ausgeschaltet!&#039; 5000 info&amp;quot;);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Thumbnail im Frontend anzeigen ===&lt;br /&gt;
In den readings von KODI gibt es einen thumbnail Wert. Um diesen als http link in einem http basierten Frontend darstellen zu können muss allerdings ein Userreading erstellt werden, denn der Pfad für http muss doppelt encoded werden. D.h. aus dem %2f muss ein %252f gemacht. Zusätzlich muss dem Wert noch ein http://IP_KODI:PORT_WEBSERVICE/image/ vorangestellt werden. Das funktioniert aber nur wenn die Bilder lokal abgelegt sind, nicht wenn die Bilder von z.b. thetvdb.com kommen.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;http_thumbnail { my $val = (ReadingsVal(&amp;quot;$name&amp;quot;, &amp;quot;thumbnail&amp;quot;, 0)); $val =~ s/\%2f/\%252f/g;; return &amp;quot;http://192.168.0.5:8080/image/&amp;quot;.$val;; }&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschliessend kann http_thumbnail abgefragt werden und enthaelt den Link zum Bild&lt;br /&gt;
&lt;br /&gt;
== Anzeigen von Fhem Daten im KODI ==&lt;br /&gt;
[[Datei:Xbmc.png|mini|right|300px|Fhem-Daten in KODI anzeigen]]&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitungen in KODI ===&lt;br /&gt;
Zuerst muss das Phyton Skript heruntergeladen werden ([http://forum.fhem.de/index.php?topic=14419.0 Thread im Fhem-Forum]) und mit dem XBMC Addon Manager installiert werden. &lt;br /&gt;
&lt;br /&gt;
=== Vorbereitungen in Fhem ===&lt;br /&gt;
Anschließend muss das globale Attribut userattr mit &amp;quot;xbmcInfo&amp;quot; erweitert werden, und zwar entweder durch Bearbeitung der [[Konfiguration|Fhem Konfiguration]] oder durch Eingabe des Befehls&lt;br /&gt;
:&amp;lt;code&amp;gt;{fhem (&amp;quot;attr global userattr $attr{global}{userattr}&amp;quot;.&amp;quot; xbmcInfo&amp;quot;)}&amp;lt;/code&amp;gt;&lt;br /&gt;
in das Fhem Befehlsfenster.&lt;br /&gt;
&lt;br /&gt;
Danach muss ein Dummy mit den anzuzeigenden Daten erstellt werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;dummy-name&amp;gt; xbmcInfo &amp;lt;TYPE&amp;gt; &amp;lt;Reading[|Alias]&amp;gt; &amp;lt;[Reading[|Alias]]&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration in KODI ===&lt;br /&gt;
&lt;br /&gt;
[[Datei:FHEM-Info3.png|mini|right|200px|Konfigurationsschritt in KODI]]&lt;br /&gt;
Im KODI danach noch das &#039;&#039;Addon&#039;&#039; konfiguren (IP+Passwort). &lt;br /&gt;
&lt;br /&gt;
[[Datei:FHEM-Info1.png|mini|right|200px|Beispielausgabe]]&lt;br /&gt;
[[Datei:FHEM-Info2.png|mini|right|200px|Beispielausgabe]]&lt;br /&gt;
&#039;&#039;&#039;Beispiele&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define KODI_dummy dummy&lt;br /&gt;
attr KODI_dummy xbmcInfo CUL_WS temperature|Temperatur humidity|Luftfeuchte&lt;br /&gt;
&lt;br /&gt;
define KODI_dummy2 dummy&lt;br /&gt;
attr KODI_dummy2 xbmcInfo PID20 actuation|Ventil desired|Soll measured|Ist delta p_p|P-Anteil p_i|I-Anteil&lt;br /&gt;
&lt;br /&gt;
define KODI_dummy3 dummy&lt;br /&gt;
attr KODI_dummy3 xbmcInfo FS20 state|Status name|Name&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== HTPC via WakeOnLan (WOL) Funktion wecken ===&lt;br /&gt;
Einige HTPCs haben nicht die Möglichkeit diese via eines IR Kommandos zu starten. Alternativ kann hier die &lt;br /&gt;
sog. &amp;quot;WakeOnLan&amp;quot; Funktion genutzt werden. Diese bietes mittels eines speziellen TCP/UDP Paketes den Rechner zu starten. In Fhem gibt es dafür das Modul [[WOL]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define &amp;lt;NAME des PCs&amp;gt; WOL &amp;lt;MAC-Adresse&amp;gt;	&amp;lt;IP&amp;gt; [&amp;lt;mode&amp;gt; [&amp;lt;repeat&amp;gt;]] &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#########################################################################&lt;br /&gt;
# KODI - WakeOnLan Funktion&lt;br /&gt;
#########################################################################&lt;br /&gt;
define wol_zion WOL BC:AE:C5:B3:E1:3A	 192.168.1.13 EW&lt;br /&gt;
attr wol_zion room _System&lt;br /&gt;
attr wol_zion sysCmd ./ether-wake&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Wichtiger Hinweis bei Betrieb auf einer Fritzbox&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Sofern fhem nicht unter dem User root wird das ether-wake Kommando nicht funktionieren.&lt;br /&gt;
&#039;&#039;Quick&amp;amp;Dirty Workaround: Mit Telnet auf der FritzBox einloggen und dann das Programm /usr/bin/ether-wake &lt;br /&gt;
in das fhem-Hauptverzeichnis kopieren. Zusätzlich muss das sog. &amp;quot;Sticky-Bit&amp;quot; mit dem Befehl &#039;chmod og+s ether-wake&#039;&lt;br /&gt;
gesetzt werden.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Einschalten des HTPCs&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set wol_zion on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausschalten des HTPCs mittels KODI&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set wz_KODI shutdown&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Thread über das Modul im [http://forum.fhem.de/index.php/topic,10075.0.html Fhem Forum]&lt;br /&gt;
* Thread mit [http://forum.fhem.de/index.php?topic=14419.0 weiteren Informationen]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Unterhaltungselektronik]]&lt;br /&gt;
[[Kategorie:Code Snippets]]&lt;/div&gt;</summary>
		<author><name>Hillbicks</name></author>
	</entry>
</feed>