Translate

Sunday, September 26, 2010

Vivere con X10

Years ago, I wrote some posts about X10, from a first hand/practical perspective.
From those posts I created this article, in Italian.  In English is possible already to find tons of documents, so I think is quite useless to translate it.
The article is in Italian.

--------------------------------------------------
Gennaio 2005

Questo articolo raccoglie alcuni miei post apparsi su it.free.discussioni.domotica riguardo X10.
Anche se non sembra, ci tengo a precisare che NON HO nessun legame commerciale con X10 o ditte di HA.
Sono solo un entusiasta domoticofilo con un po' di esperienza pratica su X10 e ne voglio riportare qui pregi e difetti vissuti in prima persona.
Sono le mie esperienze di 5 anni con X10, esperienze che in qualche modo avranno futuro anche in questo progetto, dato che non necessariamente TUTTI i carichi dovranno essere gestiti tramite bus.
Per comodita' (mia e di chi legge) riporto i post cosi' come sono apparsi sul gruppo, sotto i thread Vivere con X10 - parte x.
 

Parte 1

Introduzione a X10

Ho notato, specie in Italia, che X10 non e' molto bene conosciuto.
Il che crea fraintendimenti riguardo cosa sia e cosa possa (e non possa) fare.
Provo a raccontare la mia esperienza con X10 sperando di dare maggiori informazioni su questa tecnologia.

[Premessa importante ON] Io vivo in USA. X10 come protocollo e' lo stesso sia qui in USA che in Europa, ma ci sono delle differenze importanti (ai fini di X10) negli impianti.
In USA lo standard, per l'impianto, sono due fasi (110V 60Hz) per un totale di 18 Kwh.
Questo comporta un problema di ripetizione e sincronizzazione del segnale X10 tra le due fasi, problema che in genere in Europa non esiste.
Altra differenza tra USA e Europa e' la parte wireless, per le frequenze.
Ovvero le frequenze usate sono differenti.
[Premessa importante OFF]
Iniziamo.
Innanzi tutto, cosa e' X10 ?
X10 e' un protocollo per Home Automation su powerline, ovvero non necessita di cavi addizionali ma sfrutta i cavi della rete luce.
Esistono moduli trasmettitori e moduli attuatori.
Entrambe queste tipologie di moduli vanno connesse ad una presa oppure e' possibile sostituire alcuni "frutti" con moduli X10.
Il punto fondamentale della filosofia X10 e' che non e' richiesta NESSUNA manomissione dell'impianto elettrico.
Ovvero X10 e' l'ideale per automatizzare case gia' finite dove e' difficile (o antieconomico) rifare l'impianto elettrico.
E questo e' il grande, enorme vantaggio di X10.
Aggiungendo a questa cosa il fatto che oggi come oggi i moduli X10 (almeno qui in USA) sono davvero economici, ecco spiegato il successo di X10.
Ma esistono problemi comunque ... ecco una serie di pro e cons (pro e contro) di questa tecnologia (ovviamente rispetto al mio punto di vista ed esperienza diretta ... per la cronaca, "vivo" con X10 da circa 5 anni ormai).

Pro

  • economicita'
    I moduli costano ormai poco e sono prodotti da tante ditte.
  • reperibilita'
    Perche' prodotti da tante ditte si trovano un po' ovunque, spesso anche nei supermercati
  • modularita'
    Si puo' iniziare con un paio di moduli, aggiungendone altri via via nel tempo
  • disponibilita' di moduli
    ci sono moduli di ogni tipo tra cui molti wireless (es. sensori presenza persone, telecomandi RF e IR, ecc.), centraline di comando autonome, interfacce per il PC e software di ogni genere per gestire X10, praticamente da Windows a Linux passando per tanti altri o.s. e ambienti
  • retrofit
    ideale per automatizzare case gia' finite.
    Permette di automatizzare case in affitto visto che ripristinare l'impianto in origine e' questione di minuti
Cons

  • affidabilita'
    specie adottando solo i moduli base non si ha un'affidabilita' al 100%.
    Direi che si aggira intorno al 90-95%.
    In soldoni ogni tanto capita che una luce o un carico non si accenda a seguito di un comando o che un carico o luce si accenda senza che sia stato dato un esplicito comando.
  • velocita'
    X10 non e' molto veloce ad eseguire comandi.
    Ci si puo' aspettare un ritardo tra invio dell'ordine a esecuzione da 1 a 3 secondi (dipende da tanti fattori che analizzeremo in seguito)
  • flessibilita'
    per quanto X10 permetta di fare tantissime cose, ha dei limiti strutturali per cui non e' possibile ad esempio usarla per inviare e ricevere molti dati.
    E' una tecnologia nata per gestire comandi.
    Ovvero non e' fattibile (per quanto qualcuno ci provi) usarla per inviare messaggi (es. rilevamento temperature)
  • messa a punto
    specialmente in USA mettere a punto un impianto X10 non e' una cosa immediata.
    Si devono affrontare problemi come riduzione del rumore elettrico e ripetere il segnale tra le fasi o amplificarlo/ripeterlo in caso di case grosse.
  • user friendly
    beh, questo IMHO e' il vero punto debole di questa tecnologia.
    X10 funziona e non mi posso certo lamentare, MA sono il primo a rendersi conto che non e' una tecnologia per tutti.
    X10 puo' essere felicemente adottata solo da chi e' in grado di intervenire in prima persona se qualcosa va male ed e' in grado di capire i limiti di questa tecnologia.
    Significa che solo qualcuno in grado di cambiare moduli (non tutti vanno solo in una presa) e capire qualcosa di elettronica potra' convivere felicemente con questa tecnologia.
    Non e' sicuramente per la sciura Gina, a meno che ci sia qualcuno in casa che sappia metterci mano.
 

Parte 2

Cosa e' X10 ?

Esattamente X10 e' :
  • una marca
  • un protocollo
  • una modulazione
E' una marca dato che esiste la ditta X10 che ... commercializza prodotti basati su tale protocollo (e anche altre cose, specialmente microcamere e trasmettitori 2.4 ghz .. ma e' un'altra storia).
E' un protocollo, dato che X10 e' nato per trasportare comandi su powerline.
Ma e' anche una modulazione, perche' X10 definisce non solo i comandi da inviare ma anche come questi vengono inviati sulla rete luce.

Lasciamo perdere la marca, concentriamoci su questi due aspetti di X10, ovvero protocollo e modulazione.

Modulazione
 Ok, come vengono inviati i comandi sulla rete luce ?
Premetto che non voglio scrivere un trattato su X10 ... in rete esistono tonnellate di informazioni riguardo X10 in ogni particolare (aggiungo qualche link alla fine), pero' almeno descrivere qualcosa per dare un'idea di come funzioni X10, quello si'.
X10 si basa sull'invio (e ricezione :-) ) di piccoli pacchetti RF a 120 Khz sincronizzati con il passaggio per lo zero della tensione di rete (60 Hz in USA, 50Hz in Italia).
Se un pacchetto (burst) e' inviato subito dopo il passaggio per lo zero, il ricevitore considerera' questo un '1' logico.
Se nessun pacchetto e' inviato subito dopo il passaggio per lo zero, il ricevitore considerera' questo uno '0' logico.
Il pacchetto RF ha una frequenza di 120kHz.
Un ricevitore X10 deve essere in grado di ricevere (ovvero dentificare) un pacchetto entro 200uSec (microsecondi) dal passaggio per lo zero e ogni pacchetto avra' una durata massima di 1 ms.
Per cui la temporizzazione e' fondamentale ed e' un punto critico !
A questo aggiungiamo che a seconda dell'applicazione potremo avere (per semionda) da 1 a tre pacchetti e i pacchetti sono inviati su entrambe le semionde.
Comandi semplici potranno usare un solo pacchetto, comandi complessi (ad esempio dimmer) fino a 3 per semionda.

Il protocollo X10 richiede che una trasmissione completa sia composta da 11 passaggi per lo zero.
Il codice di partenza (start code) viene trasmesso nei primi due passaggi per lo zero, i seguenti 4 cicli conterranno l'house code (vedremo piu' avanti cosa e') e gli ultimi 5 passaggi per lo zero conterranno le funzioni legate all'house code.
E' importante notare che che molti trasmettitori/ricevitori richiedono un "buco" ogni 11 cicli, questo perche' data la natura critica di tale protocollo, un comando e' di solito ripetuto due volte (ovvero un comando valido normalmente richiedera' 22 passaggi per lo zero per essere inviato).
Inoltre al termine di un comando ci dovranno essere almeno 3 cicli a vuoto (ovvero per 3 passaggi per lo zero non dovranno esserci trasmissioni).
Fanno eccezione i comandi di Dim e Bright (riduzione luminosita' e aumento luminosita').
Proprio perche' il mezzo su cui X10 lavora e' critico (la linea elettrica, soggetta a disturbi di ogni tipo), c'e' anche una codifica particolare dei bit.
Ovvero per inviare un '1' logico si trasmettera' fisicamente una coppia di bit (quindi due passaggi per lo zero), secondo questa tabella :
 
- '1'  -> 10
- '0'  -> 01
Questa codifica e' stata fatta in modo da ottenere il complemento dei dati quando sono inviati.
Unica eccezione e' il codice di inizio (start code) che e' pari a : 1110.
Questo codice e' unico. Diamo un'occhiata ora al protocollo
Protocollo
 X10 e' un protocollo nato per inviare "comandi" ad apparati.
