# X10

X10 es un protocolo de comunicaciones para el control remoto de dispositivos eléctricos que utiliza la línea eléctrica (220 V o 110 V AC) preexistente para transmitir señales de control entre equipos de automatización del hogar (domótica) en formato digital. Los dispositivos X10 que se comercializan son solo para uso individual y en entornos domésticos de hasta 250 m², dada su limitación en ancho de banda y en el número máximo de dispositivos a controlar (256). No obstante existen elementos de última generación que incorporan, entre otros, los protocolos X-10 extendidos, para dar funcionalidad a soluciones de comunicación como la bidireccionalidad, solicitud de estados y comprobación de la correcta transmisión de las tramas.
X10 fue desarrollada en 1975 por Pico Electronics of Glenrothes, Escocia, para permitir el control remoto de los dispositivos domésticos. Fue la primera tecnología domótica en aparecer y sigue siendo la más ampliamente disponible, principalmente por su característica de autoinstalable, sin necesidad de cableado adicional.
Las señales de control de X10 se basan en la transmisión de ráfagas de pulsos de RF (120 kHz) que representan información digital. Estos pulsos se sincronizan en el cruce por cero de la señal de red (50 Hz o 60 Hz). Con la presencia de un pulso en un semiciclo y la ausencia del mismo en el semiciclo siguiente se representa un '1' lógico y a la inversa se representa un '0'. A su vez, cada orden se transmite 2 veces, con lo cual toda la información transmitida tiene cuádruple redundancia. Cada orden involucra 11 ciclos de red (220 ms para 50 Hz y 183,33 para 60 Hz).
Primero se transmite una orden con el Código de Casa y el Número de Módulo que direccionan el módulo en cuestión. Luego se transmite otra orden con el código de función a realizar (Function Code). Hay 256 direcciones soportadas por el protocolo.
Se han propuesto distintas alternativas con más banda, incluyendo protocolos como European Home Systems, Lonworks, XD2, CEBus, aunque sigue siendo el más extendido.

## Historia

En 1978, los productos X10 comenzaron a aparecer en Radio Shack y Sears
En la década de 1980, apareció la interfaz de ordenador CP-290. El software para la interfaz funciona en Apple II, Macintosh, MS-DOS y MS-Windows.

## Introducción al control de la portadora de la línea eléctrica
### Protocolo y descripción del sistema

El protocolo X10 consta de bits de «direcciones» y de «órdenes». Por ejemplo, permite decir «lámpara #3», «¡enciéndete!» y el sistema procederá a ejecutar dicho mandato. Usted puede direccionar varias unidades antes de dar la orden: «lámpara #3, lámpara #12», «¡encendeos!». Como puede verse en la lista de más abajo, existen múltiples instrucciones utilizadas por el protocolo entre las cuales destacamos: ON, OFF, All Lights ON, All off, DIM, BRIGHT.
Los dispositivos están generalmente conectados a la red con módulos X10 (receptores). X10 distingue entre módulos de lámparas y módulos de dispositivos. Los módulos de lámpara proporcionan energía y aceptan órdenes X-10. Los módulos de dispositivos son capaces de gestionar cargas grandes (ej. máquinas de café, calentadores, motores,...), simplemente encendiéndolos y apagándolos.
Si desea controlar luces vía mandatos X-10, debería conectar la luz en un módulo de luz en la red y, a continuación, asignarle una dirección (A1, por ejemplo). Así, cuando envíe la orden «A1 encendido» a través de los cables de la red eléctrica, la luz se debería encender. Cabe destacar que los módulos de lámparas no pueden soportar grandes cargas y que todo el sistema es muy sensible a los ruidos eléctricos por lo que es considerado como un sistema para el "hazlo tu mismo".
Actualmente X10 es un protocolo que está presente en el mercado mundial, sobre todo en Norteamérica y Europa (España, Holanda, Portugal y Gran Bretaña fundamentalmente).
Los nuevos protocolos de comunicación en la red eléctrica ocupan una señal más fuerte e inmune al ruido eléctrico, uno de estos protocolos es el llamado UPB (Universal Powerline Bus)

#### Lista de comandos X10

| Código | Función | Descripción | Unidireccional | Bidireccional |
| 0 0 0 0 | All units off | Apaga todos los dispositivos con el código de casa indicado en el mensaje | X | |
| 0 0 0 1 | All lights on | Enciende todas las luces (con la posibilidad de controlar el brillo) | X | |
| 0 1 1 0 | All lights off | Apaga todas las luces | X | |
| 0 0 1 0 | On | Enciende un aparato | X | |
| 0 0 1 1 | Off | Apaga un aparato | X | |
| 0 1 0 0 | Dim | Atenúa la intensidad de la luz | X | |
| 0 1 0 1 | Bright | Incrementa la intensidad de la luz | X | |
| 0 1 1 1 | Extended code | Código de extensión | | X |
| 1 0 0 0 | Hail request (solicitud de saludo) | Solicita una respuesta del dispositivo(s) con el código de casa indicado en el mensaje | | X |
| 1 0 0 1 | Hail acknowledge (confirmación de saludo) | Respuesta al comando anterior | | X |
| 1 0 1 0 | Pre-set dim | Permite la selección de dos niveles predefinidos de intensidad de luz | | X |
| 1 1 0 1 | Status is on | Respuesta a la Solicitud de Estado indicando que el dispositivo está encendido | | X |
| 1 1 1 0 | Status is off | Respuesta indicando que el dispositivo está apagado | | X |
| 1 1 1 1 | Status request | Solicitud pidiendo el estado de un dispositivo | | X |

## Soporte de hardware

El soporte de hardware está compuesto de módulos, controladores y puentes.

### Módulos de dispositivos

Dependiendo de la carga que va a ser controlada, se deben utilizar diferentes módulos. Para cargas de lámparas incandescentes, se puede utilizar un módulo de la lámpara o interruptor de la pared. Estos módulos de conmutación de la alimentación utilizan un interruptor TRIAC de estado sólido y también son capaces de atenuar la carga de la lámpara, regulando el ciclo de trabajo. Los módulos de lámpara son casi silenciosos en su funcionamiento, y en general tienen cargas nominales de control que van desde 40 a 500 vatios aproximadamente.
Para cargas que no sean lámparas incandescentes, como las lámparas fluorescentes, lámparas de descarga de alta intensidad y electrodomésticos, no es adecuado emplear sólo la conmutación electrónica basada en triac en módulo de la lámpara y se debe utilizar un módulo de dispositivo (también denominado módulo de aparato) en su lugar. Estos módulos cambian la señal mediante un impulso de relé. En los EE. UU., estos módulos están generalmente clasificados para controlar cargas de hasta 15 amperios (1800 vatios a 120 V).
Muchos módulos de dispositivos ofrecen una función llamada control local. Si el módulo está apagado, al accionar el interruptor de encendido de la lámpara o aparato, el módulo se enciende. De esta manera, se puede encender una lámpara o una cafetera sin la necesidad de utilizar un controlador X10. Los módulos de conmutador de pared no pueden ofrecer esta característica.
Algunos módulos de conmutador de pared ofrecen una característica llamada atenuación local. Normalmente, el botón pulsador local de un módulo de interruptor de pared simplemente ofrece un control on / off (encendido/apagado) sin posibilidad de regulación de luz de la lámpara controlada de forma local. Si se ofrece atenuación local, si se mantiene pulsado el botón se hace que la luz recorra su rango de brillo.
Los módulos de gama alta tienen características más avanzadas, como la programación de niveles, tipos de fundido personalizables, capacidad de transmitir comandos mientras se utilizan (denominados, los dispositivos de 2 vías), y soporte de escena.
Hay módulos de sensores que detectan e informan de la temperatura, la luz, infrarrojos, movimiento, o aperturas y cierres de contacto. Los módulos de equipo incluyen termostatos, alarmas audibles y controladores para interruptores de baja tensión

### Controladores

Los controladores X10 (X10 controllers) van desde muy simples hasta muy sofisticados. Pueden ser transceptores (transceivers), también denominadas bases receptora de radiofrecuencia, para recibir órdenes o ser programado por control remoto (ej. mando a distancia de tamaño llavero, también denominado keychain remote control, generalmente para dos dispositivos, o tamaño tarjeta de crédito - credit card que tiene para controlar el doble de dispositivos). Estos telemando pueden incorporar botones de brillo (bright) y atenuación (dim)
Los controladores simples están preparados para controlar cuatro dispositivos X10 en cuatro direcciones secuenciales (1-4 o 5-8). Los controladores suelen contener los siguientes botones:
* Unidad 1 encendido / apagado (on / off)
* Unidad 2 encendido / apagado
* Unidad 3 encendido / apagado
* Unidad 4 encendido / apagado
* Aclarado / atenuación (última unidad seleccionada)
* Todas las luces encendidas / apagado de todas las unidades
Los controladores más sofisticados pueden controlar más unidades y / o incorporar temporizadores que realizan funciones preprogramadas en momentos específicos cada día. También están disponibles unidades que utilizan detectores de movimiento pasivos de infrarrojos o células fotoeléctricas para encender las luces sobre la base de las condiciones externas.
Un ejemplo de controlador es CM15.
El controlador más sencillo es el MC10 (que se denomina microcontrolador), que permite controlar hasta 8 módulos de dispositivos. Es un teclado de control (control keypad), ya que no cuenta con mando a distancia o receptor de teléfono.
Un controlador computerizado (CM12U, CM15Pro...) cuentan con un microcontrolador y un reloj, pudiéndose bajar los detalles de temporización desde un ordenador, generalmente mediante un cable o mediante un panel frontal. Una vez programado, la memoria permite a la unidad operar sin posterior intervención.
En los lotes (bundles), se suelen incluir módulos de dispositivos y al menos un controlador.

### Puentes

Hay puentes para traducir X10 a otros estándares de domótica (por ejemplo, KNX) y viceversa.
ioBridge se puede utilizar para traducir el protocolo X10 a una API de servicios web a través del módulo de interfaz de línea eléctrica X10 PSC04.
El controlador magDomus, de magnocomp, permite una interconexión transparente e interoperación entre la mayoría de las tecnologías de automatización del hogar.

## HomePlug

HomePlug es compatible con X10, siempre y cuando se aislen los circuitos domóticos con un filtro y se deje el de fuerza para Internet, conectando el controlador (ej. CM15) a la fase aislada.

## Programas

* ActiveHome Pro
* HEYU: backend basado en consola altamente configurable.
** domus.Link: frontend basado en web para HEYU.
* Minerva: de código abierto.
* MisterHouse: soporta X10, reconocimiento de voz y varios dispositivos serie.
* BottleRocket: utilidad para controlar dispositivos X10 Firecracker para automatización del hogar.
* BlueLava: interfaz CGI para X10.