• Faire le café avec Asterisk (Domotique)



      Alors, une affirmation, qui revient souvent quand on présente asterisk : Oui, asterisk c'est bien, mais il fais pas le café ...

      Et la seule chose que l'on pouvait répondre était : Oui effectivement, mais il fais déjà plein d'autres choses....

      Et bien cette ère est révolue...... vous pouvez maintenant répondre : Et si, Asterisk, vous fais le café....



      Bon, pour ce tuto, il vous faudra :

      • Un Asterisk fonctionnel (Ou Xivo, Ou autre)
      • Un module prise marmitek X10 (LM12 par exemple)
      • Un module de communication Marmitek X10(CM11 USB ou COM)
      • Un téléphone / Softphone relié à l'Asterisk
      • Une machine à café (Une lampe ira très bien aussi)


      Pour commencer, on connecte le CM11, sur le serveur, avec la commande dmesg, on contrôle, si il est reconnu et sur quel tty il est redirigé :

      Code:
      debarm:/#dmesg
      vous aurez un retour dans la console de ce style (En rouge ce qu'y nous intéresse)

      Code:
      hub.c: new USB device 00:02.0-2, assigned address 2
      usb.c: USB device 2 (vend/prod 0x67b/0x2303) is not claimed by any active driver.
      usb.c: registered new driver serial
      usbserial.c: USB Serial Driver core v1.4
      usbserial.c: USB Serial support registered for PL-2303
      usbserial.c: PL-2303 converter detected
      usbserial.c: PL-2303 converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
      pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.9
      Ensuite taper les lignes suivantes :

      Code:
      cd /usr/src/
      Code:
      mkdir domotique
      Code:
      cd domotique
      Code:
      wget http://heyu.tanj.com/download/heyu-2.2.2.tgz
      Code:
      tar xvzf heyu-2.2.2.tgz
      Code:
      cd heyu-2.2.2
      Code:
      ./Configure
      Code:
      make
      Code:
      make install
      à la question suivante :

      Code:
      Where would you like the sample Heyu configuration file installed?
        1. In directory /home/manu/.heyu/
        2. In subdirectory .heyu/ under a different user home directory
        3. In directory /etc/heyu  (for system-wide access)
        4. No thanks, I'll take care of it myself
      Choice [1, 2, 3, or 4] ?
      Réponder 3

      Ensuite, à la question suivante :

      Code:
      3
      
      Specify /dev/ttyS0, /dev/ttyS1, etc.\\ 
      To which port is the CM11 attached?\\
      Entrez ce que vous avez lu avec la commande "dmesg" : soit ici pour l'exemple : "/dev/ttyUSB0"

      Et hop, encore une commande dans la console :

      Code:
      /bin/chmod a+rw /dev/ttyUSB0
      taper la commande suivant dans la console :

      Code:
      heyu utility syscheck
      Vous devriez-voir un résultat comme suit :

      Code:
      Date: Mon 01 Nov 2010    yday: 304
      Time: 18:38:51  CET
      Standard Time Zone: 1.00 hours East of Greenwich
      Daylight Time begins  yday: 86   Sun 28 Mar 2010 at 02:00 CET
      Standard Time resumes yday: 303  Sun 31 Oct 2010 at 03:00 CEST
      Daylight Time begins  yday: 450  Sun 27 Mar 2011 at 02:00 CET
      Standard Time resumes yday: 667  Sun 30 Oct 2011 at 03:00 CEST
      Daylight Time begins  yday: 814  Sun 25 Mar 2012 at 02:00 CET
      C'est bon, alors on continue......

      Quelques commandes à entrer :
      Code:
      cd /var/lib/asterisk/agi-bin
      Code:
      touch on.agi
      Code:
      touch off.agi
      On édite le fichier on.agi, et on colle le texte suivant dedans :
      Code:
      #!/bin/bash
      
      
      CODE=$1
      
      
      heyu on $CODE
      
      heyu stop
      
      exit 0
      et dans off.agi

      Code:
      #!/bin/bash
      
      
      CODE=$1
      
      
      heyu off $CODE
      
      heyu stop
      
      exit 0
      ensuite :

      Code:
      chmod u+x on.agi
      Code:
      chmod u+x off.agi
      Hop, pour continuer, on va du coté de la config d'asterisk......

      Code:
      cd /etc/asterisk/
      Code:
      touch domotique.conf
      on édite, et on ajoute le texte suivant :

      Code:
      [domotique]
      
      ;2233 pour : CAFE (2:C 2:A 3:F 3:E)
      
      exten = 2233,1,Answer()
      exten = 2233,n,GotoIf($[${DB(Domotique/Cafe)} = 1]?Actif:PasActif)
      exten = 2233,n(Actif),Playback(Off)
      exten = 2233,n,AGI(off.agi,A1)
      exten = 2233,n,Hangup()
      exten = 2233,n(PasActif),Playback(On)
      exten = 2233,n,AGI(on.agi,A1)
      exten = 2233,n,Hangup()
      On contrôlera juste que les fichier son on et off existe bien sur l'asterisk...... (Ce qui est mon cas )

      Ensuite départ pour le fichier extensions.conf ou on rajoute la ligne suivante au tout début :

      Code:
      #include domotique.conf
      et dans votre contexte interne : (ici pour l'exemple Default)

      Code:
      [Default]
      include = domotique
      Voilà, il ne vous reste plus qu'a brancher votre cafetière sur la prise commandée et de lui mettre l'adresse A1.

      Vous appelez avec téléphone le CAFE (2233), asterisk va vous répondre et dire on, la prise s'allume directement après.....

      et voilà, asterisk sait faire le café.......

      (Pour éteindre la machine recomposer le 2233 et c'est éteinds.....)

      Quel bonheur, d'appeler au bureau pour savoir qu'en arrivant un bon café chaud nous attends

      Et c'est bien entendu, compatible également avec des lumières, et autres chez vous

      A vous de vous amusez
      Commentaires 3 Commentaires
      1. Avatar de cedricscha
        cedricscha -
        On peut bien entendu coupler cette partie, avec ce tuto : Service de reveil avec Asterisk

        Pour vous aider lors de matin difficile

        Remplacer, cette partie :
        Code:
        exten => reveil,1,Answer()
        exten => reveil,n,Wait(1)
        exten => reveil,n,PlayBack(hello-world)
        exten => reveil,n,Wait(1)
        exten => reveil,n,SayUnixTime(,CET,kMbdY)
        exten => reveil,n,Hangup()
        par :

        Code:
        exten => reveil,1,Answer()
        exten => reveil,n,AGI(on.agi,A1) ; Allumer la machine a cafe
        exten => reveil,n,AGI(on.agi,A5); Allumer la lampe parametree en A5 => Chambre
        exten => reveil,n,Wait(1)
        exten => reveil,n,PlayBack(hello-world)
        exten => reveil,n,Wait(1)
        exten => reveil,n,SayUnixTime(,CET,kMbdY)
        exten => reveil,n,Hangup()
        Amusez-vous bien.
      1. Avatar de _AK_
        _AK_ -
        haha, oui, asterisk sait faire plein de chose, les possibilités sont énormes lorsqu'asterisk est couplé avec de la domotique!
      1. Avatar de chamakh
        chamakh -
        Salut cedric !!! Serieu ici moi je ne comprends rien de chez rien a tout stp un bref resume c-a-d a quoi ca sert exactement
    • A propos d'Asterisk

      Asterisk

      Asterisk est un IPBX open source (logiciel libre) pour Linux originellement créé en 1999 par Mark Spencer, fondateur de la société Digium.

      logo asterisk
    • Downloads populaires

    • Articles récents

    • Utilisateurs actuellement connectésUtilisateurs actuellement connectés

      0 membre(s) et 38 invité(s)

      Le record de connectés est de 2 678, 22/07/2022 à 11h34.

    • Ils nous soutiennent

      logo digium
      logo alter-it
      logo avencall
      logo beronet
      logo celya
      logo cnsi
      logo dolmen
      logo easypyro
      logo eyepea
      logo keyyo
      logo opcom
      logo openip
      logo ovh
      logo qualigaz
      qualistream
      logo voip-asterisk
      logo voxity
      logo yealink