Ogni ricevitore (che quindi e' colui il quale "attua", esegue i comandi) e' identificato da un indirizzo e l'indirizzo a sua volta e' scomposto in due parti :

  • house code
  • numero
X10 prevede 16 house code (normalmente identificati con una lettera, da A a P) e 16 numeri per ogni house code, per cui potremo avere fino a 256 differenti ricevitori.
Oltre a questo potremo inviare ad ogni modulo (o anche a piu' moduli, in broadcast) i seguenti comandi :
On, Off, Dim (diminuisci luminosita'), Bright (aumenta luminosita'), all unit off, all light off, all ligh on e altri comandi particolari (vedere tabella).
Quindi ogni "comando" in genere e' composto da due o piu' "comandi base".
Il primo comando conterra' l'indirizzo del modulo e il secondo (e successivi eventualmente) l'azione che il modulo ( o moduli) interessato deve fare.
Ecco una tabella con i principali indirizzi/comandi per X10 :

CODICI COMANDO X10 
House Codes                         Unit/Function Codes
H8  H4  H2  H1                        D8  D4  D2  D1   F
A   0   1   1   0                  1      0   1   1   0   0
B   1   1   1   0                  2      1   1   1   0   0
C   0   0   1   0                  3      0   0   1   0   0
D   1   0   1   0                  4      1   0   1   0   0
E   0   0   0   1                  5      0   0   0   1   0
F   1   0   0   1                  6      1   0   0   1   0
G   0   1   0   1                  7      0   1   0   1   0
H   1   1   0   1                  8      1   1   0   1   0
I   0   1   1   1                  9      0   1   1   1   0
J   1   1   1   1                 10      1   1   1   1   0
K   0   0   1   1                 11      0   0   1   1   0
L   1   0   1   1                 12      1   0   1   1   0
M   0   0   0   0                 13      0   0   0   0   0
N   1   0   0   0                 14      1   0   0   0   0
O   0   1   0   0                 15      0   1   0   0   0
P   1   1   0   0                 16      1   1   0   0   0
All Units Off      0   0   0   0   1
All Units On      0   0   0   1   1
On      0   0   1   0   1
Off      0   0   1   1   1
Dim      0   1   0   0   1
Bright      0   1   0   1   1
All Lights Off      0   1   1   0   1
Extended Code      0   1   1   1   1
Hail Request      1   0   0   0   1   Nota1
Hail Acknowledge      1   0   0   1   1
Pre-Set Dim      1   0   1   X   1   Nota2
Extended Data      1   1   0   0   1   Nota3
Status is On      1   1   0   1   1
Status is Off      1   1   1   0   1
Status request      1   1   1   1   1   Nota4
Nota 1:  L'Hail Request e' inviato per vedere se ci sono trasmettitori 
compatibili con X10 connessi. E' una funzione speciale e
richiede moduli speciali.
Nota 2:  In un Pre-Set Dim, il bit D1 rappresenta l'MSB del livello e
i 4 bit dell'House code rappresentano i 4 bit LSB.
Non esiste nessun modulo X10 che effettivamente utilizzi
questa funzione.
Nota 3:  Il codice di Extended Data e' seguito da 8 byte che
rappresentano qualsiasi cosa si voglia (ad esempio
una temperatura).
Non devono esserci ritardi tra il codice e il dato.
Nota 4:  I moduli che supportano il feedback rispondono a questo codice
riportando lo stato ON o OFF in cui si trovano.
Ora ... gia' vedendo come il protocollo e' fatto, ovvero come i comandi vengono inviati in rete, si possono gia' dedurre alcune limitazioni :

  • lentezza
    Un comando "normale" (ovvero indirizzamento modulo e invio comando) richiede per essere inviato 47 passaggi per lo zero.
    Ovvero 22 per l'indirizzamento (11 cicli per comando + ripetizione del comando) e 22 per il comando piu' 3 di "buco" A 60 Hz abbiamo circa 16 mSec per ciclo, ovvero 16 mSec * 47 = 0.7 sec !
    Comandi piu' complessi possono richiedere maggior tempo.
    A questo bisogna considerare che il segnale a volte deve essere riportato su un'altra fase, o nel caso esistano controllori, questi ricevono i comandi da sensori/trasmettitori e rigenerano un comando per i ricevitori.
    A 50 Hz la cosa e' peggiore dato che avremo 20 mSec per bit, ovvero 20 mSec * 47 = 0.9 sec !
    Ecco che quindi e' fattibilissimo avere ritardi da 1 a 3 secondi
  • collisioni
    X10, almeno nella versione base, non prevede nessun controllo per collisioni di pacchetti.
    Ovvero se due trasmettitori inviano nello stesso momento si ottiene solo di incasinare i messaggi inviati.
    Versioni successive di X10 incorporano anche un sistema anti collisione ma e' ovvio che si dovranno usare moduli appositi (e molto ma molto piu' costosi di quelli base)
  • feedback
    Sempre per la versione base, X10 non prevede feedback (anche se il protocollo prevede il codice di status request).
    Significa che normalmente non c'e' modo di sapere se un comando e' stato eseguito o meno.
    Come il punto precedente, revisioni di X10 hanno inglobato questa possibilita' ma i moduli costano un bel po' di piu' e di solito non gradiscono convivere con moduli vecchi
  • invio dati
    Vista la natura di questo protocollo, per quanto sia previsto un codice apposito per inviare dati generici (es. temperature/ecc.), X10 non si presta ad essere usato per scambiare dati.
    Non c'e' un controllo di flusso, non c'e' un sistema di protezione, la lentezza e se si inviano dati non e' possibile effettuare comandi ...
 

Parte 3

 .. ovvero come usare X10 per automatizzare una casa.
[Premessa doverosa ON]
Per forza di cose posso parlare di cosa conosco e posso reperire.
Utilizzero' marche/sigle di moduli in vendita in USA.
So per certo che il 90% di tali moduli e' disponibile anche per il mercato europeo ma probabilmente con sigle differenti.
Lascio agli interessati trovare eventualmente gli equivalenti !
Anche, si tenga conto che e' possibile modificare i moduli USA per funzionare in Europa !
Ovvero e' fattibile comprare i moduli USA, modificarli e usarli in Italia.
Ovvio che sconsiglio fortemente questa cosa a chi non ha dimestichezza con l'elettronica e lavorare con tensione di rete !
Inoltre ci sono tutta una serie di problemi legali ... ovvero chi lo fa, lo fa totalmente a propria responsibilita' !!!!
[Premessa doverosa OFF]
Il bello di X10 e' che e' una tecnologia economica e modulare.
Ovvero si puo' partire davvero con poco :

  • un trasmettitore
  • un ricevitore/modulo attuatore
 
Ovvero potremo usare un Mini controller (ad esempio un MCS460) che permette di comandare fino a 4 moduli ed un lamp module (LM465) che permette di controllare una lampada ad incandescenza (fino a 500W).
Il Mini controller non e' altro che uno scatolotto con 5 interruttori (on/off).
Il quinto interruttore serve per la funzione di dim/bright, ovvero per diminuire o aumentare la luminosita'.
Semplicemente basta connettere ad una presa il mini controller e ad un'altra presa il lamp module (e una lampada a tale modulo).
Dovremo scegliere un house code e unit number (da 1 a 4 o da 5 a 8, visto che il mini controller puo' controllare solo 4 unita'), impostare sia sul mini controller che sul lamp module lo stesso house code, impostare sul lamp module un numero (unit code) gestibile dal mini controller ... e voila'.
Tramite il mini controller potremo accendere e spegnere la lampada a piacimento.
Ok, non e' molto eccitante, lo so :-)

Si puo' pero' partire allora con un "kit" base come l'ActiveHome kit.
In questo kit ci sono alcuni moduli :
 
  • un "appliance module" (RS501) che permette di controllare carichi di ogni genere (e' un rele') e che fa anche da ricevitore RF
  • un "lamp module" (LM465) che permette di controllare appunto lampade ad incandescenza
  • un mini telecomando RF
  • un modulo interfaccia computer (CK11A)
  • un software per controllare i moduli (per Windows) (ActiveHome)
  • un telecomando universale (Tv/VCR/Dvd e .. X10)
A titolo di curiosita', esiste un kit identico anche di IBM, chiamato HomeDirector.
Stessi moduli ma dicono che il SW fa un po' meno schifo :)
Con un kit come questo e qualche altro modulo e' gia' possibile sbizzarrirsi nel connettere luci e altre cose e gestirle tramite computer.
L'interfaccia e' Rs232 verso il computer e totalmente isolata dalla rete luce.
Vediamo come procedere.
Potremo assegnare un house code a gruppi funzionali, ad esempio luci primo piano, luci camere da letto, luci bagni, ecc.
In questo modo possiamo sfruttare anche i comandi "broadcast" in modo da accendere o spegnere gruppi di luci contemporaneamente.
Ed ovviamente potremo anche avere luci diverse comandate da moduli diversi ma aventi lo stesso indirizzo.
In pratica potremo creare punti luce virtuali, nel senso che con un solo comando potremo gestire luci posizionate in posti diversi.
Il software e' abbastanza grezzo ma ne esistono molti altri che usano la stessa interfaccia (il malefico modulo CK11A :-) ), anche per Linux.
Il modulo inoltre e' autonomo, ovvero lo si puo' programmare e poi sconnettere il PC.
Questo permette di avere un minimo di "intelligenza" nella gestione senza dover lasciare il PC connesso 24h al giorno.
Inoltre nel kit c'e' anche la base per avere un minimo di wireless.
Ovvero tramite i telecomandi potremo comandare le luci o attivare programmi memorizzati nell'interfaccia (CK11A).
Molto comodo quando si guarda la TV per spegnere o abbassare le luci o attivare "scenari" senza doversi alzare (per i pigri come me e' una cosa irrinunciabile).
Il modulo di interfaccia (CK11A) ha anche, tra le altre cose, la possibilita' di salvare delle "macro".
Le macro sono dei gruppi di comandi gestiti dal modulo CK11A.
In pratica e' possibile raggruppare piu' comandi in una "macro" e quando la si esegue e' come dare in sequenza piu' comandi. Ad esempio ho una macro "Check" (M4) che se l'attivo (M4 On) :

  • spegne le luci del primo piano
  • accende le luci esterne
E quando la disattivo (M4 Off) :

  • spegne le luci esterne
  • accende le luci del primo piano
  • riduce la luminosita' del 50%
Il telecomando universale poi e' tutto sommato fatto bene.
Praticamente con quello comando quasi tutto :-)
Inoltre con il wireless esistono alcuni moduli molto interessanti, come i sensori di movimento.
Sono modulini piccoli, a batteria, che hanno un PIR e capaci di generare un comando X10 (on/off) se rilevano movimento e/o cambiamenti di luminosita'.
Io ad esempio ne uso un po' in varie zone.
Nei bagni o in cucina.
L'effetto ovviamente e' quello di accendere e spegnere automaticamente la luce entrando in una stanza :), ma sono egregi anche per discriminare luce/buio e come sensori per allarme.
E ovviamente possono "triggerare" anche delle macro specifiche.
Ad esempio uno dei moduli e' all'esterno e lo uso sia per monitorare movimenti notturni che per sapere quando e' sera.
Quando la luminosita' scende sotto una certa soglia viene attivata una macro che accende la luce esterna alla porta d'ingresso, alcune luci sui vari piani e ne riduce la luminosita', tanto per non avere la casa al buio.
Un altra macro, comandata dal timer interno all'interfaccia CK11A, alle 2 del mattino, si assicura che tutte le luci siano spente, nel caso io me ne sia dimenticato.
Esistono poi anche moduli come il campanello, che suona quando riceve uno specifico codice.
Nel mio caso ne ho usato uno come allarme antiallagamento.
Ovvero, ho progettato e costruito un sensore anti allagamento.
Questo sorveglia 3 zone e in caso una delle zone ci sia un po' d'acqua, comanda un trasmettitore RF X10 (modificato).
L'allarme, essendo un modulo X10 spostabile, l'ho messo al piano di sopra in modo che se avviene il patatrac in lavanderia ne veniamo informati subito.
Senza X10 avrei dovuto tirare un filo al piano superiore per questa cosa.

Altro tipico vantaggio lo si ha per Natale o altre feste, dove si usano luminarie, ovvero quando si devono connettere le lucine (esterne ed interne).
Un modulo "appliance" che comanda le varie luci e una modifica al programma ed ecco le luci natalizie "integrate" nella casa.
Si possono accendere ad una certa ora o quando e' buio o se qualcuno si avvicina a casa (basta un modulino PIR messo fuori, magari nascosto in un vaso di fiori) o se danno fastidio, le si spengono dal divano, con il solito telecomando.
Quando poi si tirano via ... si rimuove il modulo e in meno 5 secondi si ripristina la situazione precedente.
Un altro uso che faccio di X10 e' per il laboratorio.
Usando alcuni "appliance module" (es. LM486) strategici posso accendere/spegnere PC, strumenti, schede di test, senza dovermi muovere dalla mia postazione di lavoro.
Molto comodo per non dover andare in giro per il laboratorio quando si stanno facendo test e si devono resettare delle apparecchiature.
Con un mini controller o un'interfaccia RF connessa al PC, comando un po' di carichi alla bisogna.
E dato che esistono moduli "a contatti aperti" e' possibile anche usare X10 per resettare apparati o dare input specifici.
Dato che esistono anche interfacce telefoniche e' anche fattibile pilotare carichi da remoto, via telefono .. quindi fantasia al potere.
Basta avere una presa di corrente e una presa telefonica ed e' possibile attivare luci e richiedere lo stato dei vari carichi (se ovviamente si hanno moduli bidirezionali) e il gioco e' fatto.
Anche e' possibile avere terminali di comando per X10 (molto costosi ma veramente belli) o molti usano un PDA per comandare la casa.
Altro possibile utilizzo di X10 e' per la sorveglianza.
Ho 3 telecamere (della X10) .. la qualita' non e' certo granche' ma per vedere chi c'e' alla porta vanno piu' che bene.
Dicevo, ne ho 3. Due fisse e una mobile, ovvero che posso comandarne il movimento (alto/basso - destra/sinistra) usando dei comandi X10 naturalmente.
Le telecamere sono wireless e sempre via X10 (tramite degli alimentatori da muro con integrato un ricevitore X10) posso decidere quale accendere.
Un monitor LCD (7") connesso ad un ricevitore per le telecamere e il gioco e' fatto.
Posso cosi' vedere chi c'e' alla porta, o una panoramica del cortile o vedere la porta posteriore, non muovendomi dall'ufficio. E naturalmente e' fattibilissimo connettere un altro ricevitore delle telecamere (audio/video) all'impianto TV in modo che da ogni TV e' possibile vedere cosa riprendono le telecamere.

Tanto per dare qualche idea, in casa ho usato la seguente configurazione :

House code I  -> luci interne
House code E  -> luci esterne/sensori/telecamere
House code J  -> laboratorio
House code M  -> macro

Parte 4

 
In questa parte discuteremo del "lato oscuro" di X10, perche' finora abbiamo piu' o meno visto cose che si trovano sui depliant.
Quindi, via le facce sorridenti e "tutto e' perfetto" .. entriamo nel regno delle gabole ! :-)

Nota che ritengo IMPORTANTE e FONDAMENTALE (non solo io ... molti che conoscono e usano X10 adottano questa regola) :
S C O N S I G L I O assolutamente X10 versione di base per controllare carichi critici e potenzialmente a rischio.
Ovvero stufette elettriche semplici o carichi che se lasciati connessi possono generare incendi !
A meno di prendere dovute precauzioni, o adottare moduli bidirezionali e con feedback (molto piu' costosi di quelli semplici) X10 e' da evitare per comandare carichi potenzialmente a rischio.
Ovvero, se si ha una stufetta che e' comunque in grado di autoregolarsi e sconnettersi prima di generare una situazione di pericolo, puo' essere comandata da X10.
Altrimenti NO !

Questo proprio per l'implicita insicurezza del protocollo base X10.

I problemi

 
Gia' nella prima parte accennavo al fatto che X10 non e' un protocollo sicuro al 100%.
Significa che se si usano moduli base, quelli economici, qualche volta puo' capitare un problema.
Ad esempio puo' capitare che una luce non si accenda quando si invia il comando.
Puo' capitare quando due moduli inviano un comando nello stesso momento o se c'e' un forte disturbo in linea, cosi' forte da interferire con il segnale.
Finche' e' una luce che non si accende o che non si spegne, poco male.
Ma se e' un qualche carico pericoloso e senza autofeedback, beh la cosa non e' simpatica.

Ovviamente piu' moduli si hanno in casa, piu' aumenta la probabilita' di avere problemi di questo tipo.
Ad esempio, ogni sensore PIR trasmettera' quando riconosce del movimento nella stanza.
Se si hanno due sensori in due stanze e due persone entrano contemporaneamente nelle stanze sorvegliate da tali sensori, si otterranno due trasmissioni che quasi sicuramente otterranno di non accendere nessuna luce.
Oppure piu' sovente la causa e' sui moduli wireless, piu' soggetti a problemi di distanza e interferenza.
Specie alcuni moduli (come switch RF) hanno una parte RF veramente penosa.
E' imperativo, specie se i moduli sono posti lontano dal ricevitore, amplificare in qualche modo il segnale RF.
Fortunatamente spesso basta un pezzo di filo per fare un'antenna passiva (cosa non si trova sui gruppi di discussione HA in USA :-) ),cosa che pero' propone problemi estetici, a meno di "annegare" il ripetitore nel muro (che ricordo essere di cartongesso, non intonaco e cemento come in Italia).
Inoltre per risparmiare sui costi di produzione, molti moduli RF sono proprio ... spartani :)
Quindi significa fatti non propriamente bene.
Anche alcuni interfonici ad onde convogliate possono (e vogliono !!!) disturbare le trasmissioni X10, specie perche' spesso gli interfonici usano una portante a 120khz !
Ovvero la stessa frequenza dei pacchetti usati da X10 !
Piu' raramente puo' accadere che una luce si accenda senza sia stato inviato un comando.
Anche qui di solito si tratta di un disturbo particolarmente forte e con un particolare pattern che "simula" un comando X10 oppure moduli troppo sensibili al rumore elettrico.
Raro ma l'ho visto accadere.
Meno raro invece l'avere un comando X10 che in qualche modo "assomiglia" ad un altro comando X10.
Dipende dalla combinazione di house code/unit code, alcune combinazioni in determinate condizioni possono attivarne altre.
Ad esempio la combinazione I10 per qualche motivo, solo su alcune prese, mi attiva il comando M1 e solo quando opero con il Dim o Bright.
Quando succede questo l'unica cosa e' eliminare il codice e usarne un altro oppure (come nel mio caso) cambiare presa :-)
Altro possibile problema puo' anche essere un vicino che abbia anche lui X10.
Il segnale X10 a volte passa attraverso il contatore, oppure potrebbe essere ricevuto via wireless, questo nel caso di appartamenti.
L'unica vera soluzione in questo caso e' accordarsi con il vicino per non disturbarsi a vicenda.
Altro classico problema con X10 sono alcuni moduli.
Il lamp module, specialmente la versione da incasso, e' piu' sensibile e fragile di altri moduli.
A volte basta una lampadina che brucia per generare disturbi che bruciano anche il modulo ed e' in genere un modulo piu' sensibile ai disturbi.
Avevo un gruppo di faretti che random si accendevano da soli e sono diventato matto per trovare la causa.
Era una lampada al neon moribonda che generava treni di spurie da poter essere usati come cardiostimolatore :-)
Cambiata la lampada il problema e' sparito.
Per quanto riguarda le rotture di questi moduli, fortunatamente il 99% delle volte e' il Triac che si limita a suicidarsi, basta sostituirlo e il modulo torna come nuovo, ma e' ovvio che solo chi e' in grado di aprirsi il modulo e ripararlo ha qualche possibilita' di non spendere troppi soldi !
Altri moduli, come l'appliance module (e il lamp module esterno, plug in), hanno invece un circuito che in teoria e' molto comodo, il "current sensing".
Ovvero se si connette un carico al modulo e il carico inizia ad assorbire corrente, il modulo si attiva, come se avesse ricevto il comando di ON.
La cosa e' pensata per poter comandare in locale un carico.
Ad esempio, connettiamo una lampada da tavolo al modulo, la accendiamo in locale, e il modulo "sentendo" il carico connesso si attiva,accendendo cosi' la lampada.
Per fare cio' il modulo "alimenta" il carico con una corrente di prova e se viene rilevata dal sensore interno, il modulo da' piena potenza.
Il problema si presenta con alcuni "carichi", come ad esempio lampade fluorescenti (neon), specie quelle a basso consumo.
La circuiteria di queste lampade viene attivata da queste correnti di prova e il modulo X10 crede il carico si sia attivato in locale.
L'effetto pratico e' ovviamente quello che non e' possibile spegnere la luce :-)
Un difetto molto ma molto fastidioso.
Anche perche' con alcune lampade il difetto e' totalmente casuale.
Ovvero a volte funziona tutto normalmente e a volte non c'e' verso di spegnere la lampada.

