Page 1 sur 2

DS2401

Publié : 17 déc. 2014, 16:13
par steph54
Je voudrais mettre des DS2401 pour vérifier l'état de contacteur filaire sur mon bus 1-wire. Je ne trouve pas d'infos sur ce composant ! Comment savoir si il est supporté par Domoticz ?

Re: DS2401

Publié : 17 déc. 2014, 17:53
par patrice
les ds2401 ne sont pas supportés nativement par Domoticz, toutefois cela ne represente pas un problème car les 2401 ecrivent leur numero de serie dans un dossier quand ils sont ON et rien quand il sont OFF

il "suffira" de faire un script shell, lua, php qui teste la présence de ce dossier et en fonction declenchera des actions dans Domoticz: basculer un interupteur virtuel qui declenchera des notifications sur un smartphone par exemple

Rien d'impossible donc

Re: DS2401

Publié : 17 déc. 2014, 22:58
par steph54
Merci pour l'idée de vérifier ce dossier !
Je ne suis pas très fort en script, mais je vais essayer..

Re: DS2401

Publié : 19 janv. 2015, 21:34
par Laurent
Bonjour,

Es qu'une personne a déjà réussi à faire un script qui fonctionne pour les DS2401.
J'ai travaillé dessus, mais mon installation de domoticz était récente (moins d'un mois) et découvrant la programmation lua.
Je rame.

Re: DS2401

Publié : 19 janv. 2015, 23:04
par patrice
Bonsoir
Pas d'experience de cela mais déja
que donne un

Code : Tout sélectionner

cd /sys/bus/w1/devices/
ls
si rien du tout fais ça

Code : Tout sélectionner

sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices/
ls
et dis nous ce que tu obtient quand ton ds2401 est On et quand il est Off

Re: DS2401

Publié : 20 janv. 2015, 08:28
par jc61
Bonjour,

Sur mon install domoticz les DS18B20 sont bien supportés.
J'ai testé un DS2401 mais je ne le vois pas et j'ai un message dans les logs qui me dit "1-wire : Device family (01) not actually supported"

que faire?

Re: DS2401

Publié : 20 janv. 2015, 08:33
par patrice
Oui d'accord.
Qu'en est t'il de la réponse à mes questions au dessus ?

Re: DS2401

Publié : 20 janv. 2015, 21:38
par Laurent
Bonjour,

Personnellement, je suis comme JC61. Je vois le DS2401 avec owfs dans "/mnt/1wire" et avec owhttpd.
Si je fais "owread 01.80D32D170000/id" en retour j'ai "80D32D170000". Et domoticz ne dit :"1-wire : Device family (01) not actually supported"

J'ai trouvé un script sur internet et je l'ai modifié.
"test" est le nom du dispositif que je veux faire basculer de on à off ou de off à on en fonction du DS2401.
"test" est créé sur un matériel "dummy"

Code : Tout sélectionner

commandArray = {}
 debug=true
id = "01.80D32D170000"
nom = "test"
function read1wire(id, nom)
out = io.popen("/usr/bin/owread "..id.."/id");
value = out:read("*a"); 
out:close();
if (value == nil) then
        print (value.." -----ON")
        commandArray['nom']='On'
else
        commandArray['nom']='Off'
        print (value.." -----OFF")
end
end
read1wire(id, nom)
return commandArray
Que le DS2401 soit présent ou pas, dans "/opt/domoticz-code/scripts/lua", je lance "lua ds2401.lua".
Il n'y a aucun changment de "test"

Si quelqu'un peu m'aiguiller.

Merci

Re: DS2401

Publié : 21 janv. 2015, 08:50
par patrice
Bonjour
En effet l'idée pour ces capteurs est de tester la présence d'un répertoire précis dans "/mnt/1wire" et si ce répertoire existe on bascule à On un switch virtuel Domoticz et à Off dans le cas contraire.


Peu pratiquant du Lua, je vois que c'est l'idée du script que tu donne en exemple , mais je ne suis pas capable de te dire si il est fonctionnel.

Toutefois , si tu désire lancer ce script shell depuis un terminal ou la crontab, ton script DOIT comprendre en première ligne le shebang du chemin vers Lua et donc installer Lua indépendamment de Domoticz. car Domoticz inclus un Lua mais pour son usage propre (pas accessible depuis un shell)

Il y a un groupe d’aficionados Lua assurée par plusieurs lecteurs du forum, une bonne volonté te viendra sans doute en aide.

Sinon un bon script bash ou python doit faire le job

Re: DS2401

Publié : 21 janv. 2015, 19:53
par Jihem
Laurent a écrit : Que le DS2401 soit présent ou pas, dans "/opt/domoticz-code/scripts/lua", je lance "lua ds2401.lua".
I
Juste en passant, comment as-tu appelé ton script?
Tous les scripts Lua doivent commencer par script_device ou script_time ou script_value.
S'il ne commence pas par if devicechanged il faut l'appeler script_time_luads2401. Lua
Par ailleurs je ne sait pas quelle distribution tu as mais chez moi les scripts sont dans ~/domoticz /scripts/ lua.