В общем получилось реализовать отправку команд и чтение показания датчиков одновременно через файл
В баше идет постоянное чтение датчиков и отправка команд в ардуино если файлик не пустой :
#!/bin/sh
ARDUINO_PORT=/dev/ttyACM0
stty -F $ARDUINO_PORT raw speed 9600
while read LINE; do
date
echo "$LINE"
stR=$LINE
len=`expr length $stR` # длинна строки
pos=`expr index $stR :` # координата первого двоеточия
pos=`expr $pos + 1` # увеличить на единицу
st2=`expr substr $stR $pos $len` # изъятие строки после двоеточия
len=`expr length $st2` # длинна изъятой строки
pos=`expr index $st2 :` # координата второго двоеточия
pos=`expr $pos - 1` # для изъятия без : уменьщить на единицу
st3=`expr substr $st2 1 $pos`
#echo название датчика $st3
pos=`expr $pos + 2` # для изъятия без : увеличить на 2
st4=`expr substr $st2 $pos $len`
#echo данные датчика $st4.
URL='
http://localhost/objects/?object='$st3' ... temp='$st4
wget -q -T 5 -O - $URL
as=`wc -l /home/as/A | grep -o '[0-9]*'`
if [ "$as" != 0 ]; then #проверка наличие строк в файле
while read LINE; do
echo "$LINE"
as=$LINE
echo $as > $ARDUINO_PORT
done </home/as/A
cp /dev/null /home/as/A # очистка файла
# echo 'очищен '
fi
#echo A>$ARDUINO_PORT.
done < $ARDUINO_PORT
вот Код кнопки :
if ($params['VALUE']) {
$fp =fopen("/home/as/A", "a");
$si="A\n";
fwrite($fp, $si);
fclose($fp);
say("Светодиод включен",5);
} else {
$fp =fopen("/home/as/A", "a");
$si="B\n";
fwrite($fp, $si);
fclose($fp);
say("Светодиод выключен",5);
}