Le soluzioni

Beh, di solito la soluzione dipende da tre fattori :
  • natura del problema
  • capacita' del singolo
  • soldi a disposizione :-)
Avendo tanti soldi a disposizione la soluzione a molti problemi (non tutti pero') e' di usare moduli bidirezionali e con feedback, che fanno uso di "codici estesi" X10 che garantiscono ristrasmissione e aggiungono codici di sicurezza, in modo da evitare interferenze con possibili vicini e garantire la ricezione di un comando.
Per i disturbi ed interferenze, esistono filtri da mettere all'ingresso dell'impianto elettrico che bloccano comandi X10 entranti e uscenti.
Si possono posizionare in punti strategici degli amplificatori di segnale per irrobustire il segnale X10 e aumentarne cosi' l'immunita' ai disturbi.
Nella realta' USA inoltre ci sono alcuni problemi causati dalla struttura dell'impianto elettrico.
Per spiegare la natura di tali problemi (e loro soluzione) devo descrivere brevemente come e' strutturato un impianto elettrico (domestico) USA.
Innanzi tutto esiste uno standard federale, cui tutti gli stati aderiscono, che da' alcune linee guida, e uno standard statale.
Va da se' che piu' o meno tali standard (statali) sono molto simili.
Lo standard, almeno quello del Maryland dove vivo, prevede l'ingresso di due fasi a 110 V 60 Hz, per un totale di 18 KwH.
Ma e' possibile ovviamente richiedere piu' fasi.
Ad esempio un mio amico aveva ben 4 fasi .. casa grande e un laboratorio di falegnameria per hobby.
Le fasi entrano in uno scatolotto chiamato "breaker" che contiene "n" interruttori magnetotermici, da 15A e 20A l'uno (nel caso di piu' di due fasi e' possibile avere piu' breaker).
In pratica dal breaker partono "n" cavi che vanno in giro per la casa.
Per legge alcuni di questi cavi hanno uno scopo definito e non modificabile.
Ad esempio un cavo serve solo ad alimentare il tritarifiuti, un altro il dryer (asciuga biancheria) che se e' elettrico richiede entrambe le fasi, un altro la caldaia, ecc.
Poi, a piacimento, e' possibile avere "n" cavi per illuminazione e prese.
Ad esempio nel mio caso ho 16 interruttori magnetotermici e quindi 16 cavi che partono dal breaker che vanno un po' ovunque per la casa.
Assumendo il mio impianto come esempio (due fasi standard), a parte il dryer ed eventualmente la cucina elettrica e la caldaia (tutti carichi che richiedono le due fasi), le due fasi vengono suddivise per tutta la casa.
E' possibilissimo una presa sia su una fase e quella successiva su un'altra.
Il cablaggio qui e' "volante", quindi niente tubi o canaline che sono pero' obbligatorie se l'impianto va all'esterno della casa.
I cavi sono rigidi e ogni cavo ingloba una o due fasi, il neutro e la terra.
Ci sono vari tipi di cavo per diverse pose ovviamente.
Se si parte da un breaker da 15A si potra' usare un 14 Awg, un 20A richiede un 12 Awg e cosi' via.
Il cablaggio volante va benissimo per vari motivi, primo fra tutti il fatto che le case sono in legno e il cavo libero evita surriscaldamenti.
Basti pensare che un fornello elettrico di solito e' composto da 4 burner di cui il piu' piccolo sono 1200W !!!!
Di corrente ne passa !
Ora, questo tipo di cablaggio, specialmente riferito alle fasi, presenta dei problemi per X10.
Infatti innanzi tutto non e' detto che il segnale trasmesso da una presa arrivi sull'altra.
Di solito il dryer o la caldaia fanno da "ponte" tra le fasi, ma se non basta bisogna mettere dei filtri che riportano il segnale X10 sull'altra fase.
E non solo, il segnale sull'altra fase deve essere "sincronizzato" correttamente con il passaggio per lo zero.
Le fasi che entrano in casa non sono necessariamente sincronizzate tra loro.
Quindi ci sono casi "fortuiti" dove tutto va senza problemi, ma spesso la cosa non e' cosi' semplice da risolvere.
Se non c'e' sincronizzazione tra le fasi non basta riportare il segnale in modo passivo tra le varie fasi, ma bisogna rigenerarlo per intero.
Ovvero non basta certo un filtro passivo ma serve un circuito apposta.
Anche diagnosticare questi problemi non e' facile ed economico.
Serve strumentazione adatta a misurare la correttezza di un segnale X10.
E come si puo' immaginare gli strumenti (che esistono) non sono per nulla economici.
Nel mio caso ho realizzato un'interfaccia per l'oscilloscopio con la quale posso "vedere" il segnale X10.
Ma non tutti gli istallatori hanno un oscilloscopio a disposizione e sanno come usarlo ... di sicuro non la sciura Gina.
Inoltre sono stato fortunato e il dryer basta e avanza per "ponte", anche perche' la casa non e' enorme e le fasi sono sincronizzate.
Ah, la sincronizzazione ovviamente non e' garantita ... per cui puo' capitare ogni tanto che appaiano "fantasmi", ovvero eventi molto strani e .. luci che non vanno o che si accendono da sole.
Per i problemi derivanti dai moduli RF invece le soluzioni sono piu' complicate, specie se si hanno piu' ricevitori e trasmettitori RF.
La parte RF in X10 e' pensata in modo da avere un ricevitore che non fa altro che convertire e inviare sulla rete luce, comandi X10 ricevuti via RF.
Quindi in questo caso avremo ben due punti di possibile collisione :

  • la parte RF
  • la parte su rete luce
