Proyecto de domótica desde 0

solaris:
Respecto a las persianas voy a hacerte varias observaciones:
-El esquema de Opendomo está muy bien pero te comento los contras que yo veo.
A la hora de implantar la solución en la instalación de tu casa, debes tener en cuenta que usar un arduino + eth + alimentador + placa de reles para una única persiana, me parece excesivo en coste (multiplicar por las persianas).
Luego, en lo que se refiere a los pulsadores de subir y bajar (en realidad es un pulsador con enclavamiento mecánico para evitar pulsar los dos al mismo tiempo), yo no los conectaría al arduino ya que surje el problema de que si se produce una avería en la electronica, te quedas sin poder maniobrar las persianas hasta que le des solución.
Por lo que sugiero (yo lo voy a hacer asi) que los conectes como en el esquema que adjunto.

De esta manera siempre puedes maniobrar las persianas, hay que dejar el modulo de reles junto a la persiana y conectar con cuatro hilos de 0,25 ó 0,50 m.m. el módulo y el arduino (las salidas restantes las puedes aprovechar para otras funciones). El inconveniente que tiene este sistema es que puede darse el caso de estar maniobrando la persiana en local y el arduino enviar una señal contraria, por lo que he situado unos fusibles a la entrada del motor para evitar quemar el motor.
Es una idea que queda abierta a sugerencias ......

Saludos

Permiteme compañero una modificacion:

Cambiado el esquema asi no le hace falta fusibles alguno.

El rele de arriba pasa a ser el encargado de activacion del automatismo con el arduino, cuando el arduino va a realizar una maniobra accionamos el rele de activacion con lo cual deja sin fase al pulsador manual, asi no hay riesgo de encontrarte dos tensiones y con el rele de abajo simplemente o sube o baja dependiendo si esta activado o no.

El usuario tiene que mandar un pulso al de activacion (rele 1) si es subir y mandar un pulso al de activacion + otro al de bajar(rele 2) si es bajar.

function subir{     ---> subir
digitalwrite(activacion, HIGH) 
delay(tiempo..x..);
digitalwrite(activacion, LOW)
}

function bajar{   -----> bajar
digitalwrite(activacion, HIGH)   
digitalwrite(bajar, HIGH)
delay(tiempo..x..);
digitalwrite(activacion, LOW)   
digitalwrite(bajar, LOW)
}

Si el arduino falla siempre funcionara el sistema manual porque el rele 1 de activacion esta en reposo, siempre le manda la fase a la linea de pulsador manual, solo deja de enviar la fase a la linea del pulsador manual cuando entra en accion el arduino.