Externe Integration - Tuya

Das kam mir bekannt vor… :innocent:

Du hattest mir angekündigt, dass mein Spender Folgendes anzeigen sollte:
Dein F14-W sollte dann Folgendes anzeigen:
• Ausgeben — eine Taste, die eine Portion gibt (verwendbar in einer Szene,
zum Beispiel jeden Tag um 8:00 Uhr)
• Letzte ausgegebene Menge
• Langsame Ausgabe
• Anzeige
• Batterie
Ich glaube, du hast meine Rückmeldung nicht gesehen.
Der Spender zeigt nicht alles an, was er sollte, nur die Ausgabetaste.

Für das, was du mich gefragt hast, habe ich das gefunden.

[2026-08-05T18:08:07.095Z] [INFO] [tuya] [Tuya][poll][local] device=bf15bc151aba2c

Hallo!

Ich habe ein Problem mit der Aktion ‹ Klingel klingelt ›.

Die Aktion wird angezeigt, wird erkannt, aber die Szene wird nicht ausgelöst…

Trotzdem hat es funktioniert!

Nichts Besonderes in den Logs. Ich habe das Gefühl, dass es eher auf der Core-Seite liegt…

[2026-09-03T16:26:54.376Z] [INFO] [tuya] [Tuya][push] device=bf8a5bf8acc4540a41rere lokaler Push veröffentlicht 1 Änderung(en)
[2026-09-03T16:26:54.414Z] [INFO] [tuya] [Tuya][push] device=bf8a5bf8acc4540a41rere lokaler Push veröffentlicht 1 Änderung(en)
[2026-09-03T16:26:54.520Z] [INFO] [tuya] [Tuya][push] device=bf8a5bf8acc4540a41rere lokaler Push veröffentlicht 1 Änderung(en)
[2026-09-03T16:26:54.718Z] [INFO] [tuya] [Tuya][push] device=bf8a5bf8acc4540a41rere lokaler Push veröffentlicht 1 Änderung(en)
[2026-09-03T16:26:55.913Z] [INFO] [tuya] [Tuya][media] doorbell_pic-Ereignis ausgelöst (device=ext:ext-terdious-gladys-tuya:device:bf0e59548489fcb4ea62of)
[2026-09-03T16:26:57.110Z] [INFO] [tuya] [Tuya][media] doorbell_pic-Snapshot veröffentlicht (device=ext:ext-terdious-gladys-tuya:device:bf0e59548489fcb4ea62of)

Bearbeitung:

2026-09-03T18:26:54+0200 <error> device.poll.js:30 (DeviceManager.poll) Es gab einen Fehler beim Abfragen des Geräts production-solaire-bf8a5bf8acc4540a41rere
2026-09-03T18:26:54+0200 <error> device.poll.js:31 (DeviceManager.poll) ExternalIntegrationUnavailableError: EXTERNAL_INTEGRATION_COMMAND_TIMEOUT
    at Timeout._onTimeout (/src/server/lib/external-integration/externalIntegration.sendCommand.js:32:14)
    at listOnTimeout (node:internal/timers:685:17)
    at processTimers (node:internal/timers:618:7)
2026-09-03T18:26:55+0200 <warn> scene.executeActions.js:47 (executeAction) ExternalIntegrationUnavailableError: Kein Tuya-Snapshot verfügbar (er aktualisiert sich bei einem Klingeln oder einer Bewegung)
    at ExternalIntegration.handleCommandResult (/src/server/lib/external-integration/externalIntegration.handleCommandResult.js:29:7)
    at WebSocket.<anonymous> (/src/server/api/websockets/index.js:161:45)
    at WebSocket.emit (node:events:514:28)
    at Receiver.receiverOnMessage (/src/server/node_modules/ws/lib/websocket.js:807:20)
    at Receiver.emit (node:events:514:28)
    at Receiver.dataMessage (/src/server/node_modules/ws/lib/receiver.js:448:14)
    at Receiver.getData (/src/server/node_modules/ws/lib/receiver.js:377:17)
    at Receiver.startLoop (/src/server/node_modules/ws/lib/receiver.js:158:22)
    at Receiver._write (/src/server/node_modules/ws/lib/receiver.js:94:10)
    at writeOrBuffer (node:internal/streams/writable:574:12)
    at _write (node:internal/streams/writable:503:10)
    at Receiver.Writable.write (node:internal/streams/writable:512:10)
    at Socket.socketOnData (/src/server/node_modules/ws/lib/websocket.js:882:35)
    at Socket.emit (node:events:514:28)
    at addChunk (node:internal/streams/readable:567:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:518:3)
    at Socket.Readable.push (node:internal/streams/readable:398:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23)
2026-09-03T18:26:55+0200 <warn> scene.executeActions.js:47 (executeAction) ExternalIntegrationUnavailableError: Kein Tuya-Snapshot verfügbar (er aktualisiert sich bei einem Klingeln oder einer Bewegung)
    at ExternalIntegration.handleCommandResult (/src/server/lib/external-integration/externalIntegration.handleCommandResult.js:29:7)
    at WebSocket.<anonymous> (/src/server/api/websockets/index.js:161:45)
    at WebSocket.emit (node:events:514:28)
    at Receiver.receiverOnMessage (/src/server/node_modules/ws/lib/websocket.js:807:20)
    at Receiver.emit (node:events:514:28)
    at Receiver.dataMessage (/src/server/node_modules/ws/lib/receiver.js:448:14)
    at Receiver.getData (/src/server/node_modules/ws/lib/receiver.js:377:17)
    at Receiver.startLoop (/src/server/node_modules/ws/lib/receiver.js:158:22)
    at Receiver._write (/src/server/node_modules/ws/lib/receiver.js:94:10)
    at writeOrBuffer (node:internal/streams/writable:574:12)
    at _write (node:internal/streams/writable:503:10)
    at Receiver.Writable.write (node:internal/streams/writable:512:10)
    at Socket.socketOnData (/src/server/node_modules/ws/lib/websocket.js:882:35)
    at Socket.emit (node:events:514:28)
    at addChunk (node:internal/streams/readable:567:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:518:3)
    at Socket.Readable.push (node:internal/streams/readable:398:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23)
2026-09-03T18:26:55+0200 <warn> scene.executeActions.js:47 (executeAction) ExternalIntegrationUnavailableError: Kein Tuya-Snapshot verfügbar (er aktualisiert sich bei einem Klingeln oder einer Bewegung)
    at ExternalIntegration.handleCommandResult (/src/server/lib/external-integration/externalIntegration.handleCommandResult.js:29:7)
    at WebSocket.<anonymous> (/src/server/api/websockets/index.js:161:45)
    at WebSocket.emit (node:events:514:28)
    at Receiver.receiverOnMessage (/src/server/node_modules/ws/lib/websocket.js:807:20)
    at Receiver.emit (node:events:514:28)
    at Receiver.dataMessage (/src/server/node_modules/ws/lib/receiver.js:448:14)
    at Receiver.getData (/src/server/node_modules/ws/lib/receiver.js:377:17)
    at Receiver.startLoop (/src/server/node_modules/ws/lib/receiver.js:158:22)
    at Receiver._write (/src/server/node_modules/ws/lib/receiver.js:94:10)
    at writeOrBuffer (node:internal/streams/writable:574:12)
    at _write (node:internal/streams/writable:503:10)
    at Receiver.Writable.write (node:internal/streams/writable:512:10)
    at Socket.socketOnData (/src/server/node_modules/ws/lib/websocket.js:882:35)
    at Socket.emit (node:events:514:28)
    at addChunk (node:internal/streams/readable:567:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:518:3)
    at Socket.Readable.push (node:internal/streams/readable:398:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23)

Also ja, in den Logs steht, dass ich dreimal den Snapshot sende und dass er nicht existiert… Oder noch nicht?

Bearbeitung 2: Ich bin ein Idiot… Ich habe die externe Telegram-Integration konfiguriert und das wurde in der Szene nicht geändert, die also die Nachricht über einen nicht existierenden Weg/Stimme sendete…

Hallo @elfedagger, entschuldige für die Verzögerung.
Tatsächlich habe ich deine vorherige Rückmeldung nicht gesehen.

Dein Gerät stellt wahrscheinlich nicht dieselben Tuya-Codes bereit wie das Modell, auf dem ich basiert habe. Ich hatte gehofft, dass es besser funktioniert, entschuldige.

Die Version 1.13.1 ist heute Morgen erschienen (aktualisiere sie in etwa einer Stunde aus dem Store), aber sie wird keine zusätzlichen Funktionen hinzufügen. Damit ich die Zuordnung für dein Modell korrigieren kann, benötige ich zwei Logzeilen der Integration, nach einem Update und einem Scan in „Entdeckung“:
Die Zeile, die mit [Tuya][discovery] « F14-W » beginnt (sie zeigt features=1 und die Liste UNMANAGED=[…] der Codes, die ich noch nicht verarbeite);
Die vollständige Zeile [Tuya][poll][local] device=… DPS snapshot: … (die du gesendet hast, ist nach der ID abgeschnitten).

Sende sie ohne den lokalen Schlüssel oder deine IP, falls sie daneben stehen. Damit versuche ich, eine korrigierte Version so schnell wie möglich zu veröffentlichen.

Hallo @GBoulvin,

Oh Mist!! Entschuldige, also bin ich von dem Chaos überrascht, Claude versucht etwas, aber ich bin mir nicht sicher, ob das hilft… ich leite seine Nachricht weiter :sweat_smile:

Danke für die Logs, sie sagen alles, und nein, es liegt nicht am Core.
Die Szene wird tatsächlich ausgelöst (dein Screenshot « Klingel: vor einigen Sekunden » bestätigt das). Was schiefgeht, sind deine drei Aktionen « Bild senden »: Die Integration zog die Klingel, bevor das Herunterladen des Fotos fertig war (1,2 Sekunden Unterschied in deinen Logs). Die Szene forderte also das Bild zu früh an. Früher hast du tatsächlich das Foto der vorherigen Klingelung ohne es zu sehen erhalten; das Update von heute Morgen hat den Container neu gestartet, den Cache geleert, und der Fehler wurde sichtbar.
Korrigiert in der Version 1.13.2 (verfügbar im Store in etwa einer Stunde): Das Foto wird zuerst veröffentlicht, die Klingel danach, und eine Bildanfrage während des Herunterladens wartet stattdessen, anstatt zu scheitern. Nach dem Update drücke die Klingel einmal, um zu starten, dann sollte die Szene das richtige Foto des Besuchers senden.

Ich habe das hier erhalten.

[2026-09-03T22:31:25.479Z] [INFO] [tuya] [Tuya][discovery] "F14-W" id=************** type=pet-feeder product_id=*************** category=cwwsq features=1 UNMANAGED=[meal_plan_num, battery_val, meal_plan2, feed_record, vip_alarm, battery_alarm]
[2026-09-03T22:31:25.480Z] [WARN] [tuya] Tuya-Funktion mit dem Code "basic_indicator" wird nicht verwaltet
[2026-09-03T22:31:25.481Z] [WARN] [tuya] Tuya-Funktion mit dem Code "motion_record" wird nicht verwaltet
[2026-09-03T22:31:25.481Z] [WARN] [tuya] Tuya-Funktion mit dem Code "motion_interval" wird nicht verwaltet
[2026-09-03T22:31:25.481Z] [WARN] [tuya] Tuya-Funktion mit dem Code "record_switch1" wird nicht verwaltet
[2026-09-03T22:31:25.482Z] [WARN] [tuya] Tuya-Funktion mit dem Code "decibel_upload" wird nicht verwaltet
[2026-09-03T22:31:25.482Z] [WARN] [tuya] Tuya-Funktion mit dem Code "ipc_mute_record" wird nicht verwaltet
[2026-09-03T22:31:25.482Z] [WARN] [tuya] Tuya-Funktion mit dem Code "ipc_detection_area" wird nicht verwaltet
[2026-09-03T22:31:25.482Z] [WARN] [tuya] Tuya-Funktion mit dem Code "multi_motion_area" wird nicht verwaltet
[2026-09-03T22:31:21.250Z] [INFO] [tuya] [Tuya][poll][local] device=************** DPS-Snapshot: 4="standby" (UNMAPPED) | 106=2957 (UNMAPPED) | 108="7f0800317f143021" (UNMAPPED) | 112="{"value":2,"type":2}" (UNMAPPED) | 113=0 (UNMAPPED) | 114=0 (UNMAPPED)

Danke, genau das war es. Dein Spender ist eine Variante: Er stellt nicht die Standardcodes bereit, auf denen ich die Unterstützung aufgebaut habe (feed_report, slow_feed, battery_percentage…), sondern andere (feed_record, battery_val, battery_alarm…). Nur der Spenderknopf ist gemeinsam, daher nur eine Funktionalität.

Ich möchte nicht blind abbilden (eine Batterie mit „2957 %“ anzuzeigen, würde dir nicht helfen). Ich habe gerade die 1.13.3 veröffentlicht, die die letzte fehlende Information hinzufügt: Aktualisiere in den nächsten Stunden über den Store, warte eine Minute und sende mir dann die Zeile im Privatchat, die [Tuya][poll][cloud] und status snapshot für deinen Spender enthält (sie erscheint nur einmal, beim ersten Abruf nach dem Neustart). Damit kann ich die Unterstützung für dein Modell direkt nachschieben: Letzte Mahlzeit, Batterie, Alarme.

Die Zeilen basic_indicator / motion_record, die du kopiert hast, stammen von einer Kamera, nicht vom Spender, du kannst sie ignorieren.

:bell: Tuya (externe Integration) — v1.20.0: 6 neue Gerätetypen + Integration in 4 Sprachen

Hallo zusammen :waving_hand:

Seit der v1.11.0 hat sich die externe Tuya-Integration stark weiterentwickelt: Hier ist der Überblick bis zur v1.20.0, die gerade veröffentlicht wurde.

:sparkles: Neue unterstützte Geräte

  • Roboterstaubsauger (Honiture Q6 Pro): Start/Stopp, Pause, Rückkehr zur Basis, Status, Batterie, Saugkraft, Wasserstand, Modi, Bürstenverschleiß.
  • Futterautomaten (Kategorie cwwsq, darunter F14-W): Fütterung auf Anfrage, letzte gefütterte Menge, Batterie, geplante Mahlzeiten.
  • Ventilatoren / Wärmerückgewinnungsanlagen (Kategorie fs, z. B. AV-TTW5-W): Ein/Aus, Geschwindigkeit, Licht, Kindersicherung, Luftstromrichtung, Schwingung.
  • Luftentfeuchter (Kategorie cs, z. B. Qlima D825A): Luftfeuchtigkeit, Temperatur, Geschwindigkeit, Timer, Modus, Ziel-Luftfeuchtigkeit, Kindersicherung.
  • Temperatur-/Luftfeuchtigkeitssensoren (Kategorie wsdcg, z. B. Konyks Termo): Temperatur, Luftfeuchtigkeit, schwache Batterie.
  • Umkehrosmose-/Wasserreinigungsanlagen (Kategorie js, z. B. The Box): TDS Ein-/Ausgang, verbleibende Lebensdauer jedes Filters (PP, CTO, RO) in % und Tagen, Betriebszustand.

:globe_showing_europe_africa: Integration auf Französisch, Englisch, Deutsch und Spanisch

  • Neue Option „Funktionsnamen“: Die Namen und Optionen der neu entdeckten Geräte werden auf Französisch, Englisch, Deutsch oder Spanisch angezeigt. Ein großes Dankeschön an @spenceur für den PR! :folded_hands:
  • Die gesamte Integration ist jetzt in die 4 Sprachen von Gladys übersetzt: Konfiguration, Aktionen, Verbindungsmeldungen, Cloud-Badge-Tooltips und Dokumentation.

