Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [gelöst] mqtt Adapter, publish/subscribe schaukeln sich auf

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    511

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

[gelöst] mqtt Adapter, publish/subscribe schaukeln sich auf

Scheduled Pinned Locked Moved ioBroker Allgemein
mqtt adapter publish subscribeaufschaukeln message
8 Posts 3 Posters 1.1k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • greyhoundG Offline
    greyhoundG Offline
    greyhound
    wrote on last edited by greyhound
    #1

    Hallo mosquito und mqtt-Adapter-Gurus,
    um meine PiFace-Steuerung zu retten, habe ich von dem Raspberry 3 alles entfernt, was nicht direkt mit dem PiFace zu tun hat, also VIS und andere Adapter. Dann habe ich ioBroker mit den höchsten Versionen der benötigten Adapter versorgt, die noch unter node 8.latest laufen.
    Alles andere läuft nun auf einem Raspberry Pi4 mit den "latest"-Versionen unter node 12.latest.

    Über mein PiFace-Rack schalte ich unter anderem meine Bewässerung.
    Die Visualisierung dazu läuft nun auf dem Pi4, also müssen die States dorthin, das ist mir mit entsprechender Konfiguration auch gelungen,
    der PiFace-Pi published via mqtt als Client die relevanten States: piface.*,javascript.1.watering.garden.*
    Auf dem Pi4 habe ich entsprechende subscriptions konfiguriert: piface/#, javascript/1/watering/garden/#
    Diese States werden auch schön unter mqtt.0 angelegt und nach Anpassung der View korrekt angezeigt.
    Im Automatikmodus sehe ich nun in meiner Visualisierung ziemlich zeitnah, wie die Kreise durchgeschaltet werden, eigentlich alles schön.

    Über die Visualisierung kann ich auch manuell Bewässerungskreise für eine ausgewählte Zeit einschalten.
    Die geänderten Werte werden unter mqtt.0.javascript.1.watering.garden.... allem Anschein nach nicht automatisch published, also konfigurieren: javascript.1.watering.garden.circuit.*.duration_set, javascript.1.watering.garden.circuit.action
    Gut, jetzt sind die Änderungen in mqtt.fx zu sehen.
    Sie sind damit aber noch immer nicht auf dem PiFace-Pi! Ja, jetzt fehlt da die subscription: javascript/1/watering/garden/circuit/*/duration_set, javascript/1/watering/garden/circuit/action

    So, nun die Dauer setzen und die Aktion auslösen, bin gespannt, wäre jetzt noch ein schöner Abschluss für den langen Abend.
    Hm, die Vis hat Verbindungsprobleme, Log auch, gleiches beim PiFace-Pi, mqtt.fx zeigt eine Flut von Nachrichten, die action auf den beiden Pi's spielen ping pong und ich schaffe es gerade noch via ssh den mqtt.0 auf dem Pi4 zu stoppen.
    Aber warum schaukeln die Messages sich hoch?

    gedachter Ablauf: Auf dem Pi4 wird via der View der Action-Code in den State geschrieben, mqtt.0 sendet die Änderung an den Broker, der mqtt-Client auf dem PiFace-Pi holt sich den geänderten Wert und schreibt ihn nach javascript.1.watering.garden.circuit.action. Das Bewässerungsskript reagiert via der dort erzeugten subscription auf die Änderung, löst die Aktion aus und setzt den State für action auf 0 zurück.
    Dieser Wert wird wieder published und vom Pi4 via der subscription eingelesen und alles ist schön in sync.

    Was läuft schief?
    Auf dem Pi4 ist im Log zu sehen, dass die 0 ankommt, es wird aber sofort wieder der action-Code (Zahl > 0) zurückgeschrieben. Warum?
    Das produziert dann wieder den unter gedachter Ablauf beschriebenen Ablauf und so schaukelt sich das immer weiter hoch?

    Ursache?
    Das Setzen der Werte erfolgt via der View und da wird nach meiner Kenntnis kein ack==true gesetzt. Wenn ein Skript einen Wert per setState setzt, normalerweise auch nicht. In der mqtt-Konfiguration habe ich "Sende auch Zustände" aktiviert. Sollte doch hier keine Rolle spielen oder?

    Habe ich in meiner Konfiguration einen Denkfehler? Ist es normal, dass in einer solchen Konfiguration (überschneidene subscriptions und publishs) sich die Änderungen hochschaukeln?
    Sollte ich die Änderungen auf einem anderen Weg zum PiFace-Pi senden?

    Ach ja, das Problem tritt unabhängig davon auf, ob ich den Broker des ioBroker mqtt-Adapters nutze oder den mosquitto.

    Wie sind eure Erfahrungen und Tipps?

    ioBroker auf ODROID-XU4 / Influx u. a. auf FUJITSU D3400-B, Celeron G3900, 16 GB RAM / CCU2 / Nuki

    M WalW 2 Replies Last reply
    0
    • greyhoundG greyhound

      Hallo mosquito und mqtt-Adapter-Gurus,
      um meine PiFace-Steuerung zu retten, habe ich von dem Raspberry 3 alles entfernt, was nicht direkt mit dem PiFace zu tun hat, also VIS und andere Adapter. Dann habe ich ioBroker mit den höchsten Versionen der benötigten Adapter versorgt, die noch unter node 8.latest laufen.
      Alles andere läuft nun auf einem Raspberry Pi4 mit den "latest"-Versionen unter node 12.latest.

      Über mein PiFace-Rack schalte ich unter anderem meine Bewässerung.
      Die Visualisierung dazu läuft nun auf dem Pi4, also müssen die States dorthin, das ist mir mit entsprechender Konfiguration auch gelungen,
      der PiFace-Pi published via mqtt als Client die relevanten States: piface.*,javascript.1.watering.garden.*
      Auf dem Pi4 habe ich entsprechende subscriptions konfiguriert: piface/#, javascript/1/watering/garden/#
      Diese States werden auch schön unter mqtt.0 angelegt und nach Anpassung der View korrekt angezeigt.
      Im Automatikmodus sehe ich nun in meiner Visualisierung ziemlich zeitnah, wie die Kreise durchgeschaltet werden, eigentlich alles schön.

      Über die Visualisierung kann ich auch manuell Bewässerungskreise für eine ausgewählte Zeit einschalten.
      Die geänderten Werte werden unter mqtt.0.javascript.1.watering.garden.... allem Anschein nach nicht automatisch published, also konfigurieren: javascript.1.watering.garden.circuit.*.duration_set, javascript.1.watering.garden.circuit.action
      Gut, jetzt sind die Änderungen in mqtt.fx zu sehen.
      Sie sind damit aber noch immer nicht auf dem PiFace-Pi! Ja, jetzt fehlt da die subscription: javascript/1/watering/garden/circuit/*/duration_set, javascript/1/watering/garden/circuit/action

      So, nun die Dauer setzen und die Aktion auslösen, bin gespannt, wäre jetzt noch ein schöner Abschluss für den langen Abend.
      Hm, die Vis hat Verbindungsprobleme, Log auch, gleiches beim PiFace-Pi, mqtt.fx zeigt eine Flut von Nachrichten, die action auf den beiden Pi's spielen ping pong und ich schaffe es gerade noch via ssh den mqtt.0 auf dem Pi4 zu stoppen.
      Aber warum schaukeln die Messages sich hoch?

      gedachter Ablauf: Auf dem Pi4 wird via der View der Action-Code in den State geschrieben, mqtt.0 sendet die Änderung an den Broker, der mqtt-Client auf dem PiFace-Pi holt sich den geänderten Wert und schreibt ihn nach javascript.1.watering.garden.circuit.action. Das Bewässerungsskript reagiert via der dort erzeugten subscription auf die Änderung, löst die Aktion aus und setzt den State für action auf 0 zurück.
      Dieser Wert wird wieder published und vom Pi4 via der subscription eingelesen und alles ist schön in sync.

      Was läuft schief?
      Auf dem Pi4 ist im Log zu sehen, dass die 0 ankommt, es wird aber sofort wieder der action-Code (Zahl > 0) zurückgeschrieben. Warum?
      Das produziert dann wieder den unter gedachter Ablauf beschriebenen Ablauf und so schaukelt sich das immer weiter hoch?

      Ursache?
      Das Setzen der Werte erfolgt via der View und da wird nach meiner Kenntnis kein ack==true gesetzt. Wenn ein Skript einen Wert per setState setzt, normalerweise auch nicht. In der mqtt-Konfiguration habe ich "Sende auch Zustände" aktiviert. Sollte doch hier keine Rolle spielen oder?

      Habe ich in meiner Konfiguration einen Denkfehler? Ist es normal, dass in einer solchen Konfiguration (überschneidene subscriptions und publishs) sich die Änderungen hochschaukeln?
      Sollte ich die Änderungen auf einem anderen Weg zum PiFace-Pi senden?

      Ach ja, das Problem tritt unabhängig davon auf, ob ich den Broker des ioBroker mqtt-Adapters nutze oder den mosquitto.

      Wie sind eure Erfahrungen und Tipps?

      M Online
      M Online
      MCU
      wrote on last edited by
      #2

      @greyhound Zeig doch mal die Einstellungen von der MQTT-Instanz.

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      1 Reply Last reply
      0
      • greyhoundG greyhound

        Hallo mosquito und mqtt-Adapter-Gurus,
        um meine PiFace-Steuerung zu retten, habe ich von dem Raspberry 3 alles entfernt, was nicht direkt mit dem PiFace zu tun hat, also VIS und andere Adapter. Dann habe ich ioBroker mit den höchsten Versionen der benötigten Adapter versorgt, die noch unter node 8.latest laufen.
        Alles andere läuft nun auf einem Raspberry Pi4 mit den "latest"-Versionen unter node 12.latest.

        Über mein PiFace-Rack schalte ich unter anderem meine Bewässerung.
        Die Visualisierung dazu läuft nun auf dem Pi4, also müssen die States dorthin, das ist mir mit entsprechender Konfiguration auch gelungen,
        der PiFace-Pi published via mqtt als Client die relevanten States: piface.*,javascript.1.watering.garden.*
        Auf dem Pi4 habe ich entsprechende subscriptions konfiguriert: piface/#, javascript/1/watering/garden/#
        Diese States werden auch schön unter mqtt.0 angelegt und nach Anpassung der View korrekt angezeigt.
        Im Automatikmodus sehe ich nun in meiner Visualisierung ziemlich zeitnah, wie die Kreise durchgeschaltet werden, eigentlich alles schön.

        Über die Visualisierung kann ich auch manuell Bewässerungskreise für eine ausgewählte Zeit einschalten.
        Die geänderten Werte werden unter mqtt.0.javascript.1.watering.garden.... allem Anschein nach nicht automatisch published, also konfigurieren: javascript.1.watering.garden.circuit.*.duration_set, javascript.1.watering.garden.circuit.action
        Gut, jetzt sind die Änderungen in mqtt.fx zu sehen.
        Sie sind damit aber noch immer nicht auf dem PiFace-Pi! Ja, jetzt fehlt da die subscription: javascript/1/watering/garden/circuit/*/duration_set, javascript/1/watering/garden/circuit/action

        So, nun die Dauer setzen und die Aktion auslösen, bin gespannt, wäre jetzt noch ein schöner Abschluss für den langen Abend.
        Hm, die Vis hat Verbindungsprobleme, Log auch, gleiches beim PiFace-Pi, mqtt.fx zeigt eine Flut von Nachrichten, die action auf den beiden Pi's spielen ping pong und ich schaffe es gerade noch via ssh den mqtt.0 auf dem Pi4 zu stoppen.
        Aber warum schaukeln die Messages sich hoch?

        gedachter Ablauf: Auf dem Pi4 wird via der View der Action-Code in den State geschrieben, mqtt.0 sendet die Änderung an den Broker, der mqtt-Client auf dem PiFace-Pi holt sich den geänderten Wert und schreibt ihn nach javascript.1.watering.garden.circuit.action. Das Bewässerungsskript reagiert via der dort erzeugten subscription auf die Änderung, löst die Aktion aus und setzt den State für action auf 0 zurück.
        Dieser Wert wird wieder published und vom Pi4 via der subscription eingelesen und alles ist schön in sync.

        Was läuft schief?
        Auf dem Pi4 ist im Log zu sehen, dass die 0 ankommt, es wird aber sofort wieder der action-Code (Zahl > 0) zurückgeschrieben. Warum?
        Das produziert dann wieder den unter gedachter Ablauf beschriebenen Ablauf und so schaukelt sich das immer weiter hoch?

        Ursache?
        Das Setzen der Werte erfolgt via der View und da wird nach meiner Kenntnis kein ack==true gesetzt. Wenn ein Skript einen Wert per setState setzt, normalerweise auch nicht. In der mqtt-Konfiguration habe ich "Sende auch Zustände" aktiviert. Sollte doch hier keine Rolle spielen oder?

        Habe ich in meiner Konfiguration einen Denkfehler? Ist es normal, dass in einer solchen Konfiguration (überschneidene subscriptions und publishs) sich die Änderungen hochschaukeln?
        Sollte ich die Änderungen auf einem anderen Weg zum PiFace-Pi senden?

        Ach ja, das Problem tritt unabhängig davon auf, ob ich den Broker des ioBroker mqtt-Adapters nutze oder den mosquitto.

        Wie sind eure Erfahrungen und Tipps?

        WalW Offline
        WalW Offline
        Wal
        Developer
        wrote on last edited by Wal
        #3

        @greyhound
        ich nutze schon seit ca. 2 Jahren dieses Projekt ohne Probleme und Ausfall.
        Hier meine MQTT-Server-Einstellungen:
        Screenshot 2020-10-10 112803.png.
        Wichtig ist das nur das mqtt.0.* in der Maske steht, sonst hängt der Server von der Datenflut.

        Gruß
        Walter

        DoorIO-Adapter
        wioBrowser-Adapter und wioBrowser

        greyhoundG 1 Reply Last reply
        0
        • WalW Wal

          @greyhound
          ich nutze schon seit ca. 2 Jahren dieses Projekt ohne Probleme und Ausfall.
          Hier meine MQTT-Server-Einstellungen:
          Screenshot 2020-10-10 112803.png.
          Wichtig ist das nur das mqtt.0.* in der Maske steht, sonst hängt der Server von der Datenflut.

          greyhoundG Offline
          greyhoundG Offline
          greyhound
          wrote on last edited by
          #4

          Danke für eure Rückmeldungen.

          Hier meine Einstellungen:
          PiFace-Pi-Client
          29432d5d-ca7c-45d4-a579-ba7def15cb62-image.png
          "Subscribe patterns" waren konfiguriert auf: javascript/1/watering/garden/circuit//duration_set, javascript/1/watering/garden/circuit/action
          Wenn ich diesen Parameter leer lasse, scheint das wie # zu wirken, auf einem anderen ioBrokersystem ist mir da viel überschrieben worden.
          publish: javascript.1.scriptEnabled.
          ,javascript.0.scriptEnabled.,piface.,javascript.1.watering.garden.,javascript.0.lights.,javascript.0.alarm.*

          Pi4
          eea19efd-ea4a-4777-92f7-889f84aad627-image.png
          subscribe: javascript/1/scriptEnabled/#,piface/#,javascript/1/watering/garden/#,javascript/0/lights.#,javascript/0/alarm/#,javascript/0/scriptEnabled/#
          publish war vor dem crash konfiguriert auf: hm-rpc.0.OEQ0996420.1.STATE,javascript.1.watering.garden.circuit.*.duration_set, javascript.1.watering.garden.circuit.action

          Prinzipiell funktioniert es ja in eine Richtung. Aber anscheinend fehlt eine Entkopplung wenn es zum Teil bidirektional arbeiten soll.
          Hier
          PiFace-Pi sendet alles unter javascript.1.watering.garden.*
          Pi4 empfängt alles
          Pi4 wird ein Wert unter javascript.1.watering.garden.* geändert und gesendet
          PiFace-Pi empfängt die Änderung
          PiFace-Pi Skript reagiert und setzt den Datenpunkt auf 0 und sendet den geänderten Wert
          Pi4 empfängt den Wert 0 und sendet nun den vorherigen Wert erneut, warum?
          Nach meinem Verständnis wäre die Kette hier zu Ende.
          Hat das was mit dem retain-flag zu tun?

          ioBroker auf ODROID-XU4 / Influx u. a. auf FUJITSU D3400-B, Celeron G3900, 16 GB RAM / CCU2 / Nuki

          M 1 Reply Last reply
          0
          • greyhoundG greyhound

            Danke für eure Rückmeldungen.

            Hier meine Einstellungen:
            PiFace-Pi-Client
            29432d5d-ca7c-45d4-a579-ba7def15cb62-image.png
            "Subscribe patterns" waren konfiguriert auf: javascript/1/watering/garden/circuit//duration_set, javascript/1/watering/garden/circuit/action
            Wenn ich diesen Parameter leer lasse, scheint das wie # zu wirken, auf einem anderen ioBrokersystem ist mir da viel überschrieben worden.
            publish: javascript.1.scriptEnabled.
            ,javascript.0.scriptEnabled.,piface.,javascript.1.watering.garden.,javascript.0.lights.,javascript.0.alarm.*

            Pi4
            eea19efd-ea4a-4777-92f7-889f84aad627-image.png
            subscribe: javascript/1/scriptEnabled/#,piface/#,javascript/1/watering/garden/#,javascript/0/lights.#,javascript/0/alarm/#,javascript/0/scriptEnabled/#
            publish war vor dem crash konfiguriert auf: hm-rpc.0.OEQ0996420.1.STATE,javascript.1.watering.garden.circuit.*.duration_set, javascript.1.watering.garden.circuit.action

            Prinzipiell funktioniert es ja in eine Richtung. Aber anscheinend fehlt eine Entkopplung wenn es zum Teil bidirektional arbeiten soll.
            Hier
            PiFace-Pi sendet alles unter javascript.1.watering.garden.*
            Pi4 empfängt alles
            Pi4 wird ein Wert unter javascript.1.watering.garden.* geändert und gesendet
            PiFace-Pi empfängt die Änderung
            PiFace-Pi Skript reagiert und setzt den Datenpunkt auf 0 und sendet den geänderten Wert
            Pi4 empfängt den Wert 0 und sendet nun den vorherigen Wert erneut, warum?
            Nach meinem Verständnis wäre die Kette hier zu Ende.
            Hat das was mit dem retain-flag zu tun?

            M Online
            M Online
            MCU
            wrote on last edited by
            #5

            @greyhound Bei mir sieht es so aus:
            eb2d774a-c648-4cf0-b669-b8d120095b20-image.png
            Bislang keine Probleme.

            NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
            Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

            greyhoundG 1 Reply Last reply
            0
            • M MCU

              @greyhound Bei mir sieht es so aus:
              eb2d774a-c648-4cf0-b669-b8d120095b20-image.png
              Bislang keine Probleme.

              greyhoundG Offline
              greyhoundG Offline
              greyhound
              wrote on last edited by
              #6

              @MCU
              D. h., du published alle states deiner Installation. Wie groß ist deine Installation?
              Hast du 2 ioBroker-Installationen die sich gegenseitig aktualisieren?

              ioBroker auf ODROID-XU4 / Influx u. a. auf FUJITSU D3400-B, Celeron G3900, 16 GB RAM / CCU2 / Nuki

              M 1 Reply Last reply
              0
              • greyhoundG greyhound

                @MCU
                D. h., du published alle states deiner Installation. Wie groß ist deine Installation?
                Hast du 2 ioBroker-Installationen die sich gegenseitig aktualisieren?

                M Online
                M Online
                MCU
                wrote on last edited by
                #7

                @greyhound Nutze es nur für einige ESP8266 und ESP32 Versuche. Da kommt nicht soviel zusammen.

                NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
                Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

                1 Reply Last reply
                0
                • greyhoundG Offline
                  greyhoundG Offline
                  greyhound
                  wrote on last edited by
                  #8

                  Nach vielen Experimenten und Stunden musste ich leider einsehen, dass das so nichts wird und einen eigenen Adapter geschrieben. siehe iobmqtt - ioBroker Message Fornat Adapter

                  ioBroker auf ODROID-XU4 / Influx u. a. auf FUJITSU D3400-B, Celeron G3900, 16 GB RAM / CCU2 / Nuki

                  1 Reply Last reply
                  0
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  Support us

                  ioBroker
                  Community Adapters
                  Donate
                  FAQ Cloud / IOT
                  HowTo: Node.js-Update
                  HowTo: Backup/Restore
                  Downloads
                  BLOG

                  670

                  Online

                  32.7k

                  Users

                  82.5k

                  Topics

                  1.3m

                  Posts
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Home
                  • Recent
                  • Tags
                  • Unread 0
                  • Categories
                  • Unreplied
                  • Popular
                  • GitHub
                  • Docu
                  • Hilfe