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 #30 en: Noviembre 22, 2016, 11:21:09 am »
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

Jokin

  • *****
  • 1920
  • Meliorem domum
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #31 en: Noviembre 22, 2016, 19:25:40 pm »
@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... ;)

Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #32 en: Noviembre 23, 2016, 00:02:33 am »
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


Jokin

  • *****
  • 1920
  • Meliorem domum
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #33 en: Noviembre 23, 2016, 06:15:51 am »
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:Periféricos virtuales con días, semanas, meses y años
« Respuesta #34 en: Noviembre 25, 2016, 00:02:56 am »
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. :)

tonixls

  • ***
  • 188
  • eedomus+
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #35 en: Diciembre 16, 2016, 13:46:46 pm »
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

jose luis

  • **
  • 65
  • Mutando de analogico a digital
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #36 en: Diciembre 16, 2016, 14:37:27 pm »
Cuando tenga un momento te pasó el documento un saludo


Enviado desde mi iPhone utilizando Tapatalk

Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #37 en: Diciembre 16, 2016, 19:25:17 pm »
Hola:


Prueba a cambiar:

date('d'%2);

por

date('d') %2 ;

Un saludo.

tonixls

  • ***
  • 188
  • eedomus+
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #38 en: Diciembre 16, 2016, 20:31:12 pm »
Hola enredador, no funciona
« Última modificación: Diciembre 16, 2016, 20:33:16 pm por tonixls »

tonixls

  • ***
  • 188
  • eedomus+
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #39 en: Diciembre 16, 2016, 20:42:02 pm »
Y sobre  el día del año, no me digais que tengo que crear 365 valores

tonixls

  • ***
  • 188
  • eedomus+
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #40 en: Diciembre 16, 2016, 21:18:52 pm »
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.

Jokin

  • *****
  • 1920
  • Meliorem domum
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #41 en: Diciembre 16, 2016, 22:05:28 pm »
Y sobre  el día del año, no me digais que tengo que crear 365 valores

Me temo que sí...

jose luis

  • **
  • 65
  • Mutando de analogico a digital
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #42 en: Diciembre 27, 2016, 00:46:06 am »
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

jose luis

  • **
  • 65
  • Mutando de analogico a digital
    • Ver Perfil
Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #43 en: Diciembre 27, 2016, 00:48:05 am »
copia la linea entera y pegala ok y ya me cuentas  ;)

Re:Periféricos virtuales con días, semanas, meses y años
« Respuesta #44 en: Marzo 29, 2017, 19:36:56 pm »
@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.