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. Einsteigerfragen
  4. Einbindung von Geräten
  5. MQTT Topic/Payload Dokumentation

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

MQTT Topic/Payload Dokumentation

Geplant Angeheftet Gesperrt Verschoben Einbindung von Geräten
21 Beiträge 6 Kommentatoren 3.6k Aufrufe 5 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.
  • J Joe_D

    Hallo Zusammen,

    habe bislang ein FHEM-System am laufen das ich eventuell mit iobroker ablösen möchte. An Hardware existiert bei mir

    • ein AS1440 Stromzähler mit D0-Schnittstelle der Obis ausgibt aber kein SML spricht. Da FHEM nicht in der Lage war den Stromzähler "gescheit" auszulesen (den kann man von 300Baud auf 9600Baud umschalten) habe ich ein C-Programm geschrieben das dies vom Timing her richtig macht und an die Werte einfach auf die Konsole schreibt. Die werden dann mittels Pipe in FHEM geschrieben.
    • eine Junkers Heizung mit Heatronic3-Protokoll das an einem USB-Adapter von Norbert S. hängt (https://www.mikrocontroller.net/topic/317004?page=single). Die wurde als einziges direkt von FHEM unterstützt, da Norbert S. etwas dafür geschrieben hatte.
    • eine Junkers Lüftungsanlage die Modbus-TCP spricht aber leider ziemlich dämlich zu betreiben ist. Zum Beispiel kann man hier nicht einfach sagen "Stufe 4 für die nächsten 30 Minuten", sondern man muss per Modbus-TCP aus dem Automatikprogramm nach Manuell schalten. Dann die Stufe ändern. Dann einen Timer "außerhalb" (FHEM) setzen, der nach der Zeit die Kiste wieder ins Automatikprogramm setzt. Dafür musste ich in FHEM einen eigenen Modbus-Gerätetreiber schreiben :disappointed:
    • 8 serielle Modbus Stromzähler DDS238-1ZN an einem Modbus2USB-Adapter. Die Zähler liefern 10 Werte, unter anderem den aktuellen Strom. Hier war es in FHEM nicht möglich alle 8 Zähler einfach so schnell wie möglich hintereinander abzufragen. Unter 10 Sekunden gab es immer wieder Fehler. Auch hier habe ich ein C Programm geschrieben das jetzt innerhalb einer Sekunde alle 8 Zähler auslesen kann und die Werte auf die Konsole schreibt wo diese mittels Pipe in FHEM geschrieben werden
    • 1 seriellen Modbus für den Gaszähler-Impulszähler der direkt in FHEM alle 10 Sekunden ausgelesen wird
    • Selbstbau IO-System mit 128 Eingängen und 128 Ausgängen das über USB gesteuert wird und auch über USB die aktuellen Stati ausgibt. Hierüber werden sämtliche Lampen an- und ausgeschaltet, Fenster- und Tür- und Klingelkontakte, Schlösser und Bewegungsmelder ausgewertet, Rollladen und Garagentor rauf- und runtergefahren. Dazu gab es ein serielles IO-Modul in FHEM das ich aber leider erst von Bugs befreien musste bevor ich es einsetzen konnte :disappointed:

    Bei FHEM ist mir aufgefallen das diese SmartHome-Lösung eigentlich gar nicht in der Lage war dumme Hardware "intelligent" einzubinden. Ein Modbus der nur alle 10 Sekunden irgendwas pollen kann ist schön für ein Gerät das eine Super Schnittstelle über Modbus bietet und nur "bedient" werden muss aber eine Katastrophe für z.B. meine Junkers "Lüftungssteuerung".

    Aber auch beim einfachen Auslesen von Stromzählern bin ich mit den Standardmodulen von FHEM sofort auf die Nase gefallen. Beim AS1440 muss man nachdem man auf 9600 Baud umschaltet 400ms warten. Das habe ich in Perl unter FHEM nicht sauber hingekriegt. Genauso das Auslesen von 8 Modbus Stromzählern "einfach so schnell wie möglich hintereinander", ist wohl schon eine Spezialanwendung. :grimacing:

    So musste ich relativ viel sowohl an FHEM an Modulen rumbasteln und erstellen (Perl :fearful:) wie auch externe Programme schreiben die die Daten aufbereiten.

    Diese (negativen) Erfahrungen brachten mich zu der Frage: Warum besteht eine Smarthome-Steuerung eigentlich nicht grundsätzlich nur aus einem MQTT-Broker der sämtliche Daten bereitstellt und externe Programme speisen einfach den MQTT-Broker? Super wäre in so einem Fall wenn Topic und Payload einfach irgendwie sein könnten und auf dem Adapter könnte man das einfach konfigurieren oder als Template hinterlegen.

    Die Lösung nur mit MQTT-Broker möchte ich jetzt mit iobroker probieren.

    Der iobroker läuft schonmal soweit, ein mosquitto ist installiert und auch der MQTT Broker/Client-Adapter ist einsatzbereit.

    Aus meiner naiven Sicht muss ich also "nur noch" z.B. meinen beiden Zähler-Auslese-Programmen beibringen Ihre Daten an den MQTT-Broker zu senden.

    Und nun meine Fragen:

    • Kann der Adapter auf unterschiedliche Payloads oder Topics konfiguriert werden
    • Braucht es einen bestimmten Aufbau vom Topic? Wenn ja, wo ist das dokumentiert?
    • Braucht es einen bestimmten Aufbau vom Payload? Wenn ja, wo ist das dokumentiert?
    • Wie funktioniert ein Mapping von Gerätearten? Also wie wird die Rückmeldung von einem Fenster erkannt? Wie die Rückmeldung einer Tür?
    • Wie sieht Topic oder Payload für verschiedene Gerätearten aus? Fenster? Türen? Rollladen? Bewegungsmelder?

    Ich habe dazu leider so gut wie nichts dazu gefunden unter https://github.com/ioBroker/ioBroker.mqtt/blob/master/README.md

    Gruß

    Jochen

    GarganoG Offline
    GarganoG Offline
    Gargano
    schrieb am zuletzt editiert von
    #2

    @joe_d Der mqtt Adapter nimmt die Topics entgegen, legt Datenpunkte an und schreibt die Werte rein. Eine Weiterverarbeitung muss dann mit anderen Adaptern oder JS erfolgen

    J 1 Antwort Letzte Antwort
    0
    • J Joe_D

      Hallo Zusammen,

      habe bislang ein FHEM-System am laufen das ich eventuell mit iobroker ablösen möchte. An Hardware existiert bei mir

      • ein AS1440 Stromzähler mit D0-Schnittstelle der Obis ausgibt aber kein SML spricht. Da FHEM nicht in der Lage war den Stromzähler "gescheit" auszulesen (den kann man von 300Baud auf 9600Baud umschalten) habe ich ein C-Programm geschrieben das dies vom Timing her richtig macht und an die Werte einfach auf die Konsole schreibt. Die werden dann mittels Pipe in FHEM geschrieben.
      • eine Junkers Heizung mit Heatronic3-Protokoll das an einem USB-Adapter von Norbert S. hängt (https://www.mikrocontroller.net/topic/317004?page=single). Die wurde als einziges direkt von FHEM unterstützt, da Norbert S. etwas dafür geschrieben hatte.
      • eine Junkers Lüftungsanlage die Modbus-TCP spricht aber leider ziemlich dämlich zu betreiben ist. Zum Beispiel kann man hier nicht einfach sagen "Stufe 4 für die nächsten 30 Minuten", sondern man muss per Modbus-TCP aus dem Automatikprogramm nach Manuell schalten. Dann die Stufe ändern. Dann einen Timer "außerhalb" (FHEM) setzen, der nach der Zeit die Kiste wieder ins Automatikprogramm setzt. Dafür musste ich in FHEM einen eigenen Modbus-Gerätetreiber schreiben :disappointed:
      • 8 serielle Modbus Stromzähler DDS238-1ZN an einem Modbus2USB-Adapter. Die Zähler liefern 10 Werte, unter anderem den aktuellen Strom. Hier war es in FHEM nicht möglich alle 8 Zähler einfach so schnell wie möglich hintereinander abzufragen. Unter 10 Sekunden gab es immer wieder Fehler. Auch hier habe ich ein C Programm geschrieben das jetzt innerhalb einer Sekunde alle 8 Zähler auslesen kann und die Werte auf die Konsole schreibt wo diese mittels Pipe in FHEM geschrieben werden
      • 1 seriellen Modbus für den Gaszähler-Impulszähler der direkt in FHEM alle 10 Sekunden ausgelesen wird
      • Selbstbau IO-System mit 128 Eingängen und 128 Ausgängen das über USB gesteuert wird und auch über USB die aktuellen Stati ausgibt. Hierüber werden sämtliche Lampen an- und ausgeschaltet, Fenster- und Tür- und Klingelkontakte, Schlösser und Bewegungsmelder ausgewertet, Rollladen und Garagentor rauf- und runtergefahren. Dazu gab es ein serielles IO-Modul in FHEM das ich aber leider erst von Bugs befreien musste bevor ich es einsetzen konnte :disappointed:

      Bei FHEM ist mir aufgefallen das diese SmartHome-Lösung eigentlich gar nicht in der Lage war dumme Hardware "intelligent" einzubinden. Ein Modbus der nur alle 10 Sekunden irgendwas pollen kann ist schön für ein Gerät das eine Super Schnittstelle über Modbus bietet und nur "bedient" werden muss aber eine Katastrophe für z.B. meine Junkers "Lüftungssteuerung".

      Aber auch beim einfachen Auslesen von Stromzählern bin ich mit den Standardmodulen von FHEM sofort auf die Nase gefallen. Beim AS1440 muss man nachdem man auf 9600 Baud umschaltet 400ms warten. Das habe ich in Perl unter FHEM nicht sauber hingekriegt. Genauso das Auslesen von 8 Modbus Stromzählern "einfach so schnell wie möglich hintereinander", ist wohl schon eine Spezialanwendung. :grimacing:

      So musste ich relativ viel sowohl an FHEM an Modulen rumbasteln und erstellen (Perl :fearful:) wie auch externe Programme schreiben die die Daten aufbereiten.

      Diese (negativen) Erfahrungen brachten mich zu der Frage: Warum besteht eine Smarthome-Steuerung eigentlich nicht grundsätzlich nur aus einem MQTT-Broker der sämtliche Daten bereitstellt und externe Programme speisen einfach den MQTT-Broker? Super wäre in so einem Fall wenn Topic und Payload einfach irgendwie sein könnten und auf dem Adapter könnte man das einfach konfigurieren oder als Template hinterlegen.

      Die Lösung nur mit MQTT-Broker möchte ich jetzt mit iobroker probieren.

      Der iobroker läuft schonmal soweit, ein mosquitto ist installiert und auch der MQTT Broker/Client-Adapter ist einsatzbereit.

      Aus meiner naiven Sicht muss ich also "nur noch" z.B. meinen beiden Zähler-Auslese-Programmen beibringen Ihre Daten an den MQTT-Broker zu senden.

      Und nun meine Fragen:

      • Kann der Adapter auf unterschiedliche Payloads oder Topics konfiguriert werden
      • Braucht es einen bestimmten Aufbau vom Topic? Wenn ja, wo ist das dokumentiert?
      • Braucht es einen bestimmten Aufbau vom Payload? Wenn ja, wo ist das dokumentiert?
      • Wie funktioniert ein Mapping von Gerätearten? Also wie wird die Rückmeldung von einem Fenster erkannt? Wie die Rückmeldung einer Tür?
      • Wie sieht Topic oder Payload für verschiedene Gerätearten aus? Fenster? Türen? Rollladen? Bewegungsmelder?

      Ich habe dazu leider so gut wie nichts dazu gefunden unter https://github.com/ioBroker/ioBroker.mqtt/blob/master/README.md

      Gruß

      Jochen

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #3

      @joe_d sagte in MQTT Topic/Payload Dokumentation:

      Die Lösung nur mit MQTT-Broker möchte ich jetzt mit iobroker probieren.
      Der iobroker läuft schonmal soweit, ein mosquitto ist installiert und auch der MQTT Broker/Client-Adapter ist einsatzbereit.

      wenn du bereits einen Broker hast, kannst du bei iobroker auch den MQTT-Client Adapter nehmen

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      J 1 Antwort Letzte Antwort
      0
      • GarganoG Gargano

        @joe_d Der mqtt Adapter nimmt die Topics entgegen, legt Datenpunkte an und schreibt die Werte rein. Eine Weiterverarbeitung muss dann mit anderen Adaptern oder JS erfolgen

        J Offline
        J Offline
        Joe_D
        schrieb am zuletzt editiert von
        #4

        @gargano Das bedeutet?

        Bei Homeassistant z.B. gibt es bei MQTT ein "Discovery", wenn man Meldungen in dem Format sendet werden z.B. Lichter usw. angelegt (https://www.home-assistant.io/docs/mqtt/discovery). Das ist dort alles schön beschrieben.

        1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @joe_d sagte in MQTT Topic/Payload Dokumentation:

          Die Lösung nur mit MQTT-Broker möchte ich jetzt mit iobroker probieren.
          Der iobroker läuft schonmal soweit, ein mosquitto ist installiert und auch der MQTT Broker/Client-Adapter ist einsatzbereit.

          wenn du bereits einen Broker hast, kannst du bei iobroker auch den MQTT-Client Adapter nehmen

          J Offline
          J Offline
          Joe_D
          schrieb am zuletzt editiert von
          #5

          @homoran Ja, ich kann auch den MQTT-Client Adapter nehmen. Und ich kann ja mit

          mosquitto_pub -h 127.0.0.1 -t test/lampe/1/off -m "Lampe ist aus"
          

          etwas an meinen Broker schicken. Was macht der MQTT-Client Adapter denn damit?

          HomoranH GarganoG 2 Antworten Letzte Antwort
          0
          • J Joe_D

            @homoran Ja, ich kann auch den MQTT-Client Adapter nehmen. Und ich kann ja mit

            mosquitto_pub -h 127.0.0.1 -t test/lampe/1/off -m "Lampe ist aus"
            

            etwas an meinen Broker schicken. Was macht der MQTT-Client Adapter denn damit?

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #6

            @joe_d sagte in MQTT Topic/Payload Dokumentation:

            Was macht der MQTT-Client Adapter denn damit?

            er nimmt es an, legt einen Datenpunkt an und schreibt den Wert da hinein

            Ist aber schon einige Jahre her, dass ich damit gearbeitet hatte

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Antwort Letzte Antwort
            0
            • J Joe_D

              @homoran Ja, ich kann auch den MQTT-Client Adapter nehmen. Und ich kann ja mit

              mosquitto_pub -h 127.0.0.1 -t test/lampe/1/off -m "Lampe ist aus"
              

              etwas an meinen Broker schicken. Was macht der MQTT-Client Adapter denn damit?

              GarganoG Offline
              GarganoG Offline
              Gargano
              schrieb am zuletzt editiert von Gargano
              #7

              @joe_d Der mqtt Adapter macht nichts weiter damit. Nur den Wert in den Datenpunkt schreiben. Bei mir werden die Heizungsdaten übermittelt. Die zeige ich dann in der Vis mit widgets und einer Grafik an.
              Anderes Beispiel,, übermitteln der Stromdaten der Waschmaschine, und Bestimmung wann die Maschine fertig ist. Dies wird mit einenJavascript erledigt

              J 1 Antwort Letzte Antwort
              0
              • GarganoG Gargano

                @joe_d Der mqtt Adapter macht nichts weiter damit. Nur den Wert in den Datenpunkt schreiben. Bei mir werden die Heizungsdaten übermittelt. Die zeige ich dann in der Vis mit widgets und einer Grafik an.
                Anderes Beispiel,, übermitteln der Stromdaten der Waschmaschine, und Bestimmung wann die Maschine fertig ist. Dies wird mit einenJavascript erledigt

                J Offline
                J Offline
                Joe_D
                schrieb am zuletzt editiert von
                #8

                @gargano sagte in MQTT Topic/Payload Dokumentation:

                @joe_d Der mqtt Adapter macht nichts weiter damit. Nur den Wert in den Datenpunkt schreiben. Bei mir werden die Heizungsdaten übermittelt. Die zeige ich dann in der Vis mit widgets und einer Grafik an.

                Ok, ist mir nun auch gelungen:
                310118fe-89a3-4577-9d73-87074803cd23-grafik.png

                Nur fehlt mir jetzt echt irgendwie ein Leitfaden.

                Wie kann ich eine schaltbare Lampe (am Besten automatisch) mit MQTT hinzufügen?

                GarganoG 1 Antwort Letzte Antwort
                -1
                • J Joe_D

                  @gargano sagte in MQTT Topic/Payload Dokumentation:

                  @joe_d Der mqtt Adapter macht nichts weiter damit. Nur den Wert in den Datenpunkt schreiben. Bei mir werden die Heizungsdaten übermittelt. Die zeige ich dann in der Vis mit widgets und einer Grafik an.

                  Ok, ist mir nun auch gelungen:
                  310118fe-89a3-4577-9d73-87074803cd23-grafik.png

                  Nur fehlt mir jetzt echt irgendwie ein Leitfaden.

                  Wie kann ich eine schaltbare Lampe (am Besten automatisch) mit MQTT hinzufügen?

                  GarganoG Offline
                  GarganoG Offline
                  Gargano
                  schrieb am zuletzt editiert von Gargano
                  #9

                  @joe_d mit einem kleinem Script, der auf den Event triggert, also in JS ein on -Event. In dem Event dann setstate(dpname,wert) die Lampe schalten.
                  Du kannst es auch über Blockly machen, da kenn ich mich aber nicht aus. Ich bevorzuge JS, da weiß ich was der macht
                  Ansonsten gibt es noch den Szenen Adapter

                  1 Antwort Letzte Antwort
                  0
                  • J Offline
                    J Offline
                    Joe_D
                    schrieb am zuletzt editiert von Joe_D
                    #10

                    @gargano Verstehe ich leider nicht wirklich. Gibt es irgendwo ein Beispiel für sowas? Also eine Lampe die dem MQTT-Broker ihren aktuellen Zustand meldet (und wie der zugehörige Payload aussehen muss/sollte) und in iobroker ein Lampenicon auf das man draufdrückt und das dann je nach Zustand dem MQTT-Broker "was" schickt.
                    Oder gibt es für solche Dinge keinen "Standard", d.h. muss man dies alles selbst progammieren?

                    GarganoG 1 Antwort Letzte Antwort
                    0
                    • J Joe_D

                      @gargano Verstehe ich leider nicht wirklich. Gibt es irgendwo ein Beispiel für sowas? Also eine Lampe die dem MQTT-Broker ihren aktuellen Zustand meldet (und wie der zugehörige Payload aussehen muss/sollte) und in iobroker ein Lampenicon auf das man draufdrückt und das dann je nach Zustand dem MQTT-Broker "was" schickt.
                      Oder gibt es für solche Dinge keinen "Standard", d.h. muss man dies alles selbst progammieren?

                      GarganoG Offline
                      GarganoG Offline
                      Gargano
                      schrieb am zuletzt editiert von
                      #11

                      @joe_d muss man alles selber machen. Aber schau Dir mal den Szenen Adapter an

                      1 Antwort Letzte Antwort
                      1
                      • J Joe_D

                        Hallo Zusammen,

                        habe bislang ein FHEM-System am laufen das ich eventuell mit iobroker ablösen möchte. An Hardware existiert bei mir

                        • ein AS1440 Stromzähler mit D0-Schnittstelle der Obis ausgibt aber kein SML spricht. Da FHEM nicht in der Lage war den Stromzähler "gescheit" auszulesen (den kann man von 300Baud auf 9600Baud umschalten) habe ich ein C-Programm geschrieben das dies vom Timing her richtig macht und an die Werte einfach auf die Konsole schreibt. Die werden dann mittels Pipe in FHEM geschrieben.
                        • eine Junkers Heizung mit Heatronic3-Protokoll das an einem USB-Adapter von Norbert S. hängt (https://www.mikrocontroller.net/topic/317004?page=single). Die wurde als einziges direkt von FHEM unterstützt, da Norbert S. etwas dafür geschrieben hatte.
                        • eine Junkers Lüftungsanlage die Modbus-TCP spricht aber leider ziemlich dämlich zu betreiben ist. Zum Beispiel kann man hier nicht einfach sagen "Stufe 4 für die nächsten 30 Minuten", sondern man muss per Modbus-TCP aus dem Automatikprogramm nach Manuell schalten. Dann die Stufe ändern. Dann einen Timer "außerhalb" (FHEM) setzen, der nach der Zeit die Kiste wieder ins Automatikprogramm setzt. Dafür musste ich in FHEM einen eigenen Modbus-Gerätetreiber schreiben :disappointed:
                        • 8 serielle Modbus Stromzähler DDS238-1ZN an einem Modbus2USB-Adapter. Die Zähler liefern 10 Werte, unter anderem den aktuellen Strom. Hier war es in FHEM nicht möglich alle 8 Zähler einfach so schnell wie möglich hintereinander abzufragen. Unter 10 Sekunden gab es immer wieder Fehler. Auch hier habe ich ein C Programm geschrieben das jetzt innerhalb einer Sekunde alle 8 Zähler auslesen kann und die Werte auf die Konsole schreibt wo diese mittels Pipe in FHEM geschrieben werden
                        • 1 seriellen Modbus für den Gaszähler-Impulszähler der direkt in FHEM alle 10 Sekunden ausgelesen wird
                        • Selbstbau IO-System mit 128 Eingängen und 128 Ausgängen das über USB gesteuert wird und auch über USB die aktuellen Stati ausgibt. Hierüber werden sämtliche Lampen an- und ausgeschaltet, Fenster- und Tür- und Klingelkontakte, Schlösser und Bewegungsmelder ausgewertet, Rollladen und Garagentor rauf- und runtergefahren. Dazu gab es ein serielles IO-Modul in FHEM das ich aber leider erst von Bugs befreien musste bevor ich es einsetzen konnte :disappointed:

                        Bei FHEM ist mir aufgefallen das diese SmartHome-Lösung eigentlich gar nicht in der Lage war dumme Hardware "intelligent" einzubinden. Ein Modbus der nur alle 10 Sekunden irgendwas pollen kann ist schön für ein Gerät das eine Super Schnittstelle über Modbus bietet und nur "bedient" werden muss aber eine Katastrophe für z.B. meine Junkers "Lüftungssteuerung".

                        Aber auch beim einfachen Auslesen von Stromzählern bin ich mit den Standardmodulen von FHEM sofort auf die Nase gefallen. Beim AS1440 muss man nachdem man auf 9600 Baud umschaltet 400ms warten. Das habe ich in Perl unter FHEM nicht sauber hingekriegt. Genauso das Auslesen von 8 Modbus Stromzählern "einfach so schnell wie möglich hintereinander", ist wohl schon eine Spezialanwendung. :grimacing:

                        So musste ich relativ viel sowohl an FHEM an Modulen rumbasteln und erstellen (Perl :fearful:) wie auch externe Programme schreiben die die Daten aufbereiten.

                        Diese (negativen) Erfahrungen brachten mich zu der Frage: Warum besteht eine Smarthome-Steuerung eigentlich nicht grundsätzlich nur aus einem MQTT-Broker der sämtliche Daten bereitstellt und externe Programme speisen einfach den MQTT-Broker? Super wäre in so einem Fall wenn Topic und Payload einfach irgendwie sein könnten und auf dem Adapter könnte man das einfach konfigurieren oder als Template hinterlegen.

                        Die Lösung nur mit MQTT-Broker möchte ich jetzt mit iobroker probieren.

                        Der iobroker läuft schonmal soweit, ein mosquitto ist installiert und auch der MQTT Broker/Client-Adapter ist einsatzbereit.

                        Aus meiner naiven Sicht muss ich also "nur noch" z.B. meinen beiden Zähler-Auslese-Programmen beibringen Ihre Daten an den MQTT-Broker zu senden.

                        Und nun meine Fragen:

                        • Kann der Adapter auf unterschiedliche Payloads oder Topics konfiguriert werden
                        • Braucht es einen bestimmten Aufbau vom Topic? Wenn ja, wo ist das dokumentiert?
                        • Braucht es einen bestimmten Aufbau vom Payload? Wenn ja, wo ist das dokumentiert?
                        • Wie funktioniert ein Mapping von Gerätearten? Also wie wird die Rückmeldung von einem Fenster erkannt? Wie die Rückmeldung einer Tür?
                        • Wie sieht Topic oder Payload für verschiedene Gerätearten aus? Fenster? Türen? Rollladen? Bewegungsmelder?

                        Ich habe dazu leider so gut wie nichts dazu gefunden unter https://github.com/ioBroker/ioBroker.mqtt/blob/master/README.md

                        Gruß

                        Jochen

                        hydrotecH Offline
                        hydrotecH Offline
                        hydrotec
                        schrieb am zuletzt editiert von
                        #12

                        @joe_d

                        Hallo Jochen,

                        es gibt noch keine offizielle Dokumentation, in der Form wie du es gebrauchen könntest.
                        Derzeit arbeite ich an einer allgemeinen Dokumentation zu MQTT.
                        Hier kannst du dir mal ein Vorab ansehen, ist noch nicht ganz fertig.

                        @joe_d sagte in MQTT Topic/Payload Dokumentation:

                        Kann der Adapter auf unterschiedliche Payloads oder Topics konfiguriert werden

                        Ich gehe mal davon aus, das du den Adapter "MQTT Broker/Client" meinst, welcher in der Instanz als Client konfiguriert wird. Die Verbindung zu mosquitto hast du ja schon funktionabel hergestellt.
                        Innerhalb der Instanz hast du die Möglichkeit die gewünschten Topics anzugeben.
                        So kannst du mehrere Instanzen anlegen, welche auf unterschiedliche Topics hören.
                        mqtt_install_03.png
                        mqtt_install_04.png

                        Gruß, Karsten

                        Ubuntu 22.04 LTS (LXD/LXC)
                        admin: v6.3.5
                        js-controller: v4.0.24
                        node: v18.16.1
                        npm: v9.5.1
                        repository: stable

                        J 1 Antwort Letzte Antwort
                        0
                        • hydrotecH hydrotec

                          @joe_d

                          Hallo Jochen,

                          es gibt noch keine offizielle Dokumentation, in der Form wie du es gebrauchen könntest.
                          Derzeit arbeite ich an einer allgemeinen Dokumentation zu MQTT.
                          Hier kannst du dir mal ein Vorab ansehen, ist noch nicht ganz fertig.

                          @joe_d sagte in MQTT Topic/Payload Dokumentation:

                          Kann der Adapter auf unterschiedliche Payloads oder Topics konfiguriert werden

                          Ich gehe mal davon aus, das du den Adapter "MQTT Broker/Client" meinst, welcher in der Instanz als Client konfiguriert wird. Die Verbindung zu mosquitto hast du ja schon funktionabel hergestellt.
                          Innerhalb der Instanz hast du die Möglichkeit die gewünschten Topics anzugeben.
                          So kannst du mehrere Instanzen anlegen, welche auf unterschiedliche Topics hören.
                          mqtt_install_03.png
                          mqtt_install_04.png

                          Gruß, Karsten

                          J Offline
                          J Offline
                          Joe_D
                          schrieb am zuletzt editiert von
                          #13

                          @hydrotec Danke für die Infos.

                          Bislang schicke ich einfach irgendwelche Sachen an irgendwelche Topics, die werden "leider" nur als Zustandstyp Zeichenkette, Rolle variable angelegt:

                          650210e6-cd87-45d8-88a9-82774ac4da60-grafik.png

                          Cool fände ich nun, wenn die rot umrandeten Felder per MQTT besetzt werden könnten:

                          5f92651b-563e-4cce-8f9e-7d63dec66c1a-grafik.png

                          Zum Beispiel über ein spezielles Topic, /iobroker/mqttconfig mit Inhalt:

                          {
                            "common": {
                              "name": "/devices/wb-adc/controls/lala1",
                              "write": false,
                              "read": true,
                              "role": "switch",
                              "type": "boolean"
                            }
                          }
                          

                          Das dann eben angelegt oder geändert wird sofern es das nicht gibt oder andere Werte enthält...

                          hydrotecH mickymM 2 Antworten Letzte Antwort
                          0
                          • J Joe_D

                            @hydrotec Danke für die Infos.

                            Bislang schicke ich einfach irgendwelche Sachen an irgendwelche Topics, die werden "leider" nur als Zustandstyp Zeichenkette, Rolle variable angelegt:

                            650210e6-cd87-45d8-88a9-82774ac4da60-grafik.png

                            Cool fände ich nun, wenn die rot umrandeten Felder per MQTT besetzt werden könnten:

                            5f92651b-563e-4cce-8f9e-7d63dec66c1a-grafik.png

                            Zum Beispiel über ein spezielles Topic, /iobroker/mqttconfig mit Inhalt:

                            {
                              "common": {
                                "name": "/devices/wb-adc/controls/lala1",
                                "write": false,
                                "read": true,
                                "role": "switch",
                                "type": "boolean"
                              }
                            }
                            

                            Das dann eben angelegt oder geändert wird sofern es das nicht gibt oder andere Werte enthält...

                            hydrotecH Offline
                            hydrotecH Offline
                            hydrotec
                            schrieb am zuletzt editiert von
                            #14

                            @joe_d

                            Denke nicht das es vorgesehen ist, da etwas zu ändern.
                            Generell funktionieren die Objekte ja so wie sie angelegt sind.
                            Aber du kannst gerne auf GitHub nachfragen.
                            https://github.com/ioBroker/ioBroker.mqtt

                            Nur für mich, aus Interesse, was möchtest du durch diese Änderung erreichen?

                            Ubuntu 22.04 LTS (LXD/LXC)
                            admin: v6.3.5
                            js-controller: v4.0.24
                            node: v18.16.1
                            npm: v9.5.1
                            repository: stable

                            1 Antwort Letzte Antwort
                            0
                            • J Joe_D

                              @hydrotec Danke für die Infos.

                              Bislang schicke ich einfach irgendwelche Sachen an irgendwelche Topics, die werden "leider" nur als Zustandstyp Zeichenkette, Rolle variable angelegt:

                              650210e6-cd87-45d8-88a9-82774ac4da60-grafik.png

                              Cool fände ich nun, wenn die rot umrandeten Felder per MQTT besetzt werden könnten:

                              5f92651b-563e-4cce-8f9e-7d63dec66c1a-grafik.png

                              Zum Beispiel über ein spezielles Topic, /iobroker/mqttconfig mit Inhalt:

                              {
                                "common": {
                                  "name": "/devices/wb-adc/controls/lala1",
                                  "write": false,
                                  "read": true,
                                  "role": "switch",
                                  "type": "boolean"
                                }
                              }
                              

                              Das dann eben angelegt oder geändert wird sofern es das nicht gibt oder andere Werte enthält...

                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von
                              #15

                              @joe_d Das macht keinen Sinn. mqtt kennt im Prinzip keine Datentypen und die Daten werden so weiter transportiert, wie sie reingekommen sind. Deswegen wird immer alles als String und Buffer interpretiert. Als Transport bieten sich JSON Strings an - damit kann ich dann im JS, Blockly oder Node Red wieder originale Datentypen draus machen.

                              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                              1 Antwort Letzte Antwort
                              0
                              • J Offline
                                J Offline
                                Joe_D
                                schrieb am zuletzt editiert von
                                #16

                                @hydrotec Im Endeffekt wäre sowas wie https://www.home-assistant.io/docs/mqtt/discovery ganz hübsch:

                                3490241a-4830-4f50-aa65-bef973eab207-grafik.png

                                @mickym Es geht mir ja auch nicht um MQTT selbst, das ist ja nur das Transportmedium, sondern um iobroker. iobroker hat doch unterschiedliche roles/types/write und read-Eigenschaften (die ich bislang noch nicht so ganz verstehe). Warum und wozu kann ich die manuell anpassen?

                                Wenn es keinen Sinn macht, dann müsste es doch eigentlich ausreichen alles über "variable String" zu erledigen und es bräuchte gar keine unterschiedlichen roles und types?

                                mickymM hydrotecH 2 Antworten Letzte Antwort
                                0
                                • J Joe_D

                                  @hydrotec Im Endeffekt wäre sowas wie https://www.home-assistant.io/docs/mqtt/discovery ganz hübsch:

                                  3490241a-4830-4f50-aa65-bef973eab207-grafik.png

                                  @mickym Es geht mir ja auch nicht um MQTT selbst, das ist ja nur das Transportmedium, sondern um iobroker. iobroker hat doch unterschiedliche roles/types/write und read-Eigenschaften (die ich bislang noch nicht so ganz verstehe). Warum und wozu kann ich die manuell anpassen?

                                  Wenn es keinen Sinn macht, dann müsste es doch eigentlich ausreichen alles über "variable String" zu erledigen und es bräuchte gar keine unterschiedlichen roles und types?

                                  mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  schrieb am zuletzt editiert von mickym
                                  #17

                                  @joe_d Du sollst da drin auch nichts anpassen. In der Regel sind diese Felder nur dazu da, um Datenpunkte unter 0_userdata entsprechend zu konfigurieren. Alles andere sollten in der Regel die Adapter machen. Und der mqtt-Adapter interpretiert nun mal keine Datentypen (und sollte das meiner Meinung nach auch nicht).

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  J 1 Antwort Letzte Antwort
                                  0
                                  • mickymM mickym

                                    @joe_d Du sollst da drin auch nichts anpassen. In der Regel sind diese Felder nur dazu da, um Datenpunkte unter 0_userdata entsprechend zu konfigurieren. Alles andere sollten in der Regel die Adapter machen. Und der mqtt-Adapter interpretiert nun mal keine Datentypen (und sollte das meiner Meinung nach auch nicht).

                                    J Offline
                                    J Offline
                                    Joe_D
                                    schrieb am zuletzt editiert von
                                    #18

                                    @mickym Das iobroker Konzept verstehe ich noch nicht so ganz. Warum gibt es unterschiedliche roles und types? Wo werden die verwendet? In Jarvis konnte ich so einen mqtt-Datenpunkt auf ein Widget legen, musste es aber von Hand konfigurieren. Bislang konnte ich noch nicht rausfinden wie ein Datenpunkt beschaffen sein muss um automatisch z.B. als Schalter oder Licht dargestellt zu werden....

                                    mickymM 1 Antwort Letzte Antwort
                                    0
                                    • J Joe_D

                                      @mickym Das iobroker Konzept verstehe ich noch nicht so ganz. Warum gibt es unterschiedliche roles und types? Wo werden die verwendet? In Jarvis konnte ich so einen mqtt-Datenpunkt auf ein Widget legen, musste es aber von Hand konfigurieren. Bislang konnte ich noch nicht rausfinden wie ein Datenpunkt beschaffen sein muss um automatisch z.B. als Schalter oder Licht dargestellt zu werden....

                                      mickymM Online
                                      mickymM Online
                                      mickym
                                      Most Active
                                      schrieb am zuletzt editiert von mickym
                                      #19

                                      @joe_d Da gibt es sicher kompetentere Ansprechpartner als mich. In der Regel ist für einen Benutzer vorgesehen, Räume oder Funktionen über die Aufzählungen den Objekten zuzuordnen bzw. umgekehrt den Aufzählungen die Objekte zu zuordnen.
                                      486dcdad-9889-4dc2-a3d8-d50817abd563-image.png
                                      37628e44-dc0c-4b8e-9b8a-d64c3a8bff22-image.png

                                      Diese Objekt Eigenschaften sind in der Regel (ausser userdata oder zur Fehlerbehebung) zum Beschreiben durch den Adapter gedacht.

                                      Ich denke @Homoran, @paul53 oder @apollon77 können Dir das genauer erklären bzw. auf eine aktuelle Dokumentation hinweisen.
                                      Ich gebe hier nur wieder, wie ich das System jetzt aus der Praxis verstanden habe. Bin aber auch kein Adapterentwickler.

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      1 Antwort Letzte Antwort
                                      0
                                      • apollon77A Offline
                                        apollon77A Offline
                                        apollon77
                                        schrieb am zuletzt editiert von
                                        #20

                                        Also "roles" werden von Visualisierungs-UIs genutzt (bzw KÖNNEN!) um automatisiert richtige Widgets anzuzeigen ohne das dies durch den User konfiguriert wird. Material macht dies zB so. Andere Visus nutzen es nicht oder nutzen es nur teilweise. Genauso der "Type" kann in Verbidnung genutzt werden um zB eine Checkbox bei Boolean zu nutzen oder (in verbindung mit "states") eine Selection mit relevanten Werten oder ein Zahlenfeld mit hoch/runter-Buttons für Zahlen.

                                        Die "Functions" (aka Funktionen) und "Rooms" (Räume) sind ein von Homematic übernommenes Konzept was eine Zweistufige Strukturierung der Geräte erlaubt. Visus, wie Material o.ä., nutzen diese um auch hier automatisiert Strukturen anzuzeigen.

                                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                        1 Antwort Letzte Antwort
                                        0
                                        • J Joe_D

                                          @hydrotec Im Endeffekt wäre sowas wie https://www.home-assistant.io/docs/mqtt/discovery ganz hübsch:

                                          3490241a-4830-4f50-aa65-bef973eab207-grafik.png

                                          @mickym Es geht mir ja auch nicht um MQTT selbst, das ist ja nur das Transportmedium, sondern um iobroker. iobroker hat doch unterschiedliche roles/types/write und read-Eigenschaften (die ich bislang noch nicht so ganz verstehe). Warum und wozu kann ich die manuell anpassen?

                                          Wenn es keinen Sinn macht, dann müsste es doch eigentlich ausreichen alles über "variable String" zu erledigen und es bräuchte gar keine unterschiedlichen roles und types?

                                          hydrotecH Offline
                                          hydrotecH Offline
                                          hydrotec
                                          schrieb am zuletzt editiert von
                                          #21

                                          @joe_d sagte in MQTT Topic/Payload Dokumentation:

                                          Im Endeffekt wäre sowas wie https://www.home-assistant.io/docs/mqtt/discovery ganz hübsch:

                                          HomeAssistant setzt einen externen Broker voraus, bei ioBroker kannst du auch einen integrierten Broker verwenden.
                                          Wie du selber schon erfahren hast, geht jede Automatisationssoftware anders mit diesem Thema um.
                                          Ich kann dir nur empfehlen, solltest du bei ioBroker bleiben, wovon ich ausgehe, dann vergiss ganz schnell wie andere Automationslösungen das umgesetzt haben. Am Anfang hatte ich auch meine Probleme, das rührte daher, das bei ioBroker nicht mehr so kompliziert gedacht werden muss. Kenne das auch, nächtelang irgendwelche Regex zusammenbasteln, nur um ganz einfache Dinge zu realisieren. Seit ioBroker ist das vorbei, zum Glück ;-)

                                          @joe_d sagte in MQTT Topic/Payload Dokumentation:

                                          ... iobroker hat doch unterschiedliche roles/types/write und read-Eigenschaften (die ich bislang noch nicht so ganz verstehe). Warum und wozu kann ich die manuell anpassen?

                                          Bitte nicht falsch verstehen, warum möchtest du das anpassen, gibt es einen bestimmten Grund dafür?
                                          Wenn der gesendete Payload in dem richtigen Objekt unter Wert drinn steht, kannst du doch damit arbeiten.
                                          Auch wenn @mickym und @apollon77 schon die Antworten dazu geliefert haben, wenn du es genau wissen willst.
                                          https://www.iobroker.net/#de/documentation/dev/stateroles.md
                                          Eigentlich ist das für den Benutzer uninteressant, für uns kommen eher die "Aufzählungen" in Frage, wenn du die nutzen möchtest.

                                          Ubuntu 22.04 LTS (LXD/LXC)
                                          admin: v6.3.5
                                          js-controller: v4.0.24
                                          node: v18.16.1
                                          npm: v9.5.1
                                          repository: stable

                                          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

                                          401

                                          Online

                                          32.5k

                                          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