yeah, this is easy to set up. the plugin runs a little api server on port 3801 that home assistant talks to directly, no unraid login needed. you just need your server's lan ip and your api key from the plugin's settings > api tab. three parts: a rest sensor that reads status, a rest command that does the check-in, and a card that ties it together with a button. first, in configuration.yaml: rest: - scan_interval: 60 resource: "http://YOUR_UNRAID_IP:3801/?action=status&key=YOUR_API_KEY" method: GET sensor: - name: "DMS Status" unique_id: "dms_status" value_template: "{{ value_json.status }}" json_attributes: - armed - paused - dry_run - warning_level - days_remaining - time_remaining_display - last_checkin - next_deadline - elapsed_pct - checkin_interval_days rest_command: dms_checkin: url: "http://YOUR_UNRAID_IP:3801/?action=checkin&key=YOUR_API_KEY" method: GET restart ha (or reload yaml). then add a card to your dashboard (edit > add card > manual). i use a few stacked cards so it looks decent. the status one uses a markdown card so instead of showing the raw "armed_ok" text it shows a colored alert: type: markdown content: > {% set s = states('sensor.dms_status') %} {% set remaining = state_attr('sensor.dms_status', 'time_remaining_display') %} {% set info = { 'armed_ok': {'label': 'OK - ' ~ remaining ~ ' remaining', 'type': 'success'}, 'armed_reminder': {'label': 'Reminder - ' ~ remaining ~ ' remaining', 'type': 'warning'}, 'armed_warning': {'label': 'Warning - ' ~ remaining ~ ' remaining', 'type': 'warning'}, 'armed_critical': {'label': 'Critical - ' ~ remaining ~ ' remaining', 'type': 'error'}, 'grace_period': {'label': 'Grace Period - ' ~ remaining ~ ' remaining', 'type': 'error'}, 'triggered': {'label': 'TRIGGERED - deleted files', 'type': 'error'}, 'paused': {'label': 'Paused - ' ~ remaining ~ ' remaining', 'type': 'success'}, 'disarmed': {'label': 'Disarmed', 'type': 'success'} } %} {% set i = info.get(s, {'label': s, 'type': 'info'}) %} <ha-alert alert-type="{{ i.type }}"> {{ i.label }} </ha-alert> then an entities card for the details: type: entities entities: - entity: sensor.dms_status type: attribute attribute: time_remaining_display name: Time Remaining icon: mdi:timer-sand - entity: sensor.dms_status type: attribute attribute: last_checkin name: Last Check-in icon: mdi:clock-check-outline - entity: sensor.dms_status type: attribute attribute: next_deadline name: Next Deadline icon: mdi:clock-alert-outline and the check-in button. this is the important bit, it uses a confirmation prompt so you can't fat-finger a check-in: type: button name: Check In icon: mdi:check-circle tap_action: action: perform-action perform_action: rest_command.dms_checkin confirmation: text: Are you sure you want to check in to the Dead Man's Switch? tap it, confirm, and it hits the check-in endpoint and resets your timer. the status updates on the next poll (60s above). couple notes: - this assumes ha and unraid are on the same lan. through a reverse proxy you'd need to forward port 3801. - since you've got the rest_command set up you can also fire it from an automation or an actionable notification, so you get a check-in button right on your phone's lock screen when the timer's running low. that's how i've got mine, i barely open the dashboard. i've also updated the readme with all of this. let me know if you get stuck.