Es posible llamar a una "regla" desde otra "regla"?

Es posible llamar a una "regla" desde otra "regla"?
« en: Noviembre 14, 2020, 20:54:13 pm »
Puede sonar a chorrada, pero es una forma de "reutilizar código".

Supongamos que tengo una docena de reglas que hacen 5 cosas
a b c d x
a b c d y
a b c d z

Vaya, que hacen lo mismo cambiando solo la última acción.

Quería hacer una regla reutilizable que ejecutara "a b c d" para después llamarla desde las otras reglas, de modo que quedaran como:
regla x
regla y
regla z

De este modo me ahorro repetir esos pasos en todas las reglas. Y más importante, si en un futuro quiero retocar algo de esos "a b c d" no tengo que editar una docena de reglas, solo una.

Cuando creo una "regla", en sus "acciones" no veo que pueda hacer que se ejecute otra "regla". Se os ocurre alguna posible solución?

phroc

  • *
  • 5703
  • Belle époque
    • Ver Perfil
    • PR-DOMOTICA
Re:Es posible llamar a una "regla" desde otra "regla"?
« Respuesta #1 en: Noviembre 15, 2020, 13:18:42 pm »
Se puede hacer a través de los grupos de reglas.

Mete la regla que quieres ejecutar desde otra regla en un grupo de reglas concreto y en la ventana de gestión de los grupos de reglas, señala la casilla "Display" enfrente del grupo de reglas en cuestión.

Así conseguirás que ese grupo de reglas salga en el motor de reglas, como si fuera cualquier otro dispositivo de tu eedomus, y por tanto podrás activarlo y desactivarlo desde otro regla ;)

Si no me he explicado bien, me dices.

https://pr-domotica.es/

Communication Manager & Business Manager Spain at  NodOn
Consultoría en domótica inalámbrica e IoT
Formación Oficial Jeedom
Formación LoRa

Re:Es posible llamar a una "regla" desde otra "regla"?
« Respuesta #2 en: Noviembre 15, 2020, 20:29:37 pm »
Lo he pillado y encontrado, pero creo que eso no es lo que busco.

Al marcar la casilla de "display" de ese grupo consigo que después ese grupo me salga en el dropdown para elegir, pero simplemente me permite activar/desactivar el grupo de reglas.

Pero no tengo claro si activar el grupo va a hacer que las reglas que tengo dentro se ejecuten por arte de magia una sola vez, o que... no son reglas que tengan ningún condicional.

Por ejemplo, busco poner distintas emisoras en el ampli del salón. En todos los casos lo que hago es activar el ampli (ni me molesto en verificar si está o no encendido antes), pongo el volumen de la zona a 50 (por si las moscas), pongo el volumen de la zona secundaria a 50 (por si las moscas), cambio el input del ampli al TUNER.

Así que puedo repetir estos comandos un huevo de veces, y un comando extra que elija la emisora que yo quiera. Pero la idea es poner esos 4 comandos en un mismo sitio y que se ejecuten antes de elegir la emisora.

phroc

  • *
  • 5703
  • Belle époque
    • Ver Perfil
    • PR-DOMOTICA
Re:Es posible llamar a una "regla" desde otra "regla"?
« Respuesta #3 en: Noviembre 16, 2020, 19:30:45 pm »
Con lo que te he comentado, activas y desactivas el grupo entero, es decir la o las reglas que estén dentro de ese grupo.

Por tanto, si tienes una única regla en ese grupo, puedes activarla y desactivarla desde otra regla, si, todas las veces que quieras.

No sé si eso contesta a lo que quieres hacer.

https://pr-domotica.es/

Communication Manager & Business Manager Spain at  NodOn
Consultoría en domótica inalámbrica e IoT
Formación Oficial Jeedom
Formación LoRa

Re:Es posible llamar a una "regla" desde otra "regla"?
« Respuesta #4 en: Noviembre 16, 2020, 20:58:30 pm »
Pero activar un grupo hace que se ejecute la regla que hay dentro de este?

Vaya, si desde una regla A, activo un grupo que contiene solo una regla B, e inmediatamente lo desactivo, esa regla B se va a ejecutar?

Esa regla B no tiene ningún condicional, ni horarios ni criterios, simplemente acciones.

phroc

  • *
  • 5703
  • Belle époque
    • Ver Perfil
    • PR-DOMOTICA
Re:Es posible llamar a una "regla" desde otra "regla"?
« Respuesta #5 en: Noviembre 17, 2020, 09:47:27 am »
Activar el grupo hace que la o las reglas que están dentro de él se activen y por lo tanto sean susceptibles de ejecutarse si los criterios que contienen esas reglas se cumplen.

Lo que tu quieres hacer, intuyo, es disparar una regla sin criterio (sin disparador), desde otra regla. Eso se puede hacer también, de distintas formas: con un virtual que cuando se ponga en ON desencadene la ejecución de una escena (en ese caso desde la otra escena tanto solo tienes que cambiar el estado de ese virtual a ON o OFF como te convenga), desde lo que eedomus llama literalmente una escena (Configuración/Añadir o eliminar un periférico/Otro tipo de periférico/Escena)....

https://pr-domotica.es/

Communication Manager & Business Manager Spain at  NodOn
Consultoría en domótica inalámbrica e IoT
Formación Oficial Jeedom
Formación LoRa

Re:Es posible llamar a una "regla" desde otra "regla"?
« Respuesta #6 en: Noviembre 17, 2020, 15:04:25 pm »
Pues creo que será lo más fácil, hacer un virtual ON/OFF, y una regla con ese "a b c d" que cuando ese virtual pase a ON se ejecute, y ponga el virtual a OFF.

Después en las reglas de "x y z" pongo el virtual a ON y ejecuto el "x y z".

No parece lo más simple pero vaya, supongo que servirá.

Gracias!