# Intégration externe - OPNsense (pare-feu, présence réseau, WireGuard)

**URL:** <https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221>\
**Category:** Développement\
**Tags:** integration-externe\
**Created:** [Octobre 14, 2026, 6:06 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221 "2026-10-14T18:06:04Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [Octobre 14, 2026, 6:06 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/1 "2026-10-14T18:06:04Z")

</div>

Bonjour à tous,

Pour ceux dont le réseau passe par un pare-feu OPNsense, voici une intégration externe qui l’amène dans Gladys.

> **[GitHub - William-De71/gladys-opnsense: OPNsense firewall: health, gateways, traffic,...](https://github.com/William-De71/gladys-opnsense)**
>
> OPNsense firewall: health, gateways, traffic, presence on the network, rules, WireGuard, scenes.

### Ce qu’elle fait

Elle lit l’API d’OPNsense sur votre réseau local (transport **local** ), avec une clé d’API dédiée, toutes les 30 secondes. Rien ne part vers un cloud. Gladys n’a pas d’intégration OPNsense native ; côté présence, elle complète le Bluetooth en voyant les téléphones connectés au Wi-Fi.

### Fonctionnalités

- **Pare-feu** : CPU, mémoire, disque, température, temps de fonctionnement, mises à jour en attente, version, pairs WireGuard connectés.
- **Passerelles** (état, latence, perte) et **interfaces** (débits, lien, adresse IP).
- **Règles de pare-feu** d’une catégorie (`gladys` par défaut) sous forme d’interrupteurs.
- **Présence** des appareils du réseau (table ARP et baux DHCP), utilisable avec l’action « Vérifier la présence ».
- **6 déclencheurs** : passerelle, appareil arrivé ou parti, nouvel appareil, pair VPN, service, mise à jour disponible.
- **6 actions** : lire l’état, Wake-on-LAN (à travers les VLAN), alias, redémarrer un service, rechercher les mises à jour, redémarrer.
- **4 widgets** : pare-feu, connexion internet, appareils du réseau, VPN WireGuard.

Exemples de scènes :

- quand la passerelle principale passe hors ligne → m’envoyer « Internet est coupé » ;
- quand un nouvel appareil apparaît sur le réseau → m’envoyer son nom, son fabricant et son IP ;
- chaque soir à 21 h → ajouter la tablette des enfants à un alias bloqué, la retirer à 7 h.

![Les quatre widgets, illustration générée à partir du code sur des données fictives, pas une capture d'écran](https://raw.githubusercontent.com/William-De71/gladys-opnsense/main/docs/assets/widgets.fr.png)

### Installation

- Depuis le store : chercher « OPNsense ». Disponible dans la journée, le temps de l’indexation.
- Ou depuis l’URL du dépôt : `https://github.com/William-De71/gladys-opnsense`.
- Gladys **5.1.0** minimum (widgets et scènes).

Configuration :

1. Dans OPNsense, créer un utilisateur dédié avec les droits listés dans la documentation, puis une clé d’API (fichier `key.txt`).
2. Dans Gladys, saisir l’adresse d’OPNsense, la clé et le secret ; laisser « Vérifier le certificat » décoché avec le certificat auto-signé d’origine.
3. Cliquer sur « Tester la connexion », puis lancer la Découverte et ajouter les appareils voulus.

> **Droits OPNsense nécessaires**
>
> Lobby: Dashboard ; System: Gateways ; Status: Interfaces ; Reporting: Traffic ; Diagnostics: ARP Table ; Services: Dnsmasq DNS/DHCP ou DHCP: Kea(v4) ; VPN: WireGuard: Status ; Status: Services ; System: Firmware (recherche de mises à jour) ; Firewall: Rules [new] et Firewall: Categories (interrupteurs) ; Diagnostics: PF Table IP addresses (alias) ; Diagnostics: Reboot System ; Services: Wake on LAN (plugin os-wol). Un droit absent désactive seulement sa fonction.

### Limites connues

- Écrite d’après l’API d’OPNsense 26.7 et testée contre un faux OPNsense : vos retours sur de vraies installations sont bienvenus.
- Seules les règles du nouvel éditeur de règles peuvent être basculées, pas les règles automatiques.
- La présence repose sur la table ARP : un téléphone en veille disparaît parfois quelques minutes (d’où le délai d’absence), et une adresse MAC aléatoire qui change fausse le suivi.
- Le Wake-on-LAN demande le plugin os-wol. Pas d’OpenVPN ni d’IPsec pour l’instant, seulement WireGuard.

### Retours

Par une issue GitHub ou en réponse à ce fil, avec les versions de Gladys, de l’intégration et d’OPNsense, et les logs (`DEBUG=gladys-integration-sdk`).

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Octobre 21, 2026, 12:04 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/2 "2026-10-21T12:04:25Z")

</div>

Hello @Will_71

J’ai ceci dans les logs :

```auto
[2026-10-21T11:49:21.463Z] [INFO] Starting the OPNsense integration 0.1.0...
[2026-10-21T11:49:21.555Z] [INFO] [gladys-sdk] connected to Gladys (http://172.30.0.1:80)
[2026-10-21T11:56:01.082Z] [INFO] Configuration updated: OPNsense read every 30 s
[2026-10-21T11:56:01.314Z] [WARN] OPNsense reading failed: The API user lacks a privilege for diagnostics/system/system_time

```

Avec ce message :  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/3/8/38089151a8b5ca0ef3925c504f425d7d4aa0b5d1.png)

J’ai créé un compte dédié (sans cocher admin) avec uniquement ces privilèges :

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/0/6/06aef1da567aefa5a70aea56c6ce5dd0667b566e.png)

Pour info le privilège «&nbsp;diagnostics/system/system\_time&nbsp;» n’existe pas

Peux-tu regarder stp ?

Merci

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [Octobre 21, 2026, 12:19 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/3 "2026-10-21T12:19:42Z")

</div>

Merci pour ton retour. C’est que je n’ai pas eu le temps de le tester sur mon installation.  
Je regarde dès que possible. Je te tiens au courant.

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Octobre 21, 2026, 1:11 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/4 "2026-10-21T13:11:57Z")

</div>

Parfait merci 🙂

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [Octobre 21, 2026, 6:36 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/5 "2026-10-21T18:36:19Z")

</div>

Merci @prohand, c’est bien un bug de mon côté. Le droit qui manque s’appelle « Lobby: Dashboard » dans la liste (c’est lui qui couvre diagnostics/system/system\_time, d’où le nom introuvable).  
En attendant la nouvelle version, l’ajouter à ton utilisateur suffit.  
Avec la prochaine version, l’intégration fonctionnera aussi sans ce droit : passerelles et appareils du réseau marcheront avec seulement ceux que tu as cochés. Seule la santé du pare-feu (CPU, mémoire, disque…) demandera « Lobby: Dashboard », et le statut le dira clairement.

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Octobre 21, 2026, 9:09 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/6 "2026-10-21T21:09:50Z")

</div>

Merci  
Tout est ok avec cette version 😉  
Je te tiens au courant si je vois d’autres bugs ou améliorations 😉

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [Octobre 21, 2026, 9:33 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/7 "2026-10-21T21:33:54Z")

</div>

Merci de ton retour. 👍

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Octobre 22, 2026, 7:30 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/8 "2026-10-22T07:30:19Z")

</div>

Je voudrais remplacer un pialert par cette intégration externe afin de recevoir des alertes quand un nouvel appareil est detecté sur le réseau.

Je voudrai savoir comment fonctionne en détail la scène : " **Nouvel appareil sur le réseau** : une adresse MAC jamais vue, une fois par adresse."

A partir de combien de temps un appareil n’est plus consideré comme nouveau ?  
Est-il possible également d’avoir une option ici «&nbsp;Nouvel appareil&nbsp;» :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/0/4/04f9ddc1170e540fb4b771bae512d814a0a6848f.png)

Merci

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [Octobre 22, 2026, 6:15 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/9 "2026-10-22T18:15:53Z")

</div>

Bonjour prohand,

Merci pour ton retour. Voici comment fonctionne le déclencheur **« Nouvel appareil sur le réseau »**.

**Fonctionnement**

