Bonsoir
Je pense qu'il y a mauvaise compréhension
Les scripts Lua dont il est question sont ils gérés dans Domoticz ou en ligne de commande par l'interpréteur Lua ?
DS2401
Re: DS2401
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Objectif : WAF > 1
Re: DS2401
bonjour,
Moi je suis sous Windows et je ne vois pas où je peux trouver le "dossier" du ds2401 lorsque celui ci est présent ??????
Moi je suis sous Windows et je ne vois pas où je peux trouver le "dossier" du ds2401 lorsque celui ci est présent ??????
Re: DS2401
Aahhh Windows
Moi non plus alors
Moi non plus alors
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Objectif : WAF > 1
Re: DS2401
Bonjour,
Merci de votre aide ça fonctionne.
Voici le code :
Ce code doit être dans un fichier au nom du type "script_device_????.lua dans le dossier "domoticz/scripts/lua"
Pour répondre à Jihem, je suis sur une debian et mon dossier d'installation est "/opt/domoticz-code/", merci pour l'info du nom de fichier. Je n'avais pas bien lu le fichier modèle qu'il y adans le dossier "domoticz/scripts/lua".
Pour répondre à Patrice, je n'ai pas mis le shebang parce que dans le fichier modèle, il n'y est pas. Et il n'y a pas besoin d'utiliser cron, domoticz lance le script en permanence. Ce qui fait que la remontée du changement d'état est rapide.
Encore merci et à la prochaine
Merci de votre aide ça fonctionne.
Voici le code :
Code : Tout sélectionner
-- Script pour utiliser les DS2401
--
--IL faut:
--Créer un matériel "DUMMY"
--Créer un "CAPTEUR VIRTEL" d type "INTERRUPTEUR"
--Copier ce fichier sous un nom du type "script_device_{le nom que vous voulez}.lua dans "domoticz/scripts/lua"
--Renseigner la variable ID correspond au numéro id complet du DS2401
--Renseigner la variable DEV correspond au nom que vous avez donné à votre dispositif
--Testez
--
--Pour inverser le sens du on/off il suffit de remplacer [if (value == nil) then] par [if (value ~= nil) then] en ligne 30
--
commandArray = {}
debug=true
id = "01.80D32D170000"
dev = "test"
function read1wire(id)
out = io.popen("/usr/bin/owread "..id.."/id");
value = out:read("*a");
out:close();
return value
end
value=read1wire(id)
if (value == nil) then
print (value.." -----ON")
commandArray[dev]='On'
else
commandArray[dev]='Off'
print (value.." -----OFF")
end
return commandArray
Pour répondre à Jihem, je suis sur une debian et mon dossier d'installation est "/opt/domoticz-code/", merci pour l'info du nom de fichier. Je n'avais pas bien lu le fichier modèle qu'il y adans le dossier "domoticz/scripts/lua".
Pour répondre à Patrice, je n'ai pas mis le shebang parce que dans le fichier modèle, il n'y est pas. Et il n'y a pas besoin d'utiliser cron, domoticz lance le script en permanence. Ce qui fait que la remontée du changement d'état est rapide.
Encore merci et à la prochaine
Olinuxino-A20 sous Debian, 1wire, Rfxcom, OWL CM160, WES2.0
Re: DS2401
Bonsoir,
voici une version moins propre que j'avais écrite il y a un an pour faire de même avec des DS2401.
c'est un script bash qui va scruter le dossier 1wire à la recherche des sondes DS2401 pour mettre à jour domoticz en conséquence vers des périphériques virtuels ou fictifs. on peut évidement adapter pour tout autre chose qui serait mise à jour sur le file system du Raspberry.
mettre le script dans rc.local ou équivalent pour qu'il démarre à chaque reboot du PI.
voici une version moins propre que j'avais écrite il y a un an pour faire de même avec des DS2401.
c'est un script bash qui va scruter le dossier 1wire à la recherche des sondes DS2401 pour mettre à jour domoticz en conséquence vers des périphériques virtuels ou fictifs. on peut évidement adapter pour tout autre chose qui serait mise à jour sur le file system du Raspberry.
Code : Tout sélectionner
#!/bin/bash
function jsonval {
temp=`echo $json | sed 's/\\\\\//\//g' | sed 's/[{}]//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | sed 's/\"\:\"/\|/g' | sed $
echo ${temp##*|}
}
FOUND=
while true
do
FOUND=""
for DIR in /mnt/1wire/81.*
do
if [ -d "$DIR" ]
then
FOUND="$DIR"
echo $DIR
break
fi
done
if [ -d "$FOUND" ]
then
strCurl=
if [[ $FOUND == */mnt/1wire/81.F79D30000000* ]]
then
json=`curl -s -X GET "http://192.168.X.X:8081/json.htm?type=devices&rid=35"`
prop='Status'
StatusIdx=`jsonval`
if [[ $StatusIdx == "Status : Closed" ]]
then
echo "Execute curl command to post json request=On"
strCurl=`/usr/bin/curl -i -H "Accept: application/json" "http://192.168.X.X:8081/json.htm?type=command¶m=switchlight&idx=35&switchcm$
echo "$strCurl"
FOUND=""
fi
fi
else
json=`curl -s -X GET "http://192.168.X.X:8081/json.htm?type=devices&rid=35"`
prop='Status'
StatusIdx=`jsonval`
if [[ $StatusIdx == "Status : Open" ]]
then
strCurl=`/usr/bin/curl -i -H "Accept: application/json" "http://192.168.X.X:8081/json.htm?type=command¶m=switchlight&idx=35&switchcmd$
echo "$strCurl"
fi
fi
sleep 2
done
exit 0
1 Raspberry PI + RFXtrx433 USB + CM15Pro + DS9490R sous Domoticz
1 Raspberry PI + Razberry + LinkUSB sous Z-way
1 IPX800 V3 (pilote CES, Alarme (Détecteur filaire PIR, sirène et clavier RFID), Arrosage, Poele à granulets, Alim Volet Roulant)
1 Raspberry PI + Razberry + LinkUSB sous Z-way
1 IPX800 V3 (pilote CES, Alarme (Détecteur filaire PIR, sirène et clavier RFID), Arrosage, Poele à granulets, Alim Volet Roulant)
-
christopheb
- Messages : 13
- Inscription : 20 oct. 2015, 14:05
Re: DS2401
Bonsoir,
Je voudrais installer des ds2401 sur mon installation sauf que j'y connait rien en lua et autres script (mon basic d'il y a 25 ans ne m'aide pas). En plus mon anglais est inexistant (pourquoi j'ai pas écouté en cours
).
J'ai 10 ds18b20 branchés sur un contrôleur usb 1-wire ds9490r. Quand j'y connecte un ds2401 je voit bien apparaître un dossier "81.AB1995A5C000" dans mnt/1wire.
J'ai essayé de modifier le script de Laurent en conséquence mais sans succès. Si quelqu'un a une idée.
Merci d'avance.
Je voudrais installer des ds2401 sur mon installation sauf que j'y connait rien en lua et autres script (mon basic d'il y a 25 ans ne m'aide pas). En plus mon anglais est inexistant (pourquoi j'ai pas écouté en cours
J'ai 10 ds18b20 branchés sur un contrôleur usb 1-wire ds9490r. Quand j'y connecte un ds2401 je voit bien apparaître un dossier "81.AB1995A5C000" dans mnt/1wire.
J'ai essayé de modifier le script de Laurent en conséquence mais sans succès. Si quelqu'un a une idée.
Merci d'avance.