Scenario: Ho un HTPC (win) collegato all'ampli a cui sono collegati gli altorparlanti nelle varie stanze di casa.
Desidero comandare velocemente il mediacenter da qualsiasi stanza, dal cellulare o da altri pc della rete siano essi windows linux mac, etc..
Restrizioni:
Desidero comandare velocemente il mediacenter da qualsiasi stanza, dal cellulare o da altri pc della rete siano essi windows linux mac, etc..
Restrizioni:
- Il tutto deve funzionare con interfaccia "one click" senza prompt.
- Il comando inviato deve limitarsi ad effettuare la sua azione e terminare, senza mantenere connesioni aperte tra i pc, quindi niente demoni o servizi in ascolto (tranne ovviamente ssh già presente).
- L'unica porta aperta è la 22
- Deve essere multipiattaforma.
Esempio:
Premendo il il tasto Skip sulla tastiera del pc-cucina il mediacenter deve saltare la canzone che l'htpc sta riproducendo.
Premendo il tasto fisico volume del cellulare Android, e il volume del mediacenter deve adeguarsi.
Bonus: In caso di chiamata sul cellulare, mettere in pausa automaticamente la riproduzione sull'htpc.
Soluzione.
- Scaricare ed installare i PsTools (celebri tool della sysinternal) sul mediacenter windows
- Scaricare ed installare un qualsiasi server SSH, io ho utilizzato Bitwise che è gratuito per uso non commerciale (questo passaggio potrebbe sembrare superfluo inquanto con il comando psexec si possono eseguire comandi direttamente sulla macchina remota, tuttavia 1- Psexec non gira su unix/linux salvo configurare appositamente wine 2- La connessione tramite Psexec tra pc windows è estremamente lenta, circa 5-6 secondi per il primo comando.)
- Scaricare ed installare sul mediacenter nircmd che si occuperà di simulare la pressione del tasto (se preferite si potrebbe usare anche autohotkey/AutoIt ma personalmente preferisco farlo via CLI ) - Se preferite nircmd ha la possibilità esso stesso di inviare comandi da remoto, tuttavia per motivi di sicurezza preferisco che tutte le connessioni utilizzino un layer ssh.
- Sui pc "client" windows utilizzare plink (facente parte del pacchetto putty)
- Da linux non è necessario nessun client per interfacciarsi su ssh, esportate le rsa così da non dover digitare ogni volta la password.
- Per mettere in pausa automaticamente da phone android potete utilizzare Tasker (credo si possa fare anche con Locale, ma non ho provato) e con ssh plugin per creare un task "pause" ed associarlo ad un profilo che si attiverà alla chiamata. - Piccolo Hint: se non potete acquistare la versione full del plugin ssh potete utilizzare anche la versione base gratuita, dovete solo fare un copia di psexec.exe e e chiamarla ls.exe a quel punto modificare il comando sul plugin da psexec a ls, infatti la versione gratuita permette di eseguire solo alcuni comandi tra cui ls )
Comando da inviare da pc (windows)
Se volete creare una semplice shortcut su windows a questo punto è sufficente creare un file batch di windows con il seguente comando:
plink -v -ssh username@nomepc -pw scrivi_qui_la_password psexec \\localhost -u "username" -p "scrivi_qui_la_password" -i 1 nircmd sendkeypress 0xAD
sostituire 0xAD (tasto multimediale mute) con il codice del tasto che volete inviare ( es. 0xB3 play/pause ) per la lista dei codici virtualkeys consultare questa pagina
Se state già storcendo il naso per le password in chiaro, non preoccupatevi, basta utilizzare
una volta memorizzate le credenziali non sarà più necessario utilizzare -u e -p, naturalmente fino al prossimo cambio password.
Se state già storcendo il naso per le password in chiaro, non preoccupatevi, basta utilizzare
cmdkey.exe /add:nomepc /user:username /password:scrivi_qui_la_tuapsw
una volta memorizzate le credenziali non sarà più necessario utilizzare -u e -p, naturalmente fino al prossimo cambio password.
Per utilizzare i multimedia keys già presenti sulla tastiera e creare una sorta di forward dei tasti potete utilizzare autohotkey e creare un semplice script così:
Media_Next :: Run, nomedelfilebatdicuisopra.bat(o direttamente il comando per esteso), Percorso, Hide
(utilizzando ", Hide "non apparirà neanche la fastidiosa schermata nera del prompt di windows )
Troubleshooting:
Se avete problemi con tasker non preoccupatevi vedremo l'impostazioni da inserire nei prossimi post.
Troubleshooting:
Se avete problemi con tasker non preoccupatevi vedremo l'impostazioni da inserire nei prossimi post.
Commenti
Posta un commento