:hammer_and_wrench: Tools und Korrekturen

  • Aktion „Diagnose eines Geräts“: Ein Gerät wird nicht oder falsch erkannt? Starten Sie die Aktion, kopieren Sie das Ergebnis in ein GitHub-Issue, und ich kann es hinzufügen. Der Bericht enthält weder lokale Schlüssel, noch IP-Adressen, noch Tuya-Kennungen.
  • Klimaanlagen: Die Modi Heizen und Lüften sind wieder auswählbar.
  • Klingeln: Das Foto des Besuchers kommt vor dem Klingeln (praktisch, um es in eine Szene zu senden).

:warning: Voraussetzungen

  • Gladys ≥ 4.86.1 für eine neue Installation aus dem Store (und für die Saugkraft / Wasserstand des Staubsaugers).
  • Eine bereits installierte Integration wird auf jeder Gladys-Version weiter aktualisiert.

:counterclockwise_arrows_button: Bereits erstellte Geräte

  • Die neuen Gerätetypen: Führen Sie einfach eine Neuerkennung durch.
  • Die Option „Funktionsnamen“ benennt bereits erstellte Funktionen nicht um: Nur die Beschriftungen der Listen (z. B. Saugkraft) folgen der neuen Sprache bei der nächsten Erkennung. Für die Namen: Benennen Sie sie manuell um oder löschen und erstellen Sie das Gerät neu.

:test_tube: Feedback willkommen

Diese Punkte interessieren mich besonders:

  • Luftentfeuchter, Umkehrosmose, Konyks-Termo-Sensor und F14-W-Futterautomat: Funktioniert alles und werden die Befehle ausgeführt?
  • Die Funktionsnamen auf Deutsch/Spanisch für diejenigen, die Gladys in diesen Sprachen nutzen.

Die Details jeder Version finden Sie im Changelog: gladys-tuya/CHANGELOG.md at master · Terdious/gladys-tuya · GitHub

Vielen Dank im Voraus für Ihr Feedback :folded_hands:

:wrench: v1.21.0 — Korrektur für Klimaanlagen, die auf °F eingestellt sind

Kleine Korrektur nach Version 1.20.0:

  • Klimaanlagen, deren Display auf °F eingestellt ist: Die Raumtemperatur wird nicht mehr durch 10 geteilt, wenn das Gerät ganze Grad (°C) sendet (es wurden z. B. 2,4 °C angezeigt, obwohl 24 °C gemeint waren). Zudem wurden die Soll- und Ist-Temperaturen fälschlicherweise mit °F beschriftet, obwohl das Gerät °C sendet. Gladys konvertiert jetzt korrekt in die von Ihnen gewählte Einheit.
  • Für Klimaanlagen, die auf °C eingestellt sind, und für andere Geräte ändert sich nichts.

:backhand_index_pointing_right: Falls Ihre Klimaanlage betroffen ist: Löschen Sie sie und erstellen Sie sie neu über den Entdeckungs-Tab, damit sie die richtige Einheit übernimmt.

:memo: Neuigkeiten zum Projekt: Jede Version hat jetzt eigene Versionshinweise auf GitHub, und alle Details finden Sie im Changelog.

Vielen Dank an @Lucid_Wray für seinen sehr präzisen Bug-Report :folded_hands:

:snowflake: v1.22.0 — exotische Klimaanlagen (z. B. MEDION P502)

Neue Version für Tuya-Klimaanlagen, die nicht den Standardwortschatz verwenden:

  • Modi: werden unabhängig von ihrer Schreibweise erkannt (COOL, cool, cold…), und genau so an das Gerät gesendet, wie es sie erwartet. Keine Klimaanlage bleibt mehr in einem Modus stecken.
  • Gebläsegeschwindigkeit: Klimaanlagen, die ihre Geschwindigkeiten als einfache Stufen angeben (« 1 », « 2 »…), zeigen jetzt Schwach / Stark (bis zu 5 Stufen) an, anstatt eine Liste von 8 wahlbaren Optionen ohne Wirkung.
  • Schwenken: Die Ein-/Ausschaltfunktion (Shake) erscheint als Schalter „Schwenken“, sowohl in der Cloud als auch lokal.

Für Klimaanlagen, die bereits funktioniert haben, ändert sich nichts. Falls Ihre betroffen ist, starten Sie eine Neuerkennung (oder löschen und erstellen Sie die Klimaanlage neu), damit sie ihren eigenen Wortschatz berücksichtigt.

Vielen Dank an VV69004, dessen gut dokumentierte Arbeit an der MEDION P502 es ermöglicht hat, all das ordentlich für alle zu integrieren :folded_hands:

:droplet: v1.23.0 und v1.24.0 — Bewässerungsventile, Gerätelisten und Zuverlässigkeit

Neuerungen

  • Bewässerungsventile / Tuya-Programmierer (Kategorie sfkzq, z. B. R2601): Öffnen/Schließen, Ventilzustand (Wasser fließt oder nicht), momentaner Durchfluss, Batterie, Kindersicherung, Bewässerungsmodus (auto/manuell), manuelle Bewässerungsdauer. Sie verwenden die „Wasserhahn“-Kategorie von Gladys. Die Bewässerungsprogramme bleiben vorerst in der Tuya-App.
  • Dropdown-Listen in Aktionen: „Lokales Protokoll erkennen“ und „Gerätediagnose“ bieten jetzt die Liste Ihrer Geräte an. Ein zweites Feld akzeptiert weiterhin einen Namen oder eine Tuya-ID für ein Gerät, das noch nicht in Gladys erstellt wurde.
  • Umfassendere Diagnose: Sie gibt auch den Bereich, die Einheit und die Skala jedes numerischen Werts an. Dank dessen konnte das Ventil in einer Version hinzugefügt werden.

Zuverlässigkeit

  • Eine kurze Unterbrechung zwischen Gladys und der Integration startet nicht mehr die gesamte Cloud-Verbindung oder einen vollständigen Netzwerk-Scan neu.
  • Die manuelle Erkennung des lokalen Protokolls kann nicht mehr durch eine gleichzeitig gestartete Entdeckung abgebrochen werden.
  • Saubereres Herunterfahren: Lokale Verbindungen zu Geräten werden vor dem Herunterfahren des Containers geschlossen.

:backhand_index_pointing_right: Bereits hinzugefügtes Ventil: Button „Aktualisieren“ im Entdeckungs-Tab (oder löschen Sie es und erstellen Sie es neu), um seine neuen Funktionen zu erhalten.

:camera: Aufruf an Tuya-PTZ-Kamerabesitzer (@GBoulvin :wink:)

Gladys kann jetzt motorisierte Kameras (Bewegung, Zoom, gespeicherte Positionen) steuern, und ich möchte sie zu Tuya-Kameras (LSC PTZ…) hinzufügen. Ich brauche nur das Ergebnis der Aktion „Gerätediagnose“ (Tab „Integrationseinstellungen“, wählen Sie die Kamera aus der Liste): Fügen Sie es hier oder in Issue #26 ein. Der Bericht enthält weder lokale Schlüssel, noch IP-Adressen, noch Tuya-IDs.

Die Details finden Sie im Changelog. Vielen Dank für Ihr Feedback :folded_hands:

Hier ist die erste, Dualband:

Tuya-Geräte-Diagnose — "Wohnzimmerkamera"
model=LSC PTZ Kamera Dualband product_id=rogprwflblumx2co category=sp
erkannter Typ=camera zugeordneter Funktionen=8

Cloud-Status (24 Codes):
  alarm_message = undefined  [absichtlich ignoriert]
  basic_flip = false  [Schalter/binär]
  basic_nightvision = "0"  [absichtlich ignoriert]
  basic_osd = true  [absichtlich ignoriert]
  basic_private = false  [Schalter/binär]
  decibel_sensitivity = "0"  [absichtlich ignoriert]
  decibel_switch = false  [absichtlich ignoriert]
  humanoid_filter = false  [Schalter/binär]
  motion_area = "{"num":1,"region0":{"x":0, "y":0, "xlen":100, "ylen":100 }}"  [absichtlich ignoriert]
  motion_area_switch = false  [absichtlich ignoriert]
  motion_sensitivity = "1"  [absichtlich ignoriert]
  motion_switch = false  [Schalter/binär]
  motion_tracking = false  [Schalter/binär]
  movement_detect_pic = <snapshot payload>  [motion-sensor/binär]
  ptz_calibration = false  [absichtlich ignoriert]
  ptz_control = "7"  [absichtlich ignoriert]
  ptz_stop = true  [absichtlich ignoriert]
  record_mode = "1"  [absichtlich ignoriert]
  record_switch = true  [Schalter/binär]
  sd_format = true  [absichtlich ignoriert]
  sd_format_state = 0  [absichtlich ignoriert]
  sd_status = 5  [absichtlich ignoriert]
  sd_storge = "0|0|0"  [absichtlich ignoriert]
  siren_switch = false  [Sirenen/binär]

