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 ''; }
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); }