Commander un interrupteur zwave de Jeedom avec MQTT


En appuyant sur ON, ça reste toujours sur 255

Ce que je suggère c’est d’envoyer la commande depuis mqtt explorer. Et voir si ça marche sur jeedom. C’est pour que tu saches de quel côté chercher…

Merci, j’ai utilisé PUBLISH (c’est bien ça ?), j’ai mis 1 0 ON OFF, le set se modifie bien mais pas de déclenchement sur Jeedom

C’est bien ça, le publish avec ce qui est supposé marcher comme payload. Si rien ne se passe, c’est du côté jeedom qu’il faut chercher…
Ou alors ne pas utiliser jmqtt du côté jeedom mais faire les appels direct à l’API jeedom depuis HA.

Avec l’intégration REST comme tu expliques en premier dans le post donné au-dessus ?

J’imagine que je dois m’inspirer de ça ? Jeedom vs HomeAssistant - #9 par L0L0 - Discussions Générales - Communauté Jeedom

Oui. Il y a aussi un autre exemple là:
https://forum.hacf.fr/t/recuperer-les-dimmers-zwave-de-jeedom-dans-ha/2542/2?u=golfvert

Le problème des switch REST avec HA (RESTful Switch - Home Assistant) , c’est que les commandes utilisent du PUT/POST alors que jeedom veut du GET comme action HTTP.
Et donc, il faut utiliser des commandes shell.

Un grand merci pour les pistes. Bon y a du boulot avant que j’intègre tout, je débute avec HA et c’est encore pas mal du chinois. Je reviendrai vers toi si je n’y arrives pas.
J’en conclus que les switch MQTT vers jeedom ne fonctionnent pas

Peux être passer directement par le service rest qui utilise (par défaut) le GET

Et si on veux vraiment un interrupteur (switch), on le crée soi-même en associant les services rest.

Bon après avoir ESSAYE de comprendre, je crois que je vais laisser tomber, je n’y comprends rien du tout et je ne connais pas du tout Node_RED. Tout ça c’est « pour l’instant » du chinois pour moi. Autant, j’avais tout bien compris pour la lecture des infos avec MQTT, autant là pour les déclencheurs, je n’y arrive pas. J’ai mis ça :

https://192.168.1.152:1880/endpoint/jeedom?value=#value#&id=#cmd_id#

dans l’URL de push de mon état de la prise mais après mystère et boule de gomme . Peut-être qu’un plugin jeedom ou une intégration HA verra le jour …

On est là pour t’épauler :+1:

As tu une requête qui fonctionne ? (quand tu la rentre dans la barre d’adresse de ton navigateur, la lampe s’allume)

Merci, c’est sympa. Oui les requêtes ON et OFF fonctionnent

Elle est de cette forme pour ON : https://xxxxxxxxxxxxx.eu.jeedom.link/core/api/jeeApi.php?apikey=xxxxxxxxxxxxxxxxxx&type=cmd&id=5054

Donc dans ton fichier configuration.yaml tu ajoutes ces lignes :

#configuration.yaml
rest_command:
  allumer_prise:
    url: "https://xxxxxxxxxxxxx.eu.jeedom.link/core/api/jeeApi.php?apikey=xxxxxxxxxxxxxxxxxx&type=cmd&id=5054"
  eteindre_prise:
    #modifier la requête car c'est un copier/coller de la précédente
    url: "https://xxxxxxxxxxxxx.eu.jeedom.link/core/api/jeeApi.php?apikey=xxxxxxxxxxxxxxxxxx&type=cmd&id=5054"

Puis tu redémarres…

Au démarrage suivant, si tu vas dans Outils de développement → Onglet SERVICES tu trouveras les services :

  • rest_command.allumer_prise
  • rest_command.eteindre_prise

Tu sélectionnes le service pour allumer la prise et tu appuis sur le bouton APPELER LE SERVICE et tu regardes si la prise s’allume.

Idem pour l’extinction.

Une fois le fonctionnement des services validés, tu peux te créer un switch en fonction de ces services :

(toujours dans le fichier configuration.yaml)

