EEDOMUS: Periféricos virtuales con días, semanas, meses y años

Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #15 en: Marzo 20, 2016, 18:14:00 pm »
Funcionando.
Me parece interesantísimo poder preguntar por la hora y aplicar reglas  ;D

molusco

  • *****
  • 1035
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #16 en: Marzo 20, 2016, 19:33:36 pm »
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

Jokin

  • *****
  • 1920
  • Meliorem domum
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #17 en: Marzo 20, 2016, 21:15:58 pm »
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.

jose luis

  • **
  • 65
  • Mutando de analogico a digital
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #18 en: Julio 10, 2016, 09:36:40 am »
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  :-\ :-\ :-\

jose luis

  • **
  • 65
  • Mutando de analogico a digital
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #19 en: Julio 18, 2016, 13:36:00 pm »
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);
?>

Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #20 en: Julio 19, 2016, 12:05:03 pm »
Hola:


Prueba a cambiar:

date('d'%2);

por

date('d') %2 ;

Un saludo.

jose luis

  • **
  • 65
  • Mutando de analogico a digital
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #21 en: Julio 19, 2016, 13:15:03 pm »
me dice:   La función datedate() no está permitido


me tiene liado este calendario vaya hay algo que no cuadra

jose luis

  • **
  • 65
  • Mutando de analogico a digital
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #22 en: Julio 19, 2016, 13:34:14 pm »
Vale ya lo he solucionado lo habia copiado mal.
Un millon de gracias eternamente agradecido enrredador ;)

jose luis

  • **
  • 65
  • Mutando de analogico a digital
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #23 en: Agosto 09, 2016, 18:41:14 pm »
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  ;)

Aly

  • *****
  • 696
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #24 en: Agosto 11, 2016, 16:47:42 pm »
En la linea $Diapar-valor=date('d%2), falta un ' detrás del 2.

Enviado desde mi SM-N9005 mediante Tapatalk


Jokin

  • *****
  • 1920
  • Meliorem domum
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #25 en: Septiembre 21, 2016, 18:29:48 pm »
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?

beagle

  • ****
  • 343
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #26 en: Septiembre 21, 2016, 20:26:12 pm »
Otoño me pone a mi tambien

Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #27 en: Septiembre 22, 2016, 17:53:41 pm »
Hola:

El código asigna las estaciones en días fijos:

Código: [Seleccionar]
$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.

Jokin

  • *****
  • 1920
  • Meliorem domum
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #28 en: Septiembre 22, 2016, 20:13:16 pm »
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!

Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #29 en: Octubre 04, 2016, 20:05:21 pm »
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.