Skip to main content
Uptime Kuma

Uptime Kuma

Monitor all your services, websites and servers from Jeedom with Uptime Kuma. Real-time status, webhooks, synthesis panel.

Jeedom 4.4+betaos 11+php 7.4/8.xpython

🔎 Uptime Kuma Plugin for Jeedom

The Uptime Kuma plugin connects Uptime Kuma to Jeedom. It provides real-time status of all your monitors (websites, APIs, servers, TCP ports, DNS, ping...) and lets you use this information in your scenarios.


💡 Why use this plugin?

Centralized monitoring in Jeedom

No more switching between the Uptime Kuma interface and Jeedom. All the monitors/probes you want are visible directly on the dashboard, with dedicated widgets and a synthesis panel.

Real-time notifications via webhooks

In addition to periodic polling, the plugin installs webhooks in Uptime Kuma to receive instant status changes. A service goes down? Jeedom knows immediately.

Multi-source

You have multiple Uptime Kuma instances (production, lab, clients)? The plugin manages them all. Each instance is a Source, each check is a Monitor.

Usable in scenarios

Each monitor exposes info commands (status, ping, message) directly usable in Jeedom scenarios to trigger alerts, corrective actions or logs.


📊 Overview

FeatureDescription
MonitoringUP/DOWN/PENDING/MAINTENANCE status for each monitor
Response timePing in milliseconds (historized)
WebhooksInstant notifications from Uptime Kuma
Multi-sourceMultiple Uptime Kuma instances
PanelFilterable global view with synthesis
ScenariosInfo commands usable in scenarios
WidgetsDedicated templates for sources and monitors

⚙️ Prerequisites

  • Jeedom 4.4 minimum
  • Debian 11 to 13
  • An Uptime Kuma instance accessible from Jeedom (HTTP or HTTPS)
  • An Uptime Kuma account with API access (username / password)

📥 Installation

1️⃣ Install the plugin

Plugins > Plugin Management > Market > Uptime Kuma > Install stable

Activate the plugin after installation.

2️⃣ Install dependencies

Dependencies install automatically on activation. They include:

  • A Python virtual environment (venv)
  • The uptime-kuma-api2 library for communicating with the Uptime Kuma API

Check for OK status on the plugin configuration page.

3️⃣ Configure and start the daemon

On the Plugin Configuration page:

ParameterDescriptionDefault
Internal socket portCommunication port between Jeedom and the daemon55210
Polling frequencyInterval in seconds between each Uptime Kuma poll60

Start the daemon and verify OK status.

info

The daemon periodically polls all configured sources. Webhooks complement this mechanism for instant notifications.


🔌 Adding an Uptime Kuma source

A Source represents an Uptime Kuma instance.

Create the source equipment

  1. Go to Plugins > Monitoring > Uptime Kuma
  2. Click Add
  3. Name the source (e.g., "Uptime Kuma Prod")
  4. In the Equipment tab, fill in:
FieldDescription
URLUptime Kuma instance address (e.g., https://status.mydomain.com)
UsernameUptime Kuma username (optional)
PasswordPassword (encrypted in database, never displayed)
  1. Click Test connection to validate
  1. Save the equipment

Synchronize monitors

After saving the source:

  1. Click Discover monitors to see the list of available monitors
  2. Select the ones you want to create in Jeedom
  3. Confirm to create the corresponding equipment
info

Synchronization creates missing monitors and updates existing ones (name, type, hostname, tags). It never deletes a monitor — monitors that have disappeared from Uptime Kuma are marked as orphaned and disabled.


📡 Commands

Source commands

CommandTypeDescription
connectioninfo binary1 = connected to Uptime Kuma, 0 = disconnected
monitor_countinfo numericTotal number of monitors
monitors_upinfo numericMonitors in UP state
monitors_downinfo numericMonitors in DOWN state
monitors_pendinginfo numericMonitors in PENDING state
monitors_maintenanceinfo numericMonitors in MAINTENANCE state
monitors_unavailableinfo numericUNAVAILABLE monitors (Jeedom can't reach Uptime Kuma)
last_syncinfo stringDate/time of last synchronization

Monitor commands

Info commands

CommandTypeDescription
statusbinary1 = UP, 0 = DOWN
status_codenumericRaw code: 0=DOWN, 1=UP, 2=PENDING, 3=MAINTENANCE, 4=UNAVAILABLE
status_textstringHuman-readable status label
pingnumericResponse time in ms (historized)
messagestringLast status message
last_checkstringDate/time of last check

Action commands

CommandDescription
refreshForce an immediate refresh via the daemon
toggle_webhookEnable or disable the webhook for this monitor

🎨 Widgets

Monitor widget

The monitor widget displays:

  • Status indicator with color (green = UP, red = DOWN, orange = PENDING, blue = MAINTENANCE, gray = UNAVAILABLE)
  • Message from the last check (truncated with tooltip)
  • Ping in milliseconds
  • Last check (date/time)
  • Monitor type (HTTP, Ping, TCP, DNS...)
  • Webhook with toggle button to enable/disable

Source widget

The source widget displays:

  • Connection status (colored plug icon)
  • Total number of monitors (prominent number)
  • Distribution by status: UP, DOWN, MAINTENANCE, PENDING, UNAVAILABLE with colored dots
  • Last synchronization (date/time)

🎛️ Synthesis panel

The panel provides a global view of all monitors across all sources.

Summary cards

At the top of the panel, colored cards display global counters:

CardColorContent
TotalTotal number of monitors
UPGreenOnline monitors
DOWNRedFailed monitors
PENDINGOrangePending monitors
MAINTENANCEBlueMonitors in maintenance
UNAVAILABLEGrayUnreachable monitors
ConnectionConnected sources / total

Problems section

Below the cards, a section displays all non-UP monitors with their status and details. This section disappears when everything is UP.

Filters

The panel offers multiple combinable filtering criteria:

FilterDescription
Status buttonsALL, DOWN, N/A, PENDING, MAINT., UP
SourceFilter by Uptime Kuma instance
TagFilter by monitor tag
SearchReal-time search on monitor name

Monitor table

Each monitor is displayed on a row with:

  • Name and link to the Jeedom equipment
  • Monitor type
  • Tags (colored badges)
  • Ping
  • Last check
  • Webhook status (green badge = Jeedom, orange = other, red = none)

🔔 Webhooks

Webhooks allow Uptime Kuma to notify Jeedom instantly when a status changes, without waiting for the next polling cycle.

How it works

  1. The plugin creates a webhook notification in Uptime Kuma pointing to Jeedom
  2. The notification is attached to the relevant monitor
  3. When the monitor status changes, Uptime Kuma sends a POST to Jeedom
  4. Jeedom updates the monitor commands in real time

Enable / disable a webhook

  • From the monitor widget: click the webhook toggle button
  • From the panel: the webhook badge shows the current state
tip

Webhooks require Jeedom to be accessible from the Uptime Kuma instance (local network or public URL). Check connectivity if webhooks are not working.

Webhook security

Each source has an automatically generated dedicated webhook token. This token is independent from the Jeedom API key and authenticates incoming requests to prevent unauthorized calls.


💡 Scenario examples

Alert when a service goes down

Trigger: #[Monitoring][My Website][status]# == 0
→ Notification "My Website is DOWN!"
→ Send SMS

Alert on high ping

IF #[Monitoring][Production API][ping]# > 2000
Then → log "Production API: high latency (#[Monitoring][Production API][ping]# ms)"
Then → Notification "Slow API"

Daily summary

Schedule: every day at 8am
→ Message "DOWN monitors: #[Monitoring][Prod Source][monitors_down]# / #[Monitoring][Prod Source][monitor_count]#"

Automatically restart a service

Trigger: #[Monitoring][Docker Portainer][status]# == 0
→ SSH Command: "docker restart portainer"
→ Wait 30s
→ IF #[Monitoring][Docker Portainer][status]# == 0
→ Notification "Portainer did not restart — manual intervention needed"

📱 Mobile panel

The plugin has a mobile panel accessible from the Jeedom mobile app. Enable it if needed in the plugin's general configuration.


📋 Logs

LogDescription
uptimekumaMain log (polling, webhooks, synchronization)
uptimekuma_updateDependency installation

Enable Debug mode to see detailed exchanges with the Uptime Kuma API and daemon.


🆘 Support

If you encounter any issue, use the Support Forum button on the plugin's main page. It automatically generates a pre-filled post for the Jeedom Community forum with your configuration details (number of sources, monitors, daemon settings).


🛠️ Troubleshooting

Daemon won't start

  • Check dependencies (OK status)
  • Check that the socket port is not already in use:
ss -tlnp | grep 55210
  • Check the uptimekuma log in Debug mode

Source disconnected

  • Check the Uptime Kuma instance URL
  • Test the connection from the source equipment page
  • Check that the instance is accessible from Jeedom:
curl -s -o /dev/null -w "%{http_code}" https://your-uptime-kuma.com

Webhooks not working

  • Check that Jeedom is accessible from the Uptime Kuma instance
  • Check the webhook token in the logs
  • The callback URL uses Jeedom's internal address — if Uptime Kuma is on a different network, configure Jeedom's external URL in the general configuration

Orphaned monitors

If a monitor is deleted in Uptime Kuma, it will be marked orphaned at the next synchronization and disabled. You can manually delete it in Jeedom or re-enable it if the monitor is recreated in Uptime Kuma.

Dependency errors

# Check the venv
ls -la /var/www/html/plugins/uptimekuma/resources/venv/

# Reinstall manually
cd /var/www/html/plugins/uptimekuma/resources
python3 -m venv venv
./venv/bin/pip install -r requirements.txt