function radioRelay_action_radioRelay() { global $_, $conf, $myUser; //Mise à jour des droits $myUser->loadRight(); switch ($_['action']) { case 'radioRelay_delete_radioRelay': if ($myUser->can('radio relais', 'd')) { $radioRelayManager = new RadioRelay(); $radioRelayManager->delete(array('id' => $_['id'])); header('location:setting.php?section=radioRelay'); } else { header('location:setting.php?section=radioRelay&error=Vous n\'avez pas le droit de faire ça!'); } break; case 'radioRelay_plugin_setting': $conf->put('plugin_radioRelay_emitter_pin', $_['emiterPin']); $conf->put('plugin_radioRelay_emitter_code', $_['emiterCode']); header('location: setting.php?section=preference&block=radioRelay'); break; case 'radioRelay_add_radioRelay': //Vérifie si on veut modifier ou ajouter un relai $right_toverify = isset($_['id']) ? 'u' : 'c'; if ($myUser->can('radio relais', $right_toverify)) { $radioRelay = new RadioRelay(); //Si modification on charge la ligne au lieu de la créer if ($right_toverify == "u") { $radioRelay = $radioRelay->load(array("id" => $_['id'])); } $radioRelay->setName($_['nameRadioRelay']); $radioRelay->setDescription($_['descriptionRadioRelay']); $radioRelay->setRadioCode($_['radioCodeRadioRelay']); $radioRelay->setRoom($_['roomRadioRelay']); $radioRelay->setPulse($_['pulseRadioRelay']); $radioRelay->save(); header('location:setting.php?section=radioRelay'); } else { header('location:setting.php?section=radioRelay&error=Vous n\'avez pas le droit de faire ça!'); } break; case 'radioRelay_change_state': global $_, $myUser; if ($myUser->can('radio relais', 'u')) { $radioRelay = new RadioRelay(); $radioRelay = $radioRelay->getById($_['engine']); Event::emit('relay_change_state', array('relay' => $radioRelay, 'state' => $_['state'])); if ($radioRelay->getPulse() == 0) { $cmd = dirname(__FILE__) . '/radioEmission ' . $conf->get('plugin_radioRelay_emitter_pin') . ' ' . $conf->get('plugin_radioRelay_emitter_code') . ' ' . $radioRelay->getRadioCode() . ' ' . $_['state']; } else { $cmd = dirname(__FILE__) . '/radioEmission ' . $conf->get('plugin_radioRelay_emitter_pin') . ' ' . $conf->get('plugin_radioRelay_emitter_code') . ' ' . $radioRelay->getRadioCode() . ' pulse ' . $radioRelay->getPulse(); } //TODO change bdd state Functions::log('Launch system command : ' . $cmd); system($cmd, $out); if (!isset($_['webservice'])) { header('location:index.php?module=room&id=' . $radioRelay->getRoom()); } else { $affirmations = array('A vos ordres!', 'Bien!', 'Oui commandant!', 'Avec plaisir!', 'J\'aime vous obéir!', 'Avec plaisir!', 'Certainement!', 'Je fais ça sans tarder!', 'Avec plaisir!', 'Oui chef!'); $affirmation = $affirmations[rand(0, count($affirmations) - 1)]; $response = array('responses' => array(array('type' => 'talk', 'sentence' => $affirmation))); $json = json_encode($response); echo $json == '[]' ? '{}' : $json; } } else { $response = array('responses' => array(array('type' => 'talk', 'sentence' => 'Je ne vous connais pas, je refuse de faire ça!'))); echo json_encode($response); } break; } }
function radioRelay_plugin_setting_page() { global $_, $myUser, $conf; if (isset($_['section']) && $_['section'] == 'radioRelay') { if (!$myUser) { throw new Exception('Vous devez être connecté pour effectuer cette action'); } $radioRelayManager = new RadioRelay(); $radioRelays = $radioRelayManager->populate(); $roomManager = new Room(); $rooms = $roomManager->populate(); $selected = new RadioRelay(); $selected->pulse = 0; $selected->icon = 'fa fa-flash'; //Si on est en mode modification if (isset($_['id'])) { $selected = $radioRelayManager->getById($_['id']); } $icons = array('fa fa-lightbulb-o', 'fa fa-power-off', 'fa fa-flash', 'fa fa-gears', 'fa fa-align-justify', 'fa fa-adjust', 'fa fa-arrow-circle-o-right', 'fa fa-desktop', 'fa fa-music', 'fa fa-bell-o', 'fa fa-beer', 'fa fa-bullseye', 'fa fa-automobile', 'fa fa-book', 'fa fa-bomb', 'fa fa-clock-o', 'fa fa-cutlery', 'fa fa-microphone', 'fa fa-tint'); ?> <div class="span9 userBloc"> <h1>Relais</h1> <p>Gestion des relais radios</p> <fieldset> <legend>Ajouter/Modifier un relais radio</legend> <div class="left"> <label for="nameRadioRelay">Nom</label> <input type="hidden" id="id" value="<?php echo $selected->id; ?> "> <input type="text" id="nameRadioRelay" value="<?php echo $selected->name; ?> " placeholder="Lumiere Canapé…"/> <label for="descriptionRadioRelay">Description</label> <input type="text" value="<?php echo $selected->description; ?> " id="descriptionRadioRelay" placeholder="Relais sous le canapé…" /> <label for="iconRadioRelay">Icone</label> <input type="hidden" value="<?php echo $selected->icon; ?> " id="iconRadioRelay" /> <div> <div style='margin:5px;'> <?php foreach ($icons as $i => $icon) { if ($i % 6 == 0) { echo '</div><div style="margin:5px;">'; } ?> <i style="width:25px;" onclick="plugin_radiorelay_set_icon(this,'<?php echo $icon; ?> ');" class="<?php echo $icon; ?> btn <?php echo $selected->icon == $icon ? 'btn-success' : ''; ?> "></i> <?php } ?> </div> </div> <label for="radioCodeRadioRelay">Code radio</label> <input type="text" value="<?php echo $selected->radiocode; ?> " name="radioCodeRadioRelay" id="radioCodeRadioRelay" placeholder="1234,1111,0022..." /> <label for="onRadioRelay">Commande vocale "ON" associée</label> <?php echo $conf->get('VOCAL_ENTITY_NAME'); ?> , <input type="text" id="onRadioRelay" value="<?php echo $selected->onCommand; ?> " placeholder="Allume la lumière, Ouvre le volet…"/> <label for="offRadioRelay">Commande vocale "OFF" associée</label> <?php echo $conf->get('VOCAL_ENTITY_NAME'); ?> , <input type="text" id="offRadioRelay" value="<?php echo $selected->offCommand; ?> " placeholder="Eteinds la lumière, Ferme le volet…"/> <label for="roomRadioRelay">Pièce de la maison</label> <select id="roomRadioRelay"> <?php foreach ($rooms as $room) { ?> <option <?php if ($selected->room == $room->getId()) { echo "selected"; } ?> value="<?php echo $room->getId(); ?> "><?php echo $room->getName(); ?> </option> <?php } ?> </select> <label for="pinRadioRelay">Mode impulsion (micro secondes)</label> <input type="number" value="<?php echo $selected->pulse; ?> " id="pulseRadioRelay" placeholder="0" /> <small>laisser à zéro pour désactiver le mode impulsion</small> </div> <div class="clear"></div> <br/><button onclick="plugin_radiorelay_save(this)" class="btn">Enregistrer</button> </fieldset> <br/> <fieldset> <legend>Consulter les relais radios existants</legend> <table class="table table-striped table-bordered table-hover"> <thead> <tr> <th>Nom</th> <th>Description</th> <th>Code</th> <th>Pièce</th> <th colspan="2">Impulsion</th> </tr> </thead> <?php foreach ($radioRelays as $radioRelay) { $room = $roomManager->load(array('id' => $radioRelay->room)); ?> <tr> <td><?php echo $radioRelay->name; ?> </td> <td><?php echo $radioRelay->description; ?> </td> <td><?php echo $radioRelay->radiocode; ?> </td> <td><?php echo $room->getName(); ?> </td> <td><?php echo $radioRelay->pulse; ?> </td> <td> <a class="btn" href="setting.php?section=radioRelay&id=<?php echo $radioRelay->id; ?> "><i class="fa fa-pencil"></i></a> <div class="btn" onclick="plugin_radiorelay_delete(<?php echo $radioRelay->id; ?> ,this);"><i class="fa fa-times"></i></div> </td> </td> </tr> <?php } ?> </table> </fieldset> </div> <?php } }