Commander un interrupteur zwave de Jeedom avec MQTT

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:

Peut-être mais il suffit que le codage des accents ne soient pas cohérents (UTF-8 et un autre truc) et c’est cuit. Autant ne pas tenter le diable!

entièrement d’accord…

Merci de m’accorder tout ce temps.
En allant sur outils de développement, j’ai ça


j’ai bien modifié état en etat
J’ai mis cela

 - platform: template
    switches:
      prise_jeedom:
        #value_template: non définie
        value_template: "{{ is_state('sensor.etat', '0') }}"
        turn_on:
          service: rest_command.allumer_prise
        turn_off:
          service: rest_command.eteindre_prise

j’ai relancé HA
l’état de ma prise est sur 1
2021-04-10_18-33-58
pourtant ma prise est grisée, je clique c’est à nouveau bleu 1s et ça redevient gris.
Si j’éteins avec jeedom, le voyant devient bleu, je clique ça devient gris puis redevient bleu mais la prise est toujours éteinte.
Il doit y avoir une inversion quelque part mais je ne sais pas où

Bon, je crois avoir trouvé, il fallait mettre :

value_template: "{{ is_state('sensor.etat', '1') }}"

et là ça fonctionne

C’est pas une histoire d’inversion dans Jeedom ?

Non dans HA, on veut savoir quand c’est allumé donc sensor.etat à Vrai.

Je ne sais pas pourquoi j’ai mis 0 pour remplacer on… :innocent: :sweat_smile:

T’as ce que tu voulais ?

Tout est bon :yum: ?

Oui un énorme MERCI à ceux qui ont bien voulu m’aider.
Et dire que j’allais laisser tomber

Il y a une dernière chose qui me fait bloquer, c’est la lecture de l’état de la prise.
Avec MQTT, ça ne se met à jour qu’en cas d’action sur la prise (du coup je peux très bien éteindre sans le vouloir)
J’ai une URL directe pour lire la valeur 0 ou 1.
Comment je peux l’attribuer dans cette ligne : value_template: « {{ is_state(‹ sensor.etat ›, ‹ 0 ›) }} »
C’est encore une url du type https://xxxxxxxxxxxxx.eu.jeedom.link/core/api/jeeApi.php?apikey=xxxxxxxxxxxxxxxxxx&type=cmd&id=5052

Il faut changer la définition du bianry_sensor etat. Ce n’est plus en mqtt que tu auras la valeur. Mais, en rest. Donc un truc comme ça:

binary_sensor:
  - platform: rest
    resource: "http://192.168.0.xxx/core/api/jeeApi.php?apikey=xxxxxx&type=cmd&id=yy"
    name: etat

Tu prends ce que tu as et qui marche. Tu change mqtt en rest.
Et tu remplaces state_topic par resource… et ça doit rouler.

1 « J'aime »

Merci je vais tester ça.
J’avais trouvé un biais avec Jeedom avec une scénario qui se répète toutes les minutes et qui force l’envoi des données MQTT (mais j’ai un peur peur que ça surcharge le système)

Le « problème » avec ces solutions, c’est que la mise à jour de l’état jeedom ne sera reflétée que par polling (soit la minute du scenario, soit le scan_interval) et donc, tu auras l’impression que le « on » envoyé par HA ne se reflète pas dans le binary_sensor.etat immédiatement.
Il faudrait soit passer par l’url de push global de jeedom, ou avoir un scenario dans jeedom qui réagit sur le changement d’état et qui pousse l’état en mqtt ou autrement. Comme ça, ça sera vraiment immédiat.

merci ça fonctionne mais en changeant par ça

value_template: "{{ is_state('binary_sensor.etat_prise_cam_cab', 'on') }}"

@golfvert @denisb88

Avec l’utilisation de Rest pour récupérer un état, si la commande est du côté de HA, le mieux est d’ajouter une automatisation qui aura comme déclencheur la commande et comme action le service homeassistant.update_entity (ajouter un delay si pendant la mise au point la requête est trop tôt et que le changement côté Jeedom n’est pas encore effectué).

SI la commande n’est pas dû coté de HA, oui, il y aura un délai certain mais minime.

Dis toi que depuis 2 ans, sur un RPi2, j’ai une automatisation qui se déclenche toutes les 30 secondes H24 et que je n’ai constaté aucun ralentissement (autre que déjà présent dû au Pi lui même, je conseille un RP4 c’est sûr) ni aucune charge processeur qui n’est que 900MHz.
Le RPI2 est dédié HA en version Core sur un Raspbian Lite.

OK ça rassure alors

Moi, c’est sur un NUC i3 avec VMWare (2 machines virtuelles - une avec jeedom 4 - une avec home assistant) Au moins, c’est « secure » et ça permet de faire des snapshots avec les grosses modifs