Bêta précoce (0.1.0), pas encore pour un process critique. Voir la roadmap
PNeX logo

Contrôles

Interrupteurs, curseurs et boutons sur vos surfaces, exécutés par un flow

PNeX suit une règle pour tout ce qu'on presse à l'écran : une surface lit, un flow agit. Un tableau de bord, une carte mobile ou une annotation sur un panorama ne pilote jamais une pin d'appareil. Presser un interrupteur écrit la valeur d'un contrôle ; un flow déployé qui écoute ce contrôle décide de la suite : écrire une pin sur un ou plusieurs appareils, envoyer une notification, mémoriser une valeur, ou tout ce qu'un flow sait faire.

Le comportement vit donc à un seul endroit, visible et versionné — le flow — et le même interrupteur peut piloter un relais aujourd'hui et une scène de dix appareils demain sans toucher au tableau.

Les contrôles naissent à l'enregistrement

On ne choisit jamais de contrôle avant d'enregistrer. Ajoutez un interrupteur, un curseur ou une carte maison à un tableau et enregistrez : chaque widget de commande, et chaque commande d'une carte maison, reçoit son propre contrôle dans la même transaction. L'inspecteur affiche la référence qu'il obtiendra, par exemple #w-0001 ou #w-0001.power pour le rôle Marche / arrêt d'une carte Lumière.

Supprimez la carte et son contrôle est libéré : supprimé si rien ne l'utilise, gardé en contrôle indépendant si un flow l'écoute encore. Pour partager un contrôle entre deux surfaces (un tableau et un panorama, par exemple), utilisez Lier à un contrôle existant… dans l'inspecteur.

Inspecteur après enregistrement : chaque commande a sa référence
Inspecteur après enregistrement : chaque commande a sa référence

Types

TypeEnvoieNotes
Interrupteur1 / 0Valeurs modifiables
CurseurUn nombre, 0–100 par défautEnvoyé au relâcher ; se branche directement sur un rapport cyclique PWM
BoutonUne valeur fixe
Saisie numériqueLe nombre saisi
Liste de choixLa valeur numérique de l'option choisieSegments jusqu'à 4 options, liste au-delà
Pas à pas (− / +)La nouvelle valeurMin, max et pas
CommandesLa valeur numérique du bouton presséOuvrir / Stop / Fermer = 1 / 0 / −1 par défaut
Couleur0xRRGGBB en entier, ou une température de blanc en K2200–6500 K par défaut

Cochez Demander une confirmation avant d'envoyer (actionneur sensible) pour les portails, serrures et alarmes. Deux appuis à moins de 250 ms sur un même contrôle sont refusés (Trop rapide). Les lecteurs voient les contrôles désactivés, et les partages publics sont en lecture seule.

Ce que reçoit le flow

Le nœud Source contrôle (palette Déclencheurs) n'a pas d'entrée et une sortie par contrôle coché. Chaque message porte :

ChampContenu
msg.payloadToujours un nombre, prêt pour Appareil (écriture)
msg.topicLa clé du contrôle, par ex. dash-1a2b3c4d.w-0001.power
msg.control.optionLa clé de l'option d'un choix ou d'une commande (heat, open…), ou #rrggbb pour une couleur
msg.control.by / via / ts_msQui a pressé, depuis quelle surface, quand

Les sources sont groupées par surface (Tableau de bord · Salon…), puis Contrôles indépendants ; un champ de recherche les filtre. Renvoyer la dernière valeur au démarrage rejoue la valeur courante après un redémarrage ou un redéploiement. Un nœud sans aucune case cochée s'enregistre en brouillon, mais le déploiement le refuse.

Nœud Source contrôle : sources groupées par tableau
Nœud Source contrôle : sources groupées par tableau

Créer le flow depuis le tableau

Un widget de commande, et chaque commande d'une carte maison, a une section Créer le flow… dans l'inspecteur : choisir un Device cible… et une Pin de sortie… (sorties numériques ou PWM uniquement), puis Créer et ouvrir le flow. PNeX crée un brouillon Contrôle — <libellé> câblé Source contrôle → Appareil (écriture) et l'ouvre dans l'éditeur de flows. Il n'est jamais déployé à votre place : relisez-le, puis déployez.

Créer le flow… depuis une carte Lumière
Créer le flow… depuis une carte Lumière

La page Contrôles

Données → Contrôles liste tous les contrôles de l'organisation : qui l'a déclaré (un tableau, des annotations, ou indépendant), son type, sa dernière valeur, et les flows qui l'écoutent. Un contrôle qu'aucun flow déployé n'écoute porte le badge Sans effet. Nouveau contrôle crée un contrôle indépendant, utile pour une valeur partagée par plusieurs surfaces. Un contrôle utilisé par un flow déployé ne peut pas être supprimé.

Page Contrôles : déclaré par, dernière valeur, écouté par
Page Contrôles : déclaré par, dernière valeur, écouté par

La garantie est inscrite dans le code : des gardes d'intégration continue font échouer le build si un composant de tableau ou d'annotation référence un jour un chemin de commande d'appareil, d'OTA ou de flash.

On this page