PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LCDProc



nr8
06.08.13, 19:59
Abend.

Ich hoffe ich habe mein Thema im richtigen Forum eröffnet. Falls nicht bitte verschieben.

Ich verwendet derzeit LCDProc auf einem Rechner und wollte fragen ob es hier auch die Möglichkeit gibt sich das LCD so flexible wie unter LCD4Linux einzuteilen.

Ich habe gesehen es gibt fertige "Ansichten" von LCDProc jedoch finde ich diese alle schlecht und würde mir gerne meine eigene zusammen stellen.
Was für Möglichkeiten gibt es hier?

Danke.

nr8
06.08.13, 23:00
Habe schon einen Weg gefunden und mir ein kleines Script gebastelt.
Für alle die es interessiert hier mein Script das mir meine gewünschten Infos von meinem Raspberry auf mein LCD anzeigt.


#!/bin/bash

# get all infos from system
function get_sysinfos() {
get_eth1_bandwidth
get_cpu
get_disk
get_uptime
get_time
get_cpu_temp
get_ipsec
}

# cpu user + sys in %
function get_cpu() {
cpu_usage=`eval $(awk '/^cpu /{print "previdle=" $5 "; prevtotal=" $2+$3+$4+$5 }' /proc/stat); sleep 0.4; eval $(awk '/^cpu /{print "idle=" $5 "; total=" $2+$3+$4+$5 }' /proc/stat); intervaltotal=$((total-${prevtotal:-0})); echo "$((100*( (intervaltotal) - ($idle-${previdle:-0}) ) / (intervaltotal) ))"`
}

# root partion in %
function get_disk() {
# disk_usage=`df -h | grep /dev/root | awk {'print $4"\ " $5'}`
disk_usage=`df -h | grep /dev/root | awk {'print $5'}`
}

# uptime in days
function get_uptime() {
uptime=$(</proc/uptime)
uptime=${uptime%%.*}
uptime_days=$(( uptime/60/60/24 ))
}

# time in 24h format
function get_time () {
time=`date +%R`
}

# bandwidth from WAN interface in kbyte
function get_eth1_bandwidth() {
eth1_rx_1=$eth1_rx_2
eth1_tx_1=$eth1_tx_2
eth1_rx_2=`cat /sys/class/net/eth1/statistics/rx_bytes`
eth1_tx_2=`cat /sys/class/net/eth1/statistics/tx_bytes`
eth1_rx_byte=`expr $eth1_rx_2 - $eth1_rx_1`
eth1_tx_byte=`expr $eth1_tx_2 - $eth1_tx_1`
eth1_rx_kbyte=`expr $eth1_rx_byte / 1024`
eth1_tx_kbyte=`expr $eth1_tx_byte / 1024`
eth1_flow=`expr $eth1_rx_kbyte + $eth1_tx_kbyte`

}

# cpu temp in C
function get_cpu_temp() {
cpu_temp=`cat /sys/class/thermal/thermal_zone0/temp | cut -c1-2`
}

# how many ipsec tunnels are up
function get_ipsec() {
ipsec_tunnels=`/etc/init.d/ipsec status | tail -1 | awk {'print $1'}`
}

# connect to the display and print infos
function print_sysinfos() {
(
echo -e "hello"
echo -e "client_set name name_pi"
echo -e "screen_add screen_pi"
echo -e "widget_add screen_pi str1 string"
echo -e "widget_add screen_pi str2 string"
echo -e "widget_add screen_pi str3 string"
echo -e "widget_add screen_pi str4 string"
echo -e "widget_add screen_pi str5 string"
echo -e "widget_add screen_pi str6 string"
echo -e "widget_add screen_pi str7 string"
echo -e "widget_add screen_pi str8 string"
while true
do
get_sysinfos
echo -e "widget_set screen_pi str1 1 1 CPU:\ $cpu_usage%"
echo -e "widget_set screen_pi str2 12 1 TEMP:\ $cpu_temp\C"
echo -e "widget_set screen_pi str3 1 2 UP:\ $uptime_days\ Day"
echo -e "widget_set screen_pi str4 12 2 T:\ \ $time"
echo -e "widget_set screen_pi str5 1 3 W-D:\ $eth1_rx_kbyte\K"
echo -e "widget_set screen_pi str6 12 3 HDD:\ \ $disk_usage"
echo -e "widget_set screen_pi str7 1 4 W-U:\ $eth1_tx_kbyte\K"
echo -e "widget_set screen_pi str8 12 4 VPN:\ \ $ipsec_tunnels"
sleep 0.5
done
)| nc localhost 13666 > /dev/null

}

# run the printing function
print_sysinfos