Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Automatisierung
    5. MQTT und KNX

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    MQTT und KNX

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Frankentronik last edited by

      Hallo zusammen.
      Ich versuche gerade per MQTT KNX zu steuern.
      Unter den Objekten habe ich die Gruppenadressen, die ich manuell steuern kann.
      Wert auf true- Wert setzten - und Licht geht an. Unter Wert steht dann auch nun true. Ausschalten das gleiche.
      Soweit so gut.

      Die Variable des KNX Objektes kann ich per MQTT auf true oder false setzen. Der Wert wird aber nicht im KNX gesetzt. Nur die Variable überschrieben.

      Probiere schon seit Tagen rum und habe auch nichts brauchbares im Netz gefunden.
      Ist das eine Einstellung im KNX Adapter oder muss ich per MQTT einen seperaten Befehl senden zum Wert setzen.
      Danke

      arteck 1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @Frankentronik last edited by

        @frankentronik sagte in MQTT und KNX:

        Ist das eine Einstellung im KNX Adapter oder muss ich per MQTT einen seperaten Befehl senden zum Wert setzen.

        wie setzt du das ... script , blockly, dirket in Object ?

        F 1 Reply Last reply Reply Quote 1
        • F
          Frankentronik @arteck last edited by

          @arteck said in MQTT und KNX:

          @frankentronik sagte in MQTT und KNX:

          Ist das eine Einstellung im KNX Adapter oder muss ich per MQTT einen seperaten Befehl senden zum Wert setzen.

          wie setzt du das ... script , blockly, dirket in Object ?

          Ich habe ein Programm in Delphi geschrieben, welches den Wert direkt per MQTT ändert.
          Der Wert läst sich beschreiben, (true und false) aber der Adapter gibt die Aktion nicht weiter.

          1 Reply Last reply Reply Quote 0
          • arteck
            arteck Developer Most Active last edited by

            @frankentronik sagte in MQTT und KNX:

            Der Wert wird aber nicht im KNX gesetzt

            geht es dirket ..im Object ??

            F 1 Reply Last reply Reply Quote 0
            • F
              Frankentronik @arteck last edited by

              @arteck said in MQTT und KNX:

              @frankentronik sagte in MQTT und KNX:

              Der Wert wird aber nicht im KNX gesetzt

              geht es dirket ..im Object ??

              Ja. Wenn man im Objekt (KNX Iobroker) auf true oder false drückt. kommt ein Fenster, welches den Wert (auch aus Delphi) übernimmt. Dort ist ein Schalter mit Wert senden. Dann wird die Aktion ausgeführt.

              Das müsste entweder automatisch passieren, oder ich müsste an diesen Schalter per MQTT (Delphi) herankommen.

              Viele Grüße

              Marc Berg 1 Reply Last reply Reply Quote 0
              • Marc Berg
                Marc Berg Most Active @Frankentronik last edited by

                @frankentronik sagte in MQTT und KNX:

                Ja. Wenn man im Objekt (KNX Iobroker) auf true oder false drückt. kommt ein Fenster, welches den Wert (auch aus Delphi) übernimmt. Dort ist ein Schalter mit Wert senden. Dann wird die Aktion ausgeführt.

                Leider schreibst du nichts zu deiner MQTT-Umgebung (also welcher Broker, welcher Adapter).
                Ich nehme an, du nutzt den MQTT Adapter als Client oder Broker. Dieser schreibt MQTT Nachrichten als "acknowledged" in die Objekte. Damit reagiert dein KNX Adapter richtigerweise nicht.
                Abhilfe: Entweder den MQTT-Client Adapter nutzen oder per Skript/Blockly/Node Red den KNX State setzen.

                F 1 Reply Last reply Reply Quote 1
                • F
                  Frankentronik @Marc Berg last edited by

                  @marc-berg said in MQTT und KNX:

                  @frankentronik sagte in MQTT und KNX:

                  Ja. Wenn man im Objekt (KNX Iobroker) auf true oder false drückt. kommt ein Fenster, welches den Wert (auch aus Delphi) übernimmt. Dort ist ein Schalter mit Wert senden. Dann wird die Aktion ausgeführt.

                  Leider schreibst du nichts zu deiner MQTT-Umgebung (also welcher Broker, welcher Adapter).
                  Ich nehme an, du nutzt den MQTT Adapter als Client oder Broker. Dieser schreibt MQTT Nachrichten als "acknowledged" in die Objekte. Damit reagiert dein KNX Adapter richtigerweise nicht.
                  Abhilfe: Entweder den MQTT-Client Adapter nutzen oder per Skript/Blockly/Node Red den KNX State setzen.

                  Hallo
                  In Delphi nutze ich den TMSMQTT Client
                  Im IOBroker den mqtt Broker/Client V5.2.0 eingestellt als Server/Broker

                  Was ist dann der MQTT-Client Adapter?

                  Viele Grüße

                  Stefan

                  Marc Berg 1 Reply Last reply Reply Quote 0
                  • Marc Berg
                    Marc Berg Most Active @Frankentronik last edited by

                    @frankentronik sagte in MQTT und KNX:

                    Was ist dann der MQTT-Client Adapter?

                    Das ist ein ioBroker Adapter, der installiert werden muss und der als MQTT Client läuft. Hier hast du den Vorteil, dass man das "Ack" Flag abschalten kann:

                    91ce2460-ce4c-4807-9f48-6677175be7da-grafik.png

                    Du müsstest also im MQTT Adapter das Publizieren der KNX States abschalten (ich nehme an, das hast du gemacht)
                    7757c3a4-1147-4a80-80e2-6fa90843c6aa-grafik.png

                    und stattdessen den MQTT-Client Adapter für den Datenpunkt (wie immer der auch heißt) aktivieren. Wie das MQTT Topic heißt, kannst du definieren.

                    F 1 Reply Last reply Reply Quote 0
                    • F
                      Frankentronik @Marc Berg last edited by

                      @marc-berg said in MQTT und KNX:

                      @frankentronik sagte in MQTT und KNX:

                      Was ist dann der MQTT-Client Adapter?

                      Das ist ein ioBroker Adapter, der installiert werden muss und der als MQTT Client läuft. Hier hast du den Vorteil, dass man das "Ack" Flag abschalten kann:

                      91ce2460-ce4c-4807-9f48-6677175be7da-grafik.png

                      Du müsstest also im MQTT Adapter das Publizieren der KNX States abschalten (ich nehme an, das hast du gemacht)
                      7757c3a4-1147-4a80-80e2-6fa90843c6aa-grafik.png

                      und stattdessen den MQTT-Client Adapter für den Datenpunkt (wie immer der auch heißt) aktivieren. Wie das MQTT Topic heißt, kannst du definieren.

                      Der Client läuft aber in Delphi. Im IOBrocker benötige ich den Server. Deshalb habe ich den MQTT Broker/Client installiert und als Server eingerichtet.
                      Ich werde morgen mal TMS anschreiben, was die dazu sagen. In dem Befehl, den ich gerade verwendet habe, gibt es ein Retain-Flag. Dieser hat aber keinerlei Auswirkung. Vom ACK steht auch nichts im Datenblatt.

                      Viele Grüße und Danke

                      Marc Berg Homoran 2 Replies Last reply Reply Quote 0
                      • Marc Berg
                        Marc Berg Most Active @Frankentronik last edited by Marc Berg

                        @frankentronik sagte in MQTT und KNX:

                        Der Client läuft aber in Delphi. Im IOBrocker benötige ich den Server. Deshalb habe ich den MQTT Broker/Client installiert und als Server eingerichtet.

                        Ja, ich weiß. Und mit dem MQTT-Client Adapter kommt ein weiterer Client hinzu.

                        Ich werde morgen mal TMS anschreiben, was die dazu sagen. In dem Befehl, den ich gerade verwendet habe, gibt es ein Retain-Flag. Dieser hat aber keinerlei Auswirkung. Vom ACK steht auch nichts im Datenblatt.

                        Gut gemeinter Rat: Beschäftige dich mal kurz mit den ioBroker Grundlagen (insbesondere das Thema "ack/bestätigt"-Flag).
                        https://www.youtube.com/watch?v=p5FyeifYUnw

                        Dann wird vielleicht klarer, was ich meine.

                        F 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @Frankentronik last edited by

                          @frankentronik sagte in MQTT und KNX:

                          Der Client läuft aber in Delphi.

                          Ja, du brauchst einen MQTT Broker, der muss eigentlich nur die Pakete verwalten können.

                          du brauchst aber ggf. mehrere Clients, die publishen oder subscriben.

                          https://www.iobroker.net/#de/adapters/adapterref/iobroker.mqtt-client/README.md
                          https://www.iobroker.net/#de/adapters/adapterref/iobroker.mqtt/README.md
                          (etwas ältere Doku!)

                          @frankentronik sagte in MQTT und KNX:

                          Vom ACK steht auch nichts im Datenblatt.

                          ist ja auch iobroker spezifisch

                          1 Reply Last reply Reply Quote 0
                          • F
                            Frankentronik @Marc Berg last edited by

                            @marc-berg said in MQTT und KNX:

                            @frankentronik sagte in MQTT und KNX:

                            Der Client läuft aber in Delphi. Im IOBrocker benötige ich den Server. Deshalb habe ich den MQTT Broker/Client installiert und als Server eingerichtet.

                            Ja, ich weiß. Und mit dem MQTT-Client Adapter kommt ein weiterer Client hinzu.

                            Ich werde morgen mal TMS anschreiben, was die dazu sagen. In dem Befehl, den ich gerade verwendet habe, gibt es ein Retain-Flag. Dieser hat aber keinerlei Auswirkung. Vom ACK steht auch nichts im Datenblatt.

                            Gut gemeinter Rat: Beschäftige dich mal kurz mit den ioBroker Grundlagen (insbesondere das Thema "ack/bestätigt"-Flag).
                            https://www.youtube.com/watch?v=p5FyeifYUnw

                            Dann wird vielleicht klarer, was ich meine.

                            Das mit ACK ist schon klar. Ich verstehe nur noch nicht, warum ich einen weiteren Client im IOBroker brauche.
                            Das würde ja bedeuten, ich greife nicht aufs Objekt (KNX) direkt zu (was ja funktioniert), sondern muss von Delphi (Client) -> Server -> Client->auf KNX zugreifen.
                            Das müsste doch funktionieren, wenn entweder der Server generel kein ACK sendet, oder ich das von Delphi aus steuern kann. Habe ehrlich gesagt keine Lust, für jeden KNX Datenpunkt nochmal ein Script oder Client Datenpunkte zu erstellen.

                            Marc Berg Homoran 2 Replies Last reply Reply Quote 0
                            • Marc Berg
                              Marc Berg Most Active @Frankentronik last edited by

                              @frankentronik sagte in MQTT und KNX:

                              Das müsste doch funktionieren, wenn entweder der Server generel kein ACK sendet, oder ich das von Delphi aus steuern kann.

                              Es geht halt nicht mit dem MQTT-Adapter, da er seine Datenpunkte immer mit "ack" Flag schreibt.

                              Habe ehrlich gesagt keine Lust, für jeden KNX Datenpunkt nochmal ein Script oder Client Datenpunkte zu erstellen.

                              Das musst du doch auch nicht tun. Mit dem Vorschlag musst du weder scripten noch separate Datenpunkte anlegen:

                              1. Installation MQTT-Client Adapter
                              2. Konfiguration der neuen Instanz mit den Verbindungdaten zum MQTT-Broker (in deinem Fall der MQTT Adapter)
                              3. Aktivieren des MQTT-Client Adapters auf dem vorhandenen(!) KNX-Datenpunkt (über das Zahnrädchen rechts)
                                a) nur "Subscription" aktivieren und den Haken bei "ack" deaktivieren
                                b) setzen eines beliebigen Topics (z.B. "KNX/Datenpunkt1")
                              4. vom Delphi-Client publishest du auf das Topic "KNX/Datenpunkt1"

                              In diesem Szenario benutzt du den MQTT-Adapter lediglich als Broker, der theoretisch auch gegen einen Mosquitto oder etwas anderes ausgetauscht werden könnte. Darum unbedingt den Eintrag in "publish own states" für den KNX-Namensraum wieder entfernen.

                              F 1 Reply Last reply Reply Quote 1
                              • Homoran
                                Homoran Global Moderator Administrators @Frankentronik last edited by

                                @frankentronik sagte in MQTT und KNX:

                                Ich verstehe nur noch nicht, warum ich einen weiteren Client im IOBroker brauche.

                                wie auch @Marc-Berg schreibt

                                @homoran sagte in MQTT und KNX:

                                du brauchst einen MQTT Broker, der muss eigentlich nur die Pakete verwalten können.

                                für alles andere sind Clients zuständig.
                                lediglich der iobroker MQTT Adapter im Broker Modus, kann einiges nehr, aber auch nicht alles was ein vollwertiger Client kann.

                                Dazu gibt es den MQTT Client Adapter.
                                da brauchst du nichts zu scripten, sondern nur in den Objekten am jeweiligen state die spezifischen Einstellungen vorzunehmen

                                1 Reply Last reply Reply Quote 0
                                • F
                                  Frankentronik @Marc Berg last edited by

                                  @marc-berg said in MQTT und KNX:

                                  @frankentronik sagte in MQTT und KNX:

                                  Das müsste doch funktionieren, wenn entweder der Server generel kein ACK sendet, oder ich das von Delphi aus steuern kann.

                                  Es geht halt nicht mit dem MQTT-Adapter, da er seine Datenpunkte immer mit "ack" Flag schreibt.

                                  Habe ehrlich gesagt keine Lust, für jeden KNX Datenpunkt nochmal ein Script oder Client Datenpunkte zu erstellen.

                                  Das musst du doch auch nicht tun. Mit dem Vorschlag musst du weder scripten noch separate Datenpunkte anlegen:

                                  1. Installation MQTT-Client Adapter
                                  2. Konfiguration der neuen Instanz mit den Verbindungdaten zum MQTT-Broker (in deinem Fall der MQTT Adapter)
                                  3. Aktivieren des MQTT-Client Adapters auf dem vorhandenen(!) KNX-Datenpunkt (über das Zahnrädchen rechts)
                                    a) nur "Subscription" aktivieren und den Haken bei "ack" deaktivieren
                                    b) setzen eines beliebigen Topics (z.B. "KNX/Datenpunkt1")
                                  4. vom Delphi-Client publishest du auf das Topic "KNX/Datenpunkt1"

                                  In diesem Szenario benutzt du den MQTT-Adapter lediglich als Broker, der theoretisch auch gegen einen Mosquitto oder etwas anderes ausgetauscht werden könnte. Darum unbedingt den Eintrag in "publish own states" für den KNX-Namensraum wieder entfernen.

                                  Hallo zusammen
                                  Vielen Dank.
                                  Geht nun. Objekte lassen sich schalten.
                                  Wenn ich das richtig sehe, muss ich das dann auch bei jedem KNXDatenpunkt machen und jeweils einen Topic Namen vergeben.

                                  Zu abonnieren direkt aufs KNX-Objekt oder auch über den MQTT Client?

                                  Viele Grüße

                                  Stefan

                                  Marc Berg 1 Reply Last reply Reply Quote 0
                                  • Marc Berg
                                    Marc Berg Most Active @Frankentronik last edited by

                                    @frankentronik sagte in MQTT und KNX:

                                    Wenn ich das richtig sehe, muss ich das dann auch bei jedem KNXDatenpunkt machen und jeweils einen Topic Namen vergeben.

                                    ... oder du lässt die Topic-Bezeichnung einfach so wie vorgeschlagen ("knx.0. ...")

                                    Zu abonnieren direkt aufs KNX-Objekt oder auch über den MQTT Client?

                                    Die Frage verstehe ich leider nicht.

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    989
                                    Online

                                    31.7k
                                    Users

                                    79.7k
                                    Topics

                                    1.3m
                                    Posts

                                    knx mqtt
                                    4
                                    16
                                    925
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo