Inserisci Infobox

Linux Domotica: X 10

Stato dell'arte sulle applicazioni e il software disponibile su Linux per interfacciarsi e gestire sistemi domotici basati sullo standard X10

Software x10 per Home Automation: Introduzione.
Autore: ruro - Ultimo Aggiornamento: 2005-07-05 10:48:38 - Data di creazione: 2005-07-01 15:10:53
Tipo Infobox: DESCRIPTION - Skill: 1- NOVICE

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.


Domotica: I moduli X10
Autore: ruro - Ultimo Aggiornamento: 2005-07-02 22:36:35 - Data di creazione: 2005-04-15 20:13:38
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

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:  teoria di trasmissione.
Autore: ruro - Ultimo Aggiornamento: 2005-06-30 11:59:14 - Data di creazione: 2005-06-27 15:45:05
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

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.

Linux Domotica - X10 - Installazione e uso di HEYU e HEYU2
Autore: ruro - Ultimo Aggiornamento: 2005-07-08 10:53:23 - Data di creazione: 2005-05-05 13:20:44
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

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.

Linux Domotica - X10 - Installazione e uso di Misterhouse
Autore: ruro - Ultimo Aggiornamento: 2005-06-30 12:01:04 - Data di creazione: 2005-04-10 22:46:50
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

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.


Linux Domotica - X10 - Installazione e uso di BlueLava
Autore: ruro - Ultimo Aggiornamento: 2005-06-03 21:52:44 - Data di creazione: 2005-05-30 14:47:45
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

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:///cgi-bin/bluelava/bluelava.cgi

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(x10dev): Driver universali per dispositivi X10 su Linux.
Autore: ruro - Ultimo Aggiornamento: 2005-08-11 16:53:57 - Data di creazione: 2005-07-06 16:10:28
Tipo Infobox: DESCRIPTION - Skill: 3- INTERMEDIATE

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.

Linux Domotica - X10 - Installazione e uso di DRACONi Automation
Autore: ruro - Ultimo Aggiornamento: 2005-06-21 15:54:55 - Data di creazione: 2005-06-09 18:11:09
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

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.  

Privacy Policy