Somfy RTS in IP Symcon über RTS485 Gateway einbinden

Hallo,

ich hab von Somfy jetzt die Info bekommen, dass es doch so ein Gateway gibt :smiley:
Kostenpunkt ca. 300 Euro, was ich bereit wäre zu investieren.

Die Kernfrage nun:
Kann ich mit IPS dieses RS485 device ansprechen (anbei noch die Kurzbedienungsanleitung von dem Somfy Teil)?
http://www.google.at/url?sa=t&rct=j&q=rs485%20rts%20transmitter&source=web&cd=2&ved=0CEsQFjAB&url=http%3A%2F%2Fwww.somfysmarthome.co.uk%2Fpdfs%2FRS485%20RTS%20Transmitter.pdf&ei=ra7GTuD5Gs6bOqnC_cMP&usg=AFQjCNGYstVvw5zoNLEjvc3Q0VpkInZsvw&cad=rja

Ich hab zusätzlich noch eine Homematic CCU, die auch in IPS eingebunden ist und über ein RS485 Interface verfügt.
Könnte man das alternativ damit machen?
Danke.

Hallo,

ich habe das selbe Problem. Hast du jetzt schon was gemacht betreffend der Ansteuerung?

Ich hebe das Thema kurz mal aus der Versenkung. In dem PDF ist das gesamte Protokoll zur Ansteuerung vorhanden. Wer also Somfy braucht, kann sich theoretisch ein paar Skripte erstellen.

paresy

@vacancy

Ja, ich hab’s mittlerweile komplett ins IPS Shadowing implementiert und bin superzufrieden damit.

Einziges problemchen ist bei mir die Reichweite zu den funkraffstores im Wintergarten, die ab und an mal stockt.

Liegt aber daran, dass der rs485 transmittier im stahlbetonkeller steht.

Hallo,
ich renoviere ein Haus und überlege zur Zeit, welche Heimautomationslösung ich wählen soll.

Durch IP Symcon habe ich hier eine Lösung gefunden, mit der man verschieden geeignete Lösungen unterschiedlicher Hersteller über eine Software vereinen kann, das finde ich schon mal gut.
Zur Hardware:
Ich bin nicht unbedingt ein Fan von kabellosen Lösungen, auch wenn mir mittlerweile klar geworden ist, dass das wohl die günstigste Lösung würde. Bei einer gewünschten konventionellen Elektro-Verkabelung scheidet KNX aus, LCN soll laut Angaben mehrerer Elektriker für meine Wünsche zu teuer werden.
Ich bin technisch eher Laie, kann also mit Protokollen und deren Verwendung nichts anfangen.

Nun bin ich auf Somfy gestoßen. Ist ein umfassendes System und vor allem ausbaufähig.
Kann man hier nun - wie ich dem Thread entnommen habe - die drahtlose RTS-Anbindung von Somfy mit IP Symcon nutzen? Und wenn ja, wie macht man das?

Danke und Gruß

Theoretisch ja, praktisch nein, da es keiner Umgesetzt hat.

paresy

Empfehlen würd ichs aber nicht, da Funk immer gewisse Nachteile hat.
Wenn du eh renovierst, zieh dir doch die paar Kabel zu einem zentralen Verteiler.
Stemmen mußt ohnehin, da du beim Rolladen zumindest Strom brauchst.

Ansonsten brauchst du dann das ca. 500 € Somfy RS485 Gateway und einen RS-485 USB Converter (ca. 20 oder 30 €).
Wie du siehst, würdest um das Geld schon locker die KNX Variante bekommen (und dir auch noch die rel. teuren Somfy Empfänger und Fernbedienungen sparen).

Theoretisch ja, praktisch nein, da es keiner Umgesetzt hat.

Ich habs bei mir im Einsatz, sogar in Kombination mit IPS Shadowing.
Die Challenge ist, dass man die notwendige Hex-Wurst generieren muß und dann für die div. Befehle (auf, ab, stop, my-position) auf die USB Schnittstelle schickt.
Ich hab die Hex Wurst einmalig manuell generiert (mittels Somfy Frame generator).

Hallo zusammen,

da ich mittlerweile die eine oder andere Anfrage zwecks Integration in IP-Symcon bekommen habe, versuche ich eine Kurzanleitung mit Screenshots hier reinzustellen…vor allem auch deswegen, da das ganze nicht plug and play ist :slight_smile:

Also starten wir mit der Hardware:
Wir benötigen das Somfy RS 485 Gateway, kostet ca. 500 € und ist bei jedem Somfy Fachhändler zu bestellen:

Dann benötigen wir noch einen USB-RS485 Converter, um das Gateway mit dem PC/IP-Symcon Server verbinden zu können.
Ich hab folgenden ausgewählt, kostet ca. 25 €.
Theoretisch sollten auch andere funktionieren, mit einigen gibts aber Probleme.
http://www.hexin-technology.com/USB_2.0_To_RS-485_Converter-Product-255.html
Screen Shot 2014-05-15 at 23.01.12.png

Der dazugehörige Treiber sollte natürlich auch installiert werden, kann von der Hexin Homepage runterladen.
In den Hardwareeinstellungen in der Systemsteuerung sind dann die entsprechenden Settings zu setzen:
Bits per second: 4800
Data bits: 8
Parity: Odd
Stop bits: 1
flow control: Xon/off and also hardware

Dann verbindet man den RS485 Converter mit dem Somfy RS485 Gateway.
Lt. Doku sollte das so aussehen:
Somfy RS 485 Bus + <–> Hexin T-
Somfy RS 485 Bus - <–> Hexin T+
Somfy RS 485 Bus G <–> Hexin G

Ich hab damit tagelang herum experimentiert, da ich keine Verbindung bekommen habe und dann einfach mal + mit - getauscht, danach hat´s dann geklappt.

Nachdem das Gateway am Strom hängt (Netzkabel ist bei der Bestellung nicht dabei), kann man mit einem Terminal Programm eine Verbindung herstellen und das Gateway ansteuern.
Dazu muß man die entsprechenden Hex-Frames senden.
Wie man zu diesen kommt, kann man sich einerseits aus der Protokoll Dokumentation selbst rausziehen, oder man machts anhand meiner Erklärung mit den Hilfstools.

Als nächstes ladet man sich das Somfy RS 485 Demo Tool runter und installierts.
Je nach PC Settings sind dafür Adminrechte notwendig.
Nach dem Start kommt folgendes Fenster:
Auf Welcome klicken:

dann auf Network:

entsprechenden Port auswählen:

den RTS Transmitter auswählen und die NodeID notieren (die brauchen wir später noch):

Nun kommt man zu der Übersicht der Kanäle.
Das RS485 Gateway unterstützt 16 Kanäle über Funk (propritäres Somfy RTS Funkprotokoll auf 433,42 MhZ, also nicht die Standardfrequenz von 433,32 Mhz :frowning: )

Nun muß man die einzelnen Kanäle am Gateway einlernen.
Das Gateway agiert wie eine zusätzliche Fernbedienung mit 16 Kanälen.
Also auf das Schraubenschlüsselsymbol für den ersten Kanal klicken und den jeweiligen Typen auswählen (Rolladen, Markise, Raffstore, Garagentor usw.)

Jetzt wird der jeweilige Kanal am Gateway angelernt.
Wenn ich das noch richtig im Kopf habe, funktioniert das so:
Open Programmation im Demo Tool drücken, dann die Funkfernbedienung in den Programmiermodus setzen (auf der Rückseite mit einer Büroklammer drücken), die Rolläden sollten das mit einer kurzen auf/ab Bewegung bestätigen, dann nochmal den Programmierknopf in der Software drücken (Rolläden bestätigen das wieder mit einer auf/ab Bewegung) und das wars auch schon.
Das ganze ist auch in der Programmieranleitung der Funkfernbedienung bzw. Rolladenmotore von Somfy nachzulesen.
Ich muß zugeben, dass das eine ziemliche Spielerei ist (wenn man´s falsch macht, ist die Funkfernbedienung abgelernt und man muß von vorne beginnen).
Die selbe Prozedur muß nun für alle Rolläden/Rollädengruppen/Kanäle gemacht werden.
Aber wenn das geschafft ist, hat man das gröbste hinter sich und man darf sich erstmal freuen :slight_smile:

Nun geht´s daran, die Steuerungsbefehle für die diversen Aktionen (auf, ab, stop und my-Position) zu generieren, die wir für die IP-Symcon Integration brauchen.
Dazu ladet man sich am besten den Somfy RS485 Frame Builder runter, installiert und startet ihn.
Es ist zu beachten, dass im Framebuilder die Kanal Nummer mit 0 startet, im Gegensatz zum Demotool (dort wird mit 1 gestartet).
Zwecks Doku bietet sich Excel an, um die Übersicht zu behalten.
Im feld Source ID trägt man die die vorher notierte Node ID ein und kopiert sich den Inhalt vom Output Frame für die Kanäle und Fahrbefehle ins Excel.

Wenn man bis hierher gekommen ist, kann man sich glücklich schätzen.
Jetzt fehlt nur mehr die Integration ins IP-Symcon, was vergleichsweise einfach ist :loveips:
Dazu legt man unter I/O Instanzen einen seriellen Port mit folgenden Einstellungen an:


Das Somfy Demo Tool sollte vorher geschlossen werden, da der USB Port nur von einem Programm angesprochen werden kann…und das sollte ja IPS sein :slight_smile:
Der einfachste Weg, die Rolläden in IPS ansprechen zu können, ist via einem kleinen Script.
Der Hex-String muß noch für die Übergabe an die USB Schnittstelle via IP-Symcon in ein anderes Format übertragen werden.

<?
COMPort_SendText(22075 /*[Serial Port rollo com5]*/, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFE).chr(0x05).chr(0xDA));
//7F F2 FA 0E 73 FA 00 00 00 F6 FE 05 DA
?>

Für die Integration in IPS-Shadowing gibts bis dato keine default Unterstützung.
Das ist aber relativ leicht zu machen, ich hab einfach eine nicht benutzte Class in der IPS-Library-Components-Shutter dafür „mißbraucht“ und die Fahrbefehle dort reinkopiert.
Ich sende jeden Befehl 3 mal, da das Gateway bei mir im Keller steht und ab und an ein Befehl durch die Funkübertragung verloren geht.

<?
	/**@addtogroup ipscomponent
	 * @{
	 *
 	 *
	 * @file          IPSComponentShutter_gdfde.class.php
	 * @author        Andreas Brauneis
	 *
	 *
	 */
   /**
    * @class IPSComponentShutter_gdfde
    *
    * Definiert ein IPSComponentShutter_gdfde Object, das ein IPSComponentShutter Object gdfde implementiert.
    *
    * @author Andreas Brauneis
    * @version
    * Version 2.50.1, 31.01.2012<br/>
    */
	IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter');
	class IPSComponentShutter_gdfde extends IPSComponentShutter {
		private $instanceId;
		private $port;
		/**
		 * @public
		 *
		 * Initialisierung eines IPSComponentShutter_gdfde Objektes
		 *
		 * @param integer $instanceId InstanceId des gdfde Devices
		 */
		public function __construct($instanceId) {
			$this->instanceId = IPSUtil_ObjectIDByPath($instanceId);
			$this->port		= 22075;
		}
		/**
		 * @public
		 *
		 * Funktion liefert String IPSComponent Constructor String.
		 * String kann dazu ben¸tzt werden, das Object mit der IPSComponent::CreateObjectByParams
		 * wieder neu zu erzeugen.
		 *
		 * @return string Parameter String des IPSComponent Object
		 */
		public function GetComponentParams() {
			return get_class($this).','.$this->instanceId;
		}
		/**
		 * @public
		 *
		 * Function um Events zu behandeln, diese Funktion wird vom IPSMessageHandler aufgerufen, um ein aufgetretenes Event 
		 * an das entsprechende Module zu leiten.
		 *
		 * @param integer $variable ID der auslˆsenden Variable
		 * @param string $value Wert der Variable
		 * @param IPSModuleShutter $module Module Object an das das aufgetretene Event weitergeleitet werden soll
		 */
		public function HandleEvent($variable, $value, IPSModuleShutter $module){
			$name = IPS_GetName($variable);
			throw new IPSComponentException('Event Handling NOT supported for Variable '.$variable.'('.$name.')');
		}
		/**
		 * @public
		 *
		 * Hinauffahren der Beschattung
		 */
		public function MoveUp(){
			switch ($this->instanceId) {
				case 1: /*Küche*/
					
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFE).chr(0x05).chr(0xDA));
					
					IPS_Sleep(700);
					
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFE).chr(0x05).chr(0xDA));
					//IPS_Sleep(700);
					
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFE).chr(0x05).chr(0xDA));
					break;
				case 2: /*Wintergarten oben*/
				   	IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF8).chr(0xFE).chr(0x05).chr(0xDC));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF8).chr(0xFE).chr(0x05).chr(0xDC));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF8).chr(0xFE).chr(0x05).chr(0xDC));
					break;
				case 3: /*Wintergarten unten*/
					IPS_Sleep(700);
					
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF9).chr(0xFE).chr(0x05).chr(0xDD));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF9).chr(0xFE).chr(0x05).chr(0xDD));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF9).chr(0xFE).chr(0x05).chr(0xDD));
					break;
				case 4: /*Wohnzimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFE).chr(0xFE).chr(0x05).chr(0xE2));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFE).chr(0xFE).chr(0x05).chr(0xE2));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFE).chr(0xFE).chr(0x05).chr(0xE2));
					break;
				case 5: /*Gästezimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF7).chr(0xFE).chr(0x05).chr(0xDB));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF7).chr(0xFE).chr(0x05).chr(0xDB));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF7).chr(0xFE).chr(0x05).chr(0xDB));
					break;
				case 6: /*WC EG*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF3).chr(0xFE).chr(0x05).chr(0xD7));
					IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF3).chr(0xFE).chr(0x05).chr(0xD7));
					//IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF3).chr(0xFE).chr(0x05).chr(0xD7));
					break;
				case 7: /*Stiegenaufgang*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF5).chr(0xFE).chr(0x05).chr(0xD9));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF5).chr(0xFE).chr(0x05).chr(0xD9));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF5).chr(0xFE).chr(0x05).chr(0xD9));
					break;
				case 8: /*Bad OG*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF1).chr(0xFE).chr(0x05).chr(0xD5));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF1).chr(0xFE).chr(0x05).chr(0xD5));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF1).chr(0xFE).chr(0x05).chr(0xD5));
					break;
				case 9: /*Schlafzimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF4).chr(0xFE).chr(0x05).chr(0xD8));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF4).chr(0xFE).chr(0x05).chr(0xD8));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF4).chr(0xFE).chr(0x05).chr(0xD8));
					break;
				case 10: /*Kinderzimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF2).chr(0xFE).chr(0x05).chr(0xD6));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF2).chr(0xFE).chr(0x05).chr(0xD6));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF2).chr(0xFE).chr(0x05).chr(0xD6));
					break;
				case 11: /*Schrankraum*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFC).chr(0xFE).chr(0x05).chr(0xE0));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFC).chr(0xFE).chr(0x05).chr(0xE0));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFC).chr(0xFE).chr(0x05).chr(0xE0));
					break;
				case 12: /*Büro*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFF).chr(0xFE).chr(0x05).chr(0xE3));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFF).chr(0xFE).chr(0x05).chr(0xE3));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFF).chr(0xFE).chr(0x05).chr(0xE3));
					break;
				case 13: /*KNX Wohnzimmer*/
					EIB_Switch(10483, true);
					IPS_Sleep(500);
					EIB_Switch(10483, false);
					break;
				case 14: /*Wintergarten unten links*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFA).chr(0xFE).chr(0x05).chr(0xDE));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFA).chr(0xFE).chr(0x05).chr(0xDE));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFF).chr(0xFE).chr(0x05).chr(0xE3));
					break;
				case 15: /*Wintergarten unten rechts*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFB).chr(0xFE).chr(0x05).chr(0xDF));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFB).chr(0xFE).chr(0x05).chr(0xDF));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFF).chr(0xFE).chr(0x05).chr(0xE3));
					break;
				default:
			}
		}	
		/**
		 * @public
		 *
		 * Hinunterfahren der Beschattung
		 */
		public function MoveDown(){
			switch ($this->instanceId) {
				case 1: /*Küche*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFD).chr(0x05).chr(0xD9));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFD).chr(0x05).chr(0xD9));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFD).chr(0x05).chr(0xD9));
					break;
				case 2: /*Wintergarten oben*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF8).chr(0xFD).chr(0x05).chr(0xDB));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF8).chr(0xFD).chr(0x05).chr(0xDB));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF8).chr(0xFD).chr(0x05).chr(0xDB));
					break;
				case 3: /*Wintergarten unten*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF9).chr(0xFD).chr(0x05).chr(0xDC));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF9).chr(0xFD).chr(0x05).chr(0xDC));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF9).chr(0xFD).chr(0x05).chr(0xDC));
					break;
				case 4: /*Wohnzimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFE).chr(0xFD).chr(0x05).chr(0xE1));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFE).chr(0xFD).chr(0x05).chr(0xE1));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFE).chr(0xFD).chr(0x05).chr(0xE1));
					break;
				case 5: /*Gästezimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF7).chr(0xFD).chr(0x05).chr(0xDA));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF7).chr(0xFD).chr(0x05).chr(0xDA));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF7).chr(0xFD).chr(0x05).chr(0xDA));
					break;
				case 6: /*WC EG*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF3).chr(0xFD).chr(0x05).chr(0xD6));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF3).chr(0xFD).chr(0x05).chr(0xD6));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF3).chr(0xFD).chr(0x05).chr(0xD6));
					break;
				case 7: /*Stiegenaufgang*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF5).chr(0xFD).chr(0x05).chr(0xD8));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF5).chr(0xFD).chr(0x05).chr(0xD8));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF5).chr(0xFD).chr(0x05).chr(0xD8));
					break;
				case 8: /*Bad OG*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF1).chr(0xFD).chr(0x05).chr(0xD4));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF1).chr(0xFD).chr(0x05).chr(0xD4));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF1).chr(0xFD).chr(0x05).chr(0xD4));
					break;
				case 9: /*Schlafzimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF4).chr(0xFD).chr(0x05).chr(0xD7));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF4).chr(0xFD).chr(0x05).chr(0xD7));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF4).chr(0xFD).chr(0x05).chr(0xD7));
					break;
				case 10: /*Kinderzimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF2).chr(0xFD).chr(0x05).chr(0xD5));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF2).chr(0xFD).chr(0x05).chr(0xD5));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF2).chr(0xFD).chr(0x05).chr(0xD5));
					break;
				case 11: /*Schrankraum*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFC).chr(0xFD).chr(0x05).chr(0xDF));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFC).chr(0xFD).chr(0x05).chr(0xDF));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFC).chr(0xFD).chr(0x05).chr(0xDF));
					break;
				case 12: /*Büro*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFF).chr(0xFD).chr(0x05).chr(0xE2));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFF).chr(0xFD).chr(0x05).chr(0xE2));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFF).chr(0xFD).chr(0x05).chr(0xE2));
					break;
				case 13: /*KNX Wohnzimmer*/
					EIB_Switch(53375, true);
					IPS_Sleep(500);
					EIB_Switch(53375, false);
					break;
				case 14: /*Wintergarten unten links*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFA).chr(0xFD).chr(0x05).chr(0xDD));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFA).chr(0xFD).chr(0x05).chr(0xDD));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFF).chr(0xFE).chr(0x05).chr(0xE3));
					break;
				case 15: /*Wintergarten unten rechts*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFB).chr(0xFD).chr(0x05).chr(0xDE));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFB).chr(0xFD).chr(0x05).chr(0xDE));
					//IPS_Sleep(700);
					//COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFB).chr(0xFD).chr(0x05).chr(0xDE));
					break;
				default:
			}
		}
		/**
		 * @public
		 *
		 * Stop
		 */
		public function Stop() {
			switch ($this->instanceId) {
				case 1: /*Küche*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFC).chr(0x05).chr(0xD8));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF6).chr(0xFC).chr(0x05).chr(0xD8));
					break;
				case 2: /*Wintergarten oben*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF8).chr(0xFC).chr(0x05).chr(0xDA));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF8).chr(0xFC).chr(0x05).chr(0xDA));
					break;
				case 3: /*Wintergarten unten*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF9).chr(0xFC).chr(0x05).chr(0xDB));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF9).chr(0xFC).chr(0x05).chr(0xDB));
					break;
				case 4: /*Wohnzimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFE).chr(0xFC).chr(0x05).chr(0xE0));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFE).chr(0xFC).chr(0x05).chr(0xE0));
					break;
				case 5: /*Gästezimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF7).chr(0xFC).chr(0x05).chr(0xD9));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF7).chr(0xFC).chr(0x05).chr(0xD9));
					break;
				case 6: /*WC EG*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF3).chr(0xFC).chr(0x05).chr(0xD5));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF3).chr(0xFC).chr(0x05).chr(0xD5));
					break;
				case 7: /*Stiegenaufgang*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF5).chr(0xFC).chr(0x05).chr(0xD7));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF5).chr(0xFC).chr(0x05).chr(0xD7));
					break;
				case 8: /*Bad OG*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF1).chr(0xFC).chr(0x05).chr(0xD3));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF1).chr(0xFC).chr(0x05).chr(0xD3));
					break;
				case 9: /*Schlafzimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF4).chr(0xFC).chr(0x05).chr(0xD6));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF4).chr(0xFC).chr(0x05).chr(0xD6));
					break;
				case 10: /*Kinderzimmer*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF2).chr(0xFC).chr(0x05).chr(0xD4));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xF2).chr(0xFC).chr(0x05).chr(0xD4));
					break;
				case 11: /*Schrankraum*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFC).chr(0xFC).chr(0x05).chr(0xDE));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFC).chr(0xFC).chr(0x05).chr(0xDE));
					break;
				case 12: /*Büro*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFF).chr(0xFC).chr(0x05).chr(0xE1));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFF).chr(0xFC).chr(0x05).chr(0xE1));
					break;
				case 13: /*KNX Wohnzimmer*/
					EIB_Switch(26091, true);
					IPS_Sleep(500);
					EIB_Switch(26091, false);
					break;
				case 14: /*Wintergarten unten links*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFA).chr(0xFC).chr(0x05).chr(0xDC));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFA).chr(0xFC).chr(0x05).chr(0xDC));
					break;
				case 15: /*Wintergarten unten rechts*/
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFB).chr(0xFC).chr(0x05).chr(0xDD));
					IPS_Sleep(700);
					COMPort_SendText($this->port, chr(0x7F).chr(0xF2).chr(0xFA).chr(0x0E).chr(0x73).chr(0xFA).chr(0x00).chr(0x00).chr(0x00).chr(0xFB).chr(0xFC).chr(0x05).chr(0xDD));
					break;
				default:
			}
		}
	}
	/** @}*/
?>

Der letzte Schritt ist die Anpassung der IPS-Shadowing-Configuration:

<?
	/*
	 * This file is part of the IPSLibrary.
	 *
	 * The IPSLibrary is free software: you can redistribute it and/or modify
	 * it under the terms of the GNU General Public License as published
	 * by the Free Software Foundation, either version 3 of the License, or
	 * (at your option) any later version.
	 *
	 * The IPSLibrary is distributed in the hope that it will be useful,
	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	 * GNU General Public License for more details.
	 *
	 * You should have received a copy of the GNU General Public License
	 * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
	 */

	/**@defgroup ipsshadowing_configuration IPSShadowing Konfiguration
	 * @ingroup ipsshadowing
	 * @{
	 *
	 * @file          IPSShadowing_Configuration.inc.php
	 * @author        Andreas Brauneis
	 * @version
	 *  Version 2.50.1, 19.03.2012<br/>
	 *
	 * Konfigurations File f∏r IPSShadowing
	 *
	 */

	IPSUtils_Include ("IPSShadowing_Constants.inc.php",      "IPSLibrary::app::modules::IPSShadowing");
	IPSUtils_Include ("IPSTwilight_Configuration.inc.php",   "IPSLibrary::config::modules::Weather::IPSTwilight");

	/** Temperatursensor Innen
	 *
	 * Definition des Innentemperatur Sensors, die Konstante mu? auf eine Variable verweisen, die die aktuelle Innentemperatur
	 * als Float Value enthâlt.
	 * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_TEMPSENSORINDOOR",		"44031");

	/** Temperatursensor Aussen
	 *
	 * Definition des Aussentemperatur Sensors, die Konstante mu? auf eine Variable verweisen, die die aktuelle Aussentemperatur
	 * als Float Value enthâlt.
	 * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_TEMPSENSOROUTDOOR",	"37201");

	/** Helligkeitssensor
	 *
	 * Definition des Helligkeits Sensors, die Konstante mu? auf eine Variable verweisen, die die aktuelle Helligkeit
	 * als Integer oder Float Value enthâlt.
	 * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_BRIGHTNESSSENSOR",	"35976");

	/** Regensensor
	 *
	 * Definition des Regen Sensors, die Konstante mu? auf eine Variable verweisen, die den Wert des Sensors als
	 * boolschen Wert enthâlt.
	 * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_RAINSENSOR",		"22585");

	/** Windsensor
	 *
	 * Definition des Wind Sensors, die Konstante mu? auf eine Variable verweisen, die den Wert des Sensors als
	 * Float Wert mit Angabe in "kmh" enthâlt,
	 * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_WINDSENSOR",		"37376");

	/** Anwesenheits Flag
	 *
	 * Definition des Anwesenheits Flags, die Konstante mu? auf eine Variable verweisen, die den aktuellen Anwesenheits Status als
	 * boolean Wert enthâlt (true bedeutet Anwesend).
	 * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_PRESENT",			'30844');

	/** Abwesenheits Flag
	 *
	 * Definition des Abwesenheits Flags, die Konstante mu? auf eine Variable verweisen, die den aktuellen Abwesenheits Status als
	 * boolean Wert enthâlt (true bedeutet Abwesend).
	 * Diese Variable kann alternativ zu dem Anwesenheits Flag gesetzt werden.
	 * Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_ABSENCE",			"");

	/** Zeitpunkt Sonnenaufgang
	 *
	 * Definition des Tagesbeginn Zeitpunktes, die Konstante mu? auf eine Variable verweisen, die die Zeit in der Form
	 * hh:mm enthâlt.
	 * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_TWILIGHTSUNRISE",			"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.CivilBegin");

	/** Zeitpunkt Sonnenuntergang
	 *
	 * Definition des Tagesend Zeitpunktes, die Konstante mu? auf eine Variable verweisen, die die Zeit in der Form
	 * hh:mm enthâlt.
	 * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_TWILIGHTSUNSET",			"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.CivilEnd");

	/** Zeitpunkt limited Sonnenaufgang
	 *
	 * Definition des "limited" Tagesbeginn Zeitpunktes, die Konstante mu? auf eine Variable verweisen, die die Zeit in der Form
	 * hh:mm enthâlt. Durch diese Variable ist es màglich, dass der Tagesbeginn in bestimmten Grenzen liegen mu?.
	 * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_TWILIGHTSUNRISELIMITED",	"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.CivilBeginLimited");

	/** Zeitpunkt limited Sonnenuntergang
	 *
	 * Definition des "limited" Tagesend Zeitpunktes, die Konstante mu? auf eine Variable verweisen, die die Zeit in der Form
	 * hh:mm enthâlt. Durch diese Variable ist es màglich, dass der Tagesbeginn in bestimmten Grenzen liegen mu?.
	 * Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_TWILIGHTSUNSETLIMITED",	"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.CivilEndLimited");

	/**
	 * Angabe des Breitengrades zur Berechnung des Sonnenstandes
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ('IPSSHADOWING_LATITUDE', IPSTWILIGHT_LATITUDE);

	/**
	* Angabe des Lângengrades zur Berechnung des Sonnenstandes
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	*/
	define ('IPSSHADOWING_LONGITUDE', IPSTWILIGHT_LONGITUDE);

	/**
	 * Ausrichtung des Gebâudes
	 *
	 * Dieser Wert spezifiziert die Abweichung von der Ausrichtung des Gebâudes Richtung S∏den in Grad.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ('IPSSHADOWING_BUILDINGORIENTATION',    -30);

	/**
	 * Verhâltnis der Gebâudewânde
	 *
	 * Mit diesem Parameter kann das Verhâltnis der Lânge der Gebâudewânde in der Grafik verândert werden.
	 *
	 * 0 bedeutet dass alle Gebâudewânde gleich lang sind, bei positiven Werten wird die s∏dliche Seite des Gebâudes
	 * breiter und umgekehrt.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ('IPSSHADOWING_BUILDINGRELATION',      10);


	/**
	 * Definiert die Anzahl der Meldungen, die im Applikation Logging Window angezeigt werden.
	 *
	 * Dieser Parameter kann jederzeit geândert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_LOGMESSAGECOUNT",				50);

	/**
	 *
	 * Definition der Beschattungs Elemente
	 * Die Konfiguration erfolgt in Form eines Arrays, f∏r jedes Beschattungs Device wird ein Eintrag im Array erzeugt.
	 *
	 * Die Eigenschaft c_Property_ShadowingType spezifiziert den Type der Beschattung, folgende Typen stehen zur Auswahl:
	 * - c_ShadowingType_Jalousie, Ansteuerung einer Jalousie, es werden noch zusâtzliche Properties ausgewertet, um die Lamellen in eine bestimmte Position zu bringen
	 * - c_ShadowingType_Shutter, Ansteuerung eines normalen Rollos
	 * - c_ShadowingType_Marquees, Ansteuerung einer Markise
	 *
	 * Der Eintrag "c_Property_Name" spezifiziert den Namen des Beschattungs Elements, der im WebFront und in den Log's angezeigt
	 * wird.
	 *
	 * Der Eintrag "c_Property_Component" spezifiziert die Hardware, es kann jeder "Shutter" Component String Konstruktor
	 * angegeben werden. Detailiertere Informationen kann man auch im core Modul IPSComponent finden.
	 *
	 * Mit den Properties c_Property_TimeOpening,  c_Property_TimeClosing, c_Property_TimeDimoutUp, c_Property_TimeDimoutDown, c_Property_TimePause
	 * werden die Fahrzeiten spezifiziert. c_Property_TimeDimoutUp und c_Property_TimeDimoutDown werden nur bei Jalousien ausgewertet, um die Lamellen
	 * in die Verdunkelungs- bzw. Beschatttungsposition zu bringen.
	 *
	 * Mit c_Property_TempSensorIndoor ist die Einbindung eines Innentemperatursensors f∏r das Beschattungselement màglich. Verlinkung erfolgt durch
	 * Angabe des Pfades oder direkt durch die ID der Temperatur Variable.
	 *
	 * Beispiel:
	 * @code
    //    function get_ShadowingConfiguration() {
    //      return array(
    //        c_ShadowingDevice_1  =>  array(
    //           c_Property_ShadowingType     => c_ShadowingType_Jalousie,
    //           c_Property_Name              => 'K∏che',
    //           c_Property_Component         => 'IPSComponentShutter_Dummy,12345',
    //           c_Property_TimeOpening       => 35,
    //           c_Property_TimeClosing       => 35,
    //           c_Property_TimeDimoutUp      => 2,
    //           c_Property_TimeDimoutDown    => 3,
    //           c_Property_TimePause         => 1,
    //           c_Property_TempSensorIndoor  => '',
    //         ));
    //    }
	 * @endcocde
	 *
	 * @return string Liefert Array mit Beschattungs Elementen
	 */
	function get_ShadowingConfiguration() {
		return array(
			//c_ShadowingDevice_1 =>	array(
			//	c_Property_ShadowingType	=> c_ShadowingType_Jalousie,
			//	c_Property_Name				=> 'Zimmer 1',
			//	c_Property_Component		=> 'IPSComponentShutter_Dummy,12345',
			//	c_Property_TimeOpening		=> 35,
			//	c_Property_TimeClosing		=> 35,
			//	c_Property_TimeDimoutUp		=> 2,
			//	c_Property_TimeDimoutDown	=> 3,
			//	c_Property_TimePause		=> 1,
			//	c_Property_TempSensorIndoor	=> '',
			//	),
			// blablabla
			c_ShadowingDevice_1 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Kueche',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,1',
				c_Property_TimeOpening		=> 	23,
				c_Property_TimeClosing		=> 	23,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '55855',
				),
         c_ShadowingDevice_2 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Wintergarten oben',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,2',
				c_Property_TimeOpening		=> 	70,
				c_Property_TimeClosing		=> 	70,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '24571',
				),
         c_ShadowingDevice_3 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Wintergarten unten mitte',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,3',
				c_Property_TimeOpening		=> 	70,
				c_Property_TimeClosing		=> 	70,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '24571',
				),
         c_ShadowingDevice_4 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Wohnzimmer',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,4',
				c_Property_TimeOpening		=> 	35,
				c_Property_TimeClosing		=> 	35,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '44031',
				),
         c_ShadowingDevice_5 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Gaestezimmer',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,5',
				c_Property_TimeOpening		=> 	23,
				c_Property_TimeClosing		=> 	23,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '30962',
				),
         c_ShadowingDevice_6 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'WC EG',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,6',
				c_Property_TimeOpening		=> 	23,
				c_Property_TimeClosing		=> 	23,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '33736',
				),
         c_ShadowingDevice_7 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Stiegenaufgang',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,7',
				c_Property_TimeOpening		=> 	35,
				c_Property_TimeClosing		=> 	35,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '33736',
				),
         c_ShadowingDevice_8 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Bad OG',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,8',
				c_Property_TimeOpening		=> 	23,
				c_Property_TimeClosing		=> 	23,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '47151',
				),
         c_ShadowingDevice_9 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Schlafzimmer',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,9',
				c_Property_TimeOpening		=> 	35,
				c_Property_TimeClosing		=> 	35,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '16589',
				),
         c_ShadowingDevice_10 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Kinderzimmer',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,10',
				c_Property_TimeOpening		=> 	35,
				c_Property_TimeClosing		=> 	35,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '51192',
				),
         c_ShadowingDevice_11 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Schrankraum',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,11',
				c_Property_TimeOpening		=> 	23,
				c_Property_TimeClosing		=> 	23,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '36946',
				),
         c_ShadowingDevice_12 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Buero',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,12',
				c_Property_TimeOpening		=> 	23,
				c_Property_TimeClosing		=> 	23,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '23516',
				),
         c_ShadowingDevice_13 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'KNX Wohnzimmer',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,13',
				c_Property_TimeOpening		=> 	23,
				c_Property_TimeClosing		=> 	23,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '44031',
				),
         c_ShadowingDevice_14 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Wintergarten unten links',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,14',
				c_Property_TimeOpening		=> 	70,
				c_Property_TimeClosing		=> 	70,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '24571',
				),
         c_ShadowingDevice_15 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Wintergarten unten rechts',
				c_Property_Component		=> 'IPSComponentShutter_gdfde,15',
				c_Property_TimeOpening		=> 	70,
				c_Property_TimeClosing		=> 	70,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '24571',
				),
			//c_ShadowingDevice_3 =>	array(
			//	c_Property_ShadowingType	=> 	c_ShadowingType_Marquees,
			//	c_Property_Name				=> 'Markise',
			//	c_Property_Component		=> 'IPSComponentShutter_Dummy,12345',
			//	c_Property_TimeOpening		=> 	70,
			//	c_Property_TimeClosing		=> 	70,
			//	c_Property_TimePause		=> 	1,
			//	c_Property_TempSensorIndoor => '',
			//	),
	   );
	}
	/** @}*/
?>

so, that´s it :smiley:
Abschliessend möchte ich noch erwähnen, dass das Somfy Zeugs qualitativ sehr hochwertig ist und auch gut funktioniert.
Aber auch vollkommen überteuert und der Support seitens Somfy vor allem bei den Integrationssachen nicht vorhanden ist.
Ich habe von Somfy auf jede Anfrage als Antwort bekommen, dass Fragen zur SW nicht supported werden und man sich einen IT-Dienstleister dafür suchen soll.
d.h. wenn ihr vor einer Neuinstallation steht, ist auf alle Fälle die verkabelte Variante über ein Standardbussystem (z.b. KNX) einfacher und auch billiger.

Hallo gdfe,

super Anleitung, bisher bin ich grandios gescheitert den Gateway anzubinden. Komme erst nächstes WE dazu das zu testen, aber ich erkenne schon ein paar Bereiche wo ich Fehler gemacht habe.

Besten Dank
hoep

Hallo Hoep,

ich hab mit der HW Anbindung auch relativ lange herum getan, bis der PC endlich mit dem Gateway kommuniziert hat.
Wenn die Verbindung nicht steht, kommt man im Demo Tool nicht weiter und man bleibt nach der Port auswahl seite hängen.

Ich würde empfehlen, zu allererst mal mit einem Terminalprogramm zu probieren, ob das Gateway antwortet.
Z.b. mit hercules.

Die roten LEDs leuchten nur, wenn das Gateway was sendet.

Hallo gdfe,

also das ist ja mal GANZ großes Kino :slight_smile:
Danke sehr :slight_smile:

Ich hänge leider schon ganz am Anfang :frowning:
Das Gateway hat Strom und ist mit D+ und D- an diesem RS485->Ethernet-Gateway angeschlossen (EX-9132).
GND vom Somfy-GW habe ich auf die DC Masse gelegt.
Ich bekomme aber keine Antwort, also gar nix vom Somfy zurück, egal was ich ihm sende.
Auch das Tool findet keine Node… Ich habe dann (Deinen Thread im Domotica Forum hatte ich auch schon gefunden) mal D+ und D- vertauscht aber das hat leider auch nichts gebracht…
Wenn ich beim EX-9132 die Option einschalte, dass das das EX-9132 mir seine ID beim Verbinden senden soll (Option ist der gelbe Pfeil im Bild), dann kommt die auch brav in IPS an…
D.h. der virtuelle COM-Port vom EX-9132 -> Rechner geht prinzipiell… Aber weiter passiert nix :frowning:
Braucht denn RS485 explizit eine Masse? Denn das EX-9132 hat nur D+ und D- als Anschlussklemme für RS485… Das Somfy-GW hat ja noch GND dazu…
Ich bin hier jetzt etwas am Ende mit meinem Latein :frowning:

Hat von Euch noch jemand eine Idee?
Hier ist mal der Config-Screen des EX-9132, vielleicht fällt Euch ja was auf, was ich übersehen habe:

Danke Euch :slight_smile:

Viele Grüße

Chris

hi Chris,

mhm, also GND auf DC Masse wird wahrscheinlich nicht funktionieren, da das sicher getrennt ist auf deiner Ethernet Box.

Alternativ könntest mal GND auf der seriellen Schnittstelle probieren (9-poliger Anschluß).

Im Domotica Forum wurde auch geschrieben, dass das Gateway nicht mit FTDI Chips funktioniert, ich hab jetzt auf die Schnelle nicht rausfinden können, welcher Chip in deinem EX-9132 eingebaut ist.

Robert vom anderen Forum verwendet folgenden Ethernetserver: http://www.hw-group.com/download/ext/sollae/ezl200fen.pdf

Eine andere Variante wäre, den erwähnten Hexin USB-RS485 auszuprobieren, die 20 € wären wohl verschmerzbar.
Und wenn man´s am LAN haben will, einen 30 € USB/LAN Server zu kaufen.

Ich muß gestehen, dass ich nicht so HW bewandert bin, drum hab ich einfach den erwähnten Adapter bestellt, mit dem´s auch funktioniert hat.

Hi Chris,
Laut dem Post von gdfde weiter vorne muss Parity odd sein.
Auf deinen Screenshot steht aber none.
Und Masse brauchst du bei RS485 eigentlich nicht.
Michael

Ich packs grad nicht …
Es wird in sehr naher Zukunft von RFXCOM eine Erweiterung geben, mit der man dann Somfy Funksachen ansteuern kann.
http://www.domoticaforum.eu/viewtopic.php?f=43&t=9682

Ich hatte einige Sachen von RFXCOM und bin davon begeistert gewesen…es gibt im Moment wohl nichts besseres, was Funkansteuerungen betrifft.

Und jetzt kommt der Oberhammer, das Zeugs (RFXtrx) wird wohl um die 100 € liegen, selbst die über LAN ansteuerbare Variante liegt momentan bei ca. 250 €.

Hallo ihr Beiden,

vielen Dank für Ihre Rückmeldung :slight_smile:
Es ist wirklich so, mit den Bäumen und dem Wald…
Es war wirklich die Parity… DANKE für’s genau Hinschauen :slight_smile:

D.h. aktueller Status: Demo-Tool klappt und zeigt das Gateway an freu

Ich melde mich wieder wenn ich es geschafft habe, die Jalousien anzulernen… Momentan sind die noch gar nicht an irgendwas
angelernt, ich bin mal gespannt ob das alles klappt :wink:

Aber nun habe ich zumindest ein antwortendes Gateway…

Viele Grüße und nochmal Danke für Eure Hilfe :slight_smile:

Chris

…für diejenigen, die Somfy RTS doch mal über Funk anbinden wollen:

1 Homematic 4-fach Aktor für Batteriebetrieb als Bausatz
1 Somfy RTS Fernbedienung
1 Lötkolben

Die 3 Taster der Fernbedienung mit je 2 Drähten verlöten und mit je einer Klemme des HM Aktors verbinden und schon kann eine Tastaktion auf dem Aktor die Somfy Funkaktoren ansteuern.

Dann noch pro Aktion (rauf, runter, stopp) ein Skript welches den Status auf True setzt und nach 500ms wieder auf und schon lässt sich eine RTS Gruppe aus IPS heraus ansteuern.

Kosten gesamt : 50 €
Schwierigkeitsgrad: 0-1
Im Einsatz bei Somfy Markise

Gruss
B71

Das ist sicher die billigste Variante, wenn man 1 oder 2 Rolläden/Markisen steuern will, du mußt aber die zerstörte Fernbedienung (ca. 40 €) auch noch dazurechnen :wink:
Ich hab alle 16 Kanäle im Einsatz und komme damit auf einen Preis pro Kanal von ca. 35 €.

Bin mal gespannt, wieviel das RFXCOM teil kosten wird.

So, Update :slight_smile:

Ich habe es leider nicht geschafft die Jalousien direkt am RS485-Gateway anzulernen, sondern erst musste ich einen Kanal auf der Fernbedienung anlernen und dann konnte ich das Gateway zusätzlich anlernen…

Aber komischerweise sind bei zwei Jalousien die Richtungen vertauscht?

Wisst ihr woran das liegen kann?

Viele Grüße

Chris

Hi,
In den 50 € war die Fernbedienung schon drin :slight_smile:

Gruss
B71