/** * Execute on Event * * @param array $event * @param Application_Model_Trigger $triggerObject */ public function execute($event,$triggerObject){ $address = $triggerObject->settings_data['address']; $cameraAddress = $triggerObject->settings_data['camera']; $eventAddress = $event['house'] . $event['device']; if($eventAddress != $address || ($event['type'] != 'On' && $event['type'] != 'Off') || $event['direction'] != 'Tx' || $event['medium'] != 'PL'){ return false; } $present = ($event['type'] == 'On')? true: false; echo "Running trigger $triggerObject->name\n"; //save flag to db Application_Model_VariableMapper::getInstance()->set('present',(string)$present); $commander = Octopus_X10_Command::getInstance(Zend_Registry::get('config')->toArray()); if($present){ //if present turn off camera $commander->execute('off', $cameraAddress); } else{ //if not present turn on camera $commander->execute('on', $cameraAddress); } }
/** * Execute on Event * * @param array $event * @param Application_Model_Trigger $triggerObject */ public function execute($event,$triggerObject){ $address = $triggerObject->settings_data['address']; $lampAddress = $triggerObject->settings_data['lamp']; $eventAddress = $event['house'] . $event['device']; if($eventAddress != $address || $event['type'] != 'On' || $event['direction'] != 'Tx' || $event['medium'] != 'PL'){ return false; } $present = Application_Model_VariableMapper::getInstance()->get('present'); if(!isset ($present)){ $present = false; } else{ $present = (bool)$present; } //do nothing if present if($present){ return false; } $now = time(); $lastExecuted = isset ($triggerObject->status_data['executed'])?$triggerObject->status_data['executed']:0; //do nothing in next 5 minutes if($now < ($lastExecuted + 5 * 60)){ return false; } $triggerObject->status_data['executed'] = $now; Application_Model_TriggerMapper::getInstance()->save($triggerObject); $config = Zend_Registry::get('config')->toArray(); echo "Running trigger $triggerObject->name\n"; //turn on lamp to see them better $commander = Octopus_X10_Command::getInstance($config); $commander->execute('on', $lampAddress); //wait 2 seconds to make a shoot sleep(2); $img1 = file_get_contents($config['camera']['url']); sleep(1); $img2 = file_get_contents($config['camera']['url']); //send email $smtpConnection = new Zend_Mail_Transport_Smtp($config['mail']['smtp']['server'], $config['mail']['smtp']['params']); $mail = new Zend_Mail(); $at1 = $mail->createAttachment($img1); $at1->type = 'image/jpg'; $at1->filename = 'shoot1.jpg'; $at2 = $mail->createAttachment($img2); $at2->type = 'image/jpg'; $at2->filename = 'shoot2.jpg'; $mail->setBodyText('Octopus Notification sensor detection') ->setFrom('*****@*****.**', 'Octopus') ->addTo('*****@*****.**', 'Milan Rukavina') ->setSubject('Octopus Notification sensor detection'); //Send try { $mail->send($smtpConnection); echo "trigger $triggerObject->name email sent! \n"; } catch (Exception $e) { echo "Error sending email: " . $e->getMessage() . "\n"; } }