- Toutes les 30 secondes (l’intervalle se règle), l’intégration lit la table ARP d’OPNsense et les baux DHCP (Dnsmasq ou Kea).
- Elle garde la liste de toutes les adresses MAC déjà rencontrées dans un fichier, `/data/known-hosts.json`Ce fichier se trouve en dehors des dossiers de cette session ; il ne peut donc pas être ouvert ici.. Ce fichier n’est pas effacé quand l’intégration ou Gladys redémarre.
- Quand une adresse MAC qui n’est pas dans cette liste apparaît, la scène se déclenche une seule fois. L’adresse est ajoutée à la liste aussitôt, et ne déclenchera plus jamais la scène.
- **Au tout premier démarrage** , tous les appareils déjà présents sont enregistrés sans rien déclencher. Sinon, tu recevrais une alerte pour chacun de tes appareils.
- La scène te donne : l’adresse MAC, l’IP, le nom d’hôte, le fabricant, l’interface (LAN, VLAN…) et un résumé tout prêt pour un message. Exemple de scène : « Quand un nouvel appareil apparaît → envoyer un message avec le résumé ».

**« À partir de combien de temps un appareil n’est plus considéré comme nouveau ? »**

Tout de suite : un appareil n’est « nouveau » qu’une seule fois, la première fois que sa MAC est vue. Il n’y a pas de délai. Un appareil qui part puis revient des semaines plus tard ne redéclenche pas la scène. Pour suivre les arrivées et les départs, il y a un autre déclencheur, « Appareil arrivé ou parti », pour les appareils ajoutés dans Gladys.

Deux remarques :

- Dans la configuration de l’intégration, le bouton **« Oublier les appareils connus »** vide la liste. Le passage suivant recrée alors une liste de départ, sans déclencher d’alerte. La liste est aussi vidée si tu changes l’adresse d’OPNsense, au cas où ce serait un autre pare-feu.
- Attention aux **adresses MAC aléatoires** des téléphones (iOS et Android, activées par défaut sur chaque réseau Wi-Fi). Si un téléphone change d’adresse, il est vu comme un nouvel appareil. Pour l’éviter, désactive l’adresse privée sur ton propre Wi-Fi pour tes appareils.

**Une option « Nouveaux appareils » dans le widget**

Ce n’est pas possible pour le moment : le widget propose seulement « Appareils connectés », « Appareils partis » et « Tous les appareils connus ». Mais c’est une bonne idée, je la note pour une prochaine version. On pourrait par exemple afficher les appareils vus pour la première fois ces dernières 24 heures.

Pour remplacer Pi.Alert, la scène « Nouvel appareil sur le réseau » suivie d’un envoi de message devrait déjà couvrir ce besoin.

* * *

Si tu veux, je peux ajouter l’option « Nouveaux appareils » au widget « Appareils du réseau ». Ce serait une nouvelle valeur pour le réglage « Afficher », sans toucher aux réglages déjà enregistrés par les utilisateurs. Il faudrait en plus garder la date de première rencontre de chaque adresse.

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Octobre 23, 2026, 1:38 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/10 "2026-10-23T13:38:28Z")

</div>

Merci pour les explications 🙂  
SI on créer l’option « Nouveaux appareils » au widget « Appareils du réseau », le widget serait vide tout le temps car un appareil est nouveau qu’une seul fois.  
Du coup est-ce que cette option est pertinente ?

Edit :

Cela repond à la question 🙂

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/2/0/2064fb2fce10943389f38e212069edd5c04f9c90.png)

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Octobre 29, 2026, 9:54 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/11 "2026-10-29T09:54:26Z")

</div>

@Will_71 Pour information j’ai toujours les logs suivants dans opnsense  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/optimized/3X/2/c/2c510fca5c5b895526dac728ce9d0d258ed8d429_2_690x18.png)

Voici les droits que j’ai mis : (System: Gateway pour le dernier) (J’en ai que 3)  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/3/4/34b4530b33ea9a4acfd49562b084b2b8919ef80b.png)

Merci 🙂

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [Octobre 29, 2026, 3:42 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/12 "2026-10-29T15:42:14Z")

</div>

