Skip to content
Open
Show file tree
Hide file tree
Changes from 46 commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
11cb7ed
add cloud discovery metadata
Terdious Feb 11, 2026
db22529
add local discovery metadata
Terdious Feb 11, 2026
ff5d001
Corrige les URL de l'API locale et du WebSocket pour utiliser localhost
Terdious Feb 11, 2026
ab28de0
feat: enhance Tuya device support with air conditioning and power met…
Terdious Feb 15, 2026
d9598ca
refactor: remove air conditioning model and related mappings; simplif…
Terdious Feb 15, 2026
3612b9c
feat: add local polling and scanning tests for TuyaHandler
Terdious Feb 15, 2026
7ea3468
refactor: simplifier la logique de poll local et améliorer la lisibil…
Terdious Feb 15, 2026
e2d7189
refactor: améliorer la logique de chargement des appareils Tuya et me…
Terdious Feb 15, 2026
5f2d2a5
fix: corriger la logique de pagination dans loadDevices et ajouter un…
Terdious Feb 15, 2026
ebd3dc3
refactor: améliorer la logique de mise à jour des appareils découvert…
Terdious Feb 15, 2026
a3f8359
feat: ajouter des descriptions et des limitations pour la configurati…
Terdious Feb 15, 2026
50e1122
feat: ajouter les champs Product ID et Product Key dans la configurat…
Terdious Feb 15, 2026
513e2d0
refactor: améliorer la journalisation dans le processus de scan local…
Terdious Feb 16, 2026
389d231
logger
Terdious Feb 16, 2026
36dfd91
refactor: améliorer la gestion des erreurs du socket UDP dans le scan…
Terdious Feb 16, 2026
b8e1a9f
refactor: mettre à jour la méthode de liaison des sockets pour permet…
Terdious Feb 16, 2026
8d2536f
feat: améliorer le scan local des appareils Tuya avec gestion des err…
Terdious Feb 16, 2026
a0243b6
feat: mettre à jour les descriptions de configuration Tuya pour inclu…
Terdious Feb 16, 2026
70c7d4a
feat: ajouter des messages d'information sur le protocole 3.5 et la c…
Terdious Feb 17, 2026
3fd0232
feat(tuya): enhance Tuya integration with connection status and manua…
Terdious Feb 20, 2026
8082994
Merge branch 'master' into tuya-local-baseline
Terdious Feb 20, 2026
588225e
feat(tuya): améliorer les tests pour la gestion des connexions et des…
Terdious Feb 20, 2026
924e098
Merge branch 'master' into tuya-local-baseline
Terdious Feb 20, 2026
cc0010e
feat(tuya): enhance device discovery and local polling
Terdious Feb 20, 2026
b6cb28b
feat(tuya): améliorer la gestion des informations locales des apparei…
Terdious Feb 21, 2026
52a54b2
feat(tuya): traduire les clés de produit et améliorer les messages de…
Terdious Feb 21, 2026
ae8a1d6
feat(tuya): améliorer la gestion des erreurs et des messages de débog…
Terdious Feb 21, 2026
c68075d
feat(tuya): nettoyer les messages de débogage et améliorer la gestion…
Terdious Feb 21, 2026
b2ee166
Merge branch 'master' into tuya-local-baseline
Terdious Feb 25, 2026
c5edbbc
ci: rerun
Terdious Feb 25, 2026
c65e264
feat(tuya): ajouter le support de l'UID du compte d'application Tuya,…
Terdious Feb 21, 2026
1f07038
feat(tuya): améliorer la gestion de la configuration Tuya en ajoutant…
Terdious Feb 21, 2026
021176d
feat(tuya): optimiser la récupération des paramètres Tuya en utilisan…
Terdious Feb 21, 2026
01700bb
feat(tuya): finalize v2 local baseline ux and local discovery updates
Terdious Feb 26, 2026
3c0de0c
test(tuya): avoid unhandled rejection warning in local poll timeout
Terdious Feb 26, 2026
92a913f
refactor(tuya): normalize booleans and stabilize base conversions
Terdious Feb 27, 2026
906e124
Merge branch 'master' into tuya-local-baseline
Terdious Feb 27, 2026
1d1fda4
feat(tuya): add local protocol 3.5 support with newgen api
Terdious Feb 26, 2026
e3b95f0
fix(tuya): resolve prefer-const in local scan parser
Terdious Feb 26, 2026
74b081e
chore(tuya): remove obsolete protocol 3.5 unsupported i18n keys
Terdious Feb 26, 2026
50ac347
codecov: rerun
Terdious Feb 27, 2026
0a9f835
feat(tuya): add mapping core for cloud/local smart socket support
Terdious Feb 27, 2026
f82cc73
fix: prettier
Terdious Feb 27, 2026
29b7723
test(tuya): cover local scan branch when parsers fail
Terdious Feb 27, 2026
27152bc
test(tuya): improve mapping and poll branch coverage
Terdious Feb 27, 2026
9f47e37
fix(tuya): harden setup state updates and fix disconnect log typo
Terdious Feb 27, 2026
7b4946d
fix(tuya): harden mapping-core poll and specification extraction
Terdious Feb 27, 2026
6061e25
fix(tuya): harden init reconnect flag and thing model parsing
Terdious Feb 27, 2026
5edc4bd
fix(tuya): avoid stale state reads in setup save flow
Terdious Feb 27, 2026
63cebed
test(tuya): prefer await style in local poll timeout test
Terdious Feb 27, 2026
d25fa4b
fix(tuya): align mapping-core with baseline/protocol hardening
Terdious Feb 27, 2026
b0220b4
fix(tuya): harden mapping core for thing model fallback and scaled va…
Terdious Feb 28, 2026
49a2478
test(tuya): cover generic mapping core guards
Terdious Feb 28, 2026
a543353
style(tuya): format properties code extraction
Terdious Feb 28, 2026
069ce9c
style(tuya): format device mapping test
Terdious Feb 28, 2026
1387002
fix(tuya): avoid stale device state in local poll
Terdious Feb 28, 2026
6c22c66
fix(tuya): align feature code parsing and test labels
Terdious Feb 28, 2026
9f73733
test(tuya): improve poll and local scan regression coverage
Terdious Feb 28, 2026
ae8a1ff
fix(tuya): move setup side effects to componentDidMount
Terdious Feb 28, 2026
c9d2704
fix(tuya): surface setup variable fetch failures
Terdious Feb 28, 2026
bdb4f90
fix(tuya): harden type detection and poll handling
Terdious Feb 28, 2026
74cd7cd
style(tuya): format poll regression test
Terdious Feb 28, 2026
5624f85
fix(tuya): harden baseline setup and cloud loading
Terdious Mar 1, 2026
a860eb0
fix(tuya): harden poll readers and regression tests
Terdious Mar 1, 2026
3aba881
fix(tuya): improve setup alerts and baseline test isolation
Terdious Mar 1, 2026
c321e50
fix(tuya): sanitize local timeouts and persist local-only devices
Terdious Mar 1, 2026
73ac5f0
fix(tuya): harden mapping normalization and poll fallback
Terdious Mar 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 62 additions & 18 deletions front/src/config/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -1212,23 +1212,54 @@
"updates": "Nach Updates suchen",
"editButton": "Bearbeiten",
"noDeviceFound": "Du hast noch keine Tuya-Geräte hinzugefügt.",
"featuresLabel": "Funktionen"
"featuresLabel": "Funktionen",
"idLabel": "Geräte-ID",
"localKeyLabel": "Lokaler Schlüssel",
"protocolVersionLabel": "Protokollversion",
"ipAddressLabel": "IP-Adresse",
"ipModeLocal": "Lokal",
"ipModeCloud": "Cloud",
"localInfoHelp": "Mit der Cloud/Lokal-Schaltfläche wählst du den Kommunikationsmodus. Im lokalen Modus kannst du die lokale IP bearbeiten. Im Cloud-Modus wird die Cloud-IP nur angezeigt (schreibgeschützt).",
"localPollButton": "Lokales DPS abfragen",
"localPollInProgress": "Lokaler Poll läuft... Protokoll {{protocol}}.",
"localPollHelp": "Wenn du das Protokoll kennst, wähle es aus und klicke zum Prüfen. Wenn nicht, klicke direkt für einen vollständigen Scan (dauert länger).",
"localPollRequired": "Lokaler Modus ist aktiv und lokale Einstellungen wurden geändert. Bitte \"Lokales DPS abfragen\" erfolgreich ausführen, bevor du speicherst. Wenn der lokale Modus nicht funktioniert, schalte zurück in den Cloud-Modus.",
"localPollSuccess": "Lokaler Poll OK.",
"localPollError": "Lokaler Poll fehlgeschlagen:",
"productIdLabel": "Produkt-ID",
"productKeyLabel": "Produktschlüssel"
},
"discover": {
"title": "In deinem Tuya-Cloud-Account erkannte Geräte",
"description": "Tuya-Geräte werden automatisch erkannt. Deine Tuya-Geräte müssen zuerst zu deinem Tuya-Cloud-Account hinzugefügt werden.",
"localDiscoveryInfo": "<strong class=\"h5 d-block\">Cloud-Scan</strong>Aktualisiert die Cloud-Liste. Stelle sicher, dass deine Geräte in Tuya als <strong>steuerbar</strong> gesetzt sind, sonst bleiben sie <strong>schreibgeschützt</strong>. Die Testphase ist auf <strong>10 steuerbare Geräte</strong> begrenzt; zusätzliche Geräte liefern ggf. nur <strong>Statusrückmeldungen</strong>.<br /><br /><strong class=\"h5 d-block\">Lokaler Auto-Scan</strong>Startet einen Scan in deinem lokalen Netzwerk (UDP-Broadcast, gleiches Subnetz wie Gladys). Wenn ein Gerät nicht gefunden wird, trage die <strong>lokale IP</strong> und die <strong>Protokollversion</strong> ein (oder lasse es leer, wenn unbekannt) und nutze \"<strong>Lokales DPS abfragen</strong>\", um die lokale Kommunikation zu prüfen.<br /><br />Nutze <strong>Sichern</strong>, um ein Gerät zu erstellen, und <strong>Aktualisieren</strong>, um Änderungen zu übernehmen oder auf lokalen Modus umzuschalten.",
"scanCloudInProgress": "Scan läuft... Cloud-Geräte werden abgerufen. Das kann etwas dauern.",
"scanLocalInProgressConnected": "Scan läuft... Lokale Informationen der Geräte werden abgerufen. Das kann etwas dauern.",
"scanLocalInProgressDisconnected": "Scan läuft... Lokale Geräte werden abgerufen. Das kann etwas dauern.",
"scanCloud": "Cloud-Scan",
"localScanAuto": "Lokaler Auto-Scan",
"udpScanError": "Fehler beim lokalen UDP-Scan.",
"udpScanPortInUse": "Auf den Ports {{ports}} kann nicht gelauscht werden (bereits belegt). Beende Dienste auf diesen Ports und starte den Scan erneut.",
"error": "Fehler beim Entdecken von Tuya-Geräten. Bitte überprüfe deine Login-Daten auf der Einrichtungsseite.",
"noDeviceFound": "Kein Tuya-Gerät entdeckt.",
"scan": "Scannen"
},
"setup": {
"title": "Tuya-Konfiguration",
"description": "Du kannst Gladys mit deinem Tuya-Cloud-Account verbinden, um die zugehörigen Geräte zu steuern.",
"descriptionCreateAccount": "Du musst einen Account bei <a href=\"https://www.tuya.com/\" target=\"_blank\" rel= \"noopener noreferrer\">Tuya</a> erstellen.",
"descriptionCreateProject": "Danach musst du ein \"Cloud-Projekt\" in deinem Tuya-Account erstellen.",
"descriptionGetKeys": "Du erhältst Zugang zum Zugangsschlüssel und zum Geheimschlüssel.",
"descriptionGetAppAccountUid": "Um deine \"App Account UID\" zu erhalten, musst du zum Abschnitt \"Geräte\" -> \"Tuya App-Account verknüpfen\" gehen und einen Anwendungsaccount hinzufügen.",
"descriptionGetAppAccountUid2": "Sobald das Hinzufügen abgeschlossen ist, findest du deine \"App Account UID\" in der UID-Spalte.",
"cloudTitle": "<strong>Cloud</strong><br />",
"description": "Du kannst Gladys mit deinem Tuya-Cloud-Account verbinden, um die zugehörigen Geräte zu steuern. Die Dokumentation findest du im linken Menü oder <a href=\"https://gladysassistant.com/de/docs/integrations/tuya\" target=\"_blank\" rel=\"noopener noreferrer\">hier</a>.",
"descriptionCreateAccount": "Du musst einen Account bei <a href=\"https://www.tuya.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Tuya</a> erstellen (<a href=\"https://auth.tuya.com/register\" target=\"_blank\" rel=\"noopener noreferrer\">Registrieren</a> / <a href=\"https://auth.tuya.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Anmelden</a>).",
"descriptionCreateProject": "Danach musst du ein \"Cloud-Projekt\" in deinem Tuya-Account erstellen (Konsole: <a href=\"https://platform.tuya.com/cloud\" target=\"_blank\" rel=\"noopener noreferrer\">Tuya IoT Platform</a>).",
"descriptionGetKeys": "Du erhältst Zugriff auf beide Schlüssel: <strong>Client ID</strong> und <strong>Client Secret</strong>.",
"descriptionGetAppAccountUid": "Um deine <strong>App Account UID</strong> zu erhalten, gehe zu \"Geräte\" -> \"Tuya App-Account verknüpfen\" und füge einen App-Account hinzu.",
"descriptionGetAppAccountUid2": "Sobald die Verknüpfung abgeschlossen ist, steht deine <strong>App Account UID</strong> in der UID-Spalte.",
"descriptionTrial": "Tuya-Cloud-Projekte haben eine <strong>Testphase</strong>: denke daran, sie regelmäßig zu <strong>verlängern</strong>, um Unterbrechungen zu vermeiden.",
"descriptionCloudLimit": "Hinweis: Die Tuya-Cloud-Testversion erlaubt bis zu <strong>10 steuerbare Geräte</strong>. Weitere Geräte können <strong>schreibgeschützt</strong> bleiben, bis du ein Upgrade durchführst.",
"descriptionControllable": "Einige Geräte sind standardmäßig <strong>schreibgeschützt</strong>. Öffne in der Tuya IoT Platform <strong>Device Permission</strong> und klicke auf <strong>Change</strong>, um sie steuerbar zu machen.",
"localTitle": "<br /><strong>Lokal</strong><br />",
"descriptionLocalMode": "Der lokale Modus kann nach der Cloud-Konfiguration genutzt werden: Trage lokale IP und Protokollversion pro Gerät ein, um lokal abzufragen. Wenn die Geräte im selben Netzwerk wie der Gladys-Host sind, werden IP-Erkennung und Protokollversion automatisch erkannt. So kannst du die Cloud-Verlängerung umgehen, aber für das Hinzufügen neuer Geräte in der Tuya-App bleibt die Cloud nötig.",
"descriptionLocalKeepsApp": "<strong>Lokale Steuerung</strong> deaktiviert die Steuerung über die Tuya/Smart-Life-App nicht.",
"descriptionCameraLimit": "<strong>Kameras</strong>: Video-Streaming wird in Gladys derzeit nicht unterstützt.",
"endpoints": {
"china": "China",
"westernAmerica": "Westamerika",
Expand All @@ -1238,17 +1269,30 @@
"india": "Indien"
},
"endpoint": "Endpunkt",
"accessKey": "Access Key",
"accessKeyPlaceholder": "Tuya Zugangsschlüssel eingeben",
"secretKey": "Secret Key",
"secretKeyPlaceholder": "Tuya Geheimschlüssel eingeben",
"appAccountId": "App Account UID",
"appAccountIdPlaceholder": "Tuya App UID eingeben",
"saveLabel": "Konfiguration sichern",
"accessKey": "Client ID",
"accessKeyPlaceholder": "Tuya Client ID eingeben",
"secretKey": "Client Secret",
"secretKeyPlaceholder": "Tuya Client Secret eingeben",
"appAccountId": "App Account User ID",
"appAccountIdPlaceholder": "Tuya App User ID eingeben",
"appUsername": "Smart Life Benutzername (optional)",
"appUsernamePlaceholder": "Smart Life Konto E-Mail oder Telefon",
"saveLabel": "Konfiguration sichern und verbinden",
"error": "Beim Sichern der Konfiguration ist ein Fehler aufgetreten.",
"connecting": "Konfiguration gesichert. Die Verbindung mit deinem Tuya-Cloud-Account wird jetzt hergestellt …",
"connected": "Du hast dich erfolgreich mit dem Tuya-Cloud-Account verbunden!",
"connectionError": "Fehler beim Verbinden. Bitte überprüfe deine Konfiguration."
"connectionError": "Fehler beim Verbinden. Bitte überprüfe deine Konfiguration.",
"errorInvalidEndpoint": "Der Endpunkt scheint falsch zu sein. Bitte überprüfe den Endpunkt.",
"errorInvalidClientId": "Die Client ID scheint ungültig zu sein. Bitte überprüfe die Client ID.",
"errorInvalidClientSecret": "Das Client Secret scheint ungültig zu sein. Bitte überprüfe das Client Secret.",
"errorInvalidAppAccountUid": "Die App-Account-UID scheint ungültig zu sein. Bitte überprüfe die App-Account-UID.",
"notConfigured": "Tuya-Cloud-Verbindungsdaten fehlen oder sind unvollständig.",
"connectedAfterSave": "Du hast dich erfolgreich mit dem Tuya-Cloud-Account verbunden!",
"connectedStatus": "Mit dem Tuya-Cloud-Account verbunden.",
"disconnectSuccess": "Vom Tuya-Cloud-Account erfolgreich getrennt! Der lokale Dienst funktioniert weiterhin (bei einem Neustart von Gladys wird keine automatische Verbindung hergestellt).",
"disconnectedUnexpected": "Du wurdest von der Tuya-Cloud getrennt! Bitte überprüfe deine Zugangsdaten und den Status deines <a href=\"https://eu.platform.tuya.com/cloud/products?productType=all\" target=\"_blank\" rel=\"noopener noreferrer\">Tuya IoT Core</a>-Testabos.",
"disconnectedManual": "Von der Tuya-Cloud getrennt! Der lokale Dienst funktioniert weiterhin (bei einem Neustart von Gladys wird keine automatische Verbindung hergestellt).",
"disconnectedMissingConfig": "Von der Tuya-Cloud getrennt.",
"disconnectLabel": "Von der Cloud trennen"
},
"error": {
"defaultError": "Beim Sichern des Geräts ist ein Fehler aufgetreten.",
Expand Down Expand Up @@ -3362,7 +3406,6 @@
"category": {
"button": {
"click": {
"unknown": "{{value}} (unbekannter Wert)",
"1": "Einfacher Klick",
"2": "Doppelter Klick",
"3": "Langer Klick (drücken)",
Expand Down Expand Up @@ -3446,7 +3489,8 @@
"81": "Halten Minus",
"82": "Loslassen Plus",
"83": "Loslassen Mitte",
"84": "Loslassen Minus"
"84": "Loslassen Minus",
"unknown": "{{value}} (unbekannter Wert)"
}
},
"heater": {
Expand Down
Loading
Loading