Patrick Schurig 325409dd3f feat(i18n): prose traduite DE/EN et référence régénérée en anglais
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>
2026-10-13 06:39:20 +02:00

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 -->