#BONUS
Автор: pyc tech
Загружено: 2023-07-23
Просмотров: 2829
Le composant Webserver permet de créer une API REST sur ESPHome. http_request permet de l'interroger. C'est un sujet complexe, mais j'essaye de vous l'expliquer pas à pas dans cette vidéo.
Code Yaml REST API :
---------
web_server:
Onboard led
output:
platform: gpio
pin: GPIO2
id: led
inverted: True
light:
platform: binary
name: "Onboard led"
id: onboarLed
output: led
number:
platform: template
min_value: 0
max_value: 100
step: 1
name: "My number"
optimistic: True
Code Yaml http_request :
---------
web_server:
binary_sensor:
boot button
platform: gpio
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: True
name: "Boot button"
id: "boot_button"
on_press:
then:
http_request.post:
id: my_http_request
headers:
Authorization: 'Digest username="user", realm="asyncesp", nonce="e0038aefc1b2c56039f9c61b22f677b5", uri="/number/my_number/set?value=24", response="e4f872941213f614daa41bfc0aad0806", opaque="e4874afc299f3d18888e8bb222e2ce9b", qop=auth, nc=0000000a, cnonce="78e6ff302212b57d"'
url: http://192.168.1.28/light/onboard_led/toggle
#- http_request.post: http://d1-mini-1.local/light/onboard_...
http_request:
useragent: esphome/device
timeout: 10s
id: my_http_request
number:
platform: template
min_value: 0
max_value: 100
step: 1
name: "Set number"
optimistic: True
id: my_number
on_value:
then:
http_request.post:
id: my_http_request
url: !lambda |-
return ((std::string) "http://192.168.1.28/number/my_number/set?value=" + to_string(id(my_number).state)).c_str();
button:
platform: template
name: "Get number"
on_press:
then:
http_request.get:
id: my_http_request
url: http://192.168.1.28/number/my_number
on_response:
then:
lambda: |-
json::parse_json(id(my_http_request).get_string(), [](JsonObject root) {
id(my_number).publish_state(root["value"]);
});
platform: template
name: "Get from openweathermap"
on_press:
then:
http_request.get:
id: my_http_request
url: https://api.openweathermap.org/data/2...
verify_ssl: false
on_response:
then:
lambda: |-
json::parse_json(id(my_http_request).get_string(), [](JsonObject root) {
id(temperature).publish_state(root["main"]["temp"]);
});
text_sensor:
platform: template
name: "Temperature"
id: "temperature"
0:00 Présentation
0:45 Qu'est ce qu'on va faire ?
2:00 L'API REST
3:05 RestMam pour faire des GET sur l'API REST
5:22 RestMam pour faire des POST sur l'API REST
7:06 POST avec composant http_request
8:56 POST avec paramètre dynamique
10:40 GET avec composant http_request
12:46 Utilisation d'une API sur internet
15:10 Sécuriser (un peu) webserver
16:42 API REST avec authentification
18:31 Conclusion
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: