🔎 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
| Feature | Description |
|---|---|
| Monitoring | UP/DOWN/PENDING/MAINTENANCE status for each monitor |
| Response time | Ping in milliseconds (historized) |
| Webhooks | Instant notifications from Uptime Kuma |
| Multi-source | Multiple Uptime Kuma instances |
| Panel | Filterable global view with synthesis |
| Scenarios | Info commands usable in scenarios |
| Widgets | Dedicated 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-api2library 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:
| Parameter | Description | Default |
|---|---|---|
| Internal socket port | Communication port between Jeedom and the daemon | 55210 |
| Polling frequency | Interval in seconds between each Uptime Kuma poll | 60 |
Start the daemon and verify OK status.
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
- Go to Plugins > Monitoring > Uptime Kuma
- Click Add
- Name the source (e.g., "Uptime Kuma Prod")
- In the Equipment tab, fill in:
| Field | Description |
|---|---|
| URL | Uptime Kuma instance address (e.g., https://status.mydomain.com) |
| Username | Uptime Kuma username (optional) |
| Password | Password (encrypted in database, never displayed) |
- Click Test connection to validate
- Save the equipment
Synchronize monitors
After saving the source:
- Click Discover monitors to see the list of available monitors
- Select the ones you want to create in Jeedom
- Confirm to create the corresponding equipment
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
| Command | Type | Description |
|---|---|---|
| connection | info binary | 1 = connected to Uptime Kuma, 0 = disconnected |
| monitor_count | info numeric | Total number of monitors |
| monitors_up | info numeric | Monitors in UP state |
| monitors_down | info numeric | Monitors in DOWN state |
| monitors_pending | info numeric | Monitors in PENDING state |
| monitors_maintenance | info numeric | Monitors in MAINTENANCE state |
| monitors_unavailable | info numeric | UNAVAILABLE monitors (Jeedom can't reach Uptime Kuma) |
| last_sync | info string | Date/time of last synchronization |
Monitor commands
Info commands
| Command | Type | Description |
|---|---|---|
| status | binary | 1 = UP, 0 = DOWN |
| status_code | numeric | Raw code: 0=DOWN, 1=UP, 2=PENDING, 3=MAINTENANCE, 4=UNAVAILABLE |
| status_text | string | Human-readable status label |
| ping | numeric | Response time in ms (historized) |
| message | string | Last status message |
| last_check | string | Date/time of last check |
Action commands
| Command | Description |
|---|---|
| refresh | Force an immediate refresh via the daemon |
| toggle_webhook | Enable 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)