Par Benoit,
mercredi, décembre 12 2012.
Domotique
Après avoir pas mal galéré à faire fonctionner tout ça je regroupe ici les informations :
1°) Installation de OWFS pour lire les sondes (sources http://loftawattrelos.free.fr)
Tout d’abord, récupérer la source
wget http://sourceforge.net/projects/owfs/files/owfs/2.8p4/owfs-2.8p4.tar.gz
et ensuite, installer ce dont on a besoin
apt-get install libusb-dev perl-base python-dev php5-dev libfuse-dev swig
tar -xzvfowfs-2.8p4.tar.gz
cd owfs-2.8p4
./configure –enable-debian –prefix=/usr/local
make
make install
Brancher la clef usb
Connecter le composant DS18B20
Pour lancer le server
owserver -u -p 4304
lancer le serveur web
owhttpd -u -s localhost:4304 -p 8081
et se connecter via votre browser favoris. On y trouve quelque chose sous la forme 81.351F2F000000, c’est la clef usb. Les autres, ce sont les capteurs.
ou via http://localhost:8081/
2°) Créer le gad qui vas recevoir la valeur
<object type="9.xxx" id="temp_ext" gad="7/0/1" init="persist" log="true" flags="crtu">Temp Exterieur</object>
3°) Ajouter le script Lua de jeff2000
<rule id="1wire-read">
<condition type="timer" trigger="true">
<every>2m</every>
</condition>
<actionlist>
<action type="script">
function read1wire(id, objname)
out = io.popen("/usr/local/bin/owread -s localhost:4304 "..id);
value = string.match(out:read("*a"), "0-9.%-+");
out:close();
if (value ~= nil) then
set(objname, value);
end
end;
read1wire("28.BB9D4D020000/temperature","Temp_Exterieur");
</action>
</actionlist>
</rule>