# Incrémenter ou decrementer la valeur d'un appareil

**URL:** <https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025>\
**Category:** Configuration\
**Created:** [Mars 6, 2022, 4:40 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025 "2022-03-06T16:40:30Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Mars 6, 2022, 4:40 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/1 "2022-03-06T16:40:30Z")

</div>

Hello !

Je me suis demandé récemment en installant un bouton ([IKEA E2001/E2002 control via MQTT | Zigbee2MQTT](https://www.zigbee2mqtt.io/devices/E2001_E2002.html)),  
Comment était il possible d’incrementer une value tel que la luminosité dans mons cas.

En effet mon bouton me permet de faire plusieurs actions dont 4 qui m’intéresses :

- arrow\_left\_hold,
- arrow\_right\_hold,
- arrow\_left\_release,
- arrow\_right\_release

Sauf que côté gladys je ne peut pas faire de “tant que”

Du coup je souhaiterais pouvoir incrementer ou decrementer la luminosité tant que jappuis sur un bouton et lorsque je le relâche on stop l’action.

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [Mars 6, 2022, 8:47 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/2 "2022-03-06T20:47:26Z")

</div>

Peut être que tu peux faire ça depuis une scène en utilisant les pauses.

Le déclencheur sera ton clic.  
Tu fais une pause de 1sec.  
Tu récupères l’état du bouton  
Continuer si et seulement si le bouton est toujours sur _hold_  
Augmenter la luminosité  
Refaire une pause de 1 sec  
Etc…

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Mars 6, 2022, 10:17 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/3 "2022-03-06T22:17:48Z")

</div>

Effectivement c’est une solution mais contraignante 😃  
La value de la luminosité sur certaine lampe est de 255 je me vois mal recrée 255 bloc pour dire luminosité++ 😀

Après on peut peut être avoir un bloc répète les action x et y tant que le capteur est pas dans un certain état 🙂

---

<div class="post-metadata">

**Author:** ![Terdious](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/terdious/32/6316_2.png) [@Terdious](https://community.gladysassistant.com/u/Terdious)\
**Post date:** [Mars 7, 2022, 5:42 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/4 "2022-03-07T05:42:45Z")

</div>

Salut @spenceur !  
N’est il pas possible de configurer ton périphérique de telle manière qu il envoi 1 toutes les 500ms (voir - toutes les 50ms). Car dans ce cas il suffit de configurer la scène 1 fois sans cocher la case “Exécuter seulement […]”. Il répétera la scène “+1” tant que tu reste appuyer. Si c est 500ms tu devra rester appuyer 127s pour franchir toute la plage.  
Les périphériques d’ambiance sont généralement configuré le pas ou la frequence toutes les x secondes pour eviter de rester appuyer aussi longtemps. Avec un périphérique fictif tu pourrais même le faire toi même.

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Mars 7, 2022, 8:38 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/5 "2022-03-07T08:38:10Z")

</div>

Ah mais effectivement je n’y ai pas pensé mais ça doit fonctionner ça normalement 🤔  
Je vais tester asap !

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Mars 7, 2022, 1:07 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/6 "2022-03-07T13:07:44Z")

</div>

@Terdious @pierre-gilles , une idée pour récupérer la last value et faire +1 dessus ?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 1:49 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/7 "2022-03-07T13:49:05Z")

</div>

Ce n’est pas possible en l’état, on a pas de fonction mathématiques dans les scènes 🙂

C’est possible en passant par Node-RED en revanche

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Mars 7, 2022, 2:32 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/8 "2022-03-07T14:32:43Z")

</div>

Ouai c’est ce que je use actuellement je me demande si ça ne devrais pas faire partie du core

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 2:41 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/9 "2022-03-07T14:41:34Z")

</div>

Clairement 🙂 Il y a une demande de fonctionnalité qui s’en approche : [Somme, moyenne, calculs dans les scènes](https://community.gladysassistant.com/t/somme-moyenne-calculs-dans-les-scenes/6646)

Après cette demande part un peu dans tous les sens, c’est pas très concret, donc je créerait bien des demandes de fonctionnalités concrètes.

Là en gros concrètement pour ta demande il manque 2 trucs :

- Etre capable de faire une opération mathématique sur une “variable de scène”: addition, soustraction, multiplication, division
- Etre capable d’injecter une variable dans une action “contrôler un appareil”.

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [Mars 7, 2022, 4:19 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/10 "2022-03-07T16:19:49Z")

</div>

> [@pierre-gilles](#):
>
> C’est possible en passant par Node-RED en revanche

Je vais essayer ça de mon côté pour voir ce que j’arrive (ou pas) à faire !

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 4:26 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/11 "2022-03-07T16:26:01Z")

</div>

> [@pierre-gilles](#):
>
> Après cette demande part un peu dans tous les sens, c’est pas très concret, donc je créerait bien des demandes de fonctionnalités concrètes.

Pardon je n’ai peut-être pas été clair par contre, je ne créerais pas les demandes de fonctionnalités moi même, c’est à vous de les créer si jamais vous voulez les voir dans Gladys 🙂

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Mars 7, 2022, 4:36 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/12 "2022-03-07T16:36:46Z")

</div>

Perso je passait par node red mais le bouton ne passe par par gladys ( je passerais mon flow).

@pierre-gilles si si j’avais bien capté mais je suis au taff donc je n’ai pas encore pris le temps de le faire

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Mars 7, 2022, 8:36 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/13 "2022-03-07T20:36:31Z")

</div>

voici ce que j’ai fait en attendant :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/7/7888dda7fe11cc32444f0db8804f425b55dd7ad0.png)

En gros via un noeud Z2M je récupère l’action du click puis via un gros switch je renvoie l’info a la lampe souhaité encore via d’autre noeud Z2M

```auto
[
    {
        "id": "04fe395c3e704b2a",
        "type": "switch",
        "z": "7ae9230582bf5831",
        "name": "",
        "property": "payload.action",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "on",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "off",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "brightness_move_up",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "brightness_move_down",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "brightness_stop",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_left_click",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_right_click",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_left_hold",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_right_hold",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_left_release",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_right_release",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 11,
        "x": 330,
        "y": 220,
        "wires": [
            [
                "2df8d7b2f5291fb7"
            ],
            [
                "1c3acbbddd183827"
            ],
            [],
            [],
            [],
            [
                "93fd7fdfe19f9209"
            ],
            [
                "a5f5aad809a82a17"
            ],
            [
                "e666d44b7b131d3e"
            ],
            [
                "43d6067a8e026fec"
            ],
            [
                "69f3c1ddc48ca93c"
            ],
            [
                "69f3c1ddc48ca93c"
            ]
        ]
    },
    {
        "id": "072c37a2c2c16bd9",
        "type": "debug",
        "z": "7ae9230582bf5831",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 340,
        "y": 80,
        "wires": []
    },
    {
        "id": "b2b7835c2619dfff",
        "type": "zigbee2mqtt-in",
        "z": "7ae9230582bf5831",
        "name": "Styrbar",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x842e14fffe462c2a",
        "device_id": "0x842e14fffe462c2a",
        "state": "0",
        "outputAtStartup": true,
        "x": 50,
        "y": 120,
        "wires": [
            [
                "072c37a2c2c16bd9",
                "04fe395c3e704b2a"
            ]
        ]
    },
    {
        "id": "28ff1c7daf962686",
        "type": "zigbee2mqtt-out",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "command": "state",
        "commandType": "z2m_cmd",
        "payload": "payload",
        "payloadType": "msg",
        "transition": 0,
        "x": 700,
        "y": 120,
        "wires": []
    },
    {
        "id": "2df8d7b2f5291fb7",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = \"on\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 520,
        "y": 100,
        "wires": [
            [
                "28ff1c7daf962686"
            ]
        ]
    },
    {
        "id": "1c3acbbddd183827",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = \"off\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 520,
        "y": 140,
        "wires": [
            [
                "28ff1c7daf962686"
            ]
        ]
    },
    {
        "id": "7f4dd9cc9aed52fb",
        "type": "zigbee2mqtt-out",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "command": "brightness",
        "commandType": "z2m_cmd",
        "payload": "payload",
        "payloadType": "msg",
        "transition": 0,
        "x": 920,
        "y": 240,
        "wires": []
    },
    {
        "id": "a5f5aad809a82a17",
        "type": "zigbee2mqtt-get",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "state": "0",
        "x": 560,
        "y": 240,
        "wires": [
            [
                "bc87b3c6c082b665"
            ]
        ]
    },
    {
        "id": "bc87b3c6c082b665",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = msg.payload.brightness+50;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 740,
        "y": 240,
        "wires": [
            [
                "7f4dd9cc9aed52fb"
            ]
        ]
    },
    {
        "id": "dfc4380a19b4d4cc",
        "type": "zigbee2mqtt-out",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "command": "brightness",
        "commandType": "z2m_cmd",
        "payload": "payload",
        "payloadType": "msg",
        "transition": 0,
        "x": 920,
        "y": 200,
        "wires": []
    },
    {
        "id": "93fd7fdfe19f9209",
        "type": "zigbee2mqtt-get",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "state": "0",
        "x": 560,
        "y": 200,
        "wires": [
            [
                "077a9abae383f024"
            ]
        ]
    },
    {
        "id": "077a9abae383f024",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = msg.payload.brightness-50;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 740,
        "y": 200,
        "wires": [
            [
                "dfc4380a19b4d4cc"
            ]
        ]
    },
    {
        "id": "43d6067a8e026fec",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = \"+50\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 320,
        "wires": [
            [
                "fba10e4b7c87bb54"
            ]
        ]
    },
    {
        "id": "e666d44b7b131d3e",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = \"-50\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 280,
        "wires": [
            [
                "fba10e4b7c87bb54"
            ]
        ]
    },
    {
        "id": "fba10e4b7c87bb54",
        "type": "zigbee2mqtt-out",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "command": "brightness_move",
        "commandType": "z2m_cmd",
        "payload": "payload",
        "payloadType": "msg",
        "transition": 0,
        "x": 820,
        "y": 340,
        "wires": []
    },
    {
        "id": "69f3c1ddc48ca93c",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = \"stop\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 360,
        "wires": [
            [
                "fba10e4b7c87bb54"
            ]
        ]
    },
    {
        "id": "d51526c1d3f21365",
        "type": "zigbee2mqtt-server",
        "name": "",
        "host": "192.168.1.59",
        "mqtt_port": "1884",
        "mqtt_username": "z2m",
        "mqtt_password": "BdoseXmoNi5OpOJsYEdY",
        "tls": "",
        "usetls": false,
        "base_topic": "zigbee2mqtt"
    }
]

```

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Mars 7, 2022, 8:48 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/14 "2022-03-07T20:48:33Z")

</div>

done

> [@Etre capable d’injecter une variable dans une action “contrôler un appareil”](https://community.gladysassistant.com/t/etre-capable-d-injecter-une-variable-dans-une-action-controler-un-appareil/7031):
>
> En tant qu’utilisateur Je veux pouvoir injecter une variable de scene dans un appareil Afin de pouvoir modifier les paramètres d’un appareil à la volé.

> [@Faire une opération mathématique sur une “variable de scène”](https://community.gladysassistant.com/t/etre-capable-de-faire-une-operation-mathematique-sur-une-variable-de-scene/7030):
>
> En tant qu’utilisateur Je veux pouvoir additionner, soustraire, multiplier, diviser une variable de scene Afin de pouvoir réaliser des calculs plus complexe dans les scenes

je me suis pas trop pris la tête je t’avoue 🙂

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 8, 2022, 8:37 UTC](https://community.gladysassistant.com/t/incrementer-ou-decrementer-la-valeur-dun-appareil/7025/15 "2022-03-08T08:37:02Z")

</div>

Merci @spenceur ! Laissons le vote faire maintenant 🙂
