tout le partage

#Niagara

Ntfy_Notify v2 : notifications push ntfy depuis une station Niagara 4

Un ProgramObject qui envoie une notification push vers un serveur ntfy (ntfy.sh ou auto-hébergé) sur front d'un booléen ou changement de message, sans jamais bloquer la station : file d'attente, thread dédié, nouveaux essais.

date
23 octobre 2026
testé avec
Niagara 4 · ntfy.sh ou serveur ntfy auto-hébergé
licence
MIT
tags
#ntfy,#notification,#programobject,#alarme,#http
Ntfy_Notify_v2.bog télécharger

Défaut chaufferie détecté par la station Niagara 4, Ntfy_Notify envoie la notification push au téléphone via ntfy

Ce que ça fait

Il envoie une notification push vers un serveur ntfy (POST JSON). Le scan (toutes les Scan_Period secondes) ne fait que détecter les événements et les met dans une file en mémoire. Un thread dédié (Ntfy_<nom du composant>) vide la file et fait les envois HTTP : même si ntfy ne répond pas, le Clock de la station n’est jamais bloqué.

Le composant Ntfy_Notify dans une station Niagara, après 7 envois réussis

Glisse le .bog dans ta station, renseigne Topic, compile. Si N4 te sort « Program is not signed », c’est par ici.

Les entrées

  • Connexion : Ntfy_Server (défaut https://ntfy.sh, sans le topic), Topic, Access_Token (optionnel).
  • Contenu : Title, Message (front montant ou message surveillé), Message_Off (retour à la normale, vide = rien), Value et Value_Decimals, Priority (1 à 5), Tags, Click_Url (https:// ajouté s’il manque), Markdown.
  • Déclenchement : Mode_Change, Trigger, Force (envoi de test).
  • Réglages : Scan_Period (à chaud), Confirm_Delay (anti-rebond), Min_Interval (seul le dernier état part), Startup_Delay (défaut 30 s), Send_On_Startup, Max_Queue (défaut 20, le plus ancien saute), Enable_Debug_Logs.

Variables dans Title, Message, Message_Off et Click_Url : {time}, {date}, {station}, {state} (ON/OFF), {value}.

Les sorties

  • Notifier_Ok passe à false dès qu’un envoi échoue et revient à true au premier succès : lie-le à un point avec alarme.
  • Last_Http_Code (-1 = erreur réseau ou de config), Last_Execution, Error_Message.
  • Sent_Count, Fail_Count (échecs consécutifs), Dropped_Count, Queue_Size.

Les deux modes

  • Trigger (Mode_Change = false) : front montant de Trigger → Message ; front descendant → Message_Off s’il n’est pas vide. Un Trigger en défaut, hors ligne, périmé ou sans valeur garde l’état précédent.
  • Change (Mode_Change = true) : Message part quand il n’est pas vide et diffère du précédent. La comparaison se fait sur le texte brut, avant les variables : un {time} ou un {value} qui bouge ne déclenche rien.

Force envoie un test tout de suite, même pendant le Startup_Delay, relance la file, puis repasse seul à false. Au démarrage, rien ne part pendant Startup_Delay, puis l’état courant devient la référence : pas de notification parasite au redémarrage.

Erreurs et nouveaux essais

  • Erreur réseau, HTTP 3xx/408/429/5xx ou erreur de config : nouvel essai après 5 s, 30 s, 2 min, puis toutes les 10 min.
  • Autres 4xx (400, 401, 403, 413…) : message abandonné, compté dans Dropped_Count.
  • Détectés d’office : topic vide, URL sans http(s), http://ntfy.sh, topic collé dans l’URL. Les redirections ne sont pas suivies, et le détail renvoyé par ntfy est affiché (ex. unauthorized).
  • Messages coupés vers 3,9 Ko (au-delà de 4 Ko, ntfy en fait une pièce jointe).

Les limites

  • La file est en mémoire : les messages en attente sont perdus au Stop ou au redémarrage de la station.
  • Une impulsion de Trigger plus courte que Scan_Period n’est pas vue.
  • En mode Change, un changement de Value seul ne déclenche rien : la valeur est lue au moment de l’envoi.
  • Pas de retour à la ligne pour l’instant (champ Niagara sur une ligne) : le Markdown se limite au gras, à l’italique, au code et aux liens.
  • Sur ntfy.sh public, un topic court se devine : prends un nom long et aléatoire, ou un token.
open/gtb · MIT · hébergé en France
visiteurs github roadmap messages contact
SYS OK 15/18 outils en ligne uptime — T° baie 21,3 °C