示例#1
0
 public function execute($_options = null)
 {
     $xPLinstance = XPLInstance::getXPLInstance(false);
     $source = $xPLinstance->getThisDevice()->deviceName();
     $_target = $this->getEqLogic()->getLogicalId();
     if ($_options != null) {
         switch ($this->getType()) {
             case 'action':
                 switch ($this->getSubType()) {
                     case 'slider':
                         $body = str_replace('#slider#', $_options['slider'], $this->getConfiguration('xPLbody'));
                         break;
                     case 'color':
                         $body = str_replace('#color#', $_options['color'], $this->getConfiguration('xPLbody'));
                         break;
                     case 'message':
                         $replace = array('#title#', '#message#');
                         $replaceBy = array($_options['title'], $_options['message']);
                         if ($_options['message'] == '' || $_options['title'] == '') {
                             throw new Exception('[xPL] Le message et le sujet ne peuvent être vide');
                         }
                         $body = str_replace($replace, $replaceBy, $this->getConfiguration('xPLbody'));
                         break;
                 }
                 break;
         }
     }
     $message = '';
     switch ($this->getConfiguration('xPLtypeCmd')) {
         case 'XPL-CMND':
             $message .= "xpl-cmnd\n";
             break;
         case 'XPL-STAT':
             $message .= "xpl-stat\n";
             break;
         case 'XPL-TRIG':
             $message .= "xpl-trig\n";
             break;
         default:
             return "";
     }
     $message .= "{\n";
     $message .= "hop=1\n";
     $message .= sprintf("source=%s\n", $source);
     $message .= sprintf("target=%s\n", $_target);
     $message .= "}\n";
     $message .= $this->getConfiguration('xPLschema') . "\n";
     $message .= "{\n";
     $message .= $body;
     $message .= "}\n";
     $xPLinstance->sendPlainTextMessage($message);
     if ($this->getType() == 'info') {
         $mc = cache::byKey('xpl' . $this->getId());
         return $mc->getValue();
     }
     return '';
 }
示例#2
0
 public static function getXPLInstance($_sendOnCmd = false)
 {
     if (!isset(self::$sharedInstance)) {
         self::$sharedInstance = new self($_sendOnCmd);
     }
     return self::$sharedInstance;
 }
 public function __construct($ip)
 {
     parent::__construct('telldus', 'core', $ip);
 }