Piu' moduli si hanno, piu' e' probabile avere situazioni critiche.
Questo implica che perche' un impianto X10 funzioni decentemente, va pianificato in precedenza, il che implica ovviamente analizzare le abitudini delle persone che vivono in una casa automatizzata.
Mettere moduli ovunque, senza pensare a come questi interagiscono tra di loro, significa solo essere sicuri di avere maggiori probabilita' di interferenze.
Mai mettere sensori di movimento in zone molto frequentate ad esempio, a meno di progettarsi dei sensori di movimento in grado di inviare un segnale X10 solo a fronte di reale necessita'.
I modulini PIR ad esempio si limitano ad inviare un comando ogni volta che rilevano movimento ... il che significa avere una marea di trasmissioni X10 sia RF che in linea, totalmente inutili e potenzialmente dannose per altre utenze.
Il protocollo RF e' leggermente diverso da quello della rete luce ma e' comunque un qualcosa di molto semplice, niente di sofisticato.
Oltre alle collisioni, il tipico problema e' la sensibilita' del ricevitore e la potenza del trasmettitore.
Ostacoli, muri, ecc. creano dei "corridoi" per il segnale X10, ovvero esisteranno zone d'ombra dove il segnale non arrivera'. In questi casi e' un bel gioco a posizionare il ricevitore in un punto ottimale per ricevere TUTTI i trasmettitori che avremo piazzato in giro per la casa.
A meno di non disporre di un analizzatore di spettro, la taratura andra' fatta per forza di cose sperimentalmente.
Per il comportamento anomalo di alcuni moduli invece, e' quasi sempre possibile modificarli.
Spesso in rete si trovano gli schemi e trucchi per ovviare ai piu' comuni difetti, come il current sensing, e la comunita' di persone che usano X10 e' sempre disponibile a scambiarsi trucchi ed esperienze.
Ma e' ovvio che implica saper mettere le mani su circuiti elettronici, sapendo quello che si fa.
Essendo moduli sotto tensione di rete e' decisamente poco igienico pasticciarci se non si sa piu' che bene cosa si sta facendo.
 

