Ejecutar escenario un numero maximo de veces por dia

David

  • ***
  • 136
    • Ver Perfil
Ejecutar escenario un numero maximo de veces por dia
« en: Octubre 01, 2017, 23:05:54 pm »
Hola buenas noches,

Estoy intentando programar una simulación de presencia en una habitación, hasta ahora tengo:

- Si time entre dos horas Y un numero random > x --> enciende la luz, pausa ramdom y apaga la luz

El problema es que esto puede hacer que la luz se encienda demasiadas veces.

Hay alguna forma de limitar el numero de veces por dia que se puede ejecutar un escenario? O como lo teneis solucionado vosotros?

Un saludo

Bull

  • *****
  • 1341
  • IA unipersonal @1975
    • Ver Perfil
    • Domótica Domestica
Re:Ejecutar escenario un numero maximo de veces por dia
« Respuesta #1 en: Octubre 02, 2017, 00:51:45 am »
lo primero que podrías hacer es un cron como disparador del escenario por ejemplo

 */5 7-8,20-23 * * *

esto quiere decir que el escenario se ejecutará cada 5 minutos todos los días entre las 7 y 8 de la mañana y las 8 a 11 de la noche.

Luego deberás hacer una condición por ejemplo que controle 1 que estés ausente y 2 una variable que haga de semáforo para que la luz después de apagar se tire un tiempo random apagada. (también puedes usar alguna otra condición con el plugin Weather para saber si es de noche)

SI #[casa][alarma][activa]# == 1 && variable(check_luz,0) == 0

Entonces
     variable check_luz = 1
     #[salon][luz_salon][On]#

     
En vez de sleep deberías usar Dans (Dentro de) Rand(15,30) por ejemplo valor aleatorio entre 15 a 30 minutos
HACER
#[salon][luz_salon][Off#


Otra vez (Dentro de) Rand (15,30)
variable check_luz = 0


SINO


Te lo he hecho así a groso modo porque yo lo único que hago es encenderla a una hora random y apagar a una hora random. el sleep para tiempos largos no es recomendable usarlo.  también te puedes poner un mensaje de telegram cada vez que arranque el simulador y cuando termine para saber cada cuanto se ejecuta, al menos al principio para saber que tal te funciona.

Ya nos contarás que tal te funciona.
« Última modificación: Octubre 02, 2017, 01:01:24 am por Bull »
Todos nos equivocamos, por eso los lápices llevan goma.

David

  • ***
  • 136
    • Ver Perfil
Re:Ejecutar escenario un numero maximo de veces por dia
« Respuesta #2 en: Octubre 02, 2017, 10:13:28 am »
Buenos días Bull,

Yo tengo ahora lo siguiente:

cron * * * * *

     SI (#[Casa][Simulador Presencia][Status]# == 1) AND (#time# >=  time_op(#[Casa][Casa][Puesta de sol]#, 30)) AND (#time# <= 2330) AND variable(Simulacion_MB) == 0 AND (rand(0,10) >= 7)

          ENTONCES
               #[Dormitorio Principal][Dimmer][On]#
               variable Simulacion_MB = 1
               #[Casa][Telegram][David]# Message Simulador ON

     SI (#time# >= #[Casa][Casa][Puesta de sol]#) AND (variable(Simulacion_MB) == 1)

          ENTONCES
               sleep rand (120,300)
               #[Dormitorio Principal][Dimmer][Off]#
               variable Simulacion_MB = 0
               #[Casa][Telegram][David]# Message Simulador OFF

Con esto solo enciendo de forma aleatoria (ultima condición del primer SI) y una vez encendido entra el tiempo aleatorio antes de apagar.

El problema tanto que veo tanto con mi opcion como con la tuya es que en un rango de 3 horas y considerando 15 minutos ON y 15 minutos OFF se puede encender en el peor caso 6 veces y si reduzco los tiempos de ON y OFF aún mas. Lo que me gustaria por ejemplo es que la luz se encendiese y apagase por ejemplo maximo tres veces en toda la noche.

He pensado en añadir una variable contador pero no se como se podria poner a cero cada dia.

Un saludo

Bull

  • *****
  • 1341
  • IA unipersonal @1975
    • Ver Perfil
    • Domótica Domestica
Re:Ejecutar escenario un numero maximo de veces por dia
« Respuesta #3 en: Octubre 02, 2017, 12:13:28 pm »
Si utilizas una variable que cuente hasta 3 corres el riesgo de que se encienda 3 veces muy pronto y ninguna más en toda la noche, puedes hacerlo de otra forma y es poniendo el cron por ejemplo a las 20,21,22... y que en ese lapso de una 1 se encienda y apague random.
Todos nos equivocamos, por eso los lápices llevan goma.

David

  • ***
  • 136
    • Ver Perfil
Re:Ejecutar escenario un numero maximo de veces por dia
« Respuesta #4 en: Octubre 03, 2017, 09:40:13 am »
Buenos días,

Voy a probar esto junto con lo de cambiar Sleep por Dans. Comentaré los resultados


Un saludo