Activer une ou plusieurs actions d'un scenario à l'aide d'un bouton virtuel (avec ou sans scenario)

Bonjour,

J’essaye en vain de faire un bouton virtuel on/off qui agit dans un scénario en cochant ou décochant une action de ce scenario.
En image, si je clic sur « on » du bouton virtuel cela coche la zone grisé Alexis et décoche sur off

Dans l’éditeur de texte du scénario je trouve ces id.

    [
    {
        "id": "248",
        "name": null,
        "type": "action",
        "options": [],
        "order": "0",
        "subElements": [
            {
                "id": "535",
                "name": null,
                "scenarioElement_id": "248",
                "type": "action",
                "subtype": "action",
                "options": {
                    "collapse": "0",
                    "enable": 1
                },
                "order": "0",
                "expressions": [
                    {
                        "id": "695",
                        "scenarioSubElement_id": "535",
                        "type": "action",
                        "subtype": null,
                        "expression": "#[Espace Parents][T Chambre Parent][Confort]#",
                        "options": {
                            "enable": "1",
                            "background": "0"
                        },
                        "order": "0"
                    },
                    {
                        "id": "696",
                        "scenarioSubElement_id": "535",
                        "type": "action",
                        "subtype": null,
                        "expression": "#[Espace Parents][T Petit Salon][Confort]#",
                        "options": {
                            "enable": "1",
                            "background": "0"
                        },
                        "order": "1"
                    },
..etc..

Et lorsque je lance ce scénario pour décocher la chambre parent, il décoche tout ! :frowning:
(trouver ici Comment activer/désactiver une action dans un scénario depuis un autre scénario - Utilisation du core de Jeedom - Communauté Jeedom )
Je vois bien que je dois appeler « id »: « 695 » mais cet élément n’existe pas…

$element = scenarioSubElement::byId(535);
$element->setOptions('enable', 0);
$element->save();

en code cela donne :

    [
    {
        "id": "575",
        "name": null,
        "type": "code",
        "options": [],
        "order": "0",
        "subElements": [
            {
                "id": "1317",
                "name": null,
                "scenarioElement_id": "575",
                "type": "code",
                "subtype": "action",
                "options": {
                    "collapse": "0",
                    "enable": "1"
                },
                "order": "0",
                "expressions": [
                    {
                        "id": "1776",
                        "scenarioSubElement_id": "1317",
                        "type": "code",
                        "subtype": null,
                        "expression": "$element = scenarioSubElement::byId(535);\n\n\n$element->setOptions('enable', 0);\n$element->save();",
                        "options": [],
                        "order": "0"
                    }
                ]
            }
        ]
    }
]  

l’un de vous aurait il déjà fait ce type de bouton ? via ou non un scénario d’ailleurs :slight_smile:

merci d’avance pour vos lumières et aides !

bonjour

je pense qu’il faut que tu fasses un bloc action séparé pour la chambre et du coup l’ID adressera bien le bloc d’action. 535 va te désactiver toutes les cases car c’est l’ID du bloc d’action si j’ai tout compris à tes copies d’écran

…mince!!!, j’ai pas un seul instant pensé que je pouvais faire plusieurs bloc…quel looser :slight_smile:
je viens d’essayer et en effet cela fonctionne !!! merci beaucoup -:slight_smile: :slight_smile:

reste un point à bosser, soit je fais un scenario attaché à chaque bouton virtuel, soit j’arrive Integer un bloc code à chaque bouton virtuel (j’ai lu que c’était faisable mais je ne vois pas ou mettre le script. Même dans les actions avant et après je ne vois pas …)

Bonsoir,

Peut-être qu’il faudrait plutôt envisager d’utiliser le plugin mode pour faire ce que vous voulez.

1 « J'aime »

merci pour cette idée :slight_smile:
j’ai des modes en fonction de la saisons qui régissent le fonctionnement du chauffage et des volets. Mais je n’ai pas trouvé comment faire ce que je souhaitais avec …

je m’explique :

je souhaiterais avoir sur mon Dashboard un série de boutons pour activer dans les scenarios de chauffage les pièces qui doivent être chauffées en fonction des présents dans la maison ou de la froidure.

Aujourd’hui je le fais manuellement en cochant et décochant… pas fun et surtout personne ne pourra le faire à ma place.

Alors qu’une série de bouton on/off …serait plus simple et permettrait à d’autre de le faire facilement à ma place.

Mon chauffage est géré par des scénarios qui tiennent compte et du mode (saison), de la température intérieur et de tempo du jour et du lendemain (par exemple pour surchauffer de 2h à 6h du matin avant la journée rouge).
Ces scenarios activent deux sous scenarios « jour » et « nuit » qui contiennent les actions auxquelles je faits référence.
Donc si d’une manière ou d’une autre je peux faires de boutons qui cochent et décochent, soit par le mode soit par un virtuel…

qu’en penses tu ?

Bonjour
Une autre voie
(Perso je l’utilise sur les différents capteurs de l’alarme)
J’ai donc un ensemble de virtuel (accessible depuis un Design / téléphone de la famille, qui a un lien vers une Vue)

Ensuite dans ton scénario tu commences les bloc SI par
Si : Virtuel X == 1
Alors : faire les taches….
Sinon : rien / continuer vers le SI suivant

L’avantage, c’est qu’en regardant les log, tu vois bien ce qui est activé ou non… et pas besoin d’un scénario d’activation / désactivation.

Enfin, pour que les virtuels soient interprétés différemment en fonction des modes, tu peux jouer avec les conditions du SI
par exemple
Si : Salon Nuit==1 && Mode nuit==1 OU Salon Jour == 1 && Mode nuit==0
Te permet d’avoir des virtuels pour chaque mode

Tu peux également jouer avec les Sinon.
Les possibilités sont infinies, il faut simplement se poser pour bien y réfléchir en avant de se lancer dans l’arborescence des SI.

je trouve aussi très bien les 2 approches de virtuel et mode. a toi de choisir celle qui te parle le plus.

si j’écoutes ton besoin et la manière dont tu réfléchis j’aurais tendance à dire que tu as simplement besoin de plusieurs choses :

  • des boutons virtuels pour activer/désactiver les pièces (2 actions ON + OFF, 1 état)
  • un scénario qui active/désactive le bloc à déclencher quand le bouton virtuel change d’état

merci !!
…je viens de tester cette méthode et en effet cela fonctionne facilement.
c’est juste fastidieux de créer 30 boucles SiNon mais c’est efficace ! :slight_smile:

La deuxième m’oblige a créer beaucoup de boucle…

La première: j’ai bien maintenant le code qui fonctionne par bloc , mais je n’arrive pas à faire exécuter ce code directement dans le virtuel. Il ne propose pas cette possibilité dans configuration/Action après exécution de la commande.
Est ce faisable, j’ai farfouiller mais je ne trouve pas d’exemple ?
Je pourrais créer un scenario et appeler le scenario mais cela va faire 30 scenarios ! :frowning: de 2 lignes !

bref j’ai quand même bien avancé déjà car les deux soluces fonctionnent

j’aurai plutôt mis en déclencheur du scénario le changement d’état du switch virtuel tout simplement. tu peux sans doute optimiser tout ça via un bloc de code en créant un tableau statique des id à activer/désactiver et en identifiant le switch qui change d’état via la variable #trigger#

Entre faire :

  • 30 SI
    Et
  • 30 scénarios

Pour moi c’est tout vue
De toute façon pas de miracle
30 choix c’est beaucoup
30 virtuel + 30 x blabla
Apres il faut voir pourquoi 30
Et si une logique permet de les les limiter
Car tu n’as pas 30 pièces de vie !?
:slight_smile:

Peux-tu expliciter :

  • les entrees souhaiter / les choix
  • Les sorties / les commandes attendues
    ?

Par exemple, dans la maison familiale / campagne, chaque personne choisit un mode de chauffage qui modifie sa chambre et les pieces commune (si piece en automatique)
Chaque pièces ayant un mode qui si choisi sur autre que auto, prends le pas.
Les modes etant : Auto (fonction des heures) / confort / reduit / arret
Cela donne un grand nombre de possibilités mais avec un nombre d’entrées limité
(Sorry je vais pas exposer plus car il faudrait un tuto geant pour cela / c’est juste pour l’exemple que plein de choses sont possibles)

Il y a ici que des virtuels (de type liste) !

re,
merci de passer du temps sur mon sujet ! :slight_smile:
pas 30 pièces mais 15 tètes thermostatiques :slight_smile: soit 12 pièces de vie avec sdb et sdds.
tout est géré à travers deux scenarios , un jour et un nuit (d’ou 2 x15 = 30) qui sont appelés par d’autres scénarios en fonction de tempo et du pluggin mode (été , hiver, Eco, absent)

ce que tu as fait pour ta maison de familiale est ce que je cherche à faire grosso modo…
j’ai rarement tout mes enfants à la maison, par contre j’y viens souvent. donc je cherche sans avoir à défaire dans les scenarios des « boutons » pour ajouter ou enlever du mode en cours telle ou telle pièce. Par exemple je ne chauffe pas le salon pour le we…je fais des feux…
Ton tableau correspond assez à ce que je veux faire…comment as tu fait ?

Ce que tu as fait semble bien correspondre à ce que je souhaiterais faire.
As tu la possibilité de me passer quelques exemples (en mp ou ici) pour que je puisse le reproduire ?

merci

Mon besoin :

Gérer par « un clic » dans un tableau de bord (accessible par chacun si c’est possible) 16 pièces comportant une ou deux têtes thermostatiques gérées par le plugin thermostat . Pour adapter le chauffage en fonction du besoin.

Il y a :

  • 9 chambres
  • 3 sdb
  • 4 pièces de vies

Toutes les combinaisons de pièces utilisées ou non sont possible.

Les contraintes sont

  • Tempo (information donnée par pluggin RTE) bleu, blanc, rouge,
    Si rouge ou blanc en HP le lendemain, nuit = confort+1 au lieu de nuit à partir de 01H00

  • Les modes des thermostat :
    Nuit = 17
    Confort = 19
    Absent = hors gel = 5

  • les contraintes globales
    Absent = hors gel pour tous
    Eté = hors gel pour tous
    Eco = 17 max pour tous
    Hiver = 19 max pour tous

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.