
Controllo del Raspberry Pi dal tuo cellulare
Oggi vi metto un post di quelli che mi piacciono, Sono molto semplici e hanno un aspetto molto bello! Bene, se abbiamo un Raspberry Pi e abbiamo un comando che vogliamo sia facilmente eseguito dal cellulare come accendere la luce di casa, o cambia canale TV sul nostro Kodi, Questo è il tuo post! Facile, Semplice e adatto alle famiglie!
Cosa ho detto, si tenemos algún script por ahí y queremos poder ejecutarlo desde cualquier dispositivo móvil (Ios, Androide…) 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…
Cosa ho detto, primero instalaremos los requisitos:
[Codice sorgente]sudo apt-get install apache2 php5 libapache2-mod-php5[/Codice sorgente]
Cambiaremos el usuario que ejecutará apache2 (opzionale, creo recordar que lo hice para los comandos que llevan audio), editamos el fichero ‘/etc/apache2/envvars’, corrigiendo el usuario:
[Codice sorgente]export APACHE_RUN_USER=pi
export APACHE_RUN_GROUP=pi[/Codice sorgente]
E abbiamo riavviato Apache:
[Codice sorgente]sudo /etc/init.d/apache2 restart[/Codice sorgente]
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 “Su” 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
[Codice sorgente]
<HTML>
<head>
<titolo>Domotica casa</titolo>
<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"></copione>
<script src="./amcharts/amcharts.js" type="text/javascript"></copione>
<script type="text/javascript" src="./js/common.js"></copione>
<script type="text/javascript" src="la6.js"></copione>
</head>
<body>
<form id="relè" action="remote_relay.php" method="OTTIENI">
<input type="hidden" name="total" id="total" value="">
<input type="pulsante" id="La6submitOn" style="bordo:1px solido #000; dimensione-carattere:40Px;" value="Acceso" onClick="La6relayOn()"/>
</Modulo>
<?php
$state = $_GET["totale"];
se ($state == "La6on"){
Exec("/home/pi/la6_enciende.sh");
}
?>
<script type=’text/javascript’>
self.close();
</copione>
</body>
</HTML>
[/Codice sorgente]
la6.js
[Codice sorgente]window.onload = funzione(){
buttonOff = document.getElementById(‘La6submitOn’);
buttonOff.onClick = La6relayOn;
}
function La6relayOn(){
nascosto = document.getElementById("totale");
hidden.value = "La6on";
form = document.getElementById("Staffetta");
form.method="OTTIENI";
form.action = "la6.php";
modulo.invio();
}[/Codice sorgente]
Non male, 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! Così: Comentamos > La anclamos en pantalla de Inicio > Descomentamos. Líneas en cuestión:
[Codice sorgente]#≪script type=’text/javascript’≫
# self.close();
#≪/copione≫[/Codice sorgente]
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, per questo, desde un PC escucharemos el puerto 9090 de Kodi, para ver qué le manda nuestro Yatse, Kodi Remote… así que ejecutamos:
[Codice sorgente]nc DIRECCION_IP_RASPBERRY 9090[/Codice sorgente]
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:
[Codice sorgente]echo ‘{"id":1,"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"channelid":93}}}’ | nc 192.168.1.200 9090[/Codice sorgente]
Ejemplo de parar TV:
[Codice sorgente]echo ‘{ "id": 1, "jsonrpc": "2.0", "method": "Player.Stop", "params": { "playerid": 1 } }’ | nc 192.168.1.200 9090[/Codice sorgente]
Ejemplo para cambiar el audio de la TV para que practiquemos el inglés!
[Codice sorgente]echo ‘{"jsonrpc": "2.0", "method": "Player.SetAudioStream", "params": { "playerid": 1, "stream": "next"}, "id": 1}’ | nc 192.168.1.200 9090[/Codice sorgente]
Etc, and so on… guardamos dicho comando en un archivo .sh que podremos ejecutar al abrir la web PHP desde nuestro móvil! Godere!