Fonction "rest_command"

Bonjour,

Besoin d’un coup de main de la communauté … Je m’aventure sur un nouveau domaine avec la fonction « rest_command » et la création de Services, mais je coince sur la logique de la démarche.

Pour être plus clair :

  • je souhaite contrôler des relais sur une carte Wes,
  • sur un navigateur web, on fait basculer la position du relais avec la commande http://xxx.xxx@192.168.xxx.xxx/RL.cgx?frl=1
  • j’ai donc inséré dans mon fichier configuration.yaml la fonction rest_command pour créer le services
rest_command:
  relais_wes_01:
    url: http://xxx:xxx@192.168.xxx.xxx/RL.cgx?frl=1
  • après rechargement, le service est créé et le résultat est conforme lorsque l’on appuis sur le bouton « appeler le service » (basculement du relais)

L’étape suivante me pose problème ; comment associer ce service à un bouton sur la page lovelace pour le rendre utilisable …

Merci d’avance pour vos conseils …

Une rest_command a vocation à être utilisée, je cite la doc RESTful Command - Home Assistant :

This integration can expose regular REST commands as services. Services can be called from a script or in automation.

Et donc, n’est pas faite pour apparaitre directement dans l’interface.
Par contre, si tu utilises https://www.home-assistant.io/integrations/switch.rest/ là, tu auras un switch à mettre dans l’interface. Perso, je ferai comme ça…

1 « J'aime »

Tu peux aussi ajouter un bouton dans lovelace et lui indiquer que la commande est l’appel du service.

La commande est la balise tap_action : → Documentation

type: button
tap_action:
  action: call-service
  service: rest_command.relais_wes_01
  service_data: {}
  target: {}
icon: mdi:electric-switch

animate

Merci à vous deux d’avoir pris le temps de répondre et de mieux me faire connaitre les différentes possibilités de HA.

Clemalex, ta réponse est très pédagogique et répond parfaitement à mon projet à son stade actuel.

Bon WE

1 « J'aime »

en rentrant le code suivant :

#contact sec portail
switch:
  - platform: rest
    resource: http://192.168.0.111/?11OFF
    name: Portail sec
    timeout: 1
    body_on: '{"active": "true"}'
    body_off: '{"active": "false"}'
    is_on_template: "{{ value_json.is_active }}"
    headers:
      Content-Type: application/json
    verify_ssl: true

au redémarrage le portail s’ouvre et se referme normalement.
je le vois bien dans le journal mais pas dans les entités.

Si vous avez une idée je vous remercie.

Je ne comprends pas ce que tu veux dire.

Et j’ai l’impression que tu mélanges pas mal de trucs dans ta configuration (la doc RESTful Switch - Home Assistant comment ça doit être configuré).
Que faut il envoyer pour:

  • ouvrir
  • fermer
  • connaitre la position du portail

Là, par exemple, avec ce que tu as configuré tu vas envoyer une requête POST vers http://192.168.0.111/?11OFF avec comme payload {"active": "true"} pour ouvrir le portail. C’est ce que tu veux faire?

merci golfvert de tes reponses.

Je viens d’un autre systeme et effectivement il faut que je m’adapte.
Je suis entrain de migrer doucement depuis 3 jours.

Il y a pas de retour d’etat
juste une impulsion qui se declenche par exemple dans un navigateur en tapant cette adresse la :

http://192.168.0.111/?11OFF

je sais pas si je suis assez explicite …

Et donc cette commande fait un on et ça revient à l’état par défaut tout seul?
Dans ce cas, il vaut mieux utiliser un commande rest comme expliqué par clemalex dans le post déjà mis en lien en #2.

Deux choses à faire, créer la commande rest:

rest_command:
  portail:
    url: http://192.168.0.111/?11OFF

Et faire un bouton:

type: button
tap_action:
  action: call-service
  service: rest_command.portail
  service_data: {}
  target: {}
icon: mdi:electric-switch

Voir l’animation d’explication de clemalex dans le post en lien.

1 « J'aime »

merci Golfvert

Cela fonctionne à merveille

seulement je me demande si je vais pouvoir automatiser la commande (ouverture de telle heure à telle heure) …

Oui. Il « suffit » de créer une automatisation et d’appeler le service rest_command.portail
Faisant toutes mes automatisations en nodered, je ne me risque pas à te donner la syntaxe exacte :slight_smile: Mais, sans aucun doute c’est faisable.