<?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=Yoda+gh</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=Yoda+gh"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/Yoda_gh"/>
	<updated>2026-05-03T01:58:56Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FRITZBOX&amp;diff=35710</id>
		<title>FRITZBOX</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FRITZBOX&amp;diff=35710"/>
		<updated>2021-05-11T20:04:49Z</updated>

		<summary type="html">&lt;p&gt;Yoda gh: /* Anwesenheitserkennung per Notify */ : DOIF-Variante&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 ({{Link2FU|5432|Forum}} / [[Benutzer Diskussion:Topos|Wiki]])}}&lt;br /&gt;
&lt;br /&gt;
Das Modul [[FRITZBOX]] ermöglicht die Steuerung einer [[AVM Fritz!Box]] und von AVM FRITZ!WLAN Repeatern durch FHEM . An Fritzboxen können sowohl Geräte abgefragt werden, auf denen FHEM selbst läuft (lokaler Modus), als auch entfernte (externe) Geräte.&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;
# 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;
== Installation ==&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 auf eine oder mehrere Fritzboxen und/oder einen FRITZ!WLAN Repeater sind die folgenden Schritte nötig (für jedes Gerät):&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 die Fritzbox nicht unter &amp;lt;nowiki&amp;gt;http://fritz.box&amp;lt;/nowiki&amp;gt; erreichbar ist, IP im define setzen:&lt;br /&gt;
:&amp;lt;code&amp;gt;define FritzBox FRITZBOX 192.168.168.168&amp;lt;/code&amp;gt;&lt;br /&gt;
192.168.168.168 dabei natürlich durch die passende IP ersetzen... Alternativ kann statt der IP auch der Hostname eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
Wenn (&#039;&#039;&#039;und nur wenn&#039;&#039;&#039;) 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;
In der Fritzbox muss dann auch &amp;quot;Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort&amp;quot; ausgewählt sein.&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 (nur einmal --&amp;gt; gehört nicht in die cfg-Datei) &lt;br /&gt;
&lt;br /&gt;
Manuelle TR-064 Kommandos erlauben (Das Auslesen der Readings per TR-064 funktioniert auch ohne dieses Attribut.):&lt;br /&gt;
:&amp;lt;code&amp;gt;attr FritzBox allowTR064Command 1&amp;lt;/code&amp;gt;&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;
Wer sicher gehen möchte, dass auch tatsächlich Telnet und nicht andere Zugriffe benutzt werden, sollte außerdem noch setzen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;attr FritzBox forceTelnetConnection 1&amp;lt;/code&amp;gt;&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  {{Link2CmdRef|Lang=de|Anker=FRITZBOXdefine}}&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Siehe {{Link2CmdRef|Lang=de|Anker=FRITZBOXattr}}&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 Attribut&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;device&amp;gt; allowTR064Command 1&amp;lt;/code&amp;gt;&lt;br /&gt;
kann man den Befehl&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;&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. Diese wird jedoch nur sehr sporadisch gepflegt.&lt;br /&gt;
&lt;br /&gt;
Ein besserer Einstiegspunkt befindet sich auf der Box unter http://fritz.box:49000/tr64desc.xml. &lt;br /&gt;
Die möglichen TR-064-Aktionen kann man auch über den Befehl &lt;br /&gt;
:&amp;lt;code&amp;gt;get &amp;lt;device&amp;gt; tr064ServiceList&amp;lt;/code&amp;gt; &lt;br /&gt;
auslesen.&lt;br /&gt;
&lt;br /&gt;
Folgende Services und Controls existieren (für den get-Befehl &#039;&#039;tr064Command&#039;&#039; 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 {{Link2Forum|Topic=29725|Message=318113|LinkText=hier}} 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 Beispiele ===&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;
*Internet Reconnect: &amp;lt;code&amp;gt;get &amp;lt;device&amp;gt; tr064Command WANIPConnection:1 wanipconnection1 ForceTermination&amp;lt;/code&amp;gt;&lt;br /&gt;
*Daten eines Smart-Home-Gerätes auslesen: &amp;lt;code&amp;gt;get &amp;lt;device&amp;gt; tr064Command X_AVM-DE_Homeauto:1 x_homeauto GetGenericDeviceInfos NewIndex 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Klingel- und Sprachausgabe per TR-064 ===&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 {{Link2Forum|Topic=38586|LinkText=hier}} beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine Alternative um Telefone klingeln zu lassen, ist die Nutzung des [[SIP-Client]]s.&lt;br /&gt;
&lt;br /&gt;
=== Anwesenheitserkennung per regelmäßiger Abfrage über das PRESENCE Modul ===&lt;br /&gt;
Fritzboxen und die FRITZ!WLAN Repeater speichern den Status angemeldeter Geräte. Dieser Status lässt sich mittels des FRITZBOX Moduls über Readings abfragen, die das Format mac_AA_AA_AA_AA_AA_AA haben und die MAC-Adressen der jeweils angemeldeten Geräte (AA:AA:AA:AA:AA:AA) enthalten. Das Reading existiert, wenn das Gerät angemeldet ist. Wenn das Gerät abgemeldet ist, existiert es nicht mehr. Es gibt auch noch den Zwischenstatus &amp;quot;inactive&amp;quot;, der anscheinend gesetzt wird, bevor das Reading gelöscht wird.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe des [[PRESENCE]] Moduls (vgl. [[Anwesenheitserkennung]]) kann man auf diese Weise den Anwesenheitsstatus abfragen. Anregungen dazu gibt es im zugehörigen {{Link2Forum|Topic=39433|LinkText=Forenthread}} zur Anwesenheitserkennung und in [http://heinz-otto.blogspot.de/2015/07/die-zeiten-andern-sich.html diesem  Blogpost]. Auf dieser Basis könnte eine einfache Implementierung zum Beispiel so aussehen:&lt;br /&gt;
&lt;br /&gt;
Funktion in [[99_myUtils anlegen|99_myUtils]]:&lt;br /&gt;
&#039;&#039;&#039;(Bitte beim Speichern darauf achten, dass nicht der Name 99_Utils gewählt wird.)&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;sub checkFritzMACpresent($$) {&lt;br /&gt;
  # Benötigt: Name der zu testenden Fritzbox ($d),&lt;br /&gt;
  #           zu suchende MAC ($m), &lt;br /&gt;
  # Rückgabe: 1 = Gerät gefunden&lt;br /&gt;
  #           0 = Gerät nicht gefunden&lt;br /&gt;
  my ($d,$m) = @_;&lt;br /&gt;
  $m =~ s/:/_/g;&lt;br /&gt;
  $m = &amp;quot;mac_&amp;quot;.uc($m);&lt;br /&gt;
  return (ReadingsVal($d,$m,&amp;quot;inactive&amp;quot;) ne &amp;quot;inactive&amp;quot;) ? 1 : 0;&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nutzung dieser Funktion mit dem PRESENCE Modul definieren:&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; PRESENCE function {checkFritzMACpresent(&amp;quot;Fritzbox&amp;quot;,&amp;quot;AA:BB:CC:DD:EE:FF&amp;quot;)}  60 60&amp;lt;/code&amp;gt;&lt;br /&gt;
wobei&lt;br /&gt;
*&amp;lt;Name&amp;gt; ein beliebig zu wählender Name für die PRESENCE-Funktion ist,&lt;br /&gt;
*Fritzbox der Name ist, mit dem ihr die abzufragende Fritzbox als FRITZBOX definiert habt,&lt;br /&gt;
*AA:BB:CC:DD:EE:FF die MAC-Adresse des gesuchten Geräts ist.&lt;br /&gt;
* &amp;quot;60 60&amp;quot; sagt, dass der Anwesenheitsstatus im 60-Sekunden-Takt abgefragt wird. Das macht natürlich nur Sinn, wenn ihr mit &amp;lt;code&amp;gt;attr Fritzbox INTERVAL 60&amp;lt;/code&amp;gt; den Abfrageinterval bei der Fritzbox auch entsprechend hochgesetzt habt. Der Standard ist 300.&lt;br /&gt;
* &amp;quot;Log 1&amp;quot; führt immer zum Loggen. Das ist zum Einrichten praktisch, ohne dass man gleich für das ganze Modul oder ganz FHEM &amp;lt;code&amp;gt;attr &amp;lt;device&amp;gt; verbose 5&amp;lt;/code&amp;gt; setzen muss. Wenn es läuft, können die &amp;quot;Log 1&amp;quot;-Zeilen gelöscht, auskommentiert (# an den Zeilenanfang) oder in &amp;quot;Log 5&amp;quot; geändert werden.&lt;br /&gt;
&lt;br /&gt;
=== Anwesenheitserkennung über mehrere Fritzboxen oder AVM Repeater und Fritzbox ===&lt;br /&gt;
Existiert ein AVM Repeater im Netzwerk, kann der als eigenständiges Gerät mit FRITZBOX definiert werden. WLAN Geräte an der Fritzbox werden in der Instanz der Fritzbox gelistet und WLAN Geräte am Repeater in der Repeater Instanz. Um trotzdem die Anwesenheit im Netzwerk einfach zu erkennen, muss die Subroutine in 99_myUtils.pm abgewandelt werden. (Siehe auch [https://forum.fhem.de/index.php/topic,39433.msg1075247.html#msg1075247 Forum Beitrag])&lt;br /&gt;
&lt;br /&gt;
Existiert eine zweite Fritzbox im Accesspointmodus, werden die WLAN Geräte im Netzwerk alle in der Hauptfritzbox an einem LAN Anschluss gelistet. D.h. man sieht an der Hauptfritzbox nicht, dass sie im WLAN sind. Eine zweite Instanz mit dem FRITZBOX Modul muss wegen der Anwesenheitserkennung nicht gemacht werden. Die folgende Routine kann aber universell eingesetzt werden, unabhängig von der Anzahl der FRITZBOX Instanzen. Wer mitloggen will, kann das analog zur obigen Routine einbauen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;sub checkAllFritzMACpresent($) {&lt;br /&gt;
  # Benötigt: nur die zu suchende MAC ($MAC),&lt;br /&gt;
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt&lt;br /&gt;
  #&lt;br /&gt;
  # Rückgabe: 1 = Gerät gefunden&lt;br /&gt;
  #           0 = Gerät nicht gefunden&lt;br /&gt;
  my ($MAC) = @_;&lt;br /&gt;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0&lt;br /&gt;
  my $Status = 0;&lt;br /&gt;
  $MAC =~ tr/:/_/;&lt;br /&gt;
  $MAC = &amp;quot;mac_&amp;quot;.uc($MAC);&lt;br /&gt;
  my @FBS = devspec2array(&amp;quot;TYPE=FRITZBOX&amp;quot;);&lt;br /&gt;
    foreach( @FBS ) {&lt;br /&gt;
        my $StatusFritz = ReadingsVal($_, $MAC, &amp;quot;weg&amp;quot;);&lt;br /&gt;
        if ($StatusFritz eq &amp;quot;weg&amp;quot;) {&lt;br /&gt;
            # Dieser Zweig testet ob das Reading vorhanden ist&lt;br /&gt;
            } elsif ($StatusFritz eq &amp;quot;inactive&amp;quot;) {&lt;br /&gt;
            # Dieser Zweig testet ob im Reading inactive steht&lt;br /&gt;
            } elsif ($StatusFritz =~ /(.*)s, 0/) {&lt;br /&gt;
            # Dieser Zweig testet auf &amp;quot;&amp;lt;geraetename&amp;gt; (WLAN, 0 / 0 Mbit/s, 0)&amp;quot;&lt;br /&gt;
        } else { $Status = 1}&lt;br /&gt;
    }&lt;br /&gt;
  return $Status&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da hiermit nach allen Instanzen mit dem TYPE=FRITZBOX durchsucht wird, braucht der Name der Fritzbox nicht angegeben werden.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; PRESENCE function {checkAllFritzMACpresent(&amp;quot;AA:BB:CC:DD:EE:FF&amp;quot;)}  60 60&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Hinweise zu komplexeren Abfragen mehrere Boxen auf einmal etc. findet ihr auch im diesem {{Link2Forum|Topic=39433|LinkText=Forenthread}}.&lt;br /&gt;
&lt;br /&gt;
=== Anwesenheitserkennung per Notify ===&lt;br /&gt;
Der von Fritzboxen und Fritz!WLAN Repeatern gespeicherte Status zum Status angemeldeter Geräte lässt sich (statt per PRESENCE, s.o.) auch per [[notify]] anfragen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;define n_PRESENCE_mac_AA_BB_CC_DD_EE_FF notify Fritzbox:mac_AA_BB_CC_DD_EE_FF:.* {&lt;br /&gt;
  my $s = &amp;quot;absent&amp;quot;;&lt;br /&gt;
  $s = &amp;quot;present&amp;quot; if (ReadingsVal($NAME,&amp;quot;mac_AA_BB_CC_DD_EE_FF&amp;quot;,&amp;quot;inactive&amp;quot;) ne &amp;quot;inactive&amp;quot;);&lt;br /&gt;
  fhem(&amp;quot;set anwesend_smartphone $s&amp;quot;);&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweise:&lt;br /&gt;
* &amp;lt;code&amp;gt;fhem(&amp;quot;set anwesend_smartphone $s&amp;quot;);&amp;lt;/code&amp;gt; ist nur ein Beispiel, das einen Dummy auf den Status &amp;quot;absent&amp;quot; bzw. &amp;quot;present&amp;quot; setzt. Man kann hier natürlich auch gleich entsprechende Aktionen durchführen. Wer das Beispiel übernehmen möchte, sollte den Dummy vorher definieren (&amp;lt;code&amp;gt;define anwesend_smartphone dummy&amp;lt;/code&amp;gt;).&lt;br /&gt;
* mac_AA_BB_CC_DD_EE_FF ist die MAC-Adresse des gesuchten Geräts.&lt;br /&gt;
* &amp;quot;Fritzbox&amp;quot; ist der Name, unter dem die Fritzbox als FRITZBOX-Modul definiert wurde.&lt;br /&gt;
* Das Notify funktioniert, weil Geräte, wenn sie sich abgemeldet haben, erst den Status &amp;quot;inactive&amp;quot; erhalten. Ist das Gerät ganz abgemeldet, verschwindet das mac_.*-Reading. Dabei löst das Notify nicht mehr aus. Da das mac-.*-Reading aber vorher auf &amp;quot;inactive&amp;quot; stand, wurde die Abwesend-Aktion schon ausgeführt.&lt;br /&gt;
* Damit der Notify nicht andauernd losgeht, sollte man mittels &amp;lt;code&amp;gt;attr Fritzbox [[event-on-change-reading]] mac_AA_BB_CC_DD_EE_FF&amp;lt;/code&amp;gt; Events nur auslösen, wenn sich der Status des Gerätes ändert. Will man mehrere Geräte abfragen, sollte man &amp;lt;code&amp;gt;attr Fritzbox event-on-change-reading mac_AA_BB_CC_DD_EE_FF,mac_GG_HH_II_JJ_KK_LL&amp;lt;/code&amp;gt; setzen, damit bei der Änderung jedes Readings ein Event ausgelöst wird.&lt;br /&gt;
Alternativ geht&#039;s auch mit einem &amp;lt;code&amp;gt;DOIF&amp;lt;/code&amp;gt;, für meinen Geschmack etwas übersichtlicher:&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
define di_PRESENCE_handy DOIF (\&lt;br /&gt;
  [Fritzbox:mac_AA_BB_CC_DD_EE_FF,&amp;quot;inactive&amp;quot;] eq &amp;quot;inactive&amp;quot;\&lt;br /&gt;
)\&lt;br /&gt;
( msg Tschuess )\&lt;br /&gt;
DOELSE\&lt;br /&gt;
( msg Hallo )&lt;br /&gt;
&lt;br /&gt;
attr di_PRESENCE_handy cmdState absent|present&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Für das DOIF gelten im Wesentlichen dieselben Hinweise wie für das notify oben und auch die im nächsten Abschnitt beschriebenen Vor- und Nachteile. Man bekommt allerdings dank dem &amp;lt;code&amp;gt;attr cmdState&amp;lt;/code&amp;gt; auch gleichzeitig noch ein Device mit dem passenden Status &amp;quot;frei Haus&amp;quot;, kann sich also das oben beschriebene dummy-Device sparen und auch das &amp;lt;code&amp;gt;event-on-change-reading&amp;lt;/code&amp;gt; sollte nicht nötig sein.&lt;br /&gt;
&lt;br /&gt;
=== Vergleich Anwesenheitserkennung PRESENCE/Notify ===&lt;br /&gt;
Die Anwesenheitserkennung per regelmäßiger PRESENCE-Abfrage hat den Vorteil, dass sie im Turnus der regelmäßigen Abfragen immer einen aktuellen Status produziert. Sie hat dafür den Nachteil, dass die PRESENCE-Funktionen regelmäßig abgearbeitet werden müssen, auch wenn sich gar nichts ändert. Außerdem aktualisiert sich der Status nicht sofort, sondern erst bei der nächsten regelmäßigen Abfrage. Durch häufiges Abfragen kann dieser Nachteil verringert werden (bei entsprechend höherer Systemlast).&lt;br /&gt;
&lt;br /&gt;
Die Anwesenheitserkennung per Notify hat den Vorteil, dass ein sich ändernder Status sofort abgebildet wird. Ändert sich kein Status, werden keine Routinen ausgeführt, was die Systemlast gering hält. Der Nachteil ist, dass - z.B. nach einem Systemstart - die entsprechende Aktion erst bei einer Änderung des Status ausgeführt wird. D.h. ist das zu testende Gerät anwesend, wird dann FHEM beendet, das Gerät entfernt und FHEM wieder gestartet, ist der Status in FHEM immer noch &amp;quot;anwesend&amp;quot;. Da das Reading für das Gerät nicht existiert, wird darauf auch erst wieder ein Notify ausgeführt, wenn sich der Status des Geräts wieder ändert, d.h. es wieder ankommt. Bis dahin ist der Status im System falsch. &lt;br /&gt;
Der Nachteil des Notify kann verringert werden, wenn man statt &amp;lt;code&amp;gt;attr Fritzbox event-on-change-reading mac_AA_BB_CC_DD_EE_FF&amp;lt;/code&amp;gt; ein &amp;lt;code&amp;gt;attr Fritzbox [[event-on-update-reading]] mac_AA_BB_CC_DD_EE_FF&amp;lt;/code&amp;gt; setzt. Das erhöht allerdings die Systemlast und funktioniert auch nur für den Status &amp;quot;anwesend&amp;quot;. Bei &amp;quot;abwesend&amp;quot; ist kein Reading vorhanden, so dass auch event-on-update-reading nicht ausgeführt wird.&lt;br /&gt;
Eine weitere Möglichkeit, den Nachteil der Notify-Methode auszugleichen, ist, die Statusabfrage beim Systemstart einmal manuell auszuführen, durch ein notify auf &amp;quot;GLOBAL:initialized&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;global:INITIALIZED {&lt;br /&gt;
  my $s = &amp;quot;absent&amp;quot;;&lt;br /&gt;
  $s = &amp;quot;present&amp;quot; if (ReadingsVal(&amp;quot;Fritzbox&amp;quot;,&amp;quot;mac_AA_BB_CC_DD_EE_FF&amp;quot;,&amp;quot;inactive&amp;quot;) ne &amp;quot;inactive&amp;quot;);&lt;br /&gt;
  fhem(&amp;quot;set anwesend_smartphone $s&amp;quot;);&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das hilft allerdings nur beim Systemstart. Nicht, wenn FHEM aufgrund irgendwelcher Hänger eine Aktualisierung des Status verpasst hat.&lt;br /&gt;
&lt;br /&gt;
=== userReadings per &#039;&#039;get tr064Command&#039;&#039; oder &#039;&#039;get luaQuery&#039;&#039; ===&lt;br /&gt;
Um dem Gerätewert &amp;lt;userReadingName&amp;gt; den Wert von &amp;lt;VariabelName&amp;gt; aus der Rückgabe des get-Befehls &#039;&#039;tr064Command&#039;&#039; oder &#039;&#039;luaQuery&#039;&#039; zuzuordnen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
attr &amp;lt;device&amp;gt; userReadings &amp;lt;userReadingName&amp;gt; {my $resp=fhem(&amp;quot;get &amp;lt;device&amp;gt; tr064Command &amp;lt;service&amp;gt; &amp;lt;control&amp;gt; &amp;lt;action&amp;gt; [[&amp;lt;argName1&amp;gt; &amp;lt;argValue1&amp;gt;] ...]&amp;quot;,1);;$resp =~/\&#039;&amp;lt;VariabelName&amp;gt;\&#039; =&amp;gt; &#039;(.*)&#039;/;;return $1;;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Randnotiz|RNTyp=r|RNText=&#039;&#039;&#039;VORSICHT&#039;&#039;&#039;: man sollte einen genaueren Trigger für diese userReadings setzen, sonst wird bei jeder Aktualierung von jedem Reading das get Kommando ausgeführt, was ganz schnell ein (für fhem blockierende) Dauerlaufer werden kann.}}&lt;br /&gt;
&lt;br /&gt;
Beispielsweise&lt;br /&gt;
&amp;lt;pre&amp;gt;attr Fritzbox userReadings urMobilteil_1 {my $resp=fhem(&amp;quot;get Fritzbox tr064Command X_AVM-DE_OnTel:1 x_contact GetDECTHandsetInfo NewDectID 1&amp;quot;,1);;$resp =~/&#039;NewHandsetName&#039; =&amp;gt; &#039;(.*)&#039;/;;return $1;;},&lt;br /&gt;
        urDownstreamDSLRate {my $resp=fhem(&amp;quot;get Fritzbox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo&amp;quot;,1);;$resp =~/&#039;NewDownstreamCurrRate&#039; =&amp;gt; &#039;(.*)&#039;/;;return $1;;},&lt;br /&gt;
        urUpstreamDSLRate {my $resp=fhem(&amp;quot;get Fritzbox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo&amp;quot;,1);;$resp =~/&#039;NewUpstreamCurrRate&#039; =&amp;gt; &#039;(.*)&#039;/;;return $1;;}&amp;lt;/pre&amp;gt;&lt;br /&gt;
oder bei einzelnen Werte über &#039;&#039;get luaQuery&#039;&#039;&amp;lt;pre&amp;gt;attr Fritzbox userReadings sip1_connect {my $resp=fhem(&amp;quot;get Fritzbox luaQuery sip:settings/sip1/connect&amp;quot;,1);;$resp =~/([0-9])$/;;return $1;;}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Klingelton-Einstellung und Abspielen von Sprachnachrichten bei Fritz!OS-Versionen &amp;gt;6.24 ===&lt;br /&gt;
Wenn die Fritzbox weder die Telnet- noch die webcmd-Schnittstelle hat, kann der Klingelton der Fritz!Fons nicht mehr verstellt und auch keine Sprachnachricht über ein Fritz!Fon ausgegeben werden.&lt;br /&gt;
&lt;br /&gt;
Es gibt eine Behelfslösung über das Attribut &#039;&#039;useGuiHack&#039;&#039;. Dadurch wird eine Eingabe in die WebGUI der Fritzbox simuliert. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ACHTUNG&#039;&#039;&#039;: Vor allem nach einem Update der FritzBox kann es durch dieses Attribut zu ungewolltem Verstellen von Werten in der Fritzbox kommen.&lt;br /&gt;
&lt;br /&gt;
Bei Verwendung der ring-Parameter &amp;quot;play:&amp;quot; und &amp;quot;say:&amp;quot; wird die abzuspielende URL in die M3U-Datei, die unter dem Internal &#039;&#039;M3U_LOCAL&#039;&#039; steht, eingetragen.&lt;br /&gt;
&lt;br /&gt;
Standardmäßig wird versucht, diese Datei im image-Verzeichnis von FHEM abzulegen. Diese kann dann vom Fritz!Fon über [[FHEMWEB]] abgespielt werden (IP-Freigaben beachten). Direkt nach dem ersten Anlegen der m3u-Datei kennt [[FHEMWEB]] diese noch nicht, daher bitte entweder &#039;&#039;set &amp;lt;webdevice&amp;gt; rereadicons&#039;&#039; ausführen oder FHEM neu starten.&lt;br /&gt;
&lt;br /&gt;
Aufgrund der Beschränkungen von [[FHEMWEB]] oder auch bei Authentifizierungsanforderungen ist es empfehlenswert, die Datei über das Attribute &#039;&#039;m3uFileLocal&#039;&#039; selber vorzugeben. Am besten auf einem Webserver, der auf dem FHEM-Server läuft und dessen Seiten-Verzeichnis durch FHEM beschreibbar ist. Beispiel: &lt;br /&gt;
:&amp;lt;code&amp;gt;attr Fritzbox m3uFileLocal /var/www/mp3/Fritzbox.m3u&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dem Radioeintrag &#039;&#039;FHEM&#039;&#039; muss dann &#039;&#039;&#039;auf der FritzBox&#039;&#039;&#039;, die &#039;&#039;&#039;Web&#039;&#039;&#039;-Adresse der entsprechenden Datei eingetragen werden. Dieser Sender sollte zu Testzwecken dann auch einmal am Fritz!Fon von Hand gestartet werden.&lt;br /&gt;
&lt;br /&gt;
Das Modul versucht, beim Start die einzutragende Radio-URL im image-Verzeichnis selber zu ermitteln (IP-Freigabe beachten). Gelingt dies, so steht diese im Internal &#039;&#039;M3U_URL&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Ring auf mehreren Telefonen gleichzeitig ===&lt;br /&gt;
Damit mehrere Telefone per ring gleichzeitig klingeln, muss in der Fritzbox eine Rufgruppe definiert werden.&lt;br /&gt;
Sollte eine Türsprechanlage schon in Benutzung sein, kann die eventuell hierfür bereits eingerichtete Gruppe verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Das Anlegen der Gruppe kann wie in folgender AVM Anleitung beschrieben erledigt werden. [https://avm.de/service/fritzbox/fritzbox-7390/wissensdatenbank/publication/show/1148_Interne-Rufgruppe-in-FRITZ-Box-einrichten-Gruppenruf/ AVM Interne Rufgruppe anlegen]&lt;br /&gt;
&lt;br /&gt;
Es muss eine Kurzwahl bei der Gruppe zwingend hinterlegt sein. Danach kann mit folgendem Beispielcode gearbeitet werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;set FritzBox ring 791 15 show:Türklingel&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Name des Devices, Rufgruppen Nummer, Länge und gezeigter Text auf das Gewünschte anpassen.&lt;br /&gt;
&lt;br /&gt;
== Bekannte Probleme / Fehlersuche ==&lt;br /&gt;
=== Fehler nach Firmware Update ===&lt;br /&gt;
Typischer Fehler ist hier &amp;quot;Error: 403 Forbidden&amp;quot;. &lt;br /&gt;
Nach einem Firmwareupdate der Fritzbox am besten auch FHEM neu starten.&lt;br /&gt;
&lt;br /&gt;
=== Modul bleibt im Status &amp;quot;Check APIs&amp;quot; hängen===&lt;br /&gt;
Im Log steht die Meldung: &amp;quot;Error: Timeout when reading Fritz!Box data.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Mögliche Ursache: Nutzung des FHEM-Befehls [[rereadcfg]]. Dieser verträgt sich nicht mit dem Modul &amp;quot;blocking.pm&amp;quot;, das für parallel laufende FHEM-Prozesse genutzt wird.&lt;br /&gt;
&lt;br /&gt;
Abhilfe schafft ein Neustart &amp;lt;code&amp;gt;shutdown restart&amp;lt;/code&amp;gt; oder das Einfügen eines zusätzlichen, lokalen Telnet-Ports z.B. durch &amp;lt;code&amp;gt;define tPortLocal telnet 7073&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nachtschaltung Doppel-WLAN ===&lt;br /&gt;
Beim Abschalten des WLAN über das Modul wird (über TR064) zuerst das 2.4 GHz und dann das 5 GHz WLAN ausgeschaltet. Bei der gleichzeitigen Nutzung der WLAN-Nachtschaltung (Anschalten über das Fritz!OS) wird dann jedoch nur noch das 5 GHz WLAN wieder angeschaltet. Die Box interpretiert den TR064-Befehl anscheinend als ein komplettes Abwählen des 2.4 GHz WLAN.&lt;br /&gt;
&lt;br /&gt;
Abhilfe schafft hier nur ein notify auf das 5 GHz WLAN mit einem nachträglichem Anschalten des 2.4 GHz WLAN.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann das Ausschalten des WLANs nicht direkt über TR064-Kommandos, sondern über einen indirekten Weg erfolgen: über TR064 ein set call abzusetzen und hier den Tastencode zum Ausschalten des WLANs einzugeben, bei einer FritzBox 7490 wäre dies z. B. #96*0*. &lt;br /&gt;
Schaltet man über diese Methode das WLAN aus, kann es über die Nachtschaltung wieder automatisch auf beiden Frequenzen angeschaltet werden.&lt;br /&gt;
&lt;br /&gt;
=== Kabelboxen ===&lt;br /&gt;
Bei Fritz!Boxen für den Kabelanschluss (z.B. Kabel Deutschland) scheint neben Telnet auch die TR064-API nicht zu funktionieren. Vermutlich wurde die API von AVM auf Betreiberwunsch deaktiviert, da man sonst Dinge ändern kann, die das gesamte Kabelnetz stören können.&lt;br /&gt;
&lt;br /&gt;
Zumindest für Unitymedia und einer FRITZ!Box 6490 Cable (lgi) mit FRITZ!OS:06.50 funktioniert TR064. &lt;br /&gt;
&lt;br /&gt;
Eine Rufumleitung bei Abwesenheit (Modul PRESENCE) funktioniert mit einer vorher eingerichten Telefonnummer wie folgt: &lt;br /&gt;
&amp;lt;code&amp;gt;define Rufumleitung DOIF ([Anwesenheit.dum:state] eq &amp;quot;off&amp;quot;) (set FritzBox6490 diversity 1 on) DOELSEIF ([Anwesenheit.dum:state] eq &amp;quot;on&amp;quot;) (set FritzBox6490 diversity 1 off)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Wenn&#039;s nicht klingelt ===&lt;br /&gt;
Das Klingeln erfolgt über die Wählhilfe. Eventuell muss über die Weboberfläche der Fritz!Box ein anderer Port eingestellt werden. Der aktuelle steht in &amp;quot;box_stdDialPort&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== TR064-Transport-Error: 500 Can&#039;t connect to ...:49443 (certificate verify failed) ===&lt;br /&gt;
Eventuell hilft es, die Perl Module Net::HTTPS, Net::SSL und IO::Socket::SSL zu aktualisieren.&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Error: Old SID not valid anymore.&amp;quot; nach Erlauben von IPv6 auf der Fritzbox ===&lt;br /&gt;
Ohne hier den genauen Grund zu kennen - es hilft die Angabe der IPv4-Adresse: also statt &amp;lt;code&amp;gt;define FritzBox FRITZBOX&amp;lt;/code&amp;gt; dann &amp;lt;code&amp;gt;define FritzBox FRITZBOX &amp;lt;IP&amp;gt;&amp;lt;/code&amp;gt; (z.B. &amp;lt;code&amp;gt;define FritzBox FRITZBOX 192.168.10.1&amp;lt;/code&amp;gt;), so dass das Modul nicht über IPv6 geht.&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;Didn&#039;t get a session ID&amp;quot; ===&lt;br /&gt;
Bei gleichzeitiger Nutzung anderer Module für die Fritzbox (z.B. {{Link2CmdRef|Anker=FBAHAHTTP|Lang=en|Label=FBAHAHTTP}}) muss der Zugang über Benutzername und Password erfolgen.&lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;DEVICE&amp;gt; boxUser &amp;lt;USER&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Da das FRITZBOX-Modul eine inoffizielle Schnittstelle benutzt, muss dann auch der normale Zugang zur Box auf &amp;quot;Benutzername und Password&amp;quot; eingestellt sein.&lt;br /&gt;
&lt;br /&gt;
In der Firmware 6.92 wird der Zugang über die Menüs &amp;quot;System&amp;quot;-&amp;gt;&amp;quot;Fritz!Box-Benutzer&amp;quot;-&amp;gt;&amp;quot;Anmeldung im Heimnetz&amp;quot; eingestellt.&lt;br /&gt;
&lt;br /&gt;
Oft wird aber auch ein falsches oder gar kein Passwort gesetzt.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;set &amp;lt;DEVICE&amp;gt; password &amp;lt;PASSWORD&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  TR064-Error 401:invalid action ===&lt;br /&gt;
Eventuell ist auf der Fritzbox ein Benutzer gesetzt und im Modul nicht korrekt angegeben bzw. mit falschen Rechten versehen (attribut boxUser).&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;
[[Kategorie:Akustische Ausgabe]]&lt;/div&gt;</summary>
		<author><name>Yoda gh</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIGNALduino&amp;diff=35613</id>
		<title>SIGNALduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIGNALduino&amp;diff=35613"/>
		<updated>2021-04-24T18:42:00Z</updated>

		<summary type="html">&lt;p&gt;Yoda gh: /* FHEM-Modul laden */ Empfehlung für &amp;quot;update add&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Empfang und Verarbeitung von digitalen Signalen&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=38402&lt;br /&gt;
|ModCmdRef=SIGNALduino&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=00_SIGNALduino.pm&lt;br /&gt;
|ModOwner=Sidey ({{Link2FU|8018|Forum}}/[[Benutzer Diskussion:Sidey|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Übersicht ===&lt;br /&gt;
Unter den Namen SIGNALduino versteht man sowohl den Low-Cost Empfänger für digitale Signale (vergleichbar dem  [[CUL]]) als auch das gleichnamige Modul mit dem Dateinamen 00_SIGNALduino.pm. Mit dem SIGNALduino kann man entweder 433 oder 868 MHz-Geräte auslesen und ansprechen. Der SIGNALduino funktioniert auch mit anderen Medien wie Infrarot oder direkter Kabelverbindung.&lt;br /&gt;
&lt;br /&gt;
Der SIGNALduino(-Stick) erkennt Signale anhand von Mustern und gibt sie (als maximal detaillierte Beschreibung einer Signalabfolge) dann schlicht sofort nur noch an FHEM zur Auswertung (Dekodierung) weiter. Auch nicht erkannte Signale werden an FHEM übergeben.&lt;br /&gt;
Aufgabe des SIGNALduino (Firmware/Stick) ist es also nur, Signal-Aktivitäten zu erfassen und maximal präzise (als kurzer Text-String) zu beschreiben.&lt;br /&gt;
Alles weitere (echte, finale Auswertung / Zuweisung dieser Signal-Daten) wird dann auf einer großen Box (Raspberry o.ä.) gemacht.&lt;br /&gt;
&lt;br /&gt;
=== Vorteil gegenüber einem CUL/FHEMduino ===&lt;br /&gt;
Der SIGNALduino hat den Vorteil einer sehr schnellen Demodulation des Funksignals. Sollen weitere Protokolle dekodiert werden, so muss dazu nur ein passendes FHEM Modul entwickelt oder ein universelles Modul erweitert werden (also auf flexibel direkt updatebarer Rechner-Seite!!). Änderungen am Arduino-Firmware-Code sind normalerweise nicht notwendig (sofern die grundsätzliche Signal-Klassifizierung des Sticks korrekt funktioniert - leider nicht immer, z.B.: [https://github.com/RFD-FHEM/SIGNALDuino/issues/65 MU-Nachrichten werden z.T. als MC erkannt]).&lt;br /&gt;
&lt;br /&gt;
Ein großer Vorteil des SIGNALduino besteht darin, dass auch Geräte mit leicht abweichende Frequenzen steuerbar sind; so empfangen die Somfy-Rolladenmotoren beispielsweise auf 433.42 und nicht, wie bei anderen Geräten sehr oft üblich, auf 433.92 MHz. Die Frequenzumstellung stellt für den SIGNALduino kein Problem dar.&lt;br /&gt;
&lt;br /&gt;
Ebenso kann man den SIGNALduino direkt an den Sendeausgang eines Sensors anbinden und die digitalen Signale empfangen, dabei bitte aber auf die passenden Spannungen achten, denn ein Arduino Nano verträgt nur 5V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsversion ===&lt;br /&gt;
Der SIGNALduino wird derzeit aktiv weiterentwickelt, siehe dazu https://github.com/RFD-FHEM. Die offizielle Version wird {{Link2Forum|Topic=58396|LinkText=hier}} genauer beschrieben. Es existieren im Forum diverse angepasste Versionen, auf die hier nicht näher eingegangen wird.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== Controller ===&lt;br /&gt;
Der SIGNALduino (Hardware) wird über den USB Port angeschlossen, er kann aber auch mit zusätzlichen ESP Modulen über ein WLAN angebunden werden. Bei Einbindung via ESP muss man beachten, dass der ESP nach 5 Minuten Inaktivität seine TCP-Verbindung unterbricht (siehe [[ESP8266#Bekannte_Probleme|diesen Hinweis]]). Zu diesem Zweck gibt es einen Signalduino-eigenen Ping-Befehl (&#039;get signalduino ping&#039;), der diese Aktivität wieder aufbaut. Ping-Befehle sind auch auf Betriebssystemebene bekannt - allerdings beachte man, dass der ping-Befehl auf Betriebssystemebene ICMP verwendet, zum &amp;quot;aufwachen&amp;quot; des ESP aber auf TCP-Ebene aktiviert werden muss (zum Unterschied siehe [https://www.tippscout.de/internet-was-sind-tcp-ip-udp-und-icmp_tipp_2268.html hier]) und man daher besser den Signalduino-eigenen Befehl und nicht das Betriebssystem verwendet.&lt;br /&gt;
&lt;br /&gt;
Der SIGNALduino basiert auf einem [http://arduino.cc/de/Main/ArduinoBoardNano Arduino Nano], die Schaltung entspricht  dem [[Selbstbau_CUL]] (eine frühere Version ist der nicht mehr weiterentwickelte [[FHEMduino]]):&lt;br /&gt;
* Entweder wird ein Arduino mit einfachen Sende- und Empfangsmodulen verwendet, dann ist die Verkabelung identisch zum [[FHEMduino]] &lt;br /&gt;
* Oder es wird ein CC1101 Transceiver verwendet, dann ist die Verkabelung identisch zum [[Selbstbau_CUL]]. Dieser Aufbau wird derzeit empfohlen.&lt;br /&gt;
* Zuletzt gibt es ein fertig konfektioniertes Modul von In-Circuit mit Radino CC1101 Varianten, link zum [http://shop.in-circuit.de/index.php Hersteller]. &lt;br /&gt;
&lt;br /&gt;
Achten Sie beim Selbstbau auf die entsprechenden Sender-Empfänger. Der sehr preiswert angebotene XY-MK-5V hat sich als zu unzuverlässig erwiesen, während anscheinend beim CC1101 (insbesondere der &amp;quot;grünen Version&amp;quot;) keine Probleme auftreten. &lt;br /&gt;
&lt;br /&gt;
Es stehen auch für den [https://www.arduino.cc/en/Main/arduinoBoardUno UNO] und [https://www.arduino.cc/en/Main/ArduinoBoardProMini PRO Mini] Firmware-Dateien zur Verfügung. Die ausgelieferte Firmware läuft nur auf Mikrocontrollern mit 16 MHz; wer einen Mikrocontroller mit 8 MHz verwenden möchte, muss die Firmware selbst compilieren. Die SW ist auf [https://github.com/RFD-FHEM/SIGNALDuino github]. Vorgesehen ist nur die Übersetzung unter Windows mit Visual Studio und dem Visual Micro Zusatz. Es gibt aber auch eine Anleitung, wie man mit der [[Arduino]] IDE oder einem Makefile [[SIGNALduino Compilieren]] kann.&lt;br /&gt;
&lt;br /&gt;
Es gibt auch eine Variante des SIGNALduino, die auf einem [[ESP8266]] nativ läuft, diese funktioniert seit Anfang 2018 annehmbar, allerdings befindet diese sich noch in einer Entwicklungsphase.&lt;br /&gt;
&lt;br /&gt;
An den &amp;quot;SIGNALESP&amp;quot; kann auch ein CC1101 via SPI angebunden werden:&lt;br /&gt;
&lt;br /&gt;
{| |&lt;br /&gt;
!CC1101 Bezeichnung&lt;br /&gt;
!ESP Pin&lt;br /&gt;
|-&lt;br /&gt;
|CLK||GPIO14&lt;br /&gt;
|-&lt;br /&gt;
|MOSI||GPIO13&lt;br /&gt;
|-&lt;br /&gt;
|MISO||GPIO12&lt;br /&gt;
|-&lt;br /&gt;
|CSN||GPIO15&lt;br /&gt;
|-&lt;br /&gt;
|GDO0||GPIO4&lt;br /&gt;
|-&lt;br /&gt;
|GDO2||GPIO5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wird ein einfacher Empfänger / Sender Kombination verwendet, dann über die PINs:&lt;br /&gt;
&lt;br /&gt;
{| |&lt;br /&gt;
! Bezeichnung &lt;br /&gt;
! ESP Pin&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter||GPIO4&lt;br /&gt;
|-&lt;br /&gt;
|Receiver||GPIO5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sendemodule ===&lt;br /&gt;
{{Randnotiz|RNTyp=r|RNText=Viele user berichten über Empfangsprobleme bei Nutzung des XY-MK-5V; es wird ausdrücklich empfohlen, ein anderes Empfangsmodul zu nutzen!}}&lt;br /&gt;
[[Datei:Fhemduino_schematic.png|200px|thumb|right|Beispielschaltplan SIGNAL(FHEM)duino]]  &lt;br /&gt;
&lt;br /&gt;
Mit einem Arduino-Nano und folgenden, billigen Sende- und Empfangsmodulen können Sie einen SIGNALduino bauen:&lt;br /&gt;
* FS1000A Dies ist das Sendemodul (TX) und wird oft im Set mit dem billigen XY-MK-5V-Empfänger angeboten (etwa 5€). &lt;br /&gt;
* RXB6 Das ist das empfohlene Empfangsmodul (RX), statt XY-MK-5V, etwa 5€ aus Deutschland.&lt;br /&gt;
&lt;br /&gt;
Die Verkabelung erfolgt analog zum [[FHEMduino]] und das bedeutet (Arduino -&amp;gt; Modul):&lt;br /&gt;
* PIN D2 an DATA des RX-Moduls&lt;br /&gt;
* PIN D11 an DATA des TX-Moduls (PIN links mit Beschriftung ATAD)&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss noch jeweils GND und 5V des Arduino mit dem GND bzw. VCC des Moduls verbunden werden.&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlen noch die Antennen. Dafür braucht man ein 17,2 cm langes Stück Kupferdraht, das wird beim Anschluss &amp;quot;ANT&amp;quot; jeweils am Modul angelötet (anfängergeeignet).&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===  USB-ID ermitteln  ===&lt;br /&gt;
Bevor der SIGNALduino mit dem FHEM Server (im Beispiel hier ein Raspberry PI) verbunden werden kann, muss die USB-Schnittstelle ermittelt werden. Hierzu bitte auf dem Terminal den Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt; ls -l /dev/serial/by-id &amp;lt;/pre&amp;gt;&lt;br /&gt;
ausführen. Beispielhaft sieht das Ergebnis etwa so aus: &lt;br /&gt;
&#039;&#039;lrwxrwxrwx 1 root root 13 Jan 31 00:02 &#039;&#039;&#039;usb-FTDI_FT232R_USB_UART_A903N5T5-if00-port&#039;&#039;&#039; -&amp;gt; ../../ttyUSB0&#039;&#039; &lt;br /&gt;
Damit ist der Anschluss des SIGNALduino bestimmt und das Gerät kann wie im nächsten Abschnitt beschrieben definiert werden. Zuvor muss noch das Modul geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Modul laden ===&lt;br /&gt;
Die SIGNALduino Module werden über das FHEM [[update]] verteilt, sobald die Änderungen einen &amp;quot;stabilen&amp;quot; und alltags tauglichen Zustand haben. Aktuell wird dort die Version 3.4.2 seit 08.04.2020 verteilt.&lt;br /&gt;
&lt;br /&gt;
Die in der Entwicklung befindliche Version (3.5.x, bringt z.B. Unterstützung für Geräte mit FSK-Modulation) kann mit folgenden Befehlen geladen werden:&lt;br /&gt;
&lt;br /&gt;
* FHEM aktualisieren: &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; &lt;br /&gt;
* SIGNALduino Modul aktualisieren: &amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/master&amp;lt;nowiki/&amp;gt;/controls_signalduino.txt&amp;lt;/code&amp;gt;  Durch das Update von FHEM wird sichergestellt, dass das Modul mit FHEM arbeitet.&lt;br /&gt;
* Es empfiehlt sich, die Github-Quelle dauerhaft einzutragen: &amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/master/controls_signalduino.txt&amp;lt;/code&amp;gt;, um weitere Entwicklungs-Updates zu bekommen und damit das nächste &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; nicht die alte Version wieder einspielt.&lt;br /&gt;
&lt;br /&gt;
Das Gerät kann wie folgt definiert werden (die Spezifikation des USB-Anschlusses muss dabei an die aktuellen Gegebenheiten angepasst werden):&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;eigener-SIGNALduino-Name&amp;gt; SIGNALduino /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A903N5T5-if00-port0@57600&amp;lt;/code&amp;gt;&lt;br /&gt;
* Solltet Ihr einen SIGNALESP via IP einbinden wollen ist die Syntax. Ebenso wird auch vorgegangen wenn der SIGNALduino beispielsweise über ser2net freigeben wird.&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;eigener-SIGNALESP-Name&amp;gt; SIGNALduino &amp;lt;ip-adresse&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem Einbinden wird der SIGNALduino, falls er erkannt wird, im Status &amp;quot;Opened&amp;quot; angezeigt. Die Baudrate beim SIGNALduino beträgt 57600 - via telnet muss dann dieselbe Baudrate eingestellt werden. &lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Beispiel-Befehle verwenden &amp;quot;sduino&amp;quot; als &amp;lt;eigener-SIGNALduino-Name&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Flashen des Arduino mit der SIGNALduino Firmware ====&lt;br /&gt;
Falls avrdude noch nicht vorhanden ist, kann es mit folgendem Befehl installiert werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install avrdude&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In FHEM ist der SIGNALduino mit dem Status &amp;quot;Open&amp;quot; vorhanden. Jetzt müssen wir FHEM noch mitteilen, welche Hardware wir angeschlossen haben. Über das Attribut &#039;&#039;hardware&#039;&#039; lässt sich zwischen den mitgelieferten Firmware-Dateien wechseln. Solltet ihr einen Nano mit cc1101 Transceiver verwenden, so wählt bitte folgende Hardware&lt;br /&gt;
:&amp;lt;code&amp;gt;attr sduino hardware nanoCC1101&amp;lt;/code&amp;gt;&lt;br /&gt;
sonst üblicherweise&lt;br /&gt;
:&amp;lt;code&amp;gt;attr sduino hardware nano328&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann muss mitgeteilt werden, welche Version man geladen haben will: stable oder testing. &lt;br /&gt;
:&amp;lt;code&amp;gt;attr sduino updateChannelFW testing&amp;lt;/code&amp;gt;&lt;br /&gt;
Nun wird die entsprechende Firmware heruntergeladen. Dies geschieht durch den Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;get sduino availableFirmware&amp;lt;/code&amp;gt;&lt;br /&gt;
Anschließend kann der &#039;&#039;flash&#039;&#039; Befehl abgesetzt werden: &lt;br /&gt;
:&amp;lt;code&amp;gt;set sduino flash &amp;lt;und-dann-auswaehlen&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Dadurch wird der Arduino mit der gewählten Firmware geflasht. Das Ergebnis wird im Webinterface direkt angezeigt.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch der Flash-Befehl mit einem Dateinamen aufgerufen werden. Diese Möglichkeit sollte jedoch nur verwendet werden, wenn die SIGNALduino Firmware selbst compiliert wurde und eine andere Hardware verwendet wird. Der Flash-Befehl wird wie folgt aufgerufen:&lt;br /&gt;
:&amp;lt;code&amp;gt;set sduino flash FHEM/firmware/SIGNALduino_mega2560.hex&amp;lt;/code&amp;gt;&lt;br /&gt;
(je nachdem wo und unter welchem Namen die .hex Datei abgelegt wurde)&lt;br /&gt;
&lt;br /&gt;
Wenn ein miniCUL geflasht werden soll, sind einige Besonderheiten zu beachten. Details dazu in {{Link2Forum|Topic=114413|LinkText=diesem Forenthema}}.&lt;br /&gt;
&lt;br /&gt;
==== Flashen einer Firmware über HTTP ====&lt;br /&gt;
Die Firmware wird in  nicht mehr über den FHEM Update Mechanismus verteilt. &lt;br /&gt;
Damit die passende Firmware auf den SIGNALduino geladen werden kann, wird diese dann über HTTP aus den Github Releases geladen.&lt;br /&gt;
&lt;br /&gt;
==== Vorabversion einer Firmware ====&lt;br /&gt;
Die Firmware des SIGNALduino wird ebenso wie das FHEM Modul auch weiter entwickelt.&lt;br /&gt;
Die Entwickler sind auf Tests und Rückmeldungen der Nutzer angewiesen, da leider nicht alle Sensoren vorher getestet werden können.&lt;br /&gt;
&lt;br /&gt;
Die Version 3.4 ist die aktuell stabile Version.&lt;br /&gt;
&lt;br /&gt;
Für die folgenden Microcontroller kann man die Firmware seit 21.02.2019 auch direkt downloaden und teilweise flashen. &lt;br /&gt;
Dazu muss das Attribut hardware auf einen gültigen Wert angepasst werden!&lt;br /&gt;
Über den GET Befehl availableFirmware werden dann für die hinterlegte Hardware die passenden Versionen gesucht. Über das Attribut updateChannelFW kann zwischen &amp;quot;stable&amp;quot; und &amp;quot;testing&amp;quot; definiert werden, welche Art von Firmware angeboten werden soll.&lt;br /&gt;
&lt;br /&gt;
Nachdem die Firmwareversion erfragt wurde, bietet der set flash Befehl eine Auswahlliste an. Wird ein Flash Befehl mit einer der Versionen ausgewählt, wird diese Version zunächst heruntergeladen und bei den AVR Versionen auch versucht diese mittels avrdude zu flashen.&lt;br /&gt;
Die Firmware für den ESP8266 kann aktuell leider noch nicht über diesen Befehl aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ funktioniert aber auch die Option, dem Flash Befehl eine URL zu übergeben. Dann wird die Datei aus der URL heruntergeladen und auch versucht diese zu Flashen. z.B.&lt;br /&gt;
SIGNALDuino_nanocc1101.hex für einen Nano mit CC1101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set sduino flash &amp;lt;/code&amp;gt;https://github.com/RFD-FHEM/SIGNALDuino/releases/download/3.3.1/SIGNALDuino_radinocc11013.3.1.hex&lt;br /&gt;
&lt;br /&gt;
oder&lt;br /&gt;
SIGNALESP_.hex (mit cc1101) für einen ESP8266 &lt;br /&gt;
&amp;lt;code&amp;gt;set ipduino flash &amp;lt;/code&amp;gt;https://github.com/RFD-FHEM/SIGNALDuino/releases/download/3.3.1/SIGNALDuino_ESP8266cc11013.3.1.hex&lt;br /&gt;
&lt;br /&gt;
!Achtung, aktuell wird die Firmware für den ESP dadurch nur herunter geladen. Flashen müsst ihr leider immer noch über ein passendes Tool &lt;br /&gt;
z.B. [https://github.com/nodemcu/nodemcu-flasher ESP8266Flasher.exe] oder Esptool und einer seriellen Konsole.&lt;br /&gt;
Auch ist zu beachten, es handelt sich hierbei tatsächlich um ein Binary und nicht um ein Hex File. &lt;br /&gt;
&lt;br /&gt;
Nach dem Booten des ESPs, spannt dieser ein eigenes WLAN auf. Habt ihr euch damit verbunden, könnt ihr den ESP mit eurem vorhandenen WLAN nach Eingabe der Daten verbinden.&lt;br /&gt;
&lt;br /&gt;
Die Hauptseite für Firmware-Releases findet sich unter https://github.com/RFD-FHEM/SIGNALDuino/releases/ .&lt;br /&gt;
Dort kann auch eine Änderungshistorie eingesehen werden.&lt;br /&gt;
==== Flashen eines radino Boards mit ATmega32U4 ====&lt;br /&gt;
&lt;br /&gt;
Diese Funktion steht seit 21.02.2019 nun auch in der via FHEM aktualisierten version zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
Auch sind Berichte bekannt, dass der Radino beim Neustart von FHEM nicht korrekt initialisiert wird.&lt;br /&gt;
Weiterhin ist zu beachten, dass der Bootloader eine andere USB ID bekommt und diese im Attribut flashCommand hinterlegt werden muss.&lt;br /&gt;
&lt;br /&gt;
==== Fehler beim Flashen ====&lt;br /&gt;
Sollte bei einem Flash Vorgang ein Fehler auftreten, solltet ihr zunächst im Logfile mit Verbose 5 nachsehen.&lt;br /&gt;
&lt;br /&gt;
Findet ihr dort keine Fehlermeldung, gibt es noch ein separates Flashlog, welches ihr über einen Browser aufrufen könnt. Dazu müsst ihr nur den Folgenden Pfad an euren Servernamen anhängen:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/fhem/FileLog_logWrapper?dev=Logfile&amp;amp;type=text&amp;amp;file=SIGNALduino-Flash.log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Geräteerkennung ===&lt;br /&gt;
==== Unterstützte Geräte ====&lt;br /&gt;
Für die folgenden Geräte gibt es derzeit (2017) eine Unterstützung für den Betrieb mit FHEM. Die Geräte werden [[autocreate|automatisch erkannt]] und in der Konfiguration eingetragen, wenn der SIGNALduino läuft.&lt;br /&gt;
Bitte Geräte mit sehr präzisen Referenzen hier listen (Produktnummer, Protokoll-Variantenname etc.), damit eine globale Suche/Verifikation maximal erfolgreich ist. In der detaillierten Liste [[Geprüfte_Geräte]] lassen sich die Geräte näher identifizieren.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot; | Produkt &lt;br /&gt;
! (E)mpfangen&amp;lt;br /&amp;gt;(S)enden &lt;br /&gt;
! Hinweise &lt;br /&gt;
! Verwendetes Modul &lt;br /&gt;
! Protokoll ID&lt;br /&gt;
|-&lt;br /&gt;
|Conrad Wetterstation KW9110||E S||Sensor: KW9010, neben Temperatur u. Luftfeuchte werden auch Trend, Batterie u. Kanal erfasst|| CUL_TCM97001  || 0.3&lt;br /&gt;
|-&lt;br /&gt;
|TCM Wetterstation (97001 und 21xxx Serie)||E|| || CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|ABS Wetterstation (ABS 700)||E|| || CUL_TCM97001  || 0&lt;br /&gt;
|-&lt;br /&gt;
|Prologue Wetterstation ||E|| ||CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Rubicson Wetterstation ||E|| ||CUL_TCM97001 ||0 &lt;br /&gt;
|-&lt;br /&gt;
|NC_WS Wetterstation ||E|| ||CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.gt-support.de/ GT-WT-02 Wetterstation]||E|| ||CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|AURIOL Wetterstation ||E|| ||CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Mebus Wetterstation ||E|| ||CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Intertechno Funkschalter||E S|| ||IT || 3,4,5,17&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;strike&amp;gt;Conrad RSL Funkschalter&amp;lt;/strike&amp;gt;||E S|| Funktioniert aktuell nicht || SIGNALduino_RSL  || &lt;br /&gt;
|-&lt;br /&gt;
|[http://global.oregonscientific.com/product_view.php?id=5 Oregon Scientific Wettersensoren]||E || Protokoll V2 &amp;amp; V3 implementiert || OREGON || 10&lt;br /&gt;
|-&lt;br /&gt;
|Bresser Temp/Hydro Sensor||E || || Hideki || 12&lt;br /&gt;
|-&lt;br /&gt;
|[https://de.hama.com/00104985/hama-aussensensor-ts33c-fuer-wetterstation Hama TS33C]||E || || Hideki || 12&lt;br /&gt;
|-&lt;br /&gt;
|TFA Temp/Hydro Sensor||E || || Hideki || 12&lt;br /&gt;
|-&lt;br /&gt;
|Lacrosse TX2/TX3 Sensoren||E || || CUL_TX || 8&lt;br /&gt;
|-&lt;br /&gt;
|TFA 30320902||E || || SD_WS07 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Eurochron eas800z||E || || SD_WS07  || 7&lt;br /&gt;
|-&lt;br /&gt;
|Technoline WS6750/TX70DTH||E || || SD_WS07 || 7&lt;br /&gt;
|-&lt;br /&gt;
|FreeTec Außenmodul NC-7344||E || || SD_WS07 || 7&lt;br /&gt;
|-&lt;br /&gt;
|CTW600||E || || SD_WS09 || 9&lt;br /&gt;
|-&lt;br /&gt;
|CTW602||E ||neuere Version des CTW600 mit 868.35 MHz || SD_WS09 || 9&lt;br /&gt;
|-&lt;br /&gt;
|WH1080||E || || SD_WS09 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Visivon remote pt4450||E || || none || 24&lt;br /&gt;
|-&lt;br /&gt;
|Einhell HS 434/6||E || || none || 21&lt;br /&gt;
|-&lt;br /&gt;
|Flamingo FA20RF / FA21RF / FA22RF Rauchmelder||E || || FLAMINGO || 13,13.1,13.2&lt;br /&gt;
|-&lt;br /&gt;
|mumbi m-FS300||E || || none || 26,27&lt;br /&gt;
|-&lt;br /&gt;
|TFA 30.3200||E || || none || 33&lt;br /&gt;
|-&lt;br /&gt;
|Livolo||E|| || none || 20&lt;br /&gt;
|-&lt;br /&gt;
|Smartwares RM174RF/2 (RM174RF-001CPR) 4500177571 ||E [S?]|| IT EV1527; TODO herausfinden: Alarmierung (wie Alarmton getriggered werden kann); Batterieinfo? || IT || 3&lt;br /&gt;
|-&lt;br /&gt;
|Smartwares SH5-TSO-A||E S|| || IT || ?&lt;br /&gt;
|-&lt;br /&gt;
|X10 Security Devices||E|| ||  || 39&lt;br /&gt;
|-&lt;br /&gt;
|[[Somfy_via_SIGNALduino|Somfy RTS]]||E S|| || SOMFY || 43&lt;br /&gt;
|}&lt;br /&gt;
Bei einigen Intertechno-Funksteckdosen (Brennenstuhl) kann es zu Empfangsproblemen kommen. Hier muss die Taktrate, mit der gesendet wird, angepasst werden. Dazu muss für &#039;&#039;Funksteckdose&#039;&#039; (also sauber per-Client-Instanz-spezifisch, NICHT SIGNALduino-Transceiver-global) das Attribut &lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;Funksteckdose&amp;gt; ITclock 300&amp;lt;/code&amp;gt; &lt;br /&gt;
gesetzt werden, der Standardwert ist 250.&lt;br /&gt;
&lt;br /&gt;
==== Mein Gerät wird in FHEM nicht erkannt ====&lt;br /&gt;
1. Prüfen, ob vom Sensor die Signaldaten (verbose &amp;gt;=4) erkannt werden. Sobald ihr die empfangenen Signaldaten im Logfile zuordnen könnt, geht es weiter mit:&lt;br /&gt;
&lt;br /&gt;
2. Eröffnet ein Thema unter [https://github.com/RFD-FHEM/RFFHEM/issues/new?template=sensor---device-feature.md github]:&lt;br /&gt;
&amp;lt;!-- &amp;lt;syntaxhighlight lang=&amp;quot;md&amp;quot;&amp;gt;  ... markdown lexer not yet available; use pre instead --&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##  Specifications for new sensor / switch / or other device ... &lt;br /&gt;
&lt;br /&gt;
  - manufacturer:&lt;br /&gt;
  - model name:&lt;br /&gt;
  - pictures of the device / the board (very helpful)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
## Specifications &lt;br /&gt;
&lt;br /&gt;
  - Microcontroller:&lt;br /&gt;
  - Version (Firmware):&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;!-- ( can be found here devicename -&amp;gt; Internals -&amp;gt; version ) --&amp;gt;&lt;br /&gt;
  - Versionmodul (FHEM Module):&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Auszug aus dem Logfile, welches zum Gerät gehört.&lt;br /&gt;
:&#039;&#039;Alles was ihr sonst noch über das Gerät und die übertragenen Daten wisst.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im Forum solltet ihr solche Fragen besser nicht posten, wenn das Gerät noch nicht unterstützt wird, dazu ist Github besser geeignet. Inzwischen wurde im Wiki eine eigene Seite eröffnet, die sich mit der Erkennung unbekannter Protokolle beschäftigt: [[Unbekannte_Funkprotokolle#Ansatz_1_-_Versuchen|Unbekannte_Funkprotokolle]].&lt;br /&gt;
&lt;br /&gt;
==== Es wird ein Protokoll erkannt, Autocreate legt aber kein device an ====&lt;br /&gt;
Im SIGNALduino sind &amp;gt;70 Protokolle implementiert. Jedoch gibt es nicht immer ein logisches Module, welche diese Protokolle verarbeiten.&lt;br /&gt;
Teilweise ist das auch nicht zwingend notwendig, um seine Anforderungen zu erfüllen. Insbesondere für Schalter bzw. Sensoren, die nur zwei Zustände kennen, geht es meist ohne Modul und automatisch angelegtem Gerät.&lt;br /&gt;
&lt;br /&gt;
Nehmen wir an, wir haben einen Schalter. Dieser kann einen oder zwei Zustände senden.&lt;br /&gt;
Im FHEM Log (und, insbesondere, im FHEMWEB Event Monitor) tauchen Meldungen ähnlich dieser auf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
2015.11.15 15:52:23 4: SIGNALduino_unknown incomming msg: u85#FF8081&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir können mit Hilfe des Modules DOIF auf diese Nachricht eine Aktion ausführen:&lt;br /&gt;
&lt;br /&gt;
Entweder, wenn wir den Inhalt der Nachricht nur zu Teilen wissen, da er sich ändert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define mydoif DOIF ([sduino:&amp;amp;DMSG] =~ &amp;quot;u85#FF8081&amp;quot;) (set Lamp on)&lt;br /&gt;
attr mydoif do always&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder, wenn wir den Inhalt exakt kennen, dann auch als Vergleichsstring&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define mydoif DOIF ([sduino:&amp;amp;DMSG] eq &amp;quot;u85#FF8081&amp;quot;) (set relais on)&lt;br /&gt;
attr mydoif do always&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Teil u85#FF8081 muss individuell angepasst werden, der Name eures SIGNALduino möglicherweise auch.&lt;br /&gt;
&lt;br /&gt;
Als Alternative zu DOIF hier ein regex-verwendendes notify-Beispiel für einen Sender, der meint, zwei Codes alternierend senden zu müssen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define n_sender_trigger notify sduino:UNKNOWNCODE.*u41#(13B72253|163873B3) { my_sender_trigger_indicate();; }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selbstverständlich muss in diesem Moment auch eine sub my_sender_trigger_indicate() definiert werden (z.B. in FHEM/99_myUtils.pm), die dort z.B. als Test eine Log-Ausgabe (Log3()) machen kann.&lt;br /&gt;
&lt;br /&gt;
=== Das Logfile ===&lt;br /&gt;
Im Logfile ab [[Verbose]] 4 tauchen diverse Meldungen auf, deren Bedeutung kurz erläutert wird (verbose 3 unterdrückt diese Meldungen).&lt;br /&gt;
&lt;br /&gt;
UPDATE: der folgende Bereich ist von einem weniger erfahrenen Zeitgenossen früher nach Kräften erweitert/geschrieben worden. Mittlerweile existiert aber ein neuer Inhalt [[Unbekannte_Funkprotokolle]] (siehe auch Erwähnung weiter oben), der als sehr gut beschrieben und unvergleichlich detailreicher bezeichnet werden muss (&amp;quot;endlich gibt es sowas!&amp;quot;). Der Bereich hier dürfte somit zwar für grundlegende Verdeutlichungen noch recht sinnvoll sein, der Inhalt sollte allerdings evt. in eine konsistente Dokumentation überarbeitet (verlagert/dedupliziert/reduziert) werden.&lt;br /&gt;
&lt;br /&gt;
Die Protokolle (von der SIGNALDuino-Firmware gesendete Signal-Beschreibungs-Strings) können wie folgt unterschieden werden:&lt;br /&gt;
&lt;br /&gt;
*MS - Nachricht mit Sync Puls: Hierzu ein Beispiel&lt;br /&gt;
:&amp;lt;code&amp;gt;MS;P0=-108;P1=395;P2=-1033;P3=-547;P4=-19932;P5=-8916;P6=1368;D=151313131312131313131313131313131312121212121313131313131312131212132;CP=1;SP=5;&amp;lt;/code&amp;gt; P0-P6 sind die Signalpegel (Dauer und positiv/negativ). Hinter D= befindet sich die Abfolge der Signale. Die ersten beiden Ziffern 15 in D sind wie folgt zu lesen. Zuerst wurde ein Signal &amp;quot;1&amp;quot; also P1 mit 395 Mikrosekunden high (die Zeitdauer ergibt sich aufgrund der Mitteilung &amp;quot;P1=395&amp;quot;) und anschließend ein Signal &amp;quot;5&amp;quot; also P5 mit 8916 Mikrosekunden low (die Zeitdauer ergibt sich aufgrund der Mitteilung &amp;quot;P5=-8916&amp;quot;) gemessen. CP=1 ist die Referenz auf den Takt des Signales - der Basistakt ist in diesem Fall ~395 Mikrosekunden. SP=5 gibt die Referenz zum Syncpuls an, der das gesamte Signal einleitet. Welche Signalfolge nun eine binäre 1 bzw. 0 bedeutet, wird im SIGNALduino über die integrierte Protokoll Liste realisiert.&lt;br /&gt;
&lt;br /&gt;
*MC - Nachricht vom Typ Manchester: Manchesterkodierte Signale können bereits sehr einfach im Arduino in eine Binärform umgewandelt werden. Es wird hier nach IEEE 802.3 umgewandelt. In Manchester Signalen gibt es lange und kurze Pulse. Deren Durchschnittswert wird mit LL (long low), LH (long high), SL (short low) und SH (short high) übermittelt. Zusätzlich, um das Protokoll schneller erkennen zu können, wird die Taktfrequenz mit übermittelt (C=429 Mikrosekunden). Die Daten befinden sich hinter D= und werden in HEX Form übergeben.&lt;br /&gt;
:&amp;lt;code&amp;gt;MC;LL=-1066;LH=904;SL=-562;SH=385;D=332B4B4D54D5554B552CD2D554B2B5354A;C=429;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*MU - Message unsynced: Diese Art von Nachrichten sind nicht nach Manchester codiert und haben auch keinen erkennbaren Sync / Clock Signalpegel am Start der Nachricht. Bei diesen Nachrichtentypen ist es, im Vergleich zu den anderen, am wahrscheinlichsten, dass das übermittelte Signal unvollständig oder überhaupt kein Signal ist. Wie bei MS sind P0-P6 die Signalpegel und in D= wird die Abfolge der Signalpegel referenziert. CP=2 gibt auch hier die Referenz zum Takt an, allerdings muss dieser nicht korrekt erkannt worden sein.&lt;br /&gt;
:&amp;lt;code&amp;gt;MU;P0=1372;P1=-580;P2=362;P3=-1047;D=01212321212321212121212121212123212123212321232121212121212321;CP=2;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es erscheinen viele Meldungen dieser Art:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Fingerprint for MU Protocol id xxxx -&amp;gt; yyy matches, trying to demodulate&lt;br /&gt;
sduino: Starting demodulation at Position 1&lt;br /&gt;
Fingerprint for MU Protocol id 28 -&amp;gt; IC Ledspot matches, trying to demodulate&lt;br /&gt;
sduino: Starting demodulation at Position 1&lt;br /&gt;
Fingerprint for MU Protocol id 29 -&amp;gt; HT12e remote matches, trying to demodulate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sind nun Bemühungen, anhand der von der SIGNALDuino-Firmware gelieferten rohen aber detaillierten Signal-Strings eine Vor-Analyse / Fingerprinting vorzunehmen.&lt;br /&gt;
Man könnte nun z.B. bei solchen Fingerprinting-Analysen erkennen:&lt;br /&gt;
* dass der Basis-Takt-Wert innerhalb eines charakteristischen Zeit-Bereichs liegt&lt;br /&gt;
* dass die Anzahl der Sync-Pulse eine präzise Zahl ist&lt;br /&gt;
* dass Längen erkannter Puls-Typen innerhalb eines Bereichs liegen&lt;br /&gt;
&lt;br /&gt;
Mittels solcher Untersuchungen kann man also final hoffentlich hinreichend plausibel feststellen, &amp;quot;dass diese Aktivitäten offensichtlich(?) zu einer Funk-Komponente Rauchmelder von Hersteller XYZ gehören müssen, und man somit weiterleiten muss an ein (möglicherweise bereits existierendes) Userdaten-Dekodier-Modul für diese Herstellerkomponente&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei einer dann erfolgenden Demodulation des noch rohen SIGNALDuino-Strings könnte man z.B. (hoffentlich richtigerweise) annehmen, dass eine Signalpegel-Typ-Folge &amp;quot;13&amp;quot; eine binäre 1 bedeuten soll, während eine Folge &amp;quot;12&amp;quot; eine binäre 0 bedeuten soll. Man erhält aus dem Gesamt-Puls-String also nach vollständiger Demodulation eine Abfolge von vielen 0/1 Bits, die insgesamt ein Datenwort darstellen, mit einer gewissen Länge von NN bits (diese Längen-Angabe könnte übrigens - neben Namenssuche nach Hersteller oder Produkt etc. - ein wichtiges Such-Merkmal sein, ob andere Frameworks tatsächlich bereits wissen, wie Daten dieser Funk-Komponente zu dekodieren sind!). Dieses demodulierte Datenwort ist nun das finale Datenwort, welches einen Container für die Funk-Komponenten-Informationen darstellt (in diesem Container also beispielsweise enthalten: Temperatur, Feuchte, Akku-Status, ID, Alarm, ... - zumindest wenn nicht dummerweise der ganze Container erst einmal CRC- oder Crypto-verschlüsselt ist...).&lt;br /&gt;
&lt;br /&gt;
Man muss an dieser Stelle unbedingt sagen, dass dieses Userdaten-Datenwort (einer bestimmten Hersteller-Funk-Komponente!) natürlich bei &#039;&#039;jeglichen&#039;&#039; Transceiver-Systemen &#039;&#039;immer&#039;&#039; gleich erkannt werden &#039;&#039;muss&#039;&#039; - an dieser Stelle ist also ganz klar, dass diese Daten an &#039;&#039;allgemeine&#039;&#039; FHEM-Module weitergeleitet (Dispatched) werden müssen, die nach Übernahme von Daten von &#039;&#039;jeglichen&#039;&#039; Transceiver-Systemen diese Daten immer auf die gleiche Weise (&#039;&#039;&#039;&#039;&#039;generisch/zentral&#039;&#039;&#039;&#039;&#039;) für die jeweilige Hersteller-Funk-Komponente erledigen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Die Abfolge ist also ganz klar:&#039;&#039;&#039;&lt;br /&gt;
Funk-Aktivität --&amp;gt; Transceiver-Gerät/Firmware (SIGNALDuino) --&amp;gt; maximal detailreich beschreibender Rx-Analyse-Output-String --&amp;gt; Fingerprinting-Grobzuordnung des (SIGNALDuino-Firmware-)Outputs (durch 00_SIGNALduino.pm) auf gerätespezifisches Verhalten --&amp;gt; &#039;&#039;generische/zentrale&#039;&#039; Dekodierung des gerätespezifischen Protokoll-Datenworts, in zentralen Grundsatz-Modulen wie z.B. &amp;lt;code&amp;gt;14_SD_WS.pm&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Und wenn dann bei einer solchen Schritte-Abfolge irgendetwas noch fehlen/unpassend sein sollte, dann muss eben entsprechendes Development an gewissen Stellen erfolgen ;-)&lt;br /&gt;
&lt;br /&gt;
====Minimieren (whitelist/blacklist) von unerwünschter Kommunikations-Aktivität/Einträgen====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Unknown Code&amp;quot; bedeutet, dass der SIGNALduino Signaldaten empfangen und diese binär interpretiert hat. Diese Meldung soll uns nun aber mitteilen, dass es dann nicht weiter verarbeitet werden kann, da kein Modul  existiert (oder kein Weiterleitungs-Dispatch zu einem bereits existierenden), welches diese Daten jetzt in ihre Bedeutung umwandeln kann. &lt;br /&gt;
:&amp;lt;code&amp;gt;sduino: Unknown code u1FFFFF0, help me!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem kommt es gehäuft zu Logmeldungen und auch Events in ähnlicher Form:&lt;br /&gt;
:&amp;lt;code&amp;gt;SIGNALduino_unknown incomming msg: u85#FF8081&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mittlerweile sind über 50 Protokolle für den SIGNALduino definiert. Dadurch kommt es vor, dass sich ein Signal mit mehr als einem Protokoll demodulieren lässt. Meist führt dies dann zu zusätzlichen &amp;quot;Unknown code&amp;quot;-Einträgen.&lt;br /&gt;
&lt;br /&gt;
Derartige Einträge können mit dem Attribut WhitelistID minimiert werden. Dabei werden die Geräte, die nach Daten-Empfang tatsächlich verarbeitet werden sollen (also welche Protokolle vom FHEM Modul berücksichtigt werden), mit ihrer Protokollnummer in die WhitelistID aufgenommen.&lt;br /&gt;
Für Protokolle, die nicht berücksichtigt werden, gibt es weder Logeinträge noch Events. Diese werden im Programmablauf nicht berücksichtigt. Das spart zum einen Ressourcen und trägt auch zur Übersichtlichkeit bei. &lt;br /&gt;
Die Protokollnummer kann Tabelle [[#Unterst.C3.BCtzte_Ger.C3.A4te|Unterstützte Geräte]] entnommen werden (hilfreich ist es auch, wenn in den verwendeten Geräten im Internal &amp;lt;gerätename&amp;gt;_DMSG nachgesehen wird). So bedeutet beispielsweise ein Eintrag der Form &amp;lt;code&amp;gt;W50#FF553335FFBC&amp;lt;/code&amp;gt; dass dann das Protokoll  #50 in die Whitelist aufzunehmen wäre (&amp;lt;code&amp;gt;attr sduino whitelist_IDs 50&amp;lt;/code&amp;gt;).&lt;br /&gt;
{{Randnotiz|RNTyp=r|RNText=Achtung Schreibweise: Dokumentation oft als WhitelistID o.ä., aber Name ist whitelist_IDs!!&lt;br /&gt;
}}&lt;br /&gt;
Die Angabe erfolgt durch Komma getrennt: z.B.:&lt;br /&gt;
:&amp;lt;code&amp;gt;1,2,5,10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Senden mit dem SIGNALduino ===&lt;br /&gt;
Der SIGNALduino kann etwas &amp;quot;raw senden&amp;quot;, indem ihm das SIGNAL so übermittelt wird, wie er es moduliert. Hierzu  muss der Befehl wie folgt eingegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
set sduino sendMsg P3#00111010#R4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Befehl moduliert die Bitfolge 00111010 mittels Protokoll #3 und wiederholt die Nachricht 4x.&lt;br /&gt;
Die Protokoll Nummer kann aus einer empfangenen Nachricht extrahiert werden. Ebenso die Bits.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sduino: extracted data 00111010 (bin)&lt;br /&gt;
sduino: Found Protocol id 3 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternativ kann das Signal auch in einer &amp;quot;rohform&amp;quot; angegeben werden. Dies ist manchmal in speziellen Fällen notwendig:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
set sduino raw SR;;R=3;;P0=4742;;P1=-1554;;P2=286;;P3=-786;;P4=649;;P5=-420;;D=0123234545234545452323232323454523234523454523232345454523232323452345234523452345;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
R=3 bedeutet, das Signal wird 3x gesendet.&lt;br /&gt;
Die Übertragung besteht aus den in D angegeben Pulsen, welche in P0-P5 definiert werden.&lt;br /&gt;
Die Daten kann man aus einer empfangenen MS oder MU Nachricht extrahieren.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann ab Version 3.2 auch eine vereinfachte Form eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
====Fehlersuche====&lt;br /&gt;
(Zielgerät reagiert nicht, etc.)&lt;br /&gt;
&lt;br /&gt;
* Nachrichtenwiederholungsanzahl muss evt. für manche Geräte entsprechend groß eingestellt sein&lt;br /&gt;
{{Randnotiz|RNTyp=r|RNText=VORSICHT blöder Schreibweisen-Mismatch ITClock vs. ITclock!!}}&lt;br /&gt;
* Sende-Takt-Wert (Clock) passt evt. nicht ganz, siehe z.B. Thread-Antwort {{Link2Forum|Topic=58397|Message=775434|LinkText=Signalduino Version 3.3.1}}, wo für IT-Geräte ein Attribut anhand der CP= des Empfangsdaten-Logs modifiziert wird. ACHTUNG: dies kann entweder global das Internal-Attribut ITClock eines SIGNALduino-Transceiver-Devices sein, oder (viel besser da korrekt geräte-instanz-spezifische Konfiguration) das ITclock eines IT-Client-Devices.&lt;br /&gt;
&lt;br /&gt;
== Fehlerbehandlung ==&lt;br /&gt;
Der SIGNALduino kann mit folgendem Befehl auf Werkseinstellungen zurückgesetzt werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;set raw e&amp;lt;/code&amp;gt;&lt;br /&gt;
Ob ein solcher Reset nötig ist, erkennt man an dem Inhalt vom Reading &amp;lt;code&amp;gt;cc1101_config&amp;lt;/code&amp;gt;, dort unsinnige Werte angezeigt werden oder dem Reading  &amp;lt;code&amp;gt;config&amp;lt;/code&amp;gt; welches durch den Befehl &amp;quot;get config&amp;quot; aktualisiert wird, was im Standard auf &amp;quot;MS=1;MU=1;MC=1&amp;quot; entspricht.&lt;br /&gt;
&lt;br /&gt;
In der Firmware sind die diverse Befehle eingebaut, welche über einen &amp;lt;code&amp;gt;set raw&amp;lt;/code&amp;gt; Befehl im Modul direkt ausgeführt werden können. Sofern möglich, sollten die Abfrage von Werten aus dem Modul allerdings mit den dafür vorgesehenen Kommandos erfolgen, da die Rückmeldungen des &amp;lt;code&amp;gt;set raw&amp;lt;/code&amp;gt; Befehls nur im Logfile ab Verbose 4 erscheinen. Die Befehle sind nützlich, wenn direkt auf den Microcontroller zugegriffen wird: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;C&amp;lt;reg&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;reg&amp;gt; is a (two digit) hex number: return the value of the cc1101 register. &amp;lt;reg&amp;gt;=99 dumps the first 48 registers. Example: &amp;lt;code&amp;gt;set raw C35&amp;lt;/code&amp;gt; führt ab Verbose 4 zu einer Logausgabe folgender Art  &amp;lt;code&amp;gt;Read, msg: C35 = 0D&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt; EEPROM / factory reset.  resets all eeprom values without reboot&lt;br /&gt;
:&amp;lt;code&amp;gt;W&amp;lt;AA&amp;gt;&amp;lt;XX&amp;gt;&amp;lt;/code&amp;gt; Write eeprom (schreibt einen Wert ins EEPROM und ins CC1101 Register. Die eeprom Adresse hat einen Offset von 2. z.B W041D schreibt 1D ins Register 2 des CC1101)&lt;br /&gt;
&lt;br /&gt;
Die Sendeleistung lässt sich mit &lt;br /&gt;
:&amp;lt;code&amp;gt;get sduino ccpatable&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
prüfen, wobei die Rückmeldung wie folgt zu lesen ist: &lt;br /&gt;
  &amp;quot;-10_dBm&amp;quot;  =&amp;gt; &#039;34&#039;,&lt;br /&gt;
  &amp;quot;-5_dBm&amp;quot;   =&amp;gt; &#039;68&#039;,&lt;br /&gt;
  &amp;quot;0_dBm&amp;quot;    =&amp;gt; &#039;60&#039;,&lt;br /&gt;
  &amp;quot;5_dBm&amp;quot;    =&amp;gt; &#039;84&#039;,&lt;br /&gt;
  &amp;quot;7_dBm&amp;quot;    =&amp;gt; &#039;C8&#039;,&lt;br /&gt;
  &amp;quot;10_dBm&amp;quot;   =&amp;gt; &#039;C0&#039; &lt;br /&gt;
Dabei wird die Sendeleistung dauerhaft mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;set sduino cc1101_patable &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
hochgeschaltet (&amp;lt;value&amp;gt; durch den Wert ersetzen).&lt;br /&gt;
&lt;br /&gt;
Weitere Firmware-Befehle sind im Thread-Beitrag {{Link2Forum|Topic=58396|Message=497921}} zu finden.&lt;br /&gt;
&lt;br /&gt;
== Foren Links ==&lt;br /&gt;
* {{Link2Forum|Topic=38402|LinkText=Forenthread - Ankündigung}}&lt;br /&gt;
* {{Link2Forum|Topic=58396|LinkText=SIGNALDuino Empfänger Firm- und Hardware}}&lt;br /&gt;
* {{Link2Forum|Topic=82379|Message=1033374|LinkText=SIGNALDuino Schaltplan}}&lt;br /&gt;
* {{Link2Forum|Topic=58397|LinkText=Signalduino Entwicklung Version 3.3.1 }}&lt;br /&gt;
* [http://www.rflink.nl/blog2/wiring Beschreibung zu diversen Empfängern und Verbesserung der Empfangsleistung]&lt;br /&gt;
* [[SIGNALduino in die Arduino Entwicklungsumgebung einbinden]]&lt;br /&gt;
* [[Somfy via SIGNALduino]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Arduino]]&lt;br /&gt;
[[Kategorie:433MHz]]&lt;br /&gt;
[[Kategorie:868MHz]]&lt;/div&gt;</summary>
		<author><name>Yoda gh</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SIGNALduino&amp;diff=35612</id>
		<title>SIGNALduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SIGNALduino&amp;diff=35612"/>
		<updated>2021-04-24T18:19:07Z</updated>

		<summary type="html">&lt;p&gt;Yoda gh: /* FHEM-Modul laden */ klarer herausstellen, dass Update auf github nicht zwingend erforderlich ist&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Empfang und Verarbeitung von digitalen Signalen&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=38402&lt;br /&gt;
|ModCmdRef=SIGNALduino&lt;br /&gt;
|ModForumArea=Sonstige Systeme&lt;br /&gt;
|ModTechName=00_SIGNALduino.pm&lt;br /&gt;
|ModOwner=Sidey ({{Link2FU|8018|Forum}}/[[Benutzer Diskussion:Sidey|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Übersicht ===&lt;br /&gt;
Unter den Namen SIGNALduino versteht man sowohl den Low-Cost Empfänger für digitale Signale (vergleichbar dem  [[CUL]]) als auch das gleichnamige Modul mit dem Dateinamen 00_SIGNALduino.pm. Mit dem SIGNALduino kann man entweder 433 oder 868 MHz-Geräte auslesen und ansprechen. Der SIGNALduino funktioniert auch mit anderen Medien wie Infrarot oder direkter Kabelverbindung.&lt;br /&gt;
&lt;br /&gt;
Der SIGNALduino(-Stick) erkennt Signale anhand von Mustern und gibt sie (als maximal detaillierte Beschreibung einer Signalabfolge) dann schlicht sofort nur noch an FHEM zur Auswertung (Dekodierung) weiter. Auch nicht erkannte Signale werden an FHEM übergeben.&lt;br /&gt;
Aufgabe des SIGNALduino (Firmware/Stick) ist es also nur, Signal-Aktivitäten zu erfassen und maximal präzise (als kurzer Text-String) zu beschreiben.&lt;br /&gt;
Alles weitere (echte, finale Auswertung / Zuweisung dieser Signal-Daten) wird dann auf einer großen Box (Raspberry o.ä.) gemacht.&lt;br /&gt;
&lt;br /&gt;
=== Vorteil gegenüber einem CUL/FHEMduino ===&lt;br /&gt;
Der SIGNALduino hat den Vorteil einer sehr schnellen Demodulation des Funksignals. Sollen weitere Protokolle dekodiert werden, so muss dazu nur ein passendes FHEM Modul entwickelt oder ein universelles Modul erweitert werden (also auf flexibel direkt updatebarer Rechner-Seite!!). Änderungen am Arduino-Firmware-Code sind normalerweise nicht notwendig (sofern die grundsätzliche Signal-Klassifizierung des Sticks korrekt funktioniert - leider nicht immer, z.B.: [https://github.com/RFD-FHEM/SIGNALDuino/issues/65 MU-Nachrichten werden z.T. als MC erkannt]).&lt;br /&gt;
&lt;br /&gt;
Ein großer Vorteil des SIGNALduino besteht darin, dass auch Geräte mit leicht abweichende Frequenzen steuerbar sind; so empfangen die Somfy-Rolladenmotoren beispielsweise auf 433.42 und nicht, wie bei anderen Geräten sehr oft üblich, auf 433.92 MHz. Die Frequenzumstellung stellt für den SIGNALduino kein Problem dar.&lt;br /&gt;
&lt;br /&gt;
Ebenso kann man den SIGNALduino direkt an den Sendeausgang eines Sensors anbinden und die digitalen Signale empfangen, dabei bitte aber auf die passenden Spannungen achten, denn ein Arduino Nano verträgt nur 5V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsversion ===&lt;br /&gt;
Der SIGNALduino wird derzeit aktiv weiterentwickelt, siehe dazu https://github.com/RFD-FHEM. Die offizielle Version wird {{Link2Forum|Topic=58396|LinkText=hier}} genauer beschrieben. Es existieren im Forum diverse angepasste Versionen, auf die hier nicht näher eingegangen wird.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== Controller ===&lt;br /&gt;
Der SIGNALduino (Hardware) wird über den USB Port angeschlossen, er kann aber auch mit zusätzlichen ESP Modulen über ein WLAN angebunden werden. Bei Einbindung via ESP muss man beachten, dass der ESP nach 5 Minuten Inaktivität seine TCP-Verbindung unterbricht (siehe [[ESP8266#Bekannte_Probleme|diesen Hinweis]]). Zu diesem Zweck gibt es einen Signalduino-eigenen Ping-Befehl (&#039;get signalduino ping&#039;), der diese Aktivität wieder aufbaut. Ping-Befehle sind auch auf Betriebssystemebene bekannt - allerdings beachte man, dass der ping-Befehl auf Betriebssystemebene ICMP verwendet, zum &amp;quot;aufwachen&amp;quot; des ESP aber auf TCP-Ebene aktiviert werden muss (zum Unterschied siehe [https://www.tippscout.de/internet-was-sind-tcp-ip-udp-und-icmp_tipp_2268.html hier]) und man daher besser den Signalduino-eigenen Befehl und nicht das Betriebssystem verwendet.&lt;br /&gt;
&lt;br /&gt;
Der SIGNALduino basiert auf einem [http://arduino.cc/de/Main/ArduinoBoardNano Arduino Nano], die Schaltung entspricht  dem [[Selbstbau_CUL]] (eine frühere Version ist der nicht mehr weiterentwickelte [[FHEMduino]]):&lt;br /&gt;
* Entweder wird ein Arduino mit einfachen Sende- und Empfangsmodulen verwendet, dann ist die Verkabelung identisch zum [[FHEMduino]] &lt;br /&gt;
* Oder es wird ein CC1101 Transceiver verwendet, dann ist die Verkabelung identisch zum [[Selbstbau_CUL]]. Dieser Aufbau wird derzeit empfohlen.&lt;br /&gt;
* Zuletzt gibt es ein fertig konfektioniertes Modul von In-Circuit mit Radino CC1101 Varianten, link zum [http://shop.in-circuit.de/index.php Hersteller]. &lt;br /&gt;
&lt;br /&gt;
Achten Sie beim Selbstbau auf die entsprechenden Sender-Empfänger. Der sehr preiswert angebotene XY-MK-5V hat sich als zu unzuverlässig erwiesen, während anscheinend beim CC1101 (insbesondere der &amp;quot;grünen Version&amp;quot;) keine Probleme auftreten. &lt;br /&gt;
&lt;br /&gt;
Es stehen auch für den [https://www.arduino.cc/en/Main/arduinoBoardUno UNO] und [https://www.arduino.cc/en/Main/ArduinoBoardProMini PRO Mini] Firmware-Dateien zur Verfügung. Die ausgelieferte Firmware läuft nur auf Mikrocontrollern mit 16 MHz; wer einen Mikrocontroller mit 8 MHz verwenden möchte, muss die Firmware selbst compilieren. Die SW ist auf [https://github.com/RFD-FHEM/SIGNALDuino github]. Vorgesehen ist nur die Übersetzung unter Windows mit Visual Studio und dem Visual Micro Zusatz. Es gibt aber auch eine Anleitung, wie man mit der [[Arduino]] IDE oder einem Makefile [[SIGNALduino Compilieren]] kann.&lt;br /&gt;
&lt;br /&gt;
Es gibt auch eine Variante des SIGNALduino, die auf einem [[ESP8266]] nativ läuft, diese funktioniert seit Anfang 2018 annehmbar, allerdings befindet diese sich noch in einer Entwicklungsphase.&lt;br /&gt;
&lt;br /&gt;
An den &amp;quot;SIGNALESP&amp;quot; kann auch ein CC1101 via SPI angebunden werden:&lt;br /&gt;
&lt;br /&gt;
{| |&lt;br /&gt;
!CC1101 Bezeichnung&lt;br /&gt;
!ESP Pin&lt;br /&gt;
|-&lt;br /&gt;
|CLK||GPIO14&lt;br /&gt;
|-&lt;br /&gt;
|MOSI||GPIO13&lt;br /&gt;
|-&lt;br /&gt;
|MISO||GPIO12&lt;br /&gt;
|-&lt;br /&gt;
|CSN||GPIO15&lt;br /&gt;
|-&lt;br /&gt;
|GDO0||GPIO4&lt;br /&gt;
|-&lt;br /&gt;
|GDO2||GPIO5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wird ein einfacher Empfänger / Sender Kombination verwendet, dann über die PINs:&lt;br /&gt;
&lt;br /&gt;
{| |&lt;br /&gt;
! Bezeichnung &lt;br /&gt;
! ESP Pin&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter||GPIO4&lt;br /&gt;
|-&lt;br /&gt;
|Receiver||GPIO5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sendemodule ===&lt;br /&gt;
{{Randnotiz|RNTyp=r|RNText=Viele user berichten über Empfangsprobleme bei Nutzung des XY-MK-5V; es wird ausdrücklich empfohlen, ein anderes Empfangsmodul zu nutzen!}}&lt;br /&gt;
[[Datei:Fhemduino_schematic.png|200px|thumb|right|Beispielschaltplan SIGNAL(FHEM)duino]]  &lt;br /&gt;
&lt;br /&gt;
Mit einem Arduino-Nano und folgenden, billigen Sende- und Empfangsmodulen können Sie einen SIGNALduino bauen:&lt;br /&gt;
* FS1000A Dies ist das Sendemodul (TX) und wird oft im Set mit dem billigen XY-MK-5V-Empfänger angeboten (etwa 5€). &lt;br /&gt;
* RXB6 Das ist das empfohlene Empfangsmodul (RX), statt XY-MK-5V, etwa 5€ aus Deutschland.&lt;br /&gt;
&lt;br /&gt;
Die Verkabelung erfolgt analog zum [[FHEMduino]] und das bedeutet (Arduino -&amp;gt; Modul):&lt;br /&gt;
* PIN D2 an DATA des RX-Moduls&lt;br /&gt;
* PIN D11 an DATA des TX-Moduls (PIN links mit Beschriftung ATAD)&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss noch jeweils GND und 5V des Arduino mit dem GND bzw. VCC des Moduls verbunden werden.&lt;br /&gt;
&lt;br /&gt;
Jetzt fehlen noch die Antennen. Dafür braucht man ein 17,2 cm langes Stück Kupferdraht, das wird beim Anschluss &amp;quot;ANT&amp;quot; jeweils am Modul angelötet (anfängergeeignet).&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
===  USB-ID ermitteln  ===&lt;br /&gt;
Bevor der SIGNALduino mit dem FHEM Server (im Beispiel hier ein Raspberry PI) verbunden werden kann, muss die USB-Schnittstelle ermittelt werden. Hierzu bitte auf dem Terminal den Befehl&lt;br /&gt;
&amp;lt;pre&amp;gt; ls -l /dev/serial/by-id &amp;lt;/pre&amp;gt;&lt;br /&gt;
ausführen. Beispielhaft sieht das Ergebnis etwa so aus: &lt;br /&gt;
&#039;&#039;lrwxrwxrwx 1 root root 13 Jan 31 00:02 &#039;&#039;&#039;usb-FTDI_FT232R_USB_UART_A903N5T5-if00-port&#039;&#039;&#039; -&amp;gt; ../../ttyUSB0&#039;&#039; &lt;br /&gt;
Damit ist der Anschluss des SIGNALduino bestimmt und das Gerät kann wie im nächsten Abschnitt beschrieben definiert werden. Zuvor muss noch das Modul geladen werden.&lt;br /&gt;
&lt;br /&gt;
=== FHEM-Modul laden ===&lt;br /&gt;
Die SIGNALduino Module werden über das FHEM [[update]] verteilt, sobald die Änderungen einen &amp;quot;stabilen&amp;quot; und alltags tauglichen Zustand haben. Aktuell wird dort die Version 3.4.2 seit 08.04.2020 verteilt.&lt;br /&gt;
&lt;br /&gt;
Die in der Entwicklung befindliche Version (3.5.x, bringt z.B. Unterstützung für Geräte mit FSK-Modulation) kann mit folgenden Befehlen geladen werden:&lt;br /&gt;
&lt;br /&gt;
* FHEM aktualisieren: &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; &lt;br /&gt;
* SIGNALduino Modul aktualisieren: &amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/master&amp;lt;nowiki/&amp;gt;/controls_signalduino.txt&amp;lt;/code&amp;gt;  Durch das Update von FHEM wird sichergestellt, dass das Modul mit FHEM arbeitet.&lt;br /&gt;
&lt;br /&gt;
Das Gerät kann wie folgt definiert werden (die Spezifikation des USB-Anschlusses muss dabei an die aktuellen Gegebenheiten angepasst werden):&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;eigener-SIGNALduino-Name&amp;gt; SIGNALduino /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A903N5T5-if00-port0@57600&amp;lt;/code&amp;gt;&lt;br /&gt;
* Solltet Ihr einen SIGNALESP via IP einbinden wollen ist die Syntax. Ebenso wird auch vorgegangen wenn der SIGNALduino beispielsweise über ser2net freigeben wird.&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;eigener-SIGNALESP-Name&amp;gt; SIGNALduino &amp;lt;ip-adresse&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
Nach dem Einbinden wird der SIGNALduino, falls er erkannt wird, im Status &amp;quot;Opened&amp;quot; angezeigt. Die Baudrate beim SIGNALduino beträgt 57600 - via telnet muss dann dieselbe Baudrate eingestellt werden. &lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Beispiel-Befehle verwenden &amp;quot;sduino&amp;quot; als &amp;lt;eigener-SIGNALduino-Name&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Flashen des Arduino mit der SIGNALduino Firmware ====&lt;br /&gt;
Falls avrdude noch nicht vorhanden ist, kann es mit folgendem Befehl installiert werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install avrdude&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In FHEM ist der SIGNALduino mit dem Status &amp;quot;Open&amp;quot; vorhanden. Jetzt müssen wir FHEM noch mitteilen, welche Hardware wir angeschlossen haben. Über das Attribut &#039;&#039;hardware&#039;&#039; lässt sich zwischen den mitgelieferten Firmware-Dateien wechseln. Solltet ihr einen Nano mit cc1101 Transceiver verwenden, so wählt bitte folgende Hardware&lt;br /&gt;
:&amp;lt;code&amp;gt;attr sduino hardware nanoCC1101&amp;lt;/code&amp;gt;&lt;br /&gt;
sonst üblicherweise&lt;br /&gt;
:&amp;lt;code&amp;gt;attr sduino hardware nano328&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann muss mitgeteilt werden, welche Version man geladen haben will: stable oder testing. &lt;br /&gt;
:&amp;lt;code&amp;gt;attr sduino updateChannelFW testing&amp;lt;/code&amp;gt;&lt;br /&gt;
Nun wird die entsprechende Firmware heruntergeladen. Dies geschieht durch den Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;get sduino availableFirmware&amp;lt;/code&amp;gt;&lt;br /&gt;
Anschließend kann der &#039;&#039;flash&#039;&#039; Befehl abgesetzt werden: &lt;br /&gt;
:&amp;lt;code&amp;gt;set sduino flash &amp;lt;und-dann-auswaehlen&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Dadurch wird der Arduino mit der gewählten Firmware geflasht. Das Ergebnis wird im Webinterface direkt angezeigt.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann auch der Flash-Befehl mit einem Dateinamen aufgerufen werden. Diese Möglichkeit sollte jedoch nur verwendet werden, wenn die SIGNALduino Firmware selbst compiliert wurde und eine andere Hardware verwendet wird. Der Flash-Befehl wird wie folgt aufgerufen:&lt;br /&gt;
:&amp;lt;code&amp;gt;set sduino flash FHEM/firmware/SIGNALduino_mega2560.hex&amp;lt;/code&amp;gt;&lt;br /&gt;
(je nachdem wo und unter welchem Namen die .hex Datei abgelegt wurde)&lt;br /&gt;
&lt;br /&gt;
Wenn ein miniCUL geflasht werden soll, sind einige Besonderheiten zu beachten. Details dazu in {{Link2Forum|Topic=114413|LinkText=diesem Forenthema}}.&lt;br /&gt;
&lt;br /&gt;
==== Flashen einer Firmware über HTTP ====&lt;br /&gt;
Die Firmware wird in  nicht mehr über den FHEM Update Mechanismus verteilt. &lt;br /&gt;
Damit die passende Firmware auf den SIGNALduino geladen werden kann, wird diese dann über HTTP aus den Github Releases geladen.&lt;br /&gt;
&lt;br /&gt;
==== Vorabversion einer Firmware ====&lt;br /&gt;
Die Firmware des SIGNALduino wird ebenso wie das FHEM Modul auch weiter entwickelt.&lt;br /&gt;
Die Entwickler sind auf Tests und Rückmeldungen der Nutzer angewiesen, da leider nicht alle Sensoren vorher getestet werden können.&lt;br /&gt;
&lt;br /&gt;
Die Version 3.4 ist die aktuell stabile Version.&lt;br /&gt;
&lt;br /&gt;
Für die folgenden Microcontroller kann man die Firmware seit 21.02.2019 auch direkt downloaden und teilweise flashen. &lt;br /&gt;
Dazu muss das Attribut hardware auf einen gültigen Wert angepasst werden!&lt;br /&gt;
Über den GET Befehl availableFirmware werden dann für die hinterlegte Hardware die passenden Versionen gesucht. Über das Attribut updateChannelFW kann zwischen &amp;quot;stable&amp;quot; und &amp;quot;testing&amp;quot; definiert werden, welche Art von Firmware angeboten werden soll.&lt;br /&gt;
&lt;br /&gt;
Nachdem die Firmwareversion erfragt wurde, bietet der set flash Befehl eine Auswahlliste an. Wird ein Flash Befehl mit einer der Versionen ausgewählt, wird diese Version zunächst heruntergeladen und bei den AVR Versionen auch versucht diese mittels avrdude zu flashen.&lt;br /&gt;
Die Firmware für den ESP8266 kann aktuell leider noch nicht über diesen Befehl aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ funktioniert aber auch die Option, dem Flash Befehl eine URL zu übergeben. Dann wird die Datei aus der URL heruntergeladen und auch versucht diese zu Flashen. z.B.&lt;br /&gt;
SIGNALDuino_nanocc1101.hex für einen Nano mit CC1101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set sduino flash &amp;lt;/code&amp;gt;https://github.com/RFD-FHEM/SIGNALDuino/releases/download/3.3.1/SIGNALDuino_radinocc11013.3.1.hex&lt;br /&gt;
&lt;br /&gt;
oder&lt;br /&gt;
SIGNALESP_.hex (mit cc1101) für einen ESP8266 &lt;br /&gt;
&amp;lt;code&amp;gt;set ipduino flash &amp;lt;/code&amp;gt;https://github.com/RFD-FHEM/SIGNALDuino/releases/download/3.3.1/SIGNALDuino_ESP8266cc11013.3.1.hex&lt;br /&gt;
&lt;br /&gt;
!Achtung, aktuell wird die Firmware für den ESP dadurch nur herunter geladen. Flashen müsst ihr leider immer noch über ein passendes Tool &lt;br /&gt;
z.B. [https://github.com/nodemcu/nodemcu-flasher ESP8266Flasher.exe] oder Esptool und einer seriellen Konsole.&lt;br /&gt;
Auch ist zu beachten, es handelt sich hierbei tatsächlich um ein Binary und nicht um ein Hex File. &lt;br /&gt;
&lt;br /&gt;
Nach dem Booten des ESPs, spannt dieser ein eigenes WLAN auf. Habt ihr euch damit verbunden, könnt ihr den ESP mit eurem vorhandenen WLAN nach Eingabe der Daten verbinden.&lt;br /&gt;
&lt;br /&gt;
Die Hauptseite für Firmware-Releases findet sich unter https://github.com/RFD-FHEM/SIGNALDuino/releases/ .&lt;br /&gt;
Dort kann auch eine Änderungshistorie eingesehen werden.&lt;br /&gt;
==== Flashen eines radino Boards mit ATmega32U4 ====&lt;br /&gt;
&lt;br /&gt;
Diese Funktion steht seit 21.02.2019 nun auch in der via FHEM aktualisierten version zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
Auch sind Berichte bekannt, dass der Radino beim Neustart von FHEM nicht korrekt initialisiert wird.&lt;br /&gt;
Weiterhin ist zu beachten, dass der Bootloader eine andere USB ID bekommt und diese im Attribut flashCommand hinterlegt werden muss.&lt;br /&gt;
&lt;br /&gt;
==== Fehler beim Flashen ====&lt;br /&gt;
Sollte bei einem Flash Vorgang ein Fehler auftreten, solltet ihr zunächst im Logfile mit Verbose 5 nachsehen.&lt;br /&gt;
&lt;br /&gt;
Findet ihr dort keine Fehlermeldung, gibt es noch ein separates Flashlog, welches ihr über einen Browser aufrufen könnt. Dazu müsst ihr nur den Folgenden Pfad an euren Servernamen anhängen:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/fhem/FileLog_logWrapper?dev=Logfile&amp;amp;type=text&amp;amp;file=SIGNALduino-Flash.log&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Geräteerkennung ===&lt;br /&gt;
==== Unterstützte Geräte ====&lt;br /&gt;
Für die folgenden Geräte gibt es derzeit (2017) eine Unterstützung für den Betrieb mit FHEM. Die Geräte werden [[autocreate|automatisch erkannt]] und in der Konfiguration eingetragen, wenn der SIGNALduino läuft.&lt;br /&gt;
Bitte Geräte mit sehr präzisen Referenzen hier listen (Produktnummer, Protokoll-Variantenname etc.), damit eine globale Suche/Verifikation maximal erfolgreich ist. In der detaillierten Liste [[Geprüfte_Geräte]] lassen sich die Geräte näher identifizieren.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot; | Produkt &lt;br /&gt;
! (E)mpfangen&amp;lt;br /&amp;gt;(S)enden &lt;br /&gt;
! Hinweise &lt;br /&gt;
! Verwendetes Modul &lt;br /&gt;
! Protokoll ID&lt;br /&gt;
|-&lt;br /&gt;
|Conrad Wetterstation KW9110||E S||Sensor: KW9010, neben Temperatur u. Luftfeuchte werden auch Trend, Batterie u. Kanal erfasst|| CUL_TCM97001  || 0.3&lt;br /&gt;
|-&lt;br /&gt;
|TCM Wetterstation (97001 und 21xxx Serie)||E|| || CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|ABS Wetterstation (ABS 700)||E|| || CUL_TCM97001  || 0&lt;br /&gt;
|-&lt;br /&gt;
|Prologue Wetterstation ||E|| ||CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Rubicson Wetterstation ||E|| ||CUL_TCM97001 ||0 &lt;br /&gt;
|-&lt;br /&gt;
|NC_WS Wetterstation ||E|| ||CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.gt-support.de/ GT-WT-02 Wetterstation]||E|| ||CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|AURIOL Wetterstation ||E|| ||CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Mebus Wetterstation ||E|| ||CUL_TCM97001 || 0&lt;br /&gt;
|-&lt;br /&gt;
|Intertechno Funkschalter||E S|| ||IT || 3,4,5,17&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;strike&amp;gt;Conrad RSL Funkschalter&amp;lt;/strike&amp;gt;||E S|| Funktioniert aktuell nicht || SIGNALduino_RSL  || &lt;br /&gt;
|-&lt;br /&gt;
|[http://global.oregonscientific.com/product_view.php?id=5 Oregon Scientific Wettersensoren]||E || Protokoll V2 &amp;amp; V3 implementiert || OREGON || 10&lt;br /&gt;
|-&lt;br /&gt;
|Bresser Temp/Hydro Sensor||E || || Hideki || 12&lt;br /&gt;
|-&lt;br /&gt;
|[https://de.hama.com/00104985/hama-aussensensor-ts33c-fuer-wetterstation Hama TS33C]||E || || Hideki || 12&lt;br /&gt;
|-&lt;br /&gt;
|TFA Temp/Hydro Sensor||E || || Hideki || 12&lt;br /&gt;
|-&lt;br /&gt;
|Lacrosse TX2/TX3 Sensoren||E || || CUL_TX || 8&lt;br /&gt;
|-&lt;br /&gt;
|TFA 30320902||E || || SD_WS07 || 7&lt;br /&gt;
|-&lt;br /&gt;
|Eurochron eas800z||E || || SD_WS07  || 7&lt;br /&gt;
|-&lt;br /&gt;
|Technoline WS6750/TX70DTH||E || || SD_WS07 || 7&lt;br /&gt;
|-&lt;br /&gt;
|FreeTec Außenmodul NC-7344||E || || SD_WS07 || 7&lt;br /&gt;
|-&lt;br /&gt;
|CTW600||E || || SD_WS09 || 9&lt;br /&gt;
|-&lt;br /&gt;
|CTW602||E ||neuere Version des CTW600 mit 868.35 MHz || SD_WS09 || 9&lt;br /&gt;
|-&lt;br /&gt;
|WH1080||E || || SD_WS09 || 9&lt;br /&gt;
|-&lt;br /&gt;
|Visivon remote pt4450||E || || none || 24&lt;br /&gt;
|-&lt;br /&gt;
|Einhell HS 434/6||E || || none || 21&lt;br /&gt;
|-&lt;br /&gt;
|Flamingo FA20RF / FA21RF / FA22RF Rauchmelder||E || || FLAMINGO || 13,13.1,13.2&lt;br /&gt;
|-&lt;br /&gt;
|mumbi m-FS300||E || || none || 26,27&lt;br /&gt;
|-&lt;br /&gt;
|TFA 30.3200||E || || none || 33&lt;br /&gt;
|-&lt;br /&gt;
|Livolo||E|| || none || 20&lt;br /&gt;
|-&lt;br /&gt;
|Smartwares RM174RF/2 (RM174RF-001CPR) 4500177571 ||E [S?]|| IT EV1527; TODO herausfinden: Alarmierung (wie Alarmton getriggered werden kann); Batterieinfo? || IT || 3&lt;br /&gt;
|-&lt;br /&gt;
|Smartwares SH5-TSO-A||E S|| || IT || ?&lt;br /&gt;
|-&lt;br /&gt;
|X10 Security Devices||E|| ||  || 39&lt;br /&gt;
|-&lt;br /&gt;
|[[Somfy_via_SIGNALduino|Somfy RTS]]||E S|| || SOMFY || 43&lt;br /&gt;
|}&lt;br /&gt;
Bei einigen Intertechno-Funksteckdosen (Brennenstuhl) kann es zu Empfangsproblemen kommen. Hier muss die Taktrate, mit der gesendet wird, angepasst werden. Dazu muss für &#039;&#039;Funksteckdose&#039;&#039; (also sauber per-Client-Instanz-spezifisch, NICHT SIGNALduino-Transceiver-global) das Attribut &lt;br /&gt;
:&amp;lt;code&amp;gt;attr &amp;lt;Funksteckdose&amp;gt; ITclock 300&amp;lt;/code&amp;gt; &lt;br /&gt;
gesetzt werden, der Standardwert ist 250.&lt;br /&gt;
&lt;br /&gt;
==== Mein Gerät wird in FHEM nicht erkannt ====&lt;br /&gt;
1. Prüfen, ob vom Sensor die Signaldaten (verbose &amp;gt;=4) erkannt werden. Sobald ihr die empfangenen Signaldaten im Logfile zuordnen könnt, geht es weiter mit:&lt;br /&gt;
&lt;br /&gt;
2. Eröffnet ein Thema unter [https://github.com/RFD-FHEM/RFFHEM/issues/new?template=sensor---device-feature.md github]:&lt;br /&gt;
&amp;lt;!-- &amp;lt;syntaxhighlight lang=&amp;quot;md&amp;quot;&amp;gt;  ... markdown lexer not yet available; use pre instead --&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##  Specifications for new sensor / switch / or other device ... &lt;br /&gt;
&lt;br /&gt;
  - manufacturer:&lt;br /&gt;
  - model name:&lt;br /&gt;
  - pictures of the device / the board (very helpful)&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
## Specifications &lt;br /&gt;
&lt;br /&gt;
  - Microcontroller:&lt;br /&gt;
  - Version (Firmware):&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;!-- ( can be found here devicename -&amp;gt; Internals -&amp;gt; version ) --&amp;gt;&lt;br /&gt;
  - Versionmodul (FHEM Module):&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Auszug aus dem Logfile, welches zum Gerät gehört.&lt;br /&gt;
:&#039;&#039;Alles was ihr sonst noch über das Gerät und die übertragenen Daten wisst.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im Forum solltet ihr solche Fragen besser nicht posten, wenn das Gerät noch nicht unterstützt wird, dazu ist Github besser geeignet. Inzwischen wurde im Wiki eine eigene Seite eröffnet, die sich mit der Erkennung unbekannter Protokolle beschäftigt: [[Unbekannte_Funkprotokolle#Ansatz_1_-_Versuchen|Unbekannte_Funkprotokolle]].&lt;br /&gt;
&lt;br /&gt;
==== Es wird ein Protokoll erkannt, Autocreate legt aber kein device an ====&lt;br /&gt;
Im SIGNALduino sind &amp;gt;70 Protokolle implementiert. Jedoch gibt es nicht immer ein logisches Module, welche diese Protokolle verarbeiten.&lt;br /&gt;
Teilweise ist das auch nicht zwingend notwendig, um seine Anforderungen zu erfüllen. Insbesondere für Schalter bzw. Sensoren, die nur zwei Zustände kennen, geht es meist ohne Modul und automatisch angelegtem Gerät.&lt;br /&gt;
&lt;br /&gt;
Nehmen wir an, wir haben einen Schalter. Dieser kann einen oder zwei Zustände senden.&lt;br /&gt;
Im FHEM Log (und, insbesondere, im FHEMWEB Event Monitor) tauchen Meldungen ähnlich dieser auf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
2015.11.15 15:52:23 4: SIGNALduino_unknown incomming msg: u85#FF8081&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wir können mit Hilfe des Modules DOIF auf diese Nachricht eine Aktion ausführen:&lt;br /&gt;
&lt;br /&gt;
Entweder, wenn wir den Inhalt der Nachricht nur zu Teilen wissen, da er sich ändert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define mydoif DOIF ([sduino:&amp;amp;DMSG] =~ &amp;quot;u85#FF8081&amp;quot;) (set Lamp on)&lt;br /&gt;
attr mydoif do always&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder, wenn wir den Inhalt exakt kennen, dann auch als Vergleichsstring&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define mydoif DOIF ([sduino:&amp;amp;DMSG] eq &amp;quot;u85#FF8081&amp;quot;) (set relais on)&lt;br /&gt;
attr mydoif do always&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Teil u85#FF8081 muss individuell angepasst werden, der Name eures SIGNALduino möglicherweise auch.&lt;br /&gt;
&lt;br /&gt;
Als Alternative zu DOIF hier ein regex-verwendendes notify-Beispiel für einen Sender, der meint, zwei Codes alternierend senden zu müssen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define n_sender_trigger notify sduino:UNKNOWNCODE.*u41#(13B72253|163873B3) { my_sender_trigger_indicate();; }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selbstverständlich muss in diesem Moment auch eine sub my_sender_trigger_indicate() definiert werden (z.B. in FHEM/99_myUtils.pm), die dort z.B. als Test eine Log-Ausgabe (Log3()) machen kann.&lt;br /&gt;
&lt;br /&gt;
=== Das Logfile ===&lt;br /&gt;
Im Logfile ab [[Verbose]] 4 tauchen diverse Meldungen auf, deren Bedeutung kurz erläutert wird (verbose 3 unterdrückt diese Meldungen).&lt;br /&gt;
&lt;br /&gt;
UPDATE: der folgende Bereich ist von einem weniger erfahrenen Zeitgenossen früher nach Kräften erweitert/geschrieben worden. Mittlerweile existiert aber ein neuer Inhalt [[Unbekannte_Funkprotokolle]] (siehe auch Erwähnung weiter oben), der als sehr gut beschrieben und unvergleichlich detailreicher bezeichnet werden muss (&amp;quot;endlich gibt es sowas!&amp;quot;). Der Bereich hier dürfte somit zwar für grundlegende Verdeutlichungen noch recht sinnvoll sein, der Inhalt sollte allerdings evt. in eine konsistente Dokumentation überarbeitet (verlagert/dedupliziert/reduziert) werden.&lt;br /&gt;
&lt;br /&gt;
Die Protokolle (von der SIGNALDuino-Firmware gesendete Signal-Beschreibungs-Strings) können wie folgt unterschieden werden:&lt;br /&gt;
&lt;br /&gt;
*MS - Nachricht mit Sync Puls: Hierzu ein Beispiel&lt;br /&gt;
:&amp;lt;code&amp;gt;MS;P0=-108;P1=395;P2=-1033;P3=-547;P4=-19932;P5=-8916;P6=1368;D=151313131312131313131313131313131312121212121313131313131312131212132;CP=1;SP=5;&amp;lt;/code&amp;gt; P0-P6 sind die Signalpegel (Dauer und positiv/negativ). Hinter D= befindet sich die Abfolge der Signale. Die ersten beiden Ziffern 15 in D sind wie folgt zu lesen. Zuerst wurde ein Signal &amp;quot;1&amp;quot; also P1 mit 395 Mikrosekunden high (die Zeitdauer ergibt sich aufgrund der Mitteilung &amp;quot;P1=395&amp;quot;) und anschließend ein Signal &amp;quot;5&amp;quot; also P5 mit 8916 Mikrosekunden low (die Zeitdauer ergibt sich aufgrund der Mitteilung &amp;quot;P5=-8916&amp;quot;) gemessen. CP=1 ist die Referenz auf den Takt des Signales - der Basistakt ist in diesem Fall ~395 Mikrosekunden. SP=5 gibt die Referenz zum Syncpuls an, der das gesamte Signal einleitet. Welche Signalfolge nun eine binäre 1 bzw. 0 bedeutet, wird im SIGNALduino über die integrierte Protokoll Liste realisiert.&lt;br /&gt;
&lt;br /&gt;
*MC - Nachricht vom Typ Manchester: Manchesterkodierte Signale können bereits sehr einfach im Arduino in eine Binärform umgewandelt werden. Es wird hier nach IEEE 802.3 umgewandelt. In Manchester Signalen gibt es lange und kurze Pulse. Deren Durchschnittswert wird mit LL (long low), LH (long high), SL (short low) und SH (short high) übermittelt. Zusätzlich, um das Protokoll schneller erkennen zu können, wird die Taktfrequenz mit übermittelt (C=429 Mikrosekunden). Die Daten befinden sich hinter D= und werden in HEX Form übergeben.&lt;br /&gt;
:&amp;lt;code&amp;gt;MC;LL=-1066;LH=904;SL=-562;SH=385;D=332B4B4D54D5554B552CD2D554B2B5354A;C=429;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*MU - Message unsynced: Diese Art von Nachrichten sind nicht nach Manchester codiert und haben auch keinen erkennbaren Sync / Clock Signalpegel am Start der Nachricht. Bei diesen Nachrichtentypen ist es, im Vergleich zu den anderen, am wahrscheinlichsten, dass das übermittelte Signal unvollständig oder überhaupt kein Signal ist. Wie bei MS sind P0-P6 die Signalpegel und in D= wird die Abfolge der Signalpegel referenziert. CP=2 gibt auch hier die Referenz zum Takt an, allerdings muss dieser nicht korrekt erkannt worden sein.&lt;br /&gt;
:&amp;lt;code&amp;gt;MU;P0=1372;P1=-580;P2=362;P3=-1047;D=01212321212321212121212121212123212123212321232121212121212321;CP=2;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es erscheinen viele Meldungen dieser Art:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Fingerprint for MU Protocol id xxxx -&amp;gt; yyy matches, trying to demodulate&lt;br /&gt;
sduino: Starting demodulation at Position 1&lt;br /&gt;
Fingerprint for MU Protocol id 28 -&amp;gt; IC Ledspot matches, trying to demodulate&lt;br /&gt;
sduino: Starting demodulation at Position 1&lt;br /&gt;
Fingerprint for MU Protocol id 29 -&amp;gt; HT12e remote matches, trying to demodulate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies sind nun Bemühungen, anhand der von der SIGNALDuino-Firmware gelieferten rohen aber detaillierten Signal-Strings eine Vor-Analyse / Fingerprinting vorzunehmen.&lt;br /&gt;
Man könnte nun z.B. bei solchen Fingerprinting-Analysen erkennen:&lt;br /&gt;
* dass der Basis-Takt-Wert innerhalb eines charakteristischen Zeit-Bereichs liegt&lt;br /&gt;
* dass die Anzahl der Sync-Pulse eine präzise Zahl ist&lt;br /&gt;
* dass Längen erkannter Puls-Typen innerhalb eines Bereichs liegen&lt;br /&gt;
&lt;br /&gt;
Mittels solcher Untersuchungen kann man also final hoffentlich hinreichend plausibel feststellen, &amp;quot;dass diese Aktivitäten offensichtlich(?) zu einer Funk-Komponente Rauchmelder von Hersteller XYZ gehören müssen, und man somit weiterleiten muss an ein (möglicherweise bereits existierendes) Userdaten-Dekodier-Modul für diese Herstellerkomponente&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei einer dann erfolgenden Demodulation des noch rohen SIGNALDuino-Strings könnte man z.B. (hoffentlich richtigerweise) annehmen, dass eine Signalpegel-Typ-Folge &amp;quot;13&amp;quot; eine binäre 1 bedeuten soll, während eine Folge &amp;quot;12&amp;quot; eine binäre 0 bedeuten soll. Man erhält aus dem Gesamt-Puls-String also nach vollständiger Demodulation eine Abfolge von vielen 0/1 Bits, die insgesamt ein Datenwort darstellen, mit einer gewissen Länge von NN bits (diese Längen-Angabe könnte übrigens - neben Namenssuche nach Hersteller oder Produkt etc. - ein wichtiges Such-Merkmal sein, ob andere Frameworks tatsächlich bereits wissen, wie Daten dieser Funk-Komponente zu dekodieren sind!). Dieses demodulierte Datenwort ist nun das finale Datenwort, welches einen Container für die Funk-Komponenten-Informationen darstellt (in diesem Container also beispielsweise enthalten: Temperatur, Feuchte, Akku-Status, ID, Alarm, ... - zumindest wenn nicht dummerweise der ganze Container erst einmal CRC- oder Crypto-verschlüsselt ist...).&lt;br /&gt;
&lt;br /&gt;
Man muss an dieser Stelle unbedingt sagen, dass dieses Userdaten-Datenwort (einer bestimmten Hersteller-Funk-Komponente!) natürlich bei &#039;&#039;jeglichen&#039;&#039; Transceiver-Systemen &#039;&#039;immer&#039;&#039; gleich erkannt werden &#039;&#039;muss&#039;&#039; - an dieser Stelle ist also ganz klar, dass diese Daten an &#039;&#039;allgemeine&#039;&#039; FHEM-Module weitergeleitet (Dispatched) werden müssen, die nach Übernahme von Daten von &#039;&#039;jeglichen&#039;&#039; Transceiver-Systemen diese Daten immer auf die gleiche Weise (&#039;&#039;&#039;&#039;&#039;generisch/zentral&#039;&#039;&#039;&#039;&#039;) für die jeweilige Hersteller-Funk-Komponente erledigen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Die Abfolge ist also ganz klar:&#039;&#039;&#039;&lt;br /&gt;
Funk-Aktivität --&amp;gt; Transceiver-Gerät/Firmware (SIGNALDuino) --&amp;gt; maximal detailreich beschreibender Rx-Analyse-Output-String --&amp;gt; Fingerprinting-Grobzuordnung des (SIGNALDuino-Firmware-)Outputs (durch 00_SIGNALduino.pm) auf gerätespezifisches Verhalten --&amp;gt; &#039;&#039;generische/zentrale&#039;&#039; Dekodierung des gerätespezifischen Protokoll-Datenworts, in zentralen Grundsatz-Modulen wie z.B. &amp;lt;code&amp;gt;14_SD_WS.pm&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Und wenn dann bei einer solchen Schritte-Abfolge irgendetwas noch fehlen/unpassend sein sollte, dann muss eben entsprechendes Development an gewissen Stellen erfolgen ;-)&lt;br /&gt;
&lt;br /&gt;
====Minimieren (whitelist/blacklist) von unerwünschter Kommunikations-Aktivität/Einträgen====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Unknown Code&amp;quot; bedeutet, dass der SIGNALduino Signaldaten empfangen und diese binär interpretiert hat. Diese Meldung soll uns nun aber mitteilen, dass es dann nicht weiter verarbeitet werden kann, da kein Modul  existiert (oder kein Weiterleitungs-Dispatch zu einem bereits existierenden), welches diese Daten jetzt in ihre Bedeutung umwandeln kann. &lt;br /&gt;
:&amp;lt;code&amp;gt;sduino: Unknown code u1FFFFF0, help me!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Außerdem kommt es gehäuft zu Logmeldungen und auch Events in ähnlicher Form:&lt;br /&gt;
:&amp;lt;code&amp;gt;SIGNALduino_unknown incomming msg: u85#FF8081&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mittlerweile sind über 50 Protokolle für den SIGNALduino definiert. Dadurch kommt es vor, dass sich ein Signal mit mehr als einem Protokoll demodulieren lässt. Meist führt dies dann zu zusätzlichen &amp;quot;Unknown code&amp;quot;-Einträgen.&lt;br /&gt;
&lt;br /&gt;
Derartige Einträge können mit dem Attribut WhitelistID minimiert werden. Dabei werden die Geräte, die nach Daten-Empfang tatsächlich verarbeitet werden sollen (also welche Protokolle vom FHEM Modul berücksichtigt werden), mit ihrer Protokollnummer in die WhitelistID aufgenommen.&lt;br /&gt;
Für Protokolle, die nicht berücksichtigt werden, gibt es weder Logeinträge noch Events. Diese werden im Programmablauf nicht berücksichtigt. Das spart zum einen Ressourcen und trägt auch zur Übersichtlichkeit bei. &lt;br /&gt;
Die Protokollnummer kann Tabelle [[#Unterst.C3.BCtzte_Ger.C3.A4te|Unterstützte Geräte]] entnommen werden (hilfreich ist es auch, wenn in den verwendeten Geräten im Internal &amp;lt;gerätename&amp;gt;_DMSG nachgesehen wird). So bedeutet beispielsweise ein Eintrag der Form &amp;lt;code&amp;gt;W50#FF553335FFBC&amp;lt;/code&amp;gt; dass dann das Protokoll  #50 in die Whitelist aufzunehmen wäre (&amp;lt;code&amp;gt;attr sduino whitelist_IDs 50&amp;lt;/code&amp;gt;).&lt;br /&gt;
{{Randnotiz|RNTyp=r|RNText=Achtung Schreibweise: Dokumentation oft als WhitelistID o.ä., aber Name ist whitelist_IDs!!&lt;br /&gt;
}}&lt;br /&gt;
Die Angabe erfolgt durch Komma getrennt: z.B.:&lt;br /&gt;
:&amp;lt;code&amp;gt;1,2,5,10&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Senden mit dem SIGNALduino ===&lt;br /&gt;
Der SIGNALduino kann etwas &amp;quot;raw senden&amp;quot;, indem ihm das SIGNAL so übermittelt wird, wie er es moduliert. Hierzu  muss der Befehl wie folgt eingegeben werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
set sduino sendMsg P3#00111010#R4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Befehl moduliert die Bitfolge 00111010 mittels Protokoll #3 und wiederholt die Nachricht 4x.&lt;br /&gt;
Die Protokoll Nummer kann aus einer empfangenen Nachricht extrahiert werden. Ebenso die Bits.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
sduino: extracted data 00111010 (bin)&lt;br /&gt;
sduino: Found Protocol id 3 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternativ kann das Signal auch in einer &amp;quot;rohform&amp;quot; angegeben werden. Dies ist manchmal in speziellen Fällen notwendig:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
set sduino raw SR;;R=3;;P0=4742;;P1=-1554;;P2=286;;P3=-786;;P4=649;;P5=-420;;D=0123234545234545452323232323454523234523454523232345454523232323452345234523452345;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
R=3 bedeutet, das Signal wird 3x gesendet.&lt;br /&gt;
Die Übertragung besteht aus den in D angegeben Pulsen, welche in P0-P5 definiert werden.&lt;br /&gt;
Die Daten kann man aus einer empfangenen MS oder MU Nachricht extrahieren.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann ab Version 3.2 auch eine vereinfachte Form eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
====Fehlersuche====&lt;br /&gt;
(Zielgerät reagiert nicht, etc.)&lt;br /&gt;
&lt;br /&gt;
* Nachrichtenwiederholungsanzahl muss evt. für manche Geräte entsprechend groß eingestellt sein&lt;br /&gt;
{{Randnotiz|RNTyp=r|RNText=VORSICHT blöder Schreibweisen-Mismatch ITClock vs. ITclock!!}}&lt;br /&gt;
* Sende-Takt-Wert (Clock) passt evt. nicht ganz, siehe z.B. Thread-Antwort {{Link2Forum|Topic=58397|Message=775434|LinkText=Signalduino Version 3.3.1}}, wo für IT-Geräte ein Attribut anhand der CP= des Empfangsdaten-Logs modifiziert wird. ACHTUNG: dies kann entweder global das Internal-Attribut ITClock eines SIGNALduino-Transceiver-Devices sein, oder (viel besser da korrekt geräte-instanz-spezifische Konfiguration) das ITclock eines IT-Client-Devices.&lt;br /&gt;
&lt;br /&gt;
== Fehlerbehandlung ==&lt;br /&gt;
Der SIGNALduino kann mit folgendem Befehl auf Werkseinstellungen zurückgesetzt werden:&lt;br /&gt;
:&amp;lt;code&amp;gt;set raw e&amp;lt;/code&amp;gt;&lt;br /&gt;
Ob ein solcher Reset nötig ist, erkennt man an dem Inhalt vom Reading &amp;lt;code&amp;gt;cc1101_config&amp;lt;/code&amp;gt;, dort unsinnige Werte angezeigt werden oder dem Reading  &amp;lt;code&amp;gt;config&amp;lt;/code&amp;gt; welches durch den Befehl &amp;quot;get config&amp;quot; aktualisiert wird, was im Standard auf &amp;quot;MS=1;MU=1;MC=1&amp;quot; entspricht.&lt;br /&gt;
&lt;br /&gt;
In der Firmware sind die diverse Befehle eingebaut, welche über einen &amp;lt;code&amp;gt;set raw&amp;lt;/code&amp;gt; Befehl im Modul direkt ausgeführt werden können. Sofern möglich, sollten die Abfrage von Werten aus dem Modul allerdings mit den dafür vorgesehenen Kommandos erfolgen, da die Rückmeldungen des &amp;lt;code&amp;gt;set raw&amp;lt;/code&amp;gt; Befehls nur im Logfile ab Verbose 4 erscheinen. Die Befehle sind nützlich, wenn direkt auf den Microcontroller zugegriffen wird: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;C&amp;lt;reg&amp;gt;&amp;lt;/code&amp;gt; &amp;lt;reg&amp;gt; is a (two digit) hex number: return the value of the cc1101 register. &amp;lt;reg&amp;gt;=99 dumps the first 48 registers. Example: &amp;lt;code&amp;gt;set raw C35&amp;lt;/code&amp;gt; führt ab Verbose 4 zu einer Logausgabe folgender Art  &amp;lt;code&amp;gt;Read, msg: C35 = 0D&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt; EEPROM / factory reset.  resets all eeprom values without reboot&lt;br /&gt;
:&amp;lt;code&amp;gt;W&amp;lt;AA&amp;gt;&amp;lt;XX&amp;gt;&amp;lt;/code&amp;gt; Write eeprom (schreibt einen Wert ins EEPROM und ins CC1101 Register. Die eeprom Adresse hat einen Offset von 2. z.B W041D schreibt 1D ins Register 2 des CC1101)&lt;br /&gt;
&lt;br /&gt;
Die Sendeleistung lässt sich mit &lt;br /&gt;
:&amp;lt;code&amp;gt;get sduino ccpatable&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
prüfen, wobei die Rückmeldung wie folgt zu lesen ist: &lt;br /&gt;
  &amp;quot;-10_dBm&amp;quot;  =&amp;gt; &#039;34&#039;,&lt;br /&gt;
  &amp;quot;-5_dBm&amp;quot;   =&amp;gt; &#039;68&#039;,&lt;br /&gt;
  &amp;quot;0_dBm&amp;quot;    =&amp;gt; &#039;60&#039;,&lt;br /&gt;
  &amp;quot;5_dBm&amp;quot;    =&amp;gt; &#039;84&#039;,&lt;br /&gt;
  &amp;quot;7_dBm&amp;quot;    =&amp;gt; &#039;C8&#039;,&lt;br /&gt;
  &amp;quot;10_dBm&amp;quot;   =&amp;gt; &#039;C0&#039; &lt;br /&gt;
Dabei wird die Sendeleistung dauerhaft mit dem Befehl&lt;br /&gt;
:&amp;lt;code&amp;gt;set sduino cc1101_patable &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
hochgeschaltet (&amp;lt;value&amp;gt; durch den Wert ersetzen).&lt;br /&gt;
&lt;br /&gt;
Weitere Firmware-Befehle sind im Thread-Beitrag {{Link2Forum|Topic=58396|Message=497921}} zu finden.&lt;br /&gt;
&lt;br /&gt;
== Foren Links ==&lt;br /&gt;
* {{Link2Forum|Topic=38402|LinkText=Forenthread - Ankündigung}}&lt;br /&gt;
* {{Link2Forum|Topic=58396|LinkText=SIGNALDuino Empfänger Firm- und Hardware}}&lt;br /&gt;
* {{Link2Forum|Topic=82379|Message=1033374|LinkText=SIGNALDuino Schaltplan}}&lt;br /&gt;
* {{Link2Forum|Topic=58397|LinkText=Signalduino Entwicklung Version 3.3.1 }}&lt;br /&gt;
* [http://www.rflink.nl/blog2/wiring Beschreibung zu diversen Empfängern und Verbesserung der Empfangsleistung]&lt;br /&gt;
* [[SIGNALduino in die Arduino Entwicklungsumgebung einbinden]]&lt;br /&gt;
* [[Somfy via SIGNALduino]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Arduino]]&lt;br /&gt;
[[Kategorie:433MHz]]&lt;br /&gt;
[[Kategorie:868MHz]]&lt;/div&gt;</summary>
		<author><name>Yoda gh</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Event-aggregator&amp;diff=26866</id>
		<title>Event-aggregator</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Event-aggregator&amp;diff=26866"/>
		<updated>2018-05-29T19:08:19Z</updated>

		<summary type="html">&lt;p&gt;Yoda gh: Anmerkungen zum Median&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:event-aggregator}}  &amp;lt;!-- da richtige Schreibweise kleinen Anfangsbuchstaben hat --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Infobox Attribut sinnvoll? --&amp;gt;&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
Mit dem Attribut [[event-aggregator]] können (nach Wunsch zeitlich gewichtete) Durchschnittswerte, Minima, Maxima, etc. berechnet werden. &lt;br /&gt;
&lt;br /&gt;
Der &amp;quot;Median&amp;quot; kann hilfreich sein, um Messwerte mit Ausreissern (unsinnige Werte, z.B. durch Übertragungsfehler) zu &amp;quot;glätten&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Syntax ==&lt;br /&gt;
Das &#039;&#039;event-aggregator&#039;&#039; Attribut wird in der folgenden Weise spezifiziert:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;attr &amp;lt;device&amp;gt; event-aggregator reading:interval:method:function:holdTime&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die einzelnen Teile haben folgende Bedeutung:&lt;br /&gt;
=== reading ===&lt;br /&gt;
Das zu bearbeitende Reading des aktuellen Gerätes. Wichtig zu bedenken: es kann immer nur einen event-aggregator pro Reading geben. Will man daher mehrere Werte (z.B. min, max, avg), muss man das Reading erst duplizieren (z.B. mit userReadings oder notify). Kann als regulärer Ausdruck angegeben werden (bsp. .*_rain.*)&lt;br /&gt;
&lt;br /&gt;
=== interval === &lt;br /&gt;
&lt;br /&gt;
Updates des &amp;lt;readings&amp;gt; werden ignoriert, Events werden für mindestens &amp;lt;interval&amp;gt; Sekunden unterdrückt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach der blackout-periode wird das reading mit einem Wert upgedated, der sich aus den Werten und Zeitstempeln der vorher ignorierten Updates zusammensetzt.&lt;br /&gt;
&lt;br /&gt;
=== method === &lt;br /&gt;
&lt;br /&gt;
betrifft die Gewichtung nach Zeitintervallen&lt;br /&gt;
* &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;: keine zeitliche Gewichtung&lt;br /&gt;
* &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;: Annahme, dass zwischen den zwei Messpunkten keine Veränderung stattgefunden hat&lt;br /&gt;
* &amp;lt;code&amp;gt;linear&amp;lt;/code&amp;gt;: Annahme, dass der Wert sich zwischen zwei Messpunkten linear verändert hat.&lt;br /&gt;
&lt;br /&gt;
=== function === &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt; Anzahl&lt;br /&gt;
* &amp;lt;code&amp;gt;min&amp;lt;/code&amp;gt; Minimum&lt;br /&gt;
* &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; Maximum&lt;br /&gt;
* &amp;lt;code&amp;gt;mean&amp;lt;/code&amp;gt; artihmetischer Mittelwert&lt;br /&gt;
* &amp;lt;code&amp;gt;sd&amp;lt;/code&amp;gt; Standardabweichung&lt;br /&gt;
* &amp;lt;code&amp;gt;integral&amp;lt;/code&amp;gt; Summe (falls holdTime nicht angegeben) oder Integral für den Zeitraum holdTime&lt;br /&gt;
* &amp;lt;code&amp;gt;median&amp;lt;/code&amp;gt; [https://de.wikipedia.org/wiki/Median Median] (nur für method &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; und gesetzte holdTime) - im Gegensatz zum Mittelwert nicht anfällig für Ausreisser, hilfreich bei Sensoren mit sporadisch unsinnigen Messwerten&lt;br /&gt;
&lt;br /&gt;
=== holdTime === &lt;br /&gt;
&lt;br /&gt;
Zeitfenster in Sekunden, für die die vergangenen Werte gehalten werden, um die Aggregatfunktion zu berechnen.&lt;br /&gt;
&lt;br /&gt;
== Wechselwirkungen == &lt;br /&gt;
- keine bekannt - &lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
; aus der {{Link2CmdRef|Anker=Event-aggregator}}&lt;br /&gt;
attr myPowerMeter event-aggregator EP_POWER_METER:300:linear:mean,EP_ENERGY_METER:300:none:v&lt;br /&gt;
attr myBadSensor event-aggregator TEMP::none:median:300&lt;br /&gt;
attr mySunMeter event-aggregator SUN_INTENSITY_24H::const:integral:86400&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
*[[event-on-update-reading]]&lt;br /&gt;
*[[event-min-interval]]&lt;br /&gt;
*[[event-aggregator]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Benutzungstipps (&#039;&#039;Best Practice&#039;&#039;) für das Attribut in {{Link2Forum|Topic=36522|LinkText=diesem Forenthread}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Attribut (allgemeingültig)]]&lt;/div&gt;</summary>
		<author><name>Yoda gh</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Benutzer:Yoda_gh&amp;diff=26865</id>
		<title>Benutzer:Yoda gh</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Benutzer:Yoda_gh&amp;diff=26865"/>
		<updated>2018-05-29T19:01:59Z</updated>

		<summary type="html">&lt;p&gt;Yoda gh: Über mich...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wiki-Account von Gernot...&lt;br /&gt;
&lt;br /&gt;
Ich nutze FHEM derzeit hauptsächlich&lt;br /&gt;
 * zur [http://hillier.de/lueftung.php CO&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;Steuerung meiner Lüftung],&lt;br /&gt;
 * Aufzeichnung von Temperatur/Feuchte in diversen Räumen (über I2C-Sensoren und per Funk mit SIGNALduino (tolles Projekt!!)) und&lt;br /&gt;
 * Messung von Strom- und Gasverbrauch (mit einem [http://bg-etech.de/bgshop/product_info.php/datenlogger-youless-ls120-p-449 Youless] und einem Induktiv-Sensor am Gaszähler).&lt;br /&gt;
&lt;br /&gt;
Bei der Gelegenheit habe ich die [https://svn.fhem.de/#contributors Maintenance von zwei I2C-Modulen] übernommen und vermutlich auch bald vom Revolt-Modul für die Energiemessung.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Yoda gh|Yoda gh]] ([[Benutzer Diskussion:Yoda gh|Diskussion]]) 21:01, 29. Mai 2018 (CEST)&lt;/div&gt;</summary>
		<author><name>Yoda gh</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Somfy_via_SIGNALduino&amp;diff=26864</id>
		<title>Somfy via SIGNALduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Somfy_via_SIGNALduino&amp;diff=26864"/>
		<updated>2018-05-29T18:50:04Z</updated>

		<summary type="html">&lt;p&gt;Yoda gh: Link zum Pushstack-Artikel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&#039;&#039;&#039;Dieser Beitrag bezieht sich auf das SOMFY-RTS Protokoll.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere SOMFY Protokolle wurden in diesem Zusammenhang bisher nicht beschrieben bzw. getestet.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== SIGNALduino ==&lt;br /&gt;
&lt;br /&gt;
Der Aufbau und die Inbetriebnahme des SIGNALduino-Devices ist im entsprechenden Wikipedia-Artikel [[SIGNALduino]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Der SIGNALduino hat gegenüber anderen Lösungen (z.B. CUL, FHEMduino) den Vorteil, dass SOMFY Protokolle empfangen und gesendet werden können.&lt;br /&gt;
Alternative Hardware Lösungen (Stand Januar 2017) können entweder senden (z.B. CUL) oder empfangen (z.B. FHEMduino)&lt;br /&gt;
Weitergehende Informationen zur Variante mit &#039;&#039;&#039;Standard Transmitter und Receiver&#039;&#039;&#039; sind in der [[SIGNALduino]] Wiki dokumentiert.&lt;br /&gt;
Für das SOMFY-RTS System ist wichtig, dass die passende HW Variante gewählt wird:&lt;br /&gt;
&lt;br /&gt;
* SOMFY-RTS Systeme senden auf 433,42Mhz. SIGNALduino Aufbauten mit den billig Transmitter/Receivern (zum Beispiel XY-MV 5) sind fest auf 433,92Mhz eingestellt und nicht wirklich geeignet um SOMFY-RTS Systeme mit 433,42 Mhz zu steuern. Grundsätzlich kann die Funkverbindung funktionieren, als Ergebnis werden sich jedoch drastische Reichweitenprobleme ergeben (je nach Streuung der Bauteile).  Diese Hardware-Variante sollte für das SOMFY-RTS System &#039;&#039;&#039;nicht&#039;&#039;&#039; genutzt werden.&lt;br /&gt;
&lt;br /&gt;
* Eine SIGNALduino Hardware kann auch mit CC1101 Transceiver aufgebaut werden (wird von der Firmware erkannt und unterstützt). Der CC1101 ist bzgl. Sende- und Empfangsfrequenz programmierbar und kann also z.B. zwischen 433,92Mhz (beliebte Frequenz bei z.B. Funkthermometer) und anderen Frequenzen (z.B. 433,42Mhz bei SOMFY-RTS Anlagen) umgeschaltet werden. Deshalb ist diese Hardware die erste Wahl. Die Hardware selbst ist identisch zum [[Selbstbau_CUL#Schaltplan|NanoCUL]]. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Der NanoCUL sollte eine Version mit FTDI USB Chip sein (ist evt. minimal teurer).&#039;&#039;&#039; NanoCUL Varianten mit WCH-USB-Chip (CH340 o.ä.)haben den Nachteil, dass diese keine eindeutige ID haben, d.h. diese können später nicht eindeutig einem FHEM Device zugeordnet werden, wenn mehr wie ein derartiger NanoCUL am FHEM System betrieben wird.&lt;br /&gt;
&lt;br /&gt;
Lässt sich der SIGNALduino mit verbautem CC1101 in FHEM nicht initialisieren, dann die MOSI Leitung von D11 (oder die CSn Leitung von D10, hier ist sich der Autor nicht mehr sicher bei welchen Pin das funktioniert hat, Feed Back ist willkommen) des Adruino Nano abtrennen (nicht den kompletten CC1101 entfernen, sonst wird der CC1101 nicht erkannt und der Befehl unten nicht akzeptiert). Danach sollte sich der SIGNALduino initialisieren lassen. Danach in FHEM beim SIGNALduino Device den Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;get sduino raw e&amp;lt;/pre&amp;gt;&lt;br /&gt;
eingeben und die MOSI Leitung wieder verbinden.&lt;br /&gt;
&lt;br /&gt;
Weitere Tipps und Tricks:&lt;br /&gt;
* {{Link2Forum|Topic=58396|Message=497921|LinkText=CC1101: Konfiguration und Statusinformationen}}&lt;br /&gt;
&lt;br /&gt;
== SOMFY via SIGNALduino ==&lt;br /&gt;
&lt;br /&gt;
===  Definition des SOMFY Devices sowie setzten der Attribute: Kein Autocreate! ===&lt;br /&gt;
&lt;br /&gt;
Ein via &amp;quot;Autocreate&amp;quot; in FHEM angelegtes SOMFY-RTS Device kann nicht zum Steuern von SOMFY-RTS Aktuatoren (Empfänger, z.B. Rolläden etc.) verwendet werden, da SOMFY-RTS einen &amp;quot;Rolling Code&amp;quot; verwendet, welcher dafür sorgt, dass wirklich nur die angelernte Fernbedienung über den 6 stelligen Hex Code (s.u.) mit dem Aktuator kommuniziert.&lt;br /&gt;
Weitere Fernbedienung bzw. FHEM Devices &#039;&#039;&#039;müssen&#039;&#039;&#039; beim Aktuator neu angelernt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorgehensweise zur Definition eines SOMFY Devices in FHEM incl. &amp;quot;Pairing&amp;quot; mit dem Aktuator:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;define RolloOben SOMFY 12345F&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;Definition des Rolladen in FHEM. der 6 stellige Hex Code darf nicht von einem anderen Sender (z.B. SOMFY Sender) belegt sein, ist darüber hinaus beliebig wählbar und spezifisch für einen Rolladen&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;attr RolloOben IODev sduino&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;Hiermit wird die Sendehardware zugewiesen (diese sendet/empfängt die SOMFY Kommandos, s.o.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===  Anlernen des Rollos an FHEM ===&lt;br /&gt;
Als nächser Schritt muss der &amp;quot;FHEM Sender&amp;quot; and den Rolladen angelernt werden.&lt;br /&gt;
Dazu wird ein SOMFY Sender (z.B. Handsender) benötigt. Auf der Rückseite des Senders befindet sich in der Regel eine kleine Vertiefung (Loch) mit einem Taster, der z.B. über ein Streichholzende für 0,5 sec gedrückt werden muss.&lt;br /&gt;
Danach fährt der Rolladen zur Quittierung kurz nach unten und wieder zurück (ruckt).&lt;br /&gt;
Unmittelbar danach ist in FHEM das Kommando&lt;br /&gt;
&amp;lt;pre&amp;gt;set RolloOben prog&amp;lt;/pre&amp;gt;&lt;br /&gt;
abzusetzen.&lt;br /&gt;
Zur Quittierung &amp;quot;ruckt&amp;quot; der Rolladen wieder.&lt;br /&gt;
Danach kann der Rolladen über die Kommandos &amp;quot;up&amp;quot; &amp;quot;stop&amp;quot; &amp;quot;down&amp;quot; aus der FHEM Oberfläche gesteuert werden&lt;br /&gt;
&lt;br /&gt;
===  Weitere Attribute ===&lt;br /&gt;
&amp;lt;pre&amp;gt;attr RolloOben devStateIcon open:fts_shutter_10 10:fts_shutter_10 20:fts_shutter_20 30:fts_shutter_30 40:fts_shutter_40 50:fts_shutter_50 60:fts_shutter_60 70:fts_shutter_70 80:fts_shutter_80 90:fts_shutter_90 down:fts_shutter_100 closed:fts_shutter_100&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;mit diesem Attribut werden die ICONs zugewiesen, die in FHEM während des Öffnen/Schliessen des Rolladens angezeigt werden&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;attr RolloOben drive-down-time-to-100 23&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;Die Zeit [sec] die der Rolladen benötigt um von ganz oben bis zum &amp;quot;aufliegen&amp;quot; benötigt (die Lamellen sind noch offen; diese Zeit muss ausgemessen werden)&#039;&#039; &lt;br /&gt;
&amp;lt;pre&amp;gt;attr RolloOben drive-down-time-to-close 27&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;Die Zeit [sec] die der Rolladen benötigt um von ganz oben bis zum völligen Schliessen benötigt (diese Zeit muss ausgemessen werden)&#039;&#039; &lt;br /&gt;
&amp;lt;pre&amp;gt;attr RolloOben drive-up-time-to-100 4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;Die Zeit [sec] die der Rolladen benötigt um vom komplett geschlossenen Zustand bis zu geöffneten Lamellen benötigt (der Rollo liegt noch auf; diese Zeit muss ausgemessen werden)&#039;&#039; &lt;br /&gt;
&amp;lt;pre&amp;gt;attr RolloOben drive-up-time-to-open 28&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;Die Zeit [sec] die der Rolladen benötigt um vom komplett geschlossenen Zustand bis zum vollständig geöffneten Zustand benötigt (diese Zeit muss ausgemessen werden)&#039;&#039; &lt;br /&gt;
&amp;lt;pre&amp;gt;attr RolloOben eventMap on:down stop:stop off:up&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;mapping der zu sendenden Befehle auf logische Kommandos&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;attr RolloOben room Rolladen&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;Die Rolladensteuerung wird im FHEM Raum &amp;quot;Rolladen&amp;quot; erscheinen&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;attr RolloOben webCmd down:stop:up&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;Diese Kommandos werden in der Web Oberfläche angeboten&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Im FHEM Raum &amp;quot;Rolladen&amp;quot; sieht das ganze dann wie folgt aus:&lt;br /&gt;
[[Datei:SomfyRolladen_01.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Foren Links ==&lt;br /&gt;
* {{Link2Forum|Topic=58396|LinkText=SIGNALDuino Empfänger Firm- und Hardware}}&lt;br /&gt;
* {{Link2Forum|Topic=58397|LinkText=Signalduino Entwicklung Version 3.3.1 }}&lt;br /&gt;
&lt;br /&gt;
== Allgemein ==&lt;br /&gt;
* [http://www.nemcon.nl/blog2/wiring Beschreibung zu diversen Empfängern und Verbesserung der Empfangsleistung]&lt;br /&gt;
* [[SIGNALduino in die Arduino Entwicklungsumgebung einbinden]]&lt;br /&gt;
* [https://pushstack.wordpress.com/somfy-rts-protocol/ Hintergründe zum Somfy RTS Protokoll (englisch)]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;br /&gt;
[[Kategorie:Arduino]]&lt;br /&gt;
[[Kategorie:Rollladensteuerung]]&lt;br /&gt;
[[Kategorie:433MHz]]&lt;/div&gt;</summary>
		<author><name>Yoda gh</name></author>
	</entry>
</feed>