#!/usr/bin/env python3 from sys import exit import requests from packaging import version bearer = "${bearer}" domain = "${domain}" OK = 0 WARN = 1 CRITICAL = 2 UNKNOWN = 3 status = 3 message = "Unknown Update Status" domain = "hass.home.kunbox.net" s = requests.Session() s.headers.update({"Content-Type": "application/json"}) try: stable_version = version.parse( s.get("https://version.home-assistant.io/stable.json").json()["homeassistant"][ "generic-x86-64" ] ) s.headers.update( {"Authorization": f"Bearer {bearer}", "Content-Type": "application/json"} ) running_version = version.parse( s.get(f"https://{domain}/api/config").json()["version"] ) if running_version == stable_version: status = 0 message = f"OK - running version {running_version} equals stable version {stable_version}" elif running_version > stable_version: status = 1 message = f"WARNING - stable version {stable_version} is lower than running version {running_version}, check if downgrade is necessary." else: status = 2 message = f"CRITICAL - update necessary, running verison {running_version} is lower than stable version {stable_version}" except Exception as e: message = f"{message}: {repr(e)}" print(message) exit(status)