[Partage] Contrôle parental complet depuis HA : whitelist DNS (AdGuard) + temps d'écran (Timekpr-nExT)

Salut,

Je partage ici deux intégrations custom que j’ai développées pour gérer le contrôle parental de l’ordinateur Linux de ma fille, le tout piloté depuis Home Assistant.

Le contexte

Ma fille a son propre PC sous Linux. Je voulais pouvoir :

  • Contrôler les sites auxquels elle a accès (approche whitelist : tout est bloqué sauf ce que j’autorise)
  • Limiter son temps d’écran (durée journalière, jours autorisés, plages horaires)
  • Tout gérer depuis HA, y compris quand son PC est éteint (les changements se mettent en file d’attente et s’appliquent au redémarrage)

Les deux intégrations

1. Sites Autorisés (AdGuard Whitelist)

Cette intégration se connecte à AdGuard Home pour gérer une whitelist DNS par appareil (via l’IP du client). Concrètement :

  • Chaque site autorisé apparaît comme un switch on/off dans HA
  • Les domaines sont catégorisés automatiquement (Éducation, Programmation, CDN/Technique…)
  • En option, les sites autorisés peuvent être synchronisés en tant que favoris Firefox sur le PC de ma fille via SSH
  • Si le PC ou AdGuard est injoignable, les commandes sont mises en file d’attente et rejouées automatiquement
  • Un service add_site / remove_site permet d’ajouter/supprimer des sites facilement

2. Contrôle Parental (Timekpra)

Cette intégration pilote Timekpr-nExT (logiciel de contrôle parental Linux) via SSH :

  • Limites journalières : un slider par jour de la semaine (0 à 24h, pas de 15 min)
  • Limites hebdomadaires et mensuelles
  • Plage horaire : heure de début et de fin autorisées
  • Jours autorisés : un switch par jour de la semaine
  • Action au timeout : verrouillage, mise en veille ou extinction
  • Suivi du temps : capteurs pour le temps passé aujourd’hui, cette semaine, et le temps restant
  • Statut en ligne : savoir si le PC est allumé ou non
  • Là aussi, file d’attente persistante si le PC est éteint

Points communs

  • Les deux intégrations fonctionnent en mode offline : les modifications sont sauvegardées et appliquées dès que le PC redevient accessible
  • Tout passe par SSH (pas d’agent à installer côté enfant, juste Timekpr-nExT et AdGuard Home)
  • Cartes Lovelace custom incluses pour chaque intégration
  • Interface entièrement en français

En pratique

Depuis mon dashboard HA, je vois d’un coup d’œil :

  • Si le PC de ma fille est en ligne
  • Combien de temps il lui reste aujourd’hui
  • Quels sites sont autorisés
  • Si AdGuard et SSH sont joignables

Je peux ajouter un site en un clic, ajuster les limites de temps, ou tout couper si besoin — le tout depuis mon téléphone.

Code source

Les deux intégrations sont disponibles sur GitHub :
:point_right: ha-adguard-whitelist
:point_right: ha-timekpra

N’hésitez pas si vous avez des questions ou des suggestions d’amélioration !

4 « J'aime »

Salut,
Super idée!

Par contre, j’aime pas l’idée de mettre le mot de passe du compte (dans Mot de passe SSH), ça serait bien qu’on puisse peut mettre une clé ssh à la place.

Bonne journée

@tienou42 , je vient de le configurer et il fonctionne bien (ça sera bien plus simple a gérer que depuis le l’ordinateur, un grand merci a toi ! )

Comme amélioration, sur les sensors de limite par jour ( number.xxx_limite_jeudi par exemple ) :
le type slider n’est pas pertinent car entre le min (0) et le max (1440) c’est presque impossible a utiliser, le type box serait plus pertinent

De plus ces sensors pourrait avoir la device_class: duration (Number - Home Assistant)

Bonne journée

Et chez moi, j’ai pas la carte Lovelace: ( tester avec une navigation privé pour être sur que ce soit pas un souci de cache ) :