Premiers pas avec le 1-wire et owserver sous Debian Wheezy

Le 1-wire semble la meilleure solution pour répondre à ma volonté de surveiller les températures des pièces, l’hygrométrie, ouverture/fermeture des fenêtres.
Pour commencer, en lisant « one wire » je m’attendais à une techno qui tenats sur un seul et seul brin, que nenni, c’est un brin DATA et un brin GROUND minimum, donc du … 1-pair.

Je ne vais pas re-inventer l’eau chaude, les infos sur le fonctionnement du 1-wire sont existantes et très bien faites.

le DS9490R 1-wire USB

le DS9490R 1-wire USB

Après étude de la technologie, j’ai hésité entre  un adaptateur RS232/1-wire home made et un adaptateur USB/1-wire : DS9490R ; la différence se faisant dans les performances. J’ai choisi de commencer avec le RS9490R, il est toujours possible d’évoluer si je suis bloqué par les limites de celui-ci. D’autant plus que je suis tombé sur une enchère d’eBay que j’ai remporté étant le seul enchèreur, 20 € contre 29 € ailleurs ! Na !

Pour l’instant mon installation domotique se limite à… une VirtualBox… Donc j’y attache mon adaptateur USB.

Configuration de l'host usb sous virtualbox

Configuration de l'host usb sous virtualbox

De plus, à ce jour, Wheezy est à l’état de « testing », à quelques mois de son passage en « stable » on peut se permettre de proder en testing.
A ce sujet, un article intéressant : 5 raisons pour lesquelles Debian unstable ne mérite pas son nom.
Toute mon installation serveur est réalisée sous Debian Wheezy appelée en local domy.

# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 002 Device 003: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter

Auparavant j’avais effectué une installation d’owserver, owfs, owread et ses potes sur Debian Squeeze, mais quelle bonne surprise d’y voir que les projets owserver & co sont maintenant intégrés à Wheezy !

# apt-get install owserver ow-shell owhttpd owfs-fuse

Je modifie le fichier /etc/owfs.conf, commente la ligne 16, décommente la 19 :

# This part must be changed on real installation
#server: FAKE = DS18S20,DS2405
#
# USB device: DS9490
server: usb = all

Restart pour la prise en compte

# /etc/init.d/owserver restart

Un petit tour sur http://domy:2121 pour constaté que mon DS9490R  soit bien reconnu.
Voila … Ça c’est fait.

Résultat d'owhttp avec le DS9490R

Résultat d'owhttp avec le DS9490R

Il est possible d’utiliser owfs, plus sympa à bidouiller.
owfs c’est quoi ? C’est l’exploitation owserver sous forme de système de fichiers.

On a owserver qui s’occupe de communication avec le DS9490R, il tourne en tant que serveur à l’écoute sur le port 4304 (cf conf /etc/owfs.conf).
C’est ensuite owhttp qui va interroger le serveur pour rendre un résultat sous forme de page web.
owfs, va rendre ces mêmes résultats sous forme de répertoires et de fichiers.
L’intérêt est de rendre le 1-wire plus malléable et de répondre à certains besoins.
Besoins que l’on aura très certainement… oui j’ai des idées en tête…

On crée un point de montage et on monte :

# mkdir /mnt/1wire/
# owfs -s localhost:4304 -m /mnt/1wire/

Résultat :

# ls -lh
total 0
drwxrwxrwx 1 root root 8 mars 11 00:09 81.BD2223000000
drwxr-xr-x 1 root root 8 mars 10 23:56 alarm
drwxr-xr-x 1 root root 8 mars 10 23:56 bus.0
drwxr-xr-x 1 root root 8 mars 10 23:56 bus.1
drwxr-xr-x 1 root root 8 mars 10 23:56 settings
drwxrwxrwx 1 root root 8 mars 11 00:09 simultaneous
drwxr-xr-x 1 root root 8 mars 10 23:56 statistics
drwxr-xr-x 1 root root 32 mars 10 23:56 structure
drwxr-xr-x 1 root root 8 mars 10 23:56 system
drwxr-xr-x 1 root root 8 mars 10 23:56 uncached

Très vite l’ajout d’une sonde de température et les premiers graphs.

Ce billet est posté dans 1-wire, Debian. Mettre en favoris le permalien.

9 réponses à Premiers pas avec le 1-wire et owserver sous Debian Wheezy

  1. BokC says:

    Merci pour ce tuto.

  2. Johan says:

    Bonjour,
    Merci pour ce tuto, effectivement Wheezy permet l’install bcp mais alors plus facilement que sur squeeze.
    je suis comme toi je bosse avec des machines virtuelles, mais par contre ma bdd se trouve sur mon nas. Dans un soucis de fainéantise je n’ai pas envie d’installer la total pour soucis de maintenance dans l’avenir même si avec quelques commandes simples le système peut rester à jour.
    L’idée serait donc depuis le nas d’attaquer en PHP, python OWSERVER.
    Or j’ai essayé mais je n’obtiens aucunes valeur car je pense que je ne peux pas attaquer de cette façon $ow=new OWNet("tcp://192.168......:4304"); depuis une machine distante.
    une idee mise a part /etc/owfs.conf et rtfm ?

    • Lionel says:

      Salut,

      Alors, j’ai essayé, j’ai cloné mon serveur pour que l’un fasse « client » et l’autre « serveur » owfs.

      Sur mon client, j’ai ce code :

      < ?php require "ownet.php"; $ow=new OWNet("tcp://192.168.0.50:4304"); ?>

      Test DS18B20 distant :
      < ?php $temp = $ow->read("/28.2D6077030000/temperature");
      print_r($temp);
      ?>

      Et sur mon serveur owfs, dans le fichier /etc/owfs.conf , j’ai remplacé

      server: port = localhost:4304

      par

      server: port = *:4304

      Et ça fonctionne !

      On peut s’assurerr que owserver est ouvert à tout le monde en faisant un

      netstat -a | grep 4304
      tcp 0 0 *:4304 *:* LISTEN

      En espérant que ça puisse t’aider.

  3. Pingback: Barrière infra-rouge, DS2401 et bus 1-wire | Domolio, la domotique et pas que…

  4. Ed says:

    Bonjour,

    Merci pour ce tutoriel, très clair et qui a failli fonctionner 🙂

    Après 3 semaines, je m’arrache les cheveux : le système a fonctionné (pour les basiques : interface graphique de owhttpd avec lecture des températures sur mon DS9490R et des capteurs) pendant quelques minutes.
    Depuis, owserver ne fonctionne plus :
    server: FAKE = DS18S20,DS2405 -> OK, les fake devices s’affichent
    server: usb = all -> NOK, rien n’est détecté

    J’ai purgé, réinstallé, changé de user, etc, sans succès.
    En particulier, si je tue owserver et que je le relance, il ne démarre pas. Si je le relance en service, [fail]
    Y a-t-il moyen d’activer des messages d’erreur de owserver ? J’ai essayé plusieurs options sans succès.
    Je précise que ne suis assez nouveau sous linux.
    Merci d’avance pour ton aide !
    Edouard

  5. Ed says:

    Bonsoir (re),

    Solution trouvée : mon système linux/owserver est ok, mais la sonde qui me servait de test a un problème : dès qu’elle est branchée sur un dongle, celui-ci ne répond plus !!

    Après changement de sonde, ça marche impeccable !

    Merci encore pour le site, je ne serais jamais arrivé à ce résultat sans cela.
    Crdt, Edouard

  6. Pingback: Compteur consomation d’eau | Domolio, la domotique et pas que…

  7. Bruno says:

    Merci pour ce retour d’expérience, super clair, qui m’a permis de monitorer mon compteur de gaz !

    J’ai eu la chance de pouvoir acheter un DS2423 sur hobby board, avant que le site ne ferme…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *