• Let op: Dit is het archief van het Provider Forum. De berichten die je hier ziet zijn gedateerd en er kan niet meer op worden gereageerd.

Docsis Power Tool

Werkt hier nog steeds... al minstens 27 dagen.
 

Bijlagen

  • cisco-access-18082009.png
    cisco-access-18082009.png
    32,7 KB · Weergaven: 86
Nightshadow zei:
Doet niks bij mij... Staat al minstens twee uur aan, geen data gevonden.. Heb gewoon een Arris TM502B.

Dat zou zonder problemen moet werken. Kun je wel bij de web-interface op http://192.168.100.1? En welk OS?
 
Ik heb voordat UPC gebruik ging maken van VoIP/SIP (dus het oude VoIP platform) altijd middels MRTG de statistieken uitgelezen door gewoon fijntjes de SNMP-Daemon in het modem te pollen.

Helaas werkt dit echter al ruim 1 1/2 jaar niet meer en is dit nieuws nogal oud. Bij een overgroot gedeelte van de modems is dit al niet meer mogelijk, vooral de Arris met ingebouwde adapter (502B meen ik) is dit al allang niet meer mogelijk. De 402B werkt het soms nog wel eens mee, hoewel meer niet dan wel.
 
René [Mr. Jinx] zei:
Dat zou zonder problemen moet werken. Kun je wel bij de web-interface op http://192.168.100.1? En welk OS?

Ja krijg gewoon de output van de modem te zien. Ik gebruik Vista.

* Edit: Nu doet hij het - opeens - wel. Geen idee waar het nou aan lag.
 
Dit progje heeft mij geïnspireerd om even snel een Linux scriptje te schrijven dat hetzelfde bewerkstelligt. Zie deze pagina voor het resultaat. Het werkt momenteel enkel voor een Arris TM502B modem. Mocht er iemand geïnteresseerd zijn, dit is het script dat iedere 5 minuten (via crontab) wordt gedraaid:

Code:
#!/bin/bash

BASEDIR="/var/www/docsis-stats"
CSVFILE="${BASEDIR}/docsis.csv"

if [ ! -f ${CSVFILE} ]; then
	echo "\"Date & Time\";\"DS Freq (MHz)\";\"DS Freq min. (MHz)\";\"DS Freq max. (MHz)\";\"DS Power (dBmV)\";\"DS SNR (bB)\";\"DS Power min. (dBmV)\";\"DS Power max. (dBmV)\";\"US Freq (MHz)\";\"US Freq min. (MHz)\";\"US Freq max. (MHz)\";\"US Power (dBmV)\";\"US Power min. (dBmV)\";\"US Power max. (dBmV)\"" > ${CSVFILE}
fi

STATS=`wget -q -O - http://192.168.100.1/ \
	| grep -o -E "([[:digit:]]+\.[[:digit:]]+ MHz)|([[:digit:]]+ dB(mV)*)|(QAM[[:digit:]]+)|(QPSK)|(S-CDMA)" \
	| tr "\n" ";" \
	| sed -e "s/QAM256/-13;17/g" -e "s/QAM64/-17;13/g" \
		-e "s/QAM8/8;55/g" -e "s/QAM16/8;55/g" \
		-e "s/QAM32/8;54/g" -e "s/QAM64/8;54/g" \
		-e "s/QPSK/8;58/g" -e "s/S-CDMA/8;53/g" \
		-e "s/MHz/;108.000;862.000/" \
		-e "s/MHz/;5.000;65.000/" \
	| tr -d " MHzdBmV" \
	| sed -e "s/;$//g"`
DATE=`date +%Y-%m-%d\ %H:%M:%S`

if [ -z ${STATS} ]; then
	# unable to get data from modem, add zeroes to log
	STATS="0.000;0;0;0.000;0"
fi
echo "${DATE};${STATS}" >> ${CSVFILE}

function plot {
	
	# create temporary file
	TMPFILE=`mktemp`
	
	# generic commands
	echo "set terminal png size 400,300" >> ${TMPFILE}
	echo "set nokey" >> ${TMPFILE}
	echo "set datafile separator \";\"" >> ${TMPFILE}
	echo "set timefmt \"%Y-%m-%d %H:%M:%S\"" >> ${TMPFILE}
	echo "set xdata time" >> ${TMPFILE}
	case ${1} in
        	"24h" )
			echo "set format x \"%H\"" >> ${TMPFILE}
			echo "set xlabel \"Hour\"" >> ${TMPFILE}
			DS=`date +%Y-%m-%d\ %H:%M:%S -d "1 day ago"`
			;;
        	"week" )
			echo "set format x \"%a\"" >> ${TMPFILE}
			echo "set xlabel \"Day\"" >> ${TMPFILE}
			DS=`date +%Y-%m-%d\ %H:%M:%S -d "1 ${1} ago"`
			;;
        	"month" )
			echo "set format x \"%d-%m\"" >> ${TMPFILE}
			echo "set xlabel \"Date\"" >> ${TMPFILE}
			DS=`date +%Y-%m-%d\ %H:%M:%S -d "1 ${1} ago"`
			;;
        	"year" )
			echo "set format x \"%b\"" >> ${TMPFILE}
			echo "set xlabel \"Month\"" >> ${TMPFILE}
			DS=`date +%Y-%m-%d\ %H:%M:%S -d "1 ${1} ago"`
			;;
	esac
	DE=`date +%Y-%m-%d\ %H:%M:%S`
	echo "set xrange [\"${DS}\":\"${DE}\"]" >> ${TMPFILE}
	
	# commands for downstream power plot
	echo "set output \"${BASEDIR}/power_downstream_${1}.png\"" >> ${TMPFILE}
	echo "set title \"Downstream power during last ${1}\"" >> ${TMPFILE}
	echo "set yrange [-20:20]" >> ${TMPFILE}
	echo "set ylabel \"power (dBmV)\"" >> ${TMPFILE}
	echo "plot \"${CSVFILE}\" using 1:5 with steps linetype 2, \\" >> ${TMPFILE}
	echo "     \"${CSVFILE}\" using 1:7 with steps linetype 1, \\" >> ${TMPFILE}
	echo "     \"${CSVFILE}\" using 1:8 with steps linetype 1" >> ${TMPFILE}

	# commands for upstream power plot
	echo "set output \"${BASEDIR}/power_upstream_${1}.png\"" >> ${TMPFILE}
	echo "set title \"Upstream power during last ${1}\"" >> ${TMPFILE}
	echo "set yrange [0:60]" >> ${TMPFILE}
	echo "set ylabel \"power (dBmV)\"" >> ${TMPFILE}
	echo "plot \"${CSVFILE}\" using 1:12 with steps linetype 2, \\" >> ${TMPFILE}
	echo "     \"${CSVFILE}\" using 1:13 with steps linetype 1, \\" >> ${TMPFILE}
	echo "     \"${CSVFILE}\" using 1:14 with steps linetype 1" >> ${TMPFILE}
	     
	# commands for downstream frequency plot
	echo "set output \"${BASEDIR}/frequency_downstream_${1}.png\"" >> ${TMPFILE}
	echo "set title \"Downstream frequency during last ${1}\"" >> ${TMPFILE}
	echo "set yrange [0:900]" >> ${TMPFILE}
	echo "set ylabel \"frequency (MHz)\"" >> ${TMPFILE}
	echo "plot \"${CSVFILE}\" using 1:2 with steps linetype 2, \\" >> ${TMPFILE}
	echo "     \"${CSVFILE}\" using 1:3 with steps linetype 1, \\" >> ${TMPFILE}
	echo "     \"${CSVFILE}\" using 1:4 with steps linetype 1" >> ${TMPFILE}

  	# commands for upstream frequency plot
	echo "set output \"${BASEDIR}/frequency_upstream_${1}.png\"" >> ${TMPFILE}
	echo "set title \"Upstream frequency during last ${1}\"" >> ${TMPFILE}
	echo "set yrange [0:70]" >> ${TMPFILE}
	echo "set ylabel \"frequency (MHz)\"" >> ${TMPFILE}
	echo "plot \"${CSVFILE}\" using 1:9 with steps linetype 2, \\" >> ${TMPFILE}
	echo "     \"${CSVFILE}\" using 1:10 with steps linetype 1, \\" >> ${TMPFILE}
	echo "     \"${CSVFILE}\" using 1:11 with steps linetype 1" >> ${TMPFILE}
	     
	# commands for SNR plot
	echo "set output \"${BASEDIR}/snr_downstream_${1}.png\"" >> ${TMPFILE}
	echo "set title \"Downstream SNR during last ${1}\"" >> ${TMPFILE}
	echo "set yrange [30:40]" >> ${TMPFILE}
	echo "set ylabel \"signal-to-noise ratio (dB)\"" >> ${TMPFILE}
	echo "plot \"${CSVFILE}\" using 1:6 with steps linetype 2" >> ${TMPFILE}
	
	# run gnuplot to create the plots
	gnuplot ${TMPFILE} 2> /dev/null
	
	# delete the temporary file
	rm ${TMPFILE}

}

plot "24h"
plot "week"
plot "month"

Het script leest dus de waardes uit het modem via de web interface, waarna ze aan een CSV file worden toegevoegd. Vervolgens wordt gnuplot gebruikt om de plots te maken (als .png images). Al extraatje (t.o.v. Docsis Power Tool) worden ook de min/max frequenties en de min/max power-waardes geplot, afhankelijk van de gebruikte modulatie.
 
Nightshadow zei:
Doet niks bij mij... Staat al minstens twee uur aan, geen data gevonden.. Heb gewoon een Arris TM502B.

Ik heb hetzelfde. Geïnstalleerd, reboot pc gedaan en de hele nacht laten draaien. Hij zegt dat er geen data is gevonden. Arris TM502B-modem is bereikbaar onder 192.168.100.1 en goed ingesteld in DPT.

Hoe heet de service die op de achtergrond moet draaien? Ik zie niets wat er op lijkt tussen de services.

[edit]
Volgens het vbs installatiescriptje in C:\Program Files\Docsis Power Tool is het "dpt-service" maar die zie ik niet terug in de services. Het vbs script even uitgevoerd en nu staat het er wel tussen (gestart). Dus over een uurtje nog maar eens kijken :)
 
Terug
Bovenaan