Skip to content
  • Home
  • 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

Community Forum

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

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    361

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

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

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
mqtt adapter publish subscribeaufschaukeln message
8 Beiträge 3 Kommentatoren 1.1k Aufrufe 2 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.
  • greyhoundG Offline
    greyhoundG Offline
    greyhound
    schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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 Online
        WalW Online
        Wal
        Developer
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • greyhoundG Offline
                  greyhoundG Offline
                  greyhound
                  schrieb am zuletzt editiert von
                  #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 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
                  FAQ Cloud / IOT
                  HowTo: Node.js-Update
                  HowTo: Backup/Restore
                  Downloads
                  BLOG

                  648

                  Online

                  32.6k

                  Benutzer

                  81.9k

                  Themen

                  1.3m

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

                  • Du hast noch kein Konto? Registrieren

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