82 pages .de.md et 82 .en.md. La volumétrie explique la forme : 95 % du volume est GÉNÉRÉ (74 013 mots contre 3 506 rédigés, mesuré sur 107 pages). On ne traduisait donc pas 77 500 mots — on traduit la prose, et le vocabulaire des générateurs fait le reste. Prose traduite à la main : accueil, installation (4), fonctionnalités (4), tarifs, référence, dépannage, FAQ, intégrations (2), api/index, et les 6 fiches appareils qui portent une vraie prose + compatibilite.md. Les blocs générés ne sont JAMAIS recopiés dans une traduction : le script de pose les reprend verbatim du fichier français via des placeholders, pour qu'une traduction ne puisse pas désynchroniser un bloc généré. Les 49 fiches légères n'ont rien à traduire : leur tagline vient d'amont et est DÉJÀ en anglais (« Connects nymea to powerfox. »). Constat, pas renoncement. Localisation ≠ traduction, et tarifs.md en est l'exemple à connaître : la version FR parle de Tempo et du signal RTE, la DE de §14a EnWG et de SMARD, l'EN des deux. Ce ne sont pas des traductions l'une de l'autre, et c'est volontaire — les signaux tarifaires sont nationaux. Aucune des deux n'est annoncée comme livrée : les deux sont Roadmap, et les pages le disent. Référence régénérée : en-têtes et libellés en anglais (Field/Type/Notes, Supported models, Settings, Read-only, Brand / Model…). Conséquence assumée et signalée : les pages FR en ligne changent aussi. README.md (il était VIDE) : la règle du 95 % généré en tête, la frontière de décision du multi-langue avec sa mesure, pourquoi SCAFFOLD existe, et le piège --strict/navigation.instant. TODO : multi-langue clos, et trois points ouverts qui en restent — les tagline vivent dans les meta.json de 5 autres dépôts (forme à ajouter : tagline_de / tagline_en), les stubs traduits restent des stubs (la dette éditoriale a triplé en surface, pas en fond), api/types.md n'a pas besoin de variante. Le P1 openmeteo est corrigé sur constat : il EST dans PORTING_STATUS depuis, et une ligne commentée contradictoire y traîne encore. Vérifié : mkdocs build --strict vert sur les trois langues, 322 pages HTML, contenu traduit relu dans le HTML produit, et les deux générateurs rendent « Doc à jour » en --check. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
274 lines
6.6 KiB
Markdown
274 lines
6.6 KiB
Markdown
# Rules
|
|
|
|
<!-- BEGIN GENERATED: __api_Rules__ -->
|
|
## Methods
|
|
|
|
### Rules.AddRule
|
|
|
|
<span class="badge perm-configure">CONFIGURE-RULES</span>
|
|
|
|
Add a rule. You can describe rules by one or many EventDesciptors and a StateEvaluator. Note that only one of either eventDescriptor or eventDescriptorList may be passed at a time. A rule can be created but left disabled, meaning it won't actually be executed until set to enabled. If not given, enabled defaults to true. A rule can have a list of actions and exitActions. It must have at least one Action. For state based rules, actions will be executed when the system enters a state matching the stateDescriptor. The exitActions will be executed when the system leaves the described state again. For event based rules, actions will be executed when a matching event happens and if the stateEvaluator matches the system's state. ExitActions for such rules will be executed when a matching event happens and the stateEvaluator is not matching the system's state. A rule marked as executable can be executed via the API using Rules.ExecuteRule, that means, its actions will be executed regardless of the eventDescriptor and stateEvaluators.
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `actions` | [RuleAction](../types.md#ruleaction)[] | |
|
|
| `name` | `String` | |
|
|
| `enabled` | `Bool` | optional |
|
|
| `eventDescriptors` | [EventDescriptor](../types.md#eventdescriptor)[] | optional |
|
|
| `executable` | `Bool` | optional |
|
|
| `exitActions` | [RuleAction](../types.md#ruleaction)[] | optional |
|
|
| `stateEvaluator` | [StateEvaluator](../types.md#stateevaluator) | optional |
|
|
| `timeDescriptor` | [TimeDescriptor](../types.md#timedescriptor) | optional |
|
|
|
|
**Returns:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleId` | `Uuid` | optional |
|
|
| `ruleError` | [RuleError](../types.md#ruleerror) | |
|
|
|
|
---
|
|
|
|
### Rules.DisableRule
|
|
|
|
<span class="badge perm-configure">CONFIGURE-RULES</span>
|
|
|
|
Disable a rule. The rule won't be triggered by it's events or state changes while it is disabled. If successful, the notification "Rule.RuleConfigurationChanged" will be emitted.
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleId` | `Uuid` | |
|
|
|
|
**Returns:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleError` | [RuleError](../types.md#ruleerror) | |
|
|
|
|
---
|
|
|
|
### Rules.EditRule
|
|
|
|
<span class="badge perm-configure">CONFIGURE-RULES</span>
|
|
|
|
Edit the parameters of a rule. The configuration of the rule with the given ruleId will be replaced with the new given configuration. In ordert to enable or disable a Rule, please use the methods "Rules.EnableRule" and "Rules.DisableRule". If successful, the notification "Rule.RuleConfigurationChanged" will be emitted.
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `actions` | [RuleAction](../types.md#ruleaction)[] | |
|
|
| `name` | `String` | |
|
|
| `enabled` | `Bool` | optional |
|
|
| `eventDescriptors` | [EventDescriptor](../types.md#eventdescriptor)[] | optional |
|
|
| `executable` | `Bool` | optional |
|
|
| `exitActions` | [RuleAction](../types.md#ruleaction)[] | optional |
|
|
| `stateEvaluator` | [StateEvaluator](../types.md#stateevaluator) | optional |
|
|
| `timeDescriptor` | [TimeDescriptor](../types.md#timedescriptor) | optional |
|
|
| `ruleId` | `Uuid` | |
|
|
|
|
**Returns:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `rule` | [Rule](../types.md#rule) | optional |
|
|
| `ruleError` | [RuleError](../types.md#ruleerror) | |
|
|
|
|
---
|
|
|
|
### Rules.EnableRule
|
|
|
|
<span class="badge perm-configure">CONFIGURE-RULES</span>
|
|
|
|
Enabled a rule that has previously been disabled.If successful, the notification "Rule.RuleConfigurationChanged" will be emitted.
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleId` | `Uuid` | |
|
|
|
|
**Returns:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleError` | [RuleError](../types.md#ruleerror) | |
|
|
|
|
---
|
|
|
|
### Rules.ExecuteActions
|
|
|
|
<span class="badge perm-control">EXECUTE</span>
|
|
|
|
Execute the action list of the rule with the given ruleId.
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleId` | `Uuid` | |
|
|
|
|
**Returns:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleError` | [RuleError](../types.md#ruleerror) | |
|
|
|
|
---
|
|
|
|
### Rules.ExecuteExitActions
|
|
|
|
<span class="badge perm-control">EXECUTE</span>
|
|
|
|
Execute the exit action list of the rule with the given ruleId.
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleId` | `Uuid` | |
|
|
|
|
**Returns:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleError` | [RuleError](../types.md#ruleerror) | |
|
|
|
|
---
|
|
|
|
### Rules.FindRules
|
|
|
|
<span class="badge perm-control">EXECUTE</span>
|
|
|
|
Find a list of rules containing any of the given parameters.
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `thingId` | `Uuid` | |
|
|
|
|
**Returns:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleIds` | `Uuid`[] | |
|
|
|
|
---
|
|
|
|
### Rules.GetRuleDetails
|
|
|
|
<span class="badge perm-control">EXECUTE</span>
|
|
|
|
Get details for the rule identified by ruleId
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleId` | `Uuid` | |
|
|
|
|
**Returns:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `rule` | [Rule](../types.md#rule) | optional |
|
|
| `ruleError` | [RuleError](../types.md#ruleerror) | |
|
|
|
|
---
|
|
|
|
### Rules.GetRules
|
|
|
|
<span class="badge perm-control">EXECUTE</span>
|
|
|
|
Get the descriptions of all configured rules. If you need more information about a specific rule use the method Rules.GetRuleDetails.
|
|
|
|
**Parameters:**
|
|
|
|
_No parameters._
|
|
|
|
**Returns:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleDescriptions` | [RuleDescription](../types.md#ruledescription)[] | |
|
|
|
|
---
|
|
|
|
### Rules.RemoveRule
|
|
|
|
<span class="badge perm-configure">CONFIGURE-RULES</span>
|
|
|
|
Remove a rule
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleId` | `Uuid` | |
|
|
|
|
**Returns:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleError` | [RuleError](../types.md#ruleerror) | |
|
|
|
|
---
|
|
|
|
## Notifications
|
|
|
|
### Rules.RuleActiveChanged
|
|
|
|
Emitted whenever the active state of a Rule changed.
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `active` | `Bool` | |
|
|
| `ruleId` | `Uuid` | |
|
|
|
|
---
|
|
|
|
### Rules.RuleAdded
|
|
|
|
Emitted whenever a Rule was added.
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `rule` | [Rule](../types.md#rule) | |
|
|
|
|
---
|
|
|
|
### Rules.RuleConfigurationChanged
|
|
|
|
Emitted whenever the configuration of a Rule changed.
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `rule` | [Rule](../types.md#rule) | |
|
|
|
|
---
|
|
|
|
### Rules.RuleRemoved
|
|
|
|
Emitted whenever a Rule was removed.
|
|
|
|
**Parameters:**
|
|
|
|
| Field | Type | Notes |
|
|
| --- | --- | --- |
|
|
| `ruleId` | `Uuid` | |
|
|
|
|
---
|
|
|
|
<!-- END GENERATED -->
|