16/10/2015, 17:05:31
Salut,
de rien
alors je n'ai pas testé la commande mais elle est en 3 parties :
cat /sys/bus/w1/devices/28-000003039154/w1_slave => lit les données du capteur
grep 't=' => récupère la ligne avec la température
awk -F 't=' '{print $2/1000}' => récupère la "valeur" de la température et divise par 1000
cela doit être possible de faire la dernière partie en lua en effet plutôt que dans la commande
il va falloir convertir la retour en "decimal" avec tonumber(value)
a tester ...
sinon qu'est ce que la commande suivante te donne exactement ?
$ cat /sys/bus/w1/devices/28-000003039154/w1_slave
@+
Anthony.
de rien
alors je n'ai pas testé la commande mais elle est en 3 parties :
cat /sys/bus/w1/devices/28-000003039154/w1_slave => lit les données du capteur
grep 't=' => récupère la ligne avec la température
awk -F 't=' '{print $2/1000}' => récupère la "valeur" de la température et divise par 1000
cela doit être possible de faire la dernière partie en lua en effet plutôt que dans la commande
il va falloir convertir la retour en "decimal" avec tonumber(value)
Code :
<action type="script">
function read1wire(id, objname)
out = io.popen("cat /sys/bus/w1/devices/"..$id.."/w1_slave | grep 't=' ");
value = string.match(out:read("*a"), "[0-9.%-]+");
value = tonumber(value)/1000;
out:close();
if (value ~= nil) then set(objname, value); end;
end;
read1wire("28-000003039154", "temp_buanderie");
</action>
a tester ...
sinon qu'est ce que la commande suivante te donne exactement ?
$ cat /sys/bus/w1/devices/28-000003039154/w1_slave
@+
Anthony.