Compare commits

...

2 Commits

1 changed files with 14 additions and 8 deletions

View File

@ -37,8 +37,7 @@ api:
key: $api_enckey
ota:
- platform: esphome
password: $ota_password
password: $ota_password
wifi:
ssid: $wifi_ssid
@ -66,7 +65,6 @@ http_request:
useragent: esphome
timeout: 2s
id: http_request_data
verify_ssl: false
globals:
- id: my_token
@ -91,9 +89,13 @@ rc522_spi:
# store the tag id into global variable
- lambda: |-
id(my_tag) = x;
- text.set:
id: ${name_of_board}_letzter_token
value: !lambda return id(my_tag);
# login to vault with role_id to fetch short lived token
- http_request.post:
url: https://vault.ctdo.de/v1/auth/approle/login
verify_ssl: false
headers:
Content-Type: application/json
json:
@ -103,26 +105,25 @@ rc522_spi:
# fetch token from response, store into my_token
then:
- lambda: |-
json::parse_json(body, [](JsonObject root) -> bool {
json::parse_json(id(http_request_data).get_string(), [](JsonObject root) {
id(my_token) = (const char*) root["auth"]["client_token"];
return true;
});
# use the token to get json of scanned tag from vault
- http_request.get:
url: !lambda |-
return ((std::string) "https://vault.ctdo.de/v1/maschinenlock/" + id(my_tag));
verify_ssl: false
headers:
X-Vault-Token: !lambda return id(my_token).c_str();
on_response:
then:
- if:
condition:
lambda: 'return response->status_code == 200;'
lambda: 'return status_code == 200;'
then: # when found, check if machine is allowed, turn on output or blink LED red
- lambda: |-
json::parse_json(body, [](JsonObject root) -> bool {
json::parse_json(id(http_request_data).get_string(), [](JsonObject root) {
id(may_switch_output) = root["data"]["mlock-$name_of_board"];
return true;
});
- if:
condition:
@ -225,3 +226,8 @@ text:
id: ${name_of_board}_letzte_entsperrung
optimistic: true
mode: text
- platform: template
name: "$name_of_board Zuletzt Gelesener Token"
id: ${name_of_board}_letzter_token
optimistic: true
mode: text