Ok je regarde ce soir

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [Octobre 29, 2026, 8:24 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/13 "2026-10-29T20:24:21Z")

</div>

Bonjour prohand,

Merci pour les captures, elles m’ont permis de trouver le problème.

Tes droits sont bons. Jusqu’à OPNsense 25.1, le droit « Lobby: Dashboard » autorise l’adresse systemTime, alors que l’intégration demande system\_time, l’écriture adoptée par OPNsense depuis la 25.7. OPNsense compare l’adresse lettre par lettre : il refusait donc l’appel, même avec le bon droit.

La prochaine version essaie les deux écritures et garde celle qui fonctionne. Les erreurs devraient disparaître de tes logs sans rien changer à tes droits. L’heure, les infos système, la charge, le disque et la température du pare-feu remonteront aussi dans Gladys.

Peux-tu me dire quelle version d’OPNsense tu utilises (en haut du tableau de bord, ou dans Système \> Firmware) ? Je voudrais confirmer que c’est bien une version antérieure à la 25.7.

Merci 🙂

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Octobre 30, 2026, 9:33 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/14 "2026-10-30T09:33:58Z")

</div>

Merci 🙂

Je suis en version 26.7.7  
Visiblement je n’ai plus le message qui s’affiche après la mise à jour 😉

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Novembre 2, 2026, 1:28 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/15 "2026-11-02T13:28:16Z")

</div>

Un autre point que je viens de voir, cela génère des tentatives d’accès sur opnsense pour des fonctionnalité dont je n’ai pas besoin dans Gladys :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/2/5/255098a09b62c8922b4ca839e671d62238d1e0a0.png)

Est-ce possible de gérer ce point via des cases à cocher dans l’intégration externe afin d’utiliser uniquement les fonctionnalités cochés :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/3/5/356c4dfbc762dc41b5b812394ffa99420d7c8f67.png)

Merci 🙂

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [Novembre 2, 2026, 6:20 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/16 "2026-11-02T18:20:03Z")

</div>

OK je regarde et je te tiens au courant.

---

<div class="post-metadata">

**Author:** ![Will\_71](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/will_71/32/9582_2.png) [@Will\_71](https://community.gladysassistant.com/u/Will_71)\
**Post date:** [Novembre 2, 2026, 8:57 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/17 "2026-11-02T20:57:44Z")

</div>

Dans la configuration de l’intégration, une nouvelle option « Fonctions lues » propose une case par fonction, avec le droit OPNsense correspondant :

- Santé du pare-feu (Lobby: Dashboard)
- Mises à jour (System: Firmware)
- Passerelles (System: Gateways)
- Interfaces (Status: Interfaces, Reporting: Traffic)
- Appareils du réseau (Diagnostics: ARP Table)
- Leurs noms DHCP (Services: Dnsmasq DNS/DHCP ou DHCP: Kea(v4))
- WireGuard (VPN: WireGuard: Status)
- Services (Status: Services)
- Interrupteurs de règles (Firewall: Rules [new], Firewall: Categories)

Une fonction décochée n’est plus jamais demandée à OPNsense, donc plus de lignes « not accessible » dans ton journal. Par défaut tout reste coché : rien ne change pour ceux qui ne touchent pas à l’option.

Avec tes trois droits, il te suffira de laisser cochées Santé du pare-feu, Passerelles et Appareils du réseau, et d’enregistrer.

Les fonctions qui ne s’exécutent qu’à la demande (redémarrage, action sur les alias, Wake-on-LAN) ne sont pas dans la liste : elles n’interrogent OPNsense que quand une scène ou un bouton les lance.

Pour info, jusqu’ici l’intégration retentait une fois par heure chaque fonction refusée, d’où ces lignes qui revenaient régulièrement.

---

<div class="post-metadata">

**Author:** ![prohand](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/prohand/32/15713_2.png) [@prohand](https://community.gladysassistant.com/u/prohand)\
**Post date:** [Novembre 3, 2026, 2:48 UTC](https://community.gladysassistant.com/t/integration-externe-opnsense-pare-feu-presence-reseau-wireguard/11221/18 "2026-11-03T14:48:35Z")

</div>

Merci pour cette version 🙂
