Bonjour à tous, bon ca avance tranquillement!
En m'inspirant du script pour faire fonctionner le DHT22 on peut utiliser le DS2438 :
Code : Tout sélectionner
#!/bin/bash
# Domoticz server
SERVER="127.0.0.1:8080"
SERVER1="192.168.70.1:8080"
# DS2438 IDX
# le numéro de l IDX dans la liste des peripheriques
DS2438HUM="3"
DS2438VOLT="5"
#DS2438 SERVER
DS2438IDXSERVEUR="54"
#ID DS2438 sur le bus w1
CAPTEUR1="26-0000017750b5"
TMPFILE="/var/tmp/temper.txt"
#cpt=0
#while [ $cpt -lt 6 ]
#do
VAD=""
VDD=""
sleep 5
sudo cat /sys/bus/w1/devices/$CAPTEUR1/vad > $TMPFILE
#sleep 5
#sudo cat /sys/bus/w1/devices/$CAPTEUR1/vad > $TMPFILE
VAD=$(cat $TMPFILE)
sleep 5
sudo rm $TMPFILE
#sudo cat /sys/bus/w1/devices/$CAPTEUR1/vdd > $TMPFILE
#sleep 5
sudo cat /sys/bus/w1/devices/$CAPTEUR1/vdd > $TMPFILE
VDD=$(cat $TMPFILE)
sudo rm $TMPFILE
echo "VDD:$VDD"
echo "VAD:$VAD"
HUM=$((($VAD-150)*100/($VDD-150)))
#VOLT=`echo "$VDD/100"|bc -l`
#echo $VOLT
#echo "l'hygrométrie est de $HUM%"
# Send data
curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command¶m=udevice&idx=$DS2438HUM&nvalue=$HUM&svalue="
#curl -s -i -H "Accept: application/json" "http://$SERVER/json.htm?type=command¶m=udevice&idx=$DS2438VOLT&nvalue=0&svalue=$VOLT"
exit 0
Ensuite en créant un dummy device comme pour le DHT22 et une nouvelle ligne dans cron l'hygrométrie du sol s'actualise bien en %
Par ailleurs il y a bien un soil moisure dans les dummy devices mais je ne comprend pas a quoi correspond l'unité (cp)
Il y a encore des soucis :
1. l'interrogation du DS2438 donne régulièrement VDD=VDA ou bien l'inverse et cela je ne sais pas pourquoi
Code : Tout sélectionner
pi@Cuisine:~ $ sudo bash domoticz/scripts/DS2438.sh
VDD:243
VAD:243
HTTP/1.1 200 OK
Content-Length: 53
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *
{
"status" : "OK",
"title" : "Update Device"
}
pi@Cuisine:~ $ sudo cat /sys/bus/w1/devices/26-0000017750b5/vad
242
pi@Cuisine:~ $ sudo cat /sys/bus/w1/devices/26-0000017750b5/vdd
329
pi@Cuisine:~ $
La seule facon que j'ai trouvé pour remédier à cela c'est d'interroger plusieurs fois de suite le DS2438 sur les valeurs vad et vdd en insérant un sleep de 2s entre chaque mesure:
Code : Tout sélectionner
pi@Cuisine:~ $ sudo bash domoticz/scripts/DS2438.sh
VAD-1:242
VAD-2:243
VDD-1:242
VDD-2:329
HTTP/1.1 200 OK
Content-Length: 53
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *
{
"status" : "OK",
"title" : "Update Device"
}
pi@Cuisine:~ $ sudo bash domoticz/scripts/DS2438.sh
VAD-1:329
VAD-2:243
VDD-1:329
VDD-2:329
HTTP/1.1 200 OK
Content-Length: 53
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *
{
"status" : "OK",
"title" : "Update Device"
}
Et la on voit bien que les valeurs de VAD ou VDD sont mélangées aléatoirement.. (donc ces valeurs ne sont pas utilisables). Donc il faudrait arriver a avoir des valeurs fiables pour VDD et VAD mais je ne vois pas comment faire les tests..
2. Ensuite j'ai une erreur que je n'arrive pas tout le temps à reproduire ce matin mais qui était redondante hier :
Code : Tout sélectionner
pi@Cuisine:~ $ sudo bash domoticz/scripts/DS2438.sh
cat : /sys/bus/w1/devices/26-0000017750b5/vad : Erreur d'entrée/sortie
VDD=329
VAD=
HTTP/1.1 200 OK
Content-Length: 53
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Allow-Origin: *
{
"status" : "OK",
"title" : "Update Device"
}
Si quelqu'un pouvais m'aider sur ces points... ca serait sympa !