Parte 5

 
In questa parte illustro come attualmente utilizzo X10, per illustrare praticamente alcuni concetti esposti precedentemente.
In attesa di sviluppare un sistema HA basato su Yasp (o Can o comunque su Bus), utilizzo al momento X10 per automatizzare alcune luci e carichi.
Un uso non decisamente gravoso, appunto perche' non prevedo di basare tutto il sistema HA su X10 .. potendo migrerei piuttosto su ZigBee, ma avendo tonnellate di materiale X10 gia' pronto non vedo perche' non usarlo.
Innanzi tutto ho stabilito di usare alcuni codici Home, in questo modo :

  • C - carichi
    Uso questo codice per gestire carichi particolari, quali ventole, videocamere, ecc.
  • E - esterni
    Questo codice e' dedicato a carichi (luci di solito) posti all'esterno della casa
  • I - interni
    Questo codice e' dedicato a carichi (luci di solito) posti all'interno della casa
  • L - laboratorio
    Alcuni PC e strumenti di misura in laboratorio sono sotto X10 in modo che dalla postazione principale posso attivarli/disattivarli.
    Questo codice e' dedicato a questo uso, eventuali luci comprese.
  • M - macro
    Abbastanza intuitivo. Tutte le macro usano questo codice.
Con questo schema iniziale quindi ho messo sotto controllo alcune luci (non tutte) e alcuni carichi.
Oltre le luci via X10 comando :

  • ventole
  • pompa dell'acquario
  • Pc e strumenti di misura in laboratorio
  • telecamere X10
In alcune zone poi ho installato anche dei sensori X10 per attivare automaticamente la luce, come ad esempio il garage e il deck esterno.

Punti di comando

 Gestisco l'impianto con un modulo CM11a come "core".
Principali attivazioni via timer, alcune semplici macro, sono gestite da questo modulo.
Poi dispongo di alcuni comandi RF, di un mini timer e remote control center, principalmente per gestire i carichi dell'ufficio.

X10 - notes about the CM11A

WARNING !   X10 stuff is connected to the power grid !
If you don't know what you are doing, don't do it !!
YOU are responsible for your safety !


The CM11A Image
 
The CM11A is a controller, one of the first controllers, used to create scenery and macro with X10.
Has a RS232 interface, to allow a PC to program the unit or use it as "interface" toward the X10 plant.
Was part of the CK11A kit, one of the first ActiveHome kits.

The problems

The CM11A always had some problems.
The most famous was (or is) the overheating.
There are tons of material about this problem, and also some solutions, like the one on the Ido Bartana website, devoted to X10.

Another intermittent problem, is related to some internal failures over the years.
Usually, every 5 or 6 year, a unit is expected to die.
Few years ago (was the 2002) one of my unit died, so I decided to repair it.
Now, few days ago, the unit I put to substitute the one broken years ago died as well.

So in this article I'm trying to collect the information to repair the CM11A.

The overheating

Sometime the CM11A suffer of a problem that become apparent with the total stop of any activity and a overheating of the unit itself.
Here an article that describe in detail what happens and a possible solution.


Unit receive, connect to the PC but not send any X10 signal
The problem, is related to a transistor that is connected to the transformer.
Since the unit is capable to receive X10 signals, we have to assume the transformer and passive components are alive.

Basically Q7 is the transistor that receive the X10 signal from the microcontroller and drive the transformer.
If this transistor is dead, no X10 transmission happens.
The transistor originally was a 2SD667 (Japanese transistor).
I replaced it with a normal high voltage NPN (I used a MPSA44 Motorola).
Open the box is extremely easy, is enough to unscrew the 4 screws at the bottom with a small Philips and gently separate the two plastic shells.

Here some pictures to help to identify the transistor in the circuit.



The transistor is close to the transformer metal enclosure, the one that became hot for the overheating problem.
I suspect that the cause of the death of such transistor is due to the overheating and the time.
The PCB close to the transistor is well cooked (not easy to see from the pictures, just believe me).

There is no need to detach the cables. Just gently extract the circuit bending the cables.

After the fix the unit restarted to work as usual.

Saturday, September 25, 2010

Welcome

Well, here we are.

HAnix-diy - Public  ... let's start from the title of the blog.

HAnix-diy is the name of a website that I use as private technical notebook, where I write what I'm doing, notes, links.
diy is quite self-explicative, do it yourself.
HAnix is a kind of word created from HA (Home Automation) and  Unix, but of course during the years I saved in my website any kind of notes, not only about home automation.

HAnix-diy is private. For many reasons.
However sometime can be worth to share some experiences, notes, ideas, projects with other people.
So ... here we are, with HAnix-diy - Public.

Most of the posts will be a copy of articles published  on the HAnix-diy website or other my websites.

I hope someday to post something useful to someone.