Auto-surveillance d'un système Jeedom

Merci pour ces précisions, je vois le principe en effet…
Donc si je comprends bien, il y a :

  • 2 Jeedom installés, chacun gérant une partie distincte l’un de l’autre de la domotique installée (si je comprends bien),
  • Et si l’un plante, l’autre le détecte avec l’info ‹ Joignable › qui passe à 0, et qui déclenche après un certain délai, un Arrêt/pause de 20"/Marche via le relais ad-hoc + envoi des notifs.

Oui, bien entendu. C’est important de le préciser en effet, aucun intérêt de laisser ‹ collé › un relais 7/24.

Exactement

1 « J'aime »

Si la box est en rade, c’est un PB, mais les box ont des mécanismes de redémarrage en cas d’absence d’accès internet … Avec ce système, c’est le Shelly qui contacte le serveur Shelly, donc même si l’accès depuis l’extérieur est HS, la prise voit la demande d’arrêt puisque c’est elle qui contacte le cloud shelly. La relance est automatique,30s après l’arrêt.

De toute façon,pas de miracle, si ta box est HS, ton dchp est HS, … Pas de réseau et pour le coup, faire un truc en auto, c’est le risque d’avoir un jour des reboots en série qui pour le coup,crasheront définitivement ta box

De toute façon, pour moi,un reboot (brutal) automatique est un non-sens. Trop risqué

Norbert

Bonjour,

Effectivement, ce n’est pas ce qu’il y a de mieux pour une base de données, même hébergée sur un système linux.

Pas faux, sauf si on a un routeur qui assure le DHCP et que la box ne sert que pour l’accès à l’Internet (ça me rappelle une discussion qu’on a déjà eu ici il n’y a pas si longtemps…).
Sinon j’ai du mal à voir comment cela fonctionne. Le Shelly est relié électriquement à la box Jeedom avec son relai, et piloté uniquement par son application en Wifi ? Du coup, comment détecte-t-il une défaillance de la box (sauf défaillance électrique) ?

C’est une prise Shelly, pas un relais. Box branchée dessus.
La détection de la défaillance est manuelle.

Norbert

Ah, OK, merci, je ne l’avais vu comme ça en effet… C’est plus clair ! :blush:

Le but n’est pas de la haute disponibilité. Cependant dans mon cas, les mouvements déclenchent des photos sur telegram. C’est mieux de les recevoir en cas d’intrusion en particulier pour 5eur. Pouvoir redémarrer a distance, il ne faut pas s’en priver.

Bonjour,

Merci à tous pour vos idées et cette discussion intéressante.
En effet, la résilience de Linux et de Jeedom permet normalement de pouvoir s’affranchir sans trop de souci d’un système de surveillance quelconque, et une simple prise connectée commandée via une appli peut largement faire l’affaire, c’est vrai…

Néanmoins j’ai un peu travaillé sur le sujet (j’aime bien automatiser ce genre de chose), et je suis arrivé à concevoir un système de récupération automatique de Jeedom, permettant de pallier à plusieurs types d’avaries possibles situées sur les niveaux applicatif et/ou réseau.

1.- Quoi : perte du réseau local en raison d’une avarie électrique restreinte à la box jeedom, et/ou du routeur ou de la box qui gère le réseau, ou parce que Jeedom ou le routeur/box est planté.
Qui : box Jeedom, routeur, box internet.
Comment : détection de cette perte de réseau local si pas de réponse de la box Jeedom à des ping IP.

2.- Quoi : perte du brocker MQTT activé sur Jeedom (ce qui suppose bien entendu qu’un brocker MQTT soit activé, comme Mosquito par exemple qui est installé par défaut avec MQTT Manager ou autre). C’est important car si l’ensemble des équipements du réseau Zigbee est connecté via z2m, cela implique la perte complète du réseau Zigbee.
Qui : brocker MQTT
Comment : détection par la perte de la connexion MQTT (plus de ‹ handshake ›).

3.- Quoi : plus de réponses de Jeedom à une sollicitation MQTT (idem, cela suppose donc l’installation et l’activation préalable d’un brocker MQTT).
Qui : Jeedom, qui est donc peut-être planté, gelé, ou fortement ralenti / dégradé.
Comment : détection par une absence de réponses ‹ Pong › à une sollicitation par message MQTT ‹ Ping › vers Jeedom.

Le principe est que si après cinq tentatives de reconnexion après la détection de l’un de ces trois cas de figure, l’ESP32 n’a toujours pas de retour, celui-ci va initier un arrêt/marche de la box Jeedom via un relais connecté à l’un de ces GPIO, en générant un créneau monostable de 500ms.
Et si ca ne fonctionne toujours pas après deux cycles d’arrêt / marche, on s’arrête là (dans ce cas, si un A/M ne résoud toujours pas le problème, il est inutile d’insister lourdement…).

Et ca donne ça dans mes simulations :

1.- Cas où la box Jeedom est stoppée/HS (et donc plus de réponses aux pings) :

Echecs ping réseau

Après quelques minutes, l’ESP provoque l’arrêt / marche.

2.- Cas où le brocker (Mosquito) est stoppé ou planté :

image

Echec connexion MQTT

Après le time-out, l’ESP provoque l’arrêt / marche.

3.- Jeedom ne réponds plus en MQTT sur le topic dédié (normalement « pong » sur le topic Rx)

Echec Ping-pong MQTT

Après un time-out un peu plus long cette fois, un peu plus de 5’ (le temps de dépiler les msg MQTT), l’ESP provoque l’arrêt / marche.

Le code de l’ESP32 est écrit C++ (avec l’IDE Arduino ou VSC), ce qui est plus simple et plus souple que de passer par ESPEasy par exemple (je trouve…).
Les délais prévus dans le code laissent le temps au système soit de se ‹ rattraper aux dernières branches › avant l’exécution de la sentence, soit de redémarrer proprement une fois celle-ci exécutée, sans saturer non plus la box Jeedom avec des interrogations permanentes.
Reste à voir maintenant ce que ça donnerait une fois en place en situation réelle, et ça, c’est l’étape suivante… :wink:

Bonjour à tous,

Je reviens sur ce sujet pour vous informer, à toutes fins utiles, que j’ai finalisé ce projet (testé, approuvé, et désormais en service).

Ce module, que j’ai baptisé très modestement ‹ JWS › (Jeedom Watch System) :blush:, permet la surveillance d’une box (RPi, Atlas, Luna,…) domotique (pas que Jeedom d’ailleurs, ça marche aussi pour HA ou autres…), aux niveaux applicatifs (démon MQTT, serveur MQTT) et réseau (présence de la box) et de remédier, par un arrêt marche électrique, à un plantage, figeage ou tout autre problème de la box.
Évidemment, ça marchera moins bien, ou du moins il y a un risque plus avéré, pour les Jeedom installés sur des machines virtuelles (NAS, serveurs, PC de bureau,…).

Le principe général que j’ai retenu est donc que si un des trois tests effectué en boucle toutes les 30 secondes (ping MQTT, connexion MQTT, connexion IP) est KO 5 fois de suite (ce qui laisse à peu près 3 à 5 minutes à la box pour réagir), le JWS va provoquer un arrêt/marche jusqu’à deux fois maximum si le ou les erreurs persistent (car comme je le disais, inutile d’insister si ça na marche toujours pas après deux A/M).

J’ai fignolé la partie matérielle et logicielle pour avoir un système le plus user-friendly possible :

  • Ecran OLED (en option) avec présentation des erreurs entre autre,
  • LED RGB qui donne également un certain nombre de renseignement, même si l’écran OLED n’est pas présent ou HS,
  • possibilité de faire les mises à jour par OTA (via le réseau Wifi) soit avec l’IDE Arduino, soit directement par le téléversement d’un fichier firmware .bin via un serveur web intégré,
  • pas d’alimentation externe nécessaire, le module s’alimente avec la prise USB-C qu’il commande. Il peut donc se placer directement entre l’alim et la box (USB-C) sans contraintes particulières.

Si ce projet vous intéresse, vous trouverez tous les détails en libre-service (doc, sources, .bin) sur la page GitHub que j’y ai consacré ici.
Je préviens d’avance, ça demande quelques compétences en soudures fine (les prises USB), bricolage en général, voire programmation s’il faut bidouiller dans le code…

Merci d’avance pour vos retours, si vous y voyez des améliorations ou autres…

10 « J'aime »

Bonjour,
Pour revenir au sujet initial sur le disque SSD suspecté et identifier la root cause, si ton disque SSD supporte le protocole S.M.A.R.T, tu peux monitorer ton disque finement en plus des nombreux logs systèmes.

cdt

Bonjour @phil38,
Merci pour m’avoir fait découvrir cet outil smartctl et son intégration éventuelle dans Jeedom, que je ne connaissais pas perso.
Ceci dit, si cet incident debut septembre avec mon RPi4 et le SSD m’a poussé a concevoir ce module JWS, je suis passé depuis sur RPi5+SSD NVMe qui, jusqu’à présent, ne m’ont posés aucun soucis (:point_right: :wood:).
Le module JWS ne devrait toutefois pas être complètement inutile (bien que dans l’idéal ce soit le but…), c’est juste une précaution dans l’urgence (car on le sait bien : si cela doit planter, ça plantera toujours au plus mauvais moment…), un peu comme un onduleur vis à vis des coupures de courant en fait.

Je regarde du coup avec mon RPi4 qui me sert désormais pour mes XP, et je vais creuser un peu, il y a sûrement quelque chose à faire avec…
Merci ! :wink: