Skip to content

Instantly share code, notes, and snippets.

@Eonasdan
Forked from TJ-developer/renew_ssl_cert.yaml
Last active March 1, 2024 00:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Eonasdan/3f82b2d7435a05d436014d70e8370a58 to your computer and use it in GitHub Desktop.
Save Eonasdan/3f82b2d7435a05d436014d70e8370a58 to your computer and use it in GitHub Desktop.
Homeassistant Blueprint for SSL-Certificate renewal
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
minutes_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
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: "{{ restart_after_renewal_var }}"
sequence:
- delay:
hours: 0
minutes: !input minutes_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
restart_after_renewal_var: !input restart_after_renewal
expire_days_var: >-
{{ ((as_timestamp(states(certificate_var)) - as_timestamp(now())) / 60 / 60 / 24 ) | int }}
@Eonasdan
Copy link
Author

Eonasdan commented Mar 1, 2024

Fixed spelling and removed the notification section since you couldn't save even if it was disabled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment