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
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
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
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.