
Controlando la Raspberry Pi desde el móvil
Hoy os voy a poner un post de los que me gustan, son sencillísimos y quedan chulísimos! まぁ, si tenemos alguna Raspberry Pi y tenemos algún comando que queremos que se pueda ejecutar fácilmente desde el móvil como encender alguna luz de casa, o cambiar un canal de TV de nuestro Kodi, これがあなたの投稿です! 易しい, シンプルで家族向け!
私が言ったこと, si tenemos algún script por ahí y queremos poder ejecutarlo desde cualquier dispositivo móvil (iOSの, アンドロイド…) o desde cualquier navegador… lo primero será tener instalado Apache2 y crear un archivo PHP, un JS y subir una imagen PNG para el icono. Al pulsar desde el navegador el botón ON que saldrá en la web ejecutará el archivo .sh que digamos, lo que haremos será ‘añadir a la pantalla de inicio’ dicho acceso directo a esa URL y el móvil bien el iPhone/iPad/Androide nos creará una app con el icono, que al pulsarlo ejecutará nuestro programa en la Pi.
Os dejo unos pantallazos de mi móvil de cómo se puede controlar cualquier canal de TV, cualquier dispositivo que tengamos, como encender/apagar la calefacción, subir/bajar las persianas, encender/apagar/regular las luces de la casa, encender/apagar la alarma…
私が言ったこと, primero instalaremos los requisitos:
[ソースコード]sudo apt-get apache2 php5 libapache2-mod-php5をインストールする[/ソースコード]
Cambiaremos el usuario que ejecutará apache2 (随意, creo recordar que lo hice para los comandos que llevan audio), editamos el fichero ‘/etc/apache2/envvars’, corrigiendo el usuario:
[ソースコード]export APACHE_RUN_USER=pi
export APACHE_RUN_GROUP=pi[/ソースコード]
そして、Apacheを再起動しました:
[ソースコード]sudo /etc/init.d/apache2 restart[/ソースコード]
Os paso un par de archivos, un PHP y un JS, ahora que los documento también veo lineas que sobran, si queréis las corregís 😉 si no, da igual que os funcionará también! Este archivo PHP es un formulario que al pulsar el boton “オン” ejecutará el script ‘/home/pi/la6_enciende.sh’ que veréis más adelante que pone La Sexta en mi TV. Todo ello, obviamente en ‘/var/www/’:
la6.php
[ソースコード]
<HTMLの>
<head>
<タイトル>Domotica casa</タイトル>
<link rel="stylesheet" type="text/css" href="./css/style.css" />
<link rel="apple-touch-icon" href="la6.png">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></スクリプト>
<script src="./amcharts/amcharts.js" type="text/javascript"></スクリプト>
<script type="text/javascript" src="./js/common.js"></スクリプト>
<script type="text/javascript" src="la6.js"></スクリプト>
</head>
<body>
<フォーム id="リレー" action="remote_relay.php" メソッド="GET">
<input type="hidden" name="total" id="total" value="">
<入力タイプ = "ボタン"" id="La6submitOn" style="ボーダー:1pxソリッド #000; フォントサイズ:40ピクセル;" 値 ="オン" onClick="La6relayOn()"/>
</形>
<?PHPの
$state = $_GET[「合計」];
もし ($state == "La6on"){
エグゼクティブ("/home/pi/la6_enciende.sh");
}
?>
<script type=’text/javascript’>
self.close();
</スクリプト>
</body>
</HTMLの>
[/ソースコード]
la6.js
[ソースコード]window.onload = 関数(){
buttonOff = document.getElementById(‘La6submitOn’);
buttonOff.onClick = La6relayOn;
}
function La6relayOn(){
hidden = document.getElementById(「合計」);
hidden.value = "La6on";
フォーム = document.getElementById(「リレー」);
form.method="GET";
form.action = "la6.php";
フォーム.submit();
}[/ソースコード]
悪くありません, con esto ya tenemos la posibilidad de ejecutar cualquier script de nuestras Raspberrys desde cualquier móvil de una forma agradable para el resto de la familia 😉 Acordaros de poner el archivo PNG con el icono que queréis que se vea!
Una cosa, la web PHP tiene 3 lineas que deberéis comentar la primera vez! Ya que la idea de la web PHP es que al pulsar desde el móvil y abrirse, ejecute el comando y luego la web se cierre automáticamente para no quedarse residual en el navegador del móvil. Y si no la comentamos, no podremos la primera vez agregarla como app al ‘Escritorio’ del móvil ya que se cerrará y no nos dará tiempo! だから: Comentamos > La anclamos en pantalla de Inicio > Descomentamos. Líneas en cuestión:
[ソースコード]#&中尉;script type=’text/javascript’>の;
# self.close();
#&中尉;/スクリプト>の;[/ソースコード]
Que nos queda? Algo interesante, si tenemos Kodi y tenemos el acceso remoto habilitado, sabremos que podemos manejarlo con aplicaciones tipo: Kodi Remote, Yatse, Kore… podemos con JSON administrarlo igual forma desde la shell de nuestra Pi, y crearnos un script que ejecute lo que queramos como es cambiar a un canal de TV, cambiar el idioma de la TV, grabar la TV…
Lo primero será saber qué está mandando nuestra app de iOS/Android al Kodi, こちらは, desde un PC escucharemos el puerto 9090 de Kodi, para ver qué le manda nuestro Yatse, Kodi Remote… así que ejecutamos:
[ソースコード]nc DIRECCION_IP_RASPBERRY 9090[/ソースコード]
Y esperamos…
Teniendo netcat a la escucha, ya podremos pulsar el canal que querramos desde nuestra app del móvil y en pantalla, el nc nos sacará el comando que necesitaremos ejecutar posteriormente, o al menos una ayuda para saber el ID de cada canal de TV!
En mi caso pues, para poner La Sexta tendré que ejecutar el siguiente comando:
[ソースコード]echo ‘{"id":1,"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"channelid":93}}}’ | nc 192.168.1.200 9090[/ソースコード]
Ejemplo de parar TV:
[ソースコード]echo ‘{ "id": 1, "jsonrpc": "2.0", "method": "Player.Stop", "params": { "playerid": 1 } }’ | nc 192.168.1.200 9090[/ソースコード]
Ejemplo para cambiar el audio de la TV para que practiquemos el inglés!
[ソースコード]echo ‘{"jsonrpc": "2.0", "method": "Player.SetAudioStream", "params": { "playerid": 1, "stream": "next"}, "id": 1}’ | nc 192.168.1.200 9090[/ソースコード]
Etc, 等… guardamos dicho comando en un archivo .sh que podremos ejecutar al abrir la web PHP desde nuestro móvil! 楽しむ!