Passerelle Jeedom HA

Bonjour
J’aurai peut-être plus de chance sur ce forum que sur celui de hacf où personne n’a pu solutionner mon problème. Je voudrais faire cohabiter les deux systèmes Jeedom et Home assistant et
je voudrais récupérer l’état d’une prise connectée zwave sous jeedom dans home assistant. Pour cela j’utilise jMQTT pour envoyer l’état de ma prise


MQTT Explorer me montre bien un 1 ou un 0 en fonction de l’état de la prise
2022-12-21_19-22-32

Sous home assistant, je crée un sensor mqtt sous cette forme:

mqtt: 
 sensor:
    - name: "Etat noeud25" 
      state_topic: "etat/noeud25"
      unique_id: etat.noeud25
      

le sensor se met bien à jour dans home assistant

J’ai crée un switch sous home assistant qui me permet avec curl de piloter ma prise sous jeedom. Tant que je reste sous home assistant, l’interrupteur réagit normalement et change d’état en fonction de mes clics.
Le problème, c’est quand j’actionne depuis jeedom la prise et que je l’allume par exemple, mqtt envoie bien la valeur 1 mais le switch sous home assistant ne change pas alors que mon sensor.etat_noeud25 passe bien à un.
Voici comment j’ai déclaré le switch:

  - platform: command_line
    switches:
      noeud25:
        value_template: "{{ is_state('sensor.etat_noeud25', '1') }}"
        command_on: /usr/bin/curl -X GET "https://IP/core/api/jeeApi.php?apikey=API&type=cmd&id=7120" #commande pour ouvrir
        command_off: /usr/bin/curl -X GET "https://IP/core/api/jeeApi.php?apikey=API&type=cmd&id=7121"
        

J’ai l’impression que cela vient du value_template mais je ne maîtrise pas assez yaml. Quelqu’un a t-il déjà été confronté à ce problème et y a-t-il une solution ?

Salut

Et pourquoi pas uniquement récupérer l’état sur ton broker mqtt ?
Ce qui te permet quelque soit le soft qui commande ta prise d’avoir toujours le bon état.

Après je n’ai pas HA donc ce n’est qu’une hypothèse.

Merci, mais c’est ce que je fais déjà

Bonjour,

ça devrait être

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

non ? (etat.noeud25 à la place de etat_noeud25)

Non ça ne change rien
2022-12-22_18-02-42

Essaie en mettant juste etat.noeud25 dans le template ou en remplaçant l’unique_id dans la définition du sensor par sensor.etat.noeud25

Rien à faire


Ton état, tu le publies comme un string ou un int ?

Ah ça je ne sais pas, comment je peux savoir ?
J’imagine que c’est un nombre puisque je le récupère sur l’état de la prise (0 ou 1)

Dans ce cas essaie :
value_template: "{{ is_state('etat.noeud25', 1) }}"

après, je suis à cours d’idée :wink:

Tu relances bien ha après chaque modif ?

Slt je ne connais pas ha mais es qu’il ne s’attend pas a recevoir un binaire true/false et donc 0/1

Il s’attend à une valeur à comparer. La valeur peut-être de tous type (string, int, boolean, …)

Justement si la valeur ne convient pas pourquoi linterpreterai t’il ?

ben rien ne le dit, d’où le test avec quotte et sans pour la valeur 1 …

value_template: « {{ is_state(‹ etat.noeud25 ›, 1) }} » ne change rien
Oui je redémarre ha à chaque modification.
C’est quand même dingue qu’on ne puisse pas faire changer d’état un interrupteur en fonction d’une valeur 0 ou 1. Pour ça jeedom est quand même supérieur

1 « J'aime »

Après, je découvre à peine ha. Un connaisseur te fournira sans doute la solution.
J’essaierai de faire un swtich avec état (comme le tien) ce week-end pour voir

J’ai trouvé ce post:

light:
  - platform: mqtt
    name: JEEDOM lumiere cuisine
    state_topic: "Lumiere/cuisine_onoff"
    command_topic: "Lumiere/cuisine_onoff/act"
    brightness_state_topic: 'Lumiere/cuisine_brightness'
    brightness_command_topic: 'Lumiere/cuisine_brightness/act'
    qos: 0
    optimistic: false
    payload_on: "1"
    payload_off: "0"
1 « J'aime »

merci cddu33 mais mon switch fonctionne très bien dans le sens HA–>jeedom.
Je clique, ça allume ma prise jeedom, l’interrupteur passe sur on. Je clique à nouveau, ça éteint la prise et l’interrupteur passe sur off.
C’est dans l’autre sens que ça déconne. Si j’allume ma prise depuis jeedom, l’interrupteur ne change pas pourtant la variable etat.noeud25 passe bien à 1
Je ne comprends pas ce qui cloche

Bonjour,

J’ai donc testé …

ci-dessous ma conf :

mqtt:                                              
  binary_sensor:                                   
    - name: "Lumiere"                        
      device_class: "light"                  
      payload_on: 1                          
      payload_off: 0                     
      state_topic: "Maison/Jardin/Lumiere"
      object_id: jardin_lumiere           
      unique_id: state.jardin_lumiere     
                                          
switch:                                   
  platform: command_line                  
  switches:                               
    jardin_lumiere:                       
      friendly_name: Lampe Jardin         
      command_on: echo "1"                
      command_off: echo "0"               
      command_state: echo                 
      unique_id: cmd.jardin_lumiere                                                
      value_template: "{{ is_state('binary_sensor.jardin_lumiere',[1,'on','1']) }}" 

Points d’attention :
Dans le switch, il faut mettre command_state avec une commande bidon pour que value_template soit pris en compte.
Dans value_template, l’identifiant à mettre c’est l’identity_id et non l’unique_id que tu définis.
J’ai mis un tableau pour is_state car j’avais la flemme de tester avec quoi exactement c’était comparé.

Dernier point, c’est leeeent entre le changement d’état de la lumière dans HA et la mise à jour du switch.

En gros :
Jeedom → mqtt → ha → màj état lampe c’est ok mais ensuite dans ha, état lampe → màj switch entre 15 et 30 secondes :