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!

 

Gestire-Raspberry-via-Web-00-Bujarra

Cosa ho detto, se abbiamo qualche script da qualche parte e vogliamo poterlo eseguire da qualsiasi dispositivo mobile (Ios, Androide…) o da qualsiasi browser… la prima cosa sarà avere Apache2 installato e creare un file PHP, un JS e caricare un'immagine PNG per l'icona. Premendo dal browser il pulsante ON che apparirà sul web eseguirà il file .sh che vogliamo, quello che faremo sarà 'aggiungere alla schermata principale'’ questo collegamento a quella URL e il cellulare sia iPhone/iPad/Android ci creerà un'app con l'icona, che premendo eseguirà il nostro programma sulla Pi.

 

Vi lascio alcuni screenshot del mio cellulare su come si può controllare qualsiasi canale TV, qualsiasi dispositivo che abbiamo, come accendere/spegnere il riscaldamento, alzare/abbassare le persiane, accendere/spegnere/regolare le luci di casa, accendere/spegnere l'allarme…

 

Cosa ho detto, prima installeremo i requisiti:

[Codice sorgente]sudo apt-get install apache2 php5 libapache2-mod-php5[/Codice sorgente]

 

Cambiaremo l'utente che eseguirà apache2 (opzionale, credo di ricordare di averlo fatto per i comandi che prevedono audio), modifichiamo il file '/etc/apache2/envvars', correggendo l'utente:

[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]

 

Vi passo un paio di file, un PHP e un JS, ora che li documento vedo anche delle righe superflue, se volete le correggete 😉 altrimenti, non importa, funzionerà comunque! Questo file PHP è un modulo che, premendo il pulsante “Su” eseguirà lo script '/home/pi/la6_enciende.sh'’ che vedrete più avanti che mette La Sexta sulla mia TV. Tutto ciò, ovviamente in '/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="relay" action="remote_relay.php" method="GET">
<input type="hidden" name="total" id="total" value="">
<input type="button" id="La6submitOn" style="border:1px solido #000; dimensione-carattere:40Px;" value="On" onClick="La6relayOn()"/>
</Modulo>
<?php

$state = $_GET["total"];

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("total");
hidden.value = "La6on";

form = document.getElementById("relay");
form.method = "GET";
form.action = "la6.php";
modulo.invio();
}[/Codice sorgente]

Non male, Con questo abbiamo già la possibilità di eseguire qualsiasi script delle nostre Raspberry da qualsiasi cellulare in un modo piacevole per il resto della famiglia 😉 Ricordatevi di inserire il file PNG con l'icona che volete vedere.!

Una cosa, la web PHP ha 3 linee che dovrete commentare la prima volta! Poiché l'idea della web PHP è che, cliccando dal cellulare, si apra, esegue il comando e poi la web si chiude automaticamente per non rimanere residuo nel browser del cellulare. E se non la commentiamo, non potremo la prima volta aggiungerla come app al 'Desktop’ del cellulare poiché si chiuderà e non ci darà tempo! Così: Commentiamo > La ancliamo nella schermata iniziale > Descommentiamo. Linee in questione:

[Codice sorgente]#&Lt;script type=’text/javascript’&Gt;
# self.close();
#&Lt;/copione&Gt;[/Codice sorgente]

 

Cosa ci rimane? Qualcosa di interessante, se abbiamo Kodi e abbiamo abilitato l'accesso remoto, sapremo che possiamo gestirlo con applicazioni come: Kodi Remote, Yatse, Kore… possiamo gestirlo tramite JSON anche dalla shell del nostro Pi, e crearci uno script che esegua ciò che vogliamo come cambiare canale TV, cambiare la lingua della TV, registrare la TV…

 

Gestire-Raspberry-via-Web-01-Bujarra

La prima cosa sarà capire cosa sta inviando la nostra app di iOS/Android a Kodi, per questo, da un PC ascolteremo la porta 9090 di Kodi, per vedere cosa manda il nostro Yatse, Kodi Remote… quindi eseguiamo:

[Codice sorgente]nc DIREZIONE_IP_RASPBERRY 9090[/Codice sorgente]

E aspettiamo…

 

Gestire-Raspberry-via-Web-02-Bujarra

Con netcat in ascolto, potremo premere il canale che vogliamo dalla nostra app mobile e sullo schermo, il nc ci mostrerà il comando che dovremo eseguire successivamente., o almeno un aiuto per sapere l'ID di ciascun canale TV!

Nel mio caso, quindi, per mettere La Sexta dovrò eseguire il seguente comando:

[Codice sorgente]echo ‘{"id":1,"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"channelid":93}}}’ | nc 192.168.1.200 9090[/Codice sorgente]

 

Esempio di fermare la TV:

[Codice sorgente]echo ‘{ "id": 1, "jsonrpc": "2.0", "method": "Player.Stop", "params": { "playerid": 1 } }’ | nc 192.168.1.200 9090[/Codice sorgente]

Esempio per cambiare l'audio della TV in modo da praticare l'inglese!

[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… salviamo questo comando in un file .sh che possiamo eseguire aprendo il web PHP dal nostro cellulare! Godere!

 

Post consigliati

Autore

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Non esitate a contattarmi, Cercherò di aiutarti ogni volta che potrò, Condividere è vivere ;) . Goditi i documenti!!!