Temperatur-Überwachung – Shellscripte

Nach langer Zeit komme ich endlich mal wieder dazu mich mit meinen Hardware-Projekten weiter zu befassen. Folgendes Projekt wird weitergeführt
Neues Hardware-Projekt – 1. Temperatur-Überwachung

Nächster Schritt:  Auslesen der Sensoren über die Shell

1. Erstellen einer Sensoren-„Datenbank“ (CSV),
um die Sensoren zuordnen zu können

ID;Name
28-0416362e65ff;Server Abluft Oben
28-0416370dc2ff;Server Abluft NT
28-00043ca062ff;NAS-Fach
28-0115c263bcff;Raumtemperatur1

2. Auslesen eines Sensors
Der Pfad zum Sensor-device wird per Parameter übergeben.

#! /bin/bash
# temp.sh

# Temperatur auslesen
tempfile=`cat $1/w1_slave`

#Formatieren
temperatur=`echo "scale=2; "\`echo ${tempfile##*=}\`" / 1000" | bc`
sensor_id=`echo ${1##*devices/}`
sensor_db_zeile=`cat sensoren.db | grep $sensor_id`
sensor_name=`echo ${sensor_db_zeile##*;}`

#Ausgabe
echo $sensor_name":" $temperatur "°C"

Bisher wird nur die Temperatur ausgegeben.
Das Ganze geht wahrscheinlich auch eleganter/kürzer, aber dafür arbeite ich einfach zu wenig mit Shell-Scripten.

./temp.sh /sys/bus/w1/devices/28-0416362e65ff
Server Abluft Oben: 30.43 °C

 

3. Alle Sensoren durchlaufen
kurze Schleife, die alle Geräte im w1-Verzeichnis durchläuft, die mit „28-*“ beginnen.

#! /bin/bash
# alltemp.sh

for f in /sys/bus/w1/devices/28-*
do
 ./temp.sh $f
done
./alltemp.sh
NAS-Fach: 34.50 °C
Raumtemperatur1: 25.93 °C
Server Abluft Oben: 30.56 °C
Server Abluft NT: 29.93 °C

4. Nächster Schritt (coming soon…):
Schreiben der Werte in eine SQL-Datenbank, dafür wahrscheinlich Erstellen eines PHP scriptes, dass „temp.sh“ ersetzt.

Schreibe einen Kommentar