Files
homeAssistant/docs/tests.md
Márcio Fernandes 73fe328336
All checks were successful
Casa Home Assistant CI/CD Pipeline / deploy (push) Successful in 17s
ew file: docs/tests.md
2025-12-07 17:20:06 +00:00

1.3 KiB

tests

logs from loki

# loki-get-last-to-sensor.py
import sys, os, requests, datetime, time, json

url = os.environ.get("LOKI_ADDRESS")

if not url:
    print(json.dumps({"state": "error", "log_message": "LOKI_ADDRESS is not set or empty"}))
    sys.exit(1)

query = os.environ.get("LOKI_QUERY")
if not query:
    print(json.dumps({"state": "error", "log_message": "LOKI_ADDRESS is not set or empty"}))
    sys.exit(1)
    

end = int(time.time()) * 1_000_000_000
start = (int(time.time()) - 24*60*60) * 1_000_000_000


params = {
    "query": query,
    "limit": 1,
    "direction": "backward",
    "start": str(start),
    "end": str(end),
}

resp = requests.get(url, params=params)
data = resp.json()

try:
    ns = int(data["data"]["result"][0]["values"][0][0])
    ts = ns / 1_000_000_000
    dt = datetime.datetime.fromtimestamp(ts).strftime("%Y-%m-%d %H:%M:%S")
    
    print(json.dumps({
       "state": dt,
    }))

except Exception:
    print(json.dumps({"state": "unknown"}))
# example of the sensor
name: git_limbosolutions_com_last_pbs_backup
command: >
  LOKI_ADDRESS=${LOKI_ADDRESS} LOKI_QUERY="{job=\"git-limbosolutions-com/pbs-backup\"} |= \"INFO: Finished Backup\"" python3 /config/scripts/loki-get-last-to-sensor.py
value_template: "{{ value }}"