Erfahrungen mit der Einbindung von LG Multisplit Klimageräten?

Begonnen von dadoc, 25 August 2019, 09:34:11

Vorheriges Thema - Nächstes Thema

Bigsonic1

Gibt es was neues, hat schon jemand die Werte von Thinkq auslesen können?
Würde meine Waschmaschine gerne einbinden.
Ich habe es über Domoticz-thinkq probiert, aber ich bekomme es einfach nicht hin.
An alle Fhem Nutzer, die Module schreiben können, kauft euch ein LG gerät was ihr einbinden wollt....  ;D

Gary

#16
Ich weiß, dieses Thema ist schon älter und der letzte Post hier schon länger her, aber soweit ich weiß gibt es nach wie vor kein FHEM Modul für eine LG ThinQ Anbindung. Für den Home Assistant scheint es mittlerweile zwei Erweiterungen zu geben. Jedenfalls habe ich nun seit kurzem selbst ein LG Splitgerät mit 5 Innengeräten, möchte kurz meine "Lösungsvariante" mit bestehenden Mitteln beschreiben und freue mich über Anregungen, was ich besser machen könnte oder ob es nicht mittlerweile bessere Infos oder gar Möglichkeiten gibt.

Ich verwende den Thinq-MQTT-Proxy, um Statuswerte in Echtzeit (ohne Polling) zu erhalten sowie WideQ für die Steuerung der Anlagen (Ein/Aus, Temperatur setzen). Und das funktioniert auch bisher sehr gut.

Zugegeben keine leichtgewichtige Lösung, der Proxy benötigt Java und Maven, WideQ ist dagegen in Python geschrieben. Ich hatte das sowieso schon installiert. Außerdem scheinen beide Projekte nicht mehr aktiv betreut zu werden. Und ja, das läuft über die "LG-Cloud" nur mit Internetverbindung und setzt ein ThinQ-Konto (z.B. für den Einsatz der App) voraus.

Hier die verwendeten Github-Links:

Installation MQTT-Proxy
Installiere mind. Java 8, Apache Maven 3.6.3

  cd /opt
  sudo git clone https://github.com/mgwoj/Thinq-MQTT-Proxy.git
  cd /opt/Thinq-MQTT-Proxy
  sudo mvn clean package

Copy state-example.json to state.json and correct your language, region and local MQTT server settings.
  sudo cp state-example.json state.json
  sudo nano state.json
{
    "region": "de-AT",
    "countryCode": "AT",
    "pubMqttServer": "tcp://localhost:1883",
    "langCode": "de-AT",
    "certSource": "Use Cloud Service",
    "pubClientId": "thinq"
}
Erstes Login mit eigenen User:
  sudo java -jar /opt/Thinq-MQTT-Proxy/target/thinq-mqtt-proxy.jar init
  sudo java -jar /opt/Thinq-MQTT-Proxy/target/thinq-mqtt-proxy.jar run
Install as a service (If previous step was successful), run
  sudo ./install.sh

Installation WideQ
Installiere Python

  cd /opt
  sudo git clone https://github.com/no2chem/wideq.git
  python -m pip install requests
Erstes Login mit eigenem User:
  python example.py -c AT -l de-AT
Test:
  python example.py ls

Die bestehende example.py habe ich umgebaut ("neue" command.py im Anhang): Celsius statt Fahrenheit und das Konfigurationsfile wideq_state.json bleibt fix im Verzeichnis /opt/wideq (und muss nicht nach fhem kopiert werden).
Wichtig, dann dem fhem-User Rechte darauf geben: sudo chown fhem:root wideq_state.json

Devices:

MQTT2_DEVICE Bridge
Diese legt die Einzelgeräte automatisch nach ihrem Namen an.
defmod thinq MQTT2_DEVICE thinq
attr thinq autocreate 1
attr thinq bridgeRegexp thinq:thinq/([A-Za-z0-9_-]*)[/].*:.* "$1"
attr thinq icon sani_heating_heatpump
attr thinq room MQTT2_DEVICE
attr thinq setList clear_all:noArg {fhem("deleteattr $NAME readingList;; deletereading -q $NAME (?!associatedWith|IODev).*");;return undef}

MQTT2_DEVICE Einzelgerät
Werden jeweils automatisch von der Bridge angelegt und müssen dann nur noch entsprechend adaptiert werden.
defmod klima_buero MQTT2_DEVICE klima_buero
attr klima_buero devStateIcon .*on.*:general_an@green:off .*off.*:general_aus:on .*set_on.*:general_an@orange:off .*set_off.*:general_aus@orange:on
attr klima_buero event-on-change-reading .*
attr klima_buero icon frost
attr klima_buero readingList thinq/klima_buero/event/diagCode:.* diagCode\
thinq/klima_buero/event/DirStep:.* DirStep\
thinq/klima_buero/event/lightingDisplay:.* lightingDisplay\
thinq/klima_buero/event/operation:.* operation\
thinq/klima_buero/event/switch:.* state\
thinq/klima_buero/event/opMode:.* opMode\
thinq/klima_buero/event/sleepTime:.* sleepTime\
thinq/klima_buero/event/targetTimeToStart:.* targetTimeToStart\
thinq/klima_buero/event/targetTimeToStop:.* targetTimeToStop\
thinq/klima_buero/event/tempCurrent:.* tempCurrent\
thinq/klima_buero/event/tempTarget:.* tempTarget\
thinq/klima_buero/event/windStrength:.* windStrength\
thinq/klima_buero/event/qualitySensorMon:.* qualitySensorMon
attr klima_buero room MQTT2_DEVICE
attr klima_buero setList on {system("python /opt/wideq/command.py turn 87c03dc0-b565-183e-8249-999999999999 on");;}\
off {system("python /opt/wideq/command.py turn 87c03dc0-b565-183e-8249-999999999999 off");;}\
tempTarget:selectnumbers,18,1,30,0,lin {system("python /opt/wideq/command.py set-temp 87c03dc0-b565-183e-8249-999999999999 $EVTPART1");;}
attr klima_buero setStateList on off
attr klima_buero webCmd on:off:tempTarget

