Hallo Andreas,
da hat sich noch ein Fehler in dein Modul eingeschlichen. Du hast die class nicht umbenannt, sondern dort noch den alten Namen drin. Ich habe IPSComponentShutter_Enocean jetzt komplett durch IPSComponentShutter_EnoceanShutter in der Datei ersetzt.
Dann läuft alles einwandfrei.
<?
/**@addtogroup ipscomponent
* @{
*
*
* @file IPSComponentShutter_EnoceanShutter.class.php
* @author Andreas Brauneis
*
*
*/
/**
* @class IPSComponentShutter_EnoceanShutter
*
* Definiert ein IPSComponentShutter_EnoceanShutter Object, das ein IPSComponentShutter Object für Enocean 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_EnoceanShutter extends IPSComponentShutter {
private $instanceId;
/**
* @public
*
* Initialisierung eines IPSComponentShutter_EnoceanShutter Objektes
*
* @param integer $instanceId InstanceId des Enocean Devices
*/
public function __construct($instanceId) {
$this->instanceId = IPSUtil_ObjectIDByPath($instanceId);
}
/**
* @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(){
ENO_ShutterMoveUp($this->instanceId);
}
/**
* @public
*
* Hinunterfahren der Beschattung
*/
public function MoveDown(){
ENO_ShutterMoveDown($this->instanceId);
}
/**
* @public
*
* Stop
*/
public function Stop() {
ENO_ShutterStop($this->instanceId);
}
}
/** @}*/
?>
Gruß
Matthias
PS: Leider hat IPSymcon nicht implementiert, dass sich die Shutter per Zeitvorgabe steuern lassen. Geht nur Auf, Stop, Ab, wobei das Protokoll vom FBS14 eine Zeitangabe vorsieht