Lo standard X10 utilizza la linea elettrica per la trasmissione dei segnali, inoltre l'hardware compatibile con questo protocollo è abbastanza economico, per queste caratteristiche, ma non solo, X10 ormai diffuso e sono disponibili vari software OpenSource per Home Automation (HA) che lo utilizzano.
Tra i principali prodotti:
- X10D: Software scritto da Dad Lanciani, supporta il collegamento con CM11A, LynX10 e altri dispositivi. Correlati a X10D, sono presenti alcuni driver come cm15a, cm15d, cm19a per X10 CM15A e CM19A USB tranceiver;
- LHAP: Interfaccia web scritta in PHP, HTML e JavaScript che permette di gestire comandi x10, visibile da ogni browser che supporta JavaScript, richiede PHP, Apache, MySql, l'interfaccia Cm11A, x10d e HomeDaemon (sw per home automation che supporta il collegamento con cm11, la touchscreen Adicon Leopard, ecc.); - - X10d Watch: Applicativo in perl che lavora in concomitanza con X10d e permette di estenderne alcune funzionalità; - - X10es o X10event scheduler: Programma che facilita la schedulazione di eventi x10 all'interno di una giornata.
- Heyu: Software di automazione domestica per CM11A, command line interfaces, scritto da Dan Suthers;
- Xtend: Demone compatibile con la versione precedente alla 1.28i1 di heyu, che attraverso command line permette di inviare e ricevere segnali x10;
- BlueLava: Interfaccia cgi che supporta vari backend e permette un'interazione via web col sistema di automazione.
- Draconi automation software: Interfaccia web basata su heyu che richiede Php, MySql e Apache;
- MisterHouse: Uno dei software più diffusi per Home Automation, scritto in perl, gestisce la comunicazione con le interfaccie CM11 e CM17.
- X10 Firecracker software: Supporta l'interfaccia firecracker (CM17); correla ti a Firecracker sono disponibili Java Classes for the FireCracker, Control, un front-end tk per Bottle Rocket e Fire Cracker, Flipit, GTKX10, un'interfaccia web per il controllo dei dispositivi x10 con collegamento CM17, CGI-X10 uno script cgi per firecracker, BottleRocket , software command line per la gestione di Firecracker RF X10.
La comunicazione attraverso la linea elettrica basata sul protocollo x10, necessita, di base, di moduli ricevitori/ attuatori e moduli trasmettitori e controller.
I MODULI X10 DISPONIBILI SUL MERCATO
AM12: Modulo di controllo per elettrodomestici
E' un modulo ricevitore che funziona come un interruttore - relè controllato da remoto; supporta un carico massimo di 500W.
E' possibile gestire il carico connesso al modulo anche localmente, per poterlo gestire da remoto è necessario che venga mantenuto l'interruttore locale in posizione ON.
Risponde ai comandi standard x10 "on", "off", "all unit off", inviato da un controller sullo stesso House Code (parte alfabetica dell'indirizzo.)
Non necessita di nessuna installazione, bisogna settare l'indirizzo desiderato attraverso le rotelline sul modulo.
Prezzo approssimativo: Disponibili online da 25 a 44 .
AM12W: Modulo di controllo per elettrodomestici con controllo filare
E' un modulo ricevitore che funziona come un interruttore-relè controllato da remoto.
E' un modulo di dimensioni molto ridotte per la gestione dell'accensione o spegnimento di lampade ed elettrodomestici che può essere inserito in pareti e controsoffitti, così da non interferire nell'estetica della casa.
Con questo modulo si sostituisce la presa di alimentazione del modulo per elettrodomestici "esterno" con fili di alimentazione così da avere un collegamento diretto coi dispositivi.
Per l'installazione è richiesto l'intervento di un esperto.
Prezzo approssimativo: Disponibili online da 33 a 50 .
LM15: Modulo portalampada
E' un modulo di controllo per lampadine ad incandescenza dimensioni molto piccole:45 x 45 x 95 mm.
Viene inserito nell'alloggiamento del portalampada,e dopo aver avvitato la lampadina e premuto l'interruttore di accensione viene inviato il codice di identificazione da un controller x10 entro 30 secondi.
Al terzo invio del codice, la lampadina si accende a dimostrare l'avvenuta memorizzazione del codice.
Il codice viene mantenuto anche in caso di blackout.
Prezzo approssimativo: Disponibili online da 20 a 43 .
LM12: Modulo per lampade
Modulo ricevevitore di controllo per lampade con carico sino a 300W, ha la funzione di variatore di luminosità remoto.
Supporta lampade incandescenti di potenza tra 40W e 300W.
La lampada può essere controllata anche localmente, ma la funzione di dimmerizzazione avviene solo attraverso il controllo remoto. Per controllare la lampada da remoto è necessario lasciare il suo interruttore locale in posizione ON.
Non necessita di installazione particolare; viene assegnato il codice di identificazione utilizzando le rotelline sul modulo.
Risponde ai comandi standard x10 "on", "off", "bright", "dim" e "all light on", "all units off" inviati da un controller x10 con lo stesso house code.
Prezzo approssimativo: Disponibili online da 25 a 44 .
LM12W: Modulo di controllo per lampada con collegamento filare
Modulo ricevente di controllo per lampade con carico sino a 300W, ha la funzione di variatore di luminosità remoto.
Grazie alle sue piccole dimensioni è possibile installarlo ovunque (pareti, controffitti,..), in modo totalmente invisibile.
Con questo modulo si sostituisce la presa di alimentazione del modulo per lampade "esterno" con fili di alimentazione così da avere un collegamento diretto coi dispositivi.
Per l'installazione è richiesto l'intervento di un esperto.
Prezzo approssimativo: Disponibili online da 33 a 42,50 .
TM13: Modulo ricetrasmettitore
E' il modulo ricevitore centrale che viene utilizzato per la comunicazione con telecomandi remoti, interruttori e telecomandi senza fili.
Il ricetrasmettitore converte i segnali RF e li invia alla rete elettrica per controllare i moduli x10.
Per installarlo basta collegarlo alla presa di corrente e impostare l'house code desiderato.
Se viene utilizzata anche un interfaccia universale per pc (CM11), questo modulo ha la funzione di gateway radio frequency, ossia riceve i segnali provenienti da un trasmettitore RF x10 e li trasmette attraverso la rete elettrica così da poter raggiungere l'interfaccia CM11, permettendo di attivare comandi macro attraverso controlli remoti.
Prezzo approssimativo: Disponibile online da 37 a 50 .
UM72O6: Modulo universale
Questo modulo controlla qualsiasi dispositivo x10 come automatismi per tendaggi, apri-porta, apri-finestra, sistemi per irrigazione, apri-chiudi garage, sicurezza e altri dispositivi che operano a bassa tensione.
Prezzo approssimativo: Disponibile online da 50 a 55 .
FM10: Filtro x10
Questo modulo filtra gli elettrodomestici che provocano disturbi sulla rete.
E' necessario quando ci sono degli elettrodomestici (come vecchie stampanti, monitor, tv, ..) che generano disturbi che impediscono il corretto funzionamento dei componenti x10.
Il filtro va inserito tra l'elettrodomestico e la presa di corrente.
Blocca anche i segnali x10, così da isolare un gruppo di apparati, con carico complessivo inferiore a 16A, su una presa multipla.
Prezzo approssimativo: Disponibile online da 50 a 65 .
CONTROLLER X10
Interfaccia CM11
L'interfaccia CM11 è un'interfaccia universale bidirezionale, ossia capace di trasmettere e ricevere segnali x10 sulla linea elettrica; programmabile attraverso pc, viene utilizzata per il controllo degli apparati x10.
Viene inserita tra la presa di corrente e l'alimentazione del pc, si collega la spina di alimentazione del pc alla presa di corrente sull'interfaccia e attraverso un connettore rj11 viene collegata la CM11 alla porta seriale.
E' disponibile anche per la connessione con cavo USB, magari più adatta ai notebook.
Con la CM11 è possibile gestire eventi schedulati, temporizzati secondo range di date particolari o momenti della giornata; ed eventi macro, ossia gruppi di comandi che si attivano con un solo tasto, sarà ad esempio possibile accendere le luci di più stanze contemporaneamente e far in modo magari, che dopo un tot di tempo si spengano alcune luci, o si abbassi la luminosità di altre...tutto con la sola pressione di un tasto.
Quando l'interfaccia è stata programmata secondo le esigenze e dunque non necessita più del collegamento al pc, è possibile alimentare la sua memoria con due mini-stilo; questo permette il corretto svolgimento delle operazioni anche in caso di blackout, visto che gli eventi macro vengono memorizzati in EEPROM.
Per il controllo degli apparati x10 con questa interfaccia è necessario un software di programmazione che gestisca l'impostazione di eventi schedulati e macro, i software compatibili per un sistema Linux sono: Heyu, X10d, ECS, HomeDaemon, x10bot, Xtend.
Prezzo approssimativo: Disponibile online da 85 a 92
Il protocollo x10 utilizza la linea elettrica come mezzo di comunicazione.
Le trasmissioni x10 sono sincronizzate per lo zero crossing della tensione alternata.
L'obbiettivo potrebbe essere quello trasmettere il più vicino possibile al punto di zero crossing, all'interno dei 200 microsecondi.
I dispositivi X-10 riconoscono quando trasmettere o ricevere le informazioni X-10, verificando il passaggio per lo zero.
Un 1 binario è rappresentato da un burst di 1 millisecondo di durata, alla frequenza di 120 Khz.
Uno 0 binario è rappresentato dall'assenza di un burst di 120 Khz di frequenza.
Questi burst da 1 millisecondo potrebbero essere trasmessi 3 volte, prima di essere perfettamente sincronizzati col punto di zero crossing.
Un messaggio x10 completo è composto da uno start code (1110), seguito da l'house code, dal key code e da un suffisso.
Il messaggio può essere : messaggio indirizzo o messaggio comando; la tipologia è definita dal key code, che può essere sia un indirizzo di unità che un codice di funzione.
Un messaggio indirizzo definisce l'indirizzo per l'unità, a seconda del key code (che in questo caso è un indirizzo); un messaggio comando definisce quale operazione deve svolgere l'unità indirizzata.
Per trasmettere l'house code e il key code sono neccessari due zero crossing, per trasmettere ogni bit sotto forma di coppia complementare.
Ad esempio se si vuole trasmettere l'house code B, che è rappresentato come 1110, il codice trasmesso è 11100001, poichè è composto da una coppia complementare di bit.
Lo start code viene invece trasmesso originale, viene rappresentato con 1110.
Il Key code è composto da 5 bit, utilizza 10 bit per la trasmissione come coppia complementare.
L'ultimo bit del key code è sempre 1 per l'indirizzo e 0 per il codice di funzione, dunque quest'ultimo bit può essere utilizzato come suffisso che permette il riconoscimento del codice chiave come indirizzo o codice di funzione.
Una completa trasmissione di codice è composta da 11 cicli di tensione, i primi 2 cicli rappresentano lo start code, i successivi 4 l'house code e gli ultimi 5 rappresentano entrambe indirizzo e codice di funzione.
Ogni messaggio è trasmesso 2 volte, e tra le 2 trasmissioni passano 6 zero crossing, ossia 3 cicli completi di tensione.
Bright e dim sono eccezioni, e non effettuano pause durante la trasmissione, vengono trasmessi consecutivamente senza che si attendano i 6 zero crossig.
Proprio per questa ridondanza di trasmissione, il protocollo x10 è abbastanza sicuro ma lento, infatti è poco adatto per applicazioni che neccessitano la velocità di trasmissione, come applicazioni audio o video.
Heyu è un software di automazione domestica per CM11A, l'interfaccia costruita da X10company per controllare i dispositivi che comunicano su power line, dunque attraverso il collegamento alla seriale, permette al pc di poter gestire gli apparati che trasmettono informazioni attraverso la linea elettrica.
Il nome del software "Heyu" deriva dalla frase abbastanza comune: "Hey you,Turn off the lights!!".
Con Heyu è possibile accendere , spegnere, dimmerizzare i moduli x10, ottenere la data e l'ora dall'interfaccia CM11, ricevere informazioni sullo stato dei moduli, caricare ed eseguire eventi macro e temporizzati (che vengono memorizzati nella EEPROM dell'interfaccia CM11), monitorare tutti i dati inviati verso o dall' interfaccia.
Per quanto riguarda gli eventi macro e temporizzati (ossia una serie di eventi che accadono al verificarsi di un determinato stato oppure ad una determinata data o ora della giornata) è possibile far lavorare heyu con crontab per schedulare gli eventi.
Heyu è stato sviluppato su Linux, è adatto a lavorare su sistemi linux, tuttavia alcune directory potrebbero variare a seconda della distribuzione utilizzata.
E' compatibile anche con BSD, FreeBSD, OpenBSD, OS X, SunOS, Solaris e NEXTSTEP 3.3.
COME INSTALLARE HEYU.
-Scaricare e scompattare i sorgenti.
E' possibile scaricarle direttamente da sito web, oppure via shell col comando:
wget http://heyu.tanj.com/x10_heyu.tgz
tar -zxvf x10_heyu.tgz
-Entrare nella directory heyu.dir e visualizzare i contenuti.
cd heyu.dir
ls -l
-Installare il pacchetto.
./Configure
make
make install
CONFIGURAZIONE DI HEYU.
La configurazione d'esempio che segue è relativa a d un semplice sistema che controlla alcune utenze elettriche collegate ai relativi moduli x10.
Sono stati utilizzati:
- interfaccia seriale CM11 collegata a /dev/ttyS1
;
- 2 moduli lampada;
- 1 modulo elettrodomestici;
- 1 modulo ricetrasmettitore;
I parametri fondamentali che vengono modificati nel file di configurazione sono:
#alias degli apparati coi relativi indirizzi
lampada_blu A 2 # LAMP
lampada_rossa A 3 # LAMP
radio A 4 # APPLIANCE
ventilatore_grande A 5 # TRANCEIVER
HOUSECODE A # housecode utilizzato
TTY /dev/ttyS1 # porte seriale a cui è collegata l'interfaccia
UTILIZZARE HEYU.
I principali comandi:
heyu help
: visualizza tutti i comandi possibili.
heyu info
: visualizza informazioni sullo stato del registro della CM11, sullo stato dei dispositivi, sull'ora.
Un corretto output di heyu info o heyu2 info è di questo tipo:
Firmware revision Level = 8
Interface clock: Tue, 9:56:35, Julian 157
Housecode = a
0 = off, 1 = on, unit 16.......8...4..1
Last addressed device = 0x0001 (0001000000000000)
Status of monitored devices = 0x0000 (0000000000000000)
Status of dimmed devices = 0x0000 (0000000000000000)
heyu date
: fornisce informazioni sull'ora corrente.
heyu erase
: cancella tutti gli eventi macro dalla EEPROM .
heyu syn
: visualizza i sinonimi disponibili per alcuni comandi.
heyu version
: stampa la versione di heyu in uso.
heyu monitor
: monitorizza tutte le attività x10.
heyu turn HU on
: accende il dispositivo con un determinato indirizzo (per la versione 1.35 o precedenti).
heyu on HU
: accende il dispositivo con un determinato indirizzo (per la versione 2.0Beta ).
heyu turn HU off
: spegne il dispositivo con un determinato indirizzo (per la versione 1.35 o precedenti).
heyu off HU
: spegne il dispositivo con un determinato indirizzo (per la versione 2.0Beta ).
heyu dim HU level
: dimmerizza ad un determinato livello (che va da 1 a 22) un dispositivo con determinato indirizzo.
CREARE EVENTI MACRO E TEMPORIZZATI
Per creare eventi macro con Heyu è possibile operare direttamente con crontab, oppure modificare il file x10sched.conf
.
Per esempio se si vuole scatenare un evento temporizzato inserire nel file x10sched.conf
:
-timer smtwt.. 05/02-12/12 12:30 12:35 a5on a5off
Con la riga di comando precedente si farà in modo che dal lunedì al venerdi (smtwt..,è neccessario inserire un puntino per i giorni nei quali non si vuole far eseguire l'evento), dal 2 maggio al 12 dicembre, alle 12.30 si accenda l'utenza con indirizzo a5 e si spenga alle 12.35.
-macro a5on 0 on a5
Per le macro è neccessario specificare il nome, "a5on" in questo caso, che dopo 0 secondi di delay pone in posizione on il dispositivo con indirizzo a5.
Ognuno creerà le proprie macro e i propri eventi a seconda delle singole esigenze.
Per rendere effettive le macro e gli eventi temporizzati è neccessario lanciare il comando heyu upload
, che provvederà a caricare gli eventi in EEPROM.
heyu upload check
verifica se esiste qualche evento da caricare.
heyu upload status
indica se sono stati caricati o no degli eventi.
HEYUHELPER.
Heyuhelper è un piccolo programma aggiuntivo che viene installato con heyu 1.35. Heyuhelper viene richiamato da heyu per eseguire comandi esterni basati su eventi x10.
Heyuhelper è uno script shell, che può essere modificato dall'utente.
-esempio script heyuheper.
#!/bin/sh
case $1 in
a2On)
# Invia una mail all'utente root quando l'unità G4 è stata accesa.
echo "L'unità G4 è posizione ON" | mail root
;;
a4_on)
# Attesa di 5 secondi, spegne l'unità a2
sleep 5
heyu turn a2 off
;;
# linea di debug.
* ) echo "The arg is \"$1\"" ;;
esac
Monit e x10biff
Monit e x10 biff sono due programmi demo che vengono inclusi con heyu, nelle versioni precedenti alla 2.0.
Monit permette di accendere o spegnere il monitor del proprio pc, manualmente o dopo un'attesa di tempo determinabile; simile ad uno screen-saver.
X10biff permette di far lampeggiare una luce ogni qualvolta venga ricevuta una mail.
LE NOVITA' CON HEYU2.
Heyu è disponibile in due versioni: heyu (versione stabile 1.35_3) ed heyu2 (ultima release alpha5.2).
Le caratteristiche di base del software sono comuni a entrambe le versioni, ma con heyu2 vengono introdotte grosse novità.
Una prima differenza è che con heyu versione 2 ogni comando verrà lanciato con la sintassi "heyu2", piuttosto che "heyu" come nella versione precedente.
Heyu2 può tenere traccia dello stato dei vari moduli sul sistema con lo "state engine", un processo che viene eseguito in background lanciando il comando heyu2 engine
; tiene traccia sia dei segnali ricevuti sulla linea elettrica attraverso l'interfaccia CM11, sia quelli inviati attraverso heyu.
Ogni volta che viene fatta una modifica nel file di configurazione bisogna eseguire nuovamente heyu2 engine
per rendere effettive le modifiche.
Un'altra novità sono gli SCRIPTS, heyu2 può lanciare scripts o comandi Unix quando riceve in input segnali x10 specifici.
Per poter lanciare script innanzitutto il demone heyu state engine deve essere in esecuzione.
E' importante sapere che Heyu classifica i segnali x10 secondo la loro sorgente:
-sndc, per i segnali inviati da heyu command line;
-snds, per i segnali inviati da heyu2 command line dall'interno di uno script;
-sndm, per i segnali inviati da una macro temporizzata;
-sndt, per i segnali inviati da una macro scatenata da uno specifico evento.
-rcvi, per i segnali ricevuti sulla linea elettrica.
Heyu state engine può eseguire uno o più script definiti nella direttiva SCRIPT all'interno del file di configurazione.
Con la nuova versione di heyu è possibile specificare una directory (coi relativi permessi di scrittura), dove monitorare ciò che accade. Bisognerà specificare la directory nella direttiva LOGFILE_DIR
nel file di configurazione.
Con heyu2 monitor
, è possibile visualizzare sia i segnali x10 ricevuti, che quelli inviati, per monitorare il sistema.
Con heyu2 rimane la possibilità di utilizzare heyuhelper, impostare nella direttiva SCRIPT_MODE la scelta HEYUHELPER come alternativa a SCRIPTS, in questo caso lo script heyuhelper verrà eseguito ogni volta che viene ricevuto da heyu un segnale x10 proveniente dall'interfaccia; a differenza di heyu versione 1.xxx, con heyu2, heyuhelper non viene lanciato ogni volta che viene eseguta una macro.
Altre novità riguardano la possibilità di poter specificare dove andare a cercare il file di configurazione, se non è situato nelle directory standard, con le opzioni "-c" oppure "-s <pathname>" e vi sono differenze anche per le direttive di configurazione nei file schedulati, utilizzati per lanciare macro.
E' possibile far convivere heyu versione 1.xxx con heyu versione 2, è neccessario che abbiano i file di configurazione locati in directory diverse, inoltre bisognerà eseguire il comando heyu stop
, che ferma l'esecuzione dell'heyu_relay attivo, per passare da una versione all'altra senza problemi.
La procedura di installazione è comune alle diverse versioni, così come la configurazione minima per il funzionamento del software.
HEYU2 COMANDI
Heyu2 fa una distinzione tra i comandi, nasce la classificazione di administrative command, state command e directive command.
I comandi "administrative" vengono utilizzati per controllare alcune caratteristiche o visualizzare informazioni dalla CM11 ed offrire alcune informazioni su heyu .
heyu2 date
: fornisce informazioni sull'ora corrente.
heyu2 erase
: cancella tutti gli eventi macro dalla EEPROM della CM11.
heyu2 info
: visualizza informazioni sullo stato del registro della CM11, sullo stato dei dispositivi, sulla data e l'ora corrente, l'housecode in uso, lo stato degli eventi schedulati già uplodati.
heyu2 help
: visualizza la lista di tutti i comandi disponibili.
heyu2 syn
: visualizza i sinonimi disponibili per alcuni comandi.
heyu2 <etichetta_scene>
: esegue una scene o un usersyn (user-defined synonym) dal file di configurazione .
heyu2 show
: visualizza alcune informazioni sul file di configurazione e sullo stato del sistema. Inoltre verranno visualizzati i vari parametri del comando disponibili per la release utilizzata.
heyu2 upload
: legge le macro, i timers e i triggers e li uploda nella EEPROM della CM11.
heyu2 catchup
: legge i file contenuti nella EEPROM quando viene uplodata una schedulazione, esegue in ordine tutte le macro stabilite per la data corrente.
heyu2 monitor
: monitorizza tutte le attività x10.
heyu2 engine
: Avvia o riavvia l'heyu state engine, un processo che rimane in background e tiene lo stato dei moduli basati su segnali x10 inviati e ricevuti.
heyu2 initstate[H]
: se non viene spefificato l'house code imposta l'intera tabella di stato x10 a zero; se viene specificato l'house code inizializza la tabella di stato per quel determinato housecode a zero.
heyu2 reset
: resetta il contatore dell'interfaccia CM11A e imposta l'housecode di default. Se viene specificato l'housecode come parametro, verrà impostato quello specificato.
heyu2 stop
: stoppa l'esecuzione del relay_daemon e ferma le operazioni di monitoraggio.
heyu2 setclock
: legge l'ora dal sistema e la carica all'interno della CM11.
heyu2 newbattery
: resetta la batteria della CM11A a zero.
heyu2 purge
:cancella le macro in sospeso, che sono state chiamate ma non eseguite.
heyu2 clear
: pulisce il registro di stato della CM11 per l'housecode controllato.
heyu2 version
: stampa la versione di heyu in uso.
heyu2 utility syscheck
: visualizza informazioni sull'ora, calendario, timezone ottenute dal sistema attraverso heyu.
heyu2 utility suntable [yyyy]
: crea un file suntable_yyyy.txt che viene memorizzato nell'hard disk , contenente una tabella giornaliera di Dawn e Dusk per l'anno yyyy specificato.
I comandi "state" visualizzano, in diversi formati, lo stato di ciascun modulo.Per la maggior parte delle volte i comandi state vengono richiamati dagli script, è neccessario, per l'esecuzione di questo tipo di comandi che heyu state engine sia in esecuzione.
heyu_state Hu
: il parametro richiesto è l'indirizzo (housecode_unitcode) di una sola unità.
L'output del comando può essere(esempio basato sull'unità a1):
a1On a1Off a1Dimm ad indicare lo stato acceso/spento/dimmerizato di per un determinato HU;
a1Addr a1Unaddr ad indicare lo stato indirizzato o non indirizzato per un determinato HU;
I comandi direct vengono utilizzati per trasmettere istruzioni ai moduli sulla linea elettrica attraverso l'interfaccia CM11A.
heyu2 on HU
: accende il dispositivo con un determinato indirizzo
heyu2 off HU
: spegne il dispositivo con un determinato indirizzo
heyu2 dim HU <level>
: dimmerizza le unità al livello selezionato (1-22)
heyu2 dimb HU <level>
: dimmerizza le unità al livello selezionato (1-22) dopo la luminosità massima
heyu2 bright HU <level>
: imposta la luminosità della lampadina al livello desiderato (1-22)
heyu2 brightb HU <level>
: imposta la luminosità della lampadina al livello desiderato (1-22), dopo la luminosità massima.
heyu2 lightson H
:accende tutte le luci con quel determinato house-code
heyu2 lightsoff H
: spegne tutte le luci con quel determinato house-code
heyu2 allon H
: accende tutte le unità con quel determinato house code
heyu2 alloff H
: spegne tutte le unità con quel determinato house code
heyu2 turn HU <comando>
: cambia lo stato dell'unità on|off|up|down
heyu2 _turn HU <command>
: cambia lo stato dell'unità, non disponibile per le macro
heyu2 preset HU <level>
: preseleziona il livello di default per l'unità (1-32),non disponibile per le macro
heyu2 _preset HU <level>
: preseleziona il livello di default per l'unità (1-32),non disponibile per le macro
heyu2 preset_level <level>
: preseleziona il livello di default per l'unità (1-32)
heyu2 status HU
: restituisce lo stato dell'unità (disponibile per i moduli two-way)
heyu2 _status HU
:restituisce lo stato dell'unità (disponibile per i moduli two-way, non disponibile per le macro)
heyu2 status_on HU
:Status Acknowledge ON
heyu2 status_off HU
:Status Acknowledge OFF
heyu2 kill_all_hc
: invia il segnale off a tutti i dispositivi.
SCRIPT
E' possibile utilizzare la caratteristica di heyu2 di supportare la direttiva SCRIPT, per creare un semplice sistema per la gestione della casa.
Per poter eseguire gli script , innanzitutto, il file di configurazione deve contenere la direttiva:
SCRIPT_MODE SCRIPTS.
Ogni avvenimento può essere loggato utilizzando la direttiva: LOG_FILE /<path> nel file di configurazione.
-SCRIPT b2 on :: /bin/echo "E' stata rilevata una presenza"> > | /bin/mail -s "E' stata rilevata una presenza" <indirizzo a cui inviare la mail>
B2 potrebbe essere l'indirizzo di un sensore di presenza, il quale se impostato in posizione on, a causa di un movimento rilevato, invia una mail a un'indirizzo stabilito per avvisare l'utente.
E' possibile utilizzare degli alias per identificare un'utenza piuttosto che l'indirizzo, questo comporta una maggiore comprensione del file di configurazione.
ALIAS luce_ingresso A1
SCRIPT luce_ingresso on :: /bin/echo "La luce dell'ingresso è accesa" | /bin/mail -s "La luce dell'ingresso è accesa" <indirizzo a cui inviare la mail>
Con questo meccanismo è possibile inviare mail per ogni evento che accade all'interno dell'abitazione, in modo da poter tener sotto controllo gli eventi che si desidera monitorare.
SCENE e USERSYN
Scene e usersyn(user-defined synonyms), sono due nuove direttive disponibili con heyu2, con le quali è possibile creare semplici "scenari".
All'attuale versione i due comandi sono praticamente identici, l'unica piccola differenza è la loro visualizzazione nel comando show.
heyu2 show s
:visulizzerà le scene attive.
heyu2 show u
:visulizzerà gli usersyn attivi.
E' neccessario specificare l'etichetta, seguita da una sequenza di comandi; il formato per entrambe è simile:
SCENE Label comando1; comando2; comando3; ...
USERSYN Label comando1 <args>; comando2 <args>; comando3 <args>; ...
Il <comando> , può essere sostituito, per entrambe sia con l'indirizzo, sia con un alias.Vengono supportati anche parametri posizionali, come $1, $2, che vengono sostituiti con i valori dati in input al momento dell'esecuzione.
SCENE scene_esempio on a2; on a4; off a2
SCENE scene_esempio2 on lampada_blu; on a4; off lampada_blu
USERSYN usersyn_esempio3 on a1; on a4; off a1
USERSYN usersyn_parametri dim lampada_blu $1; bright lampada_blu $2; off lampada_blu
Per eseguire scene ed usersyn, lanciare il comando heyu2 <label> [$1] [$2]
.
Errori comuni con heyu
Errori abbastanza comuni quando si lavora con heyu, riguardano problemi di comunicazione con la seriale.
Il comando utile per verificare che sia possibile la comunicazione con la seriale è heyu info
, se si ottengono output come i seguenti, c'è un problema con la configurazione e la comunicazione con la seriale.
Invalid status response (was 0 bytes instead of 14)
HEYU: No response from the CM11A. Program exiting.
Version:1.35_3
Using the config file /etc/x10.conf
HEYU: bad housecode in config, alias LOG_DIR
Trying to lock (/var/lock/LCK..heyu.writettyS1)
/var/lock/LCK..heyu.writettyS1 is locked
xwrite() called, count=1
xread() called, count=14, timeout = 3
Alarm!
xread() returning 0 byte(s). The first is 8b
re checking for poll
xread() called, count=1, timeout = 2
Alarm!
xread() returning 0 byte(s). The first is 84
re entering get status
xwrite() called, count=1
xread() called, count=14, timeout = 3
Alarm!
xread() returning 0 byte(s). The first is 8b
re checking for poll
xread() called, count=1, timeout = 2
Alarm!
xread() returning 0 byte(s). The first is 60
re entering get status
xwrite() called, count=1
xread() called, count=14, timeout = 3
Alarm!
xread() returning 0 byte(s). The first is 8b
Invalid status response (was 0 bytes instead of 14)
HEYU: No repsonse from the CM11A. Program exiting.
Verificare che la CM11 sia collegata realmente alla seriale specificata nel file di configurazione, e controllare i relativi permessi.
Se l'output rimane invariato verificare quali processi relativi ad heyu sono attivi col comando ps -aux |grep heyu
; eseguire il comando heyu stop
, per terminare l'esecuzione del demone heyu_relay e killare i processi.
Digitare il comando heyu list
per verificare su quali file heyu va a scrivere.
[root@localhost root]# heyu list
Version=1.35_3
SPOOLDIR=/var/tmp/
LOCKDIR=/var/lock
Cancellare i file temporanei di heyu da /var/tmp e il file .mon da /var/lock.
Ogni volta che si effettua una modifica sul file di configurazione è neccessario renderla effettiva eseguendo il comando heyu2 engine
, un errore abbastanza comune eseguendo questa operazione è:
Only master heyu channel can restart state engine.
Per risolvere eseguire il comando heyu2 stop
e rieseguire l'engine.
Misterhouse è uno dei più diffusi e utilizzati sofware open source per la domotica
Scritto in perl, è disponibile la versione sia per Linux, che per Windows e MacOs.
Gestisce eventi temporizzati, web, socket, voce e dati seriali.
Con questo software si possono controllare gli apparati gestiti con moduli x10 con interfaccia CM11 (Active Home) o CM17 (FireCracker), sfruttando dunque la linea elettrica esistente.
Gestisce la comunicazione con dispositivi iButton, ossia un chip contenuto in un'involucro di acciaio inossidabile, adatto a resistere alle più diverse condizioni ambientali (è stimato per una durata di 10anni circa) che può essere montato ovunque viste le sue ridotte dimensioni (16mm).
Supporta le interfacce JDS (Stargate, TimeCommandar, Home Base), le interfacce Home Vision; scrive e legge dati sulla porta seriale da weeders technology kit pc, che gestisce x10, analogico, digitale, e dati telefonici.
Supporta la comunicazione con Ocelot, Applied Digiltal's CPU-XAI, Irman (un piccolo dispositivo che permette di controllare il pc da remoto da tv, vcr, cd, stereo), lcdProc Server (che si interfaccia con moduli lcd economici).
Alcune caratteristiche di Misterhouse
Può eseguire comandi arrivati input dalla voce dell'utente finale, oppure secondo parametri di tempo a seconda dell'ora del giorno, o da dati seriali, o dati socket.
Legge e scrive i dati da qualsiasi apparato seriale collegato.
Utilizza semplici menu templates per creare menu per LCD, VXML e telefoni wap.
Supporta i protocolli di automazione xAP ( un protocollo aperto per supportare l'integrazione e il controllo degli apparati che vengono utilizzati all'interno dalla casa) e xPL.
Altra caratteristica fondamentale è la possibilità di controllare la propria casa attraverso una semplice interfaccia web visualizzabile da qualunque browser sia dall'Intranet locale che da Internet.
Come installare MisterHouse su un sistema Unix
Prerequisiti:
MisterHouse viene eseguito su qualsiasi piattaforma dove sono installati i moduli Perl e se si vuole utilizzare oltre all'interfaccia locale tk, anche quella web, è necessario utilizzare un server web.
Utilizza dai 10 ai 30 Mb di memoria; se viene utilizzato Festival TTS (Text to Speech), l'utilizzo della memoria va dai 20 ai 30 Mb.
- Download del pacchetto. (Se si utilizza una versione di Linux maggiore alla 2.2.95, come REDHat 8.0 e successivi è necessario scaricare la versione compilata del pacchetto .zip ).
- Installare il pacchetto, utilizzando il comando
tar xvzf misterhouse-X.XX.tar.gz
per la versione compressa,
rpm -i miterhouse-X.XX.rpm
per il pachetto rpm.
Per chi utilizza il file .zip il comando per unzippare il file è: unzip -Au misterhouse-X.XX.linux.zip
- Entrare nella directory MisterHouse col comando:cd MisterHouse-X.XX.
chmod +x configure
- divenire root col comando su
e digitare la password di root.
-./configure
-exit
, per tornare alla directory principale.
-./mhl
oppure ./mh
o ./perl mh
.
Per una versione recente di linux scaricare e scompattare il file mhe all'interno della directory MisterhouseX.XX/bin ed eseguire lo script mhe per lanciare il programma.
Utilizzare Misterhouse su un sistema Linux
E' possibile interagire con Misterhouse sia attraverso interfaccia web, totalmente personalizzabile, sia attraverso l'interfaccia tk, un'interfaccia più semplice che verrà visualizzata appena viene lanciato il programma oppure attraverso il comando ./mh -tk 1 -code_dir /root/misterhouse/misterhouse-2.98/code/Bruce
.
Per poter lavorare con l'interfaccia tk è neccessario che nel file di configurazione mh.ini sia leggibile la riga Tk=1, mentre se questo è uguale a 0, l'interfaccia tk non verrà visualizzata.
Per visualizzare l'interfaccia web di Misterhouse è possibile collegarsi col browser a localhost:8080; la porta 8080 viene utilizzata da misterhouse di default, è possibile modificare questo parametro.
Per poter lavorare con misterhouse in modo da poter controllare le proprie utenze è neccessario apportare modifiche ad alcuni file che ci vengono forniti come esempio.
Per inserire i prori moduli in modo da poter essere gestibili è neccessario:
-creare un nuovo file o modificare il file d'esempio in misterhouse-2.98/code/test/test.mht.
-creare un nuovo gruppo
-aggiungere gli oggetti al nuovo gruppo.
-determinare per il tipo per il nuovo oggetto: X10A per Appliance, X10I per items, Motion per sensori di presenza,ecc.
E' possibile personalizzare l'interfaccia web, in modo da visualizzare icone proprie per rapprentare le proprie stanze, e i propri oggetti.
Questo è possibile seguendo i passi successivi:
-inserire la foto desiderata in /misterhouse/web/graphics con formato: group-<nome gruppo con la lettera minuscola>.gif
-modificare il file html web/ia5/lights/main.html controllato da floorplain.
Impostazione delle password
Per ottenere maggiore sicurezza è possibile impostare le varie password di admin, user per poter effettuare modifiche alle impostazioni del software.
./set_password -h
per visualizzare le varie opzioni;
./set_password -user admin -password admin
per settare la password di admin come "admin";
./set_password -password admin
verifica se la password "admin "è stata salvata.
Per cambiare la password è necessario cancellare il file delle password e rieseguire ./set_password
.
BlueLava ่ un interfaccia CGI per X10.
E'stato creato per fornire una gestione semplice e intuitiva attraverso web browser e con la release v0.3.1 anche via WAP. Dunque ่ possibile accendere o spegnere le luci o gli elettromestici della propria abitazione attraverso un'interfaccia web, o attraverso il cellulare.
Viste le varie versioni del prodotto, si possono riscontrare problemi di compatibilitเ:
- la versione v0.4.0 non ่ compatibile col file di configurazione bluelava.conf utilizzato per la versione v0.2 e per alcune caratteristiche, vi sono problemi anche con la versione v0.3.3.
- BlueLava v0.4.1 ่ compatibile con v0.4.0.
- BlueLava v0.4.0 ่ compatibile con v0.3.9.
- BlueLava v0.3.9 potrebbe essere compatibile con v0.3.
- BlueLava v0.3.1 potrebbe essere compatibile con v0.3.
Per poter lavorare BlueLava necessita di avere un server web capace di eseguire Perl CGI, come Apache, Perl 5, alcuni moduli x10 e un Backend funzionante.
I backends supportati da BlueLava sono:
- Bottlerocket 0.03 [CM17A]
- HEYU [CM11, CM12U]
- Ppower 0.1.2 [CM11, CM12U]
- x10d [CM11, CM12U]
- Flipit [CM17A]
- WiSH [PowerLinc Serial, PowerLinc USB, Firecracker or CM11A/CM12U]
INSTALLAZIONE
- scaricare il pacchetto sorgente dal sito ufficiale.
wget http://www.sgtwilko.f9.co.uk/bluelava/bluelava-0.4.1.tar.gz
- scompattare il pacchetto
tar -zxvf bluelava-0.4.1.tar.gz
- copiare la directory bluelava-0.4.1 in /var/www/cgi-bin/
cp -a bluelava-0.4.1 /var/www/cgi-bin/bluelava
- creare il file di configurazione bluelava.conf, editanto il file d'esempio della configurazione bluelava.conf.dist.
cp /var/www/cgi-bin/bluelava/bluelava.conf.dist /var/www/cgi-bin/bluelava/bluelava.conf
vi /var/www/cgi-bin/bluelava/bluelava.conf
- riavviare apache.
/etc/init.d/httpd restart
- E' possibile visualizzare il frontend grafico sul proprio browser su: http://
CONFIGURAZIONE
All'interno del file di configurazione di BlueLava, bluelava.conf, ่ neccessario specificare:
#la directory dove BlueLava ่ installato;
bluelava_home "/var/www/cgi-bin/bluelava"
# la directory dove sono installati header.html e footer.html;
bluelava_html "/var/www/cgi-bin/bluelava"
#l' URL della directory BlueLava, ossia la directory nella quale si trova bluelava.cgi;
bluelava_baseurl "/cgi-bin/bluelava"
#il backend utilizzato (heyu versione 1, in questo specifico caso);
backend "heyu"
#il path della directory dove ่ installato il backend ;
heyu_path "/usr/local/bin/heyu"
#specificare gli oggetti da controllare via web (่ possibile definire pi๙ stanze);
room "Ufficio"
device "a1" "appliance" "AM12 Appliance Module - lampadina-blu"
device "a2" "lamp" "LM12 Lamp Module - Lampadina-rossa"
device "a4" "appliance" "AM12 Appliance Module - ventilatore"
ERRORI DI CONFIGURAZIONE COMUNI
Alcuni errori sono abbastanza comuni con BlueLava, derivati da una configurazione non esatta.
Se nella box "Status" otteniamo un errore del tipo:
"Error code -1 was returned!" si tratta di aver specificato un path per il backend utilizzato non corretto;
"Error code -256 was returned!" , non viene trovato il file di configurazione del backend , BlueLava cerca il file di configurazione globale del backend nella directory /etc, cos์ da permettere al web server di leggerlo.
Wish è un progetto nato per creare driver universali per i dispositivi x10.
Questa esigenza è nata vista la diffusione di questo protocollo e il numero di ditte produttrici di dispositivi ognuna con la propria metodologia di interfacciarsi con la rete x10.
X10 dev crea un dispositivo /dev per ogni unità x10, col risultato che qualsiasi applicazione utente, può essere scritta per comunicare con la rete x10 indipendentemente dal tipo di tranceiver utilizzato.
Wish può essere gestito via command line, attraverso semplici shell script che utilizzano echo e cat, o attraverso programmi più complicati scritti in Java, Perl o C; inoltre un altro vantaggio è che è possibile seguire tutte le attività x10, per tutti i 16 housecode, attraverso la scrittura sui file di log (x10logd).
Al momento wish supporta PowerLinc Serial, PowerLinc USB, CM11A, e Firecracker/CM17A.
Sono disponibili, con la versione 1 del software i driver per il kernel 2.4.X col supporto per CM11A e SmartHome PowerLink Serial, con la versione 2 di x10dev i driver sono compatibili sia per il kernel 2.4 che per il kernel 2.6.7 e superiori, col supporto per PowerLinc Serial, PowerLinc USB, CM11A e Firecracker/CM17A.
Le novità con x10dev2 è che vengono utilizzati i driver userspace per comunicare col tranceiver, rendendo così più affidabili i driver e il sistema.
Compilare e installare i driver
Per compilare i driver è neccessario avere le sorgenti del kernel installate nella macchina, così da avere le informazioni neccessarie sul kernel in esecuzione contenute nel file .config.
Scaricare le sorgenti del software e scompattarle in una directory temporanea.
-tar xvzf x10dev-2.1.2.tar.gz
-cd x10dev-2.1.2
-make
-make install
In questo modo verranno copiati i demoni plusbd, cm11ad e pld in /usr/bin, le utilities x10logd e x10 watch, nbread e nbecho in /usr/bin.
I moduli del kernel verranno copiati nella directory corrente del kernel in esecuzione, ad esempio in /lib/modules/2.6.10/kernel/drivers/char/x10.
Caricare i driver.
Una volta installati e compilati i driver devono essere caricati. E' neccessario caricare il device manager che equivale a x10.o per il kernel 2.4 e x10.ko per il kernel 2.6.
Per caricare i driver manualmente eseguire gli script, per il tranceiver utilizzato, che si trovano nella directory example-scripts, oppure per l'autostart eseguire il comando chkconfig per impostare il caricamento dei driver al runlevel desiderato.
Ad esempio per impostare il caricamento dei driver per la CM11A, al runlevel 5, eseguire: chkconfig --level 5 x10.cma11
.
E' possibile startare i driver anche con /etc/init.d/x10.<tranceiver utilizzato> start
.
Per caricare i driver userspace:
-per Serial PowerLinc
modprobe x10
/usr/sbin/pl -device /dev/ttyS0
/usr/sbin/x10logd
-per USB PowerLinc
modprobe x10
/usr/sbin/plusb -device /dev/usb/hiddev0
/usr/sbin/x10logd
-per CM11A
modprobe x10
/usr/sbin/cm11ad -device /dev/ttyS0
/usr/sbin/x10logd
Se i driver per il tranceiver utilizzato sono stati caricati correttamente, si noterà una linea di conferma nei log (/var/log/messages) di questo tipo: "x10 Transciever module v<version> ([email protected])" .
Stoppare i driver
Per terminare l'esecuzione dei driver x10 è neccessario stoppare tutti i demoni x10 che accedono ai dispositivi eseguendo il comando HUP.
kill -HUP `cat /var/run/x10d.pid`
kill -QUIT `cat /var/run/x10d.logd`
kill -QUIT cat /var/run/x10watch.pid
rmmod x10
Inviare i comandi con wish
I comandi che seguono vengono utilizzati per inviare comandi sia all'housecode sia ad unità singole.
1,on,ON
: accende dispositivi singoli o gruppi di dispositivi.
0.off,OFF
: spegne dispositivi singoli o gruppi di dispositivi.
-,dim,DIM
: diminuisce l'intensità luminosa dei dispositivi singoli, o gruppi di dispositivi, che supportano questo comando.
+,bright,BRIGHT
: aumenta l'intensità luminosa dei dispositivi singoli, o gruppi di dispositivi, che supportano questo comando.
status
: invia una richiesta sullo stato di unità specifiche.
I comandi che vengono utilizzati per inviare segnali solamente all'housecode sono:
aon
: accende tutti i dispositivi per uno specifico housecode.
aoff
: spegne tutti i dispositivi per uno specifico housecode.
uoff
: spegne tutti i dispositivi per uno specifico housecode.
pdimhigh
: aumenta il livello di intensità luminosa per i dispositivi che supportano questo comando.
pdimhigh
: aumenta il livello di intensità luminosa per i dispositivi che supportano la dimmerizzazione.
pdimlow
: diminuisce il livello di intensità luminosa per i dispositivi che supportano questo comando.
I comandi che vengono inviati solamente a singole unità:
nothing, null
: invia il segnale on ad una specifica unità.
ps#
: (preset dim),invia un segnale di dimmerizzazione ad una specifica unità. E' seguito da un parametro che indica il livello percentuale di dimmerizzazione compreso tra 1 e 32 inclusi.
ps1=0% ps9=26% ps17=52% ps25=77%
ps2=3% ps10=29% ps18= 55% ps26=81%
ps3=6% ps11=32% ps19=58% ps27=84%
ps4=10% ps12=35% ps20=61% ps28=87%
ps5=13% ps13=39% ps21=65% ps29=90%
ps6=16% ps14=42% ps22=68% ps30=94%
ps7=19% ps15=45% ps23=71% ps31=97%
ps8=23% ps16=48% ps24=74% ps32=100%
Alcuni esempi
echo 1 > /dev/x10/a10
: accende l'unità a10.
echo on > /dev/x10/a10
: accende l'unità a10.
echo 0 > /dev/x10/a10
: spegne l'unità a10.
echo off > /dev/x10/a10
: spegne l'unità a10.
echo 1 > /dev/x10/a
: accende tutte le unità sull'housecode a.
echo 0 > /dev/x10/a
: spegnetutte le unità sull'housecode a.
echo bri > /dev/x10/a1
: invia il comando bright all'unità a1.
echo - > /dev/x10/a1
: invia il comando dim all'unità a1.
echo null > /dev/x10/a2
:accende l'unità a2
echo aon > /dev/x10/a
: accende tutte le unità sull'housecode a.
echo aoff > /dev/x10/a
: spegne tutte le unità sull'housecode a.
cat /dev/x10/a1
: legge lo stato dell'unità a1, se il risultato è 100 l'unità è sullo stato on, se il risultato è 000 l'unità è sullo stato off.
[root@localhost le]# echo 1 > /dev/x10/a1
[root@localhost le]# cat /dev/x10/a1
100
cat /dev/x10/a
:legge lo stato di tutte le unità sull'housecode a.
[root@localhost le]# cat /dev/x10/a
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
cat /dev/x10/status
:legge e stampa lo stato di tutte le 256 unità.
[root@localhost le]# cat /dev/x10/status
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
B: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
C: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
D: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
E: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
F: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
G: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
H: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
I: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
J: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
K: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
L: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
M: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
N: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
O: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
P: 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
Utilities
-X10LOGD
X10logd è un utilities che permette di visualizzare i log dei driver x10.E' installata di default in /usr/sbin/x10logd.
I parametri di default di x10logd sono:
debug=off
x10log=/dev/x10/log
log file=/var/log/x10.log
pid file=/var/run/x10logd.pid
Il formato dell'output di x10logd è : <mese><giorno_mese><hh:mm:ss><hostname><T(transmit)/R(receive)><housecode_unitecode>
Jul 8 10:44:28 localhost T A1
Jul 8 10:44:28 localhost T A ON
Jul 8 10:44:34 localhost T A1
Jul 8 10:44:34 localhost T A OFF
Jul 8 10:54:39 localhost T A1
Jul 8 10:54:39 localhost T A ON
-Non-Blocking Read Utility (NBREAD)
Nbread è un utility che permette a uno shell script di leggere lo stato dei dispositivi e restiturlo sotto forma di stringa. E' installato di default in /usr/bin/nbread; come parametri accetta il nome del dispositivo di cui si vuol stampare lo stato.
[root@localhost le]#nbread /dev/x10/a1
100
-X10 WATCH
X10 watch è un utility che esegue un'azione a seguito di un cambiamento di stato di un dispositivo x10; ogni stato diverso da OFF viene considerato come on.Questa utility potrebbe non essere disponibile per l'utente root. E' installata di default in /usr/bin/nbecho.
La sintassi di x10watch è: x10watch <dispositivo> [-0 <azione off>] [-1 <azione on>] [-t <tag>] [-p <secondi>]
[le@localhost ~]$ x10watch /dev/x10/a1 -1 /dev/x10/a2 -d3
watching /dev/x10/a1, interval=5, on=/dev/x10/a2, off=(null)
data=100
currentstatus=100
Waiting for data from /dev/x10/a1...
Problemi durante l'utilizzo del software
Uno dei maggiori problemi riscontrati è stato quello di non trovare disponibili i device all'interno della directory /dev/x10 una volta riavviata la macchina.
Questo comportava una riesecuzione dello script makedev.sh all'interno della directory scripts.
Il problema è stato risolto inserendo lo script makedev.sh all'interno di /etc/rc.local in modo che venga eseguito all'avvio dalla macchina.
Draconi automation è un programma open source per home automation e digital entertainment, sviluppato per essere modulare, significa che è possibile aggiungere facilmente altre funzionalità.
E' il risultato di due programmi, sviluppati entrambe da Joe Thielen:
XMMS-Control, il quale è stato sviluppato come interfaccia web a XMMS, un player mp3 per Linux. XMMS è disponibile anche singolarmente;
Ld, sviluppato per definire le capacità di interfacciamento con Applied Digital Ocelot/Leopard e l'interfaccia CM11A per X10.
Può essere interfacciato con: - CM11A/CK11A X10 ActiveHome Home Automation Controller
- Applied Digital (ADI) Ocelot/Leopard/Leopard II Home Automation Controllers
- XMMS Music Player
- Festival Speech Synthesis Software
- ADI Ocelot/Leopard IR Output, IR Control
CARATTERISTICHE FUNZIONALI
Draconi Automation offre un sistema completo basato sull'utente con la possibilità di impostare specifici permessi per ogni utente che accede al sistema;
supporta diverse interfaccie:
- HTML, supportata dalla maggior parte dei browser;
-mobile HTML, per i dispositivi mobili che possiedono schermi piccoli come PDAs e cellulari adeguati che leggono l'html;
- xHTML Basic/WAP 2.0 -per dispositivi mobili come i cellulari che possiedono schermi molto piccoli e necessitano di poca banda.
Con l'ultima relese è possibile definire macro, con le quali si possono controllare tutti i moduli del sistema per creare scenari che potrebbero dimmerizzare le luci, eseguire brani musicali, fare annunci via text-to-speech.
La caratteristica della modularità consente di personalizzare il software aggiungendo nuove funzionalità e inserendo i propri moduli che possono essere utilizzati anche per creare macro di sistema.
INSTALLAZIONE E UTILIZZO
Il software è disponibile dalla release Alpha0.01 sino a Alpha0.05, che aggiunge la possibilità di creare macro definite dall'utente.
E' neccessario, per il funzionamento del programma, avere un sistema Linux con Apache, php, il modulo php per mySQL e MySQL.
Per l'automazione domestica attraverso CM11A, occorre avere heyu installato e corretamente funzionante, con relativo collegamento tra l'interfaccia e la seriale; mentre se si vuole utilizzare una Centralina Ocelot/Leopard è neccessario il collegamento alla seriale.
Se si vogliono gestire i file musicali, installare XMMS o in alternativa NOXMMS e XMMS shell; a scelta, è disponibile l'interazione con Festival Speech Syntesys Software e ADI SECU16-IR IR Output module, per il controllo infrarossi, supportato dalle centraline Ocelot e Leopard.
Installazione.
- Scaricare e scompattare il pacchetto all'interno della directory /var/www/html.
Il pacchetto verrà scompattato nella directory "da".
wget http://www.draconidigital.com/da/draconi_automation-alpha0.05.tar.gz
tar xvzf draconi_automation-alpha0.05.tar.gz
- Eseguire lo script 'fix_links'.
./fix_links
- Inizializzare il database.
Editare la sezione 'DB INFO 'del file vars.inc e inserite i dati delproprio sistema.
# -- DB INFO --
# The type of database
$iddb_type = "mysql";
# The name of the database
$iddb_name = "co";
# The name of the user to access the database as.
$iddb_user = "root";
# The user password for the database
$iddb_pass = "";
# The host on which the database is located.
$iddb_host = "10.0.0.79";
# ----- ----- - Eseguire lo script RELOAD, all'interno della directory /da/DB/mysql, lo script salverà i dati del db ('co' in questo caso) e inizializzerà le impostazioni di default . - Specificare all'interno del file vars.inc nella sezione AUTOMATION - CONTROL PANEL, il percorso della locazione di heyu, /usr/local/bin/heyu di default.
# ----- AUTOMATION - CONTROL PANEL -----
# Comm delay between serial outputs
$id_commdelay = "750000";
# X10 Command Repeat (ONLY CHANGE IF YOU HAVE A PROBLEM!!!)
$id_x10_repeat=1;
# Location of 'heyu' program (for CM11A/CK11A)
$id_heyu="/usr/local/bin/heyu";
# ----- -----
Ora sarà possibile loggarsi all'interno di Draconi automation,collegandosi a http://<$iddb_host >/da/ (http://10.0.0.79/da/, nel caso specifico).
PERSONALIZZAZIONE
Loggarsi all'applicazione con login e password definibili dall'utente ('root' '123' o 'guest' '123' di default).
Entrare nella sezione 'Administration', dalla quale è possibile personalizzare totalmente il software e renderlo utile per le proprie esigenze.
E' possibile, nella sotto-sezione 'User Administration', creare nuovi utenti o modificare i permessi e le password di quelli già esistenti; nella sotto-sezione 'Plugins e devices', inserire un nuovo plugins, specificando il nome e la seriale a cui è collegato e associare un nuovo dispositivo con relativo nome, tipo, house-code, unit-code e gruppo di appartenenza. Per ogni dispositivo assegnare i permessi di sicurezza, accedendo a Security DB, dove si specificano quali utenti non possono accedere a quel dispositivo.
Per creare o modificare i gruppi, accedere alla sotto-sezione 'Groups'; per la creazione di macro accedere a 'Macro Administration', specificare nome, per quali utenti è disponibile e definire i vari step che si vogliono eseguire, con la possibiltà di definire i tempi di pausa tra un evento e un altro e il livello di dimmerizzazione delle luci.