Réalisation d’un interrupteur volet dans HA situé physiquement sur un jeedom

Bonjour,

Voici mon problème,
je viens de jeedom , j’utilise HA en docker depuis 1 mois environ, celui ci fonctionne très très bien.

J’ai intégré mes volets roulants profalux en zigbee2mqtt sans pbs mais j’ai aussi 3 autres qui sont de profalux mais équipés de micromodule non reconnu en zigbee2mqtt ni en ZHA par contre ils sont reconnus par jeedom équipé de la zigate (depuis 5ans environ).

Ne pouvant pas arriver à les faire reconnaître en zigbee2mqtt ni en ZHA, j’ai décidé de continuer à faire tourner mon jeedom et ces 3 micromodules.

en suivant ce fils, j’ai réussi à piloter mes volets en utilisant curl :

  - cover:
      name: vr_cuisine_mer
      command_open: curl 'https://xxxxxxxxxx/core/api/jeeApi.php?apikey=4Q7xxxxxxxxxxxxxxxxxx&type=cmd&id=1918&slider=100'
      command_close: curl 'https://xxxxxxxxxxxxxxxxxx/core/api/jeeApi.php?apikey=4Q76xxxxxxxxxxxxxxxxxxxxxG&type=cmd&id=1918&slider=0'
      command_stop: curl 'https://xxxxxxxxxxxxxx/core/api/jeeApi.php?apikey=4Q76xxxxxxxxxxxxxxxxxxxxxx&type=cmd&id=1919'
      command_state: curl 'https://xxxxxxxxxxxxxxxxxxx/core/api/jeeApi.php?apikey=4Q76Nrxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&type=cmd&id=1934'

j’arrive à piloter mes volets, monté, descente, stop et recupérer la position mais je n’arrive pas a piloter le slide

j’ai regardé le « template cover » mais je ne comprends pas comment trouver l’info concernant le senor puique chez moi j’en ai aps.

position_template: "{{ states('sensor.garage_door') }}"

Si qq’un pouvait m’aider ou me donner une astuce ,merci.

Ma configuration


System Information

version core-2024.5.4
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.1.0-0.deb11.17-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.34.0
Stage running
Available Repositories 1461
Downloaded Repositories 6
HACS Data ok
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 6
resources 2
views 8
mode storage
Recorder
oldest_recorder_run 25 mai 2024 à 07:52
current_recorder_run 4 juin 2024 à 00:01
estimated_db_size 109.08 MiB
database_engine sqlite
database_version 3.44.2
___

Hello,

Alors le mieux à mon sens c’est d’utiliser rest_command pour récupérer tes commandes actions de Jeedom.

Du genre :

rest_command:
  cover1_open:
    url: "https://xxxxxxxxxx/core/api/jeeApi.php?apikey=4Q7xxxxxxxxxxxxxxxxxx&type=cmd&id=1918&slider=100"
    verify_ssl: false
    timeout: 30
  cover1_close:
    url: "https://xxxxxxxxxx/core/api/jeeApi.php?apikey=4Q7xxxxxxxxxxxxxxxxxx&type=cmd&id=1918&slider=0"
    verify_ssl: false
    timeout: 30
  cover1_stop:
    url: "https://xxxxxxxxxxxxxx/core/api/jeeApi.php?apikey=4Q76xxxxxxxxxxxxxxxxxxxxxx&type=cmd&id=1919"
    verify_ssl: false
    timeout: 30

Et RESTful sensor pour récupérer les états :

sensor:
    - platform: rest
      scan_interval: 10
      unique_id: 7c06acfc-90cf-4076-b0fe-7cf88cb9a918
      name: cover1_state
      resource: https://xxxxxxxxxxxxxxxxxxx/core/api/jeeApi.php?apikey=4Q76Nrxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&type=cmd&id=1934
      verify_ssl: false

Et ensuite tu peux créer ton cover ainsi :

cover:
  - platform: template
    covers:
      cover1:
        device_class: shutter
        friendly_name: "Cover1 Name"
        position_template: "{{ states('sensor.cover1_state') }}"
        open_cover:
          service: rest_command.cover1_open
        close_cover:
          service: rest_command.cover1_close
        stop_cover:
          service: rest_command.cover1_stop

Ca devrait fonctionner. Surement quelques ajustement car j’ai fais ca rapidement mais l’idée est là.

1 « J'aime »

Bonjour,
super, @mguyard ,merci de ta réponse, j’ai aussi reussi en récupérant l’info du en mqtt.
Par contre, j’ai pas le modèle avec le slide, je n’ai que celui avec les flèches.

, j’ai pas le slide. merci

Pour avoir le slider il faut un volet proportionnel.
Donc il faut que tu définisses dans ton template cover set_cover_position.

La je crois que c’est trop pour moi, je craque sur toute cette programmation, dommage. Merci

Tu sais, tu aurais dû faire la même chose sur Jeedom si tes volets étaient dans une solution autre que Jeedom et que tu voulais les mettre dans Jeedom.

