<?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=Tropaion</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=Tropaion"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/Tropaion"/>
	<updated>2026-04-08T13:11:47Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FRITZBOX&amp;diff=12030</id>
		<title>FRITZBOX</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FRITZBOX&amp;diff=12030"/>
		<updated>2015-08-20T18:43:15Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* Erste Schritte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Steuerung einer Fritz!Box über Fhem&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModForumArea=FRITZ!Box&lt;br /&gt;
|ModTechName=72_FRITZBOX.pm&lt;br /&gt;
|ModOwner=tupol/Topos ([http://forum.fhem.de/index.php?action=profile;u=5432 Forum] / [[Benutzer Diskussion:Topos|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[FRITZBOX]] ermöglicht die Steuerung einer [[AVM Fritz!Box]] durch Fhem. Dabei kann es sich sowohl um eine FritzBox handeln, auf der Fhem selbst läuft (lokaler Modus), als auch um eine entfernte (externe) FritzBox.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
=== Remote-Zugang ===&lt;br /&gt;
Für den Remote-Zugang müssen die Module JSON:XS, LWP und SOAP::Lite 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 apt-get install libjson-perl libwww-perl libsoap-lite-perl libjson-xs-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Teilweise ist derzeit zusätzlich die Installation der telnet Libraries erforderlich, auch wenn der Telnet-Zugang nicht genutzt werden soll. Siehe dazu den nachfolgenden Abschnitt.&lt;br /&gt;
&lt;br /&gt;
=== Telnet ===&lt;br /&gt;
Das Modul basierte ursprünglich auf dem Zugriff auf die Fritzbox per Telnet. Ab FRITZ!OS 6.2x baut AVM den abgekündigten Telnet-Zugang sowie die webcm-Schnittstelle sukzessive zurück bzw. hat dies, je nach Firmware, schon ganz abgestellt (siehe {{Link2Forum|Topic=38586|LinkText=dieses Forenthema}}). Der zukunftssichere Zugriff auf die Fritzbox sollte also per TR-064 erfolgen. Der Vollständigkeit halber und für ältere Firmwareversionen: &lt;br /&gt;
&lt;br /&gt;
# Wer den Zugang per Telnet (noch) nutzen (kann und) möchte, muss dies zuerst freischalten. Üblicherweise durch Eingabe von #96*7* an einem direkt an der entsprechenden FritzBox angeschlosssenen Telefon&lt;br /&gt;
&lt;br /&gt;
# Auf dem System, auf dem Fhem läuft ([[Systemübersicht#Server|Server]]) muss Telnet installiert sein; auf einem [[Raspberry Pi]] und unter Ubuntu z.&amp;amp;nbsp;B. mit dem Befehl&lt;br /&gt;
:::&amp;lt;code&amp;gt;sudo apt-get install libnet-telnet-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Erste Schritte ===&lt;br /&gt;
Zur Erstinstallation reicht ein einfaches &amp;lt;code&amp;gt;define FritzBox FRITZBOX&amp;lt;/code&amp;gt;, dieses Modul funktioniert lokal (FHEM auf Fritzbox) sowie per Fernzugriff (FHEM auf einem anderen Server im Netz, siehe nächsten Schritt).&lt;br /&gt;
&lt;br /&gt;
==== TR-064: Modul FRITZBOX für Zugriff auf einem externen Server einrichten ====&lt;br /&gt;
Für den Fernzugriff über TR-064 sind die folgenden Schritte nötig:&lt;br /&gt;
&lt;br /&gt;
Fritzbox definieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;define FritzBox FRITZBOX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn das Login auf der Benutzeroberfläche der FritzBox mit User und Passwort (und nicht nur per Passwort) geschieht, den User konfigurieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr FritzBox boxUser &#039;&#039;Benutzername&#039;&#039; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Passwort konfigurieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;set FritzBox password &#039;&#039;Passwort&#039;&#039; &amp;lt;/code&amp;gt; - legt das zugehörige Passwort fest&lt;br /&gt;
&lt;br /&gt;
TR-064 Kommandos erlauben:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr FritzBox allowTR064Command 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn die Fritzbox nicht unter http://fritz.box erreichbar ist, IP setzen:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr Fritzbox fritzBoxIP 192.168.168.168&amp;lt;/code&amp;gt;&lt;br /&gt;
(192.168.168.168 natürlich durch die passende IP ersetzen...) Manchmal ist ein Neustart von FHEM erforderlich, damit die Fritzbox mit der veränderten IP gefunden wird.&lt;br /&gt;
&lt;br /&gt;
==== Telnet: Modul FRITZBOX für Zugriff auf einem externen Server einrichten ====&lt;br /&gt;
[[Datei:Screenshot_FritzBox_TelnetUser.png|mini|300px|rechts|Anlegen des Attributs telnetUser]]&lt;br /&gt;
Bei Fernzugriff über Telnet sind weitere Schritte nötig:&lt;br /&gt;
# Telnet auf der Fritzbox freischalten (Tastenkombination #96*7* am angeschlossenen Telefon (auch FritzFon)&lt;br /&gt;
# TelnetUser definieren (wie im Screenshot gezeigt)&lt;br /&gt;
# Passwort zum Benutzer auf der Fritzbox definieren&lt;br /&gt;
&lt;br /&gt;
[[Datei:Screenshot_FritzBox_Passwort.png|mini|300px|rechts|Passwort definieren]]&lt;br /&gt;
&lt;br /&gt;
(bitte die Buttons {{Taste|set}} und {{Taste|attr}} bei der Definition der jeweiligen Einträge nicht vergessen)&lt;br /&gt;
&lt;br /&gt;
Wer stattdessen lieber das [[Konfiguration|Befehl-Eingabefeld]] verwendet:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define FritzBox FRITZBOX&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr Fritzbox telnetUser &#039;&#039;Benutzername&#039;&#039; &amp;lt;/code&amp;gt; - legt den Benutzer fest&lt;br /&gt;
:&amp;lt;code&amp;gt;set Fritzbox password &#039;&#039;Passwort&#039;&#039; &amp;lt;/code&amp;gt; - legt das zugehörige Passwort fest&lt;br /&gt;
&lt;br /&gt;
Wer keinen User konfiguriert hat, kann das Feld &amp;quot;telnetUser&amp;quot; leer lassen.&lt;br /&gt;
&lt;br /&gt;
=== mögliche Fehlermeldungen ===&lt;br /&gt;
Sollte schon bei &amp;lt;code&amp;gt;define FritzBox FRITZBOX&amp;lt;/code&amp;gt; die Fehlermeldung kommen, dass dieses Modul nicht existiert, dann bitte prüfen, ob Fhem auf dem aktuellen Stand ist und ggf. [[Update|aktualisieren]].&lt;br /&gt;
&lt;br /&gt;
Kommt jetzt bei der erneuten Definition die Fehlermeldung &amp;lt;code&amp;gt;Error: Perl modul Net::Telnet is missing on this system&amp;lt;/code&amp;gt; bitte wie oben schon erwähnt den Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install libnet-telnet-perl&amp;lt;/code&amp;gt; &lt;br /&gt;
direkt per Telnet/SSH auf dem FHEM-Server ausführen und neu starten.&lt;br /&gt;
Sollte alles geklappt haben, seht ihr nun eure Fritzbox und könnt diverse Einstellungen manuell vornehmen und/oder automatisch vornehmen lassen.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
Siehe [http://fhem.de/commandref_DE.html#FRITZBOX commandref]&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Siehe commandref&lt;br /&gt;
&lt;br /&gt;
=== TR-064 ===&lt;br /&gt;
Die offizielle Programmier-Schnittstelle der Fritz!Box läuft über das Protokoll TR-064.&lt;br /&gt;
&lt;br /&gt;
mit dem Attribute&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;attr &amp;lt;device&amp;gt; allowTR064Command 1&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
kann man den Befehl&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;get &amp;lt;device&amp;gt; tr064Command &amp;lt;service&amp;gt; &amp;lt;control&amp;gt; &amp;lt;action&amp;gt; [[parameterName1 parameterValue1] ...]&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
freischalten und damit auf diese Schnittstelle zugreifen.&lt;br /&gt;
&lt;br /&gt;
AVM hat die Schnittstellenbeschreibung unter [http://avm.de/service/schnittstellen/] veröffentlicht. Ein weitere Einstiegspunkt befindet sich auch auf der Box unter http://fritz.box:49000/tr64desc.xml&lt;br /&gt;
&lt;br /&gt;
Folgende Service und Controls existieren (für den get-Befehl werden nur die fett formatierten Wörter benötigt)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!serviceType!!controlURL!!XML!!Dokument bei AVM&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;DeviceInfo:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;deviceinfo&#039;&#039;&#039;||[http://fritz.box:49000/deviceinfoSCPD.xml deviceinfoSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/deviceinfoSCPD.pdf deviceinfoSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;DeviceConfig:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;deviceconfig&#039;&#039;&#039;||[http://fritz.box:49000/deviceconfigSCPD.xml deviceconfigSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/deviceconfigSCPD.pdf deviceconfigSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;Layer3Forwarding:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;layer3forwarding&#039;&#039;&#039;||[http://fritz.box:49000//layer3forwardingSCPD.xml layer3forwardingSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/layer3forwardingSCPD.pdf layer3forwardingSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;LANConfigSecurity:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;lanconfigsecurity&#039;&#039;&#039;||[http://fritz.box:49000//lanconfigsecuritySCPD.xml lanconfigsecuritySCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/lanconfigsecuritySCPD.pdf lanconfigsecuritySCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;ManagementServer:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;mgmsrv&#039;&#039;&#039;||[http://fritz.box:49000//mgmsrvSCPD.xml mgmsrvSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/mgmsrvSCPD.pdf mgmsrvSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;Time:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;time&#039;&#039;&#039;||[http://fritz.box:49000//timeSCPD.xml timeSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/timeSCPD.pdf timeSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;UserInterface:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;userif&#039;&#039;&#039;||[http://fritz.box:49000//userifSCPD.xml userifSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/userifSCPD.pdf userifSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;X_VoIP:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;x_voip&#039;&#039;&#039;||[http://fritz.box:49000//x_voipSCPD.xml x_voipSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_voipSCPD.pdf x_voipSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;X_AVM-DE_Storage:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;x_storage&#039;&#039;&#039;||[http://fritz.box:49000//x_storageSCPD.xml x_storageSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_storageSCPD.pdf x_storageSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;X_AVM-DE_OnTel:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;x_contact&#039;&#039;&#039;||[http://fritz.box:49000//x_contactSCPD.xml x_contactSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_contactSCPD.pdf x_contactSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;X_AVM-DE_WebDAVClient:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;x_webdav&#039;&#039;&#039;||[http://fritz.box:49000//x_webdavSCPD.xml x_webdavSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_webdavSCPD.pdf x_webdavSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;X_AVM-DE_UPnP:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;x_upnp&#039;&#039;&#039;||[http://fritz.box:49000//x_upnpSCPD.xml x_upnpSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_upnp.pdf x_upnp.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;X_AVM-DE_RemoteAccess:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;x_remote&#039;&#039;&#039;||[http://fritz.box:49000/x_remoteSCPD.xml x_remoteSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_remoteSCPD.pdf x_remoteSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;X_AVM-DE_MyFritz:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;x_myfritz&#039;&#039;&#039;||[http://fritz.box:49000/x_myfritzSCPD.xml x_myfritzSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_myfritzSCPD.pdf x_myfritzSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;X_AVM-DE_TAM:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;x_tam&#039;&#039;&#039;||[http://fritz.box:49000/x_tamSCPD.xml x_tamSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_tam.pdf x_tam.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;X_AVM-DE_AppSetup:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;x_appsetup&#039;&#039;&#039;||[http://fritz.box:49000/x_homeautoSCPD.xml x_homeautoSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_appsetupSCPD.pdf x_appsetupSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;X_AVM-DE_Homeauto:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;x_homeauto&#039;&#039;&#039;||[http://fritz.box:49000/x_homeautoSCPD.xml x_homeautoSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_homeautoSCPD.pdf x_homeautoSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;WLANConfiguration:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;wlanconfig1&#039;&#039;&#039;||[http://fritz.box:49000/wlanconfigSCPD.xml wlanconfigSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/wlanconfigSCPD.pdf wlanconfigSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;WLANConfiguration:2&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;wlanconfig2&#039;&#039;&#039;||[http://fritz.box:49000/wlanconfigSCPD.xml wlanconfigSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/wlanconfigSCPD.pdf wlanconfigSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;WLANConfiguration:3&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;wlanconfig3&#039;&#039;&#039;||[http://fritz.box:49000/wlanconfigSCPD.xml wlanconfigSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/wlanconfigSCPD.pdf wlanconfigSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;Hosts:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;hosts&#039;&#039;&#039;||[http://fritz.box:49000/hostsSCPD.xml hostsSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/hostsSCPD.pdf hostsSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;LANEthernetInterfaceConfig:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;lanethernetifcfg&#039;&#039;&#039;||[http://fritz.box:49000/lanifconfigSCPD.xml lanifconfigSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/lanifconfigSCPD.pdf lanifconfigSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;LANHostConfigManagement:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;lanhostconfigmgm&#039;&#039;&#039;||[http://fritz.box:49000/lanhostconfigmgmSCPD.xml lanhostconfigmgmSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/lanhostconfigmgmSCPD.pdf lanhostconfigmgmSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;WANCommonInterfaceConfig:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;wancommonifconfig1&#039;&#039;&#039;||[http://fritz.box:49000/wancommonifconfigSCPD.xml wancommonifconfigSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/wancommonifconfigSCPD.pdf wancommonifconfigSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;WANDSLInterfaceConfig:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;wandslifconfig1&#039;&#039;&#039;||[http://fritz.box:49000/wandslifconfigSCPD.xml wandslifconfigSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/wandslifconfigSCPD.pdf wandslifconfigSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;WANDSLLinkConfig:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;wandsllinkconfig1&#039;&#039;&#039;||[http://fritz.box:49000/wandsllinkconfigSCPD.xml wandsllinkconfigSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/wandsllinkconfigSCPD.pdf wandsllinkconfigSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;WANEthernetLinkConfig:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;wanethlinkconfig1&#039;&#039;&#039;||[http://fritz.box:49000/wanethlinkconfigSCPD.xml wanethlinkconfigSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/wanethlinkconfigSCPD.pdf wanethlinkconfigSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;WANPPPConnection:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;wanpppconn1&#039;&#039;&#039;||[http://fritz.box:49000/wanpppconnSCPD.xml wanpppconnSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/wanpppconnSCPD.pdf wanpppconnSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;urn:dslforum-org:service:&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;WANIPConnection:1&#039;&#039;&#039;||/upnp/control/&#039;&#039;&#039;wanipconnection1&#039;&#039;&#039;||[http://fritz.box:49000/wanipconnSCPD.xml wanipconnSCPD.xml]||[http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/wanipconnSCPD.pdf wanipconnSCPD.pdf]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Status-Symbol ===&lt;br /&gt;
&amp;lt;code&amp;gt;attr &amp;lt;device&amp;gt; devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis www/images/default müssen die passenden Dateien &amp;quot;WLAN_on_gWLAN_off.png&amp;quot;, &amp;quot;WLAN_on_gWLAN_on.png&amp;quot; und &amp;quot;WLAN_off.png&amp;quot; liegen. Wenn die PNGs fehlen, können sie hier [http://forum.fhem.de/index.php/topic,29725.msg318113.html#msg318113] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
[[Datei:Screenshot_FritzBox1.png|mini|300px|rechts|FRITZBOX Gerät auf der Fhem Oberfläche]]&lt;br /&gt;
Sollte alles geklappt haben, seht ihr nun unter &amp;quot;Unsortiert&amp;quot; den im nebenstehenden Screenshot gezeigten Eintrag für das &amp;quot;Gerät&amp;quot; (hier mit dem Icon &amp;quot;it_router&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== TR-064 Bespiele ===&lt;br /&gt;
&lt;br /&gt;
*Box Reboot: &amp;lt;code&amp;gt;get &amp;lt;device&amp;gt; tr064Command DeviceConfig:1 deviceconfig Reboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Klingel- und Sprachausgabe per TR-064 ===&lt;br /&gt;
&lt;br /&gt;
Das geht derzeit nicht, da entsprechende Kommandos per TR-064 nicht verfügbar sind. Da Telnet sukzessive abgestellt wird, sollten sich Interessenten per Feature-Request an AVM wenden, wie hier [http://forum.fhem.de/index.php/topic,38586.0.html] beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* {{Link2Forum|Topic=29725|LinkText=Forenthread}} zu diesem Modul&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FritzBox]] &lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8733</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8733"/>
		<updated>2014-12-03T11:42:05Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* fronthemEditor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an FHEM Devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Websocket===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Connector===&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann genau festgelegt werden, welches Device Rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
====IP-Identify====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
====Zertificate-Identify====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed===&lt;br /&gt;
NumDelayed ist noch in Arbeit.&lt;br /&gt;
&lt;br /&gt;
Ein bidirektionaler numerischer Converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie über einen Slider genannt. Da Slider ihre Werte kontinuierlich an FHEM übermitteln, würde bei der Verwendung anderer Converter dem entsprechenden Aktor (z.B. HM-BP), während der Benutzer den Slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem Slider seine aktuelle ist Position. Das führt zu einem springen des Sliders und einer &amp;quot;unschönen&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des Sliders entgegen, wartet jedoch mit der Weitergabe solange, bis sich der Slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht, wird der Slider im Frontend aktualisiert. In diesem Beispiel würde das bedeuten das der Slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (Ist). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der Slider auf die gemeldete Position aktualisiert.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): &amp;lt;code&amp;gt;RGBCombined &amp;lt;itemRed&amp;gt;, &amp;lt;itemYellow&amp;gt;, &amp;lt;itemBlue&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser Converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der [[#Converter]]. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des Converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8732</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8732"/>
		<updated>2014-12-03T11:10:25Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* RGBCombined */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Websocket===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Connector===&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann genau festgelegt werden, welches Device Rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
====IP-Identify====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
====Zertificate-Identify====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed===&lt;br /&gt;
NumDelayed ist noch in Arbeit.&lt;br /&gt;
&lt;br /&gt;
Ein bidirektionaler numerischer Converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie über einen Slider genannt. Da Slider ihre Werte kontinuierlich an FHEM übermitteln, würde bei der Verwendung anderer Converter dem entsprechenden Aktor (z.B. HM-BP), während der Benutzer den Slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem Slider seine aktuelle ist Position. Das führt zu einem springen des Sliders und einer &amp;quot;unschönen&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des Sliders entgegen, wartet jedoch mit der Weitergabe solange, bis sich der Slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht, wird der Slider im Frontend aktualisiert. In diesem Beispiel würde das bedeuten das der Slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (Ist). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der Slider auf die gemeldete Position aktualisiert.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): &amp;lt;code&amp;gt;RGBCombined &amp;lt;itemRed&amp;gt;, &amp;lt;itemYellow&amp;gt;, &amp;lt;itemBlue&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser Converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der [[#Converter]]. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des Converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8731</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8731"/>
		<updated>2014-12-03T11:09:28Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* RGBCombined */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Websocket===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Connector===&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann genau festgelegt werden, welches Device Rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
====IP-Identify====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
====Zertificate-Identify====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed===&lt;br /&gt;
NumDelayed ist noch in Arbeit.&lt;br /&gt;
&lt;br /&gt;
Ein bidirektionaler numerischer Converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie über einen Slider genannt. Da Slider ihre Werte kontinuierlich an FHEM übermitteln, würde bei der Verwendung anderer Converter dem entsprechenden Aktor (z.B. HM-BP), während der Benutzer den Slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem Slider seine aktuelle ist Position. Das führt zu einem springen des Sliders und einer &amp;quot;unschönen&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des Sliders entgegen, wartet jedoch mit der Weitergabe solange, bis sich der Slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht, wird der Slider im Frontend aktualisiert. In diesem Beispiel würde das bedeuten das der Slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (Ist). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der Slider auf die gemeldete Position aktualisiert.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): &amp;lt;code&amp;gt;RGBCombined itemRed, itemYellow, itemBlue&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser Converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der [[#Converter]]. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des Converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8730</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8730"/>
		<updated>2014-12-03T11:04:05Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* NumDelayed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Websocket===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Connector===&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann genau festgelegt werden, welches Device Rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
====IP-Identify====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
====Zertificate-Identify====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed===&lt;br /&gt;
NumDelayed ist noch in Arbeit.&lt;br /&gt;
&lt;br /&gt;
Ein bidirektionaler numerischer Converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie über einen Slider genannt. Da Slider ihre Werte kontinuierlich an FHEM übermitteln, würde bei der Verwendung anderer Converter dem entsprechenden Aktor (z.B. HM-BP), während der Benutzer den Slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem Slider seine aktuelle ist Position. Das führt zu einem springen des Sliders und einer &amp;quot;unschönen&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des Sliders entgegen, wartet jedoch mit der Weitergabe solange, bis sich der Slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht, wird der Slider im Frontend aktualisiert. In diesem Beispiel würde das bedeuten das der Slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (Ist). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der Slider auf die gemeldete Position aktualisiert.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser Converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der [[#Converter]]. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des Converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8729</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8729"/>
		<updated>2014-12-03T11:03:43Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* Converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Websocket===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Connector===&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann genau festgelegt werden, welches Device Rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
====IP-Identify====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
====Zertificate-Identify====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed===&lt;br /&gt;
NumDelayed ist noch in Arbeit.&lt;br /&gt;
&lt;br /&gt;
Ein bidirektionaler numerischer Converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie über einen Slider genannt. Da Slider ihre Werte kontinuierlich an FHEM übermitteln, würde bei der Verwendung anderer Converter dem entsprechenden Aktor (z.B. HM-BP), während der Benutzer den Slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem Slider seine aktuelle ist Position. Das führt zu einem springen des Sliders und einer &amp;quot;unschönen&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des Sliders entgegen, wartet jedoch mit der Weitergabe solange, bis sich der Slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht, wird der Slider im Frontend aktualisiert. In diesem Beispiel würde das bedeuten das der Slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (IST). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der Slider auf die gemeldete Position aktualisiert.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser Converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der [[#Converter]]. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des Converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8728</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8728"/>
		<updated>2014-12-03T10:12:38Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* RGBCombined */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Websocket===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Connector===&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann genau festgelegt werden, welches Device Rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
====IP-Identify====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
====Zertificate-Identify====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed===&lt;br /&gt;
(TODO)&lt;br /&gt;
&lt;br /&gt;
bidirektionaler numerischer converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie genannt über einen slider genannt. Da slider ihre Werte kontinuierlich an fhem übermitteln würde bei der Verwendung anderer converter dem entsprechenden Aktor (zB HM-BP), während der Benutzer den slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem slider seine aktuelle ist Position. Das führt zu einem springen des sliders und &amp;quot;unschöner&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des slider entgegen, wartet jedoch mit der Weitergabe solange bis sich der slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht wird der slider im Frontend aktualisiert In diesem Beispiel würde das bedeuten das der slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (IST). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der slider auf die gemeldete Position aktualisiert&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der [[#Converter]]. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des Converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8727</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8727"/>
		<updated>2014-12-03T10:11:57Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Websocket===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Connector===&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann genau festgelegt werden, welches Device Rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
====IP-Identify====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
====Zertificate-Identify====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed=== (TODO)&lt;br /&gt;
&lt;br /&gt;
bidirektionaler numerischer converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie genannt über einen slider genannt. Da slider ihre Werte kontinuierlich an fhem übermitteln würde bei der Verwendung anderer converter dem entsprechenden Aktor (zB HM-BP), während der Benutzer den slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem slider seine aktuelle ist Position. Das führt zu einem springen des sliders und &amp;quot;unschöner&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des slider entgegen, wartet jedoch mit der Weitergabe solange bis sich der slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht wird der slider im Frontend aktualisiert In diesem Beispiel würde das bedeuten das der slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (IST). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der slider auf die gemeldete Position aktualisiert&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der [[#Converter]]. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des Converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8726</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8726"/>
		<updated>2014-12-03T10:10:12Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* cmd set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Websocket===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Connector===&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann genau festgelegt werden, welches Device Rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
====IP-Identify====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
====Zertificate-Identify====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed=== (TODO)&lt;br /&gt;
&lt;br /&gt;
bidirektionaler numerischer converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie genannt über einen slider genannt. Da slider ihre Werte kontinuierlich an fhem übermitteln würde bei der Verwendung anderer converter dem entsprechenden Aktor (zB HM-BP), während der Benutzer den slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem slider seine aktuelle ist Position. Das führt zu einem springen des sliders und &amp;quot;unschöner&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des slider entgegen, wartet jedoch mit der Weitergabe solange bis sich der slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht wird der slider im Frontend aktualisiert In diesem Beispiel würde das bedeuten das der slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (IST). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der slider auf die gemeldete Position aktualisiert&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des Converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8725</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8725"/>
		<updated>2014-12-03T10:08:49Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* Device Connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Websocket===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Connector===&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
&lt;br /&gt;
Dadurch kann genau festgelegt werden, welches Device Rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
====IP-Identify====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
====Zertificate-Identify====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed=== (TODO)&lt;br /&gt;
&lt;br /&gt;
bidirektionaler numerischer converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie genannt über einen slider genannt. Da slider ihre Werte kontinuierlich an fhem übermitteln würde bei der Verwendung anderer converter dem entsprechenden Aktor (zB HM-BP), während der Benutzer den slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem slider seine aktuelle ist Position. Das führt zu einem springen des sliders und &amp;quot;unschöner&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des slider entgegen, wartet jedoch mit der Weitergabe solange bis sich der slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht wird der slider im Frontend aktualisiert In diesem Beispiel würde das bedeuten das der slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (IST). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der slider auf die gemeldete Position aktualisiert&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8724</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8724"/>
		<updated>2014-12-03T10:08:10Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* Basic Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Websocket===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Device Connector===&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
Dadurch kann man genau festlegen, welches Device rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
====IP-Identify====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
====Zertificate-Identify====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed=== (TODO)&lt;br /&gt;
&lt;br /&gt;
bidirektionaler numerischer converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie genannt über einen slider genannt. Da slider ihre Werte kontinuierlich an fhem übermitteln würde bei der Verwendung anderer converter dem entsprechenden Aktor (zB HM-BP), während der Benutzer den slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem slider seine aktuelle ist Position. Das führt zu einem springen des sliders und &amp;quot;unschöner&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des slider entgegen, wartet jedoch mit der Weitergabe solange bis sich der slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht wird der slider im Frontend aktualisiert In diesem Beispiel würde das bedeuten das der slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (IST). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der slider auf die gemeldete Position aktualisiert&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8723</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8723"/>
		<updated>2014-12-03T10:06:27Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* Zertificate-Identify */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
Dadurch kann man genau festlegen, welches Device rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
=====IP-Identify=====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
=====Zertificate-Identify=====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed=== (TODO)&lt;br /&gt;
&lt;br /&gt;
bidirektionaler numerischer converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie genannt über einen slider genannt. Da slider ihre Werte kontinuierlich an fhem übermitteln würde bei der Verwendung anderer converter dem entsprechenden Aktor (zB HM-BP), während der Benutzer den slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem slider seine aktuelle ist Position. Das führt zu einem springen des sliders und &amp;quot;unschöner&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des slider entgegen, wartet jedoch mit der Weitergabe solange bis sich der slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht wird der slider im Frontend aktualisiert In diesem Beispiel würde das bedeuten das der slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (IST). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der slider auf die gemeldete Position aktualisiert&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8722</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8722"/>
		<updated>2014-12-03T10:06:10Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* Zertificate-Identify */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
Dadurch kann man genau festlegen, welches Device rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
=====IP-Identify=====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
=====Zertificate-Identify=====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
Diese Funktion ist noch in Entwicklung.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed=== (TODO)&lt;br /&gt;
&lt;br /&gt;
bidirektionaler numerischer converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie genannt über einen slider genannt. Da slider ihre Werte kontinuierlich an fhem übermitteln würde bei der Verwendung anderer converter dem entsprechenden Aktor (zB HM-BP), während der Benutzer den slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem slider seine aktuelle ist Position. Das führt zu einem springen des sliders und &amp;quot;unschöner&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des slider entgegen, wartet jedoch mit der Weitergabe solange bis sich der slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht wird der slider im Frontend aktualisiert In diesem Beispiel würde das bedeuten das der slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (IST). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der slider auf die gemeldete Position aktualisiert&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8721</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8721"/>
		<updated>2014-12-03T10:05:32Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* Device Connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
Dadurch kann man genau festlegen, welches Device rechte für eine jeweilige Schaltfunktion hat.&lt;br /&gt;
=====IP-Identify=====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
=====Zertificate-Identify=====&lt;br /&gt;
Das Device wird über ein Zertifikat identifiziert.&lt;br /&gt;
Zuerst wird ein Zertifikat generiert, welches dann auf dem Device installiert werden muss.&lt;br /&gt;
Diese Methode der Identifizierung verspricht höhere Sicherheit, wie auch denn Vorteil, das man sich nicht einloggen muss.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed=== (TODO)&lt;br /&gt;
&lt;br /&gt;
bidirektionaler numerischer converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie genannt über einen slider genannt. Da slider ihre Werte kontinuierlich an fhem übermitteln würde bei der Verwendung anderer converter dem entsprechenden Aktor (zB HM-BP), während der Benutzer den slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem slider seine aktuelle ist Position. Das führt zu einem springen des sliders und &amp;quot;unschöner&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des slider entgegen, wartet jedoch mit der Weitergabe solange bis sich der slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht wird der slider im Frontend aktualisiert In diesem Beispiel würde das bedeuten das der slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (IST). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der slider auf die gemeldete Position aktualisiert&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8720</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8720"/>
		<updated>2014-12-03T10:01:22Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* Device Connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren.&lt;br /&gt;
=====IP-Identify=====&lt;br /&gt;
Identifizierung per IP-Adresse. Dies ist nur im internen Netzwerk sehr sinnvoll.&lt;br /&gt;
Ein Device wird definiert mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
=====Zertificate-Identify=====&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed=== (TODO)&lt;br /&gt;
&lt;br /&gt;
bidirektionaler numerischer converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie genannt über einen slider genannt. Da slider ihre Werte kontinuierlich an fhem übermitteln würde bei der Verwendung anderer converter dem entsprechenden Aktor (zB HM-BP), während der Benutzer den slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem slider seine aktuelle ist Position. Das führt zu einem springen des sliders und &amp;quot;unschöner&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des slider entgegen, wartet jedoch mit der Weitergabe solange bis sich der slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht wird der slider im Frontend aktualisiert In diesem Beispiel würde das bedeuten das der slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (IST). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der slider auf die gemeldete Position aktualisiert&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8718</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8718"/>
		<updated>2014-12-02T08:43:25Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* device connector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert, welches im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne Konvertierung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Gibt den Wert des von &amp;lt;reading&amp;gt; ohne weitere Wandlung an das Frontend weiter. In umgekehrter Richtung wird der vom Frontend geliefert Wert ohne Wandlung im hinterlegten &amp;lt;set&amp;gt; eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
Anzeige eines An- oder Abwesenheitszustandes im Frontend (Textanzeige, Icon, Button)&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
ein Converter zur Steuerung von RGB Leuchtmitteln über Farbauswahlfelder (zb. Farbkreis)&lt;br /&gt;
&lt;br /&gt;
Bidirektional, wandelt, verwendet 3 Frontend Items&lt;br /&gt;
&lt;br /&gt;
reading: Name eines reading mit HEX RGB Wert des Leuchtmittels&lt;br /&gt;
converter (mit Parameter): RGBCombined itemR, itemG, itemB&lt;br /&gt;
set: Name des set Befehls, bekommt HEX RGB Wert übergeben &lt;br /&gt;
&lt;br /&gt;
Dieser converter muss gleichlautend für alle 3 RGB Kanäle des Frontends definiert werden.&lt;br /&gt;
&lt;br /&gt;
===NumDelayed=== (TODO)&lt;br /&gt;
&lt;br /&gt;
bidirektionaler numerischer converter mit einstellbarer Verzögerung.&lt;br /&gt;
&lt;br /&gt;
Bietet bei der Ansteuerung mechanischer Aktoren (Markise, Jalousie) Vorteile gegenüber NumDirect. Als Beispiel sei die Steuerung einer Jalousie genannt über einen slider genannt. Da slider ihre Werte kontinuierlich an fhem übermitteln würde bei der Verwendung anderer converter dem entsprechenden Aktor (zB HM-BP), während der Benutzer den slider bedient, mehrfach der vermeindliche Sollwert übermittelt werden. Gleichzeitig beginnt der Aktor seine Fahrt und übermittelt dem slider seine aktuelle ist Position. Das führt zu einem springen des sliders und &amp;quot;unschöner&amp;quot; Bedienung.&lt;br /&gt;
&lt;br /&gt;
NumDelayed nimmt daher die Signale des slider entgegen, wartet jedoch mit der Weitergabe solange bis sich der slider (xxx ms, konfigurierbar) nicht mehr bewegt. In Gegenrichtung wird ebenso verfahren, erst wenn der Aktor seine Endposition erreicht wird der slider im Frontend aktualisiert In diesem Beispiel würde das bedeuten das der slider im Normalfall ohnehin so steht (Soll) wie vom Aktor gemeldet (IST). Natürlich könnte der Benutzer oder ein Hindernis die Fahrt auch unterbrochen haben, dann würde der slider auf die gemeldete Position aktualisiert&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Für das Item zu verwendende reading des fhem Device, &amp;quot;state&amp;quot; der Status des Device und kein spezielles reading verwendet werden sollen. Wird vom converter weiterverarbeitet und die Art (der Inhalt) bestimmt den erforderlichen converter.  &lt;br /&gt;
&lt;br /&gt;
Readings werden, wenn das Frontend dies anfordert, aktiv von fronthem gelesen und (per push) proaktiv an das Frontend gesendet wenn fhem entsprechende events erzeugt.  &lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
Es stehen unterschiedliche converter für verschiedene Aufgabenstellungen zur Verfügung. Über das Konzept der converter können fhem Device unterschiedlichster Typen und Funktionen über das Frontend bedient werden. So versorgt der gleiche converter der die Solltemperatur des virtuellen Heizungsthermostats (bidriektional) einstellt auch die Füllstandanzeige der Zisterne sowie den Dimmer. In all diesen Fällen handelt es sich um die Übertragung von numerischen Werten. Converter können dabei auch Spezialaufgaben wie die Begrenzung des Wertebereichs übernehmen. So lässt sich über NumDirect zum Beispiel die Solltemperatur Einstellung für virtuelle Heizungsregler auf Min und Max Werte begrenzen. &lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set gibt den &amp;quot;set&amp;quot; des fhem Devices an der die Rückgabe des converters entgegen nimmt.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8713</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8713"/>
		<updated>2014-12-01T22:53:15Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* WordDisplay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken:&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8712</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8712"/>
		<updated>2014-12-01T22:51:24Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* readings converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* [[#Direct]] für Übertragung ohne Konvertierung&lt;br /&gt;
* [[#NumDirect]] für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* [[#NumDisplay]] für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* [[#WordDisplay]] ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* [[#OnOff]] für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* [[#RGBCombined]] für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken.&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8711</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8711"/>
		<updated>2014-12-01T22:50:20Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* WordDisplay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* WordDisplay ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay ist derzeit in Planung, es wird noch über die Umsetzung diskutiert.&lt;br /&gt;
&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken.&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8710</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8710"/>
		<updated>2014-12-01T22:49:31Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* WordDisplay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* WordDisplay ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
WordDisplay soll nur in eine Richtung arbeiten, FHEM zu Frontend. Es ist dazu gedacht Wörter oder Textpassagen zu übertragen.&lt;br /&gt;
&lt;br /&gt;
Jedoch soll es möglich sein, eine Umwandlung selbst festzulegen. So kann man einfach mehrere Textausgaben abhängig vom Zustand an das Frontend schicken.&lt;br /&gt;
&lt;br /&gt;
z.B. Geofancy: Home -&amp;gt; Zuhause, Underway -&amp;gt; Unterwegs, Work -&amp;gt; Arbeit&lt;br /&gt;
&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8709</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8709"/>
		<updated>2014-12-01T22:45:43Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* NumDisplay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* WordDisplay ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDisplay arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Es ist dazu gedacht Zahlenwerte zu übergeben, ohne etwas zu verändern.&lt;br /&gt;
&lt;br /&gt;
z.B. für Temperaturwerte&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8708</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8708"/>
		<updated>2014-12-01T22:43:55Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* NumDisplay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* WordDisplay ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
NumDirect arbeitet nur in eine Richting, FHEM zu Frontend. Die Werte werden ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8707</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8707"/>
		<updated>2014-12-01T22:42:26Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* readings converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* WordDisplay ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter [[#Converter]]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8706</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8706"/>
		<updated>2014-12-01T22:41:20Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* RGBCombined */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* WordDisplay ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter Kapitel 3 Converter.&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8705</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8705"/>
		<updated>2014-12-01T22:40:59Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* readings converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* WordDisplay ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert&lt;br /&gt;
Näheres zu denn Convertern unter Kapitel 3 Converter.&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8704</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8704"/>
		<updated>2014-12-01T22:40:28Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* readings converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* WordDisplay ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
Näheres zu denn Convertern unter Kapitel 3 Converter.&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8703</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8703"/>
		<updated>2014-12-01T22:40:03Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* readings converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* WordDisplay ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
Näheres zu denn Convertern unter [3 #Converter]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8702</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8702"/>
		<updated>2014-12-01T22:39:42Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* readings converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* WordDisplay ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
Näheres zu denn Convertern unter [#3 Converter]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8701</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8701"/>
		<updated>2014-12-01T22:36:50Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* readings converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* WordDisplay ist in Planung, für Übertragung von selbst definierbaren Wörtern/Sätze&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
Näheres zu denn Convertern unter [3 Converter]&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8700</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8700"/>
		<updated>2014-12-01T22:34:21Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* Converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===WordDisplay===&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8699</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8699"/>
		<updated>2014-12-01T21:47:30Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* RGBCombined */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, da sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8698</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8698"/>
		<updated>2014-12-01T21:46:58Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* cmd set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern/einen Wert schreiben möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8697</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8697"/>
		<updated>2014-12-01T21:45:58Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* cmd set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
Bei cmd set wird das Attribut des Devices angegeben, welches man ändern möchte/einen Wert schreiben.&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8696</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8696"/>
		<updated>2014-12-01T21:44:44Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* write */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf Statuswerte ändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8695</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8695"/>
		<updated>2014-12-01T21:43:55Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* read */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8694</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8694"/>
		<updated>2014-12-01T21:43:35Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* write */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
Das Device darf die Statuswerte auslesen, jedoch nicht verändern.&lt;br /&gt;
&lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8693</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8693"/>
		<updated>2014-12-01T21:42:28Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters an, denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8692</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8692"/>
		<updated>2014-12-01T21:42:11Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters ein denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8691</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8691"/>
		<updated>2014-12-01T21:41:49Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
Hier gibt man denn Namen des Converters ein denn man verwenden möchte.&lt;br /&gt;
&lt;br /&gt;
Oben ist eine Standardliste der Converter. Die meisten Devices können mit diesen Convertern angesteuert werden.&lt;br /&gt;
&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8690</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8690"/>
		<updated>2014-12-01T21:40:29Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* reading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
Bei reading wird das Attribut des Devices angegeben, welches man auslesen möchte.&lt;br /&gt;
&lt;br /&gt;
Bei Lampe z.B. state&lt;br /&gt;
&lt;br /&gt;
====converter====&lt;br /&gt;
to be continued...&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8689</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8689"/>
		<updated>2014-12-01T21:39:11Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* device */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle geschickt werden.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
to be continued...&lt;br /&gt;
====converter====&lt;br /&gt;
to be continued...&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8688</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8688"/>
		<updated>2014-12-01T21:38:48Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* device */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
Hier wird der Name des FHEM-Devices eingetragen, an dem die Befehle gehen sollen.&lt;br /&gt;
&lt;br /&gt;
Groß/Kleinschreibung muss beachtet werden!&lt;br /&gt;
&lt;br /&gt;
====reading====&lt;br /&gt;
to be continued...&lt;br /&gt;
====converter====&lt;br /&gt;
to be continued...&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8687</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8687"/>
		<updated>2014-12-01T21:01:43Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* websocket */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device neben FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
to be continued...&lt;br /&gt;
====reading====&lt;br /&gt;
to be continued...&lt;br /&gt;
====converter====&lt;br /&gt;
to be continued...&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8686</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8686"/>
		<updated>2014-12-01T20:47:55Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* RGBCombined */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device als FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
Der RGB-Converter ist der aufwendigste von allen, das sich mehr Logik dahinter verbirgt.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert RGB-Werte als eine HEX-Zahl. SmartVisu hingegen übergibt die Werte für Rot, Gelb und Blau getrennt.&lt;br /&gt;
&lt;br /&gt;
Die drei einzelnen Werte werden vom Converter in eine HEX-Zahl umgewandelt und dann als set-Befehl an FHEM übergeben.&lt;br /&gt;
&lt;br /&gt;
Das wichtige dabei ist, das der Converter erst denn set-Befehl abgibt, wenn er alle drei Farbwerte erhalten hat.&lt;br /&gt;
&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
to be continued...&lt;br /&gt;
====reading====&lt;br /&gt;
to be continued...&lt;br /&gt;
====converter====&lt;br /&gt;
to be continued...&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8685</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8685"/>
		<updated>2014-12-01T20:43:01Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* NumDirect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device als FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
NumDirect arbeitet bidirektional. Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
to be continued...&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
to be continued...&lt;br /&gt;
====reading====&lt;br /&gt;
to be continued...&lt;br /&gt;
====converter====&lt;br /&gt;
to be continued...&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8684</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8684"/>
		<updated>2014-12-01T20:36:57Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* NumDirect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device als FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann man z.B. -100°C einstellen, das wäre in FHEM jedoch gar nicht möglich.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
to be continued...&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
to be continued...&lt;br /&gt;
====reading====&lt;br /&gt;
to be continued...&lt;br /&gt;
====converter====&lt;br /&gt;
to be continued...&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8683</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8683"/>
		<updated>2014-12-01T20:35:48Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* NumDirect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device als FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
Die Werte werden genau wie bei Direct ohne Umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine Unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann z.B. -100°C einstellen, das in FHEM jedoch gar nicht möglich wäre.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
to be continued...&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
to be continued...&lt;br /&gt;
====reading====&lt;br /&gt;
to be continued...&lt;br /&gt;
====converter====&lt;br /&gt;
to be continued...&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8682</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8682"/>
		<updated>2014-12-01T20:35:25Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* NumDirect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device als FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
Die Werte werden genau wie bei Direct ohne umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann z.B. -100°C einstellen, das in FHEM jedoch gar nicht möglich wäre.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
to be continued...&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
to be continued...&lt;br /&gt;
====reading====&lt;br /&gt;
to be continued...&lt;br /&gt;
====converter====&lt;br /&gt;
to be continued...&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8681</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8681"/>
		<updated>2014-12-01T20:35:11Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* NumDirect */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device als FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
Die Werte werden genaus wie bei Direct ohne umwandlung weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Der feine unterschied zu Direct ist jedoch, das nur Zahlenwerte übergeben werden können.&lt;br /&gt;
&lt;br /&gt;
Desweiteren kann man einen minimalen und maximalen Wert mitangeben. Dies hat denn Sinn, das man keine Werte einstellen kann, die überhaupt nicht möglich wären.&lt;br /&gt;
&lt;br /&gt;
In der SmartVisu kann z.B. -100°C einstellen, das in FHEM jedoch gar nicht möglich wäre.&lt;br /&gt;
&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
to be continued...&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
to be continued...&lt;br /&gt;
====reading====&lt;br /&gt;
to be continued...&lt;br /&gt;
====converter====&lt;br /&gt;
to be continued...&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8680</id>
		<title>Fronthem</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem&amp;diff=8680"/>
		<updated>2014-12-01T20:28:44Z</updated>

		<summary type="html">&lt;p&gt;Tropaion: /* Direct */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Anbindung von externen Frontends an FHEM (befindet sich in der Alpha-Phase)&lt;br /&gt;
|ModType=x&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
&amp;lt;!-- |ModCmdRef=   wird automatisch generiert --&amp;gt;&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=01_fronthem.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=769 Jörg alias herrmannj]&lt;br /&gt;
}}&lt;br /&gt;
Fronthem ist ein Projekt von herrmannj und wurde im fhem-Forum erstmalig angekündigt: http://forum.fhem.de/index.php/topic,27291.0.html&lt;br /&gt;
&lt;br /&gt;
Fronthem verfolgt die Idee, ein externes Web-Frontend (z. B. smartVISU http://smartvisu.de) an fhem anzukoppeln und den Datenverkehr sowie die Zusammenarbeit von Befehlen und Parametern zwischen FHEM und dem Web-Frontend zu übernehmen.&lt;br /&gt;
Dazu besteht fronthem aus vier Bausteinen:&lt;br /&gt;
&lt;br /&gt;
==Bausteine==&lt;br /&gt;
=== websocket ===&lt;br /&gt;
Der Websocket ist eine generische http-Schnittstelle, die von einem externen Frontend aus angesprochen werden kann.&lt;br /&gt;
&lt;br /&gt;
Der Websocket wird durch ein fhem-Modul 01_fronthem.pm realisiert, das im Ordner .../fhem/FHEM/ abgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Der Websocket ist auf Port 2121 fest eingestellt, wird implizit durch die anderen Bausteine verwendet und benötigt im Prinzip keine weitere Beachtung, außer man möchte das Webinterface auf einem anderen Device als FHEM laufen lassen.&lt;br /&gt;
&lt;br /&gt;
=== device connector ===&lt;br /&gt;
Die Device-Connectoren dienen dazu, Endgeräte des Benutzers (PCs, Tablets, Smartphones usw.) als Clients zuzulassen und deren Berechtigungen (read, write) auf der Ebene einzelner Objekte zu steuern. Damit können z. B. die lieben Kinder zwar das Licht und die eigene Heizung steuern, aber nicht die Heizung umprogrammieren oder den Alarm ausschalten. Auch ein PIN-Schutz ist vorgesehen, im Moment aber noch nicht umgesetzt.&lt;br /&gt;
&lt;br /&gt;
Die Device-Connectoren werden durch das fhem-Modul 31_fronthemDevice.pm realisiert,  das im Ordner .../fhem/FHEM/ abgelegt wird und mit folgendem Befehl definiert:&lt;br /&gt;
&amp;lt;code&amp;gt;define meinHandy fronthemDevice 192.168.178.45&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An den einzelnen Device-Connectoren werden die durch den websocket vom externen Frontend mitgeteilten Objekte aufgelistet und können dort einerseits mit fhem devices und andererseits in den Berechtigungen des jeweiligen Endgerätes konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== readings converter ===&lt;br /&gt;
Die Readings von fhem müssen in die Form der möglichen Werte des Frontends umgewandelt werden. Im umgekehrten Fall müssen Befehle des Frontends in fhem kompatible Befehle umgesetzt werden.&lt;br /&gt;
Diese Aufgabe übernehmen die Readings Converter. Sie werden durch die Datei fhconverter.pm realisiert, die im Ordner .../fhem/FHEM/ abgelegt wird. &lt;br /&gt;
Bisher gibt es folgende Converter:&lt;br /&gt;
* Direct für Übertragung ohne Konvertierung&lt;br /&gt;
* NumDirect für Übertragung von Zahlenwerten in einem begrenzten Werteraum zwischen Min und Max&lt;br /&gt;
* NumDisplay für Zahlenwerte aus fhem Readings, nur lesend&lt;br /&gt;
* OnOff für Schalter, Übersetzung von On in 1 und Off in 0&lt;br /&gt;
* RGBCombined für Übertragung von RGB-Werten so das sie FHEM akzeptiert (z.B. verwendbar mit http://www.fhemwiki.de/wiki/WifiLight)&lt;br /&gt;
&lt;br /&gt;
Weitere Readings Converter werden noch folgen.&lt;br /&gt;
&lt;br /&gt;
=== fronthemEditor ===&lt;br /&gt;
Der Javascript Editor ist eine fhem WebIF Erweiterung, um die Bindung der fremden Frontend-Objekte an fhem devices/Readings vorzunehmen und die dazu notwendigen Konvertierungen zu wählen.&lt;br /&gt;
Er wird durch die Datei fronthemEditor.js repräsentiert, die in den Ordner .../fhem/www/frontend/pgm2/ kopiert wird.&lt;br /&gt;
&lt;br /&gt;
==Basic Syntax==&lt;br /&gt;
===Definition===&lt;br /&gt;
====Websocket====&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;name&amp;gt; fronthem&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Device Connector====&lt;br /&gt;
Man muss jedes Device, mit dem man zugreifen will definieren mit:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;device&amp;gt; fronthemDevice &amp;lt;ip&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Derzeit orientiert sich das Modul noch über die IP, so das es bis jetzt nur im internen Netzwerk funktioniert.&lt;br /&gt;
Geplant ist jedoch eine Identifizierung, wo für jedes Device ein Zertifikat generiert wird.&lt;br /&gt;
&lt;br /&gt;
==Converter==&lt;br /&gt;
Die Converter sind alle kompatibel mit dem oben erwähnten Frontend SmartVisu und werden auf Basis dieses Frontends erklärt.&lt;br /&gt;
&lt;br /&gt;
Wenn jemand ein anderes Frontend verwenden will, muss er möglicherweise die Converter anpassen.&lt;br /&gt;
===Direct===&lt;br /&gt;
Die Werte werden ohne umgewandelt zu werden weitergegeben (z.B. Geofancy Anwesenheitsstatus übergeben).&lt;br /&gt;
&lt;br /&gt;
Funktioniert nur in eine Richtung, FHEM zu Frontend.&lt;br /&gt;
&lt;br /&gt;
===NumDirect===&lt;br /&gt;
to be continued...&lt;br /&gt;
===NumDisplay===&lt;br /&gt;
to be continued...&lt;br /&gt;
===OnOff===&lt;br /&gt;
Für einfache Ein/Aus-Funktionen.&lt;br /&gt;
&lt;br /&gt;
FHEM interpretiert Ein/Aus-Funktionen mit on/off, SmartVisu jedoch mit 1/0.&lt;br /&gt;
&lt;br /&gt;
Der OnOff-Converter wandelt diese bidirektional, damit sie richtig interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
===RGBCombined===&lt;br /&gt;
to be continued...&lt;br /&gt;
==Device Connector==&lt;br /&gt;
Sobald ein Device definiert ist, kann man über denn device connector die GADs definieren und die Rechte verteilen.&lt;br /&gt;
===GAD definieren===&lt;br /&gt;
Eine GAD-Definierung besteht aus:&lt;br /&gt;
[[Datei:DeviceDefine.png|400px|thumb|right|GADs definieren]]&lt;br /&gt;
*mode&lt;br /&gt;
*device&lt;br /&gt;
*reading&lt;br /&gt;
*converter&lt;br /&gt;
*cmd set&lt;br /&gt;
====mode====&lt;br /&gt;
Es gibt 2 Modis:&lt;br /&gt;
*item&lt;br /&gt;
*plot&lt;br /&gt;
====device====&lt;br /&gt;
to be continued...&lt;br /&gt;
====reading====&lt;br /&gt;
to be continued...&lt;br /&gt;
====converter====&lt;br /&gt;
to be continued...&lt;br /&gt;
====cmd set====&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
===Devicerechte vergeben===&lt;br /&gt;
[[Datei:DeviceRechte.png|400px|thumb|right|Devicerechte vergeben]]&lt;br /&gt;
Devicerechte bestehen aus:&lt;br /&gt;
*read&lt;br /&gt;
*write&lt;br /&gt;
*PIN GAD&lt;br /&gt;
====read====&lt;br /&gt;
to be continued... &lt;br /&gt;
====write====&lt;br /&gt;
to be continued... &lt;br /&gt;
====PIN GAD====&lt;br /&gt;
In Entwicklung...&lt;/div&gt;</summary>
		<author><name>Tropaion</name></author>
	</entry>
</feed>