# MQTT Pilotage d'entités avec des numéros, en gros un switch à plusieurs positions

**URL:** <https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098>\
**Category:** Entraide Home Assistant\
**Created:** [Janvier 2, 2023, 12:10 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098 "2023-01-02T12:10:25Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Titou220502](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/t/9fc29f/32.png) [@Titou220502](https://forum.hacf.fr/u/Titou220502)\
**Post date:** [Janvier 2, 2023, 12:10 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/1 "2023-01-02T12:10:25Z")

</div>

Bonjour et bonne année,

J’ai installé un PVrouter,

Il y a une entité qui est modeinfo qui renvoie un nombre à deux chiffres comme 00, 33 ou autre.

Le chiffre des dizaines représente un mode de la sortie du SSR2 du pv router qui peut avoir 5 variantes mode 1, 2, 3, 4 ou 9.

Le chiffre des unités représente un mode de la sortie du SSR1 du pv router qui peut avoir 5 variantes mode 1, 2, 3, 4 ou 9.

A la base je voulais créer un switch pour changer de mode cependant je suis limité car un switch n’a que 2 positions on et off, de plus quand le modeinfo est sur 4 je dois créer un slider qui va de 0 à 100% sous forme de float.

Selon vous que devrais-je utiliser ? un input number, une automation un blueprint ? ou autre ?  
le schéma ressemble à une carte de thermostat sans sonde de température mais avec des nombres reçus et des nombres à envoyer pour changer de mode soit le SSR1 ou le SSR 2.

J’espère avoir été le plus clair possible merci de vos conseils.

Le sujet en partie traité ici m’a donné l’idée de l’approfondire [MQTT regroupement sous Nom peripheriques + pilotage - #10 par Zibasedom\_Seblang](https://forum.hacf.fr/t/mqtt-regroupement-sous-nom-peripheriques-pilotage/16180/10)

---

<div class="post-metadata">

**Author:** ![Pulpy-Luke](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pulpy-luke/32/137426_2.png) [@Pulpy-Luke](https://forum.hacf.fr/u/Pulpy-Luke)\
**Post date:** [Janvier 2, 2023, 12:27 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/2 "2023-01-02T12:27:09Z")

</div>

Salut,

comme la suite n’est pas consécutive, un slider ça va être le bordel …(5,6,7,8 n’existe pas si j’ai bien compris)…  
un input select ça me semble plus efficace

```auto
input_select:
  mode_ssr1:
    options:
      - "1"
      - "2"
      - "3"
      - "4"
      - "9"
    initial: "1"

  mode_ssr2:
    options:
      - "1"
      - "2"
      - "3"
      - "4"
      - "9"
    initial: "1"

```

Ensuite coté carte, les sélecteurs de base ou une carte à base de boutons  
Et pour le pilotage, une automatisation qui envoie la combinaison des 2

---

<div class="post-metadata">

**Author:** ![Titou220502](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/t/9fc29f/32.png) [@Titou220502](https://forum.hacf.fr/u/Titou220502)\
**Post date:** [Janvier 2, 2023, 1:14 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/3 "2023-01-02T13:14:16Z")

</div>

Merci pour cette réponse, oui tu as bien compris que la suite n’est pas consécutive il n’y a que 0, 1, 2, 3, 4 ou 9.

Le input select doit être dans un fichier input\_select.yaml ?

Le slider ne serait effectif que lorsque le mode est sur 4 les autres n’ont pas de commande en % juste on ou off.

par contre l’entité envoie systématiquement un nombre à deux chiffres et là je ne vois pas comment faire le tri pour dire que le chiffre des dizaines est ssr2 et le chiffre des unités le ssr1

et comment faire cette automatisation qui envoie la combinaison de nombres ?

---

<div class="post-metadata">

**Author:** ![Pulpy-Luke](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pulpy-luke/32/137426_2.png) [@Pulpy-Luke](https://forum.hacf.fr/u/Pulpy-Luke)\
**Post date:** [Janvier 2, 2023, 1:42 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/4 "2023-01-02T13:42:55Z")

</div>

![image](https://forum.hacf.fr/uploads/default/original/3X/2/8/28c92970e56230021e2f8af2fcb7ac20919dad97.png)

Pour ça il va falloir jouer avec le code jinja

> **[Templating](https://www.home-assistant.io/docs/templating/)**
>
> Learn how to use templates to make Home Assistant adapt to your needs.

En gros ton automatisation va appeler un service (celui dédié au changement du mode) avec le recomposition

 ![image](https://forum.hacf.fr/uploads/default/original/3X/7/c/7caf8403bb5cdc5b08ad010243e028279579a4c7.png)

---

<div class="post-metadata">

**Author:** ![Titou220502](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/t/9fc29f/32.png) [@Titou220502](https://forum.hacf.fr/u/Titou220502)\
**Post date:** [Janvier 2, 2023, 2:13 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/5 "2023-01-02T14:13:50Z")

</div>

Je pense saisir l’idée, en exemple quand je vais dans outil de développement → modèle sur l’entité en question :

voici comment est le résultat `{{ states('sensor.MODEINFO') }}` le résultat est `33` car mes deux SSR sont sur le mode 3, mais comment détailler pour prendre le chiffre 3 des dizaines et séparément le 3 des unités afin de les approprier aux SSR1 et SSR 2?

édit: je m’auto-réponds je peux les sortir comme cela `{{ states('sensor.MODEINFO') [0]}}` pour le SSR1 et `{{ states('sensor.MODEINFO') [1]}}`pour le SSR 2. cependant il faut que je l’affecte à une entité nouvelle non pour garder la valeur ?

---

<div class="post-metadata">

**Author:** ![Pulpy-Luke](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pulpy-luke/32/137426_2.png) [@Pulpy-Luke](https://forum.hacf.fr/u/Pulpy-Luke)\
**Post date:** [Janvier 2, 2023, 2:25 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/6 "2023-01-02T14:25:05Z")

</div>

En fait la question c’est qui pilote qui ?

- Pour juste de l’affichage (aka découper `states('sensor.MODEINFO')` et en faire une carte), tu n’as même pas besoin de faire des input\_select. Très basiquement tu pourrais afficher directement 33
- Pour contrôler/piloter/commander, il faut des input select, mais du coup, tu n’as pas forcement besoin de récupérer la valeur de `states('sensor.MODEINFO')`, mais juste d’envoyer à ton «&nbsp;module&nbsp;», l’info combinée des 2 input\_select. Quand c’est en place, si les input valent 22, alors ton `states('sensor.MODEINFO')`sera à 22 après l’automatisation
- On peut aussi faire un mix des 2, question de gout et de place

---

<div class="post-metadata">

**Author:** ![Titou220502](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/t/9fc29f/32.png) [@Titou220502](https://forum.hacf.fr/u/Titou220502)\
**Post date:** [Janvier 2, 2023, 2:37 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/7 "2023-01-02T14:37:43Z")

</div>

Dans mon idée c’est un mix des deux,

sur la carte je souhaite voir l’état de chaque SSR par exemple SSR1 en mode 3 = gradateur (bouton allumé en vert par exemple) et SSR 2 mode 0 éteint avec donc (bouton allumé en vert le 0 éteint) et pouvoir sélectionner pour le SSR1 le bouton 9 qui s’allume et enclenche le mode test du SSR1.

cela ressemble au thermostat ou on peut cliquer les modes auto/confort/hors-gel/Vacances tout en voyant dans quel mode il se trouve.

je ne sais pas si je suis bien clair dans mon explication.

---

<div class="post-metadata">

**Author:** ![Pulpy-Luke](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pulpy-luke/32/137426_2.png) [@Pulpy-Luke](https://forum.hacf.fr/u/Pulpy-Luke)\
**Post date:** [Janvier 2, 2023, 2:43 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/8 "2023-01-02T14:43:26Z")

</div>

> [@Titou220502](#):
>
> sur la carte je souhaite voir l’état de chaque SSR par exemple SSR1 en mode 3 = gradateur (bouton allumé en vert par exemple) et SSR 2 mode 0 éteint avec donc (bouton allumé en vert le 0 éteint) et pouvoir sélectionner pour le SSR1 le bouton 9 qui s’allume et enclenche le mode test du SSR1.

Alors commence par faire une carte avec les input… Simples commandes avec un affichage basique :

```auto
type: entities
entities:
  - entity: input_select.mode_ssr1
  - entity: input_select.mode_ssr2

```

Il faut que tu vois dans ton intégration comment ça marche pour en déduire les bonnes automatisations (appel des bons services).  
Là de ce que tu dis, on dirait que SSR1 et SSR2 sont pilotables indépendamment.  
Donc 2 automatisations quasi identiques :

- l’input select SSR1 en trigger
- un appel du service dédié à SSR1 avec la valeur de SSR1  
Et pareil pour SSR2

tu peux essayer d’appeler les services dans les outils de dev et créer les automatisations avec l’ui dédiée. Par contre il te faut comprendre comment marche HA ET tes PV … là j’ai l’impression que c’est pas encore très clair pour toi

---

<div class="post-metadata">

**Author:** ![Titou220502](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/t/9fc29f/32.png) [@Titou220502](https://forum.hacf.fr/u/Titou220502)\
**Post date:** [Janvier 2, 2023, 2:56 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/9 "2023-01-02T14:56:12Z")

</div>

En effet ce n’est pas très clair, je débute d’ailleurs que veux dire les pv ?

oui, on peut contrôler indépendamment la sortie une de la deux et inversement, si on change le chiffre des dizaine on modifie la sortie 2 et le chiffre des unités modifie la sortie une.

L’exemple du switch montre en partie comment cela fonctionne, je copie le code fonctionnant dans le post de départ de mon idée.

```auto
mqtt:

switch:
- unique_id: ‹ PVrouter OnOff ›
name: « PVrouter OnOff »
state_topic: « PVROUTER005/DATA »
value_template: « {{ value_json.MODEINFO }} »
command_topic: « PVROUTER005/SETMODE »
payload_on: « 3 »
payload_off: « 0 »
state_on: « 3 »
state_off: « 0 »
qos: 0
retain: true
device:
name: « pvrouter »
identifiers: « pvrouter005 »

```

---

<div class="post-metadata">

**Author:** ![Pulpy-Luke](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pulpy-luke/32/137426_2.png) [@Pulpy-Luke](https://forum.hacf.fr/u/Pulpy-Luke)\
**Post date:** [Janvier 2, 2023, 2:59 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/10 "2023-01-02T14:59:32Z")

</div>

> [@Titou220502](#):
>
> oui, on peut contrôler indépendamment la sortie une de la deux et inversement, si on change le chiffre des dizaine on modifie la sortie 2 et le chiffre des unités modifie la sortie une

ok donc l’intégration de ton PVrouter doit permettre de faire autre chose que juste récupérer les infos… Donc il ya des entités qui y sont rattachés et des services… Lesquels sont-ils ?

---

<div class="post-metadata">

**Author:** ![Titou220502](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/t/9fc29f/32.png) [@Titou220502](https://forum.hacf.fr/u/Titou220502)\
**Post date:** [Janvier 2, 2023, 3:02 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/11 "2023-01-02T15:02:30Z")

</div>

Juste au dessus je l’ai mis.

Pour récupérer les infos `states('sensor.MODEINFO')` qui donne un nombre à 2 chiffres qu’il faut dissocier.

Pour envoyer les infos `command_topic: « PVROUTER005/SETMODE »`

---

<div class="post-metadata">

**Author:** ![Pulpy-Luke](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pulpy-luke/32/137426_2.png) [@Pulpy-Luke](https://forum.hacf.fr/u/Pulpy-Luke)\
**Post date:** [Janvier 2, 2023, 3:05 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/12 "2023-01-02T15:05:38Z")

</div>

> [@Titou220502](#):
>
> Pour récupérer les infos `states('sensor.MODEINFO')` qui donne un nombre à 2 chiffres qu’il faut dissocier.

Pour l’instant, on va laisser la dissociation de coté, c’est juste cosmétique, le plus difficile c’est de pilote  
Une carte avec

```auto
type: entities
entities:
  - entity: sensor.MODEINFO
  - entity: input_select.mode_ssr1
  - entity: input_select.mode_ssr2

```

Ferra le job en attendant.

> [@Titou220502](#):
>
> Pour envoyer les infos `command_topic: « PVROUTER005/SETMODE »`

Ok et quel est le format du json que tu envois ? parce que là par exemple il n’y a rien pour choisir entre SSR1 et SSR2

ça pourrait ressembler à ça

```auto
alias: Pilotage SSR1
description: ""
trigger:
  - platform: state
    entity_id:
      - input_select.mode_ssr1
condition: []
action:
  service: mqtt.publish
  data_template:
    topic: "PVROUTER005/SETMODE"
    payload: >
      {{states( 'input_select.mode_ssr1') }}
    retain: false
mode: single

```

---

<div class="post-metadata">

**Author:** ![Titou220502](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/t/9fc29f/32.png) [@Titou220502](https://forum.hacf.fr/u/Titou220502)\
**Post date:** [Janvier 2, 2023, 3:52 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/13 "2023-01-02T15:52:42Z")

</div>

> [@Pulpy-Luke](#):
>
> Pour l’instant, on va laisser la dissociation de coté, c’est juste cosmétique, le plus difficile c’est de pilote  
> Une carte avec

Justement non le soucis est que le mqtt.publish doit se faire avec les deux chiffres

> [@Pulpy-Luke](#):
>
> Ok et quel est le format du json que tu envois ? parce que là par exemple il n’y a rien pour choisir entre SSR1 et SSR2

Justement pour les choisir comme je le dis depuis le début, le chiffre des dizaine est le SSr2 et le chiffre des unités le SSR1

---

<div class="post-metadata">

**Author:** ![Pulpy-Luke](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pulpy-luke/32/137426_2.png) [@Pulpy-Luke](https://forum.hacf.fr/u/Pulpy-Luke)\
**Post date:** [Janvier 2, 2023, 3:55 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/14 "2023-01-02T15:55:17Z")

</div>

> [@Titou220502](#):
>
> Justement non le soucis est que le mqtt.publish doit se faire avec les deux chiffres

> [@Titou220502](#):
>
> oui, on peut contrôler indépendamment la sortie une de la deux et inversement, si on change le chiffre des dizaine on modifie la sortie 2 et le chiffre des unités modifie la sortie une.

Là on a les 2 infos contradictoires… As tu un exemple concret du payload ?

De toute façon, l’affichage CE N’EST PAS LA MÊME CHOSE que le pilotage, s’il faut envoyer 2 chiffres c’est dans l’automatisation que ça se passera…

---

<div class="post-metadata">

**Author:** ![Titou220502](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/t/9fc29f/32.png) [@Titou220502](https://forum.hacf.fr/u/Titou220502)\
**Post date:** [Janvier 2, 2023, 3:56 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/15 "2023-01-02T15:56:58Z")

</div>

oui il faut dans l’automation gérer les deux chiffres, mqqt.publish c’est bien l’envoi de données non ? je ne parle pas d’affichage là

---

<div class="post-metadata">

**Author:** ![Pulpy-Luke](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pulpy-luke/32/137426_2.png) [@Pulpy-Luke](https://forum.hacf.fr/u/Pulpy-Luke)\
**Post date:** [Janvier 2, 2023, 3:57 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/16 "2023-01-02T15:57:44Z")

</div>

Oui, mais mais le payload (le json que l’on envoi) doit respecter un format particulier…  
On peut balancer 2 chiffres sur le topic, il faut juste confirmer que c’est juste ça

---

<div class="post-metadata">

**Author:** ![Titou220502](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/t/9fc29f/32.png) [@Titou220502](https://forum.hacf.fr/u/Titou220502)\
**Post date:** [Janvier 2, 2023, 3:58 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/17 "2023-01-02T15:58:58Z")

</div>

C’est ça le json doit envoyer deux chiffres

---

<div class="post-metadata">

**Author:** ![Pulpy-Luke](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pulpy-luke/32/137426_2.png) [@Pulpy-Luke](https://forum.hacf.fr/u/Pulpy-Luke)\
**Post date:** [Janvier 2, 2023, 4:00 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/18 "2023-01-02T16:00:36Z")

</div>

Donc un truc comme ça

```auto
alias: Pilotage SSR1 & SSR2
description: ""
trigger:
  - platform: state
    entity_id:
      - input_select.mode_ssr1
      - input_select.mode_ssr2
condition: []
action:
  - service: mqtt.publish
    data_template:
      topic: PVROUTER005/SETMODE
      payload: >
        {{states( 'input_select.mode_ssr2') }}{{ states('input_select.mode_ssr1') }}
      retain: false
mode: single

```

---

<div class="post-metadata">

**Author:** ![Titou220502](https://forum.hacf.fr/letter_avatar_proxy/v4/letter/t/9fc29f/32.png) [@Titou220502](https://forum.hacf.fr/u/Titou220502)\
**Post date:** [Janvier 2, 2023, 4:14 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/19 "2023-01-02T16:14:38Z")

</div>

En mettant tout cela dans configuration.yaml j’ai un paquet d’erreurs:

```auto
input_select:
  mode_ssr1:
    options:
      - "0"
      - "1"
      - "2"
      - "3"
      - "4"
      - "9"
    initial: "3"

  mode_ssr2:
    options:
      - "0"
      - "1"
      - "2"
      - "3"
      - "4"
      - "9"
    initial: "3"

type: entities
entities:
  - entity: sensor.MODEINFO
  - entity: input_select.mode_ssr1
  - entity: input_select.mode_ssr2

alias: Pilotage SSR1 & SSR2
description: ""
trigger:
  - platform: state
    entity_id:
      - input_select.mode_ssr1
      - input_select.mode_ssr2
condition: []
action:
  - service: mqtt.publish
    data_template:
      topic: PVROUTER005/SETMODE
      payload: >
        {{states( 'input_select.mode_ssr2') }}{{ states('input_select.mode_ssr1') }}
      retain: false
mode: single

```

```auto
Integration error: alias - Integration 'alias' not found.
Integration error: type - Integration 'type' not found.
Integration error: action - Integration 'action' not found.
Integration error: entities - Integration 'entities' not found.
Integration error: mode - Integration 'mode' not found.
Integration error: condition - Integration 'condition' not found.
Integration error: description - Integration 'description' not found.
Integration error: trigger - Integration 'trigger' not found.

```

---

<div class="post-metadata">

**Author:** ![Pulpy-Luke](https://forum.hacf.fr/user_avatar/forum.hacf.fr/pulpy-luke/32/137426_2.png) [@Pulpy-Luke](https://forum.hacf.fr/u/Pulpy-Luke)\
**Post date:** [Janvier 2, 2023, 4:15 UTC](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098/20 "2023-01-02T16:15:56Z")

</div>

> [@Titou220502](#):
>
> En mettant tout cela dans configuration.yaml j’ai un paquet d’erreurs:

Les input\_select ça doit marcher, mais les automatisations c'est pas du tout comme ça ... il y a une UI dédiée (avec bascule en yaml possible)

 ![image](https://forum.hacf.fr/uploads/default/original/3X/a/8/a8950c2e3a4832bbd35f8c97fad3ed2a987ce24d.png)

[Page suivante](https://forum.hacf.fr/t/mqtt-pilotage-dentites-avec-des-numeros-en-gros-un-switch-a-plusieurs-positions/19098.md?page=2)
