mercoledì 18 febbraio 2015

Script PowerShell per SNR TP-Link W8960N v5

Dopo il NetGear DGN2200 v1 ed il TP Link W8960N v4, in questo articolo troverete un altro script sempre PowerShell per la gestione del router W8960N v5 della TP-Link.
Come i router citati anche questo è equipaggiato con un chip adsl Broadcom, versione 6318, quindi i comadi sono simili; purtroppo con questa versione del router non funzionano i comandi per l'accensione e lo spegnimento del wifi.
Preciso che nessuna modifica apportata con lo script è definitiva, pertanto verrà annullata al successivo spegnimento/ravvio del router.

Ecco cosa è possibile fare con lo script:


digitando il numero dell'opzione che interessa e premendo Invio vengono mandati i relativi comandi al router.

REQUISITI FONDAMENTALI affinchè tutto funzioni correttamente è che sia installato PowerShell 2.0 nel sistema, che sia abilitata l'esecuzione degli script PS1 e che PowerShell abbia accesso all'indirizzo 192.168.1.1. Leggete l'articolo sul DGN2200 v1 citato all'inizio per ulteriori informazioni.

Se avete personalizzato la password di accesso all'interfaccia web del router dovete provvedere ad inserirla nello script in quanto vi sono memorizzati username e password di default (admin admin).
Per farlo fate clic destro sul file dello script (W8960Nv5.ps1) e scegliete Modifica, si aprirà PowerShell ISE, andate alla riga 63 e modificate admin con la password da voi impostata:


Un'altra modifica da apportare allo script è l'inserimento del nome dell'interfaccia WAN utilizzata dal router per la connessione, serve per comando di cambio indirizzo IP. Aprite il pannello di configurazione del router e andate in Device Info -> WAN, di seguito evidenziato il nome dell'interfaccia (se il router è connesso è contrassegnata come Link up)


quindi provvedete ad editare lo script come visto in precedenza ed andate alla riga 34


sostituendo a pppoa0 il nome della vostra interfaccia. Va modificato il nome dell'interfaccia anche alle righe 72 e 74. Quando fatto salvate e chiudete PowerShell ISE.

Ho scelto di implementare il comando per l'abbassamento del SNR di 3dB per favorire la stabilità della linea; nulla vi vieta di modificarlo per abbassarlo ulteriormente.
Dopo aver aperto PowerShell ISE portatevi alla riga 37:


quindi modificate il valore 50 a vostro piacimento. Salvate e chiudete.

Il TP Link W8960N v5 supporta un comando interessante: adsl profile --save consente di salvare il valore del target noise impostato tramite i comandi dello script, mantenendolo anche in caso di spegnimento o riavvio del router. Per questo motivo ho preferito non implementarlo nello script, chi lo volesse utilizzare può inviarlo dopo essersi collegato al router via Telnet.
Per ripristinare il valore di target noise previsto dal profilo ADSL consiglio un reset alle impostazioni di fabbrica.

Nell'archivio troverete anche un'icona del router da me creata.

Download W8960Nv5.zip

19 commenti:

Unknown ha detto...

Riesci a fare uno script anche per archer d5?

skynet81 ha detto...

Nonostante abbia chip Broadcom l'Archer D5 non supporta i comandi via telnet per la variazione di snr

Unknown ha detto...

Ciao Massimo,

ho configurato al meglio il TP-Link W8960N v5.
Ho abbassato gli SNR di 3dB, con ottimi risultati di stabilità.

Ho un problema però con il salvare la configurazione. Dando il comando "adsl profile --save" non succede nulla. Ho riavviato il modem per provare e ho visto che i settaggi snr erano stati ripristinati.

p.s. ho provato a modificare il comando con "xdslctl profile --save" ma ha mandato in tilt il modem e ho dovuto riconfigurarlo da capo.

In cosa sbaglio? Grazie

Write-Host ' 1 - Cambio indirizzo IP ' -For White
Write-Host ' 2 - Disconnetti ADSL ' -For Gray
Write-Host ' 3 - Riconnetti ADSL ' -For Gray
Write-Host ' 4 - Margine SNR -3dB ' -For Red
Write-Host ' 5 - Margine SNR +3dB ' -For Green
Write-Host ' 6 - Margine SNR default ' -For Yellow
Write-Host ' 7 - Salva profilo adsl ' -For Yellow
Write-Host ' R - Riavvio router ' -For White
Write-Host ' INVIO per uscire ' -For DarkGray
Write-Host ' ─────────────────────────── ' -For Cyan
Options
}


Function Options {
$command = "0"
$o = Read-Host " Seleziona "
switch ($o)
{
1 {$command = "ppp config ppp0.1 down"}
2 {$command = "xdslctl connection --down"}
3 {$command = "xdslctl connection --up"}
4 {$command = "xdslctl configure --snr 50"}
5 {$command = "xdslctl configure --snr 150"}
6 {$command = "xdslctl configure --snr 100"}
7 {$command = "adsl profile --save"}
R {$command = "reboot"}

skynet81 ha detto...

Prova a dare il comando dalla console telnet...

skynet81 ha detto...

Sinceramente non so darti una risposta precisa. Leggo di persone che sono riuscite ad intervenire su SNR e altre no. Il problema è che se vengono rilevati abbassamenti di snr o disconnessioni spesso ti viene impostato automaticamente un profilo più conservativo per la stabilità.

Michele ha detto...

si riesce a modificare anche l'SNR un upload?

skynet81 ha detto...

No, quello lo può fare solo il provider cambiando il profilo sul DSLAM

Marco Di Ianni ha detto...

Ciao skynet81.
Innanzitutto complimenti e grazie per lo script, lo trovo molto molto utile.
Lo script funziona veramente bene, ma vorrei chiederti se secondo te c'è modo di eseguire il comando "reboot" da Android, hai qualche idea? Il caso d'uso è il classico "sono sul divano e non funziona bene internet... "ok google, riavvia adsl!"... Ho pensato a Tasker, ma non so che comandi script eseguire da Android.
Grazie!

Marco Di Ianni ha detto...

Sono sempre io, sono riuscito nella mia missione usando questa app:
https://play.google.com/store/apps/details?id=com.asif.plugin.sendexpect

skynet81 ha detto...

Ciao e grazie per i complimenti ed il tuo suggerimento!
Io usavo la app Telnet

bort81 ha detto...

Ciao e grazie mille per tutto. Ho Infostrada 20Mb ad una distanza notevole dalla centrale e aggancio massimo a 14. Ho utilizzato questo script e ho portato la banda ad oltre 15. Modificando il valore snr a 1 arriva a quasi a 18Mb e rimane stabile. Ogni 2/3 giorni però ritorna a 14 (stranamente senza disconnessione, cioè il timer mi dice linkup 3 giorni 16 ore etc...). Insomma ho bisogno di 2 informazioni:
1 - perchè abilitando telnet dal pannello di controllo sul Win7 poi dal command.com se scrivo telnet 192.168.1.1 mi dice che telnet non è un programma riconosciuto.
2 - come modifico (se possibile) il tuo script in modo da fargli salvare il profilo snr 1?

Grazie ancora

skynet81 ha detto...

Ciao, per la domanda 1) probabilmente non hai telnet installato nel sistema, dovresti andare in installazione applicazioni -> aggiungi/rimuovi componenti di windows, spuntare Client Telnet e dare applica.
Poi ti puoi connettere con telnet, per salvare il profilo con snrm a 1 una volta che l'hai settato dai il comando adsl profile --save

bort81 ha detto...

Ciao, ho risolto inviando pkgmgr /iu:"TelnetClient" sul Cmd e sono riuscito a salvare il profilo. Tutto ok. Grazie ancora

Unknown ha detto...

ciao Skynet,
ho provato ad utilizzare telnet per mantenere le impostazioni, ma una volta che do la riga di comando, mi chiede login metto admin , ma la password non me la fa scrivere! cioè proprio premo i tasti ma non compare nulla
Una cosa, nel modem, sai quando va cambiata l'interfaccia ho notato che vedo questo: https://drive.google.com/open?id=0B1tEhEQhab83Z0dlaTgtc3ZrUnM


Unknown ha detto...

un'altra cosa, il parametro snr 50
hai scritto di cambiarlo a piacimento
ma in che modo viene interpretato il numero dal programma?

Unknown ha detto...

visto che ti sto disturbando tanto vale approfittarne XD
che mi dici di questo?
https://drive.google.com/open?id=0B1tEhEQhab83TWVTc1U3ZEVDazQ

skynet81 ha detto...

E' normale che non venga visualizzata la password.. questione di sicurezza... se la digiti giusta e dai invio, potrai dare i comandi successivi.
Prova a seguire queste indicazioni per il parametro per snrm
http://i61.tinypic.com/2con3hw.jpg
A quei test non farei eccessivo affidamento.. possono dipendere da un bug del firmware del router o dal fatto che hai ppoe al posto di pppoa.. se la connessione funziona non farti problemi

Unknown ha detto...

grazie mille :)
risposte chiarissime a tutte le mie perplessità , thanks!

Unknown ha detto...

ora attendo che mi metteranno la 20 mega prima di abbassare l'snr
volevo farti una ultima domanda, prima di renderlo "fisso" con telnet, devo stare attendo a come si comporta la linea con le disconnessioni e basta?
sentivo su tom's che bisogna tenere d'occhio anche gli errori segnati dal modem?

https://drive.google.com/file/d/0B1tEhEQhab83N1FJTHVqYWdCS0U/view

di questi quali devo guardare? quelli in fondo?
Giusto per capire cosa indica oltre alle disconnessioni se i 6db "garbano" alla mia linea
Thanks :)