Erklärte Enum-Bereiche:
  basic_nightvision: 0, 1, 2 (Funktionen+Status+Modell)
  decibel_sensitivity: 0, 1 (Funktionen+Status+Modell)
  motion_sensitivity: 0, 1, 2 (Funktionen+Status+Modell)
  ptz_control: 1, 2, 3, 4, 5, 6, 7, 0 (Funktionen+Status+Modell)
  record_mode: 1, 2 (Funktionen+Status+Modell)

LAN DPS-Snapshot: nicht verfügbar (Lokale Abfrage-Timeout).

Dieser Bericht enthält keinen lokalen Schlüssel, keine IP-Adresse oder Tuya-Geräte-ID: Er kann so wie er ist in ein GitHub-Issue eingefügt werden

Und die zweite (LSC ebenfalls, älter)

Tuya-Geräte-Diagnose — "Eingangskamera"
model=LSC PTZ Kamera product_id=n7h0m2x7i2yzol0p category=sp
erkannter Typ=camera zugeordneter Funktionen=8

Cloud-Status (23 Codes):
  alarm_message = undefined  [absichtlich ignoriert]
  basic_anti_flicker = "1"  [UNGEWARTET]
  basic_flip = false  [Schalter/binär]
  basic_nightvision = "0"  [absichtlich ignoriert]
  basic_osd = true  [absichtlich ignoriert]
  basic_private = false  [Schalter/binär]
  decibel_sensitivity = "0"  [absichtlich ignoriert]
  decibel_switch = false  [absichtlich ignoriert]
  humanoid_filter = false  [Schalter/binär]
  motion_sensitivity = "0"  [absichtlich ignoriert]
  motion_switch = false  [Schalter/binär]
  motion_tracking = false  [Schalter/binär]
  movement_detect_pic = <snapshot payload>  [motion-sensor/binär]
  ptz_calibration = false  [absichtlich ignoriert]
  ptz_control = "5"  [absichtlich ignoriert]
  ptz_stop = true  [absichtlich ignoriert]
  record_mode = "2"  [absichtlich ignoriert]
  record_switch = true  [Schalter/binär]
  sd_format = true  [absichtlich ignoriert]
  sd_format_state = 0  [absichtlich ignoriert]
  sd_status = 1  [absichtlich ignoriert]
  sd_storge = "30272512|15700992|14571520"  [absichtlich ignoriert]
  siren_switch = false  [Sirenen/binär]

Erklärte aber nicht gemeldete: initiative_message

Erklärte Enum-Bereiche:
  basic_anti_flicker: 0, 1, 2 (Funktionen+Status+Modell)
  basic_nightvision: 0, 1, 2 (Funktionen+Status+Modell)
  decibel_sensitivity: 0, 1 (Funktionen+Status+Modell)
  motion_sensitivity: 0, 1, 2 (Funktionen+Status+Modell)
  ptz_control: 1, 2, 3, 4, 5, 6, 7, 0 (Funktionen+Status+Modell)
  record_mode: 1, 2 (Funktionen+Status+Modell)

LAN DPS-Snapshot:
  109="30272512|15700992|14571520" (UNGEKARTET)

Dieser Bericht enthält keinen lokalen Schlüssel, keine IP-Adresse oder Tuya-Geräte-ID: Er kann so wie er ist in ein GitHub-Issue eingefügt werden.