Escenas, scripts y plugins => Escenas Domóticas eedomus => Mensaje iniciado por: Margu en Agosto 03, 2015, 18:02:24 pm
-
Buenas tardes,
He creado un script php que permite mediante la creación de algunos periféricos virtuales en eedomus tener el día, la semana, el año, saber si es bisiesto, si el día es par o impar entre otros. Me pareció interesante sobre todo a la hora de programar algunas reglas. Por ejemplo que si es día 9 de Enero y además Lunes se desencadene alguna escena. Pongo este ejemplo para que veáis que se pueden generar condiciones algo complejas.
El enlace al manual es el siguiente: https://mega.co.nz/#!Rc8WlALY!wIzbPSisvHQRxm2qa41PMTIaS1iyr585TQHTiMqfr-4
Se incluye en la descarga el manual, script e iconos para asociar a los estados.
También incluyo una plantilla psd para Photoshop. He creado algunos iconos para el número de días del año, pero no todos (serian 366 iconos, uno por día). Poco a poco los iré creando. Cuando tenga todos los iconos actualizare el pack de iconos. He de confesar que crear estos iconos es tarea un poco tediosa, pero poco a poco...
Espero que a alguien le sirva.
-
Genial, muchas gracias!!
En cuanto pueda lo veo. ¿Este va alojado en eedomus o fuera por limitaciones del PHP de eedomus?
-
Genial, muchas gracias!!
En cuanto pueda lo veo. ¿Este va alojado en eedomus o fuera por limitaciones del PHP de eedomus?
Esta va alojado en eedomus. Al principio le generé para que se ejecutase fuera, pero vi que eedomus si acepta el comando date() de php y modifique todo para que se pudiese alojar en eedomus.
-
Genial, muchas gracias!!
En cuanto pueda lo veo. ¿Este va alojado en eedomus o fuera por limitaciones del PHP de eedomus?
Esta va alojado en eedomus. Al principio le generé para que se ejecutase fuera, pero vi que eedomus si acepta el comando date() de php y modifique todo para que se pudiese alojar en eedomus.
Estupendo, me parece un acierto cuando se puede porque no todo el mundo sabe ni puede montar un servidor. En eedomus es muy sencillo subir un script.
Gracias de nuevo.
-
Actualización del script:
- Se corrige el dato mostrado en el día del año. Al parecer no muestra los días del 1 al 365/366. Muestra los días del 0 al 364/365. Anteriormente por tanto se mostraba un día menos.
- Se añaden las estaciones del año. (Gracias @ltapiama por la idea).
Enlace de descarga del script corregido más las estaciones, junto a los iconos para las estaciones.
https://mega.nz/#!dIMSBRwb!jic1fuMe1RCnOTqoXKqSAHcUQVbpUbxNe_fahmYPiGo
Nota: Este script se puede guardar en eedomus. No hace falta un servidor web externo.
Descarga del manual: https://mega.nz/#!Rc8WlALY!wIzbPSisvHQRxm2qa41PMTIaS1iyr585TQHTiMqfr-4 (El script php de este enlace es obsoleto usar el corregido, no le he eliminado para mantener un historico)
-
Hola, yo he ido siguiendo todo el proceso sin problemas, pero me he quedado atascado en el último paso: para cargar el fichero .php en eedomus no me deja acceder a http://ip_local eedomus/script/.
Si podéis orientarme sobre lo que no estoy haciendo bien.
Gracias
-
Te tiene que dejar. Estás seguro de que la IP local de tu eedomus es la que pones?
-
Te tiene que dejar. Estás seguro de que la IP local de tu eedomus es la que pones?
Pues me temo que la ip que pongo es la correcta. También he probado con 2 navegadores.¿Igual hay que abrir algún parámetro en eedomus?.
Gracias
-
A mí me va muy bien.
Margu eres grande!
-
No me había dado cuenta de su utilidad hasta que no lo he pensado un poco. Teníamos una queja siempre que no se podían hacer reglas para que se ejecutasen a partir de un momento concreto. La razón es porque no había forma de meter esa información en Criterios. Ahora en los Criterios podemos añadir esta información. Hay un hilo hablando de esa limitación que no te lo solucionaba los Horarios. Seguro que Phroc se acuerda. El caso es que al poder meter esta información en la parte de Criterios, uno puede hacer una regla fácilmente que diga. Encender una luz a partir de las 19:35 siempre que alguien entre. Antes, esto no se podía hacer pues los horarios comprueba el momento en el que se cumplen los criterios (ver hilo: http://www.domoticadomestica.com/foro/index.php?topic=870.msg8363#msg8363) y si uno entra y se va a las 19:35 10 '', la regla no se activa (creo que en el hilo se explica esta sutil diferencia).
Para ello habrá que refrescar cada minuto en vez de una vez al día el Actualizar Calendario. Y habrá que quitar las # en el script.
Margus, gracias por hacer esto posible.
-
Gracias Margu. Ésto será lo próximo que haga. Muchas gracias. Eres un crack.
Enviado desde mi SM-N9005 mediante Tapatalk
-
Margu, en tu script comentas: $Minutos_valor = date('i'); # Minutos: 01-59
Pero no debería ser 00-59?
Todo me funciona a la perfección.
-
Hola a todos,
Consigo recuperar todos los valores, año, dia del mes, par, etc. pero no lo he lorado con la hora y minutos (que creo es lo mejor de todo para poner reglas dependiendo de la hora (como bien dice Jokin).
He quitado la almuhadilla, le he asignado el correspondiente API pero no recupero nada :-(. Adjunto pantallazo del php y periferico virtual para hora y minuto.
Gracias de antemano
-
Je, te falta quitar las dos # de abajo. Debajo de ... Asignamos... Me río porque me pasó lo mismo. ;)
Yo estoy encantado porque ya he creado reglas donde puedo poner la hora que quiero en Criterios. Nada de en Horarios.
Enviado desde mi iPad utilizando Tapatalk
-
Será posible.Pues mira que lo he dado vueltas.
Gracias :-)
-
Funcionando.
Me parece interesantísimo poder preguntar por la hora y aplicar reglas ;D
-
Una cosa,
Cada cuanto ejecutáis el script? Cada minuto?
Eso no consume muchos recursos de la caja?
Pregunto...
Enviado desde mi iPhone utilizando Tapatalk
-
Yo así lo tengo desde hace unas semanas. Cada minuto y no le he observado nada raro. De otra forma, no sería muy útil para ajustar finamente las reglas.
-
pues yo me he quedado atascado en lo de par impar todo lo demas va perfecto pero lo de par impar no logro hacer que ponga correcto ese valor alguien me podria guiar o echar un cable :-\ :-\ :-\
-
si alguien sabe decirme si hay algo mal en este script todo funciona ok menos el dia par que no cambia lo he revisado pero no encuentro el fallo
<?php
# Asignamos el código api de los perifericos. Sustituir XXXXX con su código.
#$Hora_id = 'XXXXX';
#$Minutos_id = 'XXXXX';
$Dia_id = '426045';
$Diasemana_id = '426530';
$Diapar_id = '435359';
$Diaaño_id = '432954';
$Diasenmes_id = '456048';
$Semana_id = '426552';
$Mes_id = '426550';
$Año_id = '425044';
$Bisiesto_id = '456047';
$Estacion_id = '456244';
# Asignamos el valor de los perifericos
#$Hora_valor = date('H'); # Hora en formato 24H: 01-24
#$Minutos_valor = date('i'); # Minutos: 01-59
$Dia_valor = date('d'); # Día en el mes: 1-31
$Diasemana_valor = date('l'); # Día de la semana en inglés: Monday, Tuesday ...
$Diapar_valor = date('d'%2); # Calculamos si el dia es par o impar: 0=Impar 1=par
$Diaaño_valor = date('z')+1; # Día en el año: 0-365
$Diasenmes_valor = date('t'); # Número total de días del mes: 28-31
$Semana_valor = date('W'); # Número de semana en el año 1-53
$Mes_valor = date('m'); # Número del mes: 01-12
$Año_valor = date('Y'); # Año
$Bisiesto_valor = date('L'); # Año bisiesto: 1=Bisiesto 0=No Bisiesto
# Calculamos la estacion del año
# Comparamos $diaaño con el inicio y fin de estaciones y encajamos
# Por defecto $estacion es Invierno
$Estacion_valor = "Invierno";
if ( $Diaaño_valor >= 79 && $Diaaño_valor <= 170 ) { $Estacion_valor = "Primavera"; }
if ( $Diaaño_valor >= 171 && $Diaaño_valor <= 262 ) { $Estacion_valor = "Verano"; }
if ( $Diaaño_valor >= 263 && $Diaaño_valor <= 353 ) { $Estacion_valor = "Otoño"; }
# Actualizamos los valores de los perifericos.
#setValue($Hora_id,$Hora_valor);
#setValue($Minutos_id,$Minutos_valor);
setValue($Dia_id,$Dia_valor);
setValue($Diasemana_id, $Diasemana_valor);
setValue($Diapar_id,$Diapar_valor);
setValue($Diaaño_id,$Diaaño_valor);
setValue($Diasenmes_id,$Diasenmes_valor);
setValue($Semana_id,$Semana_valor);
setValue($Mes_id,$Mes_valor);
setValue($Año_id,$Año_valor);
setValue($Bisiesto_id,$Bisiesto_valor);
setValue($Estacion_id,$Estacion_valor);
?>
-
Hola:
Prueba a cambiar:
date('d'%2);
por
date('d') %2 ;
Un saludo.
-
me dice: La función datedate() no está permitido
me tiene liado este calendario vaya hay algo que no cuadra
-
Vale ya lo he solucionado lo habia copiado mal.
Un millon de gracias eternamente agradecido enrredador ;)
-
vuelvo a hacer una pregunta por si alguien le ha pasado y es que hay un icono del calendario que no se ve en la app del telefono a pesar de que funciona todo correctamente y en la web va fantastico pero en la app del telefono no dejo aqui unas imagenes que creo que os ayudaran a ver el problema para los posibles lectores a ver si damos con el fallito ;)
-
En la linea $Diapar-valor=date('d%2), falta un ' detrás del 2.
Enviado desde mi SM-N9005 mediante Tapatalk
-
Para aquellos que hayan implementado en sus Eedomus el calendario completo (Hora, min, mes, ...), incluida la estación del año, me podríais decir qué os pone hoy? A mí, Otoño y que yo sepa, el otoño empieza mañana. No lo había visto hasta ahora y parece que lleva en "Otoño" desde hace 3 días según el histórico. A qué se puede deber?
-
Otoño me pone a mi tambien
-
Hola:
El código asigna las estaciones en días fijos:
$Estacion_valor = "Invierno";
if ( $Diaaño_valor >= 79 && $Diaaño_valor <= 170 ) { $Estacion_valor = "Primavera"; }
if ( $Diaaño_valor >= 171 && $Diaaño_valor <= 262 ) { $Estacion_valor = "Verano"; }
if ( $Diaaño_valor >= 263 && $Diaaño_valor <= 353 ) { $Estacion_valor = "Otoño"; }
El día 79 (comienzo de "primavera") es el 20 de marzo (19 de marzo si el año es bisiesto), el 171 ("verano") es el 20 de junio (19 en bisiestos), el 263 es el 20 de septiembre (este año el 19) y 354 el 20 de diciembre (19 en bisiesto).
Se pueden cambiar "a pelo" los días de comienzo de cada estación en el script, pero como esos días van cambiando, y cada cuatro años suele haber un bisiesto, algún año no acertarán. Sí que es verdad que en los últimos años el otoño ha empezado o el 22 o el 23 de septiembre.
Habría que afinar el script con algún cálculo más fino de los equinoccios y los solsticios (sé que hay algoritmos para ello).
Saludos.
Saludos.
-
Gracias enredador. La verdad es que no es muy importante pues, ya estamos en Otoño! Pero lo importante es tener la explicación del por qué ha ocurrido y eso lo has dejado claro. Gracias!
-
Muchísimas gracias por el script Margu.
Me estaba volviendo loco para configurar la bajada de las persianas dependiendo de si había que aprovechar el calor de la casa o refrescar por la noche.
Me basé en la temperatura exterior y la interior, pero es mucho más cómodo y fiable así.
Gracias otra vez, y a todos los que habéis escrito en este hilo. Me ha sido de gran ayuda.
-
Buenas,
Tengo el script cargado y veo en el dispositivo virtual “Calendario” como la hora, día, mes, etc se actualizan.
Ahora quisiera aprovechar para hacer unas macros que consisten en encender una tira led en el baño, la idea es: Si la luminosidad está por debajo de un valor y detecta presencia con un módulo Multisensor 6 in 1 de Aeotec enciende al 100% en blanco.
Pero en la misma circunstancia en horario de 00:30 a 08:00 se encienda en rojo al 10%
Je, que no sé cómo hacer para que las reglas no se peguen entre ellas y tengan conflicto.
Es conveniente decir que encendido en blanco en horario todo el día menos 0:30 a 08:00
Es conveniente decir que encendido en rojo solo de 0:30 a 08:00
Vaya cacao con la intención de hacer tramos en las reglas.
Gracias
-
@Rantonio, yo lo haría así:
Primera regla:
Criterios:
- Luminosidad ...
Y Movimiento...
Y Hora (calendario) = 00
O Hora (calendario) = 01
O Hora (calendario) = 01
...
O Hora (calendario) = 08 (en vez de ir a 8:30, te va a funcionar hasta las 9:00). Si quieres afinar tienes que añadir los Minutos y se complica bastante).
Yo no he encontrado forma de utilizar el Calendario con un "mayor de" y "menor de". No estoy seguro de que con las "horas" funcione.
Segunda regla
Lo mismo que la primera pero con el resto de las horas.
Esta es la forma más segura de que te funcione bien. Es un poco larga de hacer pero no creo que te lleve más de 5 min y la disfrutarás in aeternum... ;)
-
Leches Jokin
Casi que no hay aportación tuya que no aprenda, no te pregunto lo de "interrumpir macro" pues creo que los has explicado unas cuantas de veces, hace poco con un ejemplo de luz en pasillo con detector de presencia y apertura de puerta, clarísima.
Con el script pensaba que podía afinar en tramos y minutos, vamos como si hiciese la programación de un video VHS, a que hora-minuto empieza algo y a que hora-minuto termina, implemento tu aportación.
Yo también e intentado hacer con un "mayor que" y "menor que" intentar sacar una horquilla horaria, pero no he sido capaz.
Cachisssssss
-
Tienes razón Rantonio, la única pega en el uso del Calendario es cuando quieres hacer algo FACILMENTE entre una hora concreta y otra hora concreta y alguna o ambas de éstas horas contienen minutos. Aunque se puede hacer pero tienes que alargar la regla añadiendo todos los minutos. Para el resto es genial y preciso porque puedes decir que empiece a una hora concreta afinando los minutos con un simple añadir: Y Minutos (Calendario) = "33" (por ejemplo).
El "entre horas" es el problema. Nada es perfecto.
Para tu regla hay otras formas más sofisticadas (ejm. Desde las 08:33 a las 11:46) si necesitas precisión de minutos y no quieres hacer reglas largas. Se basaría en crear un Estado de Inicio y un Estado de Finalización. En la regla principal le dices que sólo actúe si el Estado de Inicio está activado y el Estado de Finalización desactivado. Luego creas dos reglas para controlar los Estados de Inicio y de Finalización, del estilo: Si Hora del calendario es "08" y Minuto del calendario es "33" > Acción, poner Estado de Inicio = "ON", y lo mismo para el Estado de Finalización. Y las otras dos reglas son para volver a OFF los Estados de Inicio y Finalización.
La capacidad de Eedomus es infinita ;)
-
Re-cor-cho-lis,
Te leo con asombro, ahora con todo el cansancio del día no termino de engancharte, espero que esta espesura mental sean mañana espumas en olas marinas.
Jokin, como siempre me quito el sombrero. :)
-
Vale ya lo he solucionado lo habia copiado mal.
Un millon de gracias eternamente agradecido enrredador ;)
Hola Jose Luis, ¿como lo solucionaste?, no consigo que me indique si el día es par o impar, he probado
('d'%2)
('d%2')
('d')%2
y nada...y otra pregunta, para el día del año, ¿hay que crear 365 valores?
Gracias
-
Cuando tenga un momento te pasó el documento un saludo
Enviado desde mi iPhone utilizando Tapatalk
-
Hola:
Prueba a cambiar:
date('d'%2);
por
date('d') %2 ;
Un saludo.
-
Hola enredador, no funciona
-
Y sobre el día del año, no me digais que tengo que crear 365 valores
-
Bueeenoooo, ya he conseguido que me diga si el día es par o impar, no tenía bien puesto el valor "bruto"
Nota: las instrucciones están al reves, 0 es par y 1 es impar.
-
Y sobre el día del año, no me digais que tengo que crear 365 valores
Me temo que sí...
-
Vale ya lo he solucionado lo habia copiado mal.
Un millon de gracias eternamente agradecido enrredador ;)
Hola Jose Luis, ¿como lo solucionaste?, no consigo que me indique si el día es par o impar, he probado
('d'%2)
('d%2')
('d')%2
y nada...y otra pregunta, para el día del año, ¿hay que crear 365 valores?
Gracias
Esta es la linea que tienes que copiar un saludo espero haberte ayudado.
$Diapar_valor = date('d') %2 ; # Calculamos si el dia es par o impar: 0=Impar 1=par
-
copia la linea entera y pegala ok y ya me cuentas ;)
-
@Rantonio, yo lo haría así:
Primera regla:
Criterios:
- Luminosidad ...
Y Movimiento...
Y Hora (calendario) = 00
O Hora (calendario) = 01
O Hora (calendario) = 01
...
O Hora (calendario) = 08 (en vez de ir a 8:30, te va a funcionar hasta las 9:00). Si quieres afinar tienes que añadir los Minutos y se complica bastante).
Yo no he encontrado forma de utilizar el Calendario con un "mayor de" y "menor de". No estoy seguro de que con las "horas" funcione.
Segunda regla
Lo mismo que la primera pero con el resto de las horas.
Esta es la forma más segura de que te funcione bien. Es un poco larga de hacer pero no creo que te lleve más de 5 min y la disfrutarás in aeternum... ;)
Por si hay alguien interesado, he conseguido hacer funcionar las horas con la condición "mayor que".
Para no ejecutar un script tan largo como el calendario.php cada minuto, creé otro llamado reloj.php que es igual pero reducido, así puedo activar o desactivar la regla que lo actualiza sin que afecte al calendario:
<?php
#Eduardo;
$Hora_id = '607908';
$Minutos_id = '607915';
$Time_id = '607992';
$Hora_valor = date('H'); # Hora en formato 24H: 00-23
$Minutos_valor = date('i'); # Minutos: 00-59
setValue($Hora_id,$Hora_valor);
setValue($Minutos_id,$Minutos_valor);
setValue($Time_id,$Hora_valor*100+$Minutos_valor);
?>
La última línea crea el valor "Time" en formato HHMM todo seguido, es un valor numérico que funciona a la perfección con las reglas "mayor que" y "menor que".
A la hora de crear las reglas, para que aparezcan los valores con los que queremos comparar "Time", tenemos que crearlos previamente en el dispositivo de estado "Time", de forma que al valor bruto "1800" corresponda la descripción "18:00". Así no es necesario crear valores cada minuto, a no ser que se requiera mucha precisión para una franja horaria concreta.
-
Muchísimas gracias. Muy útil.
Fenomenal.
Enviado desde mi SM-N9005 mediante Tapatalk
-
¿se puede almacenar en eedomus?
Enviado desde mi Nexus 5X mediante Tapatalk
-
¿se puede almacenar en eedomus?
Enviado desde mi Nexus 5X mediante Tapatalk
Sí, todo en eedomus sin problemas. Es un script muy pequeño.
-
Genial, muchas gracias por el aporte
Enviado desde mi Nexus 5X mediante Tapatalk
-
Grandísimo aporte Eduardo. Todos echábamos en falta esa posibilidad. Gracias
Sent from my iPhone using Tapatalk Pro
-
¡¡¡Fantástico aporte Eduardo!!!
Y tu eras el que decía que eso de la Raspberry Pi y los scripts eran palabras mayores... Madre mía... ;)
-
Qué buenos los scripts. Mil gracias por compartir !!!
Enviado desde mi iPhone utilizando Tapatalk
-
@eduardo esoy intentando imolementar el reloj y me surge una duda
$Hora_id = '607908';
$Minutos_id = '607915';
$Time_id = '607992';
en esas lineas lo que esta entre comillas simples ¿es el numero de la api del periferico virtual? yo solo he creado uno llamado reloj con lo que solo tengo una API
He seguido el manual del calendario pero solo para el reloj
-
Hola tienes que crear 3 sensores, uno para la hora, otro para los minutos y otro para los segundos. Esos números entre comillas simples son las api de esos 3 sensores.
Enviado desde mi SM-N9005 mediante Tapatalk
-
Gracias Aly, esa es la parte que no entendía, solo habia creado uno llamado "reloj"
-
Quiero dar las gracias a Margu por este excelente trabajo y por acompañarlo con esa estupenda documentación. Gracias a este hilo, por fin he conseguido entender cómo se usa un script en eedomus y también he podido aclarar bastante mis ideas.
También quiero daros las gracias a quienes habéis participado en las demás aportaciones porque me habéis aclarado aún más el tema de los scripts y los periféricos virtuales.
Muchas gracias a tod@s por compartir vuestros muchos conocimientos.
-
Primero daros las gracias a todos los que habéis colaborado en este script, que yo considero necesario por el tema de las horas.
Estoy intentándolo pero al meterlo en el eedomus siempre me salta este error:
Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /var/www/secure.eedomus/script/validatePhp_include.php on line 31
Scrip inválido:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in calendario.php on line 21
He repasado tanto la linea 31 buscando el error en el símbolo ' (correspondiente al ASCII 39) así como la linea 21 buscando alguna diferencia de formato con las anteriores y posteriores lineas, pero no veo nada tampoco.
Para mis usos, no necesito ni el día del año, ni el numero de la semana, así como tampoco las estaciones del año. De manera que simplemente estos campos los he ignorado. Otras opciones que he probado han sido eliminarlos del script y también lo he intentado poniendo una # delante de la lineas que no necesito, pero en ninguno de los tres caso he conseguido meter el script dentro del eedomus.
Os pongo también como me queda el script:
<?php
# Asignamos el código api de los perifericos. Sustituir XXXXX con su código.
$Hora_id = '1657193';
$Minutos_id = '1657193';
$Dia_id = '1657029';
$Diasemana_id = '1651550';
$Diapar_id = '1657137';
$Diaaño_id = 'XXXXX';
$Diasenmes_id = '1659181';
$Semana_id = 'XXXXX';
$Mes_id = '1657119';
$Año_id = '1657107';
$Bisiesto_id = '1657139';
$Estacion_id = 'XXXXX';
# Asignamos el valor de los perifericos
$Hora_valor = date('H'); # Hora en formato 24H: 01-24
$Minutos_valor = date('i'); # Minutos: 01-59
$Dia_valor = date('d'); # Día en el mes: 1-31
$Diasemana_valor = date('l'); # Día de la semana en inglés: Monday, Tuesday ...
$Diapar_valor = date('d'%2'); # Calculamos si el dia es par o impar: 0=Impar 1=par
$Diaaño_valor = date('z')+1; # Día en el año: 0-365
$Diasenmes_valor = date('t'); # Número total de días del mes: 28-31
$Semana_valor = date('W'); # Número de semana en el año 1-53
$Mes_valor = date('m'); # Número del mes: 01-12
$Año_valor = date('Y'); # Año
$Bisiesto_valor = date('L'); # Año bisiesto: 1=Bisiesto 0=No Bisiesto
# Calculamos la estacion del año
# Comparamos $diaaño con el inicio y fin de estaciones y encajamos
# Por defecto $estacion es Invierno
$Estacion_valor = "Invierno";
if ( $Diaaño_valor >= 79 && $Diaaño_valor <= 170 ) { $Estacion_valor = "Primavera"; }
if ( $Diaaño_valor >= 171 && $Diaaño_valor <= 262 ) { $Estacion_valor = "Verano"; }
if ( $Diaaño_valor >= 263 && $Diaaño_valor <= 353 ) { $Estacion_valor = "Otoño"; }
# Actualizamos los valores de los perifericos.
setValue($Hora_id,$Hora_valor);
setValue($Minutos_id,$Minutos_valor);
setValue($Dia_id,$Dia_valor);
setValue($Diasemana_id, $Diasemana_valor);
setValue($Diapar_id,$Diapar_valor);
setValue($Diaaño_id,$Diaaño_valor);
setValue($Diasenmes_id,$Diasenmes_valor);
setValue($Semana_id,$Semana_valor);
setValue($Mes_id,$Mes_valor);
setValue($Año_id,$Año_valor);
setValue($Bisiesto_id,$Bisiesto_valor);
setValue($Estacion_id,$Estacion_valor);
?>
-
Me suscribo solo para poder reportar a la que pruebe esto!
-
Una vez más estoy encantado con este foro, he conseguido (sin tener ni idea de programación) incluir perfectamente este script y poderle dar un buen uso en las reglas.
Mil gracias por compartir y hacer que podamos disfrutar tanto de Eedomus.
(Del tiempo que le echado no digo nada :P jejeje)
-
@bomdos has utilizado todos los campos? A ver di el fallo que me da a mi va a ser eso?
Enviado desde mi Redmi Note 4X mediante Tapatalk
-
Instalado el script y funcionando perfectamente, gracias!!
-
@MindTwist has modificado algo del script o lo has puesto tal cual? cambiando las "x" por las API's, borrando las "#" y añadiendo la ' que faltaba en la linea de los dias, no?
Enviado desde mi Redmi Note 4X mediante Tapatalk
-
He cambiado cosas, para dejar solo lo que voy a usar, que hay cosas que de entrada no me interesan, ni creo que me vayan a interesar.
<?php
# Asignamos el código API de los perifericos. Sustituir XXXXX con su código.
$Horas_id = '1660676';
$Minutos_id = '1660661';
$Hora_id = '1660684';
$Dia_id = '1660379';
$Diasemana_id = '1660333';
#$Diapar_id = 'XXXXX';
#$Diaaño_id = 'XXXXX';
#$Diasenmes_id = 'XXXXX';
#$Semana_id = 'XXXXX';
$Mes_id = '1660420';
$Año_id = '1660524';
#$Bisiesto_id = 'XXXXX';
$Estacion_id = '1660535';
# Asignamos el valor de los perifericos
$Horas_valor = date('H'); # Hora en formato 24H: 00-23
$Minutos_valor = date('i'); # Minutos: 00-59
$Dia_valor = date('d'); # Día en el mes: 1-31
$Diasemana_valor = date('l'); # Día de la semana en inglés: Monday, Tuesday ...
#$Diapar_valor = date('d'%2); # Calculamos si el dia es par o impar: 0=Impar 1=par
#$Diaaño_valor = date('z')+1; # Día en el año: 0-365
#$Diasenmes_valor = date('t'); # Número total de días del mes: 28-31
#$Semana_valor = date('W'); # Número de semana en el año 1-53
$Mes_valor = date('m'); # Número del mes: 01-12
$Año_valor = date('Y'); # Año
#$Bisiesto_valor = date('L'); # Año bisiesto: 1=Bisiesto 0=No Bisiesto
# Calculamos la estacion del año
# Comparamos $diaaño con el inicio y fin de estaciones y encajamos
# Por defecto $estacion es Invierno
$Estacion_valor = "Invierno";
if ( $Diaaño_valor >= 79 && $Diaaño_valor <= 170 ) { $Estacion_valor = "Primavera"; }
if ( $Diaaño_valor >= 171 && $Diaaño_valor <= 262 ) { $Estacion_valor = "Verano"; }
if ( $Diaaño_valor >= 263 && $Diaaño_valor <= 353 ) { $Estacion_valor = "Otoño"; }
# Actualizamos los valores de los perifericos.
setValue($Horas_id,$Horas_valor);
setValue($Minutos_id,$Minutos_valor);
setValue($Hora_id, $Horas_valor*100+$Minutos_valor );
setValue($Dia_id,$Dia_valor);
setValue($Diasemana_id, $Diasemana_valor);
#setValue($Diapar_id,$Diapar_valor);
#setValue($Diaaño_id,$Diaaño_valor);
#setValue($Diasenmes_id,$Diasenmes_valor);
#setValue($Semana_id,$Semana_valor);
setValue($Mes_id,$Mes_valor);
setValue($Año_id,$Año_valor);
#setValue($Bisiesto_id,$Bisiesto_valor);
setValue($Estacion_id,$Estacion_valor);
?>
-
@bomdos has utilizado todos los campos? A ver di el fallo que me da a mi va a ser eso?
Enviado desde mi Redmi Note 4X mediante Tapatalk
No, solo he utilizado los campos de días, mes, día del mes, año, horas y minutos los ademas de momento prescindiré de ellos.
No puedo ayudarte mucho porque no tengo ni idea de programación para conocer donde puede estar el error, yo solo he seguido los pasos y me ha salido perfecto con algún pequeño error que he ido solventando a base de prueba/error…
Me descargé el manual que hay en este hilo y lo seguí al dedillo con las correcciones que en este hilo también están y ha salido perfecto, eso siii unas cuantas horas me ha costado conseguirlo.
Si sigues el tutorial paso por paso debe salir, y teniendo en cuenta las correcciones que se nombran en este hilo.
Había pensado en hacer un video para ayudar a realizar este fabuloso tuto pero después de lo que me ha costado solo integrarlo no sé si seria capaz de hacerlo jejeje…
Siento no poder ayudarte pero repito que yo solo me he limitado a seguir el tuto y salio.
-
@bomdos @MindTwist gracias a los dos por vuestras respuestas. Voy a borrarlo todo y a empezar de nuevo a ver si hay algun error tonto que se me ha pasado por alto. Al igual que vosotros dejare sin rellenar lo que no me interesa.
Voy al lio y os cuento.
Enviado desde mi Redmi Note 4X mediante Tapatalk
-
Bueno por fin lo he conseguido!! Ya lo tengo funcionando al 100%. Ahora solo me falta cambiar los iconos de los valores y corregir algun error absurdo.
Exactamente no se porque no me funcionaba. Lo único que hecho ha sido borrarlo todo, hacerle un reset al eedomus y empezar de nuevo otra vez.
Enviado desde mi Redmi Note 4X mediante Tapatalk
-
Bueno por fin lo he conseguido!! Ya lo tengo funcionando al 100%. Ahora solo me falta cambiar los iconos de los valores y corregir algun error absurdo.
Exactamente no se porque no me funcionaba. Lo único que hecho ha sido borrarlo todo, hacerle un reset al eedomus y empezar de nuevo otra vez.
Enviado desde mi Redmi Note 4X mediante Tapatalk
Perfecto, ahora a disfrutarlo ;)
-
Muchísimas gracias Margu, me ha sido de gran ayuda.
Llevaba varios días pensando cómo automatizar la depuradora de la piscina por meses, ya que no me acaba de convencer las automatizaciones disponibles en eedomus porque no puedes aprovechar la tarifa eléctrica reducida, y tras los años tengo bastante claro las necesidades de filtración de mi piscina.
Voy a compartir de una forma básica lo que he hecho por si a alguien le pudiera interesar.
Siguiendo las instrucciones de Margu he creado una habitación 'Calendario' un periférico 'Mes' y el recolector de objetos que actualizo el 'Calendario' todos los días mediante una regla a las 0 horas y 1 minuto.
Por otra parte he creado 6 planificaciones con el asistente:
- De Diciembre a Marzo, ON a las 10:30, OFF a las 12:00 (tarifa reducida hasta las 12:00)
- De Abril a Junio y Octubre-Noviembre, ON a las 9:30, OFF a las 12:00
- Junio y Octubre por las tardes, ON a las 16:00, OFF a las 18:00
- De Julio a Septiembre por las mañanas, ON a las 9:00, OFF a las 13:00 (tarifa reducida hasta las 13:00)
- De Julio a Septiembre por las tardes, ON a las 16:00, OFF a las 19:00
- De Julio a Septiembre por las noches, ON a las 23:00, OFF a las 00:00
Como criterios adicionales tanto de principio como de fin en las planificaciones utilizo expresiones como:
- 'Mes Calendario' 'esta' 'igual a' Junio'
o 'Mes Calendario' 'esta' 'igual a' Octubre'
o 'Mes....
De esta forma queda todo automatizado a perpetuidad y no requiere que tenga que estar activando o desactivando programaciones, salvo los lógicos ajustes que iré introduciendo.
Para la instalación he utilizado un contactor Legrand 4125 44 y un Qubino Dimmer de carril DIN.
Lo próximo que tengo en la lista es que el riego también esté planificado por meses e introduciré un pluviómetro POPP.
Si alguien quiere más info no dudéis en preguntarme.
Saludos.
-
¡Gracias por compartirlo!
-
Hola a tod@s. Ya estamos en el 2021 y por ese motivo ha dejado de funcionarme este pedazo de script que me soluciona muchos problemas.
Alguien me podría indicar que he de modificar y como hacerlo para poder seguir usandolo, por favor?
-
Hola a tod@s. Ya estamos en el 2021 y por ese motivo ha dejado de funcionarme este pedazo de script que me soluciona muchos problemas.
Alguien me podría indicar que he de modificar y como hacerlo para poder seguir usandolo, por favor?
A mi me sigue funcionando correctamente.
-
Bueno, pues en vista de que estaba claro que era algún fallo mío, le he hecho un reset al eedomus y otro al rooter y ha vuelto a funcionar todo otra vez, sin mas... La verdad que desde que me cambiaron el rooter antiguo de ONO, por el nuevo de Vodafone, todo son problemas en casa con las ip's de los dispositivos.