User Tools

Site Tools


projects:neopixel-bandwidth-room-light

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
projects:neopixel-bandwidth-room-light [2017-10-15 08:25]
trinitor [Programm]
projects:neopixel-bandwidth-room-light [2017-10-15 08:44]
trinitor [SNMP Example]
Line 221: Line 221:
 http://esp8266.github.io/Arduino/versions/2.0.0/doc/ota_updates/ota_updates.html http://esp8266.github.io/Arduino/versions/2.0.0/doc/ota_updates/ota_updates.html
  
-===== Test =====+===== LED Test =====
 <code> <code>
 #!/bin/bash #!/bin/bash
 IP=192.168.x.x IP=192.168.x.x
 PORT=2342 PORT=2342
-for i in 16 48 96 256 128 64 32 16 1 +SLEEP=0.1 
-do + 
-   echo led intensity: $i +while : ; do 
-   echo "{red:$i,green:1,blue:1}"   | nc -w 0 -u $IP $PORT ; sleep 1 +for i in $(seq 32 -4 0); do 
-   echo "{red:1,green:$i,blue:1}"   | nc -w 0 -u $IP $PORT ; sleep 1 +     echo Led intensity: $i 
-   echo "{red:1,green:1,blue:$i}"   | nc --u $IP $PORT sleep 1 +     echo "{red:$i,green:0,blue:0}" | nc -w 0 -u $IP $PORT ; sleep $SLEEP 
-   echo "{red:$i,green:$i,blue:$i}" | nc -w 0 -u $IP $PORT ; sleep 1+  done 
 +  sleep 1 
 +for i in $(seq 32 -4 0); do 
 +     echo Led intensity: $i 
 +     echo "{red:0,green:$i,blue:0}" | nc -w 0 -u $IP $PORT ; sleep $SLEEP 
 +  done 
 +  sleep 1 
 +for i in $(seq 32 -0)do 
 +     echo Led intensity: $i 
 +     echo "{red:0,green:0,blue:$i}" | nc -w 0 -u $IP $PORT ; sleep $SLEEP 
 +  done 
 +  sleep 1
 done done
 </code> </code>
  
-===== SNMP Example ======+===== snmp2neopixel.sh ======
 <code> <code>
-Todo+#!/bin/bash 
 + 
 +GATEWAYIP=192.168.x.1    #Your gateway 
 +SNMPCOMMUNITY=public     #snmp read community string 
 +INTNUMBER=1              #Interface number in SNMP; snmpwalk -v2c -c readcommstring <IP> | grep IF-MIB::ifName 
 +MESASURETIME=1           #Time in seconds between messurment 
 +INBOUNDBANDWIDTH=300000  #Max Interface bandwidth 
 +OUTBOUNDBANDWIDTH=100000 #Max Interface bandwidth 
 +MAXBRIGHTNESS=32         #NeoPixel brightness (max value = 255) 
 +NEOPIXELIP=192.168.x.10  #IP of your ESP8266 
 +NEOPIXELPORT=2342        #UDP port of your ESP8266 
 + 
 +while true; do 
 +  TIME=$(date +%s) 
 +  OUT=$(snmpget -v2c -c $SNMPCOMMUNITY $GATEWAYIP ifOutOctets.$INTNUMBER | awk '{print $4}'
 +  IN=$(snmpget -v2c -c $SNMPCOMMUNITY $GATEWAYIP ifInOctets.$INTNUMBER | awk '{print $4}'
 + 
 +  if [ -z "$OUT" ] || [ -z "$IN" ]; then 
 +     msg="Unable to retrieve SNMP info." 
 +     exit 2 
 +  else 
 +     sleep $MESASURETIME 
 +     TIME2=$(date +%s) 
 +     OUT2=$(snmpget -v2c -c $SNMPCOMMUNITY $GATEWAYIP ifOutOctets.$INTNUMBER | awk '{print $4}'
 +     IN2=$(snmpget -v2c -c $SNMPCOMMUNITY $GATEWAYIP ifInOctets.$INTNUMBER | awk '{print $4}'
 + 
 +     if [ "$OUT2" -gt "$OUT" ] || [ "$IN2" -gt "$IN" ] ; then 
 +       if [ "$TIME2" == "$TIME" ]; then 
 +         TIME=1 
 +       fi 
 +       DELTAOUT=$(echo "$OUT2-$OUT" | bc) 
 +       DELTAIN=$(echo "$IN2-$IN" | bc) 
 +       DELTATIME=$(echo "$TIME2-$TIME" | bc) 
 +       INPUTBW=$(echo "$DELTAIN/$DELTATIME/1024" | bc) 
 +       OUTPUTBW=$(echo "$DELTAOUT/$DELTATIME/1024" | bc) 
 +       echo Inbound: $INPUTBW"KB/s" 
 +       echo Outbound: $OUTPUTBW"KB/s" 
 +       INPUTPERCENT=$(echo "$DELTAIN*8/$DELTATIME/$INBOUNDBANDWIDTH" | bc) 
 +       OUTPUTPERCENT=$(echo "$DELTAOUT*8/$DELTATIME/$OUTBOUNDBANDWIDTH" | bc) 
 +       echo Inbound %: $INPUTPERCENT"%" 
 +       echo Outbound %: $OUTPUTPERCENT"%" 
 +       RED=$(echo "$MAXBRIGHTNESS*$OUTPUTPERCENT/100" | bc) 
 +       GREEN=$(echo "$MAXBRIGHTNESS*$INPUTPERCENT/100" | bc) 
 +       echo "{red:$RED,green:$GREEN}" 
 +       echo "{red:$RED,green:$GREEN}" | nc -w 0 -u $NEOPIXELIP $NEOPIXELPORT 
 +     else 
 +      echo "no change" 
 +    fi 
 +  fi 
 +done 
 </code> </code>
  
projects/neopixel-bandwidth-room-light.txt · Last modified: 2017-12-23 11:49 by trinitor