From d0027d95102936e440e15d7e498896ab67ba1406 Mon Sep 17 00:00:00 2001 From: lars Date: Fri, 7 Feb 2025 10:11:30 +0100 Subject: [PATCH] Add 20250207_renew_ssl_cert.yaml --- 20250207_renew_ssl_cert.yaml | 99 ++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 20250207_renew_ssl_cert.yaml diff --git a/20250207_renew_ssl_cert.yaml b/20250207_renew_ssl_cert.yaml new file mode 100644 index 0000000..2366f75 --- /dev/null +++ b/20250207_renew_ssl_cert.yaml @@ -0,0 +1,99 @@ +blueprint: + name: Renew Let's Encrypt Certificate + description: Renew Certificate when due date is below given value + domain: automation + input: + cert_expiry_sensor: + name: Certificate Expiry Sensor + description: Sensor from the Certificate Expiry Integration (https://www.home-assistant.io/integrations/cert_expiry) + selector: + entity: + integration: cert_expiry + renew_date: + name: Certificate renewal date + description: Date when the SSL-Certificate will be renewed + selector: + number: + min: 1 + max: 29 + mode: slider + unit_of_measurement: "days" + default: 5 + time_to_check_cert: + name: Certificate check time + description: Time when the certificate date will be checked. + selector: + time: + restart_after_renewal: + name: Restart Home Assistant + description: Restarts the Home Assistant when the certificate is renewed. (if enabled) + selector: + boolean: + default: true + minuts_till_restart: + name: Minutes until restart + description: Minutes until restart of Home Assistant if restart is enabled + selector: + number: + min: 1 + max: 60 + mode: slider + unit_of_measurement: "minutes" + default: 5 + send_notification: + name: Send notification + description: Sends a notification if enabled + selector: + boolean: + default: false + notification_title: + name: Notification title + description: Notification title for notification that is sent when the certificate has been renewed. + notification_message: + name: Notification message + description: Notification that is sent when the certificate has been renewed. +alias: Renew SSL Cert +description: '' +trigger: + - platform: time + at: !input time_to_check_cert +condition: + - condition: template + value_template: '{{ expire_days_var < var_check }}' +action: + - service: hassio.addon_start + data: + addon: core_letsencrypt + - choose: + - conditions: + - condition: template + value_template: '{{ send_notification_var }}' + sequence: + - service: notify.notify + data: + message: '{{ message_var }}' + title: '{{ message_title_var }}' + default: [] + - choose: + - conditions: + - condition: template + value_template: '{{ restart_after_renewal_var }}' + sequence: + - delay: + hours: 0 + minutes: !input minuts_till_restart + seconds: 0 + milliseconds: 0 + - service: hassio.host_reboot + default: [] +mode: single +variables: + certificate_var: !input cert_expiry_sensor + var_check: !input renew_date + message_var: !input notification_message + message_title_var: !input notification_title + restart_after_renewal_var: !input restart_after_renewal + send_notification_var: !input send_notification + expire_days_var: >- + {{ ((as_timestamp(states(certificate_var), 0) - as_timestamp(now())) / 60 / 60 / + 24 ) | int }}