Interfacer mon portail (dev maison) avec HA

Bonjour,

Il y a quelques années, j’ai développé moi-même un système de pilotage de mon portail avec un Raspberry pi installé à proximité de celui-ci.
Je voudrais maintenant pouvoir ouvrir, fermer et récupérer l’état de mon portail directement depuis HA.

Pour ouvrir le portail, il suffit d’envoyer une requête HTTP : http://192.168.0.20/api.php?action=ouvrir
Pour fermer le portail, il suffit d’envoyer une requête HTTP : http://192.168.0.20/api.php?action=fermer

Pour récupérer l’état du portail, il faut récupérer la valeur d’un fichier texte http://192.168.0.20/etat_portail.txt
0 signifie qu’il est fermé, 1 signifie qu’il est ouvert.

Je souhaiterais avoir une 1ère tuile indiquant l’état du portail (ouvert ou fermé). Je pense qu’il faut donc convertir la valeur 0 en « open » et 1 en « close » afin de l’afficher correctement sur le dashboard (template ?)
Ensuite je voudrais avoir 2 boutons « ouvrir » et « fermer » pour lancer les actions.

J’ai commencé à chercher du côté de curl et command_line, sans succès pour le moment.

Une idée pour m’aider ?

Merci d’avance !

Ma configuration

System Information

version core-2023.12.4
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 6.1.39
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 10.4
update_channel stable
supervisor_version supervisor-2024.05.1
agent_version 1.5.1
docker_version 23.0.6
disk_total 30.8 GB
disk_used 8.3 GB
healthy true
supported true
board ova
supervisor_api ok
version_api ok
installed_addons ESPHome (2024.2.2), Let’s Encrypt (5.0.15), File editor (5.8.0), NGINX Home Assistant SSL proxy (3.9.0), Terminal & SSH (9.9.0)
Dashboards
dashboards 2
resources 0
views 2
mode storage
Recorder
oldest_recorder_run 25 avril 2024 à 08:54
current_recorder_run 13 mai 2024 à 12:02
estimated_db_size 4.03 MiB
database_engine sqlite
database_version 3.41.2

Salut,

C’est pas vraiment l’idée que tu as mais étant justement entrain de bricoler sur mon portail, je me demande si c’est pas plus simple de refaire une carte à base d’esp, avec une paire de relais et d’optocoupleur pour passer le tout sous esphome… Coté budget, c’est minime, mais c’est surement plus natif que du PHP à maintenir, et des états/actions à retranscrire sous HA.

2 « J'aime »

Salut

Tu as encore plus simple rest_command

Tu fais 2 scripts qui appellent tes requêtes avec rest command, une entité Restful pour l’état et tu fais un cover template qui regroupe le tout.

1 « J'aime »

Pour ton capteur d’état, tu peux regarder ici : RESTful Sensor - Home Assistant

Pour appeler une URL, tu peux regarder ça : Actions - Home Assistant

1 « J'aime »

Salut,
Si j’avais dû le faire aujourd’hui, je serais parti sur un ESP32 avec la programmation avec ESPhome. C’est tellement simple !
Mais pour le moment je souhaite rester sur cette config, on verra plus tard !
Merci pour ta réponse.

Salut,
Merci pour l’astuce « action » au sein d’une tuile directement sur le dashboard, je n’y avais pas pensé, c’est super simple !
En ce qui concerne l’état ouvert/fermé, j’ai toujours le même soucis, la valeur remontée est 0 ou 1.
Comment « convertir » 0 en « close » et 1 en « open » ?

Si tu sais récupérer ta valeur, un simple template peut te faire ça :

{{ 'open' if (1 == 1) else 'close' }}

Tu remplaces juste le test par ce qui t’arrange :wink:

1 « J'aime »

Voilà comment j’ai procédé (en fait c’est très simple) :

Dans configuration.yaml :

binary_sensor:
  - name: Etat portail
    platform: rest
    resource: "http://192.168.0.20/etat_portail.txt"
    device_class: garage_door
    scan_interval: 10

Sur le dashboard :

  cards:
    - show_name: true
      show_icon: true
      type: button
      tap_action:
        action: more-info
      show_state: true
      hold_action:
        action: more-info
      icon: ''
      name: Portail
      entity: binary_sensor.etat_portail
    - show_name: true
      show_icon: true
      type: button
      tap_action:
        action: url
        url_path: http://192.168.0.20/api.php?action=ouvrir
      entity: input_button.ouvrir_portail
    - show_name: true
      show_icon: true
      type: button
      tap_action:
        action: url
        url_path: http://192.168.0.20/api.php?action=fermer
      entity: input_button.fermer_portail

Merci pour votre aide :smiling_face_with_three_hearts: