Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter luxtronik2 v0.4.x

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Test Adapter luxtronik2 v0.4.x

Geplant Angeheftet Gesperrt Verschoben Tester
adapterluxtronik wpwebsocket
289 Beiträge 52 Kommentatoren 69.4k Aufrufe 49 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • K Kersten 0

    Habe die Version von "https://github.com/boellner/ioBroker.luxtronik2" installiert - bekomme aber zusammen mit meiner Buderus-WP (HMC20) immer noch folgenden Error und Warnungen (nicht mit "parametern" - sondern "values"...
    Die wichtigen "values" werden aber korrekt übertragen. Die Warnungen bekomme ich weg. indem ich die "values" wie oben beschrieben als "undefined" setze.
    Der Error bleibt allerdings ...

    0e2cc3c2-a0b6-4e70-aa4c-d5374d2e672e-grafik.png

    Zudem werden Parameter generell nicht "ausgelesen" - "schreiben - z.B. der Warmwasser-Solltemperatur - funktioniert aber trotzdem:
    6a24e8c4-33a2-453a-8e4d-d144035e5d29-grafik.png

    Hat jemand eine Idee??
    Danke im Voraus!

    F Offline
    F Offline
    Francis
    schrieb am zuletzt editiert von
    #269

    @kersten-0
    Hallo, ich bin jetzt ganz neu in diesem Forum und überhaupt im Raspberry Pi/Iobroker Universum. Diese habe ich in Betrieb genommen, da ich meine PV-Anlage und bald meine Wallbox ansehen und steuern wollte.
    Als ich feststellte, dass auch meine 12 Jahre alte Wärmepumpe gesteuert oder wenigstens abgelesen werden konnte, war ich begeistert und habe sogleich alles ans Laufen gekriegt. Ein Firmwareupdate hat jedoch alles wieder zunichte gemacht und ich hatte die gleichen Probleme als hier oben im Forum beschrieben.
    Fürs Erste danke an alle die geholfen haben die Probleme zu beschreiben und Lösungsansätze oder Lösungen preiszugeben. Danke auch an Uncle Sam und "boellner" für Ihre super Arbeit.

    Ich habe mir gestern viel Zeit genommen um Vieles zu probieren.

    Die Probleme sind nämlich dass diese Fehlermeldungen kommen wenn ich in der Instanz den Port 8888 angebe. Wenn ich Port 8889 angebe, dann kommen diese Meldungen nicht, jedoch stürzt die Instanz permanent ab mit den entsprechenden Fehlermeldungen.

    Also habe ich Port 8888 als gut empfunden und Folgendes gemacht:

    • Da ich neu bin im Raspberry Pi Universum habe ich mir zusammengesucht wie ich diese "lux-meta.js" finden und ändern kann. Im Terminal Schirm ist hier also Folgendes einzugeben:
      nano /opt/iobroker/node_modules/iobroker.luxtronik2/build/lux-meta.js

    Die ursprünglichen Meldungen waren sowohl "Parameter" als auch wie bei dir oben angezeigt "Values" Meldungen.

    5b9fa2ac-d817-4240-a536-a78f621ccc09-grafik.png

    Ich habe also einige Linien kopiert und die oben genannten Variabeln wie zum Beispiel bei dir "Temperature_overheating_target" eingefügt anstelle der kopierten Werte.

    Des Weiteren habe ich verschiedene "Parameter"-Werte die etwas weiter unten in der Datei zu finden sind ebenfalls ergänzt:
    8c7177a1-1cb1-4a02-860a-76858a681855-grafik.png

    Einige andere Werte habe ich ganz unten so wie schon vorhin angegeben auf "Undefined" gesetzt:
    e34c95d0-8649-436d-bc68-91da00198fca-grafik.png

    Einige Versuche waren nötig um keine Fehlermeldungen mehr zu erhalten.
    Speicher die Datei ab und starte die Instanz und falls noch Werte übrig sind mit Meldungen, so gehe diese speziefischen Werte nochmal an. Wie gesagt, ich habe einige in "Parameter" eingefügt und einige in "Values" so dass eigentlich alle in Beiden Gruppen auftauchen müssten, sollten oder könnten...

    Ich hoffe dir irgendwie geholfen zu haben und viel Glück.

    N.B. Im Laufe dieser Aktion war ich schon fast von Iobroker abgesprungen und habe mir Home Assistant angeschaut. Dort ist jedoch auch nur ein Adapter über Github verfügbar. Zum Glück passt es im Moment und ich habe die Adapter die ich brauche.
    Bis dann.

    1 Antwort Letzte Antwort
    1
    • S Offline
      S Offline
      Susanne007
      schrieb am zuletzt editiert von
      #270

      Hallo zusammen,

      kurz ein aktuelles Update von mir zu meiner Installation und den notwendigen Schritten damit keine Fehlermeldungen kommen.

      Alpha-Innotec WP geliefert im September 2023:
      Wärmepumpen Typ LW 8
      Wärmepumpen Typ CMD_6
      Softwarestand V3.88.0
      Revision 9015

      Adapter installiert:
      npm install https://github.com/boellner/ioBroker.luxtronik2
      iobroker add luxtronik2

      IP eingetragen, WebSocket-Port 8214 (Standardwert), Luxtronik Port: 8889 (geändert von 8888)
      (Kommt der Fehler: "Luxtronik read error, will retry later: Error: connect ECONNREFUSED 192.168.10.112:8888" hat man den falschen Port)

      Das Logfile ist dann aber voll mit Fehlerhaften Values & Parametern. (hier hat der Ein oder Andere unterschiedliche Werte)
      Diese müssen in der "/opt/iobroker/node_modules/iobroker.luxtronik2/build/lux-meta.js" wie oben beschrieben eingetragen Werden. Die "values" im Value-Berech und die "parameter" dann weiter unten bei den Parametern.
      Als "undefined" musste ich nichts setzen.

      Bei mir war folgendes laut dem Fehler-Log noch einzutragen. Danach neu gestartet und es sind alle Fehler/Warnungen weg und ich habe alle Daten sauber im IOB.

      values:
      temperature_overheating_target: { role: 'value.temperature', type: 'number', unit: '°C' },
      temperature_overheating: { role: 'value.temperature', type: 'number', unit: '°C' },
      temperature_compressor1_heating: { role: 'value.temperature', type: 'number', unit: '°C' },
      temperature_intake_compressor1: { role: 'value.temperature', type: 'number', unit: '°C' },
      temperature_intake_evaporation: { role: 'value.temperature', type: 'number', unit: '°C' },
      HDin_pressure: { role: 'value', type: 'number' },
      NDin_pressure: { role: 'value', type: 'number' },

      parameters:
      temperature_ZWE_possible: { role: 'value.temperature', type: 'number', unit: '°C' },
      temperature_outdoor_min: { role: 'value.temperature', type: 'number', unit: '°C' },
      temperature_outdoor_max: { role: 'value.temperature', type: 'number', unit: '°C' },
      temperature_return_limit: { role: 'value.temperature', type: 'number', unit: '°C' },
      temperature_supply_limit: { role: 'value.temperature', type: 'number', unit: '°C' },

      Grüße
      Susanne

      1 Antwort Letzte Antwort
      0
      • T.SpoonerT Offline
        T.SpoonerT Offline
        T.Spooner
        schrieb am zuletzt editiert von T.Spooner
        #271

        ich habe mich jetzt auch mal versucht, weil ein Bekannter (neue AIT) seinen PV Überschuß in die Wärmepumpe schieben will. Da ich eine sehr alte AIT-Wärmepumpe (von 2009) habe, habe ich mich erstmal bei mir versucht und dank diesem Thread bin ich super klar gekommen und habe auch wieder mal was gelernt!!
        @UncleSam @killroy2 und natürlich allen anderen, die bei der Entwicklung geholfen haben:
        Vielen Dank!!!! 👏

        Haussteuerung mit Beckhoff C6015 (TC3)
        IoBroker auf SynologyNas (DS220+)
        2x Kostal Plenticore 4,2
        1x Kostal Plenticore 10
        BYD 10kW
        2x Daheimladen Wallbox
        1x Hyundai Kona-e
        AIT Sole/Wasser WP SWC 80 H mit Solarthermie und dank diesem Forum PV-Unterstützung

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          Daniel 4
          schrieb am zuletzt editiert von
          #272

          Hi,

          da ich seit kurzem eine Wärmepumpe mit Luxtronik Bedieneinheit habe, kann ich jetzt den Adapter brauchen. An dieser Stelle erstmal vielen Dank an die Entwickler!

          Ich habe hier im Thread allerdings ein bisschen den Überblick verloren, wie der aktuelle Stand des Adapters ist. Wird dieser Adapter noch weiter entwickelt und wenn ja, von welcher URL sollte ich den Adapter installieren? Der letzte Commit in https://github.com/boellner/ioBroker.luxtronik2 ist laut Github schon 2 Jahre alt. Gleiches gilt auch für https://github.com/UncleSamSwiss/ioBroker.luxtronik2 . Die Kommentare vom ioBroker-Bot in den Github-Issues klingen für mich, als wären einige Updates notwendig oder zumindest sinnvoll um mit den Neuerungen im ioBroker mitzuhalten.
          Die nächste Frage wäre dann: Was ist noch notwendig um eine Version des Adapters in das Stable-Repository zu bekommen und wie kann ich und andere Nutzer dabei helfen?

          Viele Grüße und einen guten Start ins neue Jahr,
          Daniel

          1 Antwort Letzte Antwort
          0
          • B Offline
            B Offline
            Borsti84
            schrieb am zuletzt editiert von
            #273

            Hi. Ich habe das Problem mit den Fehleranzeigen nach @Francis Anleitung erfolgreich gelöst. Vielen Dank.
            Ich bekomme allerdings noch folgenden Fehler (error):

            Couldn't handle 'Informationen.Ablaufzeiten' -> 'Abschaltung VD': TypeError: Cannot read properties of undefined (reading '0')

            Was kann ich hier machen? Hat diesen Fehler noch jemand? Die Variable habe ich auch schon manuell angelegt, ändert aber nix. Fehler kommt scheinbar bei lesen Wertes vom Adapter.

            Firmware der Alpha Innotec Wärmepumpe (LWDV91) ist V3.90.3.

            E 1 Antwort Letzte Antwort
            0
            • R Offline
              R Offline
              radiorichter
              schrieb am zuletzt editiert von radiorichter
              #274

              Ja hab auch den gleichen Fehler.

              Hätte auch starkes Interesse das der Adapter paar Updates bekommen würde.

              noch eine Frage / Anmerkung:

              bisher konnte ich "luxtronik2.0.parameters.warmwater_temperature" die Warmwasser-Solltemperatur einstellen.

              Den Datenpunkt gibt es nach wie vor, nur er funktioniert nicht mehr. Wie habt ihr dass gelöst?

              Ich nutze aktuell die v0.4.2 version von github.

              C 1 Antwort Letzte Antwort
              0
              • R radiorichter

                Ja hab auch den gleichen Fehler.

                Hätte auch starkes Interesse das der Adapter paar Updates bekommen würde.

                noch eine Frage / Anmerkung:

                bisher konnte ich "luxtronik2.0.parameters.warmwater_temperature" die Warmwasser-Solltemperatur einstellen.

                Den Datenpunkt gibt es nach wie vor, nur er funktioniert nicht mehr. Wie habt ihr dass gelöst?

                Ich nutze aktuell die v0.4.2 version von github.

                C Offline
                C Offline
                cdn
                schrieb am zuletzt editiert von
                #275

                @radiorichter Ich bin nun komplett auf node red umgestiegen. Der Adapter wird schon so lange nicht mehr maintained...

                L 1 Antwort Letzte Antwort
                0
                • C cdn

                  @radiorichter Ich bin nun komplett auf node red umgestiegen. Der Adapter wird schon so lange nicht mehr maintained...

                  L Offline
                  L Offline
                  lessthanmore
                  schrieb am zuletzt editiert von
                  #276

                  @cdn Welchen verwendest du?
                  luxtronik2 oder luxtronik2-ws?

                  Letzterer läuft zwar in node red, wirft aber Fehler bzw. behauptet, dass er nicht richtig konfiguriert sei.

                  1 Antwort Letzte Antwort
                  0
                  • R Offline
                    R Offline
                    radiorichter
                    schrieb am zuletzt editiert von
                    #277

                    ich nutze luxtronic2,

                    was ist der vorteil mit node red? danke 😉

                    1 Antwort Letzte Antwort
                    0
                    • B Borsti84

                      Hi. Ich habe das Problem mit den Fehleranzeigen nach @Francis Anleitung erfolgreich gelöst. Vielen Dank.
                      Ich bekomme allerdings noch folgenden Fehler (error):

                      Couldn't handle 'Informationen.Ablaufzeiten' -> 'Abschaltung VD': TypeError: Cannot read properties of undefined (reading '0')

                      Was kann ich hier machen? Hat diesen Fehler noch jemand? Die Variable habe ich auch schon manuell angelegt, ändert aber nix. Fehler kommt scheinbar bei lesen Wertes vom Adapter.

                      Firmware der Alpha Innotec Wärmepumpe (LWDV91) ist V3.90.3.

                      E Offline
                      E Offline
                      ErRi
                      schrieb am zuletzt editiert von
                      #278

                      @borsti84 Hallo, ich habe heute meine Alpha Innotec Wärmepumpe (LWDV91) auf Firmware 3.90.5 upgedatet, seitdem habe ich auch das gleiche Problem.
                      Gibt es inzwischen eine Lösung für das Problem?
                      Ich nutze aktuell den Adapter 0.5.2 von Boellner

                      MfG Erhard

                      Win11 Notebook, Lenovo MiniPC mit Proxmox, iobroker, Raspberrymatic, Maria DB, OMV

                      Fritzbox 7490, 1 Jeelink, 12 HM Rolladenschalter, 1 HM Energiezähler, VU UNO SE :)

                      P 1 Antwort Letzte Antwort
                      0
                      • E ErRi

                        @borsti84 Hallo, ich habe heute meine Alpha Innotec Wärmepumpe (LWDV91) auf Firmware 3.90.5 upgedatet, seitdem habe ich auch das gleiche Problem.
                        Gibt es inzwischen eine Lösung für das Problem?
                        Ich nutze aktuell den Adapter 0.5.2 von Boellner

                        P Offline
                        P Offline
                        Pro2k
                        schrieb am zuletzt editiert von Pro2k
                        #279

                        @erri Nachdem heute im Zuge der Wartung bei mir ebenfalls 3.90.5 installiert wurde, habe ich nun den gleichen Fehler. Es scheint nichts weiter kaputt zu machen, stört aber in den logs dennoch. Wenn man sich direkt zur Luxtronik verbindet, dann sieht man dort ebenfalls, dass 'Informationen.Ablaufzeiten' -> 'Abschaltung VD' keinen Wert hat. Schaut man direkt in der Luxtronik sieht man 00:00:00
                        8e5c73d3-d165-4fa4-9b16-f10b6eaae464-image.png

                        E 1 Antwort Letzte Antwort
                        0
                        • P Pro2k

                          @erri Nachdem heute im Zuge der Wartung bei mir ebenfalls 3.90.5 installiert wurde, habe ich nun den gleichen Fehler. Es scheint nichts weiter kaputt zu machen, stört aber in den logs dennoch. Wenn man sich direkt zur Luxtronik verbindet, dann sieht man dort ebenfalls, dass 'Informationen.Ablaufzeiten' -> 'Abschaltung VD' keinen Wert hat. Schaut man direkt in der Luxtronik sieht man 00:00:00
                          8e5c73d3-d165-4fa4-9b16-f10b6eaae464-image.png

                          E Offline
                          E Offline
                          ErRi
                          schrieb am zuletzt editiert von
                          #280

                          @pro2k Ja, bei mir war es auch ein Monteur in Folge einer Störung. Die haben wohl wieder irgendwelche Parameter verschoben. Sowie "´radiorichter" auch schon festgestellt hat die Warmwasser-Solltemperatur. Die hat AIT in ihrer eigenen App "myuplink" nicht richtig geändert.
                          Screenshot 2025-04-29 134021.jpg

                          MfG Erhard

                          Win11 Notebook, Lenovo MiniPC mit Proxmox, iobroker, Raspberrymatic, Maria DB, OMV

                          Fritzbox 7490, 1 Jeelink, 12 HM Rolladenschalter, 1 HM Energiezähler, VU UNO SE :)

                          1 Antwort Letzte Antwort
                          0
                          • L Offline
                            L Offline
                            lessthanmore
                            schrieb am zuletzt editiert von lessthanmore
                            #281

                            Evlt. ist das hier für den ein oder anderen interessant. Auch weil sich am Adapter offensichtlich nichts mehr tut.

                            AIT hat mit der Firmware V3.90.3 einen einfachen Modbus TCP in der Steuerung integriert, über den ausgelesen und auch geschrieben werden kann.
                            Bspw. kann die Pumpe nun auch über EVCC eingebunden und bei Überschuss entsprechend über Offset gesteuert werden.

                            Siehe auch: https://github.com/evcc-io/evcc/issues/20760

                            1 Antwort Letzte Antwort
                            0
                            • Bernd 0B Offline
                              Bernd 0B Offline
                              Bernd 0
                              schrieb am zuletzt editiert von
                              #282

                              Hi zusammen,
                              bei mir wurde eine Wartung an der WP durchgeführt und der Techniker hat natürlich gleich ein Firmwareupdate gemacht. Nun habe ich die V3.91.0 auf meiner LADV 9.1-1/3.
                              Es haben sich alle Datenpunkte in Luxtronic geändert. Zuvor war es deutsch nun ist es englisch und man muss auch bei vielen raten. (Beispiel das AV-Abtauventil ist so nicht mehr vorhanden. Nun ist es wahrscheinlich das VD1)
                              Aber das ist alles garnicht so schlimm bisher. Was wirklich ein Problem darstellt, dass der Datenpunkt Leistungsaufnahme nicht mehr vorhanden ist. Zuvor konnte ich via
                              luxtronik2.0.Informationen.Eingesetzte-Energie.Heizung
                              luxtronik2.0.Informationen.Eingesetzte-Energie.Warmwasser
                              die Leistungsaufnahme nachvollziehen. Beides ist nicht mehr vorhanden.
                              Habt ihr eine Lösung dafür?
                              Total schade, dass der Adapter nicht mehr aktualisiert wird 😞
                              Gruß

                              Bernd 0B 1 Antwort Letzte Antwort
                              0
                              • B Offline
                                B Offline
                                Borsti84
                                schrieb am zuletzt editiert von Borsti84
                                #283

                                Hi. Ich habe auch jetzt die V3.91.0 drauf. Die Datenpunkte sind nun halt Englisch. Ich denke das findet sich alles wieder. Was genau fehlt konnte ich noch nicht prüfen. Ich habe das Problem das der Adapter sich alle 30sek. rot wird und neu startet. wenn ich den Websocket-Port 8214 rein nehme kommt diese fehlermeldung:


                                2025-07-12 19:29:39.149 error Couldn't handle message: Error: Non-whitespace before first tag.Line: 0Column: 1Char: { Error: Non-whitespace before first tag.Line: 0Column: 1Char: { at error (/opt/iobroker/node_modules/sax/lib/sax.js:658:10) at strictFail (/opt/iobroker/node_modules/sax/lib/sax.js:684:7) at beginWhiteSpace (/opt/iobroker/node_modules/sax/lib/sax.js:958:7) at SAXParser.write (/opt/iobroker/node_modules/sax/lib/sax.js:1013:11) at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.luxtronik2/node_modules/xml2js/lib/parser.js:323:31) at Parser.parseString (/opt/iobroker/node_modules/iobroker.luxtronik2/node_modules/xml2js/lib/parser.js:5:59) at /opt/iobroker/node_modules/iobroker.luxtronik2/node_modules/xml2js/lib/parser.js:338:24 at new Promise (<anonymous>) at Parser.exports.Parser.Parser.parseStringPromise (/opt/iobroker/node_modules/iobroker.luxtronik2/node_modules/xml2js/lib/parser.js:336:14) at Parser.parseStringPromise (/opt/iobroker/node_modules/iobroker.luxtronik2/node_modules/xml2js/lib/parser.js:5:59)

                                Wenn nur der Luxtronic-Port 8889 aktiv ist kommen zwar Daten rein, aber das Problem mit dem neustarten des Adapters bleibt. Hier die Fehlermeldung von 8889:

                                2025-07-12 19:31:56.843 error Didn't receive data from WebSocket after 3 retries, restarting adapter

                                Das SHI Modbus habe ich am laufen und man bekommt eigentlich die nötigsten Datenpunkte raus. Es ist halt ein etwas beschnittenes Modbus. Das komplette Modbus (GLT) kostet. Man benötigt dazu eine Lizenz. Mit dem Adapter bekommt man doch einige Datenpunkte mehr die schon recht informativ sein können.
                                Vielleicht hat ja jemand eine idee wie man den Adapter wieder zum laufen bekommt. Schade das er nicht mehr gepflegt wird. bin über jede hilfe dankbar. Beste Grüße

                                1 Antwort Letzte Antwort
                                0
                                • Bernd 0B Bernd 0

                                  Hi zusammen,
                                  bei mir wurde eine Wartung an der WP durchgeführt und der Techniker hat natürlich gleich ein Firmwareupdate gemacht. Nun habe ich die V3.91.0 auf meiner LADV 9.1-1/3.
                                  Es haben sich alle Datenpunkte in Luxtronic geändert. Zuvor war es deutsch nun ist es englisch und man muss auch bei vielen raten. (Beispiel das AV-Abtauventil ist so nicht mehr vorhanden. Nun ist es wahrscheinlich das VD1)
                                  Aber das ist alles garnicht so schlimm bisher. Was wirklich ein Problem darstellt, dass der Datenpunkt Leistungsaufnahme nicht mehr vorhanden ist. Zuvor konnte ich via
                                  luxtronik2.0.Informationen.Eingesetzte-Energie.Heizung
                                  luxtronik2.0.Informationen.Eingesetzte-Energie.Warmwasser
                                  die Leistungsaufnahme nachvollziehen. Beides ist nicht mehr vorhanden.
                                  Habt ihr eine Lösung dafür?
                                  Total schade, dass der Adapter nicht mehr aktualisiert wird 😞
                                  Gruß

                                  Bernd 0B Offline
                                  Bernd 0B Offline
                                  Bernd 0
                                  schrieb am zuletzt editiert von Bernd 0
                                  #284

                                  @bernd-0 Ich habe mir jetzt in IObroker ein Java-Script erstellt, welches die Leistungswerte aus der Weboberfläche zieht und diese als Datenpunkt in IOBroker zur Verfügung stellt. Ebenso lasse ich mir die Daten via UDP an Loxone senden. Wer das gebrauchen kann, kann sich gerne melden.

                                  PS.: Ich nutze nicht mehr Luxtronik für die Datenpunkte sondern nun die Anbindung via MyUplink, was mit der V3.91.0 möglich ist und auch stabil läuft. Einzig die Leistungsdaten kommen nicht rein - weder via Luxtronik noch über myUplink. Daher der Umweg über die Weboberflächen-Abfrage. 😖

                                  B 1 Antwort Letzte Antwort
                                  0
                                  • Bernd 0B Bernd 0

                                    @bernd-0 Ich habe mir jetzt in IObroker ein Java-Script erstellt, welches die Leistungswerte aus der Weboberfläche zieht und diese als Datenpunkt in IOBroker zur Verfügung stellt. Ebenso lasse ich mir die Daten via UDP an Loxone senden. Wer das gebrauchen kann, kann sich gerne melden.

                                    PS.: Ich nutze nicht mehr Luxtronik für die Datenpunkte sondern nun die Anbindung via MyUplink, was mit der V3.91.0 möglich ist und auch stabil läuft. Einzig die Leistungsdaten kommen nicht rein - weder via Luxtronik noch über myUplink. Daher der Umweg über die Weboberflächen-Abfrage. 😖

                                    B Offline
                                    B Offline
                                    Borsti84
                                    schrieb am zuletzt editiert von
                                    #285

                                    @bernd-0

                                    Hallo. Ja ich habe den Luxtronic Adapter nun auch abgeschaltet. Hab auch keine Lust mich da durchzuprobieren usw. Hab mit ChatGPT usw. auch alles mögliche versucht zu probieren. Vergebens.

                                    Wie gesagt, jetzt bekomme ich viele Werte über Modbus (SmartHomeInterface).
                                    MyUplink habe ich auch laufen. Da bekomt man auch so einiges aber eben noch nicht alles und vor allem in etwas längerem Intervall (1 min). Was rein theoretisch auch reicht.

                                    Wenn Du dein Script zur Verfügung stellen kannst wäre das natürlich super. Das würde mich freuen.
                                    Das Webinterface ist ja quasi fast LIVE.

                                    M Bernd 0B 2 Antworten Letzte Antwort
                                    0
                                    • B Borsti84

                                      @bernd-0

                                      Hallo. Ja ich habe den Luxtronic Adapter nun auch abgeschaltet. Hab auch keine Lust mich da durchzuprobieren usw. Hab mit ChatGPT usw. auch alles mögliche versucht zu probieren. Vergebens.

                                      Wie gesagt, jetzt bekomme ich viele Werte über Modbus (SmartHomeInterface).
                                      MyUplink habe ich auch laufen. Da bekomt man auch so einiges aber eben noch nicht alles und vor allem in etwas längerem Intervall (1 min). Was rein theoretisch auch reicht.

                                      Wenn Du dein Script zur Verfügung stellen kannst wäre das natürlich super. Das würde mich freuen.
                                      Das Webinterface ist ja quasi fast LIVE.

                                      M Offline
                                      M Offline
                                      Michi2322
                                      schrieb am zuletzt editiert von Michi2322
                                      #286

                                      @borsti84 Ich habe vor 3 Tagen von iOBroker auf Home Assistant umgestellt und da gibt es im HACS eine Luxtronic Lösung. https://github.com/BenPru/luxtronik

                                      klappt gut und das Dashboard im groben ist gleich dabei. Ich muss sagen beste Entscheidung. Viel einfacher und integrativer und mehr support durch größere Community. Hier tut sich ja leider nix 😐 btw. Die Installation auf meinem Raspi 4 und weitere Konfiguration ging mit Chat GPT sehr gut und ich habe bisher nur auf die Schnelle HA getestet und keine eigenen Dashboards gebaut bisher aber ich bin echt begeistert über die Funktionalität. Die Einbindung einzelner Geräte dauert teilweise keine 5 Minuten.

                                      1128a3ce-dc9a-4ffa-ae4e-c49476771a7d-image.png

                                      B 1 Antwort Letzte Antwort
                                      0
                                      • B Borsti84

                                        @bernd-0

                                        Hallo. Ja ich habe den Luxtronic Adapter nun auch abgeschaltet. Hab auch keine Lust mich da durchzuprobieren usw. Hab mit ChatGPT usw. auch alles mögliche versucht zu probieren. Vergebens.

                                        Wie gesagt, jetzt bekomme ich viele Werte über Modbus (SmartHomeInterface).
                                        MyUplink habe ich auch laufen. Da bekomt man auch so einiges aber eben noch nicht alles und vor allem in etwas längerem Intervall (1 min). Was rein theoretisch auch reicht.

                                        Wenn Du dein Script zur Verfügung stellen kannst wäre das natürlich super. Das würde mich freuen.
                                        Das Webinterface ist ja quasi fast LIVE.

                                        Bernd 0B Offline
                                        Bernd 0B Offline
                                        Bernd 0
                                        schrieb am zuletzt editiert von Bernd 0
                                        #287

                                        @borsti84 here you go 🚀 - IOBroker JavaScript. Einmal via Datenpunkt und ebenso UDP send to Loxone

                                        // === Konfiguration ===
                                        const ip = '192.168.178.xx';
                                        const port = 8214;
                                        const password = '999999';
                                        const abfrageIntervall = 10 * 1000; // 10 Sekunden
                                        
                                        // === UDP-Konfiguration für Loxone ===
                                        const udpHost = '192.168.178.xx';
                                        const udpPort = 7000;
                                        
                                        // === interner Zustand zum Vergleich bei Änderungen ===
                                        const lastValues = {
                                            Heizung: null,
                                            Warmwasser: null,
                                            Gesamt: null
                                        };
                                        
                                        // === UDP-Funktion ===
                                        function sendeUDP(name, wert) {
                                            const dgram = require('dgram');
                                            const client = dgram.createSocket('udp4');
                                            const formatted = wert.toFixed(2); // Punkt als Dezimaltrennzeichen
                                            const befehl = `WP.${name}=${formatted}`;
                                            const message = Buffer.from(befehl);
                                            client.send(message, 0, message.length, udpPort, udpHost, (err) => {
                                                if (err) {
                                                    console.error(`❌ Fehler beim Senden an Loxone (${name}):`, err.message);
                                                } else {
                                                    console.log(`📤 UDP gesendet: ${befehl}`);
                                                }
                                                client.close();
                                            });
                                        }
                                        
                                        let leistungsaufnahmeId = null;
                                        
                                        // === WebSocket einrichten ===
                                        const WebSocket = require('ws');
                                        const ws = new WebSocket(`ws://${ip}:${port}`, 'Lux_WS');
                                        
                                        ws.on('open', () => {
                                            console.log('✅ WebSocket verbunden – Sende Login...');
                                            ws.send(`LOGIN;${password}`);
                                        });
                                        
                                        ws.on('message', async (data) => {
                                            let raw = "";
                                            if (Buffer.isBuffer(data)) {
                                                raw = data.toString('utf8');
                                            } else if (typeof data === "string") {
                                                raw = data;
                                            } else {
                                                console.error("❌ Unbekannter Nachrichtentyp:", typeof data);
                                                return;
                                            }
                                        
                                            try {
                                                const msg = JSON.parse(raw);
                                        
                                                if (msg.type === "Navigation") {
                                                    leistungsaufnahmeId = findIdByName(msg.items, "Leistungsaufnahme");
                                        
                                                    if (leistungsaufnahmeId) {
                                                        ws.send(`GET;${leistungsaufnahmeId}`);
                                                        setInterval(() => {
                                                            ws.send(`GET;${leistungsaufnahmeId}`);
                                                        }, abfrageIntervall);
                                                    } else {
                                                        console.error("❌ Konnte ID für 'Leistungsaufnahme' nicht finden!");
                                                    }
                                                }
                                        
                                                if (msg.type === "Content" && msg.name === "Leistungsaufnahme" && msg.items) {
                                                    for (const item of msg.items) {
                                                        const name = item.name.trim(); // z. B. "Gesamt"
                                                        const rawValue = item.value.trim(); // z. B. "5000.0 kWh"
                                                        const numericValue = parseFloat(rawValue.replace(",", "."));
                                                        const id = `javascript.0.Wärmepumpe.Leistungsaufnahme.${name}`;
                                        
                                                        // Datenpunkt anlegen, falls nicht vorhanden
                                                        if (!existsObject(id)) {
                                                            await createStateAsync(id, 0, {
                                                                name: `Leistungsaufnahme ${name}`,
                                                                unit: 'kWh',
                                                                read: true,
                                                                write: true,
                                                                type: 'number'
                                                            });
                                                        }
                                        
                                                        // Schreiben in ioBroker nur bei Änderung oder null
                                                        const oldVal = getState(id)?.val;
                                                        if (oldVal !== numericValue) {
                                                            await setStateAsync(id, { val: numericValue, ack: true });
                                                        }
                                        
                                                        // UDP nur bei Änderung senden
                                                        if (lastValues[name] !== numericValue) {
                                                            sendeUDP(name, numericValue);
                                                            lastValues[name] = numericValue;
                                                        }
                                                    }
                                                }
                                        
                                            } catch (err) {
                                                console.error("❌ Fehler beim Parsen:", err.message);
                                                console.error(raw);
                                            }
                                        });
                                        
                                        ws.on('close', () => {
                                            console.warn('🔌 Verbindung zur Wärmepumpe getrennt!');
                                        });
                                        
                                        // === Funktion zur ID-Suche ===
                                        function findIdByName(items, targetName) {
                                            for (const item of items) {
                                                if (item.name === targetName && item.id) {
                                                    return item.id;
                                                }
                                                if (item.items && item.items.length > 0) {
                                                    const result = findIdByName(item.items, targetName);
                                                    if (result) return result;
                                                }
                                            }
                                            return null;
                                        }
                                        
                                        
                                        
                                        B 1 Antwort Letzte Antwort
                                        0
                                        • Bernd 0B Bernd 0

                                          @borsti84 here you go 🚀 - IOBroker JavaScript. Einmal via Datenpunkt und ebenso UDP send to Loxone

                                          // === Konfiguration ===
                                          const ip = '192.168.178.xx';
                                          const port = 8214;
                                          const password = '999999';
                                          const abfrageIntervall = 10 * 1000; // 10 Sekunden
                                          
                                          // === UDP-Konfiguration für Loxone ===
                                          const udpHost = '192.168.178.xx';
                                          const udpPort = 7000;
                                          
                                          // === interner Zustand zum Vergleich bei Änderungen ===
                                          const lastValues = {
                                              Heizung: null,
                                              Warmwasser: null,
                                              Gesamt: null
                                          };
                                          
                                          // === UDP-Funktion ===
                                          function sendeUDP(name, wert) {
                                              const dgram = require('dgram');
                                              const client = dgram.createSocket('udp4');
                                              const formatted = wert.toFixed(2); // Punkt als Dezimaltrennzeichen
                                              const befehl = `WP.${name}=${formatted}`;
                                              const message = Buffer.from(befehl);
                                              client.send(message, 0, message.length, udpPort, udpHost, (err) => {
                                                  if (err) {
                                                      console.error(`❌ Fehler beim Senden an Loxone (${name}):`, err.message);
                                                  } else {
                                                      console.log(`📤 UDP gesendet: ${befehl}`);
                                                  }
                                                  client.close();
                                              });
                                          }
                                          
                                          let leistungsaufnahmeId = null;
                                          
                                          // === WebSocket einrichten ===
                                          const WebSocket = require('ws');
                                          const ws = new WebSocket(`ws://${ip}:${port}`, 'Lux_WS');
                                          
                                          ws.on('open', () => {
                                              console.log('✅ WebSocket verbunden – Sende Login...');
                                              ws.send(`LOGIN;${password}`);
                                          });
                                          
                                          ws.on('message', async (data) => {
                                              let raw = "";
                                              if (Buffer.isBuffer(data)) {
                                                  raw = data.toString('utf8');
                                              } else if (typeof data === "string") {
                                                  raw = data;
                                              } else {
                                                  console.error("❌ Unbekannter Nachrichtentyp:", typeof data);
                                                  return;
                                              }
                                          
                                              try {
                                                  const msg = JSON.parse(raw);
                                          
                                                  if (msg.type === "Navigation") {
                                                      leistungsaufnahmeId = findIdByName(msg.items, "Leistungsaufnahme");
                                          
                                                      if (leistungsaufnahmeId) {
                                                          ws.send(`GET;${leistungsaufnahmeId}`);
                                                          setInterval(() => {
                                                              ws.send(`GET;${leistungsaufnahmeId}`);
                                                          }, abfrageIntervall);
                                                      } else {
                                                          console.error("❌ Konnte ID für 'Leistungsaufnahme' nicht finden!");
                                                      }
                                                  }
                                          
                                                  if (msg.type === "Content" && msg.name === "Leistungsaufnahme" && msg.items) {
                                                      for (const item of msg.items) {
                                                          const name = item.name.trim(); // z. B. "Gesamt"
                                                          const rawValue = item.value.trim(); // z. B. "5000.0 kWh"
                                                          const numericValue = parseFloat(rawValue.replace(",", "."));
                                                          const id = `javascript.0.Wärmepumpe.Leistungsaufnahme.${name}`;
                                          
                                                          // Datenpunkt anlegen, falls nicht vorhanden
                                                          if (!existsObject(id)) {
                                                              await createStateAsync(id, 0, {
                                                                  name: `Leistungsaufnahme ${name}`,
                                                                  unit: 'kWh',
                                                                  read: true,
                                                                  write: true,
                                                                  type: 'number'
                                                              });
                                                          }
                                          
                                                          // Schreiben in ioBroker nur bei Änderung oder null
                                                          const oldVal = getState(id)?.val;
                                                          if (oldVal !== numericValue) {
                                                              await setStateAsync(id, { val: numericValue, ack: true });
                                                          }
                                          
                                                          // UDP nur bei Änderung senden
                                                          if (lastValues[name] !== numericValue) {
                                                              sendeUDP(name, numericValue);
                                                              lastValues[name] = numericValue;
                                                          }
                                                      }
                                                  }
                                          
                                              } catch (err) {
                                                  console.error("❌ Fehler beim Parsen:", err.message);
                                                  console.error(raw);
                                              }
                                          });
                                          
                                          ws.on('close', () => {
                                              console.warn('🔌 Verbindung zur Wärmepumpe getrennt!');
                                          });
                                          
                                          // === Funktion zur ID-Suche ===
                                          function findIdByName(items, targetName) {
                                              for (const item of items) {
                                                  if (item.name === targetName && item.id) {
                                                      return item.id;
                                                  }
                                                  if (item.items && item.items.length > 0) {
                                                      const result = findIdByName(item.items, targetName);
                                                      if (result) return result;
                                                  }
                                              }
                                              return null;
                                          }
                                          
                                          
                                          
                                          B Offline
                                          B Offline
                                          Borsti84
                                          schrieb am zuletzt editiert von
                                          #288

                                          @bernd-0

                                          Vielen Dank. Das ist echt Klasse. Funktioniert Prima. DANKE DANKE DANKE 🙂

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          738

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe