Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. MQTT wie per Blockly senden?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    MQTT wie per Blockly senden?

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @tklein last edited by

      @tklein Versuch halt mal in den Update Punkt zu schreiben - kann man ja direkt im Admin des iobrokers ausprobieren.

      T 1 Reply Last reply Reply Quote 0
      • BananaJoe
        BananaJoe Most Active @tklein last edited by

        @tklein wenn es den Datenpunkt schon gibt unterhalb des mqtt Adapters kannst du einfach ganz normal reinschreiben.

        Wenn es den Datenpunkt noch nicht gibt und er also erst angelegt werden müsste, dann musst du SendTo benutzen:
        c368c21e-fad3-4b5c-bcb7-b5225c2fa74b-image.png

        Hier der Export:

        <xml xmlns="https://developers.google.com/blockly/xml">
          <block type="sendto_custom" id="BWr5ehE:SME/#2Y:xw7n" x="138" y="163">
            <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation>
            <field name="INSTANCE">mqtt.0</field>
            <field name="COMMAND">sendMessage2Client</field>
            <field name="LOG"></field>
            <field name="WITH_STATEMENT">FALSE</field>
            <value name="ARG0">
              <shadow type="text" id="shDRnRIW0=J[-cD/uTNJ">
                <field name="TEXT">znil/Tests/TestnachrichtBlockly</field>
              </shadow>
            </value>
            <value name="ARG1">
              <shadow type="text" id="KvpMsF((eyp:O5@zp#uw">
                <field name="TEXT">99</field>
              </shadow>
            </value>
          </block>
        </xml>
        

        Du kannst natürlich auch immer die SendTo Variante nehmen.

        Diese Lösung funktioniert in Verbindung mit diesem MQTT Adapter (alte/neue Oberfläche)
        ad486920-4c91-49ac-bb77-4bcb384d21bc-image.png dfe26f45-e798-459b-ac34-768637533f6c-image.png

        Gefunden habe ich dies als ich mir mal die Hilfe des MQTT-Adapters durchgelesen habe:
        https://github.com/ioBroker/ioBroker.mqtt/blob/master/README.md
        Im Abschnitt "Sending messages". Meine Leistung ist das richtige in den Blockly-Block eingetragen zu haben (da muss das sendMessage2Client zwingend rein)

        T 1 Reply Last reply Reply Quote 0
        • T
          tklein @mickym last edited by

          @mickym said in MQTT wie per Blockly senden?:

          @tklein Versuch halt mal in den Update Punkt zu schreiben - kann man ja direkt im Admin des iobrokers ausprobieren.

          das hat nicht geklappt. war auch mein erster Gedanke. Bin mir aber auch nciht ganz sicher, was im String stehen sollte

          1 Reply Last reply Reply Quote 0
          • T
            tklein @BananaJoe last edited by

            @bananajoe besten Dank ür den Export.

            Hier meine Logs mit dem Blockly

            55d4953e-aaf4-4e8b-a11b-968fa82522f2-grafik.png

            1 Reply Last reply Reply Quote 1
            • mickym
              mickym Most Active @tklein last edited by mickym

              @tklein Bevor Du irgendwas mit Blockly rumprobierst, solltest Du erst mal wissen, wie Deine mqtt Struktur ausschaut.

              In dem von Dir zitierten Link - solltest Du wohl über das Http Interface mal ein Schema einrichten:

              fe621793-1e22-4b11-a8ba-70f57088a68d-image.png

              Wie gesagt schau erst mal, dass Du über den iobroker und den Datenpunkten direkt schalten kannst - vorher brauchst Dich doch um gar kein Blockly kümmern, wenn Du nicht weißt wohin Du was schreiben sollst.

              Also sowas wie hier empfohlen:

              milight/:device_id/:device_type/:group_id
              
              T 1 Reply Last reply Reply Quote 0
              • T
                tklein @mickym last edited by

                @mickym said in MQTT wie per Blockly senden?:

                milight/:device_id/:device_type/:group_id

                hatte ich auch schon drin:

                3d597950-31dd-4594-bfb4-1b3a9fb1adbb-grafik.png

                Woher weiss der Block, was er mit den Parametern topic und message machen muss? Oder sind das fest definierte Parameternamen?

                7967f4ed-eb0b-4409-ab31-268f35ebacd9-grafik.png

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @tklein last edited by mickym

                  @tklein Nochmal das Blockly spielt hier gar keine Rolle - vergiss das erst mal. Wenn Du in den iobroker objekten direkt schalten kannst, dann kannst Dich im Blockly kümmern.

                  Diese Parameter sollte das Gerät selbst ersetzen, wie unter mqtt - beschrieben ersetzen:

                  :device_id - Device ID. Can be hexadecimal (e.g. 0x1234) or decimal (e.g. 4660).
                  :device_type - Remote type. rgbw, fut089, etc.
                  :group_id - Group. 0-4 for most remotes. The "All" group is group 0.

                  Und in diesen Datenpunkt schreibt man dann diese Kommandos - so beschreibt es das Beispiel:

                  publish('milight/0x118D/rgb_cct/1', '{"status":"ON","color":{"r":255,"g":200,"b":255},"brightness":100}')
                  

                  Das heißt, wenn sich eine Struktur ergeben hat - dann halt so einen JSON als Befehl reinschreiben. Auch auf Groß- und Kleinschreibung achten.

                  Du kannst das ja nochmal so lassen wie am Anfang - da hattest Du unter topic

                  topic-milight drin!

                  Dann hättest Du den Kommando JSON in diesen Datenpunkt schreiben müssen.

                  d2cd078e-bdd3-4c93-a732-4c11f0c60f50-image.png

                  T 1 Reply Last reply Reply Quote 0
                  • T
                    tklein @mickym last edited by

                    @mickym

                    Nachdem es so nicht funktioniert hatte

                    da28ab57-f551-4a55-956d-65c899be0c87-grafik.png

                    habe ich das topic wieder auf milight/:device_id/:device_type/:group_id. Dann konnte ich mit dem Admin in der GUI den DP aktualisieren und per steuere block in blockly und es wurde geschaltet 🙂

                    30a603ab-4b80-4981-a33e-164d91166b3e-grafik.png

                    Muss jetzt noch rausfinden, wie das Topic im sendTo Block aussehen muss.

                    Vielen Dank für die Hilfe und das Schubsen/Drücken in die richtige Richtung 🙂

                    BananaJoe 1 Reply Last reply Reply Quote 0
                    • BananaJoe
                      BananaJoe Most Active @tklein last edited by BananaJoe

                      @tklein dort musst du mit / arbeiten und das mqtt.0. weglassen,
                      also

                      milight/device_id/device_type/group_id
                      

                      müsste es sein (die Doppelpunkte verwirren mich und gehören meiner Meinung nach nicht dahin)

                      Nachtrag: und in der Message versuch mal alle nicht notwenigen Leerzeichen zu eliminieren, insbesondere keine "neue Zeile" zeichen etc. nur die nackten Daten als ein langer Text. Leerzeichen wenn als Daten für ein Element in " "

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        tklein @BananaJoe last edited by

                        @bananajoe said in MQTT wie per Blockly senden?:

                        milight/device_id/device_type/group_id

                        besten Dank.

                        Manchmal schaltet er dann, habe aber einen Adapterabsturz 😱

                        f5a2f035-8b22-46a4-88d1-e1f8acb6fa78-grafik.png

                        BananaJoe mickym 2 Replies Last reply Reply Quote 0
                        • BananaJoe
                          BananaJoe Most Active @tklein last edited by

                          @tklein muss sich ein anderer ansehen.
                          Ich nutze den MQTT-Adapter nur als Client zu einem Mosquitto-Server.

                          1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @tklein last edited by mickym

                            @tklein Wenn der Datenpunkt existiert dann brauchst Du doch kein sendTo. Das macht man max. 1 mal um ggf. einen Datenpunkt anzulegen. Ansonsten schreibst Du mit steuere ganz normal in den Datenpunkt, so wie Du es im iobroker admin auch machst.

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

                              @mickym naja, eigentlich sollte es immer mit sendTo gehen, oder? Das ja in diesem Fall keine Funktion die nur dem Anlegen des Datenpunktes dient, oder?

                              mickym 1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @BananaJoe last edited by

                                @bananajoe Keine Ahnung - was der Adapter damit macht - aber mit dem Blockly ist es auf jeden Fall einfacher die Datenpunkte zu beschreiben. Ich glaube bei sendTo versucht der Adapter was zu publishen oder was der Teufel, was der macht. Aber bestehende Datenpunkte egal in welchem Adapter, beschreibe ich nicht mit sendTo sondern immer mit steuere oder aktualisiere.

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

                                  @mickym sagte in MQTT wie per Blockly senden?:

                                  @bananajoe Ich glaube bei sendTo versucht der Adapter was zu publishen oder was der Teufel, was der macht.

                                  Genau das soll er ja 🙂

                                  01findus 1 Reply Last reply Reply Quote 0
                                  • 01findus
                                    01findus @BananaJoe last edited by 01findus

                                    @bananajoe

                                    Hallo ich hatte das Thema auch.

                                    Bei mir funktioniert das Schreiben eines Zustands in MQTT einfach mit dem steuere Befehl:

                                    4af06b3b-a269-4a90-8f75-75410a7ab783-image.png

                                    setState("mqtt.0.SmartHome.Muc.Schlafzimmer1.Deckenlicht_Duo.cmnd.POWER1"/SmartHome/Muc/Schlafzimmer1/Deckenlicht_Duo/cmnd/POWER1/, 'OFF');

                                    BananaJoe 1 Reply Last reply Reply Quote 0
                                    • BananaJoe
                                      BananaJoe Most Active @01findus last edited by BananaJoe

                                      @01findus aber da gibt es dann den Datenpunkt schon bei dir 🙂
                                      Die POWER Datenpunkte gehören ja zu denen welche automatisch erzeugt werden da das Tasmota-Gerät diese automatisch published (und abonniert).
                                      Unterhalb von /cmnd/ kannst du ja aber auch jeden anderen Befehl nutzen den man auch in der Tasmota-Konsole nutzen kann.

                                      Mit SendTo wird der Datenpunkt, falls es diesen noch nicht gibt, auch noch angelegt.
                                      Ob man das braucht oder nicht hängt - meine ich - auch von der Art des verwendeten MQTT-Brokers ab.
                                      Ich nutze den MQTT-Adapter als Client zu einem Mosquitto-Broker. Da klappte es nicht wenn ich den Datenpunkt unterhalb von mqtt.0 anlegte, der funktioniert dann nicht. Aber mit sendTo funktionierte es. Darauf gekommen bin ich weil ich mir gerne mal die Anleitungen zu den Adapter durchlese und es dort aufgeführt wurde.

                                      Das mag wohl anders sein wenn man den MQTT-Adapter als Broker nutzt, ich vermute dann kann man die Datenpunkte einfach anlegen und nutzen.
                                      Mein Problem mag auch inzwischen überholt sein.

                                      1 Reply Last reply Reply Quote 0
                                      • B
                                        bimmi last edited by bimmi

                                        --- falscher Beitrag ---

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

                                          @bimmi sagte in MQTT wie per Blockly senden?:

                                          dass es mit dem clip width und height ein Problem gibt. Der Datenpunkt ist eine "number".

                                          und was kommt da wirklich an?
                                          mal mit debug nachgesehen?

                                          spätestens erstelle Text wandelt es

                                          B 1 Reply Last reply Reply Quote 0
                                          • B
                                            bimmi @Homoran last edited by

                                            @homoran sorry. hab mich im beitrag vertan. das gehört in einen anderen!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            529
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            23
                                            6635
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo