jeudi 22 novembre 2012

Domotique : Commande groupée

Le site "Toute la Domotique" effectue du 26 novembre au 7 décembre une commande groupée en partenariat avec le site "Planete-domotique.com".

Pour les intéressés, c'est par la.

vendredi 14 septembre 2012

OWFS : Régle de nommage des composants 1-Wire

Le fabricant à créé un système de nommage unique des composants 1-Wire. Cette règle de nommage à été reprise par les développeurs de l' application OWFS.

Chaque répertoire (correspondant au composant connecté) est nommé de la façon suivante :

XX. YYYYYYYYYYYY
  • XX : représente l'ID au format hexadecimal du composant, son numéro de famille. Chaque famille est représenté par un ID différent.
  • YYYYYYYYYYYY : représente le numéro de série du composant. Deux composants ne peuvent pas avoir le même n° de série.

Voila la liste des Id correspondants aux diffèrentes familles de composants :

IDComposantCommentaire
01 DS2401
DS1990A
02 DS1991
DS1425
04 DS1994
DS2404
05 DS2405
06 DS1993
08 DS1992
09 DS1982
DS2502
0A DS1995
0B DS1985
DS2505
0C DS1996
0F DS1986
DS2506
10 DS1920
DS1820
DS18S20
Thermomètre de précision pouvant fonctionner en mode parasite
12 DS2406
DS2407
13 DS1983
DS2503
14 DS1971
18 DS1963S
1A DS1963L
1D DS2423
1F DS2409
20 DS2450
21 DS1921
22 DS1822
23 DS1973
24 DS1904
DS2415
26 DS2438
27 DS2417
28 DS18B20Thermomètre à précision ajustable
2C DS2890
30 DS2760
33 DS1961S
DS2432
39 DS1977
41 DS1922
DS2422
81 DS9490R

dimanche 2 septembre 2012

OWFS : script pour le demarrage

Configuration pour le démarrage automatique de owfs

Créer le fichier /etc/init.d/owfs.sh

#! /bin/sh
### BEGIN INIT INFO
# Provides:          owfs
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 6
# Short-Description:  run owfs
# Description:        run owfs
### END INIT INFO


MOUNTPOINT='/mnt/1Wire'
case "$1" in
  start)
        echo "Starting script owfs with USB support...";
        echo `/usr/bin/owfs -u -s localhost:4304 --allow_other --mountpoint=$MOUNTPOINT`;
        ;;
  stop)
        echo "stopping script owfs by unloading mount-point ..";
        echo `umount $MOUNTPOINT`;
        ;;
  *)
        echo "Usage: $N {start|stop}" >&2
        exit 1
        ;;
esac
exit 0

Puis faire :
#sudo update-rc.d owfs.sh defaults


Source : Sebastien Mei, owfs.org

samedi 1 septembre 2012

OWFS : installation sur une Debian "Wheezy"

Owfs - présentation

C’est l’exploitation d'owserver sous forme de système de fichiers.

Owserver s’occupe des communications avec le DS9490R, il tourne en tant que serveur à l’écoute sur le port 4304 (cf conf /etc/owfs.conf).
Owfs, va interroger le serveur pour rendre un résultat 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.

Verification

Connecter votre contrôleur 1-wire DS9490R sur l'un de vos ports USB. Pour s'assurer qu'il est bien reconnu tappez :
# lsusb

Vous devez voir votre clef apparaite dans la liste:
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 003: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter

Installation

OWFS se trouve dans le repository. Il suffit donc de faire un simple apt-get :
# sudo apt-get install owserver ow-shell owhttpd owfs-fuse

 Configuration

Il faut ensuite modifie le fichier /etc/owfs.conf, commenter la ligne 16, décommenter 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 :
# sudo /etc/init.d/owserver restart

On crée un point de montage et on monte :
# sudo mkdir /mnt/1wire/
# sudo owfs -s localhost:4304 -m /mnt/1wire/ --allow_other

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


Source : Domolio, owfs.org

mercredi 29 août 2012

Design Pattern Composite : exemple Java

Voila un exemple simple en Java pour illustrer le pattern composite.

Diagramme UML


Les sources

La classe Forme
import java.awt.geom.Point2D;

abstract class Forme {

   Point2D position;

   void ajouterForme(Forme forme) throws Exception {
      throw new Exception("Non impémenté");
    }
   void retirerForme(Forme forme) throws Exception {
      throw new Exception("Non impémenté");
   }

   abstract void dessiner();

   abstract float calculerVolume();
}

La classe Carre
import java.awt.geom.Point2D;

class Carre extends Forme {

int hauteur;

   int largeur;

   public Carre(Point2D position, int hauteur, int largeur) {
      this.position = position;
      this.hauteur = hauteur;
      this.largeur = largeur;
   }

   @Override
   public void dessiner() {
      ...
   }

   @Override
   public float calculerVolume() {
      return hauteur * largeur;
   }
}

La classe Cercle
class Cercle extends Forme {

   int rayon;

   public Cercle(int rayon) {
      this.rayon = rayon;
   }

   @Override
   public void dessiner() {
      ...
   }
   @Override
   public float calculerVolume() {
      return (float)Math.PI * rayon * rayon;
   }
}

La classe Groupe
import java.util.HashSet;
import java.util.Set;

class Groupe extends Forme {

   private Set<forme> formes;

   public Groupe() {
      this.formes = new HashSet<forme>();
   }

   @Override
   public void ajouterForme(Forme forme) {
      formes.add(forme);
   }

   @Override
   public void retirerForme(Forme forme) {
      formes.remove(forme);
   }

   @Override
   public void dessiner() {
      for (Forme forme : formes) {
         forme.dessiner();
      }
   }
   @Override
   public float calculerVolume() {
      float volume = 0;
      for (Forme forme : formes) {
         volume += forme.calculerVolume();
      }
      return volume;
   }
}

mardi 28 août 2012

Domotique : commande groupée

Le site "Toute la Domotique" effectue du 27/08/2012 au 16/09/2012 une commande groupée en partenariat avec le site "Domadoo".
Attention : il faut être membre du forum TLD pour pouvoir en profiter.

Pour les intéressé, c'est par la.