Je cherche à accéder aux valeurs de mes capteurs (température par exemple) ou à déclencher une action via l’API mais par un appel à une URL.
J’ai essayé de taper ceci : http://[ADDRESS_IP]:[PORT]/api/states/[mon_capteur]?api_password=[LONG_ACCESS_TOKEN]
Avec :
ADDRESS_IP : l’adresse ip de home assistant
PORT : le port d’écoute (8123)
mon_capteur : l’identifiant d’un capteur de température présent dans ma configuration
LONG_ACCESS_TOKEN : Le token généré à partir de la section « utilisateur » de Home assistant
Lorsque j’entre cette url dans un navigateur (Chrome), je reçois une erreur 401 « Unauthorized »
Est-ce que je rate quelque chose ?
C’est à dire? Une URL que l’on met dans chrome et qui fait ça comme ça?
Je crains que non…
Par défaut dans la barre d’adresse chrome fait du « GET » et pour changer des valeurs il faut un « POST ».
Et même le « GET » suppose de passer des paramètres en Header. Et ça, je ne pense pas que chrome le fasse en direct…
Quel est le besoin et quel outil devrait faire l’appel à une URL « simple »?
Pour créer un service web sur HA qui répond a un get et pas post, il faut utiliser node-red. Cela permettra un appel depuis la barre d’adresse du navigateur et toutes les actions que l’on souhaite comme la maj d’une entité. On n’a plus la sécurité des token HA par contre.
Je suis un fervent défenseur de l’utilisation des automatisations HA, mais node-red est très puissant et a tout son sens dans des usages spécifiques comme celui ci.
Après comme le dit @golfvert, précises ce que tu veut faire. Il y a peut-être d’autres réponses a t’apporter.
Par url unique j’entends effectivement une url avec des paramètres en GET directement dans l’url, ce qui implique effectivement le passage du token en GET dans l’URL.
Pour répondre à la question « pourquoi ai-je besoin de ceci » :
J’ai migré de Jeedom à Home assitant il y a un petit moment. A l’époque j’utilisais ce système d’URL pour commander Jeedom depuis des widgets sur mon smartphone.
En gros j’utilise KLWP sur Android pour créer des Widgets / boutons sur ma page d’accueil. L’appui sur un bouton permet de faire un appel HTTP avec une url.
Je souhaite simplement réutiliser ces boutons en changeant simplement l’url pour commander Home Assistant plutôt que Jeedom.
En vous remerciant pour vos réponses et le temps que vous passez à m’aider
Entre temps j’ai trouvé une solution plus propre à mon problème :
Pour activer un service Home Assistant ou récupérer un état, j’utilise Tasker.
Dorénavant, lorsque je clique sur un widget KLWP de ma page d’accueil android, je ne lance plus de requête HTTP, je lance une tâche Tasker qui effectue une requête en POST
Pour les prochaines personnes qui ont le même problème, qui tombent sur ce post et qui cherchent une solution, j’ai trouvé comment procéder sur ce sujet
Oui c’est exact, il y a un widget pour effectuer une action (switch) et un widget pour afficher un état, mais je crée mes propres widgets (style neumorphic) à ma page d’accueil pour que le design soit homogène…