Neues Modul LG-ThinQ

Begonnen von Shadow3561, 14 Januar 2026, 19:43:26

Vorheriges Thema - Nächstes Thema

Gary

Hallo zusammen,

danke Daniel, auch ich bin sehr dankbar über deinen Aufschlag und habe das Modul mittlerweile für meine 5 Klimageräte in Verwendung.
Anfangs hatte ich ein paar Probleme und ich denke auch Bugs gefunden zu haben, daher habe ich begonnen Änderungen/Verbesserungen einzubauen, die mittlerweile gewachsen sind. Ich möchte sie gerne hiermit zur Verfügung stellen. Leider habe ich erst jetzt gesehen, dass es für das Client-Modul bereits eine Erweiterung von cwagner gibt - die habe ich leider (noch) nicht berücksichtigt.

Vielleicht wäre es an der Zeit das Modul offiziell einzuchecken und an einer gemeinsamen Version zu arbeiten. ;)

Jedenfalls sind das die wesentlichen Änderungen und im Anhang die beiden Moduldateien.

98_LGThinQ_Connect
  • eindeutige clientID für die API pro Installation (sonst besteht Gefahr von Blocking bei Verwendung durch unterschiedliche Personen)
  • die Attribute "country" und "region" werden nun wirklich verwendet und Änderungen an den Attributen sofort übernommen
  • asynchrone, nicht blockierende API-Calls eingeführt
  • Logging (Loglevel 3) an wesentlichen Stellen erleichtert die Analyse bei Verbindungsproblemen
  • Autocreate stabiler bei erneuten Durchläufen oder Löschen von Geräten, Zuordnung über DEVICE_ID statt über Namen
  • alias ist jetzt ein echtes Attribut und wird somit als Devicename sichtbar
  • state-Reading wird bei Fehlern auf eine Fehlermeldung gesetzt

98_LGThinQ_Device
  • asynchrone, nicht blockierende API-Calls mit Callback eingeführt (insbesondere GetState und GetProfile), sowie
  • Jitter auf Poll-Intervall (±20 %) verhindert synchrones/gebündeltes Polling mehrerer Geräte gleichzeitig
  • Default-Intervall für Polling gefixed, Timer robuster bei Timeouts/Fehlern gemacht
  • Set-Befehl umbenannt: tempTarget → targetTemp (konsistent mit dem gleichnamigen Reading)
  • Toten Duplikat-Eintrag entfernt: %READING_MAP hatte zwei Einträge für 'temperature.targetTemperature'