C’est en soit pas très compliqué mais il faut comprendre comment ça marche. Un volet à des propriété nécessaires pour avoir des fonctionnalités. Ici tu veux un volet proportionnel pour régler l’ouverture et fermeture partielle, il faut donc donner à HA la commande côté Jeedom pour ouvrir à un pourcentage particulier. Sinon HA ne sait pas comment le faire, ni même si ton volet sait le faire.

C’est 5/6 lignes de plus pour faire ça. Et pas compliqué. Domage d’abandonner si près du but.

La solution la plus facile aurait était de remplacer tes micromodules non reconnu par des reconnu par Zigbee2mqtt. D’autant qu’un jour Jeedom te fera sûrement migrer sur Z2M

1 « J'aime »

Je pense qu’en modifiant ceci en :

rest_command:
  cover1_open:
    url: "https://xxxxxxxxxx/core/api/jeeApi.php?apikey=4Q7xxxxxxxxxxxxxxxxxx&type=cmd&id=1918&slider=100"
    verify_ssl: false
    timeout: 30
  cover1_close:
    url: "https://xxxxxxxxxx/core/api/jeeApi.php?apikey=4Q7xxxxxxxxxxxxxxxxxx&type=cmd&id=1918&slider=0"
    verify_ssl: false
    timeout: 30
  cover1_stop:
    url: "https://xxxxxxxxxxxxxx/core/api/jeeApi.php?apikey=4Q76xxxxxxxxxxxxxxxxxxxxxx&type=cmd&id=1919"
    verify_ssl: false
    timeout: 30
  cover1_prop:
    url: "https://xxxxxxxxxxxxxx/core/api/jeeApi.php?apikey=4Q76xxxxxxxxxxxxxxxxxxxxxx&type=cmd&id=1918&slider={{position}}"
    verify_ssl: false
    timeout: 30

Puis ton templace cover en

cover:
  - platform: template
    covers:
      cover1:
        device_class: shutter
        friendly_name: "Cover1 Name"
        position_template: "{{ states('sensor.cover1_state') }}"
        open_cover:
          service: rest_command.cover1_open
        close_cover:
          service: rest_command.cover1_close
        stop_cover:
          service: rest_command.cover1_stop
        set_cover_position:
          service: rest_command.cover1_prop

Ca devrait faire ce que tu veux. Mais j’ai pas testé. La méthode est là en tout cas

Merci de ton aide,
j’ai epnsé à changer le micromodule, mais celui ci est fourni par le fabriquant avec une télécommande en zigbee, du coup je perdrai la gestion manuelle par télécommande, pas tes WAF.
J’aimerai bien arreter mon jeedom biensur, je n’ai presque plus rien qui tourne dessus mais là pour les volets cela gene ma famille.

J’ai essayé ton code et ai rajouter la ligne de code

lorsque le volet est ouvert, un mvt sur le slider le ferme totalement, et lorsqu’il est fermé, rien ne se passe. Grrr

Tu as un moyen de voir ce que Jeedom reçoit comme requête ?
Pour verifier si il reçoit bien une valeur à la place de position quand tu te met à 50% par exemple sur le slider :

&slider={{position}}

Voici ,
pour HA :

2024-06-05 15:31:40.997 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'position' is undefined when rendering 'https://jeedom.xxxxxxxxxxxxxxxxxxxxxxApi.php?apikey=xxxxxxxxxxxxxxxxxxxtype=cmd&id=1918&slider={{position}}'

A priori c’est la variable position que se remplit pas, confirmé par le log jeedom :

[2024-06-05 15:35:07] INFO  : Exécution de la commande [Volet Roulant][Volet Cuisine Mer][level] avec les paramètres {"apikey":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","type":"cmd","id":"1918","slider":""}

Ah oui j’ai oublié quelque chose dans le code :

cover:
  - platform: template
    covers:
      cover1:
        device_class: shutter
        friendly_name: "Cover1 Name"
        position_template: "{{ states('sensor.cover1_state') }}"
        open_cover:
          service: rest_command.cover1_open
        close_cover:
          service: rest_command.cover1_close
        stop_cover:
          service: rest_command.cover1_stop
        set_cover_position:
          service: rest_command.cover1_prop
          data:
            position: "{{position}}"

Il faut lui dire de passer la position

1 « J'aime »

Salut,
super ca marche, merci

Par contre j’utilise le blueprint volet de @omitech et la position désirée n’est pas reconnu, surement qu’il y a un pb dans la reconnaissance de la variable position, en tout cas je peux à présent le faire bouger à ma convenance, merci

Je ne connais pas ce blueprint, j’utilise mon propre système pour gérer les volets mais si tu m’en dit plus, peut être que je peux t’aider.

Merci encore pour ton aide,
le blueprint fonctionne ç 95% donc ca me va, il me permet de réaliser ce que je souhaite faire.
Je vais me renseigner pour mettre un micromodule compatible avec mes volets afin d’etteindre mon serveur jeedom.
Merci encore

1 « J'aime »

N’oublie pas de passer en sujet en résolu