Hallo,
ich gebe zu, ich kupfere ab, ohne ohne so recht zu wissen, was ich mache. Darum weiß ich auch nicht so recht, wo was falsch läuft und bitte um eure Hilfe.
Also ich möchte Temperaturen auslesen und in eine Datenbank bringen. Das funktioniert auch wunderbar, allerdings nur bei Temperaturen ab +1Grad.
Im Temperaturbereich größer -1 und kleiner +1 werden wirre Temperaturen angezeigt, also genau dann, wenn in w1_slave weniger als 4 Stellen ausgewiesen werden.
Und bei Temperaturen unter -0,999 steigt die angezeigte Temperatur wieder, das Minus wird also ignoriert.
Das Ausleseskript sieht so aus:
#!/bin/bash
# Read temperature from sensor
tempread=`cat /sys/bus/w1/devices/28-00000561484d/w1_slave`
#
temp=`echo $tempread | egrep -o '[0-9]+$'`
#
temp2=`echo "scale=2; $temp / 1000" | bc`
# Update database
echo $temp2
echo 0
echo 0
echo temperature
Alles anzeigen
Der Fehler liegt vermutlich in Zeile 5, aber wie müsste die aussehen, dass negative Werte negativ bleiben und auch Werte korrekt übernommen werden, die in w1_slave kleiner 1000 sind?