diff --git a/mlock-common.yaml b/mlock-common.yaml index 385266a..c84bef4 100644 --- a/mlock-common.yaml +++ b/mlock-common.yaml @@ -18,16 +18,16 @@ esphome: on_boot: - priority: 600 then: - - light.addressable_set: { id: status_led, red: 0%, green: 0%, blue: 100% } + - light.turn_on: { id: status_led, red: 0%, green: 0%, blue: 100% } - priority: -100 then: - if: condition: switch.is_on: mlock_${name_of_board}_switch then: - - light.addressable_set: { id: status_led, red: 0%, green: 100%, blue: 0% } + - light.turn_on: { id: status_led, red: 0%, green: 100%, blue: 0% } else: - - light.addressable_set: { id: status_led, red: 100%, green: 0%, blue: 0% } + - light.turn_on: { id: status_led, red: 100%, green: 0%, blue: 0% } # Enable logging logger: @@ -37,7 +37,8 @@ api: key: $api_enckey ota: - password: $ota_password + - platform: esphome + password: $ota_password wifi: ssid: $wifi_ssid @@ -65,6 +66,7 @@ http_request: useragent: esphome timeout: 2s id: http_request_data + verify_ssl: false globals: - id: my_token @@ -81,7 +83,7 @@ rc522_spi: cs_pin: GPIO15 on_tag: then: - - light.addressable_set: + - light.turn_on: id: status_led red: 100% green: 100% @@ -97,13 +99,13 @@ rc522_spi: json: role_id: $vault_role_id secret_id: $vault_secret_id - verify_ssl: false on_response: # fetch token from response, store into my_token then: - lambda: |- - json::parse_json(id(http_request_data).get_string(), [](JsonObject root) { + json::parse_json(body, [](JsonObject root) -> bool { 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: @@ -111,16 +113,16 @@ rc522_spi: return ((std::string) "https://vault.ctdo.de/v1/maschinenlock/" + id(my_tag)); headers: X-Vault-Token: !lambda return id(my_token).c_str(); - verify_ssl: false on_response: then: - if: condition: - lambda: 'return status_code == 200;' + lambda: 'return response->status_code == 200;' then: # when found, check if machine is allowed, turn on output or blink LED red - lambda: |- - json::parse_json(id(http_request_data).get_string(), [](JsonObject root) { - id(may_switch_output) = root["data"]["mlock-$name_of_board"]; + json::parse_json(body, [](JsonObject root) -> bool { + id(may_switch_output) = root["data"]["mlock-$name_of_board"]; + return true; }); - if: condition: @@ -150,25 +152,25 @@ rc522_spi: - repeat: count: 3 then: - - light.addressable_set: { id: status_led, red: 100%, green: 0%, blue: 0% } + - light.turn_on: { id: status_led, red: 100%, green: 0%, blue: 0% } - delay: 0.1s - - light.addressable_set: { id: status_led, red: 0%, green: 0%, blue: 0% } + - light.turn_on: { id: status_led, red: 0%, green: 0%, blue: 0% } - delay: 0.1s else: # vault returns 404 on missing/unknown Tag so blink LED - repeat: count: 3 then: - - light.addressable_set: { id: status_led, red: 100%, green: 0%, blue: 0% } + - light.turn_on: { id: status_led, red: 100%, green: 0%, blue: 0% } - delay: 0.5s - - light.addressable_set: { id: status_led, red: 0%, green: 0%, blue: 0% } + - light.turn_on: { id: status_led, red: 0%, green: 0%, blue: 0% } - delay: 0.5s - if: # return LED to switch state before condition: switch.is_on: mlock_${name_of_board}_switch then: - - light.addressable_set: { id: status_led, red: 0%, green: 100%, blue: 0% } + - light.turn_on: { id: status_led, red: 0%, green: 100%, blue: 0% } else: - - light.addressable_set: { id: status_led, red: 100%, green: 0%, blue: 0% } + - light.turn_on: { id: status_led, red: 100%, green: 0%, blue: 0% } # switch component for the output state switch: @@ -188,7 +190,7 @@ binary_sensor: id: ${name_of_board}gpio_input_ausschalter on_press: - switch.turn_off: mlock_${name_of_board}_switch - - light.addressable_set: { id: status_led, red: 100%, green: 0%, blue: 0% } + - light.turn_on: { id: status_led, red: 100%, green: 0%, blue: 0% } # a template sensor for showing the current switch state (read only) - platform: template @@ -205,7 +207,7 @@ button: id: ${name_of_board}_btn_ausschalter on_press: - switch.turn_off: mlock_${name_of_board}_switch - - light.addressable_set: { id: status_led, red: 100%, green: 0%, blue: 0% } + - light.turn_on: { id: status_led, red: 100%, green: 0%, blue: 0% } light: - platform: neopixelbus