Bonjour.
est il possible d acceder à une valeur d un sensor via une url ?
En gros, j ai un routeur photovoltaique perso.
Jusque là j utilisais jeedom. Donc j avais code le routeur pour qu il aille lire la valeur d une variable sur mon jeedom.
Est ce possible de faire la meme chise avec Home assistant ?
si oui comment ?
Salut
Oui, en lisant la documentation : REST API | Home Assistant Developer Docs
Avec Get /api/states/<entity_id>
2 « J'aime »
Merci.
J’essaye mais je n’y arrive pas.
Déjà j’essaye en curl depuis windows
curl -k -X GET -H « Authorization: Bearer montoken » -H « Content-Type: application/json » http://192.168.1.5:8123/api/states/puissance_grid
réponse : {« message »:« Entity not found. »}
Evidemment j’ai mis mon token …
Salut,
tu a activer l’api ?
Quand j’avais fais des tests, j’utiliser c’est commande.
curl -X GET -H "Authorization: Bearer Token" http://192.168.1.xx:8123/api/states/sensor.atc_67c6_temperature
Edit:
il manque le nom complet de l’entité sensor.puissance_grid
curl -k -X GET -H « Authorization: Bearer montoken » -H « Content-Type: application/json » http://192.168.1.5:8123/api/states/sensor.puissance_grid
oui, en fait je ne mettais pas sensor. mais deirectement le nom du sensor !!!
Maintenant ça fonctionne.
En revanche sous arduino avec un http … Ca me retourne un 401 non authorisé !
http.addHeader("Authorization:", "Bearer xxxx");
http.addHeader("Content-Type", "application/json");
http.begin("http://192.168.1.5:8123/api/states/sensor.puissance_grid");
httpcode=http.GET();
delay(500);
tempor = http.getString();
Serial.println("httpcode : "+String(httpcode));
Un test qui avait fonctionner, mais j’ai lâcher l’affaire avec Arduino et suis passer sur ESPHome.
const char* serverAddress = "192.168.1.xx"; // Replace with your Home Assistant IP address
const int serverPort = 8123;
const char* apiToken = "Token"; // Replace with your Home Assistant API token
const char* deviceEntityId = "sensor.atc_67c6_temperature";
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String url = "http://" + String(serverAddress) + ":" + String(serverPort) + "/api/states/" + String(deviceEntityId);
http.begin(url);
http.addHeader("Authorization", "Bearer " + String(apiToken));
http.addHeader("Content-Type", "application/json");
int httpResponseCode = http.GET();
if (httpResponseCode==200) {
String response = http.getString();
StaticJsonDocument<1000> doc;
deserializeJson(doc, response);
String sensorState = doc["state"].as<String>();
Serial.print("Sensor State: ");
Serial.println(sensorState);
lcd->setCursor(5, 80);
lcd->setTextColor(WHITE);
lcd->print("Frigo Temp: ");
lcd->setCursor(5, 99);
lcd->print(" ");
lcd->setCursor(5, 99);
lcd->setTextColor(GREEN);
lcd->print(sensorState);
lcd->println(" C");
effectivement sans les « : » après authorization ça fonctionne impeccablement !
1 « J'aime »
J’avais même pas fait attention ![:upside_down_face: :upside_down_face:](https://forum.hacf.fr/images/emoji/apple/upside_down_face.png?v=12)