Apparence
Format de profil
Un profil d'add-on est un fichier JSON. Il décrit entièrement un appareil : comment le nomos system Controller l'atteint, ce qu'il peut lui envoyer, quelles valeurs reviennent et ce qui en apparaît dans l'app, les automatisations et la Quick Config. Cette page décrit le format ; la façon de le modifier dans l'Éditeur de profils est décrite sur la page correspondante. Les profils avec une connexion propre via TCP, UDP, HTTP ou série sont décrits en détail sous CommandServer, des exemples complets pour HTTP, TCP (Modbus), UDP, MQTT et KNX sous Exemples de profils.
INFO
Chaque profil de la liste des profils peut être enregistré en .json avec l'icône de téléchargement. Un profil existant proche de votre appareil est le meilleur point de départ.
Aperçu de la structure
json
{
"version": "1.0",
"author": "Muster Integration GmbH",
"description": "Wallbox XY",
"manufacturer": "XY",
"model": "Wallbox",
"platform": "XY",
"category": "Energy",
"type": "EV Charger",
"className": "XY_WALLBOX",
"engineType": "",
"structure": { "config": {}, "commands": {}, "mappings": {} },
"polling": {},
"properties": {},
"propertiesMeta": {},
"mappings": {},
"mappingsMeta": {},
"actionTemplates": [],
"triggerTemplates": [],
"hooks": {},
"cameras": [],
"components": {}
}| Bloc | Contenu |
|---|---|
| Données de base | Nom, fabricant, catégorie, type, type de moteur |
structure | Uniquement CommandServer : connexion, commandes et motifs de réponse, voir CommandServer |
polling | Uniquement CommandServer : commandes envoyées régulièrement |
properties, propertiesMeta | Actions : ce qui peut être envoyé à l'appareil, et leur libellé |
mappings, mappingsMeta | Retours : les valeurs que l'appareil signale, et leur libellé |
actionTemplates, triggerTemplates | Modèles pour les automatisations et la Quick Config |
hooks | Valeurs que l'appareil peut envoyer lui-même par HTTP |
cameras | Images de caméra de l'appareil |
components | Sous-profils : plusieurs appareils via une seule connexion |
Point important pour la compréhension : structure décrit uniquement ce qui passe sur la ligne. L'app, les automatisations et les valeurs enregistrées travaillent exclusivement avec properties et mappings. Un profil CommandServer a donc besoin des deux : la commande dans structure.commands et l'action dans properties, le motif de réponse dans structure.mappings et le retour dans mappings.
Données de base
| Champ | Obligatoire | Signification |
|---|---|---|
version | oui | Numéro de version, par ex. 1.0. Les appareils existants ne reprennent les modifications qu'avec une version supérieure, voir Modifier un profil |
description | oui | Nom dans la liste des profils et proposition pour le nom de l'appareil |
author, manufacturer, model | oui | Indications sur l'auteur et l'appareil |
platform | oui | Origine, le plus souvent le fabricant. Pour KNX KNX, pour MQTT MQTT |
category, type | oui | Voir Catégorie et type |
engineType | oui | Voir Type de moteur |
className | CommandServer, KNX | Pour CommandServer, le nom de la connexion (uniquement A–Z, 0–9, _, -, 28 caractères au maximum), pour KNX toujours KNX, pour MQTT et BUS vide |
supportUrl | non | Page d'aide sur l'appareil, apparaît sous forme de bouton d'information |
compatibility | non | Couverture de l'appareil en pourcentage |
nomosCertified | non | true uniquement pour les profils vérifiés par nomos system |
minVersion | non | Version minimale du contrôleur ; les contrôleurs plus anciens refusent la création d'un appareil |
tags | non | Marqueurs, voir plus bas |
hideProperties, hideMappings | non | Définis par l'Éditeur de profils lui-même, voir Modèles |
Tags avec effet : uihidden (appareil absent de l'app), voicehidden (non transmis aux assistants vocaux ni au pont Matter). Un champ name n'a pas sa place dans le profil principal : il remplacerait le nom que l'utilisateur attribue à la création.
Un point dans le nom du profil devient _ à l'import, car au chargement, un point sépare le profil et le sous-profil.
Catégorie et type
La catégorie et le type déterminent l'icône et l'élément de commande dans l'app, ainsi que l'apparition de l'appareil via le pont Matter et sous quelle forme. Utilisez les valeurs que propose l'Éditeur de profils, par ex. :
| Catégorie | Types |
|---|---|
Lighting | Lightbulb |
Switches | Switch, Trigger |
Thermostats | Thermostat, Thermostat Variation TA |
Window Coverings | Window Covering, Window Covering Up/Down |
Sunblinds | Sunblind |
Sensors | Temperature Sensor, Humidity Sensor, Contact Sensor, Motion Sensor, CO2 Sensor, Smoke Sensor, Light Sensor, Rain Sensor, Wind Sensor, Weather Station, Binary Sensor, … |
Energy | Inverter, Smart Meter, EV Charger, Heat Pump, Heating Controller, Pellet Boiler, Power Sensor |
Fans, Doors, Garage Door, Valves | Fan, Door, Garage Door Opener, Valve |
Security Systems | Lock, Alarm, Camera, Security System |
Choisissez le type selon la valeur la plus importante de l'appareil.
Type de moteur
engineType | Connexion | Particularités |
|---|---|---|
"" (CommandServer) | Connexion propre via TCP, UDP, HTTP, HTTPS ou série | structure et polling, voir CommandServer |
MQTT | Via le broker du skill MQTT | Topics par action et par retour, voir MQTT |
KNX | Via l'interface KNX | Profil sans adresses, adresses de groupe à la création, voir KNX |
BUS | Les valeurs arrivent uniquement via des webhooks | Pour les appareils qui signalent d'eux-mêmes par HTTP |
ZWAVE | Via le skill Z-Wave | Créé via la page Z-Wave |
Chaque appareil issu d'un profil CommandServer, MQTT ou BUS compte dans le nombre d'add-ons autorisé par votre licence.
Actions et retours
Les properties (actions) sont tout ce qui peut être envoyé à l'appareil. Les mappings (retours) sont les valeurs que l'appareil signale. Un nom peut figurer dans les deux, par exemple state pour commuter et comme état signalé ; ce n'est qu'alors que l'app affiche un interrupteur qui reflète l'état réel.
json
"properties": {
"state": {"method": "set", "property": "ENA", "datatype": "bool"},
"switchon": {"method": "set", "property": "ENA", "value": 1, "datatype": "bool", "uihidden": true},
"switchoff": {"method": "set", "property": "ENA", "value": 0, "datatype": "bool", "uihidden": true}
},
"mappings": {
"state": {"method": "get", "property": "ENABLE_USER", "datatype": "bool", "defaultValue": false},
"reachable": {"method": "get", "property": "REACHABLE", "datatype": "bool", "defaultValue": false}
}Champs
| Champ | Dans | Signification |
|---|---|---|
method | les deux | Actions : command (envoyer une commande), set (définir une propriété), alias (rediriger vers une autre action). Retours : get |
command | actions | Nom de la commande avec method: "command" |
property | les deux | Avec set : nom de la propriété. Pour les retours : nom de la valeur signalée, pour CommandServer le nom d'un motif de réponse, pour KNX toujours value |
datatype | les deux | Voir Types de données |
value | actions | Valeur fixe, voir Valeur fixe |
defaultValue | les deux | Actions : valeur utilisée si aucune n'est transmise. Retours : valeur initiale jusqu'au premier signalement |
valueList | les deux | Valeurs de choix, voir Listes de valeurs |
min, max, internalMin, internalMax | les deux | Voir Échelle des valeurs |
unit | les deux | Voir Unités |
stepValue | les deux | Pas des curseurs (et non step) |
uihidden | les deux | Pas de ligne propre dans l'app |
process | retours | Voir Traitement |
customFormat | retours | Voir Affichage |
simulateFeedback | actions | true : la valeur envoyée est aussitôt considérée comme signalée. Pour les appareils sans retour |
prefix, suffix | actions | Placés avec une virgule avant ou après la valeur (prefix,valeur) |
sizeInBit | les deux | KNX : taille du point de données. Avec 1, true/false sont envoyés comme 1/0 |
filterDPT | les deux | KNX : types de points de données proposés lors de l'attribution de l'adresse de groupe |
mqtt, mqttValue, mqttPayload, mqttScale | les deux | MQTT, voir MQTT |
Pour CommandServer, {"method": "set", "property": "ENA"} donne la commande SETENA, {"method": "command", "command": "ON"} la commande ON. Les deux doivent figurer dans structure.commands.
Types de données
datatype | Signification |
|---|---|
bool | Oui/non. Sont considérés comme « arrêt » 0, false, off, aus, offline, close, closed, error, warning (majuscules et minuscules indifférentes), tout le reste comme « marche ». Un appareil qui signale open est donc « marche » |
int, float | Nombre entier ou nombre décimal (point comme séparateur décimal) |
string | Texte |
null | Action sans valeur, par ex. un bouton. Une valeur transmise est ignorée |
trigger | Action qui est seulement déclenchée, par exemple l'arrêt d'un store |
Noms standard
L'app reconnaît les valeurs à leur nom et affiche l'élément de commande adapté. Utilisez exactement ces noms pour ces valeurs :
| Nom | Valeur | Type de données |
|---|---|---|
state | Marche/arrêt | bool |
level | Luminosité 0–100 | int |
color-temperature | Température de couleur en mireds | int |
position | Position d'un store 0–100 | int |
stop | Arrêter le store | trigger |
openclose | Ouvrir/fermer, obligatoire pour les portes de garage | bool |
opened | Porte ou portail ouvert | bool |
temperature, setpoint | Température réelle et température de consigne | float |
hvacmode | Mode de fonctionnement | int ou string |
isheating, heatingpower | Chauffe en ce moment, puissance de chauffe en % | bool, int |
humidity, co2, pressure, noise | Valeurs mesurées | Nombre |
battery | Niveau de batterie en % | int |
reachable | Joignabilité | bool |
power | Puissance | float |
pv_power, grid, battery_power, battery_state, e_day, e_total | Énergie : puissance PV, réseau, stockage, production du jour et totale. grid du point de vue de la maison : injection positive, soutirage négatif | Nombre |
Les autres valeurs peuvent porter leurs propres noms (minuscules, chiffres, _, -) ; l'app les affiche comme ligne de texte. Pour le nom, l'Éditeur de profils propose tous les noms connus.
state, switchon et switchoff
Lorsque l'app commute un appareil, le contrôleur n'envoie pas state, mais switchon ou switchoff. Les automatisations utilisent en revanche state lui-même. Un appareil commutable a donc besoin des trois actions : state avec le type de données bool et switchon/switchoff avec la même commande et la valeur fixe 1 ou 0, toutes deux avec uihidden. Dans propertiesMeta, une entrée regroupe les trois :
json
"propertiesMeta": {
"state": {"text": "State", "properties": ["state", "switchon", "switchoff"]}
}Valeur fixe
value sur une action est la valeur qu'elle envoie si aucune n'est transmise. Si une valeur est transmise, par exemple depuis l'app, c'est elle qui l'emporte, sauf avec "datatype": "null" : dans ce cas, value est toujours envoyée. Dans les automatisations, c'est en revanche toujours la valeur fixe du profil qui l'emporte. Pour les boutons au contenu fixe (appeler une scène, appuyer sur une touche), utilisez donc "datatype": "null" et value.
Listes de valeurs
json
"valueList": [
{"text": "Off", "value": "0"},
{"text": "Low", "value": "1"},
{"text": "High", "value": "2"}
]Pour une action, la liste est aussi une liste d'autorisation : une valeur qui n'y figure pas est refusée. Les automatisations n'affichent le choix que si la même liste figure aussi dans le modèle ; répétez-la à cet endroit.
Échelle des valeurs
internalMin/internalMax sont la plage de valeurs de l'appareil, min/max la plage dans nomos (app, automatisations). Le contrôleur convertit de façon linéaire, dans les deux sens. Exemple : la borne de recharge attend le courant de charge en mA (6000–32000), l'app affiche des A (6–32) :
json
"amperelimit": {"method": "set", "property": "CURR", "datatype": "int", "unit": "A",
"min": 6, "max": 32, "internalMin": 6000, "internalMax": 32000}WARNING
La mise à l'échelle s'applique dès que max est défini. Les limites manquantes valent min 0, max 100, internalMin 0, internalMax 100. Un "max": 3000 sans internalMin/internalMax convertit donc une valeur d'appareil de 0–100 en 0–3000. Définissez soit les quatre limites, soit aucune.
- Le résultat est arrondi à des nombres entiers. Une conversion de W en kW avec des décimales n'est donc pas possible via la mise à l'échelle ; pour CommandServer, utilisez un format (
{%/1000.00}, voir Filtres de format) ou indiquez la valeur dans l'unité de l'appareil. - Les valeurs envoyées sont limitées à
min/max. - Une plage inversée est possible, par ex.
"internalMin": 100, "internalMax": 0pour un store qui signale 0 % comme fermé.
Unités
unit est soit une catégorie que l'app affiche et convertit pour chaque utilisateur (temperature, percent, luminescence, voltage, current, electric, energy, co2, angle, noise, pressure, currency, bigmetric, smallmetric), soit une unité fixe comme W, kW, kWh, Hz, m³/h, qui est affichée telle quelle.
Pour color-temperature : dans nomos, la valeur est toujours en mireds. Si l'appareil utilise des kelvins, indiquez "internalUnit": "kelvin", la plage en kelvins en commençant par le froid ("internalMin": 6500, "internalMax": 2700) et, comme min/max, les valeurs en mireds (154/370).
Traitement
process sur un retour traite la valeur après sa réception, notamment : invert (inverser le signe), wattHoursToKilowattHours, openCloseToBoolean (des mots comme open/closed en oui/non), calculateGridPrice, calculatePhotovoltaicsPrice, calculateWaterPrice (valeur × prix issu de la variable système GRID_PRICE, PV_PRICE ou WATER_PRICE). Les déclencheurs des automatisations comparent la valeur avant ce traitement.
Affichage
customFormat définit comment l'app affiche une valeur. La clé format est une expression JsonLogic qui calcule la valeur affichée ; chaque autre clé est une couleur qui s'applique lorsque son expression est vraie.
json
"grid": {"method": "get", "property": "GRID", "datatype": "float", "unit": "W",
"customFormat": {
"format": {"Math.abs": {"Math.round": {"var": "value"}}},
"red-minus": {"<": [{"var": "value"}, 0]},
"green-plus": {">": [{"var": "value"}, 0]}
}}Pour format, il existe en plus Math.round, Math.abs et les autres fonctions Math, toFixed1, toFixed2, toFixed3 ainsi que CustomFormatter.toHHMM et CustomFormatter.toHHMMSS (secondes affichées comme heure). Couleurs : green, red, blue, orange, purple, seules comme couleur de texte ou avec -plus, -minus, -circle, -square comme point devant la valeur.
Libellés et groupes
propertiesMeta et mappingsMeta donnent à chaque action ou retour son libellé :
json
"mappingsMeta": {
"power": {"text": "Power", "group": "Vehicle charging", "properties": ["power"]}
}text: libellé. L'utilisateur peut le renommer pour chaque appareil.group: section sous laquelle l'app affiche la valeur. Uniquement pour les appareils avec beaucoup de valeurs ; sinon, à omettre. Les sections apparaissent dans l'ordre du profil.properties: les entrées que cette ligne regroupe, par ex.state,switchonetswitchoff. Pour KNX, chaque entrée depropertiesMetaet demappingsMetadevient un champ pour une adresse de groupe.
Traduction
Les libellés, les groupes et les textes des listes de valeurs et des modèles sont traduits lorsqu'ils correspondent exactement à un terme que nomos connaît, par exemple State, Brightness, Power, Temperature, Reachable, Turn On, Is Turned On, Off, Low, Medium, High. Tout autre texte apparaît dans toutes les langues tel qu'il figure dans le profil. Rédigez donc ces textes dans la langue de l'installation, ou utilisez les termes standard anglais que propose l'Éditeur de profils.
Modèles
Les modèles sont les entrées que proposent les automatisations et la Quick Config.
json
"actionTemplates": [
{"templateid": "switchon", "mapping": "switchon", "text": "Turn On", "icon": "toggle-on"},
{"templateid": "level", "mapping": "level", "text": "Brightness", "icon": "sun-o"}
],
"triggerTemplates": [
{"templateid": "state.on", "mapping": "state", "text": "Is Turned On", "value": "1", "icon": "toggle-on"}
]| Champ | Signification |
|---|---|
templateid | Identifiant unique ; il est utilisé dans les automatisations enregistrées, ne le modifiez donc plus par la suite |
mapping | L'action (pour actionTemplates) ou le retour (pour triggerTemplates) auquel le modèle se rapporte. S'il n'existe pas, le modèle est ignoré |
text, textsuffix | Libellé et complément |
icon | Nom d'une icône Font Awesome sans fa-, par ex. toggle-on, bolt, thermometer |
value | Valeur fixe ; l'automatisation n'affiche alors aucun champ de saisie |
valueList | Choix dans l'automatisation ; copie de la liste de l'action ou du retour |
placeholder | Texte d'exemple dans le champ de saisie vide d'une action avec texte |
hideInQuickConfig | true : pas dans la Quick Config, mais dans les automatisations |
Avec hideProperties: true ou hideMappings: true, les automatisations proposent uniquement les modèles au lieu de toutes les actions ou de tous les retours. L'Éditeur de profils définit les deux lui-même à l'enregistrement : true dès qu'il existe au moins un modèle.
Interrogations
Uniquement CommandServer. Chaque entrée envoie une commande de structure.commands à intervalle fixe, et une fois immédiatement au démarrage :
json
"polling": {
"Status": {"interval": 30, "editableInterval": true, "command": "STATUS"}
}interval: intervalle en secondes.editableInterval: true: l'intervalle est demandé à la création de l'appareil (pré-rempli avecinterval).valueeteditableValue: valeur facultative envoyée avec la commande, et si elle est demandée à la création.
Les sous-profils ne peuvent pas interroger ; les interrogations appartiennent au profil principal.
Webhooks
Avec les webhooks, un appareil signale lui-même des valeurs au lieu d'être interrogé, par ex. un bouton-poussoir qui appelle une adresse à chaque appui. Dans le profil, vous indiquez quels retours y sont autorisés ; chaque entrée a besoin d'un retour du même nom :
json
"hooks": {"action": {"enabled": true}, "battery": {"enabled": true}},
"mappings": {
"action": {"method": "get", "property": "ACTION", "datatype": "int"},
"battery": {"method": "get", "property": "BATTERY", "datatype": "int", "unit": "percent"}
}À la création de l'appareil, le contrôleur indique l'adresse que l'appareil doit appeler. Elle a la forme http://<IP du contrôleur>/api/v1/hook/<ID de l'appareil> ; les valeurs figurent comme paramètres dans l'adresse (GET) ou dans le corps (POST, en formulaire ou en JSON) :
http://192.168.1.10/api/v1/hook/C12?action=1&battery=98Le contrôleur ne reprend que les paramètres autorisés dans hooks et répond par 200 si au moins une valeur a été reprise, sinon par 204.
DANGER
Les webhooks n'ont pas d'authentification. Tout appareil du réseau local qui connaît l'adresse peut définir les valeurs autorisées. Via l'accès à distance, l'adresse est bloquée. N'autorisez donc que les retours qu'un appareil doit réellement envoyer, et ne déclenchez avec eux aucune automatisation liée à la sécurité, par exemple l'ouverture d'une porte.
Caméras
json
"cameras": [
{"type": "mjpeg", "url": "http://%SERVERIP%/mjpegstream.cgi?usr=%USERNAME%&pwd=%PASSWORD%"}
]type : snapshot (image unique, par défaut), mjpeg, rtsp ou otherhttp. Dans l'URL, les espaces réservés %NAME% sont remplacés par les valeurs de la communication. À la création de l'appareil, une caméra est créée pour chaque entrée. Si le nombre maximal de flux vidéo est atteint avec rtsp ou otherhttp, la caméra est ignorée sans message.
Sous-profils
json
"components": {
"out1": {"name": "Ausgang 1", "category": "Switches", "type": "Switch",
"properties": {}, "propertiesMeta": {}, "mappings": {}, "mappingsMeta": {}}
}À la création de l'appareil, chaque clé devient un appareil distinct nommé « Nom de l'appareil Ausgang 1 ». Tous partagent la connexion du profil principal ; structure, polling et cameras n'existent que dans le profil principal. Un sous-profil reprend du profil principal les données de base manquantes (version, fabricant, catégorie, type, type de moteur). Ne modifiez plus la clé d'un sous-profil lorsque des appareils l'utilisent.
MQTT
Les profils MQTT utilisent le broker configuré dans le skill MQTT ; un profil ne peut pas choisir son propre broker. À la création de l'appareil, vous saisissez un MQTT Topic, qui figure dans le profil sous la forme %mqttTopic%.
json
"properties": {
"switchon": {"method": "command", "command": "power", "value": 1,
"mqtt": "cmnd/%mqttTopic%/POWER", "datatype": "null", "uihidden": true},
"level": {"method": "command", "command": "brightness",
"mqtt": "cmnd/%mqttTopic%/Dimmer", "datatype": "int", "unit": "percent"}
},
"mappings": {
"level": {"method": "get", "property": "dimmer", "mqtt": "stat/%mqttTopic%/RESULT",
"mqttValue": "Dimmer", "datatype": "int", "unit": "percent"},
"reachable": {"method": "get", "property": "reachable", "mqtt": "tele/%mqttTopic%/LWT",
"mqttValue": "", "datatype": "bool", "defaultValue": true}
}| Champ | Signification |
|---|---|
mqtt | Topic (sujet). Pour les retours, + et # sont autorisés comme jokers |
command | Actions : nom de la commande. Les actions avec le même command doivent avoir le même topic, comme switchon et switchoff |
mqttPayload | Actions : charge utile avec \# comme place de la valeur, par ex. {"brightness":\#}. Sans mqttPayload, la valeur est envoyée seule |
mqttValue | Retours : la partie d'une charge utile JSON qui constitue la valeur. Avec un point, un chemin (ENERGY.Power), sans point le premier champ de ce nom, pour un tableau une position. Vide : toute la charge utile |
mqttScale | Retours : ajouté à la valeur comme unité, mais sans conversion. Utile uniquement avec "unit": "energy" (kW devient W) |
- L'envoi se fait avec QoS 0 et sans retain.
%mqttTopic%est remplacé dansmqtt,commandetproperty, mais pas dansmqttPayload.- Sans retour
reachable, l'appareil est toujours considéré comme joignable. Avec le topic LWT de l'appareil (Online/Offline), la joignabilité est correcte.
Des modèles MQTT prêts à l'emploi et un guide Node-RED pour connecter n'importe quel appareil sont décrits sur la page Modèles MQTT (en allemand) de la bibliothèque d'add-ons.
KNX
Un profil KNX ne contient aucune adresse. Il définit les valeurs d'un appareil et leur taille sur le bus ; vous attribuez les adresses de groupe à la création de l'appareil. Créer un appareil ouvre pour cela la boîte de dialogue du skill KNX avec le profil.
json
"className": "KNX", "engineType": "KNX", "platform": "KNX",
"properties": {
"state": {"method": "set", "property": "value", "datatype": "bool", "sizeInBit": 1, "filterDPT": ["1.001"]},
"switchon": {"method": "set", "property": "value", "value": 1, "datatype": "bool", "sizeInBit": 1, "uihidden": true},
"switchoff": {"method": "set", "property": "value", "value": 0, "datatype": "bool", "sizeInBit": 1, "uihidden": true}
},
"propertiesMeta": {"state": {"text": "State", "properties": ["state", "switchon", "switchoff"]}},
"mappings": {
"state": {"method": "get", "property": "value", "datatype": "bool", "sizeInBit": 1, "filterDPT": ["1.001"]}
},
"mappingsMeta": {"state": {"text": "State", "properties": ["state"]}}classNameetplatformvalent toujoursKNX,propertyvaut toujoursvalue.- Chaque entrée de
propertiesMetadevient un champ pour l'adresse de groupe de commande, chaque entrée demappingsMetaun champ pour l'adresse d'état. La clé doit elle-même être le nom d'une action ou d'un retour. L'adresse destatevaut aussi pourswitchonetswitchoff. sizeInBitdoit correspondre au type de point de données (1 bit pour la commutation, 8 bits pour les pourcentages et les niveaux, 16 bits pour les températures) ;filterDPTrestreint le choix lors de l'attribution. L'unité provient du type de point de données de l'adresse de groupe.- Une valeur sans adresse de groupe ne fait rien et n'apparaît pas dans l'app.
- Un retour
reachablen'est pas nécessaire ; la joignabilité suit la connexion KNX.
Le skill KNX fournit déjà de nombreux types d'appareils (lumière, variateur, store, thermostat, capteurs). Un profil propre est utile pour les appareils qui n'y figurent pas. Des indications sur les adresses de groupe et les types de points de données figurent sur la page Modèles KNX (en allemand) de la bibliothèque d'add-ons.
Erreurs fréquentes
- Les valeurs restent vides : pour CommandServer, le retour manque dans
mappings, ou sonpropertyne correspond pas au nom du motif de réponse dansstructure.mappings. - L'interrupteur revient en arrière : il n'y a pas de retour
state, ou l'appareil ne signale pas son état. - L'app ne commute pas :
switchon/switchoffmanquent ; l'app n'envoie jamaisstateelle-même. - Nombres mal mis à l'échelle :
maxsansinternalMin/internalMax(voir Échelle des valeurs). - Une automatisation ne propose pas une valeur : il existe des modèles, mais aucun pour cette valeur (voir Modèles).
- Appareil toujours joignable : pour CommandServer,
CONNECTEVENT/DISCONNECTEVENTmanquent, pour MQTT le retourreachable(voir Joignabilité). - Un deuxième profil
…_2: il n'apparaît que si vous choisissez En copie pour un profil modifié dans l'Éditeur de profils. Sinon, un nouveau téléchargement ou import remplace le profil existant (voir Mises à jour depuis la bibliothèque en ligne).