Bonjour,
juste pour partager ma solution et peut etre que cela aidera certains.
J’utilise en 1Wire des sondes de T° et des relais. Tres pratiques, tres peu couteux, tres fiable, si on alimente bien le bus en 5V et que l’on évite des chaînages complexes.
Sur Jeedom3 j’uilisais un plugin in 1Wire, qui permettait d’utiliser simplement la suite logicielle OWFS (owfs Development Site - Software)
Sur Jeedom4, plus de trace dans le market, j’ai donc cherché un plan B.
La solution que j’ai retenue est d’utiliser l’excellent et simplissime SSH Commander et d’utiliser le module owfs qui permet de voir son bus 1wire comme un systeme de fichiers.
Pour éviter de grandes longueurs de cables, et des passages de cable embetants, et des tranchées, j’utilise plusieurs raspberry3 avec chacun un controlleur USB 1wire et son propre bus.
Sur chaque raspberry, j’utilise owserver, le moteur principal, owhttpd pour installation et debug, et owfs pour la production
Mon script de lancement :
#!/bin/bash
killall owserver
killall owhttpd
killall owfs
/usr/bin/owserver --masterhub=/dev/MasterHub &
sleep 10
#/usr/bin/owhttpd -s 127.0.0.1:4304 -p 2121 &
/usr/bin/owfs -s 127.0.0.1:4304 -m /home/pi/1wire &
et ainsi :
root@RaspberryST:/# ls /home/pi/1wire
05.300332000000 05.E00432000000 28.616411BFC949 statistics
05.300332000000 28.616411BDB57F 28.616411BFC949 structure
05.A10832000000 28.616411BDB57F alarm system
05.A10832000000 28.616411BFC1B2 bus.0 uncached
05.D60932000000 28.616411BFC1B2 bus.1
05.D60932000000 28.616411BFC7F9 settings
05.E00432000000 28.616411BFC7F9 simultaneous
On peut alors simplement lire une température :
root@RaspberryST:/# cat /home/pi/1wire/28.616411BFC1B2/temperature
19
Ou changer l’état d’un relais :
echo 0 > /home/pi/1wire/05.300332000000/PIO
Ou connaitre son etat :
root@RaspberryST:/# cat /home/pi/1wire/uncached/05.300332000000/sensed
1
Pour me simplifier la tache j’ai juste créer un petit script pour les relays.
J’ai fait 2 scripts différents selon mes modeles de chip 1wire, mais on peut facilement adapter à son cas et meme fusionner le code en un seul script…
type 05 : qui changent d’état lorsque que l’on écrit 0 dans PIO
#!/bin/bash
value=$(cat "/home/pi/1wire/uncached/$1/sensed")
#ON
if [ $value -eq 1 ] && [ $2 = "ON" ]
then
echo 0 > /home/pi/1wire/$1/PIO
echo "ON"
fi
#OFF
if [ $value -eq 0 ] && { [ $2 = "OFF" ] || [ $2 = "SWITCH" ] ;}
then
echo 0 > /home/pi/1wire/$1/PIO
echo "OFF"
fi
#Switch
if [ $2 = "SWITCH" ]
then
echo 0 > /home/pi/1wire/$1/PIO
sleep 0.5
echo 0 > /home/pi/1wire/$1/PIO
echo "SWITCH"
fi
Type 29 : 8 relays sur une carte, allumé à 1 , éteint à 0
#!/bin/bash
PIO="PIO"$3
echo $PIO
#ON
if [ $2 = "ON" ]
then
echo 1 > /home/klona/1wire/$1/$PIO
echo "ON"
fi
#OFF
if [ $2 = "OFF" ]
then
echo 0 > /home/klona/1wire/$1/$PIO
echo "OFF"
fi
#Switch
if [ $2 = "SWITCH" ]
then
echo 1 > /home/klona/1wire/$1/PIO
sleep 0.5
echo 0 > /home/klona/1wire/$1/PIO
echo "SWITCH"
fi
Et voila, il n’y a plus qu’à renseigner SSH Commander :
05:
/home/pi/1wire_relays05.sh 05.E00432000000 ON
/home/pi/1wire_relays05.sh 05.E00432000000 OFF
ou
/home/pi/1wire_relays05.sh 05.E00432000000 SWITCH
29:
/home/klona/1wire_relays29.sh 29.1A2208000000 OFF .2
/home/klona/1wire_relays29.sh 29.1A2208000000 ON .2
/home/klona/1wire_relays29.sh 29.1A2208000000 SWITCH .2
Temperatures :
/bin/cat /home/pi/1wire/28.616411BDB57F/temperature
/bin/cat /home/pi/1wire/10.5474DF741641/temperature
Il reste ensuite simplement à créer un petit scénario qui va exécuter toutes les minutes la série de commandes SSH Commander pour les températures.
/Klona
Peut on ajouter un tag 1wire dans le forum ?