Readingsgroup aller Innengeräte

defmod Klimaanlage readingsGroup <>,<Status>,<Raum>,<Soll> klima_.*:state,tempCurrent,tempTarget
attr Klimaanlage commands { tempTarget => 'tempTarget:selectnumbers,18,1,30,0,lin'}
attr Klimaanlage room Home,Klima
attr Klimaanlage valueFormat {tempCurrent => "%2.1f°C",tempTarget => '{my $s=ReadingsVal($name,"tempTarget",0);;;;$s =~ s/\D*(\d+)\D*/$1/;;;;sprintf("%2.1f°C",$s);;;;}'}
attr Klimaanlage valueIcon { state => '%devStateIcon' }
attr Klimaanlage valueStyle style="text-align:right"



Mr.1000V

Ich habe Gary ´s Vorschlag mal ausprobiert. Bleibe aber in einer Fehlermeldung beim installieren von Maven hängen.

root@nuci3:/opt/Thinq-MQTT-Proxy# mvn clean package
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< groupId:thinq-mqtt-proxy >----------------------
[INFO] Building thinq-mqtt-proxy 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ thinq-mqtt-proxy ---
[INFO] Deleting /opt/Thinq-MQTT-Proxy/target
[INFO]
[INFO] --- gmavenplus-plugin:1.12.1:addSources (default) @ thinq-mqtt-proxy ---
[INFO]
[INFO] --- gmavenplus-plugin:1.12.1:addTestSources (default) @ thinq-mqtt-proxy ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ thinq-mqtt-proxy ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ thinq-mqtt-proxy ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- gmavenplus-plugin:1.12.1:compile (default) @ thinq-mqtt-proxy ---
[INFO] Using isolated classloader, without GMavenPlus classpath.
[INFO] Using Groovy 3.0.7 to perform compile.
[INFO] Parallel parsing disabled.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  7.284 s
[INFO] Finished at: 2025-07-01T07:13:37+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.gmavenplus:gmavenplus-plugin:1.12.1:compile (default) on project thinq-mqtt-proxy: Error occurred while calling a method on a Groovy class from classpath.: InvocationTargetException: BUG! exception in phase 'semantic analysis' in source unit '/opt/Thinq-MQTT-Proxy/apps/HttpUtils.groovy' Unsupported class file major version 65 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Die Abfrage zur Version ergibt folgendes:

root@nuci3:/opt/Thinq-MQTT-Proxy# mvn -version
Apache Maven 3.8.7
Maven home: /usr/share/maven
Java version: 21.0.7, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64
Default locale: de_DE, platform encoding: UTF-8
OS name: "linux", version: "6.8.0-62-generic", arch: "amd64", family: "unix"

Ich weiß leider nicht weiter, hat jemand eine Idee?

Gary

Ich erinnere mich, den Fehler hatte ich auch. Da sind veraltete Abhängigkeiten im Maven POM File drin.

Vesuche mal folgendes: Ersetze die vorhandene pom.xml Datei im Verzeichnis /opt/Thinq-MQTT-Proxy durch die hier angehängte geänderte Version und starte noch mal den Compiler.

Zur Info: Das sind die darin geänderten Abschnitte ( maven.compiler Versionen entfernt und Groovy auf Version 3.0.8 ), habe sicherheitshalber auch noch ein Bild mit dem Vergleich angehängt.

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>3.0.8</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-dateutil</artifactId>
            <version>3.0.8</version>
        </dependency>

Mr.1000V

Ich habe die pom.xml ersetzt, leider ohne Erfolg, "Build failure"

Dann java-21-openjdk mal neu installiert und bekomme mit dem Befehl

 update-alternatives --config java

folgende Auswahl:

  Auswahl      Pfad                                            Priorität Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-21-openjdk-amd64/bin/java      2111      automatischer Modus
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manueller Modus
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java      1711      manueller Modus
  3            /usr/lib/jvm/java-21-openjdk-amd64/bin/java      2111      manueller Modus
  4            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manueller Modus

da habe ich mal auf 4 gesetzt, also Java-8 und noch mal compiliert. Damit läuft es durch und ich kann mich offensichtlich mit der LG Cloud verbinden:

root@nuci3:/opt/Thinq-MQTT-Proxy# java -jar /opt/Thinq-MQTT-Proxy/target/thinq-mqtt-proxy.jar run
18:21:08.145 [main] INFO  ThinqMqttProxy - Starting Thinq Mqtt Proxy...
18:21:08.432 [main] INFO  Mqtt - starting connection the server tcp://localhost:1883...
18:21:08.698 [main] INFO  Mqtt - connected!
18:21:11.207 [main] INFO  ThinQ_Integration - ThinQ Found 3 devices

Meine Frage: kann das so bleiben mit "Java-8-openjdk-amd64/jre/bin/java   1081      manueller Modus"??

oder wo liegen hier die Hindernisse?