#configuration.yaml
switch:
  - platform: template
    switches:
      prise_jeedom:
        #value_template: non définie
          #Pour l'instant, l'état de la prise est définie par le fait de manipuler l'interrupteur depuis HA.
          #Il faudrait récupérer l'état du switch directement depuis le brocker MQTT.
          #Ce qui donnera, une fois l'état récupéré sur un binary_sensor.etat_prise
          #value_template: "{{ is_state('binary_sensor.etat_prise', 'on') }}"
        turn_on:
          service: rest_command.allumer_prise
        turn_off:
          service: rest_command.eteindre_prise

Tu redémarres.

Tu affiches sur une carte dans ton tableau de bord l’entité switch.prise_jeedom et tu vérifies que la prise s’allume/s’éteint.

Si tout fonctionne, tant mieux et il ne restera plus qu’à créer une entité pour l’état et l’ajouter à la définition de l’interrupteur.

Je n’ai pas de Jeedom donc je ne peux que m’appuyer sur la documentation de HA pour t’aiguiller, @golfvert aura peut être une autre approche en tant qu’utilisateur de jeedom.

Tiens nous au courant :+1:

Alors là, chapeau bas, oui c’est nickel. Un grand merci
Juste une chose, j’ai un éclair barré et un éclair noir, y a moyen d’avoir le bouton rond classique qui glisse ?

Edit : Compris, il apparait si on utilise value template

Redit :
j’ai mis ça

`- platform: template
    switches:
      prise_jeedom:
        #value_template: non définie
          #Pour l'instant, l'état de la prise est définie par le fait de manipuler l'interrupteur depuis HA.
          #Il faudrait récupérer l'état du switch directement depuis le brocker MQTT.
          #Ce qui donnera, une fois l'état récupéré sur un binary_sensor.etat_prise
        value_template: "{{ is_state('binary_sensor.prise/lum', 'on') }}"
        turn_on:
          service: rest_command.allumer_prise
        turn_off:
          service: rest_command.eteindre_prise`

et ça dans sensors

- platform: mqtt  
  state_topic: 'prise/lum'
  name: 'état'

mais là ça ne fonctionne plus, si elle est OFF et que je clique, la prise s’allume et passe sur le bleu et une seconde plus tard repasse sur le gris alors que la prise est toujours allumée et que le sensor prise/lum est toujours sur 1

Ça ne peux pas être ça… :innocent:

Je pencherais plus sensor.etat et donc

- platform: template
    switches:
      prise_jeedom:
        value_template: "{{ is_state('sensor.etat', 'on') }}"
        turn_on:
          service: rest_command.allumer_prise
        turn_off:
          service: rest_command.eteindre_prise`

Oui on peut :grin:

Au début de cette réponse → Bouton poussoir - #2 par Clemalex

c’est assumed_state: false

merci pour l’éclair vers le bouton

sinon j’ai repris depuis le début le sensor d’état
création d’un topic mqtt avec jeedom qui surveille l’état


vérification avec MQTT Explorer, l’état change bien sous jeedom (allumage extinction)
2021-04-10_17-49-53
création du sensor
2021-04-10_17-51-22

sur le switch j’ai mis ça

si l’ampoule est éteinte avec jeedom, c’est bon, c’est grisé

je clique sur le bouton, ça passe en bleu, l’ampoule s’allume


Ca reste une seconde, l’état dans MQTT Explorer est bien sur 1, l’ampoule est allumée et ca redevient gris et j’ai beau recliquer sur le bouton, il ne se passe plus rien.
Qu’est-ce que j’ai oublié ?

Je vois que @golfvert va te répondre… :innocent:

Mais c’est sûr que ton entité n’est pas celle-ci…

- platform: mqtt  
  state_topic: 'etat/prise1'
  name: 'etat'

Sans ’ sur le e…

et

Devraient marcher.
Tu mélanges le nom du sensor (qui est etat) et le topic mqtt (etat/prise1).

Pour compléter la réponse :

Pour savoir sur quelle entité se baser pour la valeur, va dans Outils de développement → Onglet ETATS et cherche plutôt sensor.etat ou binary_sensor.etat.

Mais je pense qur ça va être sensor et donc il faut mettre 0 et non on.

En résumé, comme se nomme ton entité de l’état de la prise mqtt ?

A vérifier mais je pense que ça passe… Et peux être que le friendly_name conserve l’accent à la différence de entity_id:thinking: