Hola. Llevo unos días enredando precisamente en esto. El periférico sol que trae eedomus no acepta mi “pueblo”, y tampoco me convence la forma que tiene de abordar los crepúsculos (esos 20 minutos, que además si cambio, a veces vuelven como estaban).
Bueno, pues buscando por ahí, (he fusilado) me he inspirado en unas rutinas escritas en VBASIC para unas macros EXCEL hechas por gente de una administración del gobierno americano (buscar por http://www.ecy.wa.gov/programs/eap/models.html y por http://www.esrl.noaa.gov/gmd/grad/solcalc/calcdetails.html) para hacerme mi propio periférico solar, de modo que pueda adaptarlo a mi gusto.
Por si alguien le sirve, aunque aún lo tengo en pruebas, adjunto el script php que hace los cálculos. Por desgracia no se puede instalar en el propio eedomus, hace falta un servidor externo (yo lo tengo en un NAS de Synology). Hay que crear un periférico virtual, ponerle los valores 0, 33, 66 y 100 (esto puede cambiarse) y sus iconos para los estados “de noche”, “anocheciendo”, “amaneciendo” y “de día”, y anotándose su api id para luego actuar sobre él. El script puede llamarse desde otro actuador (utilizo el mismo que empleo para la actualización del calendario hecho por Margu) que puede invocarse mediante una o más reglas (ver más abajo).
La llamada puede hacerse pasando al script todos los parámetros que necesita para actuar sobre el periférico de eedomus. Algo así: http://192.168.1.3/dawn_dusk.php?tzname=‘Europe/Madrid’&latd=40&latm=50&lats=59&lond=-3&lonm=-57&lons=-16&eedomusip=192.168.1.3&api_user=XXXX&api_secret=YYYYYY&periph_id=ZZZZZZ. También pueden ponerse estos parámetros en el script (hay unas variables para ello al principio) y no pasárselos en la llamada, o bien pasar algunos y dejar otros en el script.
Finalmente hay que poner una regla que llame al script con la periodicidad deseada. En mi caso, lo he programado para que se lance cada minuto entre las 6 y las 9 de la mañana y entre las 5 y las 11 de la noche (vistas las posibles horas de salida y puesta de sol en verano y en invierno para todo el año y los crepúsculos que he definido). Lógicamente según la precisión que se requiera puede hacerse con menos frecuencia. (Tiene que haber una forma más razonable de hacer esto último, pero queda pendiente para más adelante. Por ejemplo, en un evento, podría programarse el siguiente, ya que puede calcularse y hacer que una regla se ejecute a una hora concreta para cambiar el estado del periférico.)
¿Qué ventajas tiene todo esto? Primero, que puede calcularse la hora precisa (local) de salida y puesta de sol en casi cualquier longitud y latitud (con google maps puede verse la latitud y la longitud de cualquier sitio), y en cualquier zona horaria. También puede definirse con precisión qué entiende uno por amanecer y anochecer. He puesto que mi amanecer comienza, y mi anochecer termina, con los crepúsculos civiles (el sol 6º bajo el horizonte). Es de día entre la salida y la puesta del sol (el sol 0.833º bajo el horizonte, para tener en cuenta la refracción atmosférica).
Cuando tenía el asunto avanzado me percaté de que php me daba algunos de estos valores, como ha apuntado PacoNet, pero aún así lo terminé con plan original (lo que me ha resultado más interesante).
Bueno, si a alguien le sirve y se anima, ya sabe dónde estoy si hay dudas.
******* CORREGIDO ERROR EN EL CAMBIO DE HORARIO. Nuevo script adjuntado