Skip to main content
Pingserver

Pingserver

Monitor network device availability (ICMP ping) from Jeedom with UP/DOWN status, latency and packet loss.

Pingserver Plugin

The Pingserver plugin monitors the availability of your network devices via ICMP ping. It runs through a Python asyncio daemon using the icmplib library to perform parallel pings without root privileges.


✨ Features​

  • 🟢 Real-time UP / DOWN status
  • ⏱ Average latency (ms) with history
  • 📉 Packet loss (%)
  • 🖼 Custom icon per device
  • 📡 MQTT: inter-Jeedom sharing (slave mode)
  • 🌙 Built-in Wake-on-LAN
  • 🔍 MAC detection via arp-scan
  • 📱 Mobile view with Active / Inactive / All filter

⚙️ Dependencies​

ComponentRole
icmplibAsyncio ICMP ping (required)
requestsDaemon → Jeedom communication (required)
paho-mqttMQTT publish / subscribe (optional)
arp-scanMAC address detection (optional)
wakeonlanWoL network wake (optional)

Install dependencies from the plugin configuration page.


🚀 Installation​

  1. Install the plugin from the Jeedom Market.
  2. Activate the plugin.
  3. Go to the plugin configuration and launch the dependency installation.
  4. Start the daemon.

⚙️ Plugin configuration​

Operating mode​

The plugin offers three modes that determine how ping results are produced and shared.

Local mode (default)​

The Python daemon performs pings directly from the local Jeedom and updates commands in real-time. No additional network configuration is required.

Local + MQTT mode (master)​

The daemon performs pings locally and publishes each result to an MQTT broker.

  • Published topic: {prefix}/{ip_address} (e.g. pingserver/192.168.1.10)
  • JSON payload: {"host":"192.168.1.10","alive":true,"avg_rtt":1.2,"packet_loss":0.0,...}
  • Messages are published with retain=true: a slave that connects immediately receives the last known state.

Typical use case: a primary Jeedom monitors devices and shares results with one or more secondary Jeedom instances.

Remote MQTT mode (slave)​

The daemon does not ping anything. It simply listens to MQTT messages published by a master Jeedom and updates local commands accordingly.

  • Subscribed topic: {prefix}/# (all devices from the master)
  • Upon receiving a message, the plugin finds the corresponding device (by IP address) and updates its state, delay and packet_loss commands.
  • Auto-create option: if enabled, a device is automatically created when an unknown message is received. Only enable this if the MQTT source is trusted.
Master / slave configuration

Jeedom A (master) → Local + MQTT mode, broker 192.168.1.1:1883, prefix pingserver

Jeedom B (slave) → Remote MQTT mode, same broker, same prefix

Both Jeedom instances share the same states in real-time without any HTTP polling between them.

General settings​

SettingDescription
Ping cycleInterval between ping rounds (10 – 3600 s, default 60 s) — ignored in slave mode
Daemon socket portInternal communication port (default 55109)

MQTT configuration​

SettingDescription
Broker (host)IP address or DNS name of the MQTT broker
PortBroker port (default 1883)
User / PasswordMQTT authentication (optional)
Topic prefixCommon prefix for all topics (default pingserver) — must be identical on master and slave
Auto-createCreates a device when an unknown message is received (slave mode only)
MQTT Security

The MQTT connection is unencrypted (no TLS). Reserve this usage for a trusted local network or a broker accessible only via VPN.


🖥 Creating a device​

  1. Go to Plugins → Monitoring → Pingserver.
  2. Click Add.
  3. Enter the device name.
  4. Configure the target IP address or hostname.
  5. Choose an icon (built-in library or custom image).
  6. Save.

Device settings​

SettingDescription
IP address / hostPing target (IPv4, IPv6 or DNS name)
TimeoutWait time per packet in seconds (0.5 – 10 s)
Packet countNumber of ICMP packets sent per cycle
MAC addressFor Wake-on-LAN and ARP detection
IconImage displayed on the widget

📊 Automatically created commands​

CommandTypeDescription
stateBinary info1 = UP, 0 = DOWN
delayNumeric infoAverage latency in ms
packet_lossNumeric infoPacket loss in %
RefreshActionImmediate ping of the device
Wake-on-LANActionNetwork wake (if MAC is configured)

🖼 Dashboard widgets​

State widget (pingserver_etat)​

Displays the device icon with:

  • a colored bar on the left (🟢 green = UP, 🔴 red = DOWN)
  • an UP or DOWN badge

Latency widget (delai)​

Displays latency in ms with automatic coloring:

ValueColor
< 50 ms🟢 Green
50 – 200 ms🟠 Orange
> 200 ms🔴 Red

📱 Mobile view​

The mobile view (Panel) displays all your Pingserver devices on a single page with:

  • icon + name + IP address
  • UP / DOWN badge
  • latency and packet loss
  • All / Active / Inactive filter
  • Refresh button

🌙 Wake-on-LAN​

To use Wake-on-LAN:

  1. Enter the MAC address in the device configuration.
  2. Make sure wakeonlan is installed on the system.
  3. Use the Wake-on-LAN command from Jeedom or a scenario.

🔍 MAC detection (ARP)​

If arp-scan is installed, the plugin can automatically detect a device's MAC address by scanning the local network (every 5 minutes via cron5).


✅ Compatibility​

ElementVersion
Jeedom4.4+
Debian11 to 13
Python3.9+

💡 Tips​

  • Use a short cycle (10–30 s) to quickly detect failures.
  • In remote MQTT mode, disable the ping cycle — only incoming MQTT messages are processed.
  • Custom icons are stored in data/icones/ and are not deleted during updates.