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. mqtt programmatisch publish topic zufügen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

mqtt programmatisch publish topic zufügen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
9 Beiträge 2 Kommentatoren 153 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.
  • R Offline
    R Offline
    rewenode
    schrieb am zuletzt editiert von
    #1

    Hallo mqtt Experten.
    Eine Frage zum MQTT Adapter.
    Ich setze den als Client ein und würde gern eine Möglichkeit finden, per Programm ein topic zum publischen hinzuzufügen. Also nicht irgend etwas an ein im Adapter hinterlegtes topic zu senden, sonder das topic selbst zum Adapter zuzufügen.
    Gibt es da eine Möglichkeit?

    1 Antwort Letzte Antwort
    0
    • Marc BergM Offline
      Marc BergM Offline
      Marc Berg
      Most Active
      schrieb am zuletzt editiert von Marc Berg
      #2

      Nutzt du noch Node-RED mit den externen Nodes? Ich werde in den nächsten Tagen eine Version mit einer Lösung für dich in der Beta veröffentlichen.

      NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

      Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

      Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

      R 1 Antwort Letzte Antwort
      0
      • Marc BergM Marc Berg

        Nutzt du noch Node-RED mit den externen Nodes? Ich werde in den nächsten Tagen eine Version mit einer Lösung für dich in der Beta veröffentlichen.

        R Offline
        R Offline
        rewenode
        schrieb am zuletzt editiert von
        #3

        @Marc-Berg Na unbedingt. Die möchte ich nicht mehr missen.
        Inzwischen laufen eigentlich alle meine NR Flows mit deinen nodes. Und das sind nicht Wenige;-)
        Bin nach wie vor happy damit. Danke nochmal.

        1 Antwort Letzte Antwort
        0
        • Marc BergM Offline
          Marc BergM Offline
          Marc Berg
          Most Active
          schrieb am zuletzt editiert von Marc Berg
          #4

          Ich hatte es schon länger in der Schublade, aber selbst noch keinen Anwendungsfall gesehen. Es gibt nun einen neuen Node "iob-setObject", hiermit kann man die Metadaten entweder komplett neu schreiben, oder selektiv ändern.

          Hier als Beta:

          https://github.com/Marc-Berg/node-red-contrib-iobroker/releases

          Beispiel-Flow:

          [
              {
                  "id": "57da8d56c3521445",
                  "type": "inject",
                  "z": "tab_mqtt_config",
                  "name": "Trigger: Config ändern",
                  "props": [
                      {
                          "p": "payload"
                      }
                  ],
                  "repeat": "",
                  "crontab": "",
                  "once": false,
                  "topic": "",
                  "payload": "",
                  "payloadType": "date",
                  "x": 160,
                  "y": 100,
                  "wires": [
                      [
                          "beeb75e9c4d8fd64"
                      ]
                  ]
              },
              {
                  "id": "beeb75e9c4d8fd64",
                  "type": "iobgetobject",
                  "z": "tab_mqtt_config",
                  "name": "Get Adapter Config",
                  "objectId": "system.adapter.mqtt.0",
                  "outputProperty": "payload",
                  "outputMode": "single",
                  "objectType": "",
                  "useWildcard": false,
                  "includeEnums": false,
                  "enumTypes": null,
                  "includeAliases": false,
                  "aliasResolution": null,
                  "server": "5661ccf2a79ab23e",
                  "x": 370,
                  "y": 100,
                  "wires": [
                      [
                          "71e771ae51e53631"
                      ]
                  ]
              },
              {
                  "id": "71e771ae51e53631",
                  "type": "change",
                  "z": "tab_mqtt_config",
                  "name": "native.publish",
                  "rules": [
                      {
                          "t": "set",
                          "p": "payload.native.publish",
                          "pt": "msg",
                          "to": "mqtt.0.test,mqtt.0.test2",
                          "tot": "str"
                      }
                  ],
                  "x": 560,
                  "y": 100,
                  "wires": [
                      [
                          "9d14c67202871683"
                      ]
                  ]
              },
              {
                  "id": "9d14c67202871683",
                  "type": "iobsetobject",
                  "z": "tab_mqtt_config",
                  "name": "Write Config",
                  "objectId": "system.adapter.mqtt.0",
                  "objectSource": "payload",
                  "objectProperty": "payload",
                  "mergeMode": "merge",
                  "validateObject": true,
                  "server": "5661ccf2a79ab23e",
                  "x": 730,
                  "y": 100,
                  "wires": [
                      [
                          "7463f3be3f5843b7"
                      ]
                  ]
              },
              {
                  "id": "7463f3be3f5843b7",
                  "type": "debug",
                  "z": "tab_mqtt_config",
                  "name": "debug 2",
                  "active": true,
                  "tosidebar": true,
                  "console": false,
                  "tostatus": false,
                  "complete": "false",
                  "statusVal": "",
                  "statusType": "auto",
                  "x": 900,
                  "y": 100,
                  "wires": []
              },
              {
                  "id": "5661ccf2a79ab23e",
                  "type": "iob-config",
                  "name": "config2",
                  "iobhost": "iobroker",
                  "iobport": "8081",
                  "usessl": false
              }
          ]
          

          Test und Änderungswünsche willkommen.

          EDIT: Flow aktualisiert, kein Restart notwendig

          NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

          Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

          Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

          R 1 Antwort Letzte Antwort
          0
          • Marc BergM Marc Berg

            Ich hatte es schon länger in der Schublade, aber selbst noch keinen Anwendungsfall gesehen. Es gibt nun einen neuen Node "iob-setObject", hiermit kann man die Metadaten entweder komplett neu schreiben, oder selektiv ändern.

            Hier als Beta:

            https://github.com/Marc-Berg/node-red-contrib-iobroker/releases

            Beispiel-Flow:

            [
                {
                    "id": "57da8d56c3521445",
                    "type": "inject",
                    "z": "tab_mqtt_config",
                    "name": "Trigger: Config ändern",
                    "props": [
                        {
                            "p": "payload"
                        }
                    ],
                    "repeat": "",
                    "crontab": "",
                    "once": false,
                    "topic": "",
                    "payload": "",
                    "payloadType": "date",
                    "x": 160,
                    "y": 100,
                    "wires": [
                        [
                            "beeb75e9c4d8fd64"
                        ]
                    ]
                },
                {
                    "id": "beeb75e9c4d8fd64",
                    "type": "iobgetobject",
                    "z": "tab_mqtt_config",
                    "name": "Get Adapter Config",
                    "objectId": "system.adapter.mqtt.0",
                    "outputProperty": "payload",
                    "outputMode": "single",
                    "objectType": "",
                    "useWildcard": false,
                    "includeEnums": false,
                    "enumTypes": null,
                    "includeAliases": false,
                    "aliasResolution": null,
                    "server": "5661ccf2a79ab23e",
                    "x": 370,
                    "y": 100,
                    "wires": [
                        [
                            "71e771ae51e53631"
                        ]
                    ]
                },
                {
                    "id": "71e771ae51e53631",
                    "type": "change",
                    "z": "tab_mqtt_config",
                    "name": "native.publish",
                    "rules": [
                        {
                            "t": "set",
                            "p": "payload.native.publish",
                            "pt": "msg",
                            "to": "mqtt.0.test,mqtt.0.test2",
                            "tot": "str"
                        }
                    ],
                    "x": 560,
                    "y": 100,
                    "wires": [
                        [
                            "9d14c67202871683"
                        ]
                    ]
                },
                {
                    "id": "9d14c67202871683",
                    "type": "iobsetobject",
                    "z": "tab_mqtt_config",
                    "name": "Write Config",
                    "objectId": "system.adapter.mqtt.0",
                    "objectSource": "payload",
                    "objectProperty": "payload",
                    "mergeMode": "merge",
                    "validateObject": true,
                    "server": "5661ccf2a79ab23e",
                    "x": 730,
                    "y": 100,
                    "wires": [
                        [
                            "7463f3be3f5843b7"
                        ]
                    ]
                },
                {
                    "id": "7463f3be3f5843b7",
                    "type": "debug",
                    "z": "tab_mqtt_config",
                    "name": "debug 2",
                    "active": true,
                    "tosidebar": true,
                    "console": false,
                    "tostatus": false,
                    "complete": "false",
                    "statusVal": "",
                    "statusType": "auto",
                    "x": 900,
                    "y": 100,
                    "wires": []
                },
                {
                    "id": "5661ccf2a79ab23e",
                    "type": "iob-config",
                    "name": "config2",
                    "iobhost": "iobroker",
                    "iobport": "8081",
                    "usessl": false
                }
            ]
            

            Test und Änderungswünsche willkommen.

            EDIT: Flow aktualisiert, kein Restart notwendig

            R Offline
            R Offline
            rewenode
            schrieb am zuletzt editiert von
            #5

            @Marc-Berg Große Klasse. Werde ich die Tage gleich mal testen.
            Wenn du dir jetzt noch wohlwollend mein eigenbau iob-in-inject iob-in-Inject.zip ansehen würdest, müße ich da gar nichts mehr selber pflegen;-) Das Ding ist für mich leider unverzichbar geworden, weil ich viel mit dynamischan subscriptions arbeite.

            Marc BergM 2 Antworten Letzte Antwort
            1
            • R rewenode

              @Marc-Berg Große Klasse. Werde ich die Tage gleich mal testen.
              Wenn du dir jetzt noch wohlwollend mein eigenbau iob-in-inject iob-in-Inject.zip ansehen würdest, müße ich da gar nichts mehr selber pflegen;-) Das Ding ist für mich leider unverzichbar geworden, weil ich viel mit dynamischan subscriptions arbeite.

              Marc BergM Offline
              Marc BergM Offline
              Marc Berg
              Most Active
              schrieb am zuletzt editiert von
              #6

              @rewenode sagte in mqtt programmatisch publish topic zufügen:

              Wenn du dir jetzt noch wohlwollend mein eigenbau iob-in-inject iob-in-Inject.zip ansehen würdest,

              Sorry, komplett verdrängt. In der Zeit war wohl anderes wichtiger ... Ich schau mal.

              NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

              Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

              Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

              R 1 Antwort Letzte Antwort
              0
              • Marc BergM Marc Berg

                @rewenode sagte in mqtt programmatisch publish topic zufügen:

                Wenn du dir jetzt noch wohlwollend mein eigenbau iob-in-inject iob-in-Inject.zip ansehen würdest,

                Sorry, komplett verdrängt. In der Zeit war wohl anderes wichtiger ... Ich schau mal.

                R Offline
                R Offline
                rewenode
                schrieb am zuletzt editiert von rewenode
                #7

                @Marc-Berg Alles gut, ist ja eh nur ein Vorschlag. Und läuft bei mir ja seit längerer Zeit ohne Probleme produktiv. muss halt immer aufpassen, dass ich deinen aktuellen main Zweig merge.

                1 Antwort Letzte Antwort
                0
                • R rewenode

                  @Marc-Berg Große Klasse. Werde ich die Tage gleich mal testen.
                  Wenn du dir jetzt noch wohlwollend mein eigenbau iob-in-inject iob-in-Inject.zip ansehen würdest, müße ich da gar nichts mehr selber pflegen;-) Das Ding ist für mich leider unverzichbar geworden, weil ich viel mit dynamischan subscriptions arbeite.

                  Marc BergM Offline
                  Marc BergM Offline
                  Marc Berg
                  Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @rewenode sagte in mqtt programmatisch publish topic zufügen:

                  wohlwollend mein eigenbau iob-in-inject

                  Um ganz ehrlich zu sein, bin ich kein großer Fan dieser Lösung

                  • viel Code-Duplizierung mit iob-in
                  • das dynamische Switchen zwischen Single- und Multi-Subscription finde ich riskant (die ganze Mechanik der Subscriptions, Konsolidierungen, Resubscriptions in allen möglichen Fehlerfällen war schon eine Herausforderung)
                  • es fehlt der "grouped" Output des iob-in Nodes
                  • keine Kontrolle über die "initial values" (ja/nein)

                  Das passt für deinen Use Case, aber ich würde es gern etwas universeller haben. Grundsätzlich finde ich die Idee mit den dynamischen Subscriptions gut. (Gibt es sowas eigentlich bei Blockly?)

                  Könntest du darauf verzichten, zur Laufzeit zwischen Single- und Multistate-Subscriptions zu switchen? Dann würde ich es mit in die "external Trigger" Funktionalität einbauen.

                  NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

                  Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                  Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                  R 1 Antwort Letzte Antwort
                  0
                  • Marc BergM Marc Berg

                    @rewenode sagte in mqtt programmatisch publish topic zufügen:

                    wohlwollend mein eigenbau iob-in-inject

                    Um ganz ehrlich zu sein, bin ich kein großer Fan dieser Lösung

                    • viel Code-Duplizierung mit iob-in
                    • das dynamische Switchen zwischen Single- und Multi-Subscription finde ich riskant (die ganze Mechanik der Subscriptions, Konsolidierungen, Resubscriptions in allen möglichen Fehlerfällen war schon eine Herausforderung)
                    • es fehlt der "grouped" Output des iob-in Nodes
                    • keine Kontrolle über die "initial values" (ja/nein)

                    Das passt für deinen Use Case, aber ich würde es gern etwas universeller haben. Grundsätzlich finde ich die Idee mit den dynamischen Subscriptions gut. (Gibt es sowas eigentlich bei Blockly?)

                    Könntest du darauf verzichten, zur Laufzeit zwischen Single- und Multistate-Subscriptions zu switchen? Dann würde ich es mit in die "external Trigger" Funktionalität einbauen.

                    R Offline
                    R Offline
                    rewenode
                    schrieb am zuletzt editiert von
                    #9

                    @Marc-Berg sagte in mqtt programmatisch publish topic zufügen:

                    Könntest du darauf verzichten, zur Laufzeit zwischen Single- und Multistate-Subscriptions zu switchen? Dann würde ich es mit in die "external Trigger" Funktionalität einbauen.

                    Das ist kein Problem. Ich schicke zur Laufzeit generell ein array of states.

                    Falls 1
                    Bei mir tummeln sich die iob-in-inject nodes innerhalb von Subflows. z.B Eine Zimmer-Card für das dashboard.
                    Die benötigten zu abbonierenden IDs werden als Env-Variable in der Flow Konfiguration administriert (array). Vorteil, ich kann die karten für ein anderes Zimmer kopieren und muss den subflow nicht mal öffnen, weil die Konfig außerhalb erfolgt.

                    Fall 2
                    Ich füge zur Laufzeit z.B. eine Lampe auf einer card zu. Das geht bei mir, weil ich da universelle template-nodes gebastelt habe, denen ich ein array of objets geben kann und die werden halt dargestellt (zur Laufzeit änderbar) Bild

                    91286c5d-14af-432e-8834-c21172dd888f-image.png

                    Zu den Objekten gehören natürlich states die ich dank iob-in-inject auch dynamisch abbonieren kann.
                    Also um ein Object mehr darzustellen muss nicht mal der Flow gestoppt werden. Kann alles über das dashboard gemacht werden.
                    Hört sich komplizierter an als es ist. Voraussetzung ist aber die Möglichkeit states dynamisch abbonieren zu können.

                    Wenn du die node nicht integrieren willst ist das ja auch kein Problem, läuft ja in meinem use case. Ich bin mir nicht sicher, ob das über den external Trigger so einfach machbar und nötig ist.
                    Was ich nicht schön fände, wenn das in die iob-in integriert werden würde. Das wäre dann nicht mehr kompatibel. Als Extra node wie bei mir stört das ja niemanden, der sowas nicht braucht.
                    Inzwischen habe ich eigentlich alle wichtigen dashboard nodes in Template nodes nachgebaut und erweitert. Da bin ich dann doch flexibler. Die speichern selber, wodurch ich das external triggern gar nicht mehr nutze. Wichtiger waren aber andere Einschränkungen der dashboard nodes.
                    Aber das führt hier zu weit.

                    1 Antwort Letzte Antwort
                    1
                    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

                    675

                    Online

                    32.6k

                    Benutzer

                    82.3k

                    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