iobroker.govee-smart 2.35.2 → 2.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -9
- package/admin/i18n/de.json +16 -1
- package/admin/i18n/en.json +16 -1
- package/admin/i18n/es.json +16 -1
- package/admin/i18n/fr.json +16 -1
- package/admin/i18n/it.json +16 -1
- package/admin/i18n/nl.json +16 -1
- package/admin/i18n/pl.json +16 -1
- package/admin/i18n/pt.json +16 -1
- package/admin/i18n/ru.json +16 -1
- package/admin/i18n/uk.json +16 -1
- package/admin/i18n/zh-cn.json +16 -1
- package/build/lib/capability-mapper.js +27 -3
- package/build/lib/capability-mapper.js.map +2 -2
- package/build/lib/command-router.js +24 -25
- package/build/lib/command-router.js.map +2 -2
- package/build/lib/device-manager.js +4 -2
- package/build/lib/device-manager.js.map +2 -2
- package/build/lib/group-fanout.js +8 -6
- package/build/lib/group-fanout.js.map +2 -2
- package/build/lib/handlers/cloud-state-loader.js +1 -1
- package/build/lib/handlers/cloud-state-loader.js.map +2 -2
- package/build/lib/handlers/device-events.js +3 -2
- package/build/lib/handlers/device-events.js.map +2 -2
- package/build/lib/handlers/group-fanout-handler.js.map +1 -1
- package/build/lib/handlers/state-change-router.js +14 -6
- package/build/lib/handlers/state-change-router.js.map +2 -2
- package/build/lib/rate-limiter.js +1 -1
- package/build/lib/rate-limiter.js.map +1 -1
- package/build/lib/segment-wizard.js +34 -7
- package/build/lib/segment-wizard.js.map +2 -2
- package/build/lib/state-manager.js +37 -7
- package/build/lib/state-manager.js.map +2 -2
- package/build/lib/types.js.map +2 -2
- package/build/main.js +23 -16
- package/build/main.js.map +2 -2
- package/io-package.json +14 -14
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -103,6 +103,18 @@ This adapter's MQTT authentication and BLE-over-LAN (ptReal) protocol implementa
|
|
|
103
103
|
### **WORK IN PROGRESS**
|
|
104
104
|
-->
|
|
105
105
|
|
|
106
|
+
### 2.36.0 (2026-09-14)
|
|
107
|
+
|
|
108
|
+
- Fixed: A command the adapter could not send is no longer confirmed — no cloud connection, or a light reachable on neither channel — the datapoint used to claim the device had taken the value
|
|
109
|
+
- Fixed: Music sensitivity and auto-colour are no longer confirmed on a light or group that cannot apply them — the datapoint keeps the old value and the log says why, instead of claiming success
|
|
110
|
+
- Fixed: The segment wizard restores the brightness the strip had before it ran — it turns the strip to full while measuring, and a dimmed strip stayed bright afterwards
|
|
111
|
+
- Fixed: The segment wizard no longer stays locked for five minutes when the strip cannot be reached at start — it stops with the reason, and can be started again right away
|
|
112
|
+
- Fixed: Sensor values update again on an installation that removed its API key but kept the Govee account — they had frozen at the last reading, and the adapter took a minute to report ready
|
|
113
|
+
- Changed: A sensor reading that has not changed is no longer written again every two minutes — the datapoint keeps its timestamp until the value itself changes
|
|
114
|
+
- Changed: The three summary datapoints under `info` exist right after the start instead of appearing twenty seconds later
|
|
115
|
+
- New: Seven datapoints real devices report now carry a translated name — main light, background light, fan, fan speed, reverse airflow, pillar light and base light
|
|
116
|
+
- New: Explanations where the name alone does not say it — reverse airflow, pillar and base light, warm mist, the preset-scene dropdown and the unreachable members of a group
|
|
117
|
+
|
|
106
118
|
### 2.35.2 (2026-09-11)
|
|
107
119
|
|
|
108
120
|
- Fixed: A light that is unplugged no longer shows as switched on after a start — Govee's answer for a device it cannot reach carries the values of the last contact, and those are no longer written
|
|
@@ -139,15 +151,6 @@ This adapter's MQTT authentication and BLE-over-LAN (ptReal) protocol implementa
|
|
|
139
151
|
- New: The H7127 air purifier is confirmed by a user report — it is no longer listed as untested and no longer asks for the experimental switch at start
|
|
140
152
|
- Changed: The diagnostics report no longer repeats the privacy note the export button already shows, and says instead what only the file itself can say
|
|
141
153
|
|
|
142
|
-
### 2.33.0 (2026-09-08)
|
|
143
|
-
|
|
144
|
-
- Fixed: A light without a local API stays reachable while it reports its own state — Govee's device list lagged behind the bulb and overrode it every two minutes (reported for the H600D)
|
|
145
|
-
- Fixed: A status message the Govee cloud replays after a reconnect no longer counts as a fresh sign of life for the next half hour
|
|
146
|
-
- New: The H600D GU10 smart bulb is recognised from a user report
|
|
147
|
-
- New: 486 more Govee models start as experimental — every model the homebridge-govee project lists as of September 2026, from bulbs and strips to fans, heaters and ice makers
|
|
148
|
-
- New: An experimental model is tried by enabling "experimental device support"; a diagnostics report from the Expert tab confirms it for everyone
|
|
149
|
-
- Changed: The wiki's device list folds each device type into one block with its counts, so 602 entries stay readable
|
|
150
|
-
|
|
151
154
|
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
152
155
|
|
|
153
156
|
## Support
|
package/admin/i18n/de.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"errDeviceNotFound": "Gerät nicht gefunden: {key}",
|
|
34
34
|
"errNoSegments": "{name} hat keine Segmente — Assistent nicht anwendbar.",
|
|
35
35
|
"errDeviceOffline": "{name} ist gerade nicht erreichbar — der Assistent braucht ein antwortendes Gerät.",
|
|
36
|
+
"errCommandRefused": "{name}: der Befehl konnte nicht gesendet werden ({msg}) — der Assistent wurde beendet.",
|
|
36
37
|
"errNoWizard": "Kein Assistent aktiv. Bitte zuerst 'Start' klicken.",
|
|
37
38
|
"errNoWizardShort": "Kein Assistent aktiv",
|
|
38
39
|
"errUnknownAction": "Unbekannte Aktion: {action}",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"devicesTotal": "Geräte gesamt",
|
|
107
108
|
"devicesOnline": "Geräte online",
|
|
108
109
|
"devicesAllOnline": "Alle Geräte online",
|
|
110
|
+
"descDevicesAllOnline": "Wahr nur, solange jedes bekannte Gerät erreichbar ist — ohne Geräte bleibt der Wert falsch, damit eine leere Installation keine Vollzähligkeit meldet.",
|
|
109
111
|
"information": "Information",
|
|
110
112
|
"infoConnection": "Adapter verbunden",
|
|
111
113
|
"infoMqttConnected": "MQTT verbunden",
|
|
@@ -158,5 +160,18 @@
|
|
|
158
160
|
"descMembers": "Die Geräte, die diese App-Gruppe gemeinsam schaltet, mit ihrem Namen im Objektbaum.",
|
|
159
161
|
"descMusicAutoColor": "Ob die Lampe im Musikmodus ihre Farben selbst wählt, statt bei einer festen Farbe zu bleiben.",
|
|
160
162
|
"descDreamViewToggle": "Ob die Lampe den Bildschirmfarben folgt, die eine Govee-DreamView-Kamera aufnimmt.",
|
|
161
|
-
"descDiyScene": "Eine der Szenen, die du selbst im DIY-Editor der Govee-App gebaut hast — leer, bis du eine angelegt hast."
|
|
163
|
+
"descDiyScene": "Eine der Szenen, die du selbst im DIY-Editor der Govee-App gebaut hast — leer, bis du eine angelegt hast.",
|
|
164
|
+
"capMainLightToggle": "Hauptlicht",
|
|
165
|
+
"capBackgroundLightToggle": "Hintergrundlicht",
|
|
166
|
+
"capFanToggle": "Ventilator",
|
|
167
|
+
"capFanSpeedMode": "Lüfterstufe",
|
|
168
|
+
"capReverseAirflowToggle": "Umgekehrte Luftrichtung",
|
|
169
|
+
"capPillarLightToggle": "Säulenlicht",
|
|
170
|
+
"capBaseLightToggle": "Sockellicht",
|
|
171
|
+
"descReverseAirflowToggle": "Ob der Ventilator andersherum dreht und die Luft nach oben statt nach unten drückt — die Wintereinstellung eines Deckenventilators.",
|
|
172
|
+
"descPillarLightToggle": "Ob der aufrechte Teil der Leuchte leuchtet; der Sockel hat einen eigenen Schalter.",
|
|
173
|
+
"descBaseLightToggle": "Ob der Sockel der Leuchte leuchtet; der aufrechte Teil hat einen eigenen Schalter.",
|
|
174
|
+
"descWarmMistToggle": "Ob der Luftbefeuchter das Wasser vor dem Vernebeln erwärmt — warmer statt kühler Nebel.",
|
|
175
|
+
"descPresetScene": "Eine Auswahlliste der fertigen Szenen dieses Modells; welche es gibt, gibt Govee vor und unterscheidet sich je Modell.",
|
|
176
|
+
"descMembersUnreachable": "Welche Mitglieder der Gruppe gerade nicht erreichbar sind, benannt wie im Objektbaum — leer, solange alle antworten."
|
|
162
177
|
}
|
package/admin/i18n/en.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"errDeviceNotFound": "Device not found: {key}",
|
|
34
34
|
"errNoSegments": "{name} has no segments — wizard not applicable.",
|
|
35
35
|
"errDeviceOffline": "{name} is not reachable right now — the wizard needs the device to answer.",
|
|
36
|
+
"errCommandRefused": "{name}: the command could not be sent ({msg}) — the wizard stopped.",
|
|
36
37
|
"errNoWizard": "No wizard active. Please click 'Start' first.",
|
|
37
38
|
"errNoWizardShort": "No wizard active",
|
|
38
39
|
"errUnknownAction": "Unknown action: {action}",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"devicesTotal": "Devices total",
|
|
107
108
|
"devicesOnline": "Devices online",
|
|
108
109
|
"devicesAllOnline": "All devices online",
|
|
110
|
+
"descDevicesAllOnline": "True only while every device the adapter knows is reachable — with no devices at all it stays false, so an empty installation cannot report completeness.",
|
|
109
111
|
"information": "Information",
|
|
110
112
|
"infoConnection": "Adapter connected",
|
|
111
113
|
"infoMqttConnected": "MQTT connected",
|
|
@@ -158,5 +160,18 @@
|
|
|
158
160
|
"descMembers": "The devices this app group switches together, as they are named in the object tree.",
|
|
159
161
|
"descMusicAutoColor": "Whether the light picks its own colours in music mode instead of keeping one fixed colour.",
|
|
160
162
|
"descDreamViewToggle": "Whether the light follows the screen colours a Govee DreamView camera captures.",
|
|
161
|
-
"descDiyScene": "One of the scenes you built yourself in the DIY editor of the Govee app — empty until you have made one."
|
|
163
|
+
"descDiyScene": "One of the scenes you built yourself in the DIY editor of the Govee app — empty until you have made one.",
|
|
164
|
+
"capMainLightToggle": "Main light",
|
|
165
|
+
"capBackgroundLightToggle": "Background light",
|
|
166
|
+
"capFanToggle": "Fan",
|
|
167
|
+
"capFanSpeedMode": "Fan speed",
|
|
168
|
+
"capReverseAirflowToggle": "Reverse airflow",
|
|
169
|
+
"capPillarLightToggle": "Pillar light",
|
|
170
|
+
"capBaseLightToggle": "Base light",
|
|
171
|
+
"descReverseAirflowToggle": "Whether the fan turns the other way and pushes the air up instead of down — the winter setting of a ceiling fan.",
|
|
172
|
+
"descPillarLightToggle": "Whether the upright part of the lamp is lit; the base has a switch of its own.",
|
|
173
|
+
"descBaseLightToggle": "Whether the lamp's base is lit; the upright part has a switch of its own.",
|
|
174
|
+
"descWarmMistToggle": "Whether the humidifier heats the water before misting — warm mist instead of cool.",
|
|
175
|
+
"descPresetScene": "A dropdown over the ready-made scenes this model offers; which ones exist comes from Govee and differs per model.",
|
|
176
|
+
"descMembersUnreachable": "Which of the group's members are currently unreachable, as they are named in the object tree — empty while all of them answer."
|
|
162
177
|
}
|
package/admin/i18n/es.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"errDeviceNotFound": "Dispositivo no encontrado: {key}",
|
|
34
34
|
"errNoSegments": "{name} no tiene segmentos; el asistente no se aplica.",
|
|
35
35
|
"errDeviceOffline": "{name} no está accesible ahora mismo: el asistente necesita que el dispositivo responda.",
|
|
36
|
+
"errCommandRefused": "{name}: no se pudo enviar el comando ({msg}) — el asistente se detuvo.",
|
|
36
37
|
"errNoWizard": "Ningún asistente activo. Primero haga clic en \"Iniciar\".",
|
|
37
38
|
"errNoWizardShort": "Ningún asistente activo",
|
|
38
39
|
"errUnknownAction": "Acción desconocida: {action}",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"devicesTotal": "Dispositivos en total",
|
|
107
108
|
"devicesOnline": "Dispositivos en línea",
|
|
108
109
|
"devicesAllOnline": "Todos los dispositivos en línea",
|
|
110
|
+
"descDevicesAllOnline": "Verdadero solo mientras todos los dispositivos conocidos estén accesibles: sin dispositivos permanece falso, para que una instalación vacía no informe de completitud.",
|
|
109
111
|
"information": "Información",
|
|
110
112
|
"infoConnection": "Adaptador conectado",
|
|
111
113
|
"infoMqttConnected": "MQTT conectado",
|
|
@@ -158,5 +160,18 @@
|
|
|
158
160
|
"descMembers": "Los dispositivos que este grupo de la app conmuta juntos, con su nombre en el árbol de objetos.",
|
|
159
161
|
"descMusicAutoColor": "Si la luz elige sus propios colores en el modo música en lugar de mantener un color fijo.",
|
|
160
162
|
"descDreamViewToggle": "Si la luz sigue los colores de la pantalla que capta una cámara Govee DreamView.",
|
|
161
|
-
"descDiyScene": "Una de las escenas que creaste tú mismo en el editor DIY de la app Govee — vacío hasta que crees una."
|
|
163
|
+
"descDiyScene": "Una de las escenas que creaste tú mismo en el editor DIY de la app Govee — vacío hasta que crees una.",
|
|
164
|
+
"capMainLightToggle": "Luz principal",
|
|
165
|
+
"capBackgroundLightToggle": "Luz de fondo",
|
|
166
|
+
"capFanToggle": "Ventilador",
|
|
167
|
+
"capFanSpeedMode": "Velocidad del ventilador",
|
|
168
|
+
"capReverseAirflowToggle": "Flujo de aire inverso",
|
|
169
|
+
"capPillarLightToggle": "Luz de la columna",
|
|
170
|
+
"capBaseLightToggle": "Luz de la base",
|
|
171
|
+
"descReverseAirflowToggle": "Si el ventilador gira al revés y empuja el aire hacia arriba en lugar de hacia abajo: el ajuste de invierno de un ventilador de techo.",
|
|
172
|
+
"descPillarLightToggle": "Si la parte vertical de la lámpara está encendida; la base tiene su propio interruptor.",
|
|
173
|
+
"descBaseLightToggle": "Si la base de la lámpara está encendida; la parte vertical tiene su propio interruptor.",
|
|
174
|
+
"descWarmMistToggle": "Si el humidificador calienta el agua antes de nebulizarla: vapor cálido en lugar de frío.",
|
|
175
|
+
"descPresetScene": "Una lista desplegable con las escenas predefinidas de este modelo; cuáles existen lo define Govee y varía según el modelo.",
|
|
176
|
+
"descMembersUnreachable": "Qué miembros del grupo están ahora inaccesibles, con los nombres del árbol de objetos: vacío mientras todos respondan."
|
|
162
177
|
}
|
package/admin/i18n/fr.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"errDeviceNotFound": "Appareil introuvable : {key}",
|
|
34
34
|
"errNoSegments": "{name} n'a pas de segments – assistant non applicable.",
|
|
35
35
|
"errDeviceOffline": "{name} n'est pas joignable actuellement — l'assistant a besoin que l'appareil réponde.",
|
|
36
|
+
"errCommandRefused": "{name} : la commande n'a pas pu être envoyée ({msg}) — l'assistant s'est arrêté.",
|
|
36
37
|
"errNoWizard": "Aucun assistant actif. Veuillez d'abord cliquer sur « Démarrer ».",
|
|
37
38
|
"errNoWizardShort": "Aucun assistant actif",
|
|
38
39
|
"errUnknownAction": "Action inconnue : {action}",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"devicesTotal": "Appareils au total",
|
|
107
108
|
"devicesOnline": "Appareils en ligne",
|
|
108
109
|
"devicesAllOnline": "Tous les appareils en ligne",
|
|
110
|
+
"descDevicesAllOnline": "Vrai uniquement tant que tous les appareils connus sont joignables — sans appareil, la valeur reste fausse afin qu'une installation vide n'annonce pas l'exhaustivité.",
|
|
109
111
|
"information": "Information",
|
|
110
112
|
"infoConnection": "Adaptateur connecté",
|
|
111
113
|
"infoMqttConnected": "MQTT connecté",
|
|
@@ -158,5 +160,18 @@
|
|
|
158
160
|
"descMembers": "Les appareils que ce groupe de l'application commute ensemble, tels que nommés dans l'arbre d'objets.",
|
|
159
161
|
"descMusicAutoColor": "Si la lampe choisit elle-même ses couleurs en mode musique au lieu de garder une couleur fixe.",
|
|
160
162
|
"descDreamViewToggle": "Si la lampe suit les couleurs de l'écran captées par une caméra Govee DreamView.",
|
|
161
|
-
"descDiyScene": "Une des scènes que vous avez créées vous-même dans l'éditeur DIY de l'application Govee — vide tant que vous n'en avez pas créé."
|
|
163
|
+
"descDiyScene": "Une des scènes que vous avez créées vous-même dans l'éditeur DIY de l'application Govee — vide tant que vous n'en avez pas créé.",
|
|
164
|
+
"capMainLightToggle": "Lumière principale",
|
|
165
|
+
"capBackgroundLightToggle": "Lumière d'ambiance",
|
|
166
|
+
"capFanToggle": "Ventilateur",
|
|
167
|
+
"capFanSpeedMode": "Vitesse du ventilateur",
|
|
168
|
+
"capReverseAirflowToggle": "Flux d'air inversé",
|
|
169
|
+
"capPillarLightToggle": "Lumière de la colonne",
|
|
170
|
+
"capBaseLightToggle": "Lumière du socle",
|
|
171
|
+
"descReverseAirflowToggle": "Si le ventilateur tourne dans l'autre sens et pousse l'air vers le haut plutôt que vers le bas — le réglage hiver d'un ventilateur de plafond.",
|
|
172
|
+
"descPillarLightToggle": "Si la partie verticale du lampadaire est allumée ; le socle a son propre interrupteur.",
|
|
173
|
+
"descBaseLightToggle": "Si le socle du lampadaire est allumé ; la partie verticale a son propre interrupteur.",
|
|
174
|
+
"descWarmMistToggle": "Si l'humidificateur chauffe l'eau avant de la vaporiser — brume chaude au lieu de froide.",
|
|
175
|
+
"descPresetScene": "Une liste déroulante des scènes prêtes à l'emploi de ce modèle ; lesquelles existent dépend de Govee et varie selon le modèle.",
|
|
176
|
+
"descMembersUnreachable": "Quels membres du groupe sont actuellement injoignables, nommés comme dans l'arborescence — vide tant que tous répondent."
|
|
162
177
|
}
|
package/admin/i18n/it.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"errDeviceNotFound": "Dispositivo non trovato: {key}",
|
|
34
34
|
"errNoSegments": "{name} non ha segmenti: procedura guidata non applicabile.",
|
|
35
35
|
"errDeviceOffline": "{name} non è raggiungibile in questo momento: la procedura guidata richiede che il dispositivo risponda.",
|
|
36
|
+
"errCommandRefused": "{name}: impossibile inviare il comando ({msg}) — la procedura guidata è stata interrotta.",
|
|
36
37
|
"errNoWizard": "Nessuna procedura guidata attiva. Fare prima clic su \"Avvia\".",
|
|
37
38
|
"errNoWizardShort": "Nessuna procedura guidata attiva",
|
|
38
39
|
"errUnknownAction": "Azione sconosciuta: {action}",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"devicesTotal": "Dispositivi totali",
|
|
107
108
|
"devicesOnline": "Dispositivi online",
|
|
108
109
|
"devicesAllOnline": "Tutti i dispositivi online",
|
|
110
|
+
"descDevicesAllOnline": "Vero solo finché ogni dispositivo noto è raggiungibile — senza dispositivi resta falso, così un'installazione vuota non segnala completezza.",
|
|
109
111
|
"information": "Informazioni",
|
|
110
112
|
"infoConnection": "Adattatore connesso",
|
|
111
113
|
"infoMqttConnected": "MQTT connesso",
|
|
@@ -158,5 +160,18 @@
|
|
|
158
160
|
"descMembers": "I dispositivi che questo gruppo dell'app comanda insieme, con il nome che hanno nell'albero degli oggetti.",
|
|
159
161
|
"descMusicAutoColor": "Se la luce sceglie da sola i colori in modalità musica invece di mantenere un colore fisso.",
|
|
160
162
|
"descDreamViewToggle": "Se la luce segue i colori dello schermo ripresi da una telecamera Govee DreamView.",
|
|
161
|
-
"descDiyScene": "Una delle scene create da te nell'editor DIY dell'app Govee — vuoto finché non ne crei una."
|
|
163
|
+
"descDiyScene": "Una delle scene create da te nell'editor DIY dell'app Govee — vuoto finché non ne crei una.",
|
|
164
|
+
"capMainLightToggle": "Luce principale",
|
|
165
|
+
"capBackgroundLightToggle": "Luce di sfondo",
|
|
166
|
+
"capFanToggle": "Ventilatore",
|
|
167
|
+
"capFanSpeedMode": "Velocità della ventola",
|
|
168
|
+
"capReverseAirflowToggle": "Flusso d'aria invertito",
|
|
169
|
+
"capPillarLightToggle": "Luce della colonna",
|
|
170
|
+
"capBaseLightToggle": "Luce della base",
|
|
171
|
+
"descReverseAirflowToggle": "Se la ventola gira al contrario e spinge l'aria verso l'alto invece che verso il basso — l'impostazione invernale di un ventilatore da soffitto.",
|
|
172
|
+
"descPillarLightToggle": "Se la parte verticale della lampada è accesa; la base ha un interruttore proprio.",
|
|
173
|
+
"descBaseLightToggle": "Se la base della lampada è accesa; la parte verticale ha un interruttore proprio.",
|
|
174
|
+
"descWarmMistToggle": "Se l'umidificatore riscalda l'acqua prima di nebulizzarla — vapore caldo anziché freddo.",
|
|
175
|
+
"descPresetScene": "Un elenco a discesa delle scene predefinite di questo modello; quali esistano lo stabilisce Govee e varia per modello.",
|
|
176
|
+
"descMembersUnreachable": "Quali membri del gruppo sono attualmente irraggiungibili, con i nomi dell'albero degli oggetti — vuoto finché rispondono tutti."
|
|
162
177
|
}
|
package/admin/i18n/nl.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"errDeviceNotFound": "Apparaat niet gevonden: {key}",
|
|
34
34
|
"errNoSegments": "{name} heeft geen segmenten — wizard niet van toepassing.",
|
|
35
35
|
"errDeviceOffline": "{name} is nu niet bereikbaar — de wizard heeft een reagerend apparaat nodig.",
|
|
36
|
+
"errCommandRefused": "{name}: de opdracht kon niet worden verzonden ({msg}) — de wizard is gestopt.",
|
|
36
37
|
"errNoWizard": "Geen wizard actief. Klik eerst op 'Start'.",
|
|
37
38
|
"errNoWizardShort": "Geen wizard actief",
|
|
38
39
|
"errUnknownAction": "Onbekende actie: {action}",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"devicesTotal": "Apparaten totaal",
|
|
107
108
|
"devicesOnline": "Apparaten online",
|
|
108
109
|
"devicesAllOnline": "Alle apparaten online",
|
|
110
|
+
"descDevicesAllOnline": "Waar zolang elk bekend apparaat bereikbaar is — zonder apparaten blijft het onwaar, zodat een lege installatie geen volledigheid meldt.",
|
|
109
111
|
"information": "Informatie",
|
|
110
112
|
"infoConnection": "Adapter verbonden",
|
|
111
113
|
"infoMqttConnected": "MQTT verbonden",
|
|
@@ -158,5 +160,18 @@
|
|
|
158
160
|
"descMembers": "De apparaten die deze app-groep samen schakelt, zoals ze in de objectboom heten.",
|
|
159
161
|
"descMusicAutoColor": "Of de lamp in de muziekmodus zelf kleuren kiest in plaats van één vaste kleur te houden.",
|
|
160
162
|
"descDreamViewToggle": "Of de lamp de schermkleuren volgt die een Govee DreamView-camera opneemt.",
|
|
161
|
-
"descDiyScene": "Een van de scènes die je zelf in de DIY-editor van de Govee-app hebt gemaakt — leeg tot je er een hebt gemaakt."
|
|
163
|
+
"descDiyScene": "Een van de scènes die je zelf in de DIY-editor van de Govee-app hebt gemaakt — leeg tot je er een hebt gemaakt.",
|
|
164
|
+
"capMainLightToggle": "Hoofdlicht",
|
|
165
|
+
"capBackgroundLightToggle": "Achtergrondverlichting",
|
|
166
|
+
"capFanToggle": "Ventilator",
|
|
167
|
+
"capFanSpeedMode": "Ventilatorsnelheid",
|
|
168
|
+
"capReverseAirflowToggle": "Omgekeerde luchtstroom",
|
|
169
|
+
"capPillarLightToggle": "Zuilverlichting",
|
|
170
|
+
"capBaseLightToggle": "Voetverlichting",
|
|
171
|
+
"descReverseAirflowToggle": "Of de ventilator de andere kant op draait en de lucht omhoog in plaats van omlaag duwt — de winterstand van een plafondventilator.",
|
|
172
|
+
"descPillarLightToggle": "Of het staande deel van de lamp brandt; de voet heeft een eigen schakelaar.",
|
|
173
|
+
"descBaseLightToggle": "Of de voet van de lamp brandt; het staande deel heeft een eigen schakelaar.",
|
|
174
|
+
"descWarmMistToggle": "Of de luchtbevochtiger het water verwarmt voor het vernevelen — warme in plaats van koele nevel.",
|
|
175
|
+
"descPresetScene": "Een keuzelijst met de kant-en-klare scènes van dit model; welke er zijn bepaalt Govee en verschilt per model.",
|
|
176
|
+
"descMembersUnreachable": "Welke leden van de groep momenteel onbereikbaar zijn, zoals ze in de objectboom heten — leeg zolang ze allemaal antwoorden."
|
|
162
177
|
}
|
package/admin/i18n/pl.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"errDeviceNotFound": "Nie znaleziono urządzenia: {key}",
|
|
34
34
|
"errNoSegments": "{name} nie ma segmentów — kreator nie ma zastosowania.",
|
|
35
35
|
"errDeviceOffline": "{name} jest teraz nieosiągalne — kreator wymaga urządzenia, które odpowiada.",
|
|
36
|
+
"errCommandRefused": "{name}: nie udało się wysłać polecenia ({msg}) — kreator został zatrzymany.",
|
|
36
37
|
"errNoWizard": "Żaden kreator nie jest aktywny. Najpierw kliknij przycisk „Start”.",
|
|
37
38
|
"errNoWizardShort": "Żaden kreator nie jest aktywny",
|
|
38
39
|
"errUnknownAction": "Nieznana akcja: {action}",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"devicesTotal": "Urządzenia łącznie",
|
|
107
108
|
"devicesOnline": "Urządzenia online",
|
|
108
109
|
"devicesAllOnline": "Wszystkie urządzenia online",
|
|
110
|
+
"descDevicesAllOnline": "Prawda tylko wtedy, gdy wszystkie znane urządzenia są osiągalne — bez urządzeń pozostaje fałszem, aby pusta instalacja nie zgłaszała kompletności.",
|
|
109
111
|
"information": "Informacja",
|
|
110
112
|
"infoConnection": "Adapter połączony",
|
|
111
113
|
"infoMqttConnected": "MQTT połączony",
|
|
@@ -158,5 +160,18 @@
|
|
|
158
160
|
"descMembers": "Urządzenia przełączane razem przez tę grupę z aplikacji, pod nazwami z drzewa obiektów.",
|
|
159
161
|
"descMusicAutoColor": "Czy lampa w trybie muzycznym sama dobiera kolory, zamiast trzymać jeden stały kolor.",
|
|
160
162
|
"descDreamViewToggle": "Czy lampa podąża za kolorami ekranu rejestrowanymi przez kamerę Govee DreamView.",
|
|
161
|
-
"descDiyScene": "Jedna ze scen, które sam zbudowałeś w edytorze DIY aplikacji Govee — puste, dopóki nie utworzysz żadnej."
|
|
163
|
+
"descDiyScene": "Jedna ze scen, które sam zbudowałeś w edytorze DIY aplikacji Govee — puste, dopóki nie utworzysz żadnej.",
|
|
164
|
+
"capMainLightToggle": "Światło główne",
|
|
165
|
+
"capBackgroundLightToggle": "Podświetlenie tła",
|
|
166
|
+
"capFanToggle": "Wentylator",
|
|
167
|
+
"capFanSpeedMode": "Prędkość wentylatora",
|
|
168
|
+
"capReverseAirflowToggle": "Odwrócony przepływ powietrza",
|
|
169
|
+
"capPillarLightToggle": "Światło kolumny",
|
|
170
|
+
"capBaseLightToggle": "Światło podstawy",
|
|
171
|
+
"descReverseAirflowToggle": "Czy wentylator obraca się w drugą stronę i tłoczy powietrze w górę zamiast w dół — ustawienie zimowe wentylatora sufitowego.",
|
|
172
|
+
"descPillarLightToggle": "Czy pionowa część lampy świeci; podstawa ma własny przełącznik.",
|
|
173
|
+
"descBaseLightToggle": "Czy podstawa lampy świeci; pionowa część ma własny przełącznik.",
|
|
174
|
+
"descWarmMistToggle": "Czy nawilżacz podgrzewa wodę przed rozpyleniem — ciepła mgiełka zamiast chłodnej.",
|
|
175
|
+
"descPresetScene": "Lista rozwijana z gotowymi scenami tego modelu; które istnieją, określa Govee i różnią się zależnie od modelu.",
|
|
176
|
+
"descMembersUnreachable": "Którzy członkowie grupy są obecnie nieosiągalni, nazwani jak w drzewie obiektów — puste, dopóki wszyscy odpowiadają."
|
|
162
177
|
}
|
package/admin/i18n/pt.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"errDeviceNotFound": "Dispositivo não encontrado: {key}",
|
|
34
34
|
"errNoSegments": "{name} não tem segmentos — assistente não aplicável.",
|
|
35
35
|
"errDeviceOffline": "{name} não está acessível agora — o assistente precisa que o dispositivo responda.",
|
|
36
|
+
"errCommandRefused": "{name}: não foi possível enviar o comando ({msg}) — o assistente foi encerrado.",
|
|
36
37
|
"errNoWizard": "Nenhum assistente ativo. Clique em 'Iniciar' primeiro.",
|
|
37
38
|
"errNoWizardShort": "Nenhum assistente ativo",
|
|
38
39
|
"errUnknownAction": "Ação desconhecida: {action}",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"devicesTotal": "Dispositivos no total",
|
|
107
108
|
"devicesOnline": "Dispositivos online",
|
|
108
109
|
"devicesAllOnline": "Todos os dispositivos online",
|
|
110
|
+
"descDevicesAllOnline": "Verdadeiro apenas enquanto todos os dispositivos conhecidos estiverem acessíveis — sem dispositivos permanece falso, para que uma instalação vazia não indique completude.",
|
|
109
111
|
"information": "Informação",
|
|
110
112
|
"infoConnection": "Adaptador conectado",
|
|
111
113
|
"infoMqttConnected": "MQTT conectado",
|
|
@@ -158,5 +160,18 @@
|
|
|
158
160
|
"descMembers": "Os dispositivos que este grupo da app comuta em conjunto, com o nome que têm na árvore de objetos.",
|
|
159
161
|
"descMusicAutoColor": "Se a luz escolhe as suas próprias cores no modo música em vez de manter uma cor fixa.",
|
|
160
162
|
"descDreamViewToggle": "Se a luz segue as cores do ecrã captadas por uma câmara Govee DreamView.",
|
|
161
|
-
"descDiyScene": "Uma das cenas que criou no editor DIY da app Govee — vazio até criar uma."
|
|
163
|
+
"descDiyScene": "Uma das cenas que criou no editor DIY da app Govee — vazio até criar uma.",
|
|
164
|
+
"capMainLightToggle": "Luz principal",
|
|
165
|
+
"capBackgroundLightToggle": "Luz de fundo",
|
|
166
|
+
"capFanToggle": "Ventoinha",
|
|
167
|
+
"capFanSpeedMode": "Velocidade da ventoinha",
|
|
168
|
+
"capReverseAirflowToggle": "Fluxo de ar invertido",
|
|
169
|
+
"capPillarLightToggle": "Luz da coluna",
|
|
170
|
+
"capBaseLightToggle": "Luz da base",
|
|
171
|
+
"descReverseAirflowToggle": "Se a ventoinha gira ao contrário e empurra o ar para cima em vez de para baixo — a regulação de inverno de uma ventoinha de teto.",
|
|
172
|
+
"descPillarLightToggle": "Se a parte vertical do candeeiro está acesa; a base tem um interruptor próprio.",
|
|
173
|
+
"descBaseLightToggle": "Se a base do candeeiro está acesa; a parte vertical tem um interruptor próprio.",
|
|
174
|
+
"descWarmMistToggle": "Se o humidificador aquece a água antes de a nebulizar — névoa quente em vez de fria.",
|
|
175
|
+
"descPresetScene": "Uma lista das cenas prontas deste modelo; quais existem é definido pela Govee e varia consoante o modelo.",
|
|
176
|
+
"descMembersUnreachable": "Quais membros do grupo estão atualmente inacessíveis, com os nomes da árvore de objetos — vazio enquanto todos responderem."
|
|
162
177
|
}
|
package/admin/i18n/ru.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"errDeviceNotFound": "Устройство не найдено: {key}",
|
|
34
34
|
"errNoSegments": "У {name} нет сегментов — мастер неприменим.",
|
|
35
35
|
"errDeviceOffline": "{name} сейчас недоступно — мастеру нужно отвечающее устройство.",
|
|
36
|
+
"errCommandRefused": "{name}: команду не удалось отправить ({msg}) — мастер остановлен.",
|
|
36
37
|
"errNoWizard": "Ни один мастер не активен. Пожалуйста, сначала нажмите «Начать».",
|
|
37
38
|
"errNoWizardShort": "Ни один мастер не активен",
|
|
38
39
|
"errUnknownAction": "Неизвестное действие: {action}",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"devicesTotal": "Всего устройств",
|
|
107
108
|
"devicesOnline": "Устройств онлайн",
|
|
108
109
|
"devicesAllOnline": "Все устройства онлайн",
|
|
110
|
+
"descDevicesAllOnline": "Истинно, только пока доступны все известные устройства — без устройств остаётся ложным, чтобы пустая установка не сообщала о полноте.",
|
|
109
111
|
"information": "Информация",
|
|
110
112
|
"infoConnection": "Адаптер подключён",
|
|
111
113
|
"infoMqttConnected": "MQTT подключён",
|
|
@@ -158,5 +160,18 @@
|
|
|
158
160
|
"descMembers": "Устройства, которые эта группа приложения переключает вместе, под именами из дерева объектов.",
|
|
159
161
|
"descMusicAutoColor": "Выбирает ли лампа цвета сама в музыкальном режиме вместо одного постоянного цвета.",
|
|
160
162
|
"descDreamViewToggle": "Следует ли лампа за цветами экрана, которые снимает камера Govee DreamView.",
|
|
161
|
-
"descDiyScene": "Одна из сцен, созданных вами в DIY-редакторе приложения Govee — пусто, пока вы не создали ни одной."
|
|
163
|
+
"descDiyScene": "Одна из сцен, созданных вами в DIY-редакторе приложения Govee — пусто, пока вы не создали ни одной.",
|
|
164
|
+
"capMainLightToggle": "Основной свет",
|
|
165
|
+
"capBackgroundLightToggle": "Фоновая подсветка",
|
|
166
|
+
"capFanToggle": "Вентилятор",
|
|
167
|
+
"capFanSpeedMode": "Скорость вентилятора",
|
|
168
|
+
"capReverseAirflowToggle": "Обратный поток воздуха",
|
|
169
|
+
"capPillarLightToggle": "Свет колонны",
|
|
170
|
+
"capBaseLightToggle": "Подсветка основания",
|
|
171
|
+
"descReverseAirflowToggle": "Вращается ли вентилятор в обратную сторону и гонит воздух вверх, а не вниз — зимний режим потолочного вентилятора.",
|
|
172
|
+
"descPillarLightToggle": "Светится ли вертикальная часть светильника; у основания есть собственный выключатель.",
|
|
173
|
+
"descBaseLightToggle": "Светится ли основание светильника; у вертикальной части есть собственный выключатель.",
|
|
174
|
+
"descWarmMistToggle": "Подогревает ли увлажнитель воду перед распылением — тёплый пар вместо холодного.",
|
|
175
|
+
"descPresetScene": "Выпадающий список готовых сцен этой модели; какие именно, определяет Govee, и они различаются у разных моделей.",
|
|
176
|
+
"descMembersUnreachable": "Какие участники группы сейчас недоступны — имена как в дереве объектов; пусто, пока отвечают все."
|
|
162
177
|
}
|
package/admin/i18n/uk.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"errDeviceNotFound": "Пристрій не знайдено: {key}",
|
|
34
34
|
"errNoSegments": "{name} не має сегментів — майстер не застосовується.",
|
|
35
35
|
"errDeviceOffline": "{name} зараз недоступний — майстру потрібен пристрій, який відповідає.",
|
|
36
|
+
"errCommandRefused": "{name}: команду не вдалося надіслати ({msg}) — майстер зупинено.",
|
|
36
37
|
"errNoWizard": "Немає активних майстрів. Будь ласка, спочатку натисніть «Почати».",
|
|
37
38
|
"errNoWizardShort": "Немає активних майстрів",
|
|
38
39
|
"errUnknownAction": "Невідома дія: {action}",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"devicesTotal": "Пристроїв усього",
|
|
107
108
|
"devicesOnline": "Пристроїв онлайн",
|
|
108
109
|
"devicesAllOnline": "Усі пристрої онлайн",
|
|
110
|
+
"descDevicesAllOnline": "Істинно лише поки всі відомі пристрої доступні — без пристроїв залишається хибним, щоб порожня установка не повідомляла про повноту.",
|
|
109
111
|
"information": "Інформація",
|
|
110
112
|
"infoConnection": "Адаптер підключено",
|
|
111
113
|
"infoMqttConnected": "MQTT підключено",
|
|
@@ -158,5 +160,18 @@
|
|
|
158
160
|
"descMembers": "Пристрої, які ця група застосунку перемикає разом, під іменами з дерева об'єктів.",
|
|
159
161
|
"descMusicAutoColor": "Чи лампа сама обирає кольори в музичному режимі замість одного сталого кольору.",
|
|
160
162
|
"descDreamViewToggle": "Чи лампа повторює кольори екрана, які знімає камера Govee DreamView.",
|
|
161
|
-
"descDiyScene": "Одна зі сцен, які ви самі створили в DIY-редакторі застосунку Govee — порожньо, поки ви не створили жодної."
|
|
163
|
+
"descDiyScene": "Одна зі сцен, які ви самі створили в DIY-редакторі застосунку Govee — порожньо, поки ви не створили жодної.",
|
|
164
|
+
"capMainLightToggle": "Основне світло",
|
|
165
|
+
"capBackgroundLightToggle": "Фонове підсвічування",
|
|
166
|
+
"capFanToggle": "Вентилятор",
|
|
167
|
+
"capFanSpeedMode": "Швидкість вентилятора",
|
|
168
|
+
"capReverseAirflowToggle": "Зворотний потік повітря",
|
|
169
|
+
"capPillarLightToggle": "Світло колони",
|
|
170
|
+
"capBaseLightToggle": "Підсвічування основи",
|
|
171
|
+
"descReverseAirflowToggle": "Чи обертається вентилятор у зворотний бік і жене повітря вгору, а не вниз — зимовий режим стельового вентилятора.",
|
|
172
|
+
"descPillarLightToggle": "Чи світиться вертикальна частина світильника; основа має власний вимикач.",
|
|
173
|
+
"descBaseLightToggle": "Чи світиться основа світильника; вертикальна частина має власний вимикач.",
|
|
174
|
+
"descWarmMistToggle": "Чи підігріває зволожувач воду перед розпиленням — тепла пара замість прохолодної.",
|
|
175
|
+
"descPresetScene": "Випадний список готових сцен цієї моделі; які саме, визначає Govee, і вони різні для різних моделей.",
|
|
176
|
+
"descMembersUnreachable": "Які учасники групи зараз недоступні — назви як у дереві об'єктів; порожньо, доки відповідають усі."
|
|
162
177
|
}
|
package/admin/i18n/zh-cn.json
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"errDeviceNotFound": "未找到设备:{key}",
|
|
34
34
|
"errNoSegments": "{name} 没有段 - 向导不适用。",
|
|
35
35
|
"errDeviceOffline": "{name} 当前无法访问 — 向导需要设备能够响应。",
|
|
36
|
+
"errCommandRefused": "{name}:命令无法发送({msg})— 向导已停止。",
|
|
36
37
|
"errNoWizard": "没有激活向导。请先单击“开始”。",
|
|
37
38
|
"errNoWizardShort": "没有激活向导",
|
|
38
39
|
"errUnknownAction": "未知操作:{action}",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"devicesTotal": "设备总数",
|
|
107
108
|
"devicesOnline": "在线设备数",
|
|
108
109
|
"devicesAllOnline": "所有设备在线",
|
|
110
|
+
"descDevicesAllOnline": "仅当适配器已知的所有设备均可访问时为真——没有设备时保持为假,这样空安装不会报告完整性。",
|
|
109
111
|
"information": "信息",
|
|
110
112
|
"infoConnection": "适配器已连接",
|
|
111
113
|
"infoMqttConnected": "MQTT 已连接",
|
|
@@ -158,5 +160,18 @@
|
|
|
158
160
|
"descMembers": "该 App 分组一起控制的设备,以对象树中的名称列出。",
|
|
159
161
|
"descMusicAutoColor": "灯在音乐模式下是否自行选择颜色,而不是保持一种固定颜色。",
|
|
160
162
|
"descDreamViewToggle": "灯是否跟随 Govee DreamView 摄像头捕捉到的屏幕颜色。",
|
|
161
|
-
"descDiyScene": "你在 Govee 应用的 DIY 编辑器中自建的场景之一——在你创建之前为空。"
|
|
163
|
+
"descDiyScene": "你在 Govee 应用的 DIY 编辑器中自建的场景之一——在你创建之前为空。",
|
|
164
|
+
"capMainLightToggle": "主灯",
|
|
165
|
+
"capBackgroundLightToggle": "背景灯",
|
|
166
|
+
"capFanToggle": "风扇",
|
|
167
|
+
"capFanSpeedMode": "风速",
|
|
168
|
+
"capReverseAirflowToggle": "反向气流",
|
|
169
|
+
"capPillarLightToggle": "立柱灯",
|
|
170
|
+
"capBaseLightToggle": "底座灯",
|
|
171
|
+
"descReverseAirflowToggle": "风扇是否反向旋转,将空气向上而不是向下推送——吊扇的冬季设置。",
|
|
172
|
+
"descPillarLightToggle": "灯具的立柱部分是否点亮;底座有自己的开关。",
|
|
173
|
+
"descBaseLightToggle": "灯具底座是否点亮;立柱部分有自己的开关。",
|
|
174
|
+
"descWarmMistToggle": "加湿器是否先加热水再喷雾——温雾而非凉雾。",
|
|
175
|
+
"descPresetScene": "该型号可用的预设场景下拉列表;有哪些由 Govee 决定,各型号不同。",
|
|
176
|
+
"descMembersUnreachable": "当前哪些组成员无法访问,名称与对象树中一致——全部有响应时为空。"
|
|
162
177
|
}
|
|
@@ -768,7 +768,7 @@ function temperatureUnit(cap) {
|
|
|
768
768
|
const unitField = fields == null ? void 0 : fields.find((f) => f && f.fieldName === "unit");
|
|
769
769
|
const declared = typeof (unitField == null ? void 0 : unitField.defaultValue) === "string" ? unitField.defaultValue : void 0;
|
|
770
770
|
const onTemperature = (_b = fields == null ? void 0 : fields.find((f) => f && f.fieldName === "temperature")) == null ? void 0 : _b.unit;
|
|
771
|
-
return (_f = (_e = (_c = normalizeUnit(declared)) != null ? _c : normalizeUnit(
|
|
771
|
+
return (_f = (_e = (_c = normalizeUnit(declared)) != null ? _c : normalizeUnit(onTemperature)) != null ? _e : normalizeUnit((_d = cap.parameters) == null ? void 0 : _d.unit)) != null ? _f : "\xB0F";
|
|
772
772
|
}
|
|
773
773
|
function normalizeUnit(unit) {
|
|
774
774
|
var _a;
|
|
@@ -798,7 +798,18 @@ const CAPABILITY_NAME_KEYS = {
|
|
|
798
798
|
nightlightScene: "capNightlightScene",
|
|
799
799
|
presetScene: "capPresetScene",
|
|
800
800
|
fanSpeed: "capFanSpeed",
|
|
801
|
-
humidity: "capHumidity"
|
|
801
|
+
humidity: "capHumidity",
|
|
802
|
+
// The light zones and the fan of the combination devices — a ceiling-fan
|
|
803
|
+
// light (H1310) and a floor lamp with two lit parts (H607C). Captures show
|
|
804
|
+
// them since issue #15/#40; until 2026-09-12 they reached the tree with
|
|
805
|
+
// Govee's own wording in all eleven languages because no fixture carried them.
|
|
806
|
+
mainLightToggle: "capMainLightToggle",
|
|
807
|
+
backgroundLightToggle: "capBackgroundLightToggle",
|
|
808
|
+
fanToggle: "capFanToggle",
|
|
809
|
+
fanSpeedMode: "capFanSpeedMode",
|
|
810
|
+
reverseAirflowToggle: "capReverseAirflowToggle",
|
|
811
|
+
pillarLightToggle: "capPillarLightToggle",
|
|
812
|
+
baseLightToggle: "capBaseLightToggle"
|
|
802
813
|
};
|
|
803
814
|
const CAPABILITY_DESC_KEYS = {
|
|
804
815
|
gradientToggle: "descGradientToggle",
|
|
@@ -812,7 +823,20 @@ const CAPABILITY_DESC_KEYS = {
|
|
|
812
823
|
lackWaterEvent: "descLackOfWater",
|
|
813
824
|
iceFullEvent: "descIceBucketFull",
|
|
814
825
|
bodyAppearedEvent: "descBodyDetected",
|
|
815
|
-
dirtDetectedEvent: "descDirtDetected"
|
|
826
|
+
dirtDetectedEvent: "descDirtDetected",
|
|
827
|
+
// What the name alone does not say: which way a ceiling fan blows, which part
|
|
828
|
+
// of a two-zone lamp a switch belongs to, and that "warm mist" means the
|
|
829
|
+
// humidifier heats the water. The plain on/off lights (main, background, fan)
|
|
830
|
+
// and the speed dropdown stay without one — declared in test/self-explaining.json.
|
|
831
|
+
reverseAirflowToggle: "descReverseAirflowToggle",
|
|
832
|
+
pillarLightToggle: "descPillarLightToggle",
|
|
833
|
+
baseLightToggle: "descBaseLightToggle",
|
|
834
|
+
warmMistToggle: "descWarmMistToggle",
|
|
835
|
+
// `control.scene` reaches no fixture (no capture shows a device reporting
|
|
836
|
+
// `mode/presetScene`), so a self-explaining entry for it would be a pattern
|
|
837
|
+
// matching nothing — which the D08 gate reports in its own right. It gets the
|
|
838
|
+
// explanation instead, and the decision is made either way (audit 2026-09-12).
|
|
839
|
+
presetScene: "descPresetScene"
|
|
816
840
|
};
|
|
817
841
|
function capabilityDesc(instance) {
|
|
818
842
|
const key = CAPABILITY_DESC_KEYS[instance];
|