<?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=TeeVau</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=TeeVau"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/TeeVau"/>
	<updated>2026-04-12T14:34:17Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:TeeVau&amp;diff=12256</id>
		<title>Benutzer Diskussion:TeeVau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:TeeVau&amp;diff=12256"/>
		<updated>2015-09-24T06:05:25Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== panStamp als Fhem-WikiNews ==&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
wenn Du mit Deinen umfangreichen Überarbeitungen an den panStamp-Seiten fertig bist, halte ich das für &amp;quot;würdig&amp;quot; als FhemWiki-News auf der Hauptseite aufgenommen zu werden. Da derzeit noch einige Baustellen/Todo-Hinweise auf den Seiten sind, habe ich das bisher noch nicht gemacht. Was meinst Du?&lt;br /&gt;
Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 07:12, 28. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Wegen mir gerne. Du hast richtig erkannt, dass noch an diversen Artikeln etwas zu tun ist. Mal mehr, mal weniger. Ich habe es auf jeden Fall im Auge und möchte das auch zu ende bringen. Ich denke allerdings, dass ich noch so 3-4 Wochen dafür brauche. Ich melde mich einfach bei dir, wenn ich fertig bin und das in die FhemWiki-News mit eingebunden werden kann. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:39, 28. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
::Das kannst Du gerne eigenständig in die FhemWiki-News aufnehmen, wenn Du fertig bist. Ich will nur nicht, dass solche grundlegenden Erweiterungen des Wikis, die deutlich über eine neue Wiki-Seite hinausgehen, keine Beachtung finden. Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 13:37, 28. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:::Erledigt :-) --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 08:05, 24. Sep. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt; oder &amp;lt;nowiki&amp;gt; oder &amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
&lt;br /&gt;
Du hast auf der Seite [[PID20 - Der PID-Regler‎]] gerade einige &amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt; Markierungen in &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; geändert. Das verbessert zwar die Darstellung ... aber nur, weil die alten Tags etwas ungeschickt gesetzt waren (Leerzeilen/Zeilenumbrüche zwischen den Tags). Ich würde vorschlagen:&lt;br /&gt;
* für &amp;quot;Einzeiler&amp;quot;: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;code&amp;gt;der Code/Text&amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (ab Spalte 1); das wird dann gleich eingerückt und zudem am Zeilenende umgebrochen, erzeugt also keine Endloszeilen, bei denen man gezwungen wird, nach rechts zu scrollen; der Code-Text kann trotzdem kopiert werden und enthält dabei keine Zeilenumbrüche&lt;br /&gt;
* für längere Codepassagen das &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;Text text text... &amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* und &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; nur, wenn der eingeschlossene Bereich Tags / Zeichen enthält, die nicht von der Wiki-Software formatiert werden sollen (wie die Wiki-Tags in den obigen Beispielen)&lt;br /&gt;
--[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 12:31, 30. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Hi Peter,&lt;br /&gt;
:habe mich schon gefragt was der unterschied zwischen dem pre und dem code Tag ist. So wirklich was verständliches habe ich nicht gefunden. Ich selber fand den pre Tag etwas &amp;quot;schöner&amp;quot; :zum formatieren, da dieser automatisch Zeilenumbrüche vor und nach dem Tag-Bereich einfügt. Ich habe die code und pre-Tags nun in dem Artikel so angepasst wie von dir vorgeschlagen. :Grüße und ein schönes Wochenende, Tobias. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:14, 31. Jul. 2015 (CEST)&lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
:: Hab den Artikel noch mal leicht überarbeitet - ich denke, so ist es kompakter aber trotzdem übersichtlicher. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 11:02, 31. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== panShield / Weiterleitung ==&lt;br /&gt;
&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
&lt;br /&gt;
Du hast die Seite panShield als Weiterleitung auf panStick angelegt ... und panShield wird nur von panStick aus verlinkt. Ich halte diese Weiterleitungsseite nicht nur für unnötig, sondern in diesem Fall sogar für verwirrend. Hilfreich wäre sie nur, wenn jemand im Wiki die Seite panShield direkt aufrufen würde (was ich für eher unwahrscheinlich halte). Benutzt man die - in diesem Fall wahrscheinlichere Suche - findet man ohnehin den &amp;quot;zuständigen&amp;quot; Abschnitt auf der panStick Seite. Könntest Du das mit dem &amp;quot;panShield&amp;quot; bitte nochmal überdenken? --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 09:20, 6. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Hi Peter, du hast Recht. Ich habe den Artikel angelegt, weil ich dachte, panShield kommt viel häufiger in den unterschiedlichen Artikeln vor. Da dachte ich, ein Link zu einem Artikel wäre sinnvoll. Gerade habe ich festgestellt, dass panShield als Wort lediglich nur 3 mal im ganzen Wiki vorkommt. Da war ich etwas zu voreilig ;-). Ich werd den Artikel löschen bzw. als Löschkandidat vorschlagen. Oder du killst ihn direkt ;-). --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:34, 6. Aug. 2015 (CEST)&lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Kein Problem - erledigt (Weiterleitung ist gelöscht) --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 07:06, 7. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Schreibweise von panS* in den Artikeln ==&lt;br /&gt;
&lt;br /&gt;
TeeVau, nachdem Du gerade dabei bist, den panS*-Artikeln den letzten Schliff zu geben, würdest Du dabei auch gleich die Schreibweise vereinheitlichen? Es gibt immer noch reichlich Stellen, an denen &#039;&#039;&#039;P&#039;&#039;&#039;anS... (also mit großem Anfangsbuchstaben) steht - und wenn ich das richtig verstanden habe, ist das &amp;quot;p&amp;quot; wohl eigentlich als Kleinbuchstabe gedacht. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 09:23, 6. Aug. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Erledigt, zumindest bei allem was auch in der Kategorie panStamp ist. Ich kenne leider keine komfortable Möglichkeit das Wiki nach &#039;&#039;&#039;P&#039;&#039;&#039;anStamp abzusuchen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:34, 6. Aug. 2015 (CEST)&lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Ui, da warst Du aber fleißig ... das hätte auch noch Zeit gehabt; wollte das nur anregen, nachdem Du die Seiten gerade ohnehin verstärkt angefasst hast. Einer derartigen Suche am nächsten käme wohl google mit Suchbegriff &#039;&#039;&amp;quot;PanStamp&amp;quot; site:www.fhemwiki.de&#039;&#039;, was aber Groß-/Kleinschreibung wieder nicht berücksichtigt. Bleibt dann wohl nur auf einer einzelnen Seite mit der Browser-Suchfunktion. Da kann man zumindest beim Firefox angeben, dass case-sensitiv gesucht werden soll. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 07:06, 7. Aug. 2015 (CEST)&lt;br /&gt;
::&amp;lt;hr /&amp;gt;&lt;br /&gt;
:::Erledigt :-) --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 08:04, 24. Sep. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:TeeVau&amp;diff=12255</id>
		<title>Benutzer Diskussion:TeeVau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:TeeVau&amp;diff=12255"/>
		<updated>2015-09-24T06:04:45Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: /* Schreibweise von panS* in den Artikeln */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== panStamp als Fhem-WikiNews ==&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
wenn Du mit Deinen umfangreichen Überarbeitungen an den panStamp-Seiten fertig bist, halte ich das für &amp;quot;würdig&amp;quot; als FhemWiki-News auf der Hauptseite aufgenommen zu werden. Da derzeit noch einige Baustellen/Todo-Hinweise auf den Seiten sind, habe ich das bisher noch nicht gemacht. Was meinst Du?&lt;br /&gt;
Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 07:12, 28. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Wegen mir gerne. Du hast richtig erkannt, dass noch an diversen Artikeln etwas zu tun ist. Mal mehr, mal weniger. Ich habe es auf jeden Fall im Auge und möchte das auch zu ende bringen. Ich denke allerdings, dass ich noch so 3-4 Wochen dafür brauche. Ich melde mich einfach bei dir, wenn ich fertig bin und das in die FhemWiki-News mit eingebunden werden kann. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:39, 28. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
::Das kannst Du gerne eigenständig in die FhemWiki-News aufnehmen, wenn Du fertig bist. Ich will nur nicht, dass solche grundlegenden Erweiterungen des Wikis, die deutlich über eine neue Wiki-Seite hinausgehen, keine Beachtung finden. Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 13:37, 28. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt; oder &amp;lt;nowiki&amp;gt; oder &amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
&lt;br /&gt;
Du hast auf der Seite [[PID20 - Der PID-Regler‎]] gerade einige &amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt; Markierungen in &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; geändert. Das verbessert zwar die Darstellung ... aber nur, weil die alten Tags etwas ungeschickt gesetzt waren (Leerzeilen/Zeilenumbrüche zwischen den Tags). Ich würde vorschlagen:&lt;br /&gt;
* für &amp;quot;Einzeiler&amp;quot;: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;code&amp;gt;der Code/Text&amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (ab Spalte 1); das wird dann gleich eingerückt und zudem am Zeilenende umgebrochen, erzeugt also keine Endloszeilen, bei denen man gezwungen wird, nach rechts zu scrollen; der Code-Text kann trotzdem kopiert werden und enthält dabei keine Zeilenumbrüche&lt;br /&gt;
* für längere Codepassagen das &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;Text text text... &amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* und &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; nur, wenn der eingeschlossene Bereich Tags / Zeichen enthält, die nicht von der Wiki-Software formatiert werden sollen (wie die Wiki-Tags in den obigen Beispielen)&lt;br /&gt;
--[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 12:31, 30. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Hi Peter,&lt;br /&gt;
:habe mich schon gefragt was der unterschied zwischen dem pre und dem code Tag ist. So wirklich was verständliches habe ich nicht gefunden. Ich selber fand den pre Tag etwas &amp;quot;schöner&amp;quot; :zum formatieren, da dieser automatisch Zeilenumbrüche vor und nach dem Tag-Bereich einfügt. Ich habe die code und pre-Tags nun in dem Artikel so angepasst wie von dir vorgeschlagen. :Grüße und ein schönes Wochenende, Tobias. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:14, 31. Jul. 2015 (CEST)&lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
:: Hab den Artikel noch mal leicht überarbeitet - ich denke, so ist es kompakter aber trotzdem übersichtlicher. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 11:02, 31. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== panShield / Weiterleitung ==&lt;br /&gt;
&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
&lt;br /&gt;
Du hast die Seite panShield als Weiterleitung auf panStick angelegt ... und panShield wird nur von panStick aus verlinkt. Ich halte diese Weiterleitungsseite nicht nur für unnötig, sondern in diesem Fall sogar für verwirrend. Hilfreich wäre sie nur, wenn jemand im Wiki die Seite panShield direkt aufrufen würde (was ich für eher unwahrscheinlich halte). Benutzt man die - in diesem Fall wahrscheinlichere Suche - findet man ohnehin den &amp;quot;zuständigen&amp;quot; Abschnitt auf der panStick Seite. Könntest Du das mit dem &amp;quot;panShield&amp;quot; bitte nochmal überdenken? --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 09:20, 6. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Hi Peter, du hast Recht. Ich habe den Artikel angelegt, weil ich dachte, panShield kommt viel häufiger in den unterschiedlichen Artikeln vor. Da dachte ich, ein Link zu einem Artikel wäre sinnvoll. Gerade habe ich festgestellt, dass panShield als Wort lediglich nur 3 mal im ganzen Wiki vorkommt. Da war ich etwas zu voreilig ;-). Ich werd den Artikel löschen bzw. als Löschkandidat vorschlagen. Oder du killst ihn direkt ;-). --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:34, 6. Aug. 2015 (CEST)&lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Kein Problem - erledigt (Weiterleitung ist gelöscht) --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 07:06, 7. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Schreibweise von panS* in den Artikeln ==&lt;br /&gt;
&lt;br /&gt;
TeeVau, nachdem Du gerade dabei bist, den panS*-Artikeln den letzten Schliff zu geben, würdest Du dabei auch gleich die Schreibweise vereinheitlichen? Es gibt immer noch reichlich Stellen, an denen &#039;&#039;&#039;P&#039;&#039;&#039;anS... (also mit großem Anfangsbuchstaben) steht - und wenn ich das richtig verstanden habe, ist das &amp;quot;p&amp;quot; wohl eigentlich als Kleinbuchstabe gedacht. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 09:23, 6. Aug. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
:Erledigt, zumindest bei allem was auch in der Kategorie panStamp ist. Ich kenne leider keine komfortable Möglichkeit das Wiki nach &#039;&#039;&#039;P&#039;&#039;&#039;anStamp abzusuchen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:34, 6. Aug. 2015 (CEST)&lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
::Ui, da warst Du aber fleißig ... das hätte auch noch Zeit gehabt; wollte das nur anregen, nachdem Du die Seiten gerade ohnehin verstärkt angefasst hast. Einer derartigen Suche am nächsten käme wohl google mit Suchbegriff &#039;&#039;&amp;quot;PanStamp&amp;quot; site:www.fhemwiki.de&#039;&#039;, was aber Groß-/Kleinschreibung wieder nicht berücksichtigt. Bleibt dann wohl nur auf einer einzelnen Seite mit der Browser-Suchfunktion. Da kann man zumindest beim Firefox angeben, dass case-sensitiv gesucht werden soll. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 07:06, 7. Aug. 2015 (CEST)&lt;br /&gt;
::&amp;lt;hr /&amp;gt;&lt;br /&gt;
:::Erledigt :-) --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 08:04, 24. Sep. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Bew%C3%A4sserungssteuerung&amp;diff=12254</id>
		<title>Bewässerungssteuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Bew%C3%A4sserungssteuerung&amp;diff=12254"/>
		<updated>2015-09-24T06:01:10Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: panStamp Schreibweise angepasst und Links zu panStamp Artikel aktualisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Kontrollinstanz der Bewässerungssteuerung&lt;br /&gt;
|ModType=contrib&lt;br /&gt;
|ModFTopic=22142&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=97_SprinkleControl.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Spezialisiertes Modul zur Bewässerungssteuerung&lt;br /&gt;
|ModType=contrib&lt;br /&gt;
|ModFTopic=22142&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=98_Sprinkle.pm&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Seite beschreibt, wie man intelligent seine Bewässerung steuern kann wenn man Bodenfeuchtesensoren installiert hat.&lt;br /&gt;
Weiterhin kann man eine maximale Obergrenze von parallelen Bewässerungen angeben wenn man z.B. von einem Brunnen nur einen begrenzten Mengendurchfluss hat oder das Netzteil nicht alle Ventile gleichzeitig schalten kann.&lt;br /&gt;
&lt;br /&gt;
__INHALTSVERZEICHNIS__&lt;br /&gt;
&lt;br /&gt;
Es wird von folgenden Komponenten ausgegangen:&lt;br /&gt;
&lt;br /&gt;
* Gardena oder Hunter Magnetventile, angesprochen über einen FS20-Aktor (zb. S8M), Homematic-Aktor oder 1wireSchaltaktoren&lt;br /&gt;
* Bodenfeuchtesensoren, zb. FS20 BF oder andere (z. B. an einem [[AVR-NET-IO#Analoge_Eing.C3.A4nge_in_Fhem_einbinden|AVR-NET-IO]] oder funkangebunden per  [[SWAP#Beispiel:_panStamp_soilmoisture_Sketch_in_FHEM_einbinden|Panstamp]])&lt;br /&gt;
&lt;br /&gt;
==allgemeine Vorbereitungen==&lt;br /&gt;
Wird ein 2- oder 8fach 1wire Schaltaktor verwendet, so muss jedes Ventil per [[ReadingsProxy|readingsProxy]] maskiert werden.&lt;br /&gt;
Bei jedem FS20 Aktor muss in Fhem das Attribut &#039;&#039;follow-on-for-timer&#039;&#039; auf 1 gesetzt werden. Andernfalls bitte die Prozedur [[On-for-timer_zur%C3%BCcksetzen|&amp;quot;on-for-timer-offcheck&amp;quot;]] anlegen. &lt;br /&gt;
&lt;br /&gt;
===Anlegen der Bodenfeuchtesensoren===&lt;br /&gt;
Für eines FS20 Sensor: FS20BF&lt;br /&gt;
 define Bodenfeuchtesensor FS20 34f2 00&lt;br /&gt;
 attr Bodenfeuchtesensor room Bewässerung&lt;br /&gt;
&lt;br /&gt;
Für eine 1wire Version: einen analogen Sensor (zb. Vegetronix), angeschlossen an einen 4fach A/D Converter DS2450&lt;br /&gt;
 define Bodenfeuchte OWAD DS2450 03140C000000 60&lt;br /&gt;
 attr Bodenfeuchte model DS2450&lt;br /&gt;
 attr Bodenfeuchte room Bewässerung&lt;br /&gt;
 attr Bodenfeuchte userReadings VWC_A {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * ReadingsVal(&amp;quot;$name&amp;quot;,&amp;quot;A&amp;quot;,0)**4 + 7.10835 * ReadingsVal(&amp;quot;$name&amp;quot;,&amp;quot;A&amp;quot;,0)**2 - 0.569557) / (ReadingsVal(&amp;quot;$name&amp;quot;,&amp;quot;A&amp;quot;,0)**2 + 1))}&lt;br /&gt;
&lt;br /&gt;
Kabelgebundene Vegetronix Bodenfeuchtesensoren können per [[SWAP#Beispiel:_panStamp_soilmoisture_Sketch_in_FHEM_einbinden|Panstamp-Anbindung]] auch funkbasiert arbeiten.&lt;br /&gt;
&lt;br /&gt;
===Bewässerungsventile definieren===&lt;br /&gt;
Falls für jedes Magnetventil ein eigenes Device existiert. Zb. bei Nutzung von eines SM8/SM4/FS20ST/HM-LC-SW4-DR&lt;br /&gt;
 define Bewaesserung_Ventil1 FS20 2305 51&lt;br /&gt;
 attr Bewaesserung_Ventil1 model fs20st&lt;br /&gt;
 attr Bewaesserung_Ventil1 room Bewässerung&lt;br /&gt;
&lt;br /&gt;
Wird die Bewässerungssteuerung mittels 1Wire betrieben, so verfügt 1 Device (i.d.R DS2406/DS2408/DS1413) über 2 oder 8 Ports. &lt;br /&gt;
An folgendem Device hängen die physischen Bewässerungsventile. Dieses muss natürlich an die eigenen Gegebenheiten angepasst werden :)&lt;br /&gt;
 define Schalter_rechts OWSWITCH DS2408 xxxxxxxxxxxxxx&lt;br /&gt;
 attr Schalter_rechts IODev 1wireBus&lt;br /&gt;
 attr Schalter_rechts model DS2408&lt;br /&gt;
 attr Schalter_rechts room Bewässerung&lt;br /&gt;
 attr Schalter_rechts stateS .&lt;br /&gt;
&lt;br /&gt;
Zusätzlich das readingsProxy-Device für den Port A&lt;br /&gt;
 define Bewaesserung_Ventil1 readingsProxy Schalter_rechts:A&lt;br /&gt;
 attr Bewaesserung_Ventil1 room Bewässerung&lt;br /&gt;
 attr Bewaesserung_Ventil1 setFn {&amp;quot;output A $CMD&amp;quot;}&lt;br /&gt;
 attr Bewaesserung_Ventil1 setList on off&lt;br /&gt;
 attr Bewaesserung_Ventil1 valueFn {($VALUE eq &amp;quot;ON.&amp;quot;)?&amp;quot;OFF&amp;quot;:&amp;quot;ON&amp;quot;}&lt;br /&gt;
 attr Bewaesserung_Ventil1 webCmd on:off&lt;br /&gt;
&lt;br /&gt;
===Module bereitstellen===&lt;br /&gt;
Als nächstes sind die benötigten Module aus dem Fhem SVN contrib Verzeichnis in das Fhem-Verzeichnis zu kopieren:&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/97_SprinkleControl.pm 97_SprinkleControl.pm]&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/98_Sprinkle.pm 98_Sprinkle.pm]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Definitionen==&lt;br /&gt;
Pro Bewässerung bzw Bewässerungsventil ist eine SprinkleInstanz zu definieren:&lt;br /&gt;
&lt;br /&gt;
 define MySprinkle1 Sprinkle Bewaesserung_Ventil1 Bodenfeuchte:VWC_A +00:05:00;&lt;br /&gt;
 attr MySprinkle1 Sprinkle_OnTimeSec 30;&lt;br /&gt;
 attr MySprinkle1 Sprinkle_SensorThreshold 55;&lt;br /&gt;
 attr MySprinkle1 room Bewässerung;&lt;br /&gt;
 attr MySprinkle1 webCmd Auto:An:Aus:Toggle:Disable;&lt;br /&gt;
 &lt;br /&gt;
Die Timerangabe kann periodisch z.B. +00:05:00 alle 5min (wie im Beispiel oben) oder einmalig am Tag z.b. 04:00:00 für 4:00 Uhr eingestellt werden. Nach Ablauf des Timers wird überprüft, ob die Bodenfeuchte im Reading &#039;&#039;VWC_A&#039;&#039; kleiner als der Wert im Attribut &#039;&#039;Sprinkle_SensorThreshold&#039;&#039; ist und gegebenenfalls ein &#039;&#039;on-for-timer&#039;&#039; Befehl auf den Aktor &#039;&#039;Bewaesserung_Ventil1&#039;&#039; abgesetzt. Die Dauer der Beregnung bzw. des on-for-timers richtet sich nach dem Attributwert &#039;&#039;Sprinkle_OnTimeSec&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Es sind folgende &#039;&#039;Set&#039;&#039; Befehle möglich:&lt;br /&gt;
* &#039;&#039;&#039;Disable&#039;&#039;&#039; &amp;lt;br&amp;gt; Deaktivierung. Erst ein erneuter Disable-Befehl aktiviert die Instanz wieder. Während einer Deaktivierung werden keine anderen Befehle akzeptiert&lt;br /&gt;
* &#039;&#039;&#039;An&#039;&#039;&#039; &amp;lt;br&amp;gt; Manuelles Starten eines Bewäserungsprozesses&lt;br /&gt;
* &#039;&#039;&#039;Aus&#039;&#039;&#039; &amp;lt;br&amp;gt; Manuelles Stoppen eines Bewäserungsprozesses&lt;br /&gt;
* &#039;&#039;&#039;Toggle&#039;&#039;&#039; &amp;lt;br&amp;gt; Je nach aktuellem Zustand wird ein Bewässerungsprozess gestartet oder gestoppt&lt;br /&gt;
* &#039;&#039;&#039;Auto&#039;&#039;&#039; &amp;lt;br&amp;gt; Der Auto-Modus ist nur verfügbar, wenn ein Bodenfeuchtesensor angegeben ist sowie die Attribute &#039;&#039;Sprinkle_OnTimeSec&#039;&#039; und &#039;&#039;Sprinkle_SensorThreshold&#039;&#039; angegeben sind.  &amp;lt;br&amp;gt;&lt;br /&gt;
Der erste Klick auf &#039;&#039;Auto&#039;&#039; versetzt die Instanz in den AutoModus. Jeder folgende Klick startet einen Bewässerungsprozess im AutoModus - Je nach Zustand der Bodenfeuchte wird nun bewässert oder nicht.&lt;br /&gt;
&lt;br /&gt;
==weitere Spezialfälle==&lt;br /&gt;
Ist die Anzahl der parallelen Bewässerungsprozesse zu begrenzen, so ist eine übergeordnete Kontrollinstanz zu definieren. Beispielsweise durch einen maximalen Wasserdurchfluss den ein Brunnen bedienen kann.&lt;br /&gt;
&lt;br /&gt;
 define MySprinkleControl SprinkleControl;&lt;br /&gt;
 attr MySprinkleControl SprinkleControl_MaxParallel 1;&lt;br /&gt;
 attr MySprinkleControl room Bewässerung;&lt;br /&gt;
&lt;br /&gt;
Hiermit wird maximal ein Bewässerungsprozess zugelassen. Alle folgenden werden in eine Queue eingereiht und nacheinander abgearbeitet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die vorher definierte SprinkleInstanz ist nun noch mit der Kontrollinstanz zu verbinden.&lt;br /&gt;
&lt;br /&gt;
 attr MySprinkle1 SprinkleControl SprinkleControl;&lt;br /&gt;
&lt;br /&gt;
Mit einer einzelnen SprinkleInstanz kann man die Auswirkung noch nicht erkennen, dazu müssen weitere SprinkleInstanzen für weitere Bewässerungsventile angelegt werden&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Forumsthread zum Modul: {{Link2Forum|Topic=22142}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Code Snippets]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Arduino&amp;diff=12253</id>
		<title>Arduino</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Arduino&amp;diff=12253"/>
		<updated>2015-09-24T05:56:40Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: panStamp Schreibweise angepasst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Arduino zur Anbindung eigener Sensoren und Aktoren an FHEM nutzen ==&lt;br /&gt;
&lt;br /&gt;
=== mit eigenem Arduino-Sketch ===&lt;br /&gt;
Mit [http://www.arduino.cc/ Arduino]-Boards lassen sich einfach und recht preisgünstig (ab ca. 15€ Stand Juli 2012) eigene Sensoren/Aktoren an FHEM anbinden.&lt;br /&gt;
&lt;br /&gt;
Das Board lässt sich recht einfach programmieren um Sensorwerte zu verarbeiten und diese z.B. per Ethernet an FHEM zu senden oder abfragen zu lassen. Über zahlreiche Schnittstellen (Standard: RS232, TWI/1-Wire, SPI, PWM, analog/digital-I/O, I2C) mit den entsprechenden Software-Libraries kann auf viele gängige Sensoren zugegriffen werden. Über Erweiterungsboards (&amp;quot;Shields&amp;quot;) können die Anschlussmöglichkeiten ausgebaut werden. Zudem ist der Anschluss von Parallel-/Seriell-/I2C-LCD-Displays und SD-Karten möglich.&lt;br /&gt;
&lt;br /&gt;
Die Boards und eine Vielfalt an Sensoren/Aktoren sind über Online-Auktionen bzw. -Anbieter einfach zu bekommen. Kommunikation mit dem Arduino ist z.B. per Netzwerk/Ethernet, WLAN, 433/868MHz/2,4GHz-RF, Bluetooth, 1-Wire etc. möglich.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino mit Ethernet&#039;&#039;&#039;&lt;br /&gt;
Eine einfache und sehr kompakte Lösung ist der Arduino Nano mit Ethernet-Shield. Der Nano hat je 8 nutzbare Analog- und Digital Ein-/Ausgänge über die sich beispielsweise Temperatursensoren, Relais etc. ansprechen lassen.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sind zur Vorbereitung zu tun:&lt;br /&gt;
&lt;br /&gt;
# Arduino (bzw. Klon) mit Ethernet-Shield (z.B. mit ENC28J60 Chip) und gewünschten Sensoren kaufen&lt;br /&gt;
# Arduino-IDE von der [http://arduino.cc/en/Main/Software Arduino-Homepage] (für Windows, Mac OS X und Linux vorhanden) herunterladen und installieren&lt;br /&gt;
# Falls ENC28J60-Ethernet-Shield verwendet wird: Ethernet-Library für ENC28J60 herunterladen und in Arduino-IDE-Installation hineinkopieren (z.B. von hier: [http://trollmaker.com/article11/arduino-1-0-with-enc28j60-ethernet-shield-v1-1/], alternativ nach arduino+ENC28J60+library googeln). Eine Arduino-library für den ENC28J60, die richtige (persistente) TCP/IP-Verbindungen unterstützt und von der API her vollständig kompatibel zur original-Ethernetlibrary ist findet sich hier: [https://github.com/ntruchsess/arduino_uip UIPEthernet (arduino_uip)]&lt;br /&gt;
# Folgenden Beispiel-Sketch mit Arduino-IDE öffnen Arduino_FHEM.ino [https://sites.google.com/site/fhemarduino/file-cabinet/Arduino_FHEM.ino?attredirects=0&amp;amp;amp;d=1]&lt;br /&gt;
# IP Adresse im Sketch passend zum eigenen Netzwerk ändern (steht im Sketch auf 192.168.2.44)&lt;br /&gt;
# Sketch auf Arduino laden&lt;br /&gt;
# Arduino mit 5V-USB-Netzteil ans Netzwerk anschliessen&lt;br /&gt;
# Verbindung testen indem in einem Webbrowser &amp;amp;lt;arduino_ip_adresse&amp;amp;gt;/?cmd=set_D5_ON [http://192.168.2.44/?cmd=set_D5_ON] eingegeben wird (natürlich hier die im Sketch verwendete IP-Adresse angeben). Falls an Ausgang D5 eine Leuchtdiode o.ä. angeschlossen wurde sollte diese nun leuchten.&lt;br /&gt;
# Wenn das geklappt hat sollte sich der Ausgang auch aus der FHEM-Kommandozeile ausschalten lassen mit { GetHttpFile(&#039;192.168.2.44:80&#039;, &#039;/?cmd=set_D5_OFF&#039;);; } -&amp;amp;gt; natürlich wieder die im Sketch verwendete IP-Adresse verwenden.&lt;br /&gt;
# Letzter Schritt wäre eine Definition in die fhem.cfg einzutragen um auch entsprechende Buttons in der FHEM-Oberfläche zu haben, ggf. wieder die verwendete IP-Adresse statt arduino:80 verwenden (für die Buttons wurde das FS20-Modul verwendet):&lt;br /&gt;
&lt;br /&gt;
Auszug aus der &#039;&#039;fhem.cfg&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;define arduinobutton FS20 55d1 00&lt;br /&gt;
attr arduinobutton room Arduino&lt;br /&gt;
define FileLog_arduinobutton FileLog /otp/fhem/log/arduinobuttonon-%Y.log arduinobutton&lt;br /&gt;
attr FileLog_arduinobutton room Arduino&lt;br /&gt;
define arduinoswitchon notify FS20_55d100:on { GetHttpFile(&amp;amp;quot;arduino:80&amp;amp;quot;,&amp;amp;quot;/?cmd=set_D5_ON&amp;amp;quot;)}&lt;br /&gt;
attr arduinoswitchon room Arduino&lt;br /&gt;
define arduinoswitchoff notify FS20_55d100:off { GetHttpFile(&amp;amp;quot;arduino:80&amp;amp;quot;,&amp;amp;quot;/?cmd=set_D5_OFF&amp;amp;quot;)}&lt;br /&gt;
attr arduinoswitchoff room Arduino&lt;br /&gt;
define weblink_arduinobutton weblink fileplot FileLog_arduinobutton:fs20:CURRENT&lt;br /&gt;
attr weblink_arduinobutton label &amp;amp;quot;arduinobutton Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;amp;quot;&lt;br /&gt;
attr weblink_arduinobutton room Arduino&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Abfragen von Sensorwerten sind natürlich auch möglich, z.B. mit folgender Definition (Analog- und Digital-PINs werden alle fünf Minuten abgefragt und in Plots visualisiert):&lt;br /&gt;
&lt;br /&gt;
Auszug aus der &#039;&#039;fhem.cfg&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;define arduinogetsensorvalues at +*00:05:00 {\ &lt;br /&gt;
 my $val = GetHttpFile(&#039;arduino:80&#039;, &#039;/?cmd=get_analog_values&#039;);;\ &lt;br /&gt;
 fhem(&amp;amp;quot;trigger arduinogetsensorvalues $val&amp;amp;quot;);;\ &lt;br /&gt;
}&lt;br /&gt;
attr arduinogetsensorvalues room Arduino&lt;br /&gt;
define FileLog_arduinogetsensorvalues FileLog /opt/fhem/log/arduinogetsensorvalues-%Y.log arduinogetsensorvalues:.*&lt;br /&gt;
attr FileLog_arduinogetsensorvalues room Arduino&lt;br /&gt;
define weblink_getsensorvalues weblink fileplot FileLog_arduinogetsensorvalues:arduino:CURRENT&lt;br /&gt;
attr weblink_getsensorvalues label &amp;amp;quot;Arduino Sensorvalues Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;amp;quot;&lt;br /&gt;
attr weblink_getsensorvalues room Arduino&lt;br /&gt;
define arduinogetsensorvaluesD at +*00:05:35 {\ &lt;br /&gt;
 my $val = GetHttpFile(&#039;arduino:80&#039;, &#039;/?cmd=get_digital_values&#039;);;\ &lt;br /&gt;
 fhem(&amp;amp;quot;trigger arduinogetsensorvaluesD $val&amp;amp;quot;);;\ &lt;br /&gt;
}&lt;br /&gt;
attr arduinogetsensorvaluesD room Arduino&lt;br /&gt;
define FileLog_arduinogetsensorvaluesD FileLog /opt/fhem/log/arduinogetsensorvaluesD-%Y.log arduinogetsensorvaluesD:.*&lt;br /&gt;
attr FileLog_arduinogetsensorvaluesD room Arduino&lt;br /&gt;
define weblink_getsensorvaluesD weblink fileplot FileLog_arduinogetsensorvaluesD:arduino:CURRENT&lt;br /&gt;
attr weblink_getsensorvaluesD label &amp;amp;quot;Arduino Digital Values Min $data{min1}, Max $data{max1}, Last $data{currval1}&amp;amp;quot;&lt;br /&gt;
attr weblink_getsensorvaluesD room Arduino&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: Kommunikation via RF + Bluetooth + WLAN&lt;br /&gt;
&lt;br /&gt;
Fragen zum Thema bitte in das FHEM-Forum [http://forum.fhem.de/] posten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Neben der hier beschriebenen Methode Arduinos an FHEM anzubinden gibt es noch die möglichkeit [[panStamp]]s über das [[SWAP]] Protokoll per RF an FHEM anzubinden. Eine Firmata über [[SWAP]] Implementierung ist gerade in Arbeit.&lt;br /&gt;
&lt;br /&gt;
=== mit vorgefertigem Firmata-Sketch ===&lt;br /&gt;
Zur Anbindung des Arduinos mit dem Firmata-Protocol und vorgefertigtem Sketch siehe: [[Arduino_Firmata]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Other_Components]]&lt;br /&gt;
[[Kategorie:Arduino]]&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:HOWTOS]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=HomeMatic_Asksin_Library&amp;diff=12252</id>
		<title>HomeMatic Asksin Library</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=HomeMatic_Asksin_Library&amp;diff=12252"/>
		<updated>2015-09-24T05:55:23Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: /* Hardware */ panStamp Schreibweise angepasst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Asksin Library für HomeMatic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;Bitte beachten: 1. Entwurf und noch ausbaubedürftig. Es fehlen noch einige Inhalte, Anmerkungen usw. usf.&amp;lt;/ins&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sinn bzw. Ziel ==&lt;br /&gt;
&lt;br /&gt;
Ziel ist es, eine Arduino-Library (lib) zu entwickeln mit der es möglich ist, eigene Hardware auf Basis eines Arduino in ein HomeMatic-Netzwerk einzubinden. Es soll mit dieser lib auch möglich sein, vorhandene HM-Aktoren mit eigener Hardware zu peeren, so dass eine Interaktion zwischen den Geräten auch ohne laufendem Fhem-Server möglich ist.&lt;br /&gt;
&lt;br /&gt;
Später soll sie &amp;lt;ins&amp;gt;vielleicht&amp;lt;/ins&amp;gt; auch die Grundlage sein um vorhandene HomeMatic-Hardware neu zu programmieren.&lt;br /&gt;
&lt;br /&gt;
Stand 12. November 2013 wird ein HomeMatic-Dimmer abgebildet. Das wird aber nicht der einzige [http://forum.fhem.de/index.php/topic,14140.msg106875.html#msg106875 Einsatzzweck] bleiben.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
=== Arduino ===&lt;br /&gt;
&lt;br /&gt;
Da es sich um eine Arduino-Library handelt, müssen Sie sich für deren Nutzung eine entsprechende [http://arduino.cc/de/Guide/Environment Entwicklungsumgebung] einrichten. Diese gibt es für [http://arduino.cc/en/Main/Software Linux, OS X und Windows].&lt;br /&gt;
&lt;br /&gt;
=== Library ===&lt;br /&gt;
&lt;br /&gt;
Die Library ist seit dem 16. November 2013 in der jeweils aktuellsten Fassung im [http://forum.fhem.de/index.php/topic,14140.msg88923.html#msg88923 ersten Threadbeitrag] zu finden. Die Verwendung der Library unterliegt der [http://creativecommons.org/licenses/by-nc-sa/3.0/de/ CC-BY-NC-SA-Lizenz].&lt;br /&gt;
&lt;br /&gt;
Die Library besteht aus 4 Dateien:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;sketch_aug05a.ino&#039;&#039; ist der Userbereich. Hier kann man die gerätespezifischen Funktionen programmieren.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;register.h&#039;&#039; ist der Config-Bereich. Im oberen Teil sind die Variablen für Seriennummer usw. Im unteren Teil kommen die Registerdefinitionen rein. Also die Config für List0, List1 usw.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;asksin.h&#039;&#039; (die Kopfzeilen des eigentlichen Programms) und &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;asksin.cpp&#039;&#039;, das ist der HM-Kommunikationsbereich. Jegliches HM-Handling soll hier statt finden und keinen Benutzereingriff benötigen.&lt;br /&gt;
&lt;br /&gt;
Für die &#039;&#039;register.h&#039;&#039; gibt es ein Config-Tool in Perl (noch nicht verfügbar). Die Gerätedefinition wird in diesem Tool vorgenommen, der Output in die &#039;&#039;register.h&#039;&#039; kopiert und gut. &lt;br /&gt;
&lt;br /&gt;
Da der eigentliche Sketch den Namen &#039;&#039;sketch_aug05a.ino&#039;&#039; trägt, das Verzeichnis, in dem die &#039;&#039;gezippten&#039;&#039; Dateien entpackt werden, aber nach dem Schema &#039;&#039;TTMMJJ-sketch_aug05a&#039;&#039; (TT = Tag, MM = Monat und JJ = Jahr der Veröffentlichung der Lib) benannt ist, sollten Sie den Verzeichnisnamen auf &#039;&#039;sketch_aug05a&#039;&#039; umbenennen. Ansonsten können Sie den Sketch nach dem Öffnen der Arduino-IDE nicht öffnen. Der Name des Haupt-Sketches und des Verzeichnisses müssen also gleich sein.&lt;br /&gt;
&lt;br /&gt;
Weiteres, auch zur Funktionsweise, siehe [http://forum.fhem.de/index.php/topic,14140.msg102672.html#msg102672 hier] und [http://forum.fhem.de/index.php/topic,14140.msg104644.html#msg104644 hier] (Forenbeiträge).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel der Ausgaben:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Folgende Ausgabe erscheint nach dem Übertragen des Sketches (&amp;quot;arduinisch&amp;quot; für Programm) auf den Arduino im seriellen Terminal der Arduino-IDE:&lt;br /&gt;
&lt;br /&gt;
 Port open&lt;br /&gt;
 CC1101_init: 12..............................................3 - ready&lt;br /&gt;
 &lt;br /&gt;
 Available commands:&lt;br /&gt;
   p                - start pairing with master&lt;br /&gt;
   b[0] b[n] s      - send a string, b[0] is length (50 bytes max)&lt;br /&gt;
 &lt;br /&gt;
   i[0]. i[1]. e    - show eeprom content, i[0]. start address, i[1]. length&lt;br /&gt;
   i[0]. b[1] f     - write content to eeprom, i[0]. address, i[1] byte&lt;br /&gt;
   c                - clear eeprom complete, write 0 from start to end&lt;br /&gt;
 &lt;br /&gt;
   t                - gives an overview of the device configuration&lt;br /&gt;
 &lt;br /&gt;
   $nn for HEX input (e.g. $AB,$AC ); b[] = byte, i[]. = integer&lt;br /&gt;
 &lt;br /&gt;
 Serial: PS00000001, Model ID: 00 57 , HMID: 2F B7 4A&lt;br /&gt;
 Paired: F1 47 12&lt;br /&gt;
 &lt;br /&gt;
 FreeMem: 1232 byte&#039;s&lt;br /&gt;
&lt;br /&gt;
Und so sieht das ganze auf Ihrem Bildschirm aus: [[Datei:2013-11-12 - Asksin-Screenshot - CutUSM1200x802_85P.jpeg|300px|thumb|center|Ansicht der Arduino IDE und des Seriellen-Ausgabefensters mit den Ausgaben der Asksin Library]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Um in der seriellen Konsole (Aufruf per Klick auf das Lupensymbol rechts oben im Fenster der IDE) die Ausgaben zu sehen, müssen Sie noch die Baud-Rate rechts unten im Fenster von 9.600 auf 57.600 ändern (dies ist die im Asksin-Sketch eingestellte Datenübertragungsrate). Bei einer verkehrten Baud-Rate erscheinen maximal irgendwelche Sonderzeichen.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
Als Ersatz für die HomeMatic Sensoren und Aktoren kommen panStamps [http://www.panstamp.com/ (Hersteller Webseite] / [[panStamp|Wiki Artikel)]] oder [http://arduino.cc/de/Main/ArduinoBoardProMini Arduino Pro Mini] (mit 3,3 V, dazu gleich mehr) zusammen mit Transceivern aus dem Frequenzbereich 868 MHz zum Einsatz.&lt;br /&gt;
&lt;br /&gt;
=== panStamp ===&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* Transceiver on-board&lt;br /&gt;
* klein&lt;br /&gt;
* preiswert&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* nicht immer/überall verfügbar&lt;br /&gt;
&lt;br /&gt;
=== Arduino Pro Mini 3,3 V mit separatem Transceiver ===&lt;br /&gt;
&lt;br /&gt;
Bitte achten Sie darauf, nur Arduino Pro Minis mit 3,3 V zu verwenden, da die Transceiver-Module auch nur mit dieser Spannung arbeiten. Es gehen zwar notfalls auch Arduino-Boards mit 5 Volt, aber die Spannungsversorgung und Signal-/Datenleitungen der Transceiver-Module müssen dann per &amp;quot;Level-Converter&amp;quot; angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
* verfügbar&lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
* teurer als panStamps&lt;br /&gt;
* Volumen größer als panStamps&lt;br /&gt;
&lt;br /&gt;
==== Transceiver-Module ====&lt;br /&gt;
&lt;br /&gt;
Beim [[panStamp]] ist das Modul bereits on-board. Am preiswertesten fährt man bei den Arduinos mit den Bausätzen vom HomeMatic [[HM-LC-SW1-BA-PCB]] oder [[MAX#Fensterkontakte|vom MAX! Fensterkontakt]].&lt;br /&gt;
&lt;br /&gt;
Module aus dem FS20-Bereich funktionieren &amp;lt;ins&amp;gt;nicht&amp;lt;/ins&amp;gt;, da diese eine andere Signalmodulation haben. RFM12-Module können ebenfalls &amp;lt;ins&amp;gt;nicht&amp;lt;/ins&amp;gt; verwendet werden. Auch die &amp;quot;CC1101 w/ co-processor shield for Arduino&amp;quot; von Busware werden &amp;lt;ins&amp;gt;nicht&amp;lt;/ins&amp;gt; unterstützt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Tranceiver_CutGradScaleUSM800x600_85P_IMGP8367.JPG|200px|thumb|right|Transceiver - links kurz und breit, rechts lang und schmal]]&lt;br /&gt;
&lt;br /&gt;
===== HomeMatic HM-LC-Sw1-BA-PCB =====&lt;br /&gt;
&lt;br /&gt;
Kurzes, aber breites Transceiver-Modul. Die &#039;&#039;&#039;1&#039;&#039;&#039;-reihigen Löt-Kontakte haben allerdings einen Abstand von 2 mm, was bei der Anbringung von Pfostenleisten berücksichtigt werden muss (üblicher sind 2,54 mm).&lt;br /&gt;
&lt;br /&gt;
Siehe nebenstehendes Foto links.&lt;br /&gt;
&lt;br /&gt;
===== MAX! Fensterkontakt =====&lt;br /&gt;
&lt;br /&gt;
Längeres aber schmaleres Transceiver-Modul. Die &#039;&#039;&#039;2&#039;&#039;&#039;-reihigen Kontakte haben das üblichere Raster von 2,54 mm, jedoch sind schon einige Löterfahrungen erforderlich um das Modul sauber zu entlöten.&lt;br /&gt;
&lt;br /&gt;
Siehe nebenstehendes Foto rechts.&lt;br /&gt;
&lt;br /&gt;
===== CC1101 =====&lt;br /&gt;
&lt;br /&gt;
Die CC1101-Module sind regulär für den 433MHz Bereich gedacht, können aber auf 868 MHz umgestellt werden. Dies geht allerdings zu Lasten der Sende- und Empfangsleistung.&lt;br /&gt;
&lt;br /&gt;
==== Verbindung Transceiver mit Arduino Pro Mini ====&lt;br /&gt;
&lt;br /&gt;
Zur Zeit (November 2013) gelten folgende Pin-Belegungen:&lt;br /&gt;
&lt;br /&gt;
===== Breites Modul =====&lt;br /&gt;
&lt;br /&gt;
[[Datei:2013-11-13 - Fritzing-Screenshot - breit - CutUSM_800x600_85P.jpeg|200px|thumb|right|Verkabelung des breiten Transceiver-Moduls mit einem Arduino Pro Mini 3,3 V]]&lt;br /&gt;
&lt;br /&gt;
 TRX868 - Pins von links nach rechts (metallisches &lt;br /&gt;
 Abschirmblech - im Schema gelb - sichtbar, Antenne oben)&lt;br /&gt;
 &lt;br /&gt;
  1   2   3   4   5   6   7   8&lt;br /&gt;
          2 mm Raster (!)&lt;br /&gt;
 &lt;br /&gt;
          Arduino         &lt;br /&gt;
 TRX868   ProMini 3.3V!  Beschreibung     Farbe&lt;br /&gt;
 =================================================&lt;br /&gt;
 1           11          SPI Mosi         weiß&lt;br /&gt;
 2           13          SPI SCK          violett&lt;br /&gt;
 3           12          SPI MISO         grün&lt;br /&gt;
 4 (n.c.)    (3)         PWM -LED-GND     ---&lt;br /&gt;
 5            2          GDO0             gelb&lt;br /&gt;
 6           10          SPI chip select  blau&lt;br /&gt;
 7           GND         GND              schwarz&lt;br /&gt;
 8           VCC         3.3V             rot&lt;br /&gt;
 =================================================&lt;br /&gt;
 &lt;br /&gt;
TRX868-Pin 4 ist GDO2 und war anfangs mit Pin 3 des Arduino verbunden. GDO2 wird nicht mehr verwendet und Pin 3 (PWM) kann nun anderweitig genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Schmales Modul =====&lt;br /&gt;
&lt;br /&gt;
[[Datei:2013-11-13 - Fritzing-Screenshot - schmal -CutUSM_800x601_85P.jpeg|200px|thumb|right|Verkabelung des schmalen Transceiver-Moduls mit einem Arduino Pro Mini 3,3 V]]&lt;br /&gt;
&lt;br /&gt;
 TRX868 - Pins von links nach rechts (metallisches &lt;br /&gt;
 Abschirmblech - im Schema gelb - sichtbar, Antenne oben)&lt;br /&gt;
 &lt;br /&gt;
  1   3   5   7&lt;br /&gt;
  2   4   6   8&lt;br /&gt;
  2,54 mm Raster&lt;br /&gt;
 &lt;br /&gt;
          Arduino         &lt;br /&gt;
 TRX868   ProMini 3.3V!  Beschreibung     Farbe&lt;br /&gt;
 =================================================&lt;br /&gt;
 1         VCC           3.3V&lt;br /&gt;
 2         GND           GND&lt;br /&gt;
 3          11           SPI Mosi&lt;br /&gt;
 4          13           SPI SCK&lt;br /&gt;
 5          12           SPI MISO&lt;br /&gt;
 6 (n.c.)   (3)          -- frei --&lt;br /&gt;
 7           2           GD00 &lt;br /&gt;
 8          10           SPI chip select&lt;br /&gt;
 =================================================&lt;br /&gt;
&lt;br /&gt;
Der Arduino-Pin 3 (PWM) ist nun frei für die eigene Verwendung und kann z.B. als GND für eine zu dimmende LED eingesetzt werden&lt;br /&gt;
&lt;br /&gt;
&amp;lt; Schema folgt &amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,14140.0.html Foren-Thread]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.elv.de/max-fensterkontakt-arr.html MAX! Fensterkontakt Bausatz]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://www.elv.de/homematic-schaltaktor-fuer-batteriebetrieb-komplettbausatz.html HomeMatic Schaltaktor Bausatz]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HomeMatic_Components]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_Umweltsensor&amp;diff=12251</id>
		<title>PanStamp Umweltsensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_Umweltsensor&amp;diff=12251"/>
		<updated>2015-09-24T05:49:35Z</updated>

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

		<summary type="html">&lt;p&gt;TeeVau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{SEITENTITEL:panStamp RGBWW Board mit DMX und IR}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStampRGBv1.0.jpg&lt;br /&gt;
|Bildbeschreibung=RGBWW Board&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=12V&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Netzteil&lt;br /&gt;
|HWSize=&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#SWAP_0000002200000003 35_SWAP_0000002200000003.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
[[panStamp RGBWW Board mit DMX und IR]] unterstützt RGBW LEDs und lässt sich per Infrarot Fernbedienung, DMX Controller (z.B. als Unterputz Touchpanel) und FHEM bedienen.&lt;br /&gt;
Es ist eine Hard- und Softwareentwicklung auf Basis von panStamp Modulen und verwendet zusätzlich das FHEM Modul [[SWAP 0000002200000003]] als 3. Ebene&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang wird in diesem {{Link2Forum|Topic=12487|Message=81923|LinkText=Forenthread}} vorgestellt. Die Hardware für das Board wird {{Link2Forum|Topic=13890|LinkText=hier}} im FHEM Forum vorgestellt und ein Prototyp ist {{Link2Forum|Topic=12487|Message=85777|LinkText=hier}} zu sehen.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Die Projektseite zur Hardware findet sich [http://itse.homeip.net/projekte/12/6/ hier]. Eine Version 2 des Boards in geplant. &lt;br /&gt;
&lt;br /&gt;
=== Kompatibilität RBG-Board mit NRG-panStamps ===&lt;br /&gt;
Mit dem hier beschriebenen Sketch ist das Board nur mit den panStamp AVRs kompatibel. Die Pinbelegung zwischen AVR und NRG ist im Prinzip gleich bis auf Pin 23. Das ist bei dem NRG ein IO Pin und nicht GND wie beim AVR. Das wäre kein Problem wenn man entweder hardwareseitig den Kontakt unterbricht oder aber programmiertechnisch diesen Pin &#039;&#039;&#039;NIE&#039;&#039;&#039; als Ausgang definiert. Ansonsten gibt’s einen „kurzen“. Oder wenn er als Ausgang definiert ist darf er nur das GND Potential haben, also Low, 0. {{Link2Forum|Topic=13890 |Message=247069}}&lt;br /&gt;
&lt;br /&gt;
Da es derzeit (Stand 01.05.2015) aber keinen Sketch gibt, der auf den NRG lauffähig ist, wäre vorher noch diese Herausforderung zu lösen.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften des fade TBC ===&lt;br /&gt;
Der wichtige Punkt ist das das RGBWW-Board Farbübergänge autonom macht und FHEM nur den Trigger zum starten und Rückmeldung über den Status gibt. d.h. wie ruckelfrei das faden ist hängt nicht von äußeren Bedingungen wie Funklast, FHEM timing oder FHEM Auslastung ab. Im Board gibt es 15 &#039;&#039;&#039;Register&#039;&#039;&#039; die jeweils eine Farbe und eine Anzeigedauer enthalten. Diese werden (ein mal) von FHEM aus programmiert. Zum starten wird dann nur noch das Anfangs- und das Endregister gesendet und das Board überblendet zwischen allen Farben der Register zwischen Anfang und Ende in der eingestellten Zeit.&lt;br /&gt;
Die eigentliche Einschränkung ist das die aktuelle AVR Version der panstamps &#039;&#039;nur&#039;&#039; 8bit pwm kann (jedenfalls wenn es 3 oder mehr Kanäle sein sollen und die Hardware PWM genutzt wird). Wenn dir diese 256 Stufen pro Grundfarbe reichen ist es absolut Ruckelfrei. d.h. es gibt keinen zeitlichen Jitter. Ob dir die Anzahl der Helligkeitsstufen reicht hängt ein wenig von den LEDs selber ab und davon zwischen welchen Farben du konkret wechselst. Im dunklen Bereich wirst du vermutlich stufen sehen (also beim aufblenden von dunkel zu hell). wenn du zwischen zwei hellen Farben (z.b. von rot nach grün) blendest wirst du keine stufen sehen. {{Link2Forum|Topic=13890|Message=106644}}&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Eine Übersicht über die derzeit vorhandene Funktionalität des [[SWAP_0000002200000003|Fhem Moduls]] und panStamp Sketches (Stand 01.05.2015):&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=1205404}}&lt;br /&gt;
was geht:&lt;br /&gt;
* Bis zu vier LED Kanäle (je nach Kombination von ir und soft PWM)&lt;br /&gt;
* Ir senden&lt;br /&gt;
* Ir empfangen&lt;br /&gt;
* Messen ob die LED Versorgungsspannung an ist&lt;br /&gt;
* Helligkeit eines an Pin &amp;lt;code&amp;gt;A2&amp;lt;/code&amp;gt; angeschlossenen Helligkeitssensors (LDR)&lt;br /&gt;
* Konfiguration der DMX Basisadresse über das SWAP Register &amp;lt;code&amp;gt;0x12&amp;lt;/code&amp;gt;&lt;br /&gt;
* Optional soft on auf letzten RGBW Wert&lt;br /&gt;
* Alles was auch vorher schon ging: dimmen, faden, ir fernbedienungen anlernen, ...&lt;br /&gt;
&lt;br /&gt;
wichtig zu wissen:&lt;br /&gt;
* Wenn ir aktiv ist und kein soft PWM lässt sich der 4. Kanal nur ein und aus schalten&lt;br /&gt;
* Wenn ir aktiv ist muss soft PWM aktiv sein um den 4. Kanal auch zu dimmen&lt;br /&gt;
* Es wird nur ein zusätzlicher LED Kanal tatsächlich schon unterstützt. Der fünfte kommt noch&lt;br /&gt;
* Bei ir senden sind nur die Aufrufe für Sony und NEC tatsächlich eingebaut. Die Anderen sind aber einfach zu ergänzen&lt;br /&gt;
* Beim ir senden sind noch keine Wiederholungen eingebaut. Die müssen laut Protokoll aber eigentlich sein&lt;br /&gt;
&lt;br /&gt;
was noch kommt:&lt;br /&gt;
* besseres soft PWM&lt;br /&gt;
* mehr Konfiguration bezüglich default verhalten. ramp zeiten, delays, ...&lt;br /&gt;
* hsv Farbmodell um besser zu faden und vor allem um den Weißanteil automatisch auf die weißen LEDs zu legen&lt;br /&gt;
* die virtuellen channel &lt;br /&gt;
* fhem kompatibles ir senden&lt;br /&gt;
* sofortiges senden von Helligkeit und LED Spannung bei Änderung&lt;br /&gt;
* andere ir lib mit sehr viel besserer Geräte Unterstützung&lt;br /&gt;
&lt;br /&gt;
wie gehabt muss alles über &amp;lt;code&amp;gt;config.h&amp;lt;/code&amp;gt; mit Compilerschalter konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.5 / 1.6 einrichten ===&lt;br /&gt;
Mit der Arduino IDE 1.5.x gab es zusätzlich eine [http://www.panstamp.com/news/panstamp-is-now-fully-arduino-1-5-enabled/ grundlegende Umstellungen der Arduino SWAP Library], für die der derzeitige Sketch [r4716] angepasst werden muss. Der Sketch ist nur kompatibel zur alten SWAP Library, die unter [[panStamp_Programmierung#Arduino_IDE_1.0.x_vorbereiten|Arduino IDE 1.0 installiert]] werden muss (Stand 01.05.2015).&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.0 einrichten ===&lt;br /&gt;
Zum Flashen der panStamps wird die [[panStamp_Programmierung#Arduino_IDE_1.0.x_vorbereiten|Arduino IDE 1.0.x benötigt]]. Für den RGBWW-Sketch sind je nach gewünschtem Funktionsumfang noch folgende libs zu installieren:&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;Panstamp Lib&#039;&#039;&#039; läd man von hier [[http://old.panstamp.com/downloads]] (panstamp_library.zip, 129k v.25, May 31, 2013). Mit der neueren Lib v.4 läuft die Kompillierung des derzeitigen Sketches nicht durch. Die Dateien der Lib speichert man in einem entsprechend neuen  Unterordner, z.B. hierin &amp;lt;code&amp;gt;C:\Users\&amp;lt;username&amp;gt;\Documents\Arduino\libraries&amp;lt;/code&amp;gt;. Am Ende der ganzen Aktion sollten sich in diesem Unterordner 3 neue Unterordner befinden: &amp;lt;code&amp;gt;IRremote, DMXSerial und panstamp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;IR Remote Lib&#039;&#039;&#039; kopiert man von hier [[https://github.com/shirriff/Arduino-IRremote]] und speichert sie ebenfalls in einem passenden Unterordner von &amp;lt;code&amp;gt;libraries&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;DMX Lib&#039;&#039;&#039; kopiert man von hier [[http://www.mathertel.de/Arduino/DMXSerial.aspx]] und speichert sie ein weiteres Mal in einem weiteren Unterordner von &amp;lt;code&amp;gt;libraries&amp;lt;/code&amp;gt;. Weitere Informationen zur Verwendung von Arduino Librarys finden sich hier [[http://arduino.cc/en/Hacking/Libraries]]. Dass die Librarys richtig erkannt worden sind, lässt sich dadurch erkennen, dass unter dem Menüpunkt &amp;lt;code&amp;gt;Sketch/Library importieren&amp;lt;/code&amp;gt; die 3 weiteren Punkte unten unter &amp;lt;code&amp;gt;beigetragen&amp;lt;/code&amp;gt; auftauchen.&lt;br /&gt;
&lt;br /&gt;
Die Librarys sollten entweder mit dem entsprechenden Menüpunkt in die IDE integriert werden oder jeweils nach auspacken des zip files als als kompletten Ordner im Arduino &amp;lt;code&amp;gt;libraries&amp;lt;/code&amp;gt; Verzeichnis abgelegt werden (siehe [http://www.arduino.cc/en/Hacking/Libraries)]).&lt;br /&gt;
* Windows IDE only: Falls alles so bleibt, wie es heruntergeladen wurde, wechselt man wieder auf den Reiter Sketch und importiert über -&amp;gt;Sketch Library importieren die entsprechenden Libs für IRremote und DMX. Dadurch werden 3 neue Zeilen hinzugefügt.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
Für das kompilieren mit INO siehe [[panStamp_Programmierung#INO|hier]].&lt;br /&gt;
&lt;br /&gt;
=== Link zum Sketch ===&lt;br /&gt;
Die aktuelle Version des RGBWW-Driver Sketches findet sich auf [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge]. {{Link2Forum|Topic=13890 |Message=201391}}&lt;br /&gt;
Dieser muss in &amp;lt;code&amp;gt;Arduino\libraries\panstamp\examples\sketches&amp;lt;/code&amp;gt; entpackt und die &amp;lt;code&amp;gt;rbgdriver.ino&amp;lt;/code&amp;gt; gestartet werden. In der Arduino IDE sollte unter Tools-&amp;gt;Board &amp;quot;Arduino Pro or Pro Mini (3.3V, 8MHz) w/ Atmega328&amp;quot; eingestellt sein. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert kann man in der IDE auch direkt panStamp als Plattform auswählen.&lt;br /&gt;
&lt;br /&gt;
==== Kompillierte hex version ====&lt;br /&gt;
Eine kompiliertes HEX-File für drei (vier) Kanäle plus IR-Empfang und DMX ist hier im Forum zu finden: {{Link2Forum|Topic=13890 |Message=121619}}&lt;br /&gt;
&lt;br /&gt;
==== HEX-File ohne IR und DMX ====&lt;br /&gt;
Eine kompiliertes HEX-File ohne IR-Empfang und DMX ist hier im Forum zu finden: {{Link2Forum|Topic=13890 |Message=201955}}&lt;br /&gt;
&lt;br /&gt;
=== Compilerschalter ===&lt;br /&gt;
Welche Features der sketch bietet lässt sich im &amp;lt;code&amp;gt;config.h&amp;lt;/code&amp;gt; file durch ein- oder auskommentieren der &amp;lt;code&amp;gt;#define ENABLE_...&amp;lt;/code&amp;gt; Zeilen festlegen. {{Link2Forum|Topic=13890 |Message=173431}}&lt;br /&gt;
&lt;br /&gt;
==== #define ENABLE_DMX ====&lt;br /&gt;
 #define ENABLE_DMX&lt;br /&gt;
Ermöglicht die Nutzung eines DMX RGB Einstellers zur Steuerung der RGB LEDs&lt;br /&gt;
&lt;br /&gt;
Hierbei ist darauf zu achten, dass in der DMX-Lib in der Datei &amp;lt;code&amp;gt;DMXSerial.h&amp;lt;/code&amp;gt; die Zeile&lt;br /&gt;
 #define DmxModePin 2     // Arduino pin 2 for controlling the data direction&lt;br /&gt;
in &lt;br /&gt;
 #define DmxModePin 7     // Arduino pin 7 for controlling the data direction&lt;br /&gt;
abgeändert werden muss.&lt;br /&gt;
&lt;br /&gt;
==== #define HAS_SENSOR ====&lt;br /&gt;
  #define HAS_SENSOR&lt;br /&gt;
Ermöglicht die Nutzung eines DHT22 Sensors zur Auswertung von Temperatur und Luftfeuchtigkeit&lt;br /&gt;
Dafür sollten diese Konfigurationszeilen auskommentiert sein:&lt;br /&gt;
  USE_SOFT_PWM;&lt;br /&gt;
  ENABLE_IR_SEND;&lt;br /&gt;
  ENABLE_REPEATER;&lt;br /&gt;
&lt;br /&gt;
In der &amp;lt;code&amp;gt;IRremote.cpp&amp;lt;/code&amp;gt; Datei in der Irremote Library muss die Zeile&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void IRrecv::disableIRIn() &lt;br /&gt;
{&lt;br /&gt;
TIMER_DISABLE_INTR;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie die &amp;lt;code&amp;gt;Irremote.h&amp;lt;/code&amp;gt; Datei unter &amp;lt;code&amp;gt;Public:&amp;lt;/code&amp;gt; um die Zeile &lt;br /&gt;
 void disableIRIn();&lt;br /&gt;
erweitert werden.&lt;br /&gt;
&lt;br /&gt;
Der Daten-Pin des DHT22 Sensors muss hierfür an Pin &amp;lt;code&amp;gt;A2&amp;lt;/code&amp;gt; des panStamps angeschlossen werden.&lt;br /&gt;
Ein Beispiel für die Umrechnung der userReading für Spannung Temp etc. ist hier beschrieben: {{Link2Forum|Topic=12487 |Message=76489}}&lt;br /&gt;
&lt;br /&gt;
=== Zusammenhänge der Konfiguration ===&lt;br /&gt;
Die Zusammenhänge der Konfiguration sind hier beschrieben {{Link2Forum|Topic=13890 |Message=175181}}&lt;br /&gt;
&lt;br /&gt;
=== 4. und 5. LED Kanal TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg169741#msg169741&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg192132#msg192132&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201922#msg201922&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201936#msg201936&lt;br /&gt;
&lt;br /&gt;
=== Alternativer Fade per Patch ===&lt;br /&gt;
Als Alternative zum im Sketch und im Modul eingebauten Fade-Befehl ist hier ein Patch vorgestellt:&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133096}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133096.html#msg133096]&lt;br /&gt;
&lt;br /&gt;
Der Patch ist &#039;&#039;&#039;nicht eingecheckt&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IR Schnittstelle TBC ==&lt;br /&gt;
=== IR TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107061#msg107061&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107197#msg107197&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107415#msg107415&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122021.html#msg122021&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122077.html#msg122077&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg167351#msg167351&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175269#msg175269&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175285#msg175285&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg182582#msg182582&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg245597#msg245597&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg259267#msg259267&lt;br /&gt;
&lt;br /&gt;
=== IR-Belegung Panstamp RGB-Board TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163008.html#msg163008&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163153.html#msg163153&lt;br /&gt;
&lt;br /&gt;
=== Ircluster TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175331#msg175331&lt;br /&gt;
&lt;br /&gt;
=== Irgate TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175278#msg175278&lt;br /&gt;
&lt;br /&gt;
== DMX Schnittstelle ==&lt;br /&gt;
Da die DMX-Schrittstelle kein direktes Interface zu FHEM hat, sondern nur die direkte Kommunikation zwischen DMX-Kontroller und RGB-Board betrifft, ist die Schnittstelle nur bei der Konfiguration des Sketches und über die Dokumentation des Boards beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://itse.homeip.net/projekte/12/6/ Projektseite] für das RGB-Multi-Board.&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ rgbdriver sketch] auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Vorlage:FHEMWiki_News&amp;diff=12249</id>
		<title>Vorlage:FHEMWiki News</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Vorlage:FHEMWiki_News&amp;diff=12249"/>
		<updated>2015-09-24T05:45:31Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
{{News|24.09.2015|Umfangreiche Überarbeitung der Wiki Artikel über [[:Kategorie:panStamp|panStamp Hardware und Software]]}}&lt;br /&gt;
{{News|11.09.2015|Neues Modul [[AMAD]] (Steuern und Informationsanzeige von Android-Geräten) wird per update verteilt}}&lt;br /&gt;
{{News|15.06.2015|Neues Modul [[yowsup]] (WhatsApp Unterstützung) wird per update verteilt}}&lt;br /&gt;
{{News|03.04.2015|Neues Geräte-Modul [[JawboneUp]] wird per update verteilt}}&lt;br /&gt;
{{News|23.03.2015|Neue Geräte-Module [[Modbus]], [[ModbusAttr]] und [[Modbus#Writing_modules_for_devices_using_this_module_as_a_library|ModbusSET]] werden per update verteilt}}&lt;br /&gt;
{{News|10.02.2015|FHEMWiki ist auf einen neuen Server umgezogen und [[FHEMWiki:Interna#Offene_Probleme|Aktualisierung der MediaWiki-Software]]}}&lt;br /&gt;
{{News|31.01.2015|Neues Geräte-Modul [[Pushbullet]] wird per update verteilt}}&lt;br /&gt;
{{News|14.01.2015|Neues Hilfs-Modul [[CALVIEW]] wird per update verteilt}}&lt;br /&gt;
{{News|08.01.2015|Neues Geräte-Modul [[Buderus_Web_Gateway|km200]] zur Anbindung eines Buderus Web-Gateways wird per update verteilt}}&lt;br /&gt;
{{News|18.12.2014|Neues Geräte-Modul [[SONOS]] wird per update verteilt}}&lt;br /&gt;
{{News|15.12.2014|Überarbeitetes und erweitertes Geräte-Modul [[HTTPMOD]] wird per update verteilt}}&lt;br /&gt;
{{News|10.12.2014|Neues Geräte-Modul [[Vitotronic_200_(Viessmann_Heizungssteuerung)|VCONTROL]] zur Anbindung einer Viessmann Heizung wird per update verteilt}}&lt;br /&gt;
{{News|17.11.2014|Neues Hilfs-Modul [[logProxy]] wird per update verteilt}}&lt;br /&gt;
{{News|09.11.2014|Fhem Version 5.6 wurde veröffentlicht}}&lt;br /&gt;
{{News|27.10.2014|Neues Geräte-Modul [[harmony]] zur Fhem-Anbindung Logitech Harmony Hub basierter Fernbedienungen wird per update verteilt}}&lt;br /&gt;
{{News|25.10.2014|Neues Geräte-Modul [[KostalPiko|KOSTALPIKO]] wird per update verteilt}}&lt;br /&gt;
{{News|24.10.2014|Neues Hilfs-Modul [[HourCounter]] wird per update verteilt}}&lt;br /&gt;
{{News|06.09.2014|Neues Hilfs-Modul [[CustomReadings]] per update verteilt}}&lt;br /&gt;
{{News|19.08.2014|Neues Hilfs-Modul [[DOIF]] wird per update verteilt}}&lt;br /&gt;
{{News|19.08.2014|Der Befehl [[update]] wurde überarbeitet: {{Link2Forum|Topic=26311}} }}&lt;br /&gt;
{{News|13.08.2014|Zusätzliche Domäne fhem.org aktiviert: {{Link2Forum|Topic=26113}} }}&lt;br /&gt;
{{News|02.03.2014|[[UserTreffenSuedMaerz2014|FHEM User Treffen]] in Karlsruhe am 22. März 2014 }}&lt;br /&gt;
{{News|29.09.2013|Fhem Version 5.5 wurde veröffentlicht}}&lt;br /&gt;
{{News|11.05.2013|Die meisten Daten aus dem FhemWiki sind wieder hergestellt.}}&lt;br /&gt;
{{News|04.05.2013|FhemWiki wird neu aufgebaut.}}&lt;br /&gt;
{{News|04.05.2013|FhemWiki Update zu  [[Special:Version|MediaWiki 1.20.5]].}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Vorlage:FHEMWiki_News&amp;diff=12248</id>
		<title>Vorlage:FHEMWiki News</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Vorlage:FHEMWiki_News&amp;diff=12248"/>
		<updated>2015-09-24T05:45:11Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: panStamp Artikel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
{{News|11.09.2015|Umfangreiche Überarbeitung der Wiki Artikel über [[:Kategorie:panStamp|panStamp Hardware und Software]]}}&lt;br /&gt;
{{News|11.09.2015|Neues Modul [[AMAD]] (Steuern und Informationsanzeige von Android-Geräten) wird per update verteilt}}&lt;br /&gt;
{{News|15.06.2015|Neues Modul [[yowsup]] (WhatsApp Unterstützung) wird per update verteilt}}&lt;br /&gt;
{{News|03.04.2015|Neues Geräte-Modul [[JawboneUp]] wird per update verteilt}}&lt;br /&gt;
{{News|23.03.2015|Neue Geräte-Module [[Modbus]], [[ModbusAttr]] und [[Modbus#Writing_modules_for_devices_using_this_module_as_a_library|ModbusSET]] werden per update verteilt}}&lt;br /&gt;
{{News|10.02.2015|FHEMWiki ist auf einen neuen Server umgezogen und [[FHEMWiki:Interna#Offene_Probleme|Aktualisierung der MediaWiki-Software]]}}&lt;br /&gt;
{{News|31.01.2015|Neues Geräte-Modul [[Pushbullet]] wird per update verteilt}}&lt;br /&gt;
{{News|14.01.2015|Neues Hilfs-Modul [[CALVIEW]] wird per update verteilt}}&lt;br /&gt;
{{News|08.01.2015|Neues Geräte-Modul [[Buderus_Web_Gateway|km200]] zur Anbindung eines Buderus Web-Gateways wird per update verteilt}}&lt;br /&gt;
{{News|18.12.2014|Neues Geräte-Modul [[SONOS]] wird per update verteilt}}&lt;br /&gt;
{{News|15.12.2014|Überarbeitetes und erweitertes Geräte-Modul [[HTTPMOD]] wird per update verteilt}}&lt;br /&gt;
{{News|10.12.2014|Neues Geräte-Modul [[Vitotronic_200_(Viessmann_Heizungssteuerung)|VCONTROL]] zur Anbindung einer Viessmann Heizung wird per update verteilt}}&lt;br /&gt;
{{News|17.11.2014|Neues Hilfs-Modul [[logProxy]] wird per update verteilt}}&lt;br /&gt;
{{News|09.11.2014|Fhem Version 5.6 wurde veröffentlicht}}&lt;br /&gt;
{{News|27.10.2014|Neues Geräte-Modul [[harmony]] zur Fhem-Anbindung Logitech Harmony Hub basierter Fernbedienungen wird per update verteilt}}&lt;br /&gt;
{{News|25.10.2014|Neues Geräte-Modul [[KostalPiko|KOSTALPIKO]] wird per update verteilt}}&lt;br /&gt;
{{News|24.10.2014|Neues Hilfs-Modul [[HourCounter]] wird per update verteilt}}&lt;br /&gt;
{{News|06.09.2014|Neues Hilfs-Modul [[CustomReadings]] per update verteilt}}&lt;br /&gt;
{{News|19.08.2014|Neues Hilfs-Modul [[DOIF]] wird per update verteilt}}&lt;br /&gt;
{{News|19.08.2014|Der Befehl [[update]] wurde überarbeitet: {{Link2Forum|Topic=26311}} }}&lt;br /&gt;
{{News|13.08.2014|Zusätzliche Domäne fhem.org aktiviert: {{Link2Forum|Topic=26113}} }}&lt;br /&gt;
{{News|02.03.2014|[[UserTreffenSuedMaerz2014|FHEM User Treffen]] in Karlsruhe am 22. März 2014 }}&lt;br /&gt;
{{News|29.09.2013|Fhem Version 5.5 wurde veröffentlicht}}&lt;br /&gt;
{{News|11.05.2013|Die meisten Daten aus dem FhemWiki sind wieder hergestellt.}}&lt;br /&gt;
{{News|04.05.2013|FhemWiki wird neu aufgebaut.}}&lt;br /&gt;
{{News|04.05.2013|FhemWiki Update zu  [[Special:Version|MediaWiki 1.20.5]].}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:TeeVau&amp;diff=11918</id>
		<title>Benutzer Diskussion:TeeVau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:TeeVau&amp;diff=11918"/>
		<updated>2015-08-06T19:34:06Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== panStamp als Fhem-WikiNews ==&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
wenn Du mit Deinen umfangreichen Überarbeitungen an den panStamp-Seiten fertig bist, halte ich das für &amp;quot;würdig&amp;quot; als FhemWiki-News auf der Hauptseite aufgenommen zu werden. Da derzeit noch einige Baustellen/Todo-Hinweise auf den Seiten sind, habe ich das bisher noch nicht gemacht. Was meinst Du?&lt;br /&gt;
Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 07:12, 28. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Wegen mir gerne. Du hast richtig erkannt, dass noch an diversen Artikeln etwas zu tun ist. Mal mehr, mal weniger. Ich habe es auf jeden Fall im Auge und möchte das auch zu ende bringen. Ich denke allerdings, dass ich noch so 3-4 Wochen dafür brauche. Ich melde mich einfach bei dir, wenn ich fertig bin und das in die FhemWiki-News mit eingebunden werden kann. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:39, 28. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
::Das kannst Du gerne eigenständig in die FhemWiki-News aufnehmen, wenn Du fertig bist. Ich will nur nicht, dass solche grundlegenden Erweiterungen des Wikis, die deutlich über eine neue Wiki-Seite hinausgehen, keine Beachtung finden. Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 13:37, 28. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt; oder &amp;lt;nowiki&amp;gt; oder &amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
&lt;br /&gt;
Du hast auf der Seite [[PID20 - Der PID-Regler‎]] gerade einige &amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt; Markierungen in &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; geändert. Das verbessert zwar die Darstellung ... aber nur, weil die alten Tags etwas ungeschickt gesetzt waren (Leerzeilen/Zeilenumbrüche zwischen den Tags). Ich würde vorschlagen:&lt;br /&gt;
* für &amp;quot;Einzeiler&amp;quot;: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;code&amp;gt;der Code/Text&amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (ab Spalte 1); das wird dann gleich eingerückt und zudem am Zeilenende umgebrochen, erzeugt also keine Endloszeilen, bei denen man gezwungen wird, nach rechts zu scrollen; der Code-Text kann trotzdem kopiert werden und enthält dabei keine Zeilenumbrüche&lt;br /&gt;
* für längere Codepassagen das &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;Text text text... &amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* und &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; nur, wenn der eingeschlossene Bereich Tags / Zeichen enthält, die nicht von der Wiki-Software formatiert werden sollen (wie die Wiki-Tags in den obigen Beispielen)&lt;br /&gt;
--[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 12:31, 30. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Hi Peter,&lt;br /&gt;
:habe mich schon gefragt was der unterschied zwischen dem pre und dem code Tag ist. So wirklich was verständliches habe ich nicht gefunden. Ich selber fand den pre Tag etwas &amp;quot;schöner&amp;quot; :zum formatieren, da dieser automatisch Zeilenumbrüche vor und nach dem Tag-Bereich einfügt. Ich habe die code und pre-Tags nun in dem Artikel so angepasst wie von dir vorgeschlagen. :Grüße und ein schönes Wochenende, Tobias. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:14, 31. Jul. 2015 (CEST)&lt;br /&gt;
:&amp;lt;hr /&amp;gt;&lt;br /&gt;
:: Hab den Artikel noch mal leicht überarbeitet - ich denke, so ist es kompakter aber trotzdem übersichtlicher. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 11:02, 31. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== panShield / Weiterleitung ==&lt;br /&gt;
&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
&lt;br /&gt;
Du hast die Seite panShield als Weiterleitung auf panStick angelegt ... und panShield wird nur von panStick aus verlinkt. Ich halte diese Weiterleitungsseite nicht nur für unnötig, sondern in diesem Fall sogar für verwirrend. Hilfreich wäre sie nur, wenn jemand im Wiki die Seite panShield direkt aufrufen würde (was ich für eher unwahrscheinlich halte). Benutzt man die - in diesem Fall wahrscheinlichere Suche - findet man ohnehin den &amp;quot;zuständigen&amp;quot; Abschnitt auf der panStick Seite. Könntest Du das mit dem &amp;quot;panShield&amp;quot; bitte nochmal überdenken? --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 09:20, 6. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Hi Peter, du hast Recht. Ich habe den Artikel angelegt, weil ich dachte, panShield kommt viel häufiger in den unterschiedlichen Artikeln vor. Da dachte ich, ein Link zu einem Artikel wäre sinnvoll. Gerade habe ich festgestellt, dass panShield als Wort lediglich nur 3 mal im ganzen Wiki vorkommt. Da war ich etwas zu voreilig ;-). Ich werd den Artikel löschen bzw. als Löschkandidat vorschlagen. Oder du killst ihn direkt ;-). --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:34, 6. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Schreibweise von panS* in den Artikeln ==&lt;br /&gt;
&lt;br /&gt;
TeeVau, nachdem Du gerade dabei bist, den panS*-Artikeln den letzten Schliff zu geben, würdest Du dabei auch gleich die Schreibweise vereinheitlichen? Es gibt immer noch reichlich Stellen, an denen &#039;&#039;&#039;P&#039;&#039;&#039;anS... (also mit großem Anfangsbuchstaben) steht - und wenn ich das richtig verstanden habe, ist das &amp;quot;p&amp;quot; wohl eigentlich als Kleinbuchstabe gedacht. --[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 09:23, 6. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
:Erledigt, zumindest bei allem was auch in der Kategorie panStamp ist. Ich kenne leider keine komfortable Möglichkeit das Wiki nach &#039;&#039;&#039;P&#039;&#039;&#039;anStamp abzusuchen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:34, 6. Aug. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=11916</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=11916"/>
		<updated>2015-08-06T14:04:11Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Schreibweise auf panStamp (kleines p)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp Innenraumsensor}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery AA&lt;br /&gt;
|HWSize=48.5 x 100 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Umweltsensors&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zu panStamps und den grundlegenden Modulen um sie mit Fhem zu integrieren finden sich im zugehörigen [[panStamp|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bootloader flashen ===&lt;br /&gt;
Anschließend muss man nun die Fuses korrekt setzen (8Mhz Internal, 3.3v):&lt;br /&gt;
&lt;br /&gt;
 avrdude -p m2560 -c stk500v2 -P /dev/ttyUSB0 -U lfuse:w:0xE2:m -U hfuse:w:0xD4:m&lt;br /&gt;
&lt;br /&gt;
und final den Bootloader flashen &lt;br /&gt;
 wget https://github.com/lthiery/Sentinel/blob/master/sketches/hardware/mega-pro-3.3V/bootloaders/MegaPro3.3V-8MHz-57600.hex&lt;br /&gt;
 avrdude -p m2560 -c stk500v2 -P /dev/ttyUSB0 -U flash:w:MegaPro3.3V-8MHz-57600.hex&lt;br /&gt;
&lt;br /&gt;
Jetzt kann man mit einem normalen USB-ParallelProgrammer testen ob der Chip ansprechbar ist:&lt;br /&gt;
 avrdude -c arduino -b 57600 -P /dev/ttyUSB0 -p m2560 -v&lt;br /&gt;
&lt;br /&gt;
und anschließend den Sketch drauf flashen:&lt;br /&gt;
 avrdude -c arduino -b 57600 -P /dev/ttyUSB3 -p m2560 -U flash:w:MeinSketch.hex&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Bodenfeuchtesensor&amp;diff=11915</id>
		<title>Bodenfeuchtesensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Bodenfeuchtesensor&amp;diff=11915"/>
		<updated>2015-08-06T14:03:12Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Schreibweise auf panStamp (kleines p)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Beitrag beschreibt die Möglichkeiten der Einbindung von Bodenfeuchtesenoren in FHEM&lt;br /&gt;
&lt;br /&gt;
[[File:1wire_Bodenfeuchtesensor1.jpg|mini|hochkant=2.5|Plot-Beispiel]]&lt;br /&gt;
&lt;br /&gt;
== Nutzung von panStamps zur Funkbasierten Datenübertragung ==&lt;br /&gt;
Die folgende Platine ist eine Modifikation/Weiterentwicklung des von Panstamp.org vertriebenen BatterieBoards. Die Platine ist passend zum G203 Gainta Gehäuse. Der [[panStamp]] ist so angeordnet, dass die &amp;quot;5cm gerade Antenne&amp;quot; aus dem panStamp Shop exakt in das Gehäuse passt. Es sind Anschlüsse für bis zu 4 Bodenfeuchtesensoren vorhanden. Weiterhin ist ein OneWire Anschluss integriert an dem der Anschluss eines DS18B20 zur Bodentemperaturmessung vorgesehen ist. &lt;br /&gt;
&lt;br /&gt;
Optional kann der Sensor zusätzlich mit einem Solarpanel ausgestatt werden. Dieses lädt den eingesetzten Akku auf, sobald die SolarSpannung &amp;gt; AkkuSpannung ist.&lt;br /&gt;
Der Akku MUSS(!) mindestens die zehnfache Leistung des Solarpanels haben, ansonsten ist ein Laderegler notwendig. Bsp: Akku: 2700mA -&amp;gt; Solarpanel: 270mA&lt;br /&gt;
Ein für den Gehäusedeckel passendes Solarmodul ist zb. bei ebay unter folgendem Namen zu finden: &#039;&#039;&#039;3V 270mA 0,8W 110x55mm Solarmodul Solarzelle Polykristallin vergossen&#039;&#039;&#039;. Ist ein Solarpanel angeschlossen, so wird dessen Spannung dem panStamp zugeführt. Damit kann mit entsprechender Sketcherweiterung die solare Einstrahlung gemessen und nach FHEM zusammen mit der Batteriespannung übermittelt werden.&lt;br /&gt;
&lt;br /&gt;
In Planung ist, dieses mit Silikon sauber auf der Gehäuseoberseite zu verkleben und die benötigten Kabel zuvor durch 2 Löcher im Deckel zu ziehen.&lt;br /&gt;
&lt;br /&gt;
Achtung: Zur Zeit kann der Sketch nur 2 Bodenfeuchtesensoren bedienen. Die Weiterentwicklung ist in Arbeit.&lt;br /&gt;
Die Weiterentwicklung zum Umweltsensor ist hier [[panStamp_Umweltsensor]] beschrieben. Der dortige Sketch kann ebenfalls mittels Konfigurationsanpassung hier verwendet werden. Damit sind nun auch 1wire und der SolarWert in FHEM nutzbar.&lt;br /&gt;
&lt;br /&gt;
=== Schaltplan und Bauteilliste ===&lt;br /&gt;
[[Datei:Arduino_Bodenfeuchtesensor_v0.1_Schaltplan.jpg|200px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:Arduino_Bodenfeuchtesensor_v0.1_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]]&lt;br /&gt;
[[Datei:Arduino_Bodenfeuchtesensor_v0.1_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]]&lt;br /&gt;
[[Datei:Arduino_Bodenfeuchtesensor_v0.1_Aufbau_Oben.jpg|200px|thumb|right|Platine fertig aufgebaut Oberseite]]&lt;br /&gt;
[[Datei:Arduino_Bodenfeuchtesensor_v0.1_Aufbau_Unten.jpg|200px|thumb|right|Platine fertig aufgebaut Unterseite]]&lt;br /&gt;
&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  L1&lt;br /&gt;
|  LQH4C Speicherdrossel &lt;br /&gt;
|  Mouser.com&lt;br /&gt;
Reichelt &lt;br /&gt;
      &lt;br /&gt;
Reichelt&lt;br /&gt;
|  81-LQH43CN100K03L&lt;br /&gt;
L-1212FPS 10µ&lt;br /&gt;
&lt;br /&gt;
L-1616FPS 10µ&lt;br /&gt;
|- &lt;br /&gt;
|  C1, C2&lt;br /&gt;
|  Keramikkondensator Typ:X7R 10uf&lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser.com&lt;br /&gt;
|  X5R-G0805 10/16&lt;br /&gt;
810-CGJ4J1X7R0J106AC&lt;br /&gt;
|- &lt;br /&gt;
|  C3&lt;br /&gt;
|  Keramikkondensator Typ:X7R 1uF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser.com&lt;br /&gt;
|  X7R-G0805 1,0/16&lt;br /&gt;
810-C2012X5R1C105K-2&lt;br /&gt;
|- &lt;br /&gt;
|  C4&lt;br /&gt;
|  Keramikkondensator Typ:X7R 100nF&lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser.com&lt;br /&gt;
|  X7R-G0805 100N&lt;br /&gt;
581-0805YD104KAT2A&lt;br /&gt;
|- &lt;br /&gt;
|  IC1&lt;br /&gt;
|  MAX1724 Schaltregler 1.5uA IQ Step-Up DC/DC Converter&lt;br /&gt;
|  Mouser.com&lt;br /&gt;
tme.eu&lt;br /&gt;
&lt;br /&gt;
Ebay: G&amp;amp;C Supermarket&lt;br /&gt;
|  MAX1724EZK33T&lt;br /&gt;
MAX1724EZK33+T&lt;br /&gt;
&lt;br /&gt;
MAX1724&lt;br /&gt;
|- &lt;br /&gt;
|  K1,K2,K3,K4,K5&lt;br /&gt;
|  Anreihklemme 3,5mm 3Pol &lt;br /&gt;
|  IT-WNS&lt;br /&gt;
|  AK-3.5-3-GY&lt;br /&gt;
|- &lt;br /&gt;
|  R1&lt;br /&gt;
|  Widerstandsnetzwerk 100K &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 5-4 100K&lt;br /&gt;
|- &lt;br /&gt;
|  R2&lt;br /&gt;
|  SMD Widerstand 1k &lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser.com&lt;br /&gt;
|  SMD-0805 1K&lt;br /&gt;
71-CRCW0805-1.0K-E3&lt;br /&gt;
|- &lt;br /&gt;
|  R4&lt;br /&gt;
|  SMD Widerstand 4k7 &lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser.com&lt;br /&gt;
|  SMD-0805 4,70K&lt;br /&gt;
71-CRCW0805-4.7K-E3&lt;br /&gt;
|- &lt;br /&gt;
|  R5&lt;br /&gt;
|  Widerstandsnetzwerk 100K &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  SIL 7-6 100K&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x5Pol &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-005&lt;br /&gt;
|- &lt;br /&gt;
|  D1&lt;br /&gt;
|  LED 3mm LowCurrent 2mA&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  LED 3MM 2MA GN&lt;br /&gt;
|-&lt;br /&gt;
|  TASTER&lt;br /&gt;
|  Reset TASTER 9314 &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  TASTER 9314&lt;br /&gt;
|- &lt;br /&gt;
|  Batteriehalter&lt;br /&gt;
|  Batteriehalter 1x AA Mignon(Akku)&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  HALTER 1XAAP&lt;br /&gt;
|-&lt;br /&gt;
|  K7&lt;br /&gt;
|  Anschluss Solarpanel (VERT PCB 2Pin TIN FRICTION LOCK)&lt;br /&gt;
|  Reichelt&lt;br /&gt;
Mouser&lt;br /&gt;
|  zb. MPE 087-1-002&lt;br /&gt;
538-22-23-2021 &lt;br /&gt;
|-&lt;br /&gt;
|  D2&lt;br /&gt;
|  BAV70 Schaltdiode SMD, SOT-23, 250V, 1A&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BAV 70 SMD&lt;br /&gt;
|-&lt;br /&gt;
|  T1&lt;br /&gt;
|  BCW 61 Transistor SMD PNP SOT-23 32V 0,1A 0,25W&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BCW 61C SMD&lt;br /&gt;
|-&lt;br /&gt;
|  T2&lt;br /&gt;
|  BC847 Transistor SMD NPN SOT-23 45V 0,1A 0,25W&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BC 847B SMD&lt;br /&gt;
|-&lt;br /&gt;
|  T3&lt;br /&gt;
|  BSS138 Transistor SMD N-FET SOT-23 50V 0,22A&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BSS 138 SMD&lt;br /&gt;
|-&lt;br /&gt;
|  IC&lt;br /&gt;
|  panStamp AVR&lt;br /&gt;
|  panstamp.com&lt;br /&gt;
|  panStamp AVR&lt;br /&gt;
|-&lt;br /&gt;
|  --&lt;br /&gt;
|  Female Header 2,54 mm, 1X16, straight&lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 094-1-016&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Onewire Bodenfeuchtesensor ==&lt;br /&gt;
Das vorgestellte Platinenlayout dient dazu, an einem DS2450 ([[1-Wire]]) vier Vegetronix Bodenfeuchtesensoren anzuschließen. Die Platine passt in das ELV IP65 Gehäuse G203. Der Anschluss über fünf Kabeldurchführungen PG7 erfolgt von unten.&lt;br /&gt;
&lt;br /&gt;
=== Schaltplan und Bauteilliste ===&lt;br /&gt;
[[Datei:1wire_BF_Schaltplan.jpg|300px|thumb|right|Schaltplan]]&lt;br /&gt;
[[Datei:1wire_BF_Platine.jpg|300px|thumb|right|Platinenlayout]]&lt;br /&gt;
Bauteilliste:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Bauteil&lt;br /&gt;
!  Bezeichnung&lt;br /&gt;
!  Shop&lt;br /&gt;
!  BauteilNr&lt;br /&gt;
|- &lt;br /&gt;
|  D1,D2&lt;br /&gt;
|  Diode &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  BAT85&lt;br /&gt;
|- &lt;br /&gt;
|  C1&lt;br /&gt;
|  Elko 47uF &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  RAD 47/16&lt;br /&gt;
|- &lt;br /&gt;
|  C3&lt;br /&gt;
|  Keramikkondensator 100N, 10% &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  X7R-5 100N&lt;br /&gt;
|- &lt;br /&gt;
|  K1,K2,K3,K4&lt;br /&gt;
|  Anreihklemme 3Pol &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 055-03&lt;br /&gt;
|- &lt;br /&gt;
|  K5&lt;br /&gt;
|  Anreihklemme 4Pol &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  AKL 055-04&lt;br /&gt;
|- &lt;br /&gt;
|  J1&lt;br /&gt;
|  Stiftleiste 1x3Pol &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  MPE 087-1-003&lt;br /&gt;
|- &lt;br /&gt;
|  Jumper&lt;br /&gt;
|  Jumper &lt;br /&gt;
|  Reichelt&lt;br /&gt;
|  JUMPER 2,54 SW &lt;br /&gt;
|}&lt;br /&gt;
Das Platinenlayout (erstellt mit Target3001) ist im unten aufgeführten Forenthread angehängt.&lt;br /&gt;
&lt;br /&gt;
== Hinweise zum Betrieb mit FHEM ==&lt;br /&gt;
Die Einbindung der einzelnen Sensoren ist im [[1-Wire_Feuchtemessung]] Beitrag beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Weitere Hinweise ==&lt;br /&gt;
Keine.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ soilmoisture sketch]  auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:1-Wire]]&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
[[Kategorie:Feuchtesensoren]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SWAP_0000002200000003&amp;diff=11914</id>
		<title>SWAP 0000002200000003</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SWAP_0000002200000003&amp;diff=11914"/>
		<updated>2015-08-06T14:02:10Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Schreibweise auf panStamp (kleines p)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{SEITENTITEL:SWAP_0000002200000003}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Modul zur Ansteuerung des erweiterten RGB Board&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=SWAP_0000002200000003&lt;br /&gt;
|ModForumArea=&lt;br /&gt;
|ModFTopic=&lt;br /&gt;
|ModTechName=&lt;br /&gt;
|ModOwner=&lt;br /&gt;
}}&lt;br /&gt;
[[Datei:SWAP_0000002200000003.png|mini|rechts|hochkant=2.5|RGB LED Driver Board]]&lt;br /&gt;
Ein FHEM Modul für das modifizierte panStamp RGB LED Driver Board. &lt;br /&gt;
&lt;br /&gt;
Das Board unterstützt RGBW LEDs und lässt sich per Infrarot Fernbedienung, DMX Controller (z.&amp;amp;nbsp;B. als Unterputz Touchpanel) und FHEM bedienen.&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang wird in diesem [http://forum.fhem.de/index.php/topic,12487.msg81923.html#msg81923 Forenthread] vorgestellt. Die Hardware für das Board wird [http://forum.fhem.de/index.php/topic,13890.0.html  hier] im FHEM Forum vorgestellt und ein Prototyp ist [http://forum.fhem.de/index.php/topic,12487.msg85777.html#msg85777 hier] zu sehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== weitrere Screenshots =====&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:SWAP_0000002200000003-internal.png|InternalValues&lt;br /&gt;
File:SWAP_0000002200000003-readings.png|Readings&lt;br /&gt;
File:SWAP_0000002200000003-attributes.png|Attributes&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Um Modul xyz benutzen zu können, muss außerdem ...&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== set-Kommando ===&lt;br /&gt;
* on/off/on-for-timer/toggle/...&lt;br /&gt;
Wie bei jedem anderen Device&lt;br /&gt;
*rgb RRGGBB&lt;br /&gt;
Stellt die Farbe ein, ohne Fade.&lt;br /&gt;
*dimUp&lt;br /&gt;
*dimDown&lt;br /&gt;
Stufenweise heller oder dunkler schalten&lt;br /&gt;
*setIR # code&lt;br /&gt;
*learnIR #&lt;br /&gt;
*storeIR # code cmd&lt;br /&gt;
Hinterlegt eine von 16 möglichen Zuordnungen zwischen ir-Signal und FHEM-Kommando. # ist die Nummer der Registers, code ist das ir-Kommando, cmd ist das rgb driver kommando das ausgeführt werden soll&lt;br /&gt;
*getIR #&lt;br /&gt;
*getIR all&lt;br /&gt;
Fragt ein/alle hinterlegten ir Register ab. Anzeige mit &amp;lt;code&amp;gt;get &amp;lt;device&amp;gt; listIR&amp;lt;/code&amp;gt;&lt;br /&gt;
*setFade # RRGGBB time&lt;br /&gt;
Speichert eine definierte Farbe in bis zu 16 unterschiedlichen Registern. Durch diese Farben kann später automatisch überblendet werden.&lt;br /&gt;
*getFade #&lt;br /&gt;
*getFade all&lt;br /&gt;
Fragt alle hinterlegten fader Register ab. Anzeige mit &amp;lt;code&amp;gt;get &amp;lt;device&amp;gt; listFade&amp;lt;/code&amp;gt;&lt;br /&gt;
*startFade #1 #2&lt;br /&gt;
Beginnt in einer Endlosschleife zwischen die Register von &amp;lt;code&amp;gt;#1&amp;lt;/code&amp;gt; bis zu &amp;lt;code&amp;gt;#2&amp;lt;/code&amp;gt; durchzufaden.&lt;br /&gt;
&lt;br /&gt;
=== get-Kommando===&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
* defaultFadeTime&lt;br /&gt;
Es wird diese fadeTime verwendet, wenn bei dem set-Kommandor &amp;lt;code&amp;gt;fadeTo&amp;lt;/code&amp;gt; keine Zeit angegeben wird. Das macht es etwas einfacher das [[panStamp RGBWW Board mit DMX und IR]] in eine [[LightScene]] einzubinden und beim aktivieren einer Szene die Farben zu faden statt hart umzuschalten&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== original RGB-Sketch (von panstamp.com) ===&lt;br /&gt;
Der originale Sketch von der panStamp.com-Seite und das [[SWAP]] FHEM-Modul verstehen von Haus aus nur die &amp;lt;code&amp;gt;regSet&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;regGet&amp;lt;/code&amp;gt; Kommandos. Wenn man den [[Color#Colorpicker|colorpicker]] verwenden möchte, geht das nur per [[readingsProxy]].&lt;br /&gt;
Das einfachste ist es den [[panStamp_RGBWW_Board_mit_DMX_und_IR#Link_zum_Sketch|Sketch]] und das [[SWAP_0000002200000003|FHEM-Modul]] für das [[panStamp_RGBWW_Board_mit_DMX_und_IR|RGBWW-Board]] zu verwenden. Dann hat man neben dem colorpicker, einem farbigen State-Icon auch alle Möglichen FHEM-Kommandos wie on, off, on-for-timer, dimup, etc. zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Derzeit scheint es keinen Grund zu geben, den original Sketch zu verwenden. {{Link2Forum|Topic=12487 |Message=220463}}&lt;br /&gt;
&lt;br /&gt;
Falls jemand trotzdem den normalen RGB-Sketch von panStamp verwendet:&lt;br /&gt;
* Im SourceCode der Datei alle drei &amp;lt;code&amp;gt;0000002200000003&amp;lt;/code&amp;gt; durch &amp;lt;code&amp;gt;0000000100000003&amp;lt;/code&amp;gt; ersetzen.&lt;br /&gt;
Dann geht on/off/toggle/set rgb RRGGBB und auch der colorpicker, wenn das HUEDevice Modul auch geladen ist.&lt;br /&gt;
&lt;br /&gt;
=== ir Code anlernen ===&lt;br /&gt;
Um die ir Kommandos anzulernen am besten &amp;lt;code&amp;gt;learnIR #&amp;lt;/code&amp;gt; verwenden. Danach blinkt die LED auf dem Board schnell und es wird auf ein ir-Signal gewartet. Wenn das empfangen ist blinkt die LED langsamer und es wird auf ein Kommando von FHEM gewartet. Danach geht die LED auf dem Board aus und das eben gesendete FHEM-Kommando ist mit der Taste auf der ir Fernbedienung verknüpft.&lt;br /&gt;
&lt;br /&gt;
Empfangene ir-Kommandos, die nicht über eines der 16 Register eine lokale Aktion auslösen, werden über das Register &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; an FHEM übertragen und sind per notify ganz normal weiter verarbeitbar.&lt;br /&gt;
&lt;br /&gt;
=== Power On State konfigurieren ===&lt;br /&gt;
register 0E PowerOnState:&lt;br /&gt;
* 1. byte: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; -&amp;gt; aus, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; -&amp;gt; weiss, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;-&amp;gt; eine bestimmte Farbe wie im 3. Byte konfiguriert, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; -&amp;gt; autosave. &amp;lt;code&amp;gt;E0.1 Bit 5&amp;amp;6&amp;lt;/code&amp;gt; gibt jetzt in 10 Sekunden Schritten an nach welcher Zeit das autosave ins eeprom passieren soll. also 0, 10, 20 oder 30 Sekunden&lt;br /&gt;
* 2. byte: Helligkeit&lt;br /&gt;
* 3-5. byte &amp;lt;code&amp;gt;rrggbb&amp;lt;/code&amp;gt;&lt;br /&gt;
Man kann z.b. mit  &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; regSet 0E 0200FFFFFF&amp;lt;/code&amp;gt; einstellen das nach dem einschalten alle drei Farbkanäle voll aufgedreht werden.&lt;br /&gt;
oder mit &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; regSet 0E 0300000000&amp;lt;/code&amp;gt; autosave aktivieren. Dann wird jeweils nach 5 Minuten ohne Änderung die aktuelle Farbe ins eeprom gesichert. Die 5 Minuten könnte man eventuell noch verkürzen. Für autosave ist am Anfang der loop Schleife im Arduino Sketch das Schreiben ins eeprom zu aktivieren (das &amp;lt;code&amp;gt;#if 0&amp;lt;/code&amp;gt; in ein &amp;lt;code&amp;gt;#&#039;if 1&amp;lt;/code&amp;gt; ändern). An dieser Stelle kannst du auch die 5 Minuten anpassen.&lt;br /&gt;
Soft on funktioniert auch mit dem Wert vor dem letzten ausschalten. Hierzu ist das Register &amp;lt;code&amp;gt;0E.1&amp;lt;/code&amp;gt; wie folgt zu setzen: &amp;lt;code&amp;gt;0x02&amp;lt;/code&amp;gt; um nach hard power on den letzten rgb wert zu haben, &amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt; um nach soft on den letzten wert zu haben. Für beides zusammen &amp;lt;code&amp;gt;0x0a&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 5. LED Kanal zum schalten benutzen ===&lt;br /&gt;
Mit den 5. Kanal nur schalten ist kein Problem. Das SWAP FHEM-Modul kann schon so konfiguriert werden das es nur den Teil eines Registers als eigenständiges Device zur Verfügung stellt. Alternativ geht das auch mit dem [[readingsProxy]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Leinwand readingsProxy RGB_Leinwand 0B.4&lt;br /&gt;
attr Leinwand setFn {if($CMD eq &amp;quot;on&amp;quot;) {fhem(&amp;quot;set $DEVICE regSet 0B.4 FF&amp;quot;)} else {fhem(&amp;quot;set $DEVICE regSet 0B.4 00&amp;quot;)}}&lt;br /&gt;
attr Leinwand setList on off&lt;br /&gt;
attr Leinwand valueFn {return &amp;quot;off&amp;quot; if( $VALUE eq &amp;quot;00&amp;quot;); return &amp;quot;on&amp;quot;;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fade konfigurieren ===&lt;br /&gt;
Faderegister definieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set Device setFade 01 FF0000 60&lt;br /&gt;
set Device setFade 02 00FF00 60&lt;br /&gt;
set Device setFade 03 0000FF 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fade starten von Register 1 bis Register 3:&lt;br /&gt;
 set Device startFade 01 03&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11913</id>
		<title>SWAP</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11913"/>
		<updated>2015-08-06T14:01:31Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Schreibweise auf panStamp (kleines p)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:SWAP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Modul zur allgemeinen Ansteuerung sämtlicher panStamp Boards.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=SWAP&lt;br /&gt;
|ModForumArea=&lt;br /&gt;
|ModFTopic=&lt;br /&gt;
|ModTechName=34_SWAP.pm&lt;br /&gt;
|ModOwner=André/ justme1968 ({{Link2FU|430|Forum}} / [[Benutzer Diskussion:Justme|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[SWAP]] ist das Basismodul für die Unterstützung der panStamp Baugruppen. Zur Kommunikation in einem panStamp Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([https://github.com/panStamp/panstamp/wiki/Simple%20Wireless%20Abstract%20Protocol SWAP]).&lt;br /&gt;
Die komplette SWAP- Kommunikation ist registerbasiert und erfolgt mit Nachrichten um diese Register abzufragen, zu setzen und deren Inhalt zu senden. Alle Register lassen sich lesen, manche auch beschreiben. Für eine tiefgreifende FHEM Integration können weitere Module (wie z.B. [[SWAP_0000002200000003]]) vorhanden sein. Diese Module bauen, als 3. Ebene, auf das SWAP Modul (2. Ebene) auf und bedienen im backend ebenfalls die panStamp-Hardware über die Register. Der panStamp Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Für den Betrieb ist XML:Simple notwendig, dass bei Bedarf folgendermaßen nachinstalliert werden kann [http://forum.fhem.de/index.php?topic=12487.msg87373#msg87373].&lt;br /&gt;
 sudo apt-get install libxml-simple-perl&lt;br /&gt;
Diese Abhängigkeit kann beim Betrieb auf einer Fritzbox ebenfalls zu Problemen führen. Das [[SWAP]] Modul greift auf das [[panStamp]] Modul zu, was vorher per &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt; angelegt werden muss.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005-detail.png|mini|hochkant=2.5|Readings]]&lt;br /&gt;
Bei SWAP geht alle Kommunikation über [https://github.com/panStamp/panstamp/wiki/Simple%20Wireless%20Abstract%20Protocol#registers-and-values &#039;&#039;&#039;Register&#039;&#039;&#039;], dies sind unterschiedlich lange Werte die entweder nur gelesen oder gelesen und geschrieben werden können.&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt;) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers] und beliebig viele, sketchabängige Userregister (&amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;xx&amp;lt;/code&amp;gt;) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers#custom-registers] bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Definition Files&#039;&#039;, die in &amp;lt;code&amp;gt;.../FHEM/lib/SWAP&amp;lt;/code&amp;gt; zu finden sind. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Definition File erfolgt über den ProductCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt&#039;&#039;-ID [https://github.com/panStamp/panstamp/wiki/How-to-develop-your-own-SWAP-device#specify-your-product-code] gebildet wird. Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
In den Systemregistern  steht z.B. der ProductCode, die Device Adresse im SWAP Protokoll und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert und die Werte gehen auch beim Neustart nicht verloren. Beim aller ersten Starten ist das EEPROM mit &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; initialisiert und alle konfigurierbaren Register haben diesen Wert. Also z.B. Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; und Intervall &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; (HEX in Sekunden, das wären dann zwischen 18 und 19 Stunden).&lt;br /&gt;
Die Inhalte der Systemregister stehen als INTERNAL, im oberen Bereich der Detail Ansicht eines FHEM-Device, in FHEMWEB, die Userregister als Readings im unteren.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen ProductCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
Alle low Level Dinge wie Register ID oder Register Wert können mit &#039;&#039;&#039;hex Werten&#039;&#039; direkt angepasst werden.&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in Sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 08 &amp;lt;Netzwerk ID als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87436 }}&lt;br /&gt;
&lt;br /&gt;
Das [[SWAP]]-Modul stellt unter anderem folgende grundlegende Funktionalitäten zur Verfügung&lt;br /&gt;
* Es wird eine command Queue für panStamp-Hardware im power down Modus gehalten. Sobald die panStamp-Hardware online (SYNC Modus) kommt werden die Kommandos von FHEM automatisch übertragen.&lt;br /&gt;
* Die userReadings für &#039;menschenlesbare&#039; Readings werden anhand des Device Definition Files automatisch erzeugt&lt;br /&gt;
* Es ist möglich direkt Endpoints (Teile eines Registers) zu schreiben&lt;br /&gt;
* (Fast) keine hardkodierte Sonderbehandlung mehr für das RGB-Board. Das SWAP Modul kann mit jedem beliebige Swap Device umgehen.&lt;br /&gt;
* Es gibt eine dritte (optionale) Modulebene neben dem [[panStamp]] FHEM-Modul (1. Ebene) für die Hardware und dem SWAP Modul (2. Ebene) für das Protokoll. Mit dem generellen SWAP Modul lasen sich alle SWAP Devices &#039;&#039;zu Fuß&#039;&#039; über die Register ansprechen. Um die Register auf einer höheren Ebene auf FHEM Kommandos wie on/off/on-for-timer zu mappen ist dann ein Modul der 3. Ebene notwendig. {{Link2Forum|Topic=12487 |Message=78502 }}&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
&#039;&#039;&#039;Info: Das SWAP Modul unterstützt autocreate. Bei der Inbetriebnahme sollte autocreate aktiviert sein, da dies die Einrichtung deutlich vereinfacht.&#039;&#039;&#039;&lt;br /&gt;
Wenn der [[panStick]] läuft, sollten die SWAP-Devices per autocreate angelegt werden, sobald sie das erste Mal senden, z.B. nach dem Einschalten oder nach einem Reset. Normalerweise werden beim autocreate alle Werte abgefragt und angezeigt. Das geht normalerweise ohne jedes Zutun. &lt;br /&gt;
&lt;br /&gt;
panStick rein -&amp;gt; broadcast -&amp;gt; discovery -&amp;gt; anlegen. &lt;br /&gt;
&lt;br /&gt;
Bei Devices mit power down Mode erfolgt dieses das erste Mal wenn sie Strom haben. &lt;br /&gt;
&lt;br /&gt;
Alle panStamps durchlaufen beim Starten eine bestimmte Einschaltsequenz. Sie melden sich mit ihrer ID und ihrem ProductCode. Die ID ist die SWAP Device Adresse und bei einem frisch geflashten panStamp in der Regel &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;. Das SWAP Modul versucht, ein Device mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0 - FE&amp;lt;/code&amp;gt; zu ändern.&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, sonst haben mehrere die gleiche Adresse und das gibt Konflikte. &lt;br /&gt;
&lt;br /&gt;
Wer mehrere Devices hat, sollte jedem nach dem Anlegen mit &lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;Device Adresse als 2 stellige hex zahl&amp;gt; &lt;br /&gt;
eine eigene ID zuweisen. Die landen auf dem panStamp im EEPROM und sind auch nach Neustart noch vorhanden. &lt;br /&gt;
&lt;br /&gt;
Die anderen Adressen sind wie folgt belegt:&lt;br /&gt;
* &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; ist die Broadcast-ID&lt;br /&gt;
* &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; ist die ID des [[panStick]] am FHEM-System&lt;br /&gt;
* &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; ist die Default ID, die jeder panStamp im Auslieferungszustand besitzt&lt;br /&gt;
* &amp;lt;code&amp;gt;F0-FE&amp;lt;/code&amp;gt; sind die IDs, auf die autocreate die Adresse automatisch ändert, wenn ein neuer mit der ID &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; erkannt wird und kein entsprechender Device-Name definiert ist.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87261 }}&lt;br /&gt;
&lt;br /&gt;
Ändert man die Adresse, dauert es einen Augenblick, bis alle Register neu übertragen worden sind. &lt;br /&gt;
&lt;br /&gt;
Autocreate ändert bei der Einrichtung und Änderung der ID auch automatisch den Namen. Belässt man die ID im Bereich &amp;lt;code&amp;gt;F0 - FE&amp;lt;/code&amp;gt; und ändert den Namen des Device, ist zu berücksichtigen, dass autocreate für neue Devices eine freie neue Adresse anhand der Device-Namen sucht. Dadurch könnte es zu Doppeltverwendung von IDs kommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ zum autocreate kann man ein Device auch von Hand anlegen mit&lt;br /&gt;
 define &amp;lt;device&amp;gt; SWAP &amp;lt;ID&amp;gt;&lt;br /&gt;
Bis allerdings der ProductCode nicht per Attribut hinterlegt ist, was bei autocreate ebenfalls automatisch passiert, funktionieren nur die grundlegenden Funktionen bis zur 2. Modulebene.&lt;br /&gt;
&lt;br /&gt;
=== set ===&lt;br /&gt;
Ist ein SWAP-Device definiert, stehen folgende set-Befehle zur Verfügung:&lt;br /&gt;
* regGet &amp;lt;reg&amp;gt;&lt;br /&gt;
Fragt den Wert des Registers mit der ID &amp;lt;reg&amp;gt; ab. Für die Systemregister kann hierzu statt der Register ID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87679 }}&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
Schreibt &amp;lt;data&amp;gt; in den Register mit der id &amp;lt;reg&amp;gt;. &amp;lt;data&amp;gt; muss als HEX Zahl angegeben werden. Für die Systemregister kann hierzu statt der Register ID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt;.&amp;lt;ep&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
write &amp;lt;data&amp;gt; to endpoint &amp;lt;ep&amp;gt; of register &amp;lt;reg&amp;gt;. will not work if no reading for register &amp;lt;reg&amp;gt; is available as all nibbles that are not part of endpoint &amp;lt;ep&amp;gt; will be filled from this reading. ?&lt;br /&gt;
&lt;br /&gt;
* statusRequest&lt;br /&gt;
Veranlasst, dass alle Register und deren Werte einmal übertragen werden.&lt;br /&gt;
&lt;br /&gt;
* readDeviceXML&lt;br /&gt;
Liest das Device-Definition-XML-File neu ein.&lt;br /&gt;
&lt;br /&gt;
* clearUnconfirmed&lt;br /&gt;
Löscht die Liste der unbestätigten Nachrichten.&lt;br /&gt;
&lt;br /&gt;
* flash [&amp;lt;productCode&amp;gt;|&amp;lt;firmwareFile&amp;gt;]&lt;br /&gt;
Initiiert das „over-the-air“ Firmware update, dass (derzeit) nur von panStamps NRG unterstützt wird.&lt;br /&gt;
** ohne Parameter: Verwendet das SWAP_&amp;lt;current ProductCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;ProductCode&amp;gt;: Verwendet das SWAP_&amp;lt;ProductCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;firmwareFile&amp;gt;: Verwendet ein &amp;lt;firmwareFile&amp;gt; als absoluten File-Namen des HEX-Files.&lt;br /&gt;
&lt;br /&gt;
=== get ===&lt;br /&gt;
* regList&lt;br /&gt;
Listet alle User-Register des SWAP-Device (Readings). &lt;br /&gt;
&lt;br /&gt;
* regListAll&lt;br /&gt;
Listet alle Register des SWAP-Device (Internals und Readings). &lt;br /&gt;
&lt;br /&gt;
* listUnconfirmed&lt;br /&gt;
Listet alle unbestätigten Nachrichten in der Warteschlange auf, also Nachrichten die von FHEM gesendet wurden, aber der Empfang durch das panStamp Modul nicht bestätigt wurde.&lt;br /&gt;
&lt;br /&gt;
* products&lt;br /&gt;
Gibt alle auf dem System bekannten Productcodes nebst Daten aus.&lt;br /&gt;
&lt;br /&gt;
* deviceXML&lt;br /&gt;
Gibt die Daten des zum derzeit zum per Attribut (ProductCode) eingerichteten Device-XML-Files aus.&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Wird der ProductCode bei der Definition nicht gesetzt, stehen auch nur die Standardbefehle bei zur 2. Modulebene zur Verfügung. &lt;br /&gt;
&lt;br /&gt;
* createUnknownReadings&lt;br /&gt;
Erzeug Readings auch für Register, die im Device-XML-File nicht definiert werden.&lt;br /&gt;
&lt;br /&gt;
* ProductCode&lt;br /&gt;
Legt den ProductCode eines SWAP-Device fest und liest dadurch das dazugehörige Device-Definition-XML-File ein. Erst wenn der ProductCode als Attribut vorgegeben wurde, z.B. für einen RGB-Sketch:&lt;br /&gt;
 attr &amp;lt;device&amp;gt; ProductCode 0000002200000003&lt;br /&gt;
kommen zu den allgemeinen FHEM set- und get-Kommandos des [[SWAP]] Modul die spezifischen der 3. Modulebene 35_SWAP_&amp;lt;productcode&amp;gt;.pm mit hinzu (Siehe z.B. [[SWAP_0000002200000003]]). Dann werden die SWAP-Nachrichten an das entsprechende Modul weitergegeben und dort verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices, die während der Definition nicht aktiv sind, muss dieses Attribut manuell angelegt werden.&lt;br /&gt;
&lt;br /&gt;
=== Device Definition File ===&lt;br /&gt;
Mit Hilfe der im jeweiligen Device Definition File hinterlegten Beschreibung werden hierzu automatisch userReadings angelegt (Wenn den Endpoints eine Unit mit Factor zugewiesen ist) die neben den reinen Registerwerten in hex auch &#039;&#039;menschenlesbare&#039;&#039; readings der Sensorwerte erzeugen. &lt;br /&gt;
Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
Das entsprechende Device Definition File liegt unter ./FHEM/lib/SWAP wie hier beschrieben [http://forum.fhem.de/index.php/topic,12487.msg86257.html#msg86257].&lt;br /&gt;
&lt;br /&gt;
Hier Beispielhaft anhand eines BMP085 Temperatur- und Luftdrucksensors dargestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
attr temppress userReadings voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, temperature:0C.0-Temperature {hex(ReadingsVal($name,&amp;quot;0C.0-Temperature&amp;quot;,&amp;quot;0&amp;quot;))*0.1-50}, pressure:0C.1-Pressure {hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01}, pressureNN:0C.1-Pressure {sprintf(&amp;quot;%.2f&amp;quot;,hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01 + AttrVal(&amp;quot;global&amp;quot;, &amp;quot;altitude&amp;quot;, 0)/8.5)}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005.png|mini|hochkant=2.5|Resultat eines stateFormat]]&lt;br /&gt;
Aus diesen Readings kann dann mit stateFormat die gewünschte Darstellung für die Raumübersicht erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
attr temppress stateFormat {sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;temperature&amp;quot;,0)).&amp;quot;°C &amp;quot;.sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;pressureNN&amp;quot;,0)).&amp;quot;mbar&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel ist das Definition File für das RGB-Board rgbdriver.xml.&lt;br /&gt;
&lt;br /&gt;
=== SWAP Register ===&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt;) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers] und beliebig viele sketchabängige Userregister (&amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt; - &amp;lt;code&amp;gt;xx&amp;lt;/code&amp;gt;)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Definition Files&#039;&#039;. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Definition File erfolgt über den ProductCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt-Id&#039;&#039; gebildet wird.&lt;br /&gt;
&lt;br /&gt;
In den Systemregistern stehen z.B. der ProductCode, die Deviceadresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert, so dass die Werte auch bei einem Neustart nicht verlorengehen. Beim ersten Starten eines panStamp ist das EEPROM mit &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; initialisiert und alle konfigurierbaren Register haben diesen Wert, also z.B. die Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; und das Intervall &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; (zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Systemregister werden in der Device Detailansicht bei den InternalValues im oberen Bereich angezeigt und die User-Register als reading im unteren Bereich.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen ProductCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== Übersicht der Register anzeigen ===&lt;br /&gt;
Sobald ein SWAP Device mit dem ProductCode korrekt angelegt wurde, können die Userregister bzw. alle Register aufgelistet werden: &lt;br /&gt;
 get &amp;lt;device&amp;gt; regList&lt;br /&gt;
 get &amp;lt;device&amp;gt; regListALL&lt;br /&gt;
&lt;br /&gt;
=== Register auslesen oder setzen ===&lt;br /&gt;
Einzelne Register können abgefragt werden mit&lt;br /&gt;
 set &amp;lt;device&amp;gt; regGet &amp;lt;ID&amp;gt;&lt;br /&gt;
oder auch gesetzt werden durch&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet &amp;lt;ID&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
Für die Systemregister kann hierzu statt der Register ID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=== Intervall bei Sketch mit power down / batterie betriebene panStamps ===&lt;br /&gt;
panStamp Hardware mit power down Mode durchlaufen während des Booten (beim Einschalten oder bei einem Reset) eine 3 Sekunden Schleife und warten auf SWAP-Kommandos, die z.B. Register für das Sendeintervall oder sonstige Konfigurationen ändern. Nach dieser Zeit wird die normale Loop Schleife im Arduino Sketch gestartet. Normaler Weise werden dann die Register mit den Sensorwerten an FHEM gesendet. Power down Devices gehen danach schlafen (power down Modus mit extrem niedrigem Stromverbrauch) und wachen regelmäßig auf (TX_INTERVAL aus dem Systemregister) um die Sensoren auszulesen und die Werte wieder an FHEM zu senden. Das Sendeintervall betrifft nur das Senden der Sensorwerte. Normalerweise empfängt das panStamp Modul in diesem Modus keine Befehle mehr. Das passiert nur einmalig nach einem Reset. Je nach Sketch kann das natürlich variieren und anders programmiert sein!&lt;br /&gt;
&lt;br /&gt;
Nachrichten an eine panStamp-Hardware im power-down-state werden in FHEM gepuffert (siehe INTERNAL SWAP_CMDsPending) und dann an die panStamp-Hardware geschickt, sobald dieses sich im SYNC Status befindet. Dieses ist typischer Weise nach dem Startup z.B. nach einem Reset der Fall.&lt;br /&gt;
&lt;br /&gt;
Bei batteriebetriebenen Sensoren sollte das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;Intervall in Sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87409}}&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene panStamp-Module (genauer: Module die den Power-Down-Modus unterstützen) wird das Default Sendeintervall bei der Einrichtung automatisch von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden = 15 Minuten) geändert. Das Intervall wird nur automatisch gesetzt, wenn pwrdownmode im device definition file true ist. {{Link2Forum|Topic=12487 |Message=89205}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt mit bestimmten panStamp lib Versionen das Problem das ein Wert von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; im Systemregister &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; zum Überlauf führt und der panStamp dann ununterbrochen sendet. Im [[SWAP]] Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen host Systemen (z.B. FritzBox) nicht, weil der panStamp so schnell sendet, dass FHEM mit dem Abarbeiten so beschäftigt und ausgelastet ist, dass es selber nicht zum Senden kommt. Zur Abhilfe kann im Sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden. Den Sketch dann noch mal flashen. Wenn der panStamp mit diesem Sketch einmal durchgelaufen ist, können diese beiden Zeilen wieder entfernen und der panStamp noch mal geflasht werden. Damit wurde das Sendeintervall einmalig auf &amp;lt;code&amp;gt;0x5555&amp;lt;/code&amp;gt; (0x5555 in Dezimal = 21.845 (Sekunden), entspricht 364 Minuten) gesetzt.&lt;br /&gt;
&lt;br /&gt;
=== Device Adresse automatisch setzen ===&lt;br /&gt;
Erkennt das SWAP Modul eine panStamp-Hardware mit der Adresse &amp;lt;code&amp;gt;0xFF&amp;lt;/code&amp;gt; wird automatisch eine neue Adresse durch das [[SWAP] Modul vergeben. Die automatisch vergebenen Adressen sind im Bereich &amp;lt;code&amp;gt;0xF0 - 0xFE&amp;lt;/code&amp;gt;. Das soll das Inbetriebnehmen von mehreren panStamp-Hardwaremodulen gleichzeitig erleichtern. Der automatisch vergeben Adressbereich ist begrenzt und sollte nur temporär verwendet werden. Nach der Inbetriebnahme sollte den panStamp Modulen eine individuelle, lokal passende Adresse geändert werden. {{Link2Forum|Topic=12487 |Message=87919}}&lt;br /&gt;
Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87859}}&lt;br /&gt;
&lt;br /&gt;
Im Log sollte etwas in dieser Art auftauchen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:14:29 2: autocreate: define SWAP_F0 SWAP FF 000000010000000E&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP_F0: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP SWAP_F0: changing 09-DeviceAddress from default FF to F0&lt;br /&gt;
2013.07.29 20:14:30 3: SWAP SWAP_F0: changing 0A-PeriodicTxInterval from default FFFF to 0384 (900 seconds)&lt;br /&gt;
&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:16:35 2: autocreate: define SWAP_F1 SWAP_0000002200000003 FF 0000002200000003&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP_F1: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:16:36 3: SWAP SWAP_F1: changing 09-DeviceAddress from default FF to F1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registerinhalt von hex auf Dezimal umrechnen  ===&lt;br /&gt;
Die Registerinhalte sind immer hexadezimale Zahlenwerte. In den meisten Fällen werden diese umgerechnet werden in Dezimalzahlen.&lt;br /&gt;
Hierzu kann die Perlfunktion hex() verwendet werden.&lt;br /&gt;
Beide Funktionsaufrufe geben in diesem Beispiel die Dezimalzahl 250 aus:&lt;br /&gt;
 {hex(&amp;quot;FA&amp;quot;)}&lt;br /&gt;
 {hex(&amp;quot;0xFA&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: panStamp soilmoisture Sketch in FHEM einbinden ===&lt;br /&gt;
Der panStamp soilmoisture Sketch aus dem examples Verzeichnis ist mit dem Standard SWAP Modul kompatibel. &lt;br /&gt;
&lt;br /&gt;
Ein Artikel über ein selbst entwickeltes panStamp Batterieboard zum Anschluss von Analogsensoren/1Wire und Solarversorgung ist hier [[Bodenfeuchtesensor]] beschrieben. Die Weiterentwicklung zum Umweltsensor ist hier [[panStamp_Umweltsensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine für einen Vegetronix Sensor angepasste Version kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Das Übertragungsintervall ist wie üblich über das Register &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; konfigurierbar. Der Sensor wird an GND, D7 für die Versorgungsspannung und A4 für den Messwert angeschlossen. Erfahrungen haben gezeigt, dass bei einem fünfminütigen Übertragungsintervall nach 12 Monaten Laufzeit die Batteriespannung von 1.55V auf 1.4V abfällt. Das würde bedeuten, dass eine Batterie im Batterieboard mindestens eine Laufzeit von drei Jahren haben sollte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;MyBodenfeuchte&amp;gt; stateFormat VWC_A%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
set &amp;lt;MyBodenfeuchte&amp;gt; userReadings Level0_Voltage {hex(ReadingsVal($name,&amp;quot;0C.0-Moisture_level_0&amp;quot;,&amp;quot;0&amp;quot;))*(3.3/1024)}, VWC_A:0C.0-Moisture_level_0 {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**4 + 7.10835 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 - 0.569557) / ((ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 + 1))}, voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, battery:0B-Voltage {(ReadingsVal($name,&amp;quot;voltage&amp;quot;,&amp;quot;0&amp;quot;)&amp;lt;1?&amp;quot;low&amp;quot;:&amp;quot;ok&amp;quot;)}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ soilmositure-plot.jpg|mini|x100px|Bodenfeuchte]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix1.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix2.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem entsprechend erweiterten Sketch lassen sich auch mehrere Sensoren an einem panStamp auslesen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bilder zeigen eine panStamp/Vegetronix Außeneinheit im IP65-Gehäuse. Dieser Aufbau wird ganzjährig den Witterungseinflüssen ausgesetzt. Die auf den Stab aufgesetzte Antenne muss nicht verwendet werden, bei kürzeren Funkstrecken ist eine innenliegende Drahtantenne ausreichend. Bitte in FHEM den RSSI- und LQI-Wert sowie die Gleichmäßigkeit des Empfangens der 5 Minuten Sendeintervalle dementsprechend beobachten.&lt;br /&gt;
&lt;br /&gt;
== Trouble Shooting ==&lt;br /&gt;
=== value has to be 10 byte(s) in size  ===&lt;br /&gt;
Es besteht die Möglichkeit, dass die Internals aus irgendeinem Grund nicht vollständig sind. &lt;br /&gt;
Abhilfe in einem solchen Falle kann das Absetzen der folgenden beiden Befehlt schaffen&lt;br /&gt;
 set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
 set &amp;lt;device&amp;gt; readDeviceXML&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht zum Erfolg führt, hilft ggf. ein Löschen und neu setzen des ProductCode Attributs.&lt;br /&gt;
{{Link2Forum|Topic=34474.0}}&lt;br /&gt;
&lt;br /&gt;
Das Übertragen aller Daten nach dem Statusrequest kann einen Augenblick dauern.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit:&lt;br /&gt;
Die Fehlermeldung kommt immer wenn FHEM nicht weiß welche Firmware auf der panStamp-Hardware ist. Das passiert wenn irgendetwas in der Kommunikation schief geht während FHEM initialisiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122414}} &lt;br /&gt;
&lt;br /&gt;
=== register 0F is not known ===&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=84257}}&lt;br /&gt;
&lt;br /&gt;
=== Komplette Übersicht eines Device ===&lt;br /&gt;
 list &amp;lt;device&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201467}}&lt;br /&gt;
&lt;br /&gt;
=== fehlender oder falsche ProductCode ===&lt;br /&gt;
Fehlt der ProductCode, werden die zum Sketch zugehörigen Befehle nicht angezeigt und die Register nicht korrekt zugeordnet.&lt;br /&gt;
Verändert man den ProductCode, sollte man im Anschluss folgenden Befehlt absetzten, um alle Register neu auszulesen&lt;br /&gt;
 set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201910}}&lt;br /&gt;
&lt;br /&gt;
=== missing commands und register 00-0A unvollständig ===&lt;br /&gt;
Wenn in den INTERNALS missing commands (SWAP_Sent_unconfirmed) auftauchen und ggf. die Register &amp;lt;code&amp;gt;00-0A&amp;lt;/code&amp;gt; nicht vollständig sind und das INTERNAL &amp;quot;channels&amp;quot; nicht vorhanden ist, gibt es irgendein Kommunikationsproblem.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201939}}&lt;br /&gt;
&lt;br /&gt;
=== Funktion des Autocreate ===&lt;br /&gt;
Beim autocreate wird versucht ein Name für das Device zu vergeben, der zur nächsten freien Adresse passt. Während dieses Prozessen bleibt die Adresse erst mal trotzdem &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;. Erst wenn das Device angelegt wird, kann versucht werden automatisch die Adresse zu setzen, hoffentlich auf die gleiche freie, die beim Namen auch schon gefunden wurde.  {{Link2Forum|Topic=12487 |Message=88110}}&lt;br /&gt;
&lt;br /&gt;
=== Adresse manuell setzen ===&lt;br /&gt;
Um die Adresse manuell bereits in den Sketch einzubauen kann man wie hier beschrieben vorgehen.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122347}}&lt;br /&gt;
&lt;br /&gt;
=== Undefined subroutine &amp;amp;main::XMLin ===&lt;br /&gt;
Erhält man diese Fehlermeldung&lt;br /&gt;
 Undefined subroutine &amp;amp;main::XMLin called at ./FHEM/34_SWAP.pm line 108.&lt;br /&gt;
 &lt;br /&gt;
 2013.09.26 11:34:24 0: ERROR: Cannot autoload SWAP&lt;br /&gt;
 2013.09.26 11:34:24 3: panStick: Unknown code 000A001B000A000000000100000007, help me!&lt;br /&gt;
&lt;br /&gt;
Es fehlt XML::Simple, was folgendermaßen installiert werden kann:&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&lt;br /&gt;
=== panStamp antwortet nicht/EEprom to factory defaults ===&lt;br /&gt;
Wenn der panStamp nicht antwortet, kann es sein das die Adressen durcheinander gekommen sind. Dann musst man einmal in &amp;lt;code&amp;gt;setup()&amp;lt;/code&amp;gt; ein &amp;lt;code&amp;gt;eepromToFactoryDefaults()&amp;lt;/code&amp;gt; aufrufen und damit flashen. Wenn damit einmal gestartet wurde, die Zeile wieder entfernen und den normalen Sketch flashen. {{Link2Forum|Topic=13890 |Message=121677}}&lt;br /&gt;
&lt;br /&gt;
=== Factory Defaults ===&lt;br /&gt;
Um einen panStamp auf den Auslieferungszustand zurückzusetzen, muss man beim Sketch folgendes in die &amp;lt;code&amp;gt;setup()&amp;lt;/code&amp;gt; Routine einfügen:&lt;br /&gt;
 eepromToFactoryDefaults()&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
&lt;br /&gt;
=== Status LED ===&lt;br /&gt;
Die Status LED auf dem Board wird in der config.h deaktiviert, indem man die Zeit &amp;lt;code&amp;gt;#define LED_DEBUG&amp;lt;/code&amp;gt; mit &amp;quot;//&amp;quot; auskommentiert. {{Link2Forum|Topic=13890 |Message=164731}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_Umweltsensor&amp;diff=11912</id>
		<title>PanStamp Umweltsensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_Umweltsensor&amp;diff=11912"/>
		<updated>2015-08-06T13:59:56Z</updated>

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

		<summary type="html">&lt;p&gt;TeeVau: Schreibweise auf panStamp (kleines p)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=PlatzHalter.png&lt;br /&gt;
|Bildbeschreibung=RGBWW Board&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=12V&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Netzteil&lt;br /&gt;
|HWSize=&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#SWAP_0000002200000003 35_SWAP_0000002200000003.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
[[panStamp RGBWW Board mit DMX und IR]] unterstützt RGBW LEDs und lässt sich per Infrarot Fernbedienung, DMX Controller (z.B. als Unterputz Touchpanel) und FHEM bedienen.&lt;br /&gt;
Es ist eine Hard- und Softwareentwicklung auf Basis von panStamp Modulen und verwendet zusätzlich das FHEM Modul [[SWAP 0000002200000003]] als 3. Ebene&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang wird in diesem {{Link2Forum|Topic=12487|Message=81923|LinkText=Forenthread}} vorgestellt. Die Hardware für das Board wird {{Link2Forum|Topic=13890|LinkText=hier}} im FHEM Forum vorgestellt und ein Prototyp ist {{Link2Forum|Topic=12487|Message=85777|LinkText=hier}} zu sehen.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Die Projektseite zur Hardware findet sich [http://itse.homeip.net/projekte/12/6/ hier]. Eine Version 2 des Boards in geplant. &lt;br /&gt;
&lt;br /&gt;
=== Kompatibilität RBG-Board mit NRG-panStamps ===&lt;br /&gt;
Mit dem hier beschriebenen Sketch ist das Board nur mit den panStamp AVRs kompatibel. Die Pinbelegung zwischen AVR und NRG ist im Prinzip gleich bis auf Pin 23. Das ist bei dem NRG ein IO Pin und nicht GND wie beim AVR. Das wäre kein Problem wenn man entweder hardwareseitig den Kontakt unterbricht oder aber programmiertechnisch diesen Pin &#039;&#039;&#039;NIE&#039;&#039;&#039; als Ausgang definiert. Ansonsten gibt’s einen „kurzen“. Oder wenn er als Ausgang definiert ist darf er nur das GND Potential haben, also Low, 0. {{Link2Forum|Topic=13890 |Message=247069}}&lt;br /&gt;
&lt;br /&gt;
Da es derzeit (Stand 01.05.2015) aber keinen Sketch gibt, der auf den NRG lauffähig ist, wäre vorher noch diese Herausforderung zu lösen.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften des fade TBC ===&lt;br /&gt;
Der wichtige Punkt ist das das RGBWW-Board Farbübergänge autonom macht und FHEM nur den Trigger zum starten und Rückmeldung über den Status gibt. d.h. wie ruckelfrei das faden ist hängt nicht von äußeren Bedingungen wie Funklast, FHEM timing oder FHEM Auslastung ab. Im Board gibt es 15 &#039;&#039;&#039;Register&#039;&#039;&#039; die jeweils eine Farbe und eine Anzeigedauer enthalten. Diese werden (ein mal) von FHEM aus programmiert. Zum starten wird dann nur noch das Anfangs- und das Endregister gesendet und das Board überblendet zwischen allen Farben der Register zwischen Anfang und Ende in der eingestellten Zeit.&lt;br /&gt;
Die eigentliche Einschränkung ist das die aktuelle AVR Version der panstamps &#039;&#039;nur&#039;&#039; 8bit pwm kann (jedenfalls wenn es 3 oder mehr Kanäle sein sollen und die Hardware PWM genutzt wird). Wenn dir diese 256 Stufen pro Grundfarbe reichen ist es absolut Ruckelfrei. d.h. es gibt keinen zeitlichen Jitter. Ob dir die Anzahl der Helligkeitsstufen reicht hängt ein wenig von den LEDs selber ab und davon zwischen welchen Farben du konkret wechselst. Im dunklen Bereich wirst du vermutlich stufen sehen (also beim aufblenden von dunkel zu hell). wenn du zwischen zwei hellen Farben (z.b. von rot nach grün) blendest wirst du keine stufen sehen. {{Link2Forum|Topic=13890|Message=106644}}&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Eine Übersicht über die derzeit vorhandene Funktionalität des [[SWAP_0000002200000003|Fhem Moduls]] und panStamp Sketches (Stand 01.05.2015):&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=1205404}}&lt;br /&gt;
was geht:&lt;br /&gt;
* Bis zu vier LED Kanäle (je nach Kombination von ir und soft PWM)&lt;br /&gt;
* Ir senden&lt;br /&gt;
* Ir empfangen&lt;br /&gt;
* Messen ob die LED Versorgungsspannung an ist&lt;br /&gt;
* Helligkeit eines an Pin &amp;lt;code&amp;gt;A2&amp;lt;/code&amp;gt; angeschlossenen Helligkeitssensors (LDR)&lt;br /&gt;
* Konfiguration der DMX Basisadresse über das SWAP Register &amp;lt;code&amp;gt;0x12&amp;lt;/code&amp;gt;&lt;br /&gt;
* Optional soft on auf letzten RGBW Wert&lt;br /&gt;
* Alles was auch vorher schon ging: dimmen, faden, ir fernbedienungen anlernen, ...&lt;br /&gt;
&lt;br /&gt;
wichtig zu wissen:&lt;br /&gt;
* Wenn ir aktiv ist und kein soft PWM lässt sich der 4. Kanal nur ein und aus schalten&lt;br /&gt;
* Wenn ir aktiv ist muss soft PWM aktiv sein um den 4. Kanal auch zu dimmen&lt;br /&gt;
* Es wird nur ein zusätzlicher LED Kanal tatsächlich schon unterstützt. Der fünfte kommt noch&lt;br /&gt;
* Bei ir senden sind nur die Aufrufe für Sony und NEC tatsächlich eingebaut. Die Anderen sind aber einfach zu ergänzen&lt;br /&gt;
* Beim ir senden sind noch keine Wiederholungen eingebaut. Die müssen laut Protokoll aber eigentlich sein&lt;br /&gt;
&lt;br /&gt;
was noch kommt:&lt;br /&gt;
* besseres soft PWM&lt;br /&gt;
* mehr Konfiguration bezüglich default verhalten. ramp zeiten, delays, ...&lt;br /&gt;
* hsv Farbmodell um besser zu faden und vor allem um den Weißanteil automatisch auf die weißen LEDs zu legen&lt;br /&gt;
* die virtuellen channel &lt;br /&gt;
* fhem kompatibles ir senden&lt;br /&gt;
* sofortiges senden von Helligkeit und LED Spannung bei Änderung&lt;br /&gt;
* andere ir lib mit sehr viel besserer Geräte Unterstützung&lt;br /&gt;
&lt;br /&gt;
wie gehabt muss alles über &amp;lt;code&amp;gt;config.h&amp;lt;/code&amp;gt; mit Compilerschalter konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.5 / 1.6 einrichten ===&lt;br /&gt;
Mit der Arduino IDE 1.5.x gab es zusätzlich eine [http://www.panstamp.com/news/panstamp-is-now-fully-arduino-1-5-enabled/ grundlegende Umstellungen der Arduino SWAP Library], für die der derzeitige Sketch [r4716] angepasst werden muss. Der Sketch ist nur kompatibel zur alten SWAP Library, die unter [[panStamp_Programmierung#Arduino_IDE_1.0.x_vorbereiten|Arduino IDE 1.0 installiert]] werden muss (Stand 01.05.2015).&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.0 einrichten ===&lt;br /&gt;
Zum Flashen der panStamps wird die [[panStamp_Programmierung#Arduino_IDE_1.0.x_vorbereiten|Arduino IDE 1.0.x benötigt]]. Für den RGBWW-Sketch sind je nach gewünschtem Funktionsumfang noch folgende libs zu installieren:&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;Panstamp Lib&#039;&#039;&#039; läd man von hier [[http://old.panstamp.com/downloads]] (panstamp_library.zip, 129k v.25, May 31, 2013). Mit der neueren Lib v.4 läuft die Kompillierung des derzeitigen Sketches nicht durch. Die Dateien der Lib speichert man in einem entsprechend neuen  Unterordner, z.B. hierin &amp;lt;code&amp;gt;C:\Users\&amp;lt;username&amp;gt;\Documents\Arduino\libraries&amp;lt;/code&amp;gt;. Am Ende der ganzen Aktion sollten sich in diesem Unterordner 3 neue Unterordner befinden: &amp;lt;code&amp;gt;IRremote, DMXSerial und panstamp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;IR Remote Lib&#039;&#039;&#039; kopiert man von hier [[https://github.com/shirriff/Arduino-IRremote]] und speichert sie ebenfalls in einem passenden Unterordner von &amp;lt;code&amp;gt;libraries&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;DMX Lib&#039;&#039;&#039; kopiert man von hier [[http://www.mathertel.de/Arduino/DMXSerial.aspx]] und speichert sie ein weiteres Mal in einem weiteren Unterordner von &amp;lt;code&amp;gt;libraries&amp;lt;/code&amp;gt;. Weitere Informationen zur Verwendung von Arduino Librarys finden sich hier [[http://arduino.cc/en/Hacking/Libraries]]. Dass die Librarys richtig erkannt worden sind, lässt sich dadurch erkennen, dass unter dem Menüpunkt &amp;lt;code&amp;gt;Sketch/Library importieren&amp;lt;/code&amp;gt; die 3 weiteren Punkte unten unter &amp;lt;code&amp;gt;beigetragen&amp;lt;/code&amp;gt; auftauchen.&lt;br /&gt;
&lt;br /&gt;
Die Librarys sollten entweder mit dem entsprechenden Menüpunkt in die IDE integriert werden oder jeweils nach auspacken des zip files als als kompletten Ordner im Arduino &amp;lt;code&amp;gt;libraries&amp;lt;/code&amp;gt; Verzeichnis abgelegt werden (siehe [http://www.arduino.cc/en/Hacking/Libraries)]).&lt;br /&gt;
* Windows IDE only: Falls alles so bleibt, wie es heruntergeladen wurde, wechselt man wieder auf den Reiter Sketch und importiert über -&amp;gt;Sketch Library importieren die entsprechenden Libs für IRremote und DMX. Dadurch werden 3 neue Zeilen hinzugefügt.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
Für das kompilieren mit INO siehe [[panStamp_Programmierung#INO|hier]].&lt;br /&gt;
&lt;br /&gt;
=== Link zum Sketch ===&lt;br /&gt;
Die aktuelle Version des RGBWW-Driver Sketches findet sich auf [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge]. {{Link2Forum|Topic=13890 |Message=201391}}&lt;br /&gt;
Dieser muss in &amp;lt;code&amp;gt;Arduino\libraries\panstamp\examples\sketches&amp;lt;/code&amp;gt; entpackt und die &amp;lt;code&amp;gt;rbgdriver.ino&amp;lt;/code&amp;gt; gestartet werden. In der Arduino IDE sollte unter Tools-&amp;gt;Board &amp;quot;Arduino Pro or Pro Mini (3.3V, 8MHz) w/ Atmega328&amp;quot; eingestellt sein. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert kann man in der IDE auch direkt panStamp als Plattform auswählen.&lt;br /&gt;
&lt;br /&gt;
==== Kompillierte hex version ====&lt;br /&gt;
Eine kompiliertes HEX-File für drei (vier) Kanäle plus IR-Empfang und DMX ist hier im Forum zu finden: {{Link2Forum|Topic=13890 |Message=121619}}&lt;br /&gt;
&lt;br /&gt;
==== HEX-File ohne IR und DMX ====&lt;br /&gt;
Eine kompiliertes HEX-File ohne IR-Empfang und DMX ist hier im Forum zu finden: {{Link2Forum|Topic=13890 |Message=201955}}&lt;br /&gt;
&lt;br /&gt;
=== Compilerschalter ===&lt;br /&gt;
Welche Features der sketch bietet lässt sich im &amp;lt;code&amp;gt;config.h&amp;lt;/code&amp;gt; file durch ein- oder auskommentieren der &amp;lt;code&amp;gt;#define ENABLE_...&amp;lt;/code&amp;gt; Zeilen festlegen. {{Link2Forum|Topic=13890 |Message=173431}}&lt;br /&gt;
&lt;br /&gt;
==== #define ENABLE_DMX ====&lt;br /&gt;
 #define ENABLE_DMX&lt;br /&gt;
Ermöglicht die Nutzung eines DMX RGB Einstellers zur Steuerung der RGB LEDs&lt;br /&gt;
&lt;br /&gt;
Hierbei ist darauf zu achten, dass in der DMX-Lib in der Datei &amp;lt;code&amp;gt;DMXSerial.h&amp;lt;/code&amp;gt; die Zeile&lt;br /&gt;
 #define DmxModePin 2     // Arduino pin 2 for controlling the data direction&lt;br /&gt;
in &lt;br /&gt;
 #define DmxModePin 7     // Arduino pin 7 for controlling the data direction&lt;br /&gt;
abgeändert werden muss.&lt;br /&gt;
&lt;br /&gt;
==== #define HAS_SENSOR ====&lt;br /&gt;
  #define HAS_SENSOR&lt;br /&gt;
Ermöglicht die Nutzung eines DHT22 Sensors zur Auswertung von Temperatur und Luftfeuchtigkeit&lt;br /&gt;
Dafür sollten diese Konfigurationszeilen auskommentiert sein:&lt;br /&gt;
  USE_SOFT_PWM;&lt;br /&gt;
  ENABLE_IR_SEND;&lt;br /&gt;
  ENABLE_REPEATER;&lt;br /&gt;
&lt;br /&gt;
In der &amp;lt;code&amp;gt;IRremote.cpp&amp;lt;/code&amp;gt; Datei in der Irremote Library muss die Zeile&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void IRrecv::disableIRIn() &lt;br /&gt;
{&lt;br /&gt;
TIMER_DISABLE_INTR;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie die &amp;lt;code&amp;gt;Irremote.h&amp;lt;/code&amp;gt; Datei unter &amp;lt;code&amp;gt;Public:&amp;lt;/code&amp;gt; um die Zeile &lt;br /&gt;
 void disableIRIn();&lt;br /&gt;
erweitert werden.&lt;br /&gt;
&lt;br /&gt;
Der Daten-Pin des DHT22 Sensors muss hierfür an Pin &amp;lt;code&amp;gt;A2&amp;lt;/code&amp;gt; des panStamps angeschlossen werden.&lt;br /&gt;
Ein Beispiel für die Umrechnung der userReading für Spannung Temp etc. ist hier beschrieben: {{Link2Forum|Topic=12487 |Message=76489}}&lt;br /&gt;
&lt;br /&gt;
=== Zusammenhänge der Konfiguration ===&lt;br /&gt;
Die Zusammenhänge der Konfiguration sind hier beschrieben {{Link2Forum|Topic=13890 |Message=175181}}&lt;br /&gt;
&lt;br /&gt;
=== 4. und 5. LED Kanal TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg169741#msg169741&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg192132#msg192132&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201922#msg201922&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201936#msg201936&lt;br /&gt;
&lt;br /&gt;
=== Alternativer Fade per Patch ===&lt;br /&gt;
Als Alternative zum im Sketch und im Modul eingebauten Fade-Befehl ist hier ein Patch vorgestellt:&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133096}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133096.html#msg133096]&lt;br /&gt;
&lt;br /&gt;
Der Patch ist &#039;&#039;&#039;nicht eingecheckt&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IR Schnittstelle TBC ==&lt;br /&gt;
=== IR TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107061#msg107061&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107197#msg107197&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107415#msg107415&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122021.html#msg122021&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122077.html#msg122077&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg167351#msg167351&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175269#msg175269&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175285#msg175285&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg182582#msg182582&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg245597#msg245597&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg259267#msg259267&lt;br /&gt;
&lt;br /&gt;
=== IR-Belegung Panstamp RGB-Board TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163008.html#msg163008&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163153.html#msg163153&lt;br /&gt;
&lt;br /&gt;
=== Ircluster TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175331#msg175331&lt;br /&gt;
&lt;br /&gt;
=== Irgate TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175278#msg175278&lt;br /&gt;
&lt;br /&gt;
== DMX Schnittstelle ==&lt;br /&gt;
Da die DMX-Schrittstelle kein direktes Interface zu FHEM hat, sondern nur die direkte Kommunikation zwischen DMX-Kontroller und RGB-Board betrifft, ist die Schnittstelle nur bei der Konfiguration des Sketches und über die Dokumentation des Boards beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://itse.homeip.net/projekte/12/6/ Projektseite] für das RGB-Multi-Board.&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ rgbdriver sketch] auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_Programmierung&amp;diff=11910</id>
		<title>PanStamp Programmierung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_Programmierung&amp;diff=11910"/>
		<updated>2015-08-06T13:58:07Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Schreibweise auf panStamp (kleines p)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp Programmierung}}&lt;br /&gt;
== Programmierung eines panStamp ==&lt;br /&gt;
&lt;br /&gt;
=== Installation panStick ===&lt;br /&gt;
Für die Installation des panStick unter Windows gibt es mehrere Möglichkeiten.&lt;br /&gt;
# Installiert man eine Arduino IDE, kann dabei auch der Treiber für den panStick mitinstalliert werden.&lt;br /&gt;
# Treiber von der offiziellen Homepage herunterladen und installieren [http://www.ftdichip.com/]. Die Treiber befinden sich ebenfalls im Unterordner drivers der Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
Bei der Installation kann es sein, dass kein Treiber gefunden wird. Dann muss der entsprechende Treiber manuell ausgewählt werden entsprechend dieser Anleitung [https://www.youtube.com/watch?v=SPdSKT6KdF8].&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.0.x vorbereiten ===&lt;br /&gt;
Zum Flashen der panStamps wird die Arduino IDE benötigt. Eine Installationsanleitung für Arduino IDE 1.0 ist unter folgendem Link zu finden:&lt;br /&gt;
:https://code.google.com/p/panstamp/wiki/firststeps&lt;br /&gt;
&lt;br /&gt;
Die IDE 1.5.x oder höher ist zwar mit den AVRs und NRGs kompatibel, wichtig zu wissen ist allerdings, dass mit dem Wechsel von 1.0.x zu 1.5.x oder höher es größere Änderungen der panStamp/SWAP Librarys gegeben hat. Dadurch lassen sich einige der bislang zur Verfügung stehenden Sketches (derzeit) nicht unter 1.5.x oder höher kompilieren (z.B. der RGBWW-Sketch). Für die IDE 1.0.x gibt es keine passenden Arduino Lib für den NRG [[https://github.com/panStamp/panstamp/wiki/First%20steps]], die daher nur mit den AVRs kompatibel sind. Im Folgenden wird sich für die Programmierung unter Windows daher auf die letzte 1.0.x IDE bezogen.&lt;br /&gt;
&lt;br /&gt;
* Man lädt die &#039;&#039;&#039;Arduino IDE 1.0.x&#039;&#039;&#039; für Windows [[http://arduino.cc/en/Main/OldSoftwareReleases]]. &lt;br /&gt;
* Für bestimmte Sketches müssen noch die entsprechenden Libs hinzugefügt werden (siehe [[panstamp#Sketch konfigurieren|explizite Anwendung]]).&lt;br /&gt;
* Unter &amp;lt;code&amp;gt;Tools/Board&amp;lt;/code&amp;gt; wird das &#039;&#039;&#039;passende Board&#039;&#039;&#039; ausgewählt, dass dem Chip auf dem panStamp entspricht. Für den panStamp AVR: &amp;lt;code&amp;gt;Arduino Pro or Pro Mini (3,3V, 8 MHz) /w ATmega328&amp;lt;/code&amp;gt;. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert, kann man in der IDE auch direkt &amp;lt;code&amp;gt;panStamp&amp;lt;/code&amp;gt; als Plattform auswählen.&lt;br /&gt;
* Nun muss unter &amp;lt;code&amp;gt;Tools/Serieller Port&amp;lt;/code&amp;gt; noch der richtigen &#039;&#039;&#039;Com-Port&#039;&#039;&#039; auswählen werden, unter dem der panStick eingebunden worden ist (entsprechend Gerätemanager).&lt;br /&gt;
* Als letztes unter &amp;lt;code&amp;gt;Tools/&#039;&#039;&#039;Programmer&#039;&#039;&#039;&amp;lt;/code&amp;gt; noch den &amp;lt;code&amp;gt;AVRISPx mkII&amp;lt;/code&amp;gt; auswählen.&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.6.x vorbereiten ===&lt;br /&gt;
Eine Installationsanleitung für Arduino IDE 1.6.4 ist unter folgendem Link zu finden:&lt;br /&gt;
:https://github.com/panStamp/panstamp/wiki/Installing-panStamp-cores-and-libraries-for-Arduino&lt;br /&gt;
&lt;br /&gt;
=== Sketch vorbereiten, kompilieren und hochladen ===&lt;br /&gt;
* Den Sketch lädt man von der entsprechenden Quelle und entpackt die Dateien in einen Unterordner z.B. parallel zum libraries-Ordner (unter &amp;quot;Eigene Dateien&amp;quot;). Der Ordner darf &#039;&#039;&#039;nicht im&#039;&#039;&#039; libraries-Ordner liegen, da die Arduino IDE dort das Speichern nicht zulässt. Innerhalb des Unterordners erwartet die IDE die Dateien in einen Unterordner namens &amp;quot;sketch&amp;quot;.&lt;br /&gt;
* sketch.ino oder ähnlich in der Arduino IDE öffnen.&lt;br /&gt;
* Nun entsprechend den Bedürfnissen auf dem geöffneten Reiter in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompilieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den panStamp laden.&lt;br /&gt;
&lt;br /&gt;
Bezüglich der Anpassung des Sketches sind einige spezifische Informationen unten bei den expliziten Anwendungen ergänzt.&lt;br /&gt;
&lt;br /&gt;
=== Hexfile hochladen mit XLoader ===&lt;br /&gt;
Um ein fertig kompiliertes HEX-File hochzuladen, soll dieses über ein Programm namens XLoader möglich sein. [[http://xloader.russemotto.com]]&lt;br /&gt;
&lt;br /&gt;
== unter Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Installation panStick ===&lt;br /&gt;
Zum einen kann es sein, dass der panStick automatisch unter /dev/ttyUSBx eingebunden wird. &amp;quot;x&amp;quot; steht für eine freie fortlaufende Nummer.&lt;br /&gt;
&lt;br /&gt;
Falls er nicht automatisch angelegt worden ist, kann man zunächst prüfen, ob dieser überhaupt eingebunden und richtig erkannt wurde.&lt;br /&gt;
 lsusb&lt;br /&gt;
Sollte etwas Ähnliches zurückmelden:&lt;br /&gt;
 Bus 003 Device 002: ID 0403:0000 Future Technology Devices International, Ltd H4SMK 7 Port Hub&lt;br /&gt;
&lt;br /&gt;
Falls das Device nicht automatisch angelegt worden ist, muss dieses ggf. von Hand erledigen. {{Link2Forum|Topic=12487 |Message=87746 }}&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehl sollte in der Liste ein  ttyUSB auftauchen. Normalerweise mit der Nummer 188.&lt;br /&gt;
 cat /proc/devices&lt;br /&gt;
&lt;br /&gt;
Das Device wird dann angelegt mit:&lt;br /&gt;
 sudo mknod /dev/ttyUSB0 c 188 0&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss für den Betrieb des panStick das ftdi_sio Modul zur Verfügung stehen. Dieses lässt sich prüfen mit&lt;br /&gt;
 lsmod&lt;br /&gt;
&lt;br /&gt;
Diese Voraussetzung könnte den Betrieb an einer Fritzbox erschweren, da nicht sicher ist, ob dieses Modul standardmäßig immer installiert ist.&lt;br /&gt;
&lt;br /&gt;
Legt man das Device von Hand an, kann es sein, dass die Berechtigungen nicht richtig gesetzt sind.&lt;br /&gt;
 2015.04.23 22:20:06 3: Opening panStick device /dev/ttyUSB0 &lt;br /&gt;
 2015.04.23 22:20:06 3: Can&#039;t open /dev/ttyUSB0: Permission denied&lt;br /&gt;
&lt;br /&gt;
Das Device sollte für die Gruppe dialout Lese-/Schreibberechtigungen haben.&lt;br /&gt;
Ist dieses nicht der Fall, lassen sich diese über diesen Befehlt setzen. Damit wird der &amp;quot;Besitzer&amp;quot; festgelegt.&lt;br /&gt;
 sudo chown root:dialout ttyUSBx&lt;br /&gt;
&lt;br /&gt;
Hiermit werden die Berechtigungen gesetzt.&lt;br /&gt;
 sudo chmod a+rw /dev/ttyUSBx&lt;br /&gt;
&lt;br /&gt;
Der Benutzer &amp;quot;fhem&amp;quot; sollte selbstverständlich der Gruppe &amp;quot;dialout&amp;quot; angehören. Ist dieses nicht der Fall:&lt;br /&gt;
 sudo adduser fhem dialout&lt;br /&gt;
&lt;br /&gt;
Falls dem nicht so sein sollte, hilft ggf. einer dieser beiden Links weiter:&lt;br /&gt;
[[https://www.youtube.com/watch?v=UOECwHhCWRg]] [[http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/07/15/bbb--usb-io-with-ftdi-ft2232h]] bzw. die Installation des Moduls.&lt;br /&gt;
&lt;br /&gt;
=== IDE unter MacOS ===&lt;br /&gt;
&lt;br /&gt;
Da für den RGB-Sketch die IDE 1.0.x benötigt wird und diese Java SE 6 eine Voraussetzung ist, stellt die IDE und MacOS keine Optimale Konfigurationsumgebung dar. Wer es trotzdem probieren möchte&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82055 }}&lt;br /&gt;
&lt;br /&gt;
=== INO ===&lt;br /&gt;
Der RGB-Sketch wurde mit Hilfe des Tools INO entwickelt. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82139 }}&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt am leichtesten mit Hilfe des Tools pip.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen für das Tool sind darüber hinaus picocom für die Kommunikation mit der seriellen Schnittstelle und die Arduino. Im gleichen Zuge lässt sich pip installieren.&lt;br /&gt;
Die benötigten Pakete werden über folgenden Aufruf installiert&lt;br /&gt;
 sudo apt-get install picocom python-pip arduino&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt im Anschluss über&lt;br /&gt;
 sudo pip install ino&lt;br /&gt;
&lt;br /&gt;
Die für einen Sketch erforderlichen libs werden in den entsprechenden lib Ordner kopiert (dort in entsprechenden Unterordnern).&lt;br /&gt;
&lt;br /&gt;
Die Pfade im Zip sind an dieses Tool angepasst.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=94830 }}&lt;br /&gt;
&lt;br /&gt;
Der serielle Port in der ino.ini muss selbstverständlich an die passende dev-Schnittstelle angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Als letztes sind die Parameter für das Board noch in die board.txt unter /usr/share/arduino/hardware/arduino einzutragen. Die Parameter lassen sich von hier extrahieren [http://old.panstamp.com/downloads] bzw. lauten für den AVR&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##############################################################&lt;br /&gt;
&lt;br /&gt;
panstamp.name=PanStamp v2.0 (3.3V, 8 MHz) w/ ATmega328&lt;br /&gt;
&lt;br /&gt;
panstamp.upload.protocol=arduino&lt;br /&gt;
panstamp.upload.maximum_size=30720&lt;br /&gt;
panstamp.upload.speed=57600&lt;br /&gt;
&lt;br /&gt;
panstamp.bootloader.low_fuses=0xE2&lt;br /&gt;
panstamp.bootloader.high_fuses=0xD8&lt;br /&gt;
panstamp.bootloader.extended_fuses=0x07&lt;br /&gt;
panstamp.bootloader.path=atmega&lt;br /&gt;
panstamp.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex&lt;br /&gt;
panstamp.bootloader.unlock_bits=0x3F&lt;br /&gt;
panstamp.bootloader.lock_bits=0x0F&lt;br /&gt;
&lt;br /&gt;
panstamp.build.mcu=atmega328p&lt;br /&gt;
panstamp.build.f_cpu=8000000L&lt;br /&gt;
panstamp.build.core=arduino&lt;br /&gt;
panstamp.build.variant=standard&lt;br /&gt;
&lt;br /&gt;
##############################################################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen: Jedes Mal, wenn die Arduino ein Update erhält, wird vermutlich diese Datei überschrieben, so dass die Eintragung wiederholt werden muss.&lt;br /&gt;
&lt;br /&gt;
Hier sind die grundlegendsten Befehle beschrieben [http://inotool.org/quickstart].&lt;br /&gt;
&lt;br /&gt;
Wechselt man nun in das Verzeichnis z.B. des RGBdriver, lässt die der Sketch kompilieren über&lt;br /&gt;
 ino build&lt;br /&gt;
&lt;br /&gt;
Und hochladen über&lt;br /&gt;
sudo ino upload&lt;br /&gt;
&lt;br /&gt;
; Troubeshooting&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=134786 }}&lt;br /&gt;
&lt;br /&gt;
== over-the-air (derzeit) nur NRG ==&lt;br /&gt;
&lt;br /&gt;
Die neueren panStamp NRGs können seit einiger Zeit auch over-the-air geflasht werden, wie hier im zugehörigen Forumthread beschrieben [[http://forum.fhem.de/index.php/topic,30589.0.html]].&lt;br /&gt;
&lt;br /&gt;
== Was überlebt das Flashen==&lt;br /&gt;
Bestimmte Konfigurationen überstehen das Flashen, dieses sind zumindest Adresse und Intervall, die nicht neu gesetzt werden müssen [http://forum.fhem.de/index.php/topic,12487.msg87560.html#msg87560].&lt;br /&gt;
&lt;br /&gt;
== EEPROM löschen ==&lt;br /&gt;
Das EEPROM lässt sich komplett löschen, indem man in der setup() dieses hier einträgt [http://forum.fhem.de/index.php/topic,13890.msg156868.html#msg156868].&lt;br /&gt;
 eepromToFactoryDefaults()&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp&amp;diff=11908</id>
		<title>PanStamp</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp&amp;diff=11908"/>
		<updated>2015-08-06T13:56:27Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Schreibweise auf panStamp (kleines p)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V (panStick: 5V USB)&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery (panStick: USB)&lt;br /&gt;
|HWSize=17.7 x 30.5 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel, als mutmaßlicher Eingangsartikel zu dem Thema, beschreibt das FHEM Modul panStamp, was das Funkinterface zu FHEM bildet. Eine [[panStamp_(Systemübersicht)|Systemübersicht]] ist in einem separaten Artikel beschrieben. Der Focus liegt hier natürlich auf die Integration mit FHEM. Zu der Hardware [[panStamp]] gibt es Herstellerseitig eine eigenen Community mit [http://www.panstamp.org/forum/ Forum] und [https://github.com/panStamp/panstamp/wiki Wiki], sowie [https://github.com/panStamp/panstamp/wiki/Downloads Downloads] auf [https://github.com/panStamp Github].&lt;br /&gt;
&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Der [[panStamp]] Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;. Zur Kommunikation in einem [[panStamp]] Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([https://github.com/panStamp/panstamp/wiki/Simple%20Wireless%20Abstract%20Protocol SWAP]). Um einen [[panStamp]] in Betrieb zu nehmen muss er unbedingt mit einer Antenne oder einem Stück Draht in der [https://github.com/panStamp/panstamp/wiki/Antennae richtigen Länge] bestückt sein. Ohne Antenne funktioniert die Übertragung nicht, auch nicht auf kurze Distanzen!&lt;br /&gt;
&lt;br /&gt;
== Allgemein ==&lt;br /&gt;
Die Integration in FHEM erfolgt über eine [[panStamp_(Systemübersicht)#FHEM_Module|Reihe von Modulen]] die im Folgenden und [[:Kategorie:panStamp|anderen]] Artikel genauer beschrieben sind. Das Modul [[panStamp]] erstellt dabei das IO-Device in FHEM.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Als Schnittstelle zwischen FHEM und einem [[panStamp]] Netzwerk dient entweder ein [[panStick]] (USB Stick mit aufgestecktem panStamp) oder ein panShield mit integriertem [[panStamp]] an einem Raspberry Pi. Der so angebundene [[panStamp]] wird mit einem (bei Auslieferung des panStamps vorinstallierten) [[panStick|Modem-Sketch]] als RF-Modem verwendet und über das FHEM Modul [[panStamp]] angesprochen. Der [[panStick]] kann auch per USB an einer anderen Serverhardware angebunden werden. Die Kommunikation zu FHEM erfolgt dann z.B. über ser2net oder FHEM2FHEM über LAN.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
Das Device [[panStick]] wird derzeit (01.05.2015) nicht durch autocreate angelegt. Daher muss es manuell entsprechend folgendem Befehl angelegt werden:&lt;br /&gt;
 define panStick panStamp /dev/ttyUSBx@38400&lt;br /&gt;
Die Schnittstelle (/dev/ttyUSBx) muss entsprechend der lokal verwendeten Schnittstelle angepasst werden. Für die Einrichtung des [[panStick]] innerhalb des Betriebssystem siehe [[Programmierung_eines_panStamp#Installation_panStick_2|hier]]&lt;br /&gt;
&lt;br /&gt;
Dieses [[panStamp]] Device, der [[panStick]], versucht dann alle panStamps per [[SWAP]]-Broadcast zu finden und per [[autocreate]] anzulegen, wenn dieses aktiv sind. Die weitere Funktion übernimmt das Modul [[SWAP]], was das Funkprotokoll der [[panStamp]] Module in FHEM implementiert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Betrieb an der Fritzbox&#039;&#039;&#039;&lt;br /&gt;
Spezialitäten zum Betrieb an einer Fritzbox sind hier [http://forum.fhem.de/index.php/topic,12487.msg87778.html#msg87778] und hier [http://forum.fhem.de/index.php/topic,12487.msg95914.html#msg95914] beschrieben. Es scheint nur der hintere USB-Anschluss für die Verwendung zu laufen. Außerdem muss der USB-Fernanschluss deaktiviert sein.&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Für den [[panStick]] gibt es keine modulspezifischen Attribute.&lt;br /&gt;
&lt;br /&gt;
=== set-Befehle ===&lt;br /&gt;
&lt;br /&gt;
* discover?&lt;br /&gt;
Mit diesem Befehl wird eine Broadcast SWAP-Message abgesetzt, die alle empfangenden panStamps dazu veranlassen, sich zu melden. Batteriebetriebenen panStamps können systembedingt nur identifiziert werden, wenn diese Empfangsbereit sind und sich nicht im Schlafmodus befinden.&lt;br /&gt;
&lt;br /&gt;
* raw&lt;br /&gt;
Ist der [[panStick]] eingerichtet und meldet &amp;quot;Initialized&amp;quot;, kann über das [[panStick]] device direkt eine raw Message abgesetzt werden. Diese ist zurzeit eigentlich immer eine SWAP Nachricht wie z.B. &lt;br /&gt;
 set panStick raw 00010000010000&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird ein Broadcast an alle abgesetzt, damit diese ihre ID und ihren ProductCode zurück an FHEM senden. Das macht der [[panStick]] nach dem Initialisieren auch einmal automatisch um alle nicht schlafenden Devices per [[autocreate]] anlegen zu können.&lt;br /&gt;
Mit diesem Befehl &amp;quot;raw&amp;quot; lassen sich [[SWAP]]-Messages direkt absetzten, was vor allen Dingen dann hilfreich sein kann, wenn man vermutet, dass die Kommunikation über die modulgestützten Befehle fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== Neue panStamps in Betrieb nehmen ===&lt;br /&gt;
&#039;&#039;&#039;Info: Das [[SWAP]] Modul unterstützt [[autocreate]]. Bei der Inbetriebnahme ist [[autocreate]] zu aktivieren!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, da sie zuerst mit einer eindeutigen Device-Adresse (ungleich &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; und grösser &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;) versehen werden müssen. Bei batteriebetriebenen Sensoren sollte auch das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in Sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
Für panStamp-Hardware im Power-Down-Modus werden diese Kommandos in eine Warteschlange gestellt und übertragen, sobald die panStamp-Hardware seine Initialisierungssequenz durchläuft. Hierzu ist nach Absetzen der Kommandos aus FHEM die Reset-Taste an der panStamp-Hardware zu drücken oder die Stromquelle erneut zu verbinden.&lt;br /&gt;
&lt;br /&gt;
Das [[SWAP]]-Modul versucht, panStamp-Hardware mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern. Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
Für batteriebetriebene panStamp-Hardware (genauer: Hardware die den Power-Down-Modus unterstützen) wird das Default Sendeintervall von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden) geändert.&lt;br /&gt;
Es gibt mit bestimmten [[panStamp]] lib Versionen das Problem das ein Wert von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; in Systemregister &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; zum Überlauf führt und dann ununterbrochen SWAP Nachrichten gesendet werden. Im FHEM Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen Host-Systemen (z.B. FritzBox) nicht, weil der [[panStamp]] so schnell sendet, dass FHEM so mit dem Abarbeiten beschäftigt ist, dass es selber nicht zum Senden kommt.&lt;br /&gt;
Zur Abhilfe kann im Sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden. Der Sketch ist dann zu flashen und wenn der Sketch einmal durchgelaufen ist, können diese beiden Zeilen wieder entfernen werden und der [[panStamp]] muss noch mal geflasht werden. Ansonsten wird die Adresse bei jedem Start erneut auf &amp;lt;code&amp;gt;5555&amp;lt;/code&amp;gt; gesetzt.&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ soilmoisture sketch]  auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11901</id>
		<title>SWAP</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11901"/>
		<updated>2015-08-06T06:23:49Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Rechtschreibfehler korrigiert und Baustelle entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:SWAP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Modul zur allgemeinen Ansteuerung sämtlicher PanStamp Boards.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=SWAP&lt;br /&gt;
|ModForumArea=&lt;br /&gt;
|ModFTopic=&lt;br /&gt;
|ModTechName=34_SWAP.pm&lt;br /&gt;
|ModOwner=André/ justme1968 ({{Link2FU|430|Forum}} / [[Benutzer Diskussion:Justme|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[SWAP]] ist das Basismodul für die Unterstützung der PanStamp Baugruppen. Zur Kommunikation in einem PanStamp Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([https://github.com/panStamp/panstamp/wiki/Simple%20Wireless%20Abstract%20Protocol SWAP]).&lt;br /&gt;
Die komplette SWAP- Kommunikation ist registerbasiert und erfolgt mit Nachrichten um diese Register abzufragen, zu setzen und deren Inhalt zu senden. Alle Register lassen sich lesen, manche auch beschreiben. Für eine tiefgreifende FHEM Integration können weitere Module (wie z.B. [[SWAP_0000002200000003]]) vorhanden sein. Diese Module bauen, als 3. Ebene, auf das SWAP Modul (2. Ebene) auf und bedienen im backend ebenfalls die panStamp-Hardware über die Register. Der panStamp Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Für den Betrieb ist XML:Simple notwendig, dass bei Bedarf folgendermaßen nachinstalliert werden kann [http://forum.fhem.de/index.php?topic=12487.msg87373#msg87373].&lt;br /&gt;
 sudo apt-get install libxml-simple-perl&lt;br /&gt;
Diese Abhängigkeit kann beim Betrieb auf einer Fritzbox ebenfalls zu Problemen führen. Das [[SWAP]] Modul greift auf das [[PanStamp]] Modul zu, was vorher per &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt; angelegt werden muss.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005-detail.png|mini|hochkant=2.5|Readings]]&lt;br /&gt;
Bei SWAP geht alle Kommunikation über [https://github.com/panStamp/panstamp/wiki/Simple%20Wireless%20Abstract%20Protocol#registers-and-values &#039;&#039;&#039;Register&#039;&#039;&#039;], dies sind unterschiedlich lange Werte die entweder nur gelesen oder gelesen und geschrieben werden können.&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt;) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers] und beliebig viele, sketchabängige Userregister (&amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;xx&amp;lt;/code&amp;gt;) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers#custom-registers] bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Definition Files&#039;&#039;, die in &amp;lt;code&amp;gt;.../FHEM/lib/SWAP&amp;lt;/code&amp;gt; zu finden sind. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Definition File erfolgt über den ProductCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt&#039;&#039;-ID [https://github.com/panStamp/panstamp/wiki/How-to-develop-your-own-SWAP-device#specify-your-product-code] gebildet wird. Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
In den Systemregistern  steht z.B. der ProductCode, die Device Adresse im SWAP Protokoll und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert und die Werte gehen auch beim Neustart nicht verloren. Beim aller ersten Starten ist das EEPROM mit &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; initialisiert und alle konfigurierbaren Register haben diesen Wert. Also z.B. Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; und Intervall &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; (HEX in Sekunden, das wären dann zwischen 18 und 19 Stunden).&lt;br /&gt;
Die Inhalte der Systemregister stehen als INTERNAL, im oberen Bereich der Detail Ansicht eines FHEM-Device, in FHEMWEB, die Userregister als Readings im unteren.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen ProductCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
Alle low Level Dinge wie Register ID oder Register Wert können mit &#039;&#039;&#039;hex Werten&#039;&#039; direkt angepasst werden.&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in Sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 08 &amp;lt;Netzwerk ID als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87436 }}&lt;br /&gt;
&lt;br /&gt;
Das [[SWAP]]-Modul stellt unter anderem folgende grundlegende Funktionalitäten zur Verfügung&lt;br /&gt;
* Es wird eine command Queue für panStamp-Hardware im power down Modus gehalten. Sobald die panStamp-Hardware online (SYNC Modus) kommt werden die Kommandos von FHEM automatisch übertragen.&lt;br /&gt;
* Die userReadings für &#039;menschenlesbare&#039; Readings werden anhand des Device Definition Files automatisch erzeugt&lt;br /&gt;
* Es ist möglich direkt Endpoints (Teile eines Registers) zu schreiben&lt;br /&gt;
* (Fast) keine hardkodierte Sonderbehandlung mehr für das RGB-Board. Das SWAP Modul kann mit jedem beliebige Swap Device umgehen.&lt;br /&gt;
* Es gibt eine dritte (optionale) Modulebene neben dem [[PanStamp]] FHEM-Modul (1. Ebene) für die Hardware und dem SWAP Modul (2. Ebene) für das Protokoll. Mit dem generellen SWAP Modul lasen sich alle SWAP Devices &#039;&#039;zu Fuß&#039;&#039; über die Register ansprechen. Um die Register auf einer höheren Ebene auf FHEM Kommandos wie on/off/on-for-timer zu mappen ist dann ein Modul der 3. Ebene notwendig. {{Link2Forum|Topic=12487 |Message=78502 }}&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
&#039;&#039;&#039;Info: Das SWAP Modul unterstützt autocreate. Bei der Inbetriebnahme sollte autocreate aktiviert sein, da dies die Einrichtung deutlich vereinfacht.&#039;&#039;&#039;&lt;br /&gt;
Wenn der [[panStick]] läuft, sollten die SWAP-Devices per autocreate angelegt werden, sobald sie das erste Mal senden, z.B. nach dem Einschalten oder nach einem Reset. Normalerweise werden beim autocreate alle Werte abgefragt und angezeigt. Das geht normalerweise ohne jedes Zutun. &lt;br /&gt;
&lt;br /&gt;
PanStick rein -&amp;gt; broadcast -&amp;gt; discovery -&amp;gt; anlegen. &lt;br /&gt;
&lt;br /&gt;
Bei Devices mit power down Mode erfolgt dieses das erste Mal wenn sie Strom haben. &lt;br /&gt;
&lt;br /&gt;
Alle panStamps durchlaufen beim Starten eine bestimmte Einschaltsequenz. Sie melden sich mit ihrer ID und ihrem ProductCode. Die ID ist die SWAP Device Adresse und bei einem frisch geflashten panStamp in der Regel &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;. Das SWAP Modul versucht, ein Device mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0 - FE&amp;lt;/code&amp;gt; zu ändern.&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, sonst haben mehrere die gleiche Adresse und das gibt Konflikte. &lt;br /&gt;
&lt;br /&gt;
Wer mehrere Devices hat, sollte jedem nach dem Anlegen mit &lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;Device Adresse als 2 stellige hex zahl&amp;gt; &lt;br /&gt;
eine eigene ID zuweisen. Die landen auf dem panStamp im EEPROM und sind auch nach Neustart noch vorhanden. &lt;br /&gt;
&lt;br /&gt;
Die anderen Adressen sind wie folgt belegt:&lt;br /&gt;
* &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; ist die Broadcast-ID&lt;br /&gt;
* &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; ist die ID des [[panStick]] am FHEM-System&lt;br /&gt;
* &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; ist die Default ID, die jeder panStamp im Auslieferungszustand besitzt&lt;br /&gt;
* &amp;lt;code&amp;gt;F0-FE&amp;lt;/code&amp;gt; sind die IDs, auf die autocreate die Adresse automatisch ändert, wenn ein neuer mit der ID &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; erkannt wird und kein entsprechender Device-Name definiert ist.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87261 }}&lt;br /&gt;
&lt;br /&gt;
Ändert man die Adresse, dauert es einen Augenblick, bis alle Register neu übertragen worden sind. &lt;br /&gt;
&lt;br /&gt;
Autocreate ändert bei der Einrichtung und Änderung der ID auch automatisch den Namen. Belässt man die ID im Bereich &amp;lt;code&amp;gt;F0 - FE&amp;lt;/code&amp;gt; und ändert den Namen des Device, ist zu berücksichtigen, dass autocreate für neue Devices eine freie neue Adresse anhand der Device-Namen sucht. Dadurch könnte es zu Doppeltverwendung von IDs kommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ zum autocreate kann man ein Device auch von Hand anlegen mit&lt;br /&gt;
 define &amp;lt;device&amp;gt; SWAP &amp;lt;ID&amp;gt;&lt;br /&gt;
Bis allerdings der ProductCode nicht per Attribut hinterlegt ist, was bei autocreate ebenfalls automatisch passiert, funktionieren nur die grundlegenden Funktionen bis zur 2. Modulebene.&lt;br /&gt;
&lt;br /&gt;
=== set ===&lt;br /&gt;
Ist ein SWAP-Device definiert, stehen folgende set-Befehle zur Verfügung:&lt;br /&gt;
* regGet &amp;lt;reg&amp;gt;&lt;br /&gt;
Fragt den Wert des Registers mit der ID &amp;lt;reg&amp;gt; ab. Für die Systemregister kann hierzu statt der Register ID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87679 }}&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
Schreibt &amp;lt;data&amp;gt; in den Register mit der id &amp;lt;reg&amp;gt;. &amp;lt;data&amp;gt; muss als HEX Zahl angegeben werden. Für die Systemregister kann hierzu statt der Register ID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt;.&amp;lt;ep&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
write &amp;lt;data&amp;gt; to endpoint &amp;lt;ep&amp;gt; of register &amp;lt;reg&amp;gt;. will not work if no reading for register &amp;lt;reg&amp;gt; is available as all nibbles that are not part of endpoint &amp;lt;ep&amp;gt; will be filled from this reading. ?&lt;br /&gt;
&lt;br /&gt;
* statusRequest&lt;br /&gt;
Veranlasst, dass alle Register und deren Werte einmal übertragen werden.&lt;br /&gt;
&lt;br /&gt;
* readDeviceXML&lt;br /&gt;
Liest das Device-Definition-XML-File neu ein.&lt;br /&gt;
&lt;br /&gt;
* clearUnconfirmed&lt;br /&gt;
Löscht die Liste der unbestätigten Nachrichten.&lt;br /&gt;
&lt;br /&gt;
* flash [&amp;lt;productCode&amp;gt;|&amp;lt;firmwareFile&amp;gt;]&lt;br /&gt;
Initiiert das „over-the-air“ Firmware update, dass (derzeit) nur von panStamps NRG unterstützt wird.&lt;br /&gt;
** ohne Parameter: Verwendet das SWAP_&amp;lt;current ProductCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;ProductCode&amp;gt;: Verwendet das SWAP_&amp;lt;ProductCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;firmwareFile&amp;gt;: Verwendet ein &amp;lt;firmwareFile&amp;gt; als absoluten File-Namen des HEX-Files.&lt;br /&gt;
&lt;br /&gt;
=== get ===&lt;br /&gt;
* regList&lt;br /&gt;
Listet alle User-Register des SWAP-Device (Readings). &lt;br /&gt;
&lt;br /&gt;
* regListAll&lt;br /&gt;
Listet alle Register des SWAP-Device (Internals und Readings). &lt;br /&gt;
&lt;br /&gt;
* listUnconfirmed&lt;br /&gt;
Listet alle unbestätigten Nachrichten in der Warteschlange auf, also Nachrichten die von FHEM gesendet wurden, aber der Empfang durch das panStamp Modul nicht bestätigt wurde.&lt;br /&gt;
&lt;br /&gt;
* products&lt;br /&gt;
Gibt alle auf dem System bekannten Productcodes nebst Daten aus.&lt;br /&gt;
&lt;br /&gt;
* deviceXML&lt;br /&gt;
Gibt die Daten des zum derzeit zum per Attribut (ProductCode) eingerichteten Device-XML-Files aus.&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Wird der ProductCode bei der Definition nicht gesetzt, stehen auch nur die Standardbefehle bei zur 2. Modulebene zur Verfügung. &lt;br /&gt;
&lt;br /&gt;
* createUnknownReadings&lt;br /&gt;
Erzeug Readings auch für Register, die im Device-XML-File nicht definiert werden.&lt;br /&gt;
&lt;br /&gt;
* ProductCode&lt;br /&gt;
Legt den ProductCode eines SWAP-Device fest und liest dadurch das dazugehörige Device-Definition-XML-File ein. Erst wenn der ProductCode als Attribut vorgegeben wurde, z.B. für einen RGB-Sketch:&lt;br /&gt;
 attr &amp;lt;device&amp;gt; ProductCode 0000002200000003&lt;br /&gt;
kommen zu den allgemeinen FHEM set- und get-Kommandos des [[SWAP]] Modul die spezifischen der 3. Modulebene 35_SWAP_&amp;lt;productcode&amp;gt;.pm mit hinzu (Siehe z.B. [[SWAP_0000002200000003]]). Dann werden die SWAP-Nachrichten an das entsprechende Modul weitergegeben und dort verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices, die während der Definition nicht aktiv sind, muss dieses Attribut manuell angelegt werden.&lt;br /&gt;
&lt;br /&gt;
=== Device Definition File ===&lt;br /&gt;
Mit Hilfe der im jeweiligen Device Definition File hinterlegten Beschreibung werden hierzu automatisch userReadings angelegt (Wenn den Endpoints eine Unit mit Factor zugewiesen ist) die neben den reinen Registerwerten in hex auch &#039;&#039;menschenlesbare&#039;&#039; readings der Sensorwerte erzeugen. &lt;br /&gt;
Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
Das entsprechende Device Definition File liegt unter ./FHEM/lib/SWAP wie hier beschrieben [http://forum.fhem.de/index.php/topic,12487.msg86257.html#msg86257].&lt;br /&gt;
&lt;br /&gt;
Hier Beispielhaft anhand eines BMP085 Temperatur- und Luftdrucksensors dargestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
attr temppress userReadings voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, temperature:0C.0-Temperature {hex(ReadingsVal($name,&amp;quot;0C.0-Temperature&amp;quot;,&amp;quot;0&amp;quot;))*0.1-50}, pressure:0C.1-Pressure {hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01}, pressureNN:0C.1-Pressure {sprintf(&amp;quot;%.2f&amp;quot;,hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01 + AttrVal(&amp;quot;global&amp;quot;, &amp;quot;altitude&amp;quot;, 0)/8.5)}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005.png|mini|hochkant=2.5|Resultat eines stateFormat]]&lt;br /&gt;
Aus diesen Readings kann dann mit stateFormat die gewünschte Darstellung für die Raumübersicht erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
attr temppress stateFormat {sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;temperature&amp;quot;,0)).&amp;quot;°C &amp;quot;.sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;pressureNN&amp;quot;,0)).&amp;quot;mbar&amp;quot;}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel ist das Definition File für das RGB-Board rgbdriver.xml.&lt;br /&gt;
&lt;br /&gt;
=== SWAP Register ===&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt;) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers] und beliebig viele sketchabängige Userregister (&amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt; - &amp;lt;code&amp;gt;xx&amp;lt;/code&amp;gt;)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Definition Files&#039;&#039;. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Definition File erfolgt über den ProductCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt-Id&#039;&#039; gebildet wird.&lt;br /&gt;
&lt;br /&gt;
In den Systemregistern stehen z.B. der ProductCode, die Deviceadresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert, so dass die Werte auch bei einem Neustart nicht verlorengehen. Beim ersten Starten eines panStamp ist das EEPROM mit &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; initialisiert und alle konfigurierbaren Register haben diesen Wert, also z.B. die Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; und das Intervall &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; (zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Systemregister werden in der Device Detailansicht bei den InternalValues im oberen Bereich angezeigt und die User-Register als reading im unteren Bereich.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen ProductCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== Übersicht der Register anzeigen ===&lt;br /&gt;
Sobald ein SWAP Device mit dem ProductCode korrekt angelegt wurde, können die Userregister bzw. alle Register aufgelistet werden: &lt;br /&gt;
 get &amp;lt;device&amp;gt; regList&lt;br /&gt;
 get &amp;lt;device&amp;gt; regListALL&lt;br /&gt;
&lt;br /&gt;
=== Register auslesen oder setzen ===&lt;br /&gt;
Einzelne Register können abgefragt werden mit&lt;br /&gt;
 set &amp;lt;device&amp;gt; regGet &amp;lt;ID&amp;gt;&lt;br /&gt;
oder auch gesetzt werden durch&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet &amp;lt;ID&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
Für die Systemregister kann hierzu statt der Register ID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=== Intervall bei Sketch mit power down / batterie betriebene PanStamps ===&lt;br /&gt;
panStamp Hardware mit power down Mode durchlaufen während des Booten (beim Einschalten oder bei einem Reset) eine 3 Sekunden Schleife und warten auf SWAP-Kommandos, die z.B. Register für das Sendeintervall oder sonstige Konfigurationen ändern. Nach dieser Zeit wird die normale Loop Schleife im Arduino Sketch gestartet. Normaler Weise werden dann die Register mit den Sensorwerten an FHEM gesendet. Power down Devices gehen danach schlafen (power down Modus mit extrem niedrigem Stromverbrauch) und wachen regelmäßig auf (TX_INTERVAL aus dem Systemregister) um die Sensoren auszulesen und die Werte wieder an FHEM zu senden. Das Sendeintervall betrifft nur das Senden der Sensorwerte. Normalerweise empfängt das panStamp Modul in diesem Modus keine Befehle mehr. Das passiert nur einmalig nach einem Reset. Je nach Sketch kann das natürlich variieren und anders programmiert sein!&lt;br /&gt;
&lt;br /&gt;
Nachrichten an eine panStamp-Hardware im power-down-state werden in FHEM gepuffert (siehe INTERNAL SWAP_CMDsPending) und dann an die panStamp-Hardware geschickt, sobald dieses sich im SYNC Status befindet. Dieses ist typischer Weise nach dem Startup z.B. nach einem Reset der Fall.&lt;br /&gt;
&lt;br /&gt;
Bei batteriebetriebenen Sensoren sollte das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;Intervall in Sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87409}}&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene panStamp-Module (genauer: Module die den Power-Down-Modus unterstützen) wird das Default Sendeintervall bei der Einrichtung automatisch von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden = 15 Minuten) geändert. Das Intervall wird nur automatisch gesetzt, wenn pwrdownmode im device definition file true ist. {{Link2Forum|Topic=12487 |Message=89205}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt mit bestimmten panStamp lib Versionen das Problem das ein Wert von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; im Systemregister &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; zum Überlauf führt und der panStamp dann ununterbrochen sendet. Im [[SWAP]] Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen host Systemen (z.B. FritzBox) nicht, weil der panStamp so schnell sendet, dass FHEM mit dem Abarbeiten so beschäftigt und ausgelastet ist, dass es selber nicht zum Senden kommt. Zur Abhilfe kann im Sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden. Den Sketch dann noch mal flashen. Wenn der panStamp mit diesem Sketch einmal durchgelaufen ist, können diese beiden Zeilen wieder entfernen und der panStamp noch mal geflasht werden. Damit wurde das Sendeintervall einmalig auf &amp;lt;code&amp;gt;0x5555&amp;lt;/code&amp;gt; (0x5555 in Dezimal = 21.845 (Sekunden), entspricht 364 Minuten) gesetzt.&lt;br /&gt;
&lt;br /&gt;
=== Device Adresse automatisch setzen ===&lt;br /&gt;
Erkennt das SWAP Modul eine panStamp-Hardware mit der Adresse &amp;lt;code&amp;gt;0xFF&amp;lt;/code&amp;gt; wird automatisch eine neue Adresse durch das [[SWAP] Modul vergeben. Die automatisch vergebenen Adressen sind im Bereich &amp;lt;code&amp;gt;0xF0 - 0xFE&amp;lt;/code&amp;gt;. Das soll das Inbetriebnehmen von mehreren panStamp-Hardwaremodulen gleichzeitig erleichtern. Der automatisch vergeben Adressbereich ist begrenzt und sollte nur temporär verwendet werden. Nach der Inbetriebnahme sollte den panStamp Modulen eine individuelle, lokal passende Adresse geändert werden. {{Link2Forum|Topic=12487 |Message=87919}}&lt;br /&gt;
Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87859}}&lt;br /&gt;
&lt;br /&gt;
Im Log sollte etwas in dieser Art auftauchen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:14:29 2: autocreate: define SWAP_F0 SWAP FF 000000010000000E&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP_F0: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP SWAP_F0: changing 09-DeviceAddress from default FF to F0&lt;br /&gt;
2013.07.29 20:14:30 3: SWAP SWAP_F0: changing 0A-PeriodicTxInterval from default FFFF to 0384 (900 seconds)&lt;br /&gt;
&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:16:35 2: autocreate: define SWAP_F1 SWAP_0000002200000003 FF 0000002200000003&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP_F1: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:16:36 3: SWAP SWAP_F1: changing 09-DeviceAddress from default FF to F1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registerinhalt von hex auf Dezimal umrechnen  ===&lt;br /&gt;
Die Registerinhalte sind immer hexadezimale Zahlenwerte. In den meisten Fällen werden diese umgerechnet werden in Dezimalzahlen.&lt;br /&gt;
Hierzu kann die Perlfunktion hex() verwendet werden.&lt;br /&gt;
Beide Funktionsaufrufe geben in diesem Beispiel die Dezimalzahl 250 aus:&lt;br /&gt;
 {hex(&amp;quot;FA&amp;quot;)}&lt;br /&gt;
 {hex(&amp;quot;0xFA&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: panStamp soilmoisture Sketch in FHEM einbinden ===&lt;br /&gt;
Der panStamp soilmoisture Sketch aus dem examples Verzeichnis ist mit dem Standard SWAP Modul kompatibel. &lt;br /&gt;
&lt;br /&gt;
Ein Artikel über ein selbst entwickeltes PanStamp Batterieboard zum Anschluss von Analogsensoren/1Wire und Solarversorgung ist hier [[Bodenfeuchtesensor]] beschrieben. Die Weiterentwicklung zum Umweltsensor ist hier [[PanStamp_Umweltsensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine für einen Vegetronix Sensor angepasste Version kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Das Übertragungsintervall ist wie üblich über das Register &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; konfigurierbar. Der Sensor wird an GND, D7 für die Versorgungsspannung und A4 für den Messwert angeschlossen. Erfahrungen haben gezeigt, dass bei einem fünfminütigen Übertragungsintervall nach 12 Monaten Laufzeit die Batteriespannung von 1.55V auf 1.4V abfällt. Das würde bedeuten, dass eine Batterie im Batterieboard mindestens eine Laufzeit von drei Jahren haben sollte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;set &amp;lt;MyBodenfeuchte&amp;gt; stateFormat VWC_A%&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
set &amp;lt;MyBodenfeuchte&amp;gt; userReadings Level0_Voltage {hex(ReadingsVal($name,&amp;quot;0C.0-Moisture_level_0&amp;quot;,&amp;quot;0&amp;quot;))*(3.3/1024)}, VWC_A:0C.0-Moisture_level_0 {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**4 + 7.10835 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 - 0.569557) / ((ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 + 1))}, voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, battery:0B-Voltage {(ReadingsVal($name,&amp;quot;voltage&amp;quot;,&amp;quot;0&amp;quot;)&amp;lt;1?&amp;quot;low&amp;quot;:&amp;quot;ok&amp;quot;)}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ soilmositure-plot.jpg|mini|x100px|Bodenfeuchte]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix1.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix2.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem entsprechend erweiterten Sketch lassen sich auch mehrere Sensoren an einem panStamp auslesen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bilder zeigen eine panStamp/Vegetronix Außeneinheit im IP65-Gehäuse. Dieser Aufbau wird ganzjährig den Witterungseinflüssen ausgesetzt. Die auf den Stab aufgesetzte Antenne muss nicht verwendet werden, bei kürzeren Funkstrecken ist eine innenliegende Drahtantenne ausreichend. Bitte in FHEM den RSSI- und LQI-Wert sowie die Gleichmäßigkeit des Empfangens der 5 Minuten Sendeintervalle dementsprechend beobachten.&lt;br /&gt;
&lt;br /&gt;
== Trouble Shooting ==&lt;br /&gt;
=== value has to be 10 byte(s) in size  ===&lt;br /&gt;
Es besteht die Möglichkeit, dass die Internals aus irgendeinem Grund nicht vollständig sind. &lt;br /&gt;
Abhilfe in einem solchen Falle kann das Absetzen der folgenden beiden Befehlt schaffen&lt;br /&gt;
 set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
 set &amp;lt;device&amp;gt; readDeviceXML&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht zum Erfolg führt, hilft ggf. ein Löschen und neu setzen des ProductCode Attributs.&lt;br /&gt;
{{Link2Forum|Topic=34474.0}}&lt;br /&gt;
&lt;br /&gt;
Das Übertragen aller Daten nach dem Statusrequest kann einen Augenblick dauern.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit:&lt;br /&gt;
Die Fehlermeldung kommt immer wenn FHEM nicht weiß welche Firmware auf der panStamp-Hardware ist. Das passiert wenn irgendetwas in der Kommunikation schief geht während FHEM initialisiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122414}} &lt;br /&gt;
&lt;br /&gt;
=== register 0F is not known ===&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=84257}}&lt;br /&gt;
&lt;br /&gt;
=== Komplette Übersicht eines Device ===&lt;br /&gt;
 list &amp;lt;device&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201467}}&lt;br /&gt;
&lt;br /&gt;
=== fehlender oder falsche ProductCode ===&lt;br /&gt;
Fehlt der ProductCode, werden die zum Sketch zugehörigen Befehle nicht angezeigt und die Register nicht korrekt zugeordnet.&lt;br /&gt;
Verändert man den ProductCode, sollte man im Anschluss folgenden Befehlt absetzten, um alle Register neu auszulesen&lt;br /&gt;
 set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201910}}&lt;br /&gt;
&lt;br /&gt;
=== missing commands und register 00-0A unvollständig ===&lt;br /&gt;
Wenn in den INTERNALS missing commands (SWAP_Sent_unconfirmed) auftauchen und ggf. die Register &amp;lt;code&amp;gt;00-0A&amp;lt;/code&amp;gt; nicht vollständig sind und das INTERNAL &amp;quot;channels&amp;quot; nicht vorhanden ist, gibt es irgendein Kommunikationsproblem.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201939}}&lt;br /&gt;
&lt;br /&gt;
=== Funktion des Autocreate ===&lt;br /&gt;
Beim autocreate wird versucht ein Name für das Device zu vergeben, der zur nächsten freien Adresse passt. Während dieses Prozessen bleibt die Adresse erst mal trotzdem &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;. Erst wenn das Device angelegt wird, kann versucht werden automatisch die Adresse zu setzen, hoffentlich auf die gleiche freie, die beim Namen auch schon gefunden wurde.  {{Link2Forum|Topic=12487 |Message=88110}}&lt;br /&gt;
&lt;br /&gt;
=== Adresse manuell setzen ===&lt;br /&gt;
Um die Adresse manuell bereits in den Sketch einzubauen kann man wie hier beschrieben vorgehen.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122347}}&lt;br /&gt;
&lt;br /&gt;
=== Undefined subroutine &amp;amp;main::XMLin ===&lt;br /&gt;
Erhält man diese Fehlermeldung&lt;br /&gt;
 Undefined subroutine &amp;amp;main::XMLin called at ./FHEM/34_SWAP.pm line 108.&lt;br /&gt;
 &lt;br /&gt;
 2013.09.26 11:34:24 0: ERROR: Cannot autoload SWAP&lt;br /&gt;
 2013.09.26 11:34:24 3: panStick: Unknown code 000A001B000A000000000100000007, help me!&lt;br /&gt;
&lt;br /&gt;
Es fehlt XML::Simple, was folgendermaßen installiert werden kann:&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&lt;br /&gt;
=== PanStamp antwortet nicht/EEprom to factory defaults ===&lt;br /&gt;
Wenn der panStamp nicht antwortet, kann es sein das die Adressen durcheinander gekommen sind. Dann musst man einmal in &amp;lt;code&amp;gt;setup()&amp;lt;/code&amp;gt; ein &amp;lt;code&amp;gt;eepromToFactoryDefaults()&amp;lt;/code&amp;gt; aufrufen und damit flashen. Wenn damit einmal gestartet wurde, die Zeile wieder entfernen und den normalen Sketch flashen. {{Link2Forum|Topic=13890 |Message=121677}}&lt;br /&gt;
&lt;br /&gt;
=== Factory Defaults ===&lt;br /&gt;
Um einen panStamp auf den Auslieferungszustand zurückzusetzen, muss man beim Sketch folgendes in die &amp;lt;code&amp;gt;setup()&amp;lt;/code&amp;gt; Routine einfügen:&lt;br /&gt;
 eepromToFactoryDefaults()&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
&lt;br /&gt;
=== Status LED ===&lt;br /&gt;
Die Status LED auf dem Board wird in der config.h deaktiviert, indem man die Zeit &amp;lt;code&amp;gt;#define LED_DEBUG&amp;lt;/code&amp;gt; mit &amp;quot;//&amp;quot; auskommentiert. {{Link2Forum|Topic=13890 |Message=164731}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_Programmierung&amp;diff=11898</id>
		<title>PanStamp Programmierung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_Programmierung&amp;diff=11898"/>
		<updated>2015-08-06T05:52:22Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Rechtschreibfehler korrigiert und Baustelle entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp Programmierung}}&lt;br /&gt;
== Programmierung eines panStamp ==&lt;br /&gt;
&lt;br /&gt;
=== Installation panStick ===&lt;br /&gt;
Für die Installation des panStick unter Windows gibt es mehrere Möglichkeiten.&lt;br /&gt;
# Installiert man eine Arduino IDE, kann dabei auch der Treiber für den panStick mitinstalliert werden.&lt;br /&gt;
# Treiber von der offiziellen Homepage herunterladen und installieren [http://www.ftdichip.com/]. Die Treiber befinden sich ebenfalls im Unterordner drivers der Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
Bei der Installation kann es sein, dass kein Treiber gefunden wird. Dann muss der entsprechende Treiber manuell ausgewählt werden entsprechend dieser Anleitung [https://www.youtube.com/watch?v=SPdSKT6KdF8].&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.0.x vorbereiten ===&lt;br /&gt;
Zum Flashen der panStamps wird die Arduino IDE benötigt. Eine Installationsanleitung für Arduino IDE 1.0 ist unter folgendem Link zu finden:&lt;br /&gt;
:https://code.google.com/p/panstamp/wiki/firststeps&lt;br /&gt;
&lt;br /&gt;
Die IDE 1.5.x oder höher ist zwar mit den AVRs und NRGs kompatibel, wichtig zu wissen ist allerdings, dass mit dem Wechsel von 1.0.x zu 1.5.x oder höher es größere Änderungen der panStamp/SWAP Librarys gegeben hat. Dadurch lassen sich einige der bislang zur Verfügung stehenden Sketches (derzeit) nicht unter 1.5.x oder höher kompilieren (z.B. der RGBWW-Sketch). Für die IDE 1.0.x gibt es keine passenden Arduino Lib für den NRG [[https://github.com/panStamp/panstamp/wiki/First%20steps]], die daher nur mit den AVRs kompatibel sind. Im Folgenden wird sich für die Programmierung unter Windows daher auf die letzte 1.0.x IDE bezogen.&lt;br /&gt;
&lt;br /&gt;
* Man lädt die &#039;&#039;&#039;Arduino IDE 1.0.x&#039;&#039;&#039; für Windows [[http://arduino.cc/en/Main/OldSoftwareReleases]]. &lt;br /&gt;
* Für bestimmte Sketches müssen noch die entsprechenden Libs hinzugefügt werden (siehe [[panstamp#Sketch konfigurieren|explizite Anwendung]]).&lt;br /&gt;
* Unter &amp;lt;code&amp;gt;Tools/Board&amp;lt;/code&amp;gt; wird das &#039;&#039;&#039;passende Board&#039;&#039;&#039; ausgewählt, dass dem Chip auf dem PanStamp entspricht. Für den panStamp AVR: &amp;lt;code&amp;gt;Arduino Pro or Pro Mini (3,3V, 8 MHz) /w ATmega328&amp;lt;/code&amp;gt;. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert, kann man in der IDE auch direkt &amp;lt;code&amp;gt;panStamp&amp;lt;/code&amp;gt; als Plattform auswählen.&lt;br /&gt;
* Nun muss unter &amp;lt;code&amp;gt;Tools/Serieller Port&amp;lt;/code&amp;gt; noch der richtigen &#039;&#039;&#039;Com-Port&#039;&#039;&#039; auswählen werden, unter dem der panStick eingebunden worden ist (entsprechend Gerätemanager).&lt;br /&gt;
* Als letztes unter &amp;lt;code&amp;gt;Tools/&#039;&#039;&#039;Programmer&#039;&#039;&#039;&amp;lt;/code&amp;gt; noch den &amp;lt;code&amp;gt;AVRISPx mkII&amp;lt;/code&amp;gt; auswählen.&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.6.x vorbereiten ===&lt;br /&gt;
Eine Installationsanleitung für Arduino IDE 1.6.4 ist unter folgendem Link zu finden:&lt;br /&gt;
:https://github.com/panStamp/panstamp/wiki/Installing-panStamp-cores-and-libraries-for-Arduino&lt;br /&gt;
&lt;br /&gt;
=== Sketch vorbereiten, kompilieren und hochladen ===&lt;br /&gt;
* Den Sketch lädt man von der entsprechenden Quelle und entpackt die Dateien in einen Unterordner z.B. parallel zum libraries-Ordner (unter &amp;quot;Eigene Dateien&amp;quot;). Der Ordner darf &#039;&#039;&#039;nicht im&#039;&#039;&#039; libraries-Ordner liegen, da die Arduino IDE dort das Speichern nicht zulässt. Innerhalb des Unterordners erwartet die IDE die Dateien in einen Unterordner namens &amp;quot;sketch&amp;quot;.&lt;br /&gt;
* sketch.ino oder ähnlich in der Arduino IDE öffnen.&lt;br /&gt;
* Nun entsprechend den Bedürfnissen auf dem geöffneten Reiter in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompilieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den panStamp laden.&lt;br /&gt;
&lt;br /&gt;
Bezüglich der Anpassung des Sketches sind einige spezifische Informationen unten bei den expliziten Anwendungen ergänzt.&lt;br /&gt;
&lt;br /&gt;
=== Hexfile hochladen mit XLoader ===&lt;br /&gt;
Um ein fertig kompiliertes HEX-File hochzuladen, soll dieses über ein Programm namens XLoader möglich sein. [[http://xloader.russemotto.com]]&lt;br /&gt;
&lt;br /&gt;
== unter Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Installation panStick ===&lt;br /&gt;
Zum einen kann es sein, dass der panStick automatisch unter /dev/ttyUSBx eingebunden wird. &amp;quot;x&amp;quot; steht für eine freie fortlaufende Nummer.&lt;br /&gt;
&lt;br /&gt;
Falls er nicht automatisch angelegt worden ist, kann man zunächst prüfen, ob dieser überhaupt eingebunden und richtig erkannt wurde.&lt;br /&gt;
 lsusb&lt;br /&gt;
Sollte etwas Ähnliches zurückmelden:&lt;br /&gt;
 Bus 003 Device 002: ID 0403:0000 Future Technology Devices International, Ltd H4SMK 7 Port Hub&lt;br /&gt;
&lt;br /&gt;
Falls das Device nicht automatisch angelegt worden ist, muss dieses ggf. von Hand erledigen. {{Link2Forum|Topic=12487 |Message=87746 }}&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehl sollte in der Liste ein  ttyUSB auftauchen. Normalerweise mit der Nummer 188.&lt;br /&gt;
 cat /proc/devices&lt;br /&gt;
&lt;br /&gt;
Das Device wird dann angelegt mit:&lt;br /&gt;
 sudo mknod /dev/ttyUSB0 c 188 0&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss für den Betrieb des panStick das ftdi_sio Modul zur Verfügung stehen. Dieses lässt sich prüfen mit&lt;br /&gt;
 lsmod&lt;br /&gt;
&lt;br /&gt;
Diese Voraussetzung könnte den Betrieb an einer Fritzbox erschweren, da nicht sicher ist, ob dieses Modul standardmäßig immer installiert ist.&lt;br /&gt;
&lt;br /&gt;
Legt man das Device von Hand an, kann es sein, dass die Berechtigungen nicht richtig gesetzt sind.&lt;br /&gt;
 2015.04.23 22:20:06 3: Opening panStick device /dev/ttyUSB0 &lt;br /&gt;
 2015.04.23 22:20:06 3: Can&#039;t open /dev/ttyUSB0: Permission denied&lt;br /&gt;
&lt;br /&gt;
Das Device sollte für die Gruppe dialout Lese-/Schreibberechtigungen haben.&lt;br /&gt;
Ist dieses nicht der Fall, lassen sich diese über diesen Befehlt setzen. Damit wird der &amp;quot;Besitzer&amp;quot; festgelegt.&lt;br /&gt;
 sudo chown root:dialout ttyUSBx&lt;br /&gt;
&lt;br /&gt;
Hiermit werden die Berechtigungen gesetzt.&lt;br /&gt;
 sudo chmod a+rw /dev/ttyUSBx&lt;br /&gt;
&lt;br /&gt;
Der Benutzer &amp;quot;fhem&amp;quot; sollte selbstverständlich der Gruppe &amp;quot;dialout&amp;quot; angehören. Ist dieses nicht der Fall:&lt;br /&gt;
 sudo adduser fhem dialout&lt;br /&gt;
&lt;br /&gt;
Falls dem nicht so sein sollte, hilft ggf. einer dieser beiden Links weiter:&lt;br /&gt;
[[https://www.youtube.com/watch?v=UOECwHhCWRg]] [[http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/07/15/bbb--usb-io-with-ftdi-ft2232h]] bzw. die Installation des Moduls.&lt;br /&gt;
&lt;br /&gt;
=== IDE unter MacOS ===&lt;br /&gt;
&lt;br /&gt;
Da für den RGB-Sketch die IDE 1.0.x benötigt wird und diese Java SE 6 eine Voraussetzung ist, stellt die IDE und MacOS keine Optimale Konfigurationsumgebung dar. Wer es trotzdem probieren möchte&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82055 }}&lt;br /&gt;
&lt;br /&gt;
=== INO ===&lt;br /&gt;
Der RGB-Sketch wurde mit Hilfe des Tools INO entwickelt. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82139 }}&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt am leichtesten mit Hilfe des Tools pip.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen für das Tool sind darüber hinaus picocom für die Kommunikation mit der seriellen Schnittstelle und die Arduino. Im gleichen Zuge lässt sich pip installieren.&lt;br /&gt;
Die benötigten Pakete werden über folgenden Aufruf installiert&lt;br /&gt;
 sudo apt-get install picocom python-pip arduino&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt im Anschluss über&lt;br /&gt;
 sudo pip install ino&lt;br /&gt;
&lt;br /&gt;
Die für einen Sketch erforderlichen libs werden in den entsprechenden lib Ordner kopiert (dort in entsprechenden Unterordnern).&lt;br /&gt;
&lt;br /&gt;
Die Pfade im Zip sind an dieses Tool angepasst.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=94830 }}&lt;br /&gt;
&lt;br /&gt;
Der serielle Port in der ino.ini muss selbstverständlich an die passende dev-Schnittstelle angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Als letztes sind die Parameter für das Board noch in die board.txt unter /usr/share/arduino/hardware/arduino einzutragen. Die Parameter lassen sich von hier extrahieren [http://old.panstamp.com/downloads] bzw. lauten für den AVR&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##############################################################&lt;br /&gt;
&lt;br /&gt;
panstamp.name=PanStamp v2.0 (3.3V, 8 MHz) w/ ATmega328&lt;br /&gt;
&lt;br /&gt;
panstamp.upload.protocol=arduino&lt;br /&gt;
panstamp.upload.maximum_size=30720&lt;br /&gt;
panstamp.upload.speed=57600&lt;br /&gt;
&lt;br /&gt;
panstamp.bootloader.low_fuses=0xE2&lt;br /&gt;
panstamp.bootloader.high_fuses=0xD8&lt;br /&gt;
panstamp.bootloader.extended_fuses=0x07&lt;br /&gt;
panstamp.bootloader.path=atmega&lt;br /&gt;
panstamp.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex&lt;br /&gt;
panstamp.bootloader.unlock_bits=0x3F&lt;br /&gt;
panstamp.bootloader.lock_bits=0x0F&lt;br /&gt;
&lt;br /&gt;
panstamp.build.mcu=atmega328p&lt;br /&gt;
panstamp.build.f_cpu=8000000L&lt;br /&gt;
panstamp.build.core=arduino&lt;br /&gt;
panstamp.build.variant=standard&lt;br /&gt;
&lt;br /&gt;
##############################################################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen: Jedes Mal, wenn die Arduino ein Update erhält, wird vermutlich diese Datei überschrieben, so dass die Eintragung wiederholt werden muss.&lt;br /&gt;
&lt;br /&gt;
Hier sind die grundlegendsten Befehle beschrieben [http://inotool.org/quickstart].&lt;br /&gt;
&lt;br /&gt;
Wechselt man nun in das Verzeichnis z.B. des RGBdriver, lässt die der Sketch kompilieren über&lt;br /&gt;
 ino build&lt;br /&gt;
&lt;br /&gt;
Und hochladen über&lt;br /&gt;
sudo ino upload&lt;br /&gt;
&lt;br /&gt;
; Troubeshooting&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=134786 }}&lt;br /&gt;
&lt;br /&gt;
== over-the-air (derzeit) nur NRG ==&lt;br /&gt;
&lt;br /&gt;
Die neueren panStamp NRGs können seit einiger Zeit auch over-the-air geflasht werden, wie hier im zugehörigen Forumthread beschrieben [[http://forum.fhem.de/index.php/topic,30589.0.html]].&lt;br /&gt;
&lt;br /&gt;
== Was überlebt das Flashen==&lt;br /&gt;
Bestimmte Konfigurationen überstehen das Flashen, dieses sind zumindest Adresse und Intervall, die nicht neu gesetzt werden müssen [http://forum.fhem.de/index.php/topic,12487.msg87560.html#msg87560].&lt;br /&gt;
&lt;br /&gt;
== EEPROM löschen ==&lt;br /&gt;
Das EEPROM lässt sich komplett löschen, indem man in der setup() dieses hier einträgt [http://forum.fhem.de/index.php/topic,13890.msg156868.html#msg156868].&lt;br /&gt;
 eepromToFactoryDefaults()&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp&amp;diff=11897</id>
		<title>PanStamp</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp&amp;diff=11897"/>
		<updated>2015-08-06T05:47:28Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Rechtschreibfehler korrigiert und Baustelle entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V (panStick: 5V USB)&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery (panStick: USB)&lt;br /&gt;
|HWSize=17.7 x 30.5 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel, als mutmaßlicher Eingangsartikel zu dem Thema, beschreibt das FHEM Modul panStamp, was das Funkinterface zu FHEM bildet. Eine [[panStamp_(Systemübersicht)|Systemübersicht]] ist in einem separaten Artikel beschrieben. Der Focus liegt hier natürlich auf die Integration mit FHEM. Zu der Hardware [[panStamp]] gibt es Herstellerseitig eine eigenen Community mit [http://www.panstamp.org/forum/ Forum] und [https://github.com/panStamp/panstamp/wiki Wiki], sowie [https://github.com/panStamp/panstamp/wiki/Downloads Downloads] auf [https://github.com/panStamp Github].&lt;br /&gt;
&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Der [[panStamp]] Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;. Zur Kommunikation in einem [[panStamp]] Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([https://github.com/panStamp/panstamp/wiki/Simple%20Wireless%20Abstract%20Protocol SWAP]). Um einen [[panStamp]] in Betrieb zu nehmen muss er unbedingt mit einer Antenne oder einem Stück Draht in der [https://github.com/panStamp/panstamp/wiki/Antennae richtigen Länge] bestückt sein. Ohne Antenne funktioniert die Übertragung nicht, auch nicht auf kurze Distanzen!&lt;br /&gt;
&lt;br /&gt;
== Allgemein ==&lt;br /&gt;
Die Integration in FHEM erfolgt über eine [[PanStamp_(Systemübersicht)#FHEM_Module|Reihe von Modulen]] die im Folgenden und [[:Kategorie:PanStamp|anderen]] Artikel genauer beschrieben sind. Das Modul [[panStamp]] erstellt dabei das IO-Device in FHEM.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Als Schnittstelle zwischen FHEM und einem [[panStamp]] Netzwerk dient entweder ein [[panStick]] (USB Stick mit aufgestecktem panStamp) oder ein panShield mit integriertem [[panStamp]] an einem Raspberry Pi. Der so angebundene [[panStamp]] wird mit einem (bei Auslieferung des panStamps vorinstallierten) [[panStick|Modem-Sketch]] als RF-Modem verwendet und über das FHEM Modul [[panStamp]] angesprochen. Der [[panStick]] kann auch per USB an einer anderen Serverhardware angebunden werden. Die Kommunikation zu FHEM erfolgt dann z.B. über ser2net oder FHEM2FHEM über LAN.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
Das Device [[panStick]] wird derzeit (01.05.2015) nicht durch autocreate angelegt. Daher muss es manuell entsprechend folgendem Befehl angelegt werden:&lt;br /&gt;
 define panStick panStamp /dev/ttyUSBx@38400&lt;br /&gt;
Die Schnittstelle (/dev/ttyUSBx) muss entsprechend der lokal verwendeten Schnittstelle angepasst werden. Für die Einrichtung des [[panStick]] innerhalb des Betriebssystem siehe [[Programmierung_eines_panStamp#Installation_panStick_2|hier]]&lt;br /&gt;
&lt;br /&gt;
Dieses [[panStamp]] Device, der [[panStick]], versucht dann alle panStamps per [[SWAP]]-Broadcast zu finden und per [[autocreate]] anzulegen, wenn dieses aktiv sind. Die weitere Funktion übernimmt das Modul [[SWAP]], was das Funkprotokoll der [[panStamp]] Module in FHEM implementiert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Betrieb an der Fritzbox&#039;&#039;&#039;&lt;br /&gt;
Spezialitäten zum Betrieb an einer Fritzbox sind hier [http://forum.fhem.de/index.php/topic,12487.msg87778.html#msg87778] und hier [http://forum.fhem.de/index.php/topic,12487.msg95914.html#msg95914] beschrieben. Es scheint nur der hintere USB-Anschluss für die Verwendung zu laufen. Außerdem muss der USB-Fernanschluss deaktiviert sein.&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Für den [[panStick]] gibt es keine modulspezifischen Attribute.&lt;br /&gt;
&lt;br /&gt;
=== set-Befehle ===&lt;br /&gt;
&lt;br /&gt;
* discover?&lt;br /&gt;
Mit diesem Befehl wird eine Broadcast SWAP-Message abgesetzt, die alle empfangenden panStamps dazu veranlassen, sich zu melden. Batteriebetriebenen panStamps können systembedingt nur identifiziert werden, wenn diese Empfangsbereit sind und sich nicht im Schlafmodus befinden.&lt;br /&gt;
&lt;br /&gt;
* raw&lt;br /&gt;
Ist der [[panStick]] eingerichtet und meldet &amp;quot;Initialized&amp;quot;, kann über das [[panStick]] device direkt eine raw Message abgesetzt werden. Diese ist zurzeit eigentlich immer eine SWAP Nachricht wie z.B. &lt;br /&gt;
 set panStick raw 00010000010000&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird ein Broadcast an alle abgesetzt, damit diese ihre ID und ihren ProductCode zurück an FHEM senden. Das macht der [[panStick]] nach dem Initialisieren auch einmal automatisch um alle nicht schlafenden Devices per [[autocreate]] anlegen zu können.&lt;br /&gt;
Mit diesem Befehl &amp;quot;raw&amp;quot; lassen sich [[SWAP]]-Messages direkt absetzten, was vor allen Dingen dann hilfreich sein kann, wenn man vermutet, dass die Kommunikation über die modulgestützten Befehle fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== Neue panStamps in Betrieb nehmen ===&lt;br /&gt;
&#039;&#039;&#039;Info: Das [[SWAP]] Modul unterstützt [[autocreate]]. Bei der Inbetriebnahme ist [[autocreate]] zu aktivieren!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, da sie zuerst mit einer eindeutigen Device-Adresse (ungleich &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; und grösser &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;) versehen werden müssen. Bei batteriebetriebenen Sensoren sollte auch das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in Sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
Für panStamp-Hardware im Power-Down-Modus werden diese Kommandos in eine Warteschlange gestellt und übertragen, sobald die panStamp-Hardware seine Initialisierungssequenz durchläuft. Hierzu ist nach Absetzen der Kommandos aus FHEM die Reset-Taste an der panStamp-Hardware zu drücken oder die Stromquelle erneut zu verbinden.&lt;br /&gt;
&lt;br /&gt;
Das [[SWAP]]-Modul versucht, panStamp-Hardware mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern. Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
Für batteriebetriebene panStamp-Hardware (genauer: Hardware die den Power-Down-Modus unterstützen) wird das Default Sendeintervall von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden) geändert.&lt;br /&gt;
Es gibt mit bestimmten [[panStamp]] lib Versionen das Problem das ein Wert von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; in Systemregister &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; zum Überlauf führt und dann ununterbrochen SWAP Nachrichten gesendet werden. Im FHEM Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen Host-Systemen (z.B. FritzBox) nicht, weil der [[panStamp]] so schnell sendet, dass FHEM so mit dem Abarbeiten beschäftigt ist, dass es selber nicht zum Senden kommt.&lt;br /&gt;
Zur Abhilfe kann im Sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden. Der Sketch ist dann zu flashen und wenn der Sketch einmal durchgelaufen ist, können diese beiden Zeilen wieder entfernen werden und der [[panStamp]] muss noch mal geflasht werden. Ansonsten wird die Adresse bei jedem Start erneut auf &amp;lt;code&amp;gt;5555&amp;lt;/code&amp;gt; gesetzt.&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ soilmoisture sketch]  auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:TeeVau&amp;diff=11861</id>
		<title>Benutzer Diskussion:TeeVau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:TeeVau&amp;diff=11861"/>
		<updated>2015-07-31T08:14:33Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: /*  oder  oder  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== panStamp als Fhem-WikiNews ==&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
wenn Du mit Deinen umfangreichen Überarbeitungen an den panStamp-Seiten fertig bist, halte ich das für &amp;quot;würdig&amp;quot; als FhemWiki-News auf der Hauptseite aufgenommen zu werden. Da derzeit noch einige Baustellen/Todo-Hinweise auf den Seiten sind, habe ich das bisher noch nicht gemacht. Was meinst Du?&lt;br /&gt;
Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 07:12, 28. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Wegen mir gerne. Du hast richtig erkannt, dass noch an diversen Artikeln etwas zu tun ist. Mal mehr, mal weniger. Ich habe es auf jeden Fall im Auge und möchte das auch zu ende bringen. Ich denke allerdings, dass ich noch so 3-4 Wochen dafür brauche. Ich melde mich einfach bei dir, wenn ich fertig bin und das in die FhemWiki-News mit eingebunden werden kann. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:39, 28. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
::Das kannst Du gerne eigenständig in die FhemWiki-News aufnehmen, wenn Du fertig bist. Ich will nur nicht, dass solche grundlegenden Erweiterungen des Wikis, die deutlich über eine neue Wiki-Seite hinausgehen, keine Beachtung finden. Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 13:37, 28. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt; oder &amp;lt;nowiki&amp;gt; oder &amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
&lt;br /&gt;
Du hast auf der Seite [[PID20 - Der PID-Regler‎]] gerade einige &amp;lt;nowiki&amp;gt;&amp;lt;code&amp;gt;&amp;lt;/nowiki&amp;gt; Markierungen in &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; geändert. Das verbessert zwar die Darstellung ... aber nur, weil die alten Tags etwas ungeschickt gesetzt waren (Leerzeilen/Zeilenumbrüche zwischen den Tags). Ich würde vorschlagen:&lt;br /&gt;
* für &amp;quot;Einzeiler&amp;quot;: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;:&amp;lt;code&amp;gt;der Code/Text&amp;lt;/code&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (ab Spalte 1); das wird dann gleich eingerückt und zudem am Zeilenende umgebrochen, erzeugt also keine Endloszeilen, bei denen man gezwungen wird, nach rechts zu scrollen; der Code-Text kann trotzdem kopiert werden und enthält dabei keine Zeilenumbrüche&lt;br /&gt;
* für längere Codepassagen das &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;Text text text... &amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* und &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; nur, wenn der eingeschlossene Bereich Tags / Zeichen enthält, die nicht von der Wiki-Software formatiert werden sollen (wie die Wiki-Tags in den obigen Beispielen)&lt;br /&gt;
--[[Benutzer:Ph1959de|Peter]] ([[Benutzer Diskussion:Ph1959de|Diskussion]]) 12:31, 30. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Hi Peter,&lt;br /&gt;
:habe mich schon gefragt was der unterschied zwischen dem pre und dem code Tag ist. So wirklich was verständliches habe ich nicht gefunden. Ich selber fand den pre Tag etwas &amp;quot;schöner&amp;quot; :zum formatieren, da dieser automatisch Zeilenumbrüche vor und nach dem Tag-Bereich einfügt. Ich habe die code und pre-Tags nun in dem Artikel so angepasst wie von dir vorgeschlagen. :Grüße und ein schönes Wochenende, Tobias. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:14, 31. Jul. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PID20_-_Der_PID-Regler&amp;diff=11860</id>
		<title>PID20 - Der PID-Regler</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PID20_-_Der_PID-Regler&amp;diff=11860"/>
		<updated>2015-07-31T08:11:46Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: code und pre Tags angepasst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|Name=PID20&lt;br /&gt;
|ModPurpose=Regler nach P-I-D Algorithmus&lt;br /&gt;
|ModType=d&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
|ModCmdRef=PID20&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=98_PID20.pm&lt;br /&gt;
|ModOwner=John ([http://forum.fhem.de/index.php?action=profile;u=806 Forum] / [[Benutzer Diskussion:John|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;PID20&#039;&#039;&#039; ist ein Modul, das nach dem P-I-D Algorithmus einen Regler realisiert.&lt;br /&gt;
&lt;br /&gt;
== Projekt-Status ==&lt;br /&gt;
&lt;br /&gt;
Das Modul ist seit dem 26.03.2014 Bestandteil von FHEM.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* einstellbarer Bewertungs-/Berechnungszyklus&lt;br /&gt;
* Überwachung des Istwert-Gebers über dessen Zeitstempel (Sensorausfall)&lt;br /&gt;
* Skalierbarkeit der Ausgabehäufigkeit an das Stellglied über Zeit und Mindeständerung&lt;br /&gt;
* Zwangsausgabe an das Stellglied nach Ablauf eines einstellbaren Zeitintervalls&lt;br /&gt;
* Notstellung des Stellgliedes, falls Istwert-Geber ausgefallen ist&lt;br /&gt;
* Begrenzung des Stellbereichs nach oben und unten&lt;br /&gt;
* Festlegung der Nachkommastellen (0..5) des Ausgabewertes zum Stellglied&lt;br /&gt;
* Festlegen einer minimalen Regelabweichung, ab der der Regler aktiv wird&lt;br /&gt;
* Festlegen des Reading-Namens für den Sollwert&lt;br /&gt;
* Festlegen des Reading-Namens für den Istwert&lt;br /&gt;
* Invertierung des Reglerwirksinns&lt;br /&gt;
* Festlegen der minimalen Aktualisierungsrate der Readings&lt;br /&gt;
* Festlegen der Proportionalitätskonstanten P,I,D&lt;br /&gt;
== Thread im Forum ==&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,17067.msg111615.html#msg111615 Diskussion zu PID20 im Forum]&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define &amp;lt;name&amp;gt; PID20 sensor[:reading[:regexp]] actor:cmd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Wertebereich !! Default !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|pidActorValueDecPlaces||[0..5]||0||Anzahl der Nachkommastellen für Ausgabewert zu Aktor&lt;br /&gt;
|-&lt;br /&gt;
|pidActorInterval||uint||180||minimale Wartezeit in Sekunden, bis eine neue Ausgabe an das Stellglied erfolgen kann&lt;br /&gt;
|-&lt;br /&gt;
|pidActorThreshold||uint||1||Notwendige minimale Änderung zum Altwert der Stellgliedausgabe, damit diese erneut erfolgt&lt;br /&gt;
|-&lt;br /&gt;
|pidActorErrorAction||[freeze, errorPos]||freeze||legt das Verhalten der Ausgabe zum Stellglied fest, wenn der Istwert nicht innerhalb von &amp;lt;pidSensorTimeout&amp;gt; aktualisiert wurde (Sensor-Ausfall) &amp;lt;br /&amp;gt;&lt;br /&gt;
freeze: Position des Stellgliedes beibehalten&amp;lt;br /&amp;gt;&lt;br /&gt;
ErrorPos: Position anfahren, die unter Attribut &amp;lt;pidActorErrorPos&amp;gt; angegeben ist.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|pidActorErrorPos||int||0||Diese Position ist einzunehmen, wenn pidActorErrorAction auf errorPos steht und der Istwert-Geber ausgefallen ist.&lt;br /&gt;
|-&lt;br /&gt;
|pidActorKeepAlive||uint||1800||Spätestens nach dieser Zeit erfolgt eine Zwangsausgabe an das Stellglied&lt;br /&gt;
(wenn PID nicht disabled und nicht stopped)&lt;br /&gt;
|-&lt;br /&gt;
|pidActorLimitLower||float||0||untere Begrenzung für das Stellglied&lt;br /&gt;
|-&lt;br /&gt;
|pidActorLimitUpper||float||100||obere Begrenzung für das Stellglied&lt;br /&gt;
|-&lt;br /&gt;
|pidCalcInterval||uint||60||Berechnungszyklus in Sekunden, nach dem die PID-Berechnung durchgeführt wird.&lt;br /&gt;
|-&lt;br /&gt;
|pidDeltaTreshold||pos. float||0||wenn die Regeldifferenz(delta) kleiner als pidDeltaThreshold, dann wird der Regler eingefroren (state=idle)&lt;br /&gt;
|-&lt;br /&gt;
|pidDesiredName||string||desired||Name für das Reading, das den Sollwert für den Regler aufnehmen soll&lt;br /&gt;
|-&lt;br /&gt;
|pidMeasuredName||string||measured||Name für das Reading, das den Istwert für den Regler aufnehmen soll&lt;br /&gt;
|-&lt;br /&gt;
|pidSensorTimeout||uint||3600||Zeitlimit in Sekunden, nach dessen Überschreitung der Ausfall des Istwert-Gebers anzunehmen ist&lt;br /&gt;
|-&lt;br /&gt;
|pidReverseAction||[0,1]||0||Umgekehrter Wirksinn des Reglers&lt;br /&gt;
|-&lt;br /&gt;
|pidUpdateInterval||uint||300||Zeitlimit in Sekunden, nach der ein Zwangsupdate der Readings erfolgen muss (Kurvendarstellung).&lt;br /&gt;
|-&lt;br /&gt;
|pidFactor_P||pos. float||25||Proportionalitätskonstante für P-Anteil&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pidFactor_I||pos. float||0.25||Proportionalitätskonstante für I-Anteil&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pidFactor_D||pos. float||0||Proportionalitätskonstante für D-Anteil&lt;br /&gt;
|-&lt;br /&gt;
|disable||[0,1]||0||Freigabe/Sperren des Reglers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setter ===&lt;br /&gt;
&#039;&#039;&#039;desired&#039;&#039;&#039;&lt;br /&gt;
* Funktion: Sollwert einstellen&lt;br /&gt;
* Name des Setters kann vom Anwender über das Attribute &amp;quot;pidDesiredName&amp;quot; definiert werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;start&#039;&#039;&#039;&lt;br /&gt;
* PID nimmt den Betrieb wieder auf, es werden P-, I- und D-Anteil vor dem Stop übernommen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;stop&#039;&#039;&#039;&lt;br /&gt;
* PID geht in den Zustand stopped; alles wird praktisch eingefroren&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;restart&#039;&#039;&#039;&lt;br /&gt;
* arbeitet zunächst wie Start, jedoch gibt man an, mit welchen Prozentwert der Stellausgang anfangs stehen soll&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
[[Datei:13 10 20 Pid readings.png]]&lt;br /&gt;
* actuation liefert den tatsächlichen Ausgabewert an das Stellglied&lt;br /&gt;
* actuationCalc liefert den internen Rechenwert des Ausgabewertes für das Stellglied(ohne Begrenzung)&lt;br /&gt;
* delta, die aktuelle Regeldifferenz&lt;br /&gt;
* desired (Name ist variabel), der Sollwert&lt;br /&gt;
* measured (Name ist variabel), der aktuelle Wert vom Istwert-geber&lt;br /&gt;
* p_p, der P-Anteil des Ausgabewertes für das Stellglied&lt;br /&gt;
* p_i, der I-Anteil des Ausgabewertes für das Stellglied&lt;br /&gt;
* p_d, der D-Anteil des Ausgabewertes für das Stellglied&lt;br /&gt;
* state, der Betriebszustand des Reglers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
delta = desired - measured (also Sollwert-Istwert)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;actuation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
actuation = actuationCalc&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jedoch begrenzt durch pidActorLimitLower und pidActorLimitUpper &lt;br /&gt;
und formatiert via pidActorValueDecPlaces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;actuationCalc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Ausgabewert für das Stellglied wird wie folgt berechnet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
actuationCalc = p_p + p_i + p_d&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;state&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! state !! Erläuterung&lt;br /&gt;
|-&lt;br /&gt;
| disabled || PID-Instanz ist inaktiv&lt;br /&gt;
|-&lt;br /&gt;
| initializing || Modul wurde initialisiert&lt;br /&gt;
|-&lt;br /&gt;
| idle || Berechnung ist inaktiv&lt;br /&gt;
|-&lt;br /&gt;
| processing || Berechnung ist aktiv, Normalbetrieb&lt;br /&gt;
|-&lt;br /&gt;
| alarm || Ausnahmezustand, z.B. Timout des Istwert-Gebers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Inbetriebnahme ==&lt;br /&gt;
* PID20 definieren, hier mit HMS100TF als Istwert-Geber für die Temperatur und ein MAX-Thermostat als Stellglied; Auslegung für eine Fußbodenheizung (sehr träge)&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define PID.FUBO PID20 DG.BAD.TF:temperature HT.FUBO:maxValveSetting&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
:* &amp;lt;sensor&amp;gt; = &amp;quot;DG.BAD.TF&amp;quot;: Name des Istwert-Geber s (HMS100TF)&lt;br /&gt;
:* &amp;lt;reading&amp;gt; = &amp;quot;temperature&amp;quot;: das Reading vom HMS100TF, das die Temperatur liefert&lt;br /&gt;
:* &amp;lt;regexp&amp;gt; = nicht definiert, wir können also direkt den Wert des Readings verwenden&lt;br /&gt;
:* &amp;lt;actor&amp;gt; = &amp;quot;HT.FUBO&amp;quot; : Name des MAX-Thermostats, das als Stellglied verwendet wird&lt;br /&gt;
:* &amp;lt;cmd&amp;gt; = &amp;quot;maxValveSetting&amp;quot; : Das Kommando mit dem PID20 die Stellausgabe realisieren soll&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Letztlich wird mit &amp;lt;actor&amp;gt; und &amp;lt;cmd&amp;gt; Folgendes ausgeführt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
set &amp;lt;actor&amp;gt; &amp;lt;cmd&amp;gt; &amp;lt;setting-value&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;zusätzlich noch einige Attribute anpassen&#039;&#039;&#039;&lt;br /&gt;
* die Ausgabehäufigkeit an das Stellglied auf 15 Minuten begrenzen&lt;br /&gt;
&amp;lt;code&amp;gt;attr PID.FUBO pidActorInterval 900&amp;lt;/code&amp;gt;&lt;br /&gt;
* nur dann einen Wert an das Stellglied ausgeben, wenn die Differenz zum Altwert &amp;gt;= 5% &lt;br /&gt;
&amp;lt;code&amp;gt;attr PID.FUBO pidActorTreshold 5&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nachommastellen für das Stellglied festlegen; MAX-Thermostate erlauben nur Werte ohne Nachkommastellen&lt;br /&gt;
&amp;lt;code&amp;gt;attr PID.FUBO pidActorValueDecPlaces 0&amp;lt;/code&amp;gt;&lt;br /&gt;
* I-Faktor festlegen; Überlegung: bei einer Regelabweichung von 1 Grad, soll der I-Anteil um 0.2% pro Minute inkrementieren/dekrementieren &lt;br /&gt;
&amp;lt;code&amp;gt;attr PID.FUBO pidFactor_I 0.2&amp;lt;/code&amp;gt;&lt;br /&gt;
* P-Faktor festlegen; Überlegung:Bei einer Regel-Abweichung von 1 Grad, soll der P-Anteil +/-50% betragen&lt;br /&gt;
&amp;lt;code&amp;gt;attr PID.FUBO pidFactor_P 50&amp;lt;/code&amp;gt;&lt;br /&gt;
* Häufigkeit der Events begrenzen: Die Readings werden im Intervall von &amp;quot;pidCalcInterval&amp;quot; aktualisiert. Die damit erzeugten Events kann man mit den Standard-Mechanismen von FHEM begrenzen. Hier wird festgelegt, daß die Readings nur dann einen Event feuern, wenn diese sich tatsächlich ändern. Der Wert hinter dem Doppelpunkt, gibt die Mindeständerung an. Fehlt dieser feuert jede Änderung einen Event.&lt;br /&gt;
&amp;lt;code&amp;gt;attr PID.FUBO event-on-change-reading actuation:1,actuationCalc:0.5,delta:0.2,desired,measured:0.2,p_d:0.1,p_i:1.0,p_p:1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
* Events feuern, wenn sich über lange Zeit eine Reading nicht ändert: Wenn sich z.B. desired über Stunden nicht ändert, so wird kein einziger Event gefeuert. Mit nachfolgender Einstellung erreicht man, dass ein Event auch dann erzeugt wird, wenn sich das Reading nach einer festgelegten Zeit nicht ändert.(sinnvoll für Charts, hier z.B. alle 30 Minuten).&lt;br /&gt;
&amp;lt;code&amp;gt;attr PID.FUBO event-min-interval actuation:1800,actuationCalc:1800,delta:1800,desired:1800,measured:1800,p_d:1800,p_i:1800,p_p:1800&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chart einrichten&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Es ist für das Einstellen der Regel-Faktoren (P,I,D) überaus hilfreich, das Verhalten über die Zeit aufzuzeichnen, um das Verhalten objektiv beurteilen zu können.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Zunächst ein Filelog einrichten&amp;lt;br/&amp;gt;&lt;br /&gt;
:define PID.FUBO.File FileLog ./log/PID.FUBO-%Y.log PID\.FUBO&lt;br /&gt;
:attr PID.FUBO.File logtype text&lt;br /&gt;
&lt;br /&gt;
Danach ein Chart definieren, angelehnt an folgendem Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:13_12_03_PID_ChartDef.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anbei ein Vorschlag für au&lt;br /&gt;
&lt;br /&gt;
== Hintergrund-Informationen ==&lt;br /&gt;
=== list &amp;lt;pid-name&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internals:&lt;br /&gt;
   DEF        DG.BAD.TF PID.Actor:state&lt;br /&gt;
   NAME       PID.PID&lt;br /&gt;
   NR         616&lt;br /&gt;
   NTFY_ORDER 50-PID.PID&lt;br /&gt;
   STATE      processing&lt;br /&gt;
   TYPE       PID&lt;br /&gt;
   Readings:&lt;br /&gt;
     2013-10-20 17:13:41   actuation       97&lt;br /&gt;
     2013-10-20 17:21:42   actuationCalc   97.2079999999999&lt;br /&gt;
     2013-10-20 17:21:42   delta           0.199999999999999&lt;br /&gt;
     2013-10-20 17:13:41   desired         22&lt;br /&gt;
     2013-10-20 17:13:41   measured        21.8&lt;br /&gt;
     2013-10-20 17:21:42   p_d             0&lt;br /&gt;
     2013-10-20 17:21:42   p_i             92.2079999999999&lt;br /&gt;
     2013-10-20 17:21:42   p_p             4.99999999999998&lt;br /&gt;
     2013-10-20 17:21:42   state           processing&lt;br /&gt;
   Helper:&lt;br /&gt;
     actor      PID.Actor&lt;br /&gt;
     actorCommand state&lt;br /&gt;
     actorErrorAction freeze&lt;br /&gt;
     actorErrorPos 0&lt;br /&gt;
     actorInterval 300&lt;br /&gt;
     actorKeepAlive 1800&lt;br /&gt;
     actorLimitLower 0&lt;br /&gt;
     actorLimitUpper 100&lt;br /&gt;
     actorThreshold 4&lt;br /&gt;
     actorTimestamp 2013-10-20 17:13:41&lt;br /&gt;
     actorValueDecPlaces 0&lt;br /&gt;
     calcInterval 60&lt;br /&gt;
     deltaGradient 0&lt;br /&gt;
     deltaOld   0.199999999999999&lt;br /&gt;
     deltaOldTS 2013-10-20 17:18:07&lt;br /&gt;
     deltaTreshold 0&lt;br /&gt;
     desiredName desired&lt;br /&gt;
     disable    0&lt;br /&gt;
     factor_D   0&lt;br /&gt;
     factor_I   0.25&lt;br /&gt;
     factor_P   25&lt;br /&gt;
     isWindUP   0&lt;br /&gt;
     measuredName measured&lt;br /&gt;
     reading    temperature&lt;br /&gt;
     regexp     ([\d\.]*)&lt;br /&gt;
     reverseAction 0&lt;br /&gt;
     sensor     DG.BAD.TF&lt;br /&gt;
     sensorTimeout 3600&lt;br /&gt;
     updateInterval 600&lt;br /&gt;
  Attributes:&lt;br /&gt;
   pidActorInterval 300&lt;br /&gt;
   pidActorTreshold 4&lt;br /&gt;
   pidActorValueDecPlaces 0&lt;br /&gt;
   room       PID&lt;br /&gt;
   verbose    4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Anti-WindUp-Strategie ===&lt;br /&gt;
Der integrale Anteil des PID-Reglers wird ohne Gegenmassnahmen auch dann weiter integriert,&lt;br /&gt;
wenn das Stellglied bereits an seine Grenzen gestossen ist.&lt;br /&gt;
Dies hat den Nachteil, dass nach einer Reduzierung der Regeldifferenz lange Wartezeiten entstehen können, bis das&lt;br /&gt;
Stellglied reagiert.&lt;br /&gt;
Dies nennt man den WindUP-Effekt.&lt;br /&gt;
Hierzu wurde die folgende Strategie entwickelt:&lt;br /&gt;
&lt;br /&gt;
[[Datei:13 10 20 PID Windup.png|WindUP]]&lt;br /&gt;
&lt;br /&gt;
Sobald das rechnerische Stellsignal (Ventilstellung Calc=actuationCalc) die obere Grenze des Stellgliedes überschreitet (pidActorLimitUpper) oder die untere Grenze unterschreitet (pidActorLimitLower), wird die Integration des I-Anteils eingefroren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Am Beispiel:&#039;&#039;&#039;&lt;br /&gt;
An Position L1 überschreitet der rechnerische Ausgabewert des Stellgliedes die obere Grenze (100%).&lt;br /&gt;
Der I-Anteil verändert sich nicht mehr bis zur Position L2. Hier unterschreitet der Ausgabewert die &lt;br /&gt;
obere Grenze, der I-Anteil kann wieder verändert werden.&lt;br /&gt;
&lt;br /&gt;
== Fragen und Antworten ==&lt;br /&gt;
=== Temperatur im Raum steigt nicht oder stark verzögert, was kann ich tun ? ===&lt;br /&gt;
&lt;br /&gt;
==== 1.Fehlerquelle : Heizsystem ist nicht ausreichend entlüftet ====&lt;br /&gt;
In diesem Fall behindern die Luftblasen im System den Durchfluss des Heizmediums.&amp;lt;br/&amp;gt;&lt;br /&gt;
Der Heizkörper erwärmt sich nur teilweise oder &amp;quot;gluckert&amp;quot;.&lt;br /&gt;
Hier ist das Entlüften der Heizkörper angesagt.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Natürlich können sich die Gasblasen an anderer Stelle befinden. &lt;br /&gt;
Normalerweise sorgen automatische Entlüfter, dass das Gas entweichen kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
Aber auch diese &amp;quot;verkalken&amp;quot; im Lauf der Zeit.&lt;br /&gt;
&lt;br /&gt;
==== 2.Fehlerquelle : Totzone beim Stellglied ====&lt;br /&gt;
Der Temperaturanstieg erfolgt erst ab einer bestimmten Ventilöffnung von xy%.&amp;lt;br/&amp;gt;&lt;br /&gt;
Der PID-Regler geht davon aus, dass jede Änderung des Stellausgangs auf die Regelgröße wirkt&amp;lt;br/&amp;gt;&lt;br /&gt;
(also bei Ventil weiter öffnen, wird mehr Wärme abgegeben)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ist dies nicht der Fall, wird der PID über die Zeit (I-Anteil) das Ventil weiter öffnen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Allerdings vergeht hierbei Zeit und damit leidet die Regelgüte.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist also wichtig die Totzone zu ermitteln und im Attribut pidActorLimitLower zu hinterlegen.&lt;br /&gt;
&lt;br /&gt;
==== 3.Fehlerquelle : Hydraulische Fehlanpassung ====&lt;br /&gt;
Wenn einzelnen Heizkreise einen sehr kleinen hydraulischen Widerstand aufweisen, kann es passieren&lt;br /&gt;
das Heizkreise mit höherem Widerstand zeitweise unterversorgt sind.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Erst wenn die gut versorgten Heizkreise die Ventile schließen (Soll-Temperatur ist erreicht),&lt;br /&gt;
werden die Heizkreise mit hohem Widerstand ausreichend versorgt.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Dies kann man dank FHEM sehr gut über die Charts nachvollziehen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es ist regelungstechnisch, ökologisch und energetisch absolut sinnvoll geregelte Hocheffizienz-Pumpen&lt;br /&gt;
im Heizkreis einzusetzen. Diese sorgen für konstanten Druck im Hauptstrang bei sehr geringen Energiebedarf.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kann gezielt den hydraulischen Widerstand einzelner Thermostate erhöhen, indem man deren maximale Ventilöffnung begrenzt.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies erreicht man durch Reduzieren des Wertes pidActorLimitUpper.&amp;lt;br/&amp;gt;&lt;br /&gt;
Dies ist gleichbedeutend mit der Erhöhung der hydraulischen Widerstandes durch voreinstellbare Heizungsventile beim hydraulischen Abgleich.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://forum.fhem.de/index.php/topic,15060.0.html Initialer Forumseintrag zur Überarbeitung des PID-Moduls]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Regler Wikipedia Regler]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Glossary]]&lt;br /&gt;
[[Kategorie:Regelungstechnik]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PID20_-_Der_PID-Regler&amp;diff=11858</id>
		<title>PID20 - Der PID-Regler</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PID20_-_Der_PID-Regler&amp;diff=11858"/>
		<updated>2015-07-30T09:35:04Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Kleinigkeiten in der Darstellung geändert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|Name=PID20&lt;br /&gt;
|ModPurpose=Regler nach P-I-D Algorithmus&lt;br /&gt;
|ModType=d&lt;br /&gt;
&amp;lt;!-- |ModCategory= (noch?) nicht verwendet --&amp;gt;&lt;br /&gt;
|ModCmdRef=PID20&lt;br /&gt;
|ModForumArea=Automatisierung&lt;br /&gt;
|ModTechName=98_PID20.pm&lt;br /&gt;
|ModOwner=John ([http://forum.fhem.de/index.php?action=profile;u=806 Forum] / [[Benutzer Diskussion:John|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;PID20&#039;&#039;&#039; ist ein Modul, das nach dem P-I-D Algorithmus einen Regler realisiert.&lt;br /&gt;
&lt;br /&gt;
== Projekt-Status ==&lt;br /&gt;
&lt;br /&gt;
Das Modul ist seit dem 26.03.2014 Bestandteil von FHEM.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* einstellbarer Bewertungs-/Berechnungszyklus&lt;br /&gt;
* Überwachung des Istwert-Gebers über dessen Zeitstempel (Sensorausfall)&lt;br /&gt;
* Skalierbarkeit der Ausgabehäufigkeit an das Stellglied über Zeit und Mindeständerung&lt;br /&gt;
* Zwangsausgabe an das Stellglied nach Ablauf eines einstellbaren Zeitintervalls&lt;br /&gt;
* Notstellung des Stellgliedes, falls Istwert-Geber ausgefallen ist&lt;br /&gt;
* Begrenzung des Stellbereichs nach oben und unten&lt;br /&gt;
* Festlegung der Nachkommastellen (0..5) des Ausgabewertes zum Stellglied&lt;br /&gt;
* Festlegen einer minimalen Regelabweichung, ab der der Regler aktiv wird&lt;br /&gt;
* Festlegen des Reading-Namens für den Sollwert&lt;br /&gt;
* Festlegen des Reading-Namens für den Istwert&lt;br /&gt;
* Invertierung des Reglerwirksinns&lt;br /&gt;
* Festlegen der minimalen Aktualisierungsrate der Readings&lt;br /&gt;
* Festlegen der Proportionalitätskonstanten P,I,D&lt;br /&gt;
== Thread im Forum ==&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,17067.msg111615.html#msg111615 Diskussion zu PID20 im Forum]&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define &amp;lt;name&amp;gt; PID20 sensor[:reading[:regexp]] actor:cmd &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Wertebereich !! Default !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|pidActorValueDecPlaces||[0..5]||0||Anzahl der Nachkommastellen für Ausgabewert zu Aktor&lt;br /&gt;
|-&lt;br /&gt;
|pidActorInterval||uint||180||minimale Wartezeit in Sekunden, bis eine neue Ausgabe an das Stellglied erfolgen kann&lt;br /&gt;
|-&lt;br /&gt;
|pidActorThreshold||uint||1||Notwendige minimale Änderung zum Altwert der Stellgliedausgabe, damit diese erneut erfolgt&lt;br /&gt;
|-&lt;br /&gt;
|pidActorErrorAction||[freeze, errorPos]||freeze||legt das Verhalten der Ausgabe zum Stellglied fest, wenn der Istwert nicht innerhalb von &amp;lt;pidSensorTimeout&amp;gt; aktualisiert wurde (Sensor-Ausfall) &amp;lt;br /&amp;gt;&lt;br /&gt;
freeze: Position des Stellgliedes beibehalten&amp;lt;br /&amp;gt;&lt;br /&gt;
ErrorPos: Position anfahren, die unter Attribut &amp;lt;pidActorErrorPos&amp;gt; angegeben ist.&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|pidActorErrorPos||int||0||Diese Position ist einzunehmen, wenn pidActorErrorAction auf errorPos steht und der Istwert-Geber ausgefallen ist.&lt;br /&gt;
|-&lt;br /&gt;
|pidActorKeepAlive||uint||1800||Spätestens nach dieser Zeit erfolgt eine Zwangsausgabe an das Stellglied&lt;br /&gt;
(wenn PID nicht disabled und nicht stopped)&lt;br /&gt;
|-&lt;br /&gt;
|pidActorLimitLower||float||0||untere Begrenzung für das Stellglied&lt;br /&gt;
|-&lt;br /&gt;
|pidActorLimitUpper||float||100||obere Begrenzung für das Stellglied&lt;br /&gt;
|-&lt;br /&gt;
|pidCalcInterval||uint||60||Berechnungszyklus in Sekunden, nach dem die PID-Berechnung durchgeführt wird.&lt;br /&gt;
|-&lt;br /&gt;
|pidDeltaTreshold||pos. float||0||wenn die Regeldifferenz(delta) kleiner als pidDeltaThreshold, dann wird der Regler eingefroren (state=idle)&lt;br /&gt;
|-&lt;br /&gt;
|pidDesiredName||string||desired||Name für das Reading, das den Sollwert für den Regler aufnehmen soll&lt;br /&gt;
|-&lt;br /&gt;
|pidMeasuredName||string||measured||Name für das Reading, das den Istwert für den Regler aufnehmen soll&lt;br /&gt;
|-&lt;br /&gt;
|pidSensorTimeout||uint||3600||Zeitlimit in Sekunden, nach dessen Überschreitung der Ausfall des Istwert-Gebers anzunehmen ist&lt;br /&gt;
|-&lt;br /&gt;
|pidReverseAction||[0,1]||0||Umgekehrter Wirksinn des Reglers&lt;br /&gt;
|-&lt;br /&gt;
|pidUpdateInterval||uint||300||Zeitlimit in Sekunden, nach der ein Zwangsupdate der Readings erfolgen muss (Kurvendarstellung).&lt;br /&gt;
|-&lt;br /&gt;
|pidFactor_P||pos. float||25||Proportionalitätskonstante für P-Anteil&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pidFactor_I||pos. float||0.25||Proportionalitätskonstante für I-Anteil&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pidFactor_D||pos. float||0||Proportionalitätskonstante für D-Anteil&lt;br /&gt;
|-&lt;br /&gt;
|disable||[0,1]||0||Freigabe/Sperren des Reglers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setter ===&lt;br /&gt;
&#039;&#039;&#039;desired&#039;&#039;&#039;&lt;br /&gt;
* Funktion: Sollwert einstellen&lt;br /&gt;
* Name des Setters kann vom Anwender über das Attribute &amp;quot;pidDesiredName&amp;quot; definiert werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;start&#039;&#039;&#039;&lt;br /&gt;
* PID nimmt den Betrieb wieder auf, es werden P-, I- und D-Anteil vor dem Stop übernommen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;stop&#039;&#039;&#039;&lt;br /&gt;
* PID geht in den Zustand stopped; alles wird praktisch eingefroren&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;restart&#039;&#039;&#039;&lt;br /&gt;
* arbeitet zunächst wie Start, jedoch gibt man an, mit welchen Prozentwert der Stellausgang anfangs stehen soll&lt;br /&gt;
&lt;br /&gt;
=== Readings ===&lt;br /&gt;
[[Datei:13 10 20 Pid readings.png]]&lt;br /&gt;
* actuation liefert den tatsächlichen Ausgabewert an das Stellglied&lt;br /&gt;
* actuationCalc liefert den internen Rechenwert des Ausgabewertes für das Stellglied(ohne Begrenzung)&lt;br /&gt;
* delta, die aktuelle Regeldifferenz&lt;br /&gt;
* desired (Name ist variabel), der Sollwert&lt;br /&gt;
* measured (Name ist variabel), der aktuelle Wert vom Istwert-geber&lt;br /&gt;
* p_p, der P-Anteil des Ausgabewertes für das Stellglied&lt;br /&gt;
* p_i, der I-Anteil des Ausgabewertes für das Stellglied&lt;br /&gt;
* p_d, der D-Anteil des Ausgabewertes für das Stellglied&lt;br /&gt;
* state, der Betriebszustand des Reglers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;delta&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
delta = desired - measured (also Sollwert-Istwert)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;actuation&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
actuation = actuationCalc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
jedoch begrenzt durch pidActorLimitLower und pidActorLimitUpper &lt;br /&gt;
und formatiert via pidActorValueDecPlaces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;actuationCalc&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Ausgabewert für das Stellglied wird wie folgt berechnet&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
actuationCalc = p_p + p_i + p_d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;state&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! state !! Erläuterung&lt;br /&gt;
|-&lt;br /&gt;
| disabled || PID-Instanz ist inaktiv&lt;br /&gt;
|-&lt;br /&gt;
| initializing || Modul wurde initialisiert&lt;br /&gt;
|-&lt;br /&gt;
| idle || Berechnung ist inaktiv&lt;br /&gt;
|-&lt;br /&gt;
| processing || Berechnung ist aktiv, Normalbetrieb&lt;br /&gt;
|-&lt;br /&gt;
| alarm || Ausnahmezustand, z.B. Timout des Istwert-Gebers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Inbetriebnahme ==&lt;br /&gt;
* PID20 definieren, hier mit HMS100TF als Istwert-Geber für die Temperatur und ein MAX-Thermostat als Stellglied; Auslegung für eine Fußbodenheizung (sehr träge)&lt;br /&gt;
&amp;lt;pre&amp;gt;define PID.FUBO PID20 DG.BAD.TF:temperature HT.FUBO:maxValveSetting&amp;lt;/pre&amp;gt;&lt;br /&gt;
:* &amp;lt;sensor&amp;gt; = &amp;quot;DG.BAD.TF&amp;quot;: Name des Istwert-Geber s (HMS100TF)&lt;br /&gt;
:* &amp;lt;reading&amp;gt; = &amp;quot;temperature&amp;quot;: das Reading vom HMS100TF, das die Temperatur liefert&lt;br /&gt;
:* &amp;lt;regexp&amp;gt; = nicht definiert, wir können also direkt den Wert des Readings verwenden&lt;br /&gt;
:* &amp;lt;actor&amp;gt; = &amp;quot;HT.FUBO&amp;quot; : Name des MAX-Thermostats, das als Stellglied verwendet wird&lt;br /&gt;
:* &amp;lt;cmd&amp;gt; = &amp;quot;maxValveSetting&amp;quot; : Das Kommando mit dem PID20 die Stellausgabe realisieren soll&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Letztlich wird mit &amp;lt;actor&amp;gt; und &amp;lt;cmd&amp;gt; Folgendes ausgeführt&lt;br /&gt;
&amp;lt;pre&amp;gt;set &amp;lt;actor&amp;gt; &amp;lt;cmd&amp;gt; &amp;lt;setting-value&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;zusätzlich noch einige Attribute anpassen&#039;&#039;&#039;&lt;br /&gt;
* die Ausgabehäufigkeit an das Stellglied auf 15 Minuten begrenzen&lt;br /&gt;
&amp;lt;pre&amp;gt;attr PID.FUBO pidActorInterval 900&amp;lt;/pre&amp;gt;&lt;br /&gt;
* nur dann einen Wert an das Stellglied ausgeben, wenn die Differenz zum Altwert &amp;gt;= 5% &lt;br /&gt;
&amp;lt;pre&amp;gt;attr PID.FUBO pidActorTreshold 5&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Nachommastellen für das Stellglied festlegen; MAX-Thermostate erlauben nur Werte ohne Nachkommastellen&lt;br /&gt;
&amp;lt;pre&amp;gt;attr PID.FUBO pidActorValueDecPlaces 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
* I-Faktor festlegen; Überlegung: bei einer Regelabweichung von 1 Grad, soll der I-Anteil um 0.2% pro Minute inkrementieren/dekrementieren &lt;br /&gt;
&amp;lt;pre&amp;gt;attr PID.FUBO pidFactor_I 0.2&amp;lt;/pre&amp;gt;&lt;br /&gt;
* P-Faktor festlegen; Überlegung:Bei einer Regel-Abweichung von 1 Grad, soll der P-Anteil +/-50% betragen&lt;br /&gt;
&amp;lt;pre&amp;gt;attr PID.FUBO pidFactor_P 50&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Häufigkeit der Events begrenzen: Die Readings werden im Intervall von &amp;quot;pidCalcInterval&amp;quot; aktualisiert. Die damit erzeugten Events kann man mit den Standard-Mechanismen von FHEM begrenzen. Hier wird festgelegt, daß die Readings nur dann einen Event feuern, wenn diese sich tatsächlich ändern. Der Wert hinter dem Doppelpunkt, gibt die Mindeständerung an. Fehlt dieser feuert jede Änderung einen Event.&lt;br /&gt;
&amp;lt;pre&amp;gt;attr PID.FUBO event-on-change-reading actuation:1,actuationCalc:0.5,delta:0.2,desired,measured:0.2,p_d:0.1,p_i:1.0,p_p:1.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Events feuern, wenn sich über lange Zeit eine Reading nicht ändert: Wenn sich z.B. desired über Stunden nicht ändert, so wird kein einziger Event gefeuert. Mit nachfolgender Einstellung erreicht man, dass ein Event auch dann erzeugt wird, wenn sich das Reading nach einer festgelegten Zeit nicht ändert.(sinnvoll für Charts, hier z.B. alle 30 Minuten).&lt;br /&gt;
&amp;lt;pre&amp;gt;attr PID.FUBO event-min-interval actuation:1800,actuationCalc:1800,delta:1800,desired:1800,measured:1800,p_d:1800,p_i:1800,p_p:1800&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Chart einrichten&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Es ist für das Einstellen der Regel-Faktoren (P,I,D) überaus hilfreich, das Verhalten über die Zeit aufzuzeichnen, um das Verhalten objektiv beurteilen zu können.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Zunächst ein Filelog einrichten&amp;lt;br/&amp;gt;&lt;br /&gt;
:define PID.FUBO.File FileLog ./log/PID.FUBO-%Y.log PID\.FUBO&lt;br /&gt;
:attr PID.FUBO.File logtype text&lt;br /&gt;
&lt;br /&gt;
Danach ein Chart definieren, angelehnt an folgendem Beispiel:&lt;br /&gt;
&lt;br /&gt;
[[Datei:13_12_03_PID_ChartDef.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anbei ein Vorschlag für au&lt;br /&gt;
&lt;br /&gt;
== Hintergrund-Informationen ==&lt;br /&gt;
=== list &amp;lt;pid-name&amp;gt; ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internals:&lt;br /&gt;
   DEF        DG.BAD.TF PID.Actor:state&lt;br /&gt;
   NAME       PID.PID&lt;br /&gt;
   NR         616&lt;br /&gt;
   NTFY_ORDER 50-PID.PID&lt;br /&gt;
   STATE      processing&lt;br /&gt;
   TYPE       PID&lt;br /&gt;
   Readings:&lt;br /&gt;
     2013-10-20 17:13:41   actuation       97&lt;br /&gt;
     2013-10-20 17:21:42   actuationCalc   97.2079999999999&lt;br /&gt;
     2013-10-20 17:21:42   delta           0.199999999999999&lt;br /&gt;
     2013-10-20 17:13:41   desired         22&lt;br /&gt;
     2013-10-20 17:13:41   measured        21.8&lt;br /&gt;
     2013-10-20 17:21:42   p_d             0&lt;br /&gt;
     2013-10-20 17:21:42   p_i             92.2079999999999&lt;br /&gt;
     2013-10-20 17:21:42   p_p             4.99999999999998&lt;br /&gt;
     2013-10-20 17:21:42   state           processing&lt;br /&gt;
   Helper:&lt;br /&gt;
     actor      PID.Actor&lt;br /&gt;
     actorCommand state&lt;br /&gt;
     actorErrorAction freeze&lt;br /&gt;
     actorErrorPos 0&lt;br /&gt;
     actorInterval 300&lt;br /&gt;
     actorKeepAlive 1800&lt;br /&gt;
     actorLimitLower 0&lt;br /&gt;
     actorLimitUpper 100&lt;br /&gt;
     actorThreshold 4&lt;br /&gt;
     actorTimestamp 2013-10-20 17:13:41&lt;br /&gt;
     actorValueDecPlaces 0&lt;br /&gt;
     calcInterval 60&lt;br /&gt;
     deltaGradient 0&lt;br /&gt;
     deltaOld   0.199999999999999&lt;br /&gt;
     deltaOldTS 2013-10-20 17:18:07&lt;br /&gt;
     deltaTreshold 0&lt;br /&gt;
     desiredName desired&lt;br /&gt;
     disable    0&lt;br /&gt;
     factor_D   0&lt;br /&gt;
     factor_I   0.25&lt;br /&gt;
     factor_P   25&lt;br /&gt;
     isWindUP   0&lt;br /&gt;
     measuredName measured&lt;br /&gt;
     reading    temperature&lt;br /&gt;
     regexp     ([\d\.]*)&lt;br /&gt;
     reverseAction 0&lt;br /&gt;
     sensor     DG.BAD.TF&lt;br /&gt;
     sensorTimeout 3600&lt;br /&gt;
     updateInterval 600&lt;br /&gt;
  Attributes:&lt;br /&gt;
   pidActorInterval 300&lt;br /&gt;
   pidActorTreshold 4&lt;br /&gt;
   pidActorValueDecPlaces 0&lt;br /&gt;
   room       PID&lt;br /&gt;
   verbose    4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Anti-WindUp-Strategie ===&lt;br /&gt;
Der integrale Anteil des PID-Reglers wird ohne Gegenmassnahmen auch dann weiter integriert,&lt;br /&gt;
wenn das Stellglied bereits an seine Grenzen gestossen ist.&lt;br /&gt;
Dies hat den Nachteil, dass nach einer Reduzierung der Regeldifferenz lange Wartezeiten entstehen können, bis das&lt;br /&gt;
Stellglied reagiert.&lt;br /&gt;
Dies nennt man den WindUP-Effekt.&lt;br /&gt;
Hierzu wurde die folgende Strategie entwickelt:&lt;br /&gt;
&lt;br /&gt;
[[Datei:13 10 20 PID Windup.png|WindUP]]&lt;br /&gt;
&lt;br /&gt;
Sobald das rechnerische Stellsignal (Ventilstellung Calc=actuationCalc) die obere Grenze des Stellgliedes überschreitet (pidActorLimitUpper) oder die untere Grenze unterschreitet (pidActorLimitLower), wird die Integration des I-Anteils eingefroren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Am Beispiel:&#039;&#039;&#039;&lt;br /&gt;
An Position L1 überschreitet der rechnerische Ausgabewert des Stellgliedes die obere Grenze (100%).&lt;br /&gt;
Der I-Anteil verändert sich nicht mehr bis zur Position L2. Hier unterschreitet der Ausgabewert die &lt;br /&gt;
obere Grenze, der I-Anteil kann wieder verändert werden.&lt;br /&gt;
&lt;br /&gt;
== Fragen und Antworten ==&lt;br /&gt;
=== Temperatur im Raum steigt nicht oder stark verzögert, was kann ich tun ? ===&lt;br /&gt;
&lt;br /&gt;
==== 1.Fehlerquelle : Heizsystem ist nicht ausreichend entlüftet ====&lt;br /&gt;
In diesem Fall behindern die Luftblasen im System den Durchfluss des Heizmediums.&amp;lt;br/&amp;gt;&lt;br /&gt;
Der Heizkörper erwärmt sich nur teilweise oder &amp;quot;gluckert&amp;quot;.&lt;br /&gt;
Hier ist das Entlüften der Heizkörper angesagt.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Natürlich können sich die Gasblasen an anderer Stelle befinden. &lt;br /&gt;
Normalerweise sorgen automatische Entlüfter, dass das Gas entweichen kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
Aber auch diese &amp;quot;verkalken&amp;quot; im Lauf der Zeit.&lt;br /&gt;
&lt;br /&gt;
==== 2.Fehlerquelle : Totzone beim Stellglied ====&lt;br /&gt;
Der Temperaturanstieg erfolgt erst ab einer bestimmten Ventilöffnung von xy%.&amp;lt;br/&amp;gt;&lt;br /&gt;
Der PID-Regler geht davon aus, dass jede Änderung des Stellausgangs auf die Regelgröße wirkt&amp;lt;br/&amp;gt;&lt;br /&gt;
(also bei Ventil weiter öffnen, wird mehr Wärme abgegeben)&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ist dies nicht der Fall, wird der PID über die Zeit (I-Anteil) das Ventil weiter öffnen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Allerdings vergeht hierbei Zeit und damit leidet die Regelgüte.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist also wichtig die Totzone zu ermitteln und im Attribut pidActorLimitLower zu hinterlegen.&lt;br /&gt;
&lt;br /&gt;
==== 3.Fehlerquelle : Hydraulische Fehlanpassung ====&lt;br /&gt;
Wenn einzelnen Heizkreise einen sehr kleinen hydraulischen Widerstand aufweisen, kann es passieren&lt;br /&gt;
das Heizkreise mit höherem Widerstand zeitweise unterversorgt sind.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Erst wenn die gut versorgten Heizkreise die Ventile schließen (Soll-Temperatur ist erreicht),&lt;br /&gt;
werden die Heizkreise mit hohem Widerstand ausreichend versorgt.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Dies kann man dank FHEM sehr gut über die Charts nachvollziehen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es ist regelungstechnisch, ökologisch und energetisch absolut sinnvoll geregelte Hocheffizienz-Pumpen&lt;br /&gt;
im Heizkreis einzusetzen. Diese sorgen für konstanten Druck im Hauptstrang bei sehr geringen Energiebedarf.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kann gezielt den hydraulischen Widerstand einzelner Thermostate erhöhen, indem man deren maximale Ventilöffnung begrenzt.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies erreicht man durch Reduzieren des Wertes pidActorLimitUpper.&amp;lt;br/&amp;gt;&lt;br /&gt;
Dies ist gleichbedeutend mit der Erhöhung der hydraulischen Widerstandes durch voreinstellbare Heizungsventile beim hydraulischen Abgleich.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://forum.fhem.de/index.php/topic,15060.0.html Initialer Forumseintrag zur Überarbeitung des PID-Moduls]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Regler Wikipedia Regler]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Glossary]]&lt;br /&gt;
[[Kategorie:Regelungstechnik]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_RGBWW_Board_mit_DMX_und_IR&amp;diff=11848</id>
		<title>PanStamp RGBWW Board mit DMX und IR</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_RGBWW_Board_mit_DMX_und_IR&amp;diff=11848"/>
		<updated>2015-07-29T06:10:59Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: .&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=PlatzHalter.png&lt;br /&gt;
|Bildbeschreibung=RGBWW Board&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=12V&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Netzteil&lt;br /&gt;
|HWSize=&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#SWAP_0000002200000003 35_SWAP_0000002200000003.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
[[PanStamp RGBWW Board mit DMX und IR]] unterstützt RGBW LEDs und lässt sich per Infrarot Fernbedienung, DMX Controller (z.B. als Unterputz Touchpanel) und FHEM bedienen.&lt;br /&gt;
Es ist eine Hard- und Softwareentwicklung auf Basis von panStamp Modulen und verwendet zusätzlich das FHEM Modul [[SWAP 0000002200000003]] als 3. Ebene&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang wird in diesem {{Link2Forum|Topic=12487|Message=81923|LinkText=Forenthread}} vorgestellt. Die Hardware für das Board wird {{Link2Forum|Topic=13890|LinkText=hier}} im FHEM Forum vorgestellt und ein Prototyp ist {{Link2Forum|Topic=12487|Message=85777|LinkText=hier}} zu sehen.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Die Projektseite zur Hardware findet sich [http://itse.homeip.net/projekte/12/6/ hier]. Eine Version 2 des Boards in geplant. &lt;br /&gt;
&lt;br /&gt;
=== Kompatibilität RBG-Board mit NRG-panStamps ===&lt;br /&gt;
Mit dem hier beschriebenen Sketch ist das Board nur mit den panStamp AVRs kompatibel. Die Pinbelegung zwischen AVR und NRG ist im Prinzip gleich bis auf Pin 23. Das ist bei dem NRG ein IO Pin und nicht GND wie beim AVR. Das wäre kein Problem wenn man entweder hardwareseitig den Kontakt unterbricht oder aber programmiertechnisch diesen Pin &#039;&#039;&#039;NIE&#039;&#039;&#039; als Ausgang definiert. Ansonsten gibt’s einen „kurzen“. Oder wenn er als Ausgang definiert ist darf er nur das GND Potential haben, also Low, 0. {{Link2Forum|Topic=13890 |Message=247069}}&lt;br /&gt;
&lt;br /&gt;
Da es derzeit (Stand 01.05.2015) aber keinen Sketch gibt, der auf den NRG lauffähig ist, wäre vorher noch diese Herausforderung zu lösen.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften des fade TBC ===&lt;br /&gt;
Der wichtige Punkt ist das das RGBWW-Board Farbübergänge autonom macht und FHEM nur den Trigger zum starten und Rückmeldung über den Status gibt. d.h. wie ruckelfrei das faden ist hängt nicht von äußeren Bedingungen wie Funklast, FHEM timing oder FHEM Auslastung ab. Im Board gibt es 15 &#039;&#039;&#039;Register&#039;&#039;&#039; die jeweils eine Farbe und eine Anzeigedauer enthalten. Diese werden (ein mal) von FHEM aus programmiert. Zum starten wird dann nur noch das Anfangs- und das Endregister gesendet und das Board überblendet zwischen allen Farben der Register zwischen Anfang und Ende in der eingestellten Zeit.&lt;br /&gt;
Die eigentliche Einschränkung ist das die aktuelle AVR Version der panstamps &#039;&#039;nur&#039;&#039; 8bit pwm kann (jedenfalls wenn es 3 oder mehr Kanäle sein sollen und die Hardware PWM genutzt wird). Wenn dir diese 256 Stufen pro Grundfarbe reichen ist es absolut Ruckelfrei. d.h. es gibt keinen zeitlichen Jitter. Ob dir die Anzahl der Helligkeitsstufen reicht hängt ein wenig von den LEDs selber ab und davon zwischen welchen Farben du konkret wechselst. Im dunklen Bereich wirst du vermutlich stufen sehen (also beim aufblenden von dunkel zu hell). wenn du zwischen zwei hellen Farben (z.b. von rot nach grün) blendest wirst du keine stufen sehen. {{Link2Forum|Topic=13890|Message=106644}}&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Eine Übersicht über die derzeit vorhandene Funktionalität des [[SWAP_0000002200000003|Fhem Moduls]] und panStamp Sketches (Stand 01.05.2015):&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=1205404}}&lt;br /&gt;
was geht:&lt;br /&gt;
* Bis zu vier LED Kanäle (je nach Kombination von ir und soft PWM)&lt;br /&gt;
* Ir senden&lt;br /&gt;
* Ir empfangen&lt;br /&gt;
* Messen ob die LED Versorgungsspannung an ist&lt;br /&gt;
* Helligkeit eines an Pin &amp;lt;code&amp;gt;A2&amp;lt;/code&amp;gt; angeschlossenen Helligkeitssensors (LDR)&lt;br /&gt;
* Konfiguration der DMX Basisadresse über das SWAP Register &amp;lt;code&amp;gt;0x12&amp;lt;/code&amp;gt;&lt;br /&gt;
* Optional soft on auf letzten RGBW Wert&lt;br /&gt;
* Alles was auch vorher schon ging: dimmen, faden, ir fernbedienungen anlernen, ...&lt;br /&gt;
&lt;br /&gt;
wichtig zu wissen:&lt;br /&gt;
* Wenn ir aktiv ist und kein soft PWM lässt sich der 4. Kanal nur ein und aus schalten&lt;br /&gt;
* Wenn ir aktiv ist muss soft PWM aktiv sein um den 4. Kanal auch zu dimmen&lt;br /&gt;
* Es wird nur ein zusätzlicher LED Kanal tatsächlich schon unterstützt. Der fünfte kommt noch&lt;br /&gt;
* Bei ir senden sind nur die Aufrufe für Sony und NEC tatsächlich eingebaut. Die Anderen sind aber einfach zu ergänzen&lt;br /&gt;
* Beim ir senden sind noch keine Wiederholungen eingebaut. Die müssen laut Protokoll aber eigentlich sein&lt;br /&gt;
&lt;br /&gt;
was noch kommt:&lt;br /&gt;
* besseres soft PWM&lt;br /&gt;
* mehr Konfiguration bezüglich default verhalten. ramp zeiten, delays, ...&lt;br /&gt;
* hsv Farbmodell um besser zu faden und vor allem um den Weißanteil automatisch auf die weißen LEDs zu legen&lt;br /&gt;
* die virtuellen channel &lt;br /&gt;
* fhem kompatibles ir senden&lt;br /&gt;
* sofortiges senden von Helligkeit und LED Spannung bei Änderung&lt;br /&gt;
* andere ir lib mit sehr viel besserer Geräte Unterstützung&lt;br /&gt;
&lt;br /&gt;
wie gehabt muss alles über &amp;lt;code&amp;gt;config.h&amp;lt;/code&amp;gt; mit Compilerschalter konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.5 / 1.6 einrichten ===&lt;br /&gt;
Mit der Arduino IDE 1.5.x gab es zusätzlich eine [http://www.panstamp.com/news/panstamp-is-now-fully-arduino-1-5-enabled/ grundlegende Umstellungen der Arduino SWAP Library], für die der derzeitige Sketch [r4716] angepasst werden muss. Der Sketch ist nur kompatibel zur alten SWAP Library, die unter [[PanStamp_Programmierung#Arduino_IDE_1.0.x_vorbereiten|Arduino IDE 1.0 installiert]] werden muss (Stand 01.05.2015).&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.0 einrichten ===&lt;br /&gt;
Zum Flashen der panStamps wird die [[PanStamp_Programmierung#Arduino_IDE_1.0.x_vorbereiten|Arduino IDE 1.0.x benötigt]]. Für den RGBWW-Sketch sind je nach gewünschtem Funktionsumfang noch folgende libs zu installieren:&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;Panstamp Lib&#039;&#039;&#039; läd man von hier [[http://old.panstamp.com/downloads]] (panstamp_library.zip, 129k v.25, May 31, 2013). Mit der neueren Lib v.4 läuft die Kompillierung des derzeitigen Sketches nicht durch. Die Dateien der Lib speichert man in einem entsprechend neuen  Unterordner, z.B. hierin &amp;lt;code&amp;gt;C:\Users\&amp;lt;username&amp;gt;\Documents\Arduino\libraries&amp;lt;/code&amp;gt;. Am Ende der ganzen Aktion sollten sich in diesem Unterordner 3 neue Unterordner befinden: &amp;lt;code&amp;gt;IRremote, DMXSerial und panstamp&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;IR Remote Lib&#039;&#039;&#039; kopiert man von hier [[https://github.com/shirriff/Arduino-IRremote]] und speichert sie ebenfalls in einem passenden Unterordner von &amp;lt;code&amp;gt;libraries&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;DMX Lib&#039;&#039;&#039; kopiert man von hier [[http://www.mathertel.de/Arduino/DMXSerial.aspx]] und speichert sie ein weiteres Mal in einem weiteren Unterordner von &amp;lt;code&amp;gt;libraries&amp;lt;/code&amp;gt;. Weitere Informationen zur Verwendung von Arduino Librarys finden sich hier [[http://arduino.cc/en/Hacking/Libraries]]. Dass die Librarys richtig erkannt worden sind, lässt sich dadurch erkennen, dass unter dem Menüpunkt &amp;lt;code&amp;gt;Sketch/Library importieren&amp;lt;/code&amp;gt; die 3 weiteren Punkte unten unter &amp;lt;code&amp;gt;beigetragen&amp;lt;/code&amp;gt; auftauchen.&lt;br /&gt;
&lt;br /&gt;
Die Librarys sollten entweder mit dem entsprechenden Menüpunkt in die IDE integriert werden oder jeweils nach auspacken des zip files als als kompletten Ordner im Arduino &amp;lt;code&amp;gt;libraries&amp;lt;/code&amp;gt; Verzeichnis abgelegt werden (siehe [http://www.arduino.cc/en/Hacking/Libraries)]).&lt;br /&gt;
* Windows IDE only: Falls alles so bleibt, wie es heruntergeladen wurde, wechselt man wieder auf den Reiter Sketch und importiert über -&amp;gt;Sketch Library importieren die entsprechenden Libs für IRremote und DMX. Dadurch werden 3 neue Zeilen hinzugefügt.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
Für das kompilieren mit INO siehe [[PanStamp_Programmierung#INO|hier]].&lt;br /&gt;
&lt;br /&gt;
=== Link zum Sketch ===&lt;br /&gt;
Die aktuelle Version des RGBWW-Driver Sketches findet sich auf [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge]. {{Link2Forum|Topic=13890 |Message=201391}}&lt;br /&gt;
Dieser muss in &amp;lt;code&amp;gt;Arduino\libraries\panstamp\examples\sketches&amp;lt;/code&amp;gt; entpackt und die &amp;lt;code&amp;gt;rbgdriver.ino&amp;lt;/code&amp;gt; gestartet werden. In der Arduino IDE sollte unter Tools-&amp;gt;Board &amp;quot;Arduino Pro or Pro Mini (3.3V, 8MHz) w/ Atmega328&amp;quot; eingestellt sein. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert kann man in der IDE auch direkt panStamp als Plattform auswählen.&lt;br /&gt;
&lt;br /&gt;
==== Kompillierte hex version ====&lt;br /&gt;
Eine kompiliertes HEX-File für drei (vier) Kanäle plus IR-Empfang und DMX ist hier im Forum zu finden: {{Link2Forum|Topic=13890 |Message=121619}}&lt;br /&gt;
&lt;br /&gt;
==== HEX-File ohne IR und DMX ====&lt;br /&gt;
Eine kompiliertes HEX-File ohne IR-Empfang und DMX ist hier im Forum zu finden: {{Link2Forum|Topic=13890 |Message=201955}}&lt;br /&gt;
&lt;br /&gt;
=== Compilerschalter ===&lt;br /&gt;
Welche Features der sketch bietet lässt sich im &amp;lt;code&amp;gt;config.h&amp;lt;/code&amp;gt; file durch ein- oder auskommentieren der &amp;lt;code&amp;gt;#define ENABLE_...&amp;lt;/code&amp;gt; Zeilen festlegen. {{Link2Forum|Topic=13890 |Message=173431}}&lt;br /&gt;
&lt;br /&gt;
==== #define ENABLE_DMX ====&lt;br /&gt;
 #define ENABLE_DMX&lt;br /&gt;
Ermöglicht die Nutzung eines DMX RGB Einstellers zur Steuerung der RGB LEDs&lt;br /&gt;
&lt;br /&gt;
Hierbei ist darauf zu achten, dass in der DMX-Lib in der Datei &amp;lt;code&amp;gt;DMXSerial.h&amp;lt;/code&amp;gt; die Zeile&lt;br /&gt;
 #define DmxModePin 2     // Arduino pin 2 for controlling the data direction&lt;br /&gt;
in &lt;br /&gt;
 #define DmxModePin 7     // Arduino pin 7 for controlling the data direction&lt;br /&gt;
abgeändert werden muss.&lt;br /&gt;
&lt;br /&gt;
==== #define HAS_SENSOR ====&lt;br /&gt;
  #define HAS_SENSOR&lt;br /&gt;
Ermöglicht die Nutzung eines DHT22 Sensors zur Auswertung von Temperatur und Luftfeuchtigkeit&lt;br /&gt;
Dafür sollten diese Konfigurationszeilen auskommentiert sein:&lt;br /&gt;
  USE_SOFT_PWM;&lt;br /&gt;
  ENABLE_IR_SEND;&lt;br /&gt;
  ENABLE_REPEATER;&lt;br /&gt;
&lt;br /&gt;
In der &amp;lt;code&amp;gt;IRremote.cpp&amp;lt;/code&amp;gt; Datei in der Irremote Library muss die Zeile&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void IRrecv::disableIRIn() &lt;br /&gt;
{&lt;br /&gt;
TIMER_DISABLE_INTR;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie die &amp;lt;code&amp;gt;Irremote.h&amp;lt;/code&amp;gt; Datei unter &amp;lt;code&amp;gt;Public:&amp;lt;/code&amp;gt; um die Zeile &lt;br /&gt;
 void disableIRIn();&lt;br /&gt;
erweitert werden.&lt;br /&gt;
&lt;br /&gt;
Der Daten-Pin des DHT22 Sensors muss hierfür an Pin &amp;lt;code&amp;gt;A2&amp;lt;/code&amp;gt; des panStamps angeschlossen werden.&lt;br /&gt;
Ein Beispiel für die Umrechnung der userReading für Spannung Temp etc. ist hier beschrieben: {{Link2Forum|Topic=12487 |Message=76489}}&lt;br /&gt;
&lt;br /&gt;
=== Zusammenhänge der Konfiguration ===&lt;br /&gt;
Die Zusammenhänge der Konfiguration sind hier beschrieben {{Link2Forum|Topic=13890 |Message=175181}}&lt;br /&gt;
&lt;br /&gt;
=== 4. und 5. LED Kanal TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg169741#msg169741&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg192132#msg192132&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201922#msg201922&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201936#msg201936&lt;br /&gt;
&lt;br /&gt;
=== Alternativer Fade per Patch ===&lt;br /&gt;
Als Alternative zum im Sketch und im Modul eingebauten Fade-Befehl ist hier ein Patch vorgestellt:&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133096}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133096.html#msg133096]&lt;br /&gt;
&lt;br /&gt;
Der Patch ist &#039;&#039;&#039;nicht eingecheckt&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IR Schnittstelle TBC ==&lt;br /&gt;
=== IR TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107061#msg107061&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107197#msg107197&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107415#msg107415&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122021.html#msg122021&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122077.html#msg122077&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg167351#msg167351&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175269#msg175269&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175285#msg175285&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg182582#msg182582&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg245597#msg245597&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg259267#msg259267&lt;br /&gt;
&lt;br /&gt;
=== IR-Belegung Panstamp RGB-Board TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163008.html#msg163008&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163153.html#msg163153&lt;br /&gt;
&lt;br /&gt;
=== Ircluster TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175331#msg175331&lt;br /&gt;
&lt;br /&gt;
=== Irgate TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175278#msg175278&lt;br /&gt;
&lt;br /&gt;
== DMX Schnittstelle ==&lt;br /&gt;
Da die DMX-Schrittstelle kein direktes Interface zu FHEM hat, sondern nur die direkte Kommunikation zwischen DMX-Kontroller und RGB-Board betrifft, ist die Schnittstelle nur bei der Konfiguration des Sketches und über die Dokumentation des Boards beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://itse.homeip.net/projekte/12/6/ Projektseite] für das RGB-Multi-Board.&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ rgbdriver sketch] auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp&amp;diff=11838</id>
		<title>PanStamp</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp&amp;diff=11838"/>
		<updated>2015-07-28T13:12:31Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{SEITENTITEL:panStamp}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V (panStick: 5V USB)&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery (panStick: USB)&lt;br /&gt;
|HWSize=17.7 x 30.5 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz&lt;br /&gt;
|RNText=Auf der Diskussionsseite dieses Artikels gibt es eine Neufassung des Artikels mit der Bitte um Korrektur direkt hier oder konstruktive Kritik [http://forum.fhem.de/index.php/topic,12487.msg290966.html#msg290966]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel, als mutmaßlicher Eingangsartikel zu dem Thema, beschreibt das FHEM Modul panStamp, was das Funkinterface zu FHEM bildet. Eine [[panStamp_(Systemübersicht)|Systemübersicht]] ist in einem separaten Artikel beschrieben. Der Focus liegt hier natürlich auf die Integration mit FHEM. Zu der Hardware [[panStamp]] gibt es Herstellerseitig eine eigenen Community mit [http://www.panstamp.org/forum/ Forum] und [https://github.com/panStamp/panstamp/wiki Wiki], sowie [https://github.com/panStamp/panstamp/wiki/Downloads Downloads] auf [https://github.com/panStamp Github].&lt;br /&gt;
&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Ardunio IDE oder mit dem ino Kommandozeilen Binary programmieren. Der [[panStamp]] Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;. Zur Kommunikation in einem [[panStamp]] Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([http://code.google.com/p/panstamp/wiki/SWAP SWAP]). Um einen [[panStamp]] in Betrieb zu nehmen muss er unbedingt mit einer Antenne oder einem stück Draht in der [https://code.google.com/p/panstamp/wiki/antennalengths richtigen Länge] bestückt sein. Ohne Antenne funktioniert die Übertragung nicht. Auch nicht auf kurze Distanzen.&lt;br /&gt;
&lt;br /&gt;
== Allgemein ==&lt;br /&gt;
Die Integration in FHEM erfolgt über eine [[PanStamp_(Systemübersicht)#FHEM_Module|Reihe von Modulen]] die im folgenden und [[:Kategorie:PanStamp|anderen]] Artikel genauer beschrieben sind. Das Modul [[panStamp]] erstellt dabei das IO-Device in FHEM.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Als Schnittstelle zwischen FHEM und einem [[panStamp]] Netzwerk dient entweder ein [[panStick]] (USB Stick mit aufgestecktem panStamp) oder ein panShield mit integriertem [[panStamp]] an einem Raspberry Pi. Der so angebundene [[panStamp]] wird mit einem (bei Auslieferung des panStamps vorinstallierten) [[panStick|Modem-Sketch]] als RF-Modem verwendet und über das FHEM Modul [[panStamp]] angesprochen. Der [[panStick]] kann auch per USB an einer anderen Serverhardware angebunden werden. Die Kommunikation zu FHEM erfolgt dann z.B. über ser2net oder FHEM2FHEM über LAN.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
Das Device [[panStick]] wird derzeit (01.05.2015) nicht durch autocreate angelegt. Daher muss es manuell entsprechend folgendem Befehl angelegt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;define panStick panStamp /dev/ttyUSBx@38400&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Schnittstelle (/dev/ttyUSBx) muss entsprechend der lokal verwendeten Schnittstelle angepasst werden. Für die Einrichtung des [[panStick]] innerhalb des Betriebssystem siehe [[Programmierung_eines_panStamp#Installation_panStick_2|hier]]&lt;br /&gt;
&lt;br /&gt;
Dieses [[panStamp]] Device, der [[panStick]], versucht dann alle panStamps per [[SWAP]]-Broadcast zu finden und per [[autocreate]] anzulegen, wenn dieses aktiv sind. Die weitere Funktion übernimmt das Modul [[SWAP]], was das Funkprotokoll der [[panStamp]] Module in FHEM implementiert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Betrieb an der Fritzbox&#039;&#039;&#039;&lt;br /&gt;
Spezialitäten zum Betrieb an einer Fritzbox sind hier [http://forum.fhem.de/index.php/topic,12487.msg87778.html#msg87778] und hier [http://forum.fhem.de/index.php/topic,12487.msg95914.html#msg95914] beschrieben. Es scheint nur der hintere USB-Anschluss für die Verwendung zu laufen. Außerdem muss der USB-Fernaschluss deaktiviert sein.&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Für den [[panStick]] gibt es keine modulspezifischen Attribute.&lt;br /&gt;
&lt;br /&gt;
=== set-Befehle ===&lt;br /&gt;
&lt;br /&gt;
* discover?&lt;br /&gt;
Mit diesem Befehl wird eine Broadcast SWAP-Message abgesetzt, die alle empfangenden panStamps dazu veranlassen, sich zu melden. Batteriebetriebenen panStamps können systembedingt nur identifiziert werden, wenn diese Empfangsbereit sind und sich nicht im Schlafmodus befinden.&lt;br /&gt;
&lt;br /&gt;
* raw&lt;br /&gt;
Ist der [[panStick]] eingerichtet und meldet &amp;quot;Initialized&amp;quot;, kann über das [[panStick]] device direkt eine raw Message abgesetzt werden. Diese ist zur Zeit eigentlich immer eine SWAP Nachricht wie z.b. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set panStick raw 00010000010000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel wird ein Broadcast an alle abgesetzt, damit diese ihre ID und ihren ProductCode zurück an FHEM senden. Das macht der [[panStick]] nach dem Initialisieren auch ein mal automatisch um alle nicht schlafenden Devices per [[autocreate]] anlegen zu können.&lt;br /&gt;
Mit diesem Befehl &amp;quot;raw&amp;quot; lassen sich [[SWAP]]-Messages direkt absetzten, was vor allen Dingen dann hilfreich sein kann, wenn man vermutet, dass die Kommunikation über die modulgestützten Befehle fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== Neue panStamps in Betrieb nehmen ===&lt;br /&gt;
&#039;&#039;&#039;Info: Das [[SWAP]] Modul unterstützt [[autocreate]]. Bei der Inbetriebnahme ist [[autocreate]] zu aktivieren!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, da sie zuerst mit einer eindeutigen Device-Adresse (ungleich &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; und grösser &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;) versehen werden müssen. Bei batteriebetriebenen Sensoren sollte auch das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
Für panStamp-Hardware im Power-Down-Modus werden diese Kommandos in eine Warteschlange gestellt und übertragen, sobald die panStamp-Hardware seine Initialisierungssequenz durchläuft. Hierzu ist nach Absetzen der Kommandos aus FHEM die Reset-Taste an der panStamp-Hardware zu drücken oder die Stromquelle erneut zu verbinden.&lt;br /&gt;
&lt;br /&gt;
Das [[SWAP]]-Modul versucht, panStamp-Hardware mit der default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern. Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
Für batteriebetriebene panStamp-Hardware (genauer: Hardware die den Power-Down-Modus unterstützen) wird das Default Sendeintervall von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden) geändert.&lt;br /&gt;
Es gibt mit bestimmten [[panStamp]] lib Versionen das Problem das ein Wert von FFFF in Systemregister &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; zum Überlauf führt und dann ununterbrochen SWAP Nachrichten gesendet werden. Im FHEM Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen Host-Systemen (z.B. FritzBox) nicht, weil der [[panStamp]] so schnell sendet, dass FHEM so mit dem Abarbeiten beschäftigt ist, dass es selber nicht zum senden kommt.&lt;br /&gt;
Zur Abhilfe kann im Sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden. Der Sketch ist dann zu flashen und wenn der Sketch einmal durchgelaufen ist, können diese beiden Zeilen wieder entfernen werden und der [[panStamp]] muss noch mal geflasht werden. Ansonsten wird die Adresse bei jedem Start erneut auf &amp;lt;code&amp;gt;5555&amp;lt;/code&amp;gt; gesetzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Weblinks =&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ soilmoisture sketch]  auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SWAP_0000002200000003&amp;diff=11837</id>
		<title>SWAP 0000002200000003</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SWAP_0000002200000003&amp;diff=11837"/>
		<updated>2015-07-28T12:41:57Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Inhalt aus panStamp Diskussion übernommen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{SEITENTITEL:SWAP_0000002200000003}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Modul zur Ansteuerung des erweiterten RGB Board&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=SWAP_0000002200000003&lt;br /&gt;
|ModForumArea=&lt;br /&gt;
|ModFTopic=&lt;br /&gt;
|ModTechName=&lt;br /&gt;
|ModOwner=&lt;br /&gt;
}}&lt;br /&gt;
[[Datei:SWAP_0000002200000003.png|mini|rechts|hochkant=2.5|RGB LED Driver Board]]&lt;br /&gt;
Ein FHEM Modul für das modifizierte panStamp RGB LED Driver Board. &lt;br /&gt;
&lt;br /&gt;
Das Board unterstützt RGBW LEDs und lässt sich per Infrarot Fernbedienung, DMX Controller (z.&amp;amp;nbsp;B. als Unterputz Touchpanel) und FHEM bedienen.&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang wird in diesem [http://forum.fhem.de/index.php/topic,12487.msg81923.html#msg81923 Forenthread] vorgestellt. Die Hardware für das Board wird [http://forum.fhem.de/index.php/topic,13890.0.html  hier] im FHEM Forum vorgestellt und ein Prototyp ist [http://forum.fhem.de/index.php/topic,12487.msg85777.html#msg85777 hier] zu sehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== weitrere Screenshots =====&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:SWAP_0000002200000003-internal.png|InternalValues&lt;br /&gt;
File:SWAP_0000002200000003-readings.png|Readings&lt;br /&gt;
File:SWAP_0000002200000003-attributes.png|Attributes&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Um Modul xyz benutzen zu können, muss außerdem ...&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== set-Kommando ===&lt;br /&gt;
* on/off/on-for-timer/toggle/...&lt;br /&gt;
Wie bei jedem anderen Device&lt;br /&gt;
*rgb RRGGBB&lt;br /&gt;
Stellt die Farbe ein, ohne Fade.&lt;br /&gt;
*dimUp&lt;br /&gt;
*dimDown&lt;br /&gt;
Stufenweise heller oder dunkler schalten&lt;br /&gt;
*setIR # code&lt;br /&gt;
*learnIR #&lt;br /&gt;
*storeIR # code cmd&lt;br /&gt;
Hinterlegt eine von 16 möglichen Zuordnungen zwischen ir-Signal und FHEM-Kommando. # ist die Nummer der Registers, code ist das ir-Kommando, cmd ist das rgb driver kommando das ausgeführt werden soll&lt;br /&gt;
*getIR #&lt;br /&gt;
*getIR all&lt;br /&gt;
Fragt ein/alle hinterlegten ir Register ab. Anzeige mit &amp;lt;code&amp;gt;get &amp;lt;device&amp;gt; listIR&amp;lt;/code&amp;gt;&lt;br /&gt;
*setFade # RRGGBB time&lt;br /&gt;
Speichert eine definierte Farbe in bis zu 16 unterschiedlichen Registern. Durch diese Farben kann später automatisch überblendet werden.&lt;br /&gt;
*getFade #&lt;br /&gt;
*getFade all&lt;br /&gt;
Fragt alle hinterlegten fader Register ab. Anzeige mit &amp;lt;code&amp;gt;get &amp;lt;device&amp;gt; listFade&amp;lt;/code&amp;gt;&lt;br /&gt;
*startFade #1 #2&lt;br /&gt;
Beginnt in einer Endlosschleife zwischen die Register von &amp;lt;code&amp;gt;#1&amp;lt;/code&amp;gt; bis zu &amp;lt;code&amp;gt;#2&amp;lt;/code&amp;gt; durchzufaden.&lt;br /&gt;
&lt;br /&gt;
=== get-Kommando===&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
* defaultFadeTime&lt;br /&gt;
Es wird diese fadeTime verwendet, wenn bei dem set-Kommandor &amp;lt;code&amp;gt;fadeTo&amp;lt;/code&amp;gt; keine Zeit angegeben wird. Das macht es etwas einfacher das [[PanStamp RGBWW Board mit DMX und IR]] in eine [[LightScene]] einzubinden und beim aktivieren einer Szene die Farben zu faden statt hart umzuschalten&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== original RGB-Sketch (von panstamp.com) ===&lt;br /&gt;
Der originale Sketch von der panStamp.com-Seite und das [[SWAP]] FHEM-Modul verstehen von Haus aus nur die &amp;lt;code&amp;gt;regSet&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;regGet&amp;lt;/code&amp;gt; Kommandos. Wenn man den [[Color#Colorpicker|colorpicker]] verwenden möchte, geht das nur per [[readingsProxy]].&lt;br /&gt;
Das einfachste ist es den [[PanStamp_RGBWW_Board_mit_DMX_und_IR#Link_zum_Sketch|Sketch]] und das [[SWAP_0000002200000003|FHEM-Modul]] für das [[PanStamp_RGBWW_Board_mit_DMX_und_IR|RGBWW-Board]] zu verwenden. Dann hat man neben dem colorpicker, einem farbigen State-Icon auch alle Möglichen FHEM-Kommandos wie on, off, on-for-timer, dimup, etc. zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Derzeit scheint es keinen Grund zu geben, den original Sketch zu verwenden. {{Link2Forum|Topic=12487 |Message=220463}}&lt;br /&gt;
&lt;br /&gt;
Falls jemand trotzdem den normalen RGB-Sketch von panStamp verwendet:&lt;br /&gt;
* Im SourceCode der Datei alle drei &amp;lt;code&amp;gt;0000002200000003&amp;lt;/code&amp;gt; durch &amp;lt;code&amp;gt;0000000100000003&amp;lt;/code&amp;gt; ersetzen.&lt;br /&gt;
Dann geht on/off/toggle/set rgb RRGGBB und auch der colorpicker, wenn das HUEDevice Modul auch geladen ist.&lt;br /&gt;
&lt;br /&gt;
=== ir Code anlernen ===&lt;br /&gt;
Um die ir Kommandos anzulernen am besten &amp;lt;code&amp;gt;learnIR #&amp;lt;/code&amp;gt; verwenden. Danach blinkt die LED auf dem Board schnell und es wird auf ein ir-Signal gewartet. Wenn das empfangen ist blinkt die LED langsamer und es wird auf ein Kommando von FHEM gewartet. Danach geht die LED auf dem Board aus und das eben gesendete FHEM-Kommando ist mit der Taste auf der ir Fernbedienung verknüpft.&lt;br /&gt;
&lt;br /&gt;
Empfangene ir-Kommandos, die nicht über eines der 16 Register eine lokale Aktion auslösen, werden über das Register &amp;lt;code&amp;gt;0C&amp;lt;/code&amp;gt; an FHEM übertragen und sind per notify ganz normal weiter verarbeitbar.&lt;br /&gt;
&lt;br /&gt;
=== Power On State konfigurieren ===&lt;br /&gt;
register 0E PowerOnState:&lt;br /&gt;
* 1. byte: &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; -&amp;gt; aus, &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; -&amp;gt; weiss, &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;-&amp;gt; eine bestimmte Farbe wie im 3. Byte konfiguriert, &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; -&amp;gt; autosave. &amp;lt;code&amp;gt;E0.1 Bit 5&amp;amp;6&amp;lt;/code&amp;gt; gibt jetzt in 10 Sekunden Schritten an nach welcher Zeit das autosave ins eeprom passieren soll. also 0, 10, 20 oder 30 Sekunden&lt;br /&gt;
* 2. byte: Helligkeit&lt;br /&gt;
* 3-5. byte &amp;lt;code&amp;gt;rrggbb&amp;lt;/code&amp;gt;&lt;br /&gt;
Man kann z.b. mit  &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; regSet 0E 0200FFFFFF&amp;lt;/code&amp;gt; einstellen das nach dem einschalten alle drei Farbkanäle voll aufgedreht werden.&lt;br /&gt;
oder mit &amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; regSet 0E 0300000000&amp;lt;/code&amp;gt; autosave aktivieren. Dann wird jeweils nach 5 Minuten ohne Änderung die aktuelle Farbe ins eeprom gesichert. Die 5 Minuten könnte man eventuell noch verkürzen. Für autosave ist am Anfang der loop Schleife im Arduino Sketch das Schreiben ins eeprom zu aktivieren (das &amp;lt;code&amp;gt;#if 0&amp;lt;/code&amp;gt; in ein &amp;lt;code&amp;gt;#&#039;if 1&amp;lt;/code&amp;gt; ändern). An dieser Stelle kannst du auch die 5 Minuten anpassen.&lt;br /&gt;
Soft on funktioniert auch mit dem Wert vor dem letzten ausschalten. Hierzu ist das Register &amp;lt;code&amp;gt;0E.1&amp;lt;/code&amp;gt; wie folgt zu setzen: &amp;lt;code&amp;gt;0x02&amp;lt;/code&amp;gt; um nach hard power on den letzten rgb wert zu haben, &amp;lt;code&amp;gt;0x08&amp;lt;/code&amp;gt; um nach soft on den letzten wert zu haben. Für beides zusammen &amp;lt;code&amp;gt;0x0a&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 5. LED Kanal zum schalten benutzen ===&lt;br /&gt;
Mit den 5. Kanal nur schalten ist kein Problem. Das SWAP FHEM-Modul kann schon so konfiguriert werden das es nur den Teil eines Registers als eigenständiges Device zur Verfügung stellt. Alternativ geht das auch mit dem [[readingsProxy]].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define Leinwand readingsProxy RGB_Leinwand 0B.4&lt;br /&gt;
attr Leinwand setFn {if($CMD eq &amp;quot;on&amp;quot;) {fhem(&amp;quot;set $DEVICE regSet 0B.4 FF&amp;quot;)} else {fhem(&amp;quot;set $DEVICE regSet 0B.4 00&amp;quot;)}}&lt;br /&gt;
attr Leinwand setList on off&lt;br /&gt;
attr Leinwand valueFn {return &amp;quot;off&amp;quot; if( $VALUE eq &amp;quot;00&amp;quot;); return &amp;quot;on&amp;quot;;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fade konfigurieren ===&lt;br /&gt;
Faderegister definieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set Device setFade 01 FF0000 60&lt;br /&gt;
set Device setFade 02 00FF00 60&lt;br /&gt;
set Device setFade 03 0000FF 60&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fade starten von Register 1 bis Register 3:&lt;br /&gt;
 set Device startFade 01 03&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Diskussion:PanStamp&amp;diff=11836</id>
		<title>Diskussion:PanStamp</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Diskussion:PanStamp&amp;diff=11836"/>
		<updated>2015-07-28T12:25:29Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: /* Explizite Anwendungen */  Inhalte in SWAP_0000002200000003 überführt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Anmerkung für die hier vorgeschlagene Änderung des Hauptartikels&#039;&#039;&#039;&lt;br /&gt;
Während ich mich mit dem Thema vertraut gemacht habe, habe ich versucht, alle Informationen, die aus non-developer Sicht für die spätere Anwendung und Inbetriebnahme relevanten Informationen (also aus meiner ;) ) wichtig erscheinen, hier in einem Artikel zusammenfassen. Ich muss gestehen, bis ich meine ersten Panstamps am Laufen hatte, musste ich viel lesen und der derzeitige Artikel setzt mM recht viel Wissen voraus (alles eine Frage des Wissensstandes).&lt;br /&gt;
Die Inhalte des derzeitigen Artikels habe ich übernommen und einfließen lassen, d.h. es ist geplant, die derzeitige Seite zu ersetzen!&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel sind alle Posts bis heute (14.04.2015) aus den beiden Threads {{Link2Forum|Topic=12487 |Message=74967 |LinkText=Thema: panStamp support }} und {{Link2Forum|Topic=13890 |Message=86952 |LinkText=Thema: PanStamp Board RGB,CW,WW;DMX;IR }} berücksichtigt.&lt;br /&gt;
&lt;br /&gt;
Da viele Informationen vor allen Dingen aus der Zeit der Entwicklung der Module und der Sketches stammen, bitte ich Euch, hier kritisch quer zu lesen, das geschriebene zu prüfen, ob noch aktuell und ggf. zu korrigieren, zu ergänzen oder im Forum konstruktiv zu kommentieren.&lt;br /&gt;
&lt;br /&gt;
Dinge, die mir unklar waren, da noch nicht getestet oder Dinge, die noch näherer beschrieben werden können, habe ich mit &amp;quot;?&amp;quot; bzw. &amp;quot;TBC&amp;quot; gekennzeichnet.&lt;br /&gt;
----&lt;br /&gt;
: Hallo, wie ist denn der Stand mit dem Artikel? Finde es schade, dass das gesammelte Know-how hier nur auf der Diskussionsseite zu finden ist. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 12:07, 15. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{SEITENTITEL:panStamp}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V (panStick: 5V USB)&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery (panStick: USB)&lt;br /&gt;
|HWSize=17.7 x 30.5 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Todo:Fehlerkontrolle, Formatierung, Ergänzung, Bestätigung des Geschriebenen, weitere Informationen zur Erstellung/Anpassung eines Device Description Files, Bestätigung des Hochladens mittels XLoader, Bedienung in FHEMWEB(RGB-Board/Sketch)&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
==== panStamp mit Antenne ====&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Ardunio IDE oder mit dem ino Kommandozeilen Binary programmieren.&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp in Betrieb zu nehmen muss er unbedingt mit einer Antenne oder einem stück Draht in der [https://code.google.com/p/panstamp/wiki/antennalengths richtigen Länge] bestückt sein. Ohne Antenne funktioniert die Übertragung nicht. Auch nicht auf kurze Distanzen.&lt;br /&gt;
&lt;br /&gt;
Mittlerweile gibt es zwei verschiedene panStamps (AVR und NRG), von denen der NRG neuer und etwas mehr Features zur Verfügung stellt, allerdings (noch) nicht mit allen hier beschriebenen Projekten kompatibel ist.&lt;br /&gt;
&lt;br /&gt;
==== Panstick oder Panshield ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Als Schnittstelle zwischen Server-Hardware und einem panStamp dient entweder ein panStick (USB Stick mit Sockel zum aufstecken eines panStamp) oder ein &amp;quot;panStamp Shield&amp;quot; mit integriertem panStamp an einem Raspberry Pi. Der Panstick stellt dabei die Verbindung zwischen dem USB-Port auf der einen Seite und dem seriellen Interface des Panstamps auf der anderen Seite dar. Ein Panshield übernimmt die gleiche Funktion, wird aber direkt an die IOs eines Raspberries angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Der Panstick wird grundsätzlich für zwei Aufgaben benötigt:&lt;br /&gt;
# Für die Vorbereitung eines panStamps für den Betrieb auf einem &amp;quot;Board&amp;quot; wird der neue panStamp in den Panstick gesteckt, um die Programmierung (flashen des Sketch) vorzunehmen.&lt;br /&gt;
# Im &amp;quot;normalen&amp;quot; Betrieb steckt ein panStamp auf ihm. Der so angebundene panStamp wird mit einem (bei Auslieferung des PanStamps vorinstallierten) Modem-Sketch als RF Modem verwendet und dient so dem Rechner als Interface zu anderen panStamps, zu denen über eine Funkstrecke mittels des SWAP-Protokolls kommuniziert wird.&lt;br /&gt;
&lt;br /&gt;
Da auf dem panStamp Shield der panStamp fest eingelötet ist, übernimmt dieser in der Regel nur die zweite Funktion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStick]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:10, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== spezifisches &amp;quot;Board&amp;quot; ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
: Im Gegenzug zum Panstick als Interface zwischen panStamp und USB-Port des Servers stellt das Board das Interface zwischen panStamp vor Ort und Input/Outputs (analog/digital) dar. Das &amp;quot;Board&amp;quot; nimmt den panStamp mit dem passenden Sketch auf und setzt die Outputs des panStamps auf die Ausgänge um bzw. leitet die Eingänge zur Auswertung an den panStamp weiter.&lt;br /&gt;
: Entsprechend Anwendungsfall und Sketch werden die Ein-/Ausgänge des panStamps verarbeitet. Z.B. können an ein Board Temperatur-, Feuchtigkeitssensoren oder LED-Strips angeschlossen werden. Der Sketch auf dem panStamp sollte entsprechend der Anwendung auf dem Board angepasst worden sein um nicht nur über die standardmäßig zur Verfügung stehenden Register kommunizieren zu müssen.&lt;br /&gt;
&lt;br /&gt;
: Das Board benötigt irgend eine Art von Stromversorgung, um den panStamp zu betreiben. Das kann im Falle eines Sensorboards und entsprechend stromsparend ausgelegtem Sketch eine Batterie sein oder wie im Falle des RGB-Boards eine externe Stromversorgung. &lt;br /&gt;
: Speziell beim unten beschriebenen RGB-Board kann die Stromversorgung sogar separat für panStamp und LEDs ausgeführt sein oder ingesamt panStamp und LEDs gemeinsam versorgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Simple Wireless Abstract Protocol (SWAP) ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zur Kommunikation in einem panStamp Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([http://code.google.com/p/panstamp/wiki/SWAP SWAP]).&lt;br /&gt;
Die komplette SWAP- Kommunikation ist registerbasiert und erfolgt mit Nachrichten um diese Register abzufragen, zu setzen und deren Inhalt zu senden. Alle Register lassen sich lesen, manche auch beschreiben.&lt;br /&gt;
Der panStamp Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;.&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Modem-Sketch ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStick]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Der Modem-Sketch stellt das Software-Verbindungsglied zwischen panStamp und Funksignal dar, dass an andere panStamps geht. &lt;br /&gt;
&lt;br /&gt;
Auf jedem panStamp (AVR, NRG?) ist im Auslieferungszustand der Modem-Sketch installiert. Das Protokoll der Funkstrecke folgt dem SWAP-Protokoll.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStick]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== auf Board abgestimmter Sketch ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Ein panStamp ist auf einem entsprechenden Board installiert und übernimmt dort lokal die Schnittstelle zwischen Funkstrecke und Board. &lt;br /&gt;
&lt;br /&gt;
Der Sketch stellt dabei die passende &amp;quot;Software&amp;quot; auf dem panStamp. Der Sketch verarbeitet die über das SWAP-Protokoll versandte Nachrichten, wertet diese aus, reagiert entsprechend und setzt die Outputs des Boards. In umgekehrter Richtung wertet er die an den Inputs des Board angelegten Signale aus, verarbeitet diese und schickt sie per SWAP-Protokoll zum Panstamp mit Modem-Sketch zurück.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Module  und Description File ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Die Integration in FHEM erfolgt über eine Reihe von Modulen die im folgenden genauer beschrieben werden. Zusammengefasst gibt es 3 Ebenen mit der Ergänzung eines Konfigurationsfiles in xml-format.&lt;br /&gt;
{{Link2Forum|Topic= 13890 |Message=121689 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg121689.html#msg121689]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 1: 34_panStamp.pm =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Modul ist für einen panStamp der auf einem panStick sitzt und das Interface zwischen FHEM und dem panStamp netz bildet. Alle eintreffenden SWAP-Pakete auf dem panStick (mit Modem-Sketch) werden direkt durchgereicht und im nachfolgend beschriebenen SWAP-Modul verarbeitet.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 2: 34_SWAP.pm =====&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005-detail.png|mini|hochkant=2.5|Readings]]&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Modul implementiert das SWAP protokoll das zwischen den panStamps gesprochen wird. Das SWAP Modul ermöglicht die generische Integration beliebiger panStamp Sensoren und Aktoren in FHEM.&lt;br /&gt;
&lt;br /&gt;
Bei SWAP geht alle Komunikation über &#039;register&#039;, dies sind unterschiedlich lange Werte die entweder nur gelesen oder gelesen und geschrieben werden können. Jedes device hat eine Reihe System register (00-0A) und beliebig viele user register die vom jeweiligen Sketch abängen. Welche Register dies sind, steht unter anderem jeweils im Device Description xml file im Verzeichnis .../FHEM/lib/SWAP.&lt;br /&gt;
&lt;br /&gt;
In den System Registern steht z.b. der productcode, die device adresse und das Übertragungsintervall. Konfigurierbare register werden im EEPROM gesichert und die Werte gehen auch beim Neustart nicht verloren. Beim aller ersten Starten ist das EEPROM mit &amp;quot;FF&amp;quot; initialisiert und alle konfigurierbaren register haben diesen Wert. also z.b. Adresse FF und Intervall FFFF (HEX in Sekunden, das wären dann zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Inhalte der System Register stehen als internal values im oberen Bereich der Detail Ansicht einer Komponente in FHEM, die user register als readings im unteren.&lt;br /&gt;
&lt;br /&gt;
Alle low level Dinge wie Register id oder Register Wert können mit hex werten direkt angepasst werden. Im Normalbetrieb ist dieses aber nicht notwendig und es kann über &#039;vereinfachte&#039; Kommandos mit den register namen verwenden kann. Diese Funktionalität stellt das eines der Module zur Verfügung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 08 &amp;lt;netzwerk id als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87436 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87436#msg87436]&lt;br /&gt;
&lt;br /&gt;
Dieses Modul stellt unter anderem folgende grundlegende Funktionalitäten zur Verfügung&lt;br /&gt;
* Es wird eine command Liste für Devices im power down Modus gehalten. Sobald das Device online kommt werden die Kommandos automatisch übertragen.&lt;br /&gt;
* Die userReadings für &#039;menschenlesbare&#039; Readings werden anhand des device description files automatisch erzeugt&lt;br /&gt;
* Es ist jetzt möglich direkt endpoints (teile eines registers) zu schreiben (???)&lt;br /&gt;
* (Fast) keine hardkodierte Sonderbehandlung mehr für das RGB-Board. Das SWAP Modul kann mit jedem beliebige Swap Device umgehen.&lt;br /&gt;
* Es gibt eine dritte (optionale) Modulschicht neben dem panStamp modul für die Hardware und dem SWAP Modul für das Protokoll. Mit dem generellen SWAP Modul lasen sich alle SWAP devices &#039;zu fuss&#039; über die register ansprechen. Um die register auf einer höheren Ebene auf FHEM Kommandos wie on/off/on-for-timer zu mappen ist dann diese dritte schicht zuständig. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=78502 }} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic=12487.msg78502#msg78502]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 3: SWAP_XXXXXXXXXXXXXXXX.pm =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[paNStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Besonders bei Aktoren ist oft eine engere FHEM-Integration sinnvoll, um FHEM Konzepte wie on/off/on-for-timer direkt abzubilden und nicht mehr nur auf die Registerebene und regSet und regGet Kommandos beschränkt zu sein.&lt;br /&gt;
Mit dieser dritten Modulebene ist es auch für Aktore wie Schalter/Dimmer/... sehr einfach, diese in FHEM zu integrieren. &lt;br /&gt;
&lt;br /&gt;
Wenn die Namenskonvention SWAP_&amp;lt;ProductCode&amp;gt; für diese Module eingehalten wird, funktioniert auch das autocreate sofern das Modul in FHEM bekannt ist.&lt;br /&gt;
&lt;br /&gt;
Um per autocreate automatisch das passende Modul laden zu können, müssen diese Module nach dem Schema SWAP_XXXXXXXXXXXXXXXX.pm benannt sein wobei XXXXXXXXXXXXXXXX für den jeweiligen productCode steht.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für das RGB-Board dafür ist das Modul 35_SWAP_0000002200000003.pm.&lt;br /&gt;
[[Datei:SWAP_0000002200000003.png|mini|rechts|hochkant=2.5|RGB LED Driver Board]]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Device Description File =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Mit Hilfe der im jeweiligen Device Description File hinterlegten Beschreibung werden hierzu automatisch userReadings angelegt die neben den reinen Registerwerten in hex auch &#039;menschenlesbare&#039; readings der Sensorwerte erzeugen. &lt;br /&gt;
Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier Beispielhaft anhand eines BMP085 Temperatur- und Luftdrucksensors dargestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress userReadings voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, temperature:0C.0-Temperature {hex(ReadingsVal($name,&amp;quot;0C.0-Temperature&amp;quot;,&amp;quot;0&amp;quot;))*0.1-50}, pressure:0C.1-Pressure {hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01}, pressureNN:0C.1-Pressure {sprintf(&amp;quot;%.2f&amp;quot;,hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01 + AttrVal(&amp;quot;global&amp;quot;, &amp;quot;altitude&amp;quot;, 0)/8.5)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005.png|mini|hochkant=2.5|Resultat eines stateFormat]]&lt;br /&gt;
Aus diesen readings kann dann mit stateFormat die gewünschte Darstellung für die Raumübersicht erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress stateFormat {sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;temperature&amp;quot;,0)).&amp;quot;°C &amp;quot;.sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;pressureNN&amp;quot;,0)).&amp;quot;mbar&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel ist das Description File für das RGB-Board rgbdriver.xml.&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Systemübersicht ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zum besseren Verständnis der Begrifflichkeiten und Zusammenhänge ist hier eine Systemübersicht dargestellt.&lt;br /&gt;
[[Datei:Panstamp-Systemoverview.jpg|200px|thumb|panStamp Systemübersicht]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=75980 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg75980#msg75980]&lt;br /&gt;
&lt;br /&gt;
Die Kommunikationskette ist wie folgt:&lt;br /&gt;
FHEM -&amp;gt; Host-hardware/OS -&amp;gt; USB -&amp;gt; Panstick -&amp;gt; panStamp (Modem-Sketch) -&amp;gt; Funkstrecke (SWAP) -&amp;gt; panStamp (angepasster Sketch) -&amp;gt; Board -&amp;gt; Sensoren/LED-Strip/etc.&lt;br /&gt;
&lt;br /&gt;
(Ein Panshield ersetzt &amp;quot;USB -&amp;gt; Panstick&amp;quot; durch &amp;quot;IO&#039;s am Rpi-&amp;gt; Panshield&amp;quot;)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt übernommen in Artikel [[panStamp]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:50, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Schritte der Inbetriebnahme ==&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Beispiel für Kurzentschlossene anhand der Einrichtung für das RGB-Board:&lt;br /&gt;
&lt;br /&gt;
* Ein panStamp wird in einen Panstick gesteckt und der Panstick für die Programmierung z.B. unter Windows installiert. Selbstverständlich kann ein panStamp auch über diverse andere Möglichkeiten und unter diversen anderen Betriebssystemen und über diverse andere Schnittstellen programmiert werden.&lt;br /&gt;
* Arduino IDE vorbereiten (libs hinzufügen, Board auswählen, etc.).&lt;br /&gt;
* Ein Sketch wird in der Arduino IDE entsprechend konfiguriert, kompiliert und auf den panStamp hochgeladen.&lt;br /&gt;
* Der programmierte panStamp aus dem Panstick in das RGB-Board stecken.&lt;br /&gt;
* Einen panStamp mit Modem-Sketch in den Panstick stecken und an den FHEM-Host stecken.&lt;br /&gt;
* panStamp unter FHEM einrichten, wenn nicht durch autocreate automatisch geschehen.&lt;br /&gt;
* RGB-Board mit Strom versorgen und ggf. einmal Reset-Knopf drücken. Dann sollte, falls autocreate aktiv ist, der panStamp automatisch eingerichtet werden.&lt;br /&gt;
* SWAP-Device in FHEM an Gegebenheiten anpassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[PanStamp (Systemübersicht)]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:41, 24. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Programmierung eines panStamps ==&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
=== unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Installation Panstick ====&lt;br /&gt;
Für die Installation des Pansticks unter Windows gibt es mehrere Möglichkeiten.&lt;br /&gt;
# Installiert man eine Arduino IDE, kann dabei auch der Treiber für den Panstick mitinstalliert werden.&lt;br /&gt;
# Treiber von der offiziellen Homepage herunterladen und installieren [[http://www.ftdichip.com/]]. Die Treiber befinden sich ebenfalls im Unterordner drivers der Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
Bei der Installation kann es sein, dass kein Treiber gefunden wird. Dann muss der entsprechende Treiber manuell ausgewählt werden entsprechend dieser Anleitung [[https://www.youtube.com/watch?v=SPdSKT6KdF8]].&lt;br /&gt;
&lt;br /&gt;
==== Arduino IDE vorbereiten ====&lt;br /&gt;
&lt;br /&gt;
Zum Flashen der panStamps wird die Arduino IDE benötigt. Eine Installationsanleitung ist unter folgendem Link zu finden:&lt;br /&gt;
:https://code.google.com/p/panstamp/wiki/firststeps&lt;br /&gt;
&lt;br /&gt;
Die IDE 1.5.x oder höher ist zwar mit den AVRs und NRGs kompatibel, wichtig zu wissen ist allerdings, dass mit dem Wechsel von 1.0.x zu 1.5.x oder höher es größere Änderungen der APIs gegeben hat. Dadurch lassen sich einige der bislang zur Verfügung stehenden Sketches (derzeit) nicht unter 1.5.x oder höher kompilieren (z.B. der RGB-Sketch). Für die IDE 1.0.x gibt es keine passenden Arduino Lib für den NRG [[https://github.com/panStamp/panstamp/wiki/First%20steps]], die daher nur mit den AVRs kompatibel sind. Im Folgenden wird sich für die Programmierung unter Windows daher auf die letzte 1.0.x IDE bezogen.&lt;br /&gt;
&lt;br /&gt;
* Man läd die &#039;&#039;&#039;Arduino IDE 1.0.x&#039;&#039;&#039; für Windows [[http://arduino.cc/en/Main/OldSoftwareReleases]]. &lt;br /&gt;
&lt;br /&gt;
* Für bestimmte Sketches müssen noch die entsprechenden Libs hinzugefügt werden (siehe [[panstamp#Sketch konfigurieren|explizite Anwendung]]).&lt;br /&gt;
&lt;br /&gt;
* Unter Tools/Board wird das &#039;&#039;&#039;passende Board&#039;&#039;&#039; ausgewählt, dass dem Chip auf dem Panstamp entspricht. Für den AVR: Arduino Pro or Pro Mini (3,3V, 8 MHz) /w ATmega328. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert, kann man in der IDE auch direkt panStamp als Plattform auswählen.&lt;br /&gt;
&lt;br /&gt;
* Nun muss unter Tools/Serieller Port noch der richtigen &#039;&#039;&#039;Com-Port&#039;&#039;&#039; auswählen werden, unter dem der Panstick eingebunden worden ist (entsprechend Gerätemanager).&lt;br /&gt;
&lt;br /&gt;
* Als letztes unter Tools/&#039;&#039;&#039;Programmer&#039;&#039;&#039; noch den AVRISP mkII auswählen.&lt;br /&gt;
&lt;br /&gt;
==== Sketch vorbereiten, kompilieren und hochladen ====&lt;br /&gt;
&lt;br /&gt;
* Den Sketch läd man von der entsprechenden Quelle und entpackt die Dateien in einen Unterordner z.B. parallel zum libraries-Ordner (unter &amp;quot;Eigene Dateien&amp;quot;). Der Ordner darf &#039;&#039;&#039;nicht im&#039;&#039;&#039; libraries-Ordner liegen, da die Arduino IDE dort das Speichern nicht zulässt. Innerhalb des Unterordners erwartet die IDE die Dateien in einen Unterordner namens &amp;quot;sketch&amp;quot;.&lt;br /&gt;
* sketch.ino oder ähnlich in der Arduino IDE öffnen.&lt;br /&gt;
* Nun entsprechend den Bedürfnissen auf dem geöffneten Reiter in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
Bezüglich der Anpassung des Sketches sind einige spezifische Informationen unten bei den expliziten Anwendungen ergänzt.&lt;br /&gt;
&lt;br /&gt;
==== Hexfile hochladen mit XLoader ====&lt;br /&gt;
Um ein fertig kompiliertes HEX-File hochzuladen, soll dieses über ein Programm namens XLoader möglich sein. [[http://xloader.russemotto.com]]&lt;br /&gt;
&lt;br /&gt;
=== unter Linux === &lt;br /&gt;
&lt;br /&gt;
==== Installation Panstick ====&lt;br /&gt;
&lt;br /&gt;
Zum einen kann es sein, dass der Panstick automatisch unter /dev/ttyUSBx einbunden wird. &amp;quot;x&amp;quot; steht für eine freie fortlaufende Nummer.&lt;br /&gt;
&lt;br /&gt;
Falls er nicht automatisch angelegt worden ist, kann man zunächst prüfen, ob dieser überhaupt eingebunden und richtig erkannt wurde.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lsusb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sollte etwas ähnliches zurückmelden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 002: ID 0403:0000 Future Technology Devices International, Ltd H4SMK 7 Port Hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls das Device nicht automatisch angelegt worden ist, muss dieses ggf. von Hand erledigen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87746 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87746.html#msg87746]&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehl sollte in der Liste ein  ttyUSB auftauchen. Normalerweise mit der Nummer 188.&lt;br /&gt;
&amp;lt;pre&amp;gt;cat /proc/devices&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Das Device wird dann angelegt mit:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mknod /dev/ttyUSB0 c 188 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss für den Betrieb des Pansticks das ftdi_sio Modul zur Verfügung stehen. Dieses lässt sich prüfen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;lsmod&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Voraussetzung könnte den Betrieb an einer Fritzbox erschweren, da nicht sicher ist, ob dieses Modul standardmäßig immer installiert ist.&lt;br /&gt;
&lt;br /&gt;
Legt man das Device von Hand an, kann es sein, dass die Berechtigungen nicht richtig gesetzt sind.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2015.04.23 22:20:06 3: Opening panStick device /dev/ttyUSB0 &lt;br /&gt;
2015.04.23 22:20:06 3: Can&#039;t open /dev/ttyUSB0: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Device sollte für die Gruppe dialout Lese-/Schreibberechtigungen haben.&lt;br /&gt;
Ist dieses nicht der Fall, lassen sich diese über diesen Befehlt setzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown root:dialout ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Damit wird der &amp;quot;Besitz&amp;quot; festgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod a+rw /dev/ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hiermit werden die Berechtigungen gesetzt.&lt;br /&gt;
&lt;br /&gt;
Der Benutzer &amp;quot;fhem&amp;quot; sollte selbstverständlich der Gruppe &amp;quot;dialout&amp;quot; angehören.&lt;br /&gt;
Ist dieses nicht der Fall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo adduser fhem dialout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls dem nicht so sein sollte, hilft ggf. einer dieser beiden Links weiter:&lt;br /&gt;
[[https://www.youtube.com/watch?v=UOECwHhCWRg]] [[http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/07/15/bbb--usb-io-with-ftdi-ft2232h]] bzw. die Installation des Moduls.&lt;br /&gt;
&lt;br /&gt;
==== IDE unter MacOS ====&lt;br /&gt;
&lt;br /&gt;
Da für den RGB-Sketch die IDE 1.0.x benötigt wird und diese Java SE 6 eine Voraussetzung ist, stellt die IDE und MacOS keine Optimale Konfigurationsumgebung dar. Wer es trotzdem probieren möchte&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82055 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82055.html#msg82055]&lt;br /&gt;
&lt;br /&gt;
==== INO ====&lt;br /&gt;
Der RGB-Sketches wurde mit Hilfe des Tools INO entwickelt. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82139 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82139.html#msg82139]&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt am leichtesten mit Hilfe des Tools pip.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen für das Tool sind darüber hinaus picocom für die Kommunikation mit der seriellen Schnittstelle und die arduino. Im gleichen Zuge lässt sich pip installieren.&lt;br /&gt;
Die benötigten Pakete werden über folgenden Aufruf installiert&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install picocom python-pip arduino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt im Anschluss über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install ino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die für einen Sketch erforderlichen libs werden in den entsprechenden lib Ordner kopiert (dort in entsprechenden Unterordnern).&lt;br /&gt;
&lt;br /&gt;
Die Pfade im Zip sind an dieses Tool angepasst.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=94830 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg94830.html#msg94830]&lt;br /&gt;
&lt;br /&gt;
Der serielle Port in der ino.ini muss selbstverständlich an die passende dev-Schnittstelle angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Als letztes sind die Parameter für das Board noch in die board.txt unter /usr/share/arduino/hardware/arduino einzutragen. Die Parameter lassen sich von hier extrahieren [http://old.panstamp.com/downloads] bzw. lauten für den AVR&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##############################################################&lt;br /&gt;
&lt;br /&gt;
panstamp.name=PanStamp v2.0 (3.3V, 8 MHz) w/ ATmega328&lt;br /&gt;
&lt;br /&gt;
panstamp.upload.protocol=arduino&lt;br /&gt;
panstamp.upload.maximum_size=30720&lt;br /&gt;
panstamp.upload.speed=57600&lt;br /&gt;
&lt;br /&gt;
panstamp.bootloader.low_fuses=0xE2&lt;br /&gt;
panstamp.bootloader.high_fuses=0xD8&lt;br /&gt;
panstamp.bootloader.extended_fuses=0x07&lt;br /&gt;
panstamp.bootloader.path=atmega&lt;br /&gt;
panstamp.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex&lt;br /&gt;
panstamp.bootloader.unlock_bits=0x3F&lt;br /&gt;
panstamp.bootloader.lock_bits=0x0F&lt;br /&gt;
&lt;br /&gt;
panstamp.build.mcu=atmega328p&lt;br /&gt;
panstamp.build.f_cpu=8000000L&lt;br /&gt;
panstamp.build.core=arduino&lt;br /&gt;
panstamp.build.variant=standard&lt;br /&gt;
&lt;br /&gt;
##############################################################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen: Jedes Mal, wenn die Arduino ein Update erhält, wird vermutlich diese Datei überschrieben, so dass die Eintragung wiederholt werden muss.&lt;br /&gt;
&lt;br /&gt;
Hier sind die grundlegendsten Befehle beschrieben [http://inotool.org/quickstart].&lt;br /&gt;
&lt;br /&gt;
Wechselt man nun in das Verzeichnis z.B. des RGBdriver, lässt die der Sketch kompilieren über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ino build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und hochladen über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ino upload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Troubeshooting&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=134786 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg134786.html#msg134786]&lt;br /&gt;
&lt;br /&gt;
=== over-the-air (derzeit) nur NRG ===&lt;br /&gt;
&lt;br /&gt;
Die neueren panStamp NRGs können seit einiger Zeit auch over-the-air geflasht werden, wie hier im zugehörigen Forumthread beschrieben [[http://forum.fhem.de/index.php/topic,30589.0.html]].&lt;br /&gt;
&lt;br /&gt;
=== Was überlebt das Flaschen ===&lt;br /&gt;
Bestimmte Konfigurationen überstehen das Flashen, dieses sind zumindest Adresse und Intervall, die nicht neu gesetzt werden müssen [http://forum.fhem.de/index.php/topic,12487.msg87560.html#msg87560].&lt;br /&gt;
&lt;br /&gt;
=== EEPROM löschen ===&lt;br /&gt;
&lt;br /&gt;
Das EEPROM lässt sich komplett löschen, indem man in der setup() dieses hier einträgt [http://forum.fhem.de/index.php/topic,13890.msg156868.html#msg156868].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[Programmierung eines panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:36, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Integration in FHEM ==&lt;br /&gt;
=== FHEM Voraussetzungen ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Für den Betrieb ist XML:Simple notwendig, dass bei Bedarf folgendermaßen nachinstalliert werden kann [http://forum.fhem.de/index.php?topic=12487.msg87373#msg87373].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Abhängigkeit kann beim Betrieb auf einer Fritzbox ebenfalls zu Problemen führen.&lt;br /&gt;
&amp;lt;/strike&amp;gt; Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Pfade innerhalb der FHEM Installation ====&lt;br /&gt;
&lt;br /&gt;
Die Module befinden sich wie gewohnt im Installationsverzeichnis unter ./FHEM.&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das entsprechende Device Description File liegt unter ./FHEM/lib/SWAP wie hier beschrieben [http://forum.fhem.de/index.php/topic,12487.msg86257.html#msg86257].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Register ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (00-0A) [http://code.google.com/p/panstamp/wiki/SWAPregisters] und beliebig viele sketchabängige Userregister (0B-)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Description Files&#039;&#039;. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Description File erfolgt über den productCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt-Id&#039;&#039; gebildet wird.&lt;br /&gt;
&lt;br /&gt;
In den Systemregistern steht z.&amp;amp;nbsp;B. der productCode, die Deviceadresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert, so dass die Werte auch bei einem Neustart nicht verlorengehen. Beim ersten Starten eines panStamp ist das EEPROM mit FF initialisiert und alle konfigurierbaren Register haben diesen Wert, also z.&amp;amp;nbsp;B. die Adresse FF und das Intervall FFFF (zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Systemregister werden in der Device Detailansicht bei den InternalValues im oberen Bereich angezeigt und die User-Register als reading im unteren Bereich.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen productCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Verwendung innerhalb FHEM ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]] [[panStick]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zu unterscheiden ist die Definition des &amp;quot;Panstick&amp;quot;, wobei der panStamp, der als RF-Modem auf dem Panstick sitzt, gemeint ist. Dieser wird im Folgenden mit &amp;quot;Panstick&amp;quot; als Name des Device benannt . Der Type ist &amp;quot;panstamp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Auf der anderen Seite gibt es die Definition der panStamps, die lokal auf den entsprechenden Boards stecken. Diese sind vom Type SWAP_&amp;lt;ProductCode&amp;gt;. Um die Verwirrung komplett zu machen, wird hier meistens vom &amp;quot;panStamps&amp;quot; gesprochen, obwohl es eigentlich SWAP-Devices sind. Für diese werden hier nur die allgemeinen Grundfunktionen beschrieben, die bei jedem SWAP-Device funktionieren. Die spezifischen Komandos und Attribute, die durch die 3. Modulebene in Abhängigkeit des Productcode zur Verfügung stehen, werden bei den spezifischen Anwendungen beschrieben. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[panStamp]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Panstick ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
===== Definition =====&lt;br /&gt;
Das Device &amp;quot;Panstick&amp;quot; wird derzeit (01.05.2015) nicht durch autocreate angelegt. Daher muss er manuell entsprechend folgendem Befehl angelegt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define panStick panStamp /dev/ttyUSBx@38400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Schnittstelle muss entsprechend der Installation des Pansticks anzupassen werden. Für die Einrichtung des Pansticks innerhalb des OS siehe [[panstamp#unter Linux|Installation Panstick]]&lt;br /&gt;
&lt;br /&gt;
Dieses panStamp Device versucht dann alle panStamps im Netz zu finden und per autocreate anzulegen, wenn dieses aktiv sind.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Betrieb an der FB&#039;&#039;&#039;&lt;br /&gt;
Spezialitäten zum Betrieb an einer Fritzbox sind hier [http://forum.fhem.de/index.php/topic,12487.msg87778.html#msg87778] und hier [http://forum.fhem.de/index.php/topic,12487.msg95914.html#msg95914] beschrieben. Es scheint nur der hintere USB-Anschluss für die Verwendung zu laufen. Außerdem muss der USB-Fernaschluss deaktiviert sein.&lt;br /&gt;
&lt;br /&gt;
===== Attribute =====&lt;br /&gt;
&lt;br /&gt;
Für den &amp;quot;Panstick&amp;quot; gibt es keine modulspezifischen Attribute.&lt;br /&gt;
&lt;br /&gt;
===== Set =====&lt;br /&gt;
&lt;br /&gt;
* discover?&lt;br /&gt;
Mit diesem Befehl wird eine Broadcast SWAP-Message abgesetzt, die alle empfangenden panStamps dazu veranlassen, sich zu melden. Batteriebetriebenen panStamps können systembedingt nur identifiziert werden, wenn diese Empfangsbereit sind und sich nicht im Schlafmodus befinden.&lt;br /&gt;
&lt;br /&gt;
* raw&lt;br /&gt;
Ist der Panstick ersteinmal eingerichtet und meldet &amp;quot;Initialized&amp;quot;, kann über das panStick device direkt eine raw Message abgesetzt werden. Diese ist zur Zeit eigentlich immer eine SWAP Nachricht wie z.b. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set panStick raw 00010000010000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel wird ein broadcast an alle abgesetzt, damit diese ihre ID und ihren productcode zurück senden.&lt;br /&gt;
Das macht der panStick nach dem Initialisieren auch ein mal automatisch um alle nicht schlafenden Devices per autocreate anlegen zu können.&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl &amp;quot;raw&amp;quot; lassen sich SWAP-Messages direkt absetzten, was vor allen Dingen dann hilfreich sein kann, wenn man vermutet, dass die Kommunikation über die modulgestützten Befehle fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 20:05, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== SWAP ====&lt;br /&gt;
&lt;br /&gt;
Alle empfangen SWAP Nachrichten werden in internals/readings im jeweiligen Device angezeigt.&lt;br /&gt;
&lt;br /&gt;
===== Definition =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Info: Das SWAP Modul unterstützt autocreate. Bei der Inbetriebnahme sollte autocreate aktiviert sein, da dies die Einrichtung deutlich vereinfacht.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn der panStick läuft, sollten die SWAP-Devices per autocreate angelegt werden, sobald sie das erste mal senden, z.B. nach dem Einschalten oder nach einem Reset.&lt;br /&gt;
&lt;br /&gt;
Normalerweise werden beim autocreate alle Werte abgefragt und angezeigt. Das geht normalerweise ohne jedes Zutun. &lt;br /&gt;
&lt;br /&gt;
Panstick rein -&amp;gt; broadcast -&amp;gt; discovery -&amp;gt; anlegen. &lt;br /&gt;
&lt;br /&gt;
Bei Devices mit power down mode erfolgt dieses das erste mal wenn sie Strom haben. &lt;br /&gt;
&lt;br /&gt;
Alle panStamps durchlaufen beim Starten eine bestimmte Einschaltsequenz. Sie melden sich mit ihrer ID und ihrem productcode. Die ID ist die device Addresse und bei einem frisch geflashten panStamp in der Regel FF. Das SWAP Modul versucht, ein Device mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern.&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, sonst haben mehrere die gleiche Addresse und das gibt Konflikte. &lt;br /&gt;
&lt;br /&gt;
Wer mehrere devices hat, sollte jedem nach dem Anlegen mit &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eine eigene id zuweisen. Die landen auf dem panStamp im EEPROM und sind auch nach Neustart noch vorhanden. &lt;br /&gt;
&lt;br /&gt;
Die anderen Adressen sind wie folgt belegt:&lt;br /&gt;
* 00 ist die Broadcast-ID&lt;br /&gt;
* 01 ist die ID des Pansticks am FHEM-System&lt;br /&gt;
* FF ist die Default ID, die jeder panStamp im Auslieferungszustand besitzt&lt;br /&gt;
* F0-FE sind die IDs, auf die autocreate die Adresse automatisch ändert, wenn ein neuer mit der ID FF erkannt wird und kein entsprechender Device-Name definiert ist.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87261 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87261#msg87261]&lt;br /&gt;
&lt;br /&gt;
Ändert man die Adresse, dauert es einen Augenblick, bis alle Register neu übertragen worden sind. &lt;br /&gt;
&lt;br /&gt;
Autocreate ändert bei der Einrichtung und Änderung der ID auch automatisch den Namen. Belässt man die ID im Bereich F0-FE und ändert den Namen des Device, ist zu berücksichtigen, dass autocreate für neue Devices eine freie neue Adresse anhand der Device-Namen sucht. Dadurch könnte es zu Doppeltverwendung von IDs kommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ zum autocreate kann man ein Device auch von Hand anlegen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define &amp;lt;device&amp;gt; SWAP &amp;lt;ID&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bis allerdings der Productcode nicht per Attribut hinterlegt ist, was bei autocreate ebenfalls automatisch geschied, funktionieren nur die grundlegenden Funktionen bis zur 2. Modulebene.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== set =====&lt;br /&gt;
&#039;&#039;ZUGEFÜGT ZU SWAP ARTIKEL, STRIKE FUNKTIONIERT ABER IN DIESEM ABSATZ NICHT&#039;&#039;&lt;br /&gt;
Ist ein SWAP-Device definiert, stehen folgende set-Befehle zur Verfügung:&lt;br /&gt;
* regGet &amp;lt;reg&amp;gt;&lt;br /&gt;
Fragt den Wert des Registers mit der id &amp;lt;reg&amp;gt; ab. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87679 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87679.html#msg87679]&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
Schreibt &amp;lt;data&amp;gt; in den Register mit der id &amp;lt;reg&amp;gt;. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt;.&amp;lt;ep&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
write &amp;lt;data&amp;gt; to endpoint &amp;lt;ep&amp;gt; of register &amp;lt;reg&amp;gt;. will not work if no reading for register &amp;lt;reg&amp;gt; is available as all nibbles that are not part of endpoint &amp;lt;ep&amp;gt; will be filled from this reading. ?&lt;br /&gt;
&lt;br /&gt;
* statusRequest&lt;br /&gt;
Veranlasst, dass alle Register und deren Werte einmal übertragen werden.&lt;br /&gt;
&lt;br /&gt;
* readDeviceXML&lt;br /&gt;
Liest das Device-Description-XML-File neu ein.&lt;br /&gt;
&lt;br /&gt;
* clearUnconfirmed&lt;br /&gt;
Löscht die liste der unbestätigten Nachrichten.&lt;br /&gt;
&lt;br /&gt;
* flash [&amp;lt;productCode&amp;gt;|&amp;lt;firmwareFile&amp;gt;]&lt;br /&gt;
Initiiert das „over-the-air“ Firmware update, dass (derzeit) nur von NRG panStamps unterstützt wird.&lt;br /&gt;
* ohne Parameter: Verwendet das SWAP_&amp;lt;current productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
* &amp;lt;productCode&amp;gt;: Verwendet das SWAP_&amp;lt;productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
* &amp;lt;firmwareFile&amp;gt;: Verwendet ein &amp;lt;firmwareFile&amp;gt; als absoluten File-Namen des HEX-Files.&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== get =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* regList&lt;br /&gt;
Listet alle User-Register des SWAP-Device (Readings). &lt;br /&gt;
&lt;br /&gt;
* regListAll&lt;br /&gt;
Listet alle Register des SWAP-Device (Internals und Readings). &lt;br /&gt;
&lt;br /&gt;
* listUnconfirmed&lt;br /&gt;
Listet alle unbestätigten Nachrichten in der Warteschlange.&lt;br /&gt;
&lt;br /&gt;
* products&lt;br /&gt;
Gibt alle auf dem System bekannten Productcodes nebst Daten aus.&lt;br /&gt;
&lt;br /&gt;
* deviceXML&lt;br /&gt;
Gibt die Daten des zum derzeit zum per Attribut (Productcode) eingerichteten Device-XML-Files aus.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Attribute =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Wird der Productcode bei der Definition nicht gesetzt, stehen auch nur die Standardbefehle bei zur 2. Modulebene zur Verfügung. &lt;br /&gt;
&lt;br /&gt;
* createUnknownReadings&lt;br /&gt;
Erzeug Readings auch für Register, die im Device-XML-File nicht definiert werden.&lt;br /&gt;
&lt;br /&gt;
* ProductCode&lt;br /&gt;
Legt den ProductCode eines SWAP-Device fest. Dieses Attribut wird dazu benutzt, die Konfiguration vom Device-XML-File festzulegen. &lt;br /&gt;
Erst wenn der Produktcode als Attribut vorgegeben wurde, z.B. für einen RGB-Sktech:&lt;br /&gt;
attr &amp;lt;device&amp;gt; ProductCode 0000002200000003&lt;br /&gt;
kommen zu den allgemeinen Kommandos die spezifischen der nächst höheren Modulebene 35_SWAP_&amp;lt;productcode&amp;gt;.pm mit hinzu. Dann werden die SWAP-Nachrichten an das entsprechende Modul weitergegeben und dort verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices, die während der Definition nicht aktiv sind, muss dieses Attribut manuell angelegt werden.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== SWAP_&amp;lt;ProductCode&amp;gt; ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Ist bei einem SWAP-Device das Attribut Productcode gesetzt, wird die SWAP-Nachricht an das entsprechende Modul der 3. Ebene weitergegeben und dort verarbeitet. Die spezifischen Kommandos und Attribute sind bei den entsprechenden [[panstamp#Explizite Anwendungen|Anwendungen]] näher beschrieben.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Intervall bei Sketch mit power down / batterie betriebene Panstamps ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Devices mit power down mode durchlaufen beim Einschalten oder bei einem Reset eine 3 Sekunden Schleife und warten auf Kommandos, dann werden normaler Weise die Register mit den Sensorwerten gesendet und die normale Loop gestartet. power down devices gehen danach schlafen und wachen regelmässig auf um ihre Werte zu senden.&lt;br /&gt;
Alternativ zum Intervall kann man den Resetknopf drücken, wenn man sie nicht im Zugriff hat. &lt;br /&gt;
&lt;br /&gt;
Nachrichten an ein Device im power-down-state werden gepuffert und dann an das Device geschickt, sobald dieses sich im SYNC status befindet. Dieses ist typischer Weise nach dem Startup z.B. nach einem Reset der Fall.&lt;br /&gt;
&lt;br /&gt;
Bei batteriebetriebenen Sensoren sollte das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87409}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87409#msg87409]&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices (genauer: Devices die den Power-Down-Modus unterstützen) wird das Default Sendeintervall bei der Einrichtung automatisch von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden = 15 Minuten) geändert.&lt;br /&gt;
&lt;br /&gt;
Das Intervall wird nur automatisch gesetzt, wenn pwrdownmode im device description file true ist.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=89205}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg89205.html#msg89205]&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg157125#msg157125]&lt;br /&gt;
&lt;br /&gt;
Es gibt mit bestimmten panStamp lib Versionen das Problem das ein Wert von FFFF in 0A zum Überlauf führt und dann ununterbrochen gesendet wird. Im fhem Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen host systemen (z.B. FritzBox) nicht, weil der panStamp so schnell sendet, dass fhem so mit dem Abarbeiten beschäftigt ist, dass es selber nicht zum senden kommt.&lt;br /&gt;
Zur Abhilfe kann im sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden und noch mal flashen. Wenn der Sketch damit ein mal durchgelaufen ist können diese beiden Zeilen wieder entfernen und der panStamp noch mal geflasht.&lt;br /&gt;
&lt;br /&gt;
Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87859}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87859.html#msg87859]&lt;br /&gt;
&lt;br /&gt;
Für Devices im Power-Down-Modus werden diese Kommandos in eine Warteschlange gestellt und übertragen, sobald das Device seine Initialisierungssequenz durchläuft. Hierzu ist nach Absetzen der Kommandos Reset zu drücken oder die Stromquelle erneut zu verbinden.&lt;br /&gt;
&lt;br /&gt;
Die automatisch vergebenen Adressen sind im Bereich F0-FE. d.h. eigentlich auch nur temporär und sollten auf eine lokal passende geändert werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87919}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87919.html#msg87919]&lt;br /&gt;
&lt;br /&gt;
Im Log sollte etwas in dieser Art auftauchen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:14:29 2: autocreate: define SWAP_F0 SWAP FF 000000010000000E&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP_F0: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP SWAP_F0: changing 09-DeviceAddress from default FF to F0&lt;br /&gt;
2013.07.29 20:14:30 3: SWAP SWAP_F0: changing 0A-PeriodicTxInterval from default FFFF to 0384 (900 seconds)&lt;br /&gt;
&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:16:35 2: autocreate: define SWAP_F1 SWAP_0000002200000003 FF 0000002200000003&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP_F1: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:16:36 3: SWAP SWAP_F1: changing 09-DeviceAddress from default FF to F1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
==== Verschlüsselung ====&lt;br /&gt;
&lt;br /&gt;
Die Aktivierung der Verschlüsselung für die Kommunikation zwischen panStamp und panStick ist hier beschrieben, scheint allerdings derzeit noch nicht eingecheckt zu sein (Stand 01.05.2015).&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133040}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133040.html#msg133040]&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=139341}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg139341.html#msg139341]&lt;br /&gt;
&lt;br /&gt;
=== Trouble Shooting ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
==== value has to be 10 byte(s) in size  ====&lt;br /&gt;
&lt;br /&gt;
Es besteht die Möglichkeit, dass die Internals aus irgend einem Grund nicht vollständig sind. &lt;br /&gt;
Abhilfe in einem solchen Falle kann das Absetzen der folgenden beiden Befehlt schaffen&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
set &amp;lt;device&amp;gt; readDeviceXML&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht zum Erfolg führt, hilft ggf. ein Löschen und neu setzen des ProductCode Attributs.&lt;br /&gt;
{{Link2Forum|Topic=34474.0}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=34474.0]&lt;br /&gt;
&lt;br /&gt;
Das Übertragen aller Daten nach dem Statusrequest kann einen Augenblick dauern.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit:&lt;br /&gt;
Die Fehlermeldung kommt immer wenn FHEM nicht weiss welche Firmware auf dem device ist. Das passiert wenn irgendetwas in der Kommunikation schief geht während FHEM initialisiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122414}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122414.html#msg122414]&lt;br /&gt;
&lt;br /&gt;
==== register 0F is not known ====&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=84257}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg84257.html#msg84257]&lt;br /&gt;
&lt;br /&gt;
==== Komplette Übersicht eines Device ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list &amp;lt;device&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201467}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201467#msg201467]&lt;br /&gt;
&lt;br /&gt;
==== fehlender oder falsche Productcode ====&lt;br /&gt;
&lt;br /&gt;
Fehlt der Productcode, werden die zum Sketch zugehörigen Befehle nicht angezeigt und die Register nicht korrekt zugeordnet.&lt;br /&gt;
Verändert man den Productcode, sollte man im Anschluss folgenden Befehlt absetzten, um alle Register neu auszulesen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201910}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201910#msg201910]&lt;br /&gt;
&lt;br /&gt;
==== missing commands und register 00-0A unvollständig ====&lt;br /&gt;
&lt;br /&gt;
Wenn in den Internals missing commands (SWAP_Sent_unconfirmed) auftauchen und ggf. die Register 00-0A nicht vollständig sind und das Internal &amp;quot;channels&amp;quot; nicht vorhanden ist, gibt es irgendein Kommunikationsproblem.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201939}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201939#msg201939]&lt;br /&gt;
&lt;br /&gt;
==== Funktion des Autocreate ====&lt;br /&gt;
&lt;br /&gt;
Beim autocreate wird versucht ein Name für das Device zu vergeben, der zur nächsten freien Adresse passt. Während dieses Prozessen bleibt die Adresse erst mal trozdem FF. Erst wenn das Device angelegt wird, kann versucht werden automatisch die Adresse zu setzen, hoffentlich auf die gleiche freie, die beim Namen auch schon gefunden wurde. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=88110}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg88110.html#msg88110]&lt;br /&gt;
&lt;br /&gt;
==== Adresse manuell setzen ====&lt;br /&gt;
&lt;br /&gt;
Um die Adresse manuell bereits in den Sketch einzubauen kann man wie hier beschrieben vorgehen.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122347}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122347.html#msg122347]&lt;br /&gt;
&lt;br /&gt;
==== Panstamp antwortet nicht/EEprom to factory defaults ====&lt;br /&gt;
&lt;br /&gt;
Wenn der panStamp nicht antwortet, kann es sein das die Adressen durcheinander gekommen sind. Dann musst man einmal in setup() ein  eepromToFactoryDefaults() aufrufen und damit flashen. Wenn damit einmal gestartet wurde, die Zeile wieder entfernen und den normalen sketch flashen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121677}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg121677#msg121677]&lt;br /&gt;
&lt;br /&gt;
==== Undefined subroutine &amp;amp;main::XMLin ====&lt;br /&gt;
Erhält man diese Fehlermeldung&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Undefined subroutine &amp;amp;main::XMLin called at ./FHEM/34_SWAP.pm line 108.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.09.26 11:34:24 0: ERROR: Cannot autoload SWAP&lt;br /&gt;
2013.09.26 11:34:24 3: panStick: Unknown code 000A001B000A000000000100000007, help me!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es fehlt XML::Simple, was folgendermaßen installiert werden kann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Factory Defaults ====&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp auf den Auslieferungszustand zurückzusetzen, muss man beim Sketch folgendes in die setup() Routine einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg157125#msg157125]&lt;br /&gt;
&lt;br /&gt;
==== Status LED ====&lt;br /&gt;
&lt;br /&gt;
Die Status LED auf dem Board wird in der config.h deaktiviert, indem man die Zeit #define LED_DEBUG mit &amp;quot;//&amp;quot; auskommentiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=164731}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg164731.html#msg164731]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:00, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Explizite Anwendungen ==&lt;br /&gt;
=== RGB-Board ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
==== Allgemeines ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Board unterstützt RGBW LEDs und lässt sich per Infrarot Fernbedienung, DMX Controller (z.&amp;amp;nbsp;B. als Unterputz Touchpanel) und FHEM bedienen.&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang wird in diesem [http://forum.fhem.de/index.php/topic,12487.msg81923.html#msg81923 Forenthread] vorgestellt. Die Hardware für das Board wird [http://forum.fhem.de/index.php/topic,13890.0.html  hier] im FHEM Forum vorgestellt und ein Prototyp ist [http://forum.fhem.de/index.php/topic,12487.msg85777.html#msg85777 hier] zu sehen.&lt;br /&gt;
&lt;br /&gt;
Die Projektseite zur Hardware findet sich [http://itse.homeip.net/projekte/12/6/ hier]. Eine Version 2 des Boards in geplant. &lt;br /&gt;
&lt;br /&gt;
Eine Übersicht über die derzeit vorhandene Funktionalität (stand 01.05.2015):&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=1205404}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg120404#msg120404]&lt;br /&gt;
&lt;br /&gt;
* bis zu vier LED-Kanäle (je nach Kombination von ir und soft pwm)&lt;br /&gt;
* ir senden&lt;br /&gt;
* ir empfangen&lt;br /&gt;
* Messen ob die LED-Versorgung an ist.&lt;br /&gt;
* Helligkeit eines an A2 angeschlossenen Helligkeitssensors&lt;br /&gt;
* Konfiguration der DMX-Basis-Adresse über das SWAP Register 0x12&lt;br /&gt;
* optional soft on auf letzten Wert&lt;br /&gt;
* Alles was auch vorher schon ging: dimmen, faden, IR-Fernbedienungen anlernen, ...&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen:&lt;br /&gt;
* Wenn IR aktiv ist und kein soft pwm lässt sich der 4. Kanal nur ein- und ausschalten.&lt;br /&gt;
* Wenn IR aktiv ist muss soft pwm aktiv sein um den 4. Kanal auch zu dimmen.&lt;br /&gt;
* Es wird nur ein zusätzlicher Kanal tatsächlich schon unterstützt, der fünfte ist noch geplant.&lt;br /&gt;
* Bei IR-Senden sind nur die Aufrufe für Sony und NEC tatsächlich eingebaut. Die anderen sind aber einfach zu ergänzen.&lt;br /&gt;
* Beim IR-Senden sind noch keine Wiederholungen eingebaut. Die müssen laut Protokoll aber eigentlich sein.&lt;br /&gt;
&lt;br /&gt;
was noch kommt:&lt;br /&gt;
* besseres soft pwm&lt;br /&gt;
* mehr Konfiguration bezüglich default-Verhalten. Ramp-Zeiten, Delays, ...&lt;br /&gt;
* HSV-Farb-Modell um besser zu faden und vor Allem um den Weiss-Anteil automatisch auf die Weiss-LEDs zu legen&lt;br /&gt;
* die virtuellen Channel &lt;br /&gt;
* FHEM kompatibles IR-Senden&lt;br /&gt;
* sofortiges senden von Helligkeit und LED-Spannung bei Änderung&lt;br /&gt;
* andere IR-Lib mit sehr viel besserer Geräte-Unterstützung&lt;br /&gt;
&lt;br /&gt;
Wie gehabt muss alles über config.h mit Compilerschaltern konfiguriert werden.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
===== weitrere Screenshots =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:SWAP_0000002200000003-internal.png|InternalValues&lt;br /&gt;
File:SWAP_0000002200000003-readings.png|Readings&lt;br /&gt;
File:SWAP_0000002200000003-attributes.png|Attributes&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[SWAP_0000002200000003]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== original RGB-Sketch (von panstamp.com) =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Der originale Sketch von der panStamp.com-Seite und das generelle FHEM-Modul verstehen von Haus aus nur die regSet und regGet Kommandos. Wenn man den colorpicker verwenden möchte, geht das nur per readingsProxy. &lt;br /&gt;
&lt;br /&gt;
Das einfachste ist es den Sketch und das FHEM-Modul für das RGB-Board zu verwenden. Dann hat man neben dem colorpicker, einem farbigen State-Icon auch alle Möglichen Kommandos wie on, off, on-for-timer, dimup, ... und kann konfigurieren, wie das Board nach dem Hart- oder Soft-Einschalten reagieren soll. &lt;br /&gt;
&lt;br /&gt;
Derzeit scheint es keinen Grund zu geben, den original Sketch zu verwenden. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=220463}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg220463.html#msg220463]&lt;br /&gt;
&lt;br /&gt;
Falls jemand trotzdem den normalen RGB-Sketch verwendet:&lt;br /&gt;
* Im Code alle drei 0000002200000003 durch 0000000100000003 ersetzen.&lt;br /&gt;
Dann geht on/off/toggle/set rgb RRGGBB und auch der colorpicker, wenn das HUEDevice Modul auch geladen ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP_0000002200000003#Anwendungsbeispiele]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:58, 28. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Sketch vorbereiten, kompilieren und hochladen ====&lt;br /&gt;
===== Vorbereitungen =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
(Stand 01.05.2015)&lt;br /&gt;
&lt;br /&gt;
Mit der Arduino IDE 1.5.x gab es gundlegende Umstellungen, für die der derzeitige Sketch [r4716] vermutlich angepasst werden müsste.&lt;br /&gt;
&lt;br /&gt;
Für den RGB-Driver sketch sind je nach gewünschtem Funktionsumfang noch folgende libs zu installieren:&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;Panstamp Lib&#039;&#039;&#039; läd man von hier [[http://old.panstamp.com/downloads]] (panstamp_library.zip, 129k v.25, May 31, 2013). Mit der neueren Lib v.4 läuft die Kompillierung des derzeitigen Sketches nicht durch. Die Dateien der Lib speichert man in einem entsprechend neuen  Unterordner, z.B. hierin C:\Users\&amp;lt;username&amp;gt;\Documents\Arduino\libraries. Am Ende der ganzen Aktion im Folgenden sollten sich in diesem Unterordner 3 neue Unterordner befinden: IRremote, DMXSerial und panstamp&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;IR Remote Lib&#039;&#039;&#039; kopiert man von hier [[https://github.com/shirriff/Arduino-IRremote]] und speichert sie ebenfalls in einem passenden Unterordner von libraries.&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;DMX Lib&#039;&#039;&#039; kopiert man von hier [[http://www.mathertel.de/Arduino/DMXSerial.aspx]] und speichert sie ein weiteres Mal in einem weiteren Unterordner von libraries. Weitere Informationen zur Verwendung von Arduino Libraties finden sich hier [[http://arduino.cc/en/Hacking/Libraries]]. Dass die Libraries richtig erkannt worden sind, lässt sich dadurch erkennen, dass unter Sketch/Library importieren die 3 weiteren Punkte unten unter &amp;quot;beigetragen&amp;quot; auftauchen.&lt;br /&gt;
&lt;br /&gt;
Die Librarys sollten entweder mit dem entsprechenden Menüpunkt in die IDE integriert werden oder jeweils nach auspacken des zip files als als kompletten Ordner im Arduino libraries Verzeichnis abgelegt werden (siehe [http://www.arduino.cc/en/Hacking/Libraries)]).&lt;br /&gt;
&lt;br /&gt;
Für das kompilieren mit INO siehe [[panstamp#ino|hier]].&lt;br /&gt;
&lt;br /&gt;
===== Link zum sketch =====&lt;br /&gt;
Die aktuelle Version des RGB-Driver Sketches findet sich auf [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge].&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201391}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201391#msg201391]&lt;br /&gt;
&lt;br /&gt;
===== Kompillierte hex version =====&lt;br /&gt;
Eine kompiliertes HEX-File für drei (vier) Kanäle plus IR-Empfang und DMX ist hier im Forum zu finden:&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121619}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg121619#msg121619]&lt;br /&gt;
&lt;br /&gt;
===== HEX-File ohne IR und DMX =====&lt;br /&gt;
Eine kompiliertes HEX-File ohne IR-Empfang und DMX ist hier im Forum zu finden:&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201955}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201955#msg201955]&lt;br /&gt;
&lt;br /&gt;
===== Sketch anpassen, kompilieren und hochladen =====&lt;br /&gt;
&lt;br /&gt;
* Welche Features der sketch bietet lässt sich im config.h file durch ein- oder auskommentieren der #define ENABLE_... Zeilen festlegen. {{Link2Forum|Topic=13890 |Message=173431}} [http://forum.fhem.de/index.php?topic=13890.msg173431#msg173431] Den Sketch entsprechend den Bedürfnissen in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen. Für die Konfigurationen siehe [[panstamp#Sketch konfigurieren|Sketch konfigurieren]].&lt;br /&gt;
* Windows IDE only: Falls alles so bleibt, wie es heruntergeladen wurde, wechselt man wieder auf den Reiter sketch und importiert über -&amp;gt;Sketch Library importieren die entsprechenden Libs für IRremote und DMX. Dadurch werden 3 neue Zeilen hinzugefügt.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
==== Sketch konfigurieren ====&lt;br /&gt;
 &lt;br /&gt;
===== DMX =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define ENABLE_DMX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei ist darauf zu achten, dass in der DMX-Lib in der Datei DMXSerial.h die Zeile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define DmxModePin 2     // Arduino pin 2 for controlling the data direction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define DmxModePin 7     // Arduino pin 7 for controlling the data direction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
abgeändert werden muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Temperatur- und Luftfeuchtigkeitssensor =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define HAS_SENSOR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieses ermöglicht die Nutzung eines DHT22 Sensors zur Auswerung von Temperatur und Luftfeuchtigkeit.&lt;br /&gt;
&lt;br /&gt;
Dafür sollten diese Konfigurationszeilen auskommentiert  sein&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USE_SOFT_PWM;&lt;br /&gt;
ENABLE_IR_SEND;&lt;br /&gt;
ENABLE_REPEATER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der IRremote.cpp Datei in der Irremote Library muss die Zeile&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void IRrecv::disableIRIn() &lt;br /&gt;
{&lt;br /&gt;
TIMER_DISABLE_INTR;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
sowie die Irremote.h Datei unter Public: um die Zeile &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void disableIRIn();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erweitert werden.&lt;br /&gt;
&lt;br /&gt;
Der Daten-Pin des DHT22 Sensors muss hierfür an A2 des panStamps angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für die Umrechnung der Userreading für Spannung Temp etc. ist hier beschrieben.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=76489}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg76489#msg76489]&lt;br /&gt;
&lt;br /&gt;
===== Zusammenhänge der Konfiguration =====&lt;br /&gt;
&lt;br /&gt;
Die Zusammenhänge der Konfiguration sind hier beschrieben&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=175181}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg175181#msg175181]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[PanStamp RGBWW Board mit DMX und IR]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Bedienung in FHEMWEB ====&lt;br /&gt;
&lt;br /&gt;
===== Komandos =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Definition ======&lt;br /&gt;
&lt;br /&gt;
Der Panstick wird entsprechend folgendem Befehlt angelegt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define panStick panStamp /dev/ttyUSBx@38400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Schnittstelle ist entsprechend Installation des [[panstamp#unter Linux|Pansticks]] anzupassen.&lt;br /&gt;
&lt;br /&gt;
Dieses panStamp Device versucht dann alle panStamps im Netz zu finden und per autocreate anzulegen, wenn dieses aktiv ist.&lt;br /&gt;
&lt;br /&gt;
====== Attribute TBC ======&lt;br /&gt;
&lt;br /&gt;
====== Set TBC ======&lt;br /&gt;
&lt;br /&gt;
====== Get TBC ======&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=12487.msg81923#msg81923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP 0000002200000003]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 14:25, 28. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
EIn register verändern&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg87679.html#msg87679&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Register umrechnung dec zu hex TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg162790.html#msg162790&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Poweronstate TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg88054.html#msg88054&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg95574.html#msg95574&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg124456.html#msg124456&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP 0000002200000003]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 14:25, 28. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Aus nach poweron TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121296#msg121296&lt;br /&gt;
Power on register&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121137#msg121137&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP 0000002200000003]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 14:25, 28. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== listunconfirmed TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg88112.html#msg88112&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Fadeto TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg97406.html#msg97406&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP 0000002200000003]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 14:25, 28. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Default fade time&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121572#msg121572&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP 0000002200000003]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 14:25, 28. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Eigenschaften des fade TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg106644#msg106644&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== 4.,5. kanal TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg169741#msg169741&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg192132#msg192132&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201922#msg201922&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201936#msg201936&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Extra kanäle TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg173280#msg173280&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg214329#msg214329&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg214474#msg214474&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP 0000002200000003]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 14:25, 28. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== IR Schnittstelle TBC ====&lt;br /&gt;
===== IR TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107061#msg107061&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107197#msg107197&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107415#msg107415&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122021.html#msg122021&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122077.html#msg122077&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg167351#msg167351&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175269#msg175269&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175285#msg175285&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg182582#msg182582&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg245597#msg245597&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg259267#msg259267&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== IR-Belegung Panstamp RGB-Board TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163008.html#msg163008&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163153.html#msg163153&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Ircluster TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175331#msg175331&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Irgate TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175278#msg175278&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== DMX Schnittstelle ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Da die DMX-Schrittstelle kein direktes Interface zu FHEM hat, sondern nur die direkte Kommunikation zwischen DMX-Kontroller und RGB-Board betrifft, ist die Schnittstelle nur bei der Konfiguration des Sketches und über die Dokumentation des Boards beschrieben.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
==== sonstiges ====&lt;br /&gt;
&lt;br /&gt;
===== Alternativer Fade per Patch =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Als Alternative zum im Sketch und im Modul eingebauten Fade-Befehl ist hier ein Patch vorgestellt:&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133096}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133096.html#msg133096]&lt;br /&gt;
&lt;br /&gt;
Der Patch ist &#039;&#039;&#039;nicht eingecheckt&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
===== Kompatibilität RBG-Board mit NRG-panStamps =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Mit dem hier beschriebenen Sketch ist das Board nur mit den AVRs kompatibel.&lt;br /&gt;
Die Pinbelegung zwischen AVR und NRG ist im Prinzip gleich bis auf Pin 23. Das ist bei dem NRG ein IO Pin und nicht Ground wie beim AVR. &lt;br /&gt;
Das wäre kein Problem wenn man entweder hardwareseitig den Kontakt unterbricht oder aber programmiertechnisch diesen Pin &#039;&#039;&#039;NIE&#039;&#039;&#039; als Ausgang definiert. Ansonsten gibt’s ein „kurzen“. Oder wenn er als Ausgang definiert ist darf er nur das GND Potential haben, also Low, 0.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=247069}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg247069#msg247069]&lt;br /&gt;
&lt;br /&gt;
Da es derzeit (Stand 01.05.2015) aber keinen Sketch gibt, der auf den NRG lauffähig ist, wäre vorher noch diese Herausforderung zu lösen.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
=== Bodenfeuchtesensor ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Der panStamp soilmoisture Sketch aus dem examples Verzeichnis ist mit dem Standard SWAP Modul kompatibel. &lt;br /&gt;
&lt;br /&gt;
Ein Artikel über ein selbstentwickeltes PanStamp Batterieboard zum Anschluss von Analogsensoren/1Wire und Solarversorgung ist hier [[Bodenfeuchtesensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine für einen Vegetronix sensor angepasste Version kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Das Übertragungsintervall ist wie üblich über das regsiter 0A konfigurierbar. Der Sensor wird and GND, D7 für die Versorgungsspannung und A4 für den Messwert angeschlossen. Erfahrungen haben gezeigt, dass bei einem fünfminütigen Übertragungsintervall nach 12 Monaten Laufzeit die Batteriespannung von 1.55V auf 1.4V abfällt. Das würde bedeuten, dass eine Batterie im Batterieboard mindestens eine Laufzeit von drei Jahren haben sollte.&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; stateFormat VWC_A%&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; userReadings Level0_Voltage {hex(ReadingsVal($name,&amp;quot;0C.0-Moisture_level_0&amp;quot;,&amp;quot;0&amp;quot;))*(3.3/1024)}, &lt;br /&gt;
     VWC_A:0C.0-Moisture_level_0 {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**4 + 7.10835 * &lt;br /&gt;
        (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 - 0.569557) / ((ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 + 1))}, &lt;br /&gt;
     voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, &lt;br /&gt;
     battery:0B-Voltage {(ReadingsVal($name,&amp;quot;voltage&amp;quot;,&amp;quot;0&amp;quot;)&amp;lt;1?&amp;quot;low&amp;quot;:&amp;quot;ok&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ soilmositure-plot.jpg|mini|x100px|Bodenfeuchte]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix1.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix2.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem entsprechend erweiterten Sketch lassen sich auch mehrere Sensoren an einem panStamp auslesen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bilder zeigen eine panStamp/Vegetronix Außeneinheit im IP65-Gehäuse. Dieser Aufbau wird ganzjährig den Witterungseinflüssen ausgesetzt. Die auf den Stab aufgesetzte Antenne muss nicht verwendet werden, bei kürzeren Funkstrecken ist eine innenliegende Drahtantenne ausreichend. Bitte in FHEM den RSSI- und LQI-Wert sowie die Gleichmäßigkeit des Empfangens der 5 Minuten Sendeintervalle dementsprechend beobachten.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[SWAP] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Umweltsensor ===&lt;br /&gt;
&amp;lt;strike&amp;gt; &lt;br /&gt;
Die Weiterentwicklung des Bodenfeuchtesensors zum Umweltsensor ist hier [[PanStamp_Umweltsensor]] beschrieben.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ultraschall-Füllstandssensor ===&lt;br /&gt;
&lt;br /&gt;
Projektidee&lt;br /&gt;
&lt;br /&gt;
=== Repeater Mode ===&lt;br /&gt;
&lt;br /&gt;
Die Repeaterfunktionalität ist derzeit (01.05.2015) noch nicht näher beschrieben, wird aber von den Modulen unterstützt.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=118403}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg118403.html#msg118403]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://itse.homeip.net/projekte/12/6/ Projektseite] für das RGB-Multi-Board.&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ rgbdriver sketch] auf sourceforge&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ soilmoisture sketch]  auf sourceforge&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Diskussion:PanStamp&amp;diff=11835</id>
		<title>Diskussion:PanStamp</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Diskussion:PanStamp&amp;diff=11835"/>
		<updated>2015-07-28T11:58:42Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: /* original RGB-Sketch (von panstamp.com) */ Inhalt in Artikel SWAP_0000002200000003#Anwendungsbeispiele übernommen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Anmerkung für die hier vorgeschlagene Änderung des Hauptartikels&#039;&#039;&#039;&lt;br /&gt;
Während ich mich mit dem Thema vertraut gemacht habe, habe ich versucht, alle Informationen, die aus non-developer Sicht für die spätere Anwendung und Inbetriebnahme relevanten Informationen (also aus meiner ;) ) wichtig erscheinen, hier in einem Artikel zusammenfassen. Ich muss gestehen, bis ich meine ersten Panstamps am Laufen hatte, musste ich viel lesen und der derzeitige Artikel setzt mM recht viel Wissen voraus (alles eine Frage des Wissensstandes).&lt;br /&gt;
Die Inhalte des derzeitigen Artikels habe ich übernommen und einfließen lassen, d.h. es ist geplant, die derzeitige Seite zu ersetzen!&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel sind alle Posts bis heute (14.04.2015) aus den beiden Threads {{Link2Forum|Topic=12487 |Message=74967 |LinkText=Thema: panStamp support }} und {{Link2Forum|Topic=13890 |Message=86952 |LinkText=Thema: PanStamp Board RGB,CW,WW;DMX;IR }} berücksichtigt.&lt;br /&gt;
&lt;br /&gt;
Da viele Informationen vor allen Dingen aus der Zeit der Entwicklung der Module und der Sketches stammen, bitte ich Euch, hier kritisch quer zu lesen, das geschriebene zu prüfen, ob noch aktuell und ggf. zu korrigieren, zu ergänzen oder im Forum konstruktiv zu kommentieren.&lt;br /&gt;
&lt;br /&gt;
Dinge, die mir unklar waren, da noch nicht getestet oder Dinge, die noch näherer beschrieben werden können, habe ich mit &amp;quot;?&amp;quot; bzw. &amp;quot;TBC&amp;quot; gekennzeichnet.&lt;br /&gt;
----&lt;br /&gt;
: Hallo, wie ist denn der Stand mit dem Artikel? Finde es schade, dass das gesammelte Know-how hier nur auf der Diskussionsseite zu finden ist. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 12:07, 15. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{SEITENTITEL:panStamp}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V (panStick: 5V USB)&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery (panStick: USB)&lt;br /&gt;
|HWSize=17.7 x 30.5 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Todo:Fehlerkontrolle, Formatierung, Ergänzung, Bestätigung des Geschriebenen, weitere Informationen zur Erstellung/Anpassung eines Device Description Files, Bestätigung des Hochladens mittels XLoader, Bedienung in FHEMWEB(RGB-Board/Sketch)&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
==== panStamp mit Antenne ====&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Ardunio IDE oder mit dem ino Kommandozeilen Binary programmieren.&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp in Betrieb zu nehmen muss er unbedingt mit einer Antenne oder einem stück Draht in der [https://code.google.com/p/panstamp/wiki/antennalengths richtigen Länge] bestückt sein. Ohne Antenne funktioniert die Übertragung nicht. Auch nicht auf kurze Distanzen.&lt;br /&gt;
&lt;br /&gt;
Mittlerweile gibt es zwei verschiedene panStamps (AVR und NRG), von denen der NRG neuer und etwas mehr Features zur Verfügung stellt, allerdings (noch) nicht mit allen hier beschriebenen Projekten kompatibel ist.&lt;br /&gt;
&lt;br /&gt;
==== Panstick oder Panshield ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Als Schnittstelle zwischen Server-Hardware und einem panStamp dient entweder ein panStick (USB Stick mit Sockel zum aufstecken eines panStamp) oder ein &amp;quot;panStamp Shield&amp;quot; mit integriertem panStamp an einem Raspberry Pi. Der Panstick stellt dabei die Verbindung zwischen dem USB-Port auf der einen Seite und dem seriellen Interface des Panstamps auf der anderen Seite dar. Ein Panshield übernimmt die gleiche Funktion, wird aber direkt an die IOs eines Raspberries angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Der Panstick wird grundsätzlich für zwei Aufgaben benötigt:&lt;br /&gt;
# Für die Vorbereitung eines panStamps für den Betrieb auf einem &amp;quot;Board&amp;quot; wird der neue panStamp in den Panstick gesteckt, um die Programmierung (flashen des Sketch) vorzunehmen.&lt;br /&gt;
# Im &amp;quot;normalen&amp;quot; Betrieb steckt ein panStamp auf ihm. Der so angebundene panStamp wird mit einem (bei Auslieferung des PanStamps vorinstallierten) Modem-Sketch als RF Modem verwendet und dient so dem Rechner als Interface zu anderen panStamps, zu denen über eine Funkstrecke mittels des SWAP-Protokolls kommuniziert wird.&lt;br /&gt;
&lt;br /&gt;
Da auf dem panStamp Shield der panStamp fest eingelötet ist, übernimmt dieser in der Regel nur die zweite Funktion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStick]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:10, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== spezifisches &amp;quot;Board&amp;quot; ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
: Im Gegenzug zum Panstick als Interface zwischen panStamp und USB-Port des Servers stellt das Board das Interface zwischen panStamp vor Ort und Input/Outputs (analog/digital) dar. Das &amp;quot;Board&amp;quot; nimmt den panStamp mit dem passenden Sketch auf und setzt die Outputs des panStamps auf die Ausgänge um bzw. leitet die Eingänge zur Auswertung an den panStamp weiter.&lt;br /&gt;
: Entsprechend Anwendungsfall und Sketch werden die Ein-/Ausgänge des panStamps verarbeitet. Z.B. können an ein Board Temperatur-, Feuchtigkeitssensoren oder LED-Strips angeschlossen werden. Der Sketch auf dem panStamp sollte entsprechend der Anwendung auf dem Board angepasst worden sein um nicht nur über die standardmäßig zur Verfügung stehenden Register kommunizieren zu müssen.&lt;br /&gt;
&lt;br /&gt;
: Das Board benötigt irgend eine Art von Stromversorgung, um den panStamp zu betreiben. Das kann im Falle eines Sensorboards und entsprechend stromsparend ausgelegtem Sketch eine Batterie sein oder wie im Falle des RGB-Boards eine externe Stromversorgung. &lt;br /&gt;
: Speziell beim unten beschriebenen RGB-Board kann die Stromversorgung sogar separat für panStamp und LEDs ausgeführt sein oder ingesamt panStamp und LEDs gemeinsam versorgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Simple Wireless Abstract Protocol (SWAP) ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zur Kommunikation in einem panStamp Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([http://code.google.com/p/panstamp/wiki/SWAP SWAP]).&lt;br /&gt;
Die komplette SWAP- Kommunikation ist registerbasiert und erfolgt mit Nachrichten um diese Register abzufragen, zu setzen und deren Inhalt zu senden. Alle Register lassen sich lesen, manche auch beschreiben.&lt;br /&gt;
Der panStamp Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;.&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Modem-Sketch ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStick]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Der Modem-Sketch stellt das Software-Verbindungsglied zwischen panStamp und Funksignal dar, dass an andere panStamps geht. &lt;br /&gt;
&lt;br /&gt;
Auf jedem panStamp (AVR, NRG?) ist im Auslieferungszustand der Modem-Sketch installiert. Das Protokoll der Funkstrecke folgt dem SWAP-Protokoll.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStick]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== auf Board abgestimmter Sketch ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Ein panStamp ist auf einem entsprechenden Board installiert und übernimmt dort lokal die Schnittstelle zwischen Funkstrecke und Board. &lt;br /&gt;
&lt;br /&gt;
Der Sketch stellt dabei die passende &amp;quot;Software&amp;quot; auf dem panStamp. Der Sketch verarbeitet die über das SWAP-Protokoll versandte Nachrichten, wertet diese aus, reagiert entsprechend und setzt die Outputs des Boards. In umgekehrter Richtung wertet er die an den Inputs des Board angelegten Signale aus, verarbeitet diese und schickt sie per SWAP-Protokoll zum Panstamp mit Modem-Sketch zurück.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Module  und Description File ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Die Integration in FHEM erfolgt über eine Reihe von Modulen die im folgenden genauer beschrieben werden. Zusammengefasst gibt es 3 Ebenen mit der Ergänzung eines Konfigurationsfiles in xml-format.&lt;br /&gt;
{{Link2Forum|Topic= 13890 |Message=121689 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg121689.html#msg121689]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 1: 34_panStamp.pm =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Modul ist für einen panStamp der auf einem panStick sitzt und das Interface zwischen FHEM und dem panStamp netz bildet. Alle eintreffenden SWAP-Pakete auf dem panStick (mit Modem-Sketch) werden direkt durchgereicht und im nachfolgend beschriebenen SWAP-Modul verarbeitet.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 2: 34_SWAP.pm =====&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005-detail.png|mini|hochkant=2.5|Readings]]&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Modul implementiert das SWAP protokoll das zwischen den panStamps gesprochen wird. Das SWAP Modul ermöglicht die generische Integration beliebiger panStamp Sensoren und Aktoren in FHEM.&lt;br /&gt;
&lt;br /&gt;
Bei SWAP geht alle Komunikation über &#039;register&#039;, dies sind unterschiedlich lange Werte die entweder nur gelesen oder gelesen und geschrieben werden können. Jedes device hat eine Reihe System register (00-0A) und beliebig viele user register die vom jeweiligen Sketch abängen. Welche Register dies sind, steht unter anderem jeweils im Device Description xml file im Verzeichnis .../FHEM/lib/SWAP.&lt;br /&gt;
&lt;br /&gt;
In den System Registern steht z.b. der productcode, die device adresse und das Übertragungsintervall. Konfigurierbare register werden im EEPROM gesichert und die Werte gehen auch beim Neustart nicht verloren. Beim aller ersten Starten ist das EEPROM mit &amp;quot;FF&amp;quot; initialisiert und alle konfigurierbaren register haben diesen Wert. also z.b. Adresse FF und Intervall FFFF (HEX in Sekunden, das wären dann zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Inhalte der System Register stehen als internal values im oberen Bereich der Detail Ansicht einer Komponente in FHEM, die user register als readings im unteren.&lt;br /&gt;
&lt;br /&gt;
Alle low level Dinge wie Register id oder Register Wert können mit hex werten direkt angepasst werden. Im Normalbetrieb ist dieses aber nicht notwendig und es kann über &#039;vereinfachte&#039; Kommandos mit den register namen verwenden kann. Diese Funktionalität stellt das eines der Module zur Verfügung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 08 &amp;lt;netzwerk id als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87436 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87436#msg87436]&lt;br /&gt;
&lt;br /&gt;
Dieses Modul stellt unter anderem folgende grundlegende Funktionalitäten zur Verfügung&lt;br /&gt;
* Es wird eine command Liste für Devices im power down Modus gehalten. Sobald das Device online kommt werden die Kommandos automatisch übertragen.&lt;br /&gt;
* Die userReadings für &#039;menschenlesbare&#039; Readings werden anhand des device description files automatisch erzeugt&lt;br /&gt;
* Es ist jetzt möglich direkt endpoints (teile eines registers) zu schreiben (???)&lt;br /&gt;
* (Fast) keine hardkodierte Sonderbehandlung mehr für das RGB-Board. Das SWAP Modul kann mit jedem beliebige Swap Device umgehen.&lt;br /&gt;
* Es gibt eine dritte (optionale) Modulschicht neben dem panStamp modul für die Hardware und dem SWAP Modul für das Protokoll. Mit dem generellen SWAP Modul lasen sich alle SWAP devices &#039;zu fuss&#039; über die register ansprechen. Um die register auf einer höheren Ebene auf FHEM Kommandos wie on/off/on-for-timer zu mappen ist dann diese dritte schicht zuständig. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=78502 }} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic=12487.msg78502#msg78502]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 3: SWAP_XXXXXXXXXXXXXXXX.pm =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[paNStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Besonders bei Aktoren ist oft eine engere FHEM-Integration sinnvoll, um FHEM Konzepte wie on/off/on-for-timer direkt abzubilden und nicht mehr nur auf die Registerebene und regSet und regGet Kommandos beschränkt zu sein.&lt;br /&gt;
Mit dieser dritten Modulebene ist es auch für Aktore wie Schalter/Dimmer/... sehr einfach, diese in FHEM zu integrieren. &lt;br /&gt;
&lt;br /&gt;
Wenn die Namenskonvention SWAP_&amp;lt;ProductCode&amp;gt; für diese Module eingehalten wird, funktioniert auch das autocreate sofern das Modul in FHEM bekannt ist.&lt;br /&gt;
&lt;br /&gt;
Um per autocreate automatisch das passende Modul laden zu können, müssen diese Module nach dem Schema SWAP_XXXXXXXXXXXXXXXX.pm benannt sein wobei XXXXXXXXXXXXXXXX für den jeweiligen productCode steht.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für das RGB-Board dafür ist das Modul 35_SWAP_0000002200000003.pm.&lt;br /&gt;
[[Datei:SWAP_0000002200000003.png|mini|rechts|hochkant=2.5|RGB LED Driver Board]]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Device Description File =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Mit Hilfe der im jeweiligen Device Description File hinterlegten Beschreibung werden hierzu automatisch userReadings angelegt die neben den reinen Registerwerten in hex auch &#039;menschenlesbare&#039; readings der Sensorwerte erzeugen. &lt;br /&gt;
Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier Beispielhaft anhand eines BMP085 Temperatur- und Luftdrucksensors dargestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress userReadings voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, temperature:0C.0-Temperature {hex(ReadingsVal($name,&amp;quot;0C.0-Temperature&amp;quot;,&amp;quot;0&amp;quot;))*0.1-50}, pressure:0C.1-Pressure {hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01}, pressureNN:0C.1-Pressure {sprintf(&amp;quot;%.2f&amp;quot;,hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01 + AttrVal(&amp;quot;global&amp;quot;, &amp;quot;altitude&amp;quot;, 0)/8.5)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005.png|mini|hochkant=2.5|Resultat eines stateFormat]]&lt;br /&gt;
Aus diesen readings kann dann mit stateFormat die gewünschte Darstellung für die Raumübersicht erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress stateFormat {sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;temperature&amp;quot;,0)).&amp;quot;°C &amp;quot;.sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;pressureNN&amp;quot;,0)).&amp;quot;mbar&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel ist das Description File für das RGB-Board rgbdriver.xml.&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Systemübersicht ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zum besseren Verständnis der Begrifflichkeiten und Zusammenhänge ist hier eine Systemübersicht dargestellt.&lt;br /&gt;
[[Datei:Panstamp-Systemoverview.jpg|200px|thumb|panStamp Systemübersicht]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=75980 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg75980#msg75980]&lt;br /&gt;
&lt;br /&gt;
Die Kommunikationskette ist wie folgt:&lt;br /&gt;
FHEM -&amp;gt; Host-hardware/OS -&amp;gt; USB -&amp;gt; Panstick -&amp;gt; panStamp (Modem-Sketch) -&amp;gt; Funkstrecke (SWAP) -&amp;gt; panStamp (angepasster Sketch) -&amp;gt; Board -&amp;gt; Sensoren/LED-Strip/etc.&lt;br /&gt;
&lt;br /&gt;
(Ein Panshield ersetzt &amp;quot;USB -&amp;gt; Panstick&amp;quot; durch &amp;quot;IO&#039;s am Rpi-&amp;gt; Panshield&amp;quot;)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt übernommen in Artikel [[panStamp]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:50, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Schritte der Inbetriebnahme ==&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Beispiel für Kurzentschlossene anhand der Einrichtung für das RGB-Board:&lt;br /&gt;
&lt;br /&gt;
* Ein panStamp wird in einen Panstick gesteckt und der Panstick für die Programmierung z.B. unter Windows installiert. Selbstverständlich kann ein panStamp auch über diverse andere Möglichkeiten und unter diversen anderen Betriebssystemen und über diverse andere Schnittstellen programmiert werden.&lt;br /&gt;
* Arduino IDE vorbereiten (libs hinzufügen, Board auswählen, etc.).&lt;br /&gt;
* Ein Sketch wird in der Arduino IDE entsprechend konfiguriert, kompiliert und auf den panStamp hochgeladen.&lt;br /&gt;
* Der programmierte panStamp aus dem Panstick in das RGB-Board stecken.&lt;br /&gt;
* Einen panStamp mit Modem-Sketch in den Panstick stecken und an den FHEM-Host stecken.&lt;br /&gt;
* panStamp unter FHEM einrichten, wenn nicht durch autocreate automatisch geschehen.&lt;br /&gt;
* RGB-Board mit Strom versorgen und ggf. einmal Reset-Knopf drücken. Dann sollte, falls autocreate aktiv ist, der panStamp automatisch eingerichtet werden.&lt;br /&gt;
* SWAP-Device in FHEM an Gegebenheiten anpassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[PanStamp (Systemübersicht)]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:41, 24. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Programmierung eines panStamps ==&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
=== unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Installation Panstick ====&lt;br /&gt;
Für die Installation des Pansticks unter Windows gibt es mehrere Möglichkeiten.&lt;br /&gt;
# Installiert man eine Arduino IDE, kann dabei auch der Treiber für den Panstick mitinstalliert werden.&lt;br /&gt;
# Treiber von der offiziellen Homepage herunterladen und installieren [[http://www.ftdichip.com/]]. Die Treiber befinden sich ebenfalls im Unterordner drivers der Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
Bei der Installation kann es sein, dass kein Treiber gefunden wird. Dann muss der entsprechende Treiber manuell ausgewählt werden entsprechend dieser Anleitung [[https://www.youtube.com/watch?v=SPdSKT6KdF8]].&lt;br /&gt;
&lt;br /&gt;
==== Arduino IDE vorbereiten ====&lt;br /&gt;
&lt;br /&gt;
Zum Flashen der panStamps wird die Arduino IDE benötigt. Eine Installationsanleitung ist unter folgendem Link zu finden:&lt;br /&gt;
:https://code.google.com/p/panstamp/wiki/firststeps&lt;br /&gt;
&lt;br /&gt;
Die IDE 1.5.x oder höher ist zwar mit den AVRs und NRGs kompatibel, wichtig zu wissen ist allerdings, dass mit dem Wechsel von 1.0.x zu 1.5.x oder höher es größere Änderungen der APIs gegeben hat. Dadurch lassen sich einige der bislang zur Verfügung stehenden Sketches (derzeit) nicht unter 1.5.x oder höher kompilieren (z.B. der RGB-Sketch). Für die IDE 1.0.x gibt es keine passenden Arduino Lib für den NRG [[https://github.com/panStamp/panstamp/wiki/First%20steps]], die daher nur mit den AVRs kompatibel sind. Im Folgenden wird sich für die Programmierung unter Windows daher auf die letzte 1.0.x IDE bezogen.&lt;br /&gt;
&lt;br /&gt;
* Man läd die &#039;&#039;&#039;Arduino IDE 1.0.x&#039;&#039;&#039; für Windows [[http://arduino.cc/en/Main/OldSoftwareReleases]]. &lt;br /&gt;
&lt;br /&gt;
* Für bestimmte Sketches müssen noch die entsprechenden Libs hinzugefügt werden (siehe [[panstamp#Sketch konfigurieren|explizite Anwendung]]).&lt;br /&gt;
&lt;br /&gt;
* Unter Tools/Board wird das &#039;&#039;&#039;passende Board&#039;&#039;&#039; ausgewählt, dass dem Chip auf dem Panstamp entspricht. Für den AVR: Arduino Pro or Pro Mini (3,3V, 8 MHz) /w ATmega328. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert, kann man in der IDE auch direkt panStamp als Plattform auswählen.&lt;br /&gt;
&lt;br /&gt;
* Nun muss unter Tools/Serieller Port noch der richtigen &#039;&#039;&#039;Com-Port&#039;&#039;&#039; auswählen werden, unter dem der Panstick eingebunden worden ist (entsprechend Gerätemanager).&lt;br /&gt;
&lt;br /&gt;
* Als letztes unter Tools/&#039;&#039;&#039;Programmer&#039;&#039;&#039; noch den AVRISP mkII auswählen.&lt;br /&gt;
&lt;br /&gt;
==== Sketch vorbereiten, kompilieren und hochladen ====&lt;br /&gt;
&lt;br /&gt;
* Den Sketch läd man von der entsprechenden Quelle und entpackt die Dateien in einen Unterordner z.B. parallel zum libraries-Ordner (unter &amp;quot;Eigene Dateien&amp;quot;). Der Ordner darf &#039;&#039;&#039;nicht im&#039;&#039;&#039; libraries-Ordner liegen, da die Arduino IDE dort das Speichern nicht zulässt. Innerhalb des Unterordners erwartet die IDE die Dateien in einen Unterordner namens &amp;quot;sketch&amp;quot;.&lt;br /&gt;
* sketch.ino oder ähnlich in der Arduino IDE öffnen.&lt;br /&gt;
* Nun entsprechend den Bedürfnissen auf dem geöffneten Reiter in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
Bezüglich der Anpassung des Sketches sind einige spezifische Informationen unten bei den expliziten Anwendungen ergänzt.&lt;br /&gt;
&lt;br /&gt;
==== Hexfile hochladen mit XLoader ====&lt;br /&gt;
Um ein fertig kompiliertes HEX-File hochzuladen, soll dieses über ein Programm namens XLoader möglich sein. [[http://xloader.russemotto.com]]&lt;br /&gt;
&lt;br /&gt;
=== unter Linux === &lt;br /&gt;
&lt;br /&gt;
==== Installation Panstick ====&lt;br /&gt;
&lt;br /&gt;
Zum einen kann es sein, dass der Panstick automatisch unter /dev/ttyUSBx einbunden wird. &amp;quot;x&amp;quot; steht für eine freie fortlaufende Nummer.&lt;br /&gt;
&lt;br /&gt;
Falls er nicht automatisch angelegt worden ist, kann man zunächst prüfen, ob dieser überhaupt eingebunden und richtig erkannt wurde.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lsusb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sollte etwas ähnliches zurückmelden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 002: ID 0403:0000 Future Technology Devices International, Ltd H4SMK 7 Port Hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls das Device nicht automatisch angelegt worden ist, muss dieses ggf. von Hand erledigen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87746 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87746.html#msg87746]&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehl sollte in der Liste ein  ttyUSB auftauchen. Normalerweise mit der Nummer 188.&lt;br /&gt;
&amp;lt;pre&amp;gt;cat /proc/devices&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Das Device wird dann angelegt mit:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mknod /dev/ttyUSB0 c 188 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss für den Betrieb des Pansticks das ftdi_sio Modul zur Verfügung stehen. Dieses lässt sich prüfen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;lsmod&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Voraussetzung könnte den Betrieb an einer Fritzbox erschweren, da nicht sicher ist, ob dieses Modul standardmäßig immer installiert ist.&lt;br /&gt;
&lt;br /&gt;
Legt man das Device von Hand an, kann es sein, dass die Berechtigungen nicht richtig gesetzt sind.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2015.04.23 22:20:06 3: Opening panStick device /dev/ttyUSB0 &lt;br /&gt;
2015.04.23 22:20:06 3: Can&#039;t open /dev/ttyUSB0: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Device sollte für die Gruppe dialout Lese-/Schreibberechtigungen haben.&lt;br /&gt;
Ist dieses nicht der Fall, lassen sich diese über diesen Befehlt setzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown root:dialout ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Damit wird der &amp;quot;Besitz&amp;quot; festgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod a+rw /dev/ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hiermit werden die Berechtigungen gesetzt.&lt;br /&gt;
&lt;br /&gt;
Der Benutzer &amp;quot;fhem&amp;quot; sollte selbstverständlich der Gruppe &amp;quot;dialout&amp;quot; angehören.&lt;br /&gt;
Ist dieses nicht der Fall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo adduser fhem dialout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls dem nicht so sein sollte, hilft ggf. einer dieser beiden Links weiter:&lt;br /&gt;
[[https://www.youtube.com/watch?v=UOECwHhCWRg]] [[http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/07/15/bbb--usb-io-with-ftdi-ft2232h]] bzw. die Installation des Moduls.&lt;br /&gt;
&lt;br /&gt;
==== IDE unter MacOS ====&lt;br /&gt;
&lt;br /&gt;
Da für den RGB-Sketch die IDE 1.0.x benötigt wird und diese Java SE 6 eine Voraussetzung ist, stellt die IDE und MacOS keine Optimale Konfigurationsumgebung dar. Wer es trotzdem probieren möchte&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82055 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82055.html#msg82055]&lt;br /&gt;
&lt;br /&gt;
==== INO ====&lt;br /&gt;
Der RGB-Sketches wurde mit Hilfe des Tools INO entwickelt. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82139 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82139.html#msg82139]&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt am leichtesten mit Hilfe des Tools pip.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen für das Tool sind darüber hinaus picocom für die Kommunikation mit der seriellen Schnittstelle und die arduino. Im gleichen Zuge lässt sich pip installieren.&lt;br /&gt;
Die benötigten Pakete werden über folgenden Aufruf installiert&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install picocom python-pip arduino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt im Anschluss über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install ino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die für einen Sketch erforderlichen libs werden in den entsprechenden lib Ordner kopiert (dort in entsprechenden Unterordnern).&lt;br /&gt;
&lt;br /&gt;
Die Pfade im Zip sind an dieses Tool angepasst.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=94830 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg94830.html#msg94830]&lt;br /&gt;
&lt;br /&gt;
Der serielle Port in der ino.ini muss selbstverständlich an die passende dev-Schnittstelle angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Als letztes sind die Parameter für das Board noch in die board.txt unter /usr/share/arduino/hardware/arduino einzutragen. Die Parameter lassen sich von hier extrahieren [http://old.panstamp.com/downloads] bzw. lauten für den AVR&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##############################################################&lt;br /&gt;
&lt;br /&gt;
panstamp.name=PanStamp v2.0 (3.3V, 8 MHz) w/ ATmega328&lt;br /&gt;
&lt;br /&gt;
panstamp.upload.protocol=arduino&lt;br /&gt;
panstamp.upload.maximum_size=30720&lt;br /&gt;
panstamp.upload.speed=57600&lt;br /&gt;
&lt;br /&gt;
panstamp.bootloader.low_fuses=0xE2&lt;br /&gt;
panstamp.bootloader.high_fuses=0xD8&lt;br /&gt;
panstamp.bootloader.extended_fuses=0x07&lt;br /&gt;
panstamp.bootloader.path=atmega&lt;br /&gt;
panstamp.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex&lt;br /&gt;
panstamp.bootloader.unlock_bits=0x3F&lt;br /&gt;
panstamp.bootloader.lock_bits=0x0F&lt;br /&gt;
&lt;br /&gt;
panstamp.build.mcu=atmega328p&lt;br /&gt;
panstamp.build.f_cpu=8000000L&lt;br /&gt;
panstamp.build.core=arduino&lt;br /&gt;
panstamp.build.variant=standard&lt;br /&gt;
&lt;br /&gt;
##############################################################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen: Jedes Mal, wenn die Arduino ein Update erhält, wird vermutlich diese Datei überschrieben, so dass die Eintragung wiederholt werden muss.&lt;br /&gt;
&lt;br /&gt;
Hier sind die grundlegendsten Befehle beschrieben [http://inotool.org/quickstart].&lt;br /&gt;
&lt;br /&gt;
Wechselt man nun in das Verzeichnis z.B. des RGBdriver, lässt die der Sketch kompilieren über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ino build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und hochladen über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ino upload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Troubeshooting&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=134786 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg134786.html#msg134786]&lt;br /&gt;
&lt;br /&gt;
=== over-the-air (derzeit) nur NRG ===&lt;br /&gt;
&lt;br /&gt;
Die neueren panStamp NRGs können seit einiger Zeit auch over-the-air geflasht werden, wie hier im zugehörigen Forumthread beschrieben [[http://forum.fhem.de/index.php/topic,30589.0.html]].&lt;br /&gt;
&lt;br /&gt;
=== Was überlebt das Flaschen ===&lt;br /&gt;
Bestimmte Konfigurationen überstehen das Flashen, dieses sind zumindest Adresse und Intervall, die nicht neu gesetzt werden müssen [http://forum.fhem.de/index.php/topic,12487.msg87560.html#msg87560].&lt;br /&gt;
&lt;br /&gt;
=== EEPROM löschen ===&lt;br /&gt;
&lt;br /&gt;
Das EEPROM lässt sich komplett löschen, indem man in der setup() dieses hier einträgt [http://forum.fhem.de/index.php/topic,13890.msg156868.html#msg156868].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[Programmierung eines panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:36, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Integration in FHEM ==&lt;br /&gt;
=== FHEM Voraussetzungen ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Für den Betrieb ist XML:Simple notwendig, dass bei Bedarf folgendermaßen nachinstalliert werden kann [http://forum.fhem.de/index.php?topic=12487.msg87373#msg87373].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Abhängigkeit kann beim Betrieb auf einer Fritzbox ebenfalls zu Problemen führen.&lt;br /&gt;
&amp;lt;/strike&amp;gt; Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Pfade innerhalb der FHEM Installation ====&lt;br /&gt;
&lt;br /&gt;
Die Module befinden sich wie gewohnt im Installationsverzeichnis unter ./FHEM.&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das entsprechende Device Description File liegt unter ./FHEM/lib/SWAP wie hier beschrieben [http://forum.fhem.de/index.php/topic,12487.msg86257.html#msg86257].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Register ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (00-0A) [http://code.google.com/p/panstamp/wiki/SWAPregisters] und beliebig viele sketchabängige Userregister (0B-)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Description Files&#039;&#039;. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Description File erfolgt über den productCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt-Id&#039;&#039; gebildet wird.&lt;br /&gt;
&lt;br /&gt;
In den Systemregistern steht z.&amp;amp;nbsp;B. der productCode, die Deviceadresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert, so dass die Werte auch bei einem Neustart nicht verlorengehen. Beim ersten Starten eines panStamp ist das EEPROM mit FF initialisiert und alle konfigurierbaren Register haben diesen Wert, also z.&amp;amp;nbsp;B. die Adresse FF und das Intervall FFFF (zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Systemregister werden in der Device Detailansicht bei den InternalValues im oberen Bereich angezeigt und die User-Register als reading im unteren Bereich.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen productCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Verwendung innerhalb FHEM ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]] [[panStick]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zu unterscheiden ist die Definition des &amp;quot;Panstick&amp;quot;, wobei der panStamp, der als RF-Modem auf dem Panstick sitzt, gemeint ist. Dieser wird im Folgenden mit &amp;quot;Panstick&amp;quot; als Name des Device benannt . Der Type ist &amp;quot;panstamp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Auf der anderen Seite gibt es die Definition der panStamps, die lokal auf den entsprechenden Boards stecken. Diese sind vom Type SWAP_&amp;lt;ProductCode&amp;gt;. Um die Verwirrung komplett zu machen, wird hier meistens vom &amp;quot;panStamps&amp;quot; gesprochen, obwohl es eigentlich SWAP-Devices sind. Für diese werden hier nur die allgemeinen Grundfunktionen beschrieben, die bei jedem SWAP-Device funktionieren. Die spezifischen Komandos und Attribute, die durch die 3. Modulebene in Abhängigkeit des Productcode zur Verfügung stehen, werden bei den spezifischen Anwendungen beschrieben. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[panStamp]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Panstick ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
===== Definition =====&lt;br /&gt;
Das Device &amp;quot;Panstick&amp;quot; wird derzeit (01.05.2015) nicht durch autocreate angelegt. Daher muss er manuell entsprechend folgendem Befehl angelegt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define panStick panStamp /dev/ttyUSBx@38400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Schnittstelle muss entsprechend der Installation des Pansticks anzupassen werden. Für die Einrichtung des Pansticks innerhalb des OS siehe [[panstamp#unter Linux|Installation Panstick]]&lt;br /&gt;
&lt;br /&gt;
Dieses panStamp Device versucht dann alle panStamps im Netz zu finden und per autocreate anzulegen, wenn dieses aktiv sind.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Betrieb an der FB&#039;&#039;&#039;&lt;br /&gt;
Spezialitäten zum Betrieb an einer Fritzbox sind hier [http://forum.fhem.de/index.php/topic,12487.msg87778.html#msg87778] und hier [http://forum.fhem.de/index.php/topic,12487.msg95914.html#msg95914] beschrieben. Es scheint nur der hintere USB-Anschluss für die Verwendung zu laufen. Außerdem muss der USB-Fernaschluss deaktiviert sein.&lt;br /&gt;
&lt;br /&gt;
===== Attribute =====&lt;br /&gt;
&lt;br /&gt;
Für den &amp;quot;Panstick&amp;quot; gibt es keine modulspezifischen Attribute.&lt;br /&gt;
&lt;br /&gt;
===== Set =====&lt;br /&gt;
&lt;br /&gt;
* discover?&lt;br /&gt;
Mit diesem Befehl wird eine Broadcast SWAP-Message abgesetzt, die alle empfangenden panStamps dazu veranlassen, sich zu melden. Batteriebetriebenen panStamps können systembedingt nur identifiziert werden, wenn diese Empfangsbereit sind und sich nicht im Schlafmodus befinden.&lt;br /&gt;
&lt;br /&gt;
* raw&lt;br /&gt;
Ist der Panstick ersteinmal eingerichtet und meldet &amp;quot;Initialized&amp;quot;, kann über das panStick device direkt eine raw Message abgesetzt werden. Diese ist zur Zeit eigentlich immer eine SWAP Nachricht wie z.b. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set panStick raw 00010000010000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel wird ein broadcast an alle abgesetzt, damit diese ihre ID und ihren productcode zurück senden.&lt;br /&gt;
Das macht der panStick nach dem Initialisieren auch ein mal automatisch um alle nicht schlafenden Devices per autocreate anlegen zu können.&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl &amp;quot;raw&amp;quot; lassen sich SWAP-Messages direkt absetzten, was vor allen Dingen dann hilfreich sein kann, wenn man vermutet, dass die Kommunikation über die modulgestützten Befehle fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 20:05, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== SWAP ====&lt;br /&gt;
&lt;br /&gt;
Alle empfangen SWAP Nachrichten werden in internals/readings im jeweiligen Device angezeigt.&lt;br /&gt;
&lt;br /&gt;
===== Definition =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Info: Das SWAP Modul unterstützt autocreate. Bei der Inbetriebnahme sollte autocreate aktiviert sein, da dies die Einrichtung deutlich vereinfacht.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn der panStick läuft, sollten die SWAP-Devices per autocreate angelegt werden, sobald sie das erste mal senden, z.B. nach dem Einschalten oder nach einem Reset.&lt;br /&gt;
&lt;br /&gt;
Normalerweise werden beim autocreate alle Werte abgefragt und angezeigt. Das geht normalerweise ohne jedes Zutun. &lt;br /&gt;
&lt;br /&gt;
Panstick rein -&amp;gt; broadcast -&amp;gt; discovery -&amp;gt; anlegen. &lt;br /&gt;
&lt;br /&gt;
Bei Devices mit power down mode erfolgt dieses das erste mal wenn sie Strom haben. &lt;br /&gt;
&lt;br /&gt;
Alle panStamps durchlaufen beim Starten eine bestimmte Einschaltsequenz. Sie melden sich mit ihrer ID und ihrem productcode. Die ID ist die device Addresse und bei einem frisch geflashten panStamp in der Regel FF. Das SWAP Modul versucht, ein Device mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern.&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, sonst haben mehrere die gleiche Addresse und das gibt Konflikte. &lt;br /&gt;
&lt;br /&gt;
Wer mehrere devices hat, sollte jedem nach dem Anlegen mit &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eine eigene id zuweisen. Die landen auf dem panStamp im EEPROM und sind auch nach Neustart noch vorhanden. &lt;br /&gt;
&lt;br /&gt;
Die anderen Adressen sind wie folgt belegt:&lt;br /&gt;
* 00 ist die Broadcast-ID&lt;br /&gt;
* 01 ist die ID des Pansticks am FHEM-System&lt;br /&gt;
* FF ist die Default ID, die jeder panStamp im Auslieferungszustand besitzt&lt;br /&gt;
* F0-FE sind die IDs, auf die autocreate die Adresse automatisch ändert, wenn ein neuer mit der ID FF erkannt wird und kein entsprechender Device-Name definiert ist.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87261 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87261#msg87261]&lt;br /&gt;
&lt;br /&gt;
Ändert man die Adresse, dauert es einen Augenblick, bis alle Register neu übertragen worden sind. &lt;br /&gt;
&lt;br /&gt;
Autocreate ändert bei der Einrichtung und Änderung der ID auch automatisch den Namen. Belässt man die ID im Bereich F0-FE und ändert den Namen des Device, ist zu berücksichtigen, dass autocreate für neue Devices eine freie neue Adresse anhand der Device-Namen sucht. Dadurch könnte es zu Doppeltverwendung von IDs kommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ zum autocreate kann man ein Device auch von Hand anlegen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define &amp;lt;device&amp;gt; SWAP &amp;lt;ID&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bis allerdings der Productcode nicht per Attribut hinterlegt ist, was bei autocreate ebenfalls automatisch geschied, funktionieren nur die grundlegenden Funktionen bis zur 2. Modulebene.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== set =====&lt;br /&gt;
&#039;&#039;ZUGEFÜGT ZU SWAP ARTIKEL, STRIKE FUNKTIONIERT ABER IN DIESEM ABSATZ NICHT&#039;&#039;&lt;br /&gt;
Ist ein SWAP-Device definiert, stehen folgende set-Befehle zur Verfügung:&lt;br /&gt;
* regGet &amp;lt;reg&amp;gt;&lt;br /&gt;
Fragt den Wert des Registers mit der id &amp;lt;reg&amp;gt; ab. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87679 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87679.html#msg87679]&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
Schreibt &amp;lt;data&amp;gt; in den Register mit der id &amp;lt;reg&amp;gt;. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt;.&amp;lt;ep&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
write &amp;lt;data&amp;gt; to endpoint &amp;lt;ep&amp;gt; of register &amp;lt;reg&amp;gt;. will not work if no reading for register &amp;lt;reg&amp;gt; is available as all nibbles that are not part of endpoint &amp;lt;ep&amp;gt; will be filled from this reading. ?&lt;br /&gt;
&lt;br /&gt;
* statusRequest&lt;br /&gt;
Veranlasst, dass alle Register und deren Werte einmal übertragen werden.&lt;br /&gt;
&lt;br /&gt;
* readDeviceXML&lt;br /&gt;
Liest das Device-Description-XML-File neu ein.&lt;br /&gt;
&lt;br /&gt;
* clearUnconfirmed&lt;br /&gt;
Löscht die liste der unbestätigten Nachrichten.&lt;br /&gt;
&lt;br /&gt;
* flash [&amp;lt;productCode&amp;gt;|&amp;lt;firmwareFile&amp;gt;]&lt;br /&gt;
Initiiert das „over-the-air“ Firmware update, dass (derzeit) nur von NRG panStamps unterstützt wird.&lt;br /&gt;
* ohne Parameter: Verwendet das SWAP_&amp;lt;current productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
* &amp;lt;productCode&amp;gt;: Verwendet das SWAP_&amp;lt;productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
* &amp;lt;firmwareFile&amp;gt;: Verwendet ein &amp;lt;firmwareFile&amp;gt; als absoluten File-Namen des HEX-Files.&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== get =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* regList&lt;br /&gt;
Listet alle User-Register des SWAP-Device (Readings). &lt;br /&gt;
&lt;br /&gt;
* regListAll&lt;br /&gt;
Listet alle Register des SWAP-Device (Internals und Readings). &lt;br /&gt;
&lt;br /&gt;
* listUnconfirmed&lt;br /&gt;
Listet alle unbestätigten Nachrichten in der Warteschlange.&lt;br /&gt;
&lt;br /&gt;
* products&lt;br /&gt;
Gibt alle auf dem System bekannten Productcodes nebst Daten aus.&lt;br /&gt;
&lt;br /&gt;
* deviceXML&lt;br /&gt;
Gibt die Daten des zum derzeit zum per Attribut (Productcode) eingerichteten Device-XML-Files aus.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Attribute =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Wird der Productcode bei der Definition nicht gesetzt, stehen auch nur die Standardbefehle bei zur 2. Modulebene zur Verfügung. &lt;br /&gt;
&lt;br /&gt;
* createUnknownReadings&lt;br /&gt;
Erzeug Readings auch für Register, die im Device-XML-File nicht definiert werden.&lt;br /&gt;
&lt;br /&gt;
* ProductCode&lt;br /&gt;
Legt den ProductCode eines SWAP-Device fest. Dieses Attribut wird dazu benutzt, die Konfiguration vom Device-XML-File festzulegen. &lt;br /&gt;
Erst wenn der Produktcode als Attribut vorgegeben wurde, z.B. für einen RGB-Sktech:&lt;br /&gt;
attr &amp;lt;device&amp;gt; ProductCode 0000002200000003&lt;br /&gt;
kommen zu den allgemeinen Kommandos die spezifischen der nächst höheren Modulebene 35_SWAP_&amp;lt;productcode&amp;gt;.pm mit hinzu. Dann werden die SWAP-Nachrichten an das entsprechende Modul weitergegeben und dort verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices, die während der Definition nicht aktiv sind, muss dieses Attribut manuell angelegt werden.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== SWAP_&amp;lt;ProductCode&amp;gt; ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Ist bei einem SWAP-Device das Attribut Productcode gesetzt, wird die SWAP-Nachricht an das entsprechende Modul der 3. Ebene weitergegeben und dort verarbeitet. Die spezifischen Kommandos und Attribute sind bei den entsprechenden [[panstamp#Explizite Anwendungen|Anwendungen]] näher beschrieben.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Intervall bei Sketch mit power down / batterie betriebene Panstamps ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Devices mit power down mode durchlaufen beim Einschalten oder bei einem Reset eine 3 Sekunden Schleife und warten auf Kommandos, dann werden normaler Weise die Register mit den Sensorwerten gesendet und die normale Loop gestartet. power down devices gehen danach schlafen und wachen regelmässig auf um ihre Werte zu senden.&lt;br /&gt;
Alternativ zum Intervall kann man den Resetknopf drücken, wenn man sie nicht im Zugriff hat. &lt;br /&gt;
&lt;br /&gt;
Nachrichten an ein Device im power-down-state werden gepuffert und dann an das Device geschickt, sobald dieses sich im SYNC status befindet. Dieses ist typischer Weise nach dem Startup z.B. nach einem Reset der Fall.&lt;br /&gt;
&lt;br /&gt;
Bei batteriebetriebenen Sensoren sollte das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87409}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87409#msg87409]&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices (genauer: Devices die den Power-Down-Modus unterstützen) wird das Default Sendeintervall bei der Einrichtung automatisch von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden = 15 Minuten) geändert.&lt;br /&gt;
&lt;br /&gt;
Das Intervall wird nur automatisch gesetzt, wenn pwrdownmode im device description file true ist.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=89205}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg89205.html#msg89205]&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg157125#msg157125]&lt;br /&gt;
&lt;br /&gt;
Es gibt mit bestimmten panStamp lib Versionen das Problem das ein Wert von FFFF in 0A zum Überlauf führt und dann ununterbrochen gesendet wird. Im fhem Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen host systemen (z.B. FritzBox) nicht, weil der panStamp so schnell sendet, dass fhem so mit dem Abarbeiten beschäftigt ist, dass es selber nicht zum senden kommt.&lt;br /&gt;
Zur Abhilfe kann im sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden und noch mal flashen. Wenn der Sketch damit ein mal durchgelaufen ist können diese beiden Zeilen wieder entfernen und der panStamp noch mal geflasht.&lt;br /&gt;
&lt;br /&gt;
Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87859}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87859.html#msg87859]&lt;br /&gt;
&lt;br /&gt;
Für Devices im Power-Down-Modus werden diese Kommandos in eine Warteschlange gestellt und übertragen, sobald das Device seine Initialisierungssequenz durchläuft. Hierzu ist nach Absetzen der Kommandos Reset zu drücken oder die Stromquelle erneut zu verbinden.&lt;br /&gt;
&lt;br /&gt;
Die automatisch vergebenen Adressen sind im Bereich F0-FE. d.h. eigentlich auch nur temporär und sollten auf eine lokal passende geändert werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87919}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87919.html#msg87919]&lt;br /&gt;
&lt;br /&gt;
Im Log sollte etwas in dieser Art auftauchen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:14:29 2: autocreate: define SWAP_F0 SWAP FF 000000010000000E&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP_F0: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP SWAP_F0: changing 09-DeviceAddress from default FF to F0&lt;br /&gt;
2013.07.29 20:14:30 3: SWAP SWAP_F0: changing 0A-PeriodicTxInterval from default FFFF to 0384 (900 seconds)&lt;br /&gt;
&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:16:35 2: autocreate: define SWAP_F1 SWAP_0000002200000003 FF 0000002200000003&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP_F1: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:16:36 3: SWAP SWAP_F1: changing 09-DeviceAddress from default FF to F1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
==== Verschlüsselung ====&lt;br /&gt;
&lt;br /&gt;
Die Aktivierung der Verschlüsselung für die Kommunikation zwischen panStamp und panStick ist hier beschrieben, scheint allerdings derzeit noch nicht eingecheckt zu sein (Stand 01.05.2015).&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133040}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133040.html#msg133040]&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=139341}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg139341.html#msg139341]&lt;br /&gt;
&lt;br /&gt;
=== Trouble Shooting ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
==== value has to be 10 byte(s) in size  ====&lt;br /&gt;
&lt;br /&gt;
Es besteht die Möglichkeit, dass die Internals aus irgend einem Grund nicht vollständig sind. &lt;br /&gt;
Abhilfe in einem solchen Falle kann das Absetzen der folgenden beiden Befehlt schaffen&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
set &amp;lt;device&amp;gt; readDeviceXML&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht zum Erfolg führt, hilft ggf. ein Löschen und neu setzen des ProductCode Attributs.&lt;br /&gt;
{{Link2Forum|Topic=34474.0}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=34474.0]&lt;br /&gt;
&lt;br /&gt;
Das Übertragen aller Daten nach dem Statusrequest kann einen Augenblick dauern.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit:&lt;br /&gt;
Die Fehlermeldung kommt immer wenn FHEM nicht weiss welche Firmware auf dem device ist. Das passiert wenn irgendetwas in der Kommunikation schief geht während FHEM initialisiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122414}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122414.html#msg122414]&lt;br /&gt;
&lt;br /&gt;
==== register 0F is not known ====&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=84257}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg84257.html#msg84257]&lt;br /&gt;
&lt;br /&gt;
==== Komplette Übersicht eines Device ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list &amp;lt;device&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201467}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201467#msg201467]&lt;br /&gt;
&lt;br /&gt;
==== fehlender oder falsche Productcode ====&lt;br /&gt;
&lt;br /&gt;
Fehlt der Productcode, werden die zum Sketch zugehörigen Befehle nicht angezeigt und die Register nicht korrekt zugeordnet.&lt;br /&gt;
Verändert man den Productcode, sollte man im Anschluss folgenden Befehlt absetzten, um alle Register neu auszulesen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201910}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201910#msg201910]&lt;br /&gt;
&lt;br /&gt;
==== missing commands und register 00-0A unvollständig ====&lt;br /&gt;
&lt;br /&gt;
Wenn in den Internals missing commands (SWAP_Sent_unconfirmed) auftauchen und ggf. die Register 00-0A nicht vollständig sind und das Internal &amp;quot;channels&amp;quot; nicht vorhanden ist, gibt es irgendein Kommunikationsproblem.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201939}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201939#msg201939]&lt;br /&gt;
&lt;br /&gt;
==== Funktion des Autocreate ====&lt;br /&gt;
&lt;br /&gt;
Beim autocreate wird versucht ein Name für das Device zu vergeben, der zur nächsten freien Adresse passt. Während dieses Prozessen bleibt die Adresse erst mal trozdem FF. Erst wenn das Device angelegt wird, kann versucht werden automatisch die Adresse zu setzen, hoffentlich auf die gleiche freie, die beim Namen auch schon gefunden wurde. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=88110}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg88110.html#msg88110]&lt;br /&gt;
&lt;br /&gt;
==== Adresse manuell setzen ====&lt;br /&gt;
&lt;br /&gt;
Um die Adresse manuell bereits in den Sketch einzubauen kann man wie hier beschrieben vorgehen.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122347}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122347.html#msg122347]&lt;br /&gt;
&lt;br /&gt;
==== Panstamp antwortet nicht/EEprom to factory defaults ====&lt;br /&gt;
&lt;br /&gt;
Wenn der panStamp nicht antwortet, kann es sein das die Adressen durcheinander gekommen sind. Dann musst man einmal in setup() ein  eepromToFactoryDefaults() aufrufen und damit flashen. Wenn damit einmal gestartet wurde, die Zeile wieder entfernen und den normalen sketch flashen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121677}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg121677#msg121677]&lt;br /&gt;
&lt;br /&gt;
==== Undefined subroutine &amp;amp;main::XMLin ====&lt;br /&gt;
Erhält man diese Fehlermeldung&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Undefined subroutine &amp;amp;main::XMLin called at ./FHEM/34_SWAP.pm line 108.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.09.26 11:34:24 0: ERROR: Cannot autoload SWAP&lt;br /&gt;
2013.09.26 11:34:24 3: panStick: Unknown code 000A001B000A000000000100000007, help me!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es fehlt XML::Simple, was folgendermaßen installiert werden kann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Factory Defaults ====&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp auf den Auslieferungszustand zurückzusetzen, muss man beim Sketch folgendes in die setup() Routine einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg157125#msg157125]&lt;br /&gt;
&lt;br /&gt;
==== Status LED ====&lt;br /&gt;
&lt;br /&gt;
Die Status LED auf dem Board wird in der config.h deaktiviert, indem man die Zeit #define LED_DEBUG mit &amp;quot;//&amp;quot; auskommentiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=164731}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg164731.html#msg164731]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:00, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Explizite Anwendungen ==&lt;br /&gt;
=== RGB-Board ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
==== Allgemeines ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Board unterstützt RGBW LEDs und lässt sich per Infrarot Fernbedienung, DMX Controller (z.&amp;amp;nbsp;B. als Unterputz Touchpanel) und FHEM bedienen.&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang wird in diesem [http://forum.fhem.de/index.php/topic,12487.msg81923.html#msg81923 Forenthread] vorgestellt. Die Hardware für das Board wird [http://forum.fhem.de/index.php/topic,13890.0.html  hier] im FHEM Forum vorgestellt und ein Prototyp ist [http://forum.fhem.de/index.php/topic,12487.msg85777.html#msg85777 hier] zu sehen.&lt;br /&gt;
&lt;br /&gt;
Die Projektseite zur Hardware findet sich [http://itse.homeip.net/projekte/12/6/ hier]. Eine Version 2 des Boards in geplant. &lt;br /&gt;
&lt;br /&gt;
Eine Übersicht über die derzeit vorhandene Funktionalität (stand 01.05.2015):&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=1205404}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg120404#msg120404]&lt;br /&gt;
&lt;br /&gt;
* bis zu vier LED-Kanäle (je nach Kombination von ir und soft pwm)&lt;br /&gt;
* ir senden&lt;br /&gt;
* ir empfangen&lt;br /&gt;
* Messen ob die LED-Versorgung an ist.&lt;br /&gt;
* Helligkeit eines an A2 angeschlossenen Helligkeitssensors&lt;br /&gt;
* Konfiguration der DMX-Basis-Adresse über das SWAP Register 0x12&lt;br /&gt;
* optional soft on auf letzten Wert&lt;br /&gt;
* Alles was auch vorher schon ging: dimmen, faden, IR-Fernbedienungen anlernen, ...&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen:&lt;br /&gt;
* Wenn IR aktiv ist und kein soft pwm lässt sich der 4. Kanal nur ein- und ausschalten.&lt;br /&gt;
* Wenn IR aktiv ist muss soft pwm aktiv sein um den 4. Kanal auch zu dimmen.&lt;br /&gt;
* Es wird nur ein zusätzlicher Kanal tatsächlich schon unterstützt, der fünfte ist noch geplant.&lt;br /&gt;
* Bei IR-Senden sind nur die Aufrufe für Sony und NEC tatsächlich eingebaut. Die anderen sind aber einfach zu ergänzen.&lt;br /&gt;
* Beim IR-Senden sind noch keine Wiederholungen eingebaut. Die müssen laut Protokoll aber eigentlich sein.&lt;br /&gt;
&lt;br /&gt;
was noch kommt:&lt;br /&gt;
* besseres soft pwm&lt;br /&gt;
* mehr Konfiguration bezüglich default-Verhalten. Ramp-Zeiten, Delays, ...&lt;br /&gt;
* HSV-Farb-Modell um besser zu faden und vor Allem um den Weiss-Anteil automatisch auf die Weiss-LEDs zu legen&lt;br /&gt;
* die virtuellen Channel &lt;br /&gt;
* FHEM kompatibles IR-Senden&lt;br /&gt;
* sofortiges senden von Helligkeit und LED-Spannung bei Änderung&lt;br /&gt;
* andere IR-Lib mit sehr viel besserer Geräte-Unterstützung&lt;br /&gt;
&lt;br /&gt;
Wie gehabt muss alles über config.h mit Compilerschaltern konfiguriert werden.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
===== weitrere Screenshots =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:SWAP_0000002200000003-internal.png|InternalValues&lt;br /&gt;
File:SWAP_0000002200000003-readings.png|Readings&lt;br /&gt;
File:SWAP_0000002200000003-attributes.png|Attributes&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[SWAP_0000002200000003]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== original RGB-Sketch (von panstamp.com) =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Der originale Sketch von der panStamp.com-Seite und das generelle FHEM-Modul verstehen von Haus aus nur die regSet und regGet Kommandos. Wenn man den colorpicker verwenden möchte, geht das nur per readingsProxy. &lt;br /&gt;
&lt;br /&gt;
Das einfachste ist es den Sketch und das FHEM-Modul für das RGB-Board zu verwenden. Dann hat man neben dem colorpicker, einem farbigen State-Icon auch alle Möglichen Kommandos wie on, off, on-for-timer, dimup, ... und kann konfigurieren, wie das Board nach dem Hart- oder Soft-Einschalten reagieren soll. &lt;br /&gt;
&lt;br /&gt;
Derzeit scheint es keinen Grund zu geben, den original Sketch zu verwenden. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=220463}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg220463.html#msg220463]&lt;br /&gt;
&lt;br /&gt;
Falls jemand trotzdem den normalen RGB-Sketch verwendet:&lt;br /&gt;
* Im Code alle drei 0000002200000003 durch 0000000100000003 ersetzen.&lt;br /&gt;
Dann geht on/off/toggle/set rgb RRGGBB und auch der colorpicker, wenn das HUEDevice Modul auch geladen ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP_0000002200000003#Anwendungsbeispiele]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:58, 28. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Sketch vorbereiten, kompilieren und hochladen ====&lt;br /&gt;
===== Vorbereitungen =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
(Stand 01.05.2015)&lt;br /&gt;
&lt;br /&gt;
Mit der Arduino IDE 1.5.x gab es gundlegende Umstellungen, für die der derzeitige Sketch [r4716] vermutlich angepasst werden müsste.&lt;br /&gt;
&lt;br /&gt;
Für den RGB-Driver sketch sind je nach gewünschtem Funktionsumfang noch folgende libs zu installieren:&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;Panstamp Lib&#039;&#039;&#039; läd man von hier [[http://old.panstamp.com/downloads]] (panstamp_library.zip, 129k v.25, May 31, 2013). Mit der neueren Lib v.4 läuft die Kompillierung des derzeitigen Sketches nicht durch. Die Dateien der Lib speichert man in einem entsprechend neuen  Unterordner, z.B. hierin C:\Users\&amp;lt;username&amp;gt;\Documents\Arduino\libraries. Am Ende der ganzen Aktion im Folgenden sollten sich in diesem Unterordner 3 neue Unterordner befinden: IRremote, DMXSerial und panstamp&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;IR Remote Lib&#039;&#039;&#039; kopiert man von hier [[https://github.com/shirriff/Arduino-IRremote]] und speichert sie ebenfalls in einem passenden Unterordner von libraries.&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;DMX Lib&#039;&#039;&#039; kopiert man von hier [[http://www.mathertel.de/Arduino/DMXSerial.aspx]] und speichert sie ein weiteres Mal in einem weiteren Unterordner von libraries. Weitere Informationen zur Verwendung von Arduino Libraties finden sich hier [[http://arduino.cc/en/Hacking/Libraries]]. Dass die Libraries richtig erkannt worden sind, lässt sich dadurch erkennen, dass unter Sketch/Library importieren die 3 weiteren Punkte unten unter &amp;quot;beigetragen&amp;quot; auftauchen.&lt;br /&gt;
&lt;br /&gt;
Die Librarys sollten entweder mit dem entsprechenden Menüpunkt in die IDE integriert werden oder jeweils nach auspacken des zip files als als kompletten Ordner im Arduino libraries Verzeichnis abgelegt werden (siehe [http://www.arduino.cc/en/Hacking/Libraries)]).&lt;br /&gt;
&lt;br /&gt;
Für das kompilieren mit INO siehe [[panstamp#ino|hier]].&lt;br /&gt;
&lt;br /&gt;
===== Link zum sketch =====&lt;br /&gt;
Die aktuelle Version des RGB-Driver Sketches findet sich auf [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge].&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201391}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201391#msg201391]&lt;br /&gt;
&lt;br /&gt;
===== Kompillierte hex version =====&lt;br /&gt;
Eine kompiliertes HEX-File für drei (vier) Kanäle plus IR-Empfang und DMX ist hier im Forum zu finden:&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121619}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg121619#msg121619]&lt;br /&gt;
&lt;br /&gt;
===== HEX-File ohne IR und DMX =====&lt;br /&gt;
Eine kompiliertes HEX-File ohne IR-Empfang und DMX ist hier im Forum zu finden:&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201955}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201955#msg201955]&lt;br /&gt;
&lt;br /&gt;
===== Sketch anpassen, kompilieren und hochladen =====&lt;br /&gt;
&lt;br /&gt;
* Welche Features der sketch bietet lässt sich im config.h file durch ein- oder auskommentieren der #define ENABLE_... Zeilen festlegen. {{Link2Forum|Topic=13890 |Message=173431}} [http://forum.fhem.de/index.php?topic=13890.msg173431#msg173431] Den Sketch entsprechend den Bedürfnissen in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen. Für die Konfigurationen siehe [[panstamp#Sketch konfigurieren|Sketch konfigurieren]].&lt;br /&gt;
* Windows IDE only: Falls alles so bleibt, wie es heruntergeladen wurde, wechselt man wieder auf den Reiter sketch und importiert über -&amp;gt;Sketch Library importieren die entsprechenden Libs für IRremote und DMX. Dadurch werden 3 neue Zeilen hinzugefügt.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
==== Sketch konfigurieren ====&lt;br /&gt;
 &lt;br /&gt;
===== DMX =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define ENABLE_DMX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei ist darauf zu achten, dass in der DMX-Lib in der Datei DMXSerial.h die Zeile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define DmxModePin 2     // Arduino pin 2 for controlling the data direction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define DmxModePin 7     // Arduino pin 7 for controlling the data direction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
abgeändert werden muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Temperatur- und Luftfeuchtigkeitssensor =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define HAS_SENSOR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieses ermöglicht die Nutzung eines DHT22 Sensors zur Auswerung von Temperatur und Luftfeuchtigkeit.&lt;br /&gt;
&lt;br /&gt;
Dafür sollten diese Konfigurationszeilen auskommentiert  sein&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USE_SOFT_PWM;&lt;br /&gt;
ENABLE_IR_SEND;&lt;br /&gt;
ENABLE_REPEATER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der IRremote.cpp Datei in der Irremote Library muss die Zeile&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void IRrecv::disableIRIn() &lt;br /&gt;
{&lt;br /&gt;
TIMER_DISABLE_INTR;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
sowie die Irremote.h Datei unter Public: um die Zeile &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void disableIRIn();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erweitert werden.&lt;br /&gt;
&lt;br /&gt;
Der Daten-Pin des DHT22 Sensors muss hierfür an A2 des panStamps angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für die Umrechnung der Userreading für Spannung Temp etc. ist hier beschrieben.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=76489}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg76489#msg76489]&lt;br /&gt;
&lt;br /&gt;
===== Zusammenhänge der Konfiguration =====&lt;br /&gt;
&lt;br /&gt;
Die Zusammenhänge der Konfiguration sind hier beschrieben&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=175181}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg175181#msg175181]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[PanStamp RGBWW Board mit DMX und IR]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Bedienung in FHEMWEB ====&lt;br /&gt;
&lt;br /&gt;
===== Komandos =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Definition ======&lt;br /&gt;
&lt;br /&gt;
Der Panstick wird entsprechend folgendem Befehlt angelegt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define panStick panStamp /dev/ttyUSBx@38400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Schnittstelle ist entsprechend Installation des [[panstamp#unter Linux|Pansticks]] anzupassen.&lt;br /&gt;
&lt;br /&gt;
Dieses panStamp Device versucht dann alle panStamps im Netz zu finden und per autocreate anzulegen, wenn dieses aktiv ist.&lt;br /&gt;
&lt;br /&gt;
====== Attribute TBC ======&lt;br /&gt;
&lt;br /&gt;
====== Set TBC ======&lt;br /&gt;
&lt;br /&gt;
====== Get TBC ======&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php?topic=12487.msg81923#msg81923&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EIn register verändern&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg87679.html#msg87679&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Register umrechnung dec zu hex TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg162790.html#msg162790&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Poweronstate TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg88054.html#msg88054&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg95574.html#msg95574&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg124456.html#msg124456&lt;br /&gt;
&lt;br /&gt;
===== Aus nach poweron TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121296#msg121296&lt;br /&gt;
Power on register&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121137#msg121137&lt;br /&gt;
&lt;br /&gt;
===== listunconfirmed TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg88112.html#msg88112&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Fadeto TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg97406.html#msg97406&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
Default fade time&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121572#msg121572&lt;br /&gt;
&lt;br /&gt;
===== Eigenschaften des fade TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg106644#msg106644&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== 4.,5. kanal TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg169741#msg169741&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg192132#msg192132&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201922#msg201922&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201936#msg201936&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Extra kanäle TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg173280#msg173280&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg214329#msg214329&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg214474#msg214474&lt;br /&gt;
&lt;br /&gt;
==== IR Schnittstelle TBC ====&lt;br /&gt;
===== IR TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107061#msg107061&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107197#msg107197&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107415#msg107415&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122021.html#msg122021&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122077.html#msg122077&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg167351#msg167351&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175269#msg175269&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175285#msg175285&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg182582#msg182582&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg245597#msg245597&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg259267#msg259267&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== IR-Belegung Panstamp RGB-Board TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163008.html#msg163008&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163153.html#msg163153&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Ircluster TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175331#msg175331&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Irgate TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175278#msg175278&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== DMX Schnittstelle ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Da die DMX-Schrittstelle kein direktes Interface zu FHEM hat, sondern nur die direkte Kommunikation zwischen DMX-Kontroller und RGB-Board betrifft, ist die Schnittstelle nur bei der Konfiguration des Sketches und über die Dokumentation des Boards beschrieben.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
==== sonstiges ====&lt;br /&gt;
&lt;br /&gt;
===== Alternativer Fade per Patch =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Als Alternative zum im Sketch und im Modul eingebauten Fade-Befehl ist hier ein Patch vorgestellt:&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133096}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133096.html#msg133096]&lt;br /&gt;
&lt;br /&gt;
Der Patch ist &#039;&#039;&#039;nicht eingecheckt&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
===== Kompatibilität RBG-Board mit NRG-panStamps =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Mit dem hier beschriebenen Sketch ist das Board nur mit den AVRs kompatibel.&lt;br /&gt;
Die Pinbelegung zwischen AVR und NRG ist im Prinzip gleich bis auf Pin 23. Das ist bei dem NRG ein IO Pin und nicht Ground wie beim AVR. &lt;br /&gt;
Das wäre kein Problem wenn man entweder hardwareseitig den Kontakt unterbricht oder aber programmiertechnisch diesen Pin &#039;&#039;&#039;NIE&#039;&#039;&#039; als Ausgang definiert. Ansonsten gibt’s ein „kurzen“. Oder wenn er als Ausgang definiert ist darf er nur das GND Potential haben, also Low, 0.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=247069}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg247069#msg247069]&lt;br /&gt;
&lt;br /&gt;
Da es derzeit (Stand 01.05.2015) aber keinen Sketch gibt, der auf den NRG lauffähig ist, wäre vorher noch diese Herausforderung zu lösen.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
=== Bodenfeuchtesensor ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Der panStamp soilmoisture Sketch aus dem examples Verzeichnis ist mit dem Standard SWAP Modul kompatibel. &lt;br /&gt;
&lt;br /&gt;
Ein Artikel über ein selbstentwickeltes PanStamp Batterieboard zum Anschluss von Analogsensoren/1Wire und Solarversorgung ist hier [[Bodenfeuchtesensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine für einen Vegetronix sensor angepasste Version kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Das Übertragungsintervall ist wie üblich über das regsiter 0A konfigurierbar. Der Sensor wird and GND, D7 für die Versorgungsspannung und A4 für den Messwert angeschlossen. Erfahrungen haben gezeigt, dass bei einem fünfminütigen Übertragungsintervall nach 12 Monaten Laufzeit die Batteriespannung von 1.55V auf 1.4V abfällt. Das würde bedeuten, dass eine Batterie im Batterieboard mindestens eine Laufzeit von drei Jahren haben sollte.&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; stateFormat VWC_A%&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; userReadings Level0_Voltage {hex(ReadingsVal($name,&amp;quot;0C.0-Moisture_level_0&amp;quot;,&amp;quot;0&amp;quot;))*(3.3/1024)}, &lt;br /&gt;
     VWC_A:0C.0-Moisture_level_0 {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**4 + 7.10835 * &lt;br /&gt;
        (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 - 0.569557) / ((ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 + 1))}, &lt;br /&gt;
     voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, &lt;br /&gt;
     battery:0B-Voltage {(ReadingsVal($name,&amp;quot;voltage&amp;quot;,&amp;quot;0&amp;quot;)&amp;lt;1?&amp;quot;low&amp;quot;:&amp;quot;ok&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ soilmositure-plot.jpg|mini|x100px|Bodenfeuchte]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix1.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix2.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem entsprechend erweiterten Sketch lassen sich auch mehrere Sensoren an einem panStamp auslesen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bilder zeigen eine panStamp/Vegetronix Außeneinheit im IP65-Gehäuse. Dieser Aufbau wird ganzjährig den Witterungseinflüssen ausgesetzt. Die auf den Stab aufgesetzte Antenne muss nicht verwendet werden, bei kürzeren Funkstrecken ist eine innenliegende Drahtantenne ausreichend. Bitte in FHEM den RSSI- und LQI-Wert sowie die Gleichmäßigkeit des Empfangens der 5 Minuten Sendeintervalle dementsprechend beobachten.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[SWAP] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Umweltsensor ===&lt;br /&gt;
&lt;br /&gt;
Die Weiterentwicklung des Bodenfeuchtesensors zum Umweltsensor ist hier [[PanStamp_Umweltsensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== Ultraschall-Füllstandssensor ===&lt;br /&gt;
&lt;br /&gt;
Projektidee&lt;br /&gt;
&lt;br /&gt;
=== Repeater Mode ===&lt;br /&gt;
&lt;br /&gt;
Die Repeaterfunktionalität ist derzeit (01.05.2015) noch nicht näher beschrieben, wird aber von den Modulen unterstützt.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=118403}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg118403.html#msg118403]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://itse.homeip.net/projekte/12/6/ Projektseite] für das RGB-Multi-Board.&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ rgbdriver sketch] auf sourceforge&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ soilmoisture sketch]  auf sourceforge&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SWAP_0000002200000003&amp;diff=11834</id>
		<title>SWAP 0000002200000003</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SWAP_0000002200000003&amp;diff=11834"/>
		<updated>2015-07-28T11:57:57Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: /* Anwendungsbeispiele */  Inhalt aus panStamp Diskussion übernommen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{SEITENTITEL:SWAP_0000002200000003}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Modul zur Ansteuerung des erweiterten RGB Board&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=SWAP_0000002200000003&lt;br /&gt;
|ModForumArea=&lt;br /&gt;
|ModFTopic=&lt;br /&gt;
|ModTechName=&lt;br /&gt;
|ModOwner=&lt;br /&gt;
}}&lt;br /&gt;
[[Datei:SWAP_0000002200000003.png|mini|rechts|hochkant=2.5|RGB LED Driver Board]]&lt;br /&gt;
Ein FHEM Modul für das modifizierte panStamp RGB LED Driver Board. &lt;br /&gt;
&lt;br /&gt;
Das Board unterstützt RGBW LEDs und lässt sich per Infrarot Fernbedienung, DMX Controller (z.&amp;amp;nbsp;B. als Unterputz Touchpanel) und FHEM bedienen.&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang wird in diesem [http://forum.fhem.de/index.php/topic,12487.msg81923.html#msg81923 Forenthread] vorgestellt. Die Hardware für das Board wird [http://forum.fhem.de/index.php/topic,13890.0.html  hier] im FHEM Forum vorgestellt und ein Prototyp ist [http://forum.fhem.de/index.php/topic,12487.msg85777.html#msg85777 hier] zu sehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== weitrere Screenshots =====&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:SWAP_0000002200000003-internal.png|InternalValues&lt;br /&gt;
File:SWAP_0000002200000003-readings.png|Readings&lt;br /&gt;
File:SWAP_0000002200000003-attributes.png|Attributes&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Um Modul xyz benutzen zu können, muss außerdem ...&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== original RGB-Sketch (von panstamp.com) ===&lt;br /&gt;
Der originale Sketch von der panStamp.com-Seite und das [[SWAP]] FHEM-Modul verstehen von Haus aus nur die regSet und regGet Kommandos. Wenn man den [[Color#Colorpicker|colorpicker]] verwenden möchte, geht das nur per [[readingsProxy]].&lt;br /&gt;
&lt;br /&gt;
Das einfachste ist es den [[PanStamp_RGBWW_Board_mit_DMX_und_IR#Link_zum_Sketch|Sketch]] und das [[SWAP_0000002200000003|FHEM-Modul]] für das [[PanStamp_RGBWW_Board_mit_DMX_und_IR|RGBWW-Board]] zu verwenden. Dann hat man neben dem colorpicker, einem farbigen State-Icon auch alle Möglichen FHEM-Kommandos wie on, off, on-for-timer, dimup, etc. zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Derzeit scheint es keinen Grund zu geben, den original Sketch zu verwenden. {{Link2Forum|Topic=12487 |Message=220463}}&lt;br /&gt;
&lt;br /&gt;
Falls jemand trotzdem den normalen RGB-Sketch von panStamp verwendet:&lt;br /&gt;
* Im SourceCode der Datei alle drei &amp;lt;code&amp;gt;0000002200000003&amp;lt;/code&amp;gt; durch &amp;lt;code&amp;gt;0000000100000003&amp;lt;/code&amp;gt; ersetzen.&lt;br /&gt;
Dann geht on/off/toggle/set rgb RRGGBB und auch der colorpicker, wenn das HUEDevice Modul auch geladen ist.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:TeeVau&amp;diff=11832</id>
		<title>Benutzer Diskussion:TeeVau</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Benutzer_Diskussion:TeeVau&amp;diff=11832"/>
		<updated>2015-07-28T09:39:43Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== panStamp als Fhem-WikiNews ==&lt;br /&gt;
Hallo TeeVau,&lt;br /&gt;
wenn Du mit Deinen umfangreichen Überarbeitungen an den panStamp-Seiten fertig bist, halte ich das für &amp;quot;würdig&amp;quot; als FhemWiki-News auf der Hauptseite aufgenommen zu werden. Da derzeit noch einige Baustellen/Todo-Hinweise auf den Seiten sind, habe ich das bisher noch nicht gemacht. Was meinst Du?&lt;br /&gt;
Gruß, --[[Benutzer:Krikan|Christian]] ([[Benutzer Diskussion:Krikan|Diskussion]]) 07:12, 28. Jul. 2015 (CEST)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
:Wegen mir gerne. Du hast richtig erkannt, dass noch an diversen Artikeln etwas zu tun ist. Mal mehr, mal weniger. Ich habe es auf jeden Fall im Auge und möchte das auch zu ende bringen. Ich denke allerdings, dass ich noch so 3-4 Wochen dafür brauche. Ich melde mich einfach bei dir, wenn ich fertig bin und das in die FhemWiki-News mit eingebunden werden kann. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:39, 28. Jul. 2015 (CEST)&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Hauptseite&amp;diff=11828</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Hauptseite&amp;diff=11828"/>
		<updated>2015-07-27T05:28:26Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Unterstützte Hardware: panStamp zugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:FHEMWiki - Informationsportal zum FHEM Hausautomationsserver}}&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; border-radius: 8px; padding: 0 1em 1em 1em; background-color:#cce5ff;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;&lt;br /&gt;
http://banner.fhemwiki.de/fhemwiki_logo_200x80.png&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Was ist FHEM?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FHEM&#039;&#039;&#039; ist ein Hausautomations-Server von Rudolf Koenig et al. in Perl geschrieben, um diverse per Funk und Kabel angebundene [[:Kategorie:Hardware|Komponenten]] aus dem Bereich der Hausautomation zu steuern. Er ist lizensiert unter der GPL v2. Das FHEMWiki stellt neben dem [http://forum.fhem.de/ Forum] und der [http://www.fhem.de Fhem] Seite die zentrale Informationsquelle rund um FHEM dar.&lt;br /&gt;
&lt;br /&gt;
{{NUMBEROFUSERS}} [[Special:Listusers|Benutzer]] haben sich seit Mai 2013 registriert und {{NUMBEROFARTICLES}} Artikel geschrieben. ({{NUMBEROFEDITS}} Seitenänderungen bislang).&lt;br /&gt;
&lt;br /&gt;
Bitte [[FHEMWiki:Support | unterstütze uns]] und hilf, [[:Kategorie:NeedsEditing| das Wiki zu erweitern]]. Vielen Dank!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;Mehr [[FHEMWiki:Über_FHEMWiki|über FHEMWiki]]&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-top:10px; margin-right:10px; border: 1px solid #dfdfdf; border-radius: 8px; padding: 0em 1em 1em 1em; background-color:#efefef;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Wie fange ich an?&#039;&#039;&#039;&lt;br /&gt;
* [[Datei:Info_green.png|20px]][http://fhem.de/Heimautomatisierung-mit-fhem.pdf FHEM-Übersicht für Anfänger][[Datei:Info_green.png|20px]]&amp;lt;br /&amp;gt;DER Startpunkt. &#039;&#039;&#039;Pflichtlektüre!&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[Systemübersicht]]&lt;br /&gt;
* Phasen eines Fhem-Projekts:&lt;br /&gt;
** [[Planung]]&lt;br /&gt;
** [[Umsetzung]] (Implementierung)&lt;br /&gt;
** [[Betrieb]] (&amp;quot;Produktion&amp;quot;)&lt;br /&gt;
* [[:Kategorie:Glossary|Glossar]] (Erklärung für bestimmte Begriffe)&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[:Kategorie:HOWTOS|Verschiedene HowTos]]&amp;lt;br /&amp;gt;&lt;br /&gt;
* [[:Kategorie:FAQ|Frequently asked Questions - Häufig gestellte Fragen mit Antworten]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;!-- Verlinkte Wiki-Seite für Anfänger ist leer, darum auskommentiert&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;[[Help:Reading|How to read FHEMWiki]]&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-top:10px; margin-right:10px; border: 1px solid #dfdfdf; border-radius: 8px; padding: 0 1em 1em 1em; background-color:#fff0e0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Unterstützte Hardware&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Hardware Typen|Hardware Typen]] - Funktionsbezogene Übersicht (z.B. [[:Kategorie:Unterhaltungselektronik|Unterhaltungselektronik / Multimedia]], [[:Kategorie:Heizungssteuerung|Heizungssteuerung]], [[:Kategorie:Energieverbrauchsmessung|Energieverbrauchsmessung]], etc.)&lt;br /&gt;
* [[:Kategorie:Server Hardware|Server Hardware]] - Hardware, auf der FHEM installiert werden kann&lt;br /&gt;
* [[:Kategorie:FS20 Components|FS20 Komponenten]]&lt;br /&gt;
* [[:Kategorie:panStamp|panStamp Komponenten]]&lt;br /&gt;
* [[:Kategorie:HMS Components|HMS Komponenten]]&lt;br /&gt;
* [[:Kategorie:EMS Components|EMS Komponenten]]&lt;br /&gt;
* [[:Kategorie:FHT Components|FHT Komponenten]]&lt;br /&gt;
* [[:Kategorie:1-Wire|1-Wire System]]&lt;br /&gt;
* [[:Kategorie:EIB/KNX|EIB/KNX Komponenten]]&lt;br /&gt;
* [[:Kategorie:EnOcean Components|EnOcean Komponenten]]&lt;br /&gt;
* [[:Kategorie:HomeMatic Components|HomeMatic Komponenten]]&lt;br /&gt;
* [[:Kategorie:MAX|MAX! Komponenten]]&lt;br /&gt;
* [[:Kategorie:Z-Wave Components|Z-Wave Komponenten]]&lt;br /&gt;
* [[:Kategorie:IP Components|Geräte mit Webinterface (&amp;quot;IP&amp;quot;)]]&lt;br /&gt;
* [[:Kategorie:Other Components|Andere Komponenten / Sonstige Systeme]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;[[:Kategorie:Hardware|Alle Hardware-Kategorien]]&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; border-radius: 8px; padding:0 1em 1em 1em; background-color:#F8F8FF;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Ideen und Lösungen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[:Kategorie:Code_Snippets|Verschiedene kommentierte Lösungen und Code-Schnippsel]]&lt;br /&gt;
* [[:Kategorie:Examples|Beispielanwendungen - Hardwarelösungen - Fremdsystemanbindungen]]&lt;br /&gt;
* [[Anwendungsszenarien]]&lt;br /&gt;
* [[Trick der Woche|Tipp der Woche]]&lt;br /&gt;
* [[Wie kann ich...]]?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;[[:Kategorie:FHEM|Fhem-Haupt-Kategorien]]&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; border-radius: 8px; padding:0 1em 1em 1em; background-color:#FFFFE7;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Developers Corner&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[:DevelopmentModuleIntro|Development Module Introduction]]&lt;br /&gt;
* [[:DevelopmentGuidelinesAV|Development Guidelines AV-Module]]&lt;br /&gt;
* [[:How_to_write_a_patch|How to write a patch]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;[[:Kategorie:Development|Alle Artikel zu Development]]&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;55%&amp;quot; style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0;  border:1px solid #888888; border-radius: 8px; padding: 0em 1em 1em 1em; background-color:#d7ffff;height:14em;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;FHEMWiki News&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:small;height:10em;overflow:scroll;overflow-x:hidden;&amp;quot;&amp;gt;&amp;lt;small&amp;gt;{{FHEMWiki_News}}&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;Mehr [[FHEMWiki:News|News]]&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:1px solid #dfdfdf; border-radius: 8px; padding:0 1em 1em 1em; background-color:#F8F8FF;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Letzte Änderungen&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:small;color:black;&amp;quot;&amp;gt;&amp;lt;small&amp;gt;{{Special:Recentchanges/5}}&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;Mehr [[Special:Recentchanges|Änderungen]]&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Vorbereitung für &amp;quot;letzte 5 neuen Seiten&amp;quot; ... --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:1px solid #dfdfdf; border-radius: 8px; padding:0 1em 1em 1em; background-color:#FFFFAA;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die letzten fünf neuen Seiten&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;small&amp;gt;{{Special:NewPages/5}}&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;&#039;&#039;&#039;Mehr [[Special:NewPages|Neue Seiten]]&#039;&#039;&#039;&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ende von &amp;quot;Vorbereitung für ...&amp;quot; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:1px solid #dfdfdf; border-radius: 8px; padding:0 1em 1em 1em; background-color:#DDD68F;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Administratives zum Wiki&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Allgemeine Aktivitäten:&#039;&#039;&lt;br /&gt;
* Registrierung zur Mitarbeit: wende Dich bitte an einen [[FHEMWiki:Administratoren|Administrator]]&lt;br /&gt;
* Basiswissen über die Mitarbeit an einem Wiki erarbeiten ([http://de.wikipedia.org/wiki/Wikipedia:Beteiligen z.B. Wikipedia])&lt;br /&gt;
* Erweiterung und Korrektur von Artikeln, wo immer nötig&lt;br /&gt;
* Ein(ig)e der [[Spezial:Gewünschte Seiten|gewünschten Seiten]] erstellen &lt;br /&gt;
* Ideen aus dem [http://forum.fhem.de Forum] in bestehende oder neue Artikel einarbeiten&lt;br /&gt;
* [[Spezial:Verwaiste Seiten|verwaiste Seiten]] in sinnvoller Weise verlinken&lt;br /&gt;
* [[Spezial:Sackgassenseiten|Sackgassenseiten]] wikifizieren (Links auf andere Seiten einfügen)&lt;br /&gt;
* [[Datei:Info_red.png|20px]] &#039;&#039;&#039;Tips / Regeln / Hinweise auf &amp;quot;[[FHEMWiki:Über FHEMWiki|Über FHEMWiki]]&amp;quot; beachten!&#039;&#039;&#039; [[Datei:Info_red.png|20px]]&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
dieser Abschnitt sollte jetzt (hoffentlich) nicht mehr erforderlich sein&lt;br /&gt;
&#039;&#039;Sonderaktivitäten nach dem Festplattencrash auf dem Wiki-Server:&#039;&#039;&lt;br /&gt;
* Bereinigung von [[Spezial:Unbenutzte_Dateien|verwaisten Dateien]]; oft läßt schon der Dateiname Rückschlüsse auf die Seite zu, die diese Datei / dieses Bild verwenden sollte&lt;br /&gt;
* Überarbeiten von [[:Kategorie:Seiten mit defekten Dateilinks|Seiten mit defekten Dateilinks]]&lt;br /&gt;
* generell: aufmerksames Lesen der Artikel, da manche Dinge bei der automatisierten Datenrettung nicht vollständig wieder hergestellt werden konnten --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Aktivitäten für Administratoren:&#039;&#039;&lt;br /&gt;
* Sichten / Löschen von [[:Kategorie:Löschkandidaten|Löschkandidaten]]&lt;br /&gt;
* Vorschlag: Einrichten einer Seite, auf der Anfragen an Benutzer mit Admin-Rechten eingetragen werden können&lt;br /&gt;
* Beobachten der &amp;quot;Letzten Änderungen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Sonstiges:&#039;&#039;&lt;br /&gt;
* Zum Ausprobieren bitte die [[FHEMWiki:Sandbox]] benutzen&lt;br /&gt;
* [//meta.wikimedia.org/wiki/Help:Contents Wiki Benutzerhandbuch].&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Wiki-Konfigurationsvariablen]&lt;br /&gt;
* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [[FHEMWiki:Interna|Internes zu diesem Wiki]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_Programmierung&amp;diff=11818</id>
		<title>PanStamp Programmierung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_Programmierung&amp;diff=11818"/>
		<updated>2015-07-24T10:08:59Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp Programmierung}}&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
== Programmierung eines panStamp ==&lt;br /&gt;
&lt;br /&gt;
=== Installation panStick ===&lt;br /&gt;
Für die Installation des panStick unter Windows gibt es mehrere Möglichkeiten.&lt;br /&gt;
# Installiert man eine Arduino IDE, kann dabei auch der Treiber für den panStick mitinstalliert werden.&lt;br /&gt;
# Treiber von der offiziellen Homepage herunterladen und installieren [http://www.ftdichip.com/]. Die Treiber befinden sich ebenfalls im Unterordner drivers der Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
Bei der Installation kann es sein, dass kein Treiber gefunden wird. Dann muss der entsprechende Treiber manuell ausgewählt werden entsprechend dieser Anleitung [https://www.youtube.com/watch?v=SPdSKT6KdF8].&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.0.x vorbereiten ===&lt;br /&gt;
Zum Flashen der panStamps wird die Arduino IDE benötigt. Eine Installationsanleitung für Arduino IDE 1.0 ist unter folgendem Link zu finden:&lt;br /&gt;
:https://code.google.com/p/panstamp/wiki/firststeps&lt;br /&gt;
&lt;br /&gt;
Die IDE 1.5.x oder höher ist zwar mit den AVRs und NRGs kompatibel, wichtig zu wissen ist allerdings, dass mit dem Wechsel von 1.0.x zu 1.5.x oder höher es größere Änderungen der panStamp/SWAP Librarys gegeben hat. Dadurch lassen sich einige der bislang zur Verfügung stehenden Sketches (derzeit) nicht unter 1.5.x oder höher kompilieren (z.B. der RGBWW-Sketch). Für die IDE 1.0.x gibt es keine passenden Arduino Lib für den NRG [[https://github.com/panStamp/panstamp/wiki/First%20steps]], die daher nur mit den AVRs kompatibel sind. Im Folgenden wird sich für die Programmierung unter Windows daher auf die letzte 1.0.x IDE bezogen.&lt;br /&gt;
&lt;br /&gt;
* Man lädt die &#039;&#039;&#039;Arduino IDE 1.0.x&#039;&#039;&#039; für Windows [[http://arduino.cc/en/Main/OldSoftwareReleases]]. &lt;br /&gt;
* Für bestimmte Sketches müssen noch die entsprechenden Libs hinzugefügt werden (siehe [[panstamp#Sketch konfigurieren|explizite Anwendung]]).&lt;br /&gt;
* Unter &amp;lt;code&amp;gt;Tools/Board&amp;lt;/code&amp;gt; wird das &#039;&#039;&#039;passende Board&#039;&#039;&#039; ausgewählt, dass dem Chip auf dem PanStamp entspricht. Für den panStamp AVR: &amp;lt;code&amp;gt;Arduino Pro or Pro Mini (3,3V, 8 MHz) /w ATmega328&amp;lt;/code&amp;gt;. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert, kann man in der IDE auch direkt &amp;lt;code&amp;gt;panStamp&amp;lt;/code&amp;gt; als Plattform auswählen.&lt;br /&gt;
* Nun muss unter &amp;lt;code&amp;gt;Tools/Serieller Port&amp;lt;/code&amp;gt; noch der richtigen &#039;&#039;&#039;Com-Port&#039;&#039;&#039; auswählen werden, unter dem der panStick eingebunden worden ist (entsprechend Gerätemanager).&lt;br /&gt;
* Als letztes unter &amp;lt;code&amp;gt;Tools/&#039;&#039;&#039;Programmer&#039;&#039;&#039;&amp;lt;/code&amp;gt; noch den &amp;lt;code&amp;gt;AVRISPx mkII&amp;lt;/code&amp;gt; auswählen.&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.6.x vorbereiten ===&lt;br /&gt;
Eine Installationsanleitung für Arduino IDE 1.6.4 ist unter folgendem Link zu finden:&lt;br /&gt;
:https://github.com/panStamp/panstamp/wiki/Installing-panStamp-cores-and-libraries-for-Arduino&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sketch vorbereiten, kompilieren und hochladen ===&lt;br /&gt;
* Den Sketch lädt man von der entsprechenden Quelle und entpackt die Dateien in einen Unterordner z.B. parallel zum libraries-Ordner (unter &amp;quot;Eigene Dateien&amp;quot;). Der Ordner darf &#039;&#039;&#039;nicht im&#039;&#039;&#039; libraries-Ordner liegen, da die Arduino IDE dort das Speichern nicht zulässt. Innerhalb des Unterordners erwartet die IDE die Dateien in einen Unterordner namens &amp;quot;sketch&amp;quot;.&lt;br /&gt;
* sketch.ino oder ähnlich in der Arduino IDE öffnen.&lt;br /&gt;
* Nun entsprechend den Bedürfnissen auf dem geöffneten Reiter in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompilieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den panStamp laden.&lt;br /&gt;
&lt;br /&gt;
Bezüglich der Anpassung des Sketches sind einige spezifische Informationen unten bei den expliziten Anwendungen ergänzt.&lt;br /&gt;
&lt;br /&gt;
=== Hexfile hochladen mit XLoader ===&lt;br /&gt;
Um ein fertig kompiliertes HEX-File hochzuladen, soll dieses über ein Programm namens XLoader möglich sein. [[http://xloader.russemotto.com]]&lt;br /&gt;
&lt;br /&gt;
== unter Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Installation panStick ===&lt;br /&gt;
Zum einen kann es sein, dass der panStick automatisch unter /dev/ttyUSBx eingebunden wird. &amp;quot;x&amp;quot; steht für eine freie fortlaufende Nummer.&lt;br /&gt;
&lt;br /&gt;
Falls er nicht automatisch angelegt worden ist, kann man zunächst prüfen, ob dieser überhaupt eingebunden und richtig erkannt wurde.&lt;br /&gt;
 lsusb&lt;br /&gt;
Sollte etwas Ähnliches zurückmelden:&lt;br /&gt;
 Bus 003 Device 002: ID 0403:0000 Future Technology Devices International, Ltd H4SMK 7 Port Hub&lt;br /&gt;
&lt;br /&gt;
Falls das Device nicht automatisch angelegt worden ist, muss dieses ggf. von Hand erledigen. {{Link2Forum|Topic=12487 |Message=87746 }}&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehl sollte in der Liste ein  ttyUSB auftauchen. Normalerweise mit der Nummer 188.&lt;br /&gt;
 cat /proc/devices&lt;br /&gt;
&lt;br /&gt;
Das Device wird dann angelegt mit:&lt;br /&gt;
 sudo mknod /dev/ttyUSB0 c 188 0&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss für den Betrieb des panStick das ftdi_sio Modul zur Verfügung stehen. Dieses lässt sich prüfen mit&lt;br /&gt;
 lsmod&lt;br /&gt;
&lt;br /&gt;
Diese Voraussetzung könnte den Betrieb an einer Fritzbox erschweren, da nicht sicher ist, ob dieses Modul standardmäßig immer installiert ist.&lt;br /&gt;
&lt;br /&gt;
Legt man das Device von Hand an, kann es sein, dass die Berechtigungen nicht richtig gesetzt sind.&lt;br /&gt;
 2015.04.23 22:20:06 3: Opening panStick device /dev/ttyUSB0 &lt;br /&gt;
 2015.04.23 22:20:06 3: Can&#039;t open /dev/ttyUSB0: Permission denied&lt;br /&gt;
&lt;br /&gt;
Das Device sollte für die Gruppe dialout Lese-/Schreibberechtigungen haben.&lt;br /&gt;
Ist dieses nicht der Fall, lassen sich diese über diesen Befehlt setzen. Damit wird der &amp;quot;Besitzer&amp;quot; festgelegt.&lt;br /&gt;
 sudo chown root:dialout ttyUSBx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hiermit werden die Berechtigungen gesetzt.&lt;br /&gt;
 sudo chmod a+rw /dev/ttyUSBx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Benutzer &amp;quot;fhem&amp;quot; sollte selbstverständlich der Gruppe &amp;quot;dialout&amp;quot; angehören. Ist dieses nicht der Fall:&lt;br /&gt;
 sudo adduser fhem dialout&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls dem nicht so sein sollte, hilft ggf. einer dieser beiden Links weiter:&lt;br /&gt;
[[https://www.youtube.com/watch?v=UOECwHhCWRg]] [[http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/07/15/bbb--usb-io-with-ftdi-ft2232h]] bzw. die Installation des Moduls.&lt;br /&gt;
&lt;br /&gt;
=== IDE unter MacOS ===&lt;br /&gt;
&lt;br /&gt;
Da für den RGB-Sketch die IDE 1.0.x benötigt wird und diese Java SE 6 eine Voraussetzung ist, stellt die IDE und MacOS keine Optimale Konfigurationsumgebung dar. Wer es trotzdem probieren möchte&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82055 }}&lt;br /&gt;
&lt;br /&gt;
=== INO ===&lt;br /&gt;
Der RGB-Sketch wurde mit Hilfe des Tools INO entwickelt. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82139 }}&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt am leichtesten mit Hilfe des Tools pip.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen für das Tool sind darüber hinaus picocom für die Kommunikation mit der seriellen Schnittstelle und die Arduino. Im gleichen Zuge lässt sich pip installieren.&lt;br /&gt;
Die benötigten Pakete werden über folgenden Aufruf installiert&lt;br /&gt;
 sudo apt-get install picocom python-pip arduino&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt im Anschluss über&lt;br /&gt;
 sudo pip install ino&lt;br /&gt;
&lt;br /&gt;
Die für einen Sketch erforderlichen libs werden in den entsprechenden lib Ordner kopiert (dort in entsprechenden Unterordnern).&lt;br /&gt;
&lt;br /&gt;
Die Pfade im Zip sind an dieses Tool angepasst.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=94830 }}&lt;br /&gt;
&lt;br /&gt;
Der serielle Port in der ino.ini muss selbstverständlich an die passende dev-Schnittstelle angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Als letztes sind die Parameter für das Board noch in die board.txt unter /usr/share/arduino/hardware/arduino einzutragen. Die Parameter lassen sich von hier extrahieren [http://old.panstamp.com/downloads] bzw. lauten für den AVR&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##############################################################&lt;br /&gt;
&lt;br /&gt;
panstamp.name=PanStamp v2.0 (3.3V, 8 MHz) w/ ATmega328&lt;br /&gt;
&lt;br /&gt;
panstamp.upload.protocol=arduino&lt;br /&gt;
panstamp.upload.maximum_size=30720&lt;br /&gt;
panstamp.upload.speed=57600&lt;br /&gt;
&lt;br /&gt;
panstamp.bootloader.low_fuses=0xE2&lt;br /&gt;
panstamp.bootloader.high_fuses=0xD8&lt;br /&gt;
panstamp.bootloader.extended_fuses=0x07&lt;br /&gt;
panstamp.bootloader.path=atmega&lt;br /&gt;
panstamp.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex&lt;br /&gt;
panstamp.bootloader.unlock_bits=0x3F&lt;br /&gt;
panstamp.bootloader.lock_bits=0x0F&lt;br /&gt;
&lt;br /&gt;
panstamp.build.mcu=atmega328p&lt;br /&gt;
panstamp.build.f_cpu=8000000L&lt;br /&gt;
panstamp.build.core=arduino&lt;br /&gt;
panstamp.build.variant=standard&lt;br /&gt;
&lt;br /&gt;
##############################################################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen: Jedes Mal, wenn die Arduino ein Update erhält, wird vermutlich diese Datei überschrieben, so dass die Eintragung wiederholt werden muss.&lt;br /&gt;
&lt;br /&gt;
Hier sind die grundlegendsten Befehle beschrieben [http://inotool.org/quickstart].&lt;br /&gt;
&lt;br /&gt;
Wechselt man nun in das Verzeichnis z.B. des RGBdriver, lässt die der Sketch kompilieren über&lt;br /&gt;
 ino build&lt;br /&gt;
&lt;br /&gt;
Und hochladen über&lt;br /&gt;
sudo ino upload&lt;br /&gt;
&lt;br /&gt;
; Troubeshooting&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=134786 }}&lt;br /&gt;
&lt;br /&gt;
== over-the-air (derzeit) nur NRG ==&lt;br /&gt;
&lt;br /&gt;
Die neueren panStamp NRGs können seit einiger Zeit auch over-the-air geflasht werden, wie hier im zugehörigen Forumthread beschrieben [[http://forum.fhem.de/index.php/topic,30589.0.html]].&lt;br /&gt;
&lt;br /&gt;
== Was überlebt das Flashen==&lt;br /&gt;
Bestimmte Konfigurationen überstehen das Flashen, dieses sind zumindest Adresse und Intervall, die nicht neu gesetzt werden müssen [http://forum.fhem.de/index.php/topic,12487.msg87560.html#msg87560].&lt;br /&gt;
&lt;br /&gt;
== EEPROM löschen ==&lt;br /&gt;
Das EEPROM lässt sich komplett löschen, indem man in der setup() dieses hier einträgt [http://forum.fhem.de/index.php/topic,13890.msg156868.html#msg156868].&lt;br /&gt;
 eepromToFactoryDefaults()&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_Programmierung&amp;diff=11814</id>
		<title>PanStamp Programmierung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_Programmierung&amp;diff=11814"/>
		<updated>2015-07-24T09:42:34Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp Programmierung}}&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
== Programmierung eines panStamp ==&lt;br /&gt;
&lt;br /&gt;
=== unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Installation panStick ====&lt;br /&gt;
Für die Installation des panStick unter Windows gibt es mehrere Möglichkeiten.&lt;br /&gt;
# Installiert man eine Arduino IDE, kann dabei auch der Treiber für den panStick mitinstalliert werden.&lt;br /&gt;
# Treiber von der offiziellen Homepage herunterladen und installieren [[http://www.ftdichip.com/]]. Die Treiber befinden sich ebenfalls im Unterordner drivers der Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
Bei der Installation kann es sein, dass kein Treiber gefunden wird. Dann muss der entsprechende Treiber manuell ausgewählt werden entsprechend dieser Anleitung [[https://www.youtube.com/watch?v=SPdSKT6KdF8]].&lt;br /&gt;
&lt;br /&gt;
==== Arduino IDE vorbereiten ====&lt;br /&gt;
Zum Flashen der panStamps wird die Arduino IDE benötigt. Eine Installationsanleitung für Arduino IDE 1.0 ist unter folgendem Link zu finden:&lt;br /&gt;
:https://code.google.com/p/panstamp/wiki/firststeps&lt;br /&gt;
Eine Installationsanleitung für Arduino IDE 1.6.4 ist unter folgendem Link zu finden:&lt;br /&gt;
:https://github.com/panStamp/panstamp/wiki/Installing-panStamp-cores-and-libraries-for-Arduino&lt;br /&gt;
&lt;br /&gt;
Die IDE 1.5.x oder höher ist zwar mit den AVRs und NRGs kompatibel, wichtig zu wissen ist allerdings, dass mit dem Wechsel von 1.0.x zu 1.5.x oder höher es größere Änderungen der APIs gegeben hat. Dadurch lassen sich einige der bislang zur Verfügung stehenden Sketches (derzeit) nicht unter 1.5.x oder höher kompilieren (z.B. der RGB-Sketch). Für die IDE 1.0.x gibt es keine passenden Arduino Lib für den NRG [[https://github.com/panStamp/panstamp/wiki/First%20steps]], die daher nur mit den AVRs kompatibel sind. Im Folgenden wird sich für die Programmierung unter Windows daher auf die letzte 1.0.x IDE bezogen.&lt;br /&gt;
&lt;br /&gt;
* Man lädt die &#039;&#039;&#039;Arduino IDE 1.0.x&#039;&#039;&#039; für Windows [[http://arduino.cc/en/Main/OldSoftwareReleases]]. &lt;br /&gt;
&lt;br /&gt;
* Für bestimmte Sketches müssen noch die entsprechenden Libs hinzugefügt werden (siehe [[panstamp#Sketch konfigurieren|explizite Anwendung]]).&lt;br /&gt;
&lt;br /&gt;
* Unter Tools/Board wird das &#039;&#039;&#039;passende Board&#039;&#039;&#039; ausgewählt, dass dem Chip auf dem PanStamp entspricht. Für den AVR: Arduino Pro or Pro Mini (3,3V, 8 MHz) /w ATmega328. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert, kann man in der IDE auch direkt panStamp als Plattform auswählen.&lt;br /&gt;
&lt;br /&gt;
* Nun muss unter Tools/Serieller Port noch der richtigen &#039;&#039;&#039;Com-Port&#039;&#039;&#039; auswählen werden, unter dem der panStick eingebunden worden ist (entsprechend Gerätemanager).&lt;br /&gt;
&lt;br /&gt;
* Als letztes unter Tools/&#039;&#039;&#039;Programmer&#039;&#039;&#039; noch den AVRISP mkII auswählen.&lt;br /&gt;
&lt;br /&gt;
==== Sketch vorbereiten, kompilieren und hochladen ====&lt;br /&gt;
* Den Sketch lädt man von der entsprechenden Quelle und entpackt die Dateien in einen Unterordner z.B. parallel zum libraries-Ordner (unter &amp;quot;Eigene Dateien&amp;quot;). Der Ordner darf &#039;&#039;&#039;nicht im&#039;&#039;&#039; libraries-Ordner liegen, da die Arduino IDE dort das Speichern nicht zulässt. Innerhalb des Unterordners erwartet die IDE die Dateien in einen Unterordner namens &amp;quot;sketch&amp;quot;.&lt;br /&gt;
* sketch.ino oder ähnlich in der Arduino IDE öffnen.&lt;br /&gt;
* Nun entsprechend den Bedürfnissen auf dem geöffneten Reiter in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompilieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den panStamp laden.&lt;br /&gt;
&lt;br /&gt;
Bezüglich der Anpassung des Sketches sind einige spezifische Informationen unten bei den expliziten Anwendungen ergänzt.&lt;br /&gt;
&lt;br /&gt;
==== Hexfile hochladen mit XLoader ====&lt;br /&gt;
Um ein fertig kompiliertes HEX-File hochzuladen, soll dieses über ein Programm namens XLoader möglich sein. [[http://xloader.russemotto.com]]&lt;br /&gt;
&lt;br /&gt;
=== unter Linux === &lt;br /&gt;
&lt;br /&gt;
==== Installation panStick ====&lt;br /&gt;
Zum einen kann es sein, dass der panStick automatisch unter /dev/ttyUSBx eingebunden wird. &amp;quot;x&amp;quot; steht für eine freie fortlaufende Nummer.&lt;br /&gt;
&lt;br /&gt;
Falls er nicht automatisch angelegt worden ist, kann man zunächst prüfen, ob dieser überhaupt eingebunden und richtig erkannt wurde.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lsusb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sollte etwas Ähnliches zurückmelden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 002: ID 0403:0000 Future Technology Devices International, Ltd H4SMK 7 Port Hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls das Device nicht automatisch angelegt worden ist, muss dieses ggf. von Hand erledigen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87746 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87746.html#msg87746]&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehl sollte in der Liste ein  ttyUSB auftauchen. Normalerweise mit der Nummer 188.&lt;br /&gt;
&amp;lt;pre&amp;gt;cat /proc/devices&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Das Device wird dann angelegt mit:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mknod /dev/ttyUSB0 c 188 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss für den Betrieb des panStick das ftdi_sio Modul zur Verfügung stehen. Dieses lässt sich prüfen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;lsmod&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Voraussetzung könnte den Betrieb an einer Fritzbox erschweren, da nicht sicher ist, ob dieses Modul standardmäßig immer installiert ist.&lt;br /&gt;
&lt;br /&gt;
Legt man das Device von Hand an, kann es sein, dass die Berechtigungen nicht richtig gesetzt sind.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2015.04.23 22:20:06 3: Opening panStick device /dev/ttyUSB0 &lt;br /&gt;
2015.04.23 22:20:06 3: Can&#039;t open /dev/ttyUSB0: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Device sollte für die Gruppe dialout Lese-/Schreibberechtigungen haben.&lt;br /&gt;
Ist dieses nicht der Fall, lassen sich diese über diesen Befehlt setzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown root:dialout ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Damit wird der &amp;quot;Besitz&amp;quot; festgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod a+rw /dev/ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hiermit werden die Berechtigungen gesetzt.&lt;br /&gt;
&lt;br /&gt;
Der Benutzer &amp;quot;fhem&amp;quot; sollte selbstverständlich der Gruppe &amp;quot;dialout&amp;quot; angehören.&lt;br /&gt;
Ist dieses nicht der Fall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo adduser fhem dialout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls dem nicht so sein sollte, hilft ggf. einer dieser beiden Links weiter:&lt;br /&gt;
[[https://www.youtube.com/watch?v=UOECwHhCWRg]] [[http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/07/15/bbb--usb-io-with-ftdi-ft2232h]] bzw. die Installation des Moduls.&lt;br /&gt;
&lt;br /&gt;
==== IDE unter MacOS ====&lt;br /&gt;
&lt;br /&gt;
Da für den RGB-Sketch die IDE 1.0.x benötigt wird und diese Java SE 6 eine Voraussetzung ist, stellt die IDE und MacOS keine Optimale Konfigurationsumgebung dar. Wer es trotzdem probieren möchte&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82055 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82055.html#msg82055]&lt;br /&gt;
&lt;br /&gt;
==== INO ====&lt;br /&gt;
Der RGB-Sketch wurde mit Hilfe des Tools INO entwickelt. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82139 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82139.html#msg82139]&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt am leichtesten mit Hilfe des Tools pip.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen für das Tool sind darüber hinaus picocom für die Kommunikation mit der seriellen Schnittstelle und die Arduino. Im gleichen Zuge lässt sich pip installieren.&lt;br /&gt;
Die benötigten Pakete werden über folgenden Aufruf installiert&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install picocom python-pip arduino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt im Anschluss über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install ino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die für einen Sketch erforderlichen libs werden in den entsprechenden lib Ordner kopiert (dort in entsprechenden Unterordnern).&lt;br /&gt;
&lt;br /&gt;
Die Pfade im Zip sind an dieses Tool angepasst.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=94830 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg94830.html#msg94830]&lt;br /&gt;
&lt;br /&gt;
Der serielle Port in der ino.ini muss selbstverständlich an die passende dev-Schnittstelle angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Als letztes sind die Parameter für das Board noch in die board.txt unter /usr/share/arduino/hardware/arduino einzutragen. Die Parameter lassen sich von hier extrahieren [http://old.panstamp.com/downloads] bzw. lauten für den AVR&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##############################################################&lt;br /&gt;
&lt;br /&gt;
panstamp.name=PanStamp v2.0 (3.3V, 8 MHz) w/ ATmega328&lt;br /&gt;
&lt;br /&gt;
panstamp.upload.protocol=arduino&lt;br /&gt;
panstamp.upload.maximum_size=30720&lt;br /&gt;
panstamp.upload.speed=57600&lt;br /&gt;
&lt;br /&gt;
panstamp.bootloader.low_fuses=0xE2&lt;br /&gt;
panstamp.bootloader.high_fuses=0xD8&lt;br /&gt;
panstamp.bootloader.extended_fuses=0x07&lt;br /&gt;
panstamp.bootloader.path=atmega&lt;br /&gt;
panstamp.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex&lt;br /&gt;
panstamp.bootloader.unlock_bits=0x3F&lt;br /&gt;
panstamp.bootloader.lock_bits=0x0F&lt;br /&gt;
&lt;br /&gt;
panstamp.build.mcu=atmega328p&lt;br /&gt;
panstamp.build.f_cpu=8000000L&lt;br /&gt;
panstamp.build.core=arduino&lt;br /&gt;
panstamp.build.variant=standard&lt;br /&gt;
&lt;br /&gt;
##############################################################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen: Jedes Mal, wenn die Arduino ein Update erhält, wird vermutlich diese Datei überschrieben, so dass die Eintragung wiederholt werden muss.&lt;br /&gt;
&lt;br /&gt;
Hier sind die grundlegendsten Befehle beschrieben [http://inotool.org/quickstart].&lt;br /&gt;
&lt;br /&gt;
Wechselt man nun in das Verzeichnis z.B. des RGBdriver, lässt die der Sketch kompilieren über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ino build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und hochladen über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ino upload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Troubeshooting&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=134786 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg134786.html#msg134786]&lt;br /&gt;
&lt;br /&gt;
=== over-the-air (derzeit) nur NRG ===&lt;br /&gt;
&lt;br /&gt;
Die neueren panStamp NRGs können seit einiger Zeit auch over-the-air geflasht werden, wie hier im zugehörigen Forumthread beschrieben [[http://forum.fhem.de/index.php/topic,30589.0.html]].&lt;br /&gt;
&lt;br /&gt;
=== Was überlebt das Flashen===&lt;br /&gt;
Bestimmte Konfigurationen überstehen das Flashen, dieses sind zumindest Adresse und Intervall, die nicht neu gesetzt werden müssen [http://forum.fhem.de/index.php/topic,12487.msg87560.html#msg87560].&lt;br /&gt;
&lt;br /&gt;
=== EEPROM löschen ===&lt;br /&gt;
Das EEPROM lässt sich komplett löschen, indem man in der setup() dieses hier einträgt [http://forum.fhem.de/index.php/topic,13890.msg156868.html#msg156868].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_Programmierung&amp;diff=11812</id>
		<title>PanStamp Programmierung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_Programmierung&amp;diff=11812"/>
		<updated>2015-07-24T09:42:00Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: TeeVau verschob die Seite Programmierung eines panStamp nach PanStamp Programmierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
== Programmierung eines panStamp ==&lt;br /&gt;
&lt;br /&gt;
=== unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Installation panStick ====&lt;br /&gt;
Für die Installation des panStick unter Windows gibt es mehrere Möglichkeiten.&lt;br /&gt;
# Installiert man eine Arduino IDE, kann dabei auch der Treiber für den panStick mitinstalliert werden.&lt;br /&gt;
# Treiber von der offiziellen Homepage herunterladen und installieren [[http://www.ftdichip.com/]]. Die Treiber befinden sich ebenfalls im Unterordner drivers der Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
Bei der Installation kann es sein, dass kein Treiber gefunden wird. Dann muss der entsprechende Treiber manuell ausgewählt werden entsprechend dieser Anleitung [[https://www.youtube.com/watch?v=SPdSKT6KdF8]].&lt;br /&gt;
&lt;br /&gt;
==== Arduino IDE vorbereiten ====&lt;br /&gt;
Zum Flashen der panStamps wird die Arduino IDE benötigt. Eine Installationsanleitung für Arduino IDE 1.0 ist unter folgendem Link zu finden:&lt;br /&gt;
:https://code.google.com/p/panstamp/wiki/firststeps&lt;br /&gt;
Eine Installationsanleitung für Arduino IDE 1.6.4 ist unter folgendem Link zu finden:&lt;br /&gt;
:https://github.com/panStamp/panstamp/wiki/Installing-panStamp-cores-and-libraries-for-Arduino&lt;br /&gt;
&lt;br /&gt;
Die IDE 1.5.x oder höher ist zwar mit den AVRs und NRGs kompatibel, wichtig zu wissen ist allerdings, dass mit dem Wechsel von 1.0.x zu 1.5.x oder höher es größere Änderungen der APIs gegeben hat. Dadurch lassen sich einige der bislang zur Verfügung stehenden Sketches (derzeit) nicht unter 1.5.x oder höher kompilieren (z.B. der RGB-Sketch). Für die IDE 1.0.x gibt es keine passenden Arduino Lib für den NRG [[https://github.com/panStamp/panstamp/wiki/First%20steps]], die daher nur mit den AVRs kompatibel sind. Im Folgenden wird sich für die Programmierung unter Windows daher auf die letzte 1.0.x IDE bezogen.&lt;br /&gt;
&lt;br /&gt;
* Man lädt die &#039;&#039;&#039;Arduino IDE 1.0.x&#039;&#039;&#039; für Windows [[http://arduino.cc/en/Main/OldSoftwareReleases]]. &lt;br /&gt;
&lt;br /&gt;
* Für bestimmte Sketches müssen noch die entsprechenden Libs hinzugefügt werden (siehe [[panstamp#Sketch konfigurieren|explizite Anwendung]]).&lt;br /&gt;
&lt;br /&gt;
* Unter Tools/Board wird das &#039;&#039;&#039;passende Board&#039;&#039;&#039; ausgewählt, dass dem Chip auf dem PanStamp entspricht. Für den AVR: Arduino Pro or Pro Mini (3,3V, 8 MHz) /w ATmega328. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert, kann man in der IDE auch direkt panStamp als Plattform auswählen.&lt;br /&gt;
&lt;br /&gt;
* Nun muss unter Tools/Serieller Port noch der richtigen &#039;&#039;&#039;Com-Port&#039;&#039;&#039; auswählen werden, unter dem der panStick eingebunden worden ist (entsprechend Gerätemanager).&lt;br /&gt;
&lt;br /&gt;
* Als letztes unter Tools/&#039;&#039;&#039;Programmer&#039;&#039;&#039; noch den AVRISP mkII auswählen.&lt;br /&gt;
&lt;br /&gt;
==== Sketch vorbereiten, kompilieren und hochladen ====&lt;br /&gt;
* Den Sketch lädt man von der entsprechenden Quelle und entpackt die Dateien in einen Unterordner z.B. parallel zum libraries-Ordner (unter &amp;quot;Eigene Dateien&amp;quot;). Der Ordner darf &#039;&#039;&#039;nicht im&#039;&#039;&#039; libraries-Ordner liegen, da die Arduino IDE dort das Speichern nicht zulässt. Innerhalb des Unterordners erwartet die IDE die Dateien in einen Unterordner namens &amp;quot;sketch&amp;quot;.&lt;br /&gt;
* sketch.ino oder ähnlich in der Arduino IDE öffnen.&lt;br /&gt;
* Nun entsprechend den Bedürfnissen auf dem geöffneten Reiter in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompilieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den panStamp laden.&lt;br /&gt;
&lt;br /&gt;
Bezüglich der Anpassung des Sketches sind einige spezifische Informationen unten bei den expliziten Anwendungen ergänzt.&lt;br /&gt;
&lt;br /&gt;
==== Hexfile hochladen mit XLoader ====&lt;br /&gt;
Um ein fertig kompiliertes HEX-File hochzuladen, soll dieses über ein Programm namens XLoader möglich sein. [[http://xloader.russemotto.com]]&lt;br /&gt;
&lt;br /&gt;
=== unter Linux === &lt;br /&gt;
&lt;br /&gt;
==== Installation panStick ====&lt;br /&gt;
Zum einen kann es sein, dass der panStick automatisch unter /dev/ttyUSBx eingebunden wird. &amp;quot;x&amp;quot; steht für eine freie fortlaufende Nummer.&lt;br /&gt;
&lt;br /&gt;
Falls er nicht automatisch angelegt worden ist, kann man zunächst prüfen, ob dieser überhaupt eingebunden und richtig erkannt wurde.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lsusb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sollte etwas Ähnliches zurückmelden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 002: ID 0403:0000 Future Technology Devices International, Ltd H4SMK 7 Port Hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls das Device nicht automatisch angelegt worden ist, muss dieses ggf. von Hand erledigen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87746 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87746.html#msg87746]&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehl sollte in der Liste ein  ttyUSB auftauchen. Normalerweise mit der Nummer 188.&lt;br /&gt;
&amp;lt;pre&amp;gt;cat /proc/devices&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Das Device wird dann angelegt mit:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mknod /dev/ttyUSB0 c 188 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss für den Betrieb des panStick das ftdi_sio Modul zur Verfügung stehen. Dieses lässt sich prüfen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;lsmod&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Voraussetzung könnte den Betrieb an einer Fritzbox erschweren, da nicht sicher ist, ob dieses Modul standardmäßig immer installiert ist.&lt;br /&gt;
&lt;br /&gt;
Legt man das Device von Hand an, kann es sein, dass die Berechtigungen nicht richtig gesetzt sind.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2015.04.23 22:20:06 3: Opening panStick device /dev/ttyUSB0 &lt;br /&gt;
2015.04.23 22:20:06 3: Can&#039;t open /dev/ttyUSB0: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Device sollte für die Gruppe dialout Lese-/Schreibberechtigungen haben.&lt;br /&gt;
Ist dieses nicht der Fall, lassen sich diese über diesen Befehlt setzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown root:dialout ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Damit wird der &amp;quot;Besitz&amp;quot; festgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod a+rw /dev/ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hiermit werden die Berechtigungen gesetzt.&lt;br /&gt;
&lt;br /&gt;
Der Benutzer &amp;quot;fhem&amp;quot; sollte selbstverständlich der Gruppe &amp;quot;dialout&amp;quot; angehören.&lt;br /&gt;
Ist dieses nicht der Fall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo adduser fhem dialout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls dem nicht so sein sollte, hilft ggf. einer dieser beiden Links weiter:&lt;br /&gt;
[[https://www.youtube.com/watch?v=UOECwHhCWRg]] [[http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/07/15/bbb--usb-io-with-ftdi-ft2232h]] bzw. die Installation des Moduls.&lt;br /&gt;
&lt;br /&gt;
==== IDE unter MacOS ====&lt;br /&gt;
&lt;br /&gt;
Da für den RGB-Sketch die IDE 1.0.x benötigt wird und diese Java SE 6 eine Voraussetzung ist, stellt die IDE und MacOS keine Optimale Konfigurationsumgebung dar. Wer es trotzdem probieren möchte&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82055 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82055.html#msg82055]&lt;br /&gt;
&lt;br /&gt;
==== INO ====&lt;br /&gt;
Der RGB-Sketch wurde mit Hilfe des Tools INO entwickelt. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82139 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82139.html#msg82139]&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt am leichtesten mit Hilfe des Tools pip.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen für das Tool sind darüber hinaus picocom für die Kommunikation mit der seriellen Schnittstelle und die Arduino. Im gleichen Zuge lässt sich pip installieren.&lt;br /&gt;
Die benötigten Pakete werden über folgenden Aufruf installiert&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install picocom python-pip arduino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt im Anschluss über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install ino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die für einen Sketch erforderlichen libs werden in den entsprechenden lib Ordner kopiert (dort in entsprechenden Unterordnern).&lt;br /&gt;
&lt;br /&gt;
Die Pfade im Zip sind an dieses Tool angepasst.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=94830 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg94830.html#msg94830]&lt;br /&gt;
&lt;br /&gt;
Der serielle Port in der ino.ini muss selbstverständlich an die passende dev-Schnittstelle angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Als letztes sind die Parameter für das Board noch in die board.txt unter /usr/share/arduino/hardware/arduino einzutragen. Die Parameter lassen sich von hier extrahieren [http://old.panstamp.com/downloads] bzw. lauten für den AVR&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##############################################################&lt;br /&gt;
&lt;br /&gt;
panstamp.name=PanStamp v2.0 (3.3V, 8 MHz) w/ ATmega328&lt;br /&gt;
&lt;br /&gt;
panstamp.upload.protocol=arduino&lt;br /&gt;
panstamp.upload.maximum_size=30720&lt;br /&gt;
panstamp.upload.speed=57600&lt;br /&gt;
&lt;br /&gt;
panstamp.bootloader.low_fuses=0xE2&lt;br /&gt;
panstamp.bootloader.high_fuses=0xD8&lt;br /&gt;
panstamp.bootloader.extended_fuses=0x07&lt;br /&gt;
panstamp.bootloader.path=atmega&lt;br /&gt;
panstamp.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex&lt;br /&gt;
panstamp.bootloader.unlock_bits=0x3F&lt;br /&gt;
panstamp.bootloader.lock_bits=0x0F&lt;br /&gt;
&lt;br /&gt;
panstamp.build.mcu=atmega328p&lt;br /&gt;
panstamp.build.f_cpu=8000000L&lt;br /&gt;
panstamp.build.core=arduino&lt;br /&gt;
panstamp.build.variant=standard&lt;br /&gt;
&lt;br /&gt;
##############################################################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen: Jedes Mal, wenn die Arduino ein Update erhält, wird vermutlich diese Datei überschrieben, so dass die Eintragung wiederholt werden muss.&lt;br /&gt;
&lt;br /&gt;
Hier sind die grundlegendsten Befehle beschrieben [http://inotool.org/quickstart].&lt;br /&gt;
&lt;br /&gt;
Wechselt man nun in das Verzeichnis z.B. des RGBdriver, lässt die der Sketch kompilieren über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ino build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und hochladen über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ino upload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Troubeshooting&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=134786 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg134786.html#msg134786]&lt;br /&gt;
&lt;br /&gt;
=== over-the-air (derzeit) nur NRG ===&lt;br /&gt;
&lt;br /&gt;
Die neueren panStamp NRGs können seit einiger Zeit auch over-the-air geflasht werden, wie hier im zugehörigen Forumthread beschrieben [[http://forum.fhem.de/index.php/topic,30589.0.html]].&lt;br /&gt;
&lt;br /&gt;
=== Was überlebt das Flashen===&lt;br /&gt;
Bestimmte Konfigurationen überstehen das Flashen, dieses sind zumindest Adresse und Intervall, die nicht neu gesetzt werden müssen [http://forum.fhem.de/index.php/topic,12487.msg87560.html#msg87560].&lt;br /&gt;
&lt;br /&gt;
=== EEPROM löschen ===&lt;br /&gt;
Das EEPROM lässt sich komplett löschen, indem man in der setup() dieses hier einträgt [http://forum.fhem.de/index.php/topic,13890.msg156868.html#msg156868].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Diskussion:PanStamp&amp;diff=11811</id>
		<title>Diskussion:PanStamp</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Diskussion:PanStamp&amp;diff=11811"/>
		<updated>2015-07-24T09:41:01Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: /* Schritte der Inbetriebnahme */  Inhalt in Artikel panStamp (Systemübersicht) übernommen.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
&#039;&#039;&#039;Anmerkung für die hier vorgeschlagene Änderung des Hauptartikels&#039;&#039;&#039;&lt;br /&gt;
Während ich mich mit dem Thema vertraut gemacht habe, habe ich versucht, alle Informationen, die aus non-developer Sicht für die spätere Anwendung und Inbetriebnahme relevanten Informationen (also aus meiner ;) ) wichtig erscheinen, hier in einem Artikel zusammenfassen. Ich muss gestehen, bis ich meine ersten Panstamps am Laufen hatte, musste ich viel lesen und der derzeitige Artikel setzt mM recht viel Wissen voraus (alles eine Frage des Wissensstandes).&lt;br /&gt;
Die Inhalte des derzeitigen Artikels habe ich übernommen und einfließen lassen, d.h. es ist geplant, die derzeitige Seite zu ersetzen!&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel sind alle Posts bis heute (14.04.2015) aus den beiden Threads {{Link2Forum|Topic=12487 |Message=74967 |LinkText=Thema: panStamp support }} und {{Link2Forum|Topic=13890 |Message=86952 |LinkText=Thema: PanStamp Board RGB,CW,WW;DMX;IR }} berücksichtigt.&lt;br /&gt;
&lt;br /&gt;
Da viele Informationen vor allen Dingen aus der Zeit der Entwicklung der Module und der Sketches stammen, bitte ich Euch, hier kritisch quer zu lesen, das geschriebene zu prüfen, ob noch aktuell und ggf. zu korrigieren, zu ergänzen oder im Forum konstruktiv zu kommentieren.&lt;br /&gt;
&lt;br /&gt;
Dinge, die mir unklar waren, da noch nicht getestet oder Dinge, die noch näherer beschrieben werden können, habe ich mit &amp;quot;?&amp;quot; bzw. &amp;quot;TBC&amp;quot; gekennzeichnet.&lt;br /&gt;
----&lt;br /&gt;
: Hallo, wie ist denn der Stand mit dem Artikel? Finde es schade, dass das gesammelte Know-how hier nur auf der Diskussionsseite zu finden ist. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 12:07, 15. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{SEITENTITEL:panStamp}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V (panStick: 5V USB)&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery (panStick: USB)&lt;br /&gt;
|HWSize=17.7 x 30.5 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Fehlerkontrolle, Formatierung, Ergänzung, Bestätigung des Geschriebenen, weitere Informationen zur Erstellung/Anpassung eines Device Description Files, Bestätigung des Hochladens mittels XLoader, Bedienung in FHEMWEB(RGB-Board/Sketch)}}&lt;br /&gt;
&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
==== panStamp mit Antenne ====&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Ardunio IDE oder mit dem ino Kommandozeilen Binary programmieren.&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp in Betrieb zu nehmen muss er unbedingt mit einer Antenne oder einem stück Draht in der [https://code.google.com/p/panstamp/wiki/antennalengths richtigen Länge] bestückt sein. Ohne Antenne funktioniert die Übertragung nicht. Auch nicht auf kurze Distanzen.&lt;br /&gt;
&lt;br /&gt;
Mittlerweile gibt es zwei verschiedene panStamps (AVR und NRG), von denen der NRG neuer und etwas mehr Features zur Verfügung stellt, allerdings (noch) nicht mit allen hier beschriebenen Projekten kompatibel ist.&lt;br /&gt;
&lt;br /&gt;
==== Panstick oder Panshield ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Als Schnittstelle zwischen Server-Hardware und einem panStamp dient entweder ein panStick (USB Stick mit Sockel zum aufstecken eines panStamp) oder ein &amp;quot;panStamp Shield&amp;quot; mit integriertem panStamp an einem Raspberry Pi. Der Panstick stellt dabei die Verbindung zwischen dem USB-Port auf der einen Seite und dem seriellen Interface des Panstamps auf der anderen Seite dar. Ein Panshield übernimmt die gleiche Funktion, wird aber direkt an die IOs eines Raspberries angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Der Panstick wird grundsätzlich für zwei Aufgaben benötigt:&lt;br /&gt;
# Für die Vorbereitung eines panStamps für den Betrieb auf einem &amp;quot;Board&amp;quot; wird der neue panStamp in den Panstick gesteckt, um die Programmierung (flashen des Sketch) vorzunehmen.&lt;br /&gt;
# Im &amp;quot;normalen&amp;quot; Betrieb steckt ein panStamp auf ihm. Der so angebundene panStamp wird mit einem (bei Auslieferung des PanStamps vorinstallierten) Modem-Sketch als RF Modem verwendet und dient so dem Rechner als Interface zu anderen panStamps, zu denen über eine Funkstrecke mittels des SWAP-Protokolls kommuniziert wird.&lt;br /&gt;
&lt;br /&gt;
Da auf dem panStamp Shield der panStamp fest eingelötet ist, übernimmt dieser in der Regel nur die zweite Funktion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStick]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:10, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== spezifisches &amp;quot;Board&amp;quot; ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
: Im Gegenzug zum Panstick als Interface zwischen panStamp und USB-Port des Servers stellt das Board das Interface zwischen panStamp vor Ort und Input/Outputs (analog/digital) dar. Das &amp;quot;Board&amp;quot; nimmt den panStamp mit dem passenden Sketch auf und setzt die Outputs des panStamps auf die Ausgänge um bzw. leitet die Eingänge zur Auswertung an den panStamp weiter.&lt;br /&gt;
: Entsprechend Anwendungsfall und Sketch werden die Ein-/Ausgänge des panStamps verarbeitet. Z.B. können an ein Board Temperatur-, Feuchtigkeitssensoren oder LED-Strips angeschlossen werden. Der Sketch auf dem panStamp sollte entsprechend der Anwendung auf dem Board angepasst worden sein um nicht nur über die standardmäßig zur Verfügung stehenden Register kommunizieren zu müssen.&lt;br /&gt;
&lt;br /&gt;
: Das Board benötigt irgend eine Art von Stromversorgung, um den panStamp zu betreiben. Das kann im Falle eines Sensorboards und entsprechend stromsparend ausgelegtem Sketch eine Batterie sein oder wie im Falle des RGB-Boards eine externe Stromversorgung. &lt;br /&gt;
: Speziell beim unten beschriebenen RGB-Board kann die Stromversorgung sogar separat für panStamp und LEDs ausgeführt sein oder ingesamt panStamp und LEDs gemeinsam versorgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Simple Wireless Abstract Protocol (SWAP) ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zur Kommunikation in einem panStamp Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([http://code.google.com/p/panstamp/wiki/SWAP SWAP]).&lt;br /&gt;
Die komplette SWAP- Kommunikation ist registerbasiert und erfolgt mit Nachrichten um diese Register abzufragen, zu setzen und deren Inhalt zu senden. Alle Register lassen sich lesen, manche auch beschreiben.&lt;br /&gt;
Der panStamp Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;.&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Modem-Sketch ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStick]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Der Modem-Sketch stellt das Software-Verbindungsglied zwischen panStamp und Funksignal dar, dass an andere panStamps geht. &lt;br /&gt;
&lt;br /&gt;
Auf jedem panStamp (AVR, NRG?) ist im Auslieferungszustand der Modem-Sketch installiert. Das Protokoll der Funkstrecke folgt dem SWAP-Protokoll.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStick]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== auf Board abgestimmter Sketch ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Ein panStamp ist auf einem entsprechenden Board installiert und übernimmt dort lokal die Schnittstelle zwischen Funkstrecke und Board. &lt;br /&gt;
&lt;br /&gt;
Der Sketch stellt dabei die passende &amp;quot;Software&amp;quot; auf dem panStamp. Der Sketch verarbeitet die über das SWAP-Protokoll versandte Nachrichten, wertet diese aus, reagiert entsprechend und setzt die Outputs des Boards. In umgekehrter Richtung wertet er die an den Inputs des Board angelegten Signale aus, verarbeitet diese und schickt sie per SWAP-Protokoll zum Panstamp mit Modem-Sketch zurück.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Module  und Description File ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Die Integration in FHEM erfolgt über eine Reihe von Modulen die im folgenden genauer beschrieben werden. Zusammengefasst gibt es 3 Ebenen mit der Ergänzung eines Konfigurationsfiles in xml-format.&lt;br /&gt;
{{Link2Forum|Topic= 13890 |Message=121689 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg121689.html#msg121689]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 1: 34_panStamp.pm =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Modul ist für einen panStamp der auf einem panStick sitzt und das Interface zwischen FHEM und dem panStamp netz bildet. Alle eintreffenden SWAP-Pakete auf dem panStick (mit Modem-Sketch) werden direkt durchgereicht und im nachfolgend beschriebenen SWAP-Modul verarbeitet.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 2: 34_SWAP.pm =====&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005-detail.png|mini|hochkant=2.5|Readings]]&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Modul implementiert das SWAP protokoll das zwischen den panStamps gesprochen wird. Das SWAP Modul ermöglicht die generische Integration beliebiger panStamp Sensoren und Aktoren in FHEM.&lt;br /&gt;
&lt;br /&gt;
Bei SWAP geht alle Komunikation über &#039;register&#039;, dies sind unterschiedlich lange Werte die entweder nur gelesen oder gelesen und geschrieben werden können. Jedes device hat eine Reihe System register (00-0A) und beliebig viele user register die vom jeweiligen Sketch abängen. Welche Register dies sind, steht unter anderem jeweils im Device Description xml file im Verzeichnis .../FHEM/lib/SWAP.&lt;br /&gt;
&lt;br /&gt;
In den System Registern steht z.b. der productcode, die device adresse und das Übertragungsintervall. Konfigurierbare register werden im EEPROM gesichert und die Werte gehen auch beim Neustart nicht verloren. Beim aller ersten Starten ist das EEPROM mit &amp;quot;FF&amp;quot; initialisiert und alle konfigurierbaren register haben diesen Wert. also z.b. Adresse FF und Intervall FFFF (HEX in Sekunden, das wären dann zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Inhalte der System Register stehen als internal values im oberen Bereich der Detail Ansicht einer Komponente in FHEM, die user register als readings im unteren.&lt;br /&gt;
&lt;br /&gt;
Alle low level Dinge wie Register id oder Register Wert können mit hex werten direkt angepasst werden. Im Normalbetrieb ist dieses aber nicht notwendig und es kann über &#039;vereinfachte&#039; Kommandos mit den register namen verwenden kann. Diese Funktionalität stellt das eines der Module zur Verfügung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 08 &amp;lt;netzwerk id als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87436 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87436#msg87436]&lt;br /&gt;
&lt;br /&gt;
Dieses Modul stellt unter anderem folgende grundlegende Funktionalitäten zur Verfügung&lt;br /&gt;
* Es wird eine command Liste für Devices im power down Modus gehalten. Sobald das Device online kommt werden die Kommandos automatisch übertragen.&lt;br /&gt;
* Die userReadings für &#039;menschenlesbare&#039; Readings werden anhand des device description files automatisch erzeugt&lt;br /&gt;
* Es ist jetzt möglich direkt endpoints (teile eines registers) zu schreiben (???)&lt;br /&gt;
* (Fast) keine hardkodierte Sonderbehandlung mehr für das RGB-Board. Das SWAP Modul kann mit jedem beliebige Swap Device umgehen.&lt;br /&gt;
* Es gibt eine dritte (optionale) Modulschicht neben dem panStamp modul für die Hardware und dem SWAP Modul für das Protokoll. Mit dem generellen SWAP Modul lasen sich alle SWAP devices &#039;zu fuss&#039; über die register ansprechen. Um die register auf einer höheren Ebene auf FHEM Kommandos wie on/off/on-for-timer zu mappen ist dann diese dritte schicht zuständig. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=78502 }} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic=12487.msg78502#msg78502]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 3: SWAP_XXXXXXXXXXXXXXXX.pm =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[paNStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Besonders bei Aktoren ist oft eine engere FHEM-Integration sinnvoll, um FHEM Konzepte wie on/off/on-for-timer direkt abzubilden und nicht mehr nur auf die Registerebene und regSet und regGet Kommandos beschränkt zu sein.&lt;br /&gt;
Mit dieser dritten Modulebene ist es auch für Aktore wie Schalter/Dimmer/... sehr einfach, diese in FHEM zu integrieren. &lt;br /&gt;
&lt;br /&gt;
Wenn die Namenskonvention SWAP_&amp;lt;ProductCode&amp;gt; für diese Module eingehalten wird, funktioniert auch das autocreate sofern das Modul in FHEM bekannt ist.&lt;br /&gt;
&lt;br /&gt;
Um per autocreate automatisch das passende Modul laden zu können, müssen diese Module nach dem Schema SWAP_XXXXXXXXXXXXXXXX.pm benannt sein wobei XXXXXXXXXXXXXXXX für den jeweiligen productCode steht.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für das RGB-Board dafür ist das Modul 35_SWAP_0000002200000003.pm.&lt;br /&gt;
[[Datei:SWAP_0000002200000003.png|mini|rechts|hochkant=2.5|RGB LED Driver Board]]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Device Description File =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Mit Hilfe der im jeweiligen Device Description File hinterlegten Beschreibung werden hierzu automatisch userReadings angelegt die neben den reinen Registerwerten in hex auch &#039;menschenlesbare&#039; readings der Sensorwerte erzeugen. &lt;br /&gt;
Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier Beispielhaft anhand eines BMP085 Temperatur- und Luftdrucksensors dargestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress userReadings voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, temperature:0C.0-Temperature {hex(ReadingsVal($name,&amp;quot;0C.0-Temperature&amp;quot;,&amp;quot;0&amp;quot;))*0.1-50}, pressure:0C.1-Pressure {hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01}, pressureNN:0C.1-Pressure {sprintf(&amp;quot;%.2f&amp;quot;,hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01 + AttrVal(&amp;quot;global&amp;quot;, &amp;quot;altitude&amp;quot;, 0)/8.5)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005.png|mini|hochkant=2.5|Resultat eines stateFormat]]&lt;br /&gt;
Aus diesen readings kann dann mit stateFormat die gewünschte Darstellung für die Raumübersicht erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress stateFormat {sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;temperature&amp;quot;,0)).&amp;quot;°C &amp;quot;.sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;pressureNN&amp;quot;,0)).&amp;quot;mbar&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel ist das Description File für das RGB-Board rgbdriver.xml.&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Systemübersicht ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zum besseren Verständnis der Begrifflichkeiten und Zusammenhänge ist hier eine Systemübersicht dargestellt.&lt;br /&gt;
[[Datei:Panstamp-Systemoverview.jpg|200px|thumb|panStamp Systemübersicht]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=75980 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg75980#msg75980]&lt;br /&gt;
&lt;br /&gt;
Die Kommunikationskette ist wie folgt:&lt;br /&gt;
FHEM -&amp;gt; Host-hardware/OS -&amp;gt; USB -&amp;gt; Panstick -&amp;gt; panStamp (Modem-Sketch) -&amp;gt; Funkstrecke (SWAP) -&amp;gt; panStamp (angepasster Sketch) -&amp;gt; Board -&amp;gt; Sensoren/LED-Strip/etc.&lt;br /&gt;
&lt;br /&gt;
(Ein Panshield ersetzt &amp;quot;USB -&amp;gt; Panstick&amp;quot; durch &amp;quot;IO&#039;s am Rpi-&amp;gt; Panshield&amp;quot;)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt übernommen in Artikel [[panStamp]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:50, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Schritte der Inbetriebnahme ==&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Beispiel für Kurzentschlossene anhand der Einrichtung für das RGB-Board:&lt;br /&gt;
&lt;br /&gt;
* Ein panStamp wird in einen Panstick gesteckt und der Panstick für die Programmierung z.B. unter Windows installiert. Selbstverständlich kann ein panStamp auch über diverse andere Möglichkeiten und unter diversen anderen Betriebssystemen und über diverse andere Schnittstellen programmiert werden.&lt;br /&gt;
* Arduino IDE vorbereiten (libs hinzufügen, Board auswählen, etc.).&lt;br /&gt;
* Ein Sketch wird in der Arduino IDE entsprechend konfiguriert, kompiliert und auf den panStamp hochgeladen.&lt;br /&gt;
* Der programmierte panStamp aus dem Panstick in das RGB-Board stecken.&lt;br /&gt;
* Einen panStamp mit Modem-Sketch in den Panstick stecken und an den FHEM-Host stecken.&lt;br /&gt;
* panStamp unter FHEM einrichten, wenn nicht durch autocreate automatisch geschehen.&lt;br /&gt;
* RGB-Board mit Strom versorgen und ggf. einmal Reset-Knopf drücken. Dann sollte, falls autocreate aktiv ist, der panStamp automatisch eingerichtet werden.&lt;br /&gt;
* SWAP-Device in FHEM an Gegebenheiten anpassen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[PanStamp (Systemübersicht)]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:41, 24. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Programmierung eines panStamps ==&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
=== unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Installation Panstick ====&lt;br /&gt;
Für die Installation des Pansticks unter Windows gibt es mehrere Möglichkeiten.&lt;br /&gt;
# Installiert man eine Arduino IDE, kann dabei auch der Treiber für den Panstick mitinstalliert werden.&lt;br /&gt;
# Treiber von der offiziellen Homepage herunterladen und installieren [[http://www.ftdichip.com/]]. Die Treiber befinden sich ebenfalls im Unterordner drivers der Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
Bei der Installation kann es sein, dass kein Treiber gefunden wird. Dann muss der entsprechende Treiber manuell ausgewählt werden entsprechend dieser Anleitung [[https://www.youtube.com/watch?v=SPdSKT6KdF8]].&lt;br /&gt;
&lt;br /&gt;
==== Arduino IDE vorbereiten ====&lt;br /&gt;
&lt;br /&gt;
Zum Flashen der panStamps wird die Arduino IDE benötigt. Eine Installationsanleitung ist unter folgendem Link zu finden:&lt;br /&gt;
:https://code.google.com/p/panstamp/wiki/firststeps&lt;br /&gt;
&lt;br /&gt;
Die IDE 1.5.x oder höher ist zwar mit den AVRs und NRGs kompatibel, wichtig zu wissen ist allerdings, dass mit dem Wechsel von 1.0.x zu 1.5.x oder höher es größere Änderungen der APIs gegeben hat. Dadurch lassen sich einige der bislang zur Verfügung stehenden Sketches (derzeit) nicht unter 1.5.x oder höher kompilieren (z.B. der RGB-Sketch). Für die IDE 1.0.x gibt es keine passenden Arduino Lib für den NRG [[https://github.com/panStamp/panstamp/wiki/First%20steps]], die daher nur mit den AVRs kompatibel sind. Im Folgenden wird sich für die Programmierung unter Windows daher auf die letzte 1.0.x IDE bezogen.&lt;br /&gt;
&lt;br /&gt;
* Man läd die &#039;&#039;&#039;Arduino IDE 1.0.x&#039;&#039;&#039; für Windows [[http://arduino.cc/en/Main/OldSoftwareReleases]]. &lt;br /&gt;
&lt;br /&gt;
* Für bestimmte Sketches müssen noch die entsprechenden Libs hinzugefügt werden (siehe [[panstamp#Sketch konfigurieren|explizite Anwendung]]).&lt;br /&gt;
&lt;br /&gt;
* Unter Tools/Board wird das &#039;&#039;&#039;passende Board&#039;&#039;&#039; ausgewählt, dass dem Chip auf dem Panstamp entspricht. Für den AVR: Arduino Pro or Pro Mini (3,3V, 8 MHz) /w ATmega328. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert, kann man in der IDE auch direkt panStamp als Plattform auswählen.&lt;br /&gt;
&lt;br /&gt;
* Nun muss unter Tools/Serieller Port noch der richtigen &#039;&#039;&#039;Com-Port&#039;&#039;&#039; auswählen werden, unter dem der Panstick eingebunden worden ist (entsprechend Gerätemanager).&lt;br /&gt;
&lt;br /&gt;
* Als letztes unter Tools/&#039;&#039;&#039;Programmer&#039;&#039;&#039; noch den AVRISP mkII auswählen.&lt;br /&gt;
&lt;br /&gt;
==== Sketch vorbereiten, kompilieren und hochladen ====&lt;br /&gt;
&lt;br /&gt;
* Den Sketch läd man von der entsprechenden Quelle und entpackt die Dateien in einen Unterordner z.B. parallel zum libraries-Ordner (unter &amp;quot;Eigene Dateien&amp;quot;). Der Ordner darf &#039;&#039;&#039;nicht im&#039;&#039;&#039; libraries-Ordner liegen, da die Arduino IDE dort das Speichern nicht zulässt. Innerhalb des Unterordners erwartet die IDE die Dateien in einen Unterordner namens &amp;quot;sketch&amp;quot;.&lt;br /&gt;
* sketch.ino oder ähnlich in der Arduino IDE öffnen.&lt;br /&gt;
* Nun entsprechend den Bedürfnissen auf dem geöffneten Reiter in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
Bezüglich der Anpassung des Sketches sind einige spezifische Informationen unten bei den expliziten Anwendungen ergänzt.&lt;br /&gt;
&lt;br /&gt;
==== Hexfile hochladen mit XLoader ====&lt;br /&gt;
Um ein fertig kompiliertes HEX-File hochzuladen, soll dieses über ein Programm namens XLoader möglich sein. [[http://xloader.russemotto.com]]&lt;br /&gt;
&lt;br /&gt;
=== unter Linux === &lt;br /&gt;
&lt;br /&gt;
==== Installation Panstick ====&lt;br /&gt;
&lt;br /&gt;
Zum einen kann es sein, dass der Panstick automatisch unter /dev/ttyUSBx einbunden wird. &amp;quot;x&amp;quot; steht für eine freie fortlaufende Nummer.&lt;br /&gt;
&lt;br /&gt;
Falls er nicht automatisch angelegt worden ist, kann man zunächst prüfen, ob dieser überhaupt eingebunden und richtig erkannt wurde.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lsusb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sollte etwas ähnliches zurückmelden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 002: ID 0403:0000 Future Technology Devices International, Ltd H4SMK 7 Port Hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls das Device nicht automatisch angelegt worden ist, muss dieses ggf. von Hand erledigen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87746 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87746.html#msg87746]&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehl sollte in der Liste ein  ttyUSB auftauchen. Normalerweise mit der Nummer 188.&lt;br /&gt;
&amp;lt;pre&amp;gt;cat /proc/devices&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Das Device wird dann angelegt mit:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mknod /dev/ttyUSB0 c 188 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss für den Betrieb des Pansticks das ftdi_sio Modul zur Verfügung stehen. Dieses lässt sich prüfen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;lsmod&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Voraussetzung könnte den Betrieb an einer Fritzbox erschweren, da nicht sicher ist, ob dieses Modul standardmäßig immer installiert ist.&lt;br /&gt;
&lt;br /&gt;
Legt man das Device von Hand an, kann es sein, dass die Berechtigungen nicht richtig gesetzt sind.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2015.04.23 22:20:06 3: Opening panStick device /dev/ttyUSB0 &lt;br /&gt;
2015.04.23 22:20:06 3: Can&#039;t open /dev/ttyUSB0: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Device sollte für die Gruppe dialout Lese-/Schreibberechtigungen haben.&lt;br /&gt;
Ist dieses nicht der Fall, lassen sich diese über diesen Befehlt setzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown root:dialout ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Damit wird der &amp;quot;Besitz&amp;quot; festgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod a+rw /dev/ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hiermit werden die Berechtigungen gesetzt.&lt;br /&gt;
&lt;br /&gt;
Der Benutzer &amp;quot;fhem&amp;quot; sollte selbstverständlich der Gruppe &amp;quot;dialout&amp;quot; angehören.&lt;br /&gt;
Ist dieses nicht der Fall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo adduser fhem dialout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls dem nicht so sein sollte, hilft ggf. einer dieser beiden Links weiter:&lt;br /&gt;
[[https://www.youtube.com/watch?v=UOECwHhCWRg]] [[http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/07/15/bbb--usb-io-with-ftdi-ft2232h]] bzw. die Installation des Moduls.&lt;br /&gt;
&lt;br /&gt;
==== IDE unter MacOS ====&lt;br /&gt;
&lt;br /&gt;
Da für den RGB-Sketch die IDE 1.0.x benötigt wird und diese Java SE 6 eine Voraussetzung ist, stellt die IDE und MacOS keine Optimale Konfigurationsumgebung dar. Wer es trotzdem probieren möchte&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82055 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82055.html#msg82055]&lt;br /&gt;
&lt;br /&gt;
==== INO ====&lt;br /&gt;
Der RGB-Sketches wurde mit Hilfe des Tools INO entwickelt. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82139 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82139.html#msg82139]&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt am leichtesten mit Hilfe des Tools pip.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen für das Tool sind darüber hinaus picocom für die Kommunikation mit der seriellen Schnittstelle und die arduino. Im gleichen Zuge lässt sich pip installieren.&lt;br /&gt;
Die benötigten Pakete werden über folgenden Aufruf installiert&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install picocom python-pip arduino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt im Anschluss über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install ino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die für einen Sketch erforderlichen libs werden in den entsprechenden lib Ordner kopiert (dort in entsprechenden Unterordnern).&lt;br /&gt;
&lt;br /&gt;
Die Pfade im Zip sind an dieses Tool angepasst.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=94830 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg94830.html#msg94830]&lt;br /&gt;
&lt;br /&gt;
Der serielle Port in der ino.ini muss selbstverständlich an die passende dev-Schnittstelle angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Als letztes sind die Parameter für das Board noch in die board.txt unter /usr/share/arduino/hardware/arduino einzutragen. Die Parameter lassen sich von hier extrahieren [http://old.panstamp.com/downloads] bzw. lauten für den AVR&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##############################################################&lt;br /&gt;
&lt;br /&gt;
panstamp.name=PanStamp v2.0 (3.3V, 8 MHz) w/ ATmega328&lt;br /&gt;
&lt;br /&gt;
panstamp.upload.protocol=arduino&lt;br /&gt;
panstamp.upload.maximum_size=30720&lt;br /&gt;
panstamp.upload.speed=57600&lt;br /&gt;
&lt;br /&gt;
panstamp.bootloader.low_fuses=0xE2&lt;br /&gt;
panstamp.bootloader.high_fuses=0xD8&lt;br /&gt;
panstamp.bootloader.extended_fuses=0x07&lt;br /&gt;
panstamp.bootloader.path=atmega&lt;br /&gt;
panstamp.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex&lt;br /&gt;
panstamp.bootloader.unlock_bits=0x3F&lt;br /&gt;
panstamp.bootloader.lock_bits=0x0F&lt;br /&gt;
&lt;br /&gt;
panstamp.build.mcu=atmega328p&lt;br /&gt;
panstamp.build.f_cpu=8000000L&lt;br /&gt;
panstamp.build.core=arduino&lt;br /&gt;
panstamp.build.variant=standard&lt;br /&gt;
&lt;br /&gt;
##############################################################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen: Jedes Mal, wenn die Arduino ein Update erhält, wird vermutlich diese Datei überschrieben, so dass die Eintragung wiederholt werden muss.&lt;br /&gt;
&lt;br /&gt;
Hier sind die grundlegendsten Befehle beschrieben [http://inotool.org/quickstart].&lt;br /&gt;
&lt;br /&gt;
Wechselt man nun in das Verzeichnis z.B. des RGBdriver, lässt die der Sketch kompilieren über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ino build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und hochladen über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ino upload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Troubeshooting&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=134786 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg134786.html#msg134786]&lt;br /&gt;
&lt;br /&gt;
=== over-the-air (derzeit) nur NRG ===&lt;br /&gt;
&lt;br /&gt;
Die neueren panStamp NRGs können seit einiger Zeit auch over-the-air geflasht werden, wie hier im zugehörigen Forumthread beschrieben [[http://forum.fhem.de/index.php/topic,30589.0.html]].&lt;br /&gt;
&lt;br /&gt;
=== Was überlebt das Flaschen ===&lt;br /&gt;
Bestimmte Konfigurationen überstehen das Flashen, dieses sind zumindest Adresse und Intervall, die nicht neu gesetzt werden müssen [http://forum.fhem.de/index.php/topic,12487.msg87560.html#msg87560].&lt;br /&gt;
&lt;br /&gt;
=== EEPROM löschen ===&lt;br /&gt;
&lt;br /&gt;
Das EEPROM lässt sich komplett löschen, indem man in der setup() dieses hier einträgt [http://forum.fhem.de/index.php/topic,13890.msg156868.html#msg156868].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[Programmierung eines panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:36, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Integration in FHEM ==&lt;br /&gt;
=== FHEM Voraussetzungen ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Für den Betrieb ist XML:Simple notwendig, dass bei Bedarf folgendermaßen nachinstalliert werden kann [http://forum.fhem.de/index.php?topic=12487.msg87373#msg87373].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Abhängigkeit kann beim Betrieb auf einer Fritzbox ebenfalls zu Problemen führen.&lt;br /&gt;
&amp;lt;/strike&amp;gt; Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Pfade innerhalb der FHEM Installation ====&lt;br /&gt;
&lt;br /&gt;
Die Module befinden sich wie gewohnt im Installationsverzeichnis unter ./FHEM.&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das entsprechende Device Description File liegt unter ./FHEM/lib/SWAP wie hier beschrieben [http://forum.fhem.de/index.php/topic,12487.msg86257.html#msg86257].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Register ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (00-0A) [http://code.google.com/p/panstamp/wiki/SWAPregisters] und beliebig viele sketchabängige Userregister (0B-)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Description Files&#039;&#039;. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Description File erfolgt über den productCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt-Id&#039;&#039; gebildet wird.&lt;br /&gt;
&lt;br /&gt;
In den Systemregistern steht z.&amp;amp;nbsp;B. der productCode, die Deviceadresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert, so dass die Werte auch bei einem Neustart nicht verlorengehen. Beim ersten Starten eines panStamp ist das EEPROM mit FF initialisiert und alle konfigurierbaren Register haben diesen Wert, also z.&amp;amp;nbsp;B. die Adresse FF und das Intervall FFFF (zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Systemregister werden in der Device Detailansicht bei den InternalValues im oberen Bereich angezeigt und die User-Register als reading im unteren Bereich.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen productCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Verwendung innerhalb FHEM ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]] [[panStick]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zu unterscheiden ist die Definition des &amp;quot;Panstick&amp;quot;, wobei der panStamp, der als RF-Modem auf dem Panstick sitzt, gemeint ist. Dieser wird im Folgenden mit &amp;quot;Panstick&amp;quot; als Name des Device benannt . Der Type ist &amp;quot;panstamp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Auf der anderen Seite gibt es die Definition der panStamps, die lokal auf den entsprechenden Boards stecken. Diese sind vom Type SWAP_&amp;lt;ProductCode&amp;gt;. Um die Verwirrung komplett zu machen, wird hier meistens vom &amp;quot;panStamps&amp;quot; gesprochen, obwohl es eigentlich SWAP-Devices sind. Für diese werden hier nur die allgemeinen Grundfunktionen beschrieben, die bei jedem SWAP-Device funktionieren. Die spezifischen Komandos und Attribute, die durch die 3. Modulebene in Abhängigkeit des Productcode zur Verfügung stehen, werden bei den spezifischen Anwendungen beschrieben. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[panStamp]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Panstick ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
===== Definition =====&lt;br /&gt;
Das Device &amp;quot;Panstick&amp;quot; wird derzeit (01.05.2015) nicht durch autocreate angelegt. Daher muss er manuell entsprechend folgendem Befehl angelegt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define panStick panStamp /dev/ttyUSBx@38400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Schnittstelle muss entsprechend der Installation des Pansticks anzupassen werden. Für die Einrichtung des Pansticks innerhalb des OS siehe [[panstamp#unter Linux|Installation Panstick]]&lt;br /&gt;
&lt;br /&gt;
Dieses panStamp Device versucht dann alle panStamps im Netz zu finden und per autocreate anzulegen, wenn dieses aktiv sind.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Betrieb an der FB&#039;&#039;&#039;&lt;br /&gt;
Spezialitäten zum Betrieb an einer Fritzbox sind hier [http://forum.fhem.de/index.php/topic,12487.msg87778.html#msg87778] und hier [http://forum.fhem.de/index.php/topic,12487.msg95914.html#msg95914] beschrieben. Es scheint nur der hintere USB-Anschluss für die Verwendung zu laufen. Außerdem muss der USB-Fernaschluss deaktiviert sein.&lt;br /&gt;
&lt;br /&gt;
===== Attribute =====&lt;br /&gt;
&lt;br /&gt;
Für den &amp;quot;Panstick&amp;quot; gibt es keine modulspezifischen Attribute.&lt;br /&gt;
&lt;br /&gt;
===== Set =====&lt;br /&gt;
&lt;br /&gt;
* discover?&lt;br /&gt;
Mit diesem Befehl wird eine Broadcast SWAP-Message abgesetzt, die alle empfangenden panStamps dazu veranlassen, sich zu melden. Batteriebetriebenen panStamps können systembedingt nur identifiziert werden, wenn diese Empfangsbereit sind und sich nicht im Schlafmodus befinden.&lt;br /&gt;
&lt;br /&gt;
* raw&lt;br /&gt;
Ist der Panstick ersteinmal eingerichtet und meldet &amp;quot;Initialized&amp;quot;, kann über das panStick device direkt eine raw Message abgesetzt werden. Diese ist zur Zeit eigentlich immer eine SWAP Nachricht wie z.b. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set panStick raw 00010000010000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel wird ein broadcast an alle abgesetzt, damit diese ihre ID und ihren productcode zurück senden.&lt;br /&gt;
Das macht der panStick nach dem Initialisieren auch ein mal automatisch um alle nicht schlafenden Devices per autocreate anlegen zu können.&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl &amp;quot;raw&amp;quot; lassen sich SWAP-Messages direkt absetzten, was vor allen Dingen dann hilfreich sein kann, wenn man vermutet, dass die Kommunikation über die modulgestützten Befehle fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 20:05, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== SWAP ====&lt;br /&gt;
&lt;br /&gt;
Alle empfangen SWAP Nachrichten werden in internals/readings im jeweiligen Device angezeigt.&lt;br /&gt;
&lt;br /&gt;
===== Definition =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Info: Das SWAP Modul unterstützt autocreate. Bei der Inbetriebnahme sollte autocreate aktiviert sein, da dies die Einrichtung deutlich vereinfacht.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn der panStick läuft, sollten die SWAP-Devices per autocreate angelegt werden, sobald sie das erste mal senden, z.B. nach dem Einschalten oder nach einem Reset.&lt;br /&gt;
&lt;br /&gt;
Normalerweise werden beim autocreate alle Werte abgefragt und angezeigt. Das geht normalerweise ohne jedes Zutun. &lt;br /&gt;
&lt;br /&gt;
Panstick rein -&amp;gt; broadcast -&amp;gt; discovery -&amp;gt; anlegen. &lt;br /&gt;
&lt;br /&gt;
Bei Devices mit power down mode erfolgt dieses das erste mal wenn sie Strom haben. &lt;br /&gt;
&lt;br /&gt;
Alle panStamps durchlaufen beim Starten eine bestimmte Einschaltsequenz. Sie melden sich mit ihrer ID und ihrem productcode. Die ID ist die device Addresse und bei einem frisch geflashten panStamp in der Regel FF. Das SWAP Modul versucht, ein Device mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern.&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, sonst haben mehrere die gleiche Addresse und das gibt Konflikte. &lt;br /&gt;
&lt;br /&gt;
Wer mehrere devices hat, sollte jedem nach dem Anlegen mit &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eine eigene id zuweisen. Die landen auf dem panStamp im EEPROM und sind auch nach Neustart noch vorhanden. &lt;br /&gt;
&lt;br /&gt;
Die anderen Adressen sind wie folgt belegt:&lt;br /&gt;
* 00 ist die Broadcast-ID&lt;br /&gt;
* 01 ist die ID des Pansticks am FHEM-System&lt;br /&gt;
* FF ist die Default ID, die jeder panStamp im Auslieferungszustand besitzt&lt;br /&gt;
* F0-FE sind die IDs, auf die autocreate die Adresse automatisch ändert, wenn ein neuer mit der ID FF erkannt wird und kein entsprechender Device-Name definiert ist.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87261 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87261#msg87261]&lt;br /&gt;
&lt;br /&gt;
Ändert man die Adresse, dauert es einen Augenblick, bis alle Register neu übertragen worden sind. &lt;br /&gt;
&lt;br /&gt;
Autocreate ändert bei der Einrichtung und Änderung der ID auch automatisch den Namen. Belässt man die ID im Bereich F0-FE und ändert den Namen des Device, ist zu berücksichtigen, dass autocreate für neue Devices eine freie neue Adresse anhand der Device-Namen sucht. Dadurch könnte es zu Doppeltverwendung von IDs kommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ zum autocreate kann man ein Device auch von Hand anlegen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define &amp;lt;device&amp;gt; SWAP &amp;lt;ID&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bis allerdings der Productcode nicht per Attribut hinterlegt ist, was bei autocreate ebenfalls automatisch geschied, funktionieren nur die grundlegenden Funktionen bis zur 2. Modulebene.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== set =====&lt;br /&gt;
&#039;&#039;ZUGEFÜGT ZU SWAP ARTIKEL, STRIKE FUNKTIONIERT ABER IN DIESEM ABSATZ NICHT&#039;&#039;&lt;br /&gt;
Ist ein SWAP-Device definiert, stehen folgende set-Befehle zur Verfügung:&lt;br /&gt;
* regGet &amp;lt;reg&amp;gt;&lt;br /&gt;
Fragt den Wert des Registers mit der id &amp;lt;reg&amp;gt; ab. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87679 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87679.html#msg87679]&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
Schreibt &amp;lt;data&amp;gt; in den Register mit der id &amp;lt;reg&amp;gt;. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt;.&amp;lt;ep&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
write &amp;lt;data&amp;gt; to endpoint &amp;lt;ep&amp;gt; of register &amp;lt;reg&amp;gt;. will not work if no reading for register &amp;lt;reg&amp;gt; is available as all nibbles that are not part of endpoint &amp;lt;ep&amp;gt; will be filled from this reading. ?&lt;br /&gt;
&lt;br /&gt;
* statusRequest&lt;br /&gt;
Veranlasst, dass alle Register und deren Werte einmal übertragen werden.&lt;br /&gt;
&lt;br /&gt;
* readDeviceXML&lt;br /&gt;
Liest das Device-Description-XML-File neu ein.&lt;br /&gt;
&lt;br /&gt;
* clearUnconfirmed&lt;br /&gt;
Löscht die liste der unbestätigten Nachrichten.&lt;br /&gt;
&lt;br /&gt;
* flash [&amp;lt;productCode&amp;gt;|&amp;lt;firmwareFile&amp;gt;]&lt;br /&gt;
Initiiert das „over-the-air“ Firmware update, dass (derzeit) nur von NRG panStamps unterstützt wird.&lt;br /&gt;
* ohne Parameter: Verwendet das SWAP_&amp;lt;current productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
* &amp;lt;productCode&amp;gt;: Verwendet das SWAP_&amp;lt;productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
* &amp;lt;firmwareFile&amp;gt;: Verwendet ein &amp;lt;firmwareFile&amp;gt; als absoluten File-Namen des HEX-Files.&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== get =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* regList&lt;br /&gt;
Listet alle User-Register des SWAP-Device (Readings). &lt;br /&gt;
&lt;br /&gt;
* regListAll&lt;br /&gt;
Listet alle Register des SWAP-Device (Internals und Readings). &lt;br /&gt;
&lt;br /&gt;
* listUnconfirmed&lt;br /&gt;
Listet alle unbestätigten Nachrichten in der Warteschlange.&lt;br /&gt;
&lt;br /&gt;
* products&lt;br /&gt;
Gibt alle auf dem System bekannten Productcodes nebst Daten aus.&lt;br /&gt;
&lt;br /&gt;
* deviceXML&lt;br /&gt;
Gibt die Daten des zum derzeit zum per Attribut (Productcode) eingerichteten Device-XML-Files aus.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Attribute =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Wird der Productcode bei der Definition nicht gesetzt, stehen auch nur die Standardbefehle bei zur 2. Modulebene zur Verfügung. &lt;br /&gt;
&lt;br /&gt;
* createUnknownReadings&lt;br /&gt;
Erzeug Readings auch für Register, die im Device-XML-File nicht definiert werden.&lt;br /&gt;
&lt;br /&gt;
* ProductCode&lt;br /&gt;
Legt den ProductCode eines SWAP-Device fest. Dieses Attribut wird dazu benutzt, die Konfiguration vom Device-XML-File festzulegen. &lt;br /&gt;
Erst wenn der Produktcode als Attribut vorgegeben wurde, z.B. für einen RGB-Sktech:&lt;br /&gt;
attr &amp;lt;device&amp;gt; ProductCode 0000002200000003&lt;br /&gt;
kommen zu den allgemeinen Kommandos die spezifischen der nächst höheren Modulebene 35_SWAP_&amp;lt;productcode&amp;gt;.pm mit hinzu. Dann werden die SWAP-Nachrichten an das entsprechende Modul weitergegeben und dort verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices, die während der Definition nicht aktiv sind, muss dieses Attribut manuell angelegt werden.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== SWAP_&amp;lt;ProductCode&amp;gt; ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Ist bei einem SWAP-Device das Attribut Productcode gesetzt, wird die SWAP-Nachricht an das entsprechende Modul der 3. Ebene weitergegeben und dort verarbeitet. Die spezifischen Kommandos und Attribute sind bei den entsprechenden [[panstamp#Explizite Anwendungen|Anwendungen]] näher beschrieben.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Intervall bei Sketch mit power down / batterie betriebene Panstamps ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Devices mit power down mode durchlaufen beim Einschalten oder bei einem Reset eine 3 Sekunden Schleife und warten auf Kommandos, dann werden normaler Weise die Register mit den Sensorwerten gesendet und die normale Loop gestartet. power down devices gehen danach schlafen und wachen regelmässig auf um ihre Werte zu senden.&lt;br /&gt;
Alternativ zum Intervall kann man den Resetknopf drücken, wenn man sie nicht im Zugriff hat. &lt;br /&gt;
&lt;br /&gt;
Nachrichten an ein Device im power-down-state werden gepuffert und dann an das Device geschickt, sobald dieses sich im SYNC status befindet. Dieses ist typischer Weise nach dem Startup z.B. nach einem Reset der Fall.&lt;br /&gt;
&lt;br /&gt;
Bei batteriebetriebenen Sensoren sollte das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87409}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87409#msg87409]&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices (genauer: Devices die den Power-Down-Modus unterstützen) wird das Default Sendeintervall bei der Einrichtung automatisch von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden = 15 Minuten) geändert.&lt;br /&gt;
&lt;br /&gt;
Das Intervall wird nur automatisch gesetzt, wenn pwrdownmode im device description file true ist.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=89205}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg89205.html#msg89205]&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg157125#msg157125]&lt;br /&gt;
&lt;br /&gt;
Es gibt mit bestimmten panStamp lib Versionen das Problem das ein Wert von FFFF in 0A zum Überlauf führt und dann ununterbrochen gesendet wird. Im fhem Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen host systemen (z.B. FritzBox) nicht, weil der panStamp so schnell sendet, dass fhem so mit dem Abarbeiten beschäftigt ist, dass es selber nicht zum senden kommt.&lt;br /&gt;
Zur Abhilfe kann im sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden und noch mal flashen. Wenn der Sketch damit ein mal durchgelaufen ist können diese beiden Zeilen wieder entfernen und der panStamp noch mal geflasht.&lt;br /&gt;
&lt;br /&gt;
Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87859}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87859.html#msg87859]&lt;br /&gt;
&lt;br /&gt;
Für Devices im Power-Down-Modus werden diese Kommandos in eine Warteschlange gestellt und übertragen, sobald das Device seine Initialisierungssequenz durchläuft. Hierzu ist nach Absetzen der Kommandos Reset zu drücken oder die Stromquelle erneut zu verbinden.&lt;br /&gt;
&lt;br /&gt;
Die automatisch vergebenen Adressen sind im Bereich F0-FE. d.h. eigentlich auch nur temporär und sollten auf eine lokal passende geändert werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87919}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87919.html#msg87919]&lt;br /&gt;
&lt;br /&gt;
Im Log sollte etwas in dieser Art auftauchen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:14:29 2: autocreate: define SWAP_F0 SWAP FF 000000010000000E&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP_F0: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP SWAP_F0: changing 09-DeviceAddress from default FF to F0&lt;br /&gt;
2013.07.29 20:14:30 3: SWAP SWAP_F0: changing 0A-PeriodicTxInterval from default FFFF to 0384 (900 seconds)&lt;br /&gt;
&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:16:35 2: autocreate: define SWAP_F1 SWAP_0000002200000003 FF 0000002200000003&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP_F1: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:16:36 3: SWAP SWAP_F1: changing 09-DeviceAddress from default FF to F1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
==== Verschlüsselung ====&lt;br /&gt;
&lt;br /&gt;
Die Aktivierung der Verschlüsselung für die Kommunikation zwischen panStamp und panStick ist hier beschrieben, scheint allerdings derzeit noch nicht eingecheckt zu sein (Stand 01.05.2015).&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133040}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133040.html#msg133040]&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=139341}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg139341.html#msg139341]&lt;br /&gt;
&lt;br /&gt;
=== Trouble Shooting ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
==== value has to be 10 byte(s) in size  ====&lt;br /&gt;
&lt;br /&gt;
Es besteht die Möglichkeit, dass die Internals aus irgend einem Grund nicht vollständig sind. &lt;br /&gt;
Abhilfe in einem solchen Falle kann das Absetzen der folgenden beiden Befehlt schaffen&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
set &amp;lt;device&amp;gt; readDeviceXML&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht zum Erfolg führt, hilft ggf. ein Löschen und neu setzen des ProductCode Attributs.&lt;br /&gt;
{{Link2Forum|Topic=34474.0}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=34474.0]&lt;br /&gt;
&lt;br /&gt;
Das Übertragen aller Daten nach dem Statusrequest kann einen Augenblick dauern.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit:&lt;br /&gt;
Die Fehlermeldung kommt immer wenn FHEM nicht weiss welche Firmware auf dem device ist. Das passiert wenn irgendetwas in der Kommunikation schief geht während FHEM initialisiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122414}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122414.html#msg122414]&lt;br /&gt;
&lt;br /&gt;
==== register 0F is not known ====&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=84257}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg84257.html#msg84257]&lt;br /&gt;
&lt;br /&gt;
==== Komplette Übersicht eines Device ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list &amp;lt;device&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201467}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201467#msg201467]&lt;br /&gt;
&lt;br /&gt;
==== fehlender oder falsche Productcode ====&lt;br /&gt;
&lt;br /&gt;
Fehlt der Productcode, werden die zum Sketch zugehörigen Befehle nicht angezeigt und die Register nicht korrekt zugeordnet.&lt;br /&gt;
Verändert man den Productcode, sollte man im Anschluss folgenden Befehlt absetzten, um alle Register neu auszulesen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201910}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201910#msg201910]&lt;br /&gt;
&lt;br /&gt;
==== missing commands und register 00-0A unvollständig ====&lt;br /&gt;
&lt;br /&gt;
Wenn in den Internals missing commands (SWAP_Sent_unconfirmed) auftauchen und ggf. die Register 00-0A nicht vollständig sind und das Internal &amp;quot;channels&amp;quot; nicht vorhanden ist, gibt es irgendein Kommunikationsproblem.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201939}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201939#msg201939]&lt;br /&gt;
&lt;br /&gt;
==== Funktion des Autocreate ====&lt;br /&gt;
&lt;br /&gt;
Beim autocreate wird versucht ein Name für das Device zu vergeben, der zur nächsten freien Adresse passt. Während dieses Prozessen bleibt die Adresse erst mal trozdem FF. Erst wenn das Device angelegt wird, kann versucht werden automatisch die Adresse zu setzen, hoffentlich auf die gleiche freie, die beim Namen auch schon gefunden wurde. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=88110}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg88110.html#msg88110]&lt;br /&gt;
&lt;br /&gt;
==== Adresse manuell setzen ====&lt;br /&gt;
&lt;br /&gt;
Um die Adresse manuell bereits in den Sketch einzubauen kann man wie hier beschrieben vorgehen.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122347}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122347.html#msg122347]&lt;br /&gt;
&lt;br /&gt;
==== Panstamp antwortet nicht/EEprom to factory defaults ====&lt;br /&gt;
&lt;br /&gt;
Wenn der panStamp nicht antwortet, kann es sein das die Adressen durcheinander gekommen sind. Dann musst man einmal in setup() ein  eepromToFactoryDefaults() aufrufen und damit flashen. Wenn damit einmal gestartet wurde, die Zeile wieder entfernen und den normalen sketch flashen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121677}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg121677#msg121677]&lt;br /&gt;
&lt;br /&gt;
==== Undefined subroutine &amp;amp;main::XMLin ====&lt;br /&gt;
Erhält man diese Fehlermeldung&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Undefined subroutine &amp;amp;main::XMLin called at ./FHEM/34_SWAP.pm line 108.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.09.26 11:34:24 0: ERROR: Cannot autoload SWAP&lt;br /&gt;
2013.09.26 11:34:24 3: panStick: Unknown code 000A001B000A000000000100000007, help me!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es fehlt XML::Simple, was folgendermaßen installiert werden kann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Factory Defaults ====&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp auf den Auslieferungszustand zurückzusetzen, muss man beim Sketch folgendes in die setup() Routine einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg157125#msg157125]&lt;br /&gt;
&lt;br /&gt;
==== Status LED ====&lt;br /&gt;
&lt;br /&gt;
Die Status LED auf dem Board wird in der config.h deaktiviert, indem man die Zeit #define LED_DEBUG mit &amp;quot;//&amp;quot; auskommentiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=164731}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg164731.html#msg164731]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:00, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Explizite Anwendungen ==&lt;br /&gt;
=== RGB-Board ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
==== Allgemeines ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Board unterstützt RGBW LEDs und lässt sich per Infrarot Fernbedienung, DMX Controller (z.&amp;amp;nbsp;B. als Unterputz Touchpanel) und FHEM bedienen.&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang wird in diesem [http://forum.fhem.de/index.php/topic,12487.msg81923.html#msg81923 Forenthread] vorgestellt. Die Hardware für das Board wird [http://forum.fhem.de/index.php/topic,13890.0.html  hier] im FHEM Forum vorgestellt und ein Prototyp ist [http://forum.fhem.de/index.php/topic,12487.msg85777.html#msg85777 hier] zu sehen.&lt;br /&gt;
&lt;br /&gt;
Die Projektseite zur Hardware findet sich [http://itse.homeip.net/projekte/12/6/ hier]. Eine Version 2 des Boards in geplant. &lt;br /&gt;
&lt;br /&gt;
Eine Übersicht über die derzeit vorhandene Funktionalität (stand 01.05.2015):&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=1205404}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg120404#msg120404]&lt;br /&gt;
&lt;br /&gt;
* bis zu vier LED-Kanäle (je nach Kombination von ir und soft pwm)&lt;br /&gt;
* ir senden&lt;br /&gt;
* ir empfangen&lt;br /&gt;
* Messen ob die LED-Versorgung an ist.&lt;br /&gt;
* Helligkeit eines an A2 angeschlossenen Helligkeitssensors&lt;br /&gt;
* Konfiguration der DMX-Basis-Adresse über das SWAP Register 0x12&lt;br /&gt;
* optional soft on auf letzten Wert&lt;br /&gt;
* Alles was auch vorher schon ging: dimmen, faden, IR-Fernbedienungen anlernen, ...&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen:&lt;br /&gt;
* Wenn IR aktiv ist und kein soft pwm lässt sich der 4. Kanal nur ein- und ausschalten.&lt;br /&gt;
* Wenn IR aktiv ist muss soft pwm aktiv sein um den 4. Kanal auch zu dimmen.&lt;br /&gt;
* Es wird nur ein zusätzlicher Kanal tatsächlich schon unterstützt, der fünfte ist noch geplant.&lt;br /&gt;
* Bei IR-Senden sind nur die Aufrufe für Sony und NEC tatsächlich eingebaut. Die anderen sind aber einfach zu ergänzen.&lt;br /&gt;
* Beim IR-Senden sind noch keine Wiederholungen eingebaut. Die müssen laut Protokoll aber eigentlich sein.&lt;br /&gt;
&lt;br /&gt;
was noch kommt:&lt;br /&gt;
* besseres soft pwm&lt;br /&gt;
* mehr Konfiguration bezüglich default-Verhalten. Ramp-Zeiten, Delays, ...&lt;br /&gt;
* HSV-Farb-Modell um besser zu faden und vor Allem um den Weiss-Anteil automatisch auf die Weiss-LEDs zu legen&lt;br /&gt;
* die virtuellen Channel &lt;br /&gt;
* FHEM kompatibles IR-Senden&lt;br /&gt;
* sofortiges senden von Helligkeit und LED-Spannung bei Änderung&lt;br /&gt;
* andere IR-Lib mit sehr viel besserer Geräte-Unterstützung&lt;br /&gt;
&lt;br /&gt;
Wie gehabt muss alles über config.h mit Compilerschaltern konfiguriert werden.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
===== weitrere Screenshots =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:SWAP_0000002200000003-internal.png|InternalValues&lt;br /&gt;
File:SWAP_0000002200000003-readings.png|Readings&lt;br /&gt;
File:SWAP_0000002200000003-attributes.png|Attributes&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[SWAP_0000002200000003]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== original RGB-Sketch (von panstamp.com) =====&lt;br /&gt;
Der originale Sketch von der panStamp.com-Seite und das generelle FHEM-Modul verstehen von Haus aus nur die regSet und regGet Kommandos. Wenn man den colorpicker verwenden möchte, geht das nur per readingsProxy. &lt;br /&gt;
&lt;br /&gt;
Das einfachste ist es den Sketch und das FHEM-Modul für das RGB-Board zu verwenden. Dann hat man neben dem colorpicker, einem farbigen State-Icon auch alle Möglichen Kommandos wie on, off, on-for-timer, dimup, ... und kann konfigurieren, wie das Board nach dem Hart- oder Soft-Einschalten reagieren soll. &lt;br /&gt;
&lt;br /&gt;
Derzeit scheint es keinen Grund zu geben, den original Sketch zu verwenden. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=220463}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg220463.html#msg220463]&lt;br /&gt;
&lt;br /&gt;
Falls jemand trotzdem den normalen RGB-Sketch verwendet:&lt;br /&gt;
* Im Code alle drei 0000002200000003 durch 0000000100000003 ersetzen.&lt;br /&gt;
Dann geht on/off/toggle/set rgb RRGGBB und auch der colorpicker, wenn das HUEDevice Modul auch geladen ist.&lt;br /&gt;
&lt;br /&gt;
==== Sketch vorbereiten, kompilieren und hochladen ====&lt;br /&gt;
===== Vorbereitungen =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
(Stand 01.05.2015)&lt;br /&gt;
&lt;br /&gt;
Mit der Arduino IDE 1.5.x gab es gundlegende Umstellungen, für die der derzeitige Sketch [r4716] vermutlich angepasst werden müsste.&lt;br /&gt;
&lt;br /&gt;
Für den RGB-Driver sketch sind je nach gewünschtem Funktionsumfang noch folgende libs zu installieren:&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;Panstamp Lib&#039;&#039;&#039; läd man von hier [[http://old.panstamp.com/downloads]] (panstamp_library.zip, 129k v.25, May 31, 2013). Mit der neueren Lib v.4 läuft die Kompillierung des derzeitigen Sketches nicht durch. Die Dateien der Lib speichert man in einem entsprechend neuen  Unterordner, z.B. hierin C:\Users\&amp;lt;username&amp;gt;\Documents\Arduino\libraries. Am Ende der ganzen Aktion im Folgenden sollten sich in diesem Unterordner 3 neue Unterordner befinden: IRremote, DMXSerial und panstamp&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;IR Remote Lib&#039;&#039;&#039; kopiert man von hier [[https://github.com/shirriff/Arduino-IRremote]] und speichert sie ebenfalls in einem passenden Unterordner von libraries.&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;DMX Lib&#039;&#039;&#039; kopiert man von hier [[http://www.mathertel.de/Arduino/DMXSerial.aspx]] und speichert sie ein weiteres Mal in einem weiteren Unterordner von libraries. Weitere Informationen zur Verwendung von Arduino Libraties finden sich hier [[http://arduino.cc/en/Hacking/Libraries]]. Dass die Libraries richtig erkannt worden sind, lässt sich dadurch erkennen, dass unter Sketch/Library importieren die 3 weiteren Punkte unten unter &amp;quot;beigetragen&amp;quot; auftauchen.&lt;br /&gt;
&lt;br /&gt;
Die Librarys sollten entweder mit dem entsprechenden Menüpunkt in die IDE integriert werden oder jeweils nach auspacken des zip files als als kompletten Ordner im Arduino libraries Verzeichnis abgelegt werden (siehe [http://www.arduino.cc/en/Hacking/Libraries)]).&lt;br /&gt;
&lt;br /&gt;
Für das kompilieren mit INO siehe [[panstamp#ino|hier]].&lt;br /&gt;
&lt;br /&gt;
===== Link zum sketch =====&lt;br /&gt;
Die aktuelle Version des RGB-Driver Sketches findet sich auf [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge].&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201391}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201391#msg201391]&lt;br /&gt;
&lt;br /&gt;
===== Kompillierte hex version =====&lt;br /&gt;
Eine kompiliertes HEX-File für drei (vier) Kanäle plus IR-Empfang und DMX ist hier im Forum zu finden:&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121619}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg121619#msg121619]&lt;br /&gt;
&lt;br /&gt;
===== HEX-File ohne IR und DMX =====&lt;br /&gt;
Eine kompiliertes HEX-File ohne IR-Empfang und DMX ist hier im Forum zu finden:&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201955}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201955#msg201955]&lt;br /&gt;
&lt;br /&gt;
===== Sketch anpassen, kompilieren und hochladen =====&lt;br /&gt;
&lt;br /&gt;
* Welche Features der sketch bietet lässt sich im config.h file durch ein- oder auskommentieren der #define ENABLE_... Zeilen festlegen. {{Link2Forum|Topic=13890 |Message=173431}} [http://forum.fhem.de/index.php?topic=13890.msg173431#msg173431] Den Sketch entsprechend den Bedürfnissen in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen. Für die Konfigurationen siehe [[panstamp#Sketch konfigurieren|Sketch konfigurieren]].&lt;br /&gt;
* Windows IDE only: Falls alles so bleibt, wie es heruntergeladen wurde, wechselt man wieder auf den Reiter sketch und importiert über -&amp;gt;Sketch Library importieren die entsprechenden Libs für IRremote und DMX. Dadurch werden 3 neue Zeilen hinzugefügt.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
==== Sketch konfigurieren ====&lt;br /&gt;
 &lt;br /&gt;
===== DMX =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define ENABLE_DMX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei ist darauf zu achten, dass in der DMX-Lib in der Datei DMXSerial.h die Zeile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define DmxModePin 2     // Arduino pin 2 for controlling the data direction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define DmxModePin 7     // Arduino pin 7 for controlling the data direction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
abgeändert werden muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Temperatur- und Luftfeuchtigkeitssensor =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define HAS_SENSOR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieses ermöglicht die Nutzung eines DHT22 Sensors zur Auswerung von Temperatur und Luftfeuchtigkeit.&lt;br /&gt;
&lt;br /&gt;
Dafür sollten diese Konfigurationszeilen auskommentiert  sein&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USE_SOFT_PWM;&lt;br /&gt;
ENABLE_IR_SEND;&lt;br /&gt;
ENABLE_REPEATER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der IRremote.cpp Datei in der Irremote Library muss die Zeile&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void IRrecv::disableIRIn() &lt;br /&gt;
{&lt;br /&gt;
TIMER_DISABLE_INTR;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
sowie die Irremote.h Datei unter Public: um die Zeile &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void disableIRIn();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erweitert werden.&lt;br /&gt;
&lt;br /&gt;
Der Daten-Pin des DHT22 Sensors muss hierfür an A2 des panStamps angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für die Umrechnung der Userreading für Spannung Temp etc. ist hier beschrieben.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=76489}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg76489#msg76489]&lt;br /&gt;
&lt;br /&gt;
===== Zusammenhänge der Konfiguration =====&lt;br /&gt;
&lt;br /&gt;
Die Zusammenhänge der Konfiguration sind hier beschrieben&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=175181}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg175181#msg175181]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[PanStamp RGBWW Board mit DMX und IR]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Bedienung in FHEMWEB ====&lt;br /&gt;
&lt;br /&gt;
===== Komandos =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Definition ======&lt;br /&gt;
&lt;br /&gt;
Der Panstick wird entsprechend folgendem Befehlt angelegt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define panStick panStamp /dev/ttyUSBx@38400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Schnittstelle ist entsprechend Installation des [[panstamp#unter Linux|Pansticks]] anzupassen.&lt;br /&gt;
&lt;br /&gt;
Dieses panStamp Device versucht dann alle panStamps im Netz zu finden und per autocreate anzulegen, wenn dieses aktiv ist.&lt;br /&gt;
&lt;br /&gt;
====== Attribute TBC ======&lt;br /&gt;
&lt;br /&gt;
====== Set TBC ======&lt;br /&gt;
&lt;br /&gt;
====== Get TBC ======&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php?topic=12487.msg81923#msg81923&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EIn register verändern&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg87679.html#msg87679&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Register umrechnung dec zu hex TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg162790.html#msg162790&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Poweronstate TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg88054.html#msg88054&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg95574.html#msg95574&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg124456.html#msg124456&lt;br /&gt;
&lt;br /&gt;
===== Aus nach poweron TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121296#msg121296&lt;br /&gt;
Power on register&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121137#msg121137&lt;br /&gt;
&lt;br /&gt;
===== listunconfirmed TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg88112.html#msg88112&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Fadeto TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg97406.html#msg97406&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
Default fade time&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121572#msg121572&lt;br /&gt;
&lt;br /&gt;
===== Eigenschaften des fade TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg106644#msg106644&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== 4.,5. kanal TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg169741#msg169741&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg192132#msg192132&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201922#msg201922&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201936#msg201936&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Extra kanäle TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg173280#msg173280&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg214329#msg214329&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg214474#msg214474&lt;br /&gt;
&lt;br /&gt;
==== IR Schnittstelle TBC ====&lt;br /&gt;
===== IR TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107061#msg107061&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107197#msg107197&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107415#msg107415&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122021.html#msg122021&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122077.html#msg122077&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg167351#msg167351&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175269#msg175269&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175285#msg175285&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg182582#msg182582&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg245597#msg245597&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg259267#msg259267&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== IR-Belegung Panstamp RGB-Board TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163008.html#msg163008&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163153.html#msg163153&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Ircluster TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175331#msg175331&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Irgate TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175278#msg175278&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== DMX Schnittstelle ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Da die DMX-Schrittstelle kein direktes Interface zu FHEM hat, sondern nur die direkte Kommunikation zwischen DMX-Kontroller und RGB-Board betrifft, ist die Schnittstelle nur bei der Konfiguration des Sketches und über die Dokumentation des Boards beschrieben.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
==== sonstiges ====&lt;br /&gt;
&lt;br /&gt;
===== Alternativer Fade per Patch =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Als Alternative zum im Sketch und im Modul eingebauten Fade-Befehl ist hier ein Patch vorgestellt:&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133096}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133096.html#msg133096]&lt;br /&gt;
&lt;br /&gt;
Der Patch ist &#039;&#039;&#039;nicht eingecheckt&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
===== Kompatibilität RBG-Board mit NRG-panStamps =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Mit dem hier beschriebenen Sketch ist das Board nur mit den AVRs kompatibel.&lt;br /&gt;
Die Pinbelegung zwischen AVR und NRG ist im Prinzip gleich bis auf Pin 23. Das ist bei dem NRG ein IO Pin und nicht Ground wie beim AVR. &lt;br /&gt;
Das wäre kein Problem wenn man entweder hardwareseitig den Kontakt unterbricht oder aber programmiertechnisch diesen Pin &#039;&#039;&#039;NIE&#039;&#039;&#039; als Ausgang definiert. Ansonsten gibt’s ein „kurzen“. Oder wenn er als Ausgang definiert ist darf er nur das GND Potential haben, also Low, 0.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=247069}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg247069#msg247069]&lt;br /&gt;
&lt;br /&gt;
Da es derzeit (Stand 01.05.2015) aber keinen Sketch gibt, der auf den NRG lauffähig ist, wäre vorher noch diese Herausforderung zu lösen.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
=== Bodenfeuchtesensor ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Der panStamp soilmoisture Sketch aus dem examples Verzeichnis ist mit dem Standard SWAP Modul kompatibel. &lt;br /&gt;
&lt;br /&gt;
Ein Artikel über ein selbstentwickeltes PanStamp Batterieboard zum Anschluss von Analogsensoren/1Wire und Solarversorgung ist hier [[Bodenfeuchtesensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine für einen Vegetronix sensor angepasste Version kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Das Übertragungsintervall ist wie üblich über das regsiter 0A konfigurierbar. Der Sensor wird and GND, D7 für die Versorgungsspannung und A4 für den Messwert angeschlossen. Erfahrungen haben gezeigt, dass bei einem fünfminütigen Übertragungsintervall nach 12 Monaten Laufzeit die Batteriespannung von 1.55V auf 1.4V abfällt. Das würde bedeuten, dass eine Batterie im Batterieboard mindestens eine Laufzeit von drei Jahren haben sollte.&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; stateFormat VWC_A%&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; userReadings Level0_Voltage {hex(ReadingsVal($name,&amp;quot;0C.0-Moisture_level_0&amp;quot;,&amp;quot;0&amp;quot;))*(3.3/1024)}, &lt;br /&gt;
     VWC_A:0C.0-Moisture_level_0 {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**4 + 7.10835 * &lt;br /&gt;
        (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 - 0.569557) / ((ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 + 1))}, &lt;br /&gt;
     voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, &lt;br /&gt;
     battery:0B-Voltage {(ReadingsVal($name,&amp;quot;voltage&amp;quot;,&amp;quot;0&amp;quot;)&amp;lt;1?&amp;quot;low&amp;quot;:&amp;quot;ok&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ soilmositure-plot.jpg|mini|x100px|Bodenfeuchte]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix1.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix2.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem entsprechend erweiterten Sketch lassen sich auch mehrere Sensoren an einem panStamp auslesen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bilder zeigen eine panStamp/Vegetronix Außeneinheit im IP65-Gehäuse. Dieser Aufbau wird ganzjährig den Witterungseinflüssen ausgesetzt. Die auf den Stab aufgesetzte Antenne muss nicht verwendet werden, bei kürzeren Funkstrecken ist eine innenliegende Drahtantenne ausreichend. Bitte in FHEM den RSSI- und LQI-Wert sowie die Gleichmäßigkeit des Empfangens der 5 Minuten Sendeintervalle dementsprechend beobachten.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[SWAP] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Umweltsensor ===&lt;br /&gt;
&lt;br /&gt;
Die Weiterentwicklung des Bodenfeuchtesensors zum Umweltsensor ist hier [[PanStamp_Umweltsensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== Ultraschall-Füllstandssensor ===&lt;br /&gt;
&lt;br /&gt;
Projektidee&lt;br /&gt;
&lt;br /&gt;
=== Repeater Mode ===&lt;br /&gt;
&lt;br /&gt;
Die Repeaterfunktionalität ist derzeit (01.05.2015) noch nicht näher beschrieben, wird aber von den Modulen unterstützt.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=118403}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg118403.html#msg118403]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://itse.homeip.net/projekte/12/6/ Projektseite] für das RGB-Multi-Board.&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ rgbdriver sketch] auf sourceforge&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ soilmoisture sketch]  auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11805</id>
		<title>SWAP</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11805"/>
		<updated>2015-07-23T13:57:43Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{SEITENTITEL:SWAP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Modul zur allgemeinen Ansteuerung sämtlicher PanStamp Boards.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=SWAP&lt;br /&gt;
|ModForumArea=&lt;br /&gt;
|ModFTopic=&lt;br /&gt;
|ModTechName=34_SWAP.pm&lt;br /&gt;
|ModOwner=André/ justme1968 ({{Link2FU|430|Forum}} / [[Benutzer Diskussion:Justme|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[SWAP]] ist das Basismodul für die Unterstützung der PanStamp Baugruppen. Zur Kommunikation in einem PanStamp Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([https://github.com/panStamp/panstamp/wiki/Simple%20Wireless%20Abstract%20Protocol SWAP]).&lt;br /&gt;
Die komplette SWAP- Kommunikation ist registerbasiert und erfolgt mit Nachrichten um diese Register abzufragen, zu setzen und deren Inhalt zu senden. Alle Register lassen sich lesen, manche auch beschreiben. Für eine tiefgreifende FHEM Integration können weitere Module (wie z.B. [[SWAP_0000002200000003]]) vorhanden sein. Diese Module bauen, als 3. Ebene, auf das SWAP Modul (2. Ebene) auf und bedienen im backend ebenfalls die panStamp-Hardware über die Register. Der panStamp Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Für den Betrieb ist XML:Simple notwendig, dass bei Bedarf folgendermaßen nachinstalliert werden kann [http://forum.fhem.de/index.php?topic=12487.msg87373#msg87373].&lt;br /&gt;
 sudo apt-get install libxml-simple-perl&lt;br /&gt;
Diese Abhängigkeit kann beim Betrieb auf einer Fritzbox ebenfalls zu Problemen führen. Das [[SWAP]] Modul greift auf das [[PanStamp]] Modul zu, was vorher per &amp;lt;code&amp;gt;define&amp;lt;/code&amp;gt; angelegt werden muss.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005-detail.png|mini|hochkant=2.5|Readings]]&lt;br /&gt;
Bei SWAP geht alle Kommunikation über [https://github.com/panStamp/panstamp/wiki/Simple%20Wireless%20Abstract%20Protocol#registers-and-values &#039;&#039;&#039;Register&#039;&#039;&#039;], dies sind unterschiedlich lange Werte die entweder nur gelesen oder gelesen und geschrieben werden können.&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt;) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers] und beliebig viele, sketchabängige Userregister (&amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;xx&amp;lt;/code&amp;gt;) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers#custom-registers] bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Definition Files&#039;&#039;, die in &amp;lt;code&amp;gt;.../FHEM/lib/SWAP&amp;lt;/code&amp;gt; zu finden sind. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Definition File erfolgt über den ProductCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt&#039;&#039;-ID [https://github.com/panStamp/panstamp/wiki/How-to-develop-your-own-SWAP-device#specify-your-product-code] gebildet wird. Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
In den Systemregistern  steht z.b. der ProductCode, die Device Adresse im SWAP Protokoll und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert und die Werte gehen auch beim Neustart nicht verloren. Beim aller ersten Starten ist das EEPROM mit &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; initialisiert und alle konfigurierbaren Register haben diesen Wert. Also z.b. Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; und Intervall &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; (HEX in Sekunden, das wären dann zwischen 18 und 19 Stunden).&lt;br /&gt;
Die Inhalte der Systemregister stehen als INTERNAL, im oberen Bereich der Detail Ansicht eines FHEM-Device, in FHEMWEB, die Userregister als Readings im unteren.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen ProductCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
Alle low level Dinge wie Register ID oder Register Wert können mit &#039;&#039;&#039;hex Werten&#039;&#039; direkt angepasst werden.&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 08 &amp;lt;netzwerk id als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87436 }}&lt;br /&gt;
&lt;br /&gt;
Das [[SWAP]]-Modul stellt unter anderem folgende grundlegende Funktionalitäten zur Verfügung&lt;br /&gt;
* Es wird eine command Queue für panStamp-Hardware im power down Modus gehalten. Sobald die panStamp-Hardware online (SYNC Modus) kommt werden die Kommandos von FHEM automatisch übertragen.&lt;br /&gt;
* Die userReadings für &#039;menschenlesbare&#039; Readings werden anhand des Device Definition Files automatisch erzeugt&lt;br /&gt;
* Es ist möglich direkt endpoints (Teile eines Registers) zu schreiben&lt;br /&gt;
* (Fast) keine hardkodierte Sonderbehandlung mehr für das RGB-Board. Das SWAP Modul kann mit jedem beliebige Swap Device umgehen.&lt;br /&gt;
* Es gibt eine dritte (optionale) Modulebene neben dem [[PanStamp]] FHEM-Modul (1. Ebene) für die Hardware und dem SWAP Modul (2. Ebene) für das Protokoll. Mit dem generellen SWAP Modul lasen sich alle SWAP Devices &#039;&#039;zu Fuß&#039;&#039; über die Register ansprechen. Um die Register auf einer höheren Ebene auf FHEM Kommandos wie on/off/on-for-timer zu mappen ist dann ein Modul der 3. Ebene notwendig. {{Link2Forum|Topic=12487 |Message=78502 }}&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
&#039;&#039;&#039;Info: Das SWAP Modul unterstützt autocreate. Bei der Inbetriebnahme sollte autocreate aktiviert sein, da dies die Einrichtung deutlich vereinfacht.&#039;&#039;&#039;&lt;br /&gt;
Wenn der [[panStick]] läuft, sollten die SWAP-Devices per autocreate angelegt werden, sobald sie das erste mal senden, z.B. nach dem Einschalten oder nach einem Reset. Normalerweise werden beim autocreate alle Werte abgefragt und angezeigt. Das geht normalerweise ohne jedes Zutun. &lt;br /&gt;
&lt;br /&gt;
Panstick rein -&amp;gt; broadcast -&amp;gt; discovery -&amp;gt; anlegen. &lt;br /&gt;
&lt;br /&gt;
Bei Devices mit power down mode erfolgt dieses das erste mal wenn sie Strom haben. &lt;br /&gt;
&lt;br /&gt;
Alle panStamps durchlaufen beim Starten eine bestimmte Einschaltsequenz. Sie melden sich mit ihrer ID und ihrem ProductCode. Die ID ist die SWAP Device Addresse und bei einem frisch geflashten panStamp in der Regel &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;. Das SWAP Modul versucht, ein Device mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0 - FE&amp;lt;/code&amp;gt; zu ändern.&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, sonst haben mehrere die gleiche Adresse und das gibt Konflikte. &lt;br /&gt;
&lt;br /&gt;
Wer mehrere devices hat, sollte jedem nach dem Anlegen mit &lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt; &lt;br /&gt;
eine eigene id zuweisen. Die landen auf dem panStamp im EEPROM und sind auch nach Neustart noch vorhanden. &lt;br /&gt;
&lt;br /&gt;
Die anderen Adressen sind wie folgt belegt:&lt;br /&gt;
* &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; ist die Broadcast-ID&lt;br /&gt;
* &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; ist die ID des [[panStick]] am FHEM-System&lt;br /&gt;
* &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; ist die Default ID, die jeder panStamp im Auslieferungszustand besitzt&lt;br /&gt;
* &amp;lt;code&amp;gt;F0-FE&amp;lt;/code&amp;gt; sind die IDs, auf die autocreate die Adresse automatisch ändert, wenn ein neuer mit der ID &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; erkannt wird und kein entsprechender Device-Name definiert ist.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87261 }}&lt;br /&gt;
&lt;br /&gt;
Ändert man die Adresse, dauert es einen Augenblick, bis alle Register neu übertragen worden sind. &lt;br /&gt;
&lt;br /&gt;
Autocreate ändert bei der Einrichtung und Änderung der ID auch automatisch den Namen. Belässt man die ID im Bereich &amp;lt;code&amp;gt;F0 - FE&amp;lt;/code&amp;gt; und ändert den Namen des Device, ist zu berücksichtigen, dass autocreate für neue Devices eine freie neue Adresse anhand der Device-Namen sucht. Dadurch könnte es zu Doppeltverwendung von IDs kommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ zum autocreate kann man ein Device auch von Hand anlegen mit&lt;br /&gt;
 define &amp;lt;device&amp;gt; SWAP &amp;lt;ID&amp;gt;&lt;br /&gt;
Bis allerdings der ProductCode nicht per Attribut hinterlegt ist, was bei autocreate ebenfalls automatisch passiert, funktionieren nur die grundlegenden Funktionen bis zur 2. Modulebene.&lt;br /&gt;
&lt;br /&gt;
=== set ===&lt;br /&gt;
Ist ein SWAP-Device definiert, stehen folgende set-Befehle zur Verfügung:&lt;br /&gt;
* regGet &amp;lt;reg&amp;gt;&lt;br /&gt;
Fragt den Wert des Registers mit der id &amp;lt;reg&amp;gt; ab. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87679 }}&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
Schreibt &amp;lt;data&amp;gt; in den Register mit der id &amp;lt;reg&amp;gt;. &amp;lt;data&amp;gt; muss als HEX Zahl angegeben werden. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt;.&amp;lt;ep&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
write &amp;lt;data&amp;gt; to endpoint &amp;lt;ep&amp;gt; of register &amp;lt;reg&amp;gt;. will not work if no reading for register &amp;lt;reg&amp;gt; is available as all nibbles that are not part of endpoint &amp;lt;ep&amp;gt; will be filled from this reading. ?&lt;br /&gt;
&lt;br /&gt;
* statusRequest&lt;br /&gt;
Veranlasst, dass alle Register und deren Werte einmal übertragen werden.&lt;br /&gt;
&lt;br /&gt;
* readDeviceXML&lt;br /&gt;
Liest das Device-Definition-XML-File neu ein.&lt;br /&gt;
&lt;br /&gt;
* clearUnconfirmed&lt;br /&gt;
Löscht die liste der unbestätigten Nachrichten.&lt;br /&gt;
&lt;br /&gt;
* flash [&amp;lt;productCode&amp;gt;|&amp;lt;firmwareFile&amp;gt;]&lt;br /&gt;
Initiiert das „over-the-air“ Firmware update, dass (derzeit) nur von panStamps NRG unterstützt wird.&lt;br /&gt;
** ohne Parameter: Verwendet das SWAP_&amp;lt;current productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;productCode&amp;gt;: Verwendet das SWAP_&amp;lt;productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;firmwareFile&amp;gt;: Verwendet ein &amp;lt;firmwareFile&amp;gt; als absoluten File-Namen des HEX-Files.&lt;br /&gt;
&lt;br /&gt;
=== get ===&lt;br /&gt;
* regList&lt;br /&gt;
Listet alle User-Register des SWAP-Device (Readings). &lt;br /&gt;
&lt;br /&gt;
* regListAll&lt;br /&gt;
Listet alle Register des SWAP-Device (Internals und Readings). &lt;br /&gt;
&lt;br /&gt;
* listUnconfirmed&lt;br /&gt;
Listet alle unbestätigten Nachrichten in der Warteschlange auf, also Nachrichten die von FHEM gesendet wurden, aber der empfang durch das panStamp Modul nicht bestätigt wurde.&lt;br /&gt;
&lt;br /&gt;
* products&lt;br /&gt;
Gibt alle auf dem System bekannten Productcodes nebst Daten aus.&lt;br /&gt;
&lt;br /&gt;
* deviceXML&lt;br /&gt;
Gibt die Daten des zum derzeit zum per Attribut (Productcode) eingerichteten Device-XML-Files aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Wird der Productcode bei der Definition nicht gesetzt, stehen auch nur die Standardbefehle bei zur 2. Modulebene zur Verfügung. &lt;br /&gt;
&lt;br /&gt;
* createUnknownReadings&lt;br /&gt;
Erzeug Readings auch für Register, die im Device-XML-File nicht definiert werden.&lt;br /&gt;
&lt;br /&gt;
* ProductCode&lt;br /&gt;
Legt den ProductCode eines SWAP-Device fest und liest dadurch das dazugehörige Device-Definition-XML-File ein. Erst wenn der ProduktCode als Attribut vorgegeben wurde, z.B. für einen RGB-Sktech:&lt;br /&gt;
 attr &amp;lt;device&amp;gt; ProductCode 0000002200000003&lt;br /&gt;
kommen zu den allgemeinen FHEM set- und get-Kommandos des [[SWAP]] Modul die spezifischen der 3. Modulebene 35_SWAP_&amp;lt;productcode&amp;gt;.pm mit hinzu (Siehe z.B. [[SWAP_0000002200000003]]). Dann werden die SWAP-Nachrichten an das entsprechende Modul weitergegeben und dort verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices, die während der Definition nicht aktiv sind, muss dieses Attribut manuell angelegt werden.&lt;br /&gt;
&lt;br /&gt;
=== Device Definition File ===&lt;br /&gt;
Mit Hilfe der im jeweiligen Device Definition File hinterlegten Beschreibung werden hierzu automatisch userReadings angelegt (Wenn den Endpoints eine Unit mit Factor zugewiesen ist) die neben den reinen Registerwerten in hex auch &#039;&#039;menschenlesbare&#039;&#039; readings der Sensorwerte erzeugen. &lt;br /&gt;
Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
Das entsprechende Device Definition File liegt unter ./FHEM/lib/SWAP wie hier beschrieben [http://forum.fhem.de/index.php/topic,12487.msg86257.html#msg86257].&lt;br /&gt;
&lt;br /&gt;
Hier Beispielhaft anhand eines BMP085 Temperatur- und Luftdrucksensors dargestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress userReadings voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, temperature:0C.0-Temperature {hex(ReadingsVal($name,&amp;quot;0C.0-Temperature&amp;quot;,&amp;quot;0&amp;quot;))*0.1-50}, pressure:0C.1-Pressure {hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01}, pressureNN:0C.1-Pressure {sprintf(&amp;quot;%.2f&amp;quot;,hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01 + AttrVal(&amp;quot;global&amp;quot;, &amp;quot;altitude&amp;quot;, 0)/8.5)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005.png|mini|hochkant=2.5|Resultat eines stateFormat]]&lt;br /&gt;
Aus diesen Readings kann dann mit stateFormat die gewünschte Darstellung für die Raumübersicht erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress stateFormat {sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;temperature&amp;quot;,0)).&amp;quot;°C &amp;quot;.sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;pressureNN&amp;quot;,0)).&amp;quot;mbar&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel ist das Definition File für das RGB-Board rgbdriver.xml.&lt;br /&gt;
&lt;br /&gt;
=== SWAP Register ===&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt;) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers] und beliebig viele sketchabängige Userregister (&amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt; - &amp;lt;code&amp;gt;xx&amp;lt;/code&amp;gt;)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Definition Files&#039;&#039;. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Definition File erfolgt über den ProductCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt-Id&#039;&#039; gebildet wird.&lt;br /&gt;
&lt;br /&gt;
In den Systemregistern steht z.B. der ProductCode, die Deviceadresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert, so dass die Werte auch bei einem Neustart nicht verlorengehen. Beim ersten Starten eines panStamp ist das EEPROM mit &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; initialisiert und alle konfigurierbaren Register haben diesen Wert, also z.B. die Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; und das Intervall &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; (zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Systemregister werden in der Device Detailansicht bei den InternalValues im oberen Bereich angezeigt und die User-Register als reading im unteren Bereich.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen productCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== Übersicht der Register anzeigen ===&lt;br /&gt;
Sobald ein SWAP Device mit dem productCode korrekt angelegt wurde, können die Userregister bzw. alle Register aufgelistet werden: &lt;br /&gt;
 get &amp;lt;device&amp;gt; regList&lt;br /&gt;
 get &amp;lt;device&amp;gt; regListALL&lt;br /&gt;
&lt;br /&gt;
=== Register auslesen oder setzen ===&lt;br /&gt;
Einzelne Register können abgefragt werden mit&lt;br /&gt;
 set &amp;lt;device&amp;gt; regGet &amp;lt;ID&amp;gt;&lt;br /&gt;
oder auch gesetzt werden durch&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet &amp;lt;ID&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=== Intervall bei Sketch mit power down / batterie betriebene Panstamps ===&lt;br /&gt;
panStamp Hardware mit power down mode durchlaufen während des Booten (beim Einschalten oder bei einem Reset) eine 3 Sekunden Schleife und warten auf SWAP-Kommandos, die z.B. Register für das Sendeintervall oder sonstige Konfigurationen ändern. Nach dieser Zeit wird die normale Loop Schleife im Arduino Sketch gestartet. Normaler Weise werden dann die Register mit den Sensorwerten an FHEM gesendet. Power down devices gehen danach schlafen (power down Modus mit extrem niedrigen Stromverbrauch) und wachen regelmäßig auf (TX_INTERVAL aus dem Systemregister) um die Sensoren auszulesen und die Werte wieder an FHEM zu senden. Das Sendeintervall betrifft nur das Senden der Sensorwerte. Normalerweise empfängt das panStamp Modul in diesem Modus keine Befehle mehr. Das passiert nur einmalig nach einem Reset. Je nach Sketch kann das natürlich variieren und anders programmiert sein!&lt;br /&gt;
&lt;br /&gt;
Nachrichten an eine panStamp-Hardware im power-down-state werden in FHEM gepuffert (siehe INTERNAL SWAP_CMDsPending) und dann an die panStamp-Hardware geschickt, sobald dieses sich im SYNC Status befindet. Dieses ist typischer Weise nach dem Startup z.B. nach einem Reset der Fall.&lt;br /&gt;
&lt;br /&gt;
Bei batteriebetriebenen Sensoren sollte das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87409}}&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene panStamp-Module (genauer: Module die den Power-Down-Modus unterstützen) wird das Default Sendeintervall bei der Einrichtung automatisch von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden = 15 Minuten) geändert. Das Intervall wird nur automatisch gesetzt, wenn pwrdownmode im device definition file true ist. {{Link2Forum|Topic=12487 |Message=89205}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt mit bestimmten panStamp lib Versionen das Problem das ein Wert von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; im Systemregister &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; zum Überlauf führt und der panStamp dann ununterbrochen sendet. Im [[SWAP]] Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen host systemen (z.B. FritzBox) nicht, weil der panStamp so schnell sendet, dass FHEM mit dem Abarbeiten so beschäftigt und ausgelastet ist, dass es selber nicht zum senden kommt. Zur Abhilfe kann im Sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden. Den Sketch dann noch mal flashen. Wenn der panStamp mit diesem Sketch ein mal durchgelaufen ist, können diese beiden Zeilen wieder entfernen und der panStamp noch mal geflasht werden. Damit wurde das Sendeintervall einmalig auf &amp;lt;code&amp;gt;0x5555&amp;lt;/code&amp;gt; (0x5555 in Dezimal = 21.845 (Sekunden), entspricht 364 Minuten) gesetzt.&lt;br /&gt;
&lt;br /&gt;
=== Device Adresse automatisch setzen ===&lt;br /&gt;
Erkennt das SWAP Modul eine panStamp-Hardware mit der Adresse &amp;lt;code&amp;gt;0xFF&amp;lt;/code&amp;gt; wird automatisch eine neue Adresse durch das [[SWAP] Modul vergeben. Die automatisch vergebenen Adressen sind im Bereich &amp;lt;code&amp;gt;0xF0 - 0xFE&amp;lt;/code&amp;gt;. Das soll das inbetriebnehmen von mehreren panStamp-Hardwaremodulen gleichzeitig erleichtern. Der automatisch vergeben Adressbereich ist begrenzt und sollte nur temporär verwendet werden. Nach der Inbetriebnahme sollte den panStamp Modulen eine individuelle, lokal passende Adresse geändert werden. {{Link2Forum|Topic=12487 |Message=87919}}&lt;br /&gt;
Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87859}}&lt;br /&gt;
&lt;br /&gt;
Im Log sollte etwas in dieser Art auftauchen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:14:29 2: autocreate: define SWAP_F0 SWAP FF 000000010000000E&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP_F0: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP SWAP_F0: changing 09-DeviceAddress from default FF to F0&lt;br /&gt;
2013.07.29 20:14:30 3: SWAP SWAP_F0: changing 0A-PeriodicTxInterval from default FFFF to 0384 (900 seconds)&lt;br /&gt;
&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:16:35 2: autocreate: define SWAP_F1 SWAP_0000002200000003 FF 0000002200000003&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP_F1: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:16:36 3: SWAP SWAP_F1: changing 09-DeviceAddress from default FF to F1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registerinhalt von hex auf Dezimal umrechnen  ===&lt;br /&gt;
Die Registerinhalte sind immer hexadezimale Zahlenwerte. In den meisten Fälle werden diese umgerechnet werden in Dezimalzahlen.&lt;br /&gt;
Hierzu kann die Perlfunktion hex() verwendet werden.&lt;br /&gt;
Beide Funktionsaufrufe geben in diesem Beispiel die Dezimalzahl 250 aus:&lt;br /&gt;
 {hex(&amp;quot;FA&amp;quot;)}&lt;br /&gt;
 {hex(&amp;quot;0xFA&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: panStamp soilmoisture Sketch in FHEM einbinden ===&lt;br /&gt;
Der panStamp soilmoisture Sketch aus dem examples Verzeichnis ist mit dem Standard SWAP Modul kompatibel. &lt;br /&gt;
&lt;br /&gt;
Ein Artikel über ein selbst entwickeltes PanStamp Batterieboard zum Anschluss von Analogsensoren/1Wire und Solarversorgung ist hier [[Bodenfeuchtesensor]] beschrieben. Die Weiterentwicklung zum Umweltsensor ist hier [[PanStamp_Umweltsensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine für einen Vegetronix Sensor angepasste Version kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Das Übertragungsintervall ist wie üblich über das Register &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; konfigurierbar. Der Sensor wird an GND, D7 für die Versorgungsspannung und A4 für den Messwert angeschlossen. Erfahrungen haben gezeigt, dass bei einem fünfminütigen Übertragungsintervall nach 12 Monaten Laufzeit die Batteriespannung von 1.55V auf 1.4V abfällt. Das würde bedeuten, dass eine Batterie im Batterieboard mindestens eine Laufzeit von drei Jahren haben sollte.&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; stateFormat VWC_A%&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; userReadings Level0_Voltage {hex(ReadingsVal($name,&amp;quot;0C.0-Moisture_level_0&amp;quot;,&amp;quot;0&amp;quot;))*(3.3/1024)}, &lt;br /&gt;
     VWC_A:0C.0-Moisture_level_0 {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**4 + 7.10835 * &lt;br /&gt;
        (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 - 0.569557) / ((ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 + 1))}, &lt;br /&gt;
     voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, &lt;br /&gt;
     battery:0B-Voltage {(ReadingsVal($name,&amp;quot;voltage&amp;quot;,&amp;quot;0&amp;quot;)&amp;lt;1?&amp;quot;low&amp;quot;:&amp;quot;ok&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ soilmositure-plot.jpg|mini|x100px|Bodenfeuchte]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix1.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix2.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem entsprechend erweiterten Sketch lassen sich auch mehrere Sensoren an einem panStamp auslesen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bilder zeigen eine panStamp/Vegetronix Außeneinheit im IP65-Gehäuse. Dieser Aufbau wird ganzjährig den Witterungseinflüssen ausgesetzt. Die auf den Stab aufgesetzte Antenne muss nicht verwendet werden, bei kürzeren Funkstrecken ist eine innenliegende Drahtantenne ausreichend. Bitte in FHEM den RSSI- und LQI-Wert sowie die Gleichmäßigkeit des Empfangens der 5 Minuten Sendeintervalle dementsprechend beobachten.&lt;br /&gt;
&lt;br /&gt;
== Trouble Shooting ==&lt;br /&gt;
=== value has to be 10 byte(s) in size  ===&lt;br /&gt;
&lt;br /&gt;
Es besteht die Möglichkeit, dass die Internals aus irgend einem Grund nicht vollständig sind. &lt;br /&gt;
Abhilfe in einem solchen Falle kann das Absetzen der folgenden beiden Befehlt schaffen&lt;br /&gt;
 set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
 set &amp;lt;device&amp;gt; readDeviceXML&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht zum Erfolg führt, hilft ggf. ein Löschen und neu setzen des ProductCode Attributs.&lt;br /&gt;
{{Link2Forum|Topic=34474.0}}&lt;br /&gt;
&lt;br /&gt;
Das Übertragen aller Daten nach dem Statusrequest kann einen Augenblick dauern.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit:&lt;br /&gt;
Die Fehlermeldung kommt immer wenn FHEM nicht weiß welche Firmware auf der panStamp-Hardware ist. Das passiert wenn irgendetwas in der Kommunikation schief geht während FHEM initialisiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122414}} &lt;br /&gt;
&lt;br /&gt;
=== register 0F is not known ===&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=84257}}&lt;br /&gt;
&lt;br /&gt;
=== Komplette Übersicht eines Device ===&lt;br /&gt;
&lt;br /&gt;
 list &amp;lt;device&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201467}}&lt;br /&gt;
&lt;br /&gt;
=== fehlender oder falsche ProductCode ===&lt;br /&gt;
&lt;br /&gt;
Fehlt der ProductCode, werden die zum Sketch zugehörigen Befehle nicht angezeigt und die Register nicht korrekt zugeordnet.&lt;br /&gt;
Verändert man den ProductCode, sollte man im Anschluss folgenden Befehlt absetzten, um alle Register neu auszulesen&lt;br /&gt;
 set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201910}}&lt;br /&gt;
&lt;br /&gt;
=== missing commands und register 00-0A unvollständig ===&lt;br /&gt;
&lt;br /&gt;
Wenn in den INTERNALS missing commands (SWAP_Sent_unconfirmed) auftauchen und ggf. die Register &amp;lt;code&amp;gt;00-0A&amp;lt;/code&amp;gt; nicht vollständig sind und das INTERNAL &amp;quot;channels&amp;quot; nicht vorhanden ist, gibt es irgendein Kommunikationsproblem.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201939}}&lt;br /&gt;
&lt;br /&gt;
=== Funktion des Autocreate ===&lt;br /&gt;
&lt;br /&gt;
Beim autocreate wird versucht ein Name für das Device zu vergeben, der zur nächsten freien Adresse passt. Während dieses Prozessen bleibt die Adresse erst mal trotzdem &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;. Erst wenn das Device angelegt wird, kann versucht werden automatisch die Adresse zu setzen, hoffentlich auf die gleiche freie, die beim Namen auch schon gefunden wurde.  {{Link2Forum|Topic=12487 |Message=88110}}&lt;br /&gt;
&lt;br /&gt;
=== Adresse manuell setzen ===&lt;br /&gt;
&lt;br /&gt;
Um die Adresse manuell bereits in den Sketch einzubauen kann man wie hier beschrieben vorgehen.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122347}}&lt;br /&gt;
&lt;br /&gt;
=== Undefined subroutine &amp;amp;main::XMLin ===&lt;br /&gt;
Erhält man diese Fehlermeldung&lt;br /&gt;
 Undefined subroutine &amp;amp;main::XMLin called at ./FHEM/34_SWAP.pm line 108.&lt;br /&gt;
 &lt;br /&gt;
 2013.09.26 11:34:24 0: ERROR: Cannot autoload SWAP&lt;br /&gt;
 2013.09.26 11:34:24 3: panStick: Unknown code 000A001B000A000000000100000007, help me!&lt;br /&gt;
&lt;br /&gt;
Es fehlt XML::Simple, was folgendermaßen installiert werden kann:&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&lt;br /&gt;
=== Panstamp antwortet nicht/EEprom to factory defaults ===&lt;br /&gt;
&lt;br /&gt;
Wenn der panStamp nicht antwortet, kann es sein das die Adressen durcheinander gekommen sind. Dann musst man einmal in &amp;lt;code&amp;gt;setup()&amp;lt;/code&amp;gt; ein &amp;lt;code&amp;gt;eepromToFactoryDefaults()&amp;lt;/code&amp;gt; aufrufen und damit flashen. Wenn damit einmal gestartet wurde, die Zeile wieder entfernen und den normalen Sketch flashen. {{Link2Forum|Topic=13890 |Message=121677}}&lt;br /&gt;
&lt;br /&gt;
=== Factory Defaults ===&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp auf den Auslieferungszustand zurückzusetzen, muss man beim Sketch folgendes in die &amp;lt;code&amp;gt;setup()&amp;lt;/code&amp;gt; Routine einfügen:&lt;br /&gt;
 eepromToFactoryDefaults()&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
&lt;br /&gt;
=== Status LED ===&lt;br /&gt;
&lt;br /&gt;
Die Status LED auf dem Board wird in der config.h deaktiviert, indem man die Zeit &amp;lt;code&amp;gt;#define LED_DEBUG&amp;lt;/code&amp;gt; mit &amp;quot;//&amp;quot; auskommentiert. {{Link2Forum|Topic=13890 |Message=164731}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11800</id>
		<title>SWAP</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11800"/>
		<updated>2015-07-23T07:13:51Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{SEITENTITEL:SWAP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Modul zur allgemeinen Ansteuerung sämtlicher PanStamp Boards.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=SWAP&lt;br /&gt;
|ModForumArea=&lt;br /&gt;
|ModFTopic=&lt;br /&gt;
|ModTechName=34_SWAP.pm&lt;br /&gt;
|ModOwner=André/ justme1968 ({{Link2FU|430|Forum}} / [[Benutzer Diskussion:Justme|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[SWAP]] ist das Basismodul für die Unterstützung der PanStamp Baugruppen. Zur Kommunikation in einem PanStamp Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([https://github.com/panStamp/panstamp/wiki/Simple%20Wireless%20Abstract%20Protocol SWAP]).&lt;br /&gt;
Die komplette SWAP- Kommunikation ist registerbasiert und erfolgt mit Nachrichten um diese Register abzufragen, zu setzen und deren Inhalt zu senden. Alle Register lassen sich lesen, manche auch beschreiben. Für eine tiefgreifende FHEM Integration können weitere Module (wie z.B. [[SWAP_0000002200000003]]) vorhanden sein. Diese Module bauen, als 3. Ebene, auf das SWAP Modul (2. Ebene) auf und bedienen im backend ebenfalls die panStamp-Hardware über die Register. Der panStamp Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Für den Betrieb ist XML:Simple notwendig, dass bei Bedarf folgendermaßen nachinstalliert werden kann [http://forum.fhem.de/index.php?topic=12487.msg87373#msg87373].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese Abhängigkeit kann beim Betrieb auf einer Fritzbox ebenfalls zu Problemen führen. Das SWAP Modul greift auf das [[PanStamp]] Modul zu, was vorher per define anglegt werden muss.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005-detail.png|mini|hochkant=2.5|Readings]]&lt;br /&gt;
Bei SWAP geht alle Kommunikation über [https://github.com/panStamp/panstamp/wiki/Simple%20Wireless%20Abstract%20Protocol#registers-and-values &#039;&#039;&#039;Register&#039;&#039;&#039;], dies sind unterschiedlich lange Werte die entweder nur gelesen oder gelesen und geschrieben werden können.&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt;) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers] und beliebig viele, sketchabängige Userregister (&amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;xx&amp;lt;/code&amp;gt;) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers#custom-registers] bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Definition Files&#039;&#039;, die in &amp;lt;code&amp;gt;.../FHEM/lib/SWAP&amp;lt;/code&amp;gt; zu finden sind. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Definition File erfolgt über den ProductCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt&#039;&#039;-ID [https://github.com/panStamp/panstamp/wiki/How-to-develop-your-own-SWAP-device#specify-your-product-code] gebildet wird. Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
In den Systemregistern  steht z.b. der ProductCode, die Device Adresse im SWAP Protokoll und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert und die Werte gehen auch beim Neustart nicht verloren. Beim aller ersten Starten ist das EEPROM mit &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; initialisiert und alle konfigurierbaren Register haben diesen Wert. Also z.b. Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; und Intervall &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; (HEX in Sekunden, das wären dann zwischen 18 und 19 Stunden).&lt;br /&gt;
Die Inhalte der Systemregister stehen als INTERNAL, im oberen Bereich der Detail Ansicht eines FHEM-Device, in FHEMWEB, die Userregister als Readings im unteren.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen ProductCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
Alle low level Dinge wie Register ID oder Register Wert können mit &#039;&#039;&#039;hex Werten&#039;&#039; direkt angepasst werden.&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 08 &amp;lt;netzwerk id als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87436 }}&lt;br /&gt;
&lt;br /&gt;
Das [[SWAP]]-Modul stellt unter anderem folgende grundlegende Funktionalitäten zur Verfügung&lt;br /&gt;
* Es wird eine command Queue für panStamp-Hardware im power down Modus gehalten. Sobald die panStamp-Hardware online (SYNC Modus) kommt werden die Kommandos von FHEM automatisch übertragen.&lt;br /&gt;
* Die userReadings für &#039;menschenlesbare&#039; Readings werden anhand des Device Definition Files automatisch erzeugt&lt;br /&gt;
* Es ist möglich direkt endpoints (Teile eines Registers) zu schreiben&lt;br /&gt;
* (Fast) keine hardkodierte Sonderbehandlung mehr für das RGB-Board. Das SWAP Modul kann mit jedem beliebige Swap Device umgehen.&lt;br /&gt;
* Es gibt eine dritte (optionale) Modulebene neben dem [[PanStamp]] FHEM-Modul (1. Ebene) für die Hardware und dem SWAP Modul (2. Ebene) für das Protokoll. Mit dem generellen SWAP Modul lasen sich alle SWAP Devices &#039;&#039;zu Fuß&#039;&#039; über die Register ansprechen. Um die Register auf einer höheren Ebene auf FHEM Kommandos wie on/off/on-for-timer zu mappen ist dann ein Modul der 3. Ebene notwendig. {{Link2Forum|Topic=12487 |Message=78502 }}&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
&#039;&#039;&#039;Info: Das SWAP Modul unterstützt autocreate. Bei der Inbetriebnahme sollte autocreate aktiviert sein, da dies die Einrichtung deutlich vereinfacht.&#039;&#039;&#039;&lt;br /&gt;
Wenn der [[panStick]] läuft, sollten die SWAP-Devices per autocreate angelegt werden, sobald sie das erste mal senden, z.B. nach dem Einschalten oder nach einem Reset. Normalerweise werden beim autocreate alle Werte abgefragt und angezeigt. Das geht normalerweise ohne jedes Zutun. &lt;br /&gt;
&lt;br /&gt;
Panstick rein -&amp;gt; broadcast -&amp;gt; discovery -&amp;gt; anlegen. &lt;br /&gt;
&lt;br /&gt;
Bei Devices mit power down mode erfolgt dieses das erste mal wenn sie Strom haben. &lt;br /&gt;
&lt;br /&gt;
Alle panStamps durchlaufen beim Starten eine bestimmte Einschaltsequenz. Sie melden sich mit ihrer ID und ihrem ProductCode. Die ID ist die SWAP Device Addresse und bei einem frisch geflashten panStamp in der Regel &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt;. Das SWAP Modul versucht, ein Device mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern.&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, sonst haben mehrere die gleiche Addresse und das gibt Konflikte. &lt;br /&gt;
&lt;br /&gt;
Wer mehrere devices hat, sollte jedem nach dem Anlegen mit &lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt; &lt;br /&gt;
eine eigene id zuweisen. Die landen auf dem panStamp im EEPROM und sind auch nach Neustart noch vorhanden. &lt;br /&gt;
&lt;br /&gt;
Die anderen Adressen sind wie folgt belegt:&lt;br /&gt;
* &amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt; ist die Broadcast-ID&lt;br /&gt;
* &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt; ist die ID des Pansticks am FHEM-System&lt;br /&gt;
* &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; ist die Default ID, die jeder panStamp im Auslieferungszustand besitzt&lt;br /&gt;
* &amp;lt;code&amp;gt;F0-FE&amp;lt;/code&amp;gt; sind die IDs, auf die autocreate die Adresse automatisch ändert, wenn ein neuer mit der ID &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; erkannt wird und kein entsprechender Device-Name definiert ist.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87261 }}&lt;br /&gt;
&lt;br /&gt;
Ändert man die Adresse, dauert es einen Augenblick, bis alle Register neu übertragen worden sind. &lt;br /&gt;
&lt;br /&gt;
Autocreate ändert bei der Einrichtung und Änderung der ID auch automatisch den Namen. Belässt man die ID im Bereich &amp;lt;code&amp;gt;F0-FE&amp;lt;/code&amp;gt; und ändert den Namen des Device, ist zu berücksichtigen, dass autocreate für neue Devices eine freie neue Adresse anhand der Device-Namen sucht. Dadurch könnte es zu Doppeltverwendung von IDs kommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ zum autocreate kann man ein Device auch von Hand anlegen mit&lt;br /&gt;
 define &amp;lt;device&amp;gt; SWAP &amp;lt;ID&amp;gt;&lt;br /&gt;
Bis allerdings der ProductCode nicht per Attribut hinterlegt ist, was bei autocreate ebenfalls automatisch passiert, funktionieren nur die grundlegenden Funktionen bis zur 2. Modulebene.&lt;br /&gt;
&lt;br /&gt;
=== set ===&lt;br /&gt;
Ist ein SWAP-Device definiert, stehen folgende set-Befehle zur Verfügung:&lt;br /&gt;
* regGet &amp;lt;reg&amp;gt;&lt;br /&gt;
Fragt den Wert des Registers mit der id &amp;lt;reg&amp;gt; ab. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87679 }}&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
Schreibt &amp;lt;data&amp;gt; in den Register mit der id &amp;lt;reg&amp;gt;. &amp;lt;data&amp;gt; muss als HEX Zahl angegeben werden. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt;.&amp;lt;ep&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
write &amp;lt;data&amp;gt; to endpoint &amp;lt;ep&amp;gt; of register &amp;lt;reg&amp;gt;. will not work if no reading for register &amp;lt;reg&amp;gt; is available as all nibbles that are not part of endpoint &amp;lt;ep&amp;gt; will be filled from this reading. ?&lt;br /&gt;
&lt;br /&gt;
* statusRequest&lt;br /&gt;
Veranlasst, dass alle Register und deren Werte einmal übertragen werden.&lt;br /&gt;
&lt;br /&gt;
* readDeviceXML&lt;br /&gt;
Liest das Device-Description-XML-File neu ein.&lt;br /&gt;
&lt;br /&gt;
* clearUnconfirmed&lt;br /&gt;
Löscht die liste der unbestätigten Nachrichten.&lt;br /&gt;
&lt;br /&gt;
* flash [&amp;lt;productCode&amp;gt;|&amp;lt;firmwareFile&amp;gt;]&lt;br /&gt;
Initiiert das „over-the-air“ Firmware update, dass (derzeit) nur von panStamps NRG unterstützt wird.&lt;br /&gt;
** ohne Parameter: Verwendet das SWAP_&amp;lt;current productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;productCode&amp;gt;: Verwendet das SWAP_&amp;lt;productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;firmwareFile&amp;gt;: Verwendet ein &amp;lt;firmwareFile&amp;gt; als absoluten File-Namen des HEX-Files.&lt;br /&gt;
&lt;br /&gt;
=== get ===&lt;br /&gt;
* regList&lt;br /&gt;
Listet alle User-Register des SWAP-Device (Readings). &lt;br /&gt;
&lt;br /&gt;
* regListAll&lt;br /&gt;
Listet alle Register des SWAP-Device (Internals und Readings). &lt;br /&gt;
&lt;br /&gt;
* listUnconfirmed&lt;br /&gt;
Listet alle unbestätigten Nachrichten in der Warteschlange auf, also Nachrichten die von FHEM gesendet wurden, aber der empfang durch das panStamp Modul nicht bestätigt wurde.&lt;br /&gt;
&lt;br /&gt;
* products&lt;br /&gt;
Gibt alle auf dem System bekannten Productcodes nebst Daten aus.&lt;br /&gt;
&lt;br /&gt;
* deviceXML&lt;br /&gt;
Gibt die Daten des zum derzeit zum per Attribut (Productcode) eingerichteten Device-XML-Files aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Wird der Productcode bei der Definition nicht gesetzt, stehen auch nur die Standardbefehle bei zur 2. Modulebene zur Verfügung. &lt;br /&gt;
&lt;br /&gt;
* createUnknownReadings&lt;br /&gt;
Erzeug Readings auch für Register, die im Device-XML-File nicht definiert werden.&lt;br /&gt;
&lt;br /&gt;
* ProductCode&lt;br /&gt;
Legt den ProductCode eines SWAP-Device fest und liest dadurch das dazugehörige Device-Definition-XML-File ein. Erst wenn der ProduktCode als Attribut vorgegeben wurde, z.B. für einen RGB-Sktech:&lt;br /&gt;
 attr &amp;lt;device&amp;gt; ProductCode 0000002200000003&lt;br /&gt;
kommen zu den allgemeinen FHEM set- und get-Kommandos des [[SWAP]] Modul die spezifischen der 3. Modulebene 35_SWAP_&amp;lt;productcode&amp;gt;.pm mit hinzu (Siehe z.B. [[SWAP_0000002200000003]]). Dann werden die SWAP-Nachrichten an das entsprechende Modul weitergegeben und dort verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices, die während der Definition nicht aktiv sind, muss dieses Attribut manuell angelegt werden.&lt;br /&gt;
&lt;br /&gt;
=== Device Definition File ===&lt;br /&gt;
Mit Hilfe der im jeweiligen Device Definition File hinterlegten Beschreibung werden hierzu automatisch userReadings angelegt (Wenn den Endpoints eine Unit mit Factor zugewiesen ist) die neben den reinen Registerwerten in hex auch &#039;&#039;menschenlesbare&#039;&#039; readings der Sensorwerte erzeugen. &lt;br /&gt;
Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
Das entsprechende Device Definition File liegt unter ./FHEM/lib/SWAP wie hier beschrieben [http://forum.fhem.de/index.php/topic,12487.msg86257.html#msg86257].&lt;br /&gt;
&lt;br /&gt;
Hier Beispielhaft anhand eines BMP085 Temperatur- und Luftdrucksensors dargestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress userReadings voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, temperature:0C.0-Temperature {hex(ReadingsVal($name,&amp;quot;0C.0-Temperature&amp;quot;,&amp;quot;0&amp;quot;))*0.1-50}, pressure:0C.1-Pressure {hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01}, pressureNN:0C.1-Pressure {sprintf(&amp;quot;%.2f&amp;quot;,hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01 + AttrVal(&amp;quot;global&amp;quot;, &amp;quot;altitude&amp;quot;, 0)/8.5)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005.png|mini|hochkant=2.5|Resultat eines stateFormat]]&lt;br /&gt;
Aus diesen Readings kann dann mit stateFormat die gewünschte Darstellung für die Raumübersicht erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress stateFormat {sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;temperature&amp;quot;,0)).&amp;quot;°C &amp;quot;.sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;pressureNN&amp;quot;,0)).&amp;quot;mbar&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel ist das Definition File für das RGB-Board rgbdriver.xml.&lt;br /&gt;
&lt;br /&gt;
=== SWAP Register ===&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (00-0A) [https://github.com/panStamp/panstamp/wiki/Standard-SWAP-registers] und beliebig viele sketchabängige Userregister (0B-)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Description Files&#039;&#039;. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Description File erfolgt über den productCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt-Id&#039;&#039; gebildet wird.&lt;br /&gt;
&lt;br /&gt;
In den Systemregistern steht z.&amp;amp;nbsp;B. der productCode, die Deviceadresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert, so dass die Werte auch bei einem Neustart nicht verlorengehen. Beim ersten Starten eines panStamp ist das EEPROM mit FF initialisiert und alle konfigurierbaren Register haben diesen Wert, also z.&amp;amp;nbsp;B. die Adresse FF und das Intervall FFFF (zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Systemregister werden in der Device Detailansicht bei den InternalValues im oberen Bereich angezeigt und die User-Register als reading im unteren Bereich.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen productCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== Übersicht der Register anzeigen ===&lt;br /&gt;
Sobald ein SWAP Device mit dem productCode korrekt angelegt wurde, können die Userregister bzw. alle Register aufgelistet werden: &lt;br /&gt;
 get &amp;lt;device&amp;gt; regList&lt;br /&gt;
 get &amp;lt;device&amp;gt; regListALL&lt;br /&gt;
&lt;br /&gt;
=== Register auslesen oder setzen ===&lt;br /&gt;
Einzelne Register können abgefragt werden mit&lt;br /&gt;
 set &amp;lt;device&amp;gt; regGet &amp;lt;ID&amp;gt;&lt;br /&gt;
oder auch gesetzt werden durch&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet &amp;lt;ID&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=== Intervall bei Sketch mit power down / batterie betriebene Panstamps ===&lt;br /&gt;
Devices mit power down mode durchlaufen während des Booten (beim Einschalten oder bei einem Reset) eine 3 Sekunden Schleife und warten auf SWAP-Kommandos, die z.B. Register für das Sendeintervall oder sonstige Konfigurationen ändern. Nach dieser Zeit wird die normale Loop Schleife im Arduino Sketch gestartet normaler Weise werden die Register mit den Sensorwerten an FHEM gesendet. Power down devices gehen danach schlafen (power down Modus mit extrem niedrigen Stromverbrauch) und wachen regelmässig auf (TX_INTERVAL aus dem Systemregister) um die Sensoren auszulesen und die Werte wieder an FHEM zu senden. Das Sendeintervall betrifft nur das Senden der Sensorwerte. Normalerweise empfängt das panStamp Modul in diesem Modes keine Befehle mehr. Das passiert nur einmalig nach einem Reset. Je nach Sketch kann das natürlich varieren und anders programmiert sein!&lt;br /&gt;
&lt;br /&gt;
Nachrichten an ein panStamp-Modul im power-down-state werden in FHEM gepuffert (siehe INTERNAL SWAP_CMDsPending) und dann an das panStamp-Modul geschickt, sobald dieses sich im SYNC Status befindet. Dieses ist typischer Weise nach dem Startup z.B. nach einem Reset der Fall.&lt;br /&gt;
&lt;br /&gt;
Bei batteriebetriebenen Sensoren sollte das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87409}}&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene panStamp-Module (genauer: Module die den Power-Down-Modus unterstützen) wird das Default Sendeintervall bei der Einrichtung automatisch von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden = 15 Minuten) geändert. Das Intervall wird nur automatisch gesetzt, wenn pwrdownmode im device description file true ist. {{Link2Forum|Topic=12487 |Message=89205}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt mit bestimmten panStamp lib Versionen das Problem das ein Wert von FFFF im Systemregister 0A zum Überlauf führt und der panStamp dann ununterbrochen sendet. Im [[SWAP]] Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen host systemen (z.B. FritzBox) nicht, weil der panStamp so schnell sendet, dass fhem mit dem Abarbeiten so beschäftigt und ausgelastet ist, dass es selber nicht zum senden kommt. Zur Abhilfe kann im sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden. Den Sketch dann noch mal flashen. Wenn der panStamp mit diesem Sketch ein mal durchgelaufen ist, können diese beiden Zeilen wieder entfernen und der panStamp noch mal geflasht werden. Damit wurde das Sendeintervall einmalig auf 0x5555 (0x5555 in Dezimal = 21.845 (Sekunden), entspricht 364 Minuten) gesetzt.&lt;br /&gt;
&lt;br /&gt;
=== Device Adresse automatisch setzen ===&lt;br /&gt;
Erkennt das SWAP Modul ein panStamp Modul mit der Adresse 0xFF wird automatisch eine neue Adresse durch das [[SWAP] Modul vergeben. Die automatisch vergebenen Adressen sind im Bereich 0xF0 bis 0xFE. Das soll das inbetriebnehmen von mehreren panStamp-Modulen gleichzeitig erleichtern. Der automatisch vergeben Adressebereich ist nur begrenzt und sollte nur temporär verwendet werden. Nach der Inbetriebnahme sollte den panStamp Modulen eine individuelle, lokal passende Adresse geändert werden. {{Link2Forum|Topic=12487 |Message=87919}}&lt;br /&gt;
Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87859}}&lt;br /&gt;
&lt;br /&gt;
Im Log sollte etwas in dieser Art auftauchen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:14:29 2: autocreate: define SWAP_F0 SWAP FF 000000010000000E&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP_F0: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP SWAP_F0: changing 09-DeviceAddress from default FF to F0&lt;br /&gt;
2013.07.29 20:14:30 3: SWAP SWAP_F0: changing 0A-PeriodicTxInterval from default FFFF to 0384 (900 seconds)&lt;br /&gt;
&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:16:35 2: autocreate: define SWAP_F1 SWAP_0000002200000003 FF 0000002200000003&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP_F1: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:16:36 3: SWAP SWAP_F1: changing 09-DeviceAddress from default FF to F1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registerinhalt von hex auf Dezimal umrechnen  ===&lt;br /&gt;
Die Registerinhalte sind immer hexadezimale Zahlenwerte. In den meisten Fälle werden diese umgerechnet werden in Dezimalzahlen.&lt;br /&gt;
Hierzu kann die Perlfunktion hex() verwendet werden.&lt;br /&gt;
Beide Funktionsaufrufe geben in diesem Beispiel die Dezimalzahl 250 aus:&lt;br /&gt;
 {hex(&amp;quot;FA&amp;quot;)}&lt;br /&gt;
 {hex(&amp;quot;0xFA&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: panStamp soilmoisture Sketch in FHEM einbinden ===&lt;br /&gt;
Der panStamp soilmoisture Sketch aus dem examples Verzeichnis ist mit dem Standard SWAP Modul kompatibel. &lt;br /&gt;
&lt;br /&gt;
Ein Artikel über ein selbst entwickeltes PanStamp Batterieboard zum Anschluss von Analogsensoren/1Wire und Solarversorgung ist hier [[Bodenfeuchtesensor]] beschrieben. Die Weiterentwicklung zum Umweltsensor ist hier [[PanStamp_Umweltsensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine für einen Vegetronix sensor angepasste Version kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Das Übertragungsintervall ist wie üblich über das regsiter 0A konfigurierbar. Der Sensor wird and GND, D7 für die Versorgungsspannung und A4 für den Messwert angeschlossen. Erfahrungen haben gezeigt, dass bei einem fünfminütigen Übertragungsintervall nach 12 Monaten Laufzeit die Batteriespannung von 1.55V auf 1.4V abfällt. Das würde bedeuten, dass eine Batterie im Batterieboard mindestens eine Laufzeit von drei Jahren haben sollte.&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; stateFormat VWC_A%&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; userReadings Level0_Voltage {hex(ReadingsVal($name,&amp;quot;0C.0-Moisture_level_0&amp;quot;,&amp;quot;0&amp;quot;))*(3.3/1024)}, &lt;br /&gt;
     VWC_A:0C.0-Moisture_level_0 {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**4 + 7.10835 * &lt;br /&gt;
        (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 - 0.569557) / ((ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 + 1))}, &lt;br /&gt;
     voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, &lt;br /&gt;
     battery:0B-Voltage {(ReadingsVal($name,&amp;quot;voltage&amp;quot;,&amp;quot;0&amp;quot;)&amp;lt;1?&amp;quot;low&amp;quot;:&amp;quot;ok&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ soilmositure-plot.jpg|mini|x100px|Bodenfeuchte]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix1.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix2.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem entsprechend erweiterten Sketch lassen sich auch mehrere Sensoren an einem panStamp auslesen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bilder zeigen eine panStamp/Vegetronix Außeneinheit im IP65-Gehäuse. Dieser Aufbau wird ganzjährig den Witterungseinflüssen ausgesetzt. Die auf den Stab aufgesetzte Antenne muss nicht verwendet werden, bei kürzeren Funkstrecken ist eine innenliegende Drahtantenne ausreichend. Bitte in FHEM den RSSI- und LQI-Wert sowie die Gleichmäßigkeit des Empfangens der 5 Minuten Sendeintervalle dementsprechend beobachten.&lt;br /&gt;
&lt;br /&gt;
== Trouble Shooting ==&lt;br /&gt;
=== value has to be 10 byte(s) in size  ===&lt;br /&gt;
&lt;br /&gt;
Es besteht die Möglichkeit, dass die Internals aus irgend einem Grund nicht vollständig sind. &lt;br /&gt;
Abhilfe in einem solchen Falle kann das Absetzen der folgenden beiden Befehlt schaffen&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
set &amp;lt;device&amp;gt; readDeviceXML&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht zum Erfolg führt, hilft ggf. ein Löschen und neu setzen des ProductCode Attributs.&lt;br /&gt;
{{Link2Forum|Topic=34474.0}}&lt;br /&gt;
&lt;br /&gt;
Das Übertragen aller Daten nach dem Statusrequest kann einen Augenblick dauern.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit:&lt;br /&gt;
Die Fehlermeldung kommt immer wenn FHEM nicht weiss welche Firmware auf dem device ist. Das passiert wenn irgendetwas in der Kommunikation schief geht während FHEM initialisiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122414}} &lt;br /&gt;
&lt;br /&gt;
=== register 0F is not known ===&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=84257}}&lt;br /&gt;
&lt;br /&gt;
=== Komplette Übersicht eines Device ===&lt;br /&gt;
&lt;br /&gt;
 list &amp;lt;device&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201467}}&lt;br /&gt;
&lt;br /&gt;
=== fehlender oder falsche Productcode ===&lt;br /&gt;
&lt;br /&gt;
Fehlt der Productcode, werden die zum Sketch zugehörigen Befehle nicht angezeigt und die Register nicht korrekt zugeordnet.&lt;br /&gt;
Verändert man den Productcode, sollte man im Anschluss folgenden Befehlt absetzten, um alle Register neu auszulesen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201910}}&lt;br /&gt;
&lt;br /&gt;
=== missing commands und register 00-0A unvollständig ===&lt;br /&gt;
&lt;br /&gt;
Wenn in den Internals missing commands (SWAP_Sent_unconfirmed) auftauchen und ggf. die Register 00-0A nicht vollständig sind und das Internal &amp;quot;channels&amp;quot; nicht vorhanden ist, gibt es irgendein Kommunikationsproblem.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201939}}&lt;br /&gt;
&lt;br /&gt;
=== Funktion des Autocreate ===&lt;br /&gt;
&lt;br /&gt;
Beim autocreate wird versucht ein Name für das Device zu vergeben, der zur nächsten freien Adresse passt. Während dieses Prozessen bleibt die Adresse erst mal trozdem FF. Erst wenn das Device angelegt wird, kann versucht werden automatisch die Adresse zu setzen, hoffentlich auf die gleiche freie, die beim Namen auch schon gefunden wurde. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=88110}}&lt;br /&gt;
&lt;br /&gt;
=== Adresse manuell setzen ===&lt;br /&gt;
&lt;br /&gt;
Um die Adresse manuell bereits in den Sketch einzubauen kann man wie hier beschrieben vorgehen.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122347}}&lt;br /&gt;
&lt;br /&gt;
=== Undefined subroutine &amp;amp;main::XMLin ===&lt;br /&gt;
Erhält man diese Fehlermeldung&lt;br /&gt;
 Undefined subroutine &amp;amp;main::XMLin called at ./FHEM/34_SWAP.pm line 108.&lt;br /&gt;
 &lt;br /&gt;
 2013.09.26 11:34:24 0: ERROR: Cannot autoload SWAP&lt;br /&gt;
 2013.09.26 11:34:24 3: panStick: Unknown code 000A001B000A000000000100000007, help me!&lt;br /&gt;
&lt;br /&gt;
Es fehlt XML::Simple, was folgendermaßen installiert werden kann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Panstamp antwortet nicht/EEprom to factory defaults ===&lt;br /&gt;
&lt;br /&gt;
Wenn der panStamp nicht antwortet, kann es sein das die Adressen durcheinander gekommen sind. Dann musst man einmal in setup() ein  eepromToFactoryDefaults() aufrufen und damit flashen. Wenn damit einmal gestartet wurde, die Zeile wieder entfernen und den normalen sketch flashen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121677}}&lt;br /&gt;
&lt;br /&gt;
=== Factory Defaults ===&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp auf den Auslieferungszustand zurückzusetzen, muss man beim Sketch folgendes in die setup() Routine einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
&lt;br /&gt;
=== Status LED ===&lt;br /&gt;
&lt;br /&gt;
Die Status LED auf dem Board wird in der config.h deaktiviert, indem man die Zeit #define LED_DEBUG mit &amp;quot;//&amp;quot; auskommentiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=164731}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=11799</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=11799"/>
		<updated>2015-07-23T06:38:11Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp Innenraumsensor}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery AA&lt;br /&gt;
|HWSize=48.5 x 100 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Umweltsensors&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zu panStamps und den grundlegenden Modulen um sie mit Fhem zu integrieren finden sich im zugehörigen [[PanStamp|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bootloader flashen ===&lt;br /&gt;
Anschließend muss man nun die Fuses korrekt setzen (8Mhz Internal, 3.3v):&lt;br /&gt;
&lt;br /&gt;
 avrdude -p m2560 -c stk500v2 -P /dev/ttyUSB0 -U lfuse:w:0xE2:m -U hfuse:w:0xD4:m&lt;br /&gt;
&lt;br /&gt;
und final den Bootloader flashen &lt;br /&gt;
 wget https://github.com/lthiery/Sentinel/blob/master/sketches/hardware/mega-pro-3.3V/bootloaders/MegaPro3.3V-8MHz-57600.hex&lt;br /&gt;
 avrdude -p m2560 -c stk500v2 -P /dev/ttyUSB0 -U flash:w:MegaPro3.3V-8MHz-57600.hex&lt;br /&gt;
&lt;br /&gt;
Jetzt kann man mit einem normalen USB-ParallelProgrammer testen ob der Chip ansprechbar ist:&lt;br /&gt;
 avrdude -c arduino -b 57600 -P /dev/ttyUSB0 -p m2560 -v&lt;br /&gt;
&lt;br /&gt;
und anschließend den Sketch drauf flashen:&lt;br /&gt;
 avrdude -c arduino -b 57600 -P /dev/ttyUSB3 -p m2560 -U flash:w:MeinSketch.hex&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:PanStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Diskussion:Panstamp_Innenraumsensor&amp;diff=11798</id>
		<title>Diskussion:Panstamp Innenraumsensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Diskussion:Panstamp_Innenraumsensor&amp;diff=11798"/>
		<updated>2015-07-23T06:37:04Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: TeeVau verschob die Seite Diskussion:Panstamp Innenraumsensor nach Diskussion:PanStamp Innenraumsensor: Schreibweise den anderen Artikeln anpassen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[Diskussion:PanStamp Innenraumsensor]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Diskussion:ESP32_Innenraumsensor_und_-Steuerung&amp;diff=11797</id>
		<title>Diskussion:ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Diskussion:ESP32_Innenraumsensor_und_-Steuerung&amp;diff=11797"/>
		<updated>2015-07-23T06:37:04Z</updated>

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

		<summary type="html">&lt;p&gt;TeeVau: TeeVau verschob die Seite Panstamp Innenraumsensor nach PanStamp Innenraumsensor: Schreibweise den anderen Artikeln anpassen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[PanStamp Innenraumsensor]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=11795</id>
		<title>ESP32 Innenraumsensor und -Steuerung</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ESP32_Innenraumsensor_und_-Steuerung&amp;diff=11795"/>
		<updated>2015-07-23T06:37:04Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: TeeVau verschob die Seite Panstamp Innenraumsensor nach PanStamp Innenraumsensor: Schreibweise den anderen Artikeln anpassen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:panStamp}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sensor&lt;br /&gt;
|HWCategory=HardwareMods&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V &lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery AA&lt;br /&gt;
|HWSize=48.5 x 100 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=für diesen Sketch: [http://forum.fhem.de/index.php?action=profile;u=118 Tobias]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung, Seite erst noch im Aufbau!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Umweltsensors&lt;br /&gt;
&lt;br /&gt;
Weiterführende Information zu panStamps und den grundlegenden Modulen um sie mit Fhem zu integrieren finden sich im zugehörigen [[PanStamp|Wiki Artikel]].&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bootloader flashen ===&lt;br /&gt;
Anschließend muss man nun die Fuses korrekt setzen (8Mhz Internal, 3.3v):&lt;br /&gt;
&lt;br /&gt;
 avrdude -p m2560 -c stk500v2 -P /dev/ttyUSB0 -U lfuse:w:0xE2:m -U hfuse:w:0xD4:m&lt;br /&gt;
&lt;br /&gt;
und final den Bootloader flashen &lt;br /&gt;
 wget https://github.com/lthiery/Sentinel/blob/master/sketches/hardware/mega-pro-3.3V/bootloaders/MegaPro3.3V-8MHz-57600.hex&lt;br /&gt;
 avrdude -p m2560 -c stk500v2 -P /dev/ttyUSB0 -U flash:w:MegaPro3.3V-8MHz-57600.hex&lt;br /&gt;
&lt;br /&gt;
Jetzt kann man mit einem normalen USB-ParallelProgrammer testen ob der Chip ansprechbar ist:&lt;br /&gt;
 avrdude -c arduino -b 57600 -P /dev/ttyUSB0 -p m2560 -v&lt;br /&gt;
&lt;br /&gt;
und anschließend den Sketch drauf flashen:&lt;br /&gt;
 avrdude -c arduino -b 57600 -P /dev/ttyUSB3 -p m2560 -U flash:w:MeinSketch.hex&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:PanStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:Panstamp-Systemoverview.jpg&amp;diff=11793</id>
		<title>Datei:Panstamp-Systemoverview.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:Panstamp-Systemoverview.jpg&amp;diff=11793"/>
		<updated>2015-07-23T06:29:55Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: TeeVau lud eine neue Version von Datei:Panstamp-Systemoverview.jpg hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11772</id>
		<title>SWAP</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11772"/>
		<updated>2015-07-21T07:33:30Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: /* Anwendung */ Inhalte aus panStamp Artikel eingefügt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{SEITENTITEL:SWAP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Modul zur allgemeinen Ansteuerung sämtlicher PanStamp Boards.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=SWAP&lt;br /&gt;
|ModForumArea=&lt;br /&gt;
|ModFTopic=&lt;br /&gt;
|ModTechName=34_SWAP.pm&lt;br /&gt;
|ModOwner=André/ justme1968 ({{Link2FU|430|Forum}} / [[Benutzer Diskussion:Justme|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[SWAP]] ist das Basismodul für die Unterstützung der PanStamp Baugruppen. Zur Kommunikation in einem PanStamp Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([http://code.google.com/p/panstamp/wiki/SWAP SWAP]).&lt;br /&gt;
Die komplette SWAP- Kommunikation ist registerbasiert und erfolgt mit Nachrichten um diese Register abzufragen, zu setzen und deren Inhalt zu senden. Alle Register lassen sich lesen, manche auch beschreiben. Für eine tiefgreifende FHEM Integration können weitere Module (wie z.B. xxxx) vorhanden sein. Diese Module bauen auf das SWAP Modul auf und bedienen im backend ebenfalls die PanStamp Module über die Register. Der PanStamp Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Für den Betrieb ist XML:Simple notwendig, dass bei Bedarf folgendermaßen nachinstalliert werden kann [http://forum.fhem.de/index.php?topic=12487.msg87373#msg87373].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese Abhängigkeit kann beim Betrieb auf einer Fritzbox ebenfalls zu Problemen führen. Das SWAP Modul greift auf das [[PanStamp]] Modul zu, was vorher per define anglegt werden muss.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005-detail.png|mini|hochkant=2.5|Readings]]&lt;br /&gt;
Bei SWAP geht alle Kommunikation über &#039;Register&#039;, dies sind unterschiedlich lange Werte die entweder nur gelesen oder gelesen und geschrieben werden können.&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (&amp;lt;code&amp;gt;00&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt;) [http://code.google.com/p/panstamp/wiki/SWAPregisters] und beliebig viele, sketchabängige Userregister (&amp;lt;code&amp;gt;0B&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;xx&amp;lt;/code&amp;gt;)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Description Files&#039;&#039;, die in &amp;lt;code&amp;gt;.../FHEM/lib/SWAP&amp;lt;/code&amp;gt; zu finden sind. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Description File erfolgt über den productCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt&#039;&#039;-Id gebildet wird. Damit dies funktioniert, muss das Attribut productCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
In den Systemregistern  steht z.b. der productcode, die Device Adresse im SWAP Protokoll und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert und die Werte gehen auch beim Neustart nicht verloren. Beim aller ersten Starten ist das EEPROM mit &amp;quot;FF&amp;quot; initialisiert und alle konfigurierbaren Register haben diesen Wert. also z.b. Adresse FF und Intervall FFFF (HEX in Sekunden, das wären dann zwischen 18 und 19 Stunden).&lt;br /&gt;
Die Inhalte der Systemregister stehen als INTERNAL, im oberen Bereich der Detail Ansicht eines FHEM-Device, in FHEMWEB, die Userregister als Readings im unteren.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen productCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
Alle low level Dinge wie Register ID oder Register Wert können mit hex Werten direkt angepasst werden. Im Normalbetrieb ist dieses aber nicht notwendig und es kann über &#039;vereinfachte&#039; Kommandos mit den Registernamen verwenden kann. Diese Funktionalität stellt das eines der Module zur Verfügung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 08 &amp;lt;netzwerk id als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87436 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87436#msg87436]&lt;br /&gt;
&lt;br /&gt;
Dieses Modul stellt unter anderem folgende grundlegende Funktionalitäten zur Verfügung&lt;br /&gt;
* Es wird eine command Liste für Devices im power down Modus gehalten. Sobald das Device online kommt werden die Kommandos automatisch übertragen.&lt;br /&gt;
* Die userReadings für &#039;menschenlesbare&#039; Readings werden anhand des device description files automatisch erzeugt&lt;br /&gt;
* Es ist jetzt möglich direkt endpoints (Teile eines Registers) zu schreiben (???)&lt;br /&gt;
* (Fast) keine hardkodierte Sonderbehandlung mehr für das RGB-Board. Das SWAP Modul kann mit jedem beliebige Swap Device umgehen.&lt;br /&gt;
* Es gibt eine dritte (optionale) Modulschicht neben dem PanStamp modul für die Hardware und dem SWAP Modul für das Protokoll. Mit dem generellen SWAP Modul lasen sich alle SWAP devices &#039;zu fuss&#039; über die Register ansprechen. Um die register auf einer höheren Ebene auf FHEM Kommandos wie on/off/on-for-timer zu mappen ist dann diese dritte schicht zuständig. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=78502 }} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic=12487.msg78502#msg78502]&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Info: Das SWAP Modul unterstützt autocreate. Bei der Inbetriebnahme sollte autocreate aktiviert sein, da dies die Einrichtung deutlich vereinfacht.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn der panStick läuft, sollten die SWAP-Devices per autocreate angelegt werden, sobald sie das erste mal senden, z.B. nach dem Einschalten oder nach einem Reset.&lt;br /&gt;
&lt;br /&gt;
Normalerweise werden beim autocreate alle Werte abgefragt und angezeigt. Das geht normalerweise ohne jedes Zutun. &lt;br /&gt;
&lt;br /&gt;
Panstick rein -&amp;gt; broadcast -&amp;gt; discovery -&amp;gt; anlegen. &lt;br /&gt;
&lt;br /&gt;
Bei Devices mit power down mode erfolgt dieses das erste mal wenn sie Strom haben. &lt;br /&gt;
&lt;br /&gt;
Alle panStamps durchlaufen beim Starten eine bestimmte Einschaltsequenz. Sie melden sich mit ihrer ID und ihrem productcode. Die ID ist die device Addresse und bei einem frisch geflashten panStamp in der Regel FF. Das SWAP Modul versucht, ein Device mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern.&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, sonst haben mehrere die gleiche Addresse und das gibt Konflikte. &lt;br /&gt;
&lt;br /&gt;
Wer mehrere devices hat, sollte jedem nach dem Anlegen mit &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eine eigene id zuweisen. Die landen auf dem panStamp im EEPROM und sind auch nach Neustart noch vorhanden. &lt;br /&gt;
&lt;br /&gt;
Die anderen Adressen sind wie folgt belegt:&lt;br /&gt;
* 00 ist die Broadcast-ID&lt;br /&gt;
* 01 ist die ID des Pansticks am FHEM-System&lt;br /&gt;
* FF ist die Default ID, die jeder panStamp im Auslieferungszustand besitzt&lt;br /&gt;
* F0-FE sind die IDs, auf die autocreate die Adresse automatisch ändert, wenn ein neuer mit der ID FF erkannt wird und kein entsprechender Device-Name definiert ist.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87261 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87261#msg87261]&lt;br /&gt;
&lt;br /&gt;
Ändert man die Adresse, dauert es einen Augenblick, bis alle Register neu übertragen worden sind. &lt;br /&gt;
&lt;br /&gt;
Autocreate ändert bei der Einrichtung und Änderung der ID auch automatisch den Namen. Belässt man die ID im Bereich F0-FE und ändert den Namen des Device, ist zu berücksichtigen, dass autocreate für neue Devices eine freie neue Adresse anhand der Device-Namen sucht. Dadurch könnte es zu Doppeltverwendung von IDs kommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ zum autocreate kann man ein Device auch von Hand anlegen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define &amp;lt;device&amp;gt; SWAP &amp;lt;ID&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bis allerdings der Productcode nicht per Attribut hinterlegt ist, was bei autocreate ebenfalls automatisch geschied, funktionieren nur die grundlegenden Funktionen bis zur 2. Modulebene.&lt;br /&gt;
&lt;br /&gt;
=== set ===&lt;br /&gt;
Ist ein SWAP-Device definiert, stehen folgende set-Befehle zur Verfügung:&lt;br /&gt;
* regGet &amp;lt;reg&amp;gt;&lt;br /&gt;
Fragt den Wert des Registers mit der id &amp;lt;reg&amp;gt; ab. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87679 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87679.html#msg87679]&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
Schreibt &amp;lt;data&amp;gt; in den Register mit der id &amp;lt;reg&amp;gt;. &amp;lt;data&amp;gt; muss als HEX Zahl angegeben werden. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt;.&amp;lt;ep&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
write &amp;lt;data&amp;gt; to endpoint &amp;lt;ep&amp;gt; of register &amp;lt;reg&amp;gt;. will not work if no reading for register &amp;lt;reg&amp;gt; is available as all nibbles that are not part of endpoint &amp;lt;ep&amp;gt; will be filled from this reading. ?&lt;br /&gt;
&lt;br /&gt;
* statusRequest&lt;br /&gt;
Veranlasst, dass alle Register und deren Werte einmal übertragen werden.&lt;br /&gt;
&lt;br /&gt;
* readDeviceXML&lt;br /&gt;
Liest das Device-Description-XML-File neu ein.&lt;br /&gt;
&lt;br /&gt;
* clearUnconfirmed&lt;br /&gt;
Löscht die liste der unbestätigten Nachrichten.&lt;br /&gt;
&lt;br /&gt;
* flash [&amp;lt;productCode&amp;gt;|&amp;lt;firmwareFile&amp;gt;]&lt;br /&gt;
Initiiert das „over-the-air“ Firmware update, dass (derzeit) nur von NRG panStamps unterstützt wird.&lt;br /&gt;
** ohne Parameter: Verwendet das SWAP_&amp;lt;current productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;productCode&amp;gt;: Verwendet das SWAP_&amp;lt;productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;firmwareFile&amp;gt;: Verwendet ein &amp;lt;firmwareFile&amp;gt; als absoluten File-Namen des HEX-Files.&lt;br /&gt;
&lt;br /&gt;
=== get ===&lt;br /&gt;
* regList&lt;br /&gt;
Listet alle User-Register des SWAP-Device (Readings). &lt;br /&gt;
&lt;br /&gt;
* regListAll&lt;br /&gt;
Listet alle Register des SWAP-Device (Internals und Readings). &lt;br /&gt;
&lt;br /&gt;
* listUnconfirmed&lt;br /&gt;
Listet alle unbestätigten Nachrichten in der Warteschlange auf, also Nachrichten die von FHEM gesendet wurden, aber der empfang durch das panStamp Modul nicht bestätigt wurde.&lt;br /&gt;
&lt;br /&gt;
* products&lt;br /&gt;
Gibt alle auf dem System bekannten Productcodes nebst Daten aus.&lt;br /&gt;
&lt;br /&gt;
* deviceXML&lt;br /&gt;
Gibt die Daten des zum derzeit zum per Attribut (Productcode) eingerichteten Device-XML-Files aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Wird der Productcode bei der Definition nicht gesetzt, stehen auch nur die Standardbefehle bei zur 2. Modulebene zur Verfügung. &lt;br /&gt;
&lt;br /&gt;
* createUnknownReadings&lt;br /&gt;
Erzeug Readings auch für Register, die im Device-XML-File nicht definiert werden.&lt;br /&gt;
&lt;br /&gt;
* ProductCode&lt;br /&gt;
Legt den ProductCode eines SWAP-Device fest und liest dadurch das dazugehörige Device-Description-XML-File ein. Erst wenn der ProduktCode als Attribut vorgegeben wurde, z.B. für einen RGB-Sktech:&lt;br /&gt;
 attr &amp;lt;device&amp;gt; ProductCode 0000002200000003&lt;br /&gt;
kommen zu den allgemeinen FHEM set- und get-Kommandos des [[SWAP]] Modul die spezifischen der 3. Modulebene 35_SWAP_&amp;lt;productcode&amp;gt;.pm mit hinzu (Siehe z.B. [[SWAP_0000002200000003]]). Dann werden die SWAP-Nachrichten an das entsprechende Modul weitergegeben und dort verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices, die während der Definition nicht aktiv sind, muss dieses Attribut manuell angelegt werden.&lt;br /&gt;
&lt;br /&gt;
=== Device Description File ===&lt;br /&gt;
Mit Hilfe der im jeweiligen Device Description File hinterlegten Beschreibung werden hierzu automatisch userReadings angelegt die neben den reinen Registerwerten in hex auch &#039;menschenlesbare&#039; readings der Sensorwerte erzeugen. &lt;br /&gt;
Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
Das entsprechende Device Description File liegt unter ./FHEM/lib/SWAP wie hier beschrieben [http://forum.fhem.de/index.php/topic,12487.msg86257.html#msg86257].&lt;br /&gt;
&lt;br /&gt;
Hier Beispielhaft anhand eines BMP085 Temperatur- und Luftdrucksensors dargestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress userReadings voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, temperature:0C.0-Temperature {hex(ReadingsVal($name,&amp;quot;0C.0-Temperature&amp;quot;,&amp;quot;0&amp;quot;))*0.1-50}, pressure:0C.1-Pressure {hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01}, pressureNN:0C.1-Pressure {sprintf(&amp;quot;%.2f&amp;quot;,hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01 + AttrVal(&amp;quot;global&amp;quot;, &amp;quot;altitude&amp;quot;, 0)/8.5)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005.png|mini|hochkant=2.5|Resultat eines stateFormat]]&lt;br /&gt;
Aus diesen readings kann dann mit stateFormat die gewünschte Darstellung für die Raumübersicht erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress stateFormat {sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;temperature&amp;quot;,0)).&amp;quot;°C &amp;quot;.sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;pressureNN&amp;quot;,0)).&amp;quot;mbar&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel ist das Description File für das RGB-Board rgbdriver.xml.&lt;br /&gt;
&lt;br /&gt;
=== SWAP Register ===&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (00-0A) [http://code.google.com/p/panstamp/wiki/SWAPregisters] und beliebig viele sketchabängige Userregister (0B-)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Description Files&#039;&#039;. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Description File erfolgt über den productCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt-Id&#039;&#039; gebildet wird.&lt;br /&gt;
&lt;br /&gt;
In den Systemregistern steht z.&amp;amp;nbsp;B. der productCode, die Deviceadresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert, so dass die Werte auch bei einem Neustart nicht verlorengehen. Beim ersten Starten eines panStamp ist das EEPROM mit FF initialisiert und alle konfigurierbaren Register haben diesen Wert, also z.&amp;amp;nbsp;B. die Adresse FF und das Intervall FFFF (zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Systemregister werden in der Device Detailansicht bei den InternalValues im oberen Bereich angezeigt und die User-Register als reading im unteren Bereich.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen productCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== Übersicht der Register anzeigen ===&lt;br /&gt;
Sobald ein SWAP Device mit dem productCode korrekt angelegt wurde, können die Userregister bzw. alle Register aufgelistet werden: &lt;br /&gt;
 get &amp;lt;device&amp;gt; regList&lt;br /&gt;
 get &amp;lt;device&amp;gt; regListALL&lt;br /&gt;
&lt;br /&gt;
=== Register auslesen oder setzen ===&lt;br /&gt;
Einzelne Register können abgefragt werden mit&lt;br /&gt;
 set &amp;lt;device&amp;gt; regGet &amp;lt;ID&amp;gt;&lt;br /&gt;
oder auch gesetzt werden durch&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet &amp;lt;ID&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=== Intervall bei Sketch mit power down / batterie betriebene Panstamps ===&lt;br /&gt;
Devices mit power down mode durchlaufen während des Booten (beim Einschalten oder bei einem Reset) eine 3 Sekunden Schleife und warten auf SWAP-Kommandos, die z.B. Register für das Sendeintervall oder sonstige Konfigurationen ändern. Nach dieser Zeit wird die normale Loop Schleife im Arduino Sketch gestartet normaler Weise werden die Register mit den Sensorwerten an FHEM gesendet. Power down devices gehen danach schlafen (power down Modus mit extrem niedrigen Stromverbrauch) und wachen regelmässig auf (TX_INTERVAL aus dem Systemregister) um die Sensoren auszulesen und die Werte wieder an FHEM zu senden. Das Sendeintervall betrifft nur das Senden der Sensorwerte. Normalerweise empfängt das panStamp Modul in diesem Modes keine Befehle mehr. Das passiert nur einmalig nach einem Reset. Je nach Sketch kann das natürlich varieren und anders programmiert sein!&lt;br /&gt;
&lt;br /&gt;
Nachrichten an ein panStamp-Modul im power-down-state werden in FHEM gepuffert (siehe INTERNAL SWAP_CMDsPending) und dann an das panStamp-Modul geschickt, sobald dieses sich im SYNC Status befindet. Dieses ist typischer Weise nach dem Startup z.B. nach einem Reset der Fall.&lt;br /&gt;
&lt;br /&gt;
Bei batteriebetriebenen Sensoren sollte das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87409}}&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene panStamp-Module (genauer: Module die den Power-Down-Modus unterstützen) wird das Default Sendeintervall bei der Einrichtung automatisch von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden = 15 Minuten) geändert. Das Intervall wird nur automatisch gesetzt, wenn pwrdownmode im device description file true ist. {{Link2Forum|Topic=12487 |Message=89205}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt mit bestimmten panStamp lib Versionen das Problem das ein Wert von FFFF im Systemregister 0A zum Überlauf führt und der panStamp dann ununterbrochen sendet. Im [[SWAP]] Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen host systemen (z.B. FritzBox) nicht, weil der panStamp so schnell sendet, dass fhem mit dem Abarbeiten so beschäftigt und ausgelastet ist, dass es selber nicht zum senden kommt. Zur Abhilfe kann im sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden. Den Sketch dann noch mal flashen. Wenn der panStamp mit diesem Sketch ein mal durchgelaufen ist, können diese beiden Zeilen wieder entfernen und der panStamp noch mal geflasht werden. Damit wurde das Sendeintervall einmalig auf 0x5555 (0x5555 in Dezimal = 21.845 (Sekunden), entspricht 364 Minuten) gesetzt.&lt;br /&gt;
&lt;br /&gt;
=== Device Adresse automatisch setzen ===&lt;br /&gt;
Erkennt das SWAP Modul ein panStamp Modul mit der Adresse 0xFF wird automatisch eine neue Adresse durch das [[SWAP] Modul vergeben. Die automatisch vergebenen Adressen sind im Bereich 0xF0 bis 0xFE. Das soll das inbetriebnehmen von mehreren panStamp-Modulen gleichzeitig erleichtern. Der automatisch vergeben Adressebereich ist nur begrenzt und sollte nur temporär verwendet werden. Nach der Inbetriebnahme sollte den panStamp Modulen eine individuelle, lokal passende Adresse geändert werden. {{Link2Forum|Topic=12487 |Message=87919}}&lt;br /&gt;
Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87859}}&lt;br /&gt;
&lt;br /&gt;
Im Log sollte etwas in dieser Art auftauchen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:14:29 2: autocreate: define SWAP_F0 SWAP FF 000000010000000E&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP_F0: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP SWAP_F0: changing 09-DeviceAddress from default FF to F0&lt;br /&gt;
2013.07.29 20:14:30 3: SWAP SWAP_F0: changing 0A-PeriodicTxInterval from default FFFF to 0384 (900 seconds)&lt;br /&gt;
&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:16:35 2: autocreate: define SWAP_F1 SWAP_0000002200000003 FF 0000002200000003&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP_F1: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:16:36 3: SWAP SWAP_F1: changing 09-DeviceAddress from default FF to F1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registerinhalt von hex auf Dezimal umrechnen  ===&lt;br /&gt;
Die Registerinhalte sind immer hexadezimale Zahlenwerte. In den meisten Fälle werden diese umgerechnet werden in Dezimalzahlen.&lt;br /&gt;
Hierzu kann die Perlfunktion hex() verwendet werden.&lt;br /&gt;
Beide Funktionsaufrufe geben in diesem Beispiel die Dezimalzahl 250 aus:&lt;br /&gt;
 {hex(&amp;quot;FA&amp;quot;)}&lt;br /&gt;
 {hex(&amp;quot;0xFA&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: panStamp soilmoisture Sketch in FHEM einbinden ===&lt;br /&gt;
Der panStamp soilmoisture Sketch aus dem examples Verzeichnis ist mit dem Standard SWAP Modul kompatibel. &lt;br /&gt;
&lt;br /&gt;
Ein Artikel über ein selbst entwickeltes PanStamp Batterieboard zum Anschluss von Analogsensoren/1Wire und Solarversorgung ist hier [[Bodenfeuchtesensor]] beschrieben. Die Weiterentwicklung zum Umweltsensor ist hier [[PanStamp_Umweltsensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine für einen Vegetronix sensor angepasste Version kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Das Übertragungsintervall ist wie üblich über das regsiter 0A konfigurierbar. Der Sensor wird and GND, D7 für die Versorgungsspannung und A4 für den Messwert angeschlossen. Erfahrungen haben gezeigt, dass bei einem fünfminütigen Übertragungsintervall nach 12 Monaten Laufzeit die Batteriespannung von 1.55V auf 1.4V abfällt. Das würde bedeuten, dass eine Batterie im Batterieboard mindestens eine Laufzeit von drei Jahren haben sollte.&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; stateFormat VWC_A%&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; userReadings Level0_Voltage {hex(ReadingsVal($name,&amp;quot;0C.0-Moisture_level_0&amp;quot;,&amp;quot;0&amp;quot;))*(3.3/1024)}, &lt;br /&gt;
     VWC_A:0C.0-Moisture_level_0 {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**4 + 7.10835 * &lt;br /&gt;
        (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 - 0.569557) / ((ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 + 1))}, &lt;br /&gt;
     voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, &lt;br /&gt;
     battery:0B-Voltage {(ReadingsVal($name,&amp;quot;voltage&amp;quot;,&amp;quot;0&amp;quot;)&amp;lt;1?&amp;quot;low&amp;quot;:&amp;quot;ok&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ soilmositure-plot.jpg|mini|x100px|Bodenfeuchte]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix1.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix2.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem entsprechend erweiterten Sketch lassen sich auch mehrere Sensoren an einem panStamp auslesen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bilder zeigen eine panStamp/Vegetronix Außeneinheit im IP65-Gehäuse. Dieser Aufbau wird ganzjährig den Witterungseinflüssen ausgesetzt. Die auf den Stab aufgesetzte Antenne muss nicht verwendet werden, bei kürzeren Funkstrecken ist eine innenliegende Drahtantenne ausreichend. Bitte in FHEM den RSSI- und LQI-Wert sowie die Gleichmäßigkeit des Empfangens der 5 Minuten Sendeintervalle dementsprechend beobachten.&lt;br /&gt;
&lt;br /&gt;
== Trouble Shooting ==&lt;br /&gt;
=== value has to be 10 byte(s) in size  ===&lt;br /&gt;
&lt;br /&gt;
Es besteht die Möglichkeit, dass die Internals aus irgend einem Grund nicht vollständig sind. &lt;br /&gt;
Abhilfe in einem solchen Falle kann das Absetzen der folgenden beiden Befehlt schaffen&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
set &amp;lt;device&amp;gt; readDeviceXML&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht zum Erfolg führt, hilft ggf. ein Löschen und neu setzen des ProductCode Attributs.&lt;br /&gt;
{{Link2Forum|Topic=34474.0}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=34474.0]&lt;br /&gt;
&lt;br /&gt;
Das Übertragen aller Daten nach dem Statusrequest kann einen Augenblick dauern.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit:&lt;br /&gt;
Die Fehlermeldung kommt immer wenn FHEM nicht weiss welche Firmware auf dem device ist. Das passiert wenn irgendetwas in der Kommunikation schief geht während FHEM initialisiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122414}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122414.html#msg122414]&lt;br /&gt;
&lt;br /&gt;
=== register 0F is not known ===&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=84257}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg84257.html#msg84257]&lt;br /&gt;
&lt;br /&gt;
=== Komplette Übersicht eines Device ===&lt;br /&gt;
&lt;br /&gt;
 list &amp;lt;device&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201467}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201467#msg201467]&lt;br /&gt;
&lt;br /&gt;
=== fehlender oder falsche Productcode ===&lt;br /&gt;
&lt;br /&gt;
Fehlt der Productcode, werden die zum Sketch zugehörigen Befehle nicht angezeigt und die Register nicht korrekt zugeordnet.&lt;br /&gt;
Verändert man den Productcode, sollte man im Anschluss folgenden Befehlt absetzten, um alle Register neu auszulesen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201910}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201910#msg201910]&lt;br /&gt;
&lt;br /&gt;
=== missing commands und register 00-0A unvollständig ===&lt;br /&gt;
&lt;br /&gt;
Wenn in den Internals missing commands (SWAP_Sent_unconfirmed) auftauchen und ggf. die Register 00-0A nicht vollständig sind und das Internal &amp;quot;channels&amp;quot; nicht vorhanden ist, gibt es irgendein Kommunikationsproblem.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201939}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201939#msg201939]&lt;br /&gt;
&lt;br /&gt;
=== Funktion des Autocreate ===&lt;br /&gt;
&lt;br /&gt;
Beim autocreate wird versucht ein Name für das Device zu vergeben, der zur nächsten freien Adresse passt. Während dieses Prozessen bleibt die Adresse erst mal trozdem FF. Erst wenn das Device angelegt wird, kann versucht werden automatisch die Adresse zu setzen, hoffentlich auf die gleiche freie, die beim Namen auch schon gefunden wurde. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=88110}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg88110.html#msg88110]&lt;br /&gt;
&lt;br /&gt;
=== Adresse manuell setzen ===&lt;br /&gt;
&lt;br /&gt;
Um die Adresse manuell bereits in den Sketch einzubauen kann man wie hier beschrieben vorgehen.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122347}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122347.html#msg122347]&lt;br /&gt;
&lt;br /&gt;
=== Undefined subroutine &amp;amp;main::XMLin ===&lt;br /&gt;
Erhält man diese Fehlermeldung&lt;br /&gt;
 Undefined subroutine &amp;amp;main::XMLin called at ./FHEM/34_SWAP.pm line 108.&lt;br /&gt;
 &lt;br /&gt;
 2013.09.26 11:34:24 0: ERROR: Cannot autoload SWAP&lt;br /&gt;
 2013.09.26 11:34:24 3: panStick: Unknown code 000A001B000A000000000100000007, help me!&lt;br /&gt;
&lt;br /&gt;
Es fehlt XML::Simple, was folgendermaßen installiert werden kann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Panstamp antwortet nicht/EEprom to factory defaults ===&lt;br /&gt;
&lt;br /&gt;
Wenn der panStamp nicht antwortet, kann es sein das die Adressen durcheinander gekommen sind. Dann musst man einmal in setup() ein  eepromToFactoryDefaults() aufrufen und damit flashen. Wenn damit einmal gestartet wurde, die Zeile wieder entfernen und den normalen sketch flashen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121677}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg121677#msg121677]&lt;br /&gt;
&lt;br /&gt;
=== Factory Defaults ===&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp auf den Auslieferungszustand zurückzusetzen, muss man beim Sketch folgendes in die setup() Routine einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg157125#msg157125]&lt;br /&gt;
&lt;br /&gt;
=== Status LED ===&lt;br /&gt;
&lt;br /&gt;
Die Status LED auf dem Board wird in der config.h deaktiviert, indem man die Zeit #define LED_DEBUG mit &amp;quot;//&amp;quot; auskommentiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=164731}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg164731.html#msg164731]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp&amp;diff=11771</id>
		<title>PanStamp</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp&amp;diff=11771"/>
		<updated>2015-07-21T07:32:49Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Kapitel Systemübersicht aus panStamp in eigenständigen Artikel übernommen, Kapitel SWAP in Artikel SWAP übernommen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{SEITENTITEL:panStamp}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V (panStick: 5V USB)&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery (panStick: USB)&lt;br /&gt;
|HWSize=17.7 x 30.5 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz&lt;br /&gt;
|RNText=Auf der Diskussionsseite dieses Artikels gibt es eine Neufassung des Artikels mit der Bitte um Korrektur direkt hier oder konstruktive Kritik [http://forum.fhem.de/index.php/topic,12487.msg290966.html#msg290966]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel, als mutmaßlicher Eingangsartikel zu dem Thema, beschreibt das FHEM Modul panStamp, was das Funkinterface zu FHEM bildet. Eine [[panStamp_(Systemübersicht)|Systemübersicht]] ist in einem separaten Artikel beschrieben. Der Focus liegt hier natürlich auf die Integration mit FHEM. Zu der Hardware [[panStamp]] gibt es Herstellerseitig eine eigenen Community mit [http://www.panstamp.org/forum/ Forum] und [https://github.com/panStamp/panstamp/wiki Wiki], sowie [https://github.com/panStamp/panstamp/wiki/Downloads Downloads] auf [https://github.com/panStamp Github].&lt;br /&gt;
&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Ardunio IDE oder mit dem ino Kommandozeilen Binary programmieren. Der [[panStamp]] Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;. Zur Kommunikation in einem [[panStamp]] Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([http://code.google.com/p/panstamp/wiki/SWAP SWAP]). Um einen [[panStamp]] in Betrieb zu nehmen muss er unbedingt mit einer Antenne oder einem stück Draht in der [https://code.google.com/p/panstamp/wiki/antennalengths richtigen Länge] bestückt sein. Ohne Antenne funktioniert die Übertragung nicht. Auch nicht auf kurze Distanzen.&lt;br /&gt;
&lt;br /&gt;
== Das FHEM Modul panStamp ==&lt;br /&gt;
=== Allgemein ===&lt;br /&gt;
Die Integration in FHEM erfolgt über eine [[PanStamp_(Systemübersicht)#FHEM_Module|Reihe von Modulen]] die im folgenden und [[Kategorie:PanStamp anderen]] Artikel genauer beschrieben sind. Das Modul [[panStamp]] erstellt dabei das IO-Device in FHEM.&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Als Schnittstelle zwischen FHEM und einem [[panStamp]] Netzwerk dient entweder ein [[panStick]] (USB Stick mit aufgestecktem panStamp) oder ein panShield mit integriertem [[panStamp]] an einem Raspberry Pi. Der so angebundene [[panStamp]] wird mit einem (bei Auslieferung des panStamps vorinstallierten) [[panStick|Modem-Sketch]] als RF-Modem verwendet und über das FHEM Modul [[panStamp]] angesprochen. Der [[panStick]] kann auch per USB an einer anderen Serverhardware angebunden werden. Die Kommunikation zu FHEM erfolgt dann z.B. über ser2net oder FHEM2FHEM über LAN.&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Define ====&lt;br /&gt;
Das Device [[panStick]] wird derzeit (01.05.2015) nicht durch autocreate angelegt. Daher muss es manuell entsprechend folgendem Befehl angelegt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;define panStick panStamp /dev/ttyUSBx@38400&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Schnittstelle (/dev/ttyUSBx) muss entsprechend der lokal verwendeten Schnittstelle angepasst werden. Für die Einrichtung des [[panStick]] innerhalb des Betriebssystem siehe [[Programmierung_eines_panStamp#Installation_panStick_2|hier]]&lt;br /&gt;
&lt;br /&gt;
Dieses [[panStamp]] Device, der [[panStick]], versucht dann alle panStamps per [[SWAP]]-Broadcast zu finden und per [[autocreate]] anzulegen, wenn dieses aktiv sind. Die weitere Funktion übernimmt das Modul [[SWAP]], was das Funkprotokoll der [[panStamp]] Module in FHEM implementiert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Betrieb an der Fritzbox&#039;&#039;&#039;&lt;br /&gt;
Spezialitäten zum Betrieb an einer Fritzbox sind hier [http://forum.fhem.de/index.php/topic,12487.msg87778.html#msg87778] und hier [http://forum.fhem.de/index.php/topic,12487.msg95914.html#msg95914] beschrieben. Es scheint nur der hintere USB-Anschluss für die Verwendung zu laufen. Außerdem muss der USB-Fernaschluss deaktiviert sein.&lt;br /&gt;
&lt;br /&gt;
==== Attribute ====&lt;br /&gt;
Für den [[panStick]] gibt es keine modulspezifischen Attribute.&lt;br /&gt;
&lt;br /&gt;
==== set-Befehle ====&lt;br /&gt;
&lt;br /&gt;
* discover?&lt;br /&gt;
Mit diesem Befehl wird eine Broadcast SWAP-Message abgesetzt, die alle empfangenden panStamps dazu veranlassen, sich zu melden. Batteriebetriebenen panStamps können systembedingt nur identifiziert werden, wenn diese Empfangsbereit sind und sich nicht im Schlafmodus befinden.&lt;br /&gt;
&lt;br /&gt;
* raw&lt;br /&gt;
Ist der [[panStick]] eingerichtet und meldet &amp;quot;Initialized&amp;quot;, kann über das [[panStick]] device direkt eine raw Message abgesetzt werden. Diese ist zur Zeit eigentlich immer eine SWAP Nachricht wie z.b. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set panStick raw 00010000010000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel wird ein Broadcast an alle abgesetzt, damit diese ihre ID und ihren ProductCode zurück an FHEM senden. Das macht der [[panStick]] nach dem Initialisieren auch ein mal automatisch um alle nicht schlafenden Devices per [[autocreate]] anlegen zu können.&lt;br /&gt;
Mit diesem Befehl &amp;quot;raw&amp;quot; lassen sich [[SWAP]]-Messages direkt absetzten, was vor allen Dingen dann hilfreich sein kann, wenn man vermutet, dass die Kommunikation über die modulgestützten Befehle fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
=== Anwendungsbeispiele ===&lt;br /&gt;
==== Neue panStamps in Betrieb nehmen ====&lt;br /&gt;
&#039;&#039;&#039;Info: Das [[SWAP]] Modul unterstützt [[autocreate]]. Bei der Inbetriebnahme ist [[autocreate]] zu aktivieren!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, da sie zuerst mit einer eindeutigen Device-Adresse (ungleich &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; und grösser &amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;) versehen werden müssen. Bei batteriebetriebenen Sensoren sollte auch das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
Für panStamp-Hardware im Power-Down-Modus werden diese Kommandos in eine Warteschlange gestellt und übertragen, sobald die panStamp-Hardware seine Initialisierungssequenz durchläuft. Hierzu ist nach Absetzen der Kommandos aus FHEM die Reset-Taste an der panStamp-Hardware zu drücken oder die Stromquelle erneut zu verbinden.&lt;br /&gt;
&lt;br /&gt;
Das [[SWAP]]-Modul versucht, panStamp-Hardware mit der default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern. Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
Für batteriebetriebene panStamp-Hardware (genauer: Hardware die den Power-Down-Modus unterstützen) wird das Default Sendeintervall von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden) geändert.&lt;br /&gt;
Es gibt mit bestimmten [[panStamp]] lib Versionen das Problem das ein Wert von FFFF in Systemregister &amp;lt;code&amp;gt;0A&amp;lt;/code&amp;gt; zum Überlauf führt und dann ununterbrochen SWAP Nachrichten gesendet werden. Im FHEM Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen Host-Systemen (z.B. FritzBox) nicht, weil der [[panStamp]] so schnell sendet, dass FHEM so mit dem Abarbeiten beschäftigt ist, dass es selber nicht zum senden kommt.&lt;br /&gt;
Zur Abhilfe kann im Sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden. Der Sketch ist dann zu flashen und wenn der Sketch einmal durchgelaufen ist, können diese beiden Zeilen wieder entfernen werden und der [[panStamp]] muss noch mal geflasht werden. Ansonsten wird die Adresse bei jedem Start erneut auf &amp;lt;code&amp;gt;5555&amp;lt;/code&amp;gt; gesetzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ soilmoisture sketch]  auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11770</id>
		<title>SWAP</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SWAP&amp;diff=11770"/>
		<updated>2015-07-21T07:08:05Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: /* Beispiel: panStamp soilmoisture Sketch in FHEM einbinden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{SEITENTITEL:SWAP}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Modul&lt;br /&gt;
|ModPurpose=Modul zur allgemeinen Ansteuerung sämtlicher PanStamp Boards.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModCmdRef=SWAP&lt;br /&gt;
|ModForumArea=&lt;br /&gt;
|ModFTopic=&lt;br /&gt;
|ModTechName=34_SWAP.pm&lt;br /&gt;
|ModOwner=André/ justme1968 ({{Link2FU|430|Forum}} / [[Benutzer Diskussion:Justme|Wiki]])&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[SWAP]] ist das Basismodul für die Unterstützung der PanStamp Baugruppen. Zur Kommunikation in einem PanStamp Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([http://code.google.com/p/panstamp/wiki/SWAP SWAP]).&lt;br /&gt;
Die komplette SWAP- Kommunikation ist registerbasiert und erfolgt mit Nachrichten um diese Register abzufragen, zu setzen und deren Inhalt zu senden. Alle Register lassen sich lesen, manche auch beschreiben. Für eine tiefgreifende FHEM Integration können weitere Module (wie z.B. xxxx) vorhanden sein. Diese Module bauen auf das SWAP Modul auf und bedienen im backend ebenfalls die PanStamp Module über die Register. Der PanStamp Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Für den Betrieb ist XML:Simple notwendig, dass bei Bedarf folgendermaßen nachinstalliert werden kann [http://forum.fhem.de/index.php?topic=12487.msg87373#msg87373].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Diese Abhängigkeit kann beim Betrieb auf einer Fritzbox ebenfalls zu Problemen führen. Das SWAP Modul greift auf das [[PanStamp]] Modul zu, was vorher per define anglegt werden muss.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005-detail.png|mini|hochkant=2.5|Readings]]&lt;br /&gt;
Bei SWAP geht alle Kommunikation über &#039;Register&#039;, dies sind unterschiedlich lange Werte die entweder nur gelesen oder gelesen und geschrieben werden können. Jedes Device hat eine Reihe Systemregister (00-0A) und beliebig viele Userregister die vom jeweiligen Sketch abhängen. Welche Register dies sind, steht unter anderem jeweils im Device Description xml file im Verzeichnis .../FHEM/lib/SWAP. Mit Hilfe der im jeweiligen Device Description File hinterlegten Beschreibung werden hierzu automatisch userReadings angelegt die neben den reinen Registerwerten in hex auch &#039;menschenlesbare&#039; readings der Sensorwerte erzeugen. Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
&lt;br /&gt;
In den System Registern steht z.b. der productcode, die device adresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert und die Werte gehen auch beim Neustart nicht verloren. Beim aller ersten Starten ist das EEPROM mit &amp;quot;FF&amp;quot; initialisiert und alle konfigurierbaren Register haben diesen Wert. also z.b. Adresse FF und Intervall FFFF (HEX in Sekunden, das wären dann zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Inhalte der System Register stehen als INTERNAL im oberen Bereich der Detail Ansicht einer Komponente in FHEM, die user register als Readings im unteren.&lt;br /&gt;
&lt;br /&gt;
Alle low level Dinge wie Register ID oder Register Wert können mit hex Werten direkt angepasst werden. Im Normalbetrieb ist dieses aber nicht notwendig und es kann über &#039;vereinfachte&#039; Kommandos mit den Registernamen verwenden kann. Diese Funktionalität stellt das eines der Module zur Verfügung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 08 &amp;lt;netzwerk id als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87436 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87436#msg87436]&lt;br /&gt;
&lt;br /&gt;
Dieses Modul stellt unter anderem folgende grundlegende Funktionalitäten zur Verfügung&lt;br /&gt;
* Es wird eine command Liste für Devices im power down Modus gehalten. Sobald das Device online kommt werden die Kommandos automatisch übertragen.&lt;br /&gt;
* Die userReadings für &#039;menschenlesbare&#039; Readings werden anhand des device description files automatisch erzeugt&lt;br /&gt;
* Es ist jetzt möglich direkt endpoints (Teile eines Registers) zu schreiben (???)&lt;br /&gt;
* (Fast) keine hardkodierte Sonderbehandlung mehr für das RGB-Board. Das SWAP Modul kann mit jedem beliebige Swap Device umgehen.&lt;br /&gt;
* Es gibt eine dritte (optionale) Modulschicht neben dem PanStamp modul für die Hardware und dem SWAP Modul für das Protokoll. Mit dem generellen SWAP Modul lasen sich alle SWAP devices &#039;zu fuss&#039; über die Register ansprechen. Um die register auf einer höheren Ebene auf FHEM Kommandos wie on/off/on-for-timer zu mappen ist dann diese dritte schicht zuständig. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=78502 }} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic=12487.msg78502#msg78502]&lt;br /&gt;
=== Define ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Info: Das SWAP Modul unterstützt autocreate. Bei der Inbetriebnahme sollte autocreate aktiviert sein, da dies die Einrichtung deutlich vereinfacht.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn der panStick läuft, sollten die SWAP-Devices per autocreate angelegt werden, sobald sie das erste mal senden, z.B. nach dem Einschalten oder nach einem Reset.&lt;br /&gt;
&lt;br /&gt;
Normalerweise werden beim autocreate alle Werte abgefragt und angezeigt. Das geht normalerweise ohne jedes Zutun. &lt;br /&gt;
&lt;br /&gt;
Panstick rein -&amp;gt; broadcast -&amp;gt; discovery -&amp;gt; anlegen. &lt;br /&gt;
&lt;br /&gt;
Bei Devices mit power down mode erfolgt dieses das erste mal wenn sie Strom haben. &lt;br /&gt;
&lt;br /&gt;
Alle panStamps durchlaufen beim Starten eine bestimmte Einschaltsequenz. Sie melden sich mit ihrer ID und ihrem productcode. Die ID ist die device Addresse und bei einem frisch geflashten panStamp in der Regel FF. Das SWAP Modul versucht, ein Device mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern.&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, sonst haben mehrere die gleiche Addresse und das gibt Konflikte. &lt;br /&gt;
&lt;br /&gt;
Wer mehrere devices hat, sollte jedem nach dem Anlegen mit &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eine eigene id zuweisen. Die landen auf dem panStamp im EEPROM und sind auch nach Neustart noch vorhanden. &lt;br /&gt;
&lt;br /&gt;
Die anderen Adressen sind wie folgt belegt:&lt;br /&gt;
* 00 ist die Broadcast-ID&lt;br /&gt;
* 01 ist die ID des Pansticks am FHEM-System&lt;br /&gt;
* FF ist die Default ID, die jeder panStamp im Auslieferungszustand besitzt&lt;br /&gt;
* F0-FE sind die IDs, auf die autocreate die Adresse automatisch ändert, wenn ein neuer mit der ID FF erkannt wird und kein entsprechender Device-Name definiert ist.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87261 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87261#msg87261]&lt;br /&gt;
&lt;br /&gt;
Ändert man die Adresse, dauert es einen Augenblick, bis alle Register neu übertragen worden sind. &lt;br /&gt;
&lt;br /&gt;
Autocreate ändert bei der Einrichtung und Änderung der ID auch automatisch den Namen. Belässt man die ID im Bereich F0-FE und ändert den Namen des Device, ist zu berücksichtigen, dass autocreate für neue Devices eine freie neue Adresse anhand der Device-Namen sucht. Dadurch könnte es zu Doppeltverwendung von IDs kommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ zum autocreate kann man ein Device auch von Hand anlegen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define &amp;lt;device&amp;gt; SWAP &amp;lt;ID&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bis allerdings der Productcode nicht per Attribut hinterlegt ist, was bei autocreate ebenfalls automatisch geschied, funktionieren nur die grundlegenden Funktionen bis zur 2. Modulebene.&lt;br /&gt;
&lt;br /&gt;
=== set ===&lt;br /&gt;
Ist ein SWAP-Device definiert, stehen folgende set-Befehle zur Verfügung:&lt;br /&gt;
* regGet &amp;lt;reg&amp;gt;&lt;br /&gt;
Fragt den Wert des Registers mit der id &amp;lt;reg&amp;gt; ab. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87679 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87679.html#msg87679]&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
Schreibt &amp;lt;data&amp;gt; in den Register mit der id &amp;lt;reg&amp;gt;. &amp;lt;data&amp;gt; muss als HEX Zahl angegeben werden. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt;.&amp;lt;ep&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
write &amp;lt;data&amp;gt; to endpoint &amp;lt;ep&amp;gt; of register &amp;lt;reg&amp;gt;. will not work if no reading for register &amp;lt;reg&amp;gt; is available as all nibbles that are not part of endpoint &amp;lt;ep&amp;gt; will be filled from this reading. ?&lt;br /&gt;
&lt;br /&gt;
* statusRequest&lt;br /&gt;
Veranlasst, dass alle Register und deren Werte einmal übertragen werden.&lt;br /&gt;
&lt;br /&gt;
* readDeviceXML&lt;br /&gt;
Liest das Device-Description-XML-File neu ein.&lt;br /&gt;
&lt;br /&gt;
* clearUnconfirmed&lt;br /&gt;
Löscht die liste der unbestätigten Nachrichten.&lt;br /&gt;
&lt;br /&gt;
* flash [&amp;lt;productCode&amp;gt;|&amp;lt;firmwareFile&amp;gt;]&lt;br /&gt;
Initiiert das „over-the-air“ Firmware update, dass (derzeit) nur von NRG panStamps unterstützt wird.&lt;br /&gt;
** ohne Parameter: Verwendet das SWAP_&amp;lt;current productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;productCode&amp;gt;: Verwendet das SWAP_&amp;lt;productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
** &amp;lt;firmwareFile&amp;gt;: Verwendet ein &amp;lt;firmwareFile&amp;gt; als absoluten File-Namen des HEX-Files.&lt;br /&gt;
&lt;br /&gt;
=== get ===&lt;br /&gt;
* regList&lt;br /&gt;
Listet alle User-Register des SWAP-Device (Readings). &lt;br /&gt;
&lt;br /&gt;
* regListAll&lt;br /&gt;
Listet alle Register des SWAP-Device (Internals und Readings). &lt;br /&gt;
&lt;br /&gt;
* listUnconfirmed&lt;br /&gt;
Listet alle unbestätigten Nachrichten in der Warteschlange auf, also Nachrichten die von FHEM gesendet wurden, aber der empfang durch das panStamp Modul nicht bestätigt wurde.&lt;br /&gt;
&lt;br /&gt;
* products&lt;br /&gt;
Gibt alle auf dem System bekannten Productcodes nebst Daten aus.&lt;br /&gt;
&lt;br /&gt;
* deviceXML&lt;br /&gt;
Gibt die Daten des zum derzeit zum per Attribut (Productcode) eingerichteten Device-XML-Files aus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Attribute ===&lt;br /&gt;
Wird der Productcode bei der Definition nicht gesetzt, stehen auch nur die Standardbefehle bei zur 2. Modulebene zur Verfügung. &lt;br /&gt;
&lt;br /&gt;
* createUnknownReadings&lt;br /&gt;
Erzeug Readings auch für Register, die im Device-XML-File nicht definiert werden.&lt;br /&gt;
&lt;br /&gt;
* ProductCode&lt;br /&gt;
Legt den ProductCode eines SWAP-Device fest und liest dadurch das dazugehörige Device-Description-XML-File ein. Erst wenn der ProduktCode als Attribut vorgegeben wurde, z.B. für einen RGB-Sktech:&lt;br /&gt;
 attr &amp;lt;device&amp;gt; ProductCode 0000002200000003&lt;br /&gt;
kommen zu den allgemeinen FHEM set- und get-Kommandos des [[SWAP]] Modul die spezifischen der 3. Modulebene 35_SWAP_&amp;lt;productcode&amp;gt;.pm mit hinzu (Siehe z.B. [[SWAP_0000002200000003]]). Dann werden die SWAP-Nachrichten an das entsprechende Modul weitergegeben und dort verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices, die während der Definition nicht aktiv sind, muss dieses Attribut manuell angelegt werden.&lt;br /&gt;
&lt;br /&gt;
=== Device Description File ===&lt;br /&gt;
Mit Hilfe der im jeweiligen Device Description File hinterlegten Beschreibung werden hierzu automatisch userReadings angelegt die neben den reinen Registerwerten in hex auch &#039;menschenlesbare&#039; readings der Sensorwerte erzeugen. &lt;br /&gt;
Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
Das entsprechende Device Description File liegt unter ./FHEM/lib/SWAP wie hier beschrieben [http://forum.fhem.de/index.php/topic,12487.msg86257.html#msg86257].&lt;br /&gt;
&lt;br /&gt;
Hier Beispielhaft anhand eines BMP085 Temperatur- und Luftdrucksensors dargestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress userReadings voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, temperature:0C.0-Temperature {hex(ReadingsVal($name,&amp;quot;0C.0-Temperature&amp;quot;,&amp;quot;0&amp;quot;))*0.1-50}, pressure:0C.1-Pressure {hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01}, pressureNN:0C.1-Pressure {sprintf(&amp;quot;%.2f&amp;quot;,hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01 + AttrVal(&amp;quot;global&amp;quot;, &amp;quot;altitude&amp;quot;, 0)/8.5)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005.png|mini|hochkant=2.5|Resultat eines stateFormat]]&lt;br /&gt;
Aus diesen readings kann dann mit stateFormat die gewünschte Darstellung für die Raumübersicht erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress stateFormat {sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;temperature&amp;quot;,0)).&amp;quot;°C &amp;quot;.sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;pressureNN&amp;quot;,0)).&amp;quot;mbar&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel ist das Description File für das RGB-Board rgbdriver.xml.&lt;br /&gt;
&lt;br /&gt;
=== SWAP Register ===&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (00-0A) [http://code.google.com/p/panstamp/wiki/SWAPregisters] und beliebig viele sketchabängige Userregister (0B-)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Description Files&#039;&#039;. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Description File erfolgt über den productCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt-Id&#039;&#039; gebildet wird.&lt;br /&gt;
&lt;br /&gt;
In den Systemregistern steht z.&amp;amp;nbsp;B. der productCode, die Deviceadresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert, so dass die Werte auch bei einem Neustart nicht verlorengehen. Beim ersten Starten eines panStamp ist das EEPROM mit FF initialisiert und alle konfigurierbaren Register haben diesen Wert, also z.&amp;amp;nbsp;B. die Adresse FF und das Intervall FFFF (zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Systemregister werden in der Device Detailansicht bei den InternalValues im oberen Bereich angezeigt und die User-Register als reading im unteren Bereich.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen productCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiele ==&lt;br /&gt;
=== Übersicht der Register anzeigen ===&lt;br /&gt;
Sobald ein SWAP Device mit dem productCode korrekt angelegt wurde, können die Userregister bzw. alle Register aufgelistet werden: &lt;br /&gt;
 get &amp;lt;device&amp;gt; regList&lt;br /&gt;
 get &amp;lt;device&amp;gt; regListALL&lt;br /&gt;
&lt;br /&gt;
=== Register auslesen oder setzen ===&lt;br /&gt;
Einzelne Register können abgefragt werden mit&lt;br /&gt;
 set &amp;lt;device&amp;gt; regGet &amp;lt;ID&amp;gt;&lt;br /&gt;
oder auch gesetzt werden durch&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet &amp;lt;ID&amp;gt; &amp;lt;value&amp;gt;&lt;br /&gt;
Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=== Intervall bei Sketch mit power down / batterie betriebene Panstamps ===&lt;br /&gt;
Devices mit power down mode durchlaufen während des Booten (beim Einschalten oder bei einem Reset) eine 3 Sekunden Schleife und warten auf SWAP-Kommandos, die z.B. Register für das Sendeintervall oder sonstige Konfigurationen ändern. Nach dieser Zeit wird die normale Loop Schleife im Arduino Sketch gestartet normaler Weise werden die Register mit den Sensorwerten an FHEM gesendet. Power down devices gehen danach schlafen (power down Modus mit extrem niedrigen Stromverbrauch) und wachen regelmässig auf (TX_INTERVAL aus dem Systemregister) um die Sensoren auszulesen und die Werte wieder an FHEM zu senden. Das Sendeintervall betrifft nur das Senden der Sensorwerte. Normalerweise empfängt das panStamp Modul in diesem Modes keine Befehle mehr. Das passiert nur einmalig nach einem Reset. Je nach Sketch kann das natürlich varieren und anders programmiert sein!&lt;br /&gt;
&lt;br /&gt;
Nachrichten an ein panStamp-Modul im power-down-state werden in FHEM gepuffert (siehe INTERNAL SWAP_CMDsPending) und dann an das panStamp-Modul geschickt, sobald dieses sich im SYNC Status befindet. Dieses ist typischer Weise nach dem Startup z.B. nach einem Reset der Fall.&lt;br /&gt;
&lt;br /&gt;
Bei batteriebetriebenen Sensoren sollte das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87409}}&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene panStamp-Module (genauer: Module die den Power-Down-Modus unterstützen) wird das Default Sendeintervall bei der Einrichtung automatisch von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden = 15 Minuten) geändert. Das Intervall wird nur automatisch gesetzt, wenn pwrdownmode im device description file true ist. {{Link2Forum|Topic=12487 |Message=89205}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt mit bestimmten panStamp lib Versionen das Problem das ein Wert von FFFF im Systemregister 0A zum Überlauf führt und der panStamp dann ununterbrochen sendet. Im [[SWAP]] Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen host systemen (z.B. FritzBox) nicht, weil der panStamp so schnell sendet, dass fhem mit dem Abarbeiten so beschäftigt und ausgelastet ist, dass es selber nicht zum senden kommt. Zur Abhilfe kann im sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden. Den Sketch dann noch mal flashen. Wenn der panStamp mit diesem Sketch ein mal durchgelaufen ist, können diese beiden Zeilen wieder entfernen und der panStamp noch mal geflasht werden. Damit wurde das Sendeintervall einmalig auf 0x5555 (0x5555 in Dezimal = 21.845 (Sekunden), entspricht 364 Minuten) gesetzt.&lt;br /&gt;
&lt;br /&gt;
=== Device Adresse automatisch setzen ===&lt;br /&gt;
Erkennt das SWAP Modul ein panStamp Modul mit der Adresse 0xFF wird automatisch eine neue Adresse durch das [[SWAP] Modul vergeben. Die automatisch vergebenen Adressen sind im Bereich 0xF0 bis 0xFE. Das soll das inbetriebnehmen von mehreren panStamp-Modulen gleichzeitig erleichtern. Der automatisch vergeben Adressebereich ist nur begrenzt und sollte nur temporär verwendet werden. Nach der Inbetriebnahme sollte den panStamp Modulen eine individuelle, lokal passende Adresse geändert werden. {{Link2Forum|Topic=12487 |Message=87919}}&lt;br /&gt;
Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87859}}&lt;br /&gt;
&lt;br /&gt;
Im Log sollte etwas in dieser Art auftauchen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:14:29 2: autocreate: define SWAP_F0 SWAP FF 000000010000000E&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP_F0: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP SWAP_F0: changing 09-DeviceAddress from default FF to F0&lt;br /&gt;
2013.07.29 20:14:30 3: SWAP SWAP_F0: changing 0A-PeriodicTxInterval from default FFFF to 0384 (900 seconds)&lt;br /&gt;
&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:16:35 2: autocreate: define SWAP_F1 SWAP_0000002200000003 FF 0000002200000003&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP_F1: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:16:36 3: SWAP SWAP_F1: changing 09-DeviceAddress from default FF to F1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Registerinhalt von hex auf Dezimal umrechnen  ===&lt;br /&gt;
Die Registerinhalte sind immer hexadezimale Zahlenwerte. In den meisten Fälle werden diese umgerechnet werden in Dezimalzahlen.&lt;br /&gt;
Hierzu kann die Perlfunktion hex() verwendet werden.&lt;br /&gt;
Beide Funktionsaufrufe geben in diesem Beispiel die Dezimalzahl 250 aus:&lt;br /&gt;
 {hex(&amp;quot;FA&amp;quot;)}&lt;br /&gt;
 {hex(&amp;quot;0xFA&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: panStamp soilmoisture Sketch in FHEM einbinden ===&lt;br /&gt;
Der panStamp soilmoisture Sketch aus dem examples Verzeichnis ist mit dem Standard SWAP Modul kompatibel. &lt;br /&gt;
&lt;br /&gt;
Ein Artikel über ein selbst entwickeltes PanStamp Batterieboard zum Anschluss von Analogsensoren/1Wire und Solarversorgung ist hier [[Bodenfeuchtesensor]] beschrieben. Die Weiterentwicklung zum Umweltsensor ist hier [[PanStamp_Umweltsensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine für einen Vegetronix sensor angepasste Version kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Das Übertragungsintervall ist wie üblich über das regsiter 0A konfigurierbar. Der Sensor wird and GND, D7 für die Versorgungsspannung und A4 für den Messwert angeschlossen. Erfahrungen haben gezeigt, dass bei einem fünfminütigen Übertragungsintervall nach 12 Monaten Laufzeit die Batteriespannung von 1.55V auf 1.4V abfällt. Das würde bedeuten, dass eine Batterie im Batterieboard mindestens eine Laufzeit von drei Jahren haben sollte.&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; stateFormat VWC_A%&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; userReadings Level0_Voltage {hex(ReadingsVal($name,&amp;quot;0C.0-Moisture_level_0&amp;quot;,&amp;quot;0&amp;quot;))*(3.3/1024)}, &lt;br /&gt;
     VWC_A:0C.0-Moisture_level_0 {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**4 + 7.10835 * &lt;br /&gt;
        (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 - 0.569557) / ((ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 + 1))}, &lt;br /&gt;
     voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, &lt;br /&gt;
     battery:0B-Voltage {(ReadingsVal($name,&amp;quot;voltage&amp;quot;,&amp;quot;0&amp;quot;)&amp;lt;1?&amp;quot;low&amp;quot;:&amp;quot;ok&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ soilmositure-plot.jpg|mini|x100px|Bodenfeuchte]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix1.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix2.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem entsprechend erweiterten Sketch lassen sich auch mehrere Sensoren an einem panStamp auslesen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bilder zeigen eine panStamp/Vegetronix Außeneinheit im IP65-Gehäuse. Dieser Aufbau wird ganzjährig den Witterungseinflüssen ausgesetzt. Die auf den Stab aufgesetzte Antenne muss nicht verwendet werden, bei kürzeren Funkstrecken ist eine innenliegende Drahtantenne ausreichend. Bitte in FHEM den RSSI- und LQI-Wert sowie die Gleichmäßigkeit des Empfangens der 5 Minuten Sendeintervalle dementsprechend beobachten.&lt;br /&gt;
&lt;br /&gt;
== Trouble Shooting ==&lt;br /&gt;
=== value has to be 10 byte(s) in size  ===&lt;br /&gt;
&lt;br /&gt;
Es besteht die Möglichkeit, dass die Internals aus irgend einem Grund nicht vollständig sind. &lt;br /&gt;
Abhilfe in einem solchen Falle kann das Absetzen der folgenden beiden Befehlt schaffen&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
set &amp;lt;device&amp;gt; readDeviceXML&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht zum Erfolg führt, hilft ggf. ein Löschen und neu setzen des ProductCode Attributs.&lt;br /&gt;
{{Link2Forum|Topic=34474.0}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=34474.0]&lt;br /&gt;
&lt;br /&gt;
Das Übertragen aller Daten nach dem Statusrequest kann einen Augenblick dauern.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit:&lt;br /&gt;
Die Fehlermeldung kommt immer wenn FHEM nicht weiss welche Firmware auf dem device ist. Das passiert wenn irgendetwas in der Kommunikation schief geht während FHEM initialisiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122414}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122414.html#msg122414]&lt;br /&gt;
&lt;br /&gt;
=== register 0F is not known ===&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=84257}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg84257.html#msg84257]&lt;br /&gt;
&lt;br /&gt;
=== Komplette Übersicht eines Device ===&lt;br /&gt;
&lt;br /&gt;
 list &amp;lt;device&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201467}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201467#msg201467]&lt;br /&gt;
&lt;br /&gt;
=== fehlender oder falsche Productcode ===&lt;br /&gt;
&lt;br /&gt;
Fehlt der Productcode, werden die zum Sketch zugehörigen Befehle nicht angezeigt und die Register nicht korrekt zugeordnet.&lt;br /&gt;
Verändert man den Productcode, sollte man im Anschluss folgenden Befehlt absetzten, um alle Register neu auszulesen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201910}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201910#msg201910]&lt;br /&gt;
&lt;br /&gt;
=== missing commands und register 00-0A unvollständig ===&lt;br /&gt;
&lt;br /&gt;
Wenn in den Internals missing commands (SWAP_Sent_unconfirmed) auftauchen und ggf. die Register 00-0A nicht vollständig sind und das Internal &amp;quot;channels&amp;quot; nicht vorhanden ist, gibt es irgendein Kommunikationsproblem.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201939}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201939#msg201939]&lt;br /&gt;
&lt;br /&gt;
=== Funktion des Autocreate ===&lt;br /&gt;
&lt;br /&gt;
Beim autocreate wird versucht ein Name für das Device zu vergeben, der zur nächsten freien Adresse passt. Während dieses Prozessen bleibt die Adresse erst mal trozdem FF. Erst wenn das Device angelegt wird, kann versucht werden automatisch die Adresse zu setzen, hoffentlich auf die gleiche freie, die beim Namen auch schon gefunden wurde. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=88110}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg88110.html#msg88110]&lt;br /&gt;
&lt;br /&gt;
=== Adresse manuell setzen ===&lt;br /&gt;
&lt;br /&gt;
Um die Adresse manuell bereits in den Sketch einzubauen kann man wie hier beschrieben vorgehen.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122347}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122347.html#msg122347]&lt;br /&gt;
&lt;br /&gt;
=== Undefined subroutine &amp;amp;main::XMLin ===&lt;br /&gt;
Erhält man diese Fehlermeldung&lt;br /&gt;
 Undefined subroutine &amp;amp;main::XMLin called at ./FHEM/34_SWAP.pm line 108.&lt;br /&gt;
 &lt;br /&gt;
 2013.09.26 11:34:24 0: ERROR: Cannot autoload SWAP&lt;br /&gt;
 2013.09.26 11:34:24 3: panStick: Unknown code 000A001B000A000000000100000007, help me!&lt;br /&gt;
&lt;br /&gt;
Es fehlt XML::Simple, was folgendermaßen installiert werden kann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Panstamp antwortet nicht/EEprom to factory defaults ===&lt;br /&gt;
&lt;br /&gt;
Wenn der panStamp nicht antwortet, kann es sein das die Adressen durcheinander gekommen sind. Dann musst man einmal in setup() ein  eepromToFactoryDefaults() aufrufen und damit flashen. Wenn damit einmal gestartet wurde, die Zeile wieder entfernen und den normalen sketch flashen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121677}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg121677#msg121677]&lt;br /&gt;
&lt;br /&gt;
=== Factory Defaults ===&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp auf den Auslieferungszustand zurückzusetzen, muss man beim Sketch folgendes in die setup() Routine einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg157125#msg157125]&lt;br /&gt;
&lt;br /&gt;
=== Status LED ===&lt;br /&gt;
&lt;br /&gt;
Die Status LED auf dem Board wird in der config.h deaktiviert, indem man die Zeit #define LED_DEBUG mit &amp;quot;//&amp;quot; auskommentiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=164731}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg164731.html#msg164731]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
&amp;lt;!-- (Modulkategorie wird automatisch gesetzt) --&amp;gt;&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp_RGBWW_Board_mit_DMX_und_IR&amp;diff=11768</id>
		<title>PanStamp RGBWW Board mit DMX und IR</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp_RGBWW_Board_mit_DMX_und_IR&amp;diff=11768"/>
		<updated>2015-07-21T05:37:55Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Kategorie zugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=PlatzHalter.png&lt;br /&gt;
|Bildbeschreibung=RGBWW Board&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=12V&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Netzteil&lt;br /&gt;
|HWSize=&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#SWAP_0000002200000003 35_SWAP_0000002200000003.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
[[PanStamp RGBWW Board mit DMX und IR]] unterstützt RGBW LEDs und lässt sich per Infrarot Fernbedienung, DMX Controller (z.&amp;amp;nbsp;B. als Unterputz Touchpanel) und FHEM bedienen.&lt;br /&gt;
Es ist eine Hard- und Softwareentwicklung auf Basis von panStamp Modulen und verwendet zusätzlich das FHEM Modul [[SWAP 0000002200000003]] als 3. Ebene&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang wird in diesem [http://forum.fhem.de/index.php/topic,12487.msg81923.html#msg81923 Forenthread] vorgestellt. Die Hardware für das Board wird [http://forum.fhem.de/index.php/topic,13890.0.html  hier] im FHEM Forum vorgestellt und ein Prototyp ist [http://forum.fhem.de/index.php/topic,12487.msg85777.html#msg85777 hier] zu sehen.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Die Projektseite zur Hardware findet sich [http://itse.homeip.net/projekte/12/6/ hier]. Eine Version 2 des Boards in geplant. &lt;br /&gt;
&lt;br /&gt;
=== Kompatibilität RBG-Board mit NRG-panStamps ===&lt;br /&gt;
Mit dem hier beschriebenen Sketch ist das Board nur mit den AVRs kompatibel.&lt;br /&gt;
Die Pinbelegung zwischen AVR und NRG ist im Prinzip gleich bis auf Pin 23. Das ist bei dem NRG ein IO Pin und nicht Ground wie beim AVR. &lt;br /&gt;
Das wäre kein Problem wenn man entweder hardwareseitig den Kontakt unterbricht oder aber programmiertechnisch diesen Pin &#039;&#039;&#039;NIE&#039;&#039;&#039; als Ausgang definiert. Ansonsten gibt’s ein „kurzen“. Oder wenn er als Ausgang definiert ist darf er nur das GND Potential haben, also Low, 0.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=247069}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg247069#msg247069]&lt;br /&gt;
&lt;br /&gt;
Da es derzeit (Stand 01.05.2015) aber keinen Sketch gibt, der auf den NRG lauffähig ist, wäre vorher noch diese Herausforderung zu lösen.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften des fade TBC ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg106644#msg106644&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Eine Übersicht über die derzeit vorhandene Funktionalität des [[SWAP_0000002200000003|Fhem Moduls]] und panStamp Sketches (Stand 01.05.2015):&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=1205404}}&lt;br /&gt;
was geht:&lt;br /&gt;
* bis zu vier led kanäle (je nach kombination von ir und soft pwm)&lt;br /&gt;
* ir senden&lt;br /&gt;
* ir empfangen&lt;br /&gt;
* messen ob die led versorgung an ist&lt;br /&gt;
* helligkeit eines an A2 angeschlossenen helligkeits sensors&lt;br /&gt;
* konfiguration der dmx basis adresse über das swap register 0x12&lt;br /&gt;
* optional soft on auf letzten wert&lt;br /&gt;
* alles was auch vorher schon ging: dimmen, faden, ir fernbedienungen anlernen, ...&lt;br /&gt;
&lt;br /&gt;
wichtig zu wissen:&lt;br /&gt;
* wenn ir aktiv ist und kein soft pwm lässt sich der 4. kanal nur ein und aus schalten&lt;br /&gt;
* wenn ir aktiv ist muss soft pwm aktiv sein um den 4. kanäle auch zu dimmen&lt;br /&gt;
* es wird nur ein zusätzlicher kanal tatsächlich schon unterstützt. der fünfte kommt noch&lt;br /&gt;
* bei ir senden sind nur die aufrufe für sony und nec tatsächlich eingebaut. die anderen sind aber einfach zu ergänzen&lt;br /&gt;
* beim ir senden sind noch keine Wiederholungen eingebaut. die müssen laut protokoll aber eigentlich sein&lt;br /&gt;
&lt;br /&gt;
was noch kommt:&lt;br /&gt;
* besseres soft pwm&lt;br /&gt;
* mehr konfiguration bezüglich default verhalten. ramp zeiten, delays, ...&lt;br /&gt;
* hsv farb modell um besser zu faden und vor allem um den weiss anteil automatisch auf die weiss leds zu legen&lt;br /&gt;
* die virtuellen channel &lt;br /&gt;
* fhem kompatibles ir senden&lt;br /&gt;
* sofortiges senden von helligkeit und led spannung bei änderung&lt;br /&gt;
* andere ir lib mit sehr viel besserer geräte unterstützung&lt;br /&gt;
&lt;br /&gt;
wie gehabt muss alles über config.h mit Compilerschalter konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.5 / 1.6 einrichten ===&lt;br /&gt;
Mit der Arduino IDE 1.5.x gab es zusätzlich eine grundlegende Umstellungen der Arduino SWAP Library, für die der derzeitige Sketch [r4716] angepasst werden muss. Der Sketch ist nur kompatibel zur alten SWAP Library, die unter Arduino IDE 1.0 installiert werden muss (Stand 01.05.2015).&lt;br /&gt;
&lt;br /&gt;
=== Arduino IDE 1.0 einrichten ===&lt;br /&gt;
Zum Flashen der panStamps wird die Arduino IDE benötigt. Eine Installationsanleitung ist unter folgendem Link zu finden:&lt;br /&gt;
:https://code.google.com/p/panstamp/wiki/firststeps&lt;br /&gt;
&lt;br /&gt;
Für den RGB-Driver sketch sind je nach gewünschtem Funktionsumfang noch folgende libs zu installieren:&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;Panstamp Lib&#039;&#039;&#039; läd man von hier [[http://old.panstamp.com/downloads]] (panstamp_library.zip, 129k v.25, May 31, 2013). Mit der neueren Lib v.4 läuft die Kompillierung des derzeitigen Sketches nicht durch. Die Dateien der Lib speichert man in einem entsprechend neuen  Unterordner, z.B. hierin C:\Users\&amp;lt;username&amp;gt;\Documents\Arduino\libraries. Am Ende der ganzen Aktion im Folgenden sollten sich in diesem Unterordner 3 neue Unterordner befinden: IRremote, DMXSerial und panstamp&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;IR Remote Lib&#039;&#039;&#039; kopiert man von hier [[https://github.com/shirriff/Arduino-IRremote]] und speichert sie ebenfalls in einem passenden Unterordner von libraries.&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;DMX Lib&#039;&#039;&#039; kopiert man von hier [[http://www.mathertel.de/Arduino/DMXSerial.aspx]] und speichert sie ein weiteres Mal in einem weiteren Unterordner von libraries. Weitere Informationen zur Verwendung von Arduino Libraties finden sich hier [[http://arduino.cc/en/Hacking/Libraries]]. Dass die Libraries richtig erkannt worden sind, lässt sich dadurch erkennen, dass unter Sketch/Library importieren die 3 weiteren Punkte unten unter &amp;quot;beigetragen&amp;quot; auftauchen.&lt;br /&gt;
&lt;br /&gt;
Die Librarys sollten entweder mit dem entsprechenden Menüpunkt in die IDE integriert werden oder jeweils nach auspacken des zip files als als kompletten Ordner im Arduino libraries verzeichnis abgelegt werden (siehe [http://www.arduino.cc/en/Hacking/Libraries)]).&lt;br /&gt;
* Windows IDE only: Falls alles so bleibt, wie es heruntergeladen wurde, wechselt man wieder auf den Reiter sketch und importiert über -&amp;gt;Sketch Library importieren die entsprechenden Libs für IRremote und DMX. Dadurch werden 3 neue Zeilen hinzugefügt.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
Für das kompilieren mit INO siehe [[panstamp#ino|hier]].&lt;br /&gt;
&lt;br /&gt;
=== Link zum Sketch ===&lt;br /&gt;
Die aktuelle Version des RGB-Driver Sketches findet sich auf [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge].&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201391}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201391#msg201391]&lt;br /&gt;
Dieser muss in Arduino\libraries\panstamp\examples\sketches entpackt und die rbgdriver.ino gestartet werden. In der Arduino IDE sollte unter Tools-&amp;gt;Board &amp;quot;Arduino Pro or Pro Mini (3.3V, 8MHz) w/ Atmega328&amp;quot; eingestellt sein. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert kann man in der IDE auch direkt panStamp als Plattform auswählen.&lt;br /&gt;
&lt;br /&gt;
==== Kompillierte hex version ====&lt;br /&gt;
Eine kompiliertes HEX-File für drei (vier) Kanäle plus IR-Empfang und DMX ist hier im Forum zu finden:&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121619}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg121619#msg121619]&lt;br /&gt;
&lt;br /&gt;
==== HEX-File ohne IR und DMX ====&lt;br /&gt;
Eine kompiliertes HEX-File ohne IR-Empfang und DMX ist hier im Forum zu finden:&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201955}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201955#msg201955]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compilerschalter ===&lt;br /&gt;
Welche Features der sketch bietet lässt sich im config.h file durch ein- oder auskommentieren der &amp;lt;pre&amp;gt;#define ENABLE_...&amp;lt;/pre&amp;gt; Zeilen festlegen. {{Link2Forum|Topic=13890 |Message=173431}}&lt;br /&gt;
&lt;br /&gt;
==== #define ENABLE_DMX ====&lt;br /&gt;
 #define ENABLE_DMX&lt;br /&gt;
Ermöglicht die Nutzung eines DMX RGB Einstellers zur Steuerung der RGB LEDs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hierbei ist darauf zu achten, dass in der DMX-Lib in der Datei DMXSerial.h die Zeile&lt;br /&gt;
 #define DmxModePin 2     // Arduino pin 2 for controlling the data direction&lt;br /&gt;
in &lt;br /&gt;
 #define DmxModePin 7     // Arduino pin 7 for controlling the data direction&lt;br /&gt;
abgeändert werden muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== #define HAS_SENSOR ====&lt;br /&gt;
  #define HAS_SENSOR&lt;br /&gt;
Ermöglicht die Nutzung eines DHT22 Sensors zur Auswertung von Temperatur und Luftfeuchtigkeit&lt;br /&gt;
Dafür sollten diese Konfigurationszeilen auskommentiert sein:&lt;br /&gt;
  USE_SOFT_PWM;&lt;br /&gt;
  ENABLE_IR_SEND;&lt;br /&gt;
  ENABLE_REPEATER;&lt;br /&gt;
&lt;br /&gt;
In der IRremote.cpp Datei in der Irremote Library muss die Zeile&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void IRrecv::disableIRIn() &lt;br /&gt;
{&lt;br /&gt;
TIMER_DISABLE_INTR;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sowie die Irremote.h Datei unter Public: um die Zeile &lt;br /&gt;
 void disableIRIn();&lt;br /&gt;
erweitert werden.&lt;br /&gt;
&lt;br /&gt;
Der Daten-Pin des DHT22 Sensors muss hierfür an A2 des panStamps angeschlossen werden.&lt;br /&gt;
Ein Beispiel für die Umrechnung der userReading für Spannung Temp etc. ist hier beschrieben.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=76489}}&lt;br /&gt;
&lt;br /&gt;
=== Zusammenhänge der Konfiguration ===&lt;br /&gt;
Die Zusammenhänge der Konfiguration sind hier beschrieben&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=175181}}&lt;br /&gt;
&lt;br /&gt;
=== 4. und 5. LED Kanal TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg169741#msg169741&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg192132#msg192132&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201922#msg201922&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201936#msg201936&lt;br /&gt;
&lt;br /&gt;
=== Alternativer Fade per Patch ===&lt;br /&gt;
Als Alternative zum im Sketch und im Modul eingebauten Fade-Befehl ist hier ein Patch vorgestellt:&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133096}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133096.html#msg133096]&lt;br /&gt;
&lt;br /&gt;
Der Patch ist &#039;&#039;&#039;nicht eingecheckt&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IR Schnittstelle TBC ==&lt;br /&gt;
=== IR TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107061#msg107061&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107197#msg107197&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107415#msg107415&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122021.html#msg122021&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122077.html#msg122077&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg167351#msg167351&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175269#msg175269&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175285#msg175285&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg182582#msg182582&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg245597#msg245597&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg259267#msg259267&lt;br /&gt;
&lt;br /&gt;
=== IR-Belegung Panstamp RGB-Board TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163008.html#msg163008&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163153.html#msg163153&lt;br /&gt;
&lt;br /&gt;
=== Ircluster TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175331#msg175331&lt;br /&gt;
&lt;br /&gt;
=== Irgate TBC ===&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175278#msg175278&lt;br /&gt;
&lt;br /&gt;
== DMX Schnittstelle ==&lt;br /&gt;
Da die DMX-Schrittstelle kein direktes Interface zu FHEM hat, sondern nur die direkte Kommunikation zwischen DMX-Kontroller und RGB-Board betrifft, ist die Schnittstelle nur bei der Konfiguration des Sketches und über die Dokumentation des Boards beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://itse.homeip.net/projekte/12/6/ Projektseite] für das RGB-Multi-Board.&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ rgbdriver sketch] auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=PanStamp&amp;diff=11737</id>
		<title>PanStamp</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=PanStamp&amp;diff=11737"/>
		<updated>2015-07-19T11:09:22Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: /* Systemübersicht */  Inhalt aus panStamp Diskussion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
{{SEITENTITEL:panStamp}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V (panStick: 5V USB)&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery (panStick: USB)&lt;br /&gt;
|HWSize=17.7 x 30.5 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Auf der Diskussionsseite dieses Artikels habe ich eine Neufassung dieses Artikels eingestellt mit der Bitte um Korrektur direkt hier oder konstruktive Kritik [http://forum.fhem.de/index.php/topic,12487.msg290966.html#msg290966]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Ardunio IDE oder mit dem ino Kommandozeilen Binary programmieren.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschreibt zu einem das FHEM Modul panStamp, was das Funkinterface zu FHEM bildet und die dazugehörige Hardware panStamps der spanischen Firma panStamp S.L.U.&lt;br /&gt;
Der Focus liegt natürlich auf die Integration mit FHEM. Zu der Hardware panStamp gibt es Herstellerseitig eine eigenen community mit Forum und Wiki, sowie SourceCodes auf Github.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht ==&lt;br /&gt;
Zum besseren Verständnis der Begrifflichkeiten und Zusammenhänge ist hier eine Systemübersicht dargestellt.&lt;br /&gt;
[[Datei:Panstamp-Systemoverview.jpg|200px|thumb|panStamp Systemübersicht]]&lt;br /&gt;
&lt;br /&gt;
Die Kommunikationskette ist wie folgt:&lt;br /&gt;
FHEM -&amp;gt; Host-hardware/OS -&amp;gt; USB -&amp;gt; [[panStick]] -&amp;gt; panStamp (Modem-Sketch) -&amp;gt; Funkstrecke ([[SWAP]]) -&amp;gt; panStamp (angepasster Sketch) -&amp;gt; Board -&amp;gt; Sensoren/LED-Strip/etc.&lt;br /&gt;
(Ein Panshield ersetzt &amp;quot;USB -&amp;gt; Panstick&amp;quot; durch &amp;quot;IO&#039;s am Rpi-&amp;gt; Panshield&amp;quot;)&lt;br /&gt;
Zum Betrieb werden mindestens 2 panStamp Hardware-Module benötigt, [[panStamp]] FHEM-Modul als IO-Device für FHEM und FHEM-Modul [[SWAP]] zur Integration des Funkprotokoll der panStamps. Optional kann es noch weitere Module geben als 3. Ebene, die nach dem Schema SWAP_XXXXXXXXXXXXXXXX benannt sind. Besonders bei Aktoren ist oft eine engere FHEM-Integration sinnvoll, um FHEM Konzepte wie on/off/on-for-timer direkt abzubilden und nicht mehr nur auf die [[SWAP]] Registerebene und regSet und regGet Kommandos beschränkt zu sein.&lt;br /&gt;
Um per autocreate automatisch das passende Modul laden zu können, müssen diese Module nach dem Schema SWAP_XXXXXXXXXXXXXXXX.pm benannt sein wobei XXXXXXXXXXXXXXXX für den jeweiligen productCode steht.&lt;br /&gt;
&lt;br /&gt;
Es gibt bereits selbstentwickelte Hardware und Software auf Basis der panStamp Hardware und dem SWAP Protokoll:&lt;br /&gt;
* [[PanStamp Umweltsensor]]&lt;br /&gt;
* [[Bodenfeuchtesensor]]&lt;br /&gt;
* [[Panstamp Innenraumsensor]]&lt;br /&gt;
* [[PanStamp RGBWW Board mit DMX und IR]]&lt;br /&gt;
&lt;br /&gt;
=== panStamp Hardware === &lt;br /&gt;
==== panStick ====&lt;br /&gt;
Zu unterscheiden ist die Definition des [[panStick]]. Mit [[panStick]] ist zu einem das Hardware-Modul, von der Firma panStamp, gemeint. Zum Anderen bezeichnet es aber auch die Kombination von [[panStick]]-und [[panStamp]]-Hardware, wobei letzteres mit einem Modem-Sketch (siehe [[panStick]] ausgestattet ist. Hier wird in der Regel immer von der letzteren Kombination gesprochen, also panStick als Hardware mit USB-Anschluss und panStamp mit Modem Sketch, was gesamt dann als Funk-Interface dient.&lt;br /&gt;
Die Bennen ist also panStick, der TYPE in FHEM ist jedoch panstamp (Aufgrund des Modulnamen).&lt;br /&gt;
&lt;br /&gt;
==== panStamp ====&lt;br /&gt;
Auf der anderen Seite gibt es die Definition der panStamps, die lokal auf den entsprechenden Boards stecken. Diese sind vom TYPE SWAP_&amp;lt;ProductCode&amp;gt;. Um die Verwirrung komplett zu machen, wird hier meistens vom &amp;quot;panStamps&amp;quot; gesprochen, obwohl es eigentlich SWAP-Devices sind. Für diese werden hier nur die allgemeinen Grundfunktionen beschrieben, die bei jedem SWAP-Device funktionieren. Die spezifischen Komandos und Attribute, die durch die 3. Modulebene in Abhängigkeit des ProductCode zur Verfügung stehen, werden bei den spezifischen Anwendungen beschrieben. &lt;br /&gt;
&lt;br /&gt;
==== spezifisches &amp;quot;Board&amp;quot; ====&lt;br /&gt;
: Im Gegenzug zum Panstick als Interface zwischen panStamp und USB-Port des Servers stellt das Board das Interface zwischen panStamp vor Ort und Input/Outputs (analog/digital) dar. Das &amp;quot;Board&amp;quot; nimmt den panStamp mit dem passenden Sketch auf und setzt die Outputs des panStamps auf die Ausgänge um bzw. leitet die Eingänge zur Auswertung an den panStamp weiter.&lt;br /&gt;
: Entsprechend Anwendungsfall und Sketch werden die Ein-/Ausgänge des panStamps verarbeitet. Z.B. können an ein Board Temperatur-, Feuchtigkeitssensoren oder LED-Strips angeschlossen werden. Der Sketch auf dem panStamp sollte entsprechend der Anwendung auf dem Board angepasst worden sein um nicht nur über die standardmäßig zur Verfügung stehenden Register kommunizieren zu müssen.&lt;br /&gt;
&lt;br /&gt;
: Das Board benötigt irgend eine Art von Stromversorgung, um den panStamp zu betreiben. Das kann im Falle eines Sensorboards und entsprechend stromsparend ausgelegtem Sketch eine Batterie sein oder wie im Falle des RGB-Boards eine externe Stromversorgung. &lt;br /&gt;
: Speziell beim unten beschriebenen RGB-Board kann die Stromversorgung sogar separat für panStamp und LEDs ausgeführt sein oder ingesamt panStamp und LEDs gemeinsam versorgen.&lt;br /&gt;
&lt;br /&gt;
=== panStamp Software ===&lt;br /&gt;
==== Simple Wireless Abstract Protocol (SWAP) ====&lt;br /&gt;
Das Funkprotokoll [[SWAP]] wird von den panStamp-Modulen zur Datenübertragung verwendet. Es gibt ein gleichnamiges FHEM-Module [[SWAP]], was dieses Protokoll in FHEM integriert.&lt;br /&gt;
&lt;br /&gt;
==== Modem-Sketch ====&lt;br /&gt;
Siehe [[panStick]]&lt;br /&gt;
&lt;br /&gt;
==== auf Board abgestimmter Sketch ====&lt;br /&gt;
Ein panStamp ist auf einem entsprechenden Board installiert und übernimmt dort lokal die Schnittstelle zwischen Funkstrecke und Board. &lt;br /&gt;
&lt;br /&gt;
Der Sketch stellt dabei die passende &amp;quot;Software&amp;quot; auf dem panStamp. Der Sketch verarbeitet die über das SWAP-Protokoll versandte Nachrichten, wertet diese aus, reagiert entsprechend und setzt die Outputs des Boards. In umgekehrter Richtung wertet er die an den Inputs des Board angelegten Signale aus, verarbeitet diese und schickt sie per SWAP-Protokoll zum Panstamp mit Modem-Sketch zurück.&lt;br /&gt;
&lt;br /&gt;
=== FHEM Module ===&lt;br /&gt;
Die Integration in FHEM erfolgt über eine Reihe von Modulen die im folgenden genauer beschrieben werden. Zusammengefasst gibt es 3 Ebenen mit der Ergänzung eines Konfigurationsfiles in xml-format.&lt;br /&gt;
{{Link2Forum|Topic= 13890 |Message=121689 }}&lt;br /&gt;
&lt;br /&gt;
===== Ebene 1: 34_panStamp.pm =====&lt;br /&gt;
Das Modul ist für einen panStamp der auf einem panStick sitzt und das Interface zwischen FHEM und dem panStamp netz bildet. Alle eintreffenden SWAP-Pakete auf dem panStick (mit Modem-Sketch) werden direkt durchgereicht und im nachfolgend beschriebenen SWAP-Modul verarbeitet.&lt;br /&gt;
&lt;br /&gt;
===== Ebene 2: 34_SWAP.pm =====&lt;br /&gt;
Das Modul implementiert das [[SWAP]] Protokoll das zwischen den panStamps gesprochen wird. Das FHEM-Modul [[SWAP]] ermöglicht die generische Integration beliebiger panStamp Sensoren und Aktoren in FHEM, und ist in einem eigenen Artikel [[SWAP]] erklärt.&lt;br /&gt;
&lt;br /&gt;
===== Ebene 3: SWAP_XXXXXXXXXXXXXXXX.pm =====&lt;br /&gt;
Besonders bei Aktoren ist oft eine engere FHEM-Integration sinnvoll, um FHEM Konzepte wie on/off/on-for-timer direkt abzubilden und nicht mehr nur auf die Registerebene und regSet und regGet Kommandos beschränkt zu sein.&lt;br /&gt;
Mit dieser dritten Modulebene ist es auch für Aktore wie Schalter/Dimmer/... sehr einfach, diese in FHEM zu integrieren. &lt;br /&gt;
&lt;br /&gt;
Wenn die Namenskonvention SWAP_&amp;lt;ProductCode&amp;gt; für diese Module eingehalten wird, funktioniert auch das autocreate sofern das Modul in FHEM bekannt ist.&lt;br /&gt;
&lt;br /&gt;
Um per autocreate automatisch das passende Modul laden zu können, müssen diese Module nach dem Schema SWAP_XXXXXXXXXXXXXXXX.pm benannt sein wobei XXXXXXXXXXXXXXXX für den jeweiligen productCode steht.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für das RGB-Board dafür ist das Modul 35_SWAP_0000002200000003.pm.&lt;br /&gt;
[[Datei:SWAP_0000002200000003.png|mini|rechts|hochkant=2.5|RGB LED Driver Board]]&lt;br /&gt;
&lt;br /&gt;
===== Device Description File =====&lt;br /&gt;
Ein XML File was die Ein- und Ausgänge der panStamps beschreibt. Durch diese Datei wird dem FHEM-Modul mitgeteilt wie die Readings zu bennen sind, welche Werte die Readings haben können und ob die Readings/Register nur ausgelesen werden dürfen, oder auch beschrieben werden können.&lt;br /&gt;
&lt;br /&gt;
== Das FHEM Modul panStamp ==&lt;br /&gt;
=== Allgemein ===&lt;br /&gt;
Die Integration in FHEM erfolgt über eine Reihe von Modulen die im folgenden und anderen Artikel genauer beschrieben sind. Das Modul panStamp erstellt dabei das IO-Device in FHEM.&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
Als Schnittstelle zwischen FHEM und einem panStamp Netzwerk dient entweder ein panStick (USB Stick mit aufgestecktem panStamp) oder ein panStamp Shield mit integriertem panStamp an einem Raspberry Pi. Der so angebundene panStamp wird mit einem (bei Auslieferung des PanStamps vorinstallierten) Modem-Sketch als RF Modem verwendet und über das FHEM Modul panStamp angesprochen. Die USB Anbindung kann ggf. auch von einer remote Hardware aus per TCP/IP (ser2net oder FHEM2FHEM mit RAW) an FHEM angebunden werden.&lt;br /&gt;
&lt;br /&gt;
=== Anwendung ===&lt;br /&gt;
==== Define ====&lt;br /&gt;
Das Device &amp;quot;panStick&amp;quot; wird derzeit (01.05.2015) nicht durch autocreate angelegt. Daher muss er manuell entsprechend folgendem Befehl angelegt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;define panStick panStamp /dev/ttyUSBx@38400&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Schnittstelle muss entsprechend der Installation des Pansticks anzupassen werden. Für die Einrichtung des Pansticks innerhalb des OS siehe [[panstamp#unter Linux|Installation Panstick]]&lt;br /&gt;
&lt;br /&gt;
Dieses panStamp Device versucht dann alle panStamps im Netz zu finden und per autocreate anzulegen, wenn dieses aktiv sind. Die weitere Funktion übernimmt das Modul [[SWAP]], was das Funkprotokoll der panStamp Module in FHEM implementiert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Betrieb an der Fritzbox&#039;&#039;&#039;&lt;br /&gt;
Spezialitäten zum Betrieb an einer Fritzbox sind hier [http://forum.fhem.de/index.php/topic,12487.msg87778.html#msg87778] und hier [http://forum.fhem.de/index.php/topic,12487.msg95914.html#msg95914] beschrieben. Es scheint nur der hintere USB-Anschluss für die Verwendung zu laufen. Außerdem muss der USB-Fernaschluss deaktiviert sein.&lt;br /&gt;
&lt;br /&gt;
==== Attribute ====&lt;br /&gt;
Für den &amp;quot;panStick&amp;quot; gibt es keine modulspezifischen Attribute.&lt;br /&gt;
&lt;br /&gt;
==== set-Befehle ====&lt;br /&gt;
&lt;br /&gt;
* discover?&lt;br /&gt;
Mit diesem Befehl wird eine Broadcast SWAP-Message abgesetzt, die alle empfangenden panStamps dazu veranlassen, sich zu melden. Batteriebetriebenen panStamps können systembedingt nur identifiziert werden, wenn diese Empfangsbereit sind und sich nicht im Schlafmodus befinden.&lt;br /&gt;
&lt;br /&gt;
* raw&lt;br /&gt;
Ist der Panstick ersteinmal eingerichtet und meldet &amp;quot;Initialized&amp;quot;, kann über das panStick device direkt eine raw Message abgesetzt werden. Diese ist zur Zeit eigentlich immer eine SWAP Nachricht wie z.b. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set panStick raw 00010000010000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel wird ein broadcast an alle abgesetzt, damit diese ihre ID und ihren productcode zurück senden.&lt;br /&gt;
Das macht der panStick nach dem Initialisieren auch ein mal automatisch um alle nicht schlafenden Devices per autocreate anlegen zu können.&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl &amp;quot;raw&amp;quot; lassen sich SWAP-Messages direkt absetzten, was vor allen Dingen dann hilfreich sein kann, wenn man vermutet, dass die Kommunikation über die modulgestützten Befehle fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
=== Anwendungsbeispiele ===&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Die Hardware panStamp ==&lt;br /&gt;
=== Allgemein ===&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Ardunio IDE oder mit dem ino Kommandozeilen Binary programmieren.&lt;br /&gt;
&lt;br /&gt;
Der panStamp Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Zur Kommunikation in einem panStamp Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([http://code.google.com/p/panstamp/wiki/SWAP SWAP]).&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp in Betrieb zu nehmen muss er unbedingt mit einer Antenne oder einem stück Draht in der [https://code.google.com/p/panstamp/wiki/antennalengths richtigen Länge] bestückt sein. Ohne Antenne funktioniert die Übertragung nicht. Auch nicht auf kurze Distanzen.&lt;br /&gt;
&lt;br /&gt;
=== Simple Wireless Abstract Protocol (SWAP) ===&lt;br /&gt;
Die komplette SWAP- Kommunikation ist registerbasiert und erfolgt mit Nachrichten um diese Register abzufragen, zu setzen und deren Inhalt zu senden. Alle Register lassen sich lesen, manche auch beschreiben.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (00-0A) [http://code.google.com/p/panstamp/wiki/SWAPregisters] und beliebig viele sketchabängige Userregister (0B-)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Description Files&#039;&#039;, die in .../FHEM/lib/SWAP zu finden sind. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Description File erfolgt über den productCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt&#039;&#039;-Id gebildet wird.&lt;br /&gt;
&lt;br /&gt;
In den Systemregistern steht z.&amp;amp;nbsp;B. der productCode, die Deviceadresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert, so dass die Werte auch bei einem Neustart nicht verlorengehen. Beim ersten Starten eines panStamp ist das EEPROM mit FF initialisiert und alle konfigurierbaren Register haben diesen Wert, also z.&amp;amp;nbsp;B. die Adresse FF und das Intervall FFFF (zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Systemregister werden in der Device Detailansicht bei den InternalValues im oberen Bereich angezeigt und die User-Register als reading im unteren Bereich.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen productCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
=== Neue panStamps in Betrieb nehmen ===&lt;br /&gt;
&#039;&#039;&#039;Info: Das SWAP Modul unterstützt autocreate. Bei der Inbetriebnahme ist autocreate zu aktivieren!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, da sie zuerst mit einer eindeutigen Device-Adresse (ungleich FF und grösser 01) versehen werden müssen. Bei batteriebetriebenen Sensoren sollte auch das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
Für Devices im Power-Down-Modus werden diese Kommandos in eine Warteschlange gestellt und übertragen, sobald das Device seine Initialisierungssequenz durchläuft. Hierzu ist nach Absetzen der Kommandos Reset zu drücken oder die Stromquelle erneut zu verbinden.&lt;br /&gt;
&lt;br /&gt;
Das SWAP modul versucht, ein Device mit der default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern.&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices (genauer: Devices die den Power-Down-Modus unterstützen) wird das Default Sendeintervall von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden) geändert.&lt;br /&gt;
Es gibt mit bestimmten panStamp lib Versionen das Problem das ein wert von FFFF in 0A zum Überlauf führt und dann ununterbrochen gesendet wird. Im fhem Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen host systemen (z.B. FritzBox) nicht, weil der panStamp so schnell sendet, dass fhem so mit dem Abarbeiten beschäftigt ist, dass es selber nicht zum senden kommt.&lt;br /&gt;
Zur Abhilfe kann im sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden und noch mal flashen. Wenn der Sketch damit ein mal durchgelaufen ist können diese beiden Zeilen wieder entfernen und der panStamp noch mal geflasht.&lt;br /&gt;
&lt;br /&gt;
Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
==== Bodenfeuchte ====&lt;br /&gt;
Der panStamp soilmoisture Sketch aus dem examples Verzeichnis ist mit dem Standard SWAP Modul kompatibel. &lt;br /&gt;
&lt;br /&gt;
Ein Artikel über ein selbstentwickeltes PanStamp Batterieboard zum Anschluss von Analogsensoren/1Wire und Solarversorgung ist hier [[Bodenfeuchtesensor]] beschrieben. Die Weiterentwicklung zum Umweltsensor ist hier [[PanStamp_Umweltsensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine für einen Vegetronix sensor angepasste Version kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Das Übertragungsintervall ist wie üblich über das regsiter 0A konfigurierbar. Der Sensor wird and GND, D7 für die Versorgungsspannung und A4 für den Messwert angeschlossen. Erfahrungen haben gezeigt, dass bei einem fünfminütigen Übertragungsintervall nach 12 Monaten Laufzeit die Batteriespannung von 1.55V auf 1.4V abfällt. Das würde bedeuten, dass eine Batterie im Batterieboard mindestens eine Laufzeit von drei Jahren haben sollte.&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; stateFormat VWC_A%&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; userReadings Level0_Voltage {hex(ReadingsVal($name,&amp;quot;0C.0-Moisture_level_0&amp;quot;,&amp;quot;0&amp;quot;))*(3.3/1024)}, &lt;br /&gt;
     VWC_A:0C.0-Moisture_level_0 {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**4 + 7.10835 * &lt;br /&gt;
        (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 - 0.569557) / ((ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 + 1))}, &lt;br /&gt;
     voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, &lt;br /&gt;
     battery:0B-Voltage {(ReadingsVal($name,&amp;quot;voltage&amp;quot;,&amp;quot;0&amp;quot;)&amp;lt;1?&amp;quot;low&amp;quot;:&amp;quot;ok&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ soilmositure-plot.jpg|mini|x100px|Bodenfeuchte]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix1.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix2.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem entsprechend erweiterten Sketch lassen sich auch mehrere Sensoren an einem panStamp auslesen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bilder zeigen eine panStamp/Vegetronix Außeneinheit im IP65-Gehäuse. Dieser Aufbau wird ganzjährig den Witterungseinflüssen ausgesetzt. Die auf den Stab aufgesetzte Antenne muss nicht verwendet werden, bei kürzeren Funkstrecken ist eine innenliegende Drahtantenne ausreichend. Bitte in FHEM den RSSI- und LQI-Wert sowie die Gleichmäßigkeit des Empfangens der 5 Minuten Sendeintervalle dementsprechend beobachten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ soilmoisture sketch]  auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Diskussion:PanStamp&amp;diff=11736</id>
		<title>Diskussion:PanStamp</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Diskussion:PanStamp&amp;diff=11736"/>
		<updated>2015-07-19T11:08:41Z</updated>

		<summary type="html">&lt;p&gt;TeeVau: Inhalt auf neue Artikel ausgegliedert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Baustelle}}&lt;br /&gt;
&#039;&#039;&#039;Anmerkung für die hier vorgeschlagene Änderung des Hauptartikels&#039;&#039;&#039;&lt;br /&gt;
Während ich mich mit dem Thema vertraut gemacht habe, habe ich versucht, alle Informationen, die aus non-developer Sicht für die spätere Anwendung und Inbetriebnahme relevanten Informationen (also aus meiner ;) ) wichtig erscheinen, hier in einem Artikel zusammenfassen. Ich muss gestehen, bis ich meine ersten Panstamps am Laufen hatte, musste ich viel lesen und der derzeitige Artikel setzt mM recht viel Wissen voraus (alles eine Frage des Wissensstandes).&lt;br /&gt;
Die Inhalte des derzeitigen Artikels habe ich übernommen und einfließen lassen, d.h. es ist geplant, die derzeitige Seite zu ersetzen!&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel sind alle Posts bis heute (14.04.2015) aus den beiden Threads {{Link2Forum|Topic=12487 |Message=74967 |LinkText=Thema: panStamp support }} und {{Link2Forum|Topic=13890 |Message=86952 |LinkText=Thema: PanStamp Board RGB,CW,WW;DMX;IR }} berücksichtigt.&lt;br /&gt;
&lt;br /&gt;
Da viele Informationen vor allen Dingen aus der Zeit der Entwicklung der Module und der Sketches stammen, bitte ich Euch, hier kritisch quer zu lesen, das geschriebene zu prüfen, ob noch aktuell und ggf. zu korrigieren, zu ergänzen oder im Forum konstruktiv zu kommentieren.&lt;br /&gt;
&lt;br /&gt;
Dinge, die mir unklar waren, da noch nicht getestet oder Dinge, die noch näherer beschrieben werden können, habe ich mit &amp;quot;?&amp;quot; bzw. &amp;quot;TBC&amp;quot; gekennzeichnet.&lt;br /&gt;
----&lt;br /&gt;
: Hallo, wie ist denn der Stand mit dem Artikel? Finde es schade, dass das gesammelte Know-how hier nur auf der Diskussionsseite zu finden ist. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 12:07, 15. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{SEITENTITEL:panStamp}}&lt;br /&gt;
&lt;br /&gt;
{{Infobox Hardware&lt;br /&gt;
|Bild=panStamp.jpg&lt;br /&gt;
|Bildbeschreibung=panStamp&lt;br /&gt;
|HWProtocol=SWAP&lt;br /&gt;
|HWType=Sender, Empfänger, Sensor, [[Interface]]&lt;br /&gt;
|HWCategory=&lt;br /&gt;
|HWComm=868MHz (433/915MHz)&lt;br /&gt;
|HWChannels=&lt;br /&gt;
|HWVoltage=3.3V (panStick: 5V USB)&lt;br /&gt;
|HWPowerConsumption=&lt;br /&gt;
|HWPoweredBy=Battery (panStick: USB)&lt;br /&gt;
|HWSize=17.7 x 30.5 mm&lt;br /&gt;
|HWDeviceFHEM=[http://fhem.de/commandref.html#panStamp 34_panStamp.pm] [http://fhem.de/commandref.html#SWAP 34_SWAP.pm]&lt;br /&gt;
|ModOwner=[http://forum.fhem.de/index.php?action=profile;u=430 Andre / justme1968]&lt;br /&gt;
|HWManufacturer=panStamp&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Todo|Fehlerkontrolle, Formatierung, Ergänzung, Bestätigung des Geschriebenen, weitere Informationen zur Erstellung/Anpassung eines Device Description Files, Bestätigung des Hochladens mittels XLoader, Bedienung in FHEMWEB(RGB-Board/Sketch)}}&lt;br /&gt;
&lt;br /&gt;
== Allgemeines ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
==== panStamp mit Antenne ====&lt;br /&gt;
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Ardunio IDE oder mit dem ino Kommandozeilen Binary programmieren.&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp in Betrieb zu nehmen muss er unbedingt mit einer Antenne oder einem stück Draht in der [https://code.google.com/p/panstamp/wiki/antennalengths richtigen Länge] bestückt sein. Ohne Antenne funktioniert die Übertragung nicht. Auch nicht auf kurze Distanzen.&lt;br /&gt;
&lt;br /&gt;
Mittlerweile gibt es zwei verschiedene panStamps (AVR und NRG), von denen der NRG neuer und etwas mehr Features zur Verfügung stellt, allerdings (noch) nicht mit allen hier beschriebenen Projekten kompatibel ist.&lt;br /&gt;
&lt;br /&gt;
==== Panstick oder Panshield ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Als Schnittstelle zwischen Server-Hardware und einem panStamp dient entweder ein panStick (USB Stick mit Sockel zum aufstecken eines panStamp) oder ein &amp;quot;panStamp Shield&amp;quot; mit integriertem panStamp an einem Raspberry Pi. Der Panstick stellt dabei die Verbindung zwischen dem USB-Port auf der einen Seite und dem seriellen Interface des Panstamps auf der anderen Seite dar. Ein Panshield übernimmt die gleiche Funktion, wird aber direkt an die IOs eines Raspberries angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Der Panstick wird grundsätzlich für zwei Aufgaben benötigt:&lt;br /&gt;
# Für die Vorbereitung eines panStamps für den Betrieb auf einem &amp;quot;Board&amp;quot; wird der neue panStamp in den Panstick gesteckt, um die Programmierung (flashen des Sketch) vorzunehmen.&lt;br /&gt;
# Im &amp;quot;normalen&amp;quot; Betrieb steckt ein panStamp auf ihm. Der so angebundene panStamp wird mit einem (bei Auslieferung des PanStamps vorinstallierten) Modem-Sketch als RF Modem verwendet und dient so dem Rechner als Interface zu anderen panStamps, zu denen über eine Funkstrecke mittels des SWAP-Protokolls kommuniziert wird.&lt;br /&gt;
&lt;br /&gt;
Da auf dem panStamp Shield der panStamp fest eingelötet ist, übernimmt dieser in der Regel nur die zweite Funktion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStick]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:10, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== spezifisches &amp;quot;Board&amp;quot; ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
: Im Gegenzug zum Panstick als Interface zwischen panStamp und USB-Port des Servers stellt das Board das Interface zwischen panStamp vor Ort und Input/Outputs (analog/digital) dar. Das &amp;quot;Board&amp;quot; nimmt den panStamp mit dem passenden Sketch auf und setzt die Outputs des panStamps auf die Ausgänge um bzw. leitet die Eingänge zur Auswertung an den panStamp weiter.&lt;br /&gt;
: Entsprechend Anwendungsfall und Sketch werden die Ein-/Ausgänge des panStamps verarbeitet. Z.B. können an ein Board Temperatur-, Feuchtigkeitssensoren oder LED-Strips angeschlossen werden. Der Sketch auf dem panStamp sollte entsprechend der Anwendung auf dem Board angepasst worden sein um nicht nur über die standardmäßig zur Verfügung stehenden Register kommunizieren zu müssen.&lt;br /&gt;
&lt;br /&gt;
: Das Board benötigt irgend eine Art von Stromversorgung, um den panStamp zu betreiben. Das kann im Falle eines Sensorboards und entsprechend stromsparend ausgelegtem Sketch eine Batterie sein oder wie im Falle des RGB-Boards eine externe Stromversorgung. &lt;br /&gt;
: Speziell beim unten beschriebenen RGB-Board kann die Stromversorgung sogar separat für panStamp und LEDs ausgeführt sein oder ingesamt panStamp und LEDs gemeinsam versorgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Simple Wireless Abstract Protocol (SWAP) ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zur Kommunikation in einem panStamp Netzwerk dient das &#039;&#039;Simple Wireless Abstract Protocol&#039;&#039; ([http://code.google.com/p/panstamp/wiki/SWAP SWAP]).&lt;br /&gt;
Die komplette SWAP- Kommunikation ist registerbasiert und erfolgt mit Nachrichten um diese Register abzufragen, zu setzen und deren Inhalt zu senden. Alle Register lassen sich lesen, manche auch beschreiben.&lt;br /&gt;
Der panStamp Software Stack unterstützt einen stromsparenden Power-Down- oder Sleep-Modus für batteriebetriebene Sensoren, aus dem diese dann nur zur eigentlichen Messung und Übertragung &amp;quot;aufwachen&amp;quot;.&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Modem-Sketch ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStick]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Der Modem-Sketch stellt das Software-Verbindungsglied zwischen panStamp und Funksignal dar, dass an andere panStamps geht. &lt;br /&gt;
&lt;br /&gt;
Auf jedem panStamp (AVR, NRG?) ist im Auslieferungszustand der Modem-Sketch installiert. Das Protokoll der Funkstrecke folgt dem SWAP-Protokoll.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStick]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== auf Board abgestimmter Sketch ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Ein panStamp ist auf einem entsprechenden Board installiert und übernimmt dort lokal die Schnittstelle zwischen Funkstrecke und Board. &lt;br /&gt;
&lt;br /&gt;
Der Sketch stellt dabei die passende &amp;quot;Software&amp;quot; auf dem panStamp. Der Sketch verarbeitet die über das SWAP-Protokoll versandte Nachrichten, wertet diese aus, reagiert entsprechend und setzt die Outputs des Boards. In umgekehrter Richtung wertet er die an den Inputs des Board angelegten Signale aus, verarbeitet diese und schickt sie per SWAP-Protokoll zum Panstamp mit Modem-Sketch zurück.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Module  und Description File ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Die Integration in FHEM erfolgt über eine Reihe von Modulen die im folgenden genauer beschrieben werden. Zusammengefasst gibt es 3 Ebenen mit der Ergänzung eines Konfigurationsfiles in xml-format.&lt;br /&gt;
{{Link2Forum|Topic= 13890 |Message=121689 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg121689.html#msg121689]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 1: 34_panStamp.pm =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Modul ist für einen panStamp der auf einem panStick sitzt und das Interface zwischen FHEM und dem panStamp netz bildet. Alle eintreffenden SWAP-Pakete auf dem panStick (mit Modem-Sketch) werden direkt durchgereicht und im nachfolgend beschriebenen SWAP-Modul verarbeitet.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 2: 34_SWAP.pm =====&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005-detail.png|mini|hochkant=2.5|Readings]]&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Modul implementiert das SWAP protokoll das zwischen den panStamps gesprochen wird. Das SWAP Modul ermöglicht die generische Integration beliebiger panStamp Sensoren und Aktoren in FHEM.&lt;br /&gt;
&lt;br /&gt;
Bei SWAP geht alle Komunikation über &#039;register&#039;, dies sind unterschiedlich lange Werte die entweder nur gelesen oder gelesen und geschrieben werden können. Jedes device hat eine Reihe System register (00-0A) und beliebig viele user register die vom jeweiligen Sketch abängen. Welche Register dies sind, steht unter anderem jeweils im Device Description xml file im Verzeichnis .../FHEM/lib/SWAP.&lt;br /&gt;
&lt;br /&gt;
In den System Registern steht z.b. der productcode, die device adresse und das Übertragungsintervall. Konfigurierbare register werden im EEPROM gesichert und die Werte gehen auch beim Neustart nicht verloren. Beim aller ersten Starten ist das EEPROM mit &amp;quot;FF&amp;quot; initialisiert und alle konfigurierbaren register haben diesen Wert. also z.b. Adresse FF und Intervall FFFF (HEX in Sekunden, das wären dann zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Inhalte der System Register stehen als internal values im oberen Bereich der Detail Ansicht einer Komponente in FHEM, die user register als readings im unteren.&lt;br /&gt;
&lt;br /&gt;
Alle low level Dinge wie Register id oder Register Wert können mit hex werten direkt angepasst werden. Im Normalbetrieb ist dieses aber nicht notwendig und es kann über &#039;vereinfachte&#039; Kommandos mit den register namen verwenden kann. Diese Funktionalität stellt das eines der Module zur Verfügung.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; regSet 08 &amp;lt;netzwerk id als 2 stellige hex zahl&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87436 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87436#msg87436]&lt;br /&gt;
&lt;br /&gt;
Dieses Modul stellt unter anderem folgende grundlegende Funktionalitäten zur Verfügung&lt;br /&gt;
* Es wird eine command Liste für Devices im power down Modus gehalten. Sobald das Device online kommt werden die Kommandos automatisch übertragen.&lt;br /&gt;
* Die userReadings für &#039;menschenlesbare&#039; Readings werden anhand des device description files automatisch erzeugt&lt;br /&gt;
* Es ist jetzt möglich direkt endpoints (teile eines registers) zu schreiben (???)&lt;br /&gt;
* (Fast) keine hardkodierte Sonderbehandlung mehr für das RGB-Board. Das SWAP Modul kann mit jedem beliebige Swap Device umgehen.&lt;br /&gt;
* Es gibt eine dritte (optionale) Modulschicht neben dem panStamp modul für die Hardware und dem SWAP Modul für das Protokoll. Mit dem generellen SWAP Modul lasen sich alle SWAP devices &#039;zu fuss&#039; über die register ansprechen. Um die register auf einer höheren Ebene auf FHEM Kommandos wie on/off/on-for-timer zu mappen ist dann diese dritte schicht zuständig. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=78502 }} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic=12487.msg78502#msg78502]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Ebene 3: SWAP_XXXXXXXXXXXXXXXX.pm =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[paNStamp]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Besonders bei Aktoren ist oft eine engere FHEM-Integration sinnvoll, um FHEM Konzepte wie on/off/on-for-timer direkt abzubilden und nicht mehr nur auf die Registerebene und regSet und regGet Kommandos beschränkt zu sein.&lt;br /&gt;
Mit dieser dritten Modulebene ist es auch für Aktore wie Schalter/Dimmer/... sehr einfach, diese in FHEM zu integrieren. &lt;br /&gt;
&lt;br /&gt;
Wenn die Namenskonvention SWAP_&amp;lt;ProductCode&amp;gt; für diese Module eingehalten wird, funktioniert auch das autocreate sofern das Modul in FHEM bekannt ist.&lt;br /&gt;
&lt;br /&gt;
Um per autocreate automatisch das passende Modul laden zu können, müssen diese Module nach dem Schema SWAP_XXXXXXXXXXXXXXXX.pm benannt sein wobei XXXXXXXXXXXXXXXX für den jeweiligen productCode steht.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für das RGB-Board dafür ist das Modul 35_SWAP_0000002200000003.pm.&lt;br /&gt;
[[Datei:SWAP_0000002200000003.png|mini|rechts|hochkant=2.5|RGB LED Driver Board]]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[panStamp]] übernommen.--[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Device Description File =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Mit Hilfe der im jeweiligen Device Description File hinterlegten Beschreibung werden hierzu automatisch userReadings angelegt die neben den reinen Registerwerten in hex auch &#039;menschenlesbare&#039; readings der Sensorwerte erzeugen. &lt;br /&gt;
Damit dies funktioniert, muss das Attribut ProductCode korrekt gesetzt sein. Das geschieht normalerweise automatisch beim Anlegen des Device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier Beispielhaft anhand eines BMP085 Temperatur- und Luftdrucksensors dargestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress userReadings voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, temperature:0C.0-Temperature {hex(ReadingsVal($name,&amp;quot;0C.0-Temperature&amp;quot;,&amp;quot;0&amp;quot;))*0.1-50}, pressure:0C.1-Pressure {hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01}, pressureNN:0C.1-Pressure {sprintf(&amp;quot;%.2f&amp;quot;,hex(ReadingsVal($name,&amp;quot;0C.1-Pressure&amp;quot;,&amp;quot;0&amp;quot;))*0.01 + AttrVal(&amp;quot;global&amp;quot;, &amp;quot;altitude&amp;quot;, 0)/8.5)}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ 0000000100000005.png|mini|hochkant=2.5|Resultat eines stateFormat]]&lt;br /&gt;
Aus diesen readings kann dann mit stateFormat die gewünschte Darstellung für die Raumübersicht erzeugt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;attr temppress stateFormat {sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;temperature&amp;quot;,0)).&amp;quot;°C &amp;quot;.sprintf(&amp;quot;%.1f&amp;quot;,ReadingsVal($name,&amp;quot;pressureNN&amp;quot;,0)).&amp;quot;mbar&amp;quot;}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Beispiel ist das Description File für das RGB-Board rgbdriver.xml.&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:59, 16. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Systemübersicht ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zum besseren Verständnis der Begrifflichkeiten und Zusammenhänge ist hier eine Systemübersicht dargestellt.&lt;br /&gt;
[[Datei:Panstamp-Systemoverview.jpg|200px|thumb|panStamp Systemübersicht]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=75980 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg75980#msg75980]&lt;br /&gt;
&lt;br /&gt;
Die Kommunikationskette ist wie folgt:&lt;br /&gt;
FHEM -&amp;gt; Host-hardware/OS -&amp;gt; USB -&amp;gt; Panstick -&amp;gt; panStamp (Modem-Sketch) -&amp;gt; Funkstrecke (SWAP) -&amp;gt; panStamp (angepasster Sketch) -&amp;gt; Board -&amp;gt; Sensoren/LED-Strip/etc.&lt;br /&gt;
&lt;br /&gt;
(Ein Panshield ersetzt &amp;quot;USB -&amp;gt; Panstick&amp;quot; durch &amp;quot;IO&#039;s am Rpi-&amp;gt; Panshield&amp;quot;)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt übernommen in Artikel [[panStamp]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 19:50, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Schritte der Inbetriebnahme ==&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]]}}&lt;br /&gt;
Beispiel für Kurzentschlossene anhand der Einrichtung für das RGB-Board:&lt;br /&gt;
&lt;br /&gt;
* Ein panStamp wird in einen Panstick gesteckt und der Panstick für die Programmierung z.B. unter Windows installiert. Selbstverständlich kann ein panStamp auch über diverse andere Möglichkeiten und unter diversen anderen Betriebssystemen und über diverse andere Schnittstellen programmiert werden.&lt;br /&gt;
* Arduino IDE vorbereiten (libs hinzufügen, Board auswählen, etc.).&lt;br /&gt;
* Ein Sketch wird in der Arduino IDE entsprechend konfiguriert, kompiliert und auf den panStamp hochgeladen.&lt;br /&gt;
* Der programmierte panStamp aus dem Panstick in das RGB-Board stecken.&lt;br /&gt;
* Einen panStamp mit Modem-Sketch in den Panstick stecken und an den FHEM-Host stecken.&lt;br /&gt;
* panStamp unter FHEM einrichten, wenn nicht durch autocreate automatisch geschehen.&lt;br /&gt;
* RGB-Board mit Strom versorgen und ggf. einmal Reset-Knopf drücken. Dann sollte, falls autocreate aktiv ist, der panStamp automatisch eingerichtet werden.&lt;br /&gt;
* SWAP-Device in FHEM an Gegebenheiten anpassen.&lt;br /&gt;
&lt;br /&gt;
== Programmierung eines panStamps ==&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
=== unter Windows ===&lt;br /&gt;
&lt;br /&gt;
==== Installation Panstick ====&lt;br /&gt;
Für die Installation des Pansticks unter Windows gibt es mehrere Möglichkeiten.&lt;br /&gt;
# Installiert man eine Arduino IDE, kann dabei auch der Treiber für den Panstick mitinstalliert werden.&lt;br /&gt;
# Treiber von der offiziellen Homepage herunterladen und installieren [[http://www.ftdichip.com/]]. Die Treiber befinden sich ebenfalls im Unterordner drivers der Arduino IDE. &lt;br /&gt;
&lt;br /&gt;
Bei der Installation kann es sein, dass kein Treiber gefunden wird. Dann muss der entsprechende Treiber manuell ausgewählt werden entsprechend dieser Anleitung [[https://www.youtube.com/watch?v=SPdSKT6KdF8]].&lt;br /&gt;
&lt;br /&gt;
==== Arduino IDE vorbereiten ====&lt;br /&gt;
&lt;br /&gt;
Zum Flashen der panStamps wird die Arduino IDE benötigt. Eine Installationsanleitung ist unter folgendem Link zu finden:&lt;br /&gt;
:https://code.google.com/p/panstamp/wiki/firststeps&lt;br /&gt;
&lt;br /&gt;
Die IDE 1.5.x oder höher ist zwar mit den AVRs und NRGs kompatibel, wichtig zu wissen ist allerdings, dass mit dem Wechsel von 1.0.x zu 1.5.x oder höher es größere Änderungen der APIs gegeben hat. Dadurch lassen sich einige der bislang zur Verfügung stehenden Sketches (derzeit) nicht unter 1.5.x oder höher kompilieren (z.B. der RGB-Sketch). Für die IDE 1.0.x gibt es keine passenden Arduino Lib für den NRG [[https://github.com/panStamp/panstamp/wiki/First%20steps]], die daher nur mit den AVRs kompatibel sind. Im Folgenden wird sich für die Programmierung unter Windows daher auf die letzte 1.0.x IDE bezogen.&lt;br /&gt;
&lt;br /&gt;
* Man läd die &#039;&#039;&#039;Arduino IDE 1.0.x&#039;&#039;&#039; für Windows [[http://arduino.cc/en/Main/OldSoftwareReleases]]. &lt;br /&gt;
&lt;br /&gt;
* Für bestimmte Sketches müssen noch die entsprechenden Libs hinzugefügt werden (siehe [[panstamp#Sketch konfigurieren|explizite Anwendung]]).&lt;br /&gt;
&lt;br /&gt;
* Unter Tools/Board wird das &#039;&#039;&#039;passende Board&#039;&#039;&#039; ausgewählt, dass dem Chip auf dem Panstamp entspricht. Für den AVR: Arduino Pro or Pro Mini (3,3V, 8 MHz) /w ATmega328. Wenn man das boards.txt file von [http://code.google.com/p/panstamp/downloads/detail?name=boards.txt&amp;amp;can=2&amp;amp;q= hier] installiert, kann man in der IDE auch direkt panStamp als Plattform auswählen.&lt;br /&gt;
&lt;br /&gt;
* Nun muss unter Tools/Serieller Port noch der richtigen &#039;&#039;&#039;Com-Port&#039;&#039;&#039; auswählen werden, unter dem der Panstick eingebunden worden ist (entsprechend Gerätemanager).&lt;br /&gt;
&lt;br /&gt;
* Als letztes unter Tools/&#039;&#039;&#039;Programmer&#039;&#039;&#039; noch den AVRISP mkII auswählen.&lt;br /&gt;
&lt;br /&gt;
==== Sketch vorbereiten, kompilieren und hochladen ====&lt;br /&gt;
&lt;br /&gt;
* Den Sketch läd man von der entsprechenden Quelle und entpackt die Dateien in einen Unterordner z.B. parallel zum libraries-Ordner (unter &amp;quot;Eigene Dateien&amp;quot;). Der Ordner darf &#039;&#039;&#039;nicht im&#039;&#039;&#039; libraries-Ordner liegen, da die Arduino IDE dort das Speichern nicht zulässt. Innerhalb des Unterordners erwartet die IDE die Dateien in einen Unterordner namens &amp;quot;sketch&amp;quot;.&lt;br /&gt;
* sketch.ino oder ähnlich in der Arduino IDE öffnen.&lt;br /&gt;
* Nun entsprechend den Bedürfnissen auf dem geöffneten Reiter in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
Bezüglich der Anpassung des Sketches sind einige spezifische Informationen unten bei den expliziten Anwendungen ergänzt.&lt;br /&gt;
&lt;br /&gt;
==== Hexfile hochladen mit XLoader ====&lt;br /&gt;
Um ein fertig kompiliertes HEX-File hochzuladen, soll dieses über ein Programm namens XLoader möglich sein. [[http://xloader.russemotto.com]]&lt;br /&gt;
&lt;br /&gt;
=== unter Linux === &lt;br /&gt;
&lt;br /&gt;
==== Installation Panstick ====&lt;br /&gt;
&lt;br /&gt;
Zum einen kann es sein, dass der Panstick automatisch unter /dev/ttyUSBx einbunden wird. &amp;quot;x&amp;quot; steht für eine freie fortlaufende Nummer.&lt;br /&gt;
&lt;br /&gt;
Falls er nicht automatisch angelegt worden ist, kann man zunächst prüfen, ob dieser überhaupt eingebunden und richtig erkannt wurde.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lsusb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Sollte etwas ähnliches zurückmelden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bus 003 Device 002: ID 0403:0000 Future Technology Devices International, Ltd H4SMK 7 Port Hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls das Device nicht automatisch angelegt worden ist, muss dieses ggf. von Hand erledigen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87746 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87746.html#msg87746]&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Befehl sollte in der Liste ein  ttyUSB auftauchen. Normalerweise mit der Nummer 188.&lt;br /&gt;
&amp;lt;pre&amp;gt;cat /proc/devices&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Das Device wird dann angelegt mit:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mknod /dev/ttyUSB0 c 188 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich muss für den Betrieb des Pansticks das ftdi_sio Modul zur Verfügung stehen. Dieses lässt sich prüfen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;lsmod&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Voraussetzung könnte den Betrieb an einer Fritzbox erschweren, da nicht sicher ist, ob dieses Modul standardmäßig immer installiert ist.&lt;br /&gt;
&lt;br /&gt;
Legt man das Device von Hand an, kann es sein, dass die Berechtigungen nicht richtig gesetzt sind.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2015.04.23 22:20:06 3: Opening panStick device /dev/ttyUSB0 &lt;br /&gt;
2015.04.23 22:20:06 3: Can&#039;t open /dev/ttyUSB0: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Device sollte für die Gruppe dialout Lese-/Schreibberechtigungen haben.&lt;br /&gt;
Ist dieses nicht der Fall, lassen sich diese über diesen Befehlt setzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chown root:dialout ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Damit wird der &amp;quot;Besitz&amp;quot; festgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chmod a+rw /dev/ttyUSBx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hiermit werden die Berechtigungen gesetzt.&lt;br /&gt;
&lt;br /&gt;
Der Benutzer &amp;quot;fhem&amp;quot; sollte selbstverständlich der Gruppe &amp;quot;dialout&amp;quot; angehören.&lt;br /&gt;
Ist dieses nicht der Fall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo adduser fhem dialout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falls dem nicht so sein sollte, hilft ggf. einer dieser beiden Links weiter:&lt;br /&gt;
[[https://www.youtube.com/watch?v=UOECwHhCWRg]] [[http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/07/15/bbb--usb-io-with-ftdi-ft2232h]] bzw. die Installation des Moduls.&lt;br /&gt;
&lt;br /&gt;
==== IDE unter MacOS ====&lt;br /&gt;
&lt;br /&gt;
Da für den RGB-Sketch die IDE 1.0.x benötigt wird und diese Java SE 6 eine Voraussetzung ist, stellt die IDE und MacOS keine Optimale Konfigurationsumgebung dar. Wer es trotzdem probieren möchte&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82055 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82055.html#msg82055]&lt;br /&gt;
&lt;br /&gt;
==== INO ====&lt;br /&gt;
Der RGB-Sketches wurde mit Hilfe des Tools INO entwickelt. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=82139 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg82139.html#msg82139]&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt am leichtesten mit Hilfe des Tools pip.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen für das Tool sind darüber hinaus picocom für die Kommunikation mit der seriellen Schnittstelle und die arduino. Im gleichen Zuge lässt sich pip installieren.&lt;br /&gt;
Die benötigten Pakete werden über folgenden Aufruf installiert&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install picocom python-pip arduino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Installation erfolgt im Anschluss über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install ino&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die für einen Sketch erforderlichen libs werden in den entsprechenden lib Ordner kopiert (dort in entsprechenden Unterordnern).&lt;br /&gt;
&lt;br /&gt;
Die Pfade im Zip sind an dieses Tool angepasst.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=94830 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg94830.html#msg94830]&lt;br /&gt;
&lt;br /&gt;
Der serielle Port in der ino.ini muss selbstverständlich an die passende dev-Schnittstelle angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Als letztes sind die Parameter für das Board noch in die board.txt unter /usr/share/arduino/hardware/arduino einzutragen. Die Parameter lassen sich von hier extrahieren [http://old.panstamp.com/downloads] bzw. lauten für den AVR&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##############################################################&lt;br /&gt;
&lt;br /&gt;
panstamp.name=PanStamp v2.0 (3.3V, 8 MHz) w/ ATmega328&lt;br /&gt;
&lt;br /&gt;
panstamp.upload.protocol=arduino&lt;br /&gt;
panstamp.upload.maximum_size=30720&lt;br /&gt;
panstamp.upload.speed=57600&lt;br /&gt;
&lt;br /&gt;
panstamp.bootloader.low_fuses=0xE2&lt;br /&gt;
panstamp.bootloader.high_fuses=0xD8&lt;br /&gt;
panstamp.bootloader.extended_fuses=0x07&lt;br /&gt;
panstamp.bootloader.path=atmega&lt;br /&gt;
panstamp.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex&lt;br /&gt;
panstamp.bootloader.unlock_bits=0x3F&lt;br /&gt;
panstamp.bootloader.lock_bits=0x0F&lt;br /&gt;
&lt;br /&gt;
panstamp.build.mcu=atmega328p&lt;br /&gt;
panstamp.build.f_cpu=8000000L&lt;br /&gt;
panstamp.build.core=arduino&lt;br /&gt;
panstamp.build.variant=standard&lt;br /&gt;
&lt;br /&gt;
##############################################################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen: Jedes Mal, wenn die Arduino ein Update erhält, wird vermutlich diese Datei überschrieben, so dass die Eintragung wiederholt werden muss.&lt;br /&gt;
&lt;br /&gt;
Hier sind die grundlegendsten Befehle beschrieben [http://inotool.org/quickstart].&lt;br /&gt;
&lt;br /&gt;
Wechselt man nun in das Verzeichnis z.B. des RGBdriver, lässt die der Sketch kompilieren über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ino build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und hochladen über&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ino upload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Troubeshooting&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=134786 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg134786.html#msg134786]&lt;br /&gt;
&lt;br /&gt;
=== over-the-air (derzeit) nur NRG ===&lt;br /&gt;
&lt;br /&gt;
Die neueren panStamp NRGs können seit einiger Zeit auch over-the-air geflasht werden, wie hier im zugehörigen Forumthread beschrieben [[http://forum.fhem.de/index.php/topic,30589.0.html]].&lt;br /&gt;
&lt;br /&gt;
=== Was überlebt das Flaschen ===&lt;br /&gt;
Bestimmte Konfigurationen überstehen das Flashen, dieses sind zumindest Adresse und Intervall, die nicht neu gesetzt werden müssen [http://forum.fhem.de/index.php/topic,12487.msg87560.html#msg87560].&lt;br /&gt;
&lt;br /&gt;
=== EEPROM löschen ===&lt;br /&gt;
&lt;br /&gt;
Das EEPROM lässt sich komplett löschen, indem man in der setup() dieses hier einträgt [http://forum.fhem.de/index.php/topic,13890.msg156868.html#msg156868].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[Programmierung eines panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 11:36, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Integration in FHEM ==&lt;br /&gt;
=== FHEM Voraussetzungen ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Für den Betrieb ist XML:Simple notwendig, dass bei Bedarf folgendermaßen nachinstalliert werden kann [http://forum.fhem.de/index.php?topic=12487.msg87373#msg87373].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Abhängigkeit kann beim Betrieb auf einer Fritzbox ebenfalls zu Problemen führen.&lt;br /&gt;
&amp;lt;/strike&amp;gt; Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Pfade innerhalb der FHEM Installation ====&lt;br /&gt;
&lt;br /&gt;
Die Module befinden sich wie gewohnt im Installationsverzeichnis unter ./FHEM.&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das entsprechende Device Description File liegt unter ./FHEM/lib/SWAP wie hier beschrieben [http://forum.fhem.de/index.php/topic,12487.msg86257.html#msg86257].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Register ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Jeder panStamp stellt elf Systemregister (00-0A) [http://code.google.com/p/panstamp/wiki/SWAPregisters] und beliebig viele sketchabängige Userregister (0B-)bereit. Die Beschreibung der jeweils von einem Sketch bereitgestellten Userregister erfolgt in &#039;&#039;Device Description Files&#039;&#039;. Die Identifikation der Art eines panStamp und die Zuordnung zu einem bestimmten Device Description File erfolgt über den productCode der aus &#039;&#039;Hersteller&#039;&#039;- und &#039;&#039;Produkt-Id&#039;&#039; gebildet wird.&lt;br /&gt;
&lt;br /&gt;
In den Systemregistern steht z.&amp;amp;nbsp;B. der productCode, die Deviceadresse und das Übertragungsintervall. Konfigurierbare Register werden im EEPROM gesichert, so dass die Werte auch bei einem Neustart nicht verlorengehen. Beim ersten Starten eines panStamp ist das EEPROM mit FF initialisiert und alle konfigurierbaren Register haben diesen Wert, also z.&amp;amp;nbsp;B. die Adresse FF und das Intervall FFFF (zwischen 18 und 19 Stunden).&lt;br /&gt;
&lt;br /&gt;
Die Systemregister werden in der Device Detailansicht bei den InternalValues im oberen Bereich angezeigt und die User-Register als reading im unteren Bereich.&lt;br /&gt;
&lt;br /&gt;
Jeder panStamp durchläuft beim Start eine definierte Einschaltsequenz und überträgt als erstes seinen productCode. Batteriebetriebene panStamps warten anschließend drei Sekunden auf Konfigurationskommandos. Danach werden bestimmte Systemregister und aktuelle Messwerte gesendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Verwendung innerhalb FHEM ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[panStamp]] [[panStick]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Zu unterscheiden ist die Definition des &amp;quot;Panstick&amp;quot;, wobei der panStamp, der als RF-Modem auf dem Panstick sitzt, gemeint ist. Dieser wird im Folgenden mit &amp;quot;Panstick&amp;quot; als Name des Device benannt . Der Type ist &amp;quot;panstamp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Auf der anderen Seite gibt es die Definition der panStamps, die lokal auf den entsprechenden Boards stecken. Diese sind vom Type SWAP_&amp;lt;ProductCode&amp;gt;. Um die Verwirrung komplett zu machen, wird hier meistens vom &amp;quot;panStamps&amp;quot; gesprochen, obwohl es eigentlich SWAP-Devices sind. Für diese werden hier nur die allgemeinen Grundfunktionen beschrieben, die bei jedem SWAP-Device funktionieren. Die spezifischen Komandos und Attribute, die durch die 3. Modulebene in Abhängigkeit des Productcode zur Verfügung stehen, werden bei den spezifischen Anwendungen beschrieben. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In [[panStamp]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 13:08, 19. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Panstick ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
===== Definition =====&lt;br /&gt;
Das Device &amp;quot;Panstick&amp;quot; wird derzeit (01.05.2015) nicht durch autocreate angelegt. Daher muss er manuell entsprechend folgendem Befehl angelegt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define panStick panStamp /dev/ttyUSBx@38400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Schnittstelle muss entsprechend der Installation des Pansticks anzupassen werden. Für die Einrichtung des Pansticks innerhalb des OS siehe [[panstamp#unter Linux|Installation Panstick]]&lt;br /&gt;
&lt;br /&gt;
Dieses panStamp Device versucht dann alle panStamps im Netz zu finden und per autocreate anzulegen, wenn dieses aktiv sind.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Betrieb an der FB&#039;&#039;&#039;&lt;br /&gt;
Spezialitäten zum Betrieb an einer Fritzbox sind hier [http://forum.fhem.de/index.php/topic,12487.msg87778.html#msg87778] und hier [http://forum.fhem.de/index.php/topic,12487.msg95914.html#msg95914] beschrieben. Es scheint nur der hintere USB-Anschluss für die Verwendung zu laufen. Außerdem muss der USB-Fernaschluss deaktiviert sein.&lt;br /&gt;
&lt;br /&gt;
===== Attribute =====&lt;br /&gt;
&lt;br /&gt;
Für den &amp;quot;Panstick&amp;quot; gibt es keine modulspezifischen Attribute.&lt;br /&gt;
&lt;br /&gt;
===== Set =====&lt;br /&gt;
&lt;br /&gt;
* discover?&lt;br /&gt;
Mit diesem Befehl wird eine Broadcast SWAP-Message abgesetzt, die alle empfangenden panStamps dazu veranlassen, sich zu melden. Batteriebetriebenen panStamps können systembedingt nur identifiziert werden, wenn diese Empfangsbereit sind und sich nicht im Schlafmodus befinden.&lt;br /&gt;
&lt;br /&gt;
* raw&lt;br /&gt;
Ist der Panstick ersteinmal eingerichtet und meldet &amp;quot;Initialized&amp;quot;, kann über das panStick device direkt eine raw Message abgesetzt werden. Diese ist zur Zeit eigentlich immer eine SWAP Nachricht wie z.b. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set panStick raw 00010000010000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel wird ein broadcast an alle abgesetzt, damit diese ihre ID und ihren productcode zurück senden.&lt;br /&gt;
Das macht der panStick nach dem Initialisieren auch ein mal automatisch um alle nicht schlafenden Devices per autocreate anlegen zu können.&lt;br /&gt;
&lt;br /&gt;
Mit diesem Befehl &amp;quot;raw&amp;quot; lassen sich SWAP-Messages direkt absetzten, was vor allen Dingen dann hilfreich sein kann, wenn man vermutet, dass die Kommunikation über die modulgestützten Befehle fehlschlägt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[panStamp]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 20:05, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== SWAP ====&lt;br /&gt;
&lt;br /&gt;
Alle empfangen SWAP Nachrichten werden in internals/readings im jeweiligen Device angezeigt.&lt;br /&gt;
&lt;br /&gt;
===== Definition =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Info: Das SWAP Modul unterstützt autocreate. Bei der Inbetriebnahme sollte autocreate aktiviert sein, da dies die Einrichtung deutlich vereinfacht.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wenn der panStick läuft, sollten die SWAP-Devices per autocreate angelegt werden, sobald sie das erste mal senden, z.B. nach dem Einschalten oder nach einem Reset.&lt;br /&gt;
&lt;br /&gt;
Normalerweise werden beim autocreate alle Werte abgefragt und angezeigt. Das geht normalerweise ohne jedes Zutun. &lt;br /&gt;
&lt;br /&gt;
Panstick rein -&amp;gt; broadcast -&amp;gt; discovery -&amp;gt; anlegen. &lt;br /&gt;
&lt;br /&gt;
Bei Devices mit power down mode erfolgt dieses das erste mal wenn sie Strom haben. &lt;br /&gt;
&lt;br /&gt;
Alle panStamps durchlaufen beim Starten eine bestimmte Einschaltsequenz. Sie melden sich mit ihrer ID und ihrem productcode. Die ID ist die device Addresse und bei einem frisch geflashten panStamp in der Regel FF. Das SWAP Modul versucht, ein Device mit der Default Adresse &amp;lt;code&amp;gt;FF&amp;lt;/code&amp;gt; automatisch auf die erste freie Adresse im Bereich &amp;lt;code&amp;gt;F0&amp;lt;/code&amp;gt;-&amp;lt;code&amp;gt;FE&amp;lt;/code&amp;gt; zu ändern.&lt;br /&gt;
&lt;br /&gt;
Neue panStamps sollten nur Einer nach dem Anderen in Betrieb genommen werden, sonst haben mehrere die gleiche Addresse und das gibt Konflikte. &lt;br /&gt;
&lt;br /&gt;
Wer mehrere devices hat, sollte jedem nach dem Anlegen mit &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 set &amp;lt;device&amp;gt; regSet 09 &amp;lt;device adresse als 2 stellige hex zahl&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
eine eigene id zuweisen. Die landen auf dem panStamp im EEPROM und sind auch nach Neustart noch vorhanden. &lt;br /&gt;
&lt;br /&gt;
Die anderen Adressen sind wie folgt belegt:&lt;br /&gt;
* 00 ist die Broadcast-ID&lt;br /&gt;
* 01 ist die ID des Pansticks am FHEM-System&lt;br /&gt;
* FF ist die Default ID, die jeder panStamp im Auslieferungszustand besitzt&lt;br /&gt;
* F0-FE sind die IDs, auf die autocreate die Adresse automatisch ändert, wenn ein neuer mit der ID FF erkannt wird und kein entsprechender Device-Name definiert ist.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87261 }}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87261#msg87261]&lt;br /&gt;
&lt;br /&gt;
Ändert man die Adresse, dauert es einen Augenblick, bis alle Register neu übertragen worden sind. &lt;br /&gt;
&lt;br /&gt;
Autocreate ändert bei der Einrichtung und Änderung der ID auch automatisch den Namen. Belässt man die ID im Bereich F0-FE und ändert den Namen des Device, ist zu berücksichtigen, dass autocreate für neue Devices eine freie neue Adresse anhand der Device-Namen sucht. Dadurch könnte es zu Doppeltverwendung von IDs kommen.&lt;br /&gt;
&lt;br /&gt;
Alternativ zum autocreate kann man ein Device auch von Hand anlegen mit&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define &amp;lt;device&amp;gt; SWAP &amp;lt;ID&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bis allerdings der Productcode nicht per Attribut hinterlegt ist, was bei autocreate ebenfalls automatisch geschied, funktionieren nur die grundlegenden Funktionen bis zur 2. Modulebene.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== set =====&lt;br /&gt;
&#039;&#039;ZUGEFÜGT ZU SWAP ARTIKEL, STRIKE FUNKTIONIERT ABER IN DIESEM ABSATZ NICHT&#039;&#039;&lt;br /&gt;
Ist ein SWAP-Device definiert, stehen folgende set-Befehle zur Verfügung:&lt;br /&gt;
* regGet &amp;lt;reg&amp;gt;&lt;br /&gt;
Fragt den Wert des Registers mit der id &amp;lt;reg&amp;gt; ab. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
{{Link2Forum|Topic= 12487 |Message=87679 }}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87679.html#msg87679]&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
Schreibt &amp;lt;data&amp;gt; in den Register mit der id &amp;lt;reg&amp;gt;. Für die Systemregister kann hierzu statt der RegisterID auch der Registername (siehe regListAll) verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* regSet &amp;lt;reg&amp;gt;.&amp;lt;ep&amp;gt; &amp;lt;data&amp;gt;&lt;br /&gt;
write &amp;lt;data&amp;gt; to endpoint &amp;lt;ep&amp;gt; of register &amp;lt;reg&amp;gt;. will not work if no reading for register &amp;lt;reg&amp;gt; is available as all nibbles that are not part of endpoint &amp;lt;ep&amp;gt; will be filled from this reading. ?&lt;br /&gt;
&lt;br /&gt;
* statusRequest&lt;br /&gt;
Veranlasst, dass alle Register und deren Werte einmal übertragen werden.&lt;br /&gt;
&lt;br /&gt;
* readDeviceXML&lt;br /&gt;
Liest das Device-Description-XML-File neu ein.&lt;br /&gt;
&lt;br /&gt;
* clearUnconfirmed&lt;br /&gt;
Löscht die liste der unbestätigten Nachrichten.&lt;br /&gt;
&lt;br /&gt;
* flash [&amp;lt;productCode&amp;gt;|&amp;lt;firmwareFile&amp;gt;]&lt;br /&gt;
Initiiert das „over-the-air“ Firmware update, dass (derzeit) nur von NRG panStamps unterstützt wird.&lt;br /&gt;
* ohne Parameter: Verwendet das SWAP_&amp;lt;current productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
* &amp;lt;productCode&amp;gt;: Verwendet das SWAP_&amp;lt;productCode&amp;gt;.hex-File aus dem Verzeichnis ./FHEM/firmware.&lt;br /&gt;
* &amp;lt;firmwareFile&amp;gt;: Verwendet ein &amp;lt;firmwareFile&amp;gt; als absoluten File-Namen des HEX-Files.&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== get =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* regList&lt;br /&gt;
Listet alle User-Register des SWAP-Device (Readings). &lt;br /&gt;
&lt;br /&gt;
* regListAll&lt;br /&gt;
Listet alle Register des SWAP-Device (Internals und Readings). &lt;br /&gt;
&lt;br /&gt;
* listUnconfirmed&lt;br /&gt;
Listet alle unbestätigten Nachrichten in der Warteschlange.&lt;br /&gt;
&lt;br /&gt;
* products&lt;br /&gt;
Gibt alle auf dem System bekannten Productcodes nebst Daten aus.&lt;br /&gt;
&lt;br /&gt;
* deviceXML&lt;br /&gt;
Gibt die Daten des zum derzeit zum per Attribut (Productcode) eingerichteten Device-XML-Files aus.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Attribute =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Wird der Productcode bei der Definition nicht gesetzt, stehen auch nur die Standardbefehle bei zur 2. Modulebene zur Verfügung. &lt;br /&gt;
&lt;br /&gt;
* createUnknownReadings&lt;br /&gt;
Erzeug Readings auch für Register, die im Device-XML-File nicht definiert werden.&lt;br /&gt;
&lt;br /&gt;
* ProductCode&lt;br /&gt;
Legt den ProductCode eines SWAP-Device fest. Dieses Attribut wird dazu benutzt, die Konfiguration vom Device-XML-File festzulegen. &lt;br /&gt;
Erst wenn der Produktcode als Attribut vorgegeben wurde, z.B. für einen RGB-Sktech:&lt;br /&gt;
attr &amp;lt;device&amp;gt; ProductCode 0000002200000003&lt;br /&gt;
kommen zu den allgemeinen Kommandos die spezifischen der nächst höheren Modulebene 35_SWAP_&amp;lt;productcode&amp;gt;.pm mit hinzu. Dann werden die SWAP-Nachrichten an das entsprechende Modul weitergegeben und dort verarbeitet.&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices, die während der Definition nicht aktiv sind, muss dieses Attribut manuell angelegt werden.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]] --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 10:51, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== SWAP_&amp;lt;ProductCode&amp;gt; ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Ist bei einem SWAP-Device das Attribut Productcode gesetzt, wird die SWAP-Nachricht an das entsprechende Modul der 3. Ebene weitergegeben und dort verarbeitet. Die spezifischen Kommandos und Attribute sind bei den entsprechenden [[panstamp#Explizite Anwendungen|Anwendungen]] näher beschrieben.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Intervall bei Sketch mit power down / batterie betriebene Panstamps ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Devices mit power down mode durchlaufen beim Einschalten oder bei einem Reset eine 3 Sekunden Schleife und warten auf Kommandos, dann werden normaler Weise die Register mit den Sensorwerten gesendet und die normale Loop gestartet. power down devices gehen danach schlafen und wachen regelmässig auf um ihre Werte zu senden.&lt;br /&gt;
Alternativ zum Intervall kann man den Resetknopf drücken, wenn man sie nicht im Zugriff hat. &lt;br /&gt;
&lt;br /&gt;
Nachrichten an ein Device im power-down-state werden gepuffert und dann an das Device geschickt, sobald dieses sich im SYNC status befindet. Dieses ist typischer Weise nach dem Startup z.B. nach einem Reset der Fall.&lt;br /&gt;
&lt;br /&gt;
Bei batteriebetriebenen Sensoren sollte das Sendeintervall auf einen sinnvollen Wert gesetzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; set &amp;lt;device&amp;gt; regSet 0A &amp;lt;intervall in sekunden als 4 stellige hex zahl&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87409}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg87409#msg87409]&lt;br /&gt;
&lt;br /&gt;
Für batteriebetriebene Devices (genauer: Devices die den Power-Down-Modus unterstützen) wird das Default Sendeintervall bei der Einrichtung automatisch von &amp;lt;code&amp;gt;FFFF&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;0384&amp;lt;/code&amp;gt; (900 Sekunden = 15 Minuten) geändert.&lt;br /&gt;
&lt;br /&gt;
Das Intervall wird nur automatisch gesetzt, wenn pwrdownmode im device description file true ist.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=89205}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg89205.html#msg89205]&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg157125#msg157125]&lt;br /&gt;
&lt;br /&gt;
Es gibt mit bestimmten panStamp lib Versionen das Problem das ein Wert von FFFF in 0A zum Überlauf führt und dann ununterbrochen gesendet wird. Im fhem Modul wird versucht das abzufangen. Das funktioniert auf manchen langsamen host systemen (z.B. FritzBox) nicht, weil der panStamp so schnell sendet, dass fhem so mit dem Abarbeiten beschäftigt ist, dass es selber nicht zum senden kommt.&lt;br /&gt;
Zur Abhilfe kann im sketch in setup() ganz am Anfang  ein&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL, 0x55);&lt;br /&gt;
  EEPROM.write(EEPROM_TX_INTERVAL+1, 0x55);&lt;br /&gt;
eingefügt werden und noch mal flashen. Wenn der Sketch damit ein mal durchgelaufen ist können diese beiden Zeilen wieder entfernen und der panStamp noch mal geflasht.&lt;br /&gt;
&lt;br /&gt;
Automatisch gesetzte Werte sollten danach manuell auf die jeweilige Installation angepasst werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87859}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87859.html#msg87859]&lt;br /&gt;
&lt;br /&gt;
Für Devices im Power-Down-Modus werden diese Kommandos in eine Warteschlange gestellt und übertragen, sobald das Device seine Initialisierungssequenz durchläuft. Hierzu ist nach Absetzen der Kommandos Reset zu drücken oder die Stromquelle erneut zu verbinden.&lt;br /&gt;
&lt;br /&gt;
Die automatisch vergebenen Adressen sind im Bereich F0-FE. d.h. eigentlich auch nur temporär und sollten auf eine lokal passende geändert werden.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=87919}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg87919.html#msg87919]&lt;br /&gt;
&lt;br /&gt;
Im Log sollte etwas in dieser Art auftauchen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:14:29 2: autocreate: define SWAP_F0 SWAP FF 000000010000000E&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP_F0: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:14:29 3: SWAP SWAP_F0: changing 09-DeviceAddress from default FF to F0&lt;br /&gt;
2013.07.29 20:14:30 3: SWAP SWAP_F0: changing 0A-PeriodicTxInterval from default FFFF to 0384 (900 seconds)&lt;br /&gt;
&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP Unknown device FF, please define it&lt;br /&gt;
2013.07.29 20:16:35 2: autocreate: define SWAP_F1 SWAP_0000002200000003 FF 0000002200000003&lt;br /&gt;
2013.07.29 20:16:35 3: SWAP_F1: I/O device is panStamp&lt;br /&gt;
2013.07.29 20:16:36 3: SWAP SWAP_F1: changing 09-DeviceAddress from default FF to F1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zugefügt zu Artikel [[SWAP]]. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
==== Verschlüsselung ====&lt;br /&gt;
&lt;br /&gt;
Die Aktivierung der Verschlüsselung für die Kommunikation zwischen panStamp und panStick ist hier beschrieben, scheint allerdings derzeit noch nicht eingecheckt zu sein (Stand 01.05.2015).&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133040}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133040.html#msg133040]&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=139341}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg139341.html#msg139341]&lt;br /&gt;
&lt;br /&gt;
=== Trouble Shooting ===&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
==== value has to be 10 byte(s) in size  ====&lt;br /&gt;
&lt;br /&gt;
Es besteht die Möglichkeit, dass die Internals aus irgend einem Grund nicht vollständig sind. &lt;br /&gt;
Abhilfe in einem solchen Falle kann das Absetzen der folgenden beiden Befehlt schaffen&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
set &amp;lt;device&amp;gt; readDeviceXML&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn das nicht zum Erfolg führt, hilft ggf. ein Löschen und neu setzen des ProductCode Attributs.&lt;br /&gt;
{{Link2Forum|Topic=34474.0}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=34474.0]&lt;br /&gt;
&lt;br /&gt;
Das Übertragen aller Daten nach dem Statusrequest kann einen Augenblick dauern.&lt;br /&gt;
&lt;br /&gt;
Eine weitere Möglichkeit:&lt;br /&gt;
Die Fehlermeldung kommt immer wenn FHEM nicht weiss welche Firmware auf dem device ist. Das passiert wenn irgendetwas in der Kommunikation schief geht während FHEM initialisiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122414}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122414.html#msg122414]&lt;br /&gt;
&lt;br /&gt;
==== register 0F is not known ====&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=84257}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg84257.html#msg84257]&lt;br /&gt;
&lt;br /&gt;
==== Komplette Übersicht eines Device ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
list &amp;lt;device&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201467}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201467#msg201467]&lt;br /&gt;
&lt;br /&gt;
==== fehlender oder falsche Productcode ====&lt;br /&gt;
&lt;br /&gt;
Fehlt der Productcode, werden die zum Sketch zugehörigen Befehle nicht angezeigt und die Register nicht korrekt zugeordnet.&lt;br /&gt;
Verändert man den Productcode, sollte man im Anschluss folgenden Befehlt absetzten, um alle Register neu auszulesen&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set &amp;lt;device&amp;gt; statusRequest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201910}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201910#msg201910]&lt;br /&gt;
&lt;br /&gt;
==== missing commands und register 00-0A unvollständig ====&lt;br /&gt;
&lt;br /&gt;
Wenn in den Internals missing commands (SWAP_Sent_unconfirmed) auftauchen und ggf. die Register 00-0A nicht vollständig sind und das Internal &amp;quot;channels&amp;quot; nicht vorhanden ist, gibt es irgendein Kommunikationsproblem.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201939}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201939#msg201939]&lt;br /&gt;
&lt;br /&gt;
==== Funktion des Autocreate ====&lt;br /&gt;
&lt;br /&gt;
Beim autocreate wird versucht ein Name für das Device zu vergeben, der zur nächsten freien Adresse passt. Während dieses Prozessen bleibt die Adresse erst mal trozdem FF. Erst wenn das Device angelegt wird, kann versucht werden automatisch die Adresse zu setzen, hoffentlich auf die gleiche freie, die beim Namen auch schon gefunden wurde. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=88110}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg88110.html#msg88110]&lt;br /&gt;
&lt;br /&gt;
==== Adresse manuell setzen ====&lt;br /&gt;
&lt;br /&gt;
Um die Adresse manuell bereits in den Sketch einzubauen kann man wie hier beschrieben vorgehen.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=122347}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg122347.html#msg122347]&lt;br /&gt;
&lt;br /&gt;
==== Panstamp antwortet nicht/EEprom to factory defaults ====&lt;br /&gt;
&lt;br /&gt;
Wenn der panStamp nicht antwortet, kann es sein das die Adressen durcheinander gekommen sind. Dann musst man einmal in setup() ein  eepromToFactoryDefaults() aufrufen und damit flashen. Wenn damit einmal gestartet wurde, die Zeile wieder entfernen und den normalen sketch flashen. &lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121677}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg121677#msg121677]&lt;br /&gt;
&lt;br /&gt;
==== Undefined subroutine &amp;amp;main::XMLin ====&lt;br /&gt;
Erhält man diese Fehlermeldung&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Undefined subroutine &amp;amp;main::XMLin called at ./FHEM/34_SWAP.pm line 108.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2013.09.26 11:34:24 0: ERROR: Cannot autoload SWAP&lt;br /&gt;
2013.09.26 11:34:24 3: panStick: Unknown code 000A001B000A000000000100000007, help me!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es fehlt XML::Simple, was folgendermaßen installiert werden kann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libxml-simple-perl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Factory Defaults ====&lt;br /&gt;
&lt;br /&gt;
Um einen panStamp auf den Auslieferungszustand zurückzusetzen, muss man beim Sketch folgendes in die setup() Routine einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eepromToFactoryDefaults()&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=157125}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg157125#msg157125]&lt;br /&gt;
&lt;br /&gt;
==== Status LED ====&lt;br /&gt;
&lt;br /&gt;
Die Status LED auf dem Board wird in der config.h deaktiviert, indem man die Zeit #define LED_DEBUG mit &amp;quot;//&amp;quot; auskommentiert.&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=164731}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,13890.msg164731.html#msg164731]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; Inhalt in Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 21:00, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Explizite Anwendungen ==&lt;br /&gt;
=== RGB-Board ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
==== Allgemeines ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Das Board unterstützt RGBW LEDs und lässt sich per Infrarot Fernbedienung, DMX Controller (z.&amp;amp;nbsp;B. als Unterputz Touchpanel) und FHEM bedienen.&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang wird in diesem [http://forum.fhem.de/index.php/topic,12487.msg81923.html#msg81923 Forenthread] vorgestellt. Die Hardware für das Board wird [http://forum.fhem.de/index.php/topic,13890.0.html  hier] im FHEM Forum vorgestellt und ein Prototyp ist [http://forum.fhem.de/index.php/topic,12487.msg85777.html#msg85777 hier] zu sehen.&lt;br /&gt;
&lt;br /&gt;
Die Projektseite zur Hardware findet sich [http://itse.homeip.net/projekte/12/6/ hier]. Eine Version 2 des Boards in geplant. &lt;br /&gt;
&lt;br /&gt;
Eine Übersicht über die derzeit vorhandene Funktionalität (stand 01.05.2015):&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=1205404}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg120404#msg120404]&lt;br /&gt;
&lt;br /&gt;
* bis zu vier LED-Kanäle (je nach Kombination von ir und soft pwm)&lt;br /&gt;
* ir senden&lt;br /&gt;
* ir empfangen&lt;br /&gt;
* Messen ob die LED-Versorgung an ist.&lt;br /&gt;
* Helligkeit eines an A2 angeschlossenen Helligkeitssensors&lt;br /&gt;
* Konfiguration der DMX-Basis-Adresse über das SWAP Register 0x12&lt;br /&gt;
* optional soft on auf letzten Wert&lt;br /&gt;
* Alles was auch vorher schon ging: dimmen, faden, IR-Fernbedienungen anlernen, ...&lt;br /&gt;
&lt;br /&gt;
Wichtig zu wissen:&lt;br /&gt;
* Wenn IR aktiv ist und kein soft pwm lässt sich der 4. Kanal nur ein- und ausschalten.&lt;br /&gt;
* Wenn IR aktiv ist muss soft pwm aktiv sein um den 4. Kanal auch zu dimmen.&lt;br /&gt;
* Es wird nur ein zusätzlicher Kanal tatsächlich schon unterstützt, der fünfte ist noch geplant.&lt;br /&gt;
* Bei IR-Senden sind nur die Aufrufe für Sony und NEC tatsächlich eingebaut. Die anderen sind aber einfach zu ergänzen.&lt;br /&gt;
* Beim IR-Senden sind noch keine Wiederholungen eingebaut. Die müssen laut Protokoll aber eigentlich sein.&lt;br /&gt;
&lt;br /&gt;
was noch kommt:&lt;br /&gt;
* besseres soft pwm&lt;br /&gt;
* mehr Konfiguration bezüglich default-Verhalten. Ramp-Zeiten, Delays, ...&lt;br /&gt;
* HSV-Farb-Modell um besser zu faden und vor Allem um den Weiss-Anteil automatisch auf die Weiss-LEDs zu legen&lt;br /&gt;
* die virtuellen Channel &lt;br /&gt;
* FHEM kompatibles IR-Senden&lt;br /&gt;
* sofortiges senden von Helligkeit und LED-Spannung bei Änderung&lt;br /&gt;
* andere IR-Lib mit sehr viel besserer Geräte-Unterstützung&lt;br /&gt;
&lt;br /&gt;
Wie gehabt muss alles über config.h mit Compilerschaltern konfiguriert werden.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
===== weitrere Screenshots =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:SWAP_0000002200000003-internal.png|InternalValues&lt;br /&gt;
File:SWAP_0000002200000003-readings.png|Readings&lt;br /&gt;
File:SWAP_0000002200000003-attributes.png|Attributes&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[SWAP_0000002200000003]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== original RGB-Sketch (von panstamp.com) =====&lt;br /&gt;
Der originale Sketch von der panStamp.com-Seite und das generelle FHEM-Modul verstehen von Haus aus nur die regSet und regGet Kommandos. Wenn man den colorpicker verwenden möchte, geht das nur per readingsProxy. &lt;br /&gt;
&lt;br /&gt;
Das einfachste ist es den Sketch und das FHEM-Modul für das RGB-Board zu verwenden. Dann hat man neben dem colorpicker, einem farbigen State-Icon auch alle Möglichen Kommandos wie on, off, on-for-timer, dimup, ... und kann konfigurieren, wie das Board nach dem Hart- oder Soft-Einschalten reagieren soll. &lt;br /&gt;
&lt;br /&gt;
Derzeit scheint es keinen Grund zu geben, den original Sketch zu verwenden. &lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=220463}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg220463.html#msg220463]&lt;br /&gt;
&lt;br /&gt;
Falls jemand trotzdem den normalen RGB-Sketch verwendet:&lt;br /&gt;
* Im Code alle drei 0000002200000003 durch 0000000100000003 ersetzen.&lt;br /&gt;
Dann geht on/off/toggle/set rgb RRGGBB und auch der colorpicker, wenn das HUEDevice Modul auch geladen ist.&lt;br /&gt;
&lt;br /&gt;
==== Sketch vorbereiten, kompilieren und hochladen ====&lt;br /&gt;
===== Vorbereitungen =====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
(Stand 01.05.2015)&lt;br /&gt;
&lt;br /&gt;
Mit der Arduino IDE 1.5.x gab es gundlegende Umstellungen, für die der derzeitige Sketch [r4716] vermutlich angepasst werden müsste.&lt;br /&gt;
&lt;br /&gt;
Für den RGB-Driver sketch sind je nach gewünschtem Funktionsumfang noch folgende libs zu installieren:&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;Panstamp Lib&#039;&#039;&#039; läd man von hier [[http://old.panstamp.com/downloads]] (panstamp_library.zip, 129k v.25, May 31, 2013). Mit der neueren Lib v.4 läuft die Kompillierung des derzeitigen Sketches nicht durch. Die Dateien der Lib speichert man in einem entsprechend neuen  Unterordner, z.B. hierin C:\Users\&amp;lt;username&amp;gt;\Documents\Arduino\libraries. Am Ende der ganzen Aktion im Folgenden sollten sich in diesem Unterordner 3 neue Unterordner befinden: IRremote, DMXSerial und panstamp&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;IR Remote Lib&#039;&#039;&#039; kopiert man von hier [[https://github.com/shirriff/Arduino-IRremote]] und speichert sie ebenfalls in einem passenden Unterordner von libraries.&lt;br /&gt;
&lt;br /&gt;
* Die Dateien der &#039;&#039;&#039;DMX Lib&#039;&#039;&#039; kopiert man von hier [[http://www.mathertel.de/Arduino/DMXSerial.aspx]] und speichert sie ein weiteres Mal in einem weiteren Unterordner von libraries. Weitere Informationen zur Verwendung von Arduino Libraties finden sich hier [[http://arduino.cc/en/Hacking/Libraries]]. Dass die Libraries richtig erkannt worden sind, lässt sich dadurch erkennen, dass unter Sketch/Library importieren die 3 weiteren Punkte unten unter &amp;quot;beigetragen&amp;quot; auftauchen.&lt;br /&gt;
&lt;br /&gt;
Die Librarys sollten entweder mit dem entsprechenden Menüpunkt in die IDE integriert werden oder jeweils nach auspacken des zip files als als kompletten Ordner im Arduino libraries Verzeichnis abgelegt werden (siehe [http://www.arduino.cc/en/Hacking/Libraries)]).&lt;br /&gt;
&lt;br /&gt;
Für das kompilieren mit INO siehe [[panstamp#ino|hier]].&lt;br /&gt;
&lt;br /&gt;
===== Link zum sketch =====&lt;br /&gt;
Die aktuelle Version des RGB-Driver Sketches findet sich auf [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge].&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201391}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201391#msg201391]&lt;br /&gt;
&lt;br /&gt;
===== Kompillierte hex version =====&lt;br /&gt;
Eine kompiliertes HEX-File für drei (vier) Kanäle plus IR-Empfang und DMX ist hier im Forum zu finden:&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=121619}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg121619#msg121619]&lt;br /&gt;
&lt;br /&gt;
===== HEX-File ohne IR und DMX =====&lt;br /&gt;
Eine kompiliertes HEX-File ohne IR-Empfang und DMX ist hier im Forum zu finden:&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=201955}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg201955#msg201955]&lt;br /&gt;
&lt;br /&gt;
===== Sketch anpassen, kompilieren und hochladen =====&lt;br /&gt;
&lt;br /&gt;
* Welche Features der sketch bietet lässt sich im config.h file durch ein- oder auskommentieren der #define ENABLE_... Zeilen festlegen. {{Link2Forum|Topic=13890 |Message=173431}} [http://forum.fhem.de/index.php?topic=13890.msg173431#msg173431] Den Sketch entsprechend den Bedürfnissen in den config.h die nicht benötigten Zeilen mit &amp;quot;//&amp;quot; auskommentieren bzw. anpassen. Für die Konfigurationen siehe [[panstamp#Sketch konfigurieren|Sketch konfigurieren]].&lt;br /&gt;
* Windows IDE only: Falls alles so bleibt, wie es heruntergeladen wurde, wechselt man wieder auf den Reiter sketch und importiert über -&amp;gt;Sketch Library importieren die entsprechenden Libs für IRremote und DMX. Dadurch werden 3 neue Zeilen hinzugefügt.&lt;br /&gt;
* Nun sollte über Sketch/Überprüften/Kompillieren die Erstellung des Sketches möglich sein.&lt;br /&gt;
* Falls erfolgreich unter Datei/Hochladen (ohne Programmer) den Sketch auf den Panstamp laden.&lt;br /&gt;
&lt;br /&gt;
==== Sketch konfigurieren ====&lt;br /&gt;
 &lt;br /&gt;
===== DMX =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define ENABLE_DMX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei ist darauf zu achten, dass in der DMX-Lib in der Datei DMXSerial.h die Zeile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define DmxModePin 2     // Arduino pin 2 for controlling the data direction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define DmxModePin 7     // Arduino pin 7 for controlling the data direction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
abgeändert werden muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Temperatur- und Luftfeuchtigkeitssensor =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define HAS_SENSOR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieses ermöglicht die Nutzung eines DHT22 Sensors zur Auswerung von Temperatur und Luftfeuchtigkeit.&lt;br /&gt;
&lt;br /&gt;
Dafür sollten diese Konfigurationszeilen auskommentiert  sein&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
USE_SOFT_PWM;&lt;br /&gt;
ENABLE_IR_SEND;&lt;br /&gt;
ENABLE_REPEATER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In der IRremote.cpp Datei in der Irremote Library muss die Zeile&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void IRrecv::disableIRIn() &lt;br /&gt;
{&lt;br /&gt;
TIMER_DISABLE_INTR;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
sowie die Irremote.h Datei unter Public: um die Zeile &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void disableIRIn();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
erweitert werden.&lt;br /&gt;
&lt;br /&gt;
Der Daten-Pin des DHT22 Sensors muss hierfür an A2 des panStamps angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für die Umrechnung der Userreading für Spannung Temp etc. ist hier beschrieben.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=76489}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=12487.msg76489#msg76489]&lt;br /&gt;
&lt;br /&gt;
===== Zusammenhänge der Konfiguration =====&lt;br /&gt;
&lt;br /&gt;
Die Zusammenhänge der Konfiguration sind hier beschrieben&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=175181}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg175181#msg175181]&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhalt in Artikel [[PanStamp RGBWW Board mit DMX und IR]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Bedienung in FHEMWEB ====&lt;br /&gt;
&lt;br /&gt;
===== Komandos =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Definition ======&lt;br /&gt;
&lt;br /&gt;
Der Panstick wird entsprechend folgendem Befehlt angelegt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define panStick panStamp /dev/ttyUSBx@38400&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Schnittstelle ist entsprechend Installation des [[panstamp#unter Linux|Pansticks]] anzupassen.&lt;br /&gt;
&lt;br /&gt;
Dieses panStamp Device versucht dann alle panStamps im Netz zu finden und per autocreate anzulegen, wenn dieses aktiv ist.&lt;br /&gt;
&lt;br /&gt;
====== Attribute TBC ======&lt;br /&gt;
&lt;br /&gt;
====== Set TBC ======&lt;br /&gt;
&lt;br /&gt;
====== Get TBC ======&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php?topic=12487.msg81923#msg81923&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EIn register verändern&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg87679.html#msg87679&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Register umrechnung dec zu hex TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg162790.html#msg162790&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Poweronstate TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg88054.html#msg88054&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg95574.html#msg95574&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg124456.html#msg124456&lt;br /&gt;
&lt;br /&gt;
===== Aus nach poweron TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121296#msg121296&lt;br /&gt;
Power on register&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121137#msg121137&lt;br /&gt;
&lt;br /&gt;
===== listunconfirmed TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg88112.html#msg88112&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/strike&amp;gt; In Artikel [[SWAP]] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Fadeto TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php/topic,12487.msg97406.html#msg97406&lt;br /&gt;
&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
Default fade time&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg121572#msg121572&lt;br /&gt;
&lt;br /&gt;
===== Eigenschaften des fade TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg106644#msg106644&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== 4.,5. kanal TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg169741#msg169741&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg192132#msg192132&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201922#msg201922&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg201936#msg201936&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
===== Extra kanäle TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP_0000002200000003]]}}&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg173280#msg173280&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg214329#msg214329&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg214474#msg214474&lt;br /&gt;
&lt;br /&gt;
==== IR Schnittstelle TBC ====&lt;br /&gt;
===== IR TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107061#msg107061&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107197#msg107197&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg107415#msg107415&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122021.html#msg122021&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg122077.html#msg122077&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg167351#msg167351&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175269#msg175269&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175285#msg175285&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg182582#msg182582&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg245597#msg245597&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg259267#msg259267&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== IR-Belegung Panstamp RGB-Board TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163008.html#msg163008&lt;br /&gt;
http://forum.fhem.de/index.php/topic,13890.msg163153.html#msg163153&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Ircluster TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175331#msg175331&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Irgate TBC =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
http://forum.fhem.de/index.php?topic=13890.msg175278#msg175278&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== DMX Schnittstelle ====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Da die DMX-Schrittstelle kein direktes Interface zu FHEM hat, sondern nur die direkte Kommunikation zwischen DMX-Kontroller und RGB-Board betrifft, ist die Schnittstelle nur bei der Konfiguration des Sketches und über die Dokumentation des Boards beschrieben.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
==== sonstiges ====&lt;br /&gt;
&lt;br /&gt;
===== Alternativer Fade per Patch =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Als Alternative zum im Sketch und im Modul eingebauten Fade-Befehl ist hier ein Patch vorgestellt:&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=133096}} &lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg133096.html#msg133096]&lt;br /&gt;
&lt;br /&gt;
Der Patch ist &#039;&#039;&#039;nicht eingecheckt&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
===== Kompatibilität RBG-Board mit NRG-panStamps =====&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[PanStamp_RGBWW_Board_mit_DMX_und_IR]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Mit dem hier beschriebenen Sketch ist das Board nur mit den AVRs kompatibel.&lt;br /&gt;
Die Pinbelegung zwischen AVR und NRG ist im Prinzip gleich bis auf Pin 23. Das ist bei dem NRG ein IO Pin und nicht Ground wie beim AVR. &lt;br /&gt;
Das wäre kein Problem wenn man entweder hardwareseitig den Kontakt unterbricht oder aber programmiertechnisch diesen Pin &#039;&#039;&#039;NIE&#039;&#039;&#039; als Ausgang definiert. Ansonsten gibt’s ein „kurzen“. Oder wenn er als Ausgang definiert ist darf er nur das GND Potential haben, also Low, 0.&lt;br /&gt;
&lt;br /&gt;
{{Link2Forum|Topic=13890 |Message=247069}}&lt;br /&gt;
[http://forum.fhem.de/index.php?topic=13890.msg247069#msg247069]&lt;br /&gt;
&lt;br /&gt;
Da es derzeit (Stand 01.05.2015) aber keinen Sketch gibt, der auf den NRG lauffähig ist, wäre vorher noch diese Herausforderung zu lösen.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:54, 17. Jul. 2015 (CEST)&lt;br /&gt;
=== Bodenfeuchtesensor ===&lt;br /&gt;
{{Randnotiz|RNText=In Artikel [[SWAP]]}}&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Der panStamp soilmoisture Sketch aus dem examples Verzeichnis ist mit dem Standard SWAP Modul kompatibel. &lt;br /&gt;
&lt;br /&gt;
Ein Artikel über ein selbstentwickeltes PanStamp Batterieboard zum Anschluss von Analogsensoren/1Wire und Solarversorgung ist hier [[Bodenfeuchtesensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine für einen Vegetronix sensor angepasste Version kann von [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ sourceforge] heruntergeladen werden. Das Übertragungsintervall ist wie üblich über das regsiter 0A konfigurierbar. Der Sensor wird and GND, D7 für die Versorgungsspannung und A4 für den Messwert angeschlossen. Erfahrungen haben gezeigt, dass bei einem fünfminütigen Übertragungsintervall nach 12 Monaten Laufzeit die Batteriespannung von 1.55V auf 1.4V abfällt. Das würde bedeuten, dass eine Batterie im Batterieboard mindestens eine Laufzeit von drei Jahren haben sollte.&lt;br /&gt;
&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; stateFormat VWC_A%&lt;br /&gt;
 set &amp;lt;MyBodenfeuchte&amp;gt; userReadings Level0_Voltage {hex(ReadingsVal($name,&amp;quot;0C.0-Moisture_level_0&amp;quot;,&amp;quot;0&amp;quot;))*(3.3/1024)}, &lt;br /&gt;
     VWC_A:0C.0-Moisture_level_0 {sprintf(&amp;quot;%.0f&amp;quot;,(11.6552 * (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**4 + 7.10835 * &lt;br /&gt;
        (ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 - 0.569557) / ((ReadingsVal($name,&amp;quot;Level0_Voltage&amp;quot;,&amp;quot;0&amp;quot;))**2 + 1))}, &lt;br /&gt;
     voltage:0B-Voltage {hex(ReadingsVal($name,&amp;quot;0B-Voltage&amp;quot;,&amp;quot;0&amp;quot;))*0.001}, &lt;br /&gt;
     battery:0B-Voltage {(ReadingsVal($name,&amp;quot;voltage&amp;quot;,&amp;quot;0&amp;quot;)&amp;lt;1?&amp;quot;low&amp;quot;:&amp;quot;ok&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
[[Datei:SWAP_ soilmositure-plot.jpg|mini|x100px|Bodenfeuchte]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix1.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;tright&amp;quot; style=&amp;quot;clear:none&amp;quot;&amp;gt;[[Datei:panstamp_vegetronix2.jpg|mini|ohne|x130px|Vegetronix Bodenfeuchtesensor an panStamp]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit einem entsprechend erweiterten Sketch lassen sich auch mehrere Sensoren an einem panStamp auslesen.&lt;br /&gt;
&lt;br /&gt;
Die folgenden Bilder zeigen eine panStamp/Vegetronix Außeneinheit im IP65-Gehäuse. Dieser Aufbau wird ganzjährig den Witterungseinflüssen ausgesetzt. Die auf den Stab aufgesetzte Antenne muss nicht verwendet werden, bei kürzeren Funkstrecken ist eine innenliegende Drahtantenne ausreichend. Bitte in FHEM den RSSI- und LQI-Wert sowie die Gleichmäßigkeit des Empfangens der 5 Minuten Sendeintervalle dementsprechend beobachten.&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Artikel [[SWAP] übernommen. --[[Benutzer:TeeVau|TeeVau]] ([[Benutzer Diskussion:TeeVau|Diskussion]]) 23:59, 18. Jul. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=== Umweltsensor ===&lt;br /&gt;
&lt;br /&gt;
Die Weiterentwicklung des Bodenfeuchtesensors zum Umweltsensor ist hier [[PanStamp_Umweltsensor]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== Ultraschall-Füllstandssensor ===&lt;br /&gt;
&lt;br /&gt;
Projektidee&lt;br /&gt;
&lt;br /&gt;
=== Repeater Mode ===&lt;br /&gt;
&lt;br /&gt;
Die Repeaterfunktionalität ist derzeit (01.05.2015) noch nicht näher beschrieben, wird aber von den Modulen unterstützt.&lt;br /&gt;
{{Link2Forum|Topic=12487 |Message=118403}}&lt;br /&gt;
[http://forum.fhem.de/index.php/topic,12487.msg118403.html#msg118403]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.panstamp.com/home panStamp] panStamp Hersteller&lt;br /&gt;
* [http://itse.homeip.net/projekte/12/6/ Projektseite] für das RGB-Multi-Board.&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ rgbdriver sketch] auf sourceforge&lt;br /&gt;
* [http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/ soilmoisture sketch]  auf sourceforge&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:panStamp]]&lt;br /&gt;
[[Kategorie:Interfaces]]&lt;br /&gt;
[[Kategorie:Other Components]]&lt;/div&gt;</summary>
		<author><name>TeeVau</name></author>
	</entry>
</feed>