Ich würde gerne meine 1Wire Daten Minutengenau mittels eibd versenden um die Werte über Linknx Visu darzustellen. Nach langem suchen im Netz bin ich auf folgenden Code gestoßen! Soweit geht das prima aber leider nur Temperaturwerte von -40 bis +40. Leider reichen mir die +40 nicht da ich auch die Heizung mit darstellen möchte.
Kennt sich jemand mit der bash Programierung aus um mir unter die Arme zu greifen?
Ich steige da leider nicht durch
Gibt es einen besseren weg? Ist es möglich mit Linknx direkt die 1wire Daten abzurufen ?
Gruß Maik
Kennt sich jemand mit der bash Programierung aus um mir unter die Arme zu greifen?
Code:
#!/bin/sh
var=`exec /opt/owfs/bin/owdir -s 4304 /28.6C858B020000/temperature | tr -d " "`
#var=-41.00
nb=0
var=$(echo "$var*100/1" |bc) #/1 pour suppression de la virgule
if [ $var -gt 0 ]
then
while [ $var -gt 2047 ]
do
nb=$nb+1
var=$(echo "$var/2" |bc)
done
nb=$(echo "$nb*2048" |bc)
var=$(echo "ibase=10;obase=16;$var+$nb"|bc)
elif [ $var -lt 0 ]
then
var=$(echo "$var*-1" |bc) #*1 pour revenir en positif
while [ $var -gt 2047 ]
do
nb=$nb+1
var=$(echo "$var/2" |bc)
done
nb=$(echo "$nb*2048" |bc)
echo $var
var=$(echo "ibase=10;obase=16;4096-$var+$nb+32768-2048"|bc)
fi
#verification si 4 caract
if [ ${#var} = 1 ]
then
var="00 0${var}"
elif [ ${#var} = 2 ]
then
var="00 ${var}"
elif [ ${#var} = 3 ]
then
var="0${var}"
var1=`expr substr $var 1 2`
var2=`expr substr $var 3 2`
var="${var1} ${var2}"
elif [ ${#var} = 4 ]
then
var1=`expr substr $var 1 2`
var2=`expr substr $var 3 2`
var="${var1} ${var2}"
fi
exec /usr/bin/groupwrite ip:192.168.2.41 10/0/3 $var
Gibt es einen besseren weg? Ist es möglich mit Linknx direkt die 1wire Daten abzurufen ?
Gruß Maik




Kommentar