Simple Get authentifié - Wget et Curl not authorized

Bonjour,

Mon problème

Info peut être importante : Je suis avec un Haos host sur un synology en VM.

J’ai un portier dahua sur lequel est branché mon portail motorisé.
J’ai ajouté l’intégration Dahua et créé l’appareil sans souci, le hic c’est qu’il n’y a pas l’action pour ouvrir le portail…

Du coup je récupère ma méthode plan B de mon vieux Jeedom, un call http sur le portier pour demander l’ouverture:

http://monUser:monPassword@192.168.5.10/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote

Je trouve un restful Command : Ca ne fonctionne pas.
Puis une Rest Command : KO aussi
Et enfin les shell Command ou je tente:

  • curl : not authorized
  • wget : not authorized

Le même wget depuis le terminal du Synology fonctionne.
Détail que j’ai remarqué, le wget de Synology est un GNU complet avec plein de parametre alors que le wget du home assistant est dit ‹ busybox › et n’a pas l’air de faire grand chose…

Une idée de comment me sortir de cette impasse ?

MErci d’avance !

Ma configuration


[center]## System Information

version core-2025.5.3
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.13.3
os_name Linux
os_version 6.12.23-haos
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.5
Stage running
Available Repositories 2056
Downloaded Repositories 2
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 15.2
update_channel stable
supervisor_version supervisor-2025.05.3
agent_version 1.7.2
docker_version 28.0.4
disk_total 30.8 GB
disk_used 4.7 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization kvm
board ova
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.17.0), Z-Wave JS UI (4.3.1), File editor (5.8.0), Mosquitto broker (6.5.1)
Dashboards
dashboards 2
resources 0
views 0
mode storage
Network Configuration
adapters lo (disabled), enp0s3 (enabled, default, auto), docker0 (disabled), hassio (disabled), veth120ec0e (disabled), veth8b5f51d (disabled), vetheffc87b (disabled), vetha8bde49 (disabled), veth4c47b6a (disabled), vetha96c926 (disabled), veth5541206 (disabled), vetha6293f0 (disabled), veth78905ab (disabled)
ipv4_addresses lo (127.0.0.1/8), enp0s3 (192.168.1.6/24), docker0 (172.30.232.1/23), hassio (172.30.32.1/23), veth120ec0e (), veth8b5f51d (), vetheffc87b (), vetha8bde49 (), veth4c47b6a (), vetha96c926 (), veth5541206 (), vetha6293f0 (), veth78905ab ()
ipv6_addresses lo (::1/128), enp0s3 (2a02:8428:60a:af01:9d8:237e:a14e:4321/64, fe80::6464:8339:544a:ee0/64), docker0 (fe80::7c65:4eff:febd:4df1/64), hassio (fe80::c0c7:52ff:fe0c:fa92/64), veth120ec0e (fe80::bc19:5dff:fede:7d55/64), veth8b5f51d (fe80::bc90:adff:fe7f:f6bf/64), vetheffc87b (fe80::a855:68ff:fe08:58b/64), vetha8bde49 (fe80::ca8:c1ff:fe36:2487/64), veth4c47b6a (fe80::30ab:87ff:fe5a:7f01/64), vetha96c926 (fe80::d4ec:88ff:fe83:edf6/64), veth5541206 (fe80::48a3:dcff:fe01:595e/64), vetha6293f0 (fe80::d85d:28ff:fe04:5d6c/64), veth78905ab (fe80::4091:92ff:feac:5a9e/64)
announce_addresses 192.168.1.6, 2a02:8428:60a:af01:9d8:237e:a14e:4321, fe80::6464:8339:544a:ee0
Recorder
oldest_recorder_run 26 mai 2025 à 16:28
current_recorder_run 1 juin 2025 à 21:44
estimated_db_size 16.53 MiB
database_engine sqlite
database_version 3.48.0
[/center] ___

Salut

Bizarre, ça devrait marcher avec RESTful Command - Home Assistant
T’as essayé ça ?

rest_command:
  ouverture_portail:
    url: http://192.168.5.10/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote
    method: GET
    username: monUser
    paasword: monPassword

T’as quoi dans les logs ?
T’as bien redémarrer HA ?

Voici le résultat:

Enregistreur: homeassistant.components.rest_command
Source: components/rest_command/__init__.py:173
intégration: RESTful Command ([documentation](https://www.home-assistant.io/integrations/rest_command), [problèmes](https://github.com/home-assistant/core/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+rest_command%22))
S'est produit pour la première fois: 08:54:43 (1 occurrence)
Dernier enregistrement: 08:54:43

Error. Url: http://192.168.5.10/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote. **Status code 401. Payload: None**

C’est celui de la derniere requête que j’ai essayé avec la rest_command suivante:

rest_command:
  rest_open_main_portal:
    url: "http://192.168.5.10/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote"
    username: "monUser"
    password: "monPassword"
    method: get
    insecure_cipher: true
    verify_ssl: false

Je ne vois pas d’info d’authentification dans les logs, je ne sais pas si c’est normal.

J’ai relancé un prenant exactement la même commande que proposé, même log que précédemment: Status code 401. Payload: None

rest_command:
  rest_open_main_portal:
    url: "http://192.168.5.10/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote"
    username: "monUser"
    password: "monPassword"
    method: GET

ç’est une erreur d’autentification, les credentials reçus ne sont pas accepté.
essaie sans les guillemets dans username et password.
T’as des caractères spéciaux ?

Oui mais pas de caractères spéciaux, pareil sans les guillemets et je restart la VM à chaque essai :sweat_smile:

Je ne vois plus trop ce que je peux essayer de plus :roll_eyes:

essaie avec ligne de commande suivante
curl -u "monUser:monPassword" "http://192.168.5.10/cgi-bin/accessControl.cgi?action=openDoor&channel=1&UserID=101&Type=Remote"
Si ça fonctionne depuis la ligne de commande mais pas depuis HA, il pourrait y avoir un problème avec la configuration de rest_command

Depuis le terminal dans HA, j’ai lancé le curl (en utilisant /usr/bin/curl car il n’est pas reconnu sinon)
Aucun retour, et le portail ne bouge pas.
J’ai l’impression que c’est le binaire du ‹ curl › qui est diffèrent et qui fait beaucoup moins de chose.

Plan B:
J’ai un petit serveur Web déjà sur le Synology, j’ai ajouté un petit site local avec juste une page php pour que le traitement reste server-side, qui appel le wget authentifié.
Et depuis HA j’appel la page qui n’a plus besoin d’authentification.
C’est du bricolage, mais comme ca je suis débloqué au moins.

Il semble que tu a trouvé une solution de contournement efficace en utilisant un serveur web pour exécuter la commande wget. Bien que ce ne soit pas la solution la plus directe.

Assure toi que ta page PHP est bien sécurisée et accessible uniquement depuis le réseau local ou via une authentification supplémentaire .