예제 #1
0
function wireRelay_plugin_setting_page()
{
    global $_, $myUser, $conf;
    if (isset($_['section']) && $_['section'] == 'wireRelay') {
        if (!$myUser) {
            throw new Exception('Vous devez être connecté pour effectuer cette action');
        }
        $wireRelayManager = new WireRelay();
        $wireRelays = $wireRelayManager->populate();
        $roomManager = new Room();
        $rooms = $roomManager->populate();
        $selected = new WireRelay();
        $selected->pulse = 0;
        $selected->icon = 'fa fa-flash';
        //Si on est en mode modification
        if (isset($_['id'])) {
            $selected = $wireRelayManager->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 filaires</p>  

			<fieldset>
			    <legend>Ajouter/Modifier un relais filaire</legend>

			    <div class="left">

				    <label for="nameWireRelay">Nom</label>
				    <input type="hidden" id="id" value="<?php 
        echo $selected->id;
        ?>
">
				    <input type="text" id="nameWireRelay" value="<?php 
        echo $selected->name;
        ?>
" placeholder="Lumiere Canapé…"/>
				    
				    <label for="descriptionWireRelay">Description</label>
				    <input type="text"  value="<?php 
        echo $selected->description;
        ?>
" id="descriptionWireRelay" placeholder="Relais sous le canapé…" />

					<label for="iconWireRelay">Icone</label>
				    <input type="hidden"  value="<?php 
        echo $selected->icon;
        ?>
" id="iconWireRelay"  />
					
					<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_wirerelay_set_icon(this,'<?php 
            echo $icon;
            ?>
');" class="<?php 
            echo $icon;
            ?>
 btn <?php 
            echo $selected->icon == $icon ? 'btn-success' : '';
            ?>
"></i>
						<?php 
        }
        ?>
 
						</div>
					</div>

				    <label for="onWireRelay">Commande vocale "ON" associée</label>
				    <?php 
        echo $conf->get('VOCAL_ENTITY_NAME');
        ?>
, <input type="text" id="onWireRelay" value="<?php 
        echo $selected->oncommand;
        ?>
" placeholder="Allume la lumière, Ouvre le volet…"/>
				   
				    
				    <label for="offWireRelay">Commande vocale "OFF" associée</label>
				    <?php 
        echo $conf->get('VOCAL_ENTITY_NAME');
        ?>
, <input type="text" id="offWireRelay" value="<?php 
        echo $selected->offcommand;
        ?>
" placeholder="Eteinds la lumière, Ferme le volet…"/>
				    
				    
				    <label for="pinWireRelay">Pin GPIO (Numéro Wiring PI) relié au relais</label>
				    <input type="number" value="<?php 
        echo $selected->pin;
        ?>
" id="pinWireRelay" placeholder="0,1,2…" />
				    
				    <label for="roomWireRelay">Pièce de la maison</label>
				    <select id="roomWireRelay">
				    	<?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="pinWireRelay">Mode impulsion (micro secondes)</label>
				   <input type="number" value="<?php 
        echo $selected->pulse;
        ?>
" id="pulseWireRelay" placeholder="0" />
				   <small>laisser à zéro pour désactiver le mode impulsion</small>
				</div>

	  			<div class="clear"></div>
			    <br/><button onclick="plugin_wirerelay_save(this)" class="btn">Enregistrer</button>
		  	</fieldset>
			<br/>


			<fieldset>
				<legend>Consulter les relais filaires existants</legend>
				<table class="table table-striped table-bordered table-hover">
				    <thead>
					    <tr>
					    	<th>Nom</th>
						    <th>Description</th>
						    <th>Pin GPIO</th>
						    <th>Pièce</th>
						    <th colspan="2">Impulsion</th>
						    
					    </tr>
				    </thead>
			    
			    	<?php 
        foreach ($wireRelays as $wireRelay) {
            $room = $roomManager->load(array('id' => $wireRelay->room));
            ?>
					<tr>
				    	<td><?php 
            echo $wireRelay->name;
            ?>
</td>
					    <td><?php 
            echo $wireRelay->description;
            ?>
</td>
					    <td><?php 
            echo $wireRelay->pin;
            ?>
</td>
					    <td><?php 
            echo $room->getName();
            ?>
</td>
					    <td><?php 
            echo $wireRelay->pulse;
            ?>
</td>
					    <td>
					    	<a class="btn" href="setting.php?section=wireRelay&id=<?php 
            echo $wireRelay->id;
            ?>
"><i class="fa fa-pencil"></i></a>
					    	<div class="btn" onclick="plugin_wirerelay_delete(<?php 
            echo $wireRelay->id;
            ?>
,this);"><i class="fa fa-times"></i></div>
					    </td>
					    </td>
			    	</tr>
			    <?php 
        }
        ?>
			    </table>
			</fieldset>
		</div>

<?php 
    }
}
function wireRelay_vocal_command(&$response, $actionUrl)
{
    global $conf;
    $wireRelayManager = new WireRelay();
    $wireRelays = $wireRelayManager->populate();
    foreach ($wireRelays as $wireRelay) {
        $response['commands'][] = array('command' => $conf->get('VOCAL_ENTITY_NAME') . ', allume ' . $wireRelay->getName(), 'url' => $actionUrl . '?action=wireRelay_change_state&engine=' . $wireRelay->getId() . '&state=1&webservice=true', 'confidence' => '0.9');
        $response['commands'][] = array('command' => $conf->get('VOCAL_ENTITY_NAME') . ', eteint ' . $wireRelay->getName(), 'url' => $actionUrl . '?action=wireRelay_change_state&engine=' . $wireRelay->getId() . '&state=0&webservice=true', 'confidence' => '0.9');
    }
}