Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. MQTT Befehl an Tasmota senden

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    MQTT Befehl an Tasmota senden

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tomlei last edited by tomlei

      Hallo

      Ich versuche jetzt seit einiger Zeit einen Befehl zur Ausführung an Tasmota zu senden, leider ohne Erfolg.

      Einen BSF B04 habe ich mit Tasmota geflasht und in das Netzwerk eingebunden. Die beiden Relais kann ich über die Konsole normal schalten.
      684a3d07-3e84-4367-a8a8-47adf91e2810-image.png

      Jetzt möchte ich die Relais vom IOBroker steuern. Ich sehe im IOBroker die MQTT Werte - allerdings bekomme ich die "Gegenrichtung" nicht hin. Im MQTT Explorer werden die Topics ebenfalls alle aufgeführt. Welche muss ich ansprechen, dass an den Relais etwas passiert?
      2c86485b-0ad0-4133-9352-ae7513ce52ad-image.png

      Inzwischen habe ich es mit Rules versucht. Ich bin mir aber nicht sicher, ob ich da die richtige Syntax bzw. die richtigen Topics auswerte.
      zb.:
      "rule1 on power#state=1 do power1 ON ENDON"

      Kann mir jemand einen Tip geben?

      bahnuhr 1 Reply Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active @tomlei last edited by

        @tomlei

        Ich schalte per script an und aus, z.b:

        request('http://192.168.xxx.xxx/_1_ein')
        request('http://192.168.xxx.xxx/_1_aus')

        T 1 Reply Last reply Reply Quote 0
        • T
          tomlei @bahnuhr last edited by

          @bahnuhr
          Läuft das Script in Tasmota bzw. auf der Platine?
          Wenn ja, wie und wo richtet man das ein?

          bahnuhr 1 Reply Last reply Reply Quote 0
          • bahnuhr
            bahnuhr Forum Testing Most Active @tomlei last edited by

            @tomlei

            Javascript in iob

            T 1 Reply Last reply Reply Quote 0
            • T
              tomlei @bahnuhr last edited by

              @bahnuhr
              Woher weiß Tasmota was es damit machen soll?

              bahnuhr 1 Reply Last reply Reply Quote 0
              • bahnuhr
                bahnuhr Forum Testing Most Active @tomlei last edited by

                @tomlei sagte in MQTT Befehl an Tasmota senden:

                @bahnuhr
                Woher weiß Tasmota was es damit machen soll?

                versteh ich nicht.
                steht doch da.
                1 -> ein oder aus

                T 1 Reply Last reply Reply Quote 0
                • T
                  tomlei @bahnuhr last edited by

                  @bahnuhr said in MQTT Befehl an Tasmota senden:

                  1 -> ein oder aus

                  Was bedeutet die "1"?

                  Ich kann in der Konsole mit "power1 On" das erste Relais einschalten. Wenn ich das in den Link einbaue passiert nichts.
                  http://192.168.178.68/power1_ON
                  http://192.168.178.68/power1_1
                  http://192.168.178.68/1_ON
                  http://192.168.178.68/1_1
                  http://192.168.178.68/_power1_ON
                  http://192.168.178.68/_power1_1
                  http://192.168.178.68/_1_ON
                  http://192.168.178.68/_1_1

                  Es kommt:

                  Datei nicht gefunden

                  URI: /_1_1
                  Method: GET
                  Arguments: 0

                  Ich dachte man muss der Platine sagen was es damit machen soll, aber wie?

                  bahnuhr 1 Reply Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active @tomlei last edited by

                    @tomlei
                    von Konsole hab ich nichts gesagt.

                    Du wolltest dies doch von iob machen.

                    Also:
                    Adapter Javascript installieren.
                    Script erstellen in iob
                    und bei Bedarf laufen lassen.

                    Musst dich dazu mal einlesen.

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      tomlei @bahnuhr last edited by

                      @bahnuhr said in MQTT Befehl an Tasmota senden:

                      @tomlei
                      von Konsole hab ich nichts gesagt.

                      Du wolltest dies doch von iob machen.

                      Also:
                      Adapter Javascript installieren.
                      Script erstellen in iob
                      und bei Bedarf laufen lassen.

                      Musst dich dazu mal einlesen.

                      Ich habe die Beispiele nicht in der Konsole eingeben sondern im Browser. Hast Du gelesen was ich geschrieben habe?

                      Ich habe nur daraufhin gewiesen, mit welchem Befehl ich in der Konsole das Relais schalten kann und hatte gedacht, dass Du mit der "1" das erste Relais meinst. Deswegen meine Frage diesbezüglich. Aber gut. Ich wollte es ja auch per MQTT schalten und nicht per Java Script.

                      Vielleicht hat jemand anderes das schon mal mit MQTT gemacht und kann mir einen Tip geben, welches Topic zum senden an den Client genutzt werden muss, bzw. wie der Client (Tasmota/Platine) konfiguriert werden muss, damit der Befehl auch ausgewertet wird.

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

                        Ich habe eine andere Seite gefunden, auf der die richtige Syntax beschrieben war.

                        Lösung:
                        http://192.168.xxx.xxx/cm?cmnd=Power1 ON

                        Vielleicht kann es ein anderer auch verwenden.

                        bahnuhr amg_666 mickym 3 Replies Last reply Reply Quote 0
                        • bahnuhr
                          bahnuhr Forum Testing Most Active @tomlei last edited by

                          @tomlei sagte in MQTT Befehl an Tasmota senden:

                          Lösung:
                          http://192.168.xxx.xxx/cm?cmnd=Power1 ON
                          Vielleicht kann es ein anderer auch verwenden.

                          du wolltest doch von iob steuern.

                          Wo gibts du dies nun ein?
                          In welchen DP?

                          1 Reply Last reply Reply Quote 0
                          • amg_666
                            amg_666 @tomlei last edited by

                            @tomlei Wenn das ein anderer verwenden sollte dann wäre es gut wenn du

                            • das topic dieses Threads änderst, z.B. auf "mqqt Befehl vom Broweser an tasmota senden" oder so ähnlich und wenn du es auf gelöst setzt.
                            bahnuhr 1 Reply Last reply Reply Quote 0
                            • bahnuhr
                              bahnuhr Forum Testing Most Active @amg_666 last edited by

                              @amg_666

                              Für mich ist dies nicht gelöst.
                              Denn m.E. kann man dies nicht in einen DP eingeben.
                              Also Steuerung über iob dürfte damit nicht gehen.

                              amg_666 1 Reply Last reply Reply Quote 0
                              • amg_666
                                amg_666 @bahnuhr last edited by

                                @bahnuhr @tomlei hat geschrieben "Lösung" und da nehme ich an er wollte "nur" einen string, den er vom Browser übergeben kann.

                                Lösung:
                                http://192.168.xxx.xxx/cm?cmnd=Power1 ON

                                Steurung über iob läuft doch einfach per script ab (?) wenn ich in einen DP z.B. bei Power eine 0 eintrage, dann geht das device aus.

                                bahnuhr 1 Reply Last reply Reply Quote 0
                                • bahnuhr
                                  bahnuhr Forum Testing Most Active @amg_666 last edited by

                                  @amg_666 sagte in MQTT Befehl an Tasmota senden:

                                  Steurung über iob läuft doch einfach per script ab (?) wenn ich in einen DP z.B. bei Power eine 0 eintrage, dann geht das device aus.

                                  richtig, genau so.
                                  Oder mit request.

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

                                    @tomlei sagte in MQTT Befehl an Tasmota senden:

                                    Ich habe eine andere Seite gefunden, auf der die richtige Syntax beschrieben war.

                                    Lösung:
                                    http://192.168.xxx.xxx/cm?cmnd=Power1 ON

                                    Vielleicht kann es ein anderer auch verwenden.

                                    Das ist das http Interface aber nicht mqtt. Wurde aber schon alles gesagt. Unter dem cmnd Ast in mqtt einen Power1 Punkt anlegen. Alternativ auch noch einen backlog Punkt, da kann man die Befehle (auch mehrere hintereinander) wie auf der Konsole eingeben.

                                    80765d07-b649-49f7-bd73-8d552578d95b-image.png

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

                                      @tomlei
                                      Du schreibst du siehst in ioBroker die MQTT Werte. Über was, den MQTT-Adapter?

                                      Wenn ja hast du da die gleichen 3 Topics wie im MQTT-Explorer.
                                      Unter mqtt.0.cmnd.NameDesGeraetes hast du einen Datenpunkt POWER den du auf ON oder OFF setzen kannst und Tasmota schaltet dann.
                                      Das Ergebnis erhälts du dann unter mqtt.0.cmnd.NameDesGeraetes.RESULT bzw. mqtt.0.cmnd.NameDesGeraetes.POWER

                                      Jeden Befehl den du in der Konsole absetzen kannst, kannst du auch über den CMND Pfad senden.

                                      Damit hast du, z.B. für eine VIS, keinen schönen True/False Datenpunkt. Dann entweder den Sonoff-Adapter nehmen (So hieß Tasmota früher bzw. das waren die ersten Geräte für dies entwickelt wurde) oder du musst dir selbst ein Skript bauen.

                                      ich habe da auch mal was gebaut was im Skripte-Bereich zu finden wäre

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

                                        @bananajoe & @alle

                                        Danke für Eure Nachfragen. Ich war ein paar Tage außer Haus.

                                        Die Lösung für den http request habe ich mitgeteilt. Aber ja, ich wollte ursprünglich vom IOB per True/False oder ON/OFF oder was auch immer den Steuerbefehl absetzen. Das hatte zunächst nicht funktioniert. Ich sah in der MQTT Instanz nur die Statuszustände - Cmnd Befehle konnte ich nicht absetzen.
                                        Dann habe ich mit dem MQTT Explorer geschaut, welche Informationen mit welchen Topics eigentlich ankommen und habe dann die Befehle vom MQTT Explorer abgesetzt. Da kam zunächst in der Konsole von Tasmota die Meldung Befehl unbekannt. Nach einigen hin und her sah ich plötzlich im IOB zusätzliche Objekte im Pfad cmnd und dann konnte ich von dort aus die Befehle normal setzen.
                                        Was ich nicht verstehe, ist, dass ich mit den manuell über skript angelegten Topic Objekten in dem gleichen Pfad (gleiches Topic+Name usw.) keinen Erfolg hatte. Die konnte ich anschließend, nachdem die vom Explorer initiiert angelegten Objekte funktionierten, löschen.
                                        Irgendwie verstehe ich die Systematik nicht so richtig. Zumal die Reproduzierbarkeit dieser Lösung auch nicht so einfach war. Ich habe auf der Platine zwei Kanäle / Relais und brauchte noch den zweiten DP. Diesen anzulegen war ebenfalls eine Fummelei.

                                        Ist das möglicherweise eine Frage der Zugriffsrechte / Ownerrechte?

                                        Ich hatte den Punkt gesucht wo man den Eintrag auf erledigen setzen kann, aber nicht gefunden.

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

                                          @tomlei also,

                                          mit war auch schon aufgefallen das ich im MQTT-Adapter nicht einfach neue Datenpunkte anlegen kann und diese dann funktionieren. Gibt es diese schon, z.B. weil ich diese mit dem MQTT Explorer erzeugt hatte, so kann ich die nutzen.

                                          Aber einfach anlegen im Objekt-Explorer oder per Skript hat nicht funktioniert.

                                          Ich habe mir auf GitHub die Beschreibung des MQTT-Adapters angesehen und dabei die folgende Lösung gefunden:

                                          per Blockly
                                          a46f7add-5cd2-4277-8f7a-46f133f314a4-image.png

                                          per JavaScript

                                          // Beispiel für SendTo von https://github.com/ioBroker/ioBroker.mqtt
                                          // Test ob ich das zum Anlegen von neuen MQTT-Topics etc. nutzen kann
                                          /*
                                           * @param {string}  MQTT instance     Specify MQTT instance to send message through (may be either server or client)
                                           * @param {string}  action            Action to use (always 'sendMessage2Client' for sending plain messages)
                                           * @param {object}  payload         
                                           * @param {string}  payload.topic     Topic to publish message on
                                           * @param {string}  payload.message   Message to be published on specified topic
                                           *
                                           */
                                          sendTo('mqtt.0', 'sendMessage2Client', {topic: 'znil/Tests/Testnachricht', message: '42'});
                                          

                                          Mit dem SendTo Befehlen wird der Datenpunkt angelegt und es funktioniert einwandfrei.
                                          Nach dem anlegen kann man auch die herkömmlichen SetState-Befehle verwenden

                                          mickym T D 4 Replies Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @BananaJoe last edited by

                                            @bananajoe Das geht auch mit dem normalen Anlegen von Punkten im Objekte - View - das Problem ist nur, dass der neue Adamin5 es verbietet weitere Punkte anzulegen, wenn keine Objekte existieren. Das habe ich alles schon öfters moniert, dass man diese ganzen Prüfungen da raus nimmt, aber das will man halt nicht machen.

                                            Was Du mit dem sendTo machst, kann man auch mit einem pub von mosquitto machen. Das Anlegen der Datenpunkte macht dann der Adapter selbst auch ohne Abprüfung des Vorhandenseins von Objekten. Wenn man das nämlich auch noch unterbunden hätte, hätte man die Adapter gleich wegschmeissen können.

                                            Ich hoffe nur - wahrscheinlich vergebens - dass man die beiden Namensräume, mqtt und userdata von diesen ganzen Überprüfungen der Objektestruktur ausnimmt.

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

                                            Support us

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

                                            484
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            28
                                            5278
                                            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