Calaos propose un système de domotique centralise, a base de logiciel libre. Pour décrire rapidement :
⇒ L'automate est donc un système de télé-rupteur super amélioré over-ethernet
En voici donc selon moi une petite liste des avantages et inconvenants :
Et quand bien même, ce dernier points et facilement by-passable en mettant en place des passerelles
Docs superbe, mais il me manquait des paquets tiers pour ma distro...
Le contexte a changé, sans reinstallation, mode… euh… p___c
J'ai donc du rajouter
deb http://packages.enlightenment.org/debian lenny main extras
Puis pour ne plus être embeté, faire un
wget -O- http://packages.enlightenment.org/repo.key | apt-key add -
apt-get install libecore-dev apt-get install liblog4cpp5-dev
Je ne sais plus si c'est vraiment nécessaire mais j'ai du aussi rajouter ca :
-rw-r--r-- 1 root root 18564 Jan 27 08:40 libjansson0_1.2-0ppa2_i386.deb -rw-r--r-- 1 root root 20230 Jan 27 08:40 libjansson0-dev_1.2-0ppa2_i386.debCa se trouve dans les repos ppa d'ubuntu (des repos tierses vachements sympas)
Youpi l'Ubuntu nouvelle est arrivée…
root@hector:/etc# apt-get install subversion build-essential root@hector:/etc# apt-get install libsigc++-2.0-dev root@hector:/etc# apt-get install liblog4cpp5-dev root@hector:/etc# apt-get install libvmime-dev root@hector:/etc# apt-get install liblua5.1-0-dev root@hector:/etc# apt-get install libjansson-dev libcurl4-gnutls-dev
pour la suite c'est plus cool)
Pour le calahos home il nous faudra..
Voici quelques points a voire selon moi :
J'ai commis 2 petits hacks, rien que pour me faciliter la vie
Favicon, ca sert a rien mais c'est joli (en fait c'est plus sympa un bookmark dans mon tel avec l'icon Calaos
Avec mon mobile, je peux configurer par bookmark, un login mot de passe.
Ainsi configuré il est envoyé au site www, et donc ca m'évite de taper des login mot de passe en T9 ce qui n'est pas drole…
Le système Calaos a son authentification qui fonctionne par cookie… Donc ce que je fais c'est
J'ai modifier sur le fichier calaos-svn/calaos_web/mobile/index.php: Rajout a partir de la ligne 20
if(isset($_SERVER['PHP_AUTH_USER'])) { $_SESSION['calaos_user'] = $_SERVER['PHP_AUTH_USER']; $_SESSION['calaos_password'] = $_SERVER['PHP_AUTH_PW']; }
Et donc la nouvelle ligne 25 est passée de ca:
if (isset($_POST['u']) && isset($_POST['p']))
à ca :
elseif (isset($_POST['u']) && isset($_POST['p']))
Ainsi donc dans le fichier J'ai rajouté a partir de la ligne
J'ai besoin de faire réagir mon informatique en fonction de ma domotique, et réciproquement…
J'ai donc commis deux scripts pour cela… Il reste encore a améliorer les scripts
: lecture des login/pass dans un autre fichier
: parle.pl : générer un exit code en fonction du retour de calais, ajouter un mode silent
: ecoute.pl : mettre en place un système de réactions, juste pour l'exemple…
#!/usr/bin/perl -w ####################################################################### # ecoute.pl ####################################################################### use strict; use Net::Telnet (); # pour Flusher le STDOUT violement $| = 1; my $hostname = "localhost"; my $port = 4456; my $user = "showroom"; my $pass = "pass"; ### Uniquement pour faire un fallback vide sub armure { } my $listen = new Net::Telnet ( Telnetmode => 0, Errmode => \&armure ); $listen->open(Host => $hostname,Port => $port); my $line=""; ## Connexion.... $listen->print("login $user $pass"); $line=$listen->getline; die $line unless $line =~ /ok/; print "Procedure de login ok\n"; ## Listen $listen->print("listen"); while(1) { $line=$listen->getline; if($line) { chomp($line); print "Evenement recu :$line\n"; } } $listen->close; exit;
#!/usr/bin/perl -w ####################################################################### # parle.pl ####################################################################### use strict; use Net::Telnet (); # pour Flusher le STDOUT violement $| = 1; my $hostname = "localhost"; my $port = 4456; my $user = "showroom"; my $pass = "pass"; my $line = ""; ### Uniquement pour faire un fallback vide sub armure { } my $listen = new Net::Telnet ( Telnetmode => 0, Errmode => \&armure ); $listen->open(Host => $hostname,Port => $port); ## Connexion.... $listen->print("login $user $pass"); $line=$listen->getline; die $line unless $line =~ /ok/; print "Procedure de login ok\n"; $listen->print(join(" ",@ARGV)); $line=$listen->getline; print "Retour $line"; $listen->close; exit;
adlp@hector:~$ ./parle.pl input input_19 set true Procedure de login ok On envoie input input_19 set trueRetour input input_19 set ok adlp@hector:~$ ./parle.pl output output_2 set false Procedure de login ok On envoie output output_2 set falseRetour output output_2 set ok
Pour plus d'info, il faut ensuite aller voire par la : Protocol Calaos
Pour l'instinct, l'instinct crépusculaire
#!/usr/bin/perl -w use strictuse DateTime use DateTime::Event::Sunrise my $parle="/home/adlp/Calaos-proto/parle.pl" my $offset='Europe/Paris' my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time) $year+=1900 my $dt = DateTime->new( year => $year, month => $mon, day => $mday, time_zone => $offset ,) my $sunrise = DateTime::Event::Sunrise ->new( longitude =>'7.599167' , latitude => '48.758057', altitude => '-18', iteration => '4') my $dt2 = $sunrise->sunset_datetime( $dt ) print "Couche prevue a ".$dt2->hour.":".$dt2->min.":".$dt2->sec."\n" open FD,$parle." input crepuscule set_param hour ".$dt2->hour." " while(<FD>) {} close(FD) open FD,$parle." input crepuscule set_param min ".$dt2->min." " while(<FD>) {} close(FD) open FD,$parle." input crepuscule set_param sec ".$dt2->sec." " while(<FD>) {} close(FD)
Librairies necessaires pour le crepuscule
57 apt-get install libappconfig-perl 58 su - compaq 59 apt-get install libnet-telnet-perl 60 su - compaq 61 apt-get install libdatetime-perl 62 su - compaq 63 apt-get install libdatetime-event-sunrise-perl