Skip to content
Open
Show file tree
Hide file tree
Changes from 55 commits
Commits
Show all changes
64 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
ef397f6
fix(tuya): harden init reconnect flag and thing model parsing
Terdious Feb 27, 2026
5027985
fix(tuya): avoid stale state reads in setup save flow
Terdious Feb 27, 2026
fc44ad0
chore(front): apply prettier formatting on tuya setup tab
Terdious Feb 27, 2026
a4e0056
chore(tuya): run prettier
Terdious Feb 27, 2026
82213fb
fix(tuya): use cached feature state when deciding poll updates
Terdious Feb 27, 2026
c1f16d9
test(tuya): prefer await style in local poll timeout test
Terdious Feb 27, 2026
68cd2fc
fix(tuya): move setup side effects to componentDidMount
Terdious Feb 28, 2026
74bc4a2
fix(tuya): surface setup variable fetch failures
Terdious Feb 28, 2026
3b64702
fix(tuya): avoid invalid paragraph nesting in setup tab
Terdious Feb 28, 2026
28aa300
fix(tuya): restore setup markup after nesting fix
Terdious Feb 28, 2026
0b6768d
fix(tuya): harden baseline setup and cloud loading
Terdious Mar 1, 2026
3b6c51f
fix(tuya): improve setup alerts and baseline test isolation
Terdious Mar 1, 2026
39dd957
Merge branch 'master' into tuya-local-baseline
Terdious Mar 9, 2026
34dbac2
Merge branch 'master' into tuya-local-baseline
Terdious Mar 11, 2026
824fa8b
Merge branch 'master' into tuya-local-baseline
Terdious Mar 12, 2026
0370ae2
Merge branch 'master' into tuya-local-baseline
Terdious Apr 4, 2026
0c975e5
Remise en ordre i18n
Terdious Apr 4, 2026
c9b1edb
fix(tuya): address code review findings from CodeRabbit
Terdious Apr 4, 2026
ac461ab
fix(tuya): move structural HTML out of i18n keys into JSX
Terdious Apr 5, 2026
e274716
fix(tuya): exit early in init() when service is not configured
Terdious Apr 5, 2026
8abc778
refactor(tuya): move reconnect logic from index.js to lib/tuya.reconn…
Terdious Apr 5, 2026
46fabba
fix: prettier + eslint
Terdious Apr 5, 2026
c8ecab0
Merge branch 'master' into tuya-local-baseline
Terdious Apr 5, 2026
219f019
fix(tuya): address maintainer review feedback
Terdious Apr 5, 2026
0a73eb2
fix(tuya): fix typo in disconnect log and JSDoc in discoverDevices
Terdious Apr 5, 2026
487f6f6
fix(tuya): slugify selectors in convertDevice and convertFeature
Terdious Apr 5, 2026
19ff616
refactor(tuya): move loadDevices/reconnect logic into init and discon…
Terdious Apr 6, 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
79 changes: 63 additions & 16 deletions front/src/config/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -1220,6 +1220,7 @@
"alreadyCreatedButton": "Bereits erstellt",
"deleteButton": "Löschen",
"unmanagedModelButton": "Modell nicht verwaltet oder verfügbar",
"localModeLimitInfo": "Der lokale Modus wird noch verbessert. Bei manchen Geräten können Befehle oder Status-Updates weiterhin über die Tuya-Cloud laufen, auch wenn der lokale Modus aktiviert ist.",
"status": {
"notConnected": "Gladys konnte keine Verbindung zum Tuya-Cloud-Account herstellen. Bitte gehe zur ",
"setupPageLink": "Tuya-Einrichtungsseite.",
Expand All @@ -1231,23 +1232,56 @@
"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",
"protocol35OptionUnsupported": "3.5 (Nicht unterstützt)",
"protocolVersionRequired": "Protokoll 3.5 wird noch nicht unterstützt, aber bald verfügbar sein.",
"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 @@ -1257,17 +1